-
+ [ngModel]="val.theme.__state.svgIcon"
+ [name]="'svgIcon_'+idName+i"
+ [id]="'svgIcon_'+idName+i"
+ (ngModelChange)="onChange($event)">
+
@@ -279,7 +346,8 @@
[ngModel]="arr.__state.matchers"
[name]="'arr_m_'+idName+i"
[id]="'arr_m_'+idName+i"
- (change)="onChange($event)">
+ (ngModelChange)="onChange($event)">
+
diff --git a/src/frontend/app/ui/settings/template/settings-entry/settings-entry.component.ts b/src/frontend/app/ui/settings/template/settings-entry/settings-entry.component.ts
index 4d980f75..f767496e 100644
--- a/src/frontend/app/ui/settings/template/settings-entry/settings-entry.component.ts
+++ b/src/frontend/app/ui/settings/template/settings-entry/settings-entry.component.ts
@@ -3,7 +3,15 @@ import {ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors
import {Utils} from '../../../../../../common/Utils';
import {propertyTypes} from 'typeconfig/common';
import {SearchQueryParserService} from '../../../gallery/search/search-query-parser.service';
-import {MapLayers, MapPathGroupConfig, MapPathGroupThemeConfig, NavigationLinkConfig, NavigationLinkTypes, TAGS, ThemeConfig} from '../../../../../../common/config/public/ClientConfig';
+import {
+ MapLayers,
+ MapPathGroupConfig,
+ MapPathGroupThemeConfig,
+ NavigationLinkConfig,
+ NavigationLinkTypes,
+ TAGS,
+ ThemeConfig
+} from '../../../../../../common/config/public/ClientConfig';
import {SettingsService} from '../../settings.service';
import {WebConfig} from '../../../../../../common/config/private/WebConfig';
import {JobScheduleConfig, UserConfig} from '../../../../../../common/config/private/PrivateConfig';
@@ -69,6 +77,7 @@ export class SettingsEntryComponent
public arrayType: string;
public uiType: string;
newThemeModalRef: any;
+ iconModal: { ref?: any, error?: string };
constructor(private searchQueryParserService: SearchQueryParserService,
@@ -217,11 +226,16 @@ export class SettingsEntryComponent
} else {
this.arrayType = this.state.arrayType;
}
+
+ if (this.state.tags?.uiOptions) {
+ this.state.isEnumType = true;
+ }
this.uiType = this.arrayType;
if (!this.state.isEnumType &&
!this.state.isEnumArrayType &&
this.type !== 'boolean' &&
this.type !== 'SearchQuery' &&
+ this.type !== 'SVGIconConfig' &&
this.arrayType !== 'MapLayers' &&
this.arrayType !== 'NavigationLinkConfig' &&
this.arrayType !== 'MapPathGroupConfig' &&
@@ -242,9 +256,6 @@ export class SettingsEntryComponent
this.placeholder = this.state.tags?.hint || this.state.default;
- if (this.state.tags?.uiOptions) {
- this.state.isEnumType = true;
- }
this.title = '';
if (this.state.readonly) {
this.title = $localize`readonly` + ', ';
@@ -404,11 +415,54 @@ export class SettingsEntryComponent
}
+ showIconModal(template: TemplateRef