UI: Handle error on apply preview upload and download
This commit is contained in:
parent
9bcdc86d09
commit
413cc12126
@ -253,43 +253,47 @@ export class ScadaSymbolComponent extends PageComponent
|
|||||||
|
|
||||||
enterPreviewMode() {
|
enterPreviewMode() {
|
||||||
this.previewMetadata = this.scadaSymbolFormGroup.get('metadata').value;
|
this.previewMetadata = this.scadaSymbolFormGroup.get('metadata').value;
|
||||||
this.symbolData.scadaSymbolContent = this.prepareScadaSymbolContent(this.previewMetadata);
|
try {
|
||||||
this.previewScadaSymbolObjectSettings = {
|
this.symbolData.scadaSymbolContent = this.prepareScadaSymbolContent(this.previewMetadata);
|
||||||
behavior: {},
|
this.previewScadaSymbolObjectSettings = {
|
||||||
properties: {}
|
behavior: {},
|
||||||
};
|
properties: {}
|
||||||
this.scadaPreviewFormGroup.patchValue({
|
};
|
||||||
scadaSymbolObjectSettings: this.previewScadaSymbolObjectSettings
|
this.scadaPreviewFormGroup.patchValue({
|
||||||
}, {emitEvent: false});
|
scadaSymbolObjectSettings: this.previewScadaSymbolObjectSettings
|
||||||
this.scadaPreviewFormGroup.markAsPristine();
|
}, {emitEvent: false});
|
||||||
const settings: ScadaSymbolWidgetSettings = {...scadaSymbolWidgetDefaultSettings,
|
this.scadaPreviewFormGroup.markAsPristine();
|
||||||
...{
|
const settings: ScadaSymbolWidgetSettings = {...scadaSymbolWidgetDefaultSettings,
|
||||||
|
...{
|
||||||
simulated: true,
|
simulated: true,
|
||||||
scadaSymbolUrl: null,
|
scadaSymbolUrl: null,
|
||||||
scadaSymbolContent: this.symbolData.scadaSymbolContent,
|
scadaSymbolContent: this.symbolData.scadaSymbolContent,
|
||||||
scadaSymbolObjectSettings: this.previewScadaSymbolObjectSettings,
|
scadaSymbolObjectSettings: this.previewScadaSymbolObjectSettings,
|
||||||
padding: '0',
|
padding: '0',
|
||||||
background: colorBackground('rgba(0,0,0,0)')
|
background: colorBackground('rgba(0,0,0,0)')
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.previewWidget = {
|
this.previewWidget = {
|
||||||
typeFullFqn: 'system.scada_symbol',
|
typeFullFqn: 'system.scada_symbol',
|
||||||
type: widgetType.rpc,
|
type: widgetType.rpc,
|
||||||
sizeX: this.previewMetadata.widgetSizeX || 3,
|
sizeX: this.previewMetadata.widgetSizeX || 3,
|
||||||
sizeY: this.previewMetadata.widgetSizeY || 3,
|
sizeY: this.previewMetadata.widgetSizeY || 3,
|
||||||
row: 0,
|
row: 0,
|
||||||
col: 0,
|
col: 0,
|
||||||
config: {
|
config: {
|
||||||
settings,
|
settings,
|
||||||
showTitle: false,
|
showTitle: false,
|
||||||
dropShadow: false,
|
dropShadow: false,
|
||||||
padding: '0',
|
padding: '0',
|
||||||
margin: '0',
|
margin: '0',
|
||||||
backgroundColor: 'rgba(0,0,0,0)'
|
backgroundColor: 'rgba(0,0,0,0)'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.previewWidgets = [this.previewWidget];
|
this.previewWidgets = [this.previewWidget];
|
||||||
this.previewMode = true;
|
this.previewMode = true;
|
||||||
|
} catch (e) {
|
||||||
|
this.store.dispatch(new ActionNotificationShow({ message: e.message, type: 'error' }));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exitPreviewMode() {
|
exitPreviewMode() {
|
||||||
@ -379,19 +383,23 @@ export class ScadaSymbolComponent extends PageComponent
|
|||||||
metadata = parseScadaSymbolMetadataFromContent(this.origSymbolData.scadaSymbolContent);
|
metadata = parseScadaSymbolMetadataFromContent(this.origSymbolData.scadaSymbolContent);
|
||||||
}
|
}
|
||||||
const linkElement = document.createElement('a');
|
const linkElement = document.createElement('a');
|
||||||
const scadaSymbolContent = this.prepareScadaSymbolContent(metadata);
|
try {
|
||||||
const blob = new Blob([scadaSymbolContent], { type: this.symbolData.imageResource.descriptor.mediaType });
|
const scadaSymbolContent = this.prepareScadaSymbolContent(metadata);
|
||||||
const url = URL.createObjectURL(blob);
|
const blob = new Blob([scadaSymbolContent], { type: this.symbolData.imageResource.descriptor.mediaType });
|
||||||
linkElement.setAttribute('href', url);
|
const url = URL.createObjectURL(blob);
|
||||||
linkElement.setAttribute('download', this.symbolData.imageResource.fileName);
|
linkElement.setAttribute('href', url);
|
||||||
const clickEvent = new MouseEvent('click',
|
linkElement.setAttribute('download', this.symbolData.imageResource.fileName);
|
||||||
{
|
const clickEvent = new MouseEvent('click',
|
||||||
view: window,
|
{
|
||||||
bubbles: true,
|
view: window,
|
||||||
cancelable: false
|
bubbles: true,
|
||||||
}
|
cancelable: false
|
||||||
);
|
}
|
||||||
linkElement.dispatchEvent(clickEvent);
|
);
|
||||||
|
linkElement.dispatchEvent(clickEvent);
|
||||||
|
} catch (e) {
|
||||||
|
this.store.dispatch(new ActionNotificationShow({ message: e.message, type: 'error' }));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
createWidget() {
|
createWidget() {
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<form [formGroup]="uploadImageFormGroup" (ngSubmit)="upload()" style="width: 560px;">
|
<form [formGroup]="uploadImageFormGroup" (ngSubmit)="upload()" style="width: 560px;" tb-toast toastTarget="uploadRoot">
|
||||||
<mat-toolbar color="primary">
|
<mat-toolbar color="primary">
|
||||||
<h2>{{ ( uploadImage ? (isScada ? 'scada.upload-symbol' : 'image.upload-image') : (isScada ? 'scada.update-symbol' : 'image.update-image') ) | translate }}</h2>
|
<h2>{{ ( uploadImage ? (isScada ? 'scada.upload-symbol' : 'image.upload-image') : (isScada ? 'scada.update-symbol' : 'image.update-image') ) | translate }}</h2>
|
||||||
<span class="flex-1"></span>
|
<span class="flex-1"></span>
|
||||||
|
|||||||
@ -41,6 +41,7 @@ import {
|
|||||||
updateScadaSymbolMetadataInContent
|
updateScadaSymbolMetadataInContent
|
||||||
} from '@home/components/widget/lib/scada/scada-symbol.models';
|
} from '@home/components/widget/lib/scada/scada-symbol.models';
|
||||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||||
|
import { ActionNotificationShow } from '@core/notification/notification.actions';
|
||||||
|
|
||||||
export interface UploadImageDialogData {
|
export interface UploadImageDialogData {
|
||||||
imageSubType: ResourceSubType;
|
imageSubType: ResourceSubType;
|
||||||
@ -135,38 +136,48 @@ export class UploadImageDialogComponent extends
|
|||||||
upload(): void {
|
upload(): void {
|
||||||
this.submitted = true;
|
this.submitted = true;
|
||||||
let file: File = this.uploadImageFormGroup.get('file').value;
|
let file: File = this.uploadImageFormGroup.get('file').value;
|
||||||
if (this.uploadImage) {
|
try {
|
||||||
const title: string = this.uploadImageFormGroup.get('title').value;
|
if (this.uploadImage) {
|
||||||
if (this.isScada) {
|
const title: string = this.uploadImageFormGroup.get('title').value;
|
||||||
if (!this.scadaSymbolMetadata) {
|
if (this.isScada) {
|
||||||
this.scadaSymbolMetadata = emptyMetadata();
|
if (!this.scadaSymbolMetadata) {
|
||||||
|
this.scadaSymbolMetadata = emptyMetadata();
|
||||||
|
}
|
||||||
|
if (this.scadaSymbolMetadata.title !== title) {
|
||||||
|
this.scadaSymbolMetadata.title = title;
|
||||||
|
}
|
||||||
|
const newContent = updateScadaSymbolMetadataInContent(this.scadaSymbolContent, this.scadaSymbolMetadata);
|
||||||
|
file = updateFileContent(file, newContent);
|
||||||
}
|
}
|
||||||
if (this.scadaSymbolMetadata.title !== title) {
|
|
||||||
this.scadaSymbolMetadata.title = title;
|
|
||||||
}
|
|
||||||
const newContent = updateScadaSymbolMetadataInContent(this.scadaSymbolContent, this.scadaSymbolMetadata);
|
|
||||||
file = updateFileContent(file, newContent);
|
|
||||||
}
|
|
||||||
forkJoin([
|
|
||||||
this.imageService.uploadImage(file, title, this.data.imageSubType),
|
|
||||||
blobToBase64(file)
|
|
||||||
]).subscribe(([imageInfo, base64]) => {
|
|
||||||
this.dialogRef.close({image: Object.assign(imageInfo, {base64})});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
if (this.isScada) {
|
|
||||||
blobToText(file).subscribe(scadaSymbolContent => {
|
|
||||||
this.dialogRef.close({scadaSymbolContent});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
const image = this.data.image;
|
|
||||||
forkJoin([
|
forkJoin([
|
||||||
this.imageService.updateImage(imageResourceType(image), image.resourceKey, file),
|
this.imageService.uploadImage(file, title, this.data.imageSubType),
|
||||||
blobToBase64(file)
|
blobToBase64(file)
|
||||||
]).subscribe(([imageInfo, base64]) => {
|
]).subscribe(([imageInfo, base64]) => {
|
||||||
this.dialogRef.close({image:Object.assign(imageInfo, {base64})});
|
this.dialogRef.close({image: Object.assign(imageInfo, {base64})});
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
if (this.isScada) {
|
||||||
|
blobToText(file).subscribe(scadaSymbolContent => {
|
||||||
|
this.dialogRef.close({scadaSymbolContent});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
const image = this.data.image;
|
||||||
|
forkJoin([
|
||||||
|
this.imageService.updateImage(imageResourceType(image), image.resourceKey, file),
|
||||||
|
blobToBase64(file)
|
||||||
|
]).subscribe(([imageInfo, base64]) => {
|
||||||
|
this.dialogRef.close({image:Object.assign(imageInfo, {base64})});
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
this.store.dispatch(new ActionNotificationShow({
|
||||||
|
message: e.message,
|
||||||
|
type: 'error',
|
||||||
|
verticalPosition: 'bottom',
|
||||||
|
horizontalPosition: 'right',
|
||||||
|
target: 'uploadRoot'
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user