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) {