|
|
|
@ -122,7 +122,19 @@ export class WidgetEditorComponent extends PageComponent implements OnInit, OnDe |
|
|
|
widget: WidgetInfo; |
|
|
|
origWidget: WidgetInfo; |
|
|
|
|
|
|
|
isDirty = false; |
|
|
|
private isEditModeWidget = false; |
|
|
|
private _isDirty = false; |
|
|
|
|
|
|
|
get isDirty(): boolean { |
|
|
|
return this._isDirty || this.isEditModeWidget; |
|
|
|
} |
|
|
|
|
|
|
|
set isDirty(value: boolean) { |
|
|
|
if (!value) { |
|
|
|
this.isEditModeWidget = false; |
|
|
|
} |
|
|
|
this._isDirty = value; |
|
|
|
} |
|
|
|
|
|
|
|
fullscreen = false; |
|
|
|
htmlFullscreen = false; |
|
|
|
@ -450,6 +462,10 @@ export class WidgetEditorComponent extends PageComponent implements OnInit, OnDe |
|
|
|
break; |
|
|
|
case 'widgetEditUpdated': |
|
|
|
this.onWidgetEditUpdated(message.data); |
|
|
|
this.onWidgetEditModeToggled(false); |
|
|
|
break; |
|
|
|
case 'widgetEditModeToggle': |
|
|
|
this.onWidgetEditModeToggled(message.data); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -486,6 +502,10 @@ export class WidgetEditorComponent extends PageComponent implements OnInit, OnDe |
|
|
|
this.isDirty = true; |
|
|
|
} |
|
|
|
|
|
|
|
private onWidgetEditModeToggled(mode: boolean) { |
|
|
|
this.isEditModeWidget = mode; |
|
|
|
} |
|
|
|
|
|
|
|
private onWidgetException(details: ExceptionData) { |
|
|
|
if (!this.gotError) { |
|
|
|
this.gotError = true; |
|
|
|
@ -639,7 +659,7 @@ export class WidgetEditorComponent extends PageComponent implements OnInit, OnDe |
|
|
|
} |
|
|
|
|
|
|
|
undoDisabled(): boolean { |
|
|
|
return !this.isDirty |
|
|
|
return !this._isDirty |
|
|
|
|| !this.iframeWidgetEditModeInited |
|
|
|
|| this.saveWidgetPending |
|
|
|
|| this.saveWidgetAsPending; |
|
|
|
@ -647,7 +667,7 @@ export class WidgetEditorComponent extends PageComponent implements OnInit, OnDe |
|
|
|
|
|
|
|
saveDisabled(): boolean { |
|
|
|
return this.isReadOnly |
|
|
|
|| !this.isDirty |
|
|
|
|| !this._isDirty |
|
|
|
|| !this.iframeWidgetEditModeInited |
|
|
|
|| this.saveWidgetPending |
|
|
|
|| this.saveWidgetAsPending; |
|
|
|
@ -799,4 +819,11 @@ export class WidgetEditorComponent extends PageComponent implements OnInit, OnDe |
|
|
|
this.widget.defaultConfig = JSON.stringify(config); |
|
|
|
this.isDirty = true; |
|
|
|
} |
|
|
|
|
|
|
|
get confirmOnExitMessage(): string { |
|
|
|
if (this.isEditModeWidget && !this._isDirty) { |
|
|
|
return this.translate.instant('widget.confirm-to-exit-editor-html'); |
|
|
|
} |
|
|
|
return ''; |
|
|
|
} |
|
|
|
} |
|
|
|
|