cast objects, find bugs

This commit is contained in:
Dan Percic 2021-10-06 16:23:07 +03:00
parent 4357c7fc59
commit 9a85d54990
15 changed files with 56 additions and 59 deletions

View File

@ -24,8 +24,8 @@
></iqser-circle-button>
</ng-template>
<ng-template #tableItemTemplate let-download="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as download">
<div class="cell">
<div [class.no-bold]="download.lastDownload" class="table-item-title heading">
{{ download.filename }}

View File

@ -53,8 +53,8 @@
</ng-container>
</ng-template>
<ng-template #tableItemTemplate let-field="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as field">
<div class="cell">
<iqser-editable-input
(save)="field.name = $event"

View File

@ -97,8 +97,8 @@
</div>
</ng-template>
<ng-template #tableItemTemplate let-log="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as log">
<div class="cell">
{{ log.message }}
</div>

View File

@ -25,8 +25,8 @@
</div>
</section>
<ng-template #tableItemTemplate let-color="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as color">
<div class="cell">
<div [translate]="translations[color.key]" class="table-item-title heading"></div>
</div>

View File

@ -77,8 +77,8 @@
</div>
</ng-template>
<ng-template #tableItemTemplate let-dict="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as dict">
<div class="cell">
<div [ngStyle]="{ 'background-color': dict.hexColor }" class="color-square"></div>
<div class="dict-name">

View File

@ -64,8 +64,8 @@
</div>
</ng-template>
<ng-template #tableItemTemplate let-attribute="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as attribute">
<div class="cell">
{{ attribute.label }}
</div>

View File

@ -38,7 +38,7 @@
<ng-template #actionsTemplate let-dossierTemplate="entity">
<redaction-dossier-template-actions
(loadDossierTemplatesData)="loadDossierTemplatesData()"
(loadDossierTemplatesData)="loadDossierTemplateStats()"
[dossierTemplateId]="dossierTemplate.dossierTemplateId"
class="actions-container"
></redaction-dossier-template-actions>
@ -61,8 +61,8 @@
</div>
</ng-template>
<ng-template #tableItemTemplate let-dossierTemplate="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as dossierTemplate">
<div class="cell">
<div class="table-item-title heading">
{{ dossierTemplate.name }}

View File

@ -13,7 +13,6 @@ import {
TableColumnConfig,
Toaster,
} from '@iqser/common-ui';
import { DossierTemplateControllerService } from '@redaction/red-ui-http';
import { UserService } from '@services/user.service';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { RouterHistoryService } from '@services/router-history.service';
@ -42,22 +41,21 @@ export class DossierTemplatesListingScreenComponent extends ListingComponent<Dos
];
constructor(
protected readonly _injector: Injector,
private readonly _toaster: Toaster,
protected readonly _injector: Injector,
private readonly _userService: UserService,
private readonly _loadingService: LoadingService,
private readonly _appStateService: AppStateService,
private readonly _dossierTemplatesService: DossierTemplatesService,
private readonly _dialogService: AdminDialogService,
readonly routerHistoryService: RouterHistoryService,
readonly userPreferenceService: UserPreferenceService,
private readonly _dossierTemplateControllerService: DossierTemplateControllerService,
private readonly _dossierTemplatesService: DossierTemplatesService,
) {
super(_injector);
}
ngOnInit(): void {
this.loadDossierTemplatesData();
this.loadDossierTemplateStats();
}
openBulkDeleteTemplatesDialog($event?: MouseEvent) {
@ -66,35 +64,13 @@ export class DossierTemplatesListingScreenComponent extends ListingComponent<Dos
});
}
loadDossierTemplatesData() {
this._appStateService.reset();
this._loadDossierTemplateStats();
}
openAddDossierTemplateDialog() {
this._dialogService.openDialog('addEditDossierTemplate', null, null, () => {
this.loadDossierTemplatesData();
this.loadDossierTemplateStats();
});
}
private async _deleteTemplates(templateIds = this.listingService.selected.map(d => d.dossierTemplateId)) {
await this._dossierTemplateControllerService
.deleteDossierTemplates(templateIds)
.toPromise()
.catch(error => {
if (error.status === 409) {
this._toaster.error(_('dossier-templates-listing.error.conflict'));
} else {
this._toaster.error(_('dossier-templates-listing.error.generic'));
}
});
this.listingService.setSelected([]);
await this._dossierTemplatesService.loadAll().toPromise();
await this._appStateService.loadDictionaryData();
this.loadDossierTemplatesData();
}
private _loadDossierTemplateStats() {
loadDossierTemplateStats() {
this.entitiesService.all.forEach(rs => {
const dictionaries = this._appStateService.dictionaryData[rs.dossierTemplateId];
if (dictionaries) {
@ -107,4 +83,21 @@ export class DossierTemplatesListingScreenComponent extends ListingComponent<Dos
}
});
}
private async _deleteTemplates(templateIds = this.listingService.selected.map(d => d.dossierTemplateId)) {
await this._dossierTemplatesService
.delete(templateIds)
.toPromise()
.catch(error => {
if (error.status === 409) {
this._toaster.error(_('dossier-templates-listing.error.conflict'));
} else {
this._toaster.error(_('dossier-templates-listing.error.generic'));
}
});
this.listingService.setSelected([]);
await this._dossierTemplatesService.loadAll().toPromise();
await this._appStateService.loadDictionaryData();
this.loadDossierTemplateStats();
}
}

View File

@ -74,8 +74,8 @@
</div>
</ng-template>
<ng-template #tableItemTemplate let-attribute="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as attribute">
<div class="label cell">
<span>{{ attribute.label }}</span>
</div>

View File

@ -41,7 +41,7 @@
</ng-template>
<ng-template #tableItemTemplate let-entity="entity">
<div>
<div *ngIf="cast(entity) as entity">
<div class="cell filename">
<div [matTooltip]="entity.dossierName" class="table-item-title heading" matTooltipPosition="above">
{{ entity.dossierName }}

View File

@ -65,8 +65,8 @@
></iqser-circle-button>
</ng-template>
<ng-template #tableItemTemplate let-user="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as user">
<div class="cell">
<redaction-initials-avatar [showYou]="true" [user]="user" [withName]="true"></redaction-initials-avatar>
</div>

View File

@ -34,8 +34,8 @@
></iqser-circle-button>
</ng-template>
<ng-template #tableItemTemplate let-file="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as file">
<div class="cell filename">
<span>{{ file.filename }}</span>
</div>

View File

@ -121,8 +121,8 @@
></redaction-table-item>
</ng-template>
<ng-template #workflowItemTemplate let-file="entity">
<div class="workflow-item">
<ng-template #workflowItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as file" class="workflow-item">
<div>
<div class="details">
<div [matTooltip]="file.filename" class="filename" matTooltipPosition="above">
@ -143,15 +143,15 @@
</div>
</ng-template>
<ng-template #statsTemplate let-file="entity">
<div class="small-label stats-subtitle">
<ng-template #statsTemplate let-entity="entity">
<div *ngIf="cast(entity) as file" class="small-label stats-subtitle">
<div>
<mat-icon svgIcon="red:pages"></mat-icon>
{{ file.numberOfPages }}
</div>
<div>
<mat-icon svgIcon="red:exclude-pages"></mat-icon>
{{ file.excludedPagesCount }}
{{ file.excludedPages.length }}
</div>
<div *ngIf="file.lastOCRTime" [matTooltipPosition]="'above'" [matTooltip]="'dossier-overview.ocr-performed' | translate">
<mat-icon svgIcon="red:ocr"></mat-icon>

View File

@ -21,8 +21,8 @@
</div>
</section>
<ng-template #tableItemTemplate let-item="entity">
<div>
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as item">
<div class="cell filename">
<div [matTooltip]="item.filename" class="table-item-title heading" matTooltipPosition="above">
<span

View File

@ -1,4 +1,4 @@
import { EntitiesService } from '@iqser/common-ui';
import { EntitiesService, List } from '@iqser/common-ui';
import { DossierTemplate } from '@models/file/dossier-template';
import { IDossierTemplate } from '@redaction/red-ui-http';
import { Injectable, Injector } from '@angular/core';
@ -59,4 +59,8 @@ export class DossierTemplatesService extends EntitiesService<DossierTemplate, ID
map(() => this.all),
);
}
delete(body: List): Observable<unknown> {
return super.delete(body, `${this._defaultModelPath}/delete`);
}
}