Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67e50478e7 | ||
|
|
edd709df6f | ||
|
|
05b6f88d64 | ||
|
|
7027de6f6e | ||
|
|
7beddc6138 | ||
|
|
71980486a2 | ||
|
|
1081f8ad1c | ||
|
|
435b9f16a9 | ||
|
|
52f124adff | ||
|
|
1171c0d78f | ||
|
|
6cedf8afb0 | ||
|
|
1b2f14ec89 | ||
|
|
dc66b8a708 | ||
|
|
e2cd71dd24 | ||
|
|
3777c12134 | ||
|
|
3bfa4796b0 | ||
|
|
c0c6232f0a | ||
|
|
d52b8b0d87 | ||
|
|
61b869675e | ||
|
|
be743fa9d7 | ||
|
|
e5a3366ec7 | ||
|
|
4a49e68c4a | ||
|
|
15a675515d | ||
|
|
3f8a53b86c | ||
|
|
ae0510add8 | ||
|
|
ca51e31de8 | ||
|
|
02addbbc16 |
@ -31,6 +31,11 @@
|
|||||||
{{ 'preferences-screen.form.help-mode-dialog' | translate }}
|
{{ 'preferences-screen.form.help-mode-dialog' | translate }}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="iqser-input-group">
|
||||||
|
<mat-checkbox color="primary" formControlName="overwriteFileOption">
|
||||||
|
{{ 'preferences-screen.form.overwrite-file-option' | translate }}
|
||||||
|
</mat-checkbox>
|
||||||
|
</div>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';
|
||||||
import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import {
|
import {
|
||||||
@ -27,6 +27,7 @@ interface PreferencesForm {
|
|||||||
// warnings preferences
|
// warnings preferences
|
||||||
loadAllAnnotationsWarning: boolean;
|
loadAllAnnotationsWarning: boolean;
|
||||||
helpModeDialog: boolean;
|
helpModeDialog: boolean;
|
||||||
|
overwriteFileOption: boolean;
|
||||||
|
|
||||||
[k: string]: any;
|
[k: string]: any;
|
||||||
}
|
}
|
||||||
@ -57,6 +58,12 @@ const Screens = {
|
|||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class PreferencesComponent extends BaseFormComponent implements OnInit {
|
export class PreferencesComponent extends BaseFormComponent implements OnInit {
|
||||||
|
readonly #formBuilder = inject(FormBuilder);
|
||||||
|
readonly #permissionsService = inject(IqserPermissionsService);
|
||||||
|
readonly #changeRef = inject(ChangeDetectorRef);
|
||||||
|
readonly #loadingService = inject(LoadingService);
|
||||||
|
readonly #userPreferenceService = inject(UserPreferenceService);
|
||||||
|
|
||||||
readonly form: FormGroup<AsControl<PreferencesForm>>;
|
readonly form: FormGroup<AsControl<PreferencesForm>>;
|
||||||
readonly currentScreen: Screen;
|
readonly currentScreen: Screen;
|
||||||
readonly screens = Screens;
|
readonly screens = Screens;
|
||||||
@ -65,76 +72,87 @@ export class PreferencesComponent extends BaseFormComponent implements OnInit {
|
|||||||
readonly config = getConfig();
|
readonly config = getConfig();
|
||||||
readonly isIqserDevMode = isIqserDevMode();
|
readonly isIqserDevMode = isIqserDevMode();
|
||||||
|
|
||||||
constructor(
|
get #isOverwriteFileOptionActive() {
|
||||||
route: ActivatedRoute,
|
return !(this.#userPreferenceService.getOverwriteFileOption() === 'undefined');
|
||||||
readonly userPreferenceService: UserPreferenceService,
|
}
|
||||||
private readonly _formBuilder: FormBuilder,
|
|
||||||
private readonly _permissionsService: IqserPermissionsService,
|
constructor(route: ActivatedRoute) {
|
||||||
private readonly _changeRef: ChangeDetectorRef,
|
|
||||||
private readonly _loadingService: LoadingService,
|
|
||||||
) {
|
|
||||||
super();
|
super();
|
||||||
this.form = this._formBuilder.group({
|
this.form = this.#formBuilder.group({
|
||||||
// preferences
|
// preferences
|
||||||
autoExpandFiltersOnActions: [this.userPreferenceService.getAutoExpandFiltersOnActions()],
|
autoExpandFiltersOnActions: [this.#userPreferenceService.getAutoExpandFiltersOnActions()],
|
||||||
tableExtractionType: [this.userPreferenceService.getTableExtractionType()],
|
tableExtractionType: [this.#userPreferenceService.getTableExtractionType()],
|
||||||
// warnings preferences
|
// warnings preferences
|
||||||
loadAllAnnotationsWarning: [this.userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning)],
|
loadAllAnnotationsWarning: [this.#userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning)],
|
||||||
helpModeDialog: [this.userPreferenceService.getBool(KEYS.helpModeDialog)],
|
helpModeDialog: [this.#userPreferenceService.getBool(KEYS.helpModeDialog)],
|
||||||
|
overwriteFileOption: [this.#isOverwriteFileOptionActive],
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!this._permissionsService.has(Roles.managePreferences)) {
|
if (!this.#permissionsService.has(Roles.managePreferences)) {
|
||||||
this.form.disable();
|
this.form.disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this._permissionsService.has(Roles.getTables)) {
|
if (!this.#permissionsService.has(Roles.getTables)) {
|
||||||
this.form.controls.tableExtractionType.disable();
|
this.form.controls.tableExtractionType.disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this.#isOverwriteFileOptionActive) {
|
||||||
|
this.form.controls.overwriteFileOption.disable();
|
||||||
|
}
|
||||||
|
|
||||||
this.initialFormValue = this.form.getRawValue();
|
this.initialFormValue = this.form.getRawValue();
|
||||||
this.currentScreen = route.snapshot.data.screen;
|
this.currentScreen = route.snapshot.data.screen;
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this._loadingService.stop();
|
this.#loadingService.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
async save(): Promise<any> {
|
async save(): Promise<any> {
|
||||||
if (this.form.controls.autoExpandFiltersOnActions.value !== this.userPreferenceService.getAutoExpandFiltersOnActions()) {
|
if (this.form.controls.autoExpandFiltersOnActions.value !== this.#userPreferenceService.getAutoExpandFiltersOnActions()) {
|
||||||
await this.userPreferenceService.toggleAutoExpandFiltersOnActions();
|
await this.#userPreferenceService.toggleAutoExpandFiltersOnActions();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.form.controls.tableExtractionType.value !== this.userPreferenceService.getTableExtractionType()) {
|
if (this.form.controls.tableExtractionType.value !== this.#userPreferenceService.getTableExtractionType()) {
|
||||||
await this.userPreferenceService.save(PreferencesKeys.tableExtractionType, this.form.controls.tableExtractionType.value);
|
await this.#userPreferenceService.save(PreferencesKeys.tableExtractionType, this.form.controls.tableExtractionType.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
this.form.controls.loadAllAnnotationsWarning.value !==
|
this.form.controls.loadAllAnnotationsWarning.value !==
|
||||||
this.userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning)
|
this.#userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning)
|
||||||
) {
|
) {
|
||||||
await this.userPreferenceService.save(
|
await this.#userPreferenceService.save(
|
||||||
PreferencesKeys.loadAllAnnotationsWarning,
|
PreferencesKeys.loadAllAnnotationsWarning,
|
||||||
String(this.form.controls.loadAllAnnotationsWarning.value),
|
String(this.form.controls.loadAllAnnotationsWarning.value),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.form.controls.helpModeDialog.value !== this.userPreferenceService.getBool(KEYS.helpModeDialog)) {
|
if (this.form.controls.helpModeDialog.value !== this.#userPreferenceService.getBool(KEYS.helpModeDialog)) {
|
||||||
await this.userPreferenceService.save(KEYS.helpModeDialog, String(this.form.controls.helpModeDialog.value));
|
await this.#userPreferenceService.save(KEYS.helpModeDialog, String(this.form.controls.helpModeDialog.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.userPreferenceService.reload();
|
if (this.form.controls.overwriteFileOption.enabled && !this.form.controls.overwriteFileOption.value) {
|
||||||
|
await this.#userPreferenceService.saveOverwriteFileOption('undefined');
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.#userPreferenceService.reload();
|
||||||
this.#patchValues();
|
this.#patchValues();
|
||||||
|
|
||||||
this.initialFormValue = this.form.getRawValue();
|
this.initialFormValue = this.form.getRawValue();
|
||||||
this._changeRef.markForCheck();
|
this.#changeRef.markForCheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
#patchValues() {
|
#patchValues() {
|
||||||
this.form.patchValue({
|
this.form.patchValue({
|
||||||
autoExpandFiltersOnActions: this.userPreferenceService.getAutoExpandFiltersOnActions(),
|
autoExpandFiltersOnActions: this.#userPreferenceService.getAutoExpandFiltersOnActions(),
|
||||||
tableExtractionType: this.userPreferenceService.getTableExtractionType(),
|
tableExtractionType: this.#userPreferenceService.getTableExtractionType(),
|
||||||
loadAllAnnotationsWarning: this.userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning),
|
loadAllAnnotationsWarning: this.#userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning),
|
||||||
helpModeDialog: this.userPreferenceService.getBool(KEYS.helpModeDialog),
|
helpModeDialog: this.#userPreferenceService.getBool(KEYS.helpModeDialog),
|
||||||
|
overwriteFileOption: this.#isOverwriteFileOptionActive,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!this.#isOverwriteFileOptionActive) {
|
||||||
|
this.form.controls.overwriteFileOption.disable();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,9 +50,11 @@
|
|||||||
icon="iqser:trash"
|
icon="iqser:trash"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
}
|
}
|
||||||
@if (selectedComponent?.id === component.id) {
|
<mat-icon
|
||||||
<mat-icon class="arrow-right" svgIcon="red:arrow-right"></mat-icon>
|
[class.not-visible]="selectedComponent?.id !== component.id"
|
||||||
}
|
class="arrow-right"
|
||||||
|
svgIcon="red:arrow-right"
|
||||||
|
></mat-icon>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -38,6 +38,10 @@
|
|||||||
|
|
||||||
.arrow-right {
|
.arrow-right {
|
||||||
transform: scale(0.7);
|
transform: scale(0.7);
|
||||||
|
|
||||||
|
&.not-visible {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -45,6 +49,8 @@
|
|||||||
.content-container {
|
.content-container {
|
||||||
background-color: var(--iqser-grey-6);
|
background-color: var(--iqser-grey-6);
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
.content-header {
|
.content-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -61,6 +67,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@ -68,7 +75,8 @@
|
|||||||
.components-list {
|
.components-list {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
background-color: var(--iqser-white);
|
background-color: var(--iqser-white);
|
||||||
width: 100%;
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<div
|
<div
|
||||||
class="row"
|
class="row"
|
||||||
[matTooltip]="'add-edit-component-mapping.disabled-file-options' | translate"
|
[matTooltip]="'add-edit-component-mapping.disabled-file-options' | translate"
|
||||||
[matTooltipDisabled]="!disabledFileOptions"
|
[matTooltipDisabled]="!form.get('encoding')?.disabled"
|
||||||
[matTooltipPosition]="'above'"
|
[matTooltipPosition]="'above'"
|
||||||
>
|
>
|
||||||
<div class="iqser-input-group required w-150">
|
<div class="iqser-input-group required w-150">
|
||||||
@ -40,13 +40,12 @@
|
|||||||
formControlName="delimiter"
|
formControlName="delimiter"
|
||||||
name="delimiter"
|
name="delimiter"
|
||||||
type="text"
|
type="text"
|
||||||
[class.disabled-file-options]="disabledFileOptions"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="iqser-input-group required w-150">
|
<div class="iqser-input-group required w-150">
|
||||||
<label translate="add-edit-component-mapping.form.encoding-type"></label>
|
<label translate="add-edit-component-mapping.form.encoding-type"></label>
|
||||||
<mat-form-field [class.disabled-file-options]="disabledFileOptions">
|
<mat-form-field>
|
||||||
<mat-select formControlName="encoding">
|
<mat-select formControlName="encoding">
|
||||||
<mat-option *ngFor="let type of encodingTypeOptions" [value]="type">
|
<mat-option *ngFor="let type of encodingTypeOptions" [value]="type">
|
||||||
{{ translations[type] | translate }}
|
{{ translations[type] | translate }}
|
||||||
|
|||||||
@ -18,11 +18,6 @@
|
|||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.disabled-file-options {
|
|
||||||
opacity: 0.5;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.row:last-child {
|
.row:last-child {
|
||||||
|
|||||||
@ -52,7 +52,6 @@ export class AddEditComponentMappingDialogComponent
|
|||||||
{
|
{
|
||||||
protected readonly encodingTypeOptions = Object.keys(FileAttributeEncodingTypes);
|
protected readonly encodingTypeOptions = Object.keys(FileAttributeEncodingTypes);
|
||||||
protected readonly translations = fileAttributeEncodingTypesTranslations;
|
protected readonly translations = fileAttributeEncodingTypesTranslations;
|
||||||
#fileChanged = false;
|
|
||||||
activeFile: File;
|
activeFile: File;
|
||||||
form!: UntypedFormGroup;
|
form!: UntypedFormGroup;
|
||||||
|
|
||||||
@ -73,13 +72,14 @@ export class AddEditComponentMappingDialogComponent
|
|||||||
const file = new Blob([fileContent.body as Blob], { type: 'text/csv' });
|
const file = new Blob([fileContent.body as Blob], { type: 'text/csv' });
|
||||||
this.form.get('file').setValue(file);
|
this.form.get('file').setValue(file);
|
||||||
this.initialFormValue = this.form.getRawValue();
|
this.initialFormValue = this.form.getRawValue();
|
||||||
|
this.#disableEncodingAndDelimiter();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
changeFile(file: File) {
|
changeFile(file: File) {
|
||||||
this.#fileChanged = true;
|
|
||||||
this.form.get('file').setValue(file);
|
this.form.get('file').setValue(file);
|
||||||
this.form.get('fileName').setValue(file?.name);
|
this.form.get('fileName').setValue(file?.name);
|
||||||
|
this.#enableEncodingAndDelimiter();
|
||||||
}
|
}
|
||||||
|
|
||||||
save() {
|
save() {
|
||||||
@ -96,7 +96,13 @@ export class AddEditComponentMappingDialogComponent
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
get disabledFileOptions() {
|
#disableEncodingAndDelimiter() {
|
||||||
return this.initialFormValue?.file && !this.#fileChanged;
|
this.form.get('encoding').disable();
|
||||||
|
this.form.get('delimiter').disable();
|
||||||
|
}
|
||||||
|
|
||||||
|
#enableEncodingAndDelimiter() {
|
||||||
|
this.form.get('encoding').enable();
|
||||||
|
this.form.get('delimiter').enable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { LicenseService } from '@services/license.service';
|
|||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
import { ChartDataset } from 'chart.js';
|
import { ChartDataset } from 'chart.js';
|
||||||
import { ChartBlue, ChartGreen, ChartRed } from '../../utils/constants';
|
import { ChartBlue, ChartGreen, ChartRed } from '../../utils/constants';
|
||||||
import { getDataUntilCurrentMonth, getLabelsFromLicense, getLineConfig, isCurrentMonthAndYear } from '../../utils/functions';
|
import { getDataUntilCurrentMonth, getLabelsFromLicense, getLineConfig, isCurrentMonth } from '../../utils/functions';
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { size } from '@iqser/common-ui/lib/utils';
|
import { size } from '@iqser/common-ui/lib/utils';
|
||||||
@ -43,7 +43,7 @@ export class LicenseAnalysisCapacityUsageComponent {
|
|||||||
#getCapacityDatasets(): ChartDataset[] {
|
#getCapacityDatasets(): ChartDataset[] {
|
||||||
const monthlyData = [...this.licenseService.selectedLicenseReport.monthlyData];
|
const monthlyData = [...this.licenseService.selectedLicenseReport.monthlyData];
|
||||||
const dataUntilCurrentMonth = getDataUntilCurrentMonth(monthlyData);
|
const dataUntilCurrentMonth = getDataUntilCurrentMonth(monthlyData);
|
||||||
if (monthlyData.length === 1 || isCurrentMonthAndYear(monthlyData[0].startDate)) {
|
if (monthlyData.length === 1 || isCurrentMonth(monthlyData[0].startDate)) {
|
||||||
const empty = { analysedFilesBytes: null } as ILicenseData;
|
const empty = { analysedFilesBytes: null } as ILicenseData;
|
||||||
dataUntilCurrentMonth.splice(0, 0, empty);
|
dataUntilCurrentMonth.splice(0, 0, empty);
|
||||||
monthlyData.splice(0, 0, empty);
|
monthlyData.splice(0, 0, empty);
|
||||||
@ -60,11 +60,8 @@ export class LicenseAnalysisCapacityUsageComponent {
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
data: dataUntilCurrentMonth.map((month, monthIndex) =>
|
data: dataUntilCurrentMonth.map((_, monthIndex) =>
|
||||||
month.analysedFilesBytes
|
monthlyData.slice(0, monthIndex + 1).reduce((acc, curr) => acc + (curr.analysedFilesBytes ?? 0), 0),
|
||||||
? month.analysedFilesBytes +
|
|
||||||
monthlyData.slice(0, monthIndex).reduce((acc, curr) => acc + (curr.analysedFilesBytes ?? 0), 0)
|
|
||||||
: 0,
|
|
||||||
),
|
),
|
||||||
label: this._translateService.instant('license-info-screen.analysis-capacity-usage.analyzed-cumulative'),
|
label: this._translateService.instant('license-info-screen.analysis-capacity-usage.analyzed-cumulative'),
|
||||||
yAxisID: 'y1',
|
yAxisID: 'y1',
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { LicenseService } from '@services/license.service';
|
|||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
import { ChartDataset } from 'chart.js';
|
import { ChartDataset } from 'chart.js';
|
||||||
import { ChartBlue, ChartGreen, ChartRed } from '../../utils/constants';
|
import { ChartBlue, ChartGreen, ChartRed } from '../../utils/constants';
|
||||||
import { getDataUntilCurrentMonth, getLabelsFromLicense, getLineConfig, isCurrentMonthAndYear } from '../../utils/functions';
|
import { getDataUntilCurrentMonth, getLabelsFromLicense, getLineConfig, isCurrentMonth } from '../../utils/functions';
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { ILicenseData } from '@red/domain';
|
import { ILicenseData } from '@red/domain';
|
||||||
@ -40,7 +40,7 @@ export class LicensePageUsageComponent {
|
|||||||
#getPagesDatasets(): ChartDataset[] {
|
#getPagesDatasets(): ChartDataset[] {
|
||||||
const monthlyData = [...this.licenseService.selectedLicenseReport.monthlyData];
|
const monthlyData = [...this.licenseService.selectedLicenseReport.monthlyData];
|
||||||
const dataUntilCurrentMonth = getDataUntilCurrentMonth(monthlyData);
|
const dataUntilCurrentMonth = getDataUntilCurrentMonth(monthlyData);
|
||||||
if (monthlyData.length === 1 || isCurrentMonthAndYear(monthlyData[0].startDate)) {
|
if (monthlyData.length === 1 || isCurrentMonth(monthlyData[0].startDate)) {
|
||||||
const empty = { numberOfAnalyzedPages: null } as ILicenseData;
|
const empty = { numberOfAnalyzedPages: null } as ILicenseData;
|
||||||
dataUntilCurrentMonth.splice(0, 0, empty);
|
dataUntilCurrentMonth.splice(0, 0, empty);
|
||||||
monthlyData.splice(0, 0, empty);
|
monthlyData.splice(0, 0, empty);
|
||||||
@ -63,11 +63,8 @@ export class LicensePageUsageComponent {
|
|||||||
order: 1,
|
order: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
data: dataUntilCurrentMonth.map((month, monthIndex) =>
|
data: dataUntilCurrentMonth.map((_, monthIndex) =>
|
||||||
month.numberOfAnalyzedPages
|
monthlyData.slice(0, monthIndex + 1).reduce((acc, curr) => acc + (curr.numberOfAnalyzedPages ?? 0), 0),
|
||||||
? month.numberOfAnalyzedPages +
|
|
||||||
monthlyData.slice(0, monthIndex).reduce((acc, curr) => acc + (curr.numberOfAnalyzedPages ?? 0), 0)
|
|
||||||
: 0,
|
|
||||||
),
|
),
|
||||||
label: this._translateService.instant('license-info-screen.page-usage.cumulative-pages'),
|
label: this._translateService.instant('license-info-screen.page-usage.cumulative-pages'),
|
||||||
yAxisID: 'y1',
|
yAxisID: 'y1',
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import { ComplexFillTarget } from 'chart.js/dist/types';
|
|||||||
|
|
||||||
const monthNames = dayjs.monthsShort();
|
const monthNames = dayjs.monthsShort();
|
||||||
const currentMonth = dayjs(Date.now()).month();
|
const currentMonth = dayjs(Date.now()).month();
|
||||||
const currentYear = dayjs(Date.now()).year();
|
|
||||||
|
|
||||||
export const verboseDate = (date: Dayjs) => `${monthNames[date.month()]} ${date.year()}`;
|
export const verboseDate = (date: Dayjs) => `${monthNames[date.month()]} ${date.year()}`;
|
||||||
|
|
||||||
@ -45,7 +44,7 @@ export const getLabelsFromLicense = (license: ILicenseReport) => {
|
|||||||
monthIterator = monthIterator.add(1, 'month');
|
monthIterator = monthIterator.add(1, 'month');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (startMonth.month() === endMonth.month() || startMonth.month() === currentMonth) {
|
if (startMonth.isSame(endMonth, 'month') || isCurrentMonth(startMonth.toDate())) {
|
||||||
result.splice(0, 0, '');
|
result.splice(0, 0, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,9 +52,9 @@ export const getLabelsFromLicense = (license: ILicenseReport) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const getDataUntilCurrentMonth = (monthlyData: ILicenseData[]) => {
|
export const getDataUntilCurrentMonth = (monthlyData: ILicenseData[]) => {
|
||||||
return monthlyData.filter(data => dayjs(data.startDate).month() <= currentMonth && dayjs(data.startDate).year() <= currentYear);
|
return monthlyData.filter(data => dayjs(data.startDate).isSameOrBefore(dayjs(Date.now()), 'month'));
|
||||||
};
|
};
|
||||||
|
|
||||||
export const isCurrentMonthAndYear = (date: Date | string) => {
|
export const isCurrentMonth = (date: Date | string) => {
|
||||||
return dayjs(date).month() === currentMonth && dayjs(date).year() === currentYear;
|
return dayjs(date).isSame(dayjs(Date.now()), 'month');
|
||||||
};
|
};
|
||||||
|
|||||||
@ -56,7 +56,7 @@
|
|||||||
</iqser-workflow>
|
</iqser-workflow>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="dossierAttributes$ | async" [class.collapsed]="collapsedDetails" class="right-container" iqserHasScrollbar>
|
<div *ngIf="dossierAttributes$ | async" [class.collapsed]="collapsedDetails" class="right-container">
|
||||||
<redaction-dossier-details
|
<redaction-dossier-details
|
||||||
(toggleCollapse)="collapsedDetails = !collapsedDetails"
|
(toggleCollapse)="collapsedDetails = !collapsedDetails"
|
||||||
[dossierAttributes]="dossierAttributes"
|
[dossierAttributes]="dossierAttributes"
|
||||||
|
|||||||
@ -25,10 +25,7 @@
|
|||||||
width: 375px;
|
width: 375px;
|
||||||
min-width: 375px;
|
min-width: 375px;
|
||||||
padding: 16px 24px 16px 24px;
|
padding: 16px 24px 16px 24px;
|
||||||
|
overflow-y: auto;
|
||||||
&.has-scrollbar:hover {
|
|
||||||
padding-right: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
redaction-dossier-details {
|
redaction-dossier-details {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 6px;
|
top: 6px;
|
||||||
right: 19px;
|
right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popover {
|
.popover {
|
||||||
|
|||||||
@ -3,21 +3,13 @@
|
|||||||
:host {
|
:host {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow-y: auto;
|
||||||
|
@include common-mixins.scroll-bar;
|
||||||
&:hover {
|
|
||||||
overflow-y: auto;
|
|
||||||
@include common-mixins.scroll-bar;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.has-scrollbar:hover redaction-annotation-wrapper::ng-deep,
|
&.has-scrollbar:hover redaction-annotation-wrapper::ng-deep,
|
||||||
&::ng-deep.documine-wrapper {
|
&::ng-deep.documine-wrapper {
|
||||||
.annotation {
|
.annotation {
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
redaction-annotation-details {
|
|
||||||
right: 8px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,13 +18,10 @@
|
|||||||
|
|
||||||
.right-content {
|
.right-content {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
height: calc(100% - 71px);
|
||||||
|
|
||||||
@include common-mixins.scroll-bar;
|
@include common-mixins.scroll-bar;
|
||||||
overflow: hidden;
|
overflow-y: auto;
|
||||||
|
|
||||||
&:hover {
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.has-scrollbar .section {
|
&.has-scrollbar .section {
|
||||||
padding-right: 13px;
|
padding-right: 13px;
|
||||||
|
|||||||
@ -3,12 +3,16 @@
|
|||||||
@if (!editing) {
|
@if (!editing) {
|
||||||
<div class="value">
|
<div class="value">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
@for (componentValue of entry.componentValues; track componentValue) {
|
@for (componentValue of currentEntry().componentValues; track componentValue) {
|
||||||
<span [innerHTML]="transformNewLines(componentValue.value ?? componentValue.originalValue)"></span>
|
<span
|
||||||
|
[innerHTML]="transformNewLines(componentValue.value ?? componentValue.originalValue) | replaceNbsp"
|
||||||
|
[matTooltip]="componentValue.valueDescription"
|
||||||
|
[matTooltipPositionAtOrigin]="true"
|
||||||
|
></span>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
@if (canEdit) {
|
@if (canEdit()) {
|
||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(action)="edit()"
|
(action)="edit()"
|
||||||
[tooltip]="'component-management.actions.edit' | translate"
|
[tooltip]="'component-management.actions.edit' | translate"
|
||||||
@ -16,7 +20,7 @@
|
|||||||
[class.help-mode]="helpModeService.isHelpModeActive()"
|
[class.help-mode]="helpModeService.isHelpModeActive()"
|
||||||
icon="iqser:edit"
|
icon="iqser:edit"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
@if (hasUpdatedValues) {
|
@if (hasUpdatedValues()) {
|
||||||
<div class="changes-dot"></div>
|
<div class="changes-dot"></div>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -24,11 +28,11 @@
|
|||||||
</div>
|
</div>
|
||||||
} @else {
|
} @else {
|
||||||
<div (cdkDropListDropped)="drop($event)" cdkDropList>
|
<div (cdkDropListDropped)="drop($event)" cdkDropList>
|
||||||
@for (value of entry.componentValues; track value) {
|
@for (value of currentEntry().componentValues; track value) {
|
||||||
<div cdkDrag class="editing-value">
|
<div cdkDrag class="editing-value">
|
||||||
<mat-icon
|
<mat-icon
|
||||||
[class.hidden-button]="entry.componentValues.length === 1"
|
[class.hidden-button]="currentEntry().componentValues.length === 1"
|
||||||
[attr.help-mode-key]="'change_component_order'"
|
[attr.help-mode-key]="currentEntry().componentValues.length > 1 ? 'change_component_order' : null"
|
||||||
cdkDragHandle
|
cdkDragHandle
|
||||||
class="draggable"
|
class="draggable"
|
||||||
svgIcon="red:draggable-dots"
|
svgIcon="red:draggable-dots"
|
||||||
@ -39,8 +43,8 @@
|
|||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(action)="removeValue($index)"
|
(action)="removeValue($index)"
|
||||||
[tooltip]="'component-management.actions.delete' | translate"
|
[tooltip]="'component-management.actions.delete' | translate"
|
||||||
[class.hidden-button]="entry.componentValues.length === 1"
|
[class.hidden-button]="currentEntry().componentValues.length === 1"
|
||||||
[attr.help-mode-key]="'remove_component_value'"
|
[attr.help-mode-key]="currentEntry().componentValues.length > 1 ? 'remove_component_value' : null"
|
||||||
class="remove-value"
|
class="remove-value"
|
||||||
icon="iqser:trash"
|
icon="iqser:trash"
|
||||||
></iqser-circle-button>
|
></iqser-circle-button>
|
||||||
@ -54,9 +58,9 @@
|
|||||||
[label]="'component-management.actions.save' | translate"
|
[label]="'component-management.actions.save' | translate"
|
||||||
[type]="iconButtonTypes.primary"
|
[type]="iconButtonTypes.primary"
|
||||||
></iqser-icon-button>
|
></iqser-icon-button>
|
||||||
<div (click)="deselect($event)" class="all-caps-label cancel" translate="component-management.actions.cancel"></div>
|
<div (click)="cancel($event)" class="all-caps-label cancel" translate="component-management.actions.cancel"></div>
|
||||||
<div class="flex right">
|
<div class="flex right">
|
||||||
@if (hasUpdatedValues && canEdit) {
|
@if (hasUpdatedValues() && canEdit()) {
|
||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(action)="undo()"
|
(action)="undo()"
|
||||||
[tooltip]="'component-management.actions.undo' | translate"
|
[tooltip]="'component-management.actions.undo' | translate"
|
||||||
|
|||||||
@ -2,12 +2,13 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
padding: 10px 0 10px 0;
|
padding: 10px 0 10px 0;
|
||||||
margin-left: 26px;
|
margin-left: 14px;
|
||||||
margin-right: 26px;
|
margin-right: 20px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.component {
|
.component {
|
||||||
width: 40%;
|
width: 40%;
|
||||||
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.value {
|
.value {
|
||||||
@ -72,13 +73,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.value {
|
.value {
|
||||||
margin-right: 26px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
.component {
|
.component {
|
||||||
margin-left: 26px;
|
margin-left: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.value {
|
.value {
|
||||||
@ -94,7 +95,7 @@
|
|||||||
border-left: 4px solid var(--iqser-primary);
|
border-left: 4px solid var(--iqser-primary);
|
||||||
|
|
||||||
.component {
|
.component {
|
||||||
margin-left: 22px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.arrow-right {
|
.arrow-right {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
|
import { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
|
||||||
import { AsyncPipe, KeyValuePipe, NgClass, NgForOf, NgIf } from '@angular/common';
|
import { AsyncPipe, KeyValuePipe, NgClass, NgForOf, NgIf } from '@angular/common';
|
||||||
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
import { Component, computed, input, OnInit, output, signal, WritableSignal } from '@angular/core';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { MatIcon } from '@angular/material/icon';
|
import { MatIcon } from '@angular/material/icon';
|
||||||
import { CircleButtonComponent, HelpModeService, IconButtonComponent, IconButtonTypes, IqserDialog } from '@iqser/common-ui';
|
import { CircleButtonComponent, HelpModeService, IconButtonComponent, IconButtonTypes, IqserDialog } from '@iqser/common-ui';
|
||||||
@ -8,6 +8,9 @@ import { TranslateModule } from '@ngx-translate/core';
|
|||||||
import { IComponentLogEntry, IComponentValue } from '@red/domain';
|
import { IComponentLogEntry, IComponentValue } from '@red/domain';
|
||||||
import { RevertValueDialogComponent } from '../../dialogs/docu-mine/revert-value-dialog/revert-value-dialog.component';
|
import { RevertValueDialogComponent } from '../../dialogs/docu-mine/revert-value-dialog/revert-value-dialog.component';
|
||||||
import { FilePreviewStateService } from '../../services/file-preview-state.service';
|
import { FilePreviewStateService } from '../../services/file-preview-state.service';
|
||||||
|
import { escapeHtml } from '@common-ui/utils';
|
||||||
|
import { ReplaceNbspPipe } from '@common-ui/pipes/replace-nbsp.pipe';
|
||||||
|
import { MatTooltip } from '@angular/material/tooltip';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-editable-structured-component-value [entry] [canEdit]',
|
selector: 'redaction-editable-structured-component-value [entry] [canEdit]',
|
||||||
@ -28,20 +31,24 @@ import { FilePreviewStateService } from '../../services/file-preview-state.servi
|
|||||||
CdkDragHandle,
|
CdkDragHandle,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
AsyncPipe,
|
AsyncPipe,
|
||||||
|
ReplaceNbspPipe,
|
||||||
|
MatTooltip,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class EditableStructuredComponentValueComponent implements OnInit {
|
export class EditableStructuredComponentValueComponent implements OnInit {
|
||||||
|
readonly entry = input<IComponentLogEntry>();
|
||||||
|
currentEntry: WritableSignal<IComponentLogEntry>;
|
||||||
|
readonly canEdit = input<boolean>();
|
||||||
|
readonly deselectLast = output();
|
||||||
|
readonly overrideValue = output<IComponentLogEntry>();
|
||||||
|
readonly revertOverride = output<string>();
|
||||||
|
hasUpdatedValues = computed(() => this.currentEntry().overridden);
|
||||||
|
selected = false;
|
||||||
|
valueBeforeCurrentEdit: IComponentValue[];
|
||||||
protected entryLabel: string;
|
protected entryLabel: string;
|
||||||
protected editing = false;
|
protected editing = false;
|
||||||
protected hasUpdatedValues = false;
|
|
||||||
protected initialEntry: IComponentLogEntry;
|
protected initialEntry: IComponentLogEntry;
|
||||||
protected readonly iconButtonTypes = IconButtonTypes;
|
protected readonly iconButtonTypes = IconButtonTypes;
|
||||||
@Input() entry: IComponentLogEntry;
|
|
||||||
@Input() canEdit: boolean;
|
|
||||||
@Output() readonly deselectLast = new EventEmitter();
|
|
||||||
@Output() readonly overrideValue = new EventEmitter<IComponentLogEntry>();
|
|
||||||
@Output() readonly revertOverride = new EventEmitter<string>();
|
|
||||||
selected = false;
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
readonly helpModeService: HelpModeService,
|
readonly helpModeService: HelpModeService,
|
||||||
@ -50,38 +57,26 @@ export class EditableStructuredComponentValueComponent implements OnInit {
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
get disabled() {
|
get disabled() {
|
||||||
for (let i = 0; i < this.entry.componentValues.length; i++) {
|
for (let i = 0; i < this.currentEntry().componentValues.length; i++) {
|
||||||
if (this.entry.componentValues[i].value !== this.initialEntry.componentValues[i]?.value) {
|
if (this.currentEntry().componentValues[i].value !== this.initialEntry.componentValues[i]?.value) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this.entry.componentValues.length === this.initialEntry.componentValues.length;
|
return this.currentEntry().componentValues.length === this.initialEntry.componentValues.length;
|
||||||
}
|
|
||||||
|
|
||||||
get #hasUpdatedValues() {
|
|
||||||
for (const value of this.entry.componentValues) {
|
|
||||||
if (value.originalValue === null && value.value === '') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (value.originalValue !== value.value) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get #initialEntry() {
|
get #initialEntry() {
|
||||||
return JSON.parse(JSON.stringify(this.entry));
|
return JSON.parse(JSON.stringify(this.entry()));
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
this.currentEntry = signal(this.entry());
|
||||||
this.reset();
|
this.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
reset() {
|
reset() {
|
||||||
this.initialEntry = this.#initialEntry;
|
this.initialEntry = this.#initialEntry;
|
||||||
this.hasUpdatedValues = this.#hasUpdatedValues;
|
this.entryLabel = this.parseName(this.currentEntry().name);
|
||||||
this.entryLabel = this.parseName(this.entry.name);
|
|
||||||
this.deselect();
|
this.deselect();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,11 +88,12 @@ export class EditableStructuredComponentValueComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
this.deselectLast.emit();
|
this.deselectLast.emit();
|
||||||
this.selected = true;
|
this.selected = true;
|
||||||
this._state.componentReferenceIds = this.#getUniqueReferencesIds(this.entry.componentValues);
|
this._state.componentReferenceIds = this.#getUniqueReferencesIds(this.currentEntry().componentValues);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
edit() {
|
edit() {
|
||||||
|
this.valueBeforeCurrentEdit = JSON.parse(JSON.stringify([...this.currentEntry().componentValues]));
|
||||||
this.deselectLast.emit();
|
this.deselectLast.emit();
|
||||||
this.selected = true;
|
this.selected = true;
|
||||||
this.editing = true;
|
this.editing = true;
|
||||||
@ -111,37 +107,48 @@ export class EditableStructuredComponentValueComponent implements OnInit {
|
|||||||
this._state.componentReferenceIds = null;
|
this._state.componentReferenceIds = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cancel($event?: MouseEvent) {
|
||||||
|
this.currentEntry.update(value => ({ ...value, componentValues: this.valueBeforeCurrentEdit }));
|
||||||
|
this.deselect($event);
|
||||||
|
}
|
||||||
|
|
||||||
removeValue(index: number) {
|
removeValue(index: number) {
|
||||||
this.entry.componentValues.splice(index, 1);
|
this.currentEntry.update(value => ({ ...value, componentValues: value.componentValues.filter((_, i) => i !== index) }));
|
||||||
}
|
}
|
||||||
|
|
||||||
save() {
|
save() {
|
||||||
this.entry.overridden = true;
|
this.currentEntry.update(value => ({ ...value, overridden: true }));
|
||||||
this.overrideValue.emit(this.entry);
|
this.overrideValue.emit(this.currentEntry());
|
||||||
this.reset();
|
this.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
async undo() {
|
async undo() {
|
||||||
const dialog = this._iqserDialog.openDefault(RevertValueDialogComponent, { data: { entry: this.entry }, width: '800px' });
|
const dialog = this._iqserDialog.openDefault(RevertValueDialogComponent, { data: { entry: this.currentEntry() }, width: '800px' });
|
||||||
const result = await dialog.result();
|
const result = await dialog.result();
|
||||||
if (result) {
|
if (result) {
|
||||||
this.revertOverride.emit(this.entry.name);
|
this.revertOverride.emit(this.currentEntry().name);
|
||||||
this.reset();
|
this.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
add() {
|
add() {
|
||||||
this.entry.componentValues.push({
|
this.currentEntry.update(value => ({
|
||||||
componentRuleId: null,
|
...value,
|
||||||
entityReferences: [],
|
componentValues: [
|
||||||
originalValue: null,
|
...value.componentValues,
|
||||||
value: '',
|
{
|
||||||
valueDescription: '',
|
componentRuleId: null,
|
||||||
});
|
entityReferences: [],
|
||||||
|
originalValue: null,
|
||||||
|
value: '',
|
||||||
|
valueDescription: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
drop(event: CdkDragDrop<string>) {
|
drop(event: CdkDragDrop<string>) {
|
||||||
moveItemInArray(this.entry.componentValues, event.previousIndex, event.currentIndex);
|
moveItemInArray(this.currentEntry().componentValues, event.previousIndex, event.currentIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
parseName(name: string) {
|
parseName(name: string) {
|
||||||
@ -149,7 +156,7 @@ export class EditableStructuredComponentValueComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
transformNewLines(value: string) {
|
transformNewLines(value: string) {
|
||||||
return value.replace(/\n/g, '<br>');
|
return escapeHtml(value).replace(/\n/g, '<br>');
|
||||||
}
|
}
|
||||||
|
|
||||||
#getUniqueReferencesIds(values: IComponentValue[]) {
|
#getUniqueReferencesIds(values: IComponentValue[]) {
|
||||||
@ -164,7 +171,7 @@ export class EditableStructuredComponentValueComponent implements OnInit {
|
|||||||
|
|
||||||
#updateTextAreaHeight() {
|
#updateTextAreaHeight() {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
for (let i = 0; i < this.entry.componentValues.length; i++) {
|
for (let i = 0; i < this.currentEntry().componentValues.length; i++) {
|
||||||
const textArea = document.getElementById(`value-input-${i}`);
|
const textArea = document.getElementById(`value-input-${i}`);
|
||||||
textArea.style.height = 'auto';
|
textArea.style.height = 'auto';
|
||||||
textArea.style.height = `${textArea.scrollHeight}px`;
|
textArea.style.height = `${textArea.scrollHeight}px`;
|
||||||
|
|||||||
@ -43,7 +43,7 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
&.documine-width {
|
&.documine-width {
|
||||||
width: calc(var(--documine-workload-content-width));
|
width: calc(var(--documine-workload-content-width) - 55px);
|
||||||
border-right: 1px solid var(--iqser-separator);
|
border-right: 1px solid var(--iqser-separator);
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
|
||||||
@ -79,7 +79,7 @@
|
|||||||
.quick-navigation {
|
.quick-navigation {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border-right: 1px solid var(--iqser-separator);
|
border-right: 1px solid var(--iqser-separator);
|
||||||
min-width: var(--qiuck-navigation-width);
|
min-width: var(--quick-navigation-width);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|||||||
@ -36,7 +36,7 @@ import { workloadTranslations } from '@translations/workload-translations';
|
|||||||
import { UserPreferenceService } from '@users/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { getLocalStorageDataByFileId } from '@utils/local-storage';
|
import { getLocalStorageDataByFileId } from '@utils/local-storage';
|
||||||
import { combineLatest, delay, Observable } from 'rxjs';
|
import { combineLatest, delay, Observable } from 'rxjs';
|
||||||
import { map, tap } from 'rxjs/operators';
|
import { filter, map, tap } from 'rxjs/operators';
|
||||||
import scrollIntoView from 'scroll-into-view-if-needed';
|
import scrollIntoView from 'scroll-into-view-if-needed';
|
||||||
import { REDAnnotationManager } from '../../../pdf-viewer/services/annotation-manager.service';
|
import { REDAnnotationManager } from '../../../pdf-viewer/services/annotation-manager.service';
|
||||||
import { REDDocumentViewer } from '../../../pdf-viewer/services/document-viewer.service';
|
import { REDDocumentViewer } from '../../../pdf-viewer/services/document-viewer.service';
|
||||||
@ -187,6 +187,7 @@ export class FileWorkloadComponent extends AutoUnsubscribe implements OnInit, On
|
|||||||
const secondary$ = this.filterService.getFilterModels$('secondaryFilters');
|
const secondary$ = this.filterService.getFilterModels$('secondaryFilters');
|
||||||
|
|
||||||
return combineLatest([
|
return combineLatest([
|
||||||
|
this._documentViewer.loaded$,
|
||||||
this.fileDataService.all$,
|
this.fileDataService.all$,
|
||||||
primary$,
|
primary$,
|
||||||
secondary$,
|
secondary$,
|
||||||
@ -195,7 +196,8 @@ export class FileWorkloadComponent extends AutoUnsubscribe implements OnInit, On
|
|||||||
this._pageRotationService.rotations$,
|
this._pageRotationService.rotations$,
|
||||||
]).pipe(
|
]).pipe(
|
||||||
delay(0),
|
delay(0),
|
||||||
map(([annotations, primary, secondary, componentReferenceIds]) =>
|
filter(([loaded]) => loaded),
|
||||||
|
map(([, annotations, primary, secondary, componentReferenceIds]) =>
|
||||||
this.#filterAnnotations(annotations, primary, secondary, componentReferenceIds),
|
this.#filterAnnotations(annotations, primary, secondary, componentReferenceIds),
|
||||||
),
|
),
|
||||||
map(annotations => this.#mapListItemsFromAnnotationWrapperArray(annotations)),
|
map(annotations => this.#mapListItemsFromAnnotationWrapperArray(annotations)),
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
@use 'common-mixins';
|
||||||
|
|
||||||
.components-header {
|
.components-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@ -24,18 +26,19 @@ mat-icon {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
overflow: scroll;
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
height: calc(100% - 40px);
|
height: calc(100% - 40px);
|
||||||
|
@include common-mixins.scroll-bar;
|
||||||
|
|
||||||
.component-row {
|
.component-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin-left: 13px;
|
margin-left: 13px;
|
||||||
margin-right: 13px;
|
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 10px 26px;
|
padding: 10px 14px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|
||||||
:first-child {
|
:first-child {
|
||||||
@ -47,9 +50,9 @@ mat-icon {
|
|||||||
&:not(:last-child) {
|
&:not(:last-child) {
|
||||||
border-bottom: 1px solid var(--iqser-separator);
|
border-bottom: 1px solid var(--iqser-separator);
|
||||||
}
|
}
|
||||||
|
|
||||||
border-bottom: 1px solid var(--iqser-separator);
|
border-bottom: 1px solid var(--iqser-separator);
|
||||||
margin-left: 26px;
|
margin-right: 13px;
|
||||||
margin-right: 26px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { Component, Input, OnInit, signal, ViewChildren } from '@angular/core';
|
import { Component, effect, Input, OnInit, signal, ViewChildren } from '@angular/core';
|
||||||
import { List } from '@common-ui/utils';
|
import { List } from '@common-ui/utils';
|
||||||
import { IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
import { IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||||
import { ComponentLogEntry, Dictionary, File, IComponentLogEntry, WorkflowFileStatuses } from '@red/domain';
|
import { ComponentLogEntry, Dictionary, File, IComponentLogEntry, WorkflowFileStatuses } from '@red/domain';
|
||||||
@ -11,6 +11,7 @@ import { map } from 'rxjs/operators';
|
|||||||
import { toObservable } from '@angular/core/rxjs-interop';
|
import { toObservable } from '@angular/core/rxjs-interop';
|
||||||
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
|
import { FilePreviewStateService } from '../../services/file-preview-state.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-structured-component-management',
|
selector: 'redaction-structured-component-management',
|
||||||
@ -33,7 +34,13 @@ export class StructuredComponentManagementComponent implements OnInit {
|
|||||||
private readonly _loadingService: LoadingService,
|
private readonly _loadingService: LoadingService,
|
||||||
private readonly _componentLogFilterService: ComponentLogFilterService,
|
private readonly _componentLogFilterService: ComponentLogFilterService,
|
||||||
private readonly _filterService: FilterService,
|
private readonly _filterService: FilterService,
|
||||||
) {}
|
private readonly _state: FilePreviewStateService,
|
||||||
|
) {
|
||||||
|
effect(async () => {
|
||||||
|
this._state.file();
|
||||||
|
await this.#loadData();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
get canEdit() {
|
get canEdit() {
|
||||||
return this.file.workflowStatus !== WorkflowFileStatuses.APPROVED;
|
return this.file.workflowStatus !== WorkflowFileStatuses.APPROVED;
|
||||||
@ -75,7 +82,6 @@ export class StructuredComponentManagementComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async #loadData(): Promise<void> {
|
async #loadData(): Promise<void> {
|
||||||
this._loadingService.start();
|
|
||||||
const componentLogData = await firstValueFrom(
|
const componentLogData = await firstValueFrom(
|
||||||
this._componentLogService.getComponentLogData(
|
this._componentLogService.getComponentLogData(
|
||||||
this.file.dossierTemplateId,
|
this.file.dossierTemplateId,
|
||||||
|
|||||||
@ -52,6 +52,7 @@
|
|||||||
</iqser-icon-button>
|
</iqser-icon-button>
|
||||||
|
|
||||||
<div [translate]="'edit-redaction.dialog.actions.cancel'" class="all-caps-label cancel" mat-dialog-close></div>
|
<div [translate]="'edit-redaction.dialog.actions.cancel'" class="all-caps-label cancel" mat-dialog-close></div>
|
||||||
|
<iqser-help-button></iqser-help-button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,13 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';
|
import { FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';
|
||||||
import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui';
|
import {
|
||||||
|
CircleButtonComponent,
|
||||||
|
HasScrollbarDirective,
|
||||||
|
HelpButtonComponent,
|
||||||
|
IconButtonComponent,
|
||||||
|
IconButtonTypes,
|
||||||
|
IqserDialogComponent,
|
||||||
|
} from '@iqser/common-ui';
|
||||||
import { Dictionary, Dossier, SuperTypes } from '@red/domain';
|
import { Dictionary, Dossier, SuperTypes } from '@red/domain';
|
||||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||||
import { DictionaryService } from '@services/entity-services/dictionary.service';
|
import { DictionaryService } from '@services/entity-services/dictionary.service';
|
||||||
@ -33,6 +40,7 @@ import { MatDialogClose } from '@angular/material/dialog';
|
|||||||
IconButtonComponent,
|
IconButtonComponent,
|
||||||
CircleButtonComponent,
|
CircleButtonComponent,
|
||||||
MatDialogClose,
|
MatDialogClose,
|
||||||
|
HelpButtonComponent,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class EditAnnotationDialogComponent
|
export class EditAnnotationDialogComponent
|
||||||
|
|||||||
@ -60,6 +60,7 @@
|
|||||||
</iqser-icon-button>
|
</iqser-icon-button>
|
||||||
|
|
||||||
<div [translate]="'remove-annotation.dialog.actions.cancel'" class="all-caps-label cancel" mat-dialog-close></div>
|
<div [translate]="'remove-annotation.dialog.actions.cancel'" class="all-caps-label cancel" mat-dialog-close></div>
|
||||||
|
<iqser-help-button></iqser-help-button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,14 @@ import { MatDialogClose } from '@angular/material/dialog';
|
|||||||
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
|
||||||
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
|
||||||
import { ReplaceNbspPipe } from '@common-ui/pipes/replace-nbsp.pipe';
|
import { ReplaceNbspPipe } from '@common-ui/pipes/replace-nbsp.pipe';
|
||||||
import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IconButtonTypes, IqserDialogComponent } from '@iqser/common-ui';
|
import {
|
||||||
|
CircleButtonComponent,
|
||||||
|
HasScrollbarDirective,
|
||||||
|
HelpButtonComponent,
|
||||||
|
IconButtonComponent,
|
||||||
|
IconButtonTypes,
|
||||||
|
IqserDialogComponent,
|
||||||
|
} from '@iqser/common-ui';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { getRemoveRedactionOptions } from '../../../utils/dialog-options';
|
import { getRemoveRedactionOptions } from '../../../utils/dialog-options';
|
||||||
import { RemoveAnnotationData, RemoveAnnotationOption, RemoveAnnotationOptions, RemoveAnnotationResult } from '../../../utils/dialog-types';
|
import { RemoveAnnotationData, RemoveAnnotationOption, RemoveAnnotationOptions, RemoveAnnotationResult } from '../../../utils/dialog-types';
|
||||||
@ -28,6 +35,7 @@ import { RemoveAnnotationData, RemoveAnnotationOption, RemoveAnnotationOptions,
|
|||||||
CircleButtonComponent,
|
CircleButtonComponent,
|
||||||
MatDialogClose,
|
MatDialogClose,
|
||||||
NgIf,
|
NgIf,
|
||||||
|
HelpButtonComponent,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class RemoveAnnotationDialogComponent extends IqserDialogComponent<
|
export class RemoveAnnotationDialogComponent extends IqserDialogComponent<
|
||||||
|
|||||||
@ -39,7 +39,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.documine-container {
|
&.documine-container {
|
||||||
width: 60%;
|
width: calc(100% - var(--structured-component-management-width));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -32,6 +32,10 @@ export class DocumentInfoService {
|
|||||||
},
|
},
|
||||||
{ allowSignalWrites: true },
|
{ allowSignalWrites: true },
|
||||||
);
|
);
|
||||||
|
|
||||||
|
effect(() => {
|
||||||
|
document.body.style.setProperty('--quick-navigation-width', this.shown() ? '350px' : '61px');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
fileAttributes$(fileId: string, dossierId: string, dossierTemplateId: string) {
|
fileAttributes$(fileId: string, dossierId: string, dossierTemplateId: string) {
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
&.documine-pagination {
|
&.documine-pagination {
|
||||||
left: calc(100% - (var(--documine-viewer-width) / 2) - var(--qiuck-navigation-width));
|
left: calc(100% - (var(--documine-viewer-width) / 2) - var(--quick-navigation-width));
|
||||||
}
|
}
|
||||||
|
|
||||||
> div {
|
> div {
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import utc from 'dayjs/plugin/utc';
|
|||||||
import localeData from 'dayjs/plugin/localeData';
|
import localeData from 'dayjs/plugin/localeData';
|
||||||
import localizedFormat from 'dayjs/plugin/localizedFormat';
|
import localizedFormat from 'dayjs/plugin/localizedFormat';
|
||||||
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
||||||
|
import isSameOrBefore from 'dayjs/plugin/isSameOrBefore';
|
||||||
|
|
||||||
export interface DayJsDateAdapterOptions {
|
export interface DayJsDateAdapterOptions {
|
||||||
/**
|
/**
|
||||||
@ -232,6 +233,7 @@ export class CustomDateAdapter extends DateAdapter<Dayjs> {
|
|||||||
dayjs.extend(localizedFormat);
|
dayjs.extend(localizedFormat);
|
||||||
dayjs.extend(customParseFormat);
|
dayjs.extend(customParseFormat);
|
||||||
dayjs.extend(localeData);
|
dayjs.extend(localeData);
|
||||||
|
dayjs.extend(isSameOrBefore);
|
||||||
|
|
||||||
this.setLocale(dateLocale);
|
this.setLocale(dateLocale);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
|||||||
import { HeadersConfiguration } from '@iqser/common-ui/lib/utils';
|
import { HeadersConfiguration } from '@iqser/common-ui/lib/utils';
|
||||||
import { LicenseService } from '@services/license.service';
|
import { LicenseService } from '@services/license.service';
|
||||||
import { LicenseFeatures } from '../../admin/screens/license/utils/constants';
|
import { LicenseFeatures } from '../../admin/screens/license/utils/constants';
|
||||||
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
|
|
||||||
export interface ActiveUpload {
|
export interface ActiveUpload {
|
||||||
subscription: Subscription;
|
subscription: Subscription;
|
||||||
@ -43,6 +44,7 @@ export class FileUploadService extends GenericService<IFileUploadResult> impleme
|
|||||||
private readonly _errorMessageService: ErrorMessageService,
|
private readonly _errorMessageService: ErrorMessageService,
|
||||||
private readonly _licenseService: LicenseService,
|
private readonly _licenseService: LicenseService,
|
||||||
private readonly _toaster: Toaster,
|
private readonly _toaster: Toaster,
|
||||||
|
private readonly _userPreferenceService: UserPreferenceService,
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
const fileFetch$ = this.#fetchFiles$.pipe(
|
const fileFetch$ = this.#fetchFiles$.pipe(
|
||||||
@ -76,7 +78,7 @@ export class FileUploadService extends GenericService<IFileUploadResult> impleme
|
|||||||
const maxSizeBytes = maxSizeMB * 1024 * 1024;
|
const maxSizeBytes = maxSizeMB * 1024 * 1024;
|
||||||
const dossierFiles = this._filesMapService.get(dossierId);
|
const dossierFiles = this._filesMapService.get(dossierId);
|
||||||
const supportMsOfficeFormats = this._licenseService.getFeature(LicenseFeatures.SUPPORT_MS_OFFICE_FORMATS)?.value as boolean;
|
const supportMsOfficeFormats = this._licenseService.getFeature(LicenseFeatures.SUPPORT_MS_OFFICE_FORMATS)?.value as boolean;
|
||||||
let option: OverwriteFileOption = localStorage.getItem('overwriteFileOption') as OverwriteFileOption;
|
let option: OverwriteFileOption | 'undefined' = this._userPreferenceService.getOverwriteFileOption();
|
||||||
for (let idx = 0; idx < files.length; ++idx) {
|
for (let idx = 0; idx < files.length; ++idx) {
|
||||||
const file = files[idx];
|
const file = files[idx];
|
||||||
let currentOption = option;
|
let currentOption = option;
|
||||||
@ -95,14 +97,14 @@ export class FileUploadService extends GenericService<IFileUploadResult> impleme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (dossierFiles.find(pf => pf.filename === file.file.name)) {
|
} else if (dossierFiles.find(pf => pf.filename === file.file.name)) {
|
||||||
if (!option) {
|
if (option === 'undefined') {
|
||||||
const res = await this._dialogService.openOverwriteFileDialog(file.file.name);
|
const res = await this._dialogService.openOverwriteFileDialog(file.file.name);
|
||||||
if (res.cancel) {
|
if (res.cancel) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res.rememberChoice) {
|
if (res.rememberChoice) {
|
||||||
localStorage.setItem('overwriteFileOption', res.option);
|
await this._userPreferenceService.saveOverwriteFileOption(res.option);
|
||||||
}
|
}
|
||||||
|
|
||||||
currentOption = res.option;
|
currentOption = res.option;
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { Injectable } from '@angular/core';
|
|||||||
import { IqserUserPreferenceService, ListingMode } from '@iqser/common-ui';
|
import { IqserUserPreferenceService, ListingMode } from '@iqser/common-ui';
|
||||||
import { SystemDefaultOption, SystemDefaultType } from '../modules/account/utils/dialog-defaults';
|
import { SystemDefaultOption, SystemDefaultType } from '../modules/account/utils/dialog-defaults';
|
||||||
import { RedactOrHintOption, RemoveRedactionOption } from '../modules/file-preview/utils/dialog-types';
|
import { RedactOrHintOption, RemoveRedactionOption } from '../modules/file-preview/utils/dialog-types';
|
||||||
|
import { OverwriteFileOption } from '@red/domain';
|
||||||
|
|
||||||
export const PreferencesKeys = {
|
export const PreferencesKeys = {
|
||||||
dossierRecent: 'Dossier-Recent',
|
dossierRecent: 'Dossier-Recent',
|
||||||
@ -21,6 +22,7 @@ export const PreferencesKeys = {
|
|||||||
removeRedactionDefaultExtraOption: 'Remove-Redaction-Default-Extra',
|
removeRedactionDefaultExtraOption: 'Remove-Redaction-Default-Extra',
|
||||||
removeRecommendationDefaultExtraOption: 'Remove-Recommendation-Default-Extra',
|
removeRecommendationDefaultExtraOption: 'Remove-Recommendation-Default-Extra',
|
||||||
removeHintDefaultExtraOption: 'Remove-Hint-Default-Extra',
|
removeHintDefaultExtraOption: 'Remove-Hint-Default-Extra',
|
||||||
|
rememberOverwriteFileOption: 'Remember-Overwrite-File',
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
@ -169,4 +171,12 @@ export class UserPreferenceService extends IqserUserPreferenceService {
|
|||||||
async saveRemoveRecommendationDefaultExtraOption(defaultOption: boolean | string): Promise<void> {
|
async saveRemoveRecommendationDefaultExtraOption(defaultOption: boolean | string): Promise<void> {
|
||||||
await this.save(PreferencesKeys.removeRecommendationDefaultExtraOption, defaultOption.toString());
|
await this.save(PreferencesKeys.removeRecommendationDefaultExtraOption, defaultOption.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getOverwriteFileOption(): OverwriteFileOption | 'undefined' {
|
||||||
|
return this._getAttribute(PreferencesKeys.rememberOverwriteFileOption, 'undefined') as OverwriteFileOption | 'undefined';
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveOverwriteFileOption(preference: OverwriteFileOption | 'undefined') {
|
||||||
|
await this.save(PreferencesKeys.rememberOverwriteFileOption, preference);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -273,9 +273,6 @@
|
|||||||
"watermarks": "Wasserzeichen"
|
"watermarks": "Wasserzeichen"
|
||||||
},
|
},
|
||||||
"analysis-disabled": "",
|
"analysis-disabled": "",
|
||||||
"annotation": {
|
|
||||||
"pending": "(Analyse steht aus)"
|
|
||||||
},
|
|
||||||
"annotation-actions": {
|
"annotation-actions": {
|
||||||
"accept-recommendation": {
|
"accept-recommendation": {
|
||||||
"label": "Empfehlung annehmen"
|
"label": "Empfehlung annehmen"
|
||||||
@ -331,14 +328,14 @@
|
|||||||
"error": "Rekategorisierung des Bilds fehlgeschlagen: {error}",
|
"error": "Rekategorisierung des Bilds fehlgeschlagen: {error}",
|
||||||
"success": "Bild wurde einer neuen Kategorie zugeordnet."
|
"success": "Bild wurde einer neuen Kategorie zugeordnet."
|
||||||
},
|
},
|
||||||
"remove": {
|
|
||||||
"error": "Entfernen der Schwärzung fehlgeschlagen: {error}",
|
|
||||||
"success": "Schwärzung wurde entfernt"
|
|
||||||
},
|
|
||||||
"remove-hint": {
|
"remove-hint": {
|
||||||
"error": "Entfernen des Hinweises fehlgeschlagen: {error}",
|
"error": "Entfernen des Hinweises fehlgeschlagen: {error}",
|
||||||
"success": "Hinweis wurde entfernt"
|
"success": "Hinweis wurde entfernt"
|
||||||
},
|
},
|
||||||
|
"remove": {
|
||||||
|
"error": "Entfernen der Schwärzung fehlgeschlagen: {error}",
|
||||||
|
"success": "Schwärzung wurde entfernt"
|
||||||
|
},
|
||||||
"undo": {
|
"undo": {
|
||||||
"error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}",
|
"error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}",
|
||||||
"success": "Rücksetzung erfolgreich"
|
"success": "Rücksetzung erfolgreich"
|
||||||
@ -351,15 +348,15 @@
|
|||||||
"remove-highlights": {
|
"remove-highlights": {
|
||||||
"label": "Ausgewählte Markierungen entfernen"
|
"label": "Ausgewählte Markierungen entfernen"
|
||||||
},
|
},
|
||||||
"resize": {
|
|
||||||
"label": "Größe ändern"
|
|
||||||
},
|
|
||||||
"resize-accept": {
|
"resize-accept": {
|
||||||
"label": "Neue Größe speichern"
|
"label": "Neue Größe speichern"
|
||||||
},
|
},
|
||||||
"resize-cancel": {
|
"resize-cancel": {
|
||||||
"label": "Größenänderung abbrechen"
|
"label": "Größenänderung abbrechen"
|
||||||
},
|
},
|
||||||
|
"resize": {
|
||||||
|
"label": "Größe ändern"
|
||||||
|
},
|
||||||
"see-references": {
|
"see-references": {
|
||||||
"label": "Referenzen anzeigen"
|
"label": "Referenzen anzeigen"
|
||||||
},
|
},
|
||||||
@ -393,6 +390,9 @@
|
|||||||
"skipped": "Ignorierte Schwärzung",
|
"skipped": "Ignorierte Schwärzung",
|
||||||
"text-highlight": "Markierung"
|
"text-highlight": "Markierung"
|
||||||
},
|
},
|
||||||
|
"annotation": {
|
||||||
|
"pending": "(Analyse steht aus)"
|
||||||
|
},
|
||||||
"annotations": "Annotationen",
|
"annotations": "Annotationen",
|
||||||
"archived-dossiers-listing": {
|
"archived-dossiers-listing": {
|
||||||
"no-data": {
|
"no-data": {
|
||||||
@ -587,8 +587,7 @@
|
|||||||
"success": {
|
"success": {
|
||||||
"generic": ""
|
"generic": ""
|
||||||
},
|
},
|
||||||
"title": "",
|
"title": ""
|
||||||
"warning-text": ""
|
|
||||||
},
|
},
|
||||||
"configurations": "Konfiguration",
|
"configurations": "Konfiguration",
|
||||||
"confirm-archive-dossier": {
|
"confirm-archive-dossier": {
|
||||||
@ -637,18 +636,14 @@
|
|||||||
"warning": "Warnung: Wiederherstellung des Benutzers nicht möglich."
|
"warning": "Warnung: Wiederherstellung des Benutzers nicht möglich."
|
||||||
},
|
},
|
||||||
"confirmation-dialog": {
|
"confirmation-dialog": {
|
||||||
"approve-file": {
|
|
||||||
"question": "Dieses Dokument enthält ungesehene Änderungen, die sich durch die Reanalyse ergeben haben.<br><br>Möchten Sie es trotzdem freigeben?",
|
|
||||||
"title": "Warnung!"
|
|
||||||
},
|
|
||||||
"approve-file-without-analysis": {
|
"approve-file-without-analysis": {
|
||||||
"confirmationText": "Ohne Analyse freigeben",
|
"confirmationText": "Ohne Analyse freigeben",
|
||||||
"denyText": "Abbrechen",
|
"denyText": "Abbrechen",
|
||||||
"question": "Analyse zur Erkennung neuer Schwärzungen erforderlich.",
|
"question": "Analyse zur Erkennung neuer Schwärzungen erforderlich.",
|
||||||
"title": "Warnung!"
|
"title": "Warnung!"
|
||||||
},
|
},
|
||||||
"approve-multiple-files": {
|
"approve-file": {
|
||||||
"question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen, die im Zuge einer Reanalyse hinzugefügt wurden.<br><br>Möchen Sie die Dateien wirklich freigeben?",
|
"question": "Dieses Dokument enthält ungesehene Änderungen, die sich durch die Reanalyse ergeben haben.<br><br>Möchten Sie es trotzdem freigeben?",
|
||||||
"title": "Warnung!"
|
"title": "Warnung!"
|
||||||
},
|
},
|
||||||
"approve-multiple-files-without-analysis": {
|
"approve-multiple-files-without-analysis": {
|
||||||
@ -657,6 +652,10 @@
|
|||||||
"question": "Für mindestens eine Datei ist ein Analyselauf zur Erkennung neuer Schwärzungen erforderlich.",
|
"question": "Für mindestens eine Datei ist ein Analyselauf zur Erkennung neuer Schwärzungen erforderlich.",
|
||||||
"title": "Warnung"
|
"title": "Warnung"
|
||||||
},
|
},
|
||||||
|
"approve-multiple-files": {
|
||||||
|
"question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen, die im Zuge einer Reanalyse hinzugefügt wurden.<br><br>Möchen Sie die Dateien wirklich freigeben?",
|
||||||
|
"title": "Warnung!"
|
||||||
|
},
|
||||||
"assign-file-to-me": {
|
"assign-file-to-me": {
|
||||||
"question": {
|
"question": {
|
||||||
"multiple": "Dieses Dokument wird gerade von einer anderen Person geprüft.<br><br>Möchten Sie sich die Datei dennoch zuweisen?",
|
"multiple": "Dieses Dokument wird gerade von einer anderen Person geprüft.<br><br>Möchten Sie sich die Datei dennoch zuweisen?",
|
||||||
@ -1026,13 +1025,13 @@
|
|||||||
"recent": "Neu ({hours} h)",
|
"recent": "Neu ({hours} h)",
|
||||||
"unassigned": "Keinem Bearbeiter zugewiesen"
|
"unassigned": "Keinem Bearbeiter zugewiesen"
|
||||||
},
|
},
|
||||||
"reanalyse": {
|
|
||||||
"action": "Datei analysieren"
|
|
||||||
},
|
|
||||||
"reanalyse-dossier": {
|
"reanalyse-dossier": {
|
||||||
"error": "Einplanung der Dateien für die Reanalyse fehlgeschlagen. Bitte versuchen Sie es noch einmal.",
|
"error": "Einplanung der Dateien für die Reanalyse fehlgeschlagen. Bitte versuchen Sie es noch einmal.",
|
||||||
"success": "Dateien für Reanalyse vorgesehen."
|
"success": "Dateien für Reanalyse vorgesehen."
|
||||||
},
|
},
|
||||||
|
"reanalyse": {
|
||||||
|
"action": "Datei analysieren"
|
||||||
|
},
|
||||||
"report-download": "",
|
"report-download": "",
|
||||||
"start-auto-analysis": "Auto-Analyse aktivieren",
|
"start-auto-analysis": "Auto-Analyse aktivieren",
|
||||||
"stop-auto-analysis": "Auto-Analyse anhalten",
|
"stop-auto-analysis": "Auto-Analyse anhalten",
|
||||||
@ -1066,8 +1065,7 @@
|
|||||||
"dossier-states": "{count, plural, one{Dossier-Status} other{Dossier-Status}}"
|
"dossier-states": "{count, plural, one{Dossier-Status} other{Dossier-Status}}"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"conflict": "Es gibt bereits einen Dossier-Status mit diesem Namen.",
|
"conflict": "Es gibt bereits einen Dossier-Status mit diesem Namen."
|
||||||
"generic": "Speichern des Dossier-Status fehlgeschlagen."
|
|
||||||
},
|
},
|
||||||
"no-data": {
|
"no-data": {
|
||||||
"title": "Es wurde noch kein Dossier-Status angelegt."
|
"title": "Es wurde noch kein Dossier-Status angelegt."
|
||||||
@ -1103,14 +1101,6 @@
|
|||||||
"total-documents": "Dokumente",
|
"total-documents": "Dokumente",
|
||||||
"total-people": "<strong>{count}</strong> {count, plural, one{Benutzer} other {Benutzer}}"
|
"total-people": "<strong>{count}</strong> {count, plural, one{Benutzer} other {Benutzer}}"
|
||||||
},
|
},
|
||||||
"dossier-templates": {
|
|
||||||
"label": "Dossier-Vorlagen",
|
|
||||||
"status": {
|
|
||||||
"active": "Aktiv",
|
|
||||||
"inactive": "Inaktiv",
|
|
||||||
"incomplete": "Unvollständig"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dossier-templates-listing": {
|
"dossier-templates-listing": {
|
||||||
"action": {
|
"action": {
|
||||||
"clone": "Vorlage klonen",
|
"clone": "Vorlage klonen",
|
||||||
@ -1145,6 +1135,14 @@
|
|||||||
"title": "{length} {length, plural, one{Dossier-Vorlage} other{Dossier-Vorlagen}}"
|
"title": "{length} {length, plural, one{Dossier-Vorlage} other{Dossier-Vorlagen}}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dossier-templates": {
|
||||||
|
"label": "Dossier-Vorlagen",
|
||||||
|
"status": {
|
||||||
|
"active": "Aktiv",
|
||||||
|
"inactive": "Inaktiv",
|
||||||
|
"incomplete": "Unvollständig"
|
||||||
|
}
|
||||||
|
},
|
||||||
"dossier-watermark-selector": {
|
"dossier-watermark-selector": {
|
||||||
"heading": "Wasserzeichen auf Dokumenten",
|
"heading": "Wasserzeichen auf Dokumenten",
|
||||||
"no-watermark": "Kein Wasserzeichen in der Dossier-Vorlage verfügbar:<br>Bitten Sie Ihren Admin, eines zu konfigurieren.",
|
"no-watermark": "Kein Wasserzeichen in der Dossier-Vorlage verfügbar:<br>Bitten Sie Ihren Admin, eines zu konfigurieren.",
|
||||||
@ -1340,15 +1338,6 @@
|
|||||||
"title": "{length} {length, plural, one{Wörterbuch} other{Wörterbücher}}"
|
"title": "{length} {length, plural, one{Wörterbuch} other{Wörterbücher}}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
|
||||||
"info": {
|
|
||||||
"actions": {
|
|
||||||
"revert": "Zurücksetzen",
|
|
||||||
"save": "Änderungen speichern"
|
|
||||||
},
|
|
||||||
"heading": "Entität bearbeiten"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"entity-rules-screen": {
|
"entity-rules-screen": {
|
||||||
"error": {
|
"error": {
|
||||||
"generic": "Fehler: Aktualisierung der Entitätsregeln fehlgeschlagen."
|
"generic": "Fehler: Aktualisierung der Entitätsregeln fehlgeschlagen."
|
||||||
@ -1360,22 +1349,30 @@
|
|||||||
"generic": "Die Entitätsregeln wurden aktualisiert."
|
"generic": "Die Entitätsregeln wurden aktualisiert."
|
||||||
},
|
},
|
||||||
"title": "Entitätsregeln-Editor",
|
"title": "Entitätsregeln-Editor",
|
||||||
"warning-text": "Warnung: experimentelle Funktion!",
|
|
||||||
"warnings-found": "{warnings, plural, one{A warning} other{{warnings} warnings}} in Regeln gefunden"
|
"warnings-found": "{warnings, plural, one{A warning} other{{warnings} warnings}} in Regeln gefunden"
|
||||||
},
|
},
|
||||||
|
"entity": {
|
||||||
|
"info": {
|
||||||
|
"actions": {
|
||||||
|
"revert": "Zurücksetzen",
|
||||||
|
"save": "Änderungen speichern"
|
||||||
|
},
|
||||||
|
"heading": "Entität bearbeiten"
|
||||||
|
}
|
||||||
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"deleted-entity": {
|
"deleted-entity": {
|
||||||
"dossier": {
|
"dossier": {
|
||||||
"action": "Zurück zur Übersicht",
|
"action": "Zurück zur Übersicht",
|
||||||
"label": "Dieses Dossier wurde gelöscht!"
|
"label": "Dieses Dossier wurde gelöscht!"
|
||||||
},
|
},
|
||||||
"file": {
|
|
||||||
"action": "Zurück zum Dossier",
|
|
||||||
"label": "Diese Datei wurde gelöscht!"
|
|
||||||
},
|
|
||||||
"file-dossier": {
|
"file-dossier": {
|
||||||
"action": "Zurück zur Übersicht",
|
"action": "Zurück zur Übersicht",
|
||||||
"label": "Das Dossier dieser Datei wurde gelöscht!"
|
"label": "Das Dossier dieser Datei wurde gelöscht!"
|
||||||
|
},
|
||||||
|
"file": {
|
||||||
|
"action": "Zurück zum Dossier",
|
||||||
|
"label": "Diese Datei wurde gelöscht!"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"file-preview": {
|
"file-preview": {
|
||||||
@ -1393,12 +1390,6 @@
|
|||||||
},
|
},
|
||||||
"exact-date": "{day}. {month} {year} um {hour}:{minute} Uhr",
|
"exact-date": "{day}. {month} {year} um {hour}:{minute} Uhr",
|
||||||
"file": "Datei",
|
"file": "Datei",
|
||||||
"file-attribute": {
|
|
||||||
"update": {
|
|
||||||
"error": "Aktualisierung des Werts für das Datei-Attribut fehlgeschlagen. Bitte versuchen Sie es noch einmal.",
|
|
||||||
"success": "Der Wert für das Dateiattribut wurde erfolgreich aktualisiert."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"file-attribute-encoding-types": {
|
"file-attribute-encoding-types": {
|
||||||
"ascii": "ASCII",
|
"ascii": "ASCII",
|
||||||
"iso": "ISO-8859-1",
|
"iso": "ISO-8859-1",
|
||||||
@ -1409,6 +1400,12 @@
|
|||||||
"number": "Nummer",
|
"number": "Nummer",
|
||||||
"text": "Freier Text"
|
"text": "Freier Text"
|
||||||
},
|
},
|
||||||
|
"file-attribute": {
|
||||||
|
"update": {
|
||||||
|
"error": "Aktualisierung des Werts für das Datei-Attribut fehlgeschlagen. Bitte versuchen Sie es noch einmal.",
|
||||||
|
"success": "Der Wert für das Dateiattribut wurde erfolgreich aktualisiert."
|
||||||
|
}
|
||||||
|
},
|
||||||
"file-attributes-configurations": {
|
"file-attributes-configurations": {
|
||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
"form": {
|
"form": {
|
||||||
@ -1626,15 +1623,6 @@
|
|||||||
"csv": "Die Datei-Attribute wurden erfolgreich aus der hochgeladenen CSV-Datei importiert."
|
"csv": "Die Datei-Attribute wurden erfolgreich aus der hochgeladenen CSV-Datei importiert."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"filter": {
|
|
||||||
"analysis": "Analyse erforderlich",
|
|
||||||
"comment": "Kommentare",
|
|
||||||
"hint": "Nur Hinweise",
|
|
||||||
"image": "Bilder",
|
|
||||||
"none": "Keine Annotationen",
|
|
||||||
"redaction": "Schwärzungen",
|
|
||||||
"updated": "Aktualisiert"
|
|
||||||
},
|
|
||||||
"filter-menu": {
|
"filter-menu": {
|
||||||
"filter-options": "Filteroptionen",
|
"filter-options": "Filteroptionen",
|
||||||
"filter-types": "Filter",
|
"filter-types": "Filter",
|
||||||
@ -1644,6 +1632,15 @@
|
|||||||
"unseen-pages": "Nur Annotationen auf ungesehenen Seiten",
|
"unseen-pages": "Nur Annotationen auf ungesehenen Seiten",
|
||||||
"with-comments": "Nur Annotationen mit Kommentaren"
|
"with-comments": "Nur Annotationen mit Kommentaren"
|
||||||
},
|
},
|
||||||
|
"filter": {
|
||||||
|
"analysis": "Analyse erforderlich",
|
||||||
|
"comment": "Kommentare",
|
||||||
|
"hint": "Nur Hinweise",
|
||||||
|
"image": "Bilder",
|
||||||
|
"none": "Keine Annotationen",
|
||||||
|
"redaction": "Schwärzungen",
|
||||||
|
"updated": "Aktualisiert"
|
||||||
|
},
|
||||||
"filters": {
|
"filters": {
|
||||||
"assigned-people": "Bearbeiter",
|
"assigned-people": "Bearbeiter",
|
||||||
"documents-status": "Dokumentenstatus",
|
"documents-status": "Dokumentenstatus",
|
||||||
@ -1922,13 +1919,6 @@
|
|||||||
"user-promoted-to-approver": "<b>{user}</b> wurde im Dossier <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> zum Genehmiger ernannt!",
|
"user-promoted-to-approver": "<b>{user}</b> wurde im Dossier <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> zum Genehmiger ernannt!",
|
||||||
"user-removed-as-dossier-member": "<b>{user}</b> wurde als Mitglied von: <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> entfernt!"
|
"user-removed-as-dossier-member": "<b>{user}</b> wurde als Mitglied von: <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> entfernt!"
|
||||||
},
|
},
|
||||||
"notifications": {
|
|
||||||
"button-text": "Benachrichtigungen",
|
|
||||||
"deleted-dossier": "Gelöschtes Dossier",
|
|
||||||
"label": "Benachrichtigungen",
|
|
||||||
"mark-all-as-read": "Alle als gelesen markieren",
|
|
||||||
"mark-as": "Als {type, select, read{gelesen} unread{ungelesen} other{}} markieren"
|
|
||||||
},
|
|
||||||
"notifications-screen": {
|
"notifications-screen": {
|
||||||
"category": {
|
"category": {
|
||||||
"email-notifications": "E-Mail-Benachrichtigungen",
|
"email-notifications": "E-Mail-Benachrichtigungen",
|
||||||
@ -1942,6 +1932,7 @@
|
|||||||
"dossier": "Benachrichtigungen zu Dossiers",
|
"dossier": "Benachrichtigungen zu Dossiers",
|
||||||
"other": "Andere Benachrichtigungen"
|
"other": "Andere Benachrichtigungen"
|
||||||
},
|
},
|
||||||
|
"options-title": "Wählen Sie aus, bei welchen Aktivitäten Sie benachrichtigt werden möchten",
|
||||||
"options": {
|
"options": {
|
||||||
"ASSIGN_APPROVER": "Wenn ich einem Dokument als Genehmiger zugewiesen werde",
|
"ASSIGN_APPROVER": "Wenn ich einem Dokument als Genehmiger zugewiesen werde",
|
||||||
"ASSIGN_REVIEWER": "Wenn ich einem Dokument als Prüfer zugewiesen werde",
|
"ASSIGN_REVIEWER": "Wenn ich einem Dokument als Prüfer zugewiesen werde",
|
||||||
@ -1959,7 +1950,6 @@
|
|||||||
"USER_PROMOTED_TO_APPROVER": "Wenn ich Genehmiger in einem Dossier werde",
|
"USER_PROMOTED_TO_APPROVER": "Wenn ich Genehmiger in einem Dossier werde",
|
||||||
"USER_REMOVED_AS_DOSSIER_MEMBER": "Wenn ich die Dossier-Mitgliedschaft verliere"
|
"USER_REMOVED_AS_DOSSIER_MEMBER": "Wenn ich die Dossier-Mitgliedschaft verliere"
|
||||||
},
|
},
|
||||||
"options-title": "Wählen Sie aus, bei welchen Aktivitäten Sie benachrichtigt werden möchten",
|
|
||||||
"schedule": {
|
"schedule": {
|
||||||
"daily": "Tägliche Zusammenfassung",
|
"daily": "Tägliche Zusammenfassung",
|
||||||
"instant": "Sofort",
|
"instant": "Sofort",
|
||||||
@ -1967,6 +1957,13 @@
|
|||||||
},
|
},
|
||||||
"title": "Benachrichtigungseinstellungen"
|
"title": "Benachrichtigungseinstellungen"
|
||||||
},
|
},
|
||||||
|
"notifications": {
|
||||||
|
"button-text": "Benachrichtigungen",
|
||||||
|
"deleted-dossier": "Gelöschtes Dossier",
|
||||||
|
"label": "Benachrichtigungen",
|
||||||
|
"mark-all-as-read": "Alle als gelesen markieren",
|
||||||
|
"mark-as": "Als {type, select, read{gelesen} unread{ungelesen} other{}} markieren"
|
||||||
|
},
|
||||||
"ocr": {
|
"ocr": {
|
||||||
"confirmation-dialog": {
|
"confirmation-dialog": {
|
||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
@ -2049,7 +2046,7 @@
|
|||||||
"auto-expand-filters-on-action": "Filter ausgehend von meinen Aktionen automatisch anpassen",
|
"auto-expand-filters-on-action": "Filter ausgehend von meinen Aktionen automatisch anpassen",
|
||||||
"help-mode-dialog": "Dialog zur Aktivierung des Hilfemodus",
|
"help-mode-dialog": "Dialog zur Aktivierung des Hilfemodus",
|
||||||
"load-all-annotations-warning": "Warnung bei gleichzeitigem Laden aller Annotationen in der Miniaturansicht",
|
"load-all-annotations-warning": "Warnung bei gleichzeitigem Laden aller Annotationen in der Miniaturansicht",
|
||||||
"open-structured-view-by-default": "Strukturierte Komponentenansicht standardmäßig anzeigen",
|
"overwrite-file-option": "",
|
||||||
"table-extraction-type": "Art der Tabellenextraktion"
|
"table-extraction-type": "Art der Tabellenextraktion"
|
||||||
},
|
},
|
||||||
"label": "Präferenzen",
|
"label": "Präferenzen",
|
||||||
@ -2058,16 +2055,16 @@
|
|||||||
"warnings-label": "Dialoge und Meldungen",
|
"warnings-label": "Dialoge und Meldungen",
|
||||||
"warnings-subtitle": "„Nicht mehr anzeigen“-Optionen"
|
"warnings-subtitle": "„Nicht mehr anzeigen“-Optionen"
|
||||||
},
|
},
|
||||||
"processing": {
|
|
||||||
"basic": "Verarbeitung läuft",
|
|
||||||
"ocr": "OCR"
|
|
||||||
},
|
|
||||||
"processing-status": {
|
"processing-status": {
|
||||||
"ocr": "OCR",
|
"ocr": "OCR",
|
||||||
"pending": "Ausstehend",
|
"pending": "Ausstehend",
|
||||||
"processed": "Verarbeitet",
|
"processed": "Verarbeitet",
|
||||||
"processing": "Verarbeitung läuft"
|
"processing": "Verarbeitung läuft"
|
||||||
},
|
},
|
||||||
|
"processing": {
|
||||||
|
"basic": "Verarbeitung läuft",
|
||||||
|
"ocr": "OCR"
|
||||||
|
},
|
||||||
"readonly": "Lesemodus",
|
"readonly": "Lesemodus",
|
||||||
"readonly-archived": "Lesemodus (archiviert)",
|
"readonly-archived": "Lesemodus (archiviert)",
|
||||||
"redact-text": {
|
"redact-text": {
|
||||||
@ -2303,12 +2300,6 @@
|
|||||||
"red-user-admin": "Benutzeradmin",
|
"red-user-admin": "Benutzeradmin",
|
||||||
"regular": "regulärer Benutzer"
|
"regular": "regulärer Benutzer"
|
||||||
},
|
},
|
||||||
"search": {
|
|
||||||
"active-dossiers": "Dokumente in aktiven Dossiers",
|
|
||||||
"all-dossiers": "Alle Dokumente",
|
|
||||||
"placeholder": "Dokumente durchsuchen...",
|
|
||||||
"this-dossier": "In diesem Dossier"
|
|
||||||
},
|
|
||||||
"search-screen": {
|
"search-screen": {
|
||||||
"cols": {
|
"cols": {
|
||||||
"assignee": "Bearbeiter",
|
"assignee": "Bearbeiter",
|
||||||
@ -2332,6 +2323,12 @@
|
|||||||
"no-match": "Der Suchbegriff wurde in keinem der Dokumente gefunden.",
|
"no-match": "Der Suchbegriff wurde in keinem der Dokumente gefunden.",
|
||||||
"table-header": "{length} {length, plural, one{Suchergebnis} other{Suchergebnisse}}"
|
"table-header": "{length} {length, plural, one{Suchergebnis} other{Suchergebnisse}}"
|
||||||
},
|
},
|
||||||
|
"search": {
|
||||||
|
"active-dossiers": "Dokumente in aktiven Dossiers",
|
||||||
|
"all-dossiers": "Alle Dokumente",
|
||||||
|
"placeholder": "Dokumente durchsuchen...",
|
||||||
|
"this-dossier": "In diesem Dossier"
|
||||||
|
},
|
||||||
"seconds": "Sekunden",
|
"seconds": "Sekunden",
|
||||||
"size": "Größe",
|
"size": "Größe",
|
||||||
"smtp-auth-config": {
|
"smtp-auth-config": {
|
||||||
@ -2587,4 +2584,4 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yesterday": "Gestern"
|
"yesterday": "Gestern"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2046,6 +2046,7 @@
|
|||||||
"auto-expand-filters-on-action": "Auto-expand filters on my actions",
|
"auto-expand-filters-on-action": "Auto-expand filters on my actions",
|
||||||
"help-mode-dialog": "Help mode activation dialog",
|
"help-mode-dialog": "Help mode activation dialog",
|
||||||
"load-all-annotations-warning": "Warning regarding simultaneous loading of all annotations in thumbnails",
|
"load-all-annotations-warning": "Warning regarding simultaneous loading of all annotations in thumbnails",
|
||||||
|
"overwrite-file-option": "Preferred action when re-uploading an already existing file",
|
||||||
"table-extraction-type": "Table extraction type"
|
"table-extraction-type": "Table extraction type"
|
||||||
},
|
},
|
||||||
"label": "Preferences",
|
"label": "Preferences",
|
||||||
@ -2583,4 +2584,4 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yesterday": "Yesterday"
|
"yesterday": "Yesterday"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -273,9 +273,6 @@
|
|||||||
"watermarks": "Watermarks"
|
"watermarks": "Watermarks"
|
||||||
},
|
},
|
||||||
"analysis-disabled": "Analysis disabled",
|
"analysis-disabled": "Analysis disabled",
|
||||||
"annotation": {
|
|
||||||
"pending": "(Pending analysis)"
|
|
||||||
},
|
|
||||||
"annotation-actions": {
|
"annotation-actions": {
|
||||||
"accept-recommendation": {
|
"accept-recommendation": {
|
||||||
"label": "Empfehlung annehmen"
|
"label": "Empfehlung annehmen"
|
||||||
@ -324,21 +321,21 @@
|
|||||||
"success": "Schwärzung eingefügt!"
|
"success": "Schwärzung eingefügt!"
|
||||||
},
|
},
|
||||||
"recategorize-annotation": {
|
"recategorize-annotation": {
|
||||||
"error": "",
|
"error": "Bearbeiten des Typs fehlgeschlagen: {error}",
|
||||||
"success": ""
|
"success": "Annotation wurde bearbeitet: {changes} geändert."
|
||||||
},
|
},
|
||||||
"recategorize-image": {
|
"recategorize-image": {
|
||||||
"error": "Rekategorisierung des Bildes gescheitert: {error}",
|
"error": "Rekategorisierung des Bildes gescheitert: {error}",
|
||||||
"success": "Bild wurde einer neuen Kategorie zugeordnet."
|
"success": "Bild wurde einer neuen Kategorie zugeordnet."
|
||||||
},
|
},
|
||||||
"remove": {
|
|
||||||
"error": "Fehler beim Entfernen der Schwärzung: {error}",
|
|
||||||
"success": "Schwärzung entfernt!"
|
|
||||||
},
|
|
||||||
"remove-hint": {
|
"remove-hint": {
|
||||||
"error": "Failed to remove hint: {error}",
|
"error": "Failed to remove hint: {error}",
|
||||||
"success": "Hint removed!"
|
"success": "Hint removed!"
|
||||||
},
|
},
|
||||||
|
"remove": {
|
||||||
|
"error": "Fehler beim Entfernen der Schwärzung: {error}",
|
||||||
|
"success": "Schwärzung entfernt!"
|
||||||
|
},
|
||||||
"undo": {
|
"undo": {
|
||||||
"error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}",
|
"error": "Die Aktion konnte nicht rückgängig gemacht werden. Fehler: {error}",
|
||||||
"success": "erfolgreich Rückgängig gemacht"
|
"success": "erfolgreich Rückgängig gemacht"
|
||||||
@ -351,15 +348,15 @@
|
|||||||
"remove-highlights": {
|
"remove-highlights": {
|
||||||
"label": "Remove selected earmarks"
|
"label": "Remove selected earmarks"
|
||||||
},
|
},
|
||||||
"resize": {
|
|
||||||
"label": "Größe ändern"
|
|
||||||
},
|
|
||||||
"resize-accept": {
|
"resize-accept": {
|
||||||
"label": "Größe speichern"
|
"label": "Größe speichern"
|
||||||
},
|
},
|
||||||
"resize-cancel": {
|
"resize-cancel": {
|
||||||
"label": "Größenänderung abbrechen"
|
"label": "Größenänderung abbrechen"
|
||||||
},
|
},
|
||||||
|
"resize": {
|
||||||
|
"label": "Größe ändern"
|
||||||
|
},
|
||||||
"see-references": {
|
"see-references": {
|
||||||
"label": "See references"
|
"label": "See references"
|
||||||
},
|
},
|
||||||
@ -393,6 +390,9 @@
|
|||||||
"skipped": "Übersprungen",
|
"skipped": "Übersprungen",
|
||||||
"text-highlight": "Earmark"
|
"text-highlight": "Earmark"
|
||||||
},
|
},
|
||||||
|
"annotation": {
|
||||||
|
"pending": "(Pending analysis)"
|
||||||
|
},
|
||||||
"annotations": "Annotations",
|
"annotations": "Annotations",
|
||||||
"archived-dossiers-listing": {
|
"archived-dossiers-listing": {
|
||||||
"no-data": {
|
"no-data": {
|
||||||
@ -587,8 +587,7 @@
|
|||||||
"success": {
|
"success": {
|
||||||
"generic": "Component rules updated!"
|
"generic": "Component rules updated!"
|
||||||
},
|
},
|
||||||
"title": "Component rule editor",
|
"title": "Component rule editor"
|
||||||
"warning-text": "Warning: experimental feature!"
|
|
||||||
},
|
},
|
||||||
"configurations": "Einstellungen",
|
"configurations": "Einstellungen",
|
||||||
"confirm-archive-dossier": {
|
"confirm-archive-dossier": {
|
||||||
@ -637,18 +636,14 @@
|
|||||||
"warning": "Achtung: Diese Aktion kann nicht rückgängig gemacht werden!"
|
"warning": "Achtung: Diese Aktion kann nicht rückgängig gemacht werden!"
|
||||||
},
|
},
|
||||||
"confirmation-dialog": {
|
"confirmation-dialog": {
|
||||||
"approve-file": {
|
|
||||||
"question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?",
|
|
||||||
"title": "Warnung!"
|
|
||||||
},
|
|
||||||
"approve-file-without-analysis": {
|
"approve-file-without-analysis": {
|
||||||
"confirmationText": "Approve without analysis",
|
"confirmationText": "Approve without analysis",
|
||||||
"denyText": "Cancel",
|
"denyText": "Cancel",
|
||||||
"question": "Analysis required to detect new components.",
|
"question": "Analysis required to detect new components.",
|
||||||
"title": "Warning!"
|
"title": "Warning!"
|
||||||
},
|
},
|
||||||
"approve-multiple-files": {
|
"approve-file": {
|
||||||
"question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen?",
|
"question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?",
|
||||||
"title": "Warnung!"
|
"title": "Warnung!"
|
||||||
},
|
},
|
||||||
"approve-multiple-files-without-analysis": {
|
"approve-multiple-files-without-analysis": {
|
||||||
@ -657,6 +652,10 @@
|
|||||||
"question": "Analysis required to detect new components for at least one file.",
|
"question": "Analysis required to detect new components for at least one file.",
|
||||||
"title": "Warning"
|
"title": "Warning"
|
||||||
},
|
},
|
||||||
|
"approve-multiple-files": {
|
||||||
|
"question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen?",
|
||||||
|
"title": "Warnung!"
|
||||||
|
},
|
||||||
"assign-file-to-me": {
|
"assign-file-to-me": {
|
||||||
"question": {
|
"question": {
|
||||||
"multiple": "Dieses Dokument wird gerade von einer anderen Person geprüft. Möchten Sie Reviewer werden und sich selbst dem Dokument zuweisen?",
|
"multiple": "Dieses Dokument wird gerade von einer anderen Person geprüft. Möchten Sie Reviewer werden und sich selbst dem Dokument zuweisen?",
|
||||||
@ -1026,13 +1025,13 @@
|
|||||||
"recent": "Neu ({hours} h)",
|
"recent": "Neu ({hours} h)",
|
||||||
"unassigned": "Niemandem zugewiesen"
|
"unassigned": "Niemandem zugewiesen"
|
||||||
},
|
},
|
||||||
"reanalyse": {
|
|
||||||
"action": "Datei analysieren"
|
|
||||||
},
|
|
||||||
"reanalyse-dossier": {
|
"reanalyse-dossier": {
|
||||||
"error": "Die Dateien konnten nicht für eine Reanalyse eingeplant werden. Bitte versuchen Sie es erneut.",
|
"error": "Die Dateien konnten nicht für eine Reanalyse eingeplant werden. Bitte versuchen Sie es erneut.",
|
||||||
"success": "Dateien für Reanalyse vorgesehen."
|
"success": "Dateien für Reanalyse vorgesehen."
|
||||||
},
|
},
|
||||||
|
"reanalyse": {
|
||||||
|
"action": "Datei analysieren"
|
||||||
|
},
|
||||||
"report-download": "Report download",
|
"report-download": "Report download",
|
||||||
"start-auto-analysis": "Enable auto-analysis",
|
"start-auto-analysis": "Enable auto-analysis",
|
||||||
"stop-auto-analysis": "Stop auto-analysis",
|
"stop-auto-analysis": "Stop auto-analysis",
|
||||||
@ -1066,8 +1065,7 @@
|
|||||||
"dossier-states": "{count, plural, one{Dossier state} other{Dossier states}}"
|
"dossier-states": "{count, plural, one{Dossier state} other{Dossier states}}"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"conflict": "Dossier state with this name already exists!",
|
"conflict": "Dossier state with this name already exists!"
|
||||||
"generic": "Failed to save dossier state!"
|
|
||||||
},
|
},
|
||||||
"no-data": {
|
"no-data": {
|
||||||
"title": "There are no dossier states."
|
"title": "There are no dossier states."
|
||||||
@ -1103,14 +1101,6 @@
|
|||||||
"total-documents": "Anzahl der Dokumente",
|
"total-documents": "Anzahl der Dokumente",
|
||||||
"total-people": "<strong>{count}</strong> {count, plural, one{user} other {users}}"
|
"total-people": "<strong>{count}</strong> {count, plural, one{user} other {users}}"
|
||||||
},
|
},
|
||||||
"dossier-templates": {
|
|
||||||
"label": "Dossier-Vorlagen",
|
|
||||||
"status": {
|
|
||||||
"active": "Active",
|
|
||||||
"inactive": "Inactive",
|
|
||||||
"incomplete": "Incomplete"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dossier-templates-listing": {
|
"dossier-templates-listing": {
|
||||||
"action": {
|
"action": {
|
||||||
"clone": "Clone template",
|
"clone": "Clone template",
|
||||||
@ -1145,6 +1135,14 @@
|
|||||||
"title": "{length} dossier {length, plural, one{template} other{templates}}"
|
"title": "{length} dossier {length, plural, one{template} other{templates}}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dossier-templates": {
|
||||||
|
"label": "Dossier-Vorlagen",
|
||||||
|
"status": {
|
||||||
|
"active": "Active",
|
||||||
|
"inactive": "Inactive",
|
||||||
|
"incomplete": "Incomplete"
|
||||||
|
}
|
||||||
|
},
|
||||||
"dossier-watermark-selector": {
|
"dossier-watermark-selector": {
|
||||||
"heading": "Watermarks on documents",
|
"heading": "Watermarks on documents",
|
||||||
"no-watermark": "There is no watermark defined for the dossier template.<br>Contact your app admin to define one.",
|
"no-watermark": "There is no watermark defined for the dossier template.<br>Contact your app admin to define one.",
|
||||||
@ -1340,15 +1338,6 @@
|
|||||||
"title": "{length} {length, plural, one{entity} other{entities}}"
|
"title": "{length} {length, plural, one{entity} other{entities}}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
|
||||||
"info": {
|
|
||||||
"actions": {
|
|
||||||
"revert": "Revert",
|
|
||||||
"save": "Save changes"
|
|
||||||
},
|
|
||||||
"heading": "Edit entity"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"entity-rules-screen": {
|
"entity-rules-screen": {
|
||||||
"error": {
|
"error": {
|
||||||
"generic": "Something went wrong... Entity rules update failed!"
|
"generic": "Something went wrong... Entity rules update failed!"
|
||||||
@ -1360,22 +1349,30 @@
|
|||||||
"generic": "Entity rules updated!"
|
"generic": "Entity rules updated!"
|
||||||
},
|
},
|
||||||
"title": "Entity rule editor",
|
"title": "Entity rule editor",
|
||||||
"warning-text": "Warning: experimental feature!",
|
|
||||||
"warnings-found": "{warnings, plural, one{A warning} other{{warnings} warnings}} found in rules"
|
"warnings-found": "{warnings, plural, one{A warning} other{{warnings} warnings}} found in rules"
|
||||||
},
|
},
|
||||||
|
"entity": {
|
||||||
|
"info": {
|
||||||
|
"actions": {
|
||||||
|
"revert": "Revert",
|
||||||
|
"save": "Save changes"
|
||||||
|
},
|
||||||
|
"heading": "Edit entity"
|
||||||
|
}
|
||||||
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"deleted-entity": {
|
"deleted-entity": {
|
||||||
"dossier": {
|
"dossier": {
|
||||||
"action": "Zurück zur Übersicht",
|
"action": "Zurück zur Übersicht",
|
||||||
"label": "Dieses Dossier wurde gelöscht!"
|
"label": "Dieses Dossier wurde gelöscht!"
|
||||||
},
|
},
|
||||||
"file": {
|
|
||||||
"action": "Zurück zum Dossier",
|
|
||||||
"label": "Diese Datei wurde gelöscht!"
|
|
||||||
},
|
|
||||||
"file-dossier": {
|
"file-dossier": {
|
||||||
"action": "Zurück zur Übersicht",
|
"action": "Zurück zur Übersicht",
|
||||||
"label": "Das Dossier dieser Datei wurde gelöscht!"
|
"label": "Das Dossier dieser Datei wurde gelöscht!"
|
||||||
|
},
|
||||||
|
"file": {
|
||||||
|
"action": "Zurück zum Dossier",
|
||||||
|
"label": "Diese Datei wurde gelöscht!"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"file-preview": {
|
"file-preview": {
|
||||||
@ -1393,12 +1390,6 @@
|
|||||||
},
|
},
|
||||||
"exact-date": "{day} {month} {year} um {hour}:{minute} Uhr",
|
"exact-date": "{day} {month} {year} um {hour}:{minute} Uhr",
|
||||||
"file": "Datei",
|
"file": "Datei",
|
||||||
"file-attribute": {
|
|
||||||
"update": {
|
|
||||||
"error": "Failed to update file attribute value!",
|
|
||||||
"success": "File attribute value has been updated successfully!"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"file-attribute-encoding-types": {
|
"file-attribute-encoding-types": {
|
||||||
"ascii": "ASCII",
|
"ascii": "ASCII",
|
||||||
"iso": "ISO-8859-1",
|
"iso": "ISO-8859-1",
|
||||||
@ -1409,6 +1400,12 @@
|
|||||||
"number": "Nummer",
|
"number": "Nummer",
|
||||||
"text": "Freier Text"
|
"text": "Freier Text"
|
||||||
},
|
},
|
||||||
|
"file-attribute": {
|
||||||
|
"update": {
|
||||||
|
"error": "Failed to update file attribute value!",
|
||||||
|
"success": "File attribute value has been updated successfully!"
|
||||||
|
}
|
||||||
|
},
|
||||||
"file-attributes-configurations": {
|
"file-attributes-configurations": {
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"form": {
|
"form": {
|
||||||
@ -1626,15 +1623,6 @@
|
|||||||
"csv": "File attributes were imported successfully from uploaded CSV file."
|
"csv": "File attributes were imported successfully from uploaded CSV file."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"filter": {
|
|
||||||
"analysis": "Analyse erforderlich",
|
|
||||||
"comment": "Kommentare",
|
|
||||||
"hint": "Nut Hinweise",
|
|
||||||
"image": "Bilder",
|
|
||||||
"none": "Keine Anmerkungen",
|
|
||||||
"redaction": "Geschwärzt",
|
|
||||||
"updated": "Aktualisiert"
|
|
||||||
},
|
|
||||||
"filter-menu": {
|
"filter-menu": {
|
||||||
"filter-options": "Filteroptionen",
|
"filter-options": "Filteroptionen",
|
||||||
"filter-types": "Filter",
|
"filter-types": "Filter",
|
||||||
@ -1644,6 +1632,15 @@
|
|||||||
"unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten",
|
"unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten",
|
||||||
"with-comments": "Nur Anmerkungen mit Kommentaren"
|
"with-comments": "Nur Anmerkungen mit Kommentaren"
|
||||||
},
|
},
|
||||||
|
"filter": {
|
||||||
|
"analysis": "Analyse erforderlich",
|
||||||
|
"comment": "Kommentare",
|
||||||
|
"hint": "Nut Hinweise",
|
||||||
|
"image": "Bilder",
|
||||||
|
"none": "Keine Anmerkungen",
|
||||||
|
"redaction": "Geschwärzt",
|
||||||
|
"updated": "Aktualisiert"
|
||||||
|
},
|
||||||
"filters": {
|
"filters": {
|
||||||
"assigned-people": "Beauftragt",
|
"assigned-people": "Beauftragt",
|
||||||
"documents-status": "Documents state",
|
"documents-status": "Documents state",
|
||||||
@ -1922,13 +1919,6 @@
|
|||||||
"user-promoted-to-approver": "<b>{user}</b> wurde im Dossier <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> zum Genehmiger ernannt!",
|
"user-promoted-to-approver": "<b>{user}</b> wurde im Dossier <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> zum Genehmiger ernannt!",
|
||||||
"user-removed-as-dossier-member": "<b>{user}</b> wurde als Mitglied von: <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> entfernt!"
|
"user-removed-as-dossier-member": "<b>{user}</b> wurde als Mitglied von: <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> entfernt!"
|
||||||
},
|
},
|
||||||
"notifications": {
|
|
||||||
"button-text": "Notifications",
|
|
||||||
"deleted-dossier": "Deleted dossier",
|
|
||||||
"label": "Benachrichtigungen",
|
|
||||||
"mark-all-as-read": "Alle als gelesen markieren",
|
|
||||||
"mark-as": "Mark as {type, select, read{read} unread{unread} other{}}"
|
|
||||||
},
|
|
||||||
"notifications-screen": {
|
"notifications-screen": {
|
||||||
"category": {
|
"category": {
|
||||||
"email-notifications": "E-Mail Benachrichtigungen",
|
"email-notifications": "E-Mail Benachrichtigungen",
|
||||||
@ -1942,6 +1932,7 @@
|
|||||||
"dossier": "Dossierbezogene Benachrichtigungen",
|
"dossier": "Dossierbezogene Benachrichtigungen",
|
||||||
"other": "Andere Benachrichtigungen"
|
"other": "Andere Benachrichtigungen"
|
||||||
},
|
},
|
||||||
|
"options-title": "Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten",
|
||||||
"options": {
|
"options": {
|
||||||
"ASSIGN_APPROVER": "Wenn ich einem Dokument als Genehmiger zugewiesen bin",
|
"ASSIGN_APPROVER": "Wenn ich einem Dokument als Genehmiger zugewiesen bin",
|
||||||
"ASSIGN_REVIEWER": "Wenn ich einem Dokument als Überprüfer zugewiesen bin",
|
"ASSIGN_REVIEWER": "Wenn ich einem Dokument als Überprüfer zugewiesen bin",
|
||||||
@ -1959,7 +1950,6 @@
|
|||||||
"USER_PROMOTED_TO_APPROVER": "Wenn ich Genehmiger in einem Dossier werde",
|
"USER_PROMOTED_TO_APPROVER": "Wenn ich Genehmiger in einem Dossier werde",
|
||||||
"USER_REMOVED_AS_DOSSIER_MEMBER": "Wenn ich die Dossier-Mitgliedschaft verliere"
|
"USER_REMOVED_AS_DOSSIER_MEMBER": "Wenn ich die Dossier-Mitgliedschaft verliere"
|
||||||
},
|
},
|
||||||
"options-title": "Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten",
|
|
||||||
"schedule": {
|
"schedule": {
|
||||||
"daily": "Tägliche Zusammenfassung",
|
"daily": "Tägliche Zusammenfassung",
|
||||||
"instant": "Sofortig",
|
"instant": "Sofortig",
|
||||||
@ -1967,6 +1957,13 @@
|
|||||||
},
|
},
|
||||||
"title": "Benachrichtigungseinstellungen"
|
"title": "Benachrichtigungseinstellungen"
|
||||||
},
|
},
|
||||||
|
"notifications": {
|
||||||
|
"button-text": "Notifications",
|
||||||
|
"deleted-dossier": "Deleted dossier",
|
||||||
|
"label": "Benachrichtigungen",
|
||||||
|
"mark-all-as-read": "Alle als gelesen markieren",
|
||||||
|
"mark-as": "Mark as {type, select, read{read} unread{unread} other{}}"
|
||||||
|
},
|
||||||
"ocr": {
|
"ocr": {
|
||||||
"confirmation-dialog": {
|
"confirmation-dialog": {
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
@ -2049,7 +2046,7 @@
|
|||||||
"auto-expand-filters-on-action": "Auto expand filters on my actions",
|
"auto-expand-filters-on-action": "Auto expand filters on my actions",
|
||||||
"help-mode-dialog": "Help Mode Dialog",
|
"help-mode-dialog": "Help Mode Dialog",
|
||||||
"load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview",
|
"load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview",
|
||||||
"open-structured-view-by-default": "Display Component View by default when opening a document",
|
"overwrite-file-option": "",
|
||||||
"table-extraction-type": "Table extraction type"
|
"table-extraction-type": "Table extraction type"
|
||||||
},
|
},
|
||||||
"label": "Preferences",
|
"label": "Preferences",
|
||||||
@ -2058,16 +2055,16 @@
|
|||||||
"warnings-label": "Prompts and dialogs",
|
"warnings-label": "Prompts and dialogs",
|
||||||
"warnings-subtitle": "Do not show again options"
|
"warnings-subtitle": "Do not show again options"
|
||||||
},
|
},
|
||||||
"processing": {
|
|
||||||
"basic": "Processing",
|
|
||||||
"ocr": "OCR"
|
|
||||||
},
|
|
||||||
"processing-status": {
|
"processing-status": {
|
||||||
"ocr": "OCR",
|
"ocr": "OCR",
|
||||||
"pending": "Pending",
|
"pending": "Pending",
|
||||||
"processed": "Processed",
|
"processed": "Processed",
|
||||||
"processing": "Processing"
|
"processing": "Processing"
|
||||||
},
|
},
|
||||||
|
"processing": {
|
||||||
|
"basic": "Processing",
|
||||||
|
"ocr": "OCR"
|
||||||
|
},
|
||||||
"readonly": "Lesemodus",
|
"readonly": "Lesemodus",
|
||||||
"readonly-archived": "Read only (archived)",
|
"readonly-archived": "Read only (archived)",
|
||||||
"redact-text": {
|
"redact-text": {
|
||||||
@ -2303,12 +2300,6 @@
|
|||||||
"red-user-admin": "Benutzer-Admin",
|
"red-user-admin": "Benutzer-Admin",
|
||||||
"regular": "Regulär"
|
"regular": "Regulär"
|
||||||
},
|
},
|
||||||
"search": {
|
|
||||||
"active-dossiers": "ganze Plattform",
|
|
||||||
"all-dossiers": "all documents",
|
|
||||||
"placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen",
|
|
||||||
"this-dossier": "in diesem Dossier"
|
|
||||||
},
|
|
||||||
"search-screen": {
|
"search-screen": {
|
||||||
"cols": {
|
"cols": {
|
||||||
"assignee": "Bevollmächtigter",
|
"assignee": "Bevollmächtigter",
|
||||||
@ -2332,6 +2323,12 @@
|
|||||||
"no-match": "Keine Dokumente entsprechen Ihren aktuellen Filtern.",
|
"no-match": "Keine Dokumente entsprechen Ihren aktuellen Filtern.",
|
||||||
"table-header": "{length} search {length, plural, one{result} other{results}}"
|
"table-header": "{length} search {length, plural, one{result} other{results}}"
|
||||||
},
|
},
|
||||||
|
"search": {
|
||||||
|
"active-dossiers": "ganze Plattform",
|
||||||
|
"all-dossiers": "all documents",
|
||||||
|
"placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen",
|
||||||
|
"this-dossier": "in diesem Dossier"
|
||||||
|
},
|
||||||
"seconds": "seconds",
|
"seconds": "seconds",
|
||||||
"size": "Size",
|
"size": "Size",
|
||||||
"smtp-auth-config": {
|
"smtp-auth-config": {
|
||||||
@ -2587,4 +2584,4 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yesterday": "Gestern"
|
"yesterday": "Gestern"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -321,8 +321,8 @@
|
|||||||
"success": "Annotation added!"
|
"success": "Annotation added!"
|
||||||
},
|
},
|
||||||
"recategorize-annotation": {
|
"recategorize-annotation": {
|
||||||
"error": "",
|
"error": "Failed to edit type: {error}",
|
||||||
"success": ""
|
"success": "Annotation was edited: Changed {changes}."
|
||||||
},
|
},
|
||||||
"recategorize-image": {
|
"recategorize-image": {
|
||||||
"error": "Failed to recategorize image: {error}",
|
"error": "Failed to recategorize image: {error}",
|
||||||
@ -1531,7 +1531,7 @@
|
|||||||
},
|
},
|
||||||
"last-assignee": "Last assignee",
|
"last-assignee": "Last assignee",
|
||||||
"no-data": {
|
"no-data": {
|
||||||
"title": "There are no annotations on this page."
|
"title": "This page does not contain annotations for the selected component or filter."
|
||||||
},
|
},
|
||||||
"quick-nav": {
|
"quick-nav": {
|
||||||
"jump-first": "Jump to first page",
|
"jump-first": "Jump to first page",
|
||||||
@ -1548,7 +1548,7 @@
|
|||||||
"jump-to-next": "Jump to next",
|
"jump-to-next": "Jump to next",
|
||||||
"jump-to-previous": "Jump to previous",
|
"jump-to-previous": "Jump to previous",
|
||||||
"label": "Workload",
|
"label": "Workload",
|
||||||
"no-annotations": "There are no annotations on the selected page or for the selected component.",
|
"no-annotations": "There are no annotations for the selected component.",
|
||||||
"page-is": "This page is",
|
"page-is": "This page is",
|
||||||
"reset": "reset",
|
"reset": "reset",
|
||||||
"select": "Select",
|
"select": "Select",
|
||||||
@ -1556,7 +1556,7 @@
|
|||||||
"select-none": "None",
|
"select-none": "None",
|
||||||
"show-skipped": "Show skipped in document",
|
"show-skipped": "Show skipped in document",
|
||||||
"the-filters": "the filters",
|
"the-filters": "the filters",
|
||||||
"wrong-filters": "The selected filter combination is not possible. Please adjust or"
|
"wrong-filters": "No annotations for the selected filter combination. Please adjust or"
|
||||||
},
|
},
|
||||||
"document-info": {
|
"document-info": {
|
||||||
"close": "Close document info",
|
"close": "Close document info",
|
||||||
@ -2046,6 +2046,7 @@
|
|||||||
"auto-expand-filters-on-action": "Auto expand filters on my actions",
|
"auto-expand-filters-on-action": "Auto expand filters on my actions",
|
||||||
"help-mode-dialog": "Help Mode Dialog",
|
"help-mode-dialog": "Help Mode Dialog",
|
||||||
"load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview",
|
"load-all-annotations-warning": "Warning regarding loading all annotations at once in file preview",
|
||||||
|
"overwrite-file-option": "Preferred action when re-uploading of an already existing file",
|
||||||
"table-extraction-type": "Table extraction type"
|
"table-extraction-type": "Table extraction type"
|
||||||
},
|
},
|
||||||
"label": "Preferences",
|
"label": "Preferences",
|
||||||
@ -2583,4 +2584,4 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yesterday": "Yesterday"
|
"yesterday": "Yesterday"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -164,13 +164,15 @@ $dark-accent-10: darken(vars.$accent, 10%);
|
|||||||
body {
|
body {
|
||||||
--workload-width: 350px;
|
--workload-width: 350px;
|
||||||
--documine-workload-content-width: 287px;
|
--documine-workload-content-width: 287px;
|
||||||
--structured-component-management-width: 40%;
|
--structured-component-management-width: 35%;
|
||||||
--qiuck-navigation-width: 61px;
|
--quick-navigation-width: 61px;
|
||||||
--iqser-app-name-font-family: OpenSans Extrabold, sans-serif;
|
--iqser-app-name-font-family: OpenSans Extrabold, sans-serif;
|
||||||
--iqser-app-name-font-size: 13px;
|
--iqser-app-name-font-size: 13px;
|
||||||
--iqser-logo-size: 28px;
|
--iqser-logo-size: 28px;
|
||||||
--documine-viewer-width: calc(
|
--documine-viewer-width: calc(
|
||||||
100% - var(--structured-component-management-width) - var(--documine-workload-content-width) - var(--qiuck-navigation-width) - 3px
|
100% - var(--structured-component-management-width) - calc(var(--documine-workload-content-width) - 55px) - var(
|
||||||
|
--quick-navigation-width
|
||||||
|
) - 3px
|
||||||
);
|
);
|
||||||
--viewer-height: calc(100% - calc(var(--iqser-top-bar-height) + 50px));
|
--viewer-height: calc(100% - calc(var(--iqser-top-bar-height) + 50px));
|
||||||
}
|
}
|
||||||
@ -189,12 +191,14 @@ body {
|
|||||||
width: var(--documine-viewer-width);
|
width: var(--documine-viewer-width);
|
||||||
height: var(--viewer-height);
|
height: var(--viewer-height);
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
right: calc(var(--qiuck-navigation-width) + 3px);
|
right: calc(var(--quick-navigation-width) + 3px);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
&.document-info {
|
&.document-info {
|
||||||
width: calc(
|
width: calc(
|
||||||
100% - var(--structured-component-management-width) - var(--documine-workload-content-width) - var(--workload-width) - 3px
|
100% - var(--structured-component-management-width) - calc(var(--documine-workload-content-width) - 55px) - var(
|
||||||
|
--workload-width
|
||||||
|
) - 3px
|
||||||
);
|
);
|
||||||
right: calc(var(--workload-width) + 1px);
|
right: calc(var(--workload-width) + 1px);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 6547eb2ad53d9df97a08210d7edb6d849e59d998
|
Subproject commit 97b614a89931ff9cf058a2e9e4d1e270fc1ced3a
|
||||||
Loading…
x
Reference in New Issue
Block a user