Merge branch 'master' into VM/RED-10256
This commit is contained in:
commit
5347f986e4
@ -123,7 +123,6 @@ export class AnnotationActionsService {
|
||||
async editRedaction(annotations: AnnotationWrapper[]) {
|
||||
const { dossierId, file } = this._state;
|
||||
const allFileAnnotations = this._fileDataService.annotations();
|
||||
const includeUnprocessed = annotations.every(annotation => this.#includeUnprocessed(annotation, true));
|
||||
const data = {
|
||||
annotations,
|
||||
allFileAnnotations,
|
||||
@ -175,7 +174,6 @@ export class AnnotationActionsService {
|
||||
dossierId,
|
||||
file().id,
|
||||
this.#getChangedFields(annotations, result),
|
||||
includeUnprocessed,
|
||||
result.option === RedactOrHintOptions.IN_DOCUMENT || !!result.pageNumbers.length,
|
||||
)
|
||||
.pipe(log()),
|
||||
@ -274,7 +272,6 @@ export class AnnotationActionsService {
|
||||
|
||||
async acceptResize(annotation: AnnotationWrapper, permissions: AnnotationPermissions): Promise<void> {
|
||||
const textAndPositions = await this.#extractTextAndPositions(annotation.id);
|
||||
const includeUnprocessed = this.#includeUnprocessed(annotation);
|
||||
if (annotation.isRecommendation) {
|
||||
const recommendation = {
|
||||
...annotation,
|
||||
@ -325,7 +322,7 @@ export class AnnotationActionsService {
|
||||
await this.cancelResize(annotation);
|
||||
|
||||
const { fileId, dossierId } = this._state;
|
||||
const request = this._manualRedactionService.resize([resizeRequest], dossierId, fileId, includeUnprocessed);
|
||||
const request = this._manualRedactionService.resize([resizeRequest], dossierId, fileId);
|
||||
return this.#processObsAndEmit(request);
|
||||
}
|
||||
|
||||
@ -482,7 +479,6 @@ export class AnnotationActionsService {
|
||||
|
||||
#removeRedaction(redactions: AnnotationWrapper[], dialogResult: RemoveRedactionResult) {
|
||||
const removeFromDictionary = dialogResult.option?.value === RemoveRedactionOptions.IN_DOSSIER;
|
||||
const includeUnprocessed = redactions.every(redaction => this.#includeUnprocessed(redaction, true));
|
||||
const body = this.#getRemoveRedactionBody(redactions, dialogResult);
|
||||
// todo: might not be correct, probably shouldn't get to this point if they are not all the same
|
||||
const isHint = redactions.every(r => r.isHint);
|
||||
@ -510,7 +506,6 @@ export class AnnotationActionsService {
|
||||
fileId,
|
||||
removeFromDictionary,
|
||||
isHint,
|
||||
includeUnprocessed,
|
||||
dialogResult.bulkLocal,
|
||||
),
|
||||
),
|
||||
@ -526,7 +521,6 @@ export class AnnotationActionsService {
|
||||
fileId,
|
||||
removeFromDictionary,
|
||||
isHint,
|
||||
includeUnprocessed,
|
||||
dialogResult.bulkLocal || !!dialogResult.pageNumbers.length,
|
||||
),
|
||||
).then();
|
||||
@ -585,20 +579,6 @@ export class AnnotationActionsService {
|
||||
return { changes: changedFields.join(', ') };
|
||||
}
|
||||
|
||||
//TODO this is temporary, based on RED-8950. Should be removed when a better solution will be found
|
||||
#includeUnprocessed(annotation: AnnotationWrapper, isRemoveOrRecategorize = false) {
|
||||
const processed = annotation.entry.manualChanges.at(-1)?.processed;
|
||||
if (!processed) {
|
||||
const autoAnalysisDisabled = this._state.file().excludedFromAutomaticAnalysis;
|
||||
const addedLocallyWhileDisabled = annotation.manual;
|
||||
if (autoAnalysisDisabled) {
|
||||
return addedLocallyWhileDisabled;
|
||||
}
|
||||
return isRemoveOrRecategorize && addedLocallyWhileDisabled;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#getRemoveRedactionBody(
|
||||
redactions: AnnotationWrapper[],
|
||||
dialogResult: RemoveRedactionResult,
|
||||
|
||||
@ -75,13 +75,10 @@ export class ManualRedactionService extends GenericService<IManualAddResponse> {
|
||||
body: List<IRecategorizationRequest> | IBulkRecategorizationRequest,
|
||||
dossierId: string,
|
||||
fileId: string,
|
||||
successMessageParameters?: {
|
||||
[key: string]: string;
|
||||
},
|
||||
includeUnprocessed = false,
|
||||
successMessageParameters?: { [p: string]: string },
|
||||
bulkLocal = false,
|
||||
) {
|
||||
return this.#recategorize(body, dossierId, fileId, includeUnprocessed, bulkLocal).pipe(
|
||||
return this.#recategorize(body, dossierId, fileId, bulkLocal).pipe(
|
||||
this.#showToast('recategorize-annotation', false, successMessageParameters),
|
||||
);
|
||||
}
|
||||
@ -117,10 +114,9 @@ export class ManualRedactionService extends GenericService<IManualAddResponse> {
|
||||
fileId: string,
|
||||
removeFromDictionary = false,
|
||||
isHint = false,
|
||||
includeUnprocessed = false,
|
||||
bulkLocal = false,
|
||||
) {
|
||||
return this.#remove(body, dossierId, fileId, includeUnprocessed, bulkLocal).pipe(
|
||||
return this.#remove(body, dossierId, fileId, bulkLocal).pipe(
|
||||
this.#showToast(!isHint ? 'remove' : 'remove-hint', removeFromDictionary),
|
||||
);
|
||||
}
|
||||
@ -154,36 +150,23 @@ export class ManualRedactionService extends GenericService<IManualAddResponse> {
|
||||
return this._post(body, `${this.#bulkRedaction}/force/${dossierId}/${fileId}`).pipe(this.#log('Force redaction', body));
|
||||
}
|
||||
|
||||
resize(body: List<IResizeRequest>, dossierId: string, fileId: string, includeUnprocessed = false) {
|
||||
return this._post(body, `${this.#bulkRedaction}/resize/${dossierId}/${fileId}?includeUnprocessed=${includeUnprocessed}`).pipe(
|
||||
this.#log('Resize', body),
|
||||
);
|
||||
resize(body: List<IResizeRequest>, dossierId: string, fileId: string) {
|
||||
return this._post(body, `${this.#bulkRedaction}/resize/${dossierId}/${fileId}`).pipe(this.#log('Resize', body));
|
||||
}
|
||||
|
||||
#recategorize(
|
||||
body: List<IRecategorizationRequest> | IBulkRecategorizationRequest,
|
||||
dossierId: string,
|
||||
fileId: string,
|
||||
includeUnprocessed = false,
|
||||
bulkLocal = false,
|
||||
) {
|
||||
const bulkPath = bulkLocal ? this.#bulkLocal : this.#bulkRedaction;
|
||||
return this._post(body, `${bulkPath}/recategorize/${dossierId}/${fileId}?includeUnprocessed=${includeUnprocessed}`).pipe(
|
||||
this.#log('Recategorize', body),
|
||||
);
|
||||
return this._post(body, `${bulkPath}/recategorize/${dossierId}/${fileId}`).pipe(this.#log('Recategorize', body));
|
||||
}
|
||||
|
||||
#remove(
|
||||
body: List<IRemoveRedactionRequest> | IBulkLocalRemoveRequest,
|
||||
dossierId: string,
|
||||
fileId: string,
|
||||
includeUnprocessed = false,
|
||||
bulkLocal = false,
|
||||
) {
|
||||
#remove(body: List<IRemoveRedactionRequest> | IBulkLocalRemoveRequest, dossierId: string, fileId: string, bulkLocal = false) {
|
||||
const bulkPath = bulkLocal ? this.#bulkLocal : this.#bulkRedaction;
|
||||
return this._post(body, `${bulkPath}/remove/${dossierId}/${fileId}?includeUnprocessed=${includeUnprocessed}`).pipe(
|
||||
this.#log('Remove', body),
|
||||
);
|
||||
return this._post(body, `${bulkPath}/remove/${dossierId}/${fileId}`).pipe(this.#log('Remove', body));
|
||||
}
|
||||
|
||||
#log(action: string, body: unknown) {
|
||||
|
||||
@ -44,11 +44,15 @@
|
||||
<div class="iqser-input-group w-300">
|
||||
<label translate="edit-dossier-dialog.general-info.form.dossier-state.label"></label>
|
||||
<mat-form-field>
|
||||
<mat-select [placeholder]="statusPlaceholder" formControlName="dossierStatusId">
|
||||
<mat-option *ngFor="let stateId of states" [value]="stateId">
|
||||
<div [matTooltip]="getStateName(stateId)" class="flex-align-items-center" matTooltipPosition="after">
|
||||
<iqser-small-chip *ngIf="!!stateId" [color]="getStateColor(stateId)"></iqser-small-chip>
|
||||
<div class="clamp-1">{{ getStateName(stateId) }}</div>
|
||||
<mat-select [placeholder]="statePlaceholder()" formControlName="dossierStatusId">
|
||||
<mat-option *ngFor="let stateId of states()" [value]="stateId">
|
||||
<div
|
||||
[matTooltip]="stateNameAndColor()[stateId]?.name"
|
||||
class="flex-align-items-center"
|
||||
matTooltipPosition="after"
|
||||
>
|
||||
<iqser-small-chip *ngIf="!!stateId" [color]="stateNameAndColor()[stateId]?.color"></iqser-small-chip>
|
||||
<div class="clamp-1">{{ stateNameAndColor()[stateId]?.name }}</div>
|
||||
</div>
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
@ -80,7 +84,7 @@
|
||||
<div class="dialog-actions">
|
||||
<iqser-icon-button
|
||||
(action)="deleteDossier()"
|
||||
*ngIf="permissionsService.canDeleteDossier(dossier)"
|
||||
*ngIf="permissionsService.canDeleteDossier(dossier())"
|
||||
[attr.help-mode-key]="'edit_dossier_delete_dossier_DIALOG'"
|
||||
[buttonId]="'deleteDossier'"
|
||||
[icon]="'iqser:trash'"
|
||||
@ -90,7 +94,7 @@
|
||||
|
||||
<iqser-icon-button
|
||||
(action)="archiveDossier()"
|
||||
*ngIf="permissionsService.canArchiveDossier(dossier)"
|
||||
*ngIf="permissionsService.canArchiveDossier(dossier())"
|
||||
[attr.help-mode-key]="'edit_dossier_archive_dossier_DIALOG'"
|
||||
[icon]="'red:archive'"
|
||||
[label]="'dossier-listing.archive.action' | translate"
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
|
||||
import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, effect, input, OnInit, signal, untracked } from '@angular/core';
|
||||
import { FormGroup, ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
|
||||
import { MatCheckbox } from '@angular/material/checkbox';
|
||||
import { MatDatepickerModule } from '@angular/material/datepicker';
|
||||
import { MatDialogRef } from '@angular/material/dialog';
|
||||
import { MatFormField, MatSuffix } from '@angular/material/form-field';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { MatOption, MatSelect } from '@angular/material/select';
|
||||
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
|
||||
import { MatTooltip } from '@angular/material/tooltip';
|
||||
import { Router } from '@angular/router';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
@ -30,12 +30,22 @@ import { DossiersService } from '@services/dossiers/dossiers.service';
|
||||
import { DossierStatesMapService } from '@services/entity-services/dossier-states-map.service';
|
||||
import { TrashService } from '@services/entity-services/trash.service';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { dateWithoutTime } from '@utils/functions';
|
||||
import { dateWithoutTime, formControlToSignal } from '@utils/functions';
|
||||
import dayjs from 'dayjs';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import { DossiersDialogService } from '../../../services/dossiers-dialog.service';
|
||||
import { type EditDossierDialogComponent } from '../edit-dossier-dialog.component';
|
||||
import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-dossier-section.interface';
|
||||
import { AsControl, isJustOne } from '@common-ui/utils';
|
||||
import { DossierStatesService } from '@services/entity-services/dossier-states.service';
|
||||
|
||||
interface GeneralInfoForm {
|
||||
dossierName: string;
|
||||
dossierTemplateId: string;
|
||||
dossierStatusId?: string;
|
||||
description?: string;
|
||||
dueDate?: string;
|
||||
}
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-edit-dossier-general-info',
|
||||
@ -59,18 +69,36 @@ import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-doss
|
||||
MatSuffix,
|
||||
IconButtonComponent,
|
||||
NgIf,
|
||||
MatSelectTrigger,
|
||||
],
|
||||
})
|
||||
export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSectionInterface {
|
||||
@Input() dossier: Dossier;
|
||||
|
||||
readonly iconButtonTypes = IconButtonTypes;
|
||||
|
||||
form: UntypedFormGroup;
|
||||
statusPlaceholder: string;
|
||||
readonly dossier = input<Dossier>();
|
||||
hasDueDate: boolean;
|
||||
dossierTemplates: IDossierTemplate[];
|
||||
states: string[];
|
||||
form: FormGroup<AsControl<GeneralInfoForm>> = this._formBuilder.group({
|
||||
dossierName: [null, Validators.required],
|
||||
dossierTemplateId: [null, Validators.required],
|
||||
dossierStatusId: [null],
|
||||
description: [null],
|
||||
dueDate: [null],
|
||||
});
|
||||
initialFormValue: GeneralInfoForm;
|
||||
readonly dossierStatusIdControl = formControlToSignal(this.form.controls.dossierStatusId);
|
||||
readonly dossierTemplateIdControl = formControlToSignal<GeneralInfoForm['dossierTemplateId']>(this.form.controls.dossierTemplateId);
|
||||
readonly states = signal([null]);
|
||||
readonly stateNameAndColor = computed(() => {
|
||||
const nameAndColor = {};
|
||||
this.states().forEach(stateId => {
|
||||
nameAndColor[stateId] = {
|
||||
name: this.#getStateName(stateId, untracked(this.dossierTemplateIdControl)),
|
||||
color: this.#getStateColor(stateId, untracked(this.dossierTemplateIdControl)),
|
||||
};
|
||||
});
|
||||
return nameAndColor;
|
||||
});
|
||||
readonly statePlaceholder = computed(() => this.#statePlaceholder);
|
||||
|
||||
constructor(
|
||||
readonly permissionsService: PermissionsService,
|
||||
@ -87,18 +115,36 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
|
||||
private readonly _loadingService: LoadingService,
|
||||
private readonly _translateService: TranslateService,
|
||||
private readonly _archivedDossiersService: ArchivedDossiersService,
|
||||
) {}
|
||||
private readonly _changeDetectorRef: ChangeDetectorRef,
|
||||
private readonly _dossierStatesService: DossierStatesService,
|
||||
) {
|
||||
effect(() => {
|
||||
if (this.dossierStatusIdControl() !== this.initialFormValue.dossierStatusId && this.dossierStatusIdControl()) {
|
||||
this.form.controls.dossierTemplateId.disable();
|
||||
} else {
|
||||
this.form.controls.dossierTemplateId.enable();
|
||||
}
|
||||
});
|
||||
|
||||
effect(
|
||||
() => {
|
||||
this.states.set(this.#statesForDossierTemplate);
|
||||
this.#onDossierTemplateChange();
|
||||
},
|
||||
{ allowSignalWrites: true },
|
||||
);
|
||||
}
|
||||
|
||||
get changed(): boolean {
|
||||
for (const key of Object.keys(this.form.getRawValue())) {
|
||||
if (key === 'dueDate') {
|
||||
if (this.hasDueDate !== !!this.dossier.dueDate) {
|
||||
if (this.hasDueDate !== !!this.dossier().dueDate) {
|
||||
return true;
|
||||
}
|
||||
if (this.hasDueDate && !dayjs(this.dossier.dueDate).isSame(dayjs(this.form.get(key).value), 'day')) {
|
||||
if (this.hasDueDate && !dayjs(this.dossier().dueDate).isSame(dayjs(this.form.get(key).value), 'day')) {
|
||||
return true;
|
||||
}
|
||||
} else if (this.dossier[key] !== this.form.get(key).value) {
|
||||
} else if (this.dossier()[key] !== this.form.get(key).value) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -114,40 +160,89 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
|
||||
return this.hasDueDate && this.form.get('dueDate').value === null;
|
||||
}
|
||||
|
||||
get #statusPlaceholder(): string {
|
||||
get #statePlaceholder(): string {
|
||||
return this._translateService.instant(
|
||||
this.states.length === 1
|
||||
isJustOne(this.states())
|
||||
? 'edit-dossier-dialog.general-info.form.dossier-state.no-state-placeholder'
|
||||
: 'dossier-state.placeholder',
|
||||
) as string;
|
||||
}
|
||||
|
||||
get #statesForDossierTemplate() {
|
||||
return [
|
||||
null,
|
||||
...this._dossierStatesMapService
|
||||
.get(this.dossierTemplateIdControl() ?? untracked(this.dossier).dossierTemplateId)
|
||||
.map(s => s.id),
|
||||
];
|
||||
}
|
||||
|
||||
get #formValue(): { key: string; value: string; disabled: boolean }[] {
|
||||
const dossier = untracked(this.dossier);
|
||||
const formFieldWithArchivedCheck = value => ({ value, disabled: !dossier.isActive });
|
||||
const dossierStateId = untracked(this.dossierStatusIdControl);
|
||||
const states = untracked(this.states);
|
||||
return [
|
||||
{
|
||||
key: 'dossierName',
|
||||
...formFieldWithArchivedCheck(dossier.dossierName),
|
||||
},
|
||||
{
|
||||
key: 'dossierTemplateId',
|
||||
value: dossier.dossierTemplateId,
|
||||
disabled: this._dossierStatsService.get(dossier.id).hasFiles || !dossier.isActive || !!dossierStateId,
|
||||
},
|
||||
{
|
||||
key: 'dossierStatusId',
|
||||
value: dossier.dossierStatusId,
|
||||
disabled: isJustOne(states) || !dossier.isActive,
|
||||
},
|
||||
{
|
||||
key: 'description',
|
||||
...formFieldWithArchivedCheck(dossier.description),
|
||||
},
|
||||
{
|
||||
key: 'dueDate',
|
||||
...formFieldWithArchivedCheck(dossier.dueDate),
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.states = [null, ...this._dossierStatesMapService.get(this.dossier.dossierTemplateId).map(s => s.id)];
|
||||
this.statusPlaceholder = this.#statusPlaceholder;
|
||||
this.#filterInvalidDossierTemplates();
|
||||
this.form = this.#getForm();
|
||||
if (!this.permissionsService.canEditDossier(this.dossier)) {
|
||||
this.#patchFormValue();
|
||||
if (isJustOne(this._dossierTemplatesService.all)) {
|
||||
this._loadingService.loadWhile(
|
||||
firstValueFrom(this._dossierTemplatesService.loadOnlyDossierTemplates()).then(async () => {
|
||||
await firstValueFrom(this._dossierStatesService.loadAllForAllTemplates());
|
||||
this.#filterInvalidDossierTemplates();
|
||||
}),
|
||||
);
|
||||
} else {
|
||||
this.#filterInvalidDossierTemplates();
|
||||
}
|
||||
|
||||
if (!this.permissionsService.canEditDossier(this.dossier())) {
|
||||
this.form.disable();
|
||||
}
|
||||
this.hasDueDate = !!this.dossier.dueDate;
|
||||
this.hasDueDate = !!this.dossier().dueDate;
|
||||
}
|
||||
|
||||
revert() {
|
||||
this.form.reset({
|
||||
dossierName: this.dossier.dossierName,
|
||||
dossierTemplateId: this.dossier.dossierTemplateId,
|
||||
dossierStatusId: this.dossier.dossierStatusId,
|
||||
description: this.dossier.description,
|
||||
dueDate: this.dossier.dueDate,
|
||||
dossierName: this.dossier().dossierName,
|
||||
dossierTemplateId: this.dossier().dossierTemplateId,
|
||||
dossierStatusId: this.dossier().dossierStatusId,
|
||||
description: this.dossier().description,
|
||||
dueDate: this.dossier().dueDate,
|
||||
});
|
||||
this.hasDueDate = !!this.dossier.dueDate;
|
||||
this.hasDueDate = !!this.dossier().dueDate;
|
||||
this.initialFormValue = this.form.getRawValue();
|
||||
}
|
||||
|
||||
async save(): EditDossierSaveResult {
|
||||
const dueDate = dateWithoutTime(dayjs(this.form.get('dueDate').value));
|
||||
const dossier = {
|
||||
...this.dossier,
|
||||
...this.dossier(),
|
||||
dossierName: this.form.get('dossierName').value,
|
||||
description: this.form.get('description').value,
|
||||
dueDate: dueDate.isValid() ? dueDate.toISOString() : undefined,
|
||||
@ -156,9 +251,10 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
|
||||
} as IDossierRequest;
|
||||
|
||||
const updatedDossier = await firstValueFrom(this._dossiersService.createOrUpdate(dossier));
|
||||
if (updatedDossier && updatedDossier.dossierTemplateId !== this.dossier.dossierTemplateId) {
|
||||
if (updatedDossier && updatedDossier.dossierTemplateId !== this.dossier().dossierTemplateId) {
|
||||
await this._router.navigate([updatedDossier.routerLink]);
|
||||
}
|
||||
this.initialFormValue = this.form.getRawValue();
|
||||
return { success: !!updatedDossier };
|
||||
}
|
||||
|
||||
@ -171,14 +267,14 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
|
||||
requireInput: true,
|
||||
denyText: _('confirmation-dialog.delete-dossier.deny-text'),
|
||||
translateParams: {
|
||||
dossierName: this.dossier.dossierName,
|
||||
dossierName: this.dossier().dossierName,
|
||||
dossiersCount: 1,
|
||||
},
|
||||
};
|
||||
|
||||
this._dialogService.openDialog('confirm', data, async () => {
|
||||
this._loadingService.start();
|
||||
const successful = await this._trashService.deleteDossier(this.dossier);
|
||||
const successful = await this._trashService.deleteDossier(this.dossier());
|
||||
if (successful) {
|
||||
await this.#closeDialogAndRedirectToDossier();
|
||||
}
|
||||
@ -194,7 +290,7 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
|
||||
confirmationText: _('confirm-archive-dossier.archive'),
|
||||
denyText: _('confirm-archive-dossier.cancel'),
|
||||
titleColor: TitleColors.WARN,
|
||||
translateParams: { ...this.dossier },
|
||||
translateParams: { ...this.dossier() },
|
||||
checkboxes: [{ value: false, label: _('confirm-archive-dossier.checkbox.documents') }],
|
||||
toastMessage: _('confirm-archive-dossier.toast-error'),
|
||||
};
|
||||
@ -202,10 +298,10 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
|
||||
this._dialogService.openDialog('confirm', data, async result => {
|
||||
if (result === ConfirmOptions.CONFIRM) {
|
||||
this._loadingService.start();
|
||||
await firstValueFrom(this._archivedDossiersService.archive([this.dossier]));
|
||||
await firstValueFrom(this._archivedDossiersService.archive([this.dossier()]));
|
||||
this._toaster.success(_('dossier-listing.archive.archive-succeeded'), {
|
||||
params: {
|
||||
dossierName: this.dossier.dossierName,
|
||||
dossierName: this.dossier().dossierName,
|
||||
},
|
||||
});
|
||||
this._editDossierDialogRef.close();
|
||||
@ -214,15 +310,6 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
|
||||
});
|
||||
}
|
||||
|
||||
getStateName(stateId: string): string {
|
||||
return (this._dossierStatesMapService.get(this.dossier.dossierTemplateId, stateId)?.name ||
|
||||
this._translateService.instant('dossier-state.placeholder')) as string;
|
||||
}
|
||||
|
||||
getStateColor(stateId: string): string {
|
||||
return this._dossierStatesMapService.get(this.dossier.dossierTemplateId, stateId).color;
|
||||
}
|
||||
|
||||
toggleDueDateField() {
|
||||
this.hasDueDate = !this.hasDueDate;
|
||||
if (!this.hasDueDate) {
|
||||
@ -230,46 +317,63 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
|
||||
}
|
||||
}
|
||||
|
||||
#getStateName(stateId: string, templateId: string): string {
|
||||
return (this._dossierStatesMapService.get(templateId, stateId)?.name ||
|
||||
this._translateService.instant('dossier-state.placeholder')) as string;
|
||||
}
|
||||
|
||||
#getStateColor(stateId: string, templateId: string): string {
|
||||
return this._dossierStatesMapService.get(templateId, stateId)?.color;
|
||||
}
|
||||
|
||||
#patchFormValue() {
|
||||
this.#formValue.forEach(formValue => {
|
||||
this.form.patchValue({ [formValue.key]: formValue.value });
|
||||
if (formValue.disabled) this.form.get(formValue.key).disable();
|
||||
});
|
||||
this.initialFormValue = this.form.getRawValue();
|
||||
}
|
||||
|
||||
async #closeDialogAndRedirectToDossier() {
|
||||
this._editDossierDialogRef.close();
|
||||
await this._router.navigate([this.dossier.dossiersListRouterLink]);
|
||||
await this._router.navigate([this.dossier().dossiersListRouterLink]);
|
||||
this._toaster.success(_('edit-dossier-dialog.delete-successful'), {
|
||||
params: {
|
||||
dossierName: this.dossier.dossierName,
|
||||
dossierName: this.dossier().dossierName,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
#getForm(): UntypedFormGroup {
|
||||
const formFieldWithArchivedCheck = value => ({ value, disabled: !this.dossier.isActive });
|
||||
return this._formBuilder.group({
|
||||
dossierName: [formFieldWithArchivedCheck(this.dossier.dossierName), Validators.required],
|
||||
dossierTemplateId: [
|
||||
{
|
||||
value: this.dossier.dossierTemplateId,
|
||||
disabled: this._dossierStatsService.get(this.dossier.id).hasFiles || !this.dossier.isActive,
|
||||
},
|
||||
Validators.required,
|
||||
],
|
||||
dossierStatusId: [
|
||||
{
|
||||
value: this.dossier.dossierStatusId,
|
||||
disabled: this.states.length === 1 || !this.dossier.isActive,
|
||||
},
|
||||
],
|
||||
description: [formFieldWithArchivedCheck(this.dossier.description)],
|
||||
dueDate: [formFieldWithArchivedCheck(this.dossier.dueDate)],
|
||||
});
|
||||
}
|
||||
|
||||
#filterInvalidDossierTemplates() {
|
||||
const dossier = untracked(this.dossier);
|
||||
this.dossierTemplates = this._dossierTemplatesService.all.filter(r => {
|
||||
if (this.dossier?.dossierTemplateId === r.dossierTemplateId) {
|
||||
if (dossier.dossierTemplateId === r.dossierTemplateId) {
|
||||
return true;
|
||||
}
|
||||
const notYetValid = !!r.validFrom && dayjs(r.validFrom).isAfter(dayjs());
|
||||
const notValidAnymore = !!r.validTo && dayjs(r.validTo).add(1, 'd').isBefore(dayjs());
|
||||
this._changeDetectorRef.markForCheck();
|
||||
return !(notYetValid || notValidAnymore) && r.isActive;
|
||||
});
|
||||
}
|
||||
|
||||
#onDossierTemplateChange() {
|
||||
const dossierStateId = untracked(this.dossierStatusIdControl);
|
||||
const dossierTemplateId = untracked(this.dossierTemplateIdControl);
|
||||
if (!!dossierStateId && dossierTemplateId !== this.initialFormValue.dossierTemplateId) {
|
||||
this.form.controls.dossierStatusId.setValue(null);
|
||||
}
|
||||
const dossier = untracked(this.dossier);
|
||||
if (dossierTemplateId === this.initialFormValue.dossierTemplateId) {
|
||||
this.form.controls.dossierStatusId.setValue(dossier.dossierStatusId);
|
||||
}
|
||||
const states = untracked(this.states);
|
||||
if (isJustOne(states) || !dossier.isActive) {
|
||||
this.form.controls.dossierStatusId.disable();
|
||||
} else {
|
||||
this.form.controls.dossierStatusId.enable();
|
||||
}
|
||||
|
||||
this._changeDetectorRef.markForCheck();
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,6 +45,13 @@ export class DossierTemplatesService extends EntitiesService<IDossierTemplate, D
|
||||
);
|
||||
}
|
||||
|
||||
loadOnlyDossierTemplates(): Observable<DossierTemplate[]> {
|
||||
return this.getAll().pipe(
|
||||
mapEach(entity => new DossierTemplate(entity)),
|
||||
tap(templates => this.setEntities(templates)),
|
||||
);
|
||||
}
|
||||
|
||||
loadDossierTemplate(dossierTemplateId: string) {
|
||||
return this._getOne([dossierTemplateId], this._defaultModelPath).pipe(
|
||||
map(entity => new DossierTemplate(entity)),
|
||||
|
||||
@ -102,14 +102,14 @@
|
||||
},
|
||||
"disabled-file-options": "",
|
||||
"form": {
|
||||
"quote-char": "Zitatzeichen",
|
||||
"quote-char-placeholder": "\"",
|
||||
"delimiter": "Trennzeichen",
|
||||
"delimiter-placeholder": ",",
|
||||
"encoding-type": "Codierung",
|
||||
"delimiter": "",
|
||||
"delimiter-placeholder": "",
|
||||
"encoding-type": "",
|
||||
"file": "Mapping-Datei",
|
||||
"name": "Mapping-Name",
|
||||
"name-placeholder": "Mapping-Name",
|
||||
"quote-char": "Quotation marker",
|
||||
"quote-char-placeholder": "\"",
|
||||
"version": "Version"
|
||||
}
|
||||
},
|
||||
@ -1238,9 +1238,9 @@
|
||||
"title": "{label} bearbeiten"
|
||||
},
|
||||
"entries-count": "{count} {count, plural, one{Eintrag} other{Einträge}}",
|
||||
"false-positives": "Falsch-Positive",
|
||||
"false-recommendations": "Falsche Empfehlungen",
|
||||
"to-redact": "Schwärzungen"
|
||||
"false-positives": "Falsch-Positive ({count})",
|
||||
"false-recommendations": "Falsche Empfehlungen ({count})",
|
||||
"to-redact": "Schwärzungen ({count})"
|
||||
},
|
||||
"general-info": {
|
||||
"form": {
|
||||
@ -1280,11 +1280,11 @@
|
||||
"content": {
|
||||
"options": {
|
||||
"multiple-pages": {
|
||||
"description": "Schwärzung auf folgenden Seiten bearbeiten",
|
||||
"description": "Bearbeiten Sie die Schwärzung auf einer Reihe von Seiten",
|
||||
"extraOptionDescription": "Minus (-) für Seitenbereich und Komma (,) für Aufzählung.",
|
||||
"extraOptionLabel": "Seitenbereich",
|
||||
"extraOptionLabel": "Seiten",
|
||||
"extraOptionPlaceholder": "z. B. 1-20,22,32",
|
||||
"label": "Auf allen Seiten ändern"
|
||||
"label": "Auf mehreren Seiten ändern"
|
||||
},
|
||||
"only-this-page": {
|
||||
"description": "Schwärzung nur an dieser Position in diesem Dokument bearbeiten",
|
||||
@ -1891,9 +1891,9 @@
|
||||
"legalBasis": "Rechtsgrundlage",
|
||||
"options": {
|
||||
"multiple-pages": {
|
||||
"description": "Schwärzung auf folgenden Seiten hinzufügen",
|
||||
"description": "Fügen Sie die Schwärzung auf einer Reihe von Seiten hinzu",
|
||||
"extraOptionDescription": "Minus (-) für Seitenbereich und Komma (,) für Aufzählung.",
|
||||
"extraOptionLabel": "Seitenbereich",
|
||||
"extraOptionLabel": "Seiten",
|
||||
"extraOptionPlaceholder": "z. B. 1-20,22,32",
|
||||
"label": "Auf mehreren Seiten anwenden"
|
||||
},
|
||||
@ -2186,11 +2186,11 @@
|
||||
"content": {
|
||||
"options": {
|
||||
"multiple-pages": {
|
||||
"description": "Schwärzung auf folgenden Seiten entfernen",
|
||||
"description": "Entfernen Sie die Schwärzung auf einer Reihe von Seiten",
|
||||
"extraOptionDescription": "Minus (-) für Seitenbereich und Komma (,) für Aufzählung.",
|
||||
"extraOptionLabel": "Seitenbereich",
|
||||
"extraOptionLabel": "Seiten",
|
||||
"extraOptionPlaceholder": "z. B. 1-20,22,32",
|
||||
"label": "Auf allen Seiten entfernen"
|
||||
"label": "Auf mehreren Seiten entfernen"
|
||||
},
|
||||
"only-this-page": {
|
||||
"description": "Schwärzung nur an dieser Stelle in diesem Dokument entfernen",
|
||||
@ -2224,7 +2224,7 @@
|
||||
"label": "In diesem Kontext aus Dossier entfernen"
|
||||
},
|
||||
"in-document": {
|
||||
"description": "{isImage, select, image{Das Bild} other{der Begriff}} wird auf keiner Seite dieses Dokuments automatisch geschwärzt.",
|
||||
"description": "{isImage, select, image{Das Bild} other{Der Begriff}} wird auf keiner Seite dieses Dokuments automatisch geschwärzt.",
|
||||
"label": "Aus Dokument entfernen"
|
||||
},
|
||||
"in-dossier": {
|
||||
@ -2642,7 +2642,7 @@
|
||||
"table-header": {
|
||||
"title": "Wasserzeichen"
|
||||
},
|
||||
"watermark-is-used": "Dieses Wasserzeichen wird bereits verwendet. Möchten Sie es dennocht löschen?"
|
||||
"watermark-is-used": "Dieses Wasserzeichen wird bereits verwendet. Möchten Sie es dennoch löschen?"
|
||||
},
|
||||
"workflow": {
|
||||
"selection": {
|
||||
|
||||
@ -104,9 +104,9 @@
|
||||
"form": {
|
||||
"quote-char": "Quotation marker",
|
||||
"quote-char-placeholder": "\"",
|
||||
"delimiter": "Delimiter",
|
||||
"delimiter-placeholder": ",",
|
||||
"encoding-type": "Encoding",
|
||||
"delimiter": "",
|
||||
"delimiter-placeholder": "",
|
||||
"encoding-type": "",
|
||||
"file": "Mapping file",
|
||||
"name": "Mapping name",
|
||||
"name-placeholder": "Mapping name",
|
||||
@ -1062,7 +1062,7 @@
|
||||
"dossier-states": "{count, plural, one{Dossier state} other{Dossier states}}"
|
||||
},
|
||||
"error": {
|
||||
"conflict": "Dossier state with this name already exists"
|
||||
"conflict": "Dossier state with this name already exists."
|
||||
},
|
||||
"no-data": {
|
||||
"title": "There are no dossier states."
|
||||
@ -1238,9 +1238,9 @@
|
||||
"title": "Edit {label}"
|
||||
},
|
||||
"entries-count": "{count} {count, plural, one{entry} other{entries}}",
|
||||
"false-positives": "False positives",
|
||||
"false-recommendations": "False recommendations",
|
||||
"to-redact": "To redact"
|
||||
"false-positives": "False positives ({count})",
|
||||
"false-recommendations": "False recommendations ({count})",
|
||||
"to-redact": "To redact ({count})"
|
||||
},
|
||||
"general-info": {
|
||||
"form": {
|
||||
@ -1280,11 +1280,11 @@
|
||||
"content": {
|
||||
"options": {
|
||||
"multiple-pages": {
|
||||
"description": "Edit redaction on following range of pages",
|
||||
"description": "Edit redaction on a range of pages",
|
||||
"extraOptionDescription": "Minus(-) for range and comma(,) for enumeration",
|
||||
"extraOptionLabel": "Range",
|
||||
"extraOptionLabel": "Pages",
|
||||
"extraOptionPlaceholder": "e.g. 1-20,22,32",
|
||||
"label": "Change on all pages"
|
||||
"label": "Change on multiple pages"
|
||||
},
|
||||
"only-this-page": {
|
||||
"description": "Edit redaction only at this position in this document",
|
||||
@ -1891,9 +1891,9 @@
|
||||
"legalBasis": "Legal basis",
|
||||
"options": {
|
||||
"multiple-pages": {
|
||||
"description": "Add redaction on following range of pages",
|
||||
"description": "Add redaction on a range of pages",
|
||||
"extraOptionDescription": "Minus(-) for range and comma(,) for enumeration",
|
||||
"extraOptionLabel": "Range",
|
||||
"extraOptionLabel": "Pages",
|
||||
"extraOptionPlaceholder": "e.g. 1-20,22,32",
|
||||
"label": "Apply on multiple pages"
|
||||
},
|
||||
@ -2186,11 +2186,11 @@
|
||||
"content": {
|
||||
"options": {
|
||||
"multiple-pages": {
|
||||
"description": "Remove redaction on following range of pages",
|
||||
"description": "Remove redaction on a range of pages",
|
||||
"extraOptionDescription": "Minus(-) for range and comma(,) for enumeration",
|
||||
"extraOptionLabel": "Range",
|
||||
"extraOptionLabel": "Pages",
|
||||
"extraOptionPlaceholder": "e.g. 1-20,22,32",
|
||||
"label": "Remove on all pages"
|
||||
"label": "Remove on multiple pages"
|
||||
},
|
||||
"only-this-page": {
|
||||
"description": "Remove redaction only at this position in this document",
|
||||
|
||||
@ -100,7 +100,7 @@
|
||||
"dialog": {
|
||||
"title": "{type, select, add{Neues Komponenten-Mapping erstellen} edit{Komponenten-Mapping bearbeiten} other{}}"
|
||||
},
|
||||
"disabled-file-options": "Re-upload mapping file to change",
|
||||
"disabled-file-options": "Aktualisierte Mapping-Datei hochladen",
|
||||
"form": {
|
||||
"delimiter": "CSV-Trennzeichen",
|
||||
"delimiter-placeholder": "CSV-Trennzeichen",
|
||||
@ -135,9 +135,9 @@
|
||||
},
|
||||
"add-edit-entity": {
|
||||
"form": {
|
||||
"ai-creation-enabled": "Enable AI creation",
|
||||
"ai-description": "AI Description",
|
||||
"ai-description-placeholder": "Enter AI description",
|
||||
"ai-creation-enabled": "KI-Erstellung aktivieren",
|
||||
"ai-description": "KI-Beschreibung",
|
||||
"ai-description-placeholder": "KI-Beschreibung eingeben",
|
||||
"case-sensitive": "Groß-/Kleinschreibung beachten",
|
||||
"color": "Farbe {type, select, redaction{Annotation} hint{Hinweis} recommendation{Empfehlung} skipped{Übersprungene Annotation} ignored{Ignorierter Hinweis} other{}}",
|
||||
"color-placeholder": "#",
|
||||
@ -244,7 +244,7 @@
|
||||
},
|
||||
"type": "Typ",
|
||||
"type-placeholder": "Typ auswählen...",
|
||||
"value": "Value"
|
||||
"value": "Wert\n"
|
||||
},
|
||||
"title": "Hinweis hinzufügen"
|
||||
}
|
||||
@ -287,14 +287,14 @@
|
||||
"label": "Ausgewählte Markierungen konvertieren"
|
||||
},
|
||||
"edit-redaction": {
|
||||
"label": "Edit"
|
||||
"label": "Bearbeiten"
|
||||
},
|
||||
"force-hint": {
|
||||
"label": "Hinweis erzwingen"
|
||||
},
|
||||
"force-redaction": {
|
||||
"label": "Schwärzung erzwingen",
|
||||
"label-image-hint": "Redact"
|
||||
"label-image-hint": "Schwärzen"
|
||||
},
|
||||
"hide": "Ausblenden",
|
||||
"message": {
|
||||
@ -364,7 +364,7 @@
|
||||
"label": "Größenänderung abbrechen"
|
||||
},
|
||||
"see-references": {
|
||||
"label": "See references"
|
||||
"label": "Referenzen anzeigen"
|
||||
},
|
||||
"show": "Zeigen",
|
||||
"undo": "Rückgängig"
|
||||
@ -379,7 +379,7 @@
|
||||
"removed-manual": "Schwärzung/Hinweis entfernt",
|
||||
"resized": "Schwärzungsbereich wurde geändert"
|
||||
},
|
||||
"annotation-content": "{hasRule, select, true {Rule {matchedRule} matched{ruleSymbol}} other {}} {hasReason, select, true {{reason}} other {}} {hasLb, select, true {Legal basis: {legalBasis}} other {}} {hasOverride, select, true {Removed by manual override} other {}} {hasSection, select, true {{shouldLower, plural, =0 {I} other {i}}n section{sectionSymbol} \"{section}\"} other {}}",
|
||||
"annotation-content": "{hasRule, select, true {Rule {matchedRule} trifft zu:{ruleSymbol}} other {}} {hasReason, select, true {{reason}} other {}} {hasLb, select, true {Legal basis: {legalBasis}} other {}} {hasOverride, select, true {Removed by manual override} other {}} {hasSection, select, true {{shouldLower, plural, =0 {I} other {i}}n Abschnitt{sectionSymbol} \"{section}\"} other {}}",
|
||||
"annotation-engines": {
|
||||
"dictionary": "{isHint, select, true{Hinweis} other{Schwärzung}} basiert auf Wörterbuch",
|
||||
"dossier-dictionary": "Annotation basiert auf Dossier-Wörterbuch",
|
||||
@ -933,7 +933,7 @@
|
||||
"total-people": "Anzahl der Benutzer"
|
||||
},
|
||||
"table-col-names": {
|
||||
"documents-status": "Documents state",
|
||||
"documents-status": "Dokumentenstatus",
|
||||
"dossier-state": "Dossier-Status",
|
||||
"last-modified": "Letzte Änderung",
|
||||
"name": "Name",
|
||||
@ -950,7 +950,7 @@
|
||||
"assign-approver": "Genehmiger zuordnen",
|
||||
"assign-me": "Mir zuweisen",
|
||||
"assign-reviewer": "Benutzer zuweisen",
|
||||
"back-to-new": "Move to 'New'",
|
||||
"back-to-new": "Nach \"Neu\" verschieben",
|
||||
"bulk": {
|
||||
"delete": "Dokumente löschen",
|
||||
"reanalyse": "Dokumente analysieren"
|
||||
@ -966,22 +966,22 @@
|
||||
},
|
||||
"charts": {
|
||||
"documents-in-dossier": "Dokumente",
|
||||
"pages-in-dossier": "Pages"
|
||||
"pages-in-dossier": "Seiten"
|
||||
},
|
||||
"description": "Beschreibung",
|
||||
"dictionary": "Dossier-Wörterbuch",
|
||||
"stats": {
|
||||
"analysed-pages": "{count} {count, plural, one{page} other{pages}}",
|
||||
"analysed-pages": "{count} {count, plural, one{Seite} other{Seiten}}",
|
||||
"created-on": "Erstellt am {date}",
|
||||
"deleted": "{count} gelöschte Dateien",
|
||||
"documents": "{count} {count, plural, one{document} other{documents}}",
|
||||
"documents": "{count} {count, plural, one{Seite} other{Seiten}}",
|
||||
"due-date": "Fällig am {date}",
|
||||
"people": "{count} {count, plural, one{user} other{users}}",
|
||||
"processing-documents": "{count} processing {count, plural, one{document} other{documents}}"
|
||||
"people": "{count} {count, plural, one{Benutzer} other{Benutzer}}",
|
||||
"processing-documents": "{count} {count, plural, one{Dokument} other{Dokumente}} in Verarbeitung"
|
||||
}
|
||||
},
|
||||
"download-file": "Herunterladen",
|
||||
"download-file-disabled": "You need to be approver in the dossier and the {count, plural, one{file needs} other{files need}} to be initially processed in order to download.",
|
||||
"download-file-disabled": "Download: Sie müssen Genehmiger im Dossier sein und die initiale Verarbeitung {count, plural, one{der Datei} other{der Dateien}} muss abgeschlossen sein.",
|
||||
"file-listing": {
|
||||
"file-entry": {
|
||||
"file-error": "Reanalyse erforderlich",
|
||||
@ -997,7 +997,7 @@
|
||||
"edit": "Dossier bearbeiten",
|
||||
"upload-document": "Dokument hochgeladen"
|
||||
},
|
||||
"import-redactions": "Import annotations",
|
||||
"import-redactions": "Annotationen importieren",
|
||||
"new-rule": {
|
||||
"toast": {
|
||||
"actions": {
|
||||
@ -1027,71 +1027,71 @@
|
||||
"error": "Die Dateien konnten nicht für eine Reanalyse eingeplant werden. Bitte versuchen Sie es erneut.",
|
||||
"success": "Dateien für Reanalyse vorgesehen."
|
||||
},
|
||||
"report-download": "Report download",
|
||||
"start-auto-analysis": "Enable auto-analysis",
|
||||
"stop-auto-analysis": "Stop auto-analysis",
|
||||
"report-download": "Bericht herunterladen",
|
||||
"start-auto-analysis": "Auto-Analyse aktivieren",
|
||||
"stop-auto-analysis": "Auto-Analyse anhalten",
|
||||
"table-col-names": {
|
||||
"added-on": "Hinzugefügt",
|
||||
"assigned-to": "Zugewiesen an",
|
||||
"last-modified": "Last modified",
|
||||
"last-modified": "Letzte Änderung",
|
||||
"name": "Name",
|
||||
"needs-work": "Arbeitsvorrat",
|
||||
"pages": "Seiten",
|
||||
"status": "Status"
|
||||
},
|
||||
"table-header": {
|
||||
"title": "{length} {length, plural, one{document} other{documents}}"
|
||||
"title": "{length} {length, plural, one{Dokument} other{Dokumente}}"
|
||||
},
|
||||
"under-approval": "Zur Genehmigung",
|
||||
"under-review": "In Review",
|
||||
"upload-files": "Sie können Dateien überall per Drag and Drop platzieren..."
|
||||
},
|
||||
"dossier-permissions": "Dossier permissions",
|
||||
"dossier-permissions": "Dossier-Rechte",
|
||||
"dossier-state": {
|
||||
"placeholder": "Undefined"
|
||||
"placeholder": "NIcht definiert"
|
||||
},
|
||||
"dossier-states-listing": {
|
||||
"action": {
|
||||
"delete": "Delete state",
|
||||
"edit": "Edit state"
|
||||
"delete": "Status löschen",
|
||||
"edit": "Status bearbeiten"
|
||||
},
|
||||
"add-new": "New state",
|
||||
"add-new": "Neuer Status",
|
||||
"chart": {
|
||||
"dossier-states": "{count, plural, one{Dossier state} other{Dossier states}}"
|
||||
"dossier-states": "{count, plural, one{Dossier-Status} other{Dossier-Status}}"
|
||||
},
|
||||
"error": {
|
||||
"conflict": "Dossier state with this name already exists!"
|
||||
"conflict": "Es gibt bereits einen Dossier-Status mit diesem Namen."
|
||||
},
|
||||
"no-data": {
|
||||
"title": "There are no dossier states."
|
||||
"title": "Es wurde noch kein Dossier-Status angelegt."
|
||||
},
|
||||
"no-match": {
|
||||
"title": "No dossier states match your current filters."
|
||||
"title": "Kein Dossier-Status entspricht den aktuell ausgewählten Filtern."
|
||||
},
|
||||
"search": "Search...",
|
||||
"search": "Suche...",
|
||||
"table-col-names": {
|
||||
"dossiers-count": "Dossiers count",
|
||||
"dossiers-count": "Anzahl der Dossiers",
|
||||
"name": "Name",
|
||||
"rank": "Rank"
|
||||
"rank": "Rang"
|
||||
},
|
||||
"table-header": {
|
||||
"title": "{length} dossier {length, plural, one{state} other{states}}"
|
||||
"title": "{length} {length, plural, one{Dossierstatus} other{Dossierstatus}}"
|
||||
}
|
||||
},
|
||||
"dossier-template-info-screen": {
|
||||
"created-by": "Created by",
|
||||
"created-on": "Created on: {date}",
|
||||
"entities": "{count} {count, plural, one{entity} other{entities}}",
|
||||
"entries": "{count} {count, plural, one{entry} other{entries}}",
|
||||
"modified-on": "Modified on: {date}",
|
||||
"title": "Edit dossier template",
|
||||
"valid-from": "Valid from: {date}",
|
||||
"valid-to": "Valid to: {date}"
|
||||
"created-by": "Ersteller",
|
||||
"created-on": "Erstellt am {date}",
|
||||
"entities": "{count} {count, plural, one{Entität} other{Entitäten}}",
|
||||
"entries": "{count} {count, plural, one{Eintrag} other{Einträge}}",
|
||||
"modified-on": "Geändert am {date}",
|
||||
"title": "Dossier-Vorlage bearbeiten",
|
||||
"valid-from": "Gültig ab: {date}",
|
||||
"valid-to": "Gültig bis: {date}"
|
||||
},
|
||||
"dossier-template-stats": {
|
||||
"active-dossiers": "Active {count, plural, one{dossier} other{dossiers}}",
|
||||
"analyzed-pages": "<strong>{count}</strong> {count, plural, one{page} other {pages}} analyzed",
|
||||
"archived-dossiers": "<strong>{count}</strong> {count, plural, one{dossier} other {dossiers}} in archive",
|
||||
"active-dossiers": "{count, plural, one{Aktives Dossier} other{Aktive Dossiers}}",
|
||||
"analyzed-pages": "<strong>{count}</strong> {count, plural, one{Seite} other {Seiten}} analysiert",
|
||||
"archived-dossiers": "<strong>{count}</strong> {count, plural, one{Dossier} other {Dossiers}} im Archiv",
|
||||
"deleted-dossiers": "<strong>{count}</strong> {count, plural, one{dossier} other {dossiers}} in trash",
|
||||
"total-documents": "Anzahl der Dokumente",
|
||||
"total-people": "<strong>{count}</strong> {count, plural, one{user} other {users}}"
|
||||
@ -1153,11 +1153,11 @@
|
||||
"save": "Download"
|
||||
},
|
||||
"form": {
|
||||
"redaction-preview-color": "Redaction preview color",
|
||||
"redaction-preview-color": "Vorschau-Farbe",
|
||||
"redaction-preview-color-placeholder": "#000000"
|
||||
},
|
||||
"header": "Download options",
|
||||
"unapproved-files-warning": "This download contains unapproved file(s)."
|
||||
"header": "Download-Optionen",
|
||||
"unapproved-files-warning": "Dieser Download enthält Dateien, die noch nicht freigegeben sind."
|
||||
},
|
||||
"download-includes": "Wählen Sie die Dokumente für Ihr Download-Paket aus",
|
||||
"download-status": {
|
||||
@ -1235,10 +1235,10 @@
|
||||
"save": "",
|
||||
"title": ""
|
||||
},
|
||||
"entries-count": "{count} {count, plural, one{entry} other{entries}}",
|
||||
"false-positives": "False positives",
|
||||
"false-recommendations": "False recommendations",
|
||||
"to-redact": "To redact"
|
||||
"entries-count": "{count} {count, plural, one{Eintrag} other{Einträge}}",
|
||||
"false-positives": "Falsch-Positive ({count})",
|
||||
"false-recommendations": "Falsche Empfehlungen ({count})",
|
||||
"to-redact": "Schwärzungen ({count})"
|
||||
},
|
||||
"general-info": {
|
||||
"form": {
|
||||
@ -1247,8 +1247,8 @@
|
||||
"placeholder": "Beschreibung eingeben"
|
||||
},
|
||||
"dossier-state": {
|
||||
"label": "Dossier state",
|
||||
"no-state-placeholder": "This dossier template has no states"
|
||||
"label": "Dossier-Status",
|
||||
"no-state-placeholder": "Für dieses Dossier ist noch kein Status festgelegt"
|
||||
},
|
||||
"due-date": "Termin",
|
||||
"name": {
|
||||
@ -1259,7 +1259,7 @@
|
||||
}
|
||||
},
|
||||
"header": "{dossierName} bearbeiten",
|
||||
"missing-owner": "You cannot edit the dossier because the owner is missing!",
|
||||
"missing-owner": "Bearbeiten des Dossiers nicht möglich: Kein Besitzer zugewiesen.",
|
||||
"nav-items": {
|
||||
"choose-download": "Wählen Sie die Dokumente für Ihr Download-Paket aus:",
|
||||
"dictionary": "Wörterbuch",
|
||||
@ -1295,12 +1295,12 @@
|
||||
"edit-redaction": {
|
||||
"dialog": {
|
||||
"actions": {
|
||||
"cancel": "Cancel",
|
||||
"save": "Save changes"
|
||||
"cancel": "Abbrechen",
|
||||
"save": "Änderungen speichern"
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Add remarks or mentions...",
|
||||
"comment": "Kommentar",
|
||||
"comment-placeholder": "Bemerkungen oder Notizen hinzufügen...",
|
||||
"legal-basis": "",
|
||||
"options": {
|
||||
"in-document": {
|
||||
@ -1766,14 +1766,14 @@
|
||||
"label": "Auf allen Seiten entfernen"
|
||||
},
|
||||
"this-page": {
|
||||
"description": "The earmarks in the selected HEX color will be removed only on the current page in view.",
|
||||
"label": "Remove only on this page"
|
||||
"description": "Die Markierungen in der ausgewählten HEX-Farbe werden nur auf der aktuell angezeigten Seite konvertiert.",
|
||||
"label": "Nur auf dieser Seite entfernen"
|
||||
}
|
||||
},
|
||||
"save": "Remove earmarks",
|
||||
"title": "Remove earmarks"
|
||||
"save": "Markierungen entfernen",
|
||||
"title": "Markierungen entfernen"
|
||||
},
|
||||
"success": "{operation, select, convert{Converting earmarks in progress...} delete{Successfully removed earmarks!} other{}} "
|
||||
"success": "{operation, select, convert{Markierungen werden konvertiert...} delete{Markierungen erfolgreich entfernt.} other{}} "
|
||||
},
|
||||
"highlights": "{color} - {length} {length, plural, one{earmark} other{earmarks}}",
|
||||
"image-category": {
|
||||
@ -2206,48 +2206,48 @@
|
||||
},
|
||||
"content": {
|
||||
"comment": "Kommentar",
|
||||
"comment-placeholder": "Add remarks or mentions...",
|
||||
"comment-placeholder": "Bemerkungen oder Notizen hinzufügen...",
|
||||
"options": {
|
||||
"do-not-recommend": {
|
||||
"description": "Do not recommend ''{value}'' as {type} in any document of the current dossier.",
|
||||
"description-bulk": "Do not recommend the selected values as their respective types in any document of the current dossier.",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"label": "Remove from dossier"
|
||||
"description": "Der Begriff soll in Dokumenten dieses Dossiers nicht zur Annotation empfohlen werden.",
|
||||
"description-bulk": "Der Begriff soll in Dokumenten dieses Dossiers nicht zur Annotation empfohlen werden.",
|
||||
"extraOptionLabel": "In alle aktiven und zukünftigen Dossiers übernehmen",
|
||||
"label": "Aus Dossier entfernen"
|
||||
},
|
||||
"false-positive": {
|
||||
"description": "''{value}'' is not a {type} in this context: ''{context}''.",
|
||||
"description": "Markieren Sie die Annotation als falsch-positiv. Der Begriff wird in diesem Dossier nicht geschwärzt, wenn er im gleichen Kontext vorkommt.",
|
||||
"description-bulk": "",
|
||||
"extraOptionDescription": "",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"label": "False positive"
|
||||
"extraOptionLabel": "In alle aktiven und zukünftigen Dossiers übernehmen",
|
||||
"label": "In diesem Kontext aus Dossier entfernen"
|
||||
},
|
||||
"in-document": {
|
||||
"description": "",
|
||||
"label": "Aus Dokument entfernen"
|
||||
},
|
||||
"in-dossier": {
|
||||
"description": "Do not annotate the term in this dossier.",
|
||||
"description": "Der Begriff wird in diesem Dossier nicht geschwärzt.",
|
||||
"description-bulk": "",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"label": "Remove from dossier",
|
||||
"extraOptionLabel": "In alle aktiven und zukünftigen Dossiers übernehmen",
|
||||
"label": "Aus Dossier entfernen",
|
||||
"label-bulk": ""
|
||||
},
|
||||
"only-here": {
|
||||
"description": "Do not {type} ''{value}'' at this position in the current document.",
|
||||
"description-bulk": "",
|
||||
"label": "Remove here"
|
||||
"description": "{type} '{value}'' wird an dieser Stelle nicht annotiert.",
|
||||
"description-bulk": "Do not{type} ''{value}'' at this position in the current document.",
|
||||
"label": "Hier entfernen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"title": "Remove {type}",
|
||||
"title": "Entferne {type}",
|
||||
"title-bulk": ""
|
||||
}
|
||||
},
|
||||
"report-type": {
|
||||
"label": "{length} report {length, plural, one{type} other{types}}"
|
||||
"label": "{length} {length, plural, one{Berichtstyp} other{Berichtstypen}}"
|
||||
},
|
||||
"reports-screen": {
|
||||
"description": "Below, you will find a list of placeholders for dossier- and document-specific information. You can include these placeholders in your report templates.",
|
||||
"description": "Die Liste unten enthält Platzhalter, die für dossier- und dokumentenspezifische Informationen stehen. Sie können diese in die Vorlagen für Ihre Berichte einbauen.",
|
||||
"descriptions": {
|
||||
"dossier-attributes": "Dieser Platzhalter wird durch den Wert des Dossier-Attributs <code>{attribute}</code> ersetzt.",
|
||||
"file-attributes": "Dieser Platzhalter wird durch den Wert des Dateiattributs <code>{attribute}</code> ersetzt.",
|
||||
@ -2265,17 +2265,17 @@
|
||||
},
|
||||
"redaction": {
|
||||
"entity": {
|
||||
"display-name": "This placeholder is replaced by the name of the entity the component is based on."
|
||||
"display-name": "Dieser Platzhalter wird durch den Entitätsnamen ersetzt, auf der die Komponente basiert."
|
||||
},
|
||||
"excerpt": "Dieser Platzhalter wird durch einen Textausschnitt ersetzt, der die Schwärzung enthält.",
|
||||
"is-skipped": "The skipped redaction placeholder indicates whether a redaction is skipped or not. It can be included in a separate column of a template that also contains the '{{redaction.value'}} placeholder. The placeholder is replaced by “true” if the respective redaction is skipped, and by “false” if it is redacted (i. e., not skipped).",
|
||||
"is-skipped": "Dieser Platzhalter gibt an, ob eine Schwärzung ignoriert wird oder nicht. Er kann in eine separate Spalte einer Vorlage eingebaut werden, die auch den Platzhalter '{{'redaction.value'}}' enthält. Der Platzhalter wird durch „true“ (wahr) ersetzt, wenn die entsprechende Schwärzung ignoriert ist, und durch „false“ (falsch), wenn sie nicht ignoriert (d. h. geschwärzt) ist.",
|
||||
"justification": "Dieser Platzhalter wird durch die Begründung der Schwärzung ersetzt. Es ist eine Kombination aus dem Rechtsverweis (justificationParagraph) und dem Begründungstext (justificationReason).",
|
||||
"justification-legal-basis": "This placeholder is replaced by the legal basis for the component.",
|
||||
"justification-paragraph": "Dieser Platzhalter wird durch den Rechtshinweis der Begründung der Redaktion ersetzt.",
|
||||
"justification-reason": "Dieser Platzhalter wird durch den Begründungstext der Schwärzung ersetzt.",
|
||||
"justification-text": "This placeholder is replaced by the justification text.",
|
||||
"page": "Dieser Platzhalter wird durch die Seitenzahl der Redaktion ersetzt.",
|
||||
"paragraph": "Dieser Platzhalter wird durch den Absatz ersetzt, der die Schwärzung enthält.",
|
||||
"justification-legal-basis": "Dieser Platzhalter wird durch die Rechtsgrundlage der Komponente ersetzt.",
|
||||
"justification-paragraph": "Dieser Platzhalter wird durch den Rechtshinweis der Begründung der Komponente ersetzt.",
|
||||
"justification-reason": "Dieser Platzhalter wird durch den Begründungstext der Komponente ersetzt.",
|
||||
"justification-text": "Dieser Platzhalter wird durch die Schwärzungsbegründung (Text) ersetzt.",
|
||||
"page": "Dieser Platzhalter wird durch die Seitenzahl der Komponente ersetzt.",
|
||||
"paragraph": "Dieser Platzhalter wird durch den Absatz ersetzt, der die Komponente enthält.",
|
||||
"paragraph-idx": "The placeholder is replaced by the number of the paragraph containing the redaction. Paragraphs are numbered on a per-page basis.",
|
||||
"value": "This placeholder is replaced by the value that was extracted."
|
||||
},
|
||||
@ -2287,7 +2287,7 @@
|
||||
"invalid-upload": "Ungültiges Upload-Format ausgewählt! Unterstützt werden Dokumente im .xlsx- und im .docx-Format",
|
||||
"multi-file-report": "(Mehrere Dateien)",
|
||||
"report-documents": "Dokumente für den Bericht",
|
||||
"setup": "Click the upload button on the right to upload your component report templates.",
|
||||
"setup": "Dieser Platzhalter wird durch die Nummer der Seite ersetzt, auf der sich die Schwärzung befindet.",
|
||||
"table-header": {
|
||||
"description": "Beschreibung",
|
||||
"placeholders": "Platzhalter"
|
||||
@ -2309,95 +2309,95 @@
|
||||
"resize-annotation": {
|
||||
"dialog": {
|
||||
"actions": {
|
||||
"cancel": "Cancel",
|
||||
"save": "Save changes"
|
||||
"cancel": "Abbrechen",
|
||||
"save": "Änderungen speichern"
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"original-text": "Original annotation:",
|
||||
"resized-text": "Resized annotation:"
|
||||
"comment": "Kommentar",
|
||||
"original-text": "Originale Annotation:",
|
||||
"resized-text": "Geändert zu: "
|
||||
},
|
||||
"header": "Resize annotation"
|
||||
"header": "Größe der Annotation ändern"
|
||||
}
|
||||
},
|
||||
"resize-redaction": {
|
||||
"dialog": {
|
||||
"actions": {
|
||||
"cancel": "Cancel",
|
||||
"save": "Save changes"
|
||||
"cancel": "Abbrechen",
|
||||
"save": "Änderungen speichern"
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"comment": "Kommentar",
|
||||
"options": {
|
||||
"in-dossier": {
|
||||
"description": "Resize in every document in {dossierName}.",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"label": "Resize in dossier",
|
||||
"tooltip": "Only available for dictionary-based types"
|
||||
"description": "Ändern Sie die Größe in jedem Dokument in {dossierName}.",
|
||||
"extraOptionLabel": "In alle Dossiers übernehmen",
|
||||
"label": "Größe im Dossier ändern",
|
||||
"tooltip": "Nur bei wörterbuchbasierten Typen verfügbar"
|
||||
},
|
||||
"only-here": {
|
||||
"description": "Resize only at this position in this document.",
|
||||
"label": "Resize only here"
|
||||
"description": "Ändern Sie die Größe nur an dieser Stelle im Dokument.",
|
||||
"label": "Größe nur hier ändern"
|
||||
}
|
||||
},
|
||||
"original-text": "Original text:",
|
||||
"resized-text": "Resized text:",
|
||||
"type": "Type"
|
||||
"original-text": "Originaltext:",
|
||||
"resized-text": "Geändert zu:",
|
||||
"type": "Typ"
|
||||
},
|
||||
"header": "Resize {type}"
|
||||
"header": "Größe von {type} ändern"
|
||||
}
|
||||
},
|
||||
"revert-value-dialog": {
|
||||
"actions": {
|
||||
"cancel": "Cancel",
|
||||
"revert": "Revert to original values"
|
||||
"cancel": "Abbrechen",
|
||||
"revert": "Auf ursprüngliche Werte zurücksetzen"
|
||||
},
|
||||
"component-rule": "Component rule: ",
|
||||
"current-values": "Current values",
|
||||
"original-values": "Original values",
|
||||
"title": "Revert to the original values?"
|
||||
"component-rule": "Komponentenregel:",
|
||||
"current-values": "Aktuelle Werte",
|
||||
"original-values": "Ursprüngliche Werte",
|
||||
"title": "Auf ursprüngliche Werte zurücksetzen?"
|
||||
},
|
||||
"roles": {
|
||||
"inactive": "Inaktiv",
|
||||
"manager-admin": "Manager & admin",
|
||||
"manager-admin": "Manager & Admin",
|
||||
"no-role": "Keine Rolle definiert",
|
||||
"red-admin": "Anwendungsadministrator",
|
||||
"red-admin": "Anwendungsadmin",
|
||||
"red-manager": "Manager",
|
||||
"red-user": "Benutzer",
|
||||
"red-user-admin": "Benutzer-Admin",
|
||||
"regular": "Regulär"
|
||||
"red-user-admin": "Benutzeradmin",
|
||||
"regular": "regulärer Benutzer"
|
||||
},
|
||||
"search": {
|
||||
"active-dossiers": "ganze Plattform",
|
||||
"all-dossiers": "all documents",
|
||||
"placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen",
|
||||
"this-dossier": "in diesem Dossier"
|
||||
"active-dossiers": "Dokumente in aktiven Dossiers",
|
||||
"all-dossiers": "Alle Dokumente",
|
||||
"placeholder": "Dokumente durchsuchen...",
|
||||
"this-dossier": "In diesem Dossier"
|
||||
},
|
||||
"search-screen": {
|
||||
"cols": {
|
||||
"assignee": "Bevollmächtigter",
|
||||
"assignee": "Bearbeiter",
|
||||
"document": "Dokument",
|
||||
"dossier": "Dossier",
|
||||
"pages": "Seiten",
|
||||
"status": "Status"
|
||||
},
|
||||
"filters": {
|
||||
"assignee": "Assignee",
|
||||
"by-dossier": "Nach Dossier filtern",
|
||||
"by-template": "Dossier template",
|
||||
"only-active": "Active dossiers only",
|
||||
"search-by-template-placeholder": "Dossier template name...",
|
||||
"assignee": "Bearbeiter",
|
||||
"by-dossier": "Dossier",
|
||||
"by-template": "Dossier-Vorlage",
|
||||
"only-active": "Nur aktive Dossiers",
|
||||
"search-by-template-placeholder": "Dossiernamen eingeben...",
|
||||
"search-placeholder": "Dossiername...",
|
||||
"status": "Status"
|
||||
},
|
||||
"missing": "Fehlt",
|
||||
"must-contain": "Muss enthalten",
|
||||
"no-data": "Geben Sie einen Suchbegriff in die Suchleiste, um nach Dokumenten oder Inhalten von Dokumenten zu suchen.",
|
||||
"no-match": "Keine Dokumente entsprechen Ihren aktuellen Filtern.",
|
||||
"table-header": "{length} search {length, plural, one{result} other{results}}"
|
||||
"no-data": "Geben Sie einen Suchbegriff in die Suchleiste ein,<br> um Dokumente oder Inhalte zu suchen.",
|
||||
"no-match": "Der Suchbegriff wurde in keinem der Dokumente gefunden.",
|
||||
"table-header": "{length} {length, plural, one{Suchergebnis} other{Suchergebnisse}}"
|
||||
},
|
||||
"seconds": "seconds",
|
||||
"size": "Size",
|
||||
"seconds": "Sekunden",
|
||||
"size": "Größe",
|
||||
"smtp-auth-config": {
|
||||
"actions": {
|
||||
"cancel": "Abbrechen",
|
||||
@ -2411,48 +2411,48 @@
|
||||
"title": "Authentifizierung aktivieren"
|
||||
},
|
||||
"table-header": {
|
||||
"selected-count": "{count} selected"
|
||||
"selected-count": "{count} ausgewählt"
|
||||
},
|
||||
"tenant-resolve": {
|
||||
"contact-administrator": "Cannot remember the workspace? <b>Please contact your administrator.</b>",
|
||||
"contact-administrator": "Workspace vergessen? <b>Bitte wenden Sie sich an Ihren Administrator.</b>",
|
||||
"header": {
|
||||
"first-time": "Sign in for the first time to a workspace",
|
||||
"join-another-domain": "Or join another workspace",
|
||||
"no-role-log-out": "User role missing. Please ask your administrator to assign roles before logging in again.",
|
||||
"sign-in-previous-domain": "Sign in to a previously used workspace",
|
||||
"youre-logged-out": "You have successfully been logged out."
|
||||
"first-time": "Melden Sie sich zum ersten Mal bei einem Workspace an",
|
||||
"join-another-domain": "Oder treten Sie einem andren Workspace bei",
|
||||
"no-role-log-out": "Keine Benutzerrolle zugewiesen. Bitten Sie Ihren Admin, Ihnen eine Rolle zuzuweisen, und versuchen Sie es dann noch einmal.",
|
||||
"sign-in-previous-domain": "Melden Sie sich bei einem bereits verwendeten Workspace an",
|
||||
"youre-logged-out": "Sie wurden erfolgreich abgemeldet."
|
||||
},
|
||||
"input-placeholder": "your workspace"
|
||||
"input-placeholder": "Ihr Workspace"
|
||||
},
|
||||
"time": {
|
||||
"days": "{days} {days, plural, one{day} other{days}}",
|
||||
"hours": "{hours} {hours, plural, one{hour} other{hours}}",
|
||||
"days": "{days} {days, plural, one{Tag} other{Tage}}",
|
||||
"hours": "{hours} {hours, plural, one{Stunde} other{Stunden}}",
|
||||
"less-than-an-hour": "< 1 Stunde",
|
||||
"no-time-left": "Frist für Wiederherstellung verstrichen"
|
||||
},
|
||||
"today": "Today",
|
||||
"today": "Heute",
|
||||
"toggle-auto-analysis-message": {
|
||||
"error": "Something went wrong.",
|
||||
"success": "{toggleOperation} automatic processing."
|
||||
"error": "Es ist ein Fehler aufgetreten.",
|
||||
"success": "{toggleOperation} automatische Verarbeitung."
|
||||
},
|
||||
"top-bar": {
|
||||
"navigation-items": {
|
||||
"back": "Zurück",
|
||||
"back-to-dashboard": "Back to home",
|
||||
"dashboard": "Home",
|
||||
"back-to-dashboard": "Zurück zu Start",
|
||||
"dashboard": "Start",
|
||||
"my-account": {
|
||||
"children": {
|
||||
"account": "Konto",
|
||||
"admin": "Einstellungen",
|
||||
"downloads": "Meine Downloads",
|
||||
"join-another-tenant": "Join another workspace",
|
||||
"join-another-tenant": "Anderem Workspace beitreten",
|
||||
"language": {
|
||||
"de": "Deutsch",
|
||||
"en": "Englisch",
|
||||
"label": "Sprache"
|
||||
},
|
||||
"logout": "Abmelden",
|
||||
"select-tenant": "Select Tenant",
|
||||
"select-tenant": "Workspace wechseln",
|
||||
"trash": "Papierkorb"
|
||||
}
|
||||
}
|
||||
@ -2469,7 +2469,7 @@
|
||||
},
|
||||
"label": "Papierkorb",
|
||||
"no-data": {
|
||||
"title": "Es wurde noch kein Dossier angelegt."
|
||||
"title": "Im Papierkorb befinden sich keine gelöschten Elemente."
|
||||
},
|
||||
"no-match": {
|
||||
"title": "Die ausgewählten Filter treffen auf kein Dossier zu."
|
||||
@ -2478,19 +2478,19 @@
|
||||
"deleted-on": "Gelöscht am",
|
||||
"dossier": "Dossier",
|
||||
"name": "Name",
|
||||
"owner": "Eigentümer",
|
||||
"owner": "Besitzer/Bearbeiter",
|
||||
"time-to-restore": "Verbleibende Zeit für Wiederherstellung"
|
||||
},
|
||||
"table-header": {
|
||||
"title": "{length} deleted {length, plural, one{item} other{items}}"
|
||||
"title": "{length} {length, plural, one{gelöschtes Dossier} other{gelöschte Dossiers}}"
|
||||
}
|
||||
},
|
||||
"type": "Typ",
|
||||
"unknown": "Unbekannt",
|
||||
"update-profile": {
|
||||
"errors": {
|
||||
"bad-request": "Error: {message}.",
|
||||
"generic": "An error has occurred while updating the profile."
|
||||
"bad-request": "Fehler: {message}.",
|
||||
"generic": "Bei der Aktualisierung des Profils ist ein Fehler aufgetreten."
|
||||
}
|
||||
},
|
||||
"upload-dictionary-dialog": {
|
||||
@ -2499,11 +2499,11 @@
|
||||
"merge": "Einträge zusammenführen",
|
||||
"overwrite": "Überschreiben"
|
||||
},
|
||||
"question": "Wählen Sie, wie Sie fortfahren möchten:",
|
||||
"question": "Wie möchten Sie vorgehen?",
|
||||
"title": "Das Wörterbuch hat bereits Einträge!"
|
||||
},
|
||||
"upload-file": {
|
||||
"upload-area-text": "Click or drag & drop anywhere on this area..."
|
||||
"upload-area-text": "Klicken Sie hier oder ziehen Sie die Datei in diesen Bereich..."
|
||||
},
|
||||
"upload-status": {
|
||||
"dialog": {
|
||||
@ -2515,8 +2515,8 @@
|
||||
},
|
||||
"error": {
|
||||
"file-size": "Datei zu groß. Die maximal zulässige Größe beträgt {size} MB.",
|
||||
"file-type": "This file type is not accepted.",
|
||||
"generic": "Fehler beim Hochladen des Dokuments. {error}"
|
||||
"file-type": "Dateityp wird nicht unterstützt.",
|
||||
"generic": "Aktualisierung der Datei fehlgeschlagen: {error}"
|
||||
}
|
||||
},
|
||||
"user-listing": {
|
||||
@ -2530,22 +2530,22 @@
|
||||
"delete-disabled": "Sie können Ihr eigenes Konto nicht löschen."
|
||||
},
|
||||
"no-match": {
|
||||
"title": "Die ausgewählten Filter treffen auf keinen Benutzer zu."
|
||||
"title": "Ausgewählte Filter treffen auf keinen Benutzer zu."
|
||||
},
|
||||
"search": "Suche ...",
|
||||
"table-col-names": {
|
||||
"active": "Aktiv",
|
||||
"email": "E-Mail-Adresse",
|
||||
"name": "Name",
|
||||
"name": "Name\n",
|
||||
"roles": "Rollen"
|
||||
},
|
||||
"table-header": {
|
||||
"title": "{length} {length, plural, one{user} other{users}}"
|
||||
"title": "{length} {length, plural, one{Benutzer} other{Benutzer}}"
|
||||
}
|
||||
},
|
||||
"user-management": "Benutzerverwaltung",
|
||||
"user-menu": {
|
||||
"button-text": "User menu"
|
||||
"button-text": "Benutzermenü"
|
||||
},
|
||||
"user-profile": "Mein Profil",
|
||||
"user-profile-screen": {
|
||||
@ -2556,63 +2556,63 @@
|
||||
"confirm-password": {
|
||||
"form": {
|
||||
"password": {
|
||||
"label": "Password"
|
||||
"label": "Passwort"
|
||||
}
|
||||
},
|
||||
"header": "Confirm your password",
|
||||
"save": "Submit"
|
||||
"header": "Passwort bestätigen",
|
||||
"save": "Absenden"
|
||||
},
|
||||
"form": {
|
||||
"dark-theme": "Dark theme",
|
||||
"email": "E-mail",
|
||||
"dark-theme": "Nachtmodus",
|
||||
"email": "E-Mail",
|
||||
"first-name": "Vorname",
|
||||
"last-name": "Nachname"
|
||||
},
|
||||
"title": "Profil bearbeiten",
|
||||
"update": {
|
||||
"success": "Successfully updated profile!"
|
||||
"success": "Das Profil wurde erfolgreich aktualisiert."
|
||||
}
|
||||
},
|
||||
"user-stats": {
|
||||
"chart": {
|
||||
"users": "Benutzer im Arbeitsbereich"
|
||||
"users": "Benutzer im Workspace"
|
||||
},
|
||||
"collapse": "Details ausblenden",
|
||||
"expand": "Details anzeigen",
|
||||
"title": "Benutzer"
|
||||
},
|
||||
"view-mode": {
|
||||
"list": "Liste",
|
||||
"list": "Dokumentenliste",
|
||||
"view-as": "Ansicht als:",
|
||||
"workflow": "Arbeitsablauf"
|
||||
"workflow": "Workflow-Spalten"
|
||||
},
|
||||
"watermark-screen": {
|
||||
"action": {
|
||||
"change-success": "Das Wasserzeichen wurde aktualisiert!",
|
||||
"created-success": "Watermark has been created!",
|
||||
"error": "Fehler beim Aktualisieren des Wasserzeichens",
|
||||
"revert": "Rückgängig machen",
|
||||
"change-success": "Wasserzeichen wurde aktualisiert.",
|
||||
"created-success": "Wasserzeichen wurde erstellt.",
|
||||
"error": "Aktualisierung des Wasserzeichens fehlgeschlagen.",
|
||||
"revert": "Zurücksetzen",
|
||||
"save": "Änderungen speichern"
|
||||
},
|
||||
"alignment": {
|
||||
"align-bottom": "Align bottom",
|
||||
"align-horizontal-centers": "Align horizontal centers",
|
||||
"align-left": "Align left",
|
||||
"align-right": "Align right",
|
||||
"align-top": "Align top",
|
||||
"align-vertical-centers": "Align vertical centers"
|
||||
"align-bottom": "Unten",
|
||||
"align-horizontal-centers": "Horizontal mittig",
|
||||
"align-left": "Linksbündig",
|
||||
"align-right": "Rechtsbündig",
|
||||
"align-top": "Oben",
|
||||
"align-vertical-centers": "Vertikal mittig"
|
||||
},
|
||||
"form": {
|
||||
"alignment": "Alignment",
|
||||
"alignment": "Position",
|
||||
"color": "Farbe",
|
||||
"color-placeholder": "#",
|
||||
"font-size": "Schriftgröße",
|
||||
"font-type": "Schriftart",
|
||||
"name-label": "Watermark name",
|
||||
"name-placeholder": "Choose a name to identify the watermark",
|
||||
"name-label": "Name des Wsserzeichens",
|
||||
"name-placeholder": "Namen für Wasserzeichen eingeben",
|
||||
"opacity": "Deckkraft",
|
||||
"orientation": "Ausrichtung",
|
||||
"text-label": "Watermark text",
|
||||
"orientation": "Textrichtung",
|
||||
"text-label": "Text für Wasserzeichen",
|
||||
"text-placeholder": "Text eingeben"
|
||||
},
|
||||
"pagination": {
|
||||
@ -2622,32 +2622,32 @@
|
||||
},
|
||||
"watermarks-listing": {
|
||||
"action": {
|
||||
"delete": "Delete",
|
||||
"delete-success": "Watermark has been deleted!",
|
||||
"edit": "Edit"
|
||||
"delete": "Löschen",
|
||||
"delete-success": "Das Wasserzeichen wurde gelöscht.",
|
||||
"edit": "Bearbeiten"
|
||||
},
|
||||
"add-new": "New watermark",
|
||||
"add-new": "Neues Wasserzeichen",
|
||||
"no-data": {
|
||||
"title": "There are no watermarks yet."
|
||||
"title": "Es wurde noch kein Wasserzeichen erstellt."
|
||||
},
|
||||
"table-col-names": {
|
||||
"created-by": "Created by",
|
||||
"created-on": "Created on",
|
||||
"modified-on": "Modified on",
|
||||
"created-by": "Ersteller",
|
||||
"created-on": "Erstellt am",
|
||||
"modified-on": "Geändert am",
|
||||
"name": "Name",
|
||||
"status": "Status"
|
||||
},
|
||||
"table-header": {
|
||||
"title": "Watermarks"
|
||||
"title": "Wasserzeichen"
|
||||
},
|
||||
"watermark-is-used": "This watermark is already in use, are you sure you want to delete it?"
|
||||
"watermark-is-used": "Dieses Wasserzeichen wird bereits verwendet. Möchten Sie es dennoch löschen?"
|
||||
},
|
||||
"workflow": {
|
||||
"selection": {
|
||||
"all": "Alle",
|
||||
"count": "{count} ausgewählt",
|
||||
"none": "Keiner",
|
||||
"select": "Wählen"
|
||||
"select": "Auswählen"
|
||||
}
|
||||
},
|
||||
"yesterday": "Gestern"
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Add remarks or mentions...",
|
||||
"comment-placeholder": "Add remarks or notes...",
|
||||
"selected-text": "Selected text:",
|
||||
"type": "Type",
|
||||
"type-placeholder": "Select type..."
|
||||
@ -100,7 +100,7 @@
|
||||
"dialog": {
|
||||
"title": "{type, select, add{Add new} edit{Edit} other{}} component mapping"
|
||||
},
|
||||
"disabled-file-options": "Re-upload mapping file to change",
|
||||
"disabled-file-options": "Upload updated mapping file",
|
||||
"form": {
|
||||
"delimiter": "CSV delimiter",
|
||||
"delimiter-placeholder": "CSV delimiter",
|
||||
@ -230,11 +230,11 @@
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Add remarks or mentions...",
|
||||
"comment-placeholder": "Add remarks or notes...",
|
||||
"options": {
|
||||
"in-dossier": {
|
||||
"description": "Add hint in every document in {dossierName}.",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"extraOptionLabel": "Apply to all active and future dossiers",
|
||||
"label": "Add hint in dossier"
|
||||
},
|
||||
"only-here": {
|
||||
@ -981,7 +981,7 @@
|
||||
}
|
||||
},
|
||||
"download-file": "Download",
|
||||
"download-file-disabled": "You need to be approver in the dossier and the {count, plural, one{file needs} other{files need}} to be initially processed in order to download.",
|
||||
"download-file-disabled": "To download, ensure you are an approver in the dossier, and the {count, plural, one{file has undergone} other{files have undergone}} initial processing.",
|
||||
"file-listing": {
|
||||
"file-entry": {
|
||||
"file-error": "Re-processing required",
|
||||
@ -1060,13 +1060,13 @@
|
||||
"dossier-states": "{count, plural, one{Dossier state} other{Dossier states}}"
|
||||
},
|
||||
"error": {
|
||||
"conflict": "Dossier state with this name already exists!"
|
||||
"conflict": "Dossier state with this name already exists."
|
||||
},
|
||||
"no-data": {
|
||||
"title": "There are no dossier states."
|
||||
},
|
||||
"no-match": {
|
||||
"title": "No dossier states match your current filters."
|
||||
"title": "No dossier state matches the currently selected filters."
|
||||
},
|
||||
"search": "Search...",
|
||||
"table-col-names": {
|
||||
@ -1153,7 +1153,7 @@
|
||||
"save": "Download"
|
||||
},
|
||||
"form": {
|
||||
"redaction-preview-color": "Redaction preview color",
|
||||
"redaction-preview-color": "Preview color",
|
||||
"redaction-preview-color-placeholder": "#000000"
|
||||
},
|
||||
"header": "Download options",
|
||||
@ -1236,9 +1236,9 @@
|
||||
"title": ""
|
||||
},
|
||||
"entries-count": "{count} {count, plural, one{entry} other{entries}}",
|
||||
"false-positives": "False positives",
|
||||
"false-recommendations": "False recommendations",
|
||||
"to-redact": "To redact"
|
||||
"false-positives": "False positives ({count})",
|
||||
"false-recommendations": "False recommendations ({count})",
|
||||
"to-redact": "To redact ({count})"
|
||||
},
|
||||
"general-info": {
|
||||
"form": {
|
||||
@ -1259,7 +1259,7 @@
|
||||
}
|
||||
},
|
||||
"header": "Edit {dossierName}",
|
||||
"missing-owner": "You cannot edit the dossier because the owner is missing!",
|
||||
"missing-owner": "Editing the dossier not possible: No owner assigned.",
|
||||
"nav-items": {
|
||||
"choose-download": "Choose what is included at download:",
|
||||
"dictionary": "Dictionary",
|
||||
@ -1300,7 +1300,7 @@
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Add remarks or mentions...",
|
||||
"comment-placeholder": "Add remarks or notes...",
|
||||
"legal-basis": "",
|
||||
"options": {
|
||||
"in-document": {
|
||||
@ -1745,7 +1745,7 @@
|
||||
"label": "Convert on all pages"
|
||||
},
|
||||
"this-page": {
|
||||
"description": "The earmarks in the selected HEX color will be converted only on the current page in view.",
|
||||
"description": "The earmarks in the selected HEX color will be converted only on the currently viewed page.",
|
||||
"label": "Convert only on this page"
|
||||
}
|
||||
},
|
||||
@ -2110,7 +2110,7 @@
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Add remarks or mentions...",
|
||||
"comment-placeholder": "Add remarks or notes...",
|
||||
"edit-text": "",
|
||||
"legal-basis": "Legal basis",
|
||||
"options": {
|
||||
@ -2120,7 +2120,7 @@
|
||||
},
|
||||
"in-dossier": {
|
||||
"description": "Add redaction in every document in {dossierName}.",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"extraOptionLabel": "Apply to all active and future dossiers",
|
||||
"label": "Redact in dossier"
|
||||
},
|
||||
"only-here": {
|
||||
@ -2149,14 +2149,14 @@
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Add remarks or mentions...",
|
||||
"comment-placeholder": "Add remarks or notes...",
|
||||
"list-item": "{text}",
|
||||
"list-item-false-positive": "''{text}'' in the context: ''{context}''",
|
||||
"options": {
|
||||
"false-positive": {
|
||||
"description": "''{value}'' is not a ''{type}'' in this context: ''{context}''.",
|
||||
"description": "Mark this redaction as a false-positive. The term will not be redacted in this dossier if it occurs in the same context.",
|
||||
"description-bulk": "Mark this redaction as a false-positive. The term will not be redacted in this dossier if it occurs in the same context.",
|
||||
"label": "False positive"
|
||||
"label": "Remove from dossier in this context"
|
||||
},
|
||||
"in-document": {
|
||||
"description": "",
|
||||
@ -2206,20 +2206,20 @@
|
||||
},
|
||||
"content": {
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Add remarks or mentions...",
|
||||
"comment-placeholder": "Add remarks or notes...",
|
||||
"options": {
|
||||
"do-not-recommend": {
|
||||
"description": "Do not recommend ''{value}'' as {type} in any document of the current dossier.",
|
||||
"description": "Do not recommend the selected term in any document of this dossier.",
|
||||
"description-bulk": "Do not recommend the selected values as their respective types in any document of the current dossier.",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"extraOptionLabel": "Apply to all active and future dossiers",
|
||||
"label": "Remove from dossier"
|
||||
},
|
||||
"false-positive": {
|
||||
"description": "''{value}'' is not a {type} in this context: ''{context}''.",
|
||||
"description": "Mark this redaction as a false-positive. The term will not be redacted in this dossier if it occurs in the same context.",
|
||||
"description-bulk": "",
|
||||
"extraOptionDescription": "",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"label": "False positive"
|
||||
"extraOptionLabel": "Apply to all active and future dossiers",
|
||||
"label": "Remove from dossier in this context"
|
||||
},
|
||||
"in-document": {
|
||||
"description": "",
|
||||
@ -2228,13 +2228,13 @@
|
||||
"in-dossier": {
|
||||
"description": "Do not annotate the term in this dossier.",
|
||||
"description-bulk": "",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"extraOptionLabel": "Apply to all active and future dossiers",
|
||||
"label": "Remove from dossier",
|
||||
"label-bulk": ""
|
||||
},
|
||||
"only-here": {
|
||||
"description": "Do not {type} ''{value}'' at this position in the current document.",
|
||||
"description-bulk": "",
|
||||
"description": "Do not{type} '{value}'' at this position in the current document.",
|
||||
"description-bulk": "Do not{type} ''{value}'' at this position in the current document.",
|
||||
"label": "Remove here"
|
||||
}
|
||||
}
|
||||
@ -2268,7 +2268,7 @@
|
||||
"display-name": "This placeholder is replaced by the name of the entity the component is based on."
|
||||
},
|
||||
"excerpt": "This placeholder is replaced by a text snippet that contains the component.",
|
||||
"is-skipped": "The skipped redaction placeholder indicates whether a redaction is skipped or not. It can be included in a separate column of a template that also contains the '{{redaction.value'}} placeholder. The placeholder is replaced by “true” if the respective redaction is skipped, and by “false” if it is redacted (i. e., not skipped).",
|
||||
"is-skipped": "The skipped redaction placeholder indicates whether a redaction is skipped or not. It can be included in a separate column of a template that also contains the '\n{{'redaction.value'}}' placeholder. The placeholder is replaced by “true” if the respective redaction is skipped, and by “false” if it is redacted (i. e., not skipped).",
|
||||
"justification": "This placeholder is replaced by the justification of the component. It is a combination of the legal reference (justificationParagraph) and the justification text (justificationReason).",
|
||||
"justification-legal-basis": "This placeholder is replaced by the legal basis for the component.",
|
||||
"justification-paragraph": "This placeholder is replaced by the legal reference of the justification of the component.",
|
||||
@ -2331,7 +2331,7 @@
|
||||
"options": {
|
||||
"in-dossier": {
|
||||
"description": "Resize in every document in {dossierName}.",
|
||||
"extraOptionLabel": "Apply to all dossiers",
|
||||
"extraOptionLabel": "Apply to all active and future dossiers",
|
||||
"label": "Resize in dossier",
|
||||
"tooltip": "Only available for dictionary-based types"
|
||||
},
|
||||
@ -2386,7 +2386,7 @@
|
||||
},
|
||||
"missing": "Missing",
|
||||
"must-contain": "Must contain",
|
||||
"no-data": "Please enter a keyword into the search bar to look for documents or document content.",
|
||||
"no-data": "Enter a keyword into the search bar<br> to look for documents or document content.",
|
||||
"no-match": "The specified search term was not found in any of the documents.",
|
||||
"table-header": "{length} search {length, plural, one{result} other{results}}"
|
||||
},
|
||||
@ -2422,7 +2422,7 @@
|
||||
"sign-in-previous-domain": "Sign in to a previously used workspace",
|
||||
"youre-logged-out": "You have successfully been logged out."
|
||||
},
|
||||
"input-placeholder": "your workspace"
|
||||
"input-placeholder": "Your workspace"
|
||||
},
|
||||
"time": {
|
||||
"days": "{days} {days, plural, one{day} other{days}}",
|
||||
@ -2515,7 +2515,7 @@
|
||||
},
|
||||
"error": {
|
||||
"file-size": "File too large. Limit is {size}MB.",
|
||||
"file-type": "This file type is not accepted.",
|
||||
"file-type": "This file type is not supported.",
|
||||
"generic": "Failed to upload file. {error}"
|
||||
}
|
||||
},
|
||||
@ -2570,7 +2570,7 @@
|
||||
},
|
||||
"title": "Edit profile",
|
||||
"update": {
|
||||
"success": "Successfully updated profile!"
|
||||
"success": "Successfully updated profile."
|
||||
}
|
||||
},
|
||||
"user-stats": {
|
||||
@ -2588,9 +2588,9 @@
|
||||
},
|
||||
"watermark-screen": {
|
||||
"action": {
|
||||
"change-success": "Watermark has been updated!",
|
||||
"created-success": "Watermark has been created!",
|
||||
"error": "Failed to update watermark",
|
||||
"change-success": "Watermark has been updated.",
|
||||
"created-success": "Watermark has been created.",
|
||||
"error": "Failed to update watermark.",
|
||||
"revert": "Revert",
|
||||
"save": "Save changes"
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user