UI: Fixed empty delete dialog in javascript library panel

This commit is contained in:
Vladyslav_Prykhodko 2025-04-11 16:13:52 +03:00
parent 122dea9feb
commit dfbb753d5e
4 changed files with 17 additions and 12 deletions

View File

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

View File

@ -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']
}
};

View File

@ -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>

View File

@ -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;
}