RED-5387 - Header and explanation for Watermarks options in Edit Dossier/Download Package settings

This commit is contained in:
Valentin Mihai 2022-10-19 17:52:23 +03:00
parent b938ccaf2e
commit a620e4e852
5 changed files with 61 additions and 22 deletions

View File

@ -1,4 +1,4 @@
<form *ngIf="form" [formGroup]="form"> <form *ngIf="form && componentContext$ | async as ctx" [formGroup]="form">
<div> <div>
<redaction-select <redaction-select
[label]="'report-type.label' | translate: { length: reportTypesLength }" [label]="'report-type.label' | translate: { length: reportTypesLength }"
@ -15,21 +15,28 @@
></redaction-select> ></redaction-select>
</div> </div>
<redaction-watermark-selector <p class="heading">{{ 'dossier-watermark-selector.heading' | translate }}</p>
[dossierTemplateId]="dossier.dossierTemplateId" <ng-container *ngIf="ctx.existsWatermarks; else noWatermarks">
[isReadonly]="!canEditDossier" <redaction-watermark-selector
[label]="'dossier-watermark-selector.watermark' | translate" [dossierTemplateId]="dossier.dossierTemplateId"
formControlName="watermarkId" [isReadonly]="!canEditDossier"
> [label]="'dossier-watermark-selector.watermark' | translate"
</redaction-watermark-selector> formControlName="watermarkId"
>
</redaction-watermark-selector>
<redaction-watermark-selector <redaction-watermark-selector
[dossierTemplateId]="dossier.dossierTemplateId" [dossierTemplateId]="dossier.dossierTemplateId"
[isReadonly]="!canEditDossier" [isReadonly]="!canEditDossier"
[label]="'dossier-watermark-selector.preview' | translate" [label]="'dossier-watermark-selector.preview' | translate"
formControlName="previewWatermarkId" formControlName="previewWatermarkId"
> >
</redaction-watermark-selector> </redaction-watermark-selector>
</ng-container>
<ng-template #noWatermarks>
<p class="no-watermark" [innerHTML]="'dossier-watermark-selector.no-watermark' | translate"></p>
</ng-template>
</form> </form>
<ng-template #reportTemplateOptionTemplate let-option="option"> <ng-template #reportTemplateOptionTemplate let-option="option">

View File

@ -1,7 +1,4 @@
.download-includes { @use '../../../../../apps/red-ui/src/assets/styles/variables';
margin: 16px 0 10px;
font-weight: 500;
}
redaction-select { redaction-select {
flex: 1; flex: 1;
@ -26,3 +23,12 @@ form {
margin-top: -10px; margin-top: -10px;
} }
} }
.heading {
margin-top: 32px !important;
margin-bottom: 0 !important;
}
.no-watermark {
color: variables.$grey-7;
}

View File

@ -5,15 +5,25 @@ import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-doss
import { downloadTypesTranslations } from '@translations/download-types-translations'; import { downloadTypesTranslations } from '@translations/download-types-translations';
import { ReportTemplateService } from '@services/report-template.service'; import { ReportTemplateService } from '@services/report-template.service';
import { PermissionsService } from '@services/permissions.service'; import { PermissionsService } from '@services/permissions.service';
import { firstValueFrom } from 'rxjs'; import { firstValueFrom, Observable } from 'rxjs';
import { DossiersService } from '@services/dossiers/dossiers.service'; import { DossiersService } from '@services/dossiers/dossiers.service';
import { WatermarksMapService } from '@services/entity-services/watermarks-map.service';
import { ContextComponent, shareLast } from '@iqser/common-ui';
import { tap } from 'rxjs/operators';
interface EditDossierDownloadPackageContext {
existsWatermarks: boolean;
}
@Component({ @Component({
selector: 'redaction-edit-dossier-download-package', selector: 'redaction-edit-dossier-download-package',
templateUrl: './edit-dossier-download-package.component.html', templateUrl: './edit-dossier-download-package.component.html',
styleUrls: ['./edit-dossier-download-package.component.scss'], styleUrls: ['./edit-dossier-download-package.component.scss'],
}) })
export class EditDossierDownloadPackageComponent implements OnInit, EditDossierSectionInterface { export class EditDossierDownloadPackageComponent
extends ContextComponent<EditDossierDownloadPackageContext>
implements OnInit, EditDossierSectionInterface
{
form: UntypedFormGroup; form: UntypedFormGroup;
downloadTypes: { key: DownloadFileType; label: string }[] = ['ORIGINAL', 'PREVIEW', 'DELTA_PREVIEW', 'REDACTED'].map( downloadTypes: { key: DownloadFileType; label: string }[] = ['ORIGINAL', 'PREVIEW', 'DELTA_PREVIEW', 'REDACTED'].map(
(type: DownloadFileType) => ({ (type: DownloadFileType) => ({
@ -23,6 +33,8 @@ export class EditDossierDownloadPackageComponent implements OnInit, EditDossierS
); );
availableReportTypes: IReportTemplate[] = []; availableReportTypes: IReportTemplate[] = [];
#existsWatermarks$: Observable<boolean>;
@Input() dossier: Dossier; @Input() dossier: Dossier;
constructor( constructor(
@ -30,7 +42,10 @@ export class EditDossierDownloadPackageComponent implements OnInit, EditDossierS
private readonly _reportTemplateController: ReportTemplateService, private readonly _reportTemplateController: ReportTemplateService,
private readonly _formBuilder: UntypedFormBuilder, private readonly _formBuilder: UntypedFormBuilder,
private readonly _permissionsService: PermissionsService, private readonly _permissionsService: PermissionsService,
) {} private readonly _watermarksMapService: WatermarksMapService,
) {
super();
}
get reportTypesLength() { get reportTypesLength() {
return this.form.controls['reportTemplateIds']?.value?.length || 0; return this.form.controls['reportTemplateIds']?.value?.length || 0;
@ -84,6 +99,13 @@ export class EditDossierDownloadPackageComponent implements OnInit, EditDossierS
async ngOnInit() { async ngOnInit() {
const dossierTemplateId = this.dossier.dossierTemplateId; const dossierTemplateId = this.dossier.dossierTemplateId;
this.#existsWatermarks$ = this._watermarksMapService.watchChanged$(dossierTemplateId).pipe(shareLast());
super._initContext({
existsWatermarks: this.#existsWatermarks$,
});
this.availableReportTypes = this.availableReportTypes =
(await firstValueFrom(this._reportTemplateController.getAvailableReportTemplates(dossierTemplateId))) || []; (await firstValueFrom(this._reportTemplateController.getAvailableReportTemplates(dossierTemplateId))) || [];

View File

@ -1007,6 +1007,8 @@
} }
}, },
"dossier-watermark-selector": { "dossier-watermark-selector": {
"heading": "",
"no-watermark": "",
"preview": "", "preview": "",
"watermark": "" "watermark": ""
}, },

View File

@ -1007,6 +1007,8 @@
} }
}, },
"dossier-watermark-selector": { "dossier-watermark-selector": {
"heading": "Watermarks on documents",
"no-watermark": "There is no watermark defined for the dossier template.<br>Contact your app admin to define one.",
"preview": "Watermark application on preview documents", "preview": "Watermark application on preview documents",
"watermark": "Watermark application on redacted documents" "watermark": "Watermark application on redacted documents"
}, },