diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.html b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.html index b485acbec..f9eb9bda6 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.html @@ -1,7 +1,7 @@ @@ -22,42 +22,19 @@
-
-
- {{ field.name }} -
-
-
- -
-
- - - - - - - - +
+
+
@@ -84,8 +61,8 @@ (action)="field.primaryAttribute = false; toggleFieldActive.emit(field)" [removeTooltip]="true" [tooltip]="'file-attributes-csv-import.action.remove' | translate" - icon="red:trash" [type]="circleButtonTypes.dark" + icon="red:trash" >
@@ -98,15 +75,15 @@
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.scss b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.scss index 26da02f23..dbff36713 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.scss +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.scss @@ -1,15 +1,10 @@ @import '../../../../../../assets/styles/variables'; -iqser-table-column-name::ng-deep > div { - padding: 0 13px 0 10px !important; - - &.name { - padding-left: 22px !important; - } +iqser-table-header::ng-deep iqser-table-column-name .name { + padding-left: 22px; } iqser-table-header::ng-deep .header-item { - padding: 0 24px 0 10px; box-shadow: none; border-top: 1px solid $separator; @@ -36,39 +31,26 @@ cdk-virtual-scroll-viewport { ::ng-deep.cdk-virtual-scroll-content-wrapper { grid-template-columns: 30px minmax(0, 350px) 150px auto auto auto 11px; - .table-item { - > div { - height: 50px; + .table-item > div { + height: 50px; - &:not(.scrollbar-placeholder) { - padding-left: 10px; + &:not(.scrollbar-placeholder) { + padding-left: 10px; - &.center { - align-items: center; - } - } - - &.name { - flex-direction: row; + &.center { align-items: center; - justify-content: flex-start; - - &:not(.editing) { - padding-left: 22px; - } - - .edit-name-button { - display: none; - } - - iqser-circle-button:first-of-type { - margin-left: 7px; - margin-right: 2px; - } } } - &:hover .name .edit-name-button { + iqser-editable-input:not(.editing) { + padding-left: 12px; + } + + iqser-editable-input::ng-deep .edit-button { + display: none; + } + + &:hover iqser-editable-input::ng-deep .edit-button { display: block; } } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss index dd2648c3a..e98a5567c 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss @@ -49,8 +49,8 @@ .csv-part { display: flex; - min-height: calc(90vh - 240px); - max-height: calc(90vh - 240px); + min-height: calc(90vh - 241px); + max-height: calc(90vh - 241px); .csv-part-header { height: 50px; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts index ede2f7481..73479ab63 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts @@ -16,8 +16,6 @@ export interface Field { type: FileAttributeConfig.TypeEnum; readonly: boolean; primaryAttribute: boolean; - editingName?: boolean; - temporaryName?: string; } @Component({ @@ -26,9 +24,7 @@ export interface Field { providers: [...DefaultListingServices] }) export class FileAttributesCsvImportDialogComponent extends ListingComponent { - protected readonly _primaryKey = 'csvColumn'; readonly tableColumnConfigs: TableColumnConfig[] = []; - parseResult: { data: any[]; errors: any[]; meta: any; fields: Field[] }; hoveredColumn: string; activeFields: Field[] = []; @@ -39,6 +35,7 @@ export class FileAttributesCsvImportDialogComponent extends ListingComponent -
- -
-
- -
- -
- - -
-
-
- - - diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/dossier-dictionary-dialog/dossier-dictionary-dialog.component.scss b/apps/red-ui/src/app/modules/dossier/dialogs/dossier-dictionary-dialog/dossier-dictionary-dialog.component.scss deleted file mode 100644 index 0434c4524..000000000 --- a/apps/red-ui/src/app/modules/dossier/dialogs/dossier-dictionary-dialog/dossier-dictionary-dialog.component.scss +++ /dev/null @@ -1,5 +0,0 @@ -.dialog-content { - height: calc(90vh - 160px); - box-sizing: border-box; - padding-bottom: 24px; -} diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/dossier-dictionary-dialog/dossier-dictionary-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/dossier-dictionary-dialog/dossier-dictionary-dialog.component.ts deleted file mode 100644 index 095680df5..000000000 --- a/apps/red-ui/src/app/modules/dossier/dialogs/dossier-dictionary-dialog/dossier-dictionary-dialog.component.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Component, Inject, ViewChild } from '@angular/core'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { DossierWrapper } from '@state/model/dossier.wrapper'; -import { DictionaryManagerComponent } from '@shared/components/dictionary-manager/dictionary-manager.component'; -import { DictionarySaveService } from '@shared/services/dictionary-save.service'; -import { AppStateService } from '@state/app-state.service'; -import { PermissionsService } from '@services/permissions.service'; - -@Component({ - selector: 'redaction-dossier-dictionary-dialog', - templateUrl: './dossier-dictionary-dialog.component.html', - styleUrls: ['./dossier-dictionary-dialog.component.scss'] -}) -export class DossierDictionaryDialogComponent { - canEdit = false; - @ViewChild('dictionaryManager', { static: false }) - private _dictionaryManager: DictionaryManagerComponent; - - constructor( - public permissionsService: PermissionsService, - public dialogRef: MatDialogRef, - @Inject(MAT_DIALOG_DATA) public dossier: DossierWrapper, - private readonly _appStateService: AppStateService, - private readonly _dictionarySaveService: DictionarySaveService - ) { - this.canEdit = this.permissionsService.isDossierMember(this.dossier) || this.permissionsService.isAdmin(); - } - - saveDossierDictionary() { - this._dictionarySaveService - .saveEntries( - this._dictionaryManager.currentEntries, - this._dictionaryManager.initialEntries, - this.dossier.dossierTemplateId, - 'dossier_redaction', - this.dossier.dossierId - ) - .subscribe(async () => { - await this._appStateService.reloadActiveDossierFiles(); - this._appStateService.updateDossierDictionary(this.dossier.dossierTemplateId, this.dossier.dossierId); - this.dialogRef.close(); - }); - } -} diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html index cba8cddd7..282593016 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html @@ -1,3 +1,28 @@ +
+
+
+
+
+ + {{ 'edit-dossier-dialog.dictionary.entries' | translate: { length: (dossierWrapper.type?.entries || []).length } }} +
+
+
+ + + + + + + + + + + + + +
+
{{ activeNavItem.title | translate }} - -
-
- - {{ - 'edit-dossier-dialog.dictionary.entries' - | translate: { length: (dossierWrapper.type?.entries || []).length } - }} -
-
{ - this.reloadDossiers(); - this._toaster.success(_('dossier-overview.reanalyse-dossier.success')); - }) - .catch(() => this._toaster.error(_('dossier-overview.reanalyse-dossier.error'))); + async reanalyseDossier() { + try { + await this._appStateService.reanalyzeDossier(); + await this.reloadDossiers(); + this._toaster.success(_('dossier-overview.reanalyse-dossier.success')); + } catch (e) { + this._toaster.error(_('dossier-overview.reanalyse-dossier.error')); + } } - reloadDossiers() { - this._appStateService.getFiles(this.currentDossier, false).then(() => { - this.calculateData(); - }); + async reloadDossiers() { + await this._appStateService.getFiles(this.currentDossier, false); + this.calculateData(); } calculateData(): void { @@ -209,9 +208,9 @@ export class DossierOverviewScreenComponent extends ListingComponent this.reloadDossiers() - ); + const data = { dossierWrapper: this.currentDossier, section: 'members' }; + this._dialogService.openDialog('editDossier', null, data, async () => await this.reloadDossiers()); } openDossierDictionaryDialog() { - this._dialogService.openDialog('dossierDictionary', null, this.currentDossier, () => { - this.reloadDossiers(); + const data = { dossierWrapper: this.currentDossier, section: 'dossierDictionary' }; + this._dialogService.openDialog('editDossier', null, data, async () => { + await this.reloadDossiers(); }); } diff --git a/apps/red-ui/src/app/modules/dossier/services/dossiers-dialog.service.ts b/apps/red-ui/src/app/modules/dossier/services/dossiers-dialog.service.ts index 33e1eb7a8..af7c61751 100644 --- a/apps/red-ui/src/app/modules/dossier/services/dossiers-dialog.service.ts +++ b/apps/red-ui/src/app/modules/dossier/services/dossiers-dialog.service.ts @@ -8,7 +8,6 @@ import { DocumentInfoDialogComponent } from '../dialogs/document-info-dialog/doc import { AppStateService } from '@state/app-state.service'; import { ManualAnnotationService } from './manual-annotation.service'; import { ManualAnnotationDialogComponent } from '../dialogs/manual-redaction-dialog/manual-annotation-dialog.component'; -import { DossierDictionaryDialogComponent } from '../dialogs/dossier-dictionary-dialog/dossier-dictionary-dialog.component'; import { EditDossierDialogComponent } from '../dialogs/edit-dossier-dialog/edit-dossier-dialog.component'; import { AssignReviewerApproverDialogComponent } from '../dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component'; import { AppConfigService } from '@app-config/app-config.service'; @@ -25,7 +24,6 @@ type DialogType = | 'assignFile' | 'recategorizeImage' | 'changeLegalBasis' - | 'dossierDictionary' | 'removeAnnotations' | 'forceRedaction' | 'manualAnnotation'; @@ -64,10 +62,6 @@ export class DossiersDialogService extends DialogService { changeLegalBasis: { component: ChangeLegalBasisDialogComponent }, - dossierDictionary: { - component: DossierDictionaryDialogComponent, - dialogConfig: { width: '90vw', height: '90vh' } - }, removeAnnotations: { component: RemoveAnnotationsDialogComponent }, diff --git a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.html b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.html index 9ec6ee5e4..6584addea 100644 --- a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.html +++ b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.html @@ -1,6 +1,6 @@
-
+
-
- - {{ 'dictionary-overview.compare.compare' | translate }} - -
-
- - {{ selectDossier.dossierName | translate }} - - {{ dossier.dossierName }} - - +
+
+ + {{ 'dictionary-overview.compare.compare' | translate }} + +
+
+ + {{ selectDossier.dossierName | translate }} + + {{ dossier.dossierName }} + + +
@@ -65,8 +67,8 @@
diff --git a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.scss b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.scss index f1dad3ac6..92f0772dc 100644 --- a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.scss +++ b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.scss @@ -50,6 +50,12 @@ ngx-monaco-editor { display: flex; align-items: center; margin-bottom: 16px; + justify-content: space-between; + + > .compare { + display: flex; + align-items: center; + } .mr-32 { margin-right: 32px; diff --git a/apps/red-ui/src/app/state/app-state.service.ts b/apps/red-ui/src/app/state/app-state.service.ts index 26eefa813..e747812c1 100644 --- a/apps/red-ui/src/app/state/app-state.service.ts +++ b/apps/red-ui/src/app/state/app-state.service.ts @@ -282,7 +282,7 @@ export class AppStateService { } updateDossierDictionary(dossierTemplateId: string, dossierId: string) { - // dossier exists, load it's dictionary + // dossier exists, load its dictionary this._dictionaryControllerService.getDictionaryForType(dossierTemplateId, 'dossier_redaction', dossierId).subscribe( typeData => { this.activeDossier.type = typeData; diff --git a/apps/red-ui/src/assets/styles/red-input.scss b/apps/red-ui/src/assets/styles/red-input.scss index c87d57727..f9607a98e 100644 --- a/apps/red-ui/src/assets/styles/red-input.scss +++ b/apps/red-ui/src/assets/styles/red-input.scss @@ -1,10 +1,8 @@ @import 'variables'; @import 'red-mixins'; -form { - .red-input-group:not(first-of-type) { - margin-top: 14px; - } +form .red-input-group:not(first-of-type) { + margin-top: 14px; } .red-input-group { @@ -103,13 +101,13 @@ form { border-radius: 8px; outline: none; margin-top: 3px; - min-height: 34px; + min-height: 36px; &.with-icon { padding-right: 34px; } - &:focus { + &:focus:not(:disabled):not(.mat-select-disabled) { border-color: $accent; } @@ -126,7 +124,8 @@ form { } } - &:disabled { + &:disabled, + &.mat-select-disabled { background-color: $grey-2; color: rgba($accent, 0.3); } diff --git a/libs/red-ui-http/src/lib/model/dictionary.ts b/libs/red-ui-http/src/lib/model/dictionary.ts index da92bed2f..7b32c04be 100644 --- a/libs/red-ui-http/src/lib/model/dictionary.ts +++ b/libs/red-ui-http/src/lib/model/dictionary.ts @@ -42,6 +42,10 @@ export interface Dictionary { * True if the type just for hint, not for redaction, default is false. */ hint?: boolean; + /** + * Label of the type + */ + label?: string; /** * The rank of this dictionary, higher rank means higher importance. */