diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/chart/chart.component.scss b/apps/red-ui/src/app/modules/admin/screens/license/components/chart/chart.component.scss index 51d696e63..d98283f70 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/components/chart/chart.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/license/components/chart/chart.component.scss @@ -1,4 +1,4 @@ .canvas-container { position: relative; - width: 1200px; + width: 1000px; } diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/chart/chart.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/components/chart/chart.component.ts index 52d0b255b..d6669e947 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/components/chart/chart.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/license/components/chart/chart.component.ts @@ -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, diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-analysis-capacity-usage/license-analysis-capacity-usage.component.html b/apps/red-ui/src/app/modules/admin/screens/license/components/license-analysis-capacity-usage/license-analysis-capacity-usage.component.html new file mode 100644 index 000000000..5452fcb5e --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-analysis-capacity-usage/license-analysis-capacity-usage.component.html @@ -0,0 +1,34 @@ +
+
+ +
+
+
+ {{ licenseService.selectedLicenseReport.analysedFilesBytes | size }} + + ({{ licenseService.analysisCapacityBytesForSelectedLicensePercentage | number: '1.0-2' }}%) + +
+
+ +
+
+
+ {{ licenseService.allLicensesReport.analysedFilesBytes | size }} +
+
+ +
+
+ +
+
+
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-usage/license-usage.component.scss b/apps/red-ui/src/app/modules/admin/screens/license/components/license-analysis-capacity-usage/license-analysis-capacity-usage.component.scss similarity index 100% rename from apps/red-ui/src/app/modules/admin/screens/license/components/license-usage/license-usage.component.scss rename to apps/red-ui/src/app/modules/admin/screens/license/components/license-analysis-capacity-usage/license-analysis-capacity-usage.component.scss diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-analysis-capacity-usage/license-analysis-capacity-usage.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/components/license-analysis-capacity-usage/license-analysis-capacity-usage.component.ts new file mode 100644 index 000000000..ee16e3ba9 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-analysis-capacity-usage/license-analysis-capacity-usage.component.ts @@ -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; + } +} diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.html b/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.html new file mode 100644 index 000000000..89abf2034 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.html @@ -0,0 +1,46 @@ +
+
+ +
+
+
+ {{ licenseService.selectedLicenseReport.numberOfAnalyzedPages }} + + ({{ licenseService.analyzedPagesPercentageForSelectedLicensePercentage | number: '1.0-2' }}%) + +
+
+ +
+
+
{{ licenseService.selectedLicenseReport.numberOfOcrPages }}
+
+ +
+
+
{{ licenseService.unlicensedPages }}
+
+ +
+
+
{{ licenseService.allLicensesReport.numberOfAnalyzedPages }}
+
+ +
+
+
{{ licenseService.allLicensesReport.numberOfOcrPages }}
+
+ +
+
+ +
+
+
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.scss b/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.scss new file mode 100644 index 000000000..8af8aac74 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.scss @@ -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); + } + } +} diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.ts new file mode 100644 index 000000000..6b21d3973 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.ts @@ -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), + }, + ]; + } +} diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.html b/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.html similarity index 58% rename from apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.html rename to apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.html index 008e38c8c..139302769 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.html @@ -1,34 +1,34 @@
-
+
-
+
{{ licenseService.selectedLicenseReport.activeFilesUploadedBytes | size }}
-
+
{{ licenseService.selectedLicenseReport.archivedFilesUploadedBytes | size }}
-
+
{{ licenseService.selectedLicenseReport.trashFilesUploadedBytes | size }}
-
+
{{ licenseService.selectedLicenseReport.totalFilesUploadedBytes | size }} - - ({{ licenseService.uploadedFilesBytesForSelectedLicensePercentage | number: '1.0-2' }}%) + + ({{ licenseService.retentionCapacityBytesForSelectedLicensePercentage | number: '1.0-2' }}%)
- - {{ 'license-info-screen.capacity.storage-capacity' | translate }} + + {{ 'license-info-screen.retention-capacity-usage.storage-capacity' | translate }} - {{ 'license-info-screen.capacity.exceeded-capacity' | translate }} + {{ 'license-info-screen.retention-capacity-usage.exceeded-capacity' | translate }} diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.scss b/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.scss similarity index 100% rename from apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.scss rename to apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.scss diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.ts similarity index 71% rename from apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.ts rename to apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.ts index dffab4001..abefa9672 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.ts @@ -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, }, diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-usage/license-usage.component.html b/apps/red-ui/src/app/modules/admin/screens/license/components/license-usage/license-usage.component.html deleted file mode 100644 index fe2fcc7cc..000000000 --- a/apps/red-ui/src/app/modules/admin/screens/license/components/license-usage/license-usage.component.html +++ /dev/null @@ -1,75 +0,0 @@ -
-
- -
-
-
- {{ licenseService.selectedLicenseReport.analysedFilesBytes | size }} - - ({{ licenseService.analyzedFilesBytesForSelectedLicensePercentage | number : '1.0-2' }}%) - -
-
- -
-
-
- {{ licenseService.allLicensesReport.analysedFilesBytes | size }} -
-
- -
-
-
- {{ licenseService.selectedLicenseReport.numberOfAnalyzedPages }} - - ({{ licenseService.analyzedPagesPercentageForSelectedLicensePercentage | number : '1.0-2' }}%) - -
-
- -
-
-
{{ licenseService.selectedLicenseReport.numberOfOcrPages }}
-
- -
-
-
{{ licenseService.unlicensedPages }}
-
- -
-
- -
{{ licenseService.allLicensesReport.numberOfAnalyzedPages }}
-
- -
-
-
{{ licenseService.allLicensesReport.numberOfOcrPages }}
-
- -
-
-
- - - -
- - -
-
-
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-usage/license-usage.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/components/license-usage/license-usage.component.ts deleted file mode 100644 index aa4ab2008..000000000 --- a/apps/red-ui/src/app/modules/admin/screens/license/components/license-usage/license-usage.component.ts +++ /dev/null @@ -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( - 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; - } -} diff --git a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.html index 4585f72c6..399ab7748 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.html @@ -23,7 +23,7 @@
- {{ 'license-info-screen.copyright-claim-text' | translate : { currentYear: currentYear } }} + {{ 'license-info-screen.copyright-claim-text' | translate: { currentYear: currentYear } }}
@@ -32,10 +32,10 @@
-
+
-
+
@@ -43,32 +43,38 @@
-
+
{{ selectedLicense.licensedTo || '-' }}
-
+
- {{ (selectedLicense.validFrom | date : 'dd-MM-yyyy') || '-' }} / - {{ (selectedLicense.validUntil | date : 'dd-MM-yyyy') || '-' }} + {{ (selectedLicense.validFrom | date: 'dd-MM-yyyy') || '-' }} / + {{ (selectedLicense.validUntil | date: 'dd-MM-yyyy') || '-' }}
-
-
{{ 'license-info-screen.licensed-page-count' | translate }}
+
+
{{ 'license-info-screen.licensing-details.licensed-page-count' | translate }}
{{ licenseService.totalLicensedNumberOfPages }}
-
-
{{ 'license-info-screen.licensed-capacity' | translate }}
-
{{ licenseService.uploadedBytesCapacity | size }}
+
+
{{ 'license-info-screen.licensing-details.licensed-analysis-capacity' | translate }}
+
{{ licenseService.analysisCapacityBytes | size }}
+
+ +
+
{{ 'license-info-screen.licensing-details.licensed-retention-capacity' | translate }}
+
{{ licenseService.retentionCapacityBytes | size }}
- - + + +
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts index 551f89164..e16b8642f 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts @@ -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, diff --git a/apps/red-ui/src/app/modules/admin/screens/license/license.module.ts b/apps/red-ui/src/app/modules/admin/screens/license/license.module.ts index 70a40d2f9..c397b75f6 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/license.module.ts +++ b/apps/red-ui/src/app/modules/admin/screens/license/license.module.ts @@ -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, diff --git a/apps/red-ui/src/app/modules/admin/screens/license/utils/constants.ts b/apps/red-ui/src/app/modules/admin/screens/license/utils/constants.ts index d3c28aa95..89f97c45c 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license/utils/constants.ts +++ b/apps/red-ui/src/app/modules/admin/screens/license/utils/constants.ts @@ -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', } diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json index f13b2873e..efba44f7d 100644 --- a/apps/red-ui/src/assets/i18n/redact/de.json +++ b/apps/red-ui/src/assets/i18n/redact/de.json @@ -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": "{count} {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.
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": "{user} wurde im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} zum Genehmiger ernannt!", "user-removed-as-dossier-member": "{user} wurde als Mitglied von: {dossierHref, select, null{{dossierName}} other{{dossierName}}} 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" -} \ No newline at end of file +} diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json index 3e3538958..57e8d0e54 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -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" -} \ No newline at end of file +} diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json index f422a3d72..d54e790c0 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -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": "", diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json index e0b4ab8df..0da4f7705 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -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",