diff --git a/backend/src/main/resources/i18n/messages.properties b/backend/src/main/resources/i18n/messages.properties index f3054d636..5bf9688c9 100644 --- a/backend/src/main/resources/i18n/messages.properties +++ b/backend/src/main/resources/i18n/messages.properties @@ -41,6 +41,7 @@ action.copy=Copy action.choose-file=Choose File action.search-by=Search By action.preview=Preview +action.preview-xml=Preview XML action.select-metadata-filter-type=Select a metadata filter type action.add-authentication-method=Add Authentication Method action.move-up=Move Up @@ -51,6 +52,9 @@ action.manage-filters=Manage Filters action.version-history=Version History action.options=Options action.xml=XML +action.manage=Manage +action.close=Close +action.back-to-top=Back to Top value.enabled=Enabled value.disabled=Disabled @@ -240,6 +244,7 @@ label.filter-enabled=Filter Enabled label.filter-target=FilterTarget label.filter-type=Filter Type label.option=Option +label.options=Options label.value=Value label.binding-type=Binding Type label.sign-assertion=Sign Assertions @@ -261,6 +266,8 @@ label.make-default=Make Default label.metadata-provider-name-dashboard-display-only=Metadata Provider Name (Dashboard Display Only) label.default-authentication-methods=Default Authentication Method(s) label.new-of-type=New { type } +label.filters=Filters +label.attributes=Attributes label.metadata-filter-name=Metadata Filter Name (Dashboard Display Only) label.filter-enable=Enable this Filter? diff --git a/ui/src/app/app.routing.ts b/ui/src/app/app.routing.ts index 99b8d88de..751b0a36c 100644 --- a/ui/src/app/app.routing.ts +++ b/ui/src/app/app.routing.ts @@ -15,7 +15,8 @@ const routes: Routes = [ @NgModule({ imports: [RouterModule.forRoot(routes, { - preloadingStrategy: PreloadAllModules + preloadingStrategy: PreloadAllModules, + anchorScrolling: 'enabled' })], exports: [RouterModule] }) diff --git a/ui/src/app/metadata/configuration/action/configuration.action.ts b/ui/src/app/metadata/configuration/action/configuration.action.ts index b5b86ade1..78e834eea 100644 --- a/ui/src/app/metadata/configuration/action/configuration.action.ts +++ b/ui/src/app/metadata/configuration/action/configuration.action.ts @@ -4,10 +4,6 @@ import { Schema } from '../model/schema'; import { Wizard } from '../../../wizard/model'; export enum ConfigurationActionTypes { - LOAD_METADATA_REQUEST = '[Metadata Configuration] Load Metadata Request', - LOAD_METADATA_SUCCESS = '[Metadata Configuration] Load Metadata Success', - LOAD_METADATA_ERROR = '[Metadata Configuration] Load Metadata Error', - LOAD_SCHEMA_REQUEST = '[Metadata Configuration] Load Schema Request', LOAD_SCHEMA_SUCCESS = '[Metadata Configuration] Load Schema Success', LOAD_SCHEMA_ERROR = '[Metadata Configuration] Load Schema Error', @@ -26,24 +22,6 @@ export enum ConfigurationActionTypes { CLEAR = '[Metadata Configuration] Clear' } -export class LoadMetadataRequest implements Action { - readonly type = ConfigurationActionTypes.LOAD_METADATA_REQUEST; - - constructor(public payload: { id: string, type: string }) { } -} - -export class LoadMetadataSuccess implements Action { - readonly type = ConfigurationActionTypes.LOAD_METADATA_SUCCESS; - - constructor(public payload: Metadata) { } -} - -export class LoadMetadataError implements Action { - readonly type = ConfigurationActionTypes.LOAD_METADATA_ERROR; - - constructor(public payload: any) { } -} - export class LoadSchemaRequest implements Action { readonly type = ConfigurationActionTypes.LOAD_SCHEMA_REQUEST; @@ -83,7 +61,7 @@ export class LoadXmlError implements Action { export class SetMetadata implements Action { readonly type = ConfigurationActionTypes.SET_METADATA; - constructor(public payload: Metadata) { } + constructor(public payload: { id: string, type: string }) { } } export class SetDefinition implements Action { @@ -113,9 +91,6 @@ export class ClearConfiguration implements Action { } export type ConfigurationActionsUnion = - | LoadMetadataRequest - | LoadMetadataSuccess - | LoadMetadataError | LoadSchemaRequest | LoadSchemaSuccess | LoadSchemaError diff --git a/ui/src/app/metadata/configuration/component/filter-configuration-list-item.component.html b/ui/src/app/metadata/configuration/component/filter-configuration-list-item.component.html new file mode 100644 index 000000000..b35efc1a9 --- /dev/null +++ b/ui/src/app/metadata/configuration/component/filter-configuration-list-item.component.html @@ -0,0 +1,48 @@ +
+ {{ index + 1 }} +
+ + +
+ + {{ filter['@type'] }} + + Enabled + Disabled + +
+
+
+
+ +   + Preview XML + +
+ +   + Edit + + +
+
+ + +
\ No newline at end of file diff --git a/ui/src/app/metadata/configuration/component/filter-configuration-list-item.component.ts b/ui/src/app/metadata/configuration/component/filter-configuration-list-item.component.ts new file mode 100644 index 000000000..76ff0eefe --- /dev/null +++ b/ui/src/app/metadata/configuration/component/filter-configuration-list-item.component.ts @@ -0,0 +1,40 @@ +import { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core'; +import { MetadataFilter } from '../../domain/model'; +import { MetadataConfigurationService } from '../service/configuration.service'; +import { Wizard } from '../../../wizard/model'; +import { MetadataConfiguration } from '../model/metadata-configuration'; + +@Component({ + selector: 'filter-configuration-list-item', + templateUrl: './filter-configuration-list-item.component.html' +}) +export class FilterConfigurationListItemComponent implements OnChanges { + @Input() filter: MetadataFilter; + @Input() index: number; + @Input() isFirst: boolean; + @Input() isLast: boolean; + + @Output() onUpdateOrderUp: EventEmitter = new EventEmitter(); + @Output() onUpdateOrderDown: EventEmitter = new EventEmitter(); + @Output() onRemove: EventEmitter = new EventEmitter(); + + open = false; + configuration: MetadataConfiguration; + + constructor( + private configService: MetadataConfigurationService + ) {} + + ngOnChanges(changes: SimpleChanges): void { + if (changes.filter) { + const definition = this.configService.getDefinition(this.filter['@type']); + this.configService.loadSchema(definition.schema).subscribe(schema => { + this.configuration = this.configService.getMetadataConfiguration( + this.filter, + definition, + schema + ); + }); + } + } +} diff --git a/ui/src/app/metadata/configuration/component/filter-configuration-list.component.html b/ui/src/app/metadata/configuration/component/filter-configuration-list.component.html new file mode 100644 index 000000000..af8dd280d --- /dev/null +++ b/ui/src/app/metadata/configuration/component/filter-configuration-list.component.html @@ -0,0 +1,13 @@ +
    +
  • + +
  • +
\ No newline at end of file diff --git a/ui/src/app/metadata/configuration/component/filter-configuration-list.component.ts b/ui/src/app/metadata/configuration/component/filter-configuration-list.component.ts new file mode 100644 index 000000000..b155926d6 --- /dev/null +++ b/ui/src/app/metadata/configuration/component/filter-configuration-list.component.ts @@ -0,0 +1,8 @@ +import { Component } from '@angular/core'; +import { FilterListComponent } from '../../filter/container/filter-list.component'; + +@Component({ + selector: 'filter-configuration-list', + templateUrl: './filter-configuration-list.component.html' +}) +export class FilterConfigurationListComponent extends FilterListComponent { } diff --git a/ui/src/app/metadata/configuration/component/metadata-configuration.component.html b/ui/src/app/metadata/configuration/component/metadata-configuration.component.html index 82034cca4..965b5382d 100644 --- a/ui/src/app/metadata/configuration/component/metadata-configuration.component.html +++ b/ui/src/app/metadata/configuration/component/metadata-configuration.component.html @@ -1,14 +1,17 @@
-
+

- + 0{{ i + 1 }} - {{ section.label | translate }} + {{ section.label | translate }}

-
+