RED-7641: Update license view screen
This commit is contained in:
parent
5e72b489d9
commit
6ed6c9a662
@ -1,4 +1,4 @@
|
||||
.canvas-container {
|
||||
position: relative;
|
||||
width: 1200px;
|
||||
width: 1000px;
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ export class ChartComponent implements OnChanges {
|
||||
},
|
||||
},
|
||||
plugins: {
|
||||
legend: { position: 'right', reverse: this.reverseLegend },
|
||||
legend: { position: 'right', reverse: this.reverseLegend, maxWidth: 280 },
|
||||
tooltip: {
|
||||
callbacks: {
|
||||
label: this.valueFormatter ? item => `${item.dataset.label}: ${this.valueFormatter(item.parsed.y)}` : undefined,
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
<div class="grid-container">
|
||||
<div class="section-title all-caps-label" translate="license-info-screen.analysis-capacity-usage.section-title"></div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.analysis-capacity-usage.used-in-period"></div>
|
||||
<div>
|
||||
{{ licenseService.selectedLicenseReport.analysedFilesBytes | size }}
|
||||
<ng-container *ngIf="licenseService.analysisCapacityBytesForSelectedLicensePercentage >= 0">
|
||||
({{ licenseService.analysisCapacityBytesForSelectedLicensePercentage | number: '1.0-2' }}%)
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.analysis-capacity-usage.used-in-total"></div>
|
||||
<div>
|
||||
{{ licenseService.allLicensesReport.analysedFilesBytes | size }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row chart-row">
|
||||
<div>
|
||||
<redaction-chart
|
||||
*ngIf="data$ | async as data"
|
||||
[datasets]="data.datasets"
|
||||
[labels]="data.labels"
|
||||
[secondaryAxis]="true"
|
||||
[valueFormatter]="data.valueFormatter"
|
||||
[yAxisLabelRight]="data.yAxisLabelRight"
|
||||
[yAxisLabel]="data.yAxisLabel"
|
||||
></redaction-chart>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,74 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { LicenseService } from '@services/license.service';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { ChartDataset } from 'chart.js';
|
||||
import { ChartBlue, ChartGreen, ChartRed } from '../../utils/constants';
|
||||
import { getLabelsFromLicense, getLineConfig } from '../../utils/functions';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { size } from '@iqser/common-ui/lib/utils';
|
||||
|
||||
@Component({
|
||||
selector: 'red-license-analysis-capacity-usage',
|
||||
templateUrl: './license-analysis-capacity-usage.component.html',
|
||||
styleUrls: ['./license-analysis-capacity-usage.component.scss'],
|
||||
})
|
||||
export class LicenseAnalysisCapacityUsageComponent {
|
||||
readonly data$ = this.licenseService.selectedLicense$.pipe(map(() => this.#getData()));
|
||||
|
||||
constructor(
|
||||
readonly licenseService: LicenseService,
|
||||
private readonly _translateService: TranslateService,
|
||||
) {}
|
||||
|
||||
#getData() {
|
||||
const yAxisLabel = _('license-info-screen.analysis-capacity-usage.analyzed-per-month');
|
||||
const yAxisLabelRight = _('license-info-screen.analysis-capacity-usage.total-analyzed-data');
|
||||
|
||||
return {
|
||||
datasets: this.#getCapacityDatasets(),
|
||||
labels: getLabelsFromLicense(this.licenseService.selectedLicenseReport),
|
||||
yAxisLabel: this._translateService.instant(yAxisLabel),
|
||||
yAxisLabelRight: this._translateService.instant(yAxisLabelRight),
|
||||
valueFormatter: (value: number) => size(value),
|
||||
};
|
||||
}
|
||||
|
||||
#getCapacityDatasets(): ChartDataset[] {
|
||||
const monthlyData = this.licenseService.selectedLicenseReport.monthlyData;
|
||||
|
||||
const datasets: ChartDataset[] = [
|
||||
{
|
||||
data: monthlyData.flatMap(d => d.analysedFilesBytes),
|
||||
label: this._translateService.instant('license-info-screen.analysis-capacity-usage.analyzed-per-month'),
|
||||
type: 'bar',
|
||||
backgroundColor: ChartBlue,
|
||||
borderColor: ChartBlue,
|
||||
order: 2,
|
||||
},
|
||||
|
||||
{
|
||||
data: monthlyData.map(
|
||||
(month, monthIndex) =>
|
||||
month.analysedFilesBytes + monthlyData.slice(0, monthIndex).reduce((acc, curr) => acc + curr.analysedFilesBytes, 0),
|
||||
),
|
||||
label: this._translateService.instant('license-info-screen.analysis-capacity-usage.analyzed-cumulative'),
|
||||
yAxisID: 'y1',
|
||||
order: 1,
|
||||
...getLineConfig(ChartGreen, true, false),
|
||||
},
|
||||
];
|
||||
|
||||
if (this.licenseService.analysisCapacityBytes > 0) {
|
||||
datasets.push({
|
||||
data: monthlyData.flatMap(() => this.licenseService.analysisCapacityBytes),
|
||||
label: this._translateService.instant('license-info-screen.analysis-capacity-usage.licensed'),
|
||||
...getLineConfig(ChartRed, true, false),
|
||||
yAxisID: 'y1',
|
||||
order: 1,
|
||||
});
|
||||
}
|
||||
|
||||
return datasets;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
<div class="grid-container">
|
||||
<div class="section-title all-caps-label" translate="license-info-screen.page-usage.section-title"></div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.page-usage.current-analyzed-pages"></div>
|
||||
<div>
|
||||
{{ licenseService.selectedLicenseReport.numberOfAnalyzedPages }}
|
||||
<ng-container *ngIf="licenseService.analyzedPagesPercentageForSelectedLicensePercentage > 0">
|
||||
({{ licenseService.analyzedPagesPercentageForSelectedLicensePercentage | number: '1.0-2' }}%)
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.page-usage.ocr-analyzed-pages"></div>
|
||||
<div>{{ licenseService.selectedLicenseReport.numberOfOcrPages }}</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="licenseService.unlicensedPages" class="row">
|
||||
<div translate="license-info-screen.page-usage.unlicensed-analyzed"></div>
|
||||
<div>{{ licenseService.unlicensedPages }}</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div [innerHTML]="'license-info-screen.page-usage.total-analyzed' | translate"></div>
|
||||
<div>{{ licenseService.allLicensesReport.numberOfAnalyzedPages }}</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div [innerHTML]="'license-info-screen.page-usage.total-ocr-analyzed' | translate"></div>
|
||||
<div>{{ licenseService.allLicensesReport.numberOfOcrPages }}</div>
|
||||
</div>
|
||||
|
||||
<div class="row chart-row">
|
||||
<div>
|
||||
<redaction-chart
|
||||
*ngIf="data$ | async as data"
|
||||
[datasets]="data.datasets"
|
||||
[labels]="data.labels"
|
||||
[secondaryAxis]="true"
|
||||
[yAxisLabelRight]="data.yAxisLabelRight"
|
||||
[yAxisLabel]="data.yAxisLabel"
|
||||
></redaction-chart>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,49 @@
|
||||
:host {
|
||||
display: contents;
|
||||
}
|
||||
|
||||
.grid-container {
|
||||
width: calc(100% - 40px);
|
||||
display: grid;
|
||||
grid-template-columns: 250px 300px 1fr;
|
||||
margin: 20px;
|
||||
|
||||
.row {
|
||||
display: contents;
|
||||
|
||||
> div {
|
||||
padding: 8px 20px;
|
||||
|
||||
&:first-of-type {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
&:nth-child(2) {
|
||||
grid-column: span 2;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
> div {
|
||||
background-color: var(--iqser-alt-background);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.section-title {
|
||||
grid-column: span 3;
|
||||
padding: 20px 20px 8px;
|
||||
margin-bottom: 8px;
|
||||
border-bottom: 1px solid var(--iqser-separator);
|
||||
}
|
||||
|
||||
.chart-row {
|
||||
> div {
|
||||
grid-column: span 3;
|
||||
}
|
||||
|
||||
&:hover > div {
|
||||
background-color: var(--iqser-background);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { LicenseService } from '@services/license.service';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { ChartDataset } from 'chart.js';
|
||||
import { ChartBlue, ChartGreen, ChartRed } from '../../utils/constants';
|
||||
import { getLabelsFromLicense, getLineConfig } from '../../utils/functions';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
|
||||
@Component({
|
||||
selector: 'red-license-page-usage',
|
||||
templateUrl: './license-page-usage.component.html',
|
||||
styleUrls: ['./license-page-usage.component.scss'],
|
||||
})
|
||||
export class LicensePageUsageComponent {
|
||||
readonly data$ = this.licenseService.selectedLicense$.pipe(map(() => this.#getData()));
|
||||
|
||||
constructor(
|
||||
readonly licenseService: LicenseService,
|
||||
private readonly _translateService: TranslateService,
|
||||
) {}
|
||||
|
||||
#getData() {
|
||||
const yAxisLabel = _('license-info-screen.page-usage.pages-per-month');
|
||||
const yAxisLabelRight = _('license-info-screen.page-usage.total-pages');
|
||||
|
||||
return {
|
||||
datasets: this.#getPagesDatasets(),
|
||||
labels: getLabelsFromLicense(this.licenseService.selectedLicenseReport),
|
||||
yAxisLabel: this._translateService.instant(yAxisLabel),
|
||||
yAxisLabelRight: this._translateService.instant(yAxisLabelRight),
|
||||
};
|
||||
}
|
||||
|
||||
#getPagesDatasets(): ChartDataset[] {
|
||||
const monthlyData = this.licenseService.selectedLicenseReport.monthlyData;
|
||||
|
||||
return [
|
||||
{
|
||||
data: monthlyData.flatMap(d => d.numberOfAnalyzedPages),
|
||||
label: this._translateService.instant('license-info-screen.page-usage.pages-per-month'),
|
||||
type: 'bar',
|
||||
backgroundColor: ChartBlue,
|
||||
borderColor: ChartBlue,
|
||||
order: 2,
|
||||
},
|
||||
{
|
||||
data: monthlyData.flatMap(() => this.licenseService.totalLicensedNumberOfPages),
|
||||
label: this._translateService.instant('license-info-screen.page-usage.total-pages'),
|
||||
...getLineConfig(ChartRed, true, false),
|
||||
yAxisID: 'y1',
|
||||
order: 1,
|
||||
},
|
||||
{
|
||||
data: monthlyData.map(
|
||||
(month, monthIndex) =>
|
||||
month.numberOfAnalyzedPages +
|
||||
monthlyData.slice(0, monthIndex).reduce((acc, curr) => acc + curr.numberOfAnalyzedPages, 0),
|
||||
),
|
||||
label: this._translateService.instant('license-info-screen.page-usage.cumulative-pages'),
|
||||
yAxisID: 'y1',
|
||||
order: 1,
|
||||
...getLineConfig(ChartGreen, true, false),
|
||||
},
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -1,34 +1,34 @@
|
||||
<div class="grid-container">
|
||||
<div class="section-title all-caps-label" translate="license-info-screen.capacity-details"></div>
|
||||
<div class="section-title all-caps-label" translate="license-info-screen.retention-capacity-usage.section-title"></div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.capacity.active-documents"></div>
|
||||
<div translate="license-info-screen.retention-capacity-usage.active-documents"></div>
|
||||
<div>{{ licenseService.selectedLicenseReport.activeFilesUploadedBytes | size }}</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.capacity.archived-documents"></div>
|
||||
<div translate="license-info-screen.retention-capacity-usage.archived-documents"></div>
|
||||
<div>{{ licenseService.selectedLicenseReport.archivedFilesUploadedBytes | size }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.capacity.trash-documents"></div>
|
||||
<div translate="license-info-screen.retention-capacity-usage.trash-documents"></div>
|
||||
<div>{{ licenseService.selectedLicenseReport.trashFilesUploadedBytes | size }}</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.capacity.all-documents"></div>
|
||||
<div translate="license-info-screen.retention-capacity-usage.used-capacity"></div>
|
||||
<div>
|
||||
{{ licenseService.selectedLicenseReport.totalFilesUploadedBytes | size }}
|
||||
<ng-container *ngIf="licenseService.uploadedFilesBytesForSelectedLicensePercentage >= 0">
|
||||
({{ licenseService.uploadedFilesBytesForSelectedLicensePercentage | number: '1.0-2' }}%)
|
||||
<ng-container *ngIf="licenseService.retentionCapacityBytesForSelectedLicensePercentage >= 0">
|
||||
({{ licenseService.retentionCapacityBytesForSelectedLicensePercentage | number: '1.0-2' }}%)
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="donut-chart-wrapper pl-20">
|
||||
<redaction-donut-chart
|
||||
*ngIf="licenseService.uploadedFilesBytesForSelectedLicensePercentage !== -1"
|
||||
[config]="donutChartConfig"
|
||||
*ngIf="licenseService.retentionCapacityBytes > 0"
|
||||
[config]="donutChartConfig$ | async"
|
||||
[direction]="'row'"
|
||||
[radius]="80"
|
||||
[strokeWidth]="15"
|
||||
@ -52,13 +52,13 @@
|
||||
</div>
|
||||
|
||||
<ng-template #capacitySubtitles>
|
||||
<span *ngIf="licenseService.uploadedFilesBytesForSelectedLicensePercentage <= 100; else exceeded">
|
||||
{{ 'license-info-screen.capacity.storage-capacity' | translate }}
|
||||
<span *ngIf="licenseService.retentionCapacityBytesForSelectedLicensePercentage <= 100; else exceeded">
|
||||
{{ 'license-info-screen.retention-capacity-usage.storage-capacity' | translate }}
|
||||
</span>
|
||||
|
||||
<ng-template #exceeded>
|
||||
<span class="exceeded-capacity">
|
||||
{{ 'license-info-screen.capacity.exceeded-capacity' | translate }}
|
||||
{{ 'license-info-screen.retention-capacity-usage.exceeded-capacity' | translate }}
|
||||
</span>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
@ -2,7 +2,7 @@ import { Component } from '@angular/core';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { size } from '@iqser/common-ui/lib/utils';
|
||||
import { LicenseService } from '@services/license.service';
|
||||
import { map, tap } from 'rxjs/operators';
|
||||
import { map } from 'rxjs/operators';
|
||||
import type { DonutChartConfig, ILicenseReport } from '@red/domain';
|
||||
import { ChartDataset } from 'chart.js';
|
||||
import { ChartBlack, ChartBlue, ChartGreen, ChartGrey, ChartRed } from '../../utils/constants';
|
||||
@ -10,18 +10,18 @@ import { getLabelsFromLicense, getLineConfig } from '../../utils/functions';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
|
||||
@Component({
|
||||
selector: 'red-license-capacity',
|
||||
templateUrl: './license-capacity.component.html',
|
||||
styleUrls: ['./license-capacity.component.scss'],
|
||||
selector: 'red-license-retention-capacity',
|
||||
templateUrl: './license-retention-capacity.component.html',
|
||||
styleUrls: ['./license-retention-capacity.component.scss'],
|
||||
})
|
||||
export class LicenseCapacityComponent {
|
||||
export class LicenseRetentionCapacityComponent {
|
||||
readonly formatSize = size;
|
||||
donutChartConfig: DonutChartConfig[] = [];
|
||||
readonly donutChartConfig$ = this.licenseService.selectedLicense$.pipe(
|
||||
map(() => this.licenseService.selectedLicenseReport),
|
||||
map(license => this.#getDonutChartConfig(license)),
|
||||
);
|
||||
readonly data$ = this.licenseService.selectedLicense$.pipe(
|
||||
map(() => this.licenseService.selectedLicenseReport),
|
||||
tap(license => {
|
||||
this.donutChartConfig = this.#getDonutChartConfig(license);
|
||||
}),
|
||||
map(license => ({
|
||||
datasets: this.#getDatasets(license),
|
||||
labels: getLabelsFromLicense(license),
|
||||
@ -29,29 +29,32 @@ export class LicenseCapacityComponent {
|
||||
);
|
||||
readonly size = size;
|
||||
|
||||
constructor(readonly licenseService: LicenseService, private readonly _translateService: TranslateService) {}
|
||||
constructor(
|
||||
readonly licenseService: LicenseService,
|
||||
private readonly _translateService: TranslateService,
|
||||
) {}
|
||||
|
||||
#getDonutChartConfig(license: ILicenseReport): DonutChartConfig[] {
|
||||
return [
|
||||
{
|
||||
value: license.activeFilesUploadedBytes,
|
||||
color: ChartGreen,
|
||||
label: this._translateService.instant(_('license-info-screen.capacity.active-documents')),
|
||||
label: this._translateService.instant(_('license-info-screen.retention-capacity-usage.active-documents')),
|
||||
},
|
||||
{
|
||||
value: license.archivedFilesUploadedBytes,
|
||||
color: ChartBlue,
|
||||
label: this._translateService.instant(_('license-info-screen.capacity.archived-documents')),
|
||||
label: this._translateService.instant(_('license-info-screen.retention-capacity-usage.archived-documents')),
|
||||
},
|
||||
{
|
||||
value: license.trashFilesUploadedBytes,
|
||||
color: ChartRed,
|
||||
label: this._translateService.instant(_('license-info-screen.capacity.trash-documents')),
|
||||
label: this._translateService.instant(_('license-info-screen.retention-capacity-usage.trash-documents')),
|
||||
},
|
||||
{
|
||||
value: Math.max(this.licenseService.uploadedBytesCapacity - license.totalFilesUploadedBytes, 0),
|
||||
value: Math.max(this.licenseService.retentionCapacityBytes - license.totalFilesUploadedBytes, 0),
|
||||
color: ChartGrey,
|
||||
label: this._translateService.instant(_('license-info-screen.capacity.unused')),
|
||||
label: this._translateService.instant(_('license-info-screen.retention-capacity-usage.unused')),
|
||||
},
|
||||
];
|
||||
}
|
||||
@ -62,25 +65,25 @@ export class LicenseCapacityComponent {
|
||||
return [
|
||||
{
|
||||
data: monthlyData.flatMap(d => d.activeFilesUploadedBytes),
|
||||
label: this._translateService.instant('license-info-screen.capacity.active-documents'),
|
||||
label: this._translateService.instant('license-info-screen.retention-capacity-usage.active-documents'),
|
||||
...getLineConfig(ChartGreen, false, 'origin'),
|
||||
stack: 'storage',
|
||||
},
|
||||
{
|
||||
data: monthlyData.flatMap(d => d.archivedFilesUploadedBytes),
|
||||
label: this._translateService.instant('license-info-screen.capacity.archived-documents'),
|
||||
label: this._translateService.instant('license-info-screen.retention-capacity-usage.archived-documents'),
|
||||
...getLineConfig(ChartBlue, false, '-1'),
|
||||
stack: 'storage',
|
||||
},
|
||||
{
|
||||
data: monthlyData.flatMap(d => d.trashFilesUploadedBytes),
|
||||
label: this._translateService.instant('license-info-screen.capacity.trash-documents'),
|
||||
label: this._translateService.instant('license-info-screen.retention-capacity-usage.trash-documents'),
|
||||
...getLineConfig(ChartRed, false, '-1'),
|
||||
stack: 'storage',
|
||||
},
|
||||
{
|
||||
data: monthlyData.flatMap(d => d.activeFilesUploadedBytes + d.archivedFilesUploadedBytes + d.trashFilesUploadedBytes),
|
||||
label: this._translateService.instant('license-info-screen.capacity.all-documents'),
|
||||
label: this._translateService.instant('license-info-screen.retention-capacity-usage.used-capacity'),
|
||||
...getLineConfig(ChartBlack, true, false),
|
||||
borderWidth: 2,
|
||||
},
|
||||
@ -1,75 +0,0 @@
|
||||
<div class="grid-container">
|
||||
<div class="section-title all-caps-label" translate="license-info-screen.usage-details"></div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.current-volume-analyzed"></div>
|
||||
<div>
|
||||
{{ licenseService.selectedLicenseReport.analysedFilesBytes | size }}
|
||||
<ng-container *ngIf="licenseService.analyzedFilesBytesForSelectedLicensePercentage >= 0">
|
||||
({{ licenseService.analyzedFilesBytesForSelectedLicensePercentage | number : '1.0-2' }}%)
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.total-volume-analyzed"></div>
|
||||
<div>
|
||||
{{ licenseService.allLicensesReport.analysedFilesBytes | size }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.current-analyzed-pages"></div>
|
||||
<div>
|
||||
{{ licenseService.selectedLicenseReport.numberOfAnalyzedPages }}
|
||||
<ng-container *ngIf="licenseService.analyzedPagesPercentageForSelectedLicensePercentage >= 0">
|
||||
({{ licenseService.analyzedPagesPercentageForSelectedLicensePercentage | number : '1.0-2' }}%)
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.ocr-analyzed-pages"></div>
|
||||
<div>{{ licenseService.selectedLicenseReport.numberOfOcrPages }}</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="!!licenseService.unlicensedPages" class="row">
|
||||
<div translate="license-info-screen.unlicensed-analyzed"></div>
|
||||
<div>{{ licenseService.unlicensedPages }}</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div [innerHTML]="'license-info-screen.total-analyzed' | translate"></div>
|
||||
|
||||
<div>{{ licenseService.allLicensesReport.numberOfAnalyzedPages }}</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div [innerHTML]="'license-info-screen.total-ocr-analyzed' | translate"></div>
|
||||
<div>{{ licenseService.allLicensesReport.numberOfOcrPages }}</div>
|
||||
</div>
|
||||
|
||||
<div class="row chart-row">
|
||||
<div>
|
||||
<div *ngIf="activeViewMode$ | async as activeViewMode" class="mt-16">
|
||||
<button (click)="switchView(viewModes.VOLUME)" [class.active]="activeViewMode === viewModes.VOLUME" class="red-tab">
|
||||
{{ 'license-info-screen.pages.statistics-by-capacity' | translate }}
|
||||
</button>
|
||||
|
||||
<button (click)="switchView(viewModes.PAGES)" [class.active]="activeViewMode === viewModes.PAGES" class="red-tab">
|
||||
{{ 'license-info-screen.pages.statistics-by-pages' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<redaction-chart
|
||||
*ngIf="data$ | async as data"
|
||||
[datasets]="data.datasets"
|
||||
[labels]="data.labels"
|
||||
[secondaryAxis]="true"
|
||||
[valueFormatter]="data.valueFormatter"
|
||||
[yAxisLabelRight]="data.yAxisLabelRight"
|
||||
[yAxisLabel]="data.yAxisLabel"
|
||||
></redaction-chart>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,136 +0,0 @@
|
||||
import { Component, OnDestroy } from '@angular/core';
|
||||
import { LicenseService } from '@services/license.service';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { ChartDataset } from 'chart.js';
|
||||
import { ChartBlue, ChartGreen, ChartRed, LicenseFeatures } from '../../utils/constants';
|
||||
import { getLabelsFromLicense, getLineConfig } from '../../utils/functions';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
|
||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||
import { size } from '@iqser/common-ui/lib/utils';
|
||||
|
||||
enum ViewMode {
|
||||
PAGES = 'pages',
|
||||
VOLUME = 'volume',
|
||||
}
|
||||
|
||||
@Component({
|
||||
selector: 'red-license-usage',
|
||||
templateUrl: './license-usage.component.html',
|
||||
styleUrls: ['./license-usage.component.scss'],
|
||||
})
|
||||
export class LicenseUsageComponent implements OnDestroy {
|
||||
readonly viewModes = ViewMode;
|
||||
readonly activeViewMode$ = new BehaviorSubject<ViewMode>(
|
||||
this.licenseService.getFeature(LicenseFeatures.UPLOADED_BYTES_CAPACITY) ? ViewMode.VOLUME : ViewMode.PAGES,
|
||||
);
|
||||
readonly data$ = combineLatest([this.licenseService.selectedLicense$, this.activeViewMode$]).pipe(map(() => this.#getData()));
|
||||
private _subscription: Subscription;
|
||||
|
||||
constructor(readonly licenseService: LicenseService, private readonly _translateService: TranslateService) {
|
||||
this._subscription = this.licenseService.selectedLicense$
|
||||
.pipe(map(() => this.licenseService.hasNumberFeature(LicenseFeatures.UPLOADED_BYTES_CAPACITY)))
|
||||
.subscribe(hasCapacity => {
|
||||
this.switchView(hasCapacity ? ViewMode.VOLUME : ViewMode.PAGES);
|
||||
});
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
this._subscription.unsubscribe();
|
||||
}
|
||||
|
||||
switchView(mode: ViewMode): void {
|
||||
this.activeViewMode$.next(mode);
|
||||
}
|
||||
|
||||
#getData() {
|
||||
const yAxisLabel =
|
||||
this.activeViewMode$.value === ViewMode.PAGES
|
||||
? _('license-info-screen.pages.pages-per-month')
|
||||
: _('license-info-screen.pages.analyzed-data-per-month');
|
||||
const yAxisLabelRight =
|
||||
this.activeViewMode$.value === ViewMode.PAGES
|
||||
? _('license-info-screen.pages.total-pages')
|
||||
: _('license-info-screen.pages.total-analyzed-data');
|
||||
const isVolume = this.activeViewMode$.value === ViewMode.VOLUME;
|
||||
|
||||
return {
|
||||
datasets: isVolume ? this.#getVolumeDatasets() : this.#getPagesDatasets(),
|
||||
labels: getLabelsFromLicense(this.licenseService.selectedLicenseReport),
|
||||
yAxisLabel: this._translateService.instant(yAxisLabel),
|
||||
yAxisLabelRight: this._translateService.instant(yAxisLabelRight),
|
||||
valueFormatter: isVolume ? value => size(value) : undefined,
|
||||
};
|
||||
}
|
||||
|
||||
#getPagesDatasets(): ChartDataset[] {
|
||||
const monthlyData = this.licenseService.selectedLicenseReport.monthlyData;
|
||||
|
||||
return [
|
||||
{
|
||||
data: monthlyData.flatMap(d => d.numberOfAnalyzedPages),
|
||||
label: this._translateService.instant('license-info-screen.pages.pages-per-month'),
|
||||
type: 'bar',
|
||||
backgroundColor: ChartBlue,
|
||||
borderColor: ChartBlue,
|
||||
order: 2,
|
||||
},
|
||||
{
|
||||
data: monthlyData.flatMap(() => this.licenseService.totalLicensedNumberOfPages),
|
||||
label: this._translateService.instant('license-info-screen.pages.total-pages'),
|
||||
...getLineConfig(ChartRed, true, false),
|
||||
yAxisID: 'y1',
|
||||
order: 1,
|
||||
},
|
||||
{
|
||||
data: monthlyData.map(
|
||||
(month, monthIndex) =>
|
||||
month.numberOfAnalyzedPages +
|
||||
monthlyData.slice(0, monthIndex).reduce((acc, curr) => acc + curr.numberOfAnalyzedPages, 0),
|
||||
),
|
||||
label: this._translateService.instant('license-info-screen.pages.cumulative-pages'),
|
||||
yAxisID: 'y1',
|
||||
order: 1,
|
||||
...getLineConfig(ChartGreen, true, false),
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
#getVolumeDatasets(): ChartDataset[] {
|
||||
const monthlyData = this.licenseService.selectedLicenseReport.monthlyData;
|
||||
|
||||
const datasets: ChartDataset[] = [
|
||||
{
|
||||
data: monthlyData.flatMap(d => d.analysedFilesBytes),
|
||||
label: this._translateService.instant('license-info-screen.pages.analyzed-data-per-month'),
|
||||
type: 'bar',
|
||||
backgroundColor: ChartBlue,
|
||||
borderColor: ChartBlue,
|
||||
order: 2,
|
||||
},
|
||||
|
||||
{
|
||||
data: monthlyData.map(
|
||||
(month, monthIndex) =>
|
||||
month.analysedFilesBytes + monthlyData.slice(0, monthIndex).reduce((acc, curr) => acc + curr.analysedFilesBytes, 0),
|
||||
),
|
||||
label: this._translateService.instant('license-info-screen.pages.cumulative-volume'),
|
||||
yAxisID: 'y1',
|
||||
order: 1,
|
||||
...getLineConfig(ChartGreen, true, false),
|
||||
},
|
||||
];
|
||||
|
||||
if (this.licenseService.uploadedBytesCapacity) {
|
||||
datasets.push({
|
||||
data: monthlyData.flatMap(() => this.licenseService.uploadedBytesCapacity),
|
||||
label: this._translateService.instant('license-info-screen.licensed-capacity'),
|
||||
...getLineConfig(ChartRed, true, false),
|
||||
yAxisID: 'y1',
|
||||
order: 1,
|
||||
});
|
||||
}
|
||||
|
||||
return datasets;
|
||||
}
|
||||
}
|
||||
@ -23,7 +23,7 @@
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.copyright-claim-title"></div>
|
||||
<div>
|
||||
{{ 'license-info-screen.copyright-claim-text' | translate : { currentYear: currentYear } }}
|
||||
{{ 'license-info-screen.copyright-claim-text' | translate: { currentYear: currentYear } }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -32,10 +32,10 @@
|
||||
<div translate="license-info-screen.end-user-license-text"></div>
|
||||
</div>
|
||||
|
||||
<div class="section-title all-caps-label" translate="license-info-screen.licensing-details"></div>
|
||||
<div class="section-title all-caps-label" translate="license-info-screen.licensing-details.section-title"></div>
|
||||
|
||||
<div class="row">
|
||||
<div class="flex-align-items-center" translate="license-info-screen.license-title"></div>
|
||||
<div class="flex-align-items-center" translate="license-info-screen.licensing-details.license-title"></div>
|
||||
<div>
|
||||
<redaction-license-select></redaction-license-select>
|
||||
</div>
|
||||
@ -43,32 +43,38 @@
|
||||
|
||||
<ng-container *ngIf="licenseService.selectedLicense$ | async as selectedLicense">
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.licensed-to"></div>
|
||||
<div translate="license-info-screen.licensing-details.licensed-to"></div>
|
||||
<div>{{ selectedLicense.licensedTo || '-' }}</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div translate="license-info-screen.licensing-period"></div>
|
||||
<div translate="license-info-screen.licensing-details.licensing-period"></div>
|
||||
<div>
|
||||
{{ (selectedLicense.validFrom | date : 'dd-MM-yyyy') || '-' }} /
|
||||
{{ (selectedLicense.validUntil | date : 'dd-MM-yyyy') || '-' }}
|
||||
{{ (selectedLicense.validFrom | date: 'dd-MM-yyyy') || '-' }} /
|
||||
{{ (selectedLicense.validUntil | date: 'dd-MM-yyyy') || '-' }}
|
||||
</div>
|
||||
</div>
|
||||
</ng-container>
|
||||
|
||||
<div class="row">
|
||||
<div>{{ 'license-info-screen.licensed-page-count' | translate }}</div>
|
||||
<div *ngIf="licenseService.isPageBased" class="row">
|
||||
<div>{{ 'license-info-screen.licensing-details.licensed-page-count' | translate }}</div>
|
||||
<div>{{ licenseService.totalLicensedNumberOfPages }}</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="licenseService.uploadedBytesCapacity" class="row">
|
||||
<div>{{ 'license-info-screen.licensed-capacity' | translate }}</div>
|
||||
<div>{{ licenseService.uploadedBytesCapacity | size }}</div>
|
||||
<div *ngIf="licenseService.isCapacityBased" class="row">
|
||||
<div>{{ 'license-info-screen.licensing-details.licensed-analysis-capacity' | translate }}</div>
|
||||
<div>{{ licenseService.analysisCapacityBytes | size }}</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="licenseService.isCapacityBased" class="row">
|
||||
<div>{{ 'license-info-screen.licensing-details.licensed-retention-capacity' | translate }}</div>
|
||||
<div>{{ licenseService.retentionCapacityBytes | size }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<red-license-usage></red-license-usage>
|
||||
<red-license-capacity *ngIf="showCapacity"></red-license-capacity>
|
||||
<red-license-page-usage *ngIf="licenseService.isPageBased"></red-license-page-usage>
|
||||
<red-license-analysis-capacity-usage *ngIf="licenseService.isCapacityBased"></red-license-analysis-capacity-usage>
|
||||
<red-license-retention-capacity *ngIf="licenseService.isCapacityBased"></red-license-retention-capacity>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -8,7 +8,6 @@ import { LicenseService } from '@services/license.service';
|
||||
import { Roles } from '@users/roles';
|
||||
import type { User } from '@red/domain';
|
||||
import { getCurrentUser } from '@iqser/common-ui/lib/users';
|
||||
import { LicenseFeatures } from '../utils/constants';
|
||||
|
||||
@Component({
|
||||
templateUrl: './license-screen.component.html',
|
||||
@ -28,10 +27,6 @@ export class LicenseScreenComponent {
|
||||
},
|
||||
];
|
||||
|
||||
get showCapacity(): boolean {
|
||||
return this.licenseService.hasNumberFeature(LicenseFeatures.UPLOADED_BYTES_CAPACITY);
|
||||
}
|
||||
|
||||
constructor(
|
||||
readonly configService: ConfigService,
|
||||
readonly licenseService: LicenseService,
|
||||
|
||||
@ -10,9 +10,10 @@ import { CommonModule } from '@angular/common';
|
||||
import { LicenseService } from '@services/license.service';
|
||||
import { ChartComponent } from './components/chart/chart.component';
|
||||
import { NgChartsModule } from 'ng2-charts';
|
||||
import { LicenseCapacityComponent } from './components/license-storage/license-capacity.component';
|
||||
import { LicenseUsageComponent } from './components/license-usage/license-usage.component';
|
||||
import { LicenseRetentionCapacityComponent } from './components/license-retention-capacity-usage/license-retention-capacity.component';
|
||||
import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
|
||||
import { LicensePageUsageComponent } from './components/license-page-usage/license-page-usage.component';
|
||||
import { LicenseAnalysisCapacityUsageComponent } from './components/license-analysis-capacity-usage/license-analysis-capacity-usage.component';
|
||||
|
||||
const routes: Routes = [
|
||||
{
|
||||
@ -25,7 +26,14 @@ const routes: Routes = [
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
declarations: [LicenseScreenComponent, LicenseSelectComponent, ChartComponent, LicenseCapacityComponent, LicenseUsageComponent],
|
||||
declarations: [
|
||||
LicenseScreenComponent,
|
||||
LicenseSelectComponent,
|
||||
ChartComponent,
|
||||
LicenseRetentionCapacityComponent,
|
||||
LicensePageUsageComponent,
|
||||
LicenseAnalysisCapacityUsageComponent,
|
||||
],
|
||||
imports: [
|
||||
RouterModule.forChild(routes),
|
||||
CommonModule,
|
||||
|
||||
@ -7,5 +7,6 @@ export const ChartBlack = '#283241'; // grey-1
|
||||
export enum LicenseFeatures {
|
||||
PROCESSING_PAGES = 'processingPages',
|
||||
PDFTRON = 'pdftron',
|
||||
UPLOADED_BYTES_CAPACITY = 'uploadedBytesCapacity',
|
||||
ANALYSIS_CAPACITY_BYTES = 'analysisCapacityBytes',
|
||||
RETENTION_CAPACITY_BYTES = 'retentionCapacityBytes',
|
||||
}
|
||||
|
||||
@ -256,9 +256,6 @@
|
||||
"user-management": "User Management",
|
||||
"watermarks": "Watermarks"
|
||||
},
|
||||
"annotation": {
|
||||
"pending": "(Pending Analysis)"
|
||||
},
|
||||
"annotation-actions": {
|
||||
"accept-recommendation": {
|
||||
"label": "Empfehlung annehmen"
|
||||
@ -341,14 +338,14 @@
|
||||
"error": "Rekategorisierung des Bildes gescheitert: {error}",
|
||||
"success": "Bild wurde einer neuen Kategorie zugeordnet."
|
||||
},
|
||||
"remove": {
|
||||
"error": "Fehler beim Entfernen der Schwärzung: {error}",
|
||||
"success": "Schwärzung entfernt!"
|
||||
},
|
||||
"remove-hint": {
|
||||
"error": "Failed to remove hint: {error}",
|
||||
"success": "Hint removed!"
|
||||
},
|
||||
"remove": {
|
||||
"error": "Fehler beim Entfernen der Schwärzung: {error}",
|
||||
"success": "Schwärzung entfernt!"
|
||||
},
|
||||
"request-change-legal-basis": {
|
||||
"error": "Fehler beim Vorschlagen der Änderung der Begründung:",
|
||||
"success": "Die Änderung der in der Anmerkung genannten Begründung wurde beantragt."
|
||||
@ -365,14 +362,14 @@
|
||||
"error": "Fehler beim Vorschlagen der Neukategorisierung des Bilds: {error}",
|
||||
"success": "Bild-Neuklassifizierung angefordert."
|
||||
},
|
||||
"request-remove": {
|
||||
"error": "Fehler beim Erstellen des Vorschlags für das Entfernen der Schwärzung: {error}",
|
||||
"success": "Entfernen der Schwärzung wurde vorgeschlagen!"
|
||||
},
|
||||
"request-remove-hint": {
|
||||
"error": "Failed to request removal of hint: {error}",
|
||||
"success": "Requested to remove hint!"
|
||||
},
|
||||
"request-remove": {
|
||||
"error": "Fehler beim Erstellen des Vorschlags für das Entfernen der Schwärzung: {error}",
|
||||
"success": "Entfernen der Schwärzung wurde vorgeschlagen!"
|
||||
},
|
||||
"suggest": {
|
||||
"error": "Vorschlag einer Schwärzung wurde nicht gespeichert: {error}",
|
||||
"success": "Vorschlag einer Schwärzung gespeichert"
|
||||
@ -389,15 +386,15 @@
|
||||
"remove-highlights": {
|
||||
"label": "Remove Selected Earmarks"
|
||||
},
|
||||
"resize": {
|
||||
"label": "Größe ändern"
|
||||
},
|
||||
"resize-accept": {
|
||||
"label": "Größe speichern"
|
||||
},
|
||||
"resize-cancel": {
|
||||
"label": "Größenänderung abbrechen"
|
||||
},
|
||||
"resize": {
|
||||
"label": "Größe ändern"
|
||||
},
|
||||
"see-references": {
|
||||
"label": "See References"
|
||||
},
|
||||
@ -439,6 +436,9 @@
|
||||
"suggestion-resize": "Vorgeschlagene Größenänderung",
|
||||
"text-highlight": "Earmark"
|
||||
},
|
||||
"annotation": {
|
||||
"pending": "(Pending Analysis)"
|
||||
},
|
||||
"archived-dossiers-listing": {
|
||||
"no-data": {
|
||||
"title": "No archived dossiers."
|
||||
@ -618,18 +618,14 @@
|
||||
"warning": "Achtung: Diese Aktion kann nicht rückgängig gemacht werden!"
|
||||
},
|
||||
"confirmation-dialog": {
|
||||
"approve-file": {
|
||||
"question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?",
|
||||
"title": "Warnung!"
|
||||
},
|
||||
"approve-file-without-analysis": {
|
||||
"confirmationText": "Approve without analysis",
|
||||
"denyText": "Cancel",
|
||||
"question": "Analysis required to detect new redactions.",
|
||||
"title": "Warning!"
|
||||
},
|
||||
"approve-multiple-files": {
|
||||
"question": "Mindestens eine der ausgewählten Dateien enthält ungesehene Änderungen. Möchten Sie sie trotzdem genehmigen?",
|
||||
"approve-file": {
|
||||
"question": "Dieses Dokument enthält ungesehene Änderungen. Möchten Sie es trotzdem genehmigen?",
|
||||
"title": "Warnung!"
|
||||
},
|
||||
"approve-multiple-files-without-analysis": {
|
||||
@ -638,6 +634,10 @@
|
||||
"question": "Analysis required to detect new redactions for at least one file.",
|
||||
"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": {
|
||||
"question": {
|
||||
"multiple": "Dieses Dokument wird gerade von einer anderen Person geprüft. Möchten Sie Reviewer werden und sich selbst dem Dokument zuweisen?",
|
||||
@ -983,13 +983,13 @@
|
||||
"recent": "Neu ({hours} h)",
|
||||
"unassigned": "Niemandem zugewiesen"
|
||||
},
|
||||
"reanalyse": {
|
||||
"action": "Datei analysieren"
|
||||
},
|
||||
"reanalyse-dossier": {
|
||||
"error": "Die Dateien konnten nicht für eine Reanalyse eingeplant werden. Bitte versuchen Sie es erneut.",
|
||||
"success": "Dateien für Reanalyse vorgesehen."
|
||||
},
|
||||
"reanalyse": {
|
||||
"action": "Datei analysieren"
|
||||
},
|
||||
"start-auto-analysis": "Enable auto-analysis",
|
||||
"stop-auto-analysis": "Stop auto-analysis",
|
||||
"table-col-names": {
|
||||
@ -1058,14 +1058,6 @@
|
||||
"total-documents": "Anzahl der Dokumente",
|
||||
"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": {
|
||||
"action": {
|
||||
"clone": "Clone Template",
|
||||
@ -1101,6 +1093,14 @@
|
||||
"title": "{length} {length, plural, one{Dossier-Vorlage} other{Dossier-Vorlagen}}"
|
||||
}
|
||||
},
|
||||
"dossier-templates": {
|
||||
"label": "Dossier-Vorlagen",
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"incomplete": "Incomplete"
|
||||
}
|
||||
},
|
||||
"dossier-watermark-selector": {
|
||||
"heading": "Watermarks on documents",
|
||||
"no-watermark": "There is no watermark defined for the dossier template.<br>Contact your app admin to define one.",
|
||||
@ -1284,15 +1284,6 @@
|
||||
"title": "{length} {length, plural, one{Wörterbuch} other{Wörterbücher}}"
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"info": {
|
||||
"actions": {
|
||||
"revert": "Revert",
|
||||
"save": "Save Changes"
|
||||
},
|
||||
"heading": "Edit Entity"
|
||||
}
|
||||
},
|
||||
"entity-rules-screen": {
|
||||
"error": {
|
||||
"generic": "Something went wrong... Entity rules update failed!"
|
||||
@ -1306,19 +1297,28 @@
|
||||
"title": "Entity Rule Editor",
|
||||
"warning-text": "Warning: experimental feature!"
|
||||
},
|
||||
"entity": {
|
||||
"info": {
|
||||
"actions": {
|
||||
"revert": "Revert",
|
||||
"save": "Save Changes"
|
||||
},
|
||||
"heading": "Edit Entity"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"deleted-entity": {
|
||||
"dossier": {
|
||||
"action": "Zurück zur Übersicht",
|
||||
"label": "Dieses Dossier wurde gelöscht!"
|
||||
},
|
||||
"file": {
|
||||
"action": "Zurück zum Dossier",
|
||||
"label": "Diese Datei wurde gelöscht!"
|
||||
},
|
||||
"file-dossier": {
|
||||
"action": "Zurück zur Übersicht",
|
||||
"label": "Das Dossier dieser Datei wurde gelöscht!"
|
||||
},
|
||||
"file": {
|
||||
"action": "Zurück zum Dossier",
|
||||
"label": "Diese Datei wurde gelöscht!"
|
||||
}
|
||||
},
|
||||
"file-preview": {
|
||||
@ -1336,12 +1336,6 @@
|
||||
},
|
||||
"exact-date": "{day} {month} {year} um {hour}:{minute} Uhr",
|
||||
"file": "Datei",
|
||||
"file-attribute": {
|
||||
"update": {
|
||||
"error": "Failed to update file attribute value!",
|
||||
"success": "File attribute value has been updated successfully!"
|
||||
}
|
||||
},
|
||||
"file-attribute-encoding-types": {
|
||||
"ascii": "ASCII",
|
||||
"iso": "ISO-8859-1",
|
||||
@ -1352,6 +1346,12 @@
|
||||
"number": "Nummer",
|
||||
"text": "Freier Text"
|
||||
},
|
||||
"file-attribute": {
|
||||
"update": {
|
||||
"error": "Failed to update file attribute value!",
|
||||
"success": "File attribute value has been updated successfully!"
|
||||
}
|
||||
},
|
||||
"file-attributes-configurations": {
|
||||
"cancel": "Cancel",
|
||||
"form": {
|
||||
@ -1565,6 +1565,15 @@
|
||||
"csv": "File attributes were imported successfully from uploaded CSV file."
|
||||
}
|
||||
},
|
||||
"filter-menu": {
|
||||
"filter-options": "Filteroptionen",
|
||||
"filter-types": "Filter",
|
||||
"label": "Filter",
|
||||
"pages-without-annotations": "Only pages without annotations",
|
||||
"redaction-changes": "Nur Anmerkungen mit Schwärzungsänderungen",
|
||||
"unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten",
|
||||
"with-comments": "Nur Anmerkungen mit Kommentaren"
|
||||
},
|
||||
"filter": {
|
||||
"analysis": "Analyse erforderlich",
|
||||
"comment": "Kommentare",
|
||||
@ -1575,15 +1584,6 @@
|
||||
"suggestion": "Vorgeschlagene Schwärzung",
|
||||
"updated": "Aktualisiert"
|
||||
},
|
||||
"filter-menu": {
|
||||
"filter-options": "Filteroptionen",
|
||||
"filter-types": "Filter",
|
||||
"label": "Filter",
|
||||
"pages-without-annotations": "Only pages without annotations",
|
||||
"redaction-changes": "Nur Anmerkungen mit Schwärzungsänderungen",
|
||||
"unseen-pages": "Nur Anmerkungen auf unsichtbaren Seiten",
|
||||
"with-comments": "Nur Anmerkungen mit Kommentaren"
|
||||
},
|
||||
"filters": {
|
||||
"assigned-people": "Beauftragt",
|
||||
"documents-status": "Documents State",
|
||||
@ -1749,22 +1749,20 @@
|
||||
"table-header": "{length} {length, plural, one{Begründung} other{Begründung}}"
|
||||
},
|
||||
"license-info-screen": {
|
||||
"backend-version": "Backend-Version der Anwendung",
|
||||
"capacity": {
|
||||
"active-documents": "Active Documents",
|
||||
"all-documents": "Retention Capacity Used",
|
||||
"archived-documents": "Archived Documents",
|
||||
"exceeded-capacity": "Exceeded Capacity",
|
||||
"storage-capacity": "Capacity",
|
||||
"trash-documents": "Documents in Trash",
|
||||
"unused": "Unused Storage"
|
||||
"analysis-capacity-usage": {
|
||||
"analyzed-cumulative": "",
|
||||
"analyzed-per-month": "",
|
||||
"licensed": "",
|
||||
"section-title": "",
|
||||
"total-analyzed-data": "",
|
||||
"used-in-period": "",
|
||||
"used-in-total": ""
|
||||
},
|
||||
"capacity-details": "Kapazitätsdetails",
|
||||
"backend-version": "Backend-Version der Anwendung",
|
||||
"copyright-claim-text": "Copyright © 2020 - {currentYear} knecon",
|
||||
"copyright-claim-title": "Copyright",
|
||||
"current-analyzed-pages": "In aktuellem Lizenzzeitraum analysierte Seiten",
|
||||
"current-volume-analyzed": "Analysis Capacity Used in Licensing Period",
|
||||
"custom-app-title": "Name der Anwendung",
|
||||
"email-report": "E-Mail-Bericht",
|
||||
"email": {
|
||||
"body": {
|
||||
"analyzed": "Im aktuellen Lizenzzeitraum insgesamt analysierte Seiten: {pages}.",
|
||||
@ -1772,35 +1770,42 @@
|
||||
},
|
||||
"title": "Lizenzbericht {licenseCustomer}"
|
||||
},
|
||||
"email-report": "E-Mail-Bericht",
|
||||
"end-user-license-text": "Die Nutzung dieses Produkts unterliegt den Bedingungen der Endbenutzer-Lizenzvereinbarung für den RedactManager, sofern darin nichts anderweitig festgelegt.",
|
||||
"end-user-license-title": "Endbenutzer-Lizenzvereinbarung",
|
||||
"license-title": "License Title",
|
||||
"licensed-capacity": "Licensed Analysis Capacity",
|
||||
"licensed-page-count": "Anzahl der lizenzierten Seiten",
|
||||
"licensed-to": "Lizenziert für",
|
||||
"licensing-details": "Lizenzdetails",
|
||||
"licensing-period": "Laufzeit der Lizenz",
|
||||
"ocr-analyzed-pages": "Mit OCR konvertierte Seiten",
|
||||
"pages": {
|
||||
"analyzed-data-per-month": "Analyzed Data Volume per Month",
|
||||
"cumulative-pages": "Seiten insgesamt",
|
||||
"cumulative-volume": "Cumulative Analyzed Data Volume",
|
||||
"pages-per-month": "Seiten pro Monat",
|
||||
"statistics-by-capacity": "Statistics by Capacity",
|
||||
"statistics-by-pages": "Statistics by Pages",
|
||||
"total-analyzed-data": "Total Analyzed Data",
|
||||
"total-pages": "Gesamtzahl der Seiten"
|
||||
"licensing-details": {
|
||||
"license-title": "",
|
||||
"licensed-analysis-capacity": "",
|
||||
"licensed-page-count": "",
|
||||
"licensed-retention-capacity": "",
|
||||
"licensed-to": "",
|
||||
"licensing-period": "",
|
||||
"section-title": ""
|
||||
},
|
||||
"page-usage": {
|
||||
"cumulative-pages": "",
|
||||
"current-analyzed-pages": "",
|
||||
"ocr-analyzed-pages": "",
|
||||
"pages-per-month": "",
|
||||
"section-title": "",
|
||||
"total-analyzed": "",
|
||||
"total-ocr-analyzed": "",
|
||||
"total-pages": "",
|
||||
"unlicensed-analyzed": ""
|
||||
},
|
||||
"retention-capacity-usage": {
|
||||
"active-documents": "",
|
||||
"archived-documents": "",
|
||||
"exceeded-capacity": "",
|
||||
"section-title": "",
|
||||
"storage-capacity": "",
|
||||
"trash-documents": "",
|
||||
"unused": "",
|
||||
"used-capacity": ""
|
||||
},
|
||||
"status": {
|
||||
"active": "Aktiv",
|
||||
"inactive": "Inactive"
|
||||
},
|
||||
"total-analyzed": "Seit {date} insgesamt analysierte Seiten",
|
||||
"total-ocr-analyzed": "Total OCR Processed Pages",
|
||||
"total-volume-analyzed": "Total Analysis Capacity Used",
|
||||
"unlicensed-analyzed": "Über Lizenz hinaus analysierte Seiten",
|
||||
"usage-details": "Nutzungsdetails"
|
||||
}
|
||||
},
|
||||
"license-information": "Lizenzinformationen",
|
||||
"load-all-annotations-success": "All annotations were loaded and are now visible in the document thumbnails",
|
||||
@ -1857,13 +1862,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-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": {
|
||||
"category": {
|
||||
"email-notifications": "E-Mail Benachrichtigungen",
|
||||
@ -1877,6 +1875,7 @@
|
||||
"dossier": "Dossierbezogene Benachrichtigungen",
|
||||
"other": "Andere Benachrichtigungen"
|
||||
},
|
||||
"options-title": "Wählen Sie aus, in welcher Kategorie Sie benachrichtigt werden möchten",
|
||||
"options": {
|
||||
"ASSIGN_APPROVER": "Wenn ich einem Dokument als Genehmiger zugewiesen bin",
|
||||
"ASSIGN_REVIEWER": "Wenn ich einem Dokument als Überprüfer zugewiesen bin",
|
||||
@ -1894,7 +1893,6 @@
|
||||
"USER_PROMOTED_TO_APPROVER": "Wenn ich Genehmiger in einem Dossier werde",
|
||||
"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": {
|
||||
"daily": "Tägliche Zusammenfassung",
|
||||
"instant": "Sofortig",
|
||||
@ -1902,6 +1900,13 @@
|
||||
},
|
||||
"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": {
|
||||
"confirmation-dialog": {
|
||||
"cancel": "Cancel",
|
||||
@ -1993,16 +1998,16 @@
|
||||
"warnings-subtitle": "Do not show again options",
|
||||
"warnings-title": "Prompts and Dialogs Settings"
|
||||
},
|
||||
"processing": {
|
||||
"basic": "Processing",
|
||||
"ocr": "OCR"
|
||||
},
|
||||
"processing-status": {
|
||||
"ocr": "OCR",
|
||||
"pending": "Pending",
|
||||
"processed": "Processed",
|
||||
"processing": "Processing"
|
||||
},
|
||||
"processing": {
|
||||
"basic": "Processing",
|
||||
"ocr": "OCR"
|
||||
},
|
||||
"readonly": "Lesemodus",
|
||||
"readonly-archived": "Read only (archived)",
|
||||
"redact-text": {
|
||||
@ -2252,12 +2257,6 @@
|
||||
},
|
||||
"title": "Structured Component Management"
|
||||
},
|
||||
"search": {
|
||||
"active-dossiers": "ganze Plattform",
|
||||
"all-dossiers": "all documents",
|
||||
"placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen",
|
||||
"this-dossier": "in diesem Dossier"
|
||||
},
|
||||
"search-screen": {
|
||||
"cols": {
|
||||
"assignee": "Bevollmächtigter",
|
||||
@ -2281,6 +2280,12 @@
|
||||
"no-match": "Keine Dokumente entsprechen Ihren aktuellen Filtern.",
|
||||
"table-header": "{length} {length, plural, one{Suchergebnis} other{Suchergebnisse}}"
|
||||
},
|
||||
"search": {
|
||||
"active-dossiers": "ganze Plattform",
|
||||
"all-dossiers": "all documents",
|
||||
"placeholder": "Nach Dokumenten oder Dokumenteninhalt suchen",
|
||||
"this-dossier": "in diesem Dossier"
|
||||
},
|
||||
"seconds": "seconds",
|
||||
"size": "Size",
|
||||
"smtp-auth-config": {
|
||||
@ -2541,4 +2546,4 @@
|
||||
}
|
||||
},
|
||||
"yesterday": "Gestern"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1749,21 +1749,18 @@
|
||||
"table-header": "{length} {length, plural, one{justification} other{justifications}}"
|
||||
},
|
||||
"license-info-screen": {
|
||||
"backend-version": "Backend Application Version",
|
||||
"capacity-details": "Capacity Details",
|
||||
"capacity": {
|
||||
"active-documents": "Active Documents",
|
||||
"all-documents": "Retention Capacity Used",
|
||||
"archived-documents": "Archived Documents",
|
||||
"exceeded-capacity": "Exceeded Capacity",
|
||||
"storage-capacity": "Capacity",
|
||||
"trash-documents": "Documents in Trash",
|
||||
"unused": "Unused Storage"
|
||||
"analysis-capacity-usage": {
|
||||
"analyzed-cumulative": "Cumulative Analyzed Data Volume",
|
||||
"analyzed-per-month": "Analyzed Data Volume per Month",
|
||||
"licensed": "Licensed Capacity",
|
||||
"section-title": "Analysis Capacity Details",
|
||||
"total-analyzed-data": "Total Analyzed Data",
|
||||
"used-in-period": "Analysis Capacity Used in Licensing Period",
|
||||
"used-in-total": "Total Analysis Capacity Used"
|
||||
},
|
||||
"backend-version": "Backend Application Version",
|
||||
"copyright-claim-text": "Copyright © 2020 - {currentYear} knecon",
|
||||
"copyright-claim-title": "Copyright Claim",
|
||||
"current-analyzed-pages": "Analyzed Pages in Licensing Period",
|
||||
"current-volume-analyzed": "Data Volume Analyzed in Licensing Period",
|
||||
"custom-app-title": "Custom Application Title",
|
||||
"email-report": "Email Report",
|
||||
"email": {
|
||||
@ -1775,32 +1772,40 @@
|
||||
},
|
||||
"end-user-license-text": "The use of this product is subject to the terms of the RedactManager End User License Agreement, unless otherwise specified therein.",
|
||||
"end-user-license-title": "End User License Agreement",
|
||||
"license-title": "License Title",
|
||||
"licensed-capacity": "Licensed Capacity",
|
||||
"licensed-page-count": "Licensed Pages",
|
||||
"licensed-to": "Licensed to",
|
||||
"licensing-details": "Licensing Details",
|
||||
"licensing-period": "Licensing Period",
|
||||
"ocr-analyzed-pages": "OCR Processed Pages in Licensing Period",
|
||||
"pages": {
|
||||
"analyzed-data-per-month": "Analyzed Data per Month",
|
||||
"licensing-details": {
|
||||
"license-title": "License Title",
|
||||
"licensed-analysis-capacity": "Licensed Analysis Capacity",
|
||||
"licensed-page-count": "Licensed Pages",
|
||||
"licensed-retention-capacity": "Licensed Retention Capacity",
|
||||
"licensed-to": "Licensed to",
|
||||
"section-title": "Licensing Details",
|
||||
"licensing-period": "Licensing Period"
|
||||
},
|
||||
"page-usage": {
|
||||
"cumulative-pages": "Cumulative Pages",
|
||||
"cumulative-volume": "Cumulative Analyzed Data Volume",
|
||||
"current-analyzed-pages": "Analyzed Pages in Licensing Period",
|
||||
"ocr-analyzed-pages": "OCR Processed Pages in Licensing Period",
|
||||
"pages-per-month": "Pages per Month",
|
||||
"statistics-by-capacity": "Statistics by Capacity",
|
||||
"statistics-by-pages": "Statistics by Pages",
|
||||
"total-analyzed-data": "Total Analyzed Data",
|
||||
"total-pages": "Total Pages"
|
||||
"section-title": "Page Usage Details",
|
||||
"total-analyzed": "Total Analyzed Pages Since {date}",
|
||||
"total-ocr-analyzed": "Total OCR Processed Pages Since {date}",
|
||||
"total-pages": "Total Pages",
|
||||
"unlicensed-analyzed": "Unlicensed Analyzed Pages"
|
||||
},
|
||||
"retention-capacity-usage": {
|
||||
"active-documents": "Active Documents",
|
||||
"archived-documents": "Archived Documents",
|
||||
"exceeded-capacity": "Exceeded Capacity",
|
||||
"section-title": "Retention Capacity Details",
|
||||
"storage-capacity": "Capacity",
|
||||
"trash-documents": "Documents in Trash",
|
||||
"unused": "Unused Retention Capacity",
|
||||
"used-capacity": "Retention Capacity Used"
|
||||
},
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive"
|
||||
},
|
||||
"total-analyzed": "Total Analyzed Pages",
|
||||
"total-ocr-analyzed": "Total OCR Processed Pages",
|
||||
"total-volume-analyzed": "Total Data Volume Analyzed",
|
||||
"unlicensed-analyzed": "Unlicensed Analyzed Pages",
|
||||
"usage-details": "Usage Details"
|
||||
}
|
||||
},
|
||||
"license-information": "License Information",
|
||||
"load-all-annotations-success": "All annotations were loaded and are now visible in the document thumbnails",
|
||||
@ -2541,4 +2546,4 @@
|
||||
}
|
||||
},
|
||||
"yesterday": "Yesterday"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1749,21 +1749,18 @@
|
||||
"table-header": "{length} {length, plural, one{Begründung} other{Begründung}}"
|
||||
},
|
||||
"license-info-screen": {
|
||||
"backend-version": "Backend-Version der Anwendung",
|
||||
"capacity-details": "",
|
||||
"capacity": {
|
||||
"active-documents": "",
|
||||
"all-documents": "",
|
||||
"archived-documents": "",
|
||||
"exceeded-capacity": "",
|
||||
"storage-capacity": "",
|
||||
"trash-documents": "",
|
||||
"unused": ""
|
||||
"analysis-capacity-usage": {
|
||||
"analyzed-cumulative": "",
|
||||
"analyzed-per-month": "",
|
||||
"licensed": "",
|
||||
"section-title": "",
|
||||
"total-analyzed-data": "",
|
||||
"used-in-period": "",
|
||||
"used-in-total": ""
|
||||
},
|
||||
"backend-version": "Backend-Version der Anwendung",
|
||||
"copyright-claim-text": "Copyright © 2020 - {currentYear} knecon AG (powered by IQSER)",
|
||||
"copyright-claim-title": "Copyright",
|
||||
"current-analyzed-pages": "In aktuellem Lizenzzeitraum analysierte Seiten",
|
||||
"current-volume-analyzed": "",
|
||||
"custom-app-title": "Name der Anwendung",
|
||||
"email-report": "E-Mail-Bericht",
|
||||
"email": {
|
||||
@ -1775,32 +1772,40 @@
|
||||
},
|
||||
"end-user-license-text": "Die Nutzung dieses Produkts unterliegt den Bedingungen der Endbenutzer-Lizenzvereinbarung für den RedactManager, sofern darin nichts anderweitig festgelegt.",
|
||||
"end-user-license-title": "Endbenutzer-Lizenzvereinbarung",
|
||||
"license-title": "",
|
||||
"licensed-capacity": "",
|
||||
"licensed-page-count": "Anzahl der lizenzierten Seiten",
|
||||
"licensed-to": "Lizenziert für",
|
||||
"licensing-details": "Lizenzdetails",
|
||||
"licensing-period": "Laufzeit der Lizenz",
|
||||
"ocr-analyzed-pages": "Mit OCR konvertierte Seiten",
|
||||
"pages": {
|
||||
"analyzed-data-per-month": "",
|
||||
"cumulative-pages": "Seiten insgesamt",
|
||||
"cumulative-volume": "",
|
||||
"pages-per-month": "Seiten pro Monat",
|
||||
"statistics-by-capacity": "",
|
||||
"statistics-by-pages": "",
|
||||
"total-analyzed-data": "",
|
||||
"total-pages": "Gesamtzahl der Seiten"
|
||||
"licensing-details": {
|
||||
"license-title": "",
|
||||
"licensed-analysis-capacity": "",
|
||||
"licensed-page-count": "",
|
||||
"licensed-retention-capacity": "",
|
||||
"licensed-to": "",
|
||||
"licensing-period": "",
|
||||
"section-title": ""
|
||||
},
|
||||
"page-usage": {
|
||||
"cumulative-pages": "",
|
||||
"current-analyzed-pages": "",
|
||||
"ocr-analyzed-pages": "",
|
||||
"pages-per-month": "",
|
||||
"section-title": "",
|
||||
"total-analyzed": "",
|
||||
"total-ocr-analyzed": "",
|
||||
"total-pages": "",
|
||||
"unlicensed-analyzed": ""
|
||||
},
|
||||
"retention-capacity-usage": {
|
||||
"active-documents": "",
|
||||
"archived-documents": "",
|
||||
"exceeded-capacity": "",
|
||||
"section-title": "",
|
||||
"storage-capacity": "",
|
||||
"trash-documents": "",
|
||||
"unused": "",
|
||||
"used-capacity": ""
|
||||
},
|
||||
"status": {
|
||||
"active": "Aktiv",
|
||||
"inactive": ""
|
||||
},
|
||||
"total-analyzed": "Seit {date} insgesamt analysierte Seiten",
|
||||
"total-ocr-analyzed": "",
|
||||
"total-volume-analyzed": "",
|
||||
"unlicensed-analyzed": "Über Lizenz hinaus analysierte Seiten",
|
||||
"usage-details": "Nutzungsdetails"
|
||||
}
|
||||
},
|
||||
"license-information": "Lizenzinformationen",
|
||||
"load-all-annotations-success": "",
|
||||
|
||||
@ -1749,21 +1749,18 @@
|
||||
"table-header": "{length} {length, plural, one{justification} other{justifications}}"
|
||||
},
|
||||
"license-info-screen": {
|
||||
"backend-version": "Backend Application Version",
|
||||
"capacity-details": "Capacity Details",
|
||||
"capacity": {
|
||||
"active-documents": "Active Documents",
|
||||
"all-documents": "Retention Capacity Used",
|
||||
"archived-documents": "Archived Documents",
|
||||
"exceeded-capacity": "Exceeded Capacity",
|
||||
"storage-capacity": "Capacity",
|
||||
"trash-documents": "Documents in Trash",
|
||||
"unused": "Unused Storage"
|
||||
"analysis-capacity-usage": {
|
||||
"analyzed-cumulative": "Cumulative Analyzed Data Volume",
|
||||
"analyzed-per-month": "Analyzed Data Volume per Month",
|
||||
"licensed": "Licensed Capacity",
|
||||
"section-title": "Analysis Capacity Details",
|
||||
"total-analyzed-data": "Total Analyzed Data",
|
||||
"used-in-period": "Analysis Capacity Used in Licensing Period",
|
||||
"used-in-total": "Total Analysis Capacity Used"
|
||||
},
|
||||
"backend-version": "Backend Application Version",
|
||||
"copyright-claim-text": "Copyright © 2020 - {currentYear} knecon",
|
||||
"copyright-claim-title": "Copyright Claim",
|
||||
"current-analyzed-pages": "Analyzed Pages in Licensing Period",
|
||||
"current-volume-analyzed": "Data Volume Analyzed in Licensing Period",
|
||||
"custom-app-title": "Custom Application Title",
|
||||
"email-report": "Email Report",
|
||||
"email": {
|
||||
@ -1775,32 +1772,40 @@
|
||||
},
|
||||
"end-user-license-text": "The use of this product is subject to the terms of the DocuMine End User License Agreement, unless otherwise specified therein.",
|
||||
"end-user-license-title": "End User License Agreement",
|
||||
"license-title": "License Title",
|
||||
"licensed-capacity": "Licensed Capacity",
|
||||
"licensed-page-count": "Licensed pages",
|
||||
"licensed-to": "Licensed to",
|
||||
"licensing-details": "Licensing Details",
|
||||
"licensing-period": "Licensing Period",
|
||||
"ocr-analyzed-pages": "OCR Processed Pages in Licensing Period",
|
||||
"pages": {
|
||||
"analyzed-data-per-month": "Analyzed Data per Month",
|
||||
"licensing-details": {
|
||||
"license-title": "License Title",
|
||||
"licensed-analysis-capacity": "Licensed Analysis Capacity",
|
||||
"licensed-page-count": "Licensed Pages",
|
||||
"licensed-retention-capacity": "Licensed Retention Capacity",
|
||||
"licensed-to": "Licensed to",
|
||||
"section-title": "Licensing Details",
|
||||
"licensing-period": "Licensing Period"
|
||||
},
|
||||
"page-usage": {
|
||||
"cumulative-pages": "Cumulative Pages",
|
||||
"cumulative-volume": "Cumulative Analyzed Data Volume",
|
||||
"current-analyzed-pages": "Analyzed Pages in Licensing Period",
|
||||
"ocr-analyzed-pages": "OCR Processed Pages in Licensing Period",
|
||||
"pages-per-month": "Pages per Month",
|
||||
"statistics-by-capacity": "Statistics by Capacity",
|
||||
"statistics-by-pages": "Statistics by Pages",
|
||||
"total-analyzed-data": "Total Analyzed Data",
|
||||
"total-pages": "Total Pages"
|
||||
"section-title": "Page Usage Details",
|
||||
"total-analyzed": "Total Analyzed Pages Since {date}",
|
||||
"total-ocr-analyzed": "Total OCR Processed Pages Since {date}",
|
||||
"total-pages": "Total Pages",
|
||||
"unlicensed-analyzed": "Unlicensed Analyzed Pages"
|
||||
},
|
||||
"retention-capacity-usage": {
|
||||
"active-documents": "Active Documents",
|
||||
"archived-documents": "Archived Documents",
|
||||
"exceeded-capacity": "Exceeded Capacity",
|
||||
"section-title": "Retention Capacity Details",
|
||||
"storage-capacity": "Capacity",
|
||||
"trash-documents": "Documents in Trash",
|
||||
"unused": "Unused Retention Capacity",
|
||||
"used-capacity": "Retention Capacity Used"
|
||||
},
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive"
|
||||
},
|
||||
"total-analyzed": "Total Analyzed Pages Since {date}",
|
||||
"total-ocr-analyzed": "Total OCR Processed Pages Since {date}",
|
||||
"total-volume-analyzed": "Total Data Volume Analyzed",
|
||||
"unlicensed-analyzed": "Unlicensed Analyzed Pages",
|
||||
"usage-details": "Usage Details"
|
||||
}
|
||||
},
|
||||
"license-information": "License Information",
|
||||
"load-all-annotations-success": "All annotations were loaded and are now visible in the document thumbnails",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user