Browse Source

UI: Fixed empty delete dialog in javascript library panel

pull/13187/head
Vladyslav_Prykhodko 1 year ago
parent
commit
dfbb753d5e
  1. 1
      ui-ngx/src/app/modules/home/models/entity/entity-details-page-component.models.ts
  2. 23
      ui-ngx/src/app/modules/home/pages/admin/resource/js-library-table-config.resolver.ts
  3. 2
      ui-ngx/src/app/modules/home/pages/admin/resource/js-resource.component.html
  4. 3
      ui-ngx/src/app/modules/home/pages/admin/resource/js-resource.component.ts

1
ui-ngx/src/app/modules/home/models/entity/entity-details-page-component.models.ts

@ -16,4 +16,5 @@
export interface IEntityDetailsPageComponent {
reload(): void;
goBack(): void;
}

23
ui-ngx/src/app/modules/home/pages/admin/resource/js-library-table-config.resolver.ts

@ -26,10 +26,10 @@ import { Router } from '@angular/router';
import {
Resource,
ResourceInfo,
ResourceInfoWithReferences,
ResourceSubType,
ResourceSubTypeTranslationMap,
ResourceType,
ResourceInfoWithReferences,
toResourceDeleteResult
} from '@shared/models/resource.models';
import { EntityType, entityTypeResources } from '@shared/models/entity-type.models';
@ -57,7 +57,6 @@ import {
ResourcesInUseDialogData
} from "@shared/components/resource/resources-in-use-dialog.component";
import { ResourcesDatasource } from "@home/pages/admin/resource/resources-datasource";
import { AuthUser } from '@shared/models/user.model';
@Injectable()
export class JsLibraryTableConfigResolver {
@ -166,6 +165,8 @@ export class JsLibraryTableConfigResolver {
case 'downloadResource':
this.downloadResource(action.event, action.entity);
return true;
case 'deleteLibrary':
this.deleteResource(action.event, action.entity);
}
return false;
}
@ -200,7 +201,11 @@ export class JsLibraryTableConfigResolver {
).subscribe(
(deleteResult) => {
if (deleteResult.success) {
this.config.updateData();
if (this.config.getEntityDetailsPage()) {
this.config.getEntityDetailsPage().goBack();
} else {
this.config.updateData(true);
}
} else if (deleteResult.resourceIsReferencedError) {
const resources: ResourceInfoWithReferences[] = [{...resource, ...{references: deleteResult.references}}];
const data = {
@ -221,11 +226,13 @@ export class JsLibraryTableConfigResolver {
data
}).afterClosed().subscribe((resources) => {
if (resources) {
this.resourceService.deleteResource(resource.id.id, true).subscribe(
() => {
this.config.updateData();
this.resourceService.deleteResource(resource.id.id, true).subscribe(() => {
if (this.config.getEntityDetailsPage()) {
this.config.getEntityDetailsPage().goBack();
} else {
this.config.updateData(true);
}
);
});
}
});
} else {
@ -276,7 +283,7 @@ export class JsLibraryTableConfigResolver {
message: this.translate.instant('javascript.javascript-resources-are-in-use-text'),
deleteText: 'javascript.delete-javascript-resource-in-use-text',
selectedText: 'javascript.selected-javascript-resources',
datasource: new ResourcesDatasource(this.resourceService, resourcesWithReferences, entity => true),
datasource: new ResourcesDatasource(this.resourceService, resourcesWithReferences, () => true),
columns: ['select', 'title', 'references']
}
};

2
ui-ngx/src/app/modules/home/pages/admin/resource/js-resource.component.html

@ -30,7 +30,7 @@
</button>
<button mat-raised-button color="primary"
[disabled]="(isLoading$ | async)"
(click)="onEntityAction($event, 'delete')"
(click)="onEntityAction($event, 'deleteLibrary')"
[class.!hidden]="hideDelete() || isEdit">
{{ 'javascript.delete' | translate }}
</button>

3
ui-ngx/src/app/modules/home/pages/admin/resource/js-resource.component.ts

@ -34,7 +34,6 @@ import { startWith, takeUntil } from 'rxjs/operators';
import { ActionNotificationShow } from '@core/notification/notification.actions';
import { isDefinedAndNotNull } from '@core/utils';
import { getCurrentAuthState } from '@core/auth/auth.selectors';
import { scadaSymbolGeneralStateHighlightRules } from '@home/pages/scada-symbol/scada-symbol-editor.models';
@Component({
selector: 'tb-js-resource',
@ -171,6 +170,4 @@ export class JsResourceComponent extends EntityComponent<Resource> implements On
this.entityForm.get('content').enable({ emitEvent: false });
}
}
protected readonly highlightRules = scadaSymbolGeneralStateHighlightRules;
}

Loading…
Cancel
Save