From c5f072f6b6073ac07e8d999c754e612225cd81a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 26 Sep 2024 15:11:00 +0300 Subject: [PATCH 1/5] RED-9757: Working find panel toggle --- .../edit-dossier-dictionary.component.html | 49 ++++--------------- .../edit-dossier-dictionary.component.scss | 33 ++----------- .../dictionary-manager.component.html | 4 +- .../dictionary-manager.component.ts | 14 +++++- .../components/editor/editor.component.ts | 23 +++++++-- 5 files changed, 50 insertions(+), 73 deletions(-) diff --git a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html index 7d5b0684e..e3d988163 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html +++ b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html @@ -33,44 +33,15 @@
-
-
-
-
- {{ selectedDictionary?.label }} - -
-
-
- - - {{ - 'edit-dossier-dialog.dictionary.entries' - | translate: { length: entriesToDisplay.length, hint: selectedDictionary.hint } - }} - - - {{ - 'edit-dossier-dialog.dictionary.false-positive-entries' | translate: { length: entriesToDisplay.length } - }} - - - {{ - 'edit-dossier-dialog.dictionary.false-recommendation-entries' - | translate: { length: entriesToDisplay.length } - }} - -
-
-
-
+
+ {{ selectedDictionary?.label }} +
-
+
div { - font-weight: 600; - } - } - } + overflow: hidden; } } 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 4557166e6..c1429100c 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 @@ -13,7 +13,8 @@ > = this.#dictionaries; + protected readonly _isSearchOpen = signal(false); protected initialDossierTemplateId: string; readonly #currentTab = window.location.href.split('/').pop(); #dossierTemplate = this.dossierTemplatesService.all[0]; diff --git a/apps/red-ui/src/app/modules/shared/components/editor/editor.component.ts b/apps/red-ui/src/app/modules/shared/components/editor/editor.component.ts index 45a452d89..e2538f236 100644 --- a/apps/red-ui/src/app/modules/shared/components/editor/editor.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/editor/editor.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'; +import { Component, Input, model, OnChanges, OnInit, SimpleChanges, untracked } from '@angular/core'; import { LoadingService } from '@iqser/common-ui'; import { EditorThemeService } from '@services/editor-theme.service'; import { Subject } from 'rxjs'; @@ -39,6 +39,7 @@ export class EditorComponent implements OnInit, OnChanges { @Input() diffEditorText: string; @Input() @OnChange('revert') initialEntries: List; @Input() canEdit = false; + readonly isSearchOpen = model.required(); /** * Used as [modified] input on diff editor * Shouldn't be updated when editing in diff editor. @@ -84,9 +85,14 @@ export class EditorComponent implements OnInit, OnChanges { return this.currentEntries.length; } - async openFindPanel(): Promise { + async toggleFindPanel(): Promise { + const isFindPanelOpen = untracked(this.isSearchOpen); const editor = this.showDiffEditor ? this._diffEditor.getOriginalEditor() : this.codeEditor; - await editor.getAction('actions.find').run(); + if (isFindPanelOpen) { + await (editor.getContribution('editor.contrib.findController') as any).closeFindWidget(); + } else { + await editor.getAction('actions.find').run(); + } } onPaste(event: ClipboardEvent) { @@ -127,11 +133,13 @@ export class EditorComponent implements OnInit, OnChanges { this._diffEditor.getModifiedEditor().onDidChangeModelContent(() => { this.value = this._diffEditor.getModel().modified.getValue(); }); + this._initializeFindWidget(editor.getOriginalEditor()); this.#setTheme(); } onCodeEditorInit(editor: MonacoStandaloneCodeEditor): void { this.codeEditor = editor; + this._initializeFindWidget(editor); this.#setTheme(); } @@ -143,6 +151,15 @@ export class EditorComponent implements OnInit, OnChanges { this._editorTextChanged$.next(this.value); } + private _initializeFindWidget(editor: MonacoStandaloneCodeEditor): void { + this.isSearchOpen.set(false); + (editor.getContribution('editor.contrib.findController') as any).getState().onFindReplaceStateChange(event => { + if (event.isRevealed) { + this.isSearchOpen.update(v => !v); + } + }); + } + #getDecorations(newText: string) { const currentEntries = newText.split('\n'); const newDecorations: IModelDeltaDecoration[] = []; From aa30982ff1da9cf5e7745edd42e5f221a204b135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 26 Sep 2024 15:11:44 +0300 Subject: [PATCH 2/5] RED-9757: Show type switch for hints too --- .../dictionary/edit-dossier-dictionary.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html index e3d988163..9ceb3db03 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html +++ b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html @@ -56,7 +56,7 @@ [withFloatingActions]="false" > -
+
Date: Thu, 26 Sep 2024 15:14:03 +0300 Subject: [PATCH 3/5] RED-9757: Fixed button display --- .../dictionary/edit-dossier-dictionary.component.html | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html index 9ceb3db03..ceb6e9cca 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html +++ b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html @@ -37,6 +37,7 @@ {{ selectedDictionary?.label }} Date: Thu, 26 Sep 2024 21:22:26 +0300 Subject: [PATCH 4/5] RED-9757: Check for changes in dossier dictionary --- .../edit-annotation-dialog.component.ts | 14 +--- .../edit-dossier-dictionary.component.html | 8 +-- .../edit-dossier-dictionary.component.ts | 64 ++++++++++++++----- 3 files changed, 56 insertions(+), 30 deletions(-) diff --git a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/edit-annotation-dialog/edit-annotation-dialog.component.ts b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/edit-annotation-dialog/edit-annotation-dialog.component.ts index 58745f45b..156c920ce 100644 --- a/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/edit-annotation-dialog/edit-annotation-dialog.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/dialogs/docu-mine/edit-annotation-dialog/edit-annotation-dialog.component.ts @@ -8,7 +8,7 @@ import { IconButtonTypes, IqserDialogComponent, } from '@iqser/common-ui'; -import { Dictionary, Dossier, SuperTypes } from '@red/domain'; +import { Dictionary, Dossier } from '@red/domain'; import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service'; import { DictionaryService } from '@services/entity-services/dictionary.service'; import { Roles } from '@users/roles'; @@ -47,12 +47,12 @@ export class EditAnnotationDialogComponent extends IqserDialogComponent implements OnInit { - readonly #dossier: Dossier; readonly roles = Roles; readonly iconButtonTypes = IconButtonTypes; readonly redactedTexts: string[]; dictionaries: Dictionary[] = []; form: UntypedFormGroup; + readonly #dossier: Dossier; constructor( private readonly _activeDossiersService: ActiveDossiersService, @@ -60,7 +60,7 @@ export class EditAnnotationDialogComponent private readonly _formBuilder: FormBuilder, ) { super(); - this.#dossier = _activeDossiersService.find(this.data.dossierId); + this.#dossier = this._activeDossiersService.find(this.data.dossierId); const annotations = this.data.annotations; this.redactedTexts = annotations.map(annotation => annotation.value); this.form = this.#getForm(); @@ -83,10 +83,6 @@ export class EditAnnotationDialogComponent this.#setTypes(); } - reasonChanged() { - this.form.patchValue({ reason: this.dictionaries.find(d => d.type === SuperTypes.ManualRedaction) }); - } - save(): void { const value = this.form.value; this.dialogRef.close({ @@ -106,8 +102,4 @@ export class EditAnnotationDialogComponent type: [sameType ? this.data.annotations[0].type : null], }); } - - #allRectangles() { - return this.data.annotations.reduce((acc, a) => acc && a.AREA, true); - } } diff --git a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html index ceb6e9cca..d2ad69a42 100644 --- a/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html +++ b/apps/red-ui/src/app/modules/shared-dossiers/dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component.html @@ -1,7 +1,7 @@