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 494440e0e..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,8 +1,4 @@
-:host {
- margin: 0 auto;
-}
-
.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 }}
+ = 0">
+ ({{ 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 95%
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
index b9fd5b870..8af8aac74 100644
--- 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
@@ -5,7 +5,7 @@
.grid-container {
width: calc(100% - 40px);
display: grid;
- grid-template-columns: 1fr 2fr 2fr;
+ grid-template-columns: 250px 300px 1fr;
margin: 20px;
.row {
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 }}
+ 0">
+ ({{ 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-retention-capacity-usage/license-retention-capacity.component.html b/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.html
new file mode 100644
index 000000000..139302769
--- /dev/null
+++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
{{ licenseService.selectedLicenseReport.activeFilesUploadedBytes | size }}
+
+
+
+
+
{{ licenseService.selectedLicenseReport.archivedFilesUploadedBytes | size }}
+
+
+
+
{{ licenseService.selectedLicenseReport.trashFilesUploadedBytes | size }}
+
+
+
+
+
+ {{ licenseService.selectedLicenseReport.totalFilesUploadedBytes | size }}
+ = 0">
+ ({{ licenseService.retentionCapacityBytesForSelectedLicensePercentage | number: '1.0-2' }}%)
+
+
+
+
+
+ 0"
+ [config]="donutChartConfig$ | async"
+ [direction]="'row'"
+ [radius]="80"
+ [strokeWidth]="15"
+ [subtitleTemplate]="capacitySubtitles"
+ [totalType]="'sum'"
+ [valueFormatter]="size"
+ >
+
+
+
+
+
+
+
+ {{ 'license-info-screen.retention-capacity-usage.storage-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 85%
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
index eb954eec9..2f537cca5 100644
--- 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
@@ -5,11 +5,11 @@
.grid-container {
width: calc(100% - 40px);
display: grid;
- grid-template-columns: 1fr 2fr 2fr;
+ grid-template-columns: 250px 300px 1fr;
margin: 20px;
.donut-chart-wrapper {
- grid-row: 2 / span 4;
+ grid-row: 2 / span 5;
grid-column: 3;
width: fit-content;
}
@@ -25,7 +25,7 @@
}
}
- &:hover {
+ &:not(.chart-row):hover {
> div {
background-color: var(--iqser-alt-background);
}
@@ -39,7 +39,7 @@
border-bottom: 1px solid var(--iqser-separator);
}
- redaction-chart {
+ .chart-row > div {
grid-column: span 3;
}
}
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-storage/license-capacity.component.html b/apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.html
deleted file mode 100644
index a1028921f..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/license/components/license-storage/license-capacity.component.html
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
-
{{ licenseService.selectedLicenseReport.activeFilesUploadedBytes | size }}
-
-
-
-
-
{{ licenseService.selectedLicenseReport.archivedFilesUploadedBytes | size }}
-
-
-
-
{{ licenseService.selectedLicenseReport.trashFilesUploadedBytes | size }}
-
-
-
-
-
- {{ licenseService.selectedLicenseReport.totalFilesUploadedBytes | size }}
- = 0">
- ({{ licenseService.uploadedFilesBytesForSelectedLicensePercentage | number : '1.0-2' }}%)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ 'license-info-screen.capacity.storage-capacity' | translate }}
-
-
-
-
- {{ 'license-info-screen.capacity.exceeded-capacity' | translate }}
-
-
-
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 }}
- = 0">
- ({{ licenseService.analyzedFilesBytesForSelectedLicensePercentage | number : '1.0-2' }}%)
-
-
-
-
-
-
-
- {{ licenseService.allLicensesReport.analysedFilesBytes | size }}
-
-
-
-
-
-
- {{ licenseService.selectedLicenseReport.numberOfAnalyzedPages }}
- = 0">
- ({{ 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.scss b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.scss
index 0320d1c0b..fe4109839 100644
--- a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.scss
+++ b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.scss
@@ -11,7 +11,7 @@
.grid-container {
width: calc(100% - 40px);
display: grid;
- grid-template-columns: 1fr 2fr 2fr;
+ grid-template-columns: 250px 300px 1fr;
margin: 20px;
.row {
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",
diff --git a/apps/red-ui/src/assets/styles/themes/scm.css b/apps/red-ui/src/assets/styles/themes/scm.css
index 6eb69ab14..ed81fc202 100644
--- a/apps/red-ui/src/assets/styles/themes/scm.css
+++ b/apps/red-ui/src/assets/styles/themes/scm.css
@@ -2,8 +2,8 @@ body.light {
--iqser-primary: #4d4fdd;
--iqser-primary-rgb: 77, 79, 221;
--iqser-primary-2: #4d97dd;
- --iqser-red-1: #4d4fdd;
- --iqser-red-2: #4d97dd;
+ --iqser-red-1: #dd4d50;
+ --iqser-red-2: #f16164;
--iqser-helpmode-primary: #fdbd00;
/*Override the default light theme here*/
/*Copy CSS variables from theme-template.css file*/
@@ -13,8 +13,8 @@ body.dark {
--iqser-primary: #4d4fdd;
--iqser-primary-rgb: 77, 79, 221;
--iqser-primary-2: #4d97dd;
- --iqser-red-1: #4d4fdd;
- --iqser-red-2: #4d97dd;
+ --iqser-red-1: #dd4d50;
+ --iqser-red-2: #f16164;
--iqser-helpmode-primary: #fdbd00;
/*Override the default dark theme here*/
/*Copy CSS variables from theme-template.css file*/