({
value: dict.entries ? dict.entries.length : 0,
@@ -29,12 +30,10 @@ const toChartConfig = (dict: TypeValueWrapper): DoughnutChartConfig => ({
providers: [FilterService, SearchService, ScreenStateService, SortingService]
})
export class DictionaryListingScreenComponent
- extends BaseListingComponent
+ extends NewBaseListingComponent
implements OnInit
{
chartData: DoughnutChartConfig[] = [];
- protected readonly _searchKey = 'label';
- protected readonly _selectionKey = 'type';
constructor(
private readonly _dialogService: AdminDialogService,
@@ -49,26 +48,25 @@ export class DictionaryListingScreenComponent
super(_injector);
_loadingService.start();
this._sortingService.setScreenName(ScreenNames.DOSSIER_LISTING);
+ this._searchService.setSearchKey('label');
+ this._screenStateService.setIdKey('type');
_appStateService.activateDossierTemplate(_activatedRoute.snapshot.params.dossierTemplateId);
}
- get tableHeader(): string {
- return this._translateService.instant('dictionary-listing.table-header.title', {
- length: this.displayedEntities.length
- });
- }
-
ngOnInit(): void {
this._loadDictionaryData();
}
- openDeleteDictionariesDialog($event?: MouseEvent, types = this.selectedEntitiesIds) {
+ openDeleteDictionariesDialog(
+ $event?: MouseEvent,
+ types = this._screenStateService.selectedEntitiesIds
+ ) {
this._dialogService.openDialog('confirm', $event, null, async () => {
this._loadingService.start();
await this._dictionaryControllerService
.deleteTypes(types, this._appStateService.activeDossierTemplateId)
.toPromise();
- this.selectedEntitiesIds = [];
+ this._screenStateService.setSelectedEntitiesIds([]);
await this._appStateService.loadDictionaryData();
this._loadDictionaryData(false);
this._calculateData();
@@ -100,13 +98,15 @@ export class DictionaryListingScreenComponent
const entities = Object.values(appStateDictionaryData).filter(d => !d.virtual);
if (!loadEntries)
- this.allEntities = entities.map(dict => {
- dict.entries = this.allEntities.find(d => d.type === dict.type)?.entries || [];
- return dict;
- });
- else this.allEntities = entities;
+ this._screenStateService.setEntities(
+ entities.map(dict => {
+ dict.entries = this.allEntities.find(d => d.type === dict.type)?.entries || [];
+ return dict;
+ })
+ );
+ else this._screenStateService.setEntities(entities);
- this.displayedEntities = [...this.allEntities];
+ this._screenStateService.setDisplayedEntities(this.allEntities);
if (!loadEntries) return;
diff --git a/apps/red-ui/src/app/modules/shared/base/new-base-listing.component.ts b/apps/red-ui/src/app/modules/shared/base/new-base-listing.component.ts
index d288708b2..0b933067b 100644
--- a/apps/red-ui/src/app/modules/shared/base/new-base-listing.component.ts
+++ b/apps/red-ui/src/app/modules/shared/base/new-base-listing.component.ts
@@ -4,7 +4,6 @@ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
import { FilterService } from '../services/filter.service';
import { SearchService } from '../services/search.service';
import { ScreenStateService } from '../services/screen-state.service';
-import { FilterWrapper } from '../components/filters/popup-filter/model/filter-wrapper.model';
import { Observable } from 'rxjs';
import { FilterModel } from '../components/filters/popup-filter/model/filter.model';
diff --git a/apps/red-ui/src/app/modules/shared/services/screen-state.service.ts b/apps/red-ui/src/app/modules/shared/services/screen-state.service.ts
index a8bc4cfe7..6c6c0d86d 100644
--- a/apps/red-ui/src/app/modules/shared/services/screen-state.service.ts
+++ b/apps/red-ui/src/app/modules/shared/services/screen-state.service.ts
@@ -71,18 +71,18 @@ export class ScreenStateService {
toggleEntitySelected(entity: T): void {
const currentEntityIdx = this.selectedEntitiesIds.indexOf(entity[this._getIdKey]);
-
if (currentEntityIdx === -1) {
const currentEntityId = entity[this._getIdKey];
return this.setSelectedEntitiesIds([...this.selectedEntitiesIds, currentEntityId]);
}
- this.setSelectedEntitiesIds(this.selectedEntitiesIds.splice(currentEntityIdx, 1));
+ this.setSelectedEntitiesIds(
+ this.selectedEntitiesIds.filter((el, idx) => idx !== currentEntityIdx)
+ );
}
toggleSelectAll(): void {
- if (this.areSomeEntitiesSelected$) return this.selectedEntitiesIds$.next([]);
-
+ if (this.areAllEntitiesSelected) return this.setSelectedEntitiesIds([]);
this.setSelectedEntitiesIds(this._displayedEntitiesIds);
}