From 9a2ae7087b5a6a69b96a296daca86d28545906d8 Mon Sep 17 00:00:00 2001 From: Dmitriy Kopylenko Date: Tue, 31 Jul 2018 10:44:01 -0400 Subject: [PATCH 1/3] SHIBUI-682: Dead code cleanup --- ...DynamicHttpMetadataResolverRepository.java | 18 --- .../EntityRoleWhiteListFilterRepository.java | 16 --- ...eBackedHttpMetadataResolverRepository.java | 14 -- ...ocalDynamicMetadataResolverRepository.java | 16 --- .../RoleDescriptorResolverRepository.java | 12 -- .../SignatureValidationFilterRepository.java | 16 --- ...HttpMetadataResolverRepositoryTests.groovy | 130 ------------------ ...amicMetadataResolverRepositoryTests.groovy | 78 ----------- 8 files changed, 300 deletions(-) delete mode 100644 backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/DynamicHttpMetadataResolverRepository.java delete mode 100644 backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityRoleWhiteListFilterRepository.java delete mode 100644 backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepository.java delete mode 100644 backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/LocalDynamicMetadataResolverRepository.java delete mode 100644 backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/RoleDescriptorResolverRepository.java delete mode 100644 backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/SignatureValidationFilterRepository.java delete mode 100644 backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepositoryTests.groovy delete mode 100644 backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/LocalDynamicMetadataResolverRepositoryTests.groovy diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/DynamicHttpMetadataResolverRepository.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/DynamicHttpMetadataResolverRepository.java deleted file mode 100644 index c4a08804f..000000000 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/DynamicHttpMetadataResolverRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package edu.internet2.tier.shibboleth.admin.ui.repository; - -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver; -import org.springframework.data.repository.CrudRepository; - -/** - * Spring Data CRUD repository for instances of {@link DynamicHttpMetadataResolver}s. - * - * @author Bill Smith (wsmith@unicon.net) - */ -public interface DynamicHttpMetadataResolverRepository extends CrudRepository { - - DynamicHttpMetadataResolver findByName(String name); - - boolean deleteByResourceId(String resourceId); - - DynamicHttpMetadataResolver findByResourceId(String resourceId); -} \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityRoleWhiteListFilterRepository.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityRoleWhiteListFilterRepository.java deleted file mode 100644 index afa830773..000000000 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/EntityRoleWhiteListFilterRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package edu.internet2.tier.shibboleth.admin.ui.repository; - -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityRoleWhiteListFilter; -import org.springframework.data.repository.CrudRepository; - -/** - * Spring Data CRUD repository for instances of {@link EntityRoleWhiteListFilter}s. - */ -public interface EntityRoleWhiteListFilterRepository extends CrudRepository { - - EntityRoleWhiteListFilter findByName(String name); - - EntityRoleWhiteListFilter findByResourceId(String resourceId); - - boolean deleteByResourceId(String resourceId); -} diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepository.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepository.java deleted file mode 100644 index 97d069173..000000000 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -package edu.internet2.tier.shibboleth.admin.ui.repository; - -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver; -import org.springframework.data.repository.CrudRepository; - -/** - * Spring Data CRUD repository for instances of {@link FileBackedHttpMetadataResolver}s. - */ -public interface FileBackedHttpMetadataResolverRepository extends CrudRepository { - - FileBackedHttpMetadataResolver findByName(String name); - boolean deleteByResourceId(String resourceId); - FileBackedHttpMetadataResolver findByResourceId(String resourceId); -} diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/LocalDynamicMetadataResolverRepository.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/LocalDynamicMetadataResolverRepository.java deleted file mode 100644 index 323b470d5..000000000 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/LocalDynamicMetadataResolverRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package edu.internet2.tier.shibboleth.admin.ui.repository; - -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver; -import org.springframework.data.repository.CrudRepository; - -/** - * Spring Data CRUD repository for instances of {@link LocalDynamicMetadataResolver}s. - */ -public interface LocalDynamicMetadataResolverRepository extends CrudRepository { - - LocalDynamicMetadataResolver findByName(String name); - - boolean deleteByResourceId(String resourceId); - - LocalDynamicMetadataResolver findByResourceId(String resourceId); -} diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/RoleDescriptorResolverRepository.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/RoleDescriptorResolverRepository.java deleted file mode 100644 index c2cbef436..000000000 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/RoleDescriptorResolverRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package edu.internet2.tier.shibboleth.admin.ui.repository; - -import edu.internet2.tier.shibboleth.admin.ui.domain.RoleDescriptorResolver; -import org.springframework.data.repository.CrudRepository; - - -/** - * Repository to manage {@link RoleDescriptorResolver} instances. - */ -public interface RoleDescriptorResolverRepository extends CrudRepository { - -} diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/SignatureValidationFilterRepository.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/SignatureValidationFilterRepository.java deleted file mode 100644 index 7b1c70e0f..000000000 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/repository/SignatureValidationFilterRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package edu.internet2.tier.shibboleth.admin.ui.repository; - -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.SignatureValidationFilter; -import org.springframework.data.repository.CrudRepository; - -/** - * Spring Data CRUD repository for instances of {@link SignatureValidationFilter}s. - */ -public interface SignatureValidationFilterRepository extends CrudRepository { - - SignatureValidationFilter findByName(String name); - - SignatureValidationFilter findByResourceId(String resourceId); - - boolean deleteByResourceId(String resourceId); -} diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepositoryTests.groovy deleted file mode 100644 index 46f582501..000000000 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/FileBackedHttpMetadataResolverRepositoryTests.groovy +++ /dev/null @@ -1,130 +0,0 @@ -package edu.internet2.tier.shibboleth.admin.ui.repository - -import com.fasterxml.jackson.databind.ObjectMapper -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.HttpMetadataResolverAttributes -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ReloadableMetadataResolverAttributes -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.annotation.DirtiesContext -import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification - -import javax.persistence.EntityManager - -import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget.EntityAttributesFilterTargetType.ENTITY -import static edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.HttpMetadataResolverAttributes.HttpCachingType.memory - -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -@DirtiesContext(methodMode = DirtiesContext.MethodMode.BEFORE_METHOD) -class FileBackedHttpMetadataResolverRepositoryTests extends Specification { - - @Autowired - MetadataResolverRepository repositoryUnderTest - - @Autowired - EntityManager entityManager - - def "file backed http metadata resolver instances persist OK"() { - when: - def mdr = new FileBackedHttpMetadataResolver().with { - it.name = "FileBackedHttpMetadata" - - it.httpMetadataResolverAttributes = new HttpMetadataResolverAttributes().with { - it.connectionRequestTimeout = "PT05" - it.disregardTLSCertificate = true - it.httpCaching = memory - it - } - it.reloadableMetadataResolverAttributes = new ReloadableMetadataResolverAttributes().with { - it.indexesRef = "indexesSpringBeanId" - it - } - - it.metadataFilters.add(new EntityAttributesFilter().with { - it.entityAttributesFilterTarget = new EntityAttributesFilterTarget().with { - it.entityAttributesFilterTargetType = ENTITY - it.setValue(["hola"]) - it - } - it - }) - it - } - repositoryUnderTest.save(mdr) - - then: - repositoryUnderTest.findAll().size() > 0 - FileBackedHttpMetadataResolver item = repositoryUnderTest.findByName("FileBackedHttpMetadata") - - item.name == "FileBackedHttpMetadata" - item.metadataFilters.size() == 1 - item.metadataFilters[0].entityAttributesFilterTarget.entityAttributesFilterTargetType == ENTITY - item.metadataFilters[0].entityAttributesFilterTarget.value.size() == 1 - item.metadataFilters[0].entityAttributesFilterTarget.value.get(0) == "hola" - item.httpMetadataResolverAttributes.connectionRequestTimeout == "PT05" - item.httpMetadataResolverAttributes.disregardTLSCertificate - item.httpMetadataResolverAttributes.httpCaching == memory - item.reloadableMetadataResolverAttributes.indexesRef == "indexesSpringBeanId" - } - - def "FileBackedHttpMetadataResolver hashcode works as desired"() { - given: - // TODO: There is weirdness here if reloadableMetadataResolverAttributes is empty. - // I suspect similar weirdness if httpMetadataResolverAttributes is an empty object, too. - def resolverJson = '''{ - "name": "name", - "@type": "FileBackedHttpMetadataResolver", - "requireValidMetadata": true, - "failFastInitialization": true, - "sortKey": 7, - "criterionPredicateRegistryRef": "criterionPredicateRegistryRef", - "useDefaultPredicateRegistry": true, - "satisfyAnyPredicates": true, - "metadataFilters": [], - "reloadableMetadataResolverAttributes": { - "parserPoolRef": "parserPoolRef" - }, - "httpMetadataResolverAttributes": { - "httpClientRef": "httpClientRef", - "connectionRequestTimeout": "connectionRequestTimeout", - "connectionTimeout": "connectionTimeout", - "socketTimeout": "socketTimeout", - "disregardTLSCertificate": true, - "tlsTrustEngineRef": "tlsTrustEngineRef", - "httpClientSecurityParametersRef": "httpClientSecurityParametersRef", - "proxyHost": "proxyHost", - "proxyPort": "proxyPort", - "proxyUser": "proxyUser", - "proxyPassword": "proxyPassword", - "httpCaching": "none", - "httpCacheDirectory": "httpCacheDirectory", - "httpMaxCacheEntries": 1, - "httpMaxCacheEntrySize": 2 - } -}''' - - when: - def resolver = new ObjectMapper().readValue(resolverJson.bytes, FileBackedHttpMetadataResolver) - def persistedResolver = repositoryUnderTest.save(resolver) - entityManager.flush() - - then: - def item1 = repositoryUnderTest.findByName(persistedResolver.name) - entityManager.clear() - def item2 = repositoryUnderTest.findByName(persistedResolver.name) - - item1.hashCode() == item2.hashCode() - } -} diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/LocalDynamicMetadataResolverRepositoryTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/LocalDynamicMetadataResolverRepositoryTests.groovy deleted file mode 100644 index 63ae7018c..000000000 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/repository/LocalDynamicMetadataResolverRepositoryTests.groovy +++ /dev/null @@ -1,78 +0,0 @@ -package edu.internet2.tier.shibboleth.admin.ui.repository - -import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration -import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilter -import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicMetadataResolverAttributes -import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.autoconfigure.domain.EntityScan -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.data.jpa.repository.config.EnableJpaRepositories -import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification - -import javax.persistence.EntityManager - -import static edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget.EntityAttributesFilterTargetType.ENTITY - -@DataJpaTest -@ContextConfiguration(classes=[CoreShibUiConfiguration, SearchConfiguration, TestConfiguration, InternationalizationConfiguration]) -@EnableJpaRepositories(basePackages = ["edu.internet2.tier.shibboleth.admin.ui"]) -@EntityScan("edu.internet2.tier.shibboleth.admin.ui") -class LocalDynamicMetadataResolverRepositoryTests extends Specification { - - @Autowired - LocalDynamicMetadataResolverRepository repositoryUnderTest - - @Autowired - EntityManager entityManager - - def "local dynamic metadata resolver instances persist OK"() { - when: - def mdr = new LocalDynamicMetadataResolver().with { - it.name = 'LocalDynamicMetadataResolver' - it.sourceDirectory = '/etc/shibui' - it.sourceKeyGeneratorRef = 'sourceKeyGeneratorBean' - it.sourceManagerRef = 'sourceManagerBean' - it.dynamicMetadataResolverAttributes = new DynamicMetadataResolverAttributes().with { - it.cleanupTaskInterval = 'PT5H' - it.maxCacheDuration = 'PT8H' - it.initializeFromPersistentCacheInBackground = true - it - } - - it.metadataFilters.add(new EntityAttributesFilter().with { - it.entityAttributesFilterTarget = new EntityAttributesFilterTarget().with { - it.entityAttributesFilterTargetType = ENTITY - it.setValue(['hola']) - it - } - it - }) - - it - } - repositoryUnderTest.save(mdr) - - then: - repositoryUnderTest.findAll().size() > 0 - def item = repositoryUnderTest.findByName("LocalDynamicMetadataResolver") - - item.name == "LocalDynamicMetadataResolver" - item.metadataFilters.size() == 1 - item.metadataFilters[0].entityAttributesFilterTarget.entityAttributesFilterTargetType == ENTITY - item.metadataFilters[0].entityAttributesFilterTarget.value.size() == 1 - item.metadataFilters[0].entityAttributesFilterTarget.value.get(0) == "hola" - item.sourceDirectory == '/etc/shibui' - item.sourceKeyGeneratorRef == 'sourceKeyGeneratorBean' - item.sourceManagerRef == 'sourceManagerBean' - item.dynamicMetadataResolverAttributes.cleanupTaskInterval == 'PT5H' - item.dynamicMetadataResolverAttributes.maxCacheDuration == 'PT8H' - item.dynamicMetadataResolverAttributes.initializeFromPersistentCacheInBackground - } - -} From ee4ce62ce1b5f63b7ccb1a5d51e88184a6f245a0 Mon Sep 17 00:00:00 2001 From: Jodie Muramoto Date: Thu, 9 Aug 2018 11:06:28 -0700 Subject: [PATCH 2/3] SHIBUI-712: Changed text format for better color contrast (accessibility); --- ui/src/app/schema-form/widget/string/string.component.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/src/app/schema-form/widget/string/string.component.html b/ui/src/app/schema-form/widget/string/string.component.html index d2704acbd..d5703b37a 100644 --- a/ui/src/app/schema-form/widget/string/string.component.html +++ b/ui/src/app/schema-form/widget/string/string.component.html @@ -15,7 +15,7 @@ [attr.readonly]="schema.readOnly?true:null" class="text-widget.id textline-widget form-control" [attr.type]="this.getInputType()" - [attr.id]="id" + [attr.id]="id" [formControl]="control" [attr.placeholder]="schema.placeholder" [attr.maxLength]="schema.maxLength || null" @@ -25,7 +25,7 @@ {{ errorMessages }} - + {{ schema.widget.help }} - \ No newline at end of file + From 82ac224cb310797755a01d0cda83196b3de6b7b4 Mon Sep 17 00:00:00 2001 From: Ryan Mathis Date: Thu, 9 Aug 2018 20:11:54 +0000 Subject: [PATCH 3/3] Merged in bugfix/SHIBUI-677 (pull request #145) * Fixed minor bugs SHIBUI-741, SHIBUI-677, SHIBUI-737 Approved-by: Ryan Mathis Approved-by: Shibui Jenkins --- .../container/edit-filter.component.html | 2 +- .../provider/effect/collection.effect.ts | 4 +- .../filter-target.component.html | 40 ++++++++++++------- .../filter-target/filter-target.component.ts | 4 +- .../filter/entity-attributes.schema.json | 2 +- .../filebacked-http-common.editor.schema.json | 3 +- .../filebacked-http-common.schema.json | 2 +- ui/src/theme/buttons.scss | 6 +++ ui/src/theme/forms.scss | 1 + 9 files changed, 43 insertions(+), 21 deletions(-) diff --git a/ui/src/app/metadata/filter/container/edit-filter.component.html b/ui/src/app/metadata/filter/container/edit-filter.component.html index 33ea36cc7..cbdf2df18 100644 --- a/ui/src/app/metadata/filter/container/edit-filter.component.html +++ b/ui/src/app/metadata/filter/container/edit-filter.component.html @@ -5,7 +5,7 @@
-   Edit EntityAttributesFilter - {{ filter.name }} +   Edit EntityAttributesFilter
diff --git a/ui/src/app/metadata/provider/effect/collection.effect.ts b/ui/src/app/metadata/provider/effect/collection.effect.ts index df8fc574d..6d135bdd1 100644 --- a/ui/src/app/metadata/provider/effect/collection.effect.ts +++ b/ui/src/app/metadata/provider/effect/collection.effect.ts @@ -4,7 +4,7 @@ import { Store } from '@ngrx/store'; import { Router } from '@angular/router'; import { of } from 'rxjs'; -import { map, catchError, switchMap, tap, withLatestFrom } from 'rxjs/operators'; +import { map, catchError, switchMap, tap, withLatestFrom, debounceTime } from 'rxjs/operators'; import { ProviderCollectionActionsUnion, ProviderCollectionActionTypes, @@ -25,6 +25,7 @@ import { MetadataProviderService } from '../../domain/service/provider.service'; import * as fromProvider from '../reducer'; import * as fromRoot from '../../../app.reducer'; import { AddFilterSuccess, FilterCollectionActionTypes } from '../../filter/action/collection.action'; +import { debounce } from '../../../../../node_modules/rxjs-compat/operator/debounce'; /* istanbul ignore next */ @@ -48,6 +49,7 @@ export class CollectionEffects { selectProviders$ = this.actions$.pipe( ofType(ProviderCollectionActionTypes.SELECT_PROVIDER_REQUEST), map(action => action.payload), + debounceTime(500), switchMap(id => this.providerService .find(id) diff --git a/ui/src/app/schema-form/widget/filter-target/filter-target.component.html b/ui/src/app/schema-form/widget/filter-target/filter-target.component.html index 61b522b0c..482803777 100644 --- a/ui/src/app/schema-form/widget/filter-target/filter-target.component.html +++ b/ui/src/app/schema-form/widget/filter-target/filter-target.component.html @@ -1,20 +1,24 @@
-
- -
-

You must add at least one entity id target.

  • {{ id }} diff --git a/ui/src/app/schema-form/widget/filter-target/filter-target.component.ts b/ui/src/app/schema-form/widget/filter-target/filter-target.component.ts index 5912c9cd5..ab810dc32 100644 --- a/ui/src/app/schema-form/widget/filter-target/filter-target.component.ts +++ b/ui/src/app/schema-form/widget/filter-target/filter-target.component.ts @@ -93,8 +93,8 @@ export class FilterTargetComponent extends ObjectWidget implements OnDestroy, Af select(value: string): void { this.formProperty.getProperty('entityAttributesFilterTargetType').setValue(value); this.setTargetValue([]); - this.script.setValue(null); - this.search.setValue(null); + this.script.reset(); + this.search.reset(); } removeId(id: string): void { diff --git a/ui/src/assets/schema/filter/entity-attributes.schema.json b/ui/src/assets/schema/filter/entity-attributes.schema.json index e1b747a6d..e57792b00 100644 --- a/ui/src/assets/schema/filter/entity-attributes.schema.json +++ b/ui/src/assets/schema/filter/entity-attributes.schema.json @@ -81,7 +81,7 @@ } } }, - "required": ["value"] + "required": ["value", "entityAttributesFilterTargetType"] }, "relyingPartyOverrides": { "type": "object", diff --git a/ui/src/assets/schema/provider/filebacked-http-common.editor.schema.json b/ui/src/assets/schema/provider/filebacked-http-common.editor.schema.json index 8001aa1c5..98545e7e4 100644 --- a/ui/src/assets/schema/provider/filebacked-http-common.editor.schema.json +++ b/ui/src/assets/schema/provider/filebacked-http-common.editor.schema.json @@ -14,6 +14,7 @@ "satisfyAnyPredicates" ], "required": [ + "name", "xmlId", "metadataURL" ], @@ -223,7 +224,7 @@ "default": true }, "satisfyAnyPredicates": { - "title": "Satisy Any Predicates?", + "title": "Satisfy Any Predicates?", "description": "Flag which determines whether predicates used in filtering are connected by a logical 'OR' (true) or by logical 'AND' (false).", "type": "boolean", "widget": { diff --git a/ui/src/assets/schema/provider/filebacked-http-common.schema.json b/ui/src/assets/schema/provider/filebacked-http-common.schema.json index 73414de00..4e01b4f76 100644 --- a/ui/src/assets/schema/provider/filebacked-http-common.schema.json +++ b/ui/src/assets/schema/provider/filebacked-http-common.schema.json @@ -168,7 +168,7 @@ "default": true }, "satisfyAnyPredicates": { - "title": "Satisy Any Predicates?", + "title": "Satisfy Any Predicates?", "description": "Flag which determines whether predicates used in filtering are connected by a logical 'OR' (true) or by logical 'AND' (false).", "type": "boolean", "widget": { diff --git a/ui/src/theme/buttons.scss b/ui/src/theme/buttons.scss index 6cb4a68f5..0897adbbe 100644 --- a/ui/src/theme/buttons.scss +++ b/ui/src/theme/buttons.scss @@ -9,6 +9,12 @@ background: none; } +.btn.btn-link { + &:focus { + outline: 5px auto -webkit-focus-ring-color; + } +} + .nav.nav-wizard { .nav-item { margin-right: $custom-control-spacer-x * 3; diff --git a/ui/src/theme/forms.scss b/ui/src/theme/forms.scss index 5d4664008..3b0db210f 100644 --- a/ui/src/theme/forms.scss +++ b/ui/src/theme/forms.scss @@ -76,6 +76,7 @@ Json schema form resize: vertical; font-family: monospace; min-height: 166px; + margin-bottom: 0px; } @media only screen and (max-width: 1200px) {