diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.html
index 1423000d4a..6d2b4d4a30 100644
--- a/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.html
+++ b/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.html
@@ -39,7 +39,7 @@
(blur)="key.isFocused = false; inputChanged(source, key)">
{{key.settings.icon}}
- {{key.settings.requiredErrorMessage}}
+ {{ getErrorMessageText(key.settings.requiredErrorMessage, '') }}
@@ -59,52 +59,54 @@
(blur)="key.isFocused = false; inputChanged(source, key)">
{{key.settings.icon}}
- {{key.settings.requiredErrorMessage}}
+ {{ getErrorMessageText(key.settings.requiredErrorMessage, '') }}
- {{ 'widgets.input-widgets.min-value-error' | translate:{value: key.settings.minValue} }}
+ {{ getErrorMessageText(key.settings.minValueErrorMessage,
+ 'widgets.input-widgets.min-value-error',
+ {value: key.settings.minValue}) }}
- {{ 'widgets.input-widgets.max-value-error' | translate:{value: key.settings.maxValue} }}
+ {{ getErrorMessageText(key.settings.maxValueErrorMessage,
+ 'widgets.input-widgets.max-value-error',
+ {value: key.settings.maxValue}) }}
- {{key.label}}
+ {{key.label}}
- {{key.label}}
+ {{key.label}}
@@ -114,12 +116,12 @@
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.scss
index de1a672535..a5afcfabf3 100644
--- a/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.scss
+++ b/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.scss
@@ -44,7 +44,13 @@
display: block;
margin-top: 20px;
margin-bottom: 16px;
- white-space: normal;
+ .label-wrapper {
+ white-space: normal;
+ }
+ }
+
+ mat-slide-toggle {
+ height: auto;
}
.date-time-input {
@@ -56,20 +62,6 @@
.vertical-alignment {
flex-direction: column;
-
- mat-checkbox,
- mat-slide-toggle {
- margin-top: 18px;
- }
-
- mat-slide-toggle {
- display: flex;
- justify-content: space-between;
- }
- }
-
- .vertically-aligned {
- flex-direction: column;
}
}
}
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.ts
index 21a8d1d062..361b1a06e9 100644
--- a/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.ts
+++ b/ui-ngx/src/app/modules/home/components/widget/lib/multiple-input-widget.component.ts
@@ -47,6 +47,8 @@ interface MultipleInputWidgetSettings {
widgetTitle: string;
showActionButtons: boolean;
updateAllValues: boolean;
+ saveButtonLabel: string;
+ resetButtonLabel: string;
showResultMessage: boolean;
showGroupTitle: boolean;
groupTitle: string;
@@ -67,27 +69,19 @@ interface MultipleInputWidgetDataKeySettings {
maxValue?: number;
requiredErrorMessage?: string;
invalidDateErrorMessage?: string;
- minErrorMessage?: string;
- maxErrorMessage?: string;
+ minValueErrorMessage?: string;
+ maxValueErrorMessage?: string;
icon: string;
inputTypeNumber?: boolean;
readOnly?: boolean;
disabledOnCondition?: boolean;
}
-interface MultipleInputWidgetDataKeyErrorMessages {
- requiredErrorMessage?: string;
- invalidDateErrorMessage?: string;
- minErrorMessage?: string;
- maxErrorMessage?: string;
-}
-
interface MultipleInputWidgetDataKey extends DataKey {
formId?: string;
settings: MultipleInputWidgetDataKeySettings;
isFocused: boolean;
value?: any;
- errorMessages?: MultipleInputWidgetDataKeyErrorMessages;
}
interface MultipleInputWidgetSource {
@@ -170,6 +164,17 @@ export class MultipleInputWidgetComponent extends PageComponent implements OnIni
this.settings.groupTitle = this.settings.groupTitle || '${entityName}';
+ if (this.settings.saveButtonLabel && this.settings.saveButtonLabel.length) {
+ this.settings.saveButtonLabel = this.utils.customTranslation(this.settings.saveButtonLabel, this.settings.saveButtonLabel);
+ } else {
+ this.settings.saveButtonLabel = this.translate.instant('action.save');
+ }
+ if (this.settings.resetButtonLabel && this.settings.resetButtonLabel.length) {
+ this.settings.resetButtonLabel = this.utils.customTranslation(this.settings.resetButtonLabel, this.settings.resetButtonLabel);
+ } else {
+ this.settings.resetButtonLabel = this.translate.instant('action.undo');
+ }
+
// For backward compatibility
if (isUndefined(this.settings.showActionButtons)) {
this.settings.showActionButtons = true;
@@ -338,25 +343,40 @@ export class MultipleInputWidgetComponent extends PageComponent implements OnIni
private updateWidgetDisplaying() {
this.changeAlignment = (this.ctx.$container && this.ctx.$container[0].offsetWidth < 620);
- this.smallWidthContainer = (this.ctx.$container && this.ctx.$container[0].offsetWidth < 420);
}
public onDataUpdated() {
- this.ngZone.run(() => {
+ // this.ngZone.run(() => {
this.updateWidgetData(this.subscription.data);
this.ctx.detectChanges();
- });
+ // });
}
private resize() {
- this.ngZone.run(() => {
+ // this.ngZone.run(() => {
this.updateWidgetDisplaying();
this.ctx.detectChanges();
- });
+ // });
}
public getGroupTitle(datasource: Datasource): string {
- return createLabelFromDatasource(datasource, this.settings.groupTitle);
+ const groupTitle = createLabelFromDatasource(datasource, this.settings.groupTitle);
+ return this.utils.customTranslation(groupTitle, groupTitle);
+ }
+
+ public getErrorMessageText(errorMessage, defaultMessage, messageValues?): string {
+ let messageText;
+ if (errorMessage && errorMessage.length) {
+ messageText = this.utils.customTranslation(errorMessage, errorMessage);
+ } else if (defaultMessage && defaultMessage.length) {
+ if (!messageValues) {
+ messageValues = {};
+ }
+ messageText = this.translate.instant(defaultMessage, messageValues);
+ } else {
+ messageText = '';
+ }
+ return messageText;
}
public visibleKeys(source: MultipleInputWidgetSource): MultipleInputWidgetDataKey[] {
@@ -480,8 +500,8 @@ export class MultipleInputWidgetComponent extends PageComponent implements OnIni
if (tasks.length) {
forkJoin(tasks).subscribe(
() => {
- // this.multipleInputFormGroup.reset(undefined, {emitEvent: false});
this.multipleInputFormGroup.markAsPristine();
+ this.ctx.detectChanges();
if (this.settings.showResultMessage) {
this.ctx.showSuccessToast(this.translate.instant('widgets.input-widgets.update-successful'),
1000, 'bottom', 'left', this.toastTargetId);
@@ -494,8 +514,8 @@ export class MultipleInputWidgetComponent extends PageComponent implements OnIni
}
});
} else {
- // this.multipleInputFormGroup.reset(undefined, {emitEvent: false});
this.multipleInputFormGroup.markAsPristine();
+ this.ctx.detectChanges();
}
}