RED-4756: use number as id for watermarks
This commit is contained in:
parent
d254bd6b7b
commit
a1e37546b7
@ -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,
|
||||
}),
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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,
|
||||
}),
|
||||
|
||||
@ -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,
|
||||
}),
|
||||
|
||||
@ -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,
|
||||
}),
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 })
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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[] {
|
||||
|
||||
@ -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';
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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[] {
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user