RED-4756: use number as id for watermarks

This commit is contained in:
Dan Percic 2022-07-26 15:32:32 +03:00
parent d254bd6b7b
commit a1e37546b7
20 changed files with 27 additions and 29 deletions

View File

@ -10,7 +10,7 @@ import { firstValueFrom } from 'rxjs';
selector: 'redaction-downloads-list-screen',
templateUrl: './downloads-list-screen.component.html',
styleUrls: ['./downloads-list-screen.component.scss'],
providers: listingProvidersFactory({
providers: listingProvidersFactory<DownloadStatus>({
entitiesService: FileDownloadService,
component: DownloadsListScreenComponent,
}),

View File

@ -9,7 +9,7 @@ export class WatermarkExistsGuard implements CanActivate {
async canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {
const dossierTemplateId = route.parent.paramMap.get(DOSSIER_TEMPLATE_ID);
const watermarkId = route.paramMap.get(WATERMARK_ID);
const watermarkId = Number(route.paramMap.get(WATERMARK_ID));
if (this._watermarksMapService.get(dossierTemplateId, watermarkId)) {
return true;

View File

@ -19,7 +19,7 @@ import { firstValueFrom } from 'rxjs';
@Component({
templateUrl: './dossier-attributes-listing-screen.component.html',
styleUrls: ['./dossier-attributes-listing-screen.component.scss'],
providers: listingProvidersFactory({
providers: listingProvidersFactory<DossierAttributeConfig>({
entitiesService: DossierAttributesService,
component: DossierAttributesListingScreenComponent,
}),

View File

@ -20,7 +20,7 @@ import { firstValueFrom } from 'rxjs';
templateUrl: './dossier-templates-listing-screen.component.html',
styleUrls: ['./dossier-templates-listing-screen.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
providers: listingProvidersFactory({
providers: listingProvidersFactory<DossierTemplate>({
entitiesService: DossierTemplatesService,
component: DossierTemplatesListingScreenComponent,
}),

View File

@ -21,7 +21,7 @@ import { firstValueFrom } from 'rxjs';
templateUrl: './justifications-screen.component.html',
styleUrls: ['./justifications-screen.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
providers: listingProvidersFactory({
providers: listingProvidersFactory<Justification>({
entitiesService: JustificationsService,
component: JustificationsScreenComponent,
}),

View File

@ -32,7 +32,7 @@ function configToFilter({ key, label }: DonutChartConfig) {
@Component({
templateUrl: './user-listing-screen.component.html',
styleUrls: ['./user-listing-screen.component.scss'],
providers: listingProvidersFactory({
providers: listingProvidersFactory<User>({
entitiesService: UserService,
component: UserListingScreenComponent,
}),
@ -118,6 +118,12 @@ export class UserListingScreenComponent extends ListingComponent<User> implement
this.openDeleteUsersDialog(this.listingService.selectedIds as string[]);
}
deleteDisabled(user: User): boolean {
const userAdmin = user.roles.includes('RED_ADMIN');
const currentUserAdmin = this._userService.currentUser.roles.includes('RED_ADMIN');
return user.id === this._userService.currentUser.id || (userAdmin && !currentUserAdmin);
}
async #loadData() {
await firstValueFrom(this._userService.loadAll());
this.#computeStats();
@ -145,10 +151,4 @@ export class UserListingScreenComponent extends ListingComponent<User> implement
};
this.filterService.addFilterGroups([roleFiltersGroup]);
}
deleteDisabled(user: User): boolean {
const userAdmin = user.roles.includes('RED_ADMIN');
const currentUserAdmin = this._userService.currentUser.roles.includes('RED_ADMIN');
return user.id === this._userService.currentUser.id || (userAdmin && !currentUserAdmin);
}
}

View File

@ -35,7 +35,7 @@ export class WatermarkScreenComponent {
readonly form: UntypedFormGroup = this._getForm();
readonly watermark$: Observable<Partial<IWatermark>>;
readonly #dossierTemplateId: string = getParam(DOSSIER_TEMPLATE_ID);
readonly #watermarkId = getParam(WATERMARK_ID);
readonly #watermarkId = Number(getParam(WATERMARK_ID));
private _instance: WebViewerInstance;
private _watermark: Partial<IWatermark> = {};
@ViewChild('viewer', { static: true })

View File

@ -10,7 +10,7 @@ import {
SortingService,
Toaster,
} from '@iqser/common-ui';
import { Dossier, File } from '@red/domain';
import { Dossier, File, IFile } from '@red/domain';
import { PermissionsService } from '@services/permissions.service';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { ReanalysisService } from '@services/reanalysis.service';
@ -21,7 +21,6 @@ import { ConfigService } from '../../config.service';
import { firstValueFrom } from 'rxjs';
import { PrimaryFileAttributeService } from '@services/primary-file-attribute.service';
import { Router } from '@angular/router';
import { DossiersService } from '@services/dossiers/dossiers.service';
@Component({
selector: 'redaction-dossier-overview-screen-header',
@ -38,12 +37,11 @@ export class DossierOverviewScreenHeaderComponent implements OnInit {
private readonly _toaster: Toaster,
readonly configService: ConfigService,
readonly router: Router,
readonly dossiersService: DossiersService,
private readonly _userService: UserService,
readonly listingService: ListingService<File>,
readonly sortingService: SortingService<File>,
readonly permissionsService: PermissionsService,
readonly entitiesService: EntitiesService<File>,
readonly entitiesService: EntitiesService<IFile, File>,
private readonly _reanalysisService: ReanalysisService,
private readonly _loadingService: LoadingService,
private readonly _primaryFileAttributeService: PrimaryFileAttributeService,

View File

@ -11,7 +11,7 @@ export class AnnotationsListingService extends ListingService<AnnotationWrapper>
constructor(
protected readonly _filterService: FilterService,
protected readonly _searchService: SearchService<AnnotationWrapper>,
protected readonly _entitiesService: EntitiesService<AnnotationWrapper>,
protected readonly _entitiesService: EntitiesService<AnnotationWrapper, AnnotationWrapper>,
private readonly _multiSelectService: MultiSelectService,
private readonly _pdf: PdfViewer,
private readonly _annotationManager: REDAnnotationManager,

View File

@ -24,7 +24,7 @@ import { DossierDictionariesMapService } from '@services/entity-services/dossier
const DELTA_VIEW_TIME = 10 * 60 * 1000; // 10 minutes;
@Injectable()
export class FileDataService extends EntitiesService<AnnotationWrapper> {
export class FileDataService extends EntitiesService<AnnotationWrapper, AnnotationWrapper> {
viewedPages: IViewedPage[] = [];
missingTypes = new Set<string>();
readonly hasChangeLog$ = new BehaviorSubject<boolean>(false);

View File

@ -3,7 +3,7 @@ import { IPermissionsMapping, PermissionsMapping } from '@red/domain';
import { EntitiesMapService } from '@iqser/common-ui';
@Injectable({ providedIn: 'root' })
export class PermissionsConfigurationMapService extends EntitiesMapService<PermissionsMapping, IPermissionsMapping> {
export class PermissionsConfigurationMapService extends EntitiesMapService<IPermissionsMapping, PermissionsMapping> {
protected readonly _primaryKey = 'name';
getMappedPermissions(targetObject: string): string[] {

View File

@ -3,6 +3,6 @@ import { IPermissionsMapping, PermissionsMapping } from '@red/domain';
import { EntitiesMapService } from '@iqser/common-ui';
@Injectable({ providedIn: 'root' })
export class PermissionsMapService extends EntitiesMapService<PermissionsMapping, IPermissionsMapping> {
export class PermissionsMapService extends EntitiesMapService<IPermissionsMapping, PermissionsMapping> {
protected readonly _primaryKey = 'name';
}

View File

@ -3,6 +3,6 @@ import { Dictionary, DOSSIER_TEMPLATE_ID, IDictionary } from '@red/domain';
import { EntitiesMapService } from '@iqser/common-ui';
@Injectable({ providedIn: 'root' })
export class DictionariesMapService extends EntitiesMapService<Dictionary, IDictionary> {
export class DictionariesMapService extends EntitiesMapService<IDictionary, Dictionary> {
protected readonly _primaryKey = DOSSIER_TEMPLATE_ID;
}

View File

@ -3,6 +3,6 @@ import { Dictionary, DOSSIER_ID, IDictionary } from '@red/domain';
import { EntitiesMapService } from '@iqser/common-ui';
@Injectable({ providedIn: 'root' })
export class DossierDictionariesMapService extends EntitiesMapService<Dictionary, IDictionary> {
export class DossierDictionariesMapService extends EntitiesMapService<IDictionary, Dictionary> {
protected readonly _primaryKey = DOSSIER_ID;
}

View File

@ -4,7 +4,7 @@ import { EntitiesMapService } from '@iqser/common-ui';
import { flatMap } from 'lodash-es';
@Injectable({ providedIn: 'root' })
export class DossierStatesMapService extends EntitiesMapService<DossierState, IDossierState> {
export class DossierStatesMapService extends EntitiesMapService<IDossierState, DossierState> {
protected readonly _primaryKey = DOSSIER_TEMPLATE_ID;
get stats(): DonutChartConfig[] {

View File

@ -16,7 +16,7 @@ import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.se
@Injectable({
providedIn: 'root',
})
export class TrashService extends EntitiesService<TrashItem> {
export class TrashService extends EntitiesService<TrashItem, TrashItem> {
constructor(
private readonly _toaster: Toaster,
private readonly _systemPreferencesService: SystemPreferencesService,

View File

@ -3,6 +3,6 @@ import { DOSSIER_TEMPLATE_ID, IWatermark, Watermark } from '@red/domain';
import { EntitiesMapService } from '@iqser/common-ui';
@Injectable({ providedIn: 'root' })
export class WatermarksMapService extends EntitiesMapService<Watermark, IWatermark> {
export class WatermarksMapService extends EntitiesMapService<IWatermark, Watermark> {
protected readonly _primaryKey = DOSSIER_TEMPLATE_ID;
}

View File

@ -3,7 +3,7 @@ import { DOSSIER_ID, File, IFile } from '@red/domain';
import { EntitiesMapService, NonFunctionKeys } from '@iqser/common-ui';
@Injectable({ providedIn: 'root' })
export class FilesMapService extends EntitiesMapService<File, IFile> {
export class FilesMapService extends EntitiesMapService<IFile, File> {
protected readonly _primaryKey = DOSSIER_ID;
replaceFiles<T extends NonFunctionKeys<File>, T2 extends File[T]>(files: File[], property: T, generateValue: (value: T2) => T2) {

@ -1 +1 @@
Subproject commit 9c2c429df35245d208705c70d97f648ea1c39ac6
Subproject commit 2e74e2649e39d97d8883cb44f9551f18b0c27cd2

View File

@ -1,7 +1,7 @@
import { IWatermark, WatermarkOrientation } from './watermark';
import { Entity } from '@iqser/common-ui';
export class Watermark extends Entity<IWatermark> {
export class Watermark extends Entity<IWatermark, number> {
readonly id: number;
readonly dossierTemplateId: string;
readonly enabled: boolean;