Compare commits

..

1605 Commits

Author SHA1 Message Date
Dominique Eifländer
f182be3db0 Merge branch 'RED10758' into 'master'
RED-10758: Fix remove and recategorize request in applicationType DocuMine

See merge request redactmanager/red-ui!767
2025-01-29 09:30:57 +01:00
Rosario Allegro
81a32f6d58 RED-10758: Fix remove and recategorize request in applicationType DocuMine 2025-01-28 15:34:17 +01:00
Dan Percic
82552b1748 Merge branch 'VM/RED-9580' into 'master'
RED-9580 - added getOne method for stats service to call new users stats...

Closes RED-9580

See merge request redactmanager/red-ui!765
2024-12-13 11:29:39 +01:00
Valentin Mihai
af7a45d739 RED-9580 - added getOne method for stats service to call new users stats endpoint and updated data from "delete user dialog" with new backend data 2024-12-13 12:03:17 +02:00
Valentin-Gabriel Mihai
21013a6fe5 Merge branch 'RED-9885' into 'master'
RED-9885: fixed resize bar behavior & style.

See merge request redactmanager/red-ui!764
2024-12-12 18:13:07 +01:00
Nicoleta Panaghiu
c81ad67844 RED-9885: fixed resize bar behavior & style. 2024-12-12 17:47:56 +02:00
Valentin-Gabriel Mihai
13797f1fb3 Merge branch 'RED-10030' into 'master'
RED-10030: persist the keyColumn value even if csv mapping is disabled.

See merge request redactmanager/red-ui!763
2024-12-12 15:48:47 +01:00
Nicoleta Panaghiu
ef5cd39b16 RED-10030: persist the keyColumn value even if csv mapping is disabled. 2024-12-12 15:59:36 +02:00
Valentin-Gabriel Mihai
e133e944e3 Merge branch 'RED-10589' into 'master'
RED-10589 -  removed file workload from workflow item on documine.

See merge request redactmanager/red-ui!762
2024-12-12 09:34:31 +01:00
Nicoleta Panaghiu
2ffb5bbb63 RED-10589 - removed file workload from workflow item on documine. 2024-12-12 10:30:56 +02:00
Valentin Mihai
0f16644944 Merge branch 'master' into VM/RED-9580 2024-12-11 19:24:25 +02:00
Nicoleta Panaghiu
0b41159ee4 Merge branch 'VM/RED-10301' into 'master'
RED-10301 - set app type config vars based existing tenants from local storage...

Closes RED-10301

See merge request redactmanager/red-ui!761
2024-12-11 17:30:06 +01:00
Valentin Mihai
2a78aea898 RED-10301 - set app type config vars based existing tenants from local storage or used default config if no tenant was set before 2024-12-11 18:27:56 +02:00
Valentin-Gabriel Mihai
4c5face779 Merge branch 'RED-10647' into 'master'
RED-10647: fixed documine helpmode links.

See merge request redactmanager/red-ui!760
2024-12-11 17:15:10 +01:00
Nicoleta Panaghiu
b3a8a8d30c RED-10647: fixed documine helpmode links. 2024-12-11 18:09:56 +02:00
Valentin-Gabriel Mihai
7836750171 Merge branch 'RED-10659' into 'master'
RED-10659: implemented filtering, sorted filters and added search.

See merge request redactmanager/red-ui!759
2024-12-11 16:15:02 +01:00
Nicoleta Panaghiu
ef9d3d2e8f RED-10659: implemented filtering, sorted filters and added search. 2024-12-11 17:10:29 +02:00
Dan Percic
3ca846b2c2 Merge branch 'blah' into 'master'
skip quality gate?

See merge request redactmanager/red-ui!758
2024-12-11 10:09:52 +01:00
Dan Percic
ae7b68bc16 skip quality gate? 2024-12-11 11:07:42 +02:00
Dan Percic
3150134e65 Merge branch 'RED-9856' into 'master'
Resolve RED-9856

Closes RED-9856

See merge request redactmanager/red-ui!757
2024-12-10 18:25:07 +01:00
Nicoleta Panaghiu
b552628b43 RED-9856: implemented revert-changes feature. 2024-12-10 17:58:32 +02:00
Nicoleta Panaghiu
9b3eb4702b RED-9856: class rename. 2024-12-10 17:13:19 +02:00
Nicoleta Panaghiu
52fa98f918 RED-9856: wip; save this for future purposes. 2024-12-10 17:13:19 +02:00
Nicoleta Panaghiu
1d874f37b2 Merge branch 'VM/RED-10627' into 'master'
RED-10627 - updated re processing required color

Closes RED-10627

See merge request redactmanager/red-ui!756
2024-12-10 16:09:03 +01:00
Valentin Mihai
582ba6023e RED-10627 - updated re processing required color 2024-12-10 17:06:55 +02:00
Nicoleta Panaghiu
fbcb522b43 Merge branch 'VM/RED-7772' into 'master'
RED-7772 - shown 'is processing' icon for OCR_PROCESSING_QUEUED status

Closes RED-7772

See merge request redactmanager/red-ui!755
2024-12-10 15:31:59 +01:00
Valentin Mihai
1d3096d82c RED-7772 - shown 'is processing' icon for OCR_PROCESSING_QUEUED status 2024-12-10 16:28:43 +02:00
Valentin-Gabriel Mihai
43ea2e7857 Merge branch 'RED-10614' into 'master'
RED-10614: added missing comma.

See merge request redactmanager/red-ui!754
2024-12-09 17:21:19 +01:00
Nicoleta Panaghiu
92038a1949 RED-10614: added missing comma. 2024-12-09 18:18:49 +02:00
Christoph Schabert
a323ddd5dd add sonar-project props 2024-12-09 15:23:59 +01:00
Christoph Schabert
e70cdd4cc5 Update .gitlab-ci.yml file 2024-12-09 15:21:24 +01:00
Nicoleta Panaghiu
427a81cff6 Merge branch 'release/4.839.x' into 'master'
Add websockets to handle annotations & rules

See merge request redactmanager/red-ui!753
2024-12-09 13:38:42 +01:00
Dan Percic
4933c7a678 RED-9582 finish copilot 2024-12-09 14:37:02 +02:00
Dan Percic
8ee2ec5749 Merge branch 'VM/RED-10575' into 'master'
RED-10575 - added 40px between processing bar and read-only icon

Closes RED-10575

See merge request redactmanager/red-ui!752
2024-12-09 12:07:33 +01:00
Valentin Mihai
ce4216e56c RED-10575 - added 40px between processing bar and read-only icon 2024-12-09 12:47:55 +02:00
Dan Percic
a3526d338f Merge master 2024-12-09 11:33:19 +02:00
Dan Percic
65041f77c3 Merge branch 'nicoleta' into 'master'
RED-3800: fixed sass breaking changes; removed unused imports.

See merge request redactmanager/red-ui!751
2024-12-09 10:28:19 +01:00
Dan Percic
4206993c72 Merge branch 'RED-10512' into 'master'
RED-10512: fixed file attribute text selection.

See merge request redactmanager/red-ui!750
2024-12-09 10:27:29 +01:00
Nicoleta Panaghiu
a7d8dc6a66 RED-3800: fixed sass breaking changes; removed unused imports. 2024-12-09 10:53:04 +02:00
Nicoleta Panaghiu
56bdf1bc4d RED-10512: fixed file attribute text selection. 2024-12-07 11:59:51 +02:00
Dan Percic
acb009a909 Merge branch 'VM/RED-10634' into 'master'
RED-10634 - closed "edit component view" when component is deleted

Closes RED-10634

See merge request redactmanager/red-ui!749
2024-12-06 19:43:46 +01:00
Valentin Mihai
96532fa61e RED-10634 - closed "edit component view" when component is deleted 2024-12-06 20:33:31 +02:00
Dan Percic
eed7f1917e Merge branch 'master' into release/4.839.x 2024-12-06 20:18:56 +02:00
Valentin-Gabriel Mihai
51b99089e4 Merge branch 'RED-10614' into 'master'
RED-10614: fixed UI not loading.

See merge request redactmanager/red-ui!748
2024-12-06 18:31:33 +01:00
Nicoleta Panaghiu
118e35e897 RED-10614: fixed UI not loading. 2024-12-06 19:26:40 +02:00
Dan Percic
b9197b1eb3 Merge remote-tracking branch 'origin/master' into release/4.839.x 2024-12-05 13:37:08 +02:00
Nicoleta Panaghiu
568bb696a7 Merge branch 'ng-updates' into 'master'
Ng 19

See merge request redactmanager/red-ui!747
2024-12-05 11:52:34 +01:00
Dan Percic
43616297c8 lint 2024-12-05 12:51:00 +02:00
Dan Percic
51801a03a0 update other deps 2024-12-05 12:50:21 +02:00
Dan Percic
59254c0294 ng 19 2024-12-05 11:46:40 +02:00
Dan Percic
61b238d511 Merge branch 'VM/RED-10593' into 'master'
RED-10593 - when legalBasisValue = 'n-a' set empty string as param to not...

Closes RED-10593

See merge request redactmanager/red-ui!746
2024-12-05 10:35:25 +01:00
Dan Percic
d5ca5331a7 Merge branch 'VM/RED-10587' into 'master'
RED-10587 - Add auto new line for edit-component textfield

Closes RED-10587

See merge request redactmanager/red-ui!745
2024-12-05 10:34:59 +01:00
Dan Percic
8f72d8608b Merge branch 'VM/RED-9585' into 'master'
RED-9585 - set count param for user roles translations to 1 to not be...

Closes RED-9585

See merge request redactmanager/red-ui!744
2024-12-05 10:20:28 +01:00
Valentin Mihai
425f3da9d4 RED-10587 - Add auto new line for edit-component textfield 2024-12-04 20:05:43 +02:00
Valentin Mihai
34dc025b79 RED-10593 - when legalBasisValue = 'n-a' set empty string as param to not display "Annotation based on rule n-a" 2024-12-04 19:04:25 +02:00
Valentin Mihai
b2f8cda99b RED-9585 - set count param for user roles translations to 1 to not be automatically used the plural form when it is undefined 2024-12-04 18:33:58 +02:00
Nicoleta Panaghiu
dd1e0c672b Merge branch 'VM/RED-9585' into 'master'
RED-9585 - set count param for user roles translations

Closes RED-9585

See merge request redactmanager/red-ui!743
2024-12-04 16:59:57 +01:00
Valentin Mihai
0e3cf56034 RED-9585 - set count param for user roles translations 2024-12-04 17:58:45 +02:00
Valentin Mihai
bfe409305c RED-9580 - use new user stats endpoint for everything related to User Management 2024-12-04 15:47:30 +02:00
Valentin-Gabriel Mihai
b225917a51 Merge branch 'RED-10592' into 'master'
RED-10592: fixed listener to esc key in pdf viewer.

See merge request redactmanager/red-ui!742
2024-12-04 12:09:28 +01:00
Nicoleta Panaghiu
5359f5aca9 RED-10592: fixed listener to esc key in pdf viewer. 2024-12-04 13:07:50 +02:00
Dan Percic
1d2f450ba4 Merge branch 'VM/RED-10554' into 'master'
RED-10554 - stopped event propagation when click on download component button

Closes RED-10554

See merge request redactmanager/red-ui!741
2024-12-04 10:40:20 +01:00
Dan Percic
4aa03ba3c5 Merge branch 'VM/RED-10575' into 'master'
RED-10575 - hid the "read only" text when file is in processing state

Closes RED-10575

See merge request redactmanager/red-ui!740
2024-12-04 10:39:54 +01:00
Dan Percic
118e34b380 Merge branch 'VM/RED-10600' into 'master'
RED-10600 - updated can assign reviewer logic when file is set to done to...

Closes RED-10600

See merge request redactmanager/red-ui!739
2024-12-04 10:39:30 +01:00
Dan Percic
ff3c5768c6 Merge branch 'VM/RED-9585' into 'master'
RED-9585 - updated translation param

Closes RED-9585

See merge request redactmanager/red-ui!738
2024-12-04 10:39:11 +01:00
Valentin Mihai
f293eefe8c RED-10554 - stopped event propagation when click on download component button 2024-12-04 11:25:42 +02:00
Valentin Mihai
49c59897bf RED-10575 - hid the "read only" text when file is in processing state 2024-12-03 23:26:33 +02:00
Valentin Mihai
0e53484b62 RED-10600 - updated can assign reviewer logic when file is set to done to assign user when is moved back to "in review" 2024-12-03 20:13:43 +02:00
Valentin Mihai
842bd4e251 RED-9585 - updated translation param 2024-12-03 17:30:58 +02:00
Dan Percic
003817ed9d Merge branch 'VM/RED-10301' into 'master'
RED-10301 - Use RM/DM UI depending on application type of tenant

Closes RED-10301

See merge request redactmanager/red-ui!737
2024-12-03 13:15:23 +01:00
Valentin Mihai
fb68e63bd0 Merge branch 'master' into VM/RED-10301 2024-12-03 12:39:06 +02:00
Valentin Mihai
e6a03c3b30 RED-10301 - update common ui (lint fix) 2024-12-03 12:38:13 +02:00
Valentin Mihai
fb8b3a3b09 RED-10301 - Use RM/DM UI depending on application type of tenant 2024-12-03 12:36:26 +02:00
Valentin-Gabriel Mihai
43fd966bf1 Merge branch 'RED-10531' into 'master'
RED-10531: disabled more buttons for file with error state.

See merge request redactmanager/red-ui!736
2024-11-29 13:14:16 +01:00
Nicoleta Panaghiu
315fa5a440 RED-10531: disabled more buttons for file with error state. 2024-11-29 14:12:14 +02:00
Valentin-Gabriel Mihai
3be593f464 Merge branch 'RED-10563' into 'master'
RED-10563: fixed key actions not prevented when input is focused.

See merge request redactmanager/red-ui!735
2024-11-29 11:40:02 +01:00
Nicoleta Panaghiu
8c47a8b758 RED-10563: grouped key events and extracted the target check. 2024-11-29 12:38:17 +02:00
Nicoleta Panaghiu
5515a5b4d6 RED-10563: fixed key actions not prevented when input is focused. 2024-11-29 12:27:59 +02:00
Valentin-Gabriel Mihai
cee0a92430 Merge branch 'RED-3800' into 'master'
RED-3800: localazy manual sync for redact.

See merge request redactmanager/red-ui!734
2024-11-29 10:11:04 +01:00
Nicoleta Panaghiu
ddc163f286 RED-3800: localazy manual sync for redact. 2024-11-29 11:09:53 +02:00
Valentin-Gabriel Mihai
81ce0bc708 Merge branch 'RED-10314' into 'master'
RED-10314: added missing help mode toggles and keys in dialogs.

See merge request redactmanager/red-ui!733
2024-11-28 17:35:54 +01:00
Nicoleta Panaghiu
29c870631b RED-10314: added missing help mode toggles and keys in dialogs. 2024-11-28 18:32:17 +02:00
Valentin-Gabriel Mihai
261674339a Merge branch 'RED-10563' into 'master'
RED-10563: fixed pdf search input.

See merge request redactmanager/red-ui!732
2024-11-28 15:26:39 +01:00
Nicoleta Panaghiu
bfb418fdfd RED-10563: fixed pdf search input. 2024-11-28 16:24:58 +02:00
Valentin-Gabriel Mihai
5c8c191151 Merge branch 'RED-3800' into 'master'
RED-3800: redact manager localazy manual sync.

See merge request redactmanager/red-ui!731
2024-11-28 10:14:52 +01:00
Nicoleta Panaghiu
9e558944d1 RED-3800: redact manager localazy manual sync. 2024-11-28 11:10:00 +02:00
Valentin-Gabriel Mihai
d8134f6d42 Merge branch 'RED-10531' into 'master'
RED-10531: enable assignToSelf on error files; display assignee.

See merge request redactmanager/red-ui!730
2024-11-28 09:57:19 +01:00
Nicoleta Panaghiu
aa3ae524f4 RED-10531: enable assignToSelf on error files; display assignee. 2024-11-27 20:18:15 +02:00
Valentin-Gabriel Mihai
cd2b12c35a Merge branch 'RED-10517' into 'master'
RED-10517: disabled scrolling for select all annotations.

See merge request redactmanager/red-ui!729
2024-11-27 16:14:42 +01:00
Nicoleta Panaghiu
b7e1e5764e RED-10517: disabled scrolling for select all annotations. 2024-11-27 16:54:04 +02:00
Valentin-Gabriel Mihai
9ef4ba4af5 Merge branch 'RED-9885' into 'master'
Resolve RED-9885

Closes RED-9885

See merge request redactmanager/red-ui!728
2024-11-27 15:36:10 +01:00
Nicoleta Panaghiu
86deaceade RED-9885: removed unused class, reset the config file to redact. 2024-11-27 16:31:58 +02:00
Nicoleta Panaghiu
fd76d110d4 RED-9885: implemented resize file-preview components. 2024-11-27 16:28:47 +02:00
Nicoleta Panaghiu
21f67651ff Merge branch 'master' into RED-9885 2024-11-27 16:23:53 +02:00
Nicoleta Panaghiu
0cf22e96bc Merge branch 'VM/RED-10373' into 'master'
RED-10373 - fixed bulk remove for multiple text redactions by splitting them...

Closes RED-10373

See merge request redactmanager/red-ui!727
2024-11-26 11:49:23 +01:00
Valentin Mihai
86eeab5e69 RED-10373 - fixed bulk remove for multiple text redactions by splitting them into multiple requests as bulk endpoint do not support a list of redactions 2024-11-26 12:44:24 +02:00
Nicoleta Panaghiu
e8c98be687 RED-9885 - wip 2024-11-25 18:19:43 +02:00
Dan Percic
bf04423524 Merge branch 'RED-10528' into 'master'
RED-10528: added support for F5 when the pdf viewer is focused.

See merge request redactmanager/red-ui!726
2024-11-25 14:58:27 +01:00
Nicoleta Panaghiu
25df51af78 RED-10528: added support for F5 when the pdf viewer is focused. 2024-11-25 15:55:49 +02:00
Nicoleta Panaghiu
6ef4b981fc Merge branch 'RED-10484' into 'master'
RED-10484: conditionally hide value placeholder.

See merge request redactmanager/red-ui!725
2024-11-25 14:45:10 +01:00
Nicoleta Panaghiu
4bd13949f6 RED-10484: conditionally hide value placeholder. 2024-11-25 14:55:32 +02:00
Dan Percic
5fea526d6c Merge branch 'RED-10426' into 'master'
RED-10426: rewrote sorting considering given point as bottom left.

See merge request redactmanager/red-ui!724
2024-11-25 13:54:03 +01:00
Nicoleta Panaghiu
0b367efa27 RED-10426: rewrote sorting considering given point as bottom left. 2024-11-25 14:28:48 +02:00
Dan Percic
8d60e8d864 Merge branch 'RED-10509' into 'master'
RED-10509: disabled stopPropagation on documine .

See merge request redactmanager/red-ui!723
2024-11-25 10:47:12 +01:00
Nicoleta Panaghiu
047a599809 RED-10509: disabled stopPropagation on documine . 2024-11-25 11:03:52 +02:00
Valentin-Gabriel Mihai
44d361b658 Merge branch 'RED-10509' into 'master'
RED-10509: disabled stopPropagation when editing file attribute.

See merge request redactmanager/red-ui!722
2024-11-24 13:05:48 +01:00
Nicoleta Panaghiu
780976243a RED-10509: disabled stopPropagation when editing file attribute. 2024-11-24 13:46:05 +02:00
Nicoleta Panaghiu
820dab3bfb Merge branch 'VM/RED-10504' into 'master'
RED-10504 - displayed all file annotations on documine when devMode is active...

Closes RED-10504

See merge request redactmanager/red-ui!721
2024-11-24 11:19:09 +01:00
Valentin Mihai
67020213ed RED-10504 - displayed all file annotations on documine when devMode is active and removed page filtering 2024-11-23 19:42:31 +02:00
Valentin-Gabriel Mihai
13e019b5e5 Merge branch 'RED-10515' into 'master'
RED-10515: fixed multi select for hidden annotations.

See merge request redactmanager/red-ui!720
2024-11-22 14:50:25 +01:00
Nicoleta Panaghiu
78c8dcb8e6 RED-10515: fixed multi select for hidden annotations. 2024-11-22 15:49:04 +02:00
Valentin-Gabriel Mihai
db90ae538e Merge branch 'RED-10498' into 'master'
RED-10498: included RED_ADMIN permission requirement.

See merge request redactmanager/red-ui!719
2024-11-22 11:33:17 +01:00
Nicoleta Panaghiu
97484c5f1a RED-10498: included RED_ADMIN permission requirement. 2024-11-22 12:31:08 +02:00
Nicoleta Panaghiu
1f6bdc30c8 Merge branch 'RED-10443-update' into 'master'
RED-10443 - 500 Error occurs when selecting ISO-8859-1 as Encoding Type for...

Closes RED-10443

See merge request redactmanager/red-ui!718
2024-11-22 10:30:10 +01:00
corinaolariu
19dd650510 RED-10443 - 500 Error occurs when selecting ISO-8859-1 as Encoding Type for any CSV File Format - update
- update also the key ISO encoding to ISO-8859-1
2024-11-22 11:18:38 +02:00
Corina Olariu
72d57ca342 Merge branch 'RED-10443' into 'master'
RED-10443 - 500 Error occurs when selecting ISO-8859-1 as Encoding Type for any CSV File Format

Closes RED-10443

See merge request redactmanager/red-ui!714
2024-11-22 08:16:57 +01:00
Valentin-Gabriel Mihai
fc3258ad9a Merge branch 'RED-10148' into 'master'
RED-10148: fixed text selection; implemented key listener for shift.

See merge request redactmanager/red-ui!717
2024-11-21 17:14:30 +01:00
Nicoleta Panaghiu
2632675cbe RED-10148: fixed text selection; implemented key listener for shift. 2024-11-21 18:12:45 +02:00
Valentin-Gabriel Mihai
b7c820e87c Merge branch 'RED-10405' into 'master'
RED-10405 - fixed toggle disabled state.

See merge request redactmanager/red-ui!716
2024-11-21 16:32:45 +01:00
Nicoleta Panaghiu
3578ed8512 RED-10405 - fixed toggle disabled state. 2024-11-21 17:29:18 +02:00
Valentin-Gabriel Mihai
7c719b4d26 Merge branch 'RED-10484' into 'master'
RED-10484: removed multiplePages option for imported rectangles.

See merge request redactmanager/red-ui!713
2024-11-21 13:49:21 +01:00
Nicoleta Panaghiu
4e3de53e45 RED-10484: removed multiplePages option for imported rectangles. 2024-11-21 14:47:52 +02:00
corinaolariu
13cba9831c RED-10443 - 500 Error occurs when selecting ISO-8859-1 as Encoding Type for any CSV File Format
- update the value of ISO encoding to ISO-8859-1
2024-11-21 14:47:26 +02:00
Nicoleta Panaghiu
c02863b079 Merge branch 'VM/RED-10483' into 'master'
RED-10483 - stop making additional dossier requests which leads to "Dossier...

Closes RED-10483

See merge request redactmanager/red-ui!712
2024-11-21 10:35:55 +01:00
Valentin Mihai
27e64380b0 RED-10483 - stop making additional dossier requests which leads to "Dossier not found" error when dossier is already deleted 2024-11-21 11:34:00 +02:00
Valentin-Gabriel Mihai
2699b36ab0 Merge branch 'RED-10498' into 'master'
RED-10498 - added the locked rules indicator; implemented the reset

See merge request redactmanager/red-ui!711
2024-11-20 16:28:02 +01:00
Nicoleta Panaghiu
420c59a862 RED-10498 - added the locked rules indicator; implemented the reset 2024-11-20 17:15:15 +02:00
Nicoleta Panaghiu
5ece842b2c Merge branch 'VM/RED-10396' into 'master'
RED-10396 - undefined checks

Closes RED-10396

See merge request redactmanager/red-ui!710
2024-11-20 14:12:07 +01:00
Maverick Studer
6f77cef2ab Merge branch 'feature/RED-10115' into 'master'
RED-10115: Refactoring of justifications

Closes RED-10115

See merge request redactmanager/red-ui!703
2024-11-20 10:38:28 +01:00
Maverick Studer
54b59ab90c RED-10115: Refactoring of justifications 2024-11-20 10:38:27 +01:00
Valentin Mihai
01fb7f0a1a RED-10396 - undefined checks 2024-11-20 10:01:17 +02:00
Valentin-Gabriel Mihai
d7586c2705 Merge branch 'RED-10363' into 'master'
RED-10363: check for rules on analysis btn click; refactor to signals.

See merge request redactmanager/red-ui!709
2024-11-19 17:22:09 +01:00
Nicoleta Panaghiu
b00ff1186d RED-10363: check for rules on analysis btn click; refactor to signals. 2024-11-19 18:05:07 +02:00
Dan Percic
9bea3c487a Merge branch 'VM/RED-10491' into 'master'
RED-10491 - updated view mode when page is changed

Closes RED-10491

See merge request redactmanager/red-ui!707
2024-11-19 09:12:39 +01:00
Valentin Mihai
2b2c72fe04 RED-10491 - updated view mode when page is changed 2024-11-18 20:44:45 +02:00
Nicoleta Panaghiu
edadf1ea41 Merge branch 'VM/RED-9996' into 'master'
RED-9996 - pre-filter available annotation filter types in new DocuMine component view

Closes RED-9996

See merge request redactmanager/red-ui!706
2024-11-18 17:26:16 +01:00
Valentin Mihai
c8e5752395 WIP on master
RED-9996 - pre-filter available annotation filter types in new DocuMine component view
2024-11-18 18:20:57 +02:00
Valentin-Gabriel Mihai
bac2d96605 Merge branch 'RED-10426' into 'master'
RED-10426: implemented another method of sorting rectangles.

See merge request redactmanager/red-ui!705
2024-11-18 17:07:50 +01:00
Nicoleta Panaghiu
063d40f845 RED-10426: implemented another method of sorting rectangles. 2024-11-18 17:31:25 +02:00
Dan Percic
881ad3a110 Merge branch 'RED-10405' into 'master'
RED-10405: removed locked rules pending type and fixed pending count.

See merge request redactmanager/red-ui!704
2024-11-18 11:07:24 +01:00
Nicoleta Panaghiu
c248f55fbd RED-10405: removed locked rules pending type and fixed pending count. 2024-11-18 11:39:35 +02:00
Dan Percic
2501bf5d56 Merge branch 'RED-10363' into 'master'
RED-10363: fixed cosmetical issue, added tooltips to and disabled btns.

See merge request redactmanager/red-ui!702
2024-11-14 10:08:38 +01:00
Dan Percic
48c8613f9b Merge branch 'VM/RED-10460' into 'master'
RED-10460 - enable switching the language in Edit Profile page in non-dev mode

Closes RED-10460

See merge request redactmanager/red-ui!701
2024-11-14 10:08:14 +01:00
Dan Percic
b26053efa4 Merge branch 'VM/RED-10461' into 'master'
RED-10461 - updated message when upload a zip file

Closes RED-10461

See merge request redactmanager/red-ui!700
2024-11-14 10:07:27 +01:00
Nicoleta Panaghiu
32ef5393e2 RED-10363: fixed cosmetical issue, added tooltips to and disabled btns. 2024-11-14 11:04:10 +02:00
Valentin Mihai
abc54fae4f RED-10460 - enable switching the language in Edit Profile page in non-dev mode 2024-11-13 21:51:16 +02:00
Valentin Mihai
d094001792 RED-10461 - updated message when upload a zip file 2024-11-13 20:29:55 +02:00
Valentin-Gabriel Mihai
573e1f3865 Merge branch 'RED-10405' into 'master'
RED-10405: check if file isError, indent pending type, remove unknown.

See merge request redactmanager/red-ui!698
2024-11-13 18:43:38 +01:00
Nicoleta Panaghiu
d99f96b079 RED-10405: check if file isError, indent pending type, remove unknown. 2024-11-13 15:06:34 +02:00
Dan Percic
4b68708624 Merge branch 'RED-10397' into 'master'
RED-10397: changed the active state for redacted btn; hid rectangle btn.

See merge request redactmanager/red-ui!697
2024-11-13 12:43:18 +01:00
Nicoleta Panaghiu
7e764cdf62 RED-10397: changed the active state for redacted btn; hid rectangle btn. 2024-11-13 13:35:33 +02:00
Nicoleta Panaghiu
32dd6e6ced Merge branch 'VM/RED-10453' into 'master'
RED-10453 - reload file or files (bulk case) after approval request

Closes RED-10453

See merge request redactmanager/red-ui!696
2024-11-13 10:43:01 +01:00
Valentin Mihai
fb9242f637 RED-10453 - reload file or files (bulk case) after approval request 2024-11-13 11:28:41 +02:00
Dan Percic
acf4a4f4d7 Merge branch 'RED-10405' into 'master'
RED-10405: added labels and filtering for separate file pending types.

See merge request redactmanager/red-ui!695
2024-11-13 09:38:33 +01:00
Nicoleta Panaghiu
260a53aaf1 RED-10405: added labels and filtering for separate file pending types. 2024-11-13 10:29:34 +02:00
Dan Percic
42d4829f2e Merge branch 'VM/RED-10332' into 'master'
RED-10332 - fixed dictionary dropdown that did not update when another dossier...

Closes RED-10332

See merge request redactmanager/red-ui!694
2024-11-13 08:29:21 +01:00
Valentin Mihai
6ac6f0a441 RED-10332 - fixed dictionary dropdown that did not update when another dossier template was selected 2024-11-12 22:10:05 +02:00
Dan Percic
54ad666355 Merge branch 'VM/RED-10373' into 'master'
RED-10373 - remove redaction dialog updates to be able to create multiple bulk...

Closes RED-10373

See merge request redactmanager/red-ui!693
2024-11-12 16:52:58 +01:00
Valentin Mihai
43f4cc6c9e RED-10373 - remove redaction dialog updates to be able to create multiple bulk requests for rectangle annotations 2024-11-12 17:25:59 +02:00
Dan Percic
6219ceb0a2 Merge branch 'RED-10440' into 'master'
RED-10440: map redacted image hints to redaction.

See merge request redactmanager/red-ui!692
2024-11-12 13:00:57 +01:00
Nicoleta Panaghiu
725c99211b RED-10440: map redacted image hints to redaction. 2024-11-12 13:51:35 +02:00
Dan Percic
bcf29eea45 Merge branch 'RED-10363' into 'master'
RED-10363: fixed distinctUntilChanged comparator.

See merge request redactmanager/red-ui!691
2024-11-12 12:17:56 +01:00
Nicoleta Panaghiu
0d4546bb9e RED-10363: fixed distinctUntilChanged comparator. 2024-11-12 12:55:20 +02:00
Dan Percic
e4ce12057b Merge branch 'nicoleta' into 'master'
RED-3800: fixed generic errors.

See merge request redactmanager/red-ui!690
2024-11-12 11:29:03 +01:00
Nicoleta Panaghiu
19ecd12c5f RED-3800: fixed generic errors. 2024-11-12 12:23:18 +02:00
Dan Percic
b96e55f42c Merge branch 'VM/RED-10396' into 'master'
RED-10396 - fixed current page active annotations re evaluation when they are updated

Closes RED-10396

See merge request redactmanager/red-ui!689
2024-11-12 09:41:59 +01:00
Valentin Mihai
31d4018698 RED-10396 - fixed current page active annotations re evaluation when they are updated 2024-11-12 10:37:13 +02:00
Valentin Mihai
ef26003755 RED-10396 - fixed current page active annotations re evaluation when they are updated 2024-11-11 20:50:04 +02:00
Dan Percic
931d311281 Merge branch 'RED-10440' into 'master'
RED-10440: fixed redacted image hint display color.

See merge request redactmanager/red-ui!688
2024-11-11 16:05:38 +01:00
Nicoleta Panaghiu
01eda98415 RED-10440: fixed redacted image hint display color. 2024-11-11 16:47:08 +02:00
Nicoleta Panaghiu
1b0fe9d352 Merge branch 'VM/RED-10339' into 'master'
RED-10339 - Secondary Save button in redaction dialogs to store selected option as default

Closes RED-10339

See merge request redactmanager/red-ui!687
2024-11-11 14:52:12 +01:00
Valentin Mihai
f31db95241 RED-10339 - Secondary Save button in redaction dialogs to store selected option as default 2024-11-11 15:44:37 +02:00
Dan Percic
ebedde5ed6 Merge branch 'RED-10420' into 'master'
RED-10420: prevent page refresh by using stop propagation.

See merge request redactmanager/red-ui!686
2024-11-11 14:30:04 +01:00
Nicoleta Panaghiu
8e2ab6c2c4 RED-10420: prevent page refresh by using stop propagation. 2024-11-11 15:01:52 +02:00
Dan Percic
e1308b6fd5 Merge branch 'RED-10422' into 'master'
RED-10422 - improved number of requests with help of new changes endpoint

Closes RED-10422

See merge request redactmanager/red-ui!683
2024-11-11 13:05:07 +01:00
Dan Percic
a5b3caea11 Merge branch 'RED-10427' into 'master'
RED-10427: send rectangle updated value for edit on multiple pages.

See merge request redactmanager/red-ui!685
2024-11-11 13:04:48 +01:00
Nicoleta Panaghiu
de1495ee2e RED-10427: send rectangle updated value for edit on multiple pages. 2024-11-11 14:01:28 +02:00
Dan Percic
7a78dd6547 Merge branch 'RED-10363' into 'master'
RED-10363: disable analysis button when rules are locked.

See merge request redactmanager/red-ui!684
2024-11-11 12:46:40 +01:00
Nicoleta Panaghiu
8cdb869a10 RED-10363: disable analysis button when rules are locked. 2024-11-11 12:23:47 +02:00
Dan Percic
f5639ec79d Merge branch 'VM/RED-10332' into 'master'
RED-10332 - Dossier Template not changeable when comparing dossier...

Closes RED-10332

See merge request redactmanager/red-ui!491
2024-11-08 16:08:36 +01:00
Dan Percic
3d31728194 Merge branch 'RED-10426' into 'master'
RED-10426: sort annotations according to visual alignment.

See merge request redactmanager/red-ui!490
2024-11-08 16:08:09 +01:00
Valentin Mihai
a996eaf53c Merge branch 'master' into VM/RED-10332 2024-11-08 17:06:53 +02:00
Valentin Mihai
f0b6cf9712 WIP on VM/RED-10332
RED-10332 - Dossier Template not changeable when comparing dossier dictionaries in Edit dossier modal
2024-11-08 17:06:29 +02:00
Nicoleta Panaghiu
470685a94f RED-10426: sort annotations according to visual alignment. 2024-11-08 17:01:41 +02:00
Dan Percic
c10b2c49b5 Merge branch 'VM/RED-9585' into 'master'
RED-9585 - Incorrect capitalization in German translation + missing singular/plural distinction

Closes RED-9585

See merge request redactmanager/red-ui!489
2024-11-08 13:12:15 +01:00
Valentin Mihai
f1aa0e4817 RED-9585 - Incorrect capitalization in German translation + missing singular/plural distinction 2024-11-08 13:39:20 +02:00
Valentin Mihai
82e31fffd8 RED-10332 - Dossier Template not changeable when comparing dossier dictionaries in Edit dossier modal 2024-11-08 13:27:37 +02:00
Timo Bejan
cdc5d2ee6c RED-10422 - improved number of requests with help of new changes endpoint 2024-11-07 15:41:33 +02:00
Dan Percic
3d26a73b05 Merge branch 'RED-10423' into 'master'
RED-10423: fixed multiple pages rectangle remove action.

See merge request redactmanager/red-ui!682
2024-11-07 12:53:28 +01:00
Nicoleta Panaghiu
b1fb38027d RED-10423: fixed multiple pages rectangle remove action. 2024-11-07 13:19:03 +02:00
Dan Percic
eef1139c0d Merge branch 'RED-9646' into 'master'
RED-9646: enable toaster notifications for zip files.

See merge request redactmanager/red-ui!681
2024-11-06 15:32:04 +01:00
Nicoleta Panaghiu
cb0bdb89c5 RED-9646: enable toaster notifications for zip files. 2024-11-06 16:09:25 +02:00
Timo Bejan
d6a4b11b65 Merge branch 'RED-10414' into 'master'
RED-10414 Removed offset and fixed notification polling

Closes RED-10414

See merge request redactmanager/red-ui!680
2024-11-06 14:49:41 +01:00
Timo Bejan
a80a75ca77 RED-10414 Removed offset and fixed notification polling 2024-11-06 15:49:19 +02:00
Timo Bejan
a56c66d19f Merge branch 'RED-10414' into 'master'
RED-10414 Removed offset and fixed notification polling

Closes RED-10414

See merge request redactmanager/red-ui!679
2024-11-06 14:43:20 +01:00
Timo Bejan
bc7e2483c2 RED-10414 Removed offset and fixed notification polling 2024-11-06 15:42:37 +02:00
Dan Percic
00decf1f6c Merge remote-tracking branch 'origin/master' into release/4.839.x 2024-11-05 22:00:00 +02:00
Dan Percic
306b524dee copilot working as a conversation 2024-11-05 21:58:07 +02:00
Dan Percic
f26772d4a0 Merge branch 'RED-3800' into 'master'
RED-3800: manual localazy sync.

See merge request redactmanager/red-ui!678
2024-11-05 11:19:53 +01:00
Nicoleta Panaghiu
e39ab31397 RED-3800: manual localazy sync. 2024-11-05 12:16:33 +02:00
Dan Percic
208a1568b3 Merge branch 'VM/RED-10373' into 'master'
RED-10373 - Singular-Plural disctinction in translation for remove in document

Closes RED-10373

See merge request redactmanager/red-ui!677
2024-11-04 16:34:38 +01:00
Valentin Mihai
a7a4c18715 RED-10373 - Singular-Plural disctinction in translation for remove in document 2024-11-04 16:56:25 +02:00
Dan Percic
9228976803 Merge branch 'VM/RED-10332' into 'master'
RED-10332 - Dossier Template not changeable when comparing dossier...

Closes RED-10332

See merge request redactmanager/red-ui!676
2024-11-04 15:29:19 +01:00
Valentin Mihai
6619b9f4de RED-10332 - Dossier Template not changeable when comparing dossier dictionaries in Edit dossier modal 2024-11-04 16:07:38 +02:00
Kilian Schüttler
9f1f654521 Merge branch 'ai-creation-placeholders' into 'master'
Update AI creation placeholders

See merge request redactmanager/red-ui!674
2024-11-04 13:39:58 +01:00
Kilian Schuettler
ad974ef07b Update AI creation placeholders 2024-11-04 13:33:45 +01:00
Dan Percic
ff8009167b other fixes 2024-11-04 13:03:12 +02:00
Dan Percic
b3dc8b04c8 wip web socket annotations 2024-11-01 19:22:50 +02:00
Valentin-Gabriel Mihai
5684f97389 Merge branch 'RED-10258' into 'master'
Fix text not displayed in viewer

See merge request redactmanager/red-ui!673
2024-11-01 16:28:48 +01:00
Dan Percic
bce93733c9 fix matTooltip import 2024-11-01 17:15:04 +02:00
Dan Percic
c677bc17e4 Merge branch 'master' into release/4.839.x 2024-11-01 17:04:11 +02:00
Nicoleta Panaghiu
91e344ae28 Merge branch 'RED-10258' into 'master'
Fix text not displayed in viewer

See merge request redactmanager/red-ui!672
2024-11-01 15:48:15 +01:00
Dan Percic
f4ad886a79 RED-10258 Add all available fonts 2024-11-01 16:40:23 +02:00
Valentin-Gabriel Mihai
ef51c2dbe3 Merge branch 'RED-10206' into 'master'
RED-10206: disable new dossier button when the template is invalid.

See merge request redactmanager/red-ui!671
2024-11-01 13:51:10 +01:00
Nicoleta Panaghiu
8984078767 RED-10206: disable new dossier button when the template is invalid. 2024-11-01 14:49:43 +02:00
Nicoleta Panaghiu
59231003ea Merge branch 'VM/RED-9944' into 'master'
RED-9944 - Action Items don't appear in document area in webviewer when...

Closes RED-9944

See merge request redactmanager/red-ui!670
2024-11-01 13:44:21 +01:00
Dan Percic
fb2fa6e6c2 Merge branch 'RED-10363' into 'master'
RED-10363: added a toaster error for locked dossier template rules.

See merge request redactmanager/red-ui!669
2024-11-01 10:21:57 +01:00
Nicoleta Panaghiu
dc253b0254 RED-10363: added a toaster error for locked dossier template rules. 2024-11-01 11:15:09 +02:00
Dan Percic
f3c1de430b Merge branch 'RED-10330' into 'master'
RED-10330: fixed remove in this context option permissions.

See merge request redactmanager/red-ui!668
2024-11-01 09:30:22 +01:00
Nicoleta Panaghiu
af5adade4d RED-10330: fixed remove in this context option permissions. 2024-11-01 10:24:53 +02:00
Dan Percic
d150fe6f80 Merge branch 'RED-10331' into 'master'
RED-10331: quick fix for jumping selection circle button.

See merge request redactmanager/red-ui!667
2024-11-01 07:57:00 +01:00
Nicoleta Panaghiu
ff132b2d87 RED-10331: quick fix for jumping selection circle button. 2024-11-01 08:42:20 +02:00
Valentin Mihai
90e8af9765 RED-9944 - Action Items don't appear in document area in webviewer when bulk-select is still unintenionally active 2024-10-31 19:55:26 +02:00
Valentin-Gabriel Mihai
ab27b6f63b Merge branch 'RED-10163' into 'master'
RED-10163: fix delete justification by using technical_name as id.

See merge request redactmanager/red-ui!666
2024-10-31 13:23:30 +01:00
Nicoleta Panaghiu
dcc711d4eb RED-10163: fix delete justification by using technical_name as id. 2024-10-31 14:02:52 +02:00
Valentin-Gabriel Mihai
95d57642c4 Merge branch 'RED-10258' into 'master'
Fix text not displayed in viewer?

See merge request redactmanager/red-ui!665
2024-10-31 11:35:27 +01:00
Dan Percic
7252119228 update watermarks webviewer 2024-10-31 11:54:06 +02:00
Dan Percic
0adf3288c8 upgrade pdf web viewer 2024-10-31 11:40:09 +02:00
Dan Percic
b30a6e159c update common-ui 2024-10-31 11:28:25 +02:00
Dan Percic
3c8a814abb update common-ui 2024-10-31 11:27:00 +02:00
Dan Percic
42093b81b2 other updates 2024-10-31 11:24:04 +02:00
Dan Percic
f11ffa18a1 ng updates 2024-10-31 11:17:49 +02:00
Dan Percic
8f541081ae Merge branch 'master' into release/4.839.x 2024-10-31 10:32:42 +02:00
Valentin-Gabriel Mihai
6a215c0440 Merge branch 'RED-10331' into 'master'
RED-10331: fixed missing remove-button from pdf-viewer on multi-select.

See merge request redactmanager/red-ui!664
2024-10-30 15:06:59 +01:00
Nicoleta Panaghiu
ada527370f RED-10331: fixed missing remove-button from pdf-viewer on multi-select. 2024-10-30 16:06:13 +02:00
Valentin-Gabriel Mihai
97f0230ac5 Merge branch 'RED-9663' into 'master'
RED-9663: removed UNASSIGNED option from the status filter.

See merge request redactmanager/red-ui!663
2024-10-30 15:03:06 +01:00
Nicoleta Panaghiu
1070d62e47 RED-9663: removed UNASSIGNED option from the status filter. 2024-10-30 15:26:51 +02:00
Dan Percic
ba3cb01f02 Merge branch 'VM/RED-10198' into 'master'
RED-10198 - missleading error message - creating user with existing email

Closes RED-10198

See merge request redactmanager/red-ui!662
2024-10-30 13:38:45 +01:00
Dan Percic
c52116f4e7 Merge branch 'VM/RED-10256' into 'master'
RED-10256 - Bulk-local: Changes should not be filtered + Remove for...

Closes RED-10256

See merge request redactmanager/red-ui!661
2024-10-30 13:38:06 +01:00
Valentin Mihai
c787881c76 RED-10198 - missleading error message - creating user with existing email 2024-10-30 14:36:06 +02:00
Valentin Mihai
fa7fd420a8 RED-10256 - Bulk-local: Changes should not be filtered + Remove for image-based redactions and hints 2024-10-30 14:22:50 +02:00
Dan Percic
12d30af308 Merge branch 'VM/RED-10048' into 'master'
RED-10048 - Improve display of error messages for csv files

Closes RED-10048

See merge request redactmanager/red-ui!660
2024-10-30 12:59:07 +01:00
Valentin Mihai
4695d31c72 RED-10048 - Improve display of error messages for csv files 2024-10-30 13:34:26 +02:00
Dan Percic
866e6ac45a Merge branch 'RED-10218' into 'master'
RED-10218: fixed fileNameColumn width overlap.

See merge request redactmanager/red-ui!659
2024-10-30 11:40:05 +01:00
Nicoleta Panaghiu
b1f8453daf RED-10218: fixed fileNameColumn width overlap. 2024-10-30 12:31:31 +02:00
Dan Percic
317d6d576b Merge branch 'annotation-id' into 'master'
Copy AnotationId to clipboard on ctrl + alt + click

See merge request redactmanager/red-ui!658
2024-10-30 11:00:28 +01:00
Kilian Schuettler
d66ea4e154 Copy AnotationId to clipboard on ctrl + alt + click 2024-10-30 09:19:12 +01:00
Valentin-Gabriel Mihai
bcfb915d93 Merge branch 'RED-10326' into 'master'
RED-10326: fix display of documents in trash on retention capacity chart.

See merge request redactmanager/red-ui!657
2024-10-29 15:40:13 +01:00
Nicoleta Panaghiu
e5c3d9c07b RED-10326: fix display of documents in trash on retention capacity chart. 2024-10-29 16:39:22 +02:00
Valentin-Gabriel Mihai
8a8c1b957f Merge branch 'RED-10320' into 'master'
RED-10320: removed general configuration header subtitle.

See merge request redactmanager/red-ui!656
2024-10-29 14:46:07 +01:00
Nicoleta Panaghiu
76b7ec9bc5 RED-10320: removed general configuration header subtitle. 2024-10-29 15:41:21 +02:00
Valentin-Gabriel Mihai
78fa17dc73 Merge branch 'RED-10275' into 'master'
RED-10275: differentiate available types by applyToAll flag state.

See merge request redactmanager/red-ui!655
2024-10-29 14:26:46 +01:00
Nicoleta Panaghiu
e678f6f4b3 RED-10275: differentiate available types by applyToAll flag state. 2024-10-29 15:23:33 +02:00
Valentin-Gabriel Mihai
2eb6d7b27c Merge branch 'RED-3800' into 'master'
RED-3800: localazy manual sync.

See merge request redactmanager/red-ui!654
2024-10-29 13:21:16 +01:00
Nicoleta Panaghiu
5805bb2a33 RED-3800: localazy manual sync. 2024-10-29 14:19:49 +02:00
Valentin-Gabriel Mihai
e92c7632d5 Merge branch 'RED-9733' into 'master'
RED-9733: translated initials in workload icons.

See merge request redactmanager/red-ui!653
2024-10-29 12:14:16 +01:00
Nicoleta Panaghiu
370b116656 RED-9733: translated initials in workload icons. 2024-10-29 13:11:33 +02:00
Valentin-Gabriel Mihai
35ebe4774f Merge branch 'RED-10244' into 'master'
RED-10244: fix dossier with files not having template field disabled.

See merge request redactmanager/red-ui!652
2024-10-28 17:23:05 +01:00
Nicoleta Panaghiu
8fab3fc04d RED-10244: fix dossier with files not having template field disabled. 2024-10-28 18:21:03 +02:00
Nicoleta Panaghiu
3dc63bf77c Merge branch 'VM/RED-7340' into 'master'
RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design

Closes RED-7340

See merge request redactmanager/red-ui!651
2024-10-28 16:49:12 +01:00
Valentin Mihai
305bde5561 RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design 2024-10-28 17:47:37 +02:00
Valentin-Gabriel Mihai
048356bf3f Merge branch 'RED-3800' into 'master'
RED-3800: localazy manual sync.

See merge request redactmanager/red-ui!650
2024-10-28 16:45:18 +01:00
Nicoleta Panaghiu
b389b07a6e RED-3800: localazy manual sync. 2024-10-28 17:38:35 +02:00
Nicoleta Panaghiu
7f72ef0021 Merge branch 'VM/RED-10256' into 'master'
RED-10256 - Bulk-local: Changes should not be filtered + Remove for image-based redactions

Closes RED-10256

See merge request redactmanager/red-ui!648
2024-10-28 16:33:36 +01:00
Nicoleta Panaghiu
395c9b0cd3 Merge branch 'RED-10262' into 'master'
RED-10262: fixed cancel resize.

See merge request redactmanager/red-ui!649
2024-10-28 16:27:58 +01:00
Nicoleta Panaghiu
7e44bdf1e2 RED-10262: fixed cancel resize. 2024-10-28 17:25:09 +02:00
Valentin Mihai
9e0ec97845 RED-10256 - Bulk-local: Changes should not be filtered + Remove for image-based redactions 2024-10-28 17:22:54 +02:00
Nicoleta Panaghiu
0259bcee06 Merge branch 'VM/RED-9944' into 'master'
RED-9944 - Action Items don't appear in document area in webviewer when...

Closes RED-9944

See merge request redactmanager/red-ui!647
2024-10-28 16:01:14 +01:00
Valentin Mihai
64e7cce171 RED-9944 - Action Items don't appear in document area in webviewer when bulk-select is still unintenionally active 2024-10-28 16:55:24 +02:00
Nicoleta Panaghiu
4e39914cff Merge branch 'VM/RED-10256' into 'master'
RED-10256 - Bulk-local: Changes should not be filtered + Remove for image-based redactions

Closes RED-10256

See merge request redactmanager/red-ui!646
2024-10-28 12:52:52 +01:00
Valentin Mihai
5347f986e4 Merge branch 'master' into VM/RED-10256 2024-10-28 13:52:11 +02:00
Valentin Mihai
7dd24698b1 WIP on VM/RED-10256
RED-10256 - Bulk-local: Changes should not be filtered + Remove for image-based redactions
2024-10-28 13:47:29 +02:00
Adina Teudan
a8534a8b13 Merge branch 'RED-10264' into 'master'
RED-10264: remove includeUnprocessed from all manual change calls

Closes RED-10264

See merge request redactmanager/red-ui!645
2024-10-28 12:38:44 +01:00
Dan Percic
d15cedd6d1 Merge branch 'RED-3800' into 'master'
RED-3800: manual localazy sync.

See merge request redactmanager/red-ui!643
2024-10-25 13:54:47 +02:00
Kilian Schuettler
51e46f20f4 RED-10264: remove includeUnprocessed from all manual change calls 2024-10-25 13:50:27 +02:00
Nicoleta Panaghiu
3a5a91f1e1 RED-3800: manual localazy sync. 2024-10-25 14:34:26 +03:00
Dan Percic
7e910b9339 Merge branch 'RED-9447' into 'master'
RED-9447 && RED-10244

See merge request redactmanager/red-ui!631
2024-10-25 12:31:51 +02:00
Maverick Studer
0fbf580293 RED-9447 && RED-10244 2024-10-25 12:31:51 +02:00
Dan Percic
d8b20774f4 Merge branch 'VM/RED-7340' into 'master'
RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design

Closes RED-7340

See merge request redactmanager/red-ui!642
2024-10-24 10:01:12 +02:00
Dan Percic
63af59e624 Merge branch 'feature/RED-10260' into 'master'
feature/RED-10260: add quoteChar to componentMapping

Closes RED-10260

See merge request redactmanager/red-ui!640
2024-10-24 09:59:22 +02:00
Kilian Schüttler
61e9df1844 feature/RED-10260: add quoteChar to componentMapping 2024-10-24 09:59:21 +02:00
Valentin Mihai
a2823df27e RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design 2024-10-23 23:47:20 +03:00
Dan Percic
7557025b01 Merge branch 'RED-8277' into 'master'
RED-8277: update common ui.

See merge request redactmanager/red-ui!639
2024-10-23 15:31:33 +02:00
Nicoleta Panaghiu
96662844b2 RED-8277: update common ui. 2024-10-23 16:10:01 +03:00
Dan Percic
16e7cdaa1f Merge branch 'RED-10255' into 'master'
RED-10255: fixed force ignored hint action.

See merge request redactmanager/red-ui!637
2024-10-22 18:19:53 +02:00
Nicoleta Panaghiu
feffcd5cdc RED-10255: fixed force ignored hint action. 2024-10-22 19:19:01 +03:00
Dan Percic
89d26778f2 Merge branch 'RED-10227' into 'master'
RED-10227: fixed audit log date filters.

See merge request redactmanager/red-ui!636
2024-10-22 18:01:22 +02:00
Nicoleta Panaghiu
b7ea2ac415 RED-10227: fixed audit log date filters. 2024-10-22 19:00:17 +03:00
Dan Percic
bb1f86c9d2 Merge branch 'RED-8277' into 'master'
RED-8277: update common ui.

See merge request redactmanager/red-ui!635
2024-10-22 16:58:59 +02:00
Nicoleta Panaghiu
cc972db41d RED-8277: update common ui. 2024-10-22 17:56:57 +03:00
Dan Percic
d9ce51f7e3 Merge branch 'RED-10220' into 'master'
RED-10220: description and legalBasis fields are no longer required.

See merge request redactmanager/red-ui!634
2024-10-22 16:46:47 +02:00
Nicoleta Panaghiu
5dd75f836c RED-10220: description and legalBasis fields are no longer required. 2024-10-22 17:40:37 +03:00
Dan Percic
b45627b4a7 Merge branch 'VM/RED-7340' into 'master'
RED-7340 - red border around the page input field should only appear after the...

Closes RED-7340

See merge request redactmanager/red-ui!633
2024-10-22 16:27:28 +02:00
Dan Percic
404e783060 Merge branch 'VM/RED-9944' into 'master'
RED-9944 - Action Items don't appear in document area in webviewer when bulk-select is still unintenionally active

Closes RED-9944

See merge request redactmanager/red-ui!632
2024-10-22 16:27:09 +02:00
Valentin Mihai
3515b9a942 RED-7340 - red border around the page input field should only appear after the user has finished entering the page range 2024-10-22 17:20:37 +03:00
Valentin Mihai
b244d1e4b4 WIP on master
RED-9944 - Action Items don't appear in document area in webviewer when bulk-select is still unintenionally active
2024-10-22 16:33:40 +03:00
Dan Percic
c4729167cd Merge branch 'RED-10220' into 'master'
RED-10220: added support for justification technical name.

See merge request redactmanager/red-ui!630
2024-10-22 11:46:41 +02:00
Nicoleta Panaghiu
a7b652c137 RED-10220: added support for justification technical name. 2024-10-22 12:45:34 +03:00
Dan Percic
d396b782a7 Merge branch 'VM/RED-7340' into 'master'
RED-7340 - When a user has entered an invalid page range string, display a...

Closes RED-7340

See merge request redactmanager/red-ui!629
2024-10-21 17:14:40 +02:00
Valentin Mihai
965166a349 RED-7340 - When a user has entered an invalid page range string, display a read border around the input field 2024-10-21 18:06:01 +03:00
Valentin-Gabriel Mihai
733f811f9d Merge branch 'RED-3800' into 'master'
RED-3800: manual localazy sync.

See merge request redactmanager/red-ui!628
2024-10-18 16:34:33 +02:00
Nicoleta Panaghiu
7e42932028 RED-3800: manual localazy sync. 2024-10-18 17:23:12 +03:00
Nicoleta Panaghiu
cdc58066f6 Merge branch 'VM/RED-9944' into 'master'
RED-9944 - Action Items don't appear in document area in webviewer when...

Closes RED-9944

See merge request redactmanager/red-ui!627
2024-10-18 13:34:17 +02:00
Valentin Mihai
224dafcae6 RED-9944 - Action Items don't appear in document area in webviewer when bulk-select is still unintenionally active 2024-10-18 14:32:06 +03:00
Dan Percic
bb3f59f1bb Merge branch 'VM/RED-9585' into 'master'
RED-9585 - Incorrect capitalization in German translation + missing singular/plural distinction

Closes RED-9585

See merge request redactmanager/red-ui!626
2024-10-17 14:01:31 +02:00
Valentin Mihai
876127d1fb RED-9585 - Incorrect capitalization in German translation + missing singular/plural distinction 2024-10-17 14:45:27 +03:00
Dan Percic
f27807097d Merge branch 'RED-8277' into 'master'
RED-8277: fix redirect when intending to open primary file attribute.

See merge request redactmanager/red-ui!625
2024-10-17 11:03:50 +02:00
Nicoleta Panaghiu
68bfcf6700 RED-8277: fix redirect when intending to open primary file attribute. 2024-10-17 12:02:23 +03:00
Nicoleta Panaghiu
829e009d4c Merge branch 'RED-3800' into 'master'
Localazy manual sync

Closes RED-3800

See merge request redactmanager/red-ui!624
2024-10-16 22:14:30 +02:00
Adina Țeudan
6dbe365362 Localazy manual sync 2024-10-16 21:37:30 +03:00
Dan Percic
db1d65e601 Merge branch 'VM/RED-9944' into 'master'
RED-9944 - cancel the bulk-selection mode when a user clicks somewhere else

Closes RED-9944

See merge request redactmanager/red-ui!623
2024-10-16 17:12:00 +02:00
Valentin Mihai
767e688d3c RED-9944 - cancel the bulk-selection mode when a user clicks somewhere else 2024-10-16 17:40:45 +03:00
Dan Percic
e647d4b355 Merge branch 'RED-8277' into 'master'
RED-8277: made it possible to open dossiers and files in a new tab.

See merge request redactmanager/red-ui!622
2024-10-16 14:30:31 +02:00
Nicoleta Panaghiu
b85559c686 RED-8277: made it possible to open dossiers and files in a new tab. 2024-10-16 15:27:33 +03:00
Dan Percic
6f353ce01d Merge branch 'VM/RED-7340' into 'master'
RED-7340 - prefill the range fields in the edit and remove dialogs

Closes RED-7340

See merge request redactmanager/red-ui!621
2024-10-16 13:37:26 +02:00
Valentin Mihai
5dfea0175d WIP on master
RED-7340 - prefill the range fields in the edit and remove dialogs
2024-10-16 14:35:48 +03:00
Dan Percic
b4c0ce17de Merge branch 'RED-10180' into 'master'
RED-10180: sync localazy translation.

See merge request redactmanager/red-ui!620
2024-10-16 13:13:40 +02:00
Dan Percic
c805887bbd Merge branch 'RED-10190' into 'master'
RED-10190: fixed notification padding.

See merge request redactmanager/red-ui!619
2024-10-16 13:13:23 +02:00
Nicoleta Panaghiu
d4b419ded8 RED-10180: sync localazy translation. 2024-10-16 14:09:58 +03:00
Nicoleta Panaghiu
a5e70e9def RED-10190: fixed notification padding. 2024-10-16 13:56:43 +03:00
Dan Percic
d06cd4be54 Merge branch 'VM/RED-7340' into 'master'
RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design

Closes RED-7340

See merge request redactmanager/red-ui!618
2024-10-16 11:51:45 +02:00
Valentin Mihai
20d0334489 RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design 2024-10-16 11:56:00 +03:00
Dan Percic
5438e800c7 Merge branch 'VM/RED-7340' into 'master'
RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design

Closes RED-7340

See merge request redactmanager/red-ui!617
2024-10-15 16:20:01 +02:00
Valentin Mihai
4593b09bf3 RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design 2024-10-15 15:43:13 +03:00
Dan Percic
33ed133f9f Merge branch 'RED-10180' into 'master'
RED-10180: update common ui + remove unused import.

See merge request redactmanager/red-ui!616
2024-10-14 16:27:05 +02:00
Nicoleta Panaghiu
fe2214d12c RED-10180: update common ui + remove unused import. 2024-10-14 17:26:09 +03:00
Dan Percic
2e41ac041e Merge branch 'RED-10190' into 'master'
RED-10190: fixed notifications redirect links.

See merge request redactmanager/red-ui!615
2024-10-14 16:11:22 +02:00
Dan Percic
98c3f749d8 Merge branch 'feature/RED-10072' into 'master'
RED-10072: AI description field and toggle for entities

Closes RED-10072

See merge request redactmanager/red-ui!614
2024-10-14 16:05:50 +02:00
Nicoleta Panaghiu
851b9fb3b2 RED-10190: fixed notifications redirect links. 2024-10-14 17:04:27 +03:00
Dan Percic
6aea290693 Merge branch 'RED-10182' into 'master'
RED-10182: fixed scrolling to annotation in workload upon selection.

See merge request redactmanager/red-ui!613
2024-10-14 15:58:07 +02:00
Nicoleta Panaghiu
ace0ecfce1 RED-10182: fixed scrolling to annotation in workload upon selection. 2024-10-14 16:34:00 +03:00
Dan Percic
a8c4f6dd29 Merge branch 'RED-10179' into 'master'
RED-10179 & RED-10177: fixed translations.

See merge request redactmanager/red-ui!612
2024-10-14 15:09:45 +02:00
Nicoleta Panaghiu
3818741453 RED-10179 & RED-10177: fixed translations. 2024-10-14 16:07:55 +03:00
Dan Percic
da3c18fde2 Merge branch 'RED-10132' into 'master'
RED-10132: save comment value for bulkLocal as well.

See merge request redactmanager/red-ui!611
2024-10-14 13:17:59 +02:00
Dan Percic
9836c2aab5 Merge branch 'RED-10183' into 'master'
RED-10183: use the user preferred language + component refactoring.

See merge request redactmanager/red-ui!610
2024-10-14 13:14:42 +02:00
maverickstuder
46202a0b64 RED-10072: AI description field and toggle for entities 2024-10-14 12:30:14 +02:00
Nicoleta Panaghiu
16a8d91815 RED-10132: save comment value for bulkLocal as well. 2024-10-14 13:21:49 +03:00
Nicoleta Panaghiu
6f5cd79a7f RED-10183: use the user preferred language + component refactoring. 2024-10-14 13:10:23 +03:00
Dan Percic
bf7fab3600 Merge branch 'RED-10011' into 'master'
RED-10011: Fixed broken menu after accessing configuration

Closes RED-10011

See merge request redactmanager/red-ui!609
2024-10-11 12:09:51 +02:00
Dominique Eifländer
d4653ca983 RED-10011: Fixed broken menu after accessing configuration 2024-10-11 11:22:24 +02:00
Nicoleta Panaghiu
c9444d7747 Merge branch 'VM/RED-9944' into 'master'
RED-9944 - Action Items don't appear in document area in webviewer when...

Closes RED-9944

See merge request redactmanager/red-ui!608
2024-10-10 15:54:43 +02:00
Valentin Mihai
287b95a538 RED-9944 - Action Items don't appear in document area in webviewer when bulk-select is still unintenionally active 2024-10-10 16:48:06 +03:00
Dan Percic
686f390b1a Merge branch 'RED-9381' into 'master'
RED-9381: added back the watermark pagination translations.

See merge request redactmanager/red-ui!607
2024-10-10 14:01:01 +02:00
Nicoleta Panaghiu
46fba3ca5a RED-9381: added back the watermark pagination translations. 2024-10-10 14:53:22 +03:00
Dan Percic
7d2f07d6b0 Merge branch 'RED-10105' into 'master'
RED-10105: added ids on dossier state related buttons.

See merge request redactmanager/red-ui!606
2024-10-10 11:57:20 +02:00
Nicoleta Panaghiu
6f9d2a7c85 RED-10105: added ids on dossier state related buttons. 2024-10-10 12:49:56 +03:00
Dan Percic
59998396d4 Merge branch 'RED-9554' into 'master'
RED-9554: use backend error message for dossier attributes.

See merge request redactmanager/red-ui!605
2024-10-09 18:07:45 +02:00
Nicoleta Panaghiu
60e151db0f RED-9554: use backend error message for dossier attributes. 2024-10-09 18:20:11 +03:00
Dan Percic
211d81ab7a Merge branch 'RED-9381' into 'master'
RED-9381: recovered translations for pdf viewer and annotation content.

See merge request redactmanager/red-ui!604
2024-10-09 16:58:41 +02:00
Nicoleta Panaghiu
eb255daac2 RED-9381: recovered translations for pdf viewer and annotation content. 2024-10-09 17:57:40 +03:00
Dan Percic
032b1eeabe Merge branch 'RED-10144' into 'master'
RED-10144: fixed multi-selection randomly activating.

See merge request redactmanager/red-ui!603
2024-10-09 16:31:04 +02:00
Nicoleta Panaghiu
4526138fae RED-10144: fixed multi-selection randomly activating. 2024-10-09 16:54:38 +03:00
Adina Teudan
428f1dd5fb Merge branch 'RED-10128' into 'master'
RED-10128: Incorrect File Extension for Downloaded (Multi-file) Reports

Closes RED-10128

See merge request redactmanager/red-ui!601
2024-10-08 16:55:48 +02:00
Nicoleta Panaghiu
4f4f286a5e Merge branch 'VM/RED-7340' into 'master'
RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design

Closes RED-7340

See merge request redactmanager/red-ui!602
2024-10-08 14:26:04 +02:00
maverickstuder
05799650e6 RED-10128: Incorrect File Extension for Downloaded (Multi-file) Reports 2024-10-08 14:05:15 +02:00
Valentin Mihai
d67bef3001 Merge branch 'master' into VM/RED-7340 2024-10-08 00:52:34 +03:00
Valentin Mihai
76d329b888 RED-7340 - Rectangle redactions: Use bulk-local redactions + New dialog design 2024-10-08 00:51:21 +03:00
Adina Teudan
0329e74bbd Merge branch 'RED-10034' into 'master'
Resolve RED-10034

Closes RED-10034

See merge request redactmanager/red-ui!600
2024-10-07 18:35:16 +02:00
Adina Țeudan
9fabb7223a RED-10034: More performance improvements 2024-10-07 19:10:33 +03:00
Adina Țeudan
671c44438d RED-10034: File workload improvementes - WIP 2024-10-07 16:23:08 +03:00
Valentin Mihai
2377fbff55 RED-7340 - removed dictionary & false positive logic from rectangle annotation dialog 2024-10-05 22:55:28 +03:00
Valentin Mihai
af17c026ff Merge branch 'master' into VM/RED-7340 2024-10-05 20:51:23 +03:00
Valentin Mihai
7a1e968a52 RED-7340 - converted ManualAnnotationDialog into RectangleAnnotationDialog 2024-10-05 20:50:40 +03:00
Dan Percic
8e9f6e19bf Merge branch 'RED-3800' into 'master'
RED-3800: Localazy manual sync

Closes RED-3800

See merge request redactmanager/red-ui!599
2024-10-03 13:53:15 +02:00
Adina Țeudan
bef117a22c RED-3800: Localazy manual sync 2024-10-03 14:50:58 +03:00
Dan Percic
d4a50efc38 Merge branch 'RED-9559' into 'master'
RED-9559: dashboard skeleton, empty state and stats have the same width.

See merge request redactmanager/red-ui!598
2024-10-03 13:46:04 +02:00
Nicoleta Panaghiu
6693933941 RED-9559: dashboard skeleton, empty state and stats have the same width. 2024-10-03 14:33:09 +03:00
Dan Percic
b627b181e3 Merge branch 'RED-9578' into 'master'
RED-9578: fixed styles.

See merge request redactmanager/red-ui!597
2024-10-02 13:36:20 +02:00
Nicoleta Panaghiu
fcf159d091 RED-9578: fixed styles. 2024-10-02 14:32:57 +03:00
Dan Percic
aa9de3c369 Merge branch 'RED-9578' into 'master'
RED-9578: filter files without warnings.

See merge request redactmanager/red-ui!595
2024-09-30 13:11:32 +02:00
Nicoleta Panaghiu
b989da3f05 RED-9578: filter files without warnings. 2024-09-30 14:10:10 +03:00
Dan Percic
cdf39fd838 Merge branch 'RED-9722' into 'master'
RED-9722: split bulk remove-from-dict request into batches.

See merge request redactmanager/red-ui!594
2024-09-30 12:42:25 +02:00
Nicoleta Panaghiu
c3fbb9100a RED-9722: split bulk remove-from-dict request into batches. 2024-09-30 13:29:00 +03:00
Timo Bejan
fbc7dfce60 Merge branch 'RED-10034' into 'master'
RED-10034: Removed unnecessary draw call?

Closes RED-10034

See merge request redactmanager/red-ui!593
2024-09-28 16:13:35 +02:00
Adina Țeudan
bde8bd8475 Merge remote-tracking branch 'origin/master' into RED-10034 2024-09-28 17:10:10 +03:00
Adina Țeudan
c713b9d2f4 RED-10034: Improved UI components, reduced function calls 2024-09-28 17:06:43 +03:00
Dan Percic
25a0848c3e Merge branch 'RED-9381' into 'master'
Resolve RED-9381

Closes RED-9381

See merge request redactmanager/red-ui!592
2024-09-28 11:11:11 +02:00
Adina Țeudan
ccd008666e RED-10034: Removed unnecessary draw call? 2024-09-27 17:08:11 +03:00
Valentin Mihai
40d9eb15cf Merge branch 'master' into VM/RED-7340 2024-09-27 17:00:59 +03:00
Valentin Mihai
fad870e83e RED-7340 - WIP on Rectangle redactions: Use bulk-local redactions + New dialog design 2024-09-27 16:43:01 +03:00
Nicoleta Panaghiu
0f494b10d0 RED-9381: translations for annotation content tooltip. 2024-09-27 15:40:21 +03:00
Nicoleta Panaghiu
b2091d4f83 Merge remote-tracking branch 'origin/master' into RED-9381 2024-09-27 15:26:00 +03:00
Dan Percic
7b9c0d85cd Merge branch 'RED-9757' into 'master'
Resolve RED-9757

Closes RED-9757

See merge request redactmanager/red-ui!591
2024-09-27 12:35:24 +02:00
Adina Țeudan
5662cccc98 RED-9757: Updated translations 2024-09-26 21:23:28 +03:00
Adina Țeudan
2b6001402a RED-9757: Check for changes in dossier dictionary 2024-09-26 21:22:26 +03:00
Adina Țeudan
8d9df1f397 RED-9757: Fixed button display 2024-09-26 15:14:03 +03:00
Adina Țeudan
aa30982ff1 RED-9757: Show type switch for hints too 2024-09-26 15:11:44 +03:00
Adina Țeudan
c5f072f6b6 RED-9757: Working find panel toggle 2024-09-26 15:11:00 +03:00
Nicoleta Panaghiu
fb8e66e32d RED-9381: translations for pdf-viewer elements and watermarks editor. 2024-09-26 14:42:29 +03:00
Dan Percic
d457f9a46f Merge branch 'RED-7346' into 'master'
RED-7346: bulk-local edit redactions

Closes RED-7346

See merge request redactmanager/red-ui!590
2024-09-26 13:35:30 +02:00
Adina Țeudan
6bbe992940 RED-7346: bulk-local edit redactions 2024-09-26 14:31:11 +03:00
Valentin-Gabriel Mihai
1cb658f9d1 Merge branch 'RED-10064' into 'master'
RED-10064: added id on report container for hover + component refactor.

See merge request redactmanager/red-ui!589
2024-09-26 13:21:13 +02:00
Nicoleta Panaghiu
b3de35eac7 RED-10064: added id on report container for hover + component refactor. 2024-09-26 14:00:06 +03:00
Dan Percic
5bb7c780a1 Merge branch 'RED-9985' into 'master'
RED-9985: prevent filter categories from collapsing upon selection.

See merge request redactmanager/red-ui!588
2024-09-26 11:19:53 +02:00
Nicoleta Panaghiu
5c5d1dc877 RED-9985: prevent filter categories from collapsing upon selection. 2024-09-26 11:52:21 +03:00
Nicoleta Panaghiu
8ab324f69e Merge branch 'VM/RED-7345' into 'master'
RED-7345 - added translation for value

Closes RED-7345

See merge request redactmanager/red-ui!587
2024-09-25 15:17:40 +02:00
Valentin Mihai
e30a54297a RED-7345 - added translation for value 2024-09-25 16:14:00 +03:00
Dan Percic
c4fc832ef6 Merge branch 'RED-9486' into 'master'
RED-9486: fixed naming of images in remove dialog.

See merge request redactmanager/red-ui!586
2024-09-25 13:57:49 +02:00
Nicoleta Panaghiu
750312c59e RED-9486: fixed naming of images in remove dialog. 2024-09-25 14:54:14 +03:00
Dan Percic
e8665f7484 Merge branch 'RED-9578' into 'master'
RED-9578: fixed issues and rewrote the annotations table component.

See merge request redactmanager/red-ui!585
2024-09-25 12:56:21 +02:00
Nicoleta Panaghiu
81669177cd RED-9578: fixed issues and rewrote the annotations table component. 2024-09-25 13:54:26 +03:00
Dan Percic
dc063218ff Merge branch 'RED-10011' into 'master'
RED-10011: Show stmp configuration only if license feature configurableSMTPServer is set to true

Closes RED-10011

See merge request redactmanager/red-ui!584
2024-09-24 10:56:34 +02:00
Dominique Eifländer
004025636c RED-10011: Show stmp configuration only if license feature configurableSMTPServer is set to true 2024-09-24 10:52:20 +02:00
Dan Percic
5a2e806e4a Merge branch 'VM/RED-7345' into 'master'
RED-7345 - Add/Remove bulk-local text redaction option in dialogs

Closes RED-7345

See merge request redactmanager/red-ui!583
2024-09-24 08:48:32 +02:00
Valentin Mihai
b918933665 RED-7345 - Add/Remove bulk-local text redaction option in dialogs 2024-09-24 09:47:07 +03:00
Nicoleta Panaghiu
e39e2522aa Merge branch 'VM/RED-7345' into 'master'
VM/RED-7345 - Add/Remove bulk-local text redaction option in dialogs

Closes RED-7345

See merge request redactmanager/red-ui!582
2024-09-23 16:32:56 +02:00
Valentin Mihai
8caa92d663 Merge branch 'master' into VM/RED-7345 2024-09-23 17:24:03 +03:00
Valentin Mihai
0be67a8589 RED-7345 - added bulk local remove logic for "remove redaction" dialog 2024-09-23 17:23:15 +03:00
Dominique Eifländer
d0250f3fd0 Merge branch 'RED-10084' into 'master'
RED-10084: All members of a dossier are able to reanalyse files in error...

Closes RED-10084

See merge request redactmanager/red-ui!575
2024-09-23 15:47:29 +02:00
Valentin-Gabriel Mihai
a11bb2282f Merge branch 'RED-9822' into 'master'
RED-9822: DocuMine translations

Closes RED-9822

See merge request redactmanager/red-ui!581
2024-09-23 15:05:40 +02:00
Adina Țeudan
664410821c RED-9822: DocuMine translations 2024-09-23 16:04:53 +03:00
Valentin-Gabriel Mihai
a2a0defa23 Merge branch 'RED-9993' into 'master'
RED-9993: fixed license labels.

See merge request redactmanager/red-ui!580
2024-09-23 14:59:22 +02:00
Nicoleta Panaghiu
c6595c6481 RED-9993: fixed license labels. 2024-09-23 15:56:31 +03:00
Valentin-Gabriel Mihai
cbedb8370b Merge branch 'RED-9840' into 'master'
RED-9840: Allow to open global search results in a new browser tab

Closes RED-9840

See merge request redactmanager/red-ui!579
2024-09-23 14:53:11 +02:00
Adina Țeudan
b92d9c9e04 RED-9840: Allow to open global search results in a new browser tab 2024-09-23 15:52:20 +03:00
Valentin-Gabriel Mihai
bd054ecedd Merge branch 'RED-9757' into 'master'
Revision of the dossier dictionary presentation

Closes RED-9757

See merge request redactmanager/red-ui!576
2024-09-23 14:45:37 +02:00
Valentin-Gabriel Mihai
9dfa101afe Merge branch 'RED-9170' into 'master'
Use new transactional endpoint for updating dictionaries

Closes RED-9170

See merge request redactmanager/red-ui!578
2024-09-23 14:45:26 +02:00
Valentin Mihai
f52a378280 WIP on VM/RED-7345
RED-7345 - adapted "force redaction" and "accept recommendation" dialogs to use new bulk-local api
2024-09-23 14:45:54 +03:00
Adina Țeudan
bda96f952e Use new transactional endpoint for updating dictionaries 2024-09-23 14:12:29 +03:00
Valentin-Gabriel Mihai
79fb9bd785 Merge branch 'RED-9830' into 'master'
RED-9830: Don't send additional comment request for annotation edit

Closes RED-9830

See merge request redactmanager/red-ui!577
2024-09-23 12:26:04 +02:00
Adina Țeudan
5de6b359ee Revision of the dossier dictionary presentation 2024-09-23 13:18:05 +03:00
Dominique Eifländer
b5f1afb81e RED-10084: All members of a dossier are able to reanalyse files in error state, no only the owner or assignee 2024-09-23 11:53:26 +02:00
Christoph Schabert
63e53cb2ed Update .gitlab-ci.yml file 2024-09-23 11:31:08 +02:00
Christoph Schabert
7f08355311 Update .gitlab-ci.yml file 2024-09-23 11:25:36 +02:00
Valentin-Gabriel Mihai
76403ef8ea Merge branch 'RED-10028' into 'master'
RED-10028: added OPTIMIZED_PREVIEW file type in download selection.

See merge request redactmanager/red-ui!574
2024-09-23 11:25:01 +02:00
Christoph Schabert
12768b5219 Update .gitlab-ci.yml file 2024-09-23 11:22:16 +02:00
Christoph Schabert
aa2012bbda Update .gitlab-ci.yml file 2024-09-23 11:19:06 +02:00
Nicoleta Panaghiu
179abe4f37 RED-10028: added OPTIMIZED_PREVIEW file type in download selection. 2024-09-23 11:58:39 +03:00
Adina Țeudan
43154346e3 RED-9830: Don't send additional comment request for annotation edit 2024-09-23 11:54:00 +03:00
Valentin Mihai
1b9128a68f Merge branch 'master' into VM/RED-7345 2024-09-23 11:12:25 +03:00
Valentin Mihai
b5b465d56f RED-7345 - update common ui 2024-09-23 11:11:02 +03:00
Dan Percic
94cbb2cf3d Merge branch 'RED-9900' into 'master'
RED-9900: removed help mode helper elements from hidden buttons.

See merge request redactmanager/red-ui!573
2024-09-19 16:59:11 +02:00
Dan Percic
a51e68c3d8 Merge branch 'RED-9578' into 'master'
RED-9578: implemented the new approval modal layout.

See merge request redactmanager/red-ui!572
2024-09-19 16:58:56 +02:00
Nicoleta Panaghiu
7208126584 RED-9900: removed help mode helper elements from hidden buttons. 2024-09-19 17:36:15 +03:00
Nicoleta Panaghiu
256305d12f RED-9578: implemented the new approval modal layout. 2024-09-19 15:03:32 +03:00
Dan Percic
7996bc7e23 Merge branch 'RED-10050' into 'master'
RED-10050: fixed navigating to doc with filtered annotations issue.

See merge request redactmanager/red-ui!571
2024-09-18 13:06:24 +02:00
Nicoleta Panaghiu
e86a7cf59f RED-10050: fixed navigating to doc with filtered annotations issue. 2024-09-18 13:57:54 +03:00
Dan Percic
6abcbc96ac Merge branch 'RED-10064' into 'master'
RED-10064: added ids for report documents.

See merge request redactmanager/red-ui!570
2024-09-17 16:39:41 +02:00
Nicoleta Panaghiu
b23c3e60d7 RED-10064: added ids for report documents. 2024-09-17 17:38:35 +03:00
Valentin Mihai
2f6d460442 RED-7345 - WIP Add/Remove bulk-local text redaction option in dialogs 2024-09-16 21:16:06 +03:00
Dan Percic
3cd1eaeddc Merge branch 'RED-9993' into 'master'
RED-9993: fixed license information.

See merge request redactmanager/red-ui!569
2024-09-13 10:04:40 +02:00
Nicoleta Panaghiu
feb3aa34e9 RED-9993: fixed license information. 2024-09-13 10:58:25 +03:00
Dan Percic
7f8c622f6b Merge branch 'RED-9372' into 'master'
Resolve RED-9372

Closes RED-9372

See merge request redactmanager/red-ui!568
2024-09-10 10:45:56 +02:00
Nicoleta Panaghiu
6628cf3495 RED-9372: update common ui. 2024-09-10 11:38:23 +03:00
Nicoleta Panaghiu
e6f3cd77de RED-9372: fixed scrolling on dossier details. 2024-09-10 11:36:29 +03:00
Dan Percic
8705524a4b Merge branch 'VM/RED-10016' into 'master'
RED-10016 - DM: Permanent loading triggerd when trying to edit the component

Closes RED-10016

See merge request redactmanager/red-ui!567
2024-09-10 09:12:54 +02:00
Valentin Mihai
4475f5979e RED-10016 - DM: Permanent loading triggerd when trying to edit the component 2024-09-10 09:45:35 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
93321437c1 push back localazy update 2024-09-10 01:03:26 +00:00
Dan Percic
0bf7f5f9ce Merge branch 'RED-9372' into 'master'
Resolve RED-9372

Closes RED-9372

See merge request redactmanager/red-ui!566
2024-09-05 16:19:56 +02:00
Nicoleta Panaghiu
ef8b1bc58e RED-9372: update common ui. 2024-09-05 17:17:49 +03:00
Nicoleta Panaghiu
8f938c825d RED-9372: fixed annotation details moving on hover. 2024-09-05 17:17:32 +03:00
Dan Percic
766ba97a0e Merge branch 'RED-9950' into 'master'
RED-9950: increased component management section width by 5%.

See merge request redactmanager/red-ui!565
2024-09-05 14:06:50 +02:00
Nicoleta Panaghiu
24c433dd5b RED-9950: increased component management section width by 5%. 2024-09-05 14:58:44 +03:00
Valentin-Gabriel Mihai
570dc20e8e Merge branch 'VM/RED-9548' into 'master'
RED-9548 - updated isModifyDictionary check

Closes RED-9548

See merge request redactmanager/red-ui!564
2024-09-05 13:25:24 +02:00
Valentin Mihai
34be5155c4 RED-9548 - updated isModifyDictionary check 2024-09-05 14:23:41 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
e752e4607c push back localazy update 2024-09-05 01:03:30 +00:00
Dan Percic
9e5ab63434 Merge branch 'VM/RED-9962' into 'master'
RED-9962 - RM-163: Components values are not updated in the UI until page is refreshed

Closes RED-9962

See merge request redactmanager/red-ui!563
2024-09-04 14:55:22 +02:00
Valentin Mihai
66cd961fc3 WIP on master
RED-9962 - RM-163: Components values are not updated in the UI until page is refreshed
2024-09-04 15:49:41 +03:00
Dan Percic
6216dd8bac Merge branch 'RED-9950' into 'master'
RED-9950: decreased component management width.

See merge request redactmanager/red-ui!562
2024-09-04 14:32:42 +02:00
Nicoleta Panaghiu
3677b7d761 RED-9950: decreased component management width. 2024-09-04 14:39:44 +03:00
Dan Percic
eae53022ee Merge branch 'RED-9937' into 'master'
RED-9937: made preview tab available & trigger reanalysis when required.

See merge request redactmanager/red-ui!561
2024-09-04 12:39:59 +02:00
Nicoleta Panaghiu
24e793582d RED-9937: made preview tab available & trigger reanalysis when required. 2024-09-04 13:29:36 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
01b8948b6a push back localazy update 2024-09-04 01:03:33 +00:00
Dan Percic
1b3dbfc98d Merge branch 'RED-9987' into 'master'
RED-9987: added sendSetPasswordMail flag in add user dialog.

See merge request redactmanager/red-ui!560
2024-09-03 13:44:04 +02:00
Nicoleta Panaghiu
a2930ccfdd RED-9987: added sendSetPasswordMail flag in add user dialog. 2024-09-03 14:42:59 +03:00
Dan Percic
201f4ca07f Merge branch 'VM/RED-9454' into 'master'
RED-9454 - Differences between Add Hint- and Add Redaction-Dialog

Closes RED-9454

See merge request redactmanager/red-ui!559
2024-09-03 13:06:11 +02:00
Valentin Mihai
e81e8e7252 RED-9454 - Differences between Add Hint- and Add Redaction-Dialog 2024-09-03 13:34:48 +03:00
Dan Percic
9d01fb5784 Merge branch 'RED-9950' into 'master'
RED-9950: removed more margins.

See merge request redactmanager/red-ui!558
2024-09-03 11:26:42 +02:00
Nicoleta Panaghiu
9921e868bc RED-9950: removed more margins. 2024-09-03 12:24:44 +03:00
Dan Percic
9dd6085bcf Merge branch 'master' into release/4.839.x 2024-09-02 16:48:59 +03:00
Dan Percic
2d1928ebd0 Merge branch 'RED-9950' into 'master'
RED-9950: increased document viewer space.

See merge request redactmanager/red-ui!557
2024-08-29 16:22:00 +02:00
Nicoleta Panaghiu
095853d090 RED-9950: increased document viewer space. 2024-08-29 17:19:27 +03:00
Dan Percic
fe46e69c53 Merge branch 'RED-9951' into 'master'
RED-9951: made document info scrollable & fixed paginator position.

See merge request redactmanager/red-ui!556
2024-08-29 12:08:40 +02:00
Nicoleta Panaghiu
a55571a381 RED-9951: made document info scrollable & fixed paginator position. 2024-08-29 13:03:14 +03:00
Dan Percic
7d449d3ff7 Merge branch 'RED-9887' into 'master'
RED-9887: fixed save button being disabled.

See merge request redactmanager/red-ui!555
2024-08-28 12:46:00 +02:00
Nicoleta Panaghiu
db1257751a RED-9887: fixed save button being disabled. 2024-08-28 13:22:37 +03:00
Dan Percic
43830f463d Merge branch 'RED-9946' into 'master'
RED-9946: added tooltip with valueDescription.

See merge request redactmanager/red-ui!554
2024-08-27 14:10:38 +02:00
Nicoleta Panaghiu
e798197110 RED-9946: added tooltip with valueDescription. 2024-08-27 15:09:41 +03:00
Dan Percic
35f2161913 Merge branch 'RED-9887' into 'master'
RED-9887: fixed component fields cancel and revert actions.

See merge request redactmanager/red-ui!553
2024-08-27 13:34:35 +02:00
Nicoleta Panaghiu
6f8edaf4ba RED-9887: fixed component fields cancel and revert actions. 2024-08-27 14:28:40 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
80a713d850 push back localazy update 2024-08-22 01:03:26 +00:00
Dan Percic
ed518d6910 Merge branch 'RED-9824' into 'master'
RED-9824: fixed toaster notification message for edit annotation action.

See merge request redactmanager/red-ui!552
2024-08-21 10:35:12 +02:00
Nicoleta Panaghiu
7ad36ea6f6 RED-9824: fixed toaster notification message for edit annotation action. 2024-08-21 11:33:33 +03:00
Dan Percic
65fc2971ac Merge branch 'RED-9893' into 'master'
RED-9893: show missing type toaster only once.

See merge request redactmanager/red-ui!551
2024-08-21 09:59:10 +02:00
Nicoleta Panaghiu
4438f90af4 RED-9893: show missing type toaster only once. 2024-08-21 10:53:13 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
2daa033b8e push back localazy update 2024-08-21 01:03:27 +00:00
Dan Percic
726f909589 Merge branch 'RED-9889' into 'master'
RED-9889: escape html in component values.

See merge request redactmanager/red-ui!550
2024-08-20 14:13:06 +02:00
Nicoleta Panaghiu
6a6db17d2c RED-9889: escape html in component values. 2024-08-20 15:11:30 +03:00
Dan Percic
021775d3a7 Merge branch 'RED-9916' into 'master'
RED-9916: update common ui.

See merge request redactmanager/red-ui!549
2024-08-20 12:26:58 +02:00
Nicoleta Panaghiu
88ef8830c2 RED-9916: update common ui. 2024-08-20 13:22:40 +03:00
Dan Percic
eb9bd777e0 fix merge 2024-08-19 12:03:29 +03:00
Dan Percic
e3ef820bac Merge branch 'release/4.839.x' of https://gitlab.knecon.com/redactmanager/red-ui into release/4.839.x 2024-08-19 12:02:30 +03:00
Dan Percic
9317f55d81 fix delete annotation 2024-08-19 12:01:09 +03:00
Dan Percic
5d7849be45 filter removed entries 2024-08-19 10:21:49 +03:00
Dan Percic
74b4c1a11f reload entity log when file is assigned to current user 2024-08-19 10:19:53 +03:00
Dan Percic
0f79f04f52 Merge remote-tracking branch 'origin/master' into RED-9747 2024-08-18 01:38:11 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
ea07686946 push back localazy update 2024-08-16 01:03:28 +00:00
Nicoleta Panaghiu
3df6005549 Merge branch 'VM/RED-9862' into 'master'
RED-9862 - Broken resize dialog for imported redaction from preview file with disabled auto-analysis on upload

Closes RED-9862

See merge request redactmanager/red-ui!548
2024-08-15 12:27:25 +02:00
Nicoleta Panaghiu
511f24e3ef Merge branch 'VM/RED-9260' into 'master'
RED-9260 - Component Management UI

Closes RED-9260

See merge request redactmanager/red-ui!547
2024-08-15 12:22:11 +02:00
Valentin Mihai
4e49d2d7a6 WIP on master
RED-9862 - Broken resize dialog for imported redaction from preview file with disabled auto-analysis on upload
2024-08-15 09:48:00 +03:00
Valentin Mihai
c7e03043e0 RED-9890 - New created component-definition is not displayed in the list of component-definitions 2024-08-15 09:15:03 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
f85626a8e4 push back localazy update 2024-08-15 01:03:23 +00:00
Dan Percic
6282675682 merge fixes 2024-08-14 15:40:40 +03:00
Dan Percic
747d8157b5 Merge remote-tracking branch 'origin/master' into RED-9747 2024-08-14 15:37:28 +03:00
Valentin Mihai
1bcd1869f0 RED-9260 - Component Management UI 2024-08-14 12:46:50 +03:00
Valentin-Gabriel Mihai
95c273e7b2 Merge branch 'RED-9777' into 'master'
RED-9777: added help button on edit and remove annotation dialogs.

See merge request redactmanager/red-ui!546
2024-08-14 10:50:16 +02:00
Nicoleta Panaghiu
6236275528 RED-9777: added help button on edit and remove annotation dialogs. 2024-08-14 11:43:22 +03:00
Valentin-Gabriel Mihai
d654bcfc4b Merge branch 'RED-9589' into 'master'
RED-9589: removed FP option for locally removed and forced redactions.

See merge request redactmanager/red-ui!545
2024-08-14 10:06:26 +02:00
Nicoleta Panaghiu
fcbffdad8f RED-9589: removed FP option for locally removed and forced redactions. 2024-08-14 11:02:28 +03:00
Nicoleta Panaghiu
8079079217 Merge branch 'VM/RED-9201' into 'master'
RED-9201 - UI for Component Mapping Tables

Closes RED-9201

See merge request redactmanager/red-ui!544
2024-08-14 09:47:09 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
87fa2df399 push back localazy update 2024-08-14 01:03:23 +00:00
Valentin-Gabriel Mihai
5d6d69c8c4 Merge branch 'RED-9572' into 'master'
RED-9572: Format audit log values

Closes RED-9572

See merge request redactmanager/red-ui!543
2024-08-13 20:06:19 +02:00
Valentin Mihai
538f36aebc WIP on master
RED-9201 - UI for Component Mapping Tables
2024-08-13 21:04:47 +03:00
Adina Țeudan
9067272382 RED-9572: Format audit log values 2024-08-13 18:57:09 +03:00
Valentin-Gabriel Mihai
bc430a796f Merge branch 'RED-9874' into 'master'
RED-9874: added user preference for overwrite file option.

See merge request redactmanager/red-ui!542
2024-08-13 14:03:55 +02:00
Nicoleta Panaghiu
24fc875cc9 RED-9874: added user preference for overwrite file option. 2024-08-13 15:02:32 +03:00
Nicoleta Panaghiu
fc8a9da8cd Merge branch 'VM/RED-9201' into 'master'
RED-9201 - UI for Component Mapping Tables

Closes RED-9201

See merge request redactmanager/red-ui!541
2024-08-13 10:01:43 +02:00
Nicoleta Panaghiu
486ef92b07 Merge branch 'VM/RED-9260' into 'master'
RED-9260 - Component Management UI

See merge request redactmanager/red-ui!540
2024-08-13 09:52:27 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
630db9071a push back localazy update 2024-08-13 01:03:23 +00:00
Valentin Mihai
8e2219235d RED-9201 - UI for Component Mapping Tables 2024-08-12 21:36:04 +03:00
Valentin-Gabriel Mihai
0a05d02623 Merge branch 'RED-7270' into 'master'
RED-7270: Display backend provided error message for dossier states

Closes RED-7270

See merge request redactmanager/red-ui!539
2024-08-12 20:09:19 +02:00
Valentin Mihai
f242c52a0c RED-9260 - update config 2024-08-12 21:00:21 +03:00
Valentin Mihai
6e115038b0 RED-9260 - Component Management UI 2024-08-12 20:54:30 +03:00
Adina Țeudan
428debcd6f RED-7270: Display backend provided error message for dossier states 2024-08-12 20:51:53 +03:00
Valentin Mihai
ddbef9bd11 Merge branch 'master' into VM/RED-9260 2024-08-12 19:24:41 +03:00
Valentin-Gabriel Mihai
1dc013e46b Merge branch 'RED-9835' into 'master'
RED-9835: removed experimental feature warning.

See merge request redactmanager/red-ui!538
2024-08-12 14:12:01 +02:00
Nicoleta Panaghiu
d409811aa6 RED-9835: removed experimental feature warning. 2024-08-12 15:08:10 +03:00
Valentin-Gabriel Mihai
ecb7b89f31 Merge branch 'RED-9762' into 'master'
RED-9762: removed open component view preference.

See merge request redactmanager/red-ui!537
2024-08-12 13:58:38 +02:00
Nicoleta Panaghiu
8a3d372223 RED-9762: removed open component view preference. 2024-08-12 13:42:29 +03:00
Valentin-Gabriel Mihai
3544538c19 Merge branch 'RED-9861' into 'master'
RED-9861: fixed bulk-select issues.

See merge request redactmanager/red-ui!536
2024-08-12 12:24:33 +02:00
Nicoleta Panaghiu
f82cdcf5bb RED-9861: fixed bulk-select issues. 2024-08-12 13:22:47 +03:00
Nicoleta Panaghiu
e6a3b1a585 Merge branch 'RED-9866' into 'master'
RED-9866: remove version limit on ARCHIVE DOSSIER feature.

See merge request redactmanager/red-ui!535
2024-08-12 10:45:17 +02:00
Nicoleta Panaghiu
8d970779f5 RED-9866: remove version limit on ARCHIVE DOSSIER feature. 2024-08-12 11:29:23 +03:00
Nicoleta Panaghiu
954fba26f7 Merge branch 'VM/RED-8748' into 'master'
RED-8748 - Integrated component view in DocuMine

Closes RED-8748

See merge request redactmanager/red-ui!533
2024-08-12 10:29:02 +02:00
Valentin-Gabriel Mihai
25418ced4a Merge branch 'RED-9777' into 'master'
RED-9777: added help mode missing links.

See merge request redactmanager/red-ui!534
2024-08-12 10:25:27 +02:00
Nicoleta Panaghiu
591b6eee36 RED-9777: fix. 2024-08-12 11:20:23 +03:00
Nicoleta Panaghiu
d7cc8e3232 RED-9777: update common ui. 2024-08-12 11:16:24 +03:00
Nicoleta Panaghiu
0d7adb4e6b RED-9777: added help mode missing links. 2024-08-12 11:12:31 +03:00
Valentin Mihai
62b8a55406 RED-8748 - Integrated component view in DocuMine 2024-08-11 21:05:20 +03:00
Dan Percic
c4c549fe1b fix 2024-08-10 14:21:27 +02:00
Dan Percic
e41ac70dfe copilot ws implementation, wip 2024-08-10 14:18:22 +02:00
Dan Percic
59ce4177d2 Merge remote-tracking branch 'origin/master' into RED-9747 2024-08-10 14:17:26 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
926d14056b push back localazy update 2024-08-10 01:03:32 +00:00
Valentin-Gabriel Mihai
937803fd75 Merge branch 'RED-9817' into 'master'
RED-9817: removed HTML code for space.

See merge request redactmanager/red-ui!532
2024-08-09 11:17:58 +02:00
Nicoleta Panaghiu
168730cfca RED-9817: removed HTML code for space. 2024-08-09 12:16:42 +03:00
Nicoleta Panaghiu
87c4becbe6 Merge branch 'VM/RED-9788-2' into 'master'
RED-9788 - Adapt Annotation column to display only annotations per component...

Closes RED-9788

See merge request redactmanager/red-ui!531
2024-08-09 09:31:21 +02:00
Valentin Mihai
f0535eb47f Merge branch 'master' into VM/RED-9788-2 2024-08-09 10:29:16 +03:00
Valentin Mihai
522a78d6a2 RED-9788 - update config 2024-08-09 09:02:53 +03:00
Valentin Mihai
4f955bcd50 RED-9788 - Adapt Annotation column to display only annotations per component if component is selected 2024-08-09 08:58:36 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
d9ccf89166 push back localazy update 2024-08-09 01:03:30 +00:00
Dan Percic
0af6e45868 Merge remote-tracking branch 'origin/master' into RED-9747 2024-08-08 13:57:34 +02:00
Nicoleta Panaghiu
b1c40806c5 Merge branch 'VM/RED-9201' into 'master'
RED-9201 - UI for Component Mapping Tables

Closes RED-9201

See merge request redactmanager/red-ui!530
2024-08-08 10:27:15 +02:00
Valentin Mihai
826c564af6 RED-9201 - UI for Component Mapping Tables 2024-08-08 11:06:20 +03:00
Valentin Mihai
b623449efb RED-9788 - remove active listing entity service 2024-08-07 21:25:43 +03:00
Valentin Mihai
221948411a Merge branch 'master' into VM/RED-9788-2 2024-08-07 21:15:11 +03:00
Valentin Mihai
fcba520003 RED-9788 - Adapt Annotation column to display only annotations per component if component is selected 2024-08-07 21:14:37 +03:00
Adina Teudan
f9c8571c31 Merge branch 'VM/RED-3800' into 'master'
RED-3800 - Refactoring / Code Cleanup

Closes RED-3800

See merge request redactmanager/red-ui!529
2024-08-07 19:51:26 +02:00
Valentin Mihai
90ba67a79c RED-3800 - Refactoring / Code Cleanup 2024-08-07 20:34:32 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
e78dcff3a7 push back localazy update 2024-08-07 01:03:26 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
40897cf2b3 push back localazy update 2024-08-06 01:03:21 +00:00
Dan Percic
1bbef9eb37 Merge remote-tracking branch 'origin/master' into RED-9747 2024-08-05 17:54:22 +02:00
Nicoleta Panaghiu
9b770b2be7 Merge branch 'VM/RED-9776' into 'master'
RED-9776 - Consolidate components export and report download in one button

Closes RED-9776

See merge request redactmanager/red-ui!528
2024-08-05 12:59:45 +02:00
Valentin Mihai
77b133757e Merge branch 'master' into VM/RED-9776 2024-08-04 13:26:51 +03:00
Valentin Mihai
37b692c260 RED-9776 - Consolidate components export and report download in one button 2024-08-04 13:22:37 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
dc2ad98120 push back localazy update 2024-08-03 01:03:22 +00:00
Valentin-Gabriel Mihai
91d1ee28f6 Merge branch 'RED-9504' into 'master'
RED-9504: fix some translations.

See merge request redactmanager/red-ui!527
2024-08-02 11:23:30 +02:00
Nicoleta Panaghiu
e2b7807cf3 RED-9504: fix some translations. 2024-08-02 11:34:39 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
46375a3db4 push back localazy update 2024-08-02 01:03:42 +00:00
Dan Percic
0585800532 Merge branch 'RED-9731' into 'master'
RED-9731: fixed help button position on resize.

See merge request redactmanager/red-ui!526
2024-08-01 13:45:33 +02:00
Nicoleta Panaghiu
eccb00345a RED-9731: fixed help button position on resize. 2024-08-01 14:39:27 +03:00
Dan Percic
621b8185fd Merge branch 'VM/RED-9776' into 'master'
RED-9776 - Consolidate components export and report download in one button

Closes RED-9776

See merge request redactmanager/red-ui!525
2024-08-01 13:23:43 +02:00
Valentin Mihai
907249cc40 RED-9776 - Consolidate components export and report download in one button 2024-08-01 13:35:15 +03:00
Nicoleta Panaghiu
35342707f0 RED-9772: delete saved entity log on file overwrite. 2024-08-01 11:55:54 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
0a7919f786 push back localazy update 2024-08-01 01:03:27 +00:00
Dan Percic
c1fc52223b Merge remote-tracking branch 'origin/master' into RED-9747 2024-07-31 14:32:08 +03:00
Valentin-Gabriel Mihai
246e69d754 Merge branch 'RED-9742' into 'master'
RED-9742: fixed logo router link.

See merge request redactmanager/red-ui!524
2024-07-31 12:43:24 +02:00
Nicoleta Panaghiu
16927903cd RED-9742: fixed logo router link. 2024-07-31 13:20:22 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
862b420488 push back localazy update 2024-07-31 01:03:34 +00:00
Valentin Mihai
d445c5f31c Merge branch 'master' into VM/RED-9260 2024-07-30 20:40:10 +03:00
Valentin-Gabriel Mihai
c4625d2e7e Merge branch 'RED-9516' into 'master'
RED-9516: fixed filter options alignment.

See merge request redactmanager/red-ui!522
2024-07-30 16:07:31 +02:00
Nicoleta Panaghiu
3f14690c39 RED-9516: fixed filter options alignment. 2024-07-30 17:04:34 +03:00
Dan Percic
30c1f8628b Merge remote-tracking branch 'origin/master' into RED-9747 2024-07-30 16:21:46 +03:00
Nicoleta Panaghiu
f18cd31a72 Merge branch 'VM/RED-8748' into 'master'
RED-8748 - updated filtering when a component is selected

Closes RED-8748

See merge request redactmanager/red-ui!521
2024-07-30 14:15:23 +02:00
Valentin Mihai
9b197811d1 RED-8748 - updated filtering when a component is selected 2024-07-30 15:07:57 +03:00
Valentin-Gabriel Mihai
e2846a3178 Merge branch 'RED-9433' into 'master'
RED-9433: added auto line-break for checkbox label overflow.

See merge request redactmanager/red-ui!520
2024-07-30 13:16:48 +02:00
Nicoleta Panaghiu
ed8eb4840e RED-9433: added auto line-break for checkbox label overflow. 2024-07-30 14:14:58 +03:00
Valentin Mihai
f1b7effe3a Merge branch 'master' into VM/RED-9260 2024-07-30 12:51:51 +03:00
Dan Percic
8390687c5a Merge branch 'RED-9571' into 'master'
RED-9571: fixed initials-avatar not updating in some cases.

See merge request redactmanager/red-ui!519
2024-07-30 10:17:14 +02:00
Nicoleta Panaghiu
7f7148c859 RED-9571: fixed initials-avatar not updating in some cases. 2024-07-30 11:13:59 +03:00
Dan Percic
66df5f807c Merge remote-tracking branch 'origin/master' into RED-9747 2024-07-30 10:33:58 +03:00
Dan Percic
53044bd391 Merge branch 'VM/RED-8748' into 'master'
RED-8748 - Integrated component view in DocuMine

Closes RED-8748

See merge request redactmanager/red-ui!518
2024-07-29 17:12:59 +02:00
Valentin Mihai
2b4c52c13b RED-8748 - Integrated component view in DocuMine 2024-07-29 18:02:04 +03:00
Dan Percic
6540684063 Merge branch 'VM/RED-8748' into 'master'
RED-8748 - update export button

Closes RED-8748

See merge request redactmanager/red-ui!517
2024-07-29 15:03:51 +02:00
Valentin Mihai
171e18c8a9 RED-8748 - update export button 2024-07-29 15:51:05 +03:00
Nicoleta Panaghiu
5ddae5f664 Merge branch 'VM/RED-8748' into 'master'
RED-8748 - Integrated component view in DocuMine

Closes RED-8748

See merge request redactmanager/red-ui!516
2024-07-29 13:43:41 +02:00
Dan Percic
f25d134590 Merge remote-tracking branch 'origin/master' into RED-9747 2024-07-29 11:40:49 +03:00
Valentin Mihai
dbc609765b WIP on master
RED-8748 - Integrated component view in DocuMine
2024-07-29 01:02:46 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
aaef6c7649 push back localazy update 2024-07-27 01:03:29 +00:00
Dan Percic
333f5c7fc5 Merge branch 'RED-9754' into 'master'
RED-9754: removed document version in dossier templates in documine.

See merge request redactmanager/red-ui!515
2024-07-26 15:31:23 +02:00
Nicoleta Panaghiu
47b16d2287 RED-9754: removed document version in dossier templates in documine. 2024-07-26 16:28:36 +03:00
Dan Percic
c1a8898e92 Merge branch 'VM/RED-9201' into 'master'
RED-9201 - UI for Component Mapping Tables

Closes RED-9201

See merge request redactmanager/red-ui!514
2024-07-26 15:17:24 +02:00
Valentin Mihai
456ca8cc46 RED-9201 - UI for Component Mapping Tables 2024-07-26 16:14:37 +03:00
Dan Percic
10fa81e77c Merge remote-tracking branch 'origin/master' into RED-9747 2024-07-26 16:02:19 +03:00
Dan Percic
b015b804a1 Merge branch 'VM/RED-9201' into 'master'
VM/RED-9201 - UI for Component Mapping Tables

Closes RED-9201

See merge request redactmanager/red-ui!513
2024-07-26 15:01:37 +02:00
Valentin Mihai
c5fd581a62 RED-9201 - UI for Component Mapping Tables 2024-07-26 15:36:24 +03:00
Dan Percic
613a7429b8 RED-9747 add initial ws entity log refresh 2024-07-26 12:25:13 +03:00
Valentin Mihai
9010677c6d RED-9201 - UI for Component Mapping Tables 2024-07-26 12:13:05 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
2b00876e6b push back localazy update 2024-07-26 01:03:27 +00:00
Dan Percic
a87e4c7472 Merge branch 'RED-9542' into 'master'
RED-9542: fixed resize dialog header.

See merge request redactmanager/red-ui!511
2024-07-25 15:47:08 +02:00
Nicoleta Panaghiu
ebc074c308 RED-9542: fixed resize dialog header. 2024-07-25 16:44:57 +03:00
Nicoleta Panaghiu
e3325bb620 Merge branch 'VM/RED-9201' into 'master'
RED-9201 - UI for Component Mapping Tables

Closes RED-9201

See merge request redactmanager/red-ui!510
2024-07-25 11:14:38 +02:00
Valentin Mihai
0bcb3829c7 RED-9201 - displayed all column labels string in a tooltip 2024-07-25 12:12:50 +03:00
Dan Percic
848a44276f Merge branch 'RED-9589' into 'master'
RED-9589: enabled false positive option for some annotation configs.

See merge request redactmanager/red-ui!509
2024-07-25 11:09:11 +02:00
Nicoleta Panaghiu
299be2364e RED-9589: enabled false positive option for some annotation configs. 2024-07-25 12:06:23 +03:00
Valentin Mihai
a9b399ebbd RED-9201 - UI for Component Mapping Tables 2024-07-25 11:49:40 +03:00
Valentin Mihai
87e2e27e56 RED-9260 - Component Management UI 2024-07-25 00:35:48 +03:00
Dan Percic
4f2d320553 Merge branch 'RED-9716' into 'master'
RED-9716: removed analyse button for archived files.

See merge request redactmanager/red-ui!508
2024-07-24 12:03:25 +02:00
Nicoleta Panaghiu
425c982865 RED-9716: removed analyse button for archived files. 2024-07-24 13:00:45 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
804fbf7b05 push back localazy update 2024-07-24 01:03:22 +00:00
Dan Percic
111b354a58 Merge branch 'RED-9657' into 'master'
RED-9657: additional fixes for help mode links.

Closes RED-9657

See merge request redactmanager/red-ui!507
2024-07-23 11:04:55 +02:00
Nicoleta Panaghiu
7b4c6b42ae RED-9657: additional fixes for help mode links. 2024-07-23 11:54:14 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
d21abaad3f push back localazy update 2024-07-23 01:03:25 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
e7670e65b3 push back localazy update 2024-07-20 01:03:25 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
c0e59a58c5 push back localazy update 2024-07-19 01:03:24 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
4f7e5c8259 push back localazy update 2024-07-18 01:03:20 +00:00
Nicoleta Panaghiu
2b93d00833 Merge branch 'VM/RED-9260' into 'master'
RED-9260 - Component Management UI

Closes RED-9260

See merge request redactmanager/red-ui!506
2024-07-17 08:56:24 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
1b95e0e82a push back localazy update 2024-07-17 01:03:19 +00:00
Valentin Mihai
cfbc6bc83c RED-9260 - Component Management UI 2024-07-16 20:18:55 +03:00
Valentin-Gabriel Mihai
23df273ae6 Merge branch 'RED-9657' into 'master'
RED-9657: fixed help mode links.

See merge request redactmanager/red-ui!505
2024-07-16 12:43:05 +02:00
Nicoleta Panaghiu
f00127f3f4 RED-9657: fixed help mode links. 2024-07-16 13:33:45 +03:00
Valentin-Gabriel Mihai
6c1c58e641 Merge branch 'VM/RED-9701' into 'master'
RED-9701 - File view vanishes after file is opened

Closes RED-9701

See merge request redactmanager/red-ui!504
2024-07-15 17:32:14 +02:00
Valentin Mihai
1b46ab0811 RED-9701 - File view vanishes after file is opened 2024-07-15 18:30:56 +03:00
Valentin-Gabriel Mihai
dab2340c19 Merge branch 'RED-9372' into 'master'
RED-9372: update common ui.

See merge request redactmanager/red-ui!503
2024-07-15 15:20:09 +02:00
Nicoleta Panaghiu
959710675f RED-9372: update common ui. 2024-07-15 16:11:55 +03:00
Valentin-Gabriel Mihai
6057a904ca Merge branch 'RED-9452' into 'master'
RED-9452: add cancel on esc & confirm on enter on delete dossier state.

See merge request redactmanager/red-ui!502
2024-07-15 12:26:27 +02:00
Nicoleta Panaghiu
16163eb7cd RED-9452: add cancel on esc & confirm on enter on delete dossier state. 2024-07-15 13:25:22 +03:00
Nicoleta Panaghiu
489de89e85 Merge branch 'RED-9642' into 'master'
RED-9642: fixed soft deleted dossier stats display.

See merge request redactmanager/red-ui!501
2024-07-15 11:56:09 +02:00
Nicoleta Panaghiu
765c8234e3 RED-9642: fixed soft deleted dossier stats display. 2024-07-15 12:53:35 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
697d6e9014 push back localazy update 2024-07-14 01:03:24 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
985e2c86ef push back localazy update 2024-07-13 01:03:26 +00:00
Valentin-Gabriel Mihai
5779539c94 Merge branch 'RED-9605' into 'master'
RED-9605: remove it again.

See merge request redactmanager/red-ui!500
2024-07-12 15:31:29 +02:00
Nicoleta Panaghiu
7f5a453f26 RED-9605: remove it again. 2024-07-12 16:30:41 +03:00
Nicoleta Panaghiu
0ef1f3d61e Merge branch 'VM/RED-9201' into 'master'
RED-9201 - UI for Component Mapping Tables

Closes RED-9201

See merge request redactmanager/red-ui!499
2024-07-12 15:29:03 +02:00
Valentin-Gabriel Mihai
384c847a90 Merge branch 'RED-9605' into 'master'
RED-9605: show edit dossier template button on other screens.

See merge request redactmanager/red-ui!498
2024-07-12 14:03:25 +02:00
Nicoleta Panaghiu
a091a96b69 RED-9605: show edit dossier template button on other screens. 2024-07-12 15:01:37 +03:00
Dan Percic
366f8cd2bf Merge branch 'RED-9634' into 'master'
RED-9634: fixed OCR action.

See merge request redactmanager/red-ui!497
2024-07-11 14:41:39 +02:00
Dan Percic
fd78f0b177 Merge branch 'VM/RED-9401' into 'master'
RED-9401 - Show manual changes icon in workload for all entries with MANUAL engine

Closes RED-9401

See merge request redactmanager/red-ui!496
2024-07-11 13:59:18 +02:00
Nicoleta Panaghiu
8572830c69 RED-9634: fixed OCR action. 2024-07-11 14:59:04 +03:00
Valentin Mihai
8a045a4879 RED-9401 - Show manual changes icon in workload for all entries with MANUAL engine 2024-07-11 14:55:38 +03:00
Dan Percic
85faea9ea5 Merge branch 'VM/RED-9464' into 'master'
RED-9464 - In dictionary search is not cleared when pressing X

Closes RED-9464

See merge request redactmanager/red-ui!495
2024-07-11 13:01:06 +02:00
Dan Percic
0a1ab112ee Merge branch 'RED-9437' into 'master'
RED-9437: made watermark selector shorter and fixed help mode button.

See merge request redactmanager/red-ui!494
2024-07-11 13:00:35 +02:00
Dan Percic
6846ff5ad1 Merge branch 'RED-9605' into 'master'
RED-9605: removed redundant edit button.

See merge request redactmanager/red-ui!493
2024-07-11 13:00:09 +02:00
Dan Percic
e0e581c1b8 Merge branch 'RED-9597' into 'master'
RED-9597: fixed missing labels.

See merge request redactmanager/red-ui!492
2024-07-11 12:59:39 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
65808ccf58 push back localazy update 2024-07-10 01:03:34 +00:00
Valentin Mihai
d6d2d1157b RED-9201 - UI for Component Mapping Tables 2024-07-09 16:42:22 +03:00
Nicoleta Panaghiu
f5c46b23b9 RED-9437: made watermark selector shorter and fixed help mode button. 2024-07-09 14:55:19 +03:00
Valentin Mihai
db90287c1f WIP on master
RED-9464 - In dictionary search is not cleared when pressing X
2024-07-09 14:49:41 +03:00
Dan Percic
33e0daee77 Merge branch 'VM/RED-9401' into 'master'
RED-9401 - Show manual changes icon in workload for all entries with MANUAL engine

Closes RED-9401

See merge request redactmanager/red-ui!491
2024-07-09 13:28:11 +02:00
Nicoleta Panaghiu
7276966af9 RED-9597: fixed missing labels. 2024-07-09 14:16:46 +03:00
Nicoleta Panaghiu
1fe2efca4d RED-9605: removed redundant edit button. 2024-07-09 14:14:40 +03:00
Dan Percic
f6346c27bc Merge branch 'RED-5108' into 'master'
RED-5108: map IGNORED IMAGE_HINT to Hint instead of IngoredHint.

See merge request redactmanager/red-ui!489
2024-07-09 13:03:13 +02:00
Nicoleta Panaghiu
0b693fbcb7 Merge branch 'updates' into 'master'
Imports fixes

See merge request redactmanager/red-ui!490
2024-07-09 13:02:47 +02:00
Dan Percic
ad4016f6d0 fix help mode keys import 2024-07-09 12:55:44 +03:00
Valentin Mihai
78d6328af8 WIP on master
RED-9401 - Show manual changes icon in workload for all entries with MANUAL engine
2024-07-09 12:53:02 +03:00
Dan Percic
48c3a4ee63 update imports 2024-07-09 12:26:13 +03:00
Nicoleta Panaghiu
0f5411ab46 RED-5108: map IGNORED IMAGE_HINT to Hint instead of IngoredHint. 2024-07-05 14:38:19 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
14b268c796 push back localazy update 2024-07-05 09:41:16 +00:00
Dan Percic
e9c0b6e458 Merge branch 'VM/RED-9513' into 'master'
RED-9513 - Enter Key Not Working: Unable to Add Terms to Dictionary

Closes RED-9513

See merge request redactmanager/red-ui!488
2024-07-04 12:12:08 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
f6f9e96c26 push back localazy update 2024-07-04 10:03:36 +00:00
Valentin Mihai
ca24134c6e RED-9513 - Enter Key Not Working: Unable to Add Terms to Dictionary 2024-07-04 12:53:53 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
8163dc96ca push back localazy update 2024-07-04 01:03:49 +00:00
Dan Percic
2eb5d81e74 Merge branch 'RED-9527' into 'master'
RED-9527: fixed enter not saving the file attribute.

See merge request redactmanager/red-ui!495
2024-07-03 16:00:04 +02:00
Nicoleta Panaghiu
4700ec8098 RED-9527: fixed enter not saving the file attribute. 2024-07-03 16:31:42 +03:00
Dan Percic
47325b387e Merge branch 'RED-9431' into 'master'
RED-9431: fixed missing translations.

See merge request redactmanager/red-ui!494
2024-07-03 13:28:20 +02:00
Nicoleta Panaghiu
1d04a5b7b1 RED-9431: fixed missing translations. 2024-07-03 13:56:50 +03:00
Dan Percic
0e2b9f136a Merge branch 'RED-9525' into 'master'
RED-9525: use backend error for add dossier & import mat-dialog-close.

See merge request redactmanager/red-ui!493
2024-07-03 12:11:36 +02:00
Nicoleta Panaghiu
a37dc2feef RED-9525: use backend error for add dossier & import mat-dialog-close. 2024-07-03 13:01:49 +03:00
Dan Percic
7a2551f71f Merge branch 'VM/RED-9508' into 'master'
RED-9508 - Page not responsive after switching Dossier view from active to archived

Closes RED-9508

See merge request redactmanager/red-ui!492
2024-07-03 10:48:33 +02:00
Valentin Mihai
3a3973744f RED-9508 - Page not responsive after switching Dossier view from active to archived 2024-07-03 11:46:10 +03:00
Dan Percic
66831fe655 Merge branch 'VM/RED-9484' into 'master'
RED-9484 - Missing legalBasis for images in reports

Closes RED-9484

See merge request redactmanager/red-ui!491
2024-07-03 08:54:10 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
484f219270 push back localazy update 2024-07-03 01:04:09 +00:00
Valentin Mihai
4636520cb4 RED-9484 - Missing legalBasis for images in reports 2024-07-03 00:30:04 +03:00
Dan Percic
64d57e3263 Merge branch 'VM/RED-9401' into 'master'
RED-9401 - Show manual changes icon in workload for all entries with MANUAL engine

Closes RED-9401

See merge request redactmanager/red-ui!490
2024-07-02 13:17:14 +02:00
Valentin Mihai
07a78fcc26 RED-9401 - removed 'hasBeenAddedLocally' check 2024-07-02 10:59:46 +03:00
Valentin Mihai
b5fc95bfed RED-9401 - Show manual changes icon in workload for all entries with MANUAL engine 2024-07-02 10:13:39 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
f28dd40242 push back localazy update 2024-07-02 01:04:17 +00:00
Dan Percic
423f7c1c12 Merge branch 'RED-9422' into 'master'
RED-9422: fixed unnecessary horizontal scrollbar.

See merge request redactmanager/red-ui!489
2024-07-01 12:08:18 +02:00
Nicoleta Panaghiu
76f0b9315a RED-9422: fixed unnecessary horizontal scrollbar. 2024-07-01 12:29:02 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
41695edc45 push back localazy update 2024-06-29 01:04:11 +00:00
Dan Percic
2685c82ec6 Merge branch 'RED-9422' into 'master'
RED-9422: re-add scrollbar for edit dossier members list.

See merge request redactmanager/red-ui!488
2024-06-28 14:34:48 +02:00
Nicoleta Panaghiu
ba2fcf6ad8 RED-9422: re-add scrollbar for edit dossier members list. 2024-06-28 15:33:30 +03:00
Dan Percic
e35d20e57e Merge branch 'VM/RED-9400' into 'master'
RED-9400 - Forced redaction shows two force entries in manual changes tooltip

Closes RED-9400

See merge request redactmanager/red-ui!487
2024-06-28 09:09:25 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
61c37e7fb3 push back localazy update 2024-06-28 01:04:20 +00:00
Valentin Mihai
fd8ea88d31 RED-9400 - Forced redaction shows two force entries in manual changes tooltip 2024-06-27 18:02:21 +03:00
Dan Percic
8daacfcf9a Merge branch 'VM/RED-9453' into 'master'
RED-9453 - New dossier state gets created twice when saving with Enter key

Closes RED-9453

See merge request redactmanager/red-ui!485
2024-06-27 14:35:08 +02:00
Nicoleta Panaghiu
24f030591b Merge branch 'VM/RED-9362' into 'master'
RED-9362 - Help Mode tooltip missing

Closes RED-9362

See merge request redactmanager/red-ui!486
2024-06-27 14:34:31 +02:00
Valentin Mihai
3719cc70e7 RED-9362 - Help Mode tooltip missing 2024-06-27 15:32:53 +03:00
Valentin Mihai
53fb99f8f2 RED-9453 - New dossier state gets created twice when saving with Enter key 2024-06-27 14:54:48 +03:00
Dan Percic
830722904b Merge branch 'VM/RED-9390' into 'master'
RED-9390 - Workload filter does not remember previous ALL or NONE selection

Closes RED-9390

See merge request redactmanager/red-ui!484
2024-06-27 13:32:48 +02:00
Valentin Mihai
3dec406733 RED-9390 - Workload filter does not remember previous ALL or NONE selection 2024-06-27 13:24:29 +03:00
Dan Percic
0b68d071a1 Merge branch 'RED-9460' into 'master'
RED-9460: display all types which have a dictionary in dossier settings.

See merge request redactmanager/red-ui!483
2024-06-27 10:20:48 +02:00
Nicoleta Panaghiu
9cae140cb1 RED-9460: display all types which have a dictionary in dossier settings. 2024-06-27 11:17:49 +03:00
Dan Percic
d43f46ceb9 Merge branch 'RED-9373' into 'master'
RED-9373: removed fixed width property on dashboard card.

See merge request redactmanager/red-ui!482
2024-06-27 10:08:31 +02:00
Nicoleta Panaghiu
1c400d6685 RED-9373: removed fixed width property on dashboard card. 2024-06-27 11:05:24 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
ac910efbda push back localazy update 2024-06-27 01:03:51 +00:00
Dan Percic
a1e1a123f3 Merge branch 'VM/RED-8748' into 'master'
RED-8748 - Integrated component view in DocuMine

Closes RED-8748

See merge request redactmanager/red-ui!480
2024-06-26 14:50:42 +02:00
Dan Percic
4c4032b5ad Merge branch 'RED-9437' into 'master'
RED-9437: fixed watermarks not available on creating first dossier.

See merge request redactmanager/red-ui!481
2024-06-26 14:48:36 +02:00
Nicoleta Panaghiu
9c5a66b80e RED-9437: fixed watermarks not available on creating first dossier. 2024-06-26 15:37:33 +03:00
Valentin Mihai
1ba99def41 RED-8748 - fixed revert value dialog 2024-06-26 15:31:30 +03:00
Dan Percic
eeca03ae61 Merge branch 'RED-9443' into 'master'
RED-9443: filter out experimental types from type selection options.

See merge request redactmanager/red-ui!479
2024-06-26 12:12:36 +02:00
Nicoleta Panaghiu
3aa7ba1629 RED-9443: filter out experimental types from type selection options. 2024-06-26 12:42:26 +03:00
Dan Percic
ea06f4940a Merge branch 'RED-9431' into 'master'
RED-9431:  recovered missing translation keys.

See merge request redactmanager/red-ui!478
2024-06-26 11:04:17 +02:00
Nicoleta Panaghiu
e9b89b377a RED-9431: recovered missing translation keys. 2024-06-26 11:42:38 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
eb1a592abe push back localazy update 2024-06-26 01:03:36 +00:00
Dan Percic
797a4d6afd Merge branch 'VM/RED-9444' into 'master'
RED-9444 - Download button in dossier list view not working

Closes RED-9444

See merge request redactmanager/red-ui!477
2024-06-25 22:33:35 +02:00
Valentin Mihai
a0ab248479 RED-9444 - Download button in dossier list view not working 2024-06-25 23:06:00 +03:00
Dan Percic
6b7a089057 Merge branch 'VM/RED-9446' into 'master'
RED-9446 - Rectangle Redaction blocks File view and Freezes session

Closes RED-9446

See merge request redactmanager/red-ui!476
2024-06-25 17:42:18 +02:00
Valentin Mihai
c634d46b06 RED-9446 - Rectangle Redaction blocks File view and Freezes session 2024-06-25 18:33:51 +03:00
Valentin Mihai
6d7f6cbe2b Merge branch 'master' into VM/RED-8748 2024-06-25 13:05:35 +03:00
Dan Percic
0673ab6ce7 Merge branch 'RED-9306' into 'master'
RED-9306: display remove everywhere options for DICTIONARY engine.

See merge request redactmanager/red-ui!475
2024-06-25 11:05:17 +02:00
Nicoleta Panaghiu
87441ab0ec RED-9306: display remove everywhere options for DICTIONARY engine. 2024-06-25 11:54:24 +03:00
Dan Percic
c8bc0e7328 Merge branch 'RED-9443' into 'master'
RED-9443: fixed add hint dialog type select.

See merge request redactmanager/red-ui!474
2024-06-25 10:18:00 +02:00
Nicoleta Panaghiu
00dfb87c17 RED-9443: fixed add hint dialog type select. 2024-06-25 11:16:42 +03:00
Dan Percic
64187bd254 Merge branch 'RED-9370' into 'master'
RED-9370 & RED-9439: reverted changes to dossier href.

See merge request redactmanager/red-ui!473
2024-06-25 10:12:32 +02:00
Nicoleta Panaghiu
2173737132 RED-9370 & RED-9439: reverted changes to dossier href. 2024-06-25 11:02:40 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
b32573f9b7 push back localazy update 2024-06-25 01:03:34 +00:00
Valentin Mihai
797ffeff2a Merge branch 'master' into VM/RED-8748 2024-06-25 00:26:01 +03:00
Valentin Mihai
26a70a8398 RED-8748 - fixed workload annotations filtering, updated default textarea height for component values 2024-06-25 00:25:16 +03:00
Dan Percic
fe4e67b953 Merge branch 'RED-9337' into 'master'
RED-9337: display reanalyse button for bulk select.

See merge request redactmanager/red-ui!471
2024-06-24 11:20:17 +02:00
Nicoleta Panaghiu
3d481e5e47 RED-9337: display reanalyse button for bulk select. 2024-06-24 12:17:34 +03:00
Dan Percic
6e60cff400 Merge branch 'RED-9370' into 'master'
RED-9370: open download link in the same tab; fix back button.

See merge request redactmanager/red-ui!470
2024-06-24 10:38:11 +02:00
Nicoleta Panaghiu
4f196eb27d RED-9370: open download link in the same tab; fix back button. 2024-06-24 06:44:53 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
54b07d1e43 push back localazy update 2024-06-21 01:04:14 +00:00
Valentin Mihai
d7bbf20585 WIP on VM/RED-8748
RED-8748 - fixed document info view
2024-06-20 18:59:38 +03:00
Valentin Mihai
6f80f5f4ad Merge branch 'master' into VM/RED-8748 2024-06-20 16:46:12 +03:00
Dan Percic
aacca45da6 Merge branch 'updates' into 'master'
add pdftron version to assets

See merge request redactmanager/red-ui!469
2024-06-20 14:14:24 +02:00
Dan Percic
d0f95923a3 add pdftron version to assets 2024-06-20 15:10:20 +03:00
Dan Percic
91ab867792 Merge branch 'RED-3800' into 'master'
RED-3800: Moved fullscreen icons to common-ui

Closes RED-3800

See merge request redactmanager/red-ui!468
2024-06-20 14:07:51 +02:00
Adina Țeudan
0654558b6b RED-3800: Moved fullscreen icons to common-ui 2024-06-20 14:57:56 +03:00
Dan Percic
be756b3fe9 Merge branch 'updates' into 'master'
fix skip paths?

See merge request redactmanager/red-ui!467
2024-06-20 13:47:42 +02:00
Dan Percic
6202c0c462 fix skip paths? 2024-06-20 14:44:30 +03:00
Dan Percic
d92d346de3 Merge branch 'updates' into 'master'
skip web viewer scripts from sw caches

See merge request redactmanager/red-ui!466
2024-06-20 13:36:11 +02:00
Dan Percic
7f686c28c6 skip web-viewer scripts from sw caches 2024-06-20 14:34:18 +03:00
Dan Percic
dba8663e18 Merge branch 'updates' into 'master'
migrate inputs to signal inputs

See merge request redactmanager/red-ui!465
2024-06-20 10:51:11 +02:00
Dan Percic
f0b4070ae2 migrate inputs to signal inputs 2024-06-20 11:38:38 +03:00
Dan Percic
ab550a2831 Merge branch 'RED-9321' into 'master'
Migrate to lazy load routes

See merge request redactmanager/red-ui!464
2024-06-20 09:37:16 +02:00
Dan Percic
7b836c2894 update lockfile 2024-06-20 10:32:36 +03:00
Dan Percic
b7dbac0695 unfuck circular imports 2024-06-20 10:28:34 +03:00
Dan Percic
04e3f5b522 almost unfuck circular imports 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
ffd02c787d RED-9321: added missing imports. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
c3662f6bc5 RED-9321: refactored shared and file-upload-download modules. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
5d3af7e3cb RED-9321: fixed import. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
ae01864e0d RED-9321: deleted shared-dossiers module. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
0e9dcc2b1f RED-9321: refactored admin module. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
28b3301063 RED-9321: refactored account and archive modules. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
c4912ffd8f RED-9321: refactored trash and search modules. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
0fe7584f4b RED-9321: refactored account, dossier-listing and dashboard. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
6469e3de36 RED-9321: move resolve inside license.routes. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
6924cc1799 RED-9321: lazy load watermarks routes. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
1378543bf7 RED-9321: get the latest changes and adapt to standalone. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
cf6b7b4d24 RED-9321: lazy load entities routes, standalone components. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
9409261f3b RED-9321: removed file-preview and dossier-overview modules, use standalone. 2024-06-20 10:28:34 +03:00
Nicoleta Panaghiu
3d7dca1f43 RED-9321: refactored submodules of admin to standalone components. 2024-06-20 10:28:34 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
5cd5c39916 push back localazy update 2024-06-20 01:03:49 +00:00
Valentin-Gabriel Mihai
b0ab6bd302 Merge branch 'RED-9370' into 'master'
RED-9370: fixed notification links not working.

See merge request redactmanager/red-ui!463
2024-06-19 17:56:08 +02:00
Nicoleta Panaghiu
7dad19f8be RED-9370: fixed notification links not working. 2024-06-19 18:28:49 +03:00
Dan Percic
681cf01bd4 Merge branch 'RED-9337' into 'master'
RED-9337: owner and file assignee can reanalyse error file.

See merge request redactmanager/red-ui!462
2024-06-19 16:10:49 +02:00
Nicoleta Panaghiu
403d890140 RED-9337: owner and file assignee can reanalyse error file. 2024-06-19 17:01:20 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
0fcd8a45b6 push back localazy update 2024-06-19 07:34:23 +00:00
Dan Percic
a63dd4a846 Merge branch 'RED-9171' into 'master'
RED-9171: removed error toaster for non-existing dossier template.

See merge request redactmanager/red-ui!461
2024-06-18 17:59:00 +02:00
Nicoleta Panaghiu
cdd4cecb5b RED-9171: removed error toaster for non-existing dossier template. 2024-06-18 18:58:11 +03:00
Valentin-Gabriel Mihai
57a650cf6b Merge branch 'RED-3800' into 'master'
RED-3800: Updated translate extract lib

Closes RED-3800

See merge request redactmanager/red-ui!460
2024-06-18 17:36:23 +02:00
Adina Țeudan
e39ba6e62f RED-3800: Updated translate extract lib 2024-06-18 18:34:56 +03:00
Dan Percic
59b1219128 Merge branch 'RED-5108' into 'master'
RED-5108: use default redaction color for redacted image hints.

See merge request redactmanager/red-ui!459
2024-06-18 17:13:03 +02:00
Nicoleta Panaghiu
244ec6626f RED-5108: use default redaction color for redacted image hints. 2024-06-18 16:53:59 +03:00
Dan Percic
d797f57751 Merge branch 'RED-3800' into 'master'
fix docker file

See merge request redactmanager/red-ui!458
2024-06-18 15:18:37 +02:00
Dan Percic
bc2c700ca5 fix docker file 2024-06-18 16:17:05 +03:00
Valentin Mihai
bc8ba16b6b Merge branch 'master' into VM/RED-8748 2024-06-18 16:15:36 +03:00
Dan Percic
640297867f Merge branch 'VM/RED-9201' into 'master'
RED-9201 - UI for Component Mapping Tables

Closes RED-9201

See merge request redactmanager/red-ui!457
2024-06-18 13:26:05 +02:00
Valentin Mihai
cf3aa9f0cf RED-9201 - UI for Component Mapping Tables 2024-06-18 13:57:53 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
2663c36dc2 push back localazy update 2024-06-18 01:03:38 +00:00
Dan Percic
1179d9330a Merge branch 'updates' into 'master'
Updates

See merge request redactmanager/red-ui!456
2024-06-17 21:26:52 +02:00
Dan Percic
d0b401d3cf lint 2024-06-17 21:27:24 +03:00
Dan Percic
aa6bc36b89 migrate buttons to signal inputs 2024-06-17 21:26:49 +03:00
Valentin Mihai
19dc8f2704 RED-8748 - Integrated component view in DocuMine 2024-06-17 20:41:12 +03:00
Dan Percic
939b40b014 other updates 2024-06-17 19:49:18 +03:00
Dan Percic
f1ece3a89e update common-ui 2024-06-17 19:49:18 +03:00
Dan Percic
97ebca5046 ng 18 2024-06-17 19:49:18 +03:00
Dan Percic
20a80933b5 update lock file 2024-06-17 19:49:18 +03:00
Dan Percic
adf3b6b663 Merge branch 'VM/RED-8748-fix' into 'master'
RED-8748 - added back button for rectangle redaction

Closes RED-8748

See merge request redactmanager/red-ui!455
2024-06-17 13:58:54 +02:00
Valentin Mihai
b546929c9c RED-8748 - added back button for rectangle redaction 2024-06-17 14:36:49 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
c5b515bb35 push back localazy update 2024-06-15 01:03:50 +00:00
Dan Percic
223575c232 Merge branch 'VM/RED-8742' into 'master'
VM/RED-8742 - fixed hide button

Closes RED-8742

See merge request redactmanager/red-ui!454
2024-06-14 14:35:08 +02:00
Valentin Mihai
466139fadf WIP on master
RED-8742 - fixed hide button
2024-06-14 13:41:52 +03:00
Dan Percic
cfc882f303 Merge branch 'RED-8748' into 'master'
RED-8748 - Integrated component view in DocuMine

Closes RED-8748

See merge request redactmanager/red-ui!453
2024-06-14 12:02:26 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
717861057f push back localazy update 2024-06-14 01:03:52 +00:00
Valentin Mihai
4841bfc690 RED-8748 - Integrated component view in DocuMine 2024-06-13 18:30:25 +03:00
Valentin Mihai
b8fe0bca90 RED-8748 - Integrated component view in DocuMine 2024-06-13 18:03:18 +03:00
Dan Percic
072d9e3538 Merge branch 'VM/RED-9201' into 'master'
RED-9201 - fixed sorting and search by name

Closes RED-9201

See merge request redactmanager/red-ui!452
2024-06-13 12:22:26 +02:00
Valentin Mihai
2eb371fcd6 RED-9201 - fixed sorting and search by name 2024-06-13 12:25:59 +03:00
Dan Percic
190b040b1a Merge branch 'RED-9191' into 'master'
RED-9191 & RED-8396.

See merge request redactmanager/red-ui!451
2024-06-13 09:34:32 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
3c9904ddd5 push back localazy update 2024-06-13 01:03:50 +00:00
Nicoleta Panaghiu
27597e9a5a RED-9191 & RED-8396. 2024-06-12 20:17:06 +03:00
Dan Percic
3b29c0613a Merge branch 'RED-5108' into 'master'
RED-5108: update tooltips and header.

See merge request redactmanager/red-ui!450
2024-06-12 12:37:50 +02:00
Nicoleta Panaghiu
6b4f1b91d5 RED-5108: update tooltips and header. 2024-06-12 13:04:38 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
039b5540a9 push back localazy update 2024-06-12 01:03:46 +00:00
Dan Percic
463fddefd3 Merge branch 'VM/RED-8748' into 'master'
RED-8748 - Integrated component view in DocuMine

Closes RED-8748

See merge request redactmanager/red-ui!449
2024-06-11 20:03:54 +02:00
Valentin Mihai
6da2e35e5b RED-8748 - removed unused code 2024-06-11 20:57:25 +03:00
Valentin Mihai
d003283939 Merge branch 'master' into VM/RED-8748 2024-06-11 20:17:34 +03:00
Valentin Mihai
f560322547 RED-8748 - updates for override, revertOverride actions 2024-06-11 20:15:29 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
e09663aa71 push back localazy update 2024-06-11 01:03:43 +00:00
Dan Percic
93f8a0a4d3 Merge branch 'RED-3800' into 'master'
RED-3800: Moved visibility icons to common-ui

Closes RED-3800

See merge request redactmanager/red-ui!448
2024-06-10 15:56:51 +02:00
Adina Țeudan
ff16ae33c5 RED-3800: Moved visibility icons to common-ui 2024-06-10 16:26:54 +03:00
Valentin Mihai
b8a3f81859 RED-8748 2024-06-10 14:41:42 +03:00
Valentin Mihai
d0c6bef6b5 Merge branch 'master' into VM/RED-8748 2024-06-10 14:41:12 +03:00
Dan Percic
355b8edd86 Merge branch 'RED-9196' into 'master'
RED-9196: fixed due date checkbox not being reverted.

See merge request redactmanager/red-ui!447
2024-06-10 13:12:21 +02:00
Nicoleta Panaghiu
bbe8ac9742 RED-9196: fixed due date checkbox not being reverted. 2024-06-10 14:07:48 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
b9c9e8af98 push back localazy update 2024-06-09 01:03:39 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
820a3cb4d0 push back localazy update 2024-06-08 01:03:57 +00:00
Dan Percic
aaa1d7f0a4 Merge branch 'RED-9125' into 'master'
RED-9125: upgrade webviewer.

See merge request redactmanager/red-ui!446
2024-06-07 15:39:23 +02:00
Nicoleta Panaghiu
ea6a0c4d5f RED-9125: forgot yarn lock. 2024-06-07 16:35:18 +03:00
Nicoleta Panaghiu
dbdce02e79 RED-9125: upgrade webviewer. 2024-06-07 16:08:17 +03:00
Dan Percic
99b31ba9a2 Merge branch 'RED-8623' into 'master'
RED-8623: fix side effect.

See merge request redactmanager/red-ui!445
2024-06-07 14:57:50 +02:00
Nicoleta Panaghiu
f84fb52609 RED-8623: fix side effect. 2024-06-07 15:56:18 +03:00
Dan Percic
a035b9dbb0 Merge branch 'VM/RED-9201' into 'master'
RED-9201 - UI for Component Mapping Tables

Closes RED-9201

See merge request redactmanager/red-ui!444
2024-06-07 12:05:44 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
96223eee10 push back localazy update 2024-06-07 01:03:57 +00:00
Valentin Mihai
ce015babec Merge branch 'master' into VM/RED-9201 2024-06-06 18:41:30 +03:00
Valentin Mihai
3dfe705da1 RED-9201 - update config 2024-06-06 18:39:31 +03:00
Valentin Mihai
13c1a2a0b0 RED-9201 - added all mapping actions 2024-06-06 18:33:18 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
eefbe0f7c1 push back localazy update 2024-06-06 01:03:55 +00:00
Dan Percic
53123e05e0 Merge branch 'RED-7593' into 'master'
RED-7593: added warning notification in case of missing admin email.

See merge request redactmanager/red-ui!443
2024-06-05 13:32:36 +02:00
Nicoleta Panaghiu
54835866a7 Merge remote-tracking branch 'origin/master' into RED-7593 2024-06-05 14:25:58 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
8f3ed70a57 push back localazy update 2024-06-05 01:03:28 +00:00
Valentin Mihai
6b7c0e4ac9 Merge branch 'master' into VM/RED-8748 2024-06-05 00:24:56 +03:00
Valentin Mihai
40cc4a3d37 Merge branch 'master' into VM/RED-9201 2024-06-05 00:17:02 +03:00
Valentin Mihai
a960b837df RED-9201 - UI for Component Mapping Tables 2024-06-05 00:09:32 +03:00
Nicoleta Panaghiu
47342ee739 RED-7593: added warning notification in case of missing admin email. 2024-06-04 22:10:13 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
435c4e0ed4 push back localazy update 2024-06-04 01:03:52 +00:00
Dan Percic
597b613e2d Merge branch 'RED-9237' into 'master'
RED-9237: Escape "{" in translation string

Closes RED-9237

See merge request redactmanager/red-ui!442
2024-06-03 21:03:17 +02:00
Adina Țeudan
7f51609b72 RED-9237: Escape "{" in translation string 2024-06-03 22:01:32 +03:00
Dan Percic
8f2484e736 Merge branch 'RED-8979' into 'master'
RED-8979: Indicate dossier dictionary-based annotations in workload

Closes RED-8979

See merge request redactmanager/red-ui!441
2024-06-03 20:42:49 +02:00
Adina Țeudan
8a32910084 RED-8979: Indicate dossier dictionary-based annotations in workload 2024-06-03 21:41:38 +03:00
Dan Percic
6b30ac27ea Merge branch 'RED-9237' into 'master'
RED-9237: Added placeholders in reports page

Closes RED-9237

See merge request redactmanager/red-ui!440
2024-06-03 20:40:05 +02:00
Adina Țeudan
51c4dd05ae RED-9237: Added placeholders in reports page 2024-06-03 21:37:13 +03:00
Dan Percic
98f53cddc8 Merge branch 'RED-6143' into 'master'
RED-6143: Updates according to comment

Closes RED-6143

See merge request redactmanager/red-ui!436
2024-06-03 15:53:43 +02:00
Dan Percic
25d8815c17 Merge branch 'RED-9175' into 'master'
Resolve RED-9175

Closes RED-9175

See merge request redactmanager/red-ui!439
2024-06-03 15:14:30 +02:00
Nicoleta Panaghiu
8220f502e6 RED-9175: removed unnecessary brackets. 2024-06-03 16:10:10 +03:00
Nicoleta Panaghiu
129f2d97d6 RED-9175: remove unused import. 2024-06-03 15:20:59 +03:00
Nicoleta Panaghiu
1ea03ac015 RED-9175: prevent search re-trigger upon navigating the file pages. 2024-06-03 15:20:59 +03:00
Dan Percic
f02323561c Merge branch 'RED-5108' into 'master'
RED-5108: added redact functionality for hint images.

See merge request redactmanager/red-ui!438
2024-06-03 12:15:24 +02:00
Nicoleta Panaghiu
050b0bc55a RED-5108: added redact functionality for hint images. 2024-06-03 13:07:14 +03:00
Valentin-Gabriel Mihai
ca7c145457 Merge branch 'RED-9191' into 'master'
RED-9191: toggle icons design fine-tuning.

See merge request redactmanager/red-ui!437
2024-05-30 16:16:07 +02:00
Nicoleta Panaghiu
668dff4620 RED-9191: toggle icons design fine-tuning. 2024-05-30 17:14:47 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
85560cc438 push back localazy update 2024-05-30 01:03:52 +00:00
Valentin Mihai
d3f293f622 RED-9201 - UI for Component Mapping Tables 2024-05-29 20:16:23 +03:00
Adina Țeudan
9922526fc6 RED-6143: Updates according to comment 2024-05-29 15:04:12 +03:00
Nicoleta Panaghiu
4cdfc97a9f Merge branch 'VM/RED-8882' into 'master'
RED-8882 - Help Mode design improvements

Closes RED-8882

See merge request redactmanager/red-ui!435
2024-05-29 09:55:46 +02:00
Nicoleta Panaghiu
4bcc5c5b38 Merge branch 'VM/RED-9208' into 'master'
RED-9208 - Rule editor: Display of error disappears when saving before...

Closes RED-9208

See merge request redactmanager/red-ui!434
2024-05-29 09:55:34 +02:00
Valentin Mihai
cfe897c3a3 RED-8882 - Help Mode design improvements 2024-05-29 10:53:33 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
b6491f9d6a push back localazy update 2024-05-29 01:04:14 +00:00
Valentin Mihai
d3d042e539 RED-9208 - Rule editor: Display of error disappears when saving before checking for warnings (dry run) 2024-05-28 14:24:22 +03:00
Valentin Mihai
26a3a2abb6 Merge branch 'master' into VM/RED-8748 2024-05-28 14:03:52 +03:00
Nicoleta Panaghiu
d98b55c7ff Merge branch 'VM/RED-8742' into 'master'
RED-8742 - Display red border around hidden annotations when they are selected in workload

Closes RED-8742

See merge request redactmanager/red-ui!433
2024-05-28 08:46:53 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
a0ebd52c0a push back localazy update 2024-05-28 01:03:27 +00:00
Valentin Mihai
d74f501f4c RED-8742 - Display red border around hidden annotations when they are selected in workload 2024-05-27 21:28:23 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
ee2d53f10b push back localazy update 2024-05-25 01:03:49 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
ad64637a0d push back localazy update 2024-05-24 01:04:03 +00:00
Valentin-Gabriel Mihai
7abcd054aa Merge branch 'RED-9204' into 'master'
RED-9204: fixed edit dossier dialog buttons functionalities.

See merge request redactmanager/red-ui!432
2024-05-23 15:04:49 +02:00
Nicoleta Panaghiu
3dd0740222 RED-9204: fixed edit dossier dialog buttons functionalities. 2024-05-23 16:01:11 +03:00
Nicoleta Panaghiu
185d421074 Merge branch 'VM/RED-8882' into 'master'
RED-8882 - Help Mode design improvements

Closes RED-8882

See merge request redactmanager/red-ui!431
2024-05-23 10:04:46 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
a94d8bfbc3 push back localazy update 2024-05-23 01:03:37 +00:00
Valentin Mihai
29b23cc862 VM/RED-8748 - update common ui 2024-05-22 21:42:55 +03:00
Valentin Mihai
18ca33e9d2 Merge branch 'master' into VM/RED-8748 2024-05-22 21:42:26 +03:00
Valentin Mihai
4e4aa23552 RED-8882 - Help Mode design improvements 2024-05-22 21:38:08 +03:00
Valentin-Gabriel Mihai
32d45c9097 Merge branch 'RED-6959' into 'master'
RED-6959: Added selected items count to table header

Closes RED-6959

See merge request redactmanager/red-ui!430
2024-05-22 13:51:35 +02:00
Valentin-Gabriel Mihai
b107237a90 Merge branch 'RED-8872' into 'master'
RED-8872: More readonly tabs in edit dossier, rework to signals

Closes RED-8872

See merge request redactmanager/red-ui!429
2024-05-22 13:49:13 +02:00
Adina Țeudan
0ff7c16d0d RED-6959: Added selected items count to table header 2024-05-22 14:37:40 +03:00
Adina Țeudan
19c51fa721 RED-3800: Remove commented css 2024-05-22 14:18:07 +03:00
Adina Țeudan
7319cc7cc9 RED-8872: More readonly tabs in edit dossier, rework to signals 2024-05-22 14:16:35 +03:00
Valentin-Gabriel Mihai
29cc0d9a11 Merge branch 'RED-6143' into 'master'
RED-6143: Redo dossier template settings / dialogs

Closes RED-6143

See merge request redactmanager/red-ui!420
2024-05-22 09:37:05 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
977213c70e push back localazy update 2024-05-22 01:03:37 +00:00
Valentin-Gabriel Mihai
fd4b9c2ab1 Merge branch 'RED-9151' into 'master'
RED-9151: change text ordering to rendering order of the text

Closes RED-9151

See merge request redactmanager/red-ui!418
2024-05-21 14:28:51 +02:00
Kilian Schüttler
81ef952451 RED-9151: change text ordering to rendering order of the text 2024-05-21 14:28:51 +02:00
Adina Țeudan
a3748a6ae8 Merge remote-tracking branch 'origin/master' into RED-6143 2024-05-21 12:06:07 +03:00
Nicoleta Panaghiu
6dd46ca19f Merge branch 'VM/RED-8882' into 'master'
RED-8882 - removed base dialog

Closes RED-8882

See merge request redactmanager/red-ui!428
2024-05-21 09:33:53 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
ef62fbe44a push back localazy update 2024-05-21 01:03:53 +00:00
Valentin Mihai
db18d9ad81 Merge branch 'master' into VM/RED-8748 2024-05-20 19:59:37 +03:00
Valentin Mihai
019d0994c8 RED-8748 - update common ui 2024-05-20 19:57:38 +03:00
Valentin Mihai
f9ca725899 RED-8882 - update common ui 2024-05-20 19:07:23 +03:00
Nicoleta Panaghiu
cfde7dc6a8 Merge branch 'VM/RED-8882' into 'master'
RED-8882 - moved help mode dialog preference into iqser-user-preferences.service

Closes RED-8882

See merge request redactmanager/red-ui!427
2024-05-20 16:13:31 +02:00
Valentin Mihai
0630b0e078 RED-8882 - moved help mode dialog preference into iqser-user-preferences.service 2024-05-20 17:10:55 +03:00
Nicoleta Panaghiu
d5a8b13b0e Merge branch 'VM/RED-8882' into 'master'
RED-8882 - removed user preferences service from help mode service

Closes RED-8882

See merge request redactmanager/red-ui!426
2024-05-20 15:32:29 +02:00
Valentin Mihai
bea47cc003 RED-8882 - removed user preferences service from help mode service 2024-05-20 16:27:41 +03:00
Nicoleta Panaghiu
28d354b90a Merge branch 'VM/RED-8882' into 'master'
RED-8882 - Help Mode design improvements

Closes RED-8882

See merge request redactmanager/red-ui!425
2024-05-20 13:44:34 +02:00
Valentin Mihai
10140556e6 RED-8882 - removed base dialog from help mode dialog 2024-05-20 14:31:58 +03:00
Valentin-Gabriel Mihai
63ee7e17b8 Merge branch 'RED-9131' into 'master'
RED-9131: more design improvements.

See merge request redactmanager/red-ui!424
2024-05-20 10:43:47 +02:00
Nicoleta Panaghiu
84c8aa4129 RED-9131: more design improvements. 2024-05-20 11:42:11 +03:00
Nicoleta Panaghiu
460046c732 Merge branch 'VM/RED-8882' into 'master'
RED-8882 - Help Mode design improvements

Closes RED-8882

See merge request redactmanager/red-ui!423
2024-05-20 09:41:33 +02:00
Valentin Mihai
239f2d0269 RED-8882 - update common ui 2024-05-20 10:40:13 +03:00
Valentin Mihai
0f89a490de Merge branch 'master' into VM/RED-8748 2024-05-17 19:14:48 +03:00
Valentin Mihai
b8ebbcbb6c RED-8882 - update common ui 2024-05-17 19:05:13 +03:00
Valentin Mihai
8088c32218 Merge branch 'master' into VM/RED-8882 2024-05-17 17:52:11 +03:00
Valentin Mihai
912f66883a WIP on VM/RED-8882
RED-8882 - Help Mode design improvements
2024-05-17 17:51:09 +03:00
Valentin-Gabriel Mihai
fd4ba25f1b Merge branch 'RED-9012' into 'master'
RED-9012: fixed cosmetical issue.

See merge request redactmanager/red-ui!422
2024-05-17 13:56:04 +02:00
Nicoleta Panaghiu
d4706a62bd RED-9012: fixed cosmetical issue. 2024-05-17 14:55:00 +03:00
Valentin-Gabriel Mihai
df859686bf Merge branch 'RED-9131' into 'master'
RED-9131: implemented design changes.

See merge request redactmanager/red-ui!421
2024-05-17 12:15:38 +02:00
Nicoleta Panaghiu
9a651e3725 RED-9131: implemented design changes. 2024-05-17 13:11:02 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
5dd9cd5831 push back localazy update 2024-05-17 01:03:44 +00:00
Adina Țeudan
c7658527d5 RED-6143: Redo dossier template settings / dialogs 2024-05-16 23:38:32 +03:00
Valentin Mihai
cd3ead7ac2 Merge branch 'master' into VM/RED-8882 2024-05-16 18:49:00 +03:00
Valentin Mihai
d8dca25a0e RED-8882 - update common ui 2024-05-16 18:47:50 +03:00
Valentin Mihai
836dae0c0e RED-8882 - Help Mode design improvements 2024-05-16 18:46:41 +03:00
Nicoleta Panaghiu
da4c9e6331 Merge branch 'RED-9012' into 'master'
RED-9012: style adjustments to the edit selected value feature.

See merge request redactmanager/red-ui!419
2024-05-16 12:59:05 +02:00
Nicoleta Panaghiu
d0e6f325c4 RED-9012: style adjustments to the edit selected value feature. 2024-05-16 13:56:46 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
b31bb1c893 push back localazy update 2024-05-16 01:03:42 +00:00
Valentin-Gabriel Mihai
a7009beed5 Merge branch 'RED-8872' into 'master'
RED-8872: Disable editing team members for dossier in inactive template

Closes RED-8872

See merge request redactmanager/red-ui!416
2024-05-15 22:38:01 +02:00
Adina Țeudan
354c117624 RED-8872: Fix comments 2024-05-15 23:34:40 +03:00
Valentin-Gabriel Mihai
e95b6a3824 Merge branch 'RED-7418' into 'master'
RED-7418: Disable preview mode if the file is in ERROR state

Closes RED-7418

See merge request redactmanager/red-ui!417
2024-05-15 16:44:25 +02:00
Valentin-Gabriel Mihai
88037fe297 Merge branch 'RED-9131' into 'master'
RED-9131: user can customize add/remove dialog defaults.

See merge request redactmanager/red-ui!414
2024-05-15 15:44:12 +02:00
Adina Țeudan
92219b4740 RED-7418: Disable preview mode if the file is in ERROR state 2024-05-15 16:42:01 +03:00
Adina Teudan
fb34d74e14 Merge branch 'RED-8983' into 'master'
RED-8983: Fixed cosmetical spacing/size issues

Closes RED-8983

See merge request redactmanager/red-ui!415
2024-05-15 15:31:18 +02:00
Adina Țeudan
0b8a163d0c RED-8872: Disable editing team members for dossier in inactive template 2024-05-15 16:30:22 +03:00
Adina Țeudan
b267eb92e9 RED-8983: Fixed cosmetical spacing/size issues 2024-05-15 16:13:28 +03:00
Nicoleta Panaghiu
0e8c7ec7a8 RED-9131: user can customize add/remove dialog defaults. 2024-05-15 15:54:01 +03:00
Dan Percic
0d5a05e9da Merge branch 'RED-9092' into 'master'
RED-9092: filtered out experimental and missing types.

See merge request redactmanager/red-ui!413
2024-05-10 12:32:08 +02:00
Nicoleta Panaghiu
11537f8cb6 RED-9092: filtered out experimental and missing types. 2024-05-10 13:30:42 +03:00
Dan Percic
294fba97d9 Merge branch 'RED-9097' into 'master'
RED-9097: fixed workflow file attributes not updating.

See merge request redactmanager/red-ui!412
2024-05-08 13:45:21 +02:00
Nicoleta Panaghiu
02294acbfc RED-9097: fixed workflow file attributes not updating. 2024-05-08 13:39:18 +03:00
Valentin Mihai
bbd337fa1f Merge branch 'master' into VM/RED-8748 2024-05-07 22:32:57 +03:00
Valentin Mihai
3c64d2ebcf RED-8786 - Preserve New-Lines in Component values in the UI 2024-05-07 22:32:06 +03:00
Dan Percic
b7b4d94b30 Merge branch 'VM/RED-8692' into 'master'
RED-8692 - do not display "0 warnings found in rules"

Closes RED-8692

See merge request redactmanager/red-ui!411
2024-05-02 17:13:36 +02:00
Valentin Mihai
de7a86dfa5 RED-8692 - do not display "0 warnings found in rules" 2024-05-02 17:31:50 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
c009038d6d push back localazy update 2024-05-01 01:03:24 +00:00
Valentin Mihai
ee70abbfbe RED-8748 - added CdkDropList to be able to reorder component log values 2024-04-30 17:30:14 +03:00
Valentin Mihai
0a8147cee2 RED-8748 - update common ui 2024-04-30 16:09:48 +03:00
Valentin Mihai
722794c425 RED-8748 - added revert value dialog 2024-04-30 16:08:54 +03:00
Dan Percic
75d31e39fe Merge branch 'RED-9083' into 'master'
RED-9083: prevent search panel from re-opening unexpectedly.

See merge request redactmanager/red-ui!410
2024-04-30 12:24:55 +02:00
Valentin Mihai
033c473199 Merge branch 'master' into VM/RED-8748 2024-04-30 13:17:18 +03:00
Valentin Mihai
52c6dfed5b Merge branch 'master' into VM/RED-8748 2024-04-30 13:14:08 +03:00
Nicoleta Panaghiu
0eb493b865 RED-9083: prevent search panel from re-opening unexpectedly. 2024-04-30 12:44:34 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
ac32050e1f push back localazy update 2024-04-30 01:03:22 +00:00
Valentin Mihai
64bd9ba86f RED-8748 - update common-ui 2024-04-29 22:27:18 +03:00
Valentin Mihai
c2f40a8d50 RED-8748 - filtered components using popup filter, filtered annotations based on selected component, wip on revert value dialog 2024-04-29 22:22:01 +03:00
Dan Percic
10f2dad358 Merge branch 'RED-3800' into 'master'
RED-3800: Updated common-ui

Closes RED-3800

See merge request redactmanager/red-ui!409
2024-04-29 16:13:33 +02:00
Adina Țeudan
3af63d929d RED-3800: Updated common-ui 2024-04-29 17:11:05 +03:00
Dan Percic
2e0f63bf25 Merge branch 'RED-9090' into 'master'
RED-9090: modal displays actual state & other improvements.

See merge request redactmanager/red-ui!408
2024-04-29 15:29:22 +02:00
Nicoleta Panaghiu
3f35c9484c RED-9090: modal displays actual state & other improvements. 2024-04-29 16:22:55 +03:00
Dan Percic
213db219c6 Merge branch 'RED-9089' into 'master'
RED-9089: fixed assign user button.

See merge request redactmanager/red-ui!407
2024-04-29 14:06:58 +02:00
Nicoleta Panaghiu
2803619cc8 RED-9089: fixed assign user button. 2024-04-29 14:25:46 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
76abd54689 push back localazy update 2024-04-26 01:03:29 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
db5723f86d push back localazy update 2024-04-25 01:03:31 +00:00
Valentin Mihai
cae3f2dec3 Merge branch 'master' into VM/RED-8748 2024-04-24 21:49:45 +03:00
Valentin Mihai
f709edb2ee RED-8748 - WIP on filtering components 2024-04-24 21:48:35 +03:00
Dan Percic
c90f74d492 Merge branch 'RED-8904' into 'master'
RED-8904: more improvements.

See merge request redactmanager/red-ui!406
2024-04-24 14:25:00 +02:00
Nicoleta Panaghiu
7a8f9289ad RED-8904: run i18n extract. 2024-04-24 15:23:41 +03:00
Nicoleta Panaghiu
22fa8d28bc RED-8904: more improvements. 2024-04-24 15:20:31 +03:00
Dan Percic
9b99e47b4b Merge branch 'RED-8904' into 'master'
RED-8904: use table format for add dialog as well.

See merge request redactmanager/red-ui!405
2024-04-24 13:12:20 +02:00
Nicoleta Panaghiu
1150f9cf6b RED-8904: use table format for add dialog as well. 2024-04-24 14:05:46 +03:00
Dan Percic
5dc63a0413 Merge branch 'VM/RED-8692' into 'master'
RED-8692 - Automatic code validation in the rule editor

Closes RED-8692

See merge request redactmanager/red-ui!403
2024-04-24 10:11:37 +02:00
Dan Percic
2dc379e378 Merge branch 'RED-8904' into 'master'
RED-8904: changed from list to table display for some dialogs.

See merge request redactmanager/red-ui!404
2024-04-24 10:11:04 +02:00
Nicoleta Panaghiu
49af54175b RED-8904: changed from list to table display for some dialogs. 2024-04-24 11:08:23 +03:00
Valentin Mihai
29555fec94 RED-8692 - Automatic code validation in the rule editor 2024-04-23 20:31:15 +03:00
Valentin-Gabriel Mihai
5e5465c02a Merge branch 'RED-9045' into 'master'
RED-9045: made the current type always available.

See merge request redactmanager/red-ui!402
2024-04-23 15:22:57 +02:00
Nicoleta Panaghiu
8f55db2279 RED-9045: made the current type always available. 2024-04-23 15:55:40 +03:00
Dan Percic
5d52904f76 Merge branch 'RED-8945' into 'master'
RED-8945: filtering out types for edit dialog.

See merge request redactmanager/red-ui!401
2024-04-22 15:39:58 +02:00
Nicoleta Panaghiu
5e1c531cbe RED-8945: filtering out types for edit dialog. 2024-04-22 16:31:58 +03:00
Dan Percic
1f7c1827f4 Merge branch 'VM/RED-9020' into 'master'
RED-9020 - Use new POST endpoint to hard-delete files

Closes RED-9020

See merge request redactmanager/red-ui!400
2024-04-22 13:02:41 +02:00
Valentin Mihai
65297c3423 RED-9020 - Use new POST endpoint to hard-delete files 2024-04-22 13:54:35 +03:00
Dan Percic
f23c671f69 Merge branch 'RED-8904' into 'master'
RED-8904: adjusted the table columns width for specific cases.

See merge request redactmanager/red-ui!399
2024-04-22 12:05:21 +02:00
Nicoleta Panaghiu
c3697964be RED-8904: adjusted the table columns width for specific cases. 2024-04-22 12:19:58 +03:00
Valentin Mihai
1d2485db3c Merge branch 'master' into VM/RED-8748 2024-04-21 21:15:40 +03:00
Valentin Mihai
45a3729ae1 RED-8748 - WIP on component management view 2024-04-21 21:14:57 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
efe07135b9 push back localazy update 2024-04-21 01:03:48 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
a002e784ba push back localazy update 2024-04-20 01:03:46 +00:00
Dan Percic
7120ec60b9 Merge branch 'VM/RED-9020' into 'master'
RED-9020 - Use new POST endpoint to hard-delete files

Closes RED-9020

See merge request redactmanager/red-ui!398
2024-04-19 15:50:08 +02:00
Valentin Mihai
7a23639eaf RED-9020 - Use new POST endpoint to hard-delete files 2024-04-19 16:30:53 +03:00
Valentin Mihai
b2fd729051 Merge branch 'master' into VM/RED-9020 2024-04-19 16:29:39 +03:00
Dan Percic
150bab35b5 Merge branch 'RED-8945' into 'master'
RED-8945: set addToDictionaryAction flag on dossier level.

See merge request redactmanager/red-ui!397
2024-04-19 14:35:49 +02:00
Nicoleta Panaghiu
e56afdcea2 RED-8945: set addToDictionaryAction flag on dossier level. 2024-04-19 15:23:53 +03:00
Valentin Mihai
b157980d8a Merge branch 'master' into VM/RED-8748 2024-04-18 17:38:14 +03:00
Valentin Mihai
73438f493b RED-8748 - WIP on component management view 2024-04-18 17:37:26 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
b490a44abd push back localazy update 2024-04-18 01:03:40 +00:00
Dan Percic
cc18ece654 Merge branch 'RED-8963' into 'master'
RED-8963: removed GET request for watermaks on documine.

See merge request redactmanager/red-ui!395
2024-04-17 10:05:50 +02:00
Nicoleta Panaghiu
4d9cb5f98b RED-8963: removed GET request for watermaks on documine. 2024-04-17 09:57:26 +03:00
Valentin Mihai
3a51868d2d Merge branch 'master' into VM/RED-8748 2024-04-16 17:08:23 +03:00
Dan Percic
2434d94313 Merge branch 'VM/RED-8950' into 'master'
RED-8950 - Not possible to edit/remove manual local redaction when...

Closes RED-8950

See merge request redactmanager/red-ui!394
2024-04-16 14:30:33 +02:00
Valentin Mihai
dcc41044e3 RED-8950 - Not possible to edit/remove manual local redaction when auto-analysis is disabled, wrong flag is used 2024-04-16 15:23:31 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
8215b16b36 push back localazy update 2024-04-14 01:03:36 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
f1f4359aeb push back localazy update 2024-04-13 01:03:35 +00:00
Dan Percic
98cc0528ab Merge branch 'RED-8915' into 'master'
RED-8915: fixed edge cases.

See merge request redactmanager/red-ui!393
2024-04-12 14:00:30 +02:00
Nicoleta Panaghiu
64a77f5ddb RED-8915: fixed edge cases. 2024-04-12 14:37:07 +03:00
Valentin Mihai
c024d06806 Merge branch 'master' into VM/RED-8748 2024-04-12 13:52:03 +03:00
Valentin Mihai
7c940010fd RED-8748 - WIP on component management view 2024-04-12 13:29:48 +03:00
Dan Percic
15914ebae7 Merge branch 'RED-8729' into 'master'
RED-8729 update dependencies

See merge request redactmanager/red-ui!335
2024-04-12 12:24:16 +02:00
Dan Percic
259bbfd519 update pdf viewer 2024-04-12 13:19:30 +03:00
Dan Percic
7865839761 ng updates 2024-04-12 12:54:32 +03:00
Dan Percic
36180d7851 other updates 2024-04-12 12:51:03 +03:00
Dan Percic
9833b53a34 eslint updates 2024-04-12 12:51:03 +03:00
Dan Percic
b83847c241 ng updates 2024-04-12 12:51:03 +03:00
Dan Percic
a27807b046 Merge branch 'VM/RED-8638' into 'master'
RED-8638 - check if annotation has redaction changes

Closes RED-8638

See merge request redactmanager/red-ui!392
2024-04-12 11:31:48 +02:00
Valentin Mihai
17167978a2 RED-8638 - check if annotation has redaction changes 2024-04-12 12:28:59 +03:00
Dan Percic
873b5eebee Merge branch 'VM/RED-8638' into 'master'
RED-8638 - removed “Redaction/Hint added” tooltip text

Closes RED-8638

See merge request redactmanager/red-ui!391
2024-04-12 09:34:27 +02:00
Valentin Mihai
e53244931a Merge branch 'master' into VM/RED-8638 2024-04-12 09:33:31 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
90bec36d01 push back localazy update 2024-04-12 01:03:29 +00:00
Valentin Mihai
8cea43e57a RED-8638 - fixed build 2024-04-11 19:19:52 +03:00
Valentin Mihai
963f14bb8a RED-8638 - removed “Redaction/Hint added” tooltip text 2024-04-11 19:12:01 +03:00
Dan Percic
a7ebcfe053 Merge branch 'RED-3800' into 'master'
RED-3800: CSS updates

Closes RED-3800

See merge request redactmanager/red-ui!390
2024-04-11 17:27:16 +02:00
Adina Țeudan
9448972d45 RED-3800: CSS updates 2024-04-11 18:25:17 +03:00
Dan Percic
3be86cdd96 Merge branch 'RED-8731' into 'master'
RED-8731: Updated material & fixed toggle appearance

Closes RED-8731

See merge request redactmanager/red-ui!388
2024-04-11 15:16:55 +02:00
Adina Țeudan
92e34204ca RED_8731: Update common-ui 2024-04-11 15:46:38 +03:00
Dan Percic
bc78b1606b Merge branch 'RED-8907' into 'master'
RED-8907: removed resize in dictionary option for forced annotations.

See merge request redactmanager/red-ui!389
2024-04-11 14:32:03 +02:00
Adina Țeudan
25796fc190 RED-8731: Update common-ui 2024-04-11 15:30:01 +03:00
Nicoleta Panaghiu
309ef93512 RED-8907: removed resize in dictionary option for forced annotations. 2024-04-11 15:22:54 +03:00
Adina Țeudan
34d5a1db4e RED-8731: Updated material & fixed toggle appearance 2024-04-11 15:15:52 +03:00
Dan Percic
68a1be0800 Merge branch 'VM/RED-8638' into 'master'
RED-8638 - updated “Only annotations with manual changes” filter to include...

Closes RED-8638

See merge request redactmanager/red-ui!387
2024-04-11 11:33:15 +02:00
Valentin Mihai
698892e3e7 RED-8638 - updated “Only annotations with manual changes” filter to include only the anotations with manual engine 2024-04-11 10:44:28 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
52b35f7e0d push back localazy update 2024-04-11 01:03:24 +00:00
Dan Percic
63bb6e3a9a Merge branch 'RED-8915' into 'master'
RED-8915: made some graphs stop at the current month.

See merge request redactmanager/red-ui!386
2024-04-10 16:29:59 +02:00
Nicoleta Panaghiu
5e419e8f09 RED-8915: made some graphs stop at the current month. 2024-04-10 17:26:15 +03:00
Dan Percic
60977c9306 Merge branch 'RED-8904' into 'master'
Resolve RED-8904

Closes RED-8904

See merge request redactmanager/red-ui!385
2024-04-10 15:32:19 +02:00
Nicoleta Panaghiu
8a37009790 Merge branch 'master' into RED-8904 2024-04-10 16:29:02 +03:00
Dan Percic
7a8043ea8a Merge branch 'RED-8636' into 'master'
RED-8636: use the new recategorize endpoint & updated success message.

See merge request redactmanager/red-ui!384
2024-04-10 15:08:03 +02:00
Nicoleta Panaghiu
28f7f9752f RED-8636: use the new recategorize endpoint & updated success message. 2024-04-10 16:04:31 +03:00
Nicoleta Panaghiu
21d01e9379 RED-8886: improved add redaction dialog. 2024-04-10 14:02:51 +03:00
Nicoleta Panaghiu
dad84feb38 RED-8887: improved resize dialog. 2024-04-10 13:59:37 +03:00
Dan Percic
f7f18a99f2 Merge branch 'VM/RED-8711' into 'master'
RED-8711 - check for positions property to be sure it exists and is not null

Closes RED-8711

See merge request redactmanager/red-ui!383
2024-04-10 11:48:42 +02:00
Valentin Mihai
2abf0aefab RED-8711 - check for positions property to be sure it exists and is not null 2024-04-10 12:47:15 +03:00
Valentin Mihai
09fce959d4 Merge branch 'master' into VM/RED-8748 2024-04-10 12:31:53 +03:00
Dan Percic
a9465c854a Merge branch 'VM/RED-8638' into 'master'
RED-8638 - Adapt UI to new manualChanges types

Closes RED-8638

See merge request redactmanager/red-ui!382
2024-04-10 10:05:49 +02:00
Dan Percic
812fd9efbb Merge branch 'VM/RED-8692' into 'master'
RED-8692 - Automatic code validation in the rule editor

Closes RED-8692

See merge request redactmanager/red-ui!381
2024-04-10 10:05:33 +02:00
Valentin Mihai
15d07f98d7 RED-8638 - Adapt UI to new manualChanges types 2024-04-09 19:26:46 +03:00
Valentin Mihai
8bd22fc906 RED-8692 - Automatic code validation in the rule editor 2024-04-09 18:50:17 +03:00
Nicoleta Panaghiu
89870c7e3f RED-8885: improved accept recommendation dialog. 2024-04-09 17:58:07 +03:00
Nicoleta Panaghiu
02720f190b RED-8904: fixed value overflow ellipsis. 2024-04-09 17:55:46 +03:00
Nicoleta Panaghiu
e2982224b3 RED-8904: factored out the scrollable bullet list in another component. 2024-04-09 17:45:56 +03:00
Nicoleta Panaghiu
a1c5e43f8e RED-8884: improved force redaction dialog. 2024-04-09 17:01:31 +03:00
Nicoleta Panaghiu
6fbf7a36f1 RED-8904: extracted selected annotations table in a separate component. 2024-04-09 16:59:54 +03:00
Dan Percic
71259f6708 Merge branch 'VM/RED-8711' into 'master'
RED-8711 - filtered out entities with empty rectangle positions

Closes RED-8711

See merge request redactmanager/red-ui!380
2024-04-09 11:49:11 +02:00
Valentin Mihai
b2616a856b RED-8711 - filtered out entities with empty rectangle positions 2024-04-09 12:28:47 +03:00
Valentin Mihai
e4502ea55c Merge branch 'master' into VM/RED-8748 2024-04-08 19:51:10 +03:00
Dan Percic
07eed9f6e1 Merge branch 'RED-3800' into 'master'
RED-3800: Moved color-picker icon to common-ui

Closes RED-3800

See merge request redactmanager/red-ui!378
2024-04-08 14:58:41 +02:00
Dan Percic
7167d36f7a Merge branch 'RED-8907' into 'master'
RED-8907: changed dialog options permissions based on local changes.

See merge request redactmanager/red-ui!379
2024-04-08 14:41:59 +02:00
Nicoleta Panaghiu
ee8d66ba41 RED-8907: changed dialog options permissions based on local changes. 2024-04-08 15:36:13 +03:00
Valentin Mihai
18b3da9c1e Merge branch 'master' into VM/RED-8748 2024-04-08 14:39:27 +03:00
Valentin Mihai
7cc64d6aa2 RED-8748 - update common ui 2024-04-08 14:00:50 +03:00
Valentin Mihai
a41f4a6639 RED-8748 - updated DocuMine component view based on active tenant 2024-04-08 13:59:14 +03:00
Adina Țeudan
80fe8e50aa RED-3800: Moved color-picker icon to common-ui 2024-04-07 21:33:03 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
6e5eb1d91a push back localazy update 2024-04-06 01:03:43 +00:00
Dan Percic
1e49da939d Merge branch 'RED-8622' into 'master'
RED-8622: removed unnecessary get requests for dossier templates.

See merge request redactmanager/red-ui!377
2024-04-05 12:17:10 +02:00
Nicoleta Panaghiu
2757a64628 RED-8622: removed unnecessary get requests for dossier templates. 2024-04-05 13:13:47 +03:00
Dan Percic
30c7dfcb65 Merge branch 'RED-8755' into 'master'
RED-8755: deselect all annotations on esc even when user is unassigned.

See merge request redactmanager/red-ui!376
2024-04-04 12:11:24 +02:00
Nicoleta Panaghiu
4a6bf81d47 RED-8755: deselect all annotations on esc even when user is unassigned. 2024-04-04 13:09:38 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
dcb2c2dc40 push back localazy update 2024-04-04 01:03:52 +00:00
Dan Percic
bf1f5892cf Merge branch 'RED-8660' into 'master'
RED-8660: hide changes box when loading page.

See merge request redactmanager/red-ui!375
2024-04-03 15:57:31 +02:00
Nicoleta Panaghiu
e6b917c37c RED-8660: hide changes box when loading page. 2024-04-03 16:51:11 +03:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
058e58a7b7 push back localazy update 2024-04-03 01:03:51 +00:00
Valentin Mihai
5e548798a5 Merge branch 'master' into VM/RED-8748 2024-04-02 22:25:46 +03:00
Valentin Mihai
48bc514f5b RED-8748 - added DocuMine component view 2024-04-02 21:57:50 +03:00
Dan Percic
2dd2fd0928 Merge branch 'RED-8623' into 'master'
RED-8623: reverted filtering notification changes on certain pages.

See merge request redactmanager/red-ui!374
2024-04-02 15:36:46 +02:00
Nicoleta Panaghiu
c5b28df758 RED-8623: reverted filtering notification changes on certain pages. 2024-04-02 16:35:38 +03:00
Dan Percic
8290f1e276 Merge branch 'RED-8812' into 'master'
RED-8812 & RED-8841: fixes after suggestions.

See merge request redactmanager/red-ui!373
2024-04-02 15:29:15 +02:00
Nicoleta Panaghiu
cdaa921880 RED-8812 & RED-8841: fixes after suggestions. 2024-04-02 16:24:27 +03:00
Dan Percic
035986ea4f Merge branch 'RED-8765' into 'master'
RED-8765: fixed actions and edit fields for specific combinations.

See merge request redactmanager/red-ui!372
2024-04-02 14:38:53 +02:00
Nicoleta Panaghiu
3871b7bd4f RED-8765: fixed actions and edit fields for specific combinations. 2024-04-02 15:33:26 +03:00
Dan Percic
67f8a8d162 Merge branch 'RED-8755' into 'master'
RED-8755: deactivate multi select on esc and added button tooltip.

See merge request redactmanager/red-ui!371
2024-04-02 14:11:00 +02:00
Nicoleta Panaghiu
e29c83b8e7 RED-8755: deactivate multi select on esc and added button tooltip. 2024-04-02 15:07:54 +03:00
Valentin Mihai
46e016d55e RED-8748 - extracted file preview header logic in another component 2024-03-28 12:27:36 +02:00
Valentin Mihai
690ffea6c5 Merge branch 'master' into VM/RED-8748 2024-03-28 12:22:56 +02:00
Dan Percic
2f09981ea0 Merge branch 'RED-8812' into 'master'
RED-8812: changed table styling.

See merge request redactmanager/red-ui!370
2024-03-28 10:39:46 +01:00
Nicoleta Panaghiu
cc00c92d42 RED-8812: changed table styling. 2024-03-28 11:33:54 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
03bde72f62 push back localazy update 2024-03-28 02:03:26 +00:00
Dan Percic
9d858bfe39 Merge branch 'RED-8870' into 'master'
RED-8870: fixed comment author displayed as unknown user.

See merge request redactmanager/red-ui!368
2024-03-27 15:24:45 +01:00
Nicoleta Panaghiu
c5e81161fa RED-8870: fixed comment author displayed as unknown user. 2024-03-27 16:23:29 +02:00
Dan Percic
f57b362c7a Merge branch 'RED-8812' into 'master'
RED-8812: display selected annotations in table form.

See merge request redactmanager/red-ui!367
2024-03-27 15:05:54 +01:00
Nicoleta Panaghiu
ff2839fb29 RED-8812: display selected annotations in table form. 2024-03-27 16:02:04 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
c39f9c378b push back localazy update 2024-03-27 02:03:55 +00:00
Dan Percic
f000415b8e Merge branch 'VM/RED-8638' into 'master'
RED-8638 - In the workload, annotations with manualChanges have the hand icon displayed

Closes RED-8638

See merge request redactmanager/red-ui!366
2024-03-26 18:59:05 +01:00
Valentin Mihai
0df50c337b RED-8638 - In the workload, annotations with manualChanges have the hand icon displayed 2024-03-26 18:28:20 +02:00
Dan Percic
d1491f0421 Merge branch 'VM/RED-8829' into 'master'
RED-8829 - revert changes

Closes RED-8829

See merge request redactmanager/red-ui!365
2024-03-26 15:29:27 +01:00
Valentin Mihai
cee6408979 RED-8829 - revert changes 2024-03-26 16:21:17 +02:00
Dan Percic
3268a9ed03 Merge branch 'RED-8817' into 'master'
RED-8817: removed the italic style from the extra option description.

See merge request redactmanager/red-ui!364
2024-03-26 15:00:16 +01:00
Nicoleta Panaghiu
88c2437a01 RED-8817: removed the italic style from the extra option description. 2024-03-26 15:58:05 +02:00
Dan Percic
2447a4be45 Merge branch 'RED-8850' into 'master'
RED-8850: show backend error message.

See merge request redactmanager/red-ui!363
2024-03-26 11:28:17 +01:00
Nicoleta Panaghiu
fa9f84e5ec RED-8850: show backend error message. 2024-03-26 12:23:32 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
49a9459a35 push back localazy update 2024-03-26 02:03:46 +00:00
Dan Percic
500290db7f Merge branch 'VM/RED-8829' into 'master'
RED-8829 - Disable option to resize a forced redaction with dictionary action

Closes RED-8829

See merge request redactmanager/red-ui!362
2024-03-25 15:59:35 +01:00
Valentin Mihai
8e6a28eaf0 RED-8829 - Disable option to resize a forced redaction with dictionary action 2024-03-25 16:29:13 +02:00
Dan Percic
e16b8a0729 Merge branch 'RED-8711-filter-out-no-positions-entries' into 'master'
RED-8711 - Filter out entity log entries that have no positions and show a...

Closes RED-8711

See merge request redactmanager/red-ui!361
2024-03-25 11:13:34 +01:00
Valentin Mihai
bc3ef19666 RED-8711 - removed unused isIqserDevMode 2024-03-25 12:11:31 +02:00
Valentin Mihai
0aacc165bf RED-8711 - Filter out entity log entries that have no positions and show a toast message in dev mode 2024-03-25 12:08:26 +02:00
Dan Percic
ebef40fde8 Merge branch 'RED-8812' into 'master'
RED-8812: bold only the selected value, not the entire context.

See merge request redactmanager/red-ui!359
2024-03-25 10:42:10 +01:00
Nicoleta Panaghiu
1783b7f407 RED-8812: bold only the selected value, not the entire context. 2024-03-25 11:31:52 +02:00
Dan Percic
3fe1fe869f Merge branch 'RED-8817' into 'master'
RED-8817: update common-ui.

See merge request redactmanager/red-ui!358
2024-03-25 09:53:48 +01:00
Nicoleta Panaghiu
2b3de6244d RED-8817: update common-ui. 2024-03-25 10:47:00 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
78f4132803 push back localazy update 2024-03-24 02:03:41 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
93a5a75f3f push back localazy update 2024-03-23 02:03:39 +00:00
Dan Percic
6bcc60d859 Merge branch 'VM/RED-8692' into 'master'
RED-8692 - Automatic code validation in the rule editor

Closes RED-8692

See merge request redactmanager/red-ui!357
2024-03-22 15:08:20 +01:00
Valentin Mihai
5c096eb876 Merge branch 'master' into VM/RED-8692 2024-03-22 15:59:21 +02:00
Valentin Mihai
d5215656fb RED-8692 - Automatic code validation in the rule editor 2024-03-22 15:56:35 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
2df158ecf3 push back localazy update 2024-03-22 02:03:36 +00:00
Dan Percic
e1e88d1d87 Merge branch 'RED-8817' into 'master'
RED-8817: added fp extraOption description and increase dialog height.

See merge request redactmanager/red-ui!356
2024-03-21 16:12:38 +01:00
Nicoleta Panaghiu
5cc81ac706 RED-8817: added fp extraOption description and increase dialog height. 2024-03-21 17:05:16 +02:00
Dan Percic
ffa6634814 Merge branch 'RED-8812' into 'master'
RED-8812: added selected label and term for single redaction delete.

See merge request redactmanager/red-ui!355
2024-03-21 15:08:59 +01:00
Nicoleta Panaghiu
4e0c24a98b RED-8812: run i18n:extract. 2024-03-21 16:07:49 +02:00
Nicoleta Panaghiu
7a275bfe55 RED-8812: added selected label and term for single redaction delete. 2024-03-21 15:54:17 +02:00
Dan Percic
7fd8843a8b Merge branch 'RED-8679' into 'master'
RED-8679: added custom id for upload image attribute.

See merge request redactmanager/red-ui!354
2024-03-21 10:00:28 +01:00
Nicoleta Panaghiu
83d9d48ffe RED-8679: added custom id for upload image attribute. 2024-03-21 10:56:30 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
66b35d4408 push back localazy update 2024-03-21 02:03:30 +00:00
Dan Percic
345ed64bb1 Merge branch 'RED-8795' into 'master'
RED-8795: changed default options for add and remove dialogs.

Closes RED-8795

See merge request redactmanager/red-ui!353
2024-03-20 15:08:05 +01:00
Nicoleta Panaghiu
f8cc82975d RED-8795: changed default options for add and remove dialogs. 2024-03-20 15:47:38 +02:00
Dan Percic
65f2ef0e74 Merge branch 'VM/RED-7980' into 'master'
RED-7980 - stop searching when another page has been reached

Closes RED-7980

See merge request redactmanager/red-ui!352
2024-03-20 14:03:49 +01:00
Valentin Mihai
6e931b6006 RED-7980 - stop searching when another page has been reached 2024-03-20 15:01:09 +02:00
Dan Percic
e2c108332f Merge branch 'VM/RED-7980' into 'master'
RED-7980 - fixed "Pending annotation not displayed"

Closes RED-7980

See merge request redactmanager/red-ui!351
2024-03-20 13:45:44 +01:00
Valentin Mihai
f518e508ca RED-7980 - fixed "Pending annotation not displayed" 2024-03-20 14:28:44 +02:00
Dan Percic
7db52d1287 Merge branch 'RED-8737' into 'master'
RED-8737: made primary attribute editable only by clicking the button.

See merge request redactmanager/red-ui!350
2024-03-20 09:37:13 +01:00
Dan Percic
3e57f1e33e Merge branch 'VM/RED-7980' into 'master'
RED-7980 - Don’t allow any user actions at the original annotation while there...

Closes RED-7980

See merge request redactmanager/red-ui!349
2024-03-20 09:22:54 +01:00
Nicoleta Panaghiu
d0a1687c58 RED-8737: made primary attribute editable only by clicking the button. 2024-03-20 10:11:38 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
498e1176f1 push back localazy update 2024-03-20 02:03:30 +00:00
Valentin Mihai
9ac4b7f047 RED-7980 - Don’t allow any user actions at the original annotation while there is a related pending annotation 2024-03-19 20:15:15 +02:00
Valentin Mihai
f534c28b7e Merge branch 'master' into VM/RED-8692 2024-03-18 16:10:46 +02:00
Dan Percic
3fe5193ea4 Merge branch 'VM/RED-7980' into 'master'
RED-7980 - displayed pending annotations with only a border in the analysis color

Closes RED-7980

See merge request redactmanager/red-ui!348
2024-03-18 11:24:52 +01:00
Valentin Mihai
d322c0a148 RED-8692 - WIP on "Automatic code validation in the rule editor" 2024-03-18 11:20:51 +02:00
Valentin Mihai
39edbf69e2 RED-7980 - displayed pending annotations with only a border in the analysis color 2024-03-17 15:54:03 +02:00
Dan Percic
b180adad32 Merge branch 'RED-8728' into 'master'
RED-8728 & RED-8293

See merge request redactmanager/red-ui!347
2024-03-15 14:59:14 +01:00
Nicoleta Panaghiu
bd0f2e1be3 RED-8728: update common ui. 2024-03-15 15:06:58 +02:00
Nicoleta Panaghiu
ce95e8cc56 RED-8728 & RED-8293: adjusted the styling and spacing. 2024-03-15 15:06:23 +02:00
Dan Percic
e80eb4cd25 Merge branch 'RED-8763' into 'master'
RED-8763: fixed image attribute upload button.

See merge request redactmanager/red-ui!346
2024-03-15 10:38:11 +01:00
Nicoleta Panaghiu
e9615e346a RED-8763: fixed image attribute upload button. 2024-03-15 11:36:38 +02:00
Dan Percic
b598240338 Merge branch 'RED-8679' into 'master'
RED-8679: added specific ids for annotation wrappers and actions.

See merge request redactmanager/red-ui!344
2024-03-15 10:15:20 +01:00
Dan Percic
f73e5568de Merge branch 'RED-8735' into 'master'
RED-8735: add false positive option for dict-based skipped annotations.

See merge request redactmanager/red-ui!345
2024-03-14 15:23:50 +01:00
Nicoleta Panaghiu
8115309712 RED-8735: add false positive option for dict-based skipped annotations. 2024-03-14 16:18:08 +02:00
Nicoleta Panaghiu
b17ebee4fa RED-8679: added specific ids for annotation wrappers and actions. 2024-03-14 15:55:02 +02:00
Dan Percic
5923084bb5 Merge branch 'RED-8684' into 'master'
RED-8684: fixed missing type warning bug.

See merge request redactmanager/red-ui!342
2024-03-14 13:56:32 +01:00
Dan Percic
89fce1cfc0 Merge branch 'RED-8753' into 'master'
RED-8753: fixed images disappearing upon aborting resize.

See merge request redactmanager/red-ui!343
2024-03-14 13:55:00 +01:00
Nicoleta Panaghiu
7d5c878e6a RED-8753: fixed images disappearing upon aborting resize. 2024-03-14 14:36:26 +02:00
Nicoleta Panaghiu
06eb6323d9 RED-8684: keep readonly check in file-data service & clean up. 2024-03-14 14:27:31 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
66515e38f4 push back localazy update 2024-03-14 02:03:44 +00:00
Nicoleta Panaghiu
35bbe8e59a RED-8684: fixed missing type warning bug. 2024-03-13 17:35:55 +02:00
Dan Percic
1a0793af8b Merge branch 'RED-8648' into 'master'
RED-8648: added ellipsis for attribute value in workflow mode.

See merge request redactmanager/red-ui!341
2024-03-13 15:19:46 +01:00
Nicoleta Panaghiu
b765541da0 RED-8648: added ellipsis for attribute value in workflow mode. 2024-03-13 14:05:10 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
fb90abed76 push back localazy update 2024-03-13 02:03:41 +00:00
Dan Percic
a4773969fb Merge branch 'VM/RED-8638' into 'master'
RED-8638 - Adapt UI to new manualChanges types

Closes RED-8638

See merge request redactmanager/red-ui!340
2024-03-12 19:57:02 +01:00
Valentin Mihai
8aa3c269bd RED-8638 - Adapt UI to new manualChanges types 2024-03-12 20:37:30 +02:00
Dan Percic
0b92a5bda2 Merge branch 'RED-8730' into 'master'
RED-8730: fixed error when opening dictionaries in settings.

See merge request redactmanager/red-ui!339
2024-03-12 12:43:17 +01:00
Nicoleta Panaghiu
70524ab31a RED-8730: fixed error when opening dictionaries in settings.. 2024-03-12 13:19:01 +02:00
Dan Percic
20c39de353 Merge branch 'VM/RED-7980' into 'master'
RED-7980 - Display unprocessed annotations correctly as pending

Closes RED-7980

See merge request redactmanager/red-ui!338
2024-03-11 15:52:08 +01:00
Valentin Mihai
0c0557050b RED-7980 - removed polyline annotation and displayed pending annotations as before, but with 50% opacity 2024-03-11 15:43:18 +02:00
Valentin Mihai
bc704dc7c2 Merge branch 'master' into VM/RED-7980 2024-03-11 15:39:45 +02:00
Dan Percic
246ff507eb Merge branch 'RED-8647' into 'master'
RED-8647: added ellipsis for longer primary attributes values.

See merge request redactmanager/red-ui!337
2024-03-11 13:38:55 +01:00
Nicoleta Panaghiu
8ca9de3c8d RED-8647: added ellipsis for longer primary attributes values. 2024-03-11 14:20:42 +02:00
Dan Percic
64a1f1f41b Merge branch 'RED-8679' into 'master'
RED-8679: added more custom ids.

See merge request redactmanager/red-ui!336
2024-03-11 12:52:41 +01:00
Nicoleta Panaghiu
3856746a7f RED-8679: added more custom ids. 2024-03-11 13:46:50 +02:00
Dan Percic
504ad25036 Merge branch 'RED-8217' into 'master'
RED-8217: fixed layout grid toggle.

See merge request redactmanager/red-ui!334
2024-03-08 11:48:14 +01:00
Nicoleta Panaghiu
289b42aaa0 RED-8217: fixed layout grid toggle. 2024-03-08 12:44:41 +02:00
Valentin Mihai
25f4895017 Merge branch 'master' into RED-8711-filter-out-no-positions-entries 2024-03-08 11:11:27 +02:00
Valentin Mihai
8d418ab952 RED-8711 - update common ui 2024-03-08 11:10:39 +02:00
Dan Percic
829515aaef Merge branch 'VM/RED-7980' into 'master'
RED-7980 - Display unprocessed annotations correctly as pending

Closes RED-7980

See merge request redactmanager/red-ui!333
2024-03-08 10:06:45 +01:00
Valentin Mihai
2106a069a7 RED-7980 - removed pending option 2024-03-08 10:59:52 +02:00
Valentin Mihai
aba65ffaf7 RED-8342 - added polyline annotation for pending redactions 2024-03-07 22:44:07 +02:00
Dan Percic
0e171ee499 RED-8711 toaster setup 2024-03-07 15:58:01 +02:00
Valentin Mihai
94c35502d9 Merge branch 'master' into VM/RED-7980 2024-03-07 10:04:08 +02:00
Dan Percic
7cd8d1d546 Merge branch 'RED-8684' into 'master'
RED-8684: removed deleted types warning for readonly files.

See merge request redactmanager/red-ui!332
2024-03-06 16:10:38 +01:00
Nicoleta Panaghiu
4949bce992 RED-8684: removed deleted types warning for readonly files. 2024-03-06 17:06:42 +02:00
Dan Percic
7a496a39df Merge branch 'RED-8623' into 'master'
RED-8623: filtered out check requests on certain pages.

See merge request redactmanager/red-ui!331
2024-03-06 14:37:06 +01:00
Nicoleta Panaghiu
1b93d38872 RED-8623: use some instead of reduce. 2024-03-06 15:34:17 +02:00
Nicoleta Panaghiu
52467b9dde RED-8623: filtered out check requests on certain pages. 2024-03-06 15:00:49 +02:00
Dan Percic
87239c859e Merge branch 'RED-8649' into 'master'
RED-8649: made in-place editing for the primary attribute responsive.

See merge request redactmanager/red-ui!329
2024-03-06 12:44:53 +01:00
Dan Percic
d689655ef5 Merge branch 'RED-8217' into 'master'
RED-8217: removed redundant line which could cause bug.

See merge request redactmanager/red-ui!330
2024-03-06 12:38:47 +01:00
Nicoleta Panaghiu
af4a021bd4 RED-8217: removed redundant line which could cause bug. 2024-03-06 13:23:55 +02:00
Nicoleta Panaghiu
33c16ff13c RED-8649: made in-place editing for the primary attribute responsive. 2024-03-06 13:16:21 +02:00
Valentin Mihai
e835f27a3d RED-7980 - update to compute annotation type if state = PENDING, based on its old entity state 2024-03-06 12:59:16 +02:00
Dan Percic
f16ebc505b Merge branch 'RED-8226' into 'master'
RED-8226: filtering out entities with REMOVED state.

See merge request redactmanager/red-ui!328
2024-03-04 16:09:01 +01:00
Nicoleta Panaghiu
f6497be479 RED-8226: filtering out entities with REMOVED state. 2024-03-04 17:01:06 +02:00
Dan Percic
bb3d880cbb Merge branch 'RED-8679' into 'master'
RED-8679: changed html ids to contain names.

See merge request redactmanager/red-ui!326
2024-03-04 11:59:13 +01:00
Dan Percic
c8e56bce58 Merge branch 'RED-8639' into 'master'
RED-8639: fixed some fields not updating for dossier_redaction.

See merge request redactmanager/red-ui!327
2024-03-04 10:57:27 +01:00
Nicoleta Panaghiu
12043616ff RED-8639: fixed some fields not updating for dossier_redaction. 2024-03-04 11:41:59 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
94402469f4 push back localazy update 2024-03-02 02:03:49 +00:00
Nicoleta Panaghiu
95fc4d1835 RED-8679: changed html ids to contain names. 2024-03-01 17:09:11 +02:00
Valentin-Gabriel Mihai
dc22920518 Merge branch 'RED-8217' into 'master'
RED-8217: sync header layer button state with layer checkbox state.

See merge request redactmanager/red-ui!325
2024-02-29 10:25:03 +01:00
Nicoleta Panaghiu
6c9658bf29 RED-8217: sync header layer button state with layer checkbox state. 2024-02-29 11:22:08 +02:00
Valentin-Gabriel Mihai
3a8bda0188 Merge branch 'RED-8575' into 'master'
RED-8575: fixed excluded pages panel blank when redaction  is disabled.

See merge request redactmanager/red-ui!324
2024-02-28 14:30:54 +01:00
Nicoleta Panaghiu
9574ae114b RED-8575: fixed excluded pages panel blank when redaction is disabled. 2024-02-28 14:37:35 +02:00
Valentin-Gabriel Mihai
1ef5e1e0d2 Merge branch 'RED-8226' into 'master'
RED-8226: changed toastr type from error to info & update common ui.

See merge request redactmanager/red-ui!323
2024-02-28 11:59:42 +01:00
Nicoleta Panaghiu
66b8742e0f RED-8226: changed toastr type from error to info & update common ui. 2024-02-28 12:57:54 +02:00
Valentin-Gabriel Mihai
20d8a8d10e Merge branch 'RED-8639' into 'master'
RED-8639: fixed settings options for dossier dictionary only entities.

See merge request redactmanager/red-ui!322
2024-02-26 16:53:25 +01:00
Nicoleta Panaghiu
bcf45c4113 RED-8639: fixed settings options for dossier dictionary only entities. 2024-02-26 17:49:33 +02:00
Valentin-Gabriel Mihai
89c5a98480 Merge branch 'RED-8566' into 'master'
RED-8566: fixed error 400 when creating dossier by pressing enter.

See merge request redactmanager/red-ui!321
2024-02-26 16:15:04 +01:00
Nicoleta Panaghiu
94c288b136 RED-8566: fixed error 400 when creating dossier by pressing enter. 2024-02-26 17:09:00 +02:00
Valentin-Gabriel Mihai
ac895da1c8 Merge branch 'RED-8578' into 'master'
RED-8578: fixed hard-delete error still appearing.

See merge request redactmanager/red-ui!320
2024-02-26 14:51:56 +01:00
Nicoleta Panaghiu
c8424b34e8 RED-8578: fixed hard-delete error still appearing. 2024-02-26 15:49:55 +02:00
Valentin-Gabriel Mihai
a063f55b08 Merge branch 'RED-8637' into 'master'
RED-8637: fixed suffix for manual technical name.

See merge request redactmanager/red-ui!319
2024-02-23 15:34:20 +01:00
Nicoleta Panaghiu
7a023c2180 RED-8637: remove console.log. 2024-02-23 16:32:30 +02:00
Nicoleta Panaghiu
13f3f2728d RED-8637: fixed suffix for manual technical name. 2024-02-23 14:59:32 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
c8aa988ecd push back localazy update 2024-02-23 02:03:29 +00:00
Nicoleta Panaghiu
b2c8fd08f4 Merge branch 'VM/RED-8463' into 'master'
RED-8463 & RED-8186

See merge request redactmanager/red-ui!318
2024-02-22 09:14:14 +01:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
7d9b8f58cf push back localazy update 2024-02-22 02:03:44 +00:00
Valentin Mihai
61e6123749 RED-8186 - Delete standard view button help mode icon and link 2024-02-21 17:29:34 +02:00
Valentin Mihai
33a724e6f6 RED-8463 - Date filter in audit log not filtering correctly 2024-02-21 17:29:03 +02:00
Valentin-Gabriel Mihai
4184b39513 Merge branch 'RED-8578' into 'master'
RED-8578: removed error when hard deleting dossier.

See merge request redactmanager/red-ui!317
2024-02-21 15:52:48 +01:00
Nicoleta Panaghiu
fae7e56ceb RED-8578: removed error when hard deleting dossier. 2024-02-21 15:32:18 +02:00
Nicoleta Panaghiu
c37a20f091 Merge branch 'VM/RED-8520' into 'master'
RED-8520 - Cannot compare False positives and False recommendations dictionaries in Dossier Template Entity configuration

Closes RED-8520

See merge request redactmanager/red-ui!316
2024-02-21 11:41:04 +01:00
Valentin Mihai
c33e7efaa5 RED-8520 - Cannot compare False positives and False recommendations dictionaries in Dossier Template Entity configuration 2024-02-21 12:39:47 +02:00
Valentin-Gabriel Mihai
9d0e1acdd2 Merge branch 'RED-8565' into 'master'
RED-8565: fixed password reset redirect.

See merge request redactmanager/red-ui!315
2024-02-21 09:20:26 +01:00
Nicoleta Panaghiu
ef7faa40e1 RED-8565: fixed password reset redirect. 2024-02-21 10:09:44 +02:00
Nicoleta Panaghiu
5dcfdff59e Merge branch 'VM/RED-7874' into 'master'
RED-7874 - Integrate "user has no roles" message in sign-in page

Closes RED-7874

See merge request redactmanager/red-ui!314
2024-02-21 08:52:34 +01:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
6f624cfaa9 push back localazy update 2024-02-21 02:03:38 +00:00
Valentin Mihai
c8db2a8a7c RED-6960 - update common ui 2024-02-20 23:32:01 +02:00
Valentin Mihai
649fa52e5d RED-7874 - update common-ui 2024-02-20 19:13:45 +02:00
Valentin Mihai
fad56bea19 RED-7874 - added back auth-error component 2024-02-20 19:03:56 +02:00
Valentin Mihai
c835a3bd27 RED-7874 - moved 'select-tenant-translations' to common-ui 2024-02-20 15:17:35 +02:00
Valentin Mihai
f1c1047b1e Merge branch 'VM/RED-7874' of ssh://git.knecon.com:22222/redactmanager/red-ui into VM/RED-7874 2024-02-20 15:00:40 +02:00
Valentin Mihai
8cffa7d4ac RED-7874 - Integrate "user has no roles" message in sign-in page 2024-02-20 15:00:27 +02:00
Valentin Mihai
25954c6ad4 Integrate "user has no roles" message in sign-in page 2024-02-20 14:54:51 +02:00
Nicoleta Panaghiu
6da249e975 Merge branch 'VM/RED-8253' into 'master'
RED-8253- Create new help mode links

Closes RED-8253

See merge request redactmanager/red-ui!313
2024-02-19 12:42:25 +01:00
Valentin Mihai
a24f920e57 RED-8253- Create new help mode links 2024-02-19 13:13:43 +02:00
Dan Percic
f3222a70ed Merge branch 'VM/RED-8363' into 'master'
RED-8363 - UI should reject unsupported file types directly based on license

Closes RED-8363

See merge request redactmanager/red-ui!312
2024-02-16 17:16:07 +01:00
Valentin Mihai
06019ad66d RED-8363 - UI should reject unsupported file types directly based on license 2024-02-16 17:53:46 +02:00
Dan Percic
0800cd30f4 Merge branch 'RED-8563' into 'master'
RED-8563: fixed workload filter closing upon clicking on it.

See merge request redactmanager/red-ui!311
2024-02-16 12:54:09 +01:00
Dan Percic
1bc2d87392 Merge branch 'RED-3800' into 'master'
RED-3800 fix build

See merge request redactmanager/red-ui!310
2024-02-16 12:53:26 +01:00
Nicoleta Panaghiu
7ec242397c RED-8563: fixed workload filter closing upon clicking on it. 2024-02-16 13:50:37 +02:00
Dan Percic
57535de494 remove unused service 2024-02-16 10:36:49 +02:00
Dan Percic
ecb8ef1755 show dossier dictionaries even if dossier redaction is not available 2024-02-16 10:32:11 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
04fda1f91f push back localazy update 2024-02-16 02:03:28 +00:00
Dan Percic
493ea06ed1 Merge branch 'VM/RED-7980' into 'master'
RED-7980 - Not all unprocessed annotations are displayed correctly

Closes RED-7980

See merge request redactmanager/red-ui!309
2024-02-15 15:06:32 +01:00
Valentin Mihai
d43f1b0a80 RED-7980 - Not all unprocessed annotations are displayed correctly 2024-02-15 16:02:38 +02:00
Dan Percic
1cab4c8709 Merge branch 'RED-7273' into 'master'
RED-7273: fixed viewer not opening docx files.

See merge request redactmanager/red-ui!308
2024-02-15 13:50:12 +01:00
Nicoleta Panaghiu
d310a295a6 RED-7273: use endsWith instead of includes. 2024-02-15 14:49:31 +02:00
Nicoleta Panaghiu
83d294585e RED-7273: fixed viewer not opening docx files. 2024-02-15 14:31:43 +02:00
Dan Percic
8f94cfb6b6 Merge branch 'RED-6880' into 'master'
RED-6880: fixed infinite loading.

See merge request redactmanager/red-ui!307
2024-02-15 13:11:40 +01:00
Nicoleta Panaghiu
db842726b3 RED-6880: fixed infinite loading. 2024-02-15 13:18:15 +02:00
Valentin-Gabriel Mihai
1409a06ae9 Merge branch 'RED-3800' into 'master'
RED-3800 fix build

See merge request redactmanager/red-ui!306
2024-02-15 11:56:28 +01:00
Dan Percic
77c04dd28b RED-3800 fix build 2024-02-15 12:49:28 +02:00
Dan Percic
8acfe6930d Merge branch 'RED-8554' into 'master'
RED-8554 remove 80 port

See merge request redactmanager/red-ui!305
2024-02-15 11:33:09 +01:00
Dan Percic
273e374846 Merge branch 'VM/RED-8161' into 'master'
RED-8161 - Hard to read Document Versions in Read-Only Mode

Closes RED-8161

See merge request redactmanager/red-ui!303
2024-02-15 11:30:28 +01:00
Dan Percic
18e68f0a06 RED-8554 remove 80 port 2024-02-15 12:29:29 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
5e002ffca2 push back localazy update 2024-02-15 02:03:25 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
317c2834c6 push back localazy update 2024-02-14 02:03:22 +00:00
Dan Percic
cad73bc3d5 Merge branch 'RED-8187' into 'master'
RED-8187: removed buttons for non-dossier members.

See merge request redactmanager/red-ui!302
2024-02-13 16:25:34 +01:00
Valentin Mihai
d9ffac81d3 RED-8161 - Hard to read Document Versions in Read-Only Mode 2024-02-13 17:19:45 +02:00
Nicoleta Panaghiu
bdbdb4d2b0 RED-8187: removed buttons for non-dossier members. 2024-02-13 13:32:26 +01:00
Dan Percic
5be95976d6 Merge branch 'RED-8183' into 'master'
Resolve RED-8183

Closes RED-8183

See merge request redactmanager/red-ui!301
2024-02-13 11:48:29 +01:00
Nicoleta Panaghiu
38e3fac70e RED-8183: close the box upon pressing esc. 2024-02-13 11:05:05 +01:00
Nicoleta Panaghiu
0fd56e7329 RED-8183: fixed not closing upon click on viewer. 2024-02-13 11:04:17 +01:00
Valentin-Gabriel Mihai
bd7662d746 Merge branch 'VM/RED-7980' into 'master'
RED-7980 - Not all unprocessed annotations are displayed correctly

Closes RED-7980

See merge request redactmanager/red-ui!300
2024-02-13 09:18:34 +01:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
85d00d256c push back localazy update 2024-02-13 02:03:22 +00:00
Valentin Mihai
9d22dea6fd RED-7980 - Not all unprocessed annotations are displayed correctly 2024-02-12 18:47:13 +02:00
Dan Percic
c0ece5248d Merge branch 'RED-8260' into 'master'
RED-8260: made the delete button available for dict-based ignored hints.

See merge request redactmanager/red-ui!299
2024-02-12 14:08:17 +01:00
Dan Percic
318433b6ab Merge branch 'VM/RED-8470' into 'master'
RED-8470 - Icon for imported redactions in workload

Closes RED-8470

See merge request redactmanager/red-ui!298
2024-02-12 13:38:55 +01:00
Nicoleta Panaghiu
b8d3bcd30f RED-8260: made the delete button available for dict-based ignored hints. 2024-02-12 13:24:32 +01:00
Valentin Mihai
85235ac96b RED-8470 - Icon for imported redactions in workload 2024-02-12 14:22:00 +02:00
Dan Percic
9a368bc8a0 Merge branch 'RED-7296' into 'master'
RED-7296: delete drawn rectangle upon deselect.

See merge request redactmanager/red-ui!297
2024-02-12 12:07:00 +01:00
Nicoleta Panaghiu
394182b937 RED-7296: delete drawn rectangle upon deselect. 2024-02-12 12:50:13 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
be1c9c66f0 push back localazy update 2024-02-10 02:03:45 +00:00
Dan Percic
1fc5688685 Merge branch 'VM/RED-8365' into 'master'
RED-8365 - Create help mode links for new dialogs

Closes RED-8365

See merge request redactmanager/red-ui!296
2024-02-09 11:20:03 +01:00
Valentin Mihai
3e802ea1e5 RED-8365 - removed log 2024-02-08 21:00:04 +02:00
Valentin Mihai
1e9e728ec7 RED-8365 - Create help mode links for new dialogs 2024-02-08 20:58:54 +02:00
Dan Percic
29606dba1c Merge branch 'RED-8483' into 'master'
RED-8483: disabled in-dossier option for recategorized annotations.

See merge request redactmanager/red-ui!295
2024-02-08 14:29:36 +01:00
Nicoleta Panaghiu
d7e6111a82 RED-8483: disabled in-dossier option for recategorized annotations. 2024-02-08 15:17:28 +02:00
Dan Percic
270dbc42c1 Merge branch 'RED-8183' into 'master'
RED-8183: close user assignment box when clicking outside.

See merge request redactmanager/red-ui!294
2024-02-08 11:29:01 +01:00
Nicoleta Panaghiu
8c4e876e2d RED-8183: close user assignment box when clicking outside. 2024-02-08 12:26:50 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
a438ab7166 push back localazy update 2024-02-08 02:03:38 +00:00
Dan Percic
99730e66a0 Merge branch 'RED-8157' into 'master'
RED-8157: fixed overdue indicator.

See merge request redactmanager/red-ui!293
2024-02-07 14:13:07 +01:00
Nicoleta Panaghiu
1156cc1ffb RED-8157: fixed overdue indicator. 2024-02-07 15:08:57 +02:00
Dan Percic
4287ccf7a6 Merge branch 'RED-8216' into 'master'
RED-8216: fixed select tool button disappearing.

See merge request redactmanager/red-ui!292
2024-02-07 13:25:17 +01:00
Nicoleta Panaghiu
726a70c97e RED-8216: fixed select tool button disappearing. 2024-02-07 13:06:02 +02:00
Dan Percic
964185fdcc Merge branch 'VM/RED-8252' into 'master'
RED-8252 - Separate help mode links

Closes RED-8252

See merge request redactmanager/red-ui!291
2024-02-07 09:19:22 +01:00
Dan Percic
d7109a8648 Merge branch 'VM/RED-6960' into 'master'
RED-6960 - Enter should confirm a modal window by default

Closes RED-6960

See merge request redactmanager/red-ui!290
2024-02-07 09:18:26 +01:00
Valentin Mihai
8d3f35fb40 RED-6960 - removed super call 2024-02-07 10:04:50 +02:00
Valentin Mihai
509c370efc RED-8252 - Separate help mode links 2024-02-06 23:16:13 +02:00
Valentin Mihai
771a4ca441 RED-6960 - Enter should confirm a modal window by default 2024-02-06 20:40:13 +02:00
Dan Percic
7656cd6000 Merge branch 'RED-7296' into 'master'
RED-7296: implemented rectangle deletion by pressing esc.

See merge request redactmanager/red-ui!289
2024-02-06 14:40:09 +01:00
Nicoleta Panaghiu
b8ae06f38e RED-7296: fix. 2024-02-06 14:37:13 +02:00
Nicoleta Panaghiu
75ce020cb5 RED-7296: remove event listener. 2024-02-06 14:24:49 +02:00
Dan Percic
a0e10b116a Merge branch 'RED-3800' into 'master'
RED-3800: Moved some icons to common-ui

Closes RED-3800

See merge request redactmanager/red-ui!288
2024-02-06 12:52:50 +01:00
Nicoleta Panaghiu
44bda08834 RED-7296: implemented rectangle deletion by pressing esc. 2024-02-06 13:47:29 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
3b10682041 push back localazy update 2024-02-06 02:03:44 +00:00
Adina Țeudan
fb0da0b431 RED-3800: Moved some icons to common-ui 2024-02-04 10:38:47 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
90aaf6fa0c push back localazy update 2024-02-04 02:03:39 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
f9edfa0065 push back localazy update 2024-02-03 02:03:41 +00:00
Nicoleta Panaghiu
7c176516e6 Merge branch 'VM/RED-8252' into 'master'
RED-8252 - Separate help mode links

Closes RED-8252

See merge request redactmanager/red-ui!287
2024-02-02 16:32:44 +01:00
Valentin Mihai
5dcfea12db RED-8252 - Separate help mode links 2024-02-02 16:55:33 +02:00
Dan Percic
f19c588e0f Merge branch 'RED-8187' into 'master'
RED-8187: disabled file analysis button for non-dossier members.

See merge request redactmanager/red-ui!286
2024-02-02 12:43:29 +01:00
Nicoleta Panaghiu
3fc0d8d3af RED-8187: disabled file analysis button for non-dossier members. 2024-02-02 13:41:09 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
a17522fa36 push back localazy update 2024-02-02 02:03:38 +00:00
Nicoleta Panaghiu
c0d29fe009 Merge branch 'RED-8409' into 'master'
RED-8409 fix translations

See merge request redactmanager/red-ui!285
2024-02-01 11:17:38 +01:00
Dan Percic
56ed58082c update common-ui 2024-02-01 11:16:38 +01:00
Dan Percic
9c0d214c3c fix translations 2024-02-01 11:16:25 +01:00
Dan Percic
8cf89b69da Merge branch 'RED-8249' into 'master'
RED-8249: update common-ui.

See merge request redactmanager/red-ui!284
2024-02-01 11:15:18 +01:00
Nicoleta Panaghiu
4fe68647f2 RED-8249: update common-ui. 2024-02-01 12:11:06 +02:00
Dan Percic
95b026571f Merge branch 'RED-3800' into 'master'
RED-3800: update common-ui

Closes RED-3800

See merge request redactmanager/red-ui!283
2024-02-01 10:52:55 +01:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
e632fbce12 push back localazy update 2024-02-01 02:03:35 +00:00
Adina Țeudan
a14d28af07 RED-3800: update common-ui 2024-01-31 17:49:56 +02:00
Adina Țeudan
f4b5d83e96 RED-3800: update common-ui 2024-01-31 17:12:17 +02:00
Nicoleta Panaghiu
aca52a4de4 Merge branch 'VM/RED-8251' into 'master'
RED-8251, RED-8246, RED-8345 - help mode updates

Closes RED-8251

See merge request redactmanager/red-ui!282
2024-01-31 16:10:09 +01:00
Valentin Mihai
fba959c6aa RED-8251, RED-8246, RED-8345 - help mode updates 2024-01-31 17:07:59 +02:00
Dan Percic
b81dbc09f8 Merge branch 'RED-3800' into 'master'
RED-3800 update common-ui

See merge request redactmanager/red-ui!281
2024-01-31 12:02:51 +01:00
Dan Percic
ce56d4b63f RED-3800 update common-ui 2024-01-31 11:57:20 +01:00
Dan Percic
cfe5a32ebc RED-3800 move if not logged in guard 2024-01-31 11:52:15 +01:00
Valentin-Gabriel Mihai
f4f2dcb2d3 Merge branch 'RED-8269' into 'master'
RED-8269: fixed missing type value in resize dialog.

See merge request redactmanager/red-ui!280
2024-01-31 09:53:02 +01:00
Nicoleta Panaghiu
5c2326a952 RED-8269: fixed missing type value in resize dialog. 2024-01-31 10:52:16 +02:00
Valentin-Gabriel Mihai
c299188720 Merge branch 'RED-8375' into 'master'
Resolve RED-8375

Closes RED-8375

See merge request redactmanager/red-ui!279
2024-01-31 09:50:28 +01:00
Nicoleta Panaghiu
6a118f2514 RED-8375: disabled actions when both page and file are excluded. 2024-01-31 10:35:48 +02:00
Nicoleta Panaghiu
8e69010364 RED-8375: disabled in dossier dialog option when page is excluded. 2024-01-31 10:34:31 +02:00
Valentin-Gabriel Mihai
5795e98eb2 Merge branch 'nicoleta' into 'master'
RED-3800: fix error code.

See merge request redactmanager/red-ui!278
2024-01-31 09:11:24 +01:00
Nicoleta Panaghiu
944509d03a RED-3800: fix error code. 2024-01-31 10:10:02 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
12ff5d4301 push back localazy update 2024-01-31 02:03:29 +00:00
Dan Percic
995332b1cf Merge branch 'RED-8167' into 'master'
RED-8167: fixed rectangle redaction label in edit dialog.

See merge request redactmanager/red-ui!277
2024-01-30 16:47:18 +01:00
Nicoleta Panaghiu
d9c30cd23a RED-8167: fixed rectangle redaction label in edit dialog. 2024-01-30 16:33:35 +02:00
Dan Percic
7bf07bf690 Merge branch 'RED-8354' into 'master'
RED-8354: fixed rerouting for application admins.

See merge request redactmanager/red-ui!276
2024-01-30 13:52:26 +01:00
Nicoleta Panaghiu
60c7793082 RED-8354: fixed rerouting for application admins. 2024-01-30 14:50:54 +02:00
Dan Percic
d1d5019cc2 Merge branch 'VM/RED-8284' into 'master'
RED-8284 - Drag & Drop for Import Redactions not working

Closes RED-8284

See merge request redactmanager/red-ui!275
2024-01-30 12:51:04 +01:00
Valentin Mihai
643d0f21d4 RED-8284 - Drag & Drop for Import Redactions not working 2024-01-30 13:33:08 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
4314108f56 push back localazy update 2024-01-30 02:03:28 +00:00
Dan Percic
89037fcd5c Merge branch 'VM/RED-8382' into 'master'
RED-8382 - Missing Restore/Hard Delete button for trashed dossier without owner

Closes RED-8382

See merge request redactmanager/red-ui!274
2024-01-29 14:52:11 +01:00
Valentin Mihai
a5a861cc18 RED-8382 - Missing Restore/Hard Delete button for trashed dossier without owner 2024-01-29 15:04:10 +02:00
Dan Percic
95665993c6 Merge branch 'VM/RED-8382' into 'master'
RED-8382 - Missing Restore/Hard Delete button for trashed dossier without owner

Closes RED-8382

See merge request redactmanager/red-ui!273
2024-01-29 13:27:59 +01:00
Valentin Mihai
9a10dcb499 RED-8382 - Missing Restore/Hard Delete button for trashed dossier without owner 2024-01-29 14:19:20 +02:00
Dan Percic
702aa2905a Merge branch 'VM/RED-8279' into 'master'
RED-8279 - Backend responds with outdated data in entityLog for applied resized recommendation

Closes RED-8279

See merge request redactmanager/red-ui!272
2024-01-29 13:07:05 +01:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
d810c7a27c push back localazy update 2024-01-28 02:03:23 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
eac62b5250 push back localazy update 2024-01-27 02:03:23 +00:00
Valentin Mihai
33e8ae435b RED-8279 - Backend responds with outdated data in entityLog for applied resized recommendation 2024-01-26 19:09:11 +02:00
Dan Percic
96a7084241 Merge branch 'RED-8375' into 'master'
Resolve RED-8375

Closes RED-8375

See merge request redactmanager/red-ui!270
2024-01-26 15:11:55 +01:00
Nicoleta Panaghiu
3e9636f69b RED-8375: fixed page indicator border. 2024-01-26 16:09:17 +02:00
Nicoleta Panaghiu
be25253ee7 RED-8375: fixed actions for documine. 2024-01-26 16:08:58 +02:00
Nicoleta Panaghiu
c0bd129b5c RED-8375: fixed watermark and border not appearing all the time. 2024-01-26 15:47:28 +02:00
Nicoleta Panaghiu
5e0c8f6c13 RED-8375: fixed manual redactions actions not available for excluded. 2024-01-26 15:44:22 +02:00
Dan Percic
07df8e8074 Merge branch 'RED-8288' into 'master'
RED-8288: removed false positive option for forced annotations.

See merge request redactmanager/red-ui!269
2024-01-25 12:32:02 +01:00
Nicoleta Panaghiu
8450973c0a RED-8288: removed false positive option for forced annotations. 2024-01-25 12:08:44 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
6e24927d97 push back localazy update 2024-01-25 02:03:40 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
2eeca8d9a1 push back localazy update 2024-01-24 02:03:53 +00:00
Dan Percic
7c2148e901 Merge branch 'RED-8320' into 'master'
RED-8320: updated edit dialog for imported redactions.

See merge request redactmanager/red-ui!268
2024-01-23 16:08:30 +01:00
Nicoleta Panaghiu
143241719a RED-8320: updated edit dialog for imported redactions. 2024-01-23 16:58:14 +02:00
Dan Percic
ef286355db Merge branch 'RED-8270' into 'master'
RED-8270: fixed actions not available for manually added hints.

See merge request redactmanager/red-ui!266
2024-01-23 11:46:49 +01:00
Dan Percic
5a4e4ded65 Merge branch 'VM/RED-8102' into 'master'
RED-8102 - Add indicator above workload in DocuMine when auto-analysis is disabled

Closes RED-8102

See merge request redactmanager/red-ui!267
2024-01-23 11:41:07 +01:00
Nicoleta Panaghiu
f51271521f RED-8270 & RED-8272 & RED-8261. 2024-01-23 11:02:40 +02:00
Valentin Mihai
1992a95d51 RED-8102 - Add indicator above workload in DocuMine when auto-analysis is disabled 2024-01-22 18:04:47 +02:00
Nicoleta Panaghiu
a1f8451ee6 RED-8270: prevent future bug. 2024-01-22 16:31:07 +02:00
Nicoleta Panaghiu
70dcc38503 RED-8270: fixed actions not available for manually added hints. 2024-01-22 15:42:32 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
df0e2c17c4 push back localazy update 2024-01-19 02:03:39 +00:00
Dan Percic
d336f3f365 Merge branch 'VM/RED-7980' into 'master'
RED-7980 - Not all unprocessed annotations are displayed correctly

Closes RED-7980

See merge request redactmanager/red-ui!265
2024-01-18 08:04:48 +01:00
Valentin Mihai
1c70610a06 RED-7980 - Not all unprocessed annotations are displayed correctly 2024-01-18 09:00:18 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
a733373a70 push back localazy update 2024-01-18 02:03:40 +00:00
Dan Percic
61f2a96547 Merge branch 'RED-8273' into 'master'
RED-8273: fixed redacted option not pre-selected in download dialog bug.

See merge request redactmanager/red-ui!264
2024-01-17 10:28:25 +01:00
Nicoleta Panaghiu
9e0bff9e2a RED-8273: fixed redacted option not pre-selected in download dialog bug. 2024-01-17 11:26:07 +02:00
Dan Percic
531edc547b Merge branch 'RED-8109' into 'master'
RED-8109: update common-ui.

See merge request redactmanager/red-ui!263
2024-01-17 09:43:39 +01:00
Nicoleta Panaghiu
dc1f13a04e RED-8109: update common-ui. 2024-01-17 10:42:36 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
84e1941589 push back localazy update 2024-01-17 02:03:36 +00:00
Dan Percic
7cac85405a Merge branch 'csp-updates' into 'master'
RED-8128 even more stupid

See merge request redactmanager/red-ui!262
2024-01-16 18:49:17 +01:00
Dan Percic
fd26b04b1c RED-8128 even more stupid 2024-01-16 19:45:24 +02:00
Dan Percic
f39fd40339 Merge branch 'csp-updates' into 'master'
RED-8128 stupid workaround

See merge request redactmanager/red-ui!261
2024-01-16 18:34:21 +01:00
Dan Percic
31d1553deb RED-8128 stupid workaround 2024-01-16 19:27:45 +02:00
Dan Percic
96593d708f Merge branch 'VM/RED-7903' into 'master'
RED-7903 - Show dummy redaction/hints while file is still processing

Closes RED-7903

See merge request redactmanager/red-ui!260
2024-01-16 16:27:49 +01:00
Valentin Mihai
e2b4f67561 RED-7903 - Show dummy redaction/hints while file is still processing 2024-01-16 16:22:52 +02:00
Dan Percic
71ca94d5b3 Merge branch 'RED-8209' into 'master'
RED-8209: fixed wrong error message upon password reset.

See merge request redactmanager/red-ui!259
2024-01-16 14:20:53 +01:00
Nicoleta Panaghiu
92bf6228a7 RED-8209: fixed wrong error message upon password reset. 2024-01-16 15:18:10 +02:00
Dan Percic
ee3dd12f80 Merge branch 'csp-updates' into 'master'
RED-8128 other fixes

See merge request redactmanager/red-ui!258
2024-01-16 14:01:12 +01:00
Dan Percic
9d7bf0e95c RED-8128 other fixes 2024-01-16 15:00:12 +02:00
Dan Percic
92e1e68b3a Merge branch 'csp-updates' into 'master'
RED-8128 fix conf path

See merge request redactmanager/red-ui!257
2024-01-16 12:25:00 +01:00
Dan Percic
74caac5d8a RED-8128 fix conf path 2024-01-16 13:23:57 +02:00
Dan Percic
2b68dbe2c8 Merge branch 'csp-updates' into 'master'
RED-8128 fix file permissions

See merge request redactmanager/red-ui!256
2024-01-16 12:17:03 +01:00
Dan Percic
b3dc99ae8b RED-8128 fix file permissions 2024-01-16 13:16:04 +02:00
Dan Percic
ca13ba1a67 Merge branch 'RED-8048' into 'master'
RED-8048: fixed disabled check icon for resize action.

See merge request redactmanager/red-ui!255
2024-01-16 12:14:48 +01:00
Nicoleta Panaghiu
07d3051107 RED-8048: fixed disabled check icon for resize action. 2024-01-16 13:13:47 +02:00
Dan Percic
0f71576bb3 Merge branch 'RED-8263' into 'master'
RED-8263: display actual values instead of placeholders in translations.

See merge request redactmanager/red-ui!254
2024-01-16 12:04:20 +01:00
Nicoleta Panaghiu
8b7eb04779 RED-8263: display actual values instead of placeholders in translations. 2024-01-16 12:59:39 +02:00
Dan Percic
274d16b6ad Merge branch 'csp-updates' into 'master'
RED-8128 & RED-7861add frame ancestors & pdftron allowed hosts

See merge request redactmanager/red-ui!253
2024-01-16 10:11:33 +01:00
Dan Percic
4725f24406 RED-8128 change frame ancestors to self 2024-01-15 20:11:34 +02:00
Dan Percic
34ca820f07 RED-8128 & RED-7861add frame ancestors & pdftron allowed hosts 2024-01-15 20:05:33 +02:00
Dan Percic
76f95c5eb6 Merge branch 'RED-7316' into 'master'
Resolve RED-7316

Closes RED-7316

See merge request redactmanager/red-ui!252
2024-01-15 10:29:08 +01:00
Nicoleta Panaghiu
1979a9f55d RED-7316: remove last console.log, hopefully 2024-01-15 11:27:23 +02:00
Dan Percic
394be2b2dd Merge branch 'VM/RED-8045' into 'master'
RED-8045 - Dossier template selection/filter at dossier dictionary comparison

Closes RED-8045

See merge request redactmanager/red-ui!251
2024-01-15 10:21:05 +01:00
Nicoleta Panaghiu
c0413f1fd9 RED-7316: cleanup. 2024-01-15 11:20:40 +02:00
Nicoleta Panaghiu
bf1eb887bb RED-7316: no need for explicit initialization inside runWithCleanup. 2024-01-15 11:10:28 +02:00
Nicoleta Panaghiu
35f3ca2fd4 RED-7316: fixed imported redaction draw bug. 2024-01-15 11:09:48 +02:00
Valentin Mihai
849b16a6f3 RED-8045 - Dossier template selection/filter at dossier dictionary comparison 2024-01-14 22:07:19 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
f614a3f0d4 push back localazy update 2024-01-13 02:03:28 +00:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
95d648d474 push back localazy update 2024-01-12 02:03:51 +00:00
Dan Percic
4a76e10751 Merge branch 'VM/RED-7880' into 'master'
RED-7880 - Incorrect Error Handling for Missing Type and Dictionary Display in Compare Mode

Closes RED-7880

See merge request redactmanager/red-ui!250
2024-01-11 15:23:39 +01:00
Valentin Mihai
4426a37dfd RED-7880 - Incorrect Error Handling for Missing Type and Dictionary Display in Compare Mode 2024-01-11 16:21:46 +02:00
Dan Percic
51ca27340e Merge branch 'RED-8234' into 'master'
RED-8234: fixed licenses total stats.

See merge request redactmanager/red-ui!249
2024-01-11 14:20:23 +01:00
Nicoleta Panaghiu
a2c91e2149 RED-8234: fixed licenses total stats. 2024-01-11 15:06:41 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
361d689f0c push back localazy update 2024-01-11 02:03:49 +00:00
Dan Percic
fb837c8a99 Merge branch 'VM/RED-8045' into 'master'
RED-8045 - Dossier template selection/filter at dossier dictionary comparison

Closes RED-8045

See merge request redactmanager/red-ui!248
2024-01-10 17:01:37 +01:00
Valentin Mihai
6563456d57 RED-8045 - Dossier template selection/filter at dossier dictionary comparison 2024-01-10 17:59:08 +02:00
Dan Percic
08ce6e4dcd Merge branch 'RED-8116' into 'master'
RED-8116: removed unnecessary multiple dossierTemplate API calls.

See merge request redactmanager/red-ui!247
2024-01-10 10:56:18 +01:00
Nicoleta Panaghiu
d5f0ab39d8 RED-8116: removed unnecessary multiple dossierTemplate API calls. 2024-01-09 16:08:56 +02:00
Dan Percic
f9490862dc Merge branch 'RED-8151' into 'master'
RED-8151: fixed maximum call stack error.

See merge request redactmanager/red-ui!246
2024-01-09 13:38:54 +01:00
Nicoleta Panaghiu
42eef62fa2 RED-8151: fixed maximum call stack error. 2024-01-09 14:37:23 +02:00
Dan Percic
f8a78c8238 Merge branch 'RED-8137' into 'master'
RED-8137: enabled actions on unprocessed annotations.

See merge request redactmanager/red-ui!245
2024-01-09 12:42:46 +01:00
Nicoleta Panaghiu
c3ae115898 RED-8137: enabled actions on unprocessed annotations. 2024-01-09 12:43:03 +02:00
Dan Percic
6ff5d515ac Merge branch 'VM/RED-7880' into 'master'
RED-7880 - Effective dictionary compare with dossier (template) missing the type

Closes RED-7880

See merge request redactmanager/red-ui!244
2024-01-08 16:20:48 +01:00
Valentin Mihai
63ac7497af RED-7880 - Effective dictionary compare with dossier (template) missing the type 2024-01-08 17:08:04 +02:00
Dan Percic
3d2eec6ef7 Merge branch 'VM/RED-8045' into 'master'
RED-8045 - Dossier template selection/filter at dossier dictionary comparison

Closes RED-8045

See merge request redactmanager/red-ui!243
2024-01-08 10:54:57 +01:00
Valentin Mihai
dc85025932 RED-8045 - fixed mr comments 2024-01-08 11:26:09 +02:00
Valentin Mihai
4953ed2e68 RED-8045 - Dossier template selection/filter at dossier dictionary comparison 2024-01-05 18:58:18 +02:00
Dan Percic
645285bfe6 Merge branch 'RED-8150' into 'master'
RED-8150: Adjust spacing in redact text dialog

Closes RED-8150

See merge request redactmanager/red-ui!242
2024-01-05 14:57:52 +01:00
Adina Țeudan
b5a6b211d8 RED-8150: Adjust spacing in redact text dialog 2024-01-05 15:44:33 +02:00
Dan Percic
478353c8f8 Merge branch 'RED-8164' into 'master'
RED-8164

See merge request redactmanager/red-ui!241
2024-01-05 12:14:06 +01:00
Nicoleta Panaghiu
7d72d6c755 RED-8164: fixed UsersAdmin stuck in infinite loop. 2024-01-05 13:08:53 +02:00
Dan Percic
333700073b Merge branch 'RED-8092' into 'master'
RED-8092: fixed revert when there is a pre-existing value.

See merge request redactmanager/red-ui!240
2024-01-03 14:54:23 +01:00
Nicoleta Panaghiu
9795c120b8 RED-8092: fixed revert when there is a pre-existing value. 2024-01-03 15:22:05 +02:00
Dan Percic
ed28fe911f Merge branch 'RED-8083' into 'master'
RED-8083: fixed reviewer cannot assign approver.

See merge request redactmanager/red-ui!238
2023-12-20 14:40:40 +01:00
Nicoleta Panaghiu
3ee11dd907 RED-8083: fixed reviewer cannot assign approver. 2023-12-20 15:31:28 +02:00
Nicoleta Panaghiu
d85c59e9ba Merge branch 'VM/RED-6960' into 'master'
RED-6960 - Enter should always confirm a modal window

Closes RED-6960

See merge request redactmanager/red-ui!237
2023-12-20 09:34:42 +01:00
Valentin Mihai
84986155dd RED-6960 - Enter should always confirm a modal window 2023-12-20 10:33:25 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
8fe443ba69 push back localazy update 2023-12-20 02:03:26 +00:00
Nicoleta Panaghiu
8e6d43283b Merge branch 'VM/RED-6960' into 'master'
RED-6960 - Enter should always confirm a modal window

Closes RED-6960

See merge request redactmanager/red-ui!236
2023-12-19 15:52:18 +01:00
Valentin Mihai
f9f899a636 RED-6960 - Enter should always confirm a modal window 2023-12-19 16:45:56 +02:00
Dan Percic
78d41402f1 Merge branch 'RED-8103' into 'master'
RED-8103: using the type display name and removed "".

See merge request redactmanager/red-ui!235
2023-12-19 12:34:40 +01:00
Nicoleta Panaghiu
0bc3b86d8d RED-8103: using the type display name and removed "". 2023-12-19 13:32:17 +02:00
Valentin-Gabriel Mihai
7454ee8e3e Merge branch 'RED-7762' into 'master'
RED-7762: fixed comment and empty field placeholders.

See merge request redactmanager/red-ui!234
2023-12-19 10:34:45 +01:00
Nicoleta Panaghiu
60664a56f2 RED-7762: fixed comment and empty field placeholders. 2023-12-19 11:32:39 +02:00
Valentin-Gabriel Mihai
3497b89fec Merge branch 'RED-8092' into 'master'
RED-8092: fixed revert for dossier attributes tab.

See merge request redactmanager/red-ui!233
2023-12-18 16:34:04 +01:00
Nicoleta Panaghiu
af068b3810 RED-8092: fixed revert for dossier attributes tab. 2023-12-18 17:30:55 +02:00
Dan Percic
79482b4da2 Merge branch 'RED-8075' into 'master'
RED-8075: fixed conflicting pop-up messages.

See merge request redactmanager/red-ui!232
2023-12-15 10:06:41 +01:00
Nicoleta Panaghiu
e80e6b9431 RED-8075: fixed conflicting pop-up messages. 2023-12-15 11:00:30 +02:00
Dan Percic
2d9efbeeb6 Merge branch 'VM/RED-7761' into 'master'
RED-7761 - Missing fields in Edit Dialog for Signature (redacted images)

Closes RED-7761

See merge request redactmanager/red-ui!231
2023-12-14 17:54:16 +01:00
Dan Percic
2b4a96c9cc Merge branch 'RED-7919' into 'master'
RED-7919: fixed calendar icon alignment.

See merge request redactmanager/red-ui!230
2023-12-14 17:24:47 +01:00
Valentin Mihai
2833029d65 RED-7761 - Missing fields in Edit Dialog for Signature (redacted images) 2023-12-14 17:14:48 +02:00
Nicoleta Panaghiu
ee0a5f7363 RED-7919: fixed calendar icon alignment. 2023-12-14 16:39:11 +02:00
Dan Percic
5834ccdf9d Merge branch 'RED-7912' into 'master'
RED-7912: sorted filters.

See merge request redactmanager/red-ui!229
2023-12-14 15:14:04 +01:00
Nicoleta Panaghiu
00467b6a01 RED-7912: sorted filters. 2023-12-14 16:03:57 +02:00
Valentin Mihai
9fafc203f5 Merge branch 'master' into VM/RED-7761 2023-12-14 14:29:26 +02:00
Dan Percic
f1c4748ba4 Merge branch 'RED-7691' into 'master'
RED-7691

See merge request redactmanager/red-ui!228
2023-12-14 11:50:07 +01:00
Nicoleta Panaghiu
ed349f0697 RED-7691: refactor code. 2023-12-14 12:43:06 +02:00
Nicoleta Panaghiu
4138f1b1e3 RED-7691: refactor code. 2023-12-14 12:33:48 +02:00
Nicoleta Panaghiu
f09172490a RED-7691: prevented double error toaster. 2023-12-14 11:46:25 +02:00
Dan Percic
97854c84db Merge branch 'RED-8073' into 'master'
RED-8073: show annotations without type in PDF.

See merge request redactmanager/red-ui!227
2023-12-13 13:20:11 +01:00
Nicoleta Panaghiu
023910ce34 RED-8073: show annotations without type in PDF. 2023-12-13 13:54:21 +02:00
Dan Percic
5d771913dd Merge branch 'VM/RED-8072' into 'master'
RED-8072 - Do not allow any annotations or annotation changes while auto-analysis is disabled

Closes RED-8072

See merge request redactmanager/red-ui!226
2023-12-13 11:34:56 +01:00
Valentin Mihai
52ea6fa92d RED-8072 - Do not allow any annotations or annotation changes while auto-analysis is disabled 2023-12-13 12:23:07 +02:00
Valentin Mihai
73408135be RED-7761 - Missing fields in Edit Dialog for Signature (redacted images) 2023-12-12 23:00:12 +02:00
Dan Percic
549f791d3c Merge branch 'RED-7691' into 'master'
RED-7691: fixed error message for invalid strings.

See merge request redactmanager/red-ui!225
2023-12-12 16:14:04 +01:00
Nicoleta Panaghiu
24d229edf5 RED-7691: fixed error message for invalid strings. 2023-12-12 16:03:39 +02:00
Dan Percic
19cf5fe9a0 Merge branch 'VM/RED-8072' into 'master'
RED-8072 - Do not allow any annotations or annotation changes while auto-analysis is disabled

Closes RED-8072

See merge request redactmanager/red-ui!224
2023-12-12 13:57:42 +01:00
Valentin Mihai
0215a6a516 RED-8072 - Do not allow any annotations or annotation changes while auto-analysis is disabled 2023-12-12 14:55:05 +02:00
Dan Percic
3a8f75bb95 Merge branch 'RED-7762' into 'master'
RED-7762: fixed unchanged placeholder.

Closes RED-7762

See merge request redactmanager/red-ui!223
2023-12-11 14:03:56 +01:00
Nicoleta Panaghiu
0b7dc23014 RED-7762: fixed unchanged placeholder. 2023-12-11 14:54:09 +02:00
Dan Percic
964395040f Merge branch 'hotfix/filename-component-log' into 'master'
RED-8055 Fix filename of exported component log json/xml

See merge request redactmanager/red-ui!222
2023-12-07 17:50:50 +01:00
Kresnadi Budisantoso
d1660355eb RED-8055 Fix filename of exported component log json/xml 2023-12-07 17:48:12 +01:00
Dan Percic
f57643f732 Merge branch 'VM/DM-588' into 'master'
DM-588 - Do not allow any annotations or annotation changes while auto-analysis is disabled

Closes DM-588

See merge request redactmanager/red-ui!220
2023-12-07 13:17:59 +01:00
Valentin Mihai
427dfa23e8 DM-588 - Do not allow any annotations or annotation changes while auto-analysis is disabled 2023-12-07 13:54:15 +02:00
Dan Percic
88d35436ad Merge branch 'VM/RED-7761' into 'master'
RED-7761 - Missing fields in Edit Dialog for Signature (redacted images)

Closes RED-7761

See merge request redactmanager/red-ui!219
2023-12-07 11:00:27 +01:00
Valentin Mihai
641f24e0c9 RED-7761 - removed also the "paragraph" field when "reason" is not available 2023-12-06 18:04:06 +02:00
Dan Percic
1ed6c956eb Merge branch 'VM/RED-7980' into 'master'
RED-7980 - Not all unprocessed annotations are displayed correctly

Closes RED-7980

See merge request redactmanager/red-ui!218
2023-12-06 16:20:07 +01:00
Valentin Mihai
5415677034 RED-7980 - update to use already existing "lastRelevantManualChange" variable 2023-12-06 17:19:14 +02:00
Valentin Mihai
7fcad33eb3 RED-7980 - Not all unprocessed annotations are displayed correctly 2023-12-06 17:11:27 +02:00
Dan Percic
af33a91941 Merge branch 'RED-7762' into 'master'
RED-7762: fixed asterisk and invalid form conditions.

See merge request redactmanager/red-ui!217
2023-12-06 11:38:14 +01:00
Nicoleta Panaghiu
5c5f2dcc51 RED-7762: fixed asterisk and invalid form conditions. 2023-12-06 12:36:07 +02:00
Dan Percic
d363da17fc Merge branch 'VM/RED-7761' into 'master'
RED-7761 - Missing fields in Edit Dialog for Signature (redacted images)

Closes RED-7761

See merge request redactmanager/red-ui!216
2023-12-06 10:02:49 +01:00
Valentin Mihai
54a5cdd9a1 RED-7761 - Missing fields in Edit Dialog for Signature (redacted images) 2023-12-05 17:34:30 +02:00
Dan Percic
31360e9845 Merge branch 'RED-3800-fix-tenant-switch' into 'master'
RED-3800 - fix tenant switch.

Closes RED-3800

See merge request redactmanager/red-ui!215
2023-12-04 14:37:49 +01:00
George
d144c90b04 RED-3800 - fix tenant switch. 2023-12-04 15:36:04 +02:00
Dan Percic
effe833971 Merge branch 'RED-3800-remove-tenant-references-in-routes' into 'master'
Resolve RED-3800 "Remove tenant references in routes"

Closes RED-3800

See merge request redactmanager/red-ui!214
2023-12-04 13:20:23 +01:00
George
a7dddf277c RED-8012 - fixed blank page when reloading. 2023-12-04 14:19:23 +02:00
George
2f443441f5 RED-3800 - fixed icon paths. 2023-12-04 13:52:47 +02:00
George
ea1c5f31c5 RED-3800 - remove active tenant references from routes. 2023-12-04 12:08:52 +02:00
Dan Percic
0a32b8f5bd Merge branch 'dan' into 'master'
RED-3800 ng update

See merge request redactmanager/red-ui!213
2023-12-01 09:32:33 +01:00
Dan Percic
db1edf162f RED-7990 fix rule based annotations cannot be resized 2023-11-30 15:47:13 +02:00
Dan Percic
17891f5579 RED-7989 update edit entity form 2023-11-30 15:06:02 +02:00
Dan Percic
885864fc1e DM-604 hide actions when file is done 2023-11-30 13:59:49 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
2718aa5a1c push back localazy update 2023-11-30 02:03:44 +00:00
Dan Percic
3b915d736c RED-3800 update other packages 2023-11-29 21:52:13 +02:00
Dan Percic
b2cc03be79 RED-3800 update material 2023-11-29 21:24:10 +02:00
Dan Percic
ac3d305279 RED-3800 ng update 2023-11-29 21:20:38 +02:00
Dan Percic
dd08cb950f Merge branch 'dan' into 'master'
RED-3800 fix update

See merge request redactmanager/red-ui!212
2023-11-29 18:08:39 +01:00
Dan Percic
15592a01af RED-3800 fix update 2023-11-29 19:04:32 +02:00
Dan Percic
ee6e4ad50d Merge branch 'dan' into 'master'
DM-604 bug fix for release

See merge request redactmanager/red-ui!211
2023-11-29 16:42:27 +01:00
Dan Percic
65dc06b980 Merge branch 'RED-7972' into 'master'
RED-7972: Updated labels

Closes RED-7972

See merge request redactmanager/red-ui!210
2023-11-29 16:30:12 +01:00
Adina Țeudan
e81ab56a4a RED-7972: Updated labels 2023-11-29 17:28:09 +02:00
Dan Percic
8d079410ea Merge remote-tracking branch 'origin/refactor-tenancy-using-base-ref' into dan 2023-11-29 17:27:59 +02:00
George
31c100d9bc RED-3800, readd project baseref config 2023-11-29 17:19:30 +02:00
George
b7a9b5c77c RED-3800, refactor multitenancy 2023-11-29 17:10:36 +02:00
Dan Percic
5f25da5d5d RED-3800 remove nx, prepare for ng 17 2023-11-29 17:06:10 +02:00
Dan Percic
a53d139687 Merge branch 'dan' into 'master'
DM-604 bug fix for release

See merge request redactmanager/red-ui!209
2023-11-29 14:34:09 +01:00
Dan Percic
5d82df9983 DM-604 bug fix for release 2023-11-29 13:52:25 +02:00
George Balanesc
9f72bd78f8 Merge branch 'VM/RED-7989' into 'master'
RED-7989 - Case Sensitive field not updated correctly in UI

Closes RED-7989

See merge request redactmanager/red-ui!208
2023-11-29 09:55:37 +01:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
51408302a9 push back localazy update 2023-11-29 02:03:38 +00:00
Valentin Mihai
1302c1b455 RED-7989 - Case Sensitive field not updated correctly in UI 2023-11-28 19:48:48 +02:00
Nicoleta Panaghiu
83495a7466 Merge branch 'VM/DM-598' into 'master'
DM-598 - Component values cannot be changed manually

Closes DM-598

See merge request redactmanager/red-ui!207
2023-11-28 13:08:29 +01:00
Valentin Mihai
0c83b39b8b DM-598 - Component values cannot be changed manually 2023-11-28 14:07:02 +02:00
Valentin-Gabriel Mihai
0da172106b Merge branch 'RED-7935' into 'master'
RED-7935: fixed internal server error.

See merge request redactmanager/red-ui!206
2023-11-28 12:55:53 +01:00
Nicoleta Panaghiu
2db9c50aa5 RED-7935: fixed internal server error. 2023-11-28 13:51:45 +02:00
Valentin-Gabriel Mihai
718e70f08c Merge branch 'RED-7762' into 'master'
RED-7762: changed type display value based on new requirements.

See merge request redactmanager/red-ui!205
2023-11-28 11:31:02 +01:00
Nicoleta Panaghiu
e8d8531304 RED-7762: changed type display value based on new requirements. 2023-11-28 12:28:51 +02:00
Valentin-Gabriel Mihai
aab19a383e Merge branch 'RED-7762' into 'master'
RED-7762: fields show 'unchanged' by default.

See merge request redactmanager/red-ui!204
2023-11-27 10:22:49 +01:00
Nicoleta Panaghiu
677d6732b0 RED-7762: fields show 'unchanged' by default. 2023-11-27 11:15:48 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
24bde55bb3 push back localazy update 2023-11-25 02:03:32 +00:00
Nicoleta Panaghiu
c89824f83a Merge branch 'VM/DM-598' into 'master'
DM-598 - Component values cannot be changed manually

Closes DM-598

See merge request redactmanager/red-ui!203
2023-11-24 11:46:38 +01:00
Valentin Mihai
0537706b9c DM-598 - Component values cannot be changed manually 2023-11-24 12:44:23 +02:00
Adina Teudan
b5c3d1e39d Merge branch 'DM-558' into 'master'
DM-558: Localazy integration for DM

Closes DM-558

See merge request redactmanager/red-ui!202
2023-11-24 09:44:03 +01:00
Adina Țeudan
095096e325 DM-558: Localazy integration for DM 2023-11-23 20:23:47 +02:00
Adina Teudan
876d2a2f27 Merge branch 'RED-7509' into 'master'
RED-7509: Scrollbar only for users list when editing dossier team

Closes RED-7509

See merge request redactmanager/red-ui!199
2023-11-23 18:43:03 +01:00
Nicoleta Panaghiu
67823cfc1d Merge branch 'VM/RED-7761' into 'master'
RED-7761 - Missing fields in Edit Dialog for Signature (redacted images)

Closes RED-7761

See merge request redactmanager/red-ui!200
2023-11-23 14:33:17 +01:00
Valentin Mihai
fe83a9c75a RED-7761 - removed reset reason method 2023-11-23 15:29:33 +02:00
Valentin Mihai
86c83311c7 RED-7761 - removed logs 2023-11-23 14:41:00 +02:00
Valentin Mihai
d45490ccaf RED-7761 - Missing fields in Edit Dialog for Signature (redacted images) 2023-11-23 14:40:03 +02:00
Adina Țeudan
df1ac952df RED-7509: Scrollbar only for users list when editing dossier team 2023-11-23 14:21:21 +02:00
Valentin-Gabriel Mihai
46182edb34 Merge branch 'RED-7692' into 'master'
RED-7692: Add linebreak if comment is too long

Closes RED-7692

See merge request redactmanager/red-ui!198
2023-11-23 12:46:12 +01:00
Adina Țeudan
4b84f35d59 RED-7692: Add linebreak if comment is too long 2023-11-23 13:43:08 +02:00
Valentin Mihai
3631df4619 RED-7761 - Missing fields in Edit Dialog for Signature (redacted images) 2023-11-22 18:52:27 +02:00
Valentin-Gabriel Mihai
a5ba313375 Merge branch 'RED-7853' into 'master'
RED-7853: Fixed lines not showing when only one month is displayed.

See merge request redactmanager/red-ui!197
2023-11-22 12:12:21 +01:00
Nicoleta Panaghiu
5f5322885a RED-7853: Fixed lines not showing when only one month is displayed. 2023-11-22 13:05:02 +02:00
Nicoleta Panaghiu
eff473ed48 Merge branch 'VM/DM-588' into 'master'
DM-588 - Do not allow any annotations or annotation changes while auto-analysis is disabled

Closes DM-588

See merge request redactmanager/red-ui!196
2023-11-22 09:41:56 +01:00
Valentin Mihai
212481f44f DM-588 - Do not allow any annotations or annotation changes while auto-analysis is disabled 2023-11-21 21:12:21 +02:00
Valentin-Gabriel Mihai
afc46ac7a7 Merge branch 'RED-7935' into 'master'
RED-7935: fixed cannot save force annotation.

See merge request redactmanager/red-ui!195
2023-11-21 14:47:03 +01:00
Nicoleta Panaghiu
f4b055bda2 RED-7935: fixed cannot save force annotation. 2023-11-21 14:17:43 +02:00
Valentin-Gabriel Mihai
f9c001230e Merge branch 'VM/RED-7887' into 'master'
RED-7887 - UI saves the last saved dictionary in compare and no longer updates...

Closes RED-7887

See merge request redactmanager/red-ui!194
2023-11-21 11:51:18 +01:00
Valentin Mihai
f08500b61b RED-7887 - UI saves the last saved dictionary in compare and no longer updates itself after selecting another template 2023-11-21 12:44:38 +02:00
Dan Percic
bcd9527696 Merge branch 'VM/RED-7903' into 'master'
RED-7903 - Show dummy redaction/hints while file is still processing

Closes RED-7903

See merge request redactmanager/red-ui!193
2023-11-20 08:40:44 +01:00
Valentin Mihai
46b5306aef RED-7903 - Show dummy redaction/hints while file is still processing 2023-11-17 13:00:55 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
7dd6dc14a4 push back localazy update 2023-11-17 02:03:38 +00:00
Dan Percic
5fe11a1475 Merge branch 'nicoleta' into 'master'
RED-3800: changed mutate to update.

See merge request redactmanager/red-ui!191
2023-11-16 16:20:05 +01:00
Dan Percic
8b433d732f Merge branch 'VM/RED-7930' into 'master'
RM-67: File actions not available when in full screen mode

Closes RED-7930

See merge request redactmanager/red-ui!192
2023-11-16 15:46:43 +01:00
Valentin Mihai
eeae76a06f RM-67: File actions not available when in full screen mode 2023-11-16 16:15:32 +02:00
Nicoleta Panaghiu
f0a72b7961 RED-3800: changed mutate to update. 2023-11-16 15:16:25 +02:00
Nicoleta Panaghiu
63fc8f0468 RED-3800: changed mutate to update. 2023-11-16 14:54:35 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
bb83b90ae0 push back localazy update 2023-11-16 02:03:31 +00:00
Dan Percic
90bb0e70ab Merge branch 'VM/RED-7634' into 'master'
RED-7634 - changed tooltips

Closes RED-7634

See merge request redactmanager/red-ui!190
2023-11-15 20:40:55 +01:00
Valentin Mihai
3667d586c4 RED-7634 - changed tooltips 2023-11-15 21:29:49 +02:00
Dan Percic
ea5fdb1a9e Merge branch 'VM/RED-7634' into 'master'
RED-7634 - added tooltips

Closes RED-7634

See merge request redactmanager/red-ui!189
2023-11-15 15:55:14 +01:00
Valentin Mihai
b4355cd0ba RED-7634 - added tooltips 2023-11-15 16:48:34 +02:00
Dan Percic
5248005e7a Merge branch 'RED-6234' into 'master'
RED-6234: Escape key aborts resize.

See merge request redactmanager/red-ui!186
2023-11-15 13:38:51 +01:00
Dan Percic
0535356ee9 Merge branch 'VM/RED-7634' into 'master'
RED-7634 - Hide "Skipped" button not working as expected

Closes RED-7634

See merge request redactmanager/red-ui!188
2023-11-15 13:32:34 +01:00
Valentin Mihai
034aa78842 RED-7634 - Hide "Skipped" button not working as expected 2023-11-15 14:29:03 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
2df87f4f16 push back localazy update 2023-11-15 02:03:50 +00:00
Dan Percic
4706a3d425 Merge branch 'RED-6435' into 'master'
RED-6435: Removed add to dict character limit

Closes RED-6435

See merge request redactmanager/red-ui!187
2023-11-14 14:25:11 +01:00
Adina Țeudan
6490fb8707 RED-6435: Removed add to dict character limit 2023-11-14 15:18:31 +02:00
Nicoleta Panaghiu
3193f28c69 RED-6234: Escape key aborts resize. 2023-11-14 15:00:55 +02:00
Dan Percic
37a3aaf0c0 Merge branch 'VM/RED-7880' into 'master'
RED-7880 - Effective dictionary compare with dossier (template) missing the type

Closes RED-7880

See merge request redactmanager/red-ui!185
2023-11-14 12:40:11 +01:00
Valentin Mihai
b29c95eb31 RED-7880 - Effective dictionary compare with dossier (template) missing the type 2023-11-14 13:31:07 +02:00
Dan Percic
9c325c8cfc Merge branch 'VM/RED-6960' into 'master'
RED-6960 - Enter should always confirm a modal window

Closes RED-6960

See merge request redactmanager/red-ui!184
2023-11-13 15:31:47 +01:00
Dan Percic
0be1856449 Merge branch 'VM/RED-7887' into 'master'
RED-7887 - UI saves the last saved dictionary in compare and no longer updates...

Closes RED-7887

See merge request redactmanager/red-ui!183
2023-11-13 15:31:23 +01:00
Valentin Mihai
ef662efa80 RED-6960 - update common ui 2023-11-13 13:27:28 +02:00
Valentin Mihai
c2020218c2 RED-6960 - Enter should always confirm a modal window 2023-11-13 13:24:27 +02:00
Valentin Mihai
93e1dcd1c1 RED-7887 - UI saves the last saved dictionary in compare and no longer updates itself after selecting another template 2023-11-11 16:33:58 +02:00
Dan Percic
5bcee3c5c4 Merge branch 'VM/DM-536' into 'master'
DM-536 - Extraction output bulk download for dossiers

Closes DM-536

See merge request redactmanager/red-ui!182
2023-11-10 19:33:22 +01:00
Valentin Mihai
533843caea DM-579 - Help Mode Link for Component Download 2023-11-10 20:29:11 +02:00
Valentin Mihai
e44a7a3ec4 DM-536 - Extraction output bulk download for dossiers 2023-11-10 20:09:15 +02:00
Dan Percic
d11700f8c4 Merge branch 'marius.schummer-master-patch-037e' into 'master'
DM-536 addition: Change tooltip for standard download button

See merge request redactmanager/red-ui!180
2023-11-09 17:03:05 +01:00
Marius Schummer
6ba0a5c712 DM-536 addition: Change tooltip for standard download button 2023-11-09 16:51:15 +01:00
Dan Percic
c4d31645ce Merge branch 'RED-7762' into 'master'
RED-7762: updated conditions based on specific annotation combinations.

See merge request redactmanager/red-ui!179
2023-11-09 13:03:55 +01:00
Nicoleta Panaghiu
9041ed9a0c RED-7762: updated conditions based on specific annotation combinations. 2023-11-09 13:49:16 +02:00
Christoph Schabert
372e6b887a Update .gitlab-ci.yml file 2023-11-09 10:24:46 +01:00
Christoph Schabert
d828e2c1aa Update .gitlab-ci.yml file 2023-11-09 10:06:48 +01:00
Christoph Schabert
cefa7889f8 Update .gitlab-ci.yml file 2023-11-09 10:02:13 +01:00
Christoph Schabert
174cfd6287 Update .gitlab-ci.yml file 2023-11-09 09:47:25 +01:00
Christoph Schabert
0948ca9168 Update .gitlab-ci.yml file 2023-11-09 09:37:51 +01:00
Christoph Schabert
6dd9539410 Update .gitlab-ci.yml file 2023-11-09 09:36:23 +01:00
Christoph Schabert
c0a197c3f4 Update .gitlab-ci.yml file 2023-11-09 09:34:50 +01:00
Christoph Schabert
8f7d43186b Update .gitlab-ci.yml file 2023-11-09 09:28:01 +01:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
b7da8ac00b push back localazy update 2023-11-09 02:04:06 +00:00
Dan Percic
f684d446e7 Merge branch 'RED-7890' into 'master'
RED-7890: Remove dict items sorting from UI

Closes RED-7890

See merge request redactmanager/red-ui!178
2023-11-08 10:34:54 +01:00
Adina Țeudan
52feb78eb2 RED-7890: Remove dict items sorting from UI 2023-11-08 11:27:38 +02:00
Dan Percic
aa8e59aefa Merge branch 'dan' into 'master'
Update entity log migration

See merge request redactmanager/red-ui!177
2023-11-08 09:45:21 +01:00
Dan Percic
bc947d2407 RED-3800 update watermark paddings 2023-11-08 10:23:30 +02:00
Dan Percic
11f5fe79cf RED-7619 fix entity log migration bugs 2023-11-08 10:23:05 +02:00
Dan Percic
605a06a7ec Merge branch 'marius.schummer-master-patch-64408' into 'master'
DM-556 Update translation for dict-based annotation label in workload for DocuMine

See merge request redactmanager/red-ui!175
2023-11-08 08:00:47 +01:00
Dan Percic
b292a88650 Merge branch 'RED-7890' into 'master'
RED-7890: Remove dict items sorting from UI

Closes RED-7890

See merge request redactmanager/red-ui!176
2023-11-07 16:28:26 +01:00
Adina Țeudan
b9e43535a9 RED-7890: Remove dict items sorting from UI 2023-11-07 16:27:56 +02:00
Dan Percic
54303e49eb Merge branch 'RED-6435' into 'master'
RED-6435: Cleanup unecessary code

Closes RED-6435

See merge request redactmanager/red-ui!174
2023-11-07 15:16:01 +01:00
Marius Schummer
52c8a2d393 DM-556 Update translation for dict-based annotation label in workload for DocuMine 2023-11-07 14:32:49 +01:00
Adina Țeudan
a398e95612 RED-6435: Cleanup unecessary code 2023-11-07 13:58:15 +02:00
Dan Percic
66fc7493c1 Merge branch 'RED-6435' into 'master'
RED-6435: Removed add to dict character limit

Closes RED-6435

See merge request redactmanager/red-ui!173
2023-11-07 12:52:44 +01:00
Adina Țeudan
0810cd4ae0 RED-6435: Removed add to dict character limit 2023-11-07 13:48:32 +02:00
Dan Percic
5fe11d1fdb Merge branch 'RED-7380' into 'master'
RED-7380: Remove _interface from dossier permissions update request

Closes RED-7380

See merge request redactmanager/red-ui!172
2023-11-07 12:45:13 +01:00
Adina Țeudan
7bac83cac6 RED-7380: Remove _interface from dossier permissions update request 2023-11-07 13:44:12 +02:00
Dan Percic
407a6d67cd Merge branch 'VM/DM-536' into 'master'
DM-536

Closes DM-536

See merge request redactmanager/red-ui!171
2023-11-07 12:39:56 +01:00
Valentin Mihai
bcef03b362 DM-536 - Extraction output bulk download for dossiers 2023-11-07 13:23:22 +02:00
Valentin Mihai
ac1c297eaa Merge branch 'master' into VM/DM-536 2023-11-06 14:22:25 +02:00
Dan Percic
5472ff127b Merge branch 'VM/RED-7761' into 'master'
RED-7761 - Missing fields in Edit Dialog for Signature (redacted images)

Closes RED-7761

See merge request redactmanager/red-ui!177
2023-11-06 12:47:03 +01:00
Valentin Mihai
03f5c9c90f RED-7761 - Missing fields in Edit Dialog for Signature (redacted images) 2023-11-06 13:43:17 +02:00
project_703_bot_497bb7eb186ca592c63b3e50cd5c69e1
f56d0e5542 push back localazy update 2023-11-06 10:47:34 +00:00
Dan Percic
25446702df Merge branch 'RED-7550-2' into 'master'
RED-7550: updated canEdit conditions.

See merge request redactmanager/red-ui!176
2023-11-02 14:58:31 +01:00
Nicoleta Panaghiu
693553627d RED-7550: cleanup. 2023-11-02 15:57:21 +02:00
Nicoleta Panaghiu
0e5e8f5cc4 RED-7550: updated canEdit conditions. 2023-11-02 15:32:48 +02:00
Dan Percic
be109653e8 Merge branch 'RED-3800' into 'master'
Resolve RED-3800

Closes RED-3800

See merge request redactmanager/red-ui!175
2023-11-01 19:17:04 +01:00
Adina Țeudan
24f5d29071 RED-3800: common-ui update 2023-11-01 18:34:09 +02:00
Adina Țeudan
d7383009d4 RED-3800: Moved pagination component to common-ui 2023-11-01 18:32:48 +02:00
Valentin Mihai
c426739233 DM-536 - Extraction output bulk download for dossiers 2023-11-01 17:26:49 +02:00
Dan Percic
3437622b95 Merge branch 'RED-7605' into 'master'
RED-7605: changed the way selectedText is retrieved.

See merge request redactmanager/red-ui!174
2023-11-01 15:16:06 +01:00
Nicoleta Panaghiu
5cfaaf70a5 RED-7605: changed the way selectedText is retrieved. 2023-11-01 16:13:33 +02:00
Dan Percic
423059f11a Merge branch 'RED-7858' into 'master'
RED-7858: Remove Email Report button in License Information screen

Closes RED-7858

See merge request redactmanager/red-ui!173
2023-11-01 09:45:48 +01:00
Dan Percic
cebc18b776 Merge branch 'RED-7856' into 'master'
RED-7856: Sort dossier states stats by rank

Closes RED-7856

See merge request redactmanager/red-ui!172
2023-11-01 09:45:28 +01:00
Dan Percic
51e77d6344 Merge branch 'DM-540' into 'master'
DM-540: Check for roles before main guard

Closes DM-540

See merge request redactmanager/red-ui!171
2023-11-01 09:44:44 +01:00
Adina Țeudan
181fcbf6c4 RED-7858: Remove Email Report button in License Information screen 2023-11-01 01:36:07 +02:00
Adina Țeudan
19a47bccec RED-7856: Sort dossier states stats by rank 2023-11-01 01:33:36 +02:00
Adina Țeudan
25c27c66c7 DM-540: Check for roles before main guard 2023-11-01 00:59:35 +02:00
Christoph Schabert
946bc87198 Update .gitlab-ci.yml file 2023-10-31 15:01:06 +01:00
Christoph Schabert
ec990d2dd1 Update .gitlab-ci.yml file 2023-10-31 12:17:52 +01:00
Christoph Schabert
57aa62d68e Update .gitlab-ci.yml file 2023-10-31 12:16:58 +01:00
Dan Percic
fc211daf25 Merge branch 'dan' into 'master'
Migrate to Entity Log

See merge request redactmanager/red-ui!168
2023-10-31 09:31:46 +01:00
Dan Percic
70c76ee8ae RED-7619 update translations 2023-10-31 10:25:53 +02:00
Dan Percic
6cac3f94a2 RED-7619 update dockerfile 2023-10-31 10:25:53 +02:00
Dan Percic
f2e2a5ba1a RED-7619 I think its ready? 2023-10-31 10:25:53 +02:00
Dan Percic
7d141c5b23 RED-7619 update annotation wrapper 2023-10-31 10:25:53 +02:00
Dan Percic
ffa9a5830f RED-7619 remove old super type logic, add new 2023-10-31 10:25:53 +02:00
Dan Percic
e40a975ac3 RED-7619 remove unused dialog 2023-10-31 10:25:53 +02:00
Dan Percic
d31d57a2ca RED-7619 remove other useless stuff 2023-10-31 10:25:53 +02:00
Dan Percic
871f0feac1 RED-7619 remove useless suggestions. god this fel good 2023-10-31 10:25:53 +02:00
Dan Percic
94ba0e5470 RED-7619 little cleanup 2023-10-31 10:25:53 +02:00
Dan Percic
c94ef48844 RED-7619 wip migration to entity log 2023-10-31 10:25:53 +02:00
Dan Percic
e3463907f6 Merge branch 'VM/RED-7023' into 'master'
RED-7023

Closes RED-7023

See merge request redactmanager/red-ui!170
2023-10-31 09:07:17 +01:00
Valentin Mihai
9d8a9c04ad RED-7023 - Option to compare (effective) dossier dictionary with template dictionary 2023-10-31 00:08:43 +02:00
Valentin Mihai
9bc52de57d DM-538 - set includeDetails param to false for export xml request 2023-10-30 20:57:56 +02:00
984 changed files with 25323 additions and 22494 deletions

View File

@ -1,5 +0,0 @@
PMRA Document Number,GAP Active Ingredient,Regulatory Utility,Document Comment,SIC Number,Protocol Number,Protocol Number,Data Evaluation Record,Audience,Original Retirement Date,Regulatory Released,Regulatory Authority,Regulatory Authority (legacy to remove),Source Owner,Legacy Primary OECD Code,Legacy Source Organisation,Regulator Comments,Contains Registered Composition?,File Name,FTP Source Location,Submission Format Needed,Legacy Report Number,Sales Unit,Address,ANVISA Process Number,Source Number,Legacy Migration Path,Review Completion Date,Registration Number,Agency Dossier Registration Type,Submission Version,Media Comments,Literature Citation,Document Language,Notes,Study Location,Materials,Approver,Subtype,Test Facility,Is Latest Version,Consumer,Classification,Guideline,TRP Type,Legacy System Date,Function,Artist,Document Title,PI Number,Legacy Version Description,PI Number,Incoming from,Annotations (Unresolved),Work To Date,Copyright Clearance Obtained?,Summary Type,Annotations (Claim Links),Latest Source Minor Version,Regulatory Category,SYN Letter Number,Work From Date,Product,Version Creation Date,Governance Committee,Test Facility (legacy to remove),Regulatory Finalization Date,Imported file?,Status,Information Tracking Submission Package,Approval Type,Media Description,Duration,Legacy System,Archive Date,Exporting country,Regulatory Tracking Number,Annotations (Anchors),Information Tracking,Document Number,GAP Usage Information,Report Number,Legacy Reg Document Number,Legal Representative 2,Registering Company,File Created By,Legacy EPA Decision Code,Meeting Minutes,Product Safety Finalization Date,Report Type,Archived Date,Legacy Other PMRA Data Codes,Template Document Type,Color Space,Legal Representative 1,Document Author,CrossLink,Annotations (Notes),Suggested Links,Assessment Type,Legacy Species Commodity,TK Number,Legacy Test Facilities,Planned Completion Date,PRF Number,Registration Item Country,Legacy Target Species,Legacy Owning Organisation,Archive Number,Protocol Type,Submission Output Format,Submission Date,Coordinator,Regulatory Reporting Date,Annotations (Lines),Field Trial Number,Batch Number,Legacy Version Number,External ID,Author Names,Sponsor Organisation (legacy to remove),Literature Type,Sponsor Organisation,Legacy Crop Host,Document Edition,Agreement Expiry Date,TRP Usage,Legacy EPA Submission Type,Security Classification,Source Document Name,Syngenta Address,Outgoing to (legacy to remove),Link Status,Legacy System Document ID,Copyright,PMRA Registration Number,Annotations (All),SU,Source Vault Name,Latest Source Major Version,Legacy Other OECD Codes,Version Created By,Subarea,Reviewer,Owning Organisation (legacy to remove),Project,Viewer,Regulatory Territory,Lifecycle,Claims,Bound Source Minor Version,Global ID,Legacy Regulatory Authorities,Outgoing to,Additional Information,Year,Organism,File Last Modified By,Requires Attachment of a Signature Page?,Source Binding Rule,Destination country,Cross-Reference Submission Number,Name,Issue Topic,Pages,Type,Reason for Retiring,Rule,Type of Review,Original Finalization Date,Trade Name,Transmittal Document,Pages OCR'ed (%),Legacy Object ID(s),Protocol Number,Last Modified By,Annotations (Approved Links),Request Type,Binder,Author,Last Modified Date,Non-English Document Title,Media Location,Created By,Editor,Owner,CRO Report Number,Format,Legacy Discipline,Major Version Number,Created From,Active Ingredients,Archive Location,EPA Registration Number,Retirement Date,Annotations (Links),TRP Document,Finalization Date,Legacy Task Number,Legal Details,OCR Requested,Global Version ID,Publicly Published,Document Date,MRID Number,Legacy Reg Topic,Requires Review and Approval?,Annotations (Auto Links),Subareas,Product Safety Reporting Date,Media Title,Minor Version Number,Legacy Primary PMRA Data Code,Requestor,Owning Organisation,Zone,File Last Modified Date,Contact Person,File Created Date,Amendment Justification,CDPR Number,Legacy EPA Submission Date,Supports Agency Dossier,Field Trial Year,Reason for Un-retiring,TRP Topic,Bound Source Major Version,Keywords,Legacy Author Name(s),Export File Name,Size,Source Link,This content is a translation?,Quality Assurance Standard,Legacy Fed Reg Number,Checksum,Created Date,Annotations (Resolved),User Task,Review Start Date,test list,Incoming from (legacy to remove),Rendition Profile,Path,URL
,,Country Specific,,,,,No,,,Yes,,,,,Syngenta,,,Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the context in which the dossier is submit.doc,,,,,,,,,,,,,,,English,,,PP321,,Authority Form / Document,,TRUE,"All Internal Users, Syngenta Read Only Restricted, Syngenta Read Only Non Restricted",,,,16/07/2019,,,Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the context in which the dossier is submitted,PI0015818,,,,0,,,,0,,,,,,26/03/2020 14:06 CET,,Syngenta Crop Protection AG (Switzerland),,No,Final,,,,,SmartDoc - EAME,,,,0,IT-624180,VV-731623,,N/A,PP321_12074,,,,,,,,,,,,,B Sochard,No,0,0,,,,,,,,,,,,,,,,0,,,1.0|CURRENT,090100b881afdd91,,Syngenta Crop Protection AG (Switzerland),,Syngenta Crop Protection AG,,Original,,,,Internal Use Only,,,ETL_blank,,090100b881afdd91,,,0,,,,,Berangere Sochard,,,Syngenta Crop Protection AG (Switzerland),,,European Union,General Lifecycle,,,40037_850361,,ETL_blank,,,,,,,,,Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the context in which the dossier is submit,,2,Registration Supporting Documentation,,,,,,No,,090100b881afdd91 (cv),,CP Vault Support,0,,No,,24/02/2021 15:20 CET,,,Vault Migration,"Global Reg Ops, NA Reg Ops, PS Ops, EAME Reg Ops, Syngenta Business Administrator, Berangere Sochard, Simon Baker, Lily Williams, Clive Boxwell, Paul Parsons, Richard MacKenzie, Dan Pickford, Laurence Hand",Vault Migration,,application/msword,Regulatory,2,,PP321,,,,0,No,,PI0015818,,No,40037_850361_1958105,No,01/09/2020,,Regulatory,No,0,,,,0,,,Syngenta Crop Protection AG,,,,,,,,,,,,,,Sochard Berangere,,49152,,No,,,86d75e5da397fdadcd332f92234a4f62,29/11/2019 08:51 CET,0,,,,,,Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the.pdf,
,,Country Specific,,,,,No,,,Yes,,,,,Syngenta,,,Lambda-cyhalothrin - EU AIR5 - MCA Section 5 - Toxicology (1).docx,,,,,,,,,,,,,,,English,,,PP321,,Summary / Overview,,TRUE,"All Internal Users, Syngenta Read Only Non Restricted, Syngenta Read Only Restricted",,,,16/07/2019,,,Lambda-cyhalothrin - EU AIR5 - MCA Section 5 - Toxicology,PI0015818,,,,0,,,OECD Tier 2 Summary,0,,,,,,17/02/2021 22:02 CET,,Syngenta Crop Protection AG (Switzerland),,Yes,Draft,,,,,SmartDoc - EAME,,,,0,IT-615930,VV-729845,,N/A,PP321_12086,,,Syngenta,,,,,,,,,,S Lloyd,No,0,0,,,,,,,,,,,,,,,,0,,,1.0|CURRENT,090100b881afde22,,Syngenta Crop Protection AG (Switzerland),,Syngenta Crop Protection AG,,Original,,,,Internal Use Only,,,,,090100b881afde22,,,0,,,,,Sonia Ellis,,,Syngenta Crop Protection AG (Switzerland),,,European Union,General Lifecycle,,,40037_848583,,,,,,Ellis Sonia (ext) GBGU,,,,,Lambda-cyhalothrin - EU AIR5 - MCA Section 5 - Toxicology,,893,Summary / Assessment,,,,,,No,,090100b881afde22 (cv),,CP Vault Support,0,,No,Syngenta,24/02/2021 15:20 CET,,,Vault Migration,"EAME Reg Ops, Syngenta Business Administrator, PS Ops, NA Reg Ops, Global Reg Ops, Berangere Sochard, Simon Baker, Lily Williams, Clive Boxwell, Paul Parsons, Richard MacKenzie, Dan Pickford, Laurence Hand, Claire McCombie, Elaine Buss",Vault Migration,,application/vnd.openxmlformats-officedocument.wordprocessingml.document,Toxicology,3,,PP321,,,,0,No,,PI0015818,,No,40037_848583_2033983,No,01/09/2020,,Tox,No,0,,,,1,,,Syngenta Crop Protection AG,,17/02/2021 21:35 CET,,04/09/2020 14:34 CEST,,,,,,,,,VV-729845,Lloyd Sara,,5089990,,No,,,3b13f57d1244e77844eba73ce0ae9813,29/11/2019 08:47 CET,0,,,,,,Lambda-cyhalothrin - EU AIR5 - MCA Section 5 - Toxicology.pdf,
,,Country Specific,,,,,No,,,Yes,,,,,Syngenta,,,Lambda-cyhalothrin - EU AIR5 - LCA Section 5 Reference List (1).doc,,,,,,,,,,,,,,,English,,,PP321,,Summary / Overview,,TRUE,"All Internal Users, Syngenta Read Only Restricted, Syngenta Read Only Non Restricted",,,,16/07/2019,,,Lambda-cyhalothrin - EU AIR5 - LCA Section 5 Reference List,PI0015818,,,,0,,,OECD Tier 1 Summary,0,,,,,,12/09/2020 15:48 CEST,,Syngenta Crop Protection AG (Switzerland),,Yes,Final,,,,,SmartDoc - EAME,,,,0,IT-615436,VV-729844,,N/A,PP321_12084,,,,,,,,,,,,,S Ellis,No,0,0,,,,,,,,,,,,,,,,0,,,1.0|CURRENT,090100b881afde20,,Syngenta Crop Protection AG (Switzerland),,Syngenta Crop Protection AG,,Original,,,,Internal Use Only,,,,,090100b881afde20,,,0,,,,,Sonia Ellis,,,Syngenta Crop Protection AG (Switzerland),,,European Union,General Lifecycle,,,40037_848582,,,,,,,,,,,Lambda-cyhalothrin - EU AIR5 - LCA Section 5 Reference List,,147,Summary / Assessment,,,,,,No,,090100b881afde20 (cv),,CP Vault Support,0,,No,,24/02/2021 15:20 CET,,,Vault Migration,"NA Reg Ops, Global Reg Ops, EAME Reg Ops, PS Ops, Syngenta Business Administrator, Berangere Sochard, Paul Parsons",Vault Migration,,application/msword,Toxicology,2,,PP321,,,,0,No,,PI0015818,,No,40037_848582_2001744,No,01/09/2020,,Tox,No,0,,,,0,,,Syngenta Crop Protection AG,,,,,,,,,,,,,,Ellis Sonia,,651264,,No,,,eb0fdf698b528b67f54635395ec7fb52,29/11/2019 08:47 CET,0,,,,,,Lambda-cyhalothrin - EU AIR5 - LCA Section 5 Reference List.pdf,
,,Country Specific,,,,,No,,,Yes,,,,,Syngenta,,,Lambda-cyhalothrin - EU AIR5 - LCA Section 4 Reference List (5).doc,,,,,,,,,,,,,,,English,,,PP321,,Summary / Overview,,TRUE,"All Internal Users, Syngenta Read Only Restricted, Syngenta Read Only Non Restricted",,,,16/07/2019,,,Lambda-cyhalothrin - EU AIR5 - LCA Section 4 Reference List,PI0015818,,,,0,,,OECD Tier 1 Summary,0,,,,,,21/09/2020 15:21 CEST,,Syngenta Crop Protection AG (Switzerland),,Yes,Final,,,,,SmartDoc - EAME,,,,0,IT-618210,VV-729843,,N/A,PP321_12083,,,,,,,,,,,,,S Ellis,No,0,0,,,,,,,,,,,,,,,,0,,,1.0|CURRENT,090100b881afde1f,,Syngenta Crop Protection AG (Switzerland),,Syngenta Crop Protection AG,,Original,,,,Internal Use Only,,,,,090100b881afde1f,,,0,,,,,Sonia Ellis,,,Syngenta Crop Protection AG (Switzerland),,,European Union,General Lifecycle,,,40037_848581,,,,,,,,,,,Lambda-cyhalothrin - EU AIR5 - LCA Section 4 Reference List,,151,Summary / Assessment,,,,,,No,,090100b881afde1f (cv),,CP Vault Support,0,,No,,24/02/2021 15:20 CET,,,Vault Migration,"EAME Reg Ops, Global Reg Ops, PS Ops, Syngenta Business Administrator, NA Reg Ops, Berangere Sochard, Melanie Bottoms, Dan Pickford, Lynda Farrelly",Vault Migration,,application/msword,Chemistry - Regulatory,2,,PP321,,,,0,No,,PI0015818,,No,40037_848581_2003177,No,01/09/2020,,Chem - Analytical Methods,No,0,,,,0,,,Syngenta Crop Protection AG,,,,,,,,,,,,,,Ellis Sonia,,699392,,No,,,2c476f477f6e2b55ecb537683f5d1cee,29/11/2019 08:47 CET,0,,,,,,Lambda-cyhalothrin - EU AIR5 - LCA Section 4 Reference List.pdf,
1 PMRA Document Number GAP Active Ingredient Regulatory Utility Document Comment SIC Number Protocol Number Protocol Number Data Evaluation Record Audience Original Retirement Date Regulatory Released Regulatory Authority Regulatory Authority (legacy to remove) Source Owner Legacy Primary OECD Code Legacy Source Organisation Regulator Comments Contains Registered Composition? File Name FTP Source Location Submission Format Needed Legacy Report Number Sales Unit Address ANVISA Process Number Source Number Legacy Migration Path Review Completion Date Registration Number Agency Dossier Registration Type Submission Version Media Comments Literature Citation Document Language Notes Study Location Materials Approver Subtype Test Facility Is Latest Version Consumer Classification Guideline TRP Type Legacy System Date Function Artist Document Title PI Number Legacy Version Description PI Number Incoming from Annotations (Unresolved) Work To Date Copyright Clearance Obtained? Summary Type Annotations (Claim Links) Latest Source Minor Version Regulatory Category SYN Letter Number Work From Date Product Version Creation Date Governance Committee Test Facility (legacy to remove) Regulatory Finalization Date Imported file? Status Information Tracking Submission Package Approval Type Media Description Duration Legacy System Archive Date Exporting country Regulatory Tracking Number Annotations (Anchors) Information Tracking Document Number GAP Usage Information Report Number Legacy Reg Document Number Legal Representative 2 Registering Company File Created By Legacy EPA Decision Code Meeting Minutes Product Safety Finalization Date Report Type Archived Date Legacy Other PMRA Data Codes Template Document Type Color Space Legal Representative 1 Document Author CrossLink Annotations (Notes) Suggested Links Assessment Type Legacy Species Commodity TK Number Legacy Test Facilities Planned Completion Date PRF Number Registration Item Country Legacy Target Species Legacy Owning Organisation Archive Number Protocol Type Submission Output Format Submission Date Coordinator Regulatory Reporting Date Annotations (Lines) Field Trial Number Batch Number Legacy Version Number External ID Author Names Sponsor Organisation (legacy to remove) Literature Type Sponsor Organisation Legacy Crop Host Document Edition Agreement Expiry Date TRP Usage Legacy EPA Submission Type Security Classification Source Document Name Syngenta Address Outgoing to (legacy to remove) Link Status Legacy System Document ID Copyright PMRA Registration Number Annotations (All) SU Source Vault Name Latest Source Major Version Legacy Other OECD Codes Version Created By Subarea Reviewer Owning Organisation (legacy to remove) Project Viewer Regulatory Territory Lifecycle Claims Bound Source Minor Version Global ID Legacy Regulatory Authorities Outgoing to Additional Information Year Organism File Last Modified By Requires Attachment of a Signature Page? Source Binding Rule Destination country Cross-Reference Submission Number Name Issue Topic Pages Type Reason for Retiring Rule Type of Review Original Finalization Date Trade Name Transmittal Document Pages OCR'ed (%) Legacy Object ID(s) Protocol Number Last Modified By Annotations (Approved Links) Request Type Binder Author Last Modified Date Non-English Document Title Media Location Created By Editor Owner CRO Report Number Format Legacy Discipline Major Version Number Created From Active Ingredients Archive Location EPA Registration Number Retirement Date Annotations (Links) TRP Document Finalization Date Legacy Task Number Legal Details OCR Requested Global Version ID Publicly Published Document Date MRID Number Legacy Reg Topic Requires Review and Approval? Annotations (Auto Links) Subareas Product Safety Reporting Date Media Title Minor Version Number Legacy Primary PMRA Data Code Requestor Owning Organisation Zone File Last Modified Date Contact Person File Created Date Amendment Justification CDPR Number Legacy EPA Submission Date Supports Agency Dossier Field Trial Year Reason for Un-retiring TRP Topic Bound Source Major Version Keywords Legacy Author Name(s) Export File Name Size Source Link This content is a translation? Quality Assurance Standard Legacy Fed Reg Number Checksum Created Date Annotations (Resolved) User Task Review Start Date test list Incoming from (legacy to remove) Rendition Profile Path URL
2 Country Specific No Yes Syngenta Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the context in which the dossier is submit.doc English PP321 Authority Form / Document TRUE All Internal Users, Syngenta Read Only Restricted, Syngenta Read Only Non Restricted 16/07/2019 Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the context in which the dossier is submitted PI0015818 0 0 26/03/2020 14:06 CET Syngenta Crop Protection AG (Switzerland) No Final SmartDoc - EAME 0 IT-624180 VV-731623 N/A PP321_12074 B Sochard No 0 0 0 1.0|CURRENT 090100b881afdd91 Syngenta Crop Protection AG (Switzerland) Syngenta Crop Protection AG Original Internal Use Only ETL_blank 090100b881afdd91 0 Berangere Sochard Syngenta Crop Protection AG (Switzerland) European Union General Lifecycle 40037_850361 ETL_blank Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the context in which the dossier is submit 2 Registration Supporting Documentation No 090100b881afdd91 (cv) CP Vault Support 0 No 24/02/2021 15:20 CET Vault Migration Global Reg Ops, NA Reg Ops, PS Ops, EAME Reg Ops, Syngenta Business Administrator, Berangere Sochard, Simon Baker, Lily Williams, Clive Boxwell, Paul Parsons, Richard MacKenzie, Dan Pickford, Laurence Hand Vault Migration application/msword Regulatory 2 PP321 0 No PI0015818 No 40037_850361_1958105 No 01/09/2020 Regulatory No 0 0 Syngenta Crop Protection AG Sochard Berangere 49152 No 86d75e5da397fdadcd332f92234a4f62 29/11/2019 08:51 CET 0 Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the.pdf
3 Country Specific No Yes Syngenta Lambda-cyhalothrin - EU AIR5 - MCA Section 5 - Toxicology (1).docx English PP321 Summary / Overview TRUE All Internal Users, Syngenta Read Only Non Restricted, Syngenta Read Only Restricted 16/07/2019 Lambda-cyhalothrin - EU AIR5 - MCA Section 5 - Toxicology PI0015818 0 OECD Tier 2 Summary 0 17/02/2021 22:02 CET Syngenta Crop Protection AG (Switzerland) Yes Draft SmartDoc - EAME 0 IT-615930 VV-729845 N/A PP321_12086 Syngenta S Lloyd No 0 0 0 1.0|CURRENT 090100b881afde22 Syngenta Crop Protection AG (Switzerland) Syngenta Crop Protection AG Original Internal Use Only 090100b881afde22 0 Sonia Ellis Syngenta Crop Protection AG (Switzerland) European Union General Lifecycle 40037_848583 Ellis Sonia (ext) GBGU Lambda-cyhalothrin - EU AIR5 - MCA Section 5 - Toxicology 893 Summary / Assessment No 090100b881afde22 (cv) CP Vault Support 0 No Syngenta 24/02/2021 15:20 CET Vault Migration EAME Reg Ops, Syngenta Business Administrator, PS Ops, NA Reg Ops, Global Reg Ops, Berangere Sochard, Simon Baker, Lily Williams, Clive Boxwell, Paul Parsons, Richard MacKenzie, Dan Pickford, Laurence Hand, Claire McCombie, Elaine Buss Vault Migration application/vnd.openxmlformats-officedocument.wordprocessingml.document Toxicology 3 PP321 0 No PI0015818 No 40037_848583_2033983 No 01/09/2020 Tox No 0 1 Syngenta Crop Protection AG 17/02/2021 21:35 CET 04/09/2020 14:34 CEST VV-729845 Lloyd Sara 5089990 No 3b13f57d1244e77844eba73ce0ae9813 29/11/2019 08:47 CET 0 Lambda-cyhalothrin - EU AIR5 - MCA Section 5 - Toxicology.pdf
4 Country Specific No Yes Syngenta Lambda-cyhalothrin - EU AIR5 - LCA Section 5 Reference List (1).doc English PP321 Summary / Overview TRUE All Internal Users, Syngenta Read Only Restricted, Syngenta Read Only Non Restricted 16/07/2019 Lambda-cyhalothrin - EU AIR5 - LCA Section 5 Reference List PI0015818 0 OECD Tier 1 Summary 0 12/09/2020 15:48 CEST Syngenta Crop Protection AG (Switzerland) Yes Final SmartDoc - EAME 0 IT-615436 VV-729844 N/A PP321_12084 S Ellis No 0 0 0 1.0|CURRENT 090100b881afde20 Syngenta Crop Protection AG (Switzerland) Syngenta Crop Protection AG Original Internal Use Only 090100b881afde20 0 Sonia Ellis Syngenta Crop Protection AG (Switzerland) European Union General Lifecycle 40037_848582 Lambda-cyhalothrin - EU AIR5 - LCA Section 5 Reference List 147 Summary / Assessment No 090100b881afde20 (cv) CP Vault Support 0 No 24/02/2021 15:20 CET Vault Migration NA Reg Ops, Global Reg Ops, EAME Reg Ops, PS Ops, Syngenta Business Administrator, Berangere Sochard, Paul Parsons Vault Migration application/msword Toxicology 2 PP321 0 No PI0015818 No 40037_848582_2001744 No 01/09/2020 Tox No 0 0 Syngenta Crop Protection AG Ellis Sonia 651264 No eb0fdf698b528b67f54635395ec7fb52 29/11/2019 08:47 CET 0 Lambda-cyhalothrin - EU AIR5 - LCA Section 5 Reference List.pdf
5 Country Specific No Yes Syngenta Lambda-cyhalothrin - EU AIR5 - LCA Section 4 Reference List (5).doc English PP321 Summary / Overview TRUE All Internal Users, Syngenta Read Only Restricted, Syngenta Read Only Non Restricted 16/07/2019 Lambda-cyhalothrin - EU AIR5 - LCA Section 4 Reference List PI0015818 0 OECD Tier 1 Summary 0 21/09/2020 15:21 CEST Syngenta Crop Protection AG (Switzerland) Yes Final SmartDoc - EAME 0 IT-618210 VV-729843 N/A PP321_12083 S Ellis No 0 0 0 1.0|CURRENT 090100b881afde1f Syngenta Crop Protection AG (Switzerland) Syngenta Crop Protection AG Original Internal Use Only 090100b881afde1f 0 Sonia Ellis Syngenta Crop Protection AG (Switzerland) European Union General Lifecycle 40037_848581 Lambda-cyhalothrin - EU AIR5 - LCA Section 4 Reference List 151 Summary / Assessment No 090100b881afde1f (cv) CP Vault Support 0 No 24/02/2021 15:20 CET Vault Migration EAME Reg Ops, Global Reg Ops, PS Ops, Syngenta Business Administrator, NA Reg Ops, Berangere Sochard, Melanie Bottoms, Dan Pickford, Lynda Farrelly Vault Migration application/msword Chemistry - Regulatory 2 PP321 0 No PI0015818 No 40037_848581_2003177 No 01/09/2020 Chem - Analytical Methods No 0 0 Syngenta Crop Protection AG Ellis Sonia 699392 No 2c476f477f6e2b55ecb537683f5d1cee 29/11/2019 08:47 CET 0 Lambda-cyhalothrin - EU AIR5 - LCA Section 4 Reference List.pdf

View File

@ -1,3 +1,14 @@
node_modules/
.idea/
dist/
.angular
.husky
.editorconfig
.dockerignore
.eslintignore
.eslintrc.json
.gitignore
.prettierignore
.prettierrc
renovate.json
Running

View File

@ -5,3 +5,6 @@ dist
coverage
node_modules
bamboo-specs
docker
paligo-styles
paligo-theme

View File

@ -1,46 +1,10 @@
{
"root": true,
"ignorePatterns": ["**/*"],
"plugins": ["@nx"],
"overrides": [
{
"files": ["*.ts"],
"rules": {
"@nx/enforce-module-boundaries": [
"error",
{
"enforceBuildableLibDependency": true,
"allow": [
"@services/**",
"@components/**",
"@guards/**",
"@users/**",
"@i18n/**",
"@utils/**",
"@models/**",
"@environments/**",
"@shared/**",
"@upload-download/**",
"@translations/**"
],
"depConstraints": [
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
]
}
]
}
},
{
"files": ["*.ts"],
"extends": ["plugin:@nx/typescript"]
},
{
"files": ["*.ts"],
"extends": [
"plugin:@nx/angular",
"eslint:recommended",
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/template/process-inline-templates",
@ -52,6 +16,7 @@
},
"rules": {
"rxjs/no-ignored-subscription": "warn",
"@angular-eslint/prefer-standalone": "off",
"@angular-eslint/no-conflicting-lifecycle": "error",
"@angular-eslint/no-host-metadata-property": "error",
"@angular-eslint/no-input-rename": "error",
@ -73,6 +38,7 @@
"@typescript-eslint/indent": "off",
"@typescript-eslint/lines-between-class-members": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/explicit-member-accessibility": [
"error",
{
@ -283,7 +249,7 @@
},
{
"files": ["*.html"],
"extends": ["plugin:@nx/angular-template", "plugin:@angular-eslint/template/recommended"]
"extends": ["plugin:@angular-eslint/template/recommended"]
},
{
"files": ["*.html"],

6
.gitignore vendored
View File

@ -18,6 +18,7 @@
*.launch
.settings/
*.sublime-workspace
redaction.iml
# IDE - VSCode
.vscode/*
@ -46,7 +47,4 @@ paligo-styles/style.css*
migrations.json
*.iml
docker-compose.yml
.nx/cache/
/.nx/

View File

@ -4,14 +4,32 @@ variables:
PROJECT: red-ui
DOCKERFILELOCATION: 'docker/$PROJECT/Dockerfile'
workflow:
rules:
- when: always
include:
- project: 'gitlab/gitlab'
ref: 'main'
file: 'ci-templates/docker_build_nexus_v2.yml'
rules:
- if: $CI_PIPELINE_SOURCE != "schedule"
sonarqube:
stage: test
image:
name: sonarsource/sonar-scanner-cli:11.1
entrypoint:
- ''
variables:
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"
GIT_DEPTH: '0'
cache:
key: "${CI_JOB_NAME}"
paths:
- ".sonar/cache"
script:
- sonar-scanner
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
- if: "$CI_COMMIT_BRANCH =~ /^release/"
localazy update:
image: node:20.5
@ -22,21 +40,24 @@ localazy update:
paths:
- .yarn-cache/
script:
- git config user.email "${CI_EMAIL}"
- git config user.name "${CI_USERNAME}"
- git remote add gitlab_origin https://${CI_USERNAME}:${CI_ACCESS_TOKEN}@gitlab.knecon.com/redactmanager/red-ui.git
# - git config user.email "${CI_EMAIL}"
# - git config user.name "${CI_USERNAME}"
# - git remote add gitlab_origin https://${CI_USERNAME}:${CI_ACCESS_TOKEN}@gitlab.knecon.com/redactmanager/red-ui.git
- git push https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.knecon.com/redactmanager/red-ui.git
- cd tools/localazy
- yarn install --cache-folder .yarn-cache
- yarn start
- cd ../..
- git add .
- |-
CHANGES=$(git status --porcelain | wc -l)
if [ "$CHANGES" -gt "0" ]
then
git status
git commit -m "push back localazy update"
git push gitlab_origin HEAD:${CI_COMMIT_REF_NAME} -o ci.skip
fi
only:
- scheduled
CHANGES=$(git status --porcelain | wc -l)
if [ "$CHANGES" -gt "0" ]
then
git status
git commit -m "push back localazy update"
git push gitlab_origin HEAD:${CI_COMMIT_REF_NAME}
# git push https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.knecon.com/redactmanager/red-ui.git
# git push
fi
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"

View File

@ -2,13 +2,12 @@
### To Create a new Stack in rancher check [this Wiki page](https://wiki.iqser.com/pages/viewpage.action?spaceKey=RED&title=Work+with+kubectl)
## Code style
# Dependencies update guide
* When updating @pdftron/webviewer, make sure to change the version also in the angular.json and everywhere where the path to /assets/wv-recources is used
* Make sure the keycloak.js version is the same with the keycloak version from helm chart
* Always use `trackBy` in `*ngFor` loops (see shorthand below)
```typescript
readonly trackBy = trackByFactory();
```
* Don't use `setInterval` without calling `clearInterval` in `ngOnDestroy`
## Code style
* Don't use `setInterval` without calling `clearInterval` in `ngOnDestroy` or in `destroyRef.onDestroy(() => clearInterval(intervalId))`
* Never call getters in HTML templates
## Keycloak Staging Config

133
angular.json Normal file
View File

@ -0,0 +1,133 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"cli": {
"packageManager": "yarn",
"schematicCollections": ["@angular-eslint/schematics"],
"analytics": "2bccdff1-3aff-4f10-b233-211065aa25d9"
},
"newProjectRoot": "projects",
"projects": {
"red-ui": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss",
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
},
"root": "",
"sourceRoot": "apps/red-ui/src",
"prefix": "redaction",
"targets": {
"build": {
"builder": "@angular/build:application",
"options": {
"outputPath": {
"base": "dist/apps/red-ui"
},
"index": "apps/red-ui/src/index.html",
"polyfills": ["apps/red-ui/src/polyfills.ts"],
"tsConfig": "tsconfig.json",
"baseHref": "/ui/",
"assets": [
"apps/red-ui/src/favicon.ico",
{
"glob": "**/*",
"input": "node_modules/@pdftron/webviewer/public/",
"output": "/assets/wv-resources/11.1.0/"
},
{
"glob": "**/*",
"input": "apps/red-ui/src/assets/",
"output": "/assets/"
},
{
"glob": "**/*",
"input": "libs/common-ui/src/assets/",
"output": "/assets/"
},
{
"glob": "**/*",
"input": "node_modules/monaco-editor",
"output": "/assets/monaco-editor/"
},
"apps/red-ui/src/manifest.webmanifest"
],
"styles": ["apps/red-ui/src/styles.scss", "libs/common-ui/src/assets/styles/common-styles.scss"],
"stylePreprocessorOptions": {
"includePaths": ["./apps/red-ui/src/assets/styles", "./libs/common-ui/src/assets/styles"]
},
"scripts": ["node_modules/chart.js/auto/auto.cjs"],
"extractLicenses": false,
"sourceMap": true,
"optimization": false,
"namedChunks": true,
"browser": "apps/red-ui/src/main.ts"
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "apps/red-ui/src/environments/environment.ts",
"with": "apps/red-ui/src/environments/environment.prod.ts"
}
],
"optimization": {
"scripts": true,
"styles": {
"minify": true,
"inlineCritical": false
},
"fonts": true
},
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "20kb"
}
],
"serviceWorker": "ngsw-config.json"
}
}
},
"serve": {
"builder": "@angular/build:dev-server",
"options": {
"buildTarget": "red-ui:build"
},
"configurations": {
"production": {
"buildTarget": "red-ui:build:production"
}
}
}
}
}
}
}

View File

@ -1,22 +0,0 @@
{
"extends": ["../../.eslintrc.json"],
"ignorePatterns": ["!**/*"],
"overrides": [
{
"files": ["**/*.ts"],
"parser": "@typescript-eslint/parser",
"extends": ["plugin:@typescript-eslint/recommended"],
"rules": {
"@typescript-eslint/no-unsafe-return": "off",
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-unsafe-member-access": "off",
"@typescript-eslint/no-unsafe-call": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/unbound-method": "off",
"@typescript-eslint/no-misused-promises": "off",
"@typescript-eslint/no-floating-promises": "off"
}
}
]
}

View File

@ -1,26 +0,0 @@
import type { Config } from 'jest';
import { defaults } from 'jest-config';
export default {
...defaults,
displayName: 'red-ui',
preset: '../../jest.preset.js',
setupFilesAfterEnv: ['jest-preset-angular/setup-jest.js', 'jest-extended/all'],
coverageDirectory: '../../coverage/apps/angular-jest',
transform: {
'^.+\\.(ts|mjs|js|html)$': [
'jest-preset-angular',
{
tsconfig: '../../tsconfig.spec.json',
stringifyContentPathRegex: '\\.(html|svg)$',
},
],
},
testEnvironment: 'jest-environment-jsdom',
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
snapshotSerializers: [
'jest-preset-angular/build/serializers/no-ng-attributes',
'jest-preset-angular/build/serializers/ng-snapshot',
'jest-preset-angular/build/serializers/html-comment',
],
} as Config;

View File

@ -1,132 +0,0 @@
{
"name": "red-ui",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"projectType": "application",
"generators": {
"@schematics/angular:component": {
"style": "scss",
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
},
"sourceRoot": "apps/red-ui/src",
"prefix": "redaction",
"targets": {
"build": {
"executor": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/apps/red-ui",
"index": "apps/red-ui/src/index.html",
"main": "apps/red-ui/src/main.ts",
"polyfills": "apps/red-ui/src/polyfills.ts",
"tsConfig": "apps/red-ui/tsconfig.json",
"baseHref": "/ui/",
"assets": [
"apps/red-ui/src/favicon.ico",
{
"glob": "**/*",
"input": "node_modules/@pdftron/webviewer/public/",
"output": "/assets/wv-resources/10.9.0"
},
{
"glob": "**/*",
"input": "apps/red-ui/src/assets/",
"output": "/assets/"
},
{
"glob": "**/*",
"input": "libs/common-ui/src/assets/",
"output": "/assets/"
},
{
"glob": "**/*",
"input": "node_modules/monaco-editor",
"output": "/assets/monaco-editor/"
},
"apps/red-ui/src/manifest.webmanifest"
],
"styles": ["apps/red-ui/src/styles.scss", "libs/common-ui/src/assets/styles/common-styles.scss"],
"stylePreprocessorOptions": {
"includePaths": ["./apps/red-ui/src/assets/styles", "./libs/common-ui/src/assets/styles"]
},
"scripts": ["node_modules/@pdftron/webviewer/webviewer.min.js", "node_modules/chart.js/dist/chart.js"],
"vendorChunk": true,
"extractLicenses": false,
"buildOptimizer": false,
"sourceMap": false,
"optimization": false,
"namedChunks": true
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "apps/red-ui/src/environments/environment.ts",
"with": "apps/red-ui/src/environments/environment.prod.ts"
}
],
"optimization": {
"scripts": true,
"styles": {
"minify": true,
"inlineCritical": false
},
"fonts": true
},
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "20kb"
}
],
"serviceWorker": true,
"ngswConfigPath": "apps/red-ui/ngsw-config.json"
}
},
"outputs": ["{options.outputPath}"]
},
"serve": {
"executor": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "red-ui:build"
},
"configurations": {
"production": {
"browserTarget": "red-ui:build:production"
}
}
},
"extract-i18n": {
"executor": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "red-ui:build"
}
}
}
}

View File

@ -1,6 +1,6 @@
import { NgModule } from '@angular/core';
import { RouteReuseStrategy, RouterModule } from '@angular/router';
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
import { ifNotLoggedIn } from '@common-ui/tenants/guards/if-not-logged-in.guard';
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
import { DownloadsListScreenComponent } from '@components/downloads-list-screen/downloads-list-screen.component';
import { DashboardGuard } from '@guards/dashboard-guard.service';
@ -8,21 +8,21 @@ import { DossierFilesGuard } from '@guards/dossier-files-guard';
import { templateExistsWhenEnteringDossierList } from '@guards/dossier-template-exists.guard';
import { DossierTemplatesGuard } from '@guards/dossier-templates.guard';
import { loadActiveDossiersGuard, loadAllDossiersGuard, loadArchivedDossiersGuard } from '@guards/dossiers.guard';
import { editAttributeGuard } from '@guards/edit-attribute.guard';
import { isNotEditingFileAttributeGuard } from '@guards/file-attribute.guard';
import { FeaturesGuard } from '@guards/features-guard.service';
import { ifLoggedIn } from '@guards/if-logged-in.guard';
import { ifNotLoggedIn } from '@guards/if-not-logged-in.guard';
import { TrashGuard } from '@guards/trash.guard';
import { CompositeRouteGuard, DEFAULT_REDIRECT_KEY, IqserPermissionsGuard, IqserRoutes, orderedAsyncGuards } from '@iqser/common-ui';
import { TenantSelectComponent } from '@iqser/common-ui/lib/tenants';
import { doesNotHaveAnyRole, hasAnyRole, IqserAuthGuard } from '@iqser/common-ui/lib/users';
import { CustomRouteReuseStrategy } from '@iqser/common-ui/lib/utils';
import { ARCHIVE_ROUTE, BreadcrumbTypes, DOSSIER_ID, DOSSIER_TEMPLATE_ID, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE, FILE_ID } from '@red/domain';
import { ARCHIVE_ROUTE, BreadcrumbTypes, DOSSIER_ID, DOSSIER_TEMPLATE_ID, DOSSIERS_ROUTE, FILE_ID } from '@red/domain';
import { RedRoleGuard } from '@users/red-role.guard';
import { Roles } from '@users/roles';
import { mainGuard } from '@utils/main.guard';
import { webViewerLoadedGuard } from './modules/pdf-viewer/services/webviewer-loaded.guard';
import { ACTIVE_DOSSIERS_SERVICE } from './tokens';
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
const dossierTemplateIdRoutes: IqserRoutes = [
{
@ -38,7 +38,7 @@ const dossierTemplateIdRoutes: IqserRoutes = [
{
path: `:${DOSSIER_ID}`,
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
canDeactivate: [editAttributeGuard],
canDeactivate: [isNotEditingFileAttributeGuard],
data: {
routeGuards: [DossierFilesGuard],
breadcrumbs: [BreadcrumbTypes.dossierTemplate, BreadcrumbTypes.dossier],
@ -49,7 +49,7 @@ const dossierTemplateIdRoutes: IqserRoutes = [
},
skeleton: 'dossier',
},
loadChildren: () => import('./modules/dossier-overview/dossier-overview.module').then(m => m.DossierOverviewModule),
loadChildren: () => import('./modules/dossier-overview/dossier-overview.routes'),
},
{
path: `:${DOSSIER_ID}/file/:${FILE_ID}`,
@ -63,12 +63,12 @@ const dossierTemplateIdRoutes: IqserRoutes = [
redirectTo: '/auth-error',
},
},
loadChildren: () => import('./modules/file-preview/file-preview.module').then(m => m.FilePreviewModule),
loadChildren: () => import('./modules/file-preview/file-preview.routes'),
},
{
path: '',
pathMatch: 'full',
loadChildren: () => import('./modules/dossiers-listing/dossiers-listing.module').then(m => m.DossiersListingModule),
loadChildren: () => import('./modules/dossiers-listing/dossiers-listing.routes'),
data: {
breadcrumbs: [BreadcrumbTypes.dossierTemplate],
},
@ -77,11 +77,10 @@ const dossierTemplateIdRoutes: IqserRoutes = [
},
{
path: `${ARCHIVE_ROUTE}`,
loadChildren: () => import('./modules/archive/archive.module').then(m => m.ArchiveModule),
canActivate: [CompositeRouteGuard, webViewerLoadedGuard(), loadArchivedDossiersGuard()],
loadChildren: () => import('./modules/archive/archive.routes'),
canActivate: [CompositeRouteGuard, loadArchivedDossiersGuard()],
data: {
routeGuards: [FeaturesGuard],
features: [DOSSIERS_ARCHIVE],
},
},
{
@ -99,16 +98,16 @@ const mainRoutes: IqserRoutes = [
},
{
path: 'account',
loadChildren: () => import('./modules/account/account.module').then(m => m.AccountModule),
loadChildren: () => import('./modules/account/account.routes'),
},
{
path: 'admin',
loadChildren: () => import('./modules/admin/admin.module').then(m => m.AdminModule),
loadChildren: () => import('./modules/admin/admin.routes'),
canActivate: [RedRoleGuard],
},
{
path: 'dashboard',
loadChildren: () => import('./modules/dashboard/dashboard.module').then(m => m.DashboardModule),
loadChildren: () => import('./modules/dashboard/dashboard.routes'),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard, IqserPermissionsGuard, DossierTemplatesGuard, DashboardGuard],
@ -147,7 +146,7 @@ const mainRoutes: IqserRoutes = [
},
{
path: 'search',
loadChildren: () => import('./modules/search/search.module').then(m => m.SearchModule),
loadComponent: () => import('./modules/search/search-screen/search-screen.component'),
canActivate: [CompositeRouteGuard, IqserPermissionsGuard, loadAllDossiersGuard()],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
@ -159,7 +158,7 @@ const mainRoutes: IqserRoutes = [
},
{
path: 'trash',
loadChildren: () => import('./modules/trash/trash.module').then(m => m.TrashModule),
loadChildren: () => import('./modules/trash/trash.routes'),
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard, TrashGuard],
@ -205,18 +204,13 @@ const routes: IqserRoutes = [
component: TenantSelectComponent,
},
{
path: ':tenant',
redirectTo: ':tenant/main',
pathMatch: 'full',
},
{
path: ':tenant/main',
path: 'main',
canActivate: [orderedAsyncGuards([ifLoggedIn(), hasAnyRole(), mainGuard()])],
component: BaseScreenComponent,
children: mainRoutes,
},
{
path: ':tenant/auth-error',
path: 'auth-error',
component: AuthErrorComponent,
canActivate: [doesNotHaveAnyRole()],
},
@ -228,7 +222,13 @@ const routes: IqserRoutes = [
];
@NgModule({
imports: [RouterModule.forRoot(routes, { scrollPositionRestoration: 'enabled', bindToComponentInputs: true })],
imports: [
RouterModule.forRoot(routes, {
scrollPositionRestoration: 'enabled',
bindToComponentInputs: true,
paramsInheritanceStrategy: 'always',
}),
],
providers: [{ provide: RouteReuseStrategy, useExisting: CustomRouteReuseStrategy }],
exports: [RouterModule],
})

View File

@ -4,26 +4,27 @@ import { UserPreferenceService } from '@users/user-preference.service';
import { getConfig } from '@iqser/common-ui';
import { AppConfig } from '@red/domain';
import { NavigationEnd, Router } from '@angular/router';
import { filter, map, switchMap, take } from 'rxjs/operators';
import { filter, map, switchMap, take, tap } from 'rxjs/operators';
import { APP_TYPE_PATHS } from '@common-ui/utils/constants';
import { MatIconRegistry } from '@angular/material/icon';
import { DomSanitizer } from '@angular/platform-browser';
import { TenantsService } from '@common-ui/tenants';
function loadCustomTheme() {
const cssFileName = getConfig<AppConfig>().THEME;
if (cssFileName) {
const head = document.getElementsByTagName('head')[0];
const link = document.createElement('link');
link.id = cssFileName;
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'assets/styles/themes/' + cssFileName + '.css';
link.media = 'all';
head.appendChild(link);
}
export function loadCustomTheme(cssFileName: string) {
const head = document.getElementsByTagName('head')[0];
const link = document.createElement('link');
link.id = cssFileName;
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'assets/styles/themes/' + cssFileName + '.css';
link.media = 'all';
head.appendChild(link);
}
@Component({
selector: 'redaction-root',
templateUrl: './app.component.html',
standalone: false,
})
export class AppComponent {
constructor(
@ -34,9 +35,12 @@ export class AppComponent {
userPreferenceService: UserPreferenceService,
renderer: Renderer2,
private readonly _router: Router,
private readonly _iconRegistry: MatIconRegistry,
private readonly _sanitizer: DomSanitizer,
private readonly _tenantsService: TenantsService,
) {
const config = getConfig<AppConfig>();
renderer.addClass(document.body, userPreferenceService.getTheme());
loadCustomTheme();
const removeQueryParams = _router.events.pipe(
filter((event): event is NavigationEnd => event instanceof NavigationEnd),
@ -47,9 +51,25 @@ export class AppComponent {
);
removeQueryParams.subscribe();
if (getConfig().IS_DOCUMINE) {
document.getElementById('favicon').setAttribute('href', 'assets/icons/documine-logo.ico');
}
this._tenantsService
.waitForSettingTenant()
.pipe(
tap(() => {
const isDocumine = this._tenantsService.activeTenant.documine;
const logo = isDocumine ? 'documine' : 'redaction';
_iconRegistry.addSvgIconInNamespace(
'iqser',
'logo',
_sanitizer.bypassSecurityTrustResourceUrl(`/assets/icons/general/${logo}-logo.svg`),
);
if (isDocumine) {
document.getElementById('favicon').setAttribute('href', 'assets/icons/documine-logo.ico');
}
loadCustomTheme(isDocumine ? APP_TYPE_PATHS.SCM : APP_TYPE_PATHS.REDACT);
}),
take(1),
)
.subscribe();
}
#removeKeycloakQueryParams() {

View File

@ -1,11 +1,20 @@
import { DatePipe as BaseDatePipe } from '@angular/common';
import { APP_BASE_HREF, DatePipe as BaseDatePipe } from '@angular/common';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { ENVIRONMENT_INITIALIZER, ErrorHandler, inject, NgModule } from '@angular/core';
import { ErrorHandler, inject, NgModule, provideEnvironmentInitializer } from '@angular/core';
import { MatDividerModule } from '@angular/material/divider';
import { MAT_TOOLTIP_DEFAULT_OPTIONS } from '@angular/material/tooltip';
import { MatIcon } from '@angular/material/icon';
import { MatMenu, MatMenuContent, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
import { MatProgressSpinner } from '@angular/material/progress-spinner';
import { MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltip } from '@angular/material/tooltip';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { ServiceWorkerModule } from '@angular/service-worker';
import { ChevronButtonComponent } from '@common-ui/buttons/chevron-button';
import { EmptyStateComponent } from '@common-ui/empty-state';
import { HelpModeKey } from '@common-ui/help-mode/types';
import { InputWithActionComponent } from '@common-ui/inputs/input-with-action/input-with-action.component';
import { RoundCheckboxComponent } from '@common-ui/inputs/round-checkbox/round-checkbox.component';
import { GET_TENANT_FROM_PATH_FN, UI_ROOT } from '@common-ui/utils';
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
import { BreadcrumbsComponent } from '@components/breadcrumbs/breadcrumbs.component';
@ -21,51 +30,49 @@ import { UserMenuComponent } from '@components/user-menu/user-menu.component';
import { environment } from '@environments/environment';
import {
CachingModule,
ChevronButtonComponent,
CircleButtonComponent,
EmptyStateComponent,
HelpModeKey,
HelpButtonComponent,
HelpModeComponent,
HiddenActionDirective,
IconButtonComponent,
InputWithActionComponent,
IqserAllowDirective,
IqserDenyDirective,
IqserHelpModeModule,
IqserListingModule,
IqserLoadingModule,
IqserTranslateModule,
LanguageService,
MAX_RETRIES_ON_SERVER_ERROR,
RoundCheckboxComponent,
SERVER_ERROR_SKIP_PATHS,
ServerErrorInterceptor,
StopPropagationDirective,
} from '@iqser/common-ui';
import { CommonUiModule } from '@iqser/common-ui/lib/common-ui.module';
import { provideHelpMode } from '@iqser/common-ui/lib/help-mode/utils/help-mode.provider';
import { LogoComponent, SkeletonComponent, ToastComponent } from '@iqser/common-ui/lib/shared';
import { TenantPipe, TenantsModule } from '@iqser/common-ui/lib/tenants';
import { IqserUsersModule } from '@iqser/common-ui/lib/users';
import { TenantsModule } from '@iqser/common-ui/lib/tenants';
import { InitialsAvatarComponent, IqserUsersModule } from '@iqser/common-ui/lib/users';
import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';
import { MissingTranslationHandler } from '@ngx-translate/core';
import { TranslateModule } from '@ngx-translate/core';
import { AppConfig, ILoggerConfig } from '@red/domain';
import { ConfigService } from '@services/config.service';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.service';
import { GlobalErrorHandler } from '@services/global-error-handler.service';
import { LoggerRulesService } from '@services/logger-rules.service';
import { provideCustomDateFormatter } from '@shared/custom-date-formatting.provider';
import { NavigateLastDossiersScreenDirective } from '@shared/directives/navigate-last-dossiers-screen.directive';
import { DatePipe } from '@shared/pipes/date.pipe';
import { SharedModule } from '@shared/shared.module';
import { FileUploadDownloadModule } from '@upload-download/file-upload-download.module';
import { RedRoleGuard } from '@users/red-role.guard';
import { UserPreferenceService } from '@users/user-preference.service';
import { UserService } from '@users/user.service';
import { UI_CACHES } from '@utils/constants';
import { REDMissingTranslationHandler } from '@utils/missing-translations-handler';
import { LoggerModule, NgxLoggerLevel, TOKEN_LOGGER_CONFIG, TOKEN_LOGGER_RULES_SERVICE } from 'ngx-logger';
import { ColorPickerService } from 'ngx-color-picker';
import { LoggerModule, NGXLogger, NgxLoggerLevel, TOKEN_LOGGER_CONFIG, TOKEN_LOGGER_RULES_SERVICE } from 'ngx-logger';
import { ToastrModule } from 'ngx-toastr';
import * as helpModeKeys from '../assets/help-mode/help-mode-keys.json';
import helpModeKeys from '../assets/help-mode/help-mode-keys.json';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { IconsModule } from './modules/icons/icons.module';
import { PdfViewerModule } from './modules/pdf-viewer/pdf-viewer.module';
import { ACTIVE_DOSSIERS_SERVICE, ARCHIVED_DOSSIERS_SERVICE } from './tokens';
@ -89,8 +96,6 @@ export const appModuleFactory = (config: AppConfig) => {
imports: [
BrowserModule,
BrowserAnimationsModule,
SharedModule,
FileUploadDownloadModule,
AppRoutingModule,
MonacoEditorModule,
CommonUiModule.forRoot({
@ -103,7 +108,6 @@ export const appModuleFactory = (config: AppConfig) => {
existingRoleGuard: RedRoleGuard,
}),
CachingModule.forRoot(UI_CACHES),
IqserHelpModeModule.forRoot(helpModeKeys as HelpModeKey[]),
PdfViewerModule,
ToastrModule.forRoot({
closeButton: true,
@ -113,7 +117,7 @@ export const appModuleFactory = (config: AppConfig) => {
resetTimeoutOnDuplicate: true,
}),
TenantsModule.forRoot(),
IqserTranslateModule.forRoot({ pathPrefix: config.BASE_TRANSLATIONS_DIRECTORY || '/assets/i18n/redact/' }),
IqserTranslateModule.forRoot({ pathPrefix: config.BASE_TRANSLATIONS_DIRECTORY }),
IqserLoadingModule.forRoot(),
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),
LoggerModule.forRoot(undefined, {
@ -131,7 +135,7 @@ export const appModuleFactory = (config: AppConfig) => {
features: {
ANNOTATIONS: {
color: 'aqua',
enabled: true,
enabled: false,
level: NgxLoggerLevel.DEBUG,
},
FILTERS: {
@ -141,10 +145,10 @@ export const appModuleFactory = (config: AppConfig) => {
enabled: false,
},
ROUTES: {
enabled: true,
enabled: false,
},
PDF: {
enabled: true,
enabled: false,
},
FILE: {
enabled: false,
@ -156,7 +160,7 @@ export const appModuleFactory = (config: AppConfig) => {
enabled: false,
},
REDACTION_LOG: {
enabled: false,
enabled: true,
},
VIEWED_PAGES: {
enabled: false,
@ -167,6 +171,9 @@ export const appModuleFactory = (config: AppConfig) => {
DOSSIERS_CHANGES: {
enabled: false,
},
GUARDS: {
enabled: false,
},
},
} as ILoggerConfig,
},
@ -183,11 +190,40 @@ export const appModuleFactory = (config: AppConfig) => {
IqserDenyDirective,
IqserListingModule,
IconButtonComponent,
TenantPipe,
MatDividerModule,
ChevronButtonComponent,
InitialsAvatarComponent,
HelpModeComponent,
HelpButtonComponent,
MatMenuTrigger,
MatMenuItem,
MatIcon,
MatMenu,
MatMenuContent,
MatTooltip,
MatProgressSpinner,
IconsModule,
NavigateLastDossiersScreenDirective,
DatePipe,
TranslateModule,
],
providers: [
{
provide: UI_ROOT,
useValue: '/ui',
},
{
provide: APP_BASE_HREF,
useFactory: () => {
const uiRoot = inject(UI_ROOT);
const tenant = inject(GET_TENANT_FROM_PATH_FN)();
console.log(tenant);
const appBaseHref = uiRoot + '/' + tenant;
inject(NGXLogger).info('Provide APP_BASE_HREF:', appBaseHref);
return appBaseHref;
},
},
{
provide: HTTP_INTERCEPTORS,
multi: true,
@ -197,18 +233,10 @@ export const appModuleFactory = (config: AppConfig) => {
provide: ErrorHandler,
useClass: GlobalErrorHandler,
},
{
provide: ENVIRONMENT_INITIALIZER,
multi: true,
useValue: async () => {
const languageService = inject(LanguageService);
return languageService.setInitialLanguage();
},
},
{
provide: MissingTranslationHandler,
useClass: REDMissingTranslationHandler,
},
provideEnvironmentInitializer(async () => {
const languageService = inject(LanguageService);
return languageService.setInitialLanguage();
}),
{
provide: MAX_RETRIES_ON_SERVER_ERROR,
useFactory: () => config.MAX_RETRIES_ON_SERVER_ERROR,
@ -229,10 +257,14 @@ export const appModuleFactory = (config: AppConfig) => {
provide: MAT_TOOLTIP_DEFAULT_OPTIONS,
useValue: {
disableTooltipInteractivity: true,
showDelay: 1,
},
},
BaseDatePipe,
DatePipe,
...provideCustomDateFormatter(),
...provideHelpMode(helpModeKeys as HelpModeKey[]),
ColorPickerService,
],
bootstrap: [AppComponent],
})

View File

@ -2,17 +2,17 @@
<p *ngIf="!adminName && !adminUrl" class="heading-xl" translate="auth-error.heading"></p>
<p
*ngIf="adminName && adminUrl"
[innerHTML]="'auth-error.heading-with-name-and-link' | translate : { adminName: adminName, adminUrl: adminUrl }"
[innerHTML]="'auth-error.heading-with-name-and-link' | translate: { adminName: adminName, adminUrl: adminUrl }"
class="heading-xl"
></p>
<p
*ngIf="adminName && !adminUrl"
[innerHTML]="'auth-error.heading-with-name' | translate : { adminName: adminName }"
[innerHTML]="'auth-error.heading-with-name' | translate: { adminName: adminName }"
class="heading-xl"
></p>
<p
*ngIf="!adminName && adminUrl"
[innerHTML]="'auth-error.heading-with-link' | translate : { adminName: adminName }"
[innerHTML]="'auth-error.heading-with-link' | translate: { adminName: adminName }"
class="heading-xl"
></p>
<a (click)="userService.logout()" translate="auth-error.logout"></a>

View File

@ -7,6 +7,7 @@ import { AppConfig } from '@red/domain';
selector: 'redaction-auth-error',
templateUrl: './auth-error.component.html',
styleUrls: ['./auth-error.component.scss'],
standalone: false,
})
export class AuthErrorComponent {
readonly #config = getConfig<AppConfig>();

View File

@ -9,7 +9,7 @@
<redaction-breadcrumbs></redaction-breadcrumbs>
</div>
<a [matTooltip]="'top-bar.navigation-items.back-to-dashboard' | translate" [routerLink]="['/'] | tenant" class="logo">
<a [matTooltip]="'top-bar.navigation-items.back-to-dashboard' | translate" [routerLink]="['/main']" class="logo">
<div [attr.help-mode-key]="'home'" class="actions">
<iqser-logo (iqserHiddenAction)="userPreferenceService.toggleDevFeatures()" icon="iqser:logo"></iqser-logo>
<div class="app-name">{{ titleService.getTitle() }}</div>
@ -25,7 +25,7 @@
[placeholder]="'search.placeholder' | translate"
></redaction-spotlight-search>
<iqser-help-button [attr.help-mode-key]="'help_mode'" id="help-mode-button"></iqser-help-button>
<iqser-help-button [dialogButton]="false"></iqser-help-button>
<redaction-notifications
*ngIf="currentUser.isUser || currentUser.isManager"

View File

@ -8,13 +8,11 @@ import { SpotlightSearchAction } from '@components/spotlight-search/spotlight-se
import { filter, map, startWith } from 'rxjs/operators';
import { getConfig, IqserPermissionsService } from '@iqser/common-ui';
import { BreadcrumbsService } from '@services/breadcrumbs.service';
import { FeaturesService } from '@services/features.service';
import { ARCHIVE_ROUTE, DOSSIERS_ARCHIVE, DOSSIERS_ROUTE } from '@red/domain';
import { ARCHIVE_ROUTE, DOSSIERS_ROUTE } from '@red/domain';
import { Roles } from '@users/roles';
import { REDDocumentViewer } from '../../modules/pdf-viewer/services/document-viewer.service';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { List, shareDistinctLast } from '@iqser/common-ui/lib/utils';
import { TenantsService } from '@iqser/common-ui/lib/tenants';
const isNavigationStart = (event: unknown): event is NavigationStart => event instanceof NavigationStart;
const isSearchScreen: (url: string) => boolean = url => url.includes('/search');
@ -22,14 +20,9 @@ const isSearchScreen: (url: string) => boolean = url => url.includes('/search');
@Component({
templateUrl: './base-screen.component.html',
styleUrls: ['./base-screen.component.scss'],
standalone: false,
})
export class BaseScreenComponent {
readonly #navigationStart$ = this._router.events.pipe(
filter(isNavigationStart),
map(event => event.url),
startWith(this._router.url),
shareDistinctLast(),
);
readonly roles = Roles;
readonly documentViewer = inject(REDDocumentViewer);
readonly currentUser = this.userService.currentUser;
@ -43,7 +36,6 @@ export class BaseScreenComponent {
{
text: this._translateService.instant('search.active-dossiers'),
icon: 'red:enter',
hide: () => !this._featuresService.isEnabled(DOSSIERS_ARCHIVE),
action: (query): void => this.#search(query, [], true),
},
{
@ -52,15 +44,19 @@ export class BaseScreenComponent {
action: (query): void => this.#search(query, []),
},
];
readonly isSearchScreen$ = this.#navigationStart$.pipe(map(isSearchScreen));
readonly config = getConfig();
readonly #navigationStart$ = this._router.events.pipe(
filter(isNavigationStart),
map(event => event.url),
startWith(this._router.url),
shareDistinctLast(),
);
readonly isSearchScreen$ = this.#navigationStart$.pipe(map(isSearchScreen));
constructor(
private readonly _router: Router,
activatedRoute: ActivatedRoute,
private readonly _translateService: TranslateService,
private readonly _featuresService: FeaturesService,
protected readonly _tenantsService: TenantsService,
readonly permissionsService: IqserPermissionsService,
readonly userService: UserService,
readonly userPreferenceService: UserPreferenceService,
@ -94,7 +90,7 @@ export class BaseScreenComponent {
#search(query: string, dossierIds: string[], onlyActive = false) {
const queryParams = { query, dossierIds: dossierIds.join(','), onlyActive };
this._router.navigate([`/${this._tenantsService.activeTenantId}/main/search`], { queryParams }).then();
this._router.navigate(['/main/search'], { queryParams }).then();
}
#searchThisDossier(query: string) {

View File

@ -14,7 +14,7 @@
[id]="first ? 'navigateToActiveDossiers' : ''"
[matTooltip]="breadcrumb.options.clamp && (breadcrumb.name$ | async)"
[routerLinkActiveOptions]="breadcrumb.options.routerLinkActiveOptions || { exact: false }"
[routerLink]="breadcrumb.options.routerLink | tenant"
[routerLink]="breadcrumb.options.routerLink"
class="breadcrumb"
routerLinkActive="active"
>
@ -32,7 +32,7 @@
<div id="breadcrumbs-menu-items">
<a
*ngFor="let option of breadcrumb.options.options"
[routerLink]="option.options.routerLink | tenant"
[routerLink]="option.options.routerLink"
mat-menu-item
routerLinkActive="active"
>

View File

@ -7,6 +7,7 @@ import { Breadcrumb, BreadcrumbDisplayType, BreadcrumbsService } from '@services
selector: 'redaction-breadcrumbs',
templateUrl: './breadcrumbs.component.html',
styleUrls: ['./breadcrumbs.component.scss'],
standalone: false,
})
export class BreadcrumbsComponent {
constructor(readonly breadcrumbsService: BreadcrumbsService) {}

View File

@ -13,6 +13,7 @@ import { firstValueFrom } from 'rxjs';
entitiesService: FileDownloadService,
component: DownloadsListScreenComponent,
}),
standalone: false,
})
export class DownloadsListScreenComponent extends ListingComponent<DownloadStatus> implements OnDestroy {
readonly #interval: number;

View File

@ -32,19 +32,18 @@
</div>
<div
(click)="markRead([notification], true)"
(click)="handleMarkReadEvent($event, [notification], true)"
*ngFor="let notification of group.notifications; trackBy: trackBy"
[class.unread]="!notification.readDate"
[id]="'notifications-mark-as-read-' + notification.id + '-btn'"
class="notification"
iqserStopPropagation
mat-menu-item
>
<iqser-initials-avatar [user]="notification.userId"></iqser-initials-avatar>
<div class="notification-content">
<div [innerHTML]="notification.message"></div>
<div class="small-label mt-2">{{ notification.creationDate | date : 'exactDate' }}</div>
<div class="small-label mt-2">{{ notification.creationDate | date: 'exactDate' }}</div>
</div>
<div
@ -52,7 +51,7 @@
[id]="'notifications-mark-' + notification.id"
class="dot"
iqserStopPropagation
matTooltip="{{ 'notifications.mark-as' | translate : { type: notification.readDate ? 'unread' : 'read' } }}"
matTooltip="{{ 'notifications.mark-as' | translate: { type: notification.readDate ? 'unread' : 'read' } }}"
matTooltipPosition="before"
></div>
</div>

View File

@ -22,7 +22,7 @@
}
.mat-mdc-menu-item.notification {
padding: 8px 26px 10px 8px;
padding: 8px 26px 10px 8px !important;
margin: 2px 0 0 0;
height: fit-content;
position: relative;

View File

@ -25,6 +25,7 @@ function chronologically(first: string, second: string) {
selector: 'redaction-notifications',
templateUrl: './notifications.component.html',
styleUrls: ['./notifications.component.scss'],
standalone: false,
})
export class NotificationsComponent {
readonly hasUnreadNotifications$: Observable<boolean>;
@ -58,6 +59,15 @@ export class NotificationsComponent {
await this._notificationsService.toggleNotificationRead(notificationsIds, isRead);
}
async handleMarkReadEvent(event: MouseEvent, notifications: Notification[] = this._notificationsService.all, isRead = true) {
if (!(event.target as HTMLBaseElement).href) {
event.stopPropagation();
event.preventDefault();
}
await this.markRead(notifications, isRead);
}
#groupNotifications(notifications: Notification[]): NotificationsGroup[] {
const todayTranslation = this._translateService.instant('today');
const groupedMap = notifications.groupBy(n => {

View File

@ -9,7 +9,7 @@
.container {
padding: 32px;
width: 900px;
width: 1000px;
max-width: 100%;
box-sizing: border-box;
}

View File

@ -5,5 +5,6 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
templateUrl: './dashboard-skeleton.component.html',
styleUrls: ['./dashboard-skeleton.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false,
})
export class DashboardSkeletonComponent {}

View File

@ -5,6 +5,7 @@ import { ChangeDetectionStrategy, Component, OnInit, TemplateRef, ViewChild } fr
templateUrl: './dossier-skeleton.component.html',
styleUrls: ['./dossier-skeleton.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false,
})
export class DossierSkeletonComponent implements OnInit {
@ViewChild('workload1', { static: true }) workload1: TemplateRef<unknown>;

View File

@ -5,5 +5,6 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
templateUrl: './skeleton-stats.component.html',
styleUrls: ['./skeleton-stats.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false,
})
export class SkeletonStatsComponent {}

View File

@ -6,6 +6,7 @@ import { Title } from '@angular/platform-browser';
templateUrl: './skeleton-top-bar.component.html',
styleUrls: ['./skeleton-top-bar.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false,
})
export class SkeletonTopBarComponent {
constructor(readonly titleService: Title) {}

View File

@ -9,6 +9,7 @@ import { MatMenuTrigger } from '@angular/material/menu';
templateUrl: './spotlight-search.component.html',
styleUrls: ['./spotlight-search.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false,
})
export class SpotlightSearchComponent {
@Input() actions: readonly SpotlightSearchAction[];

View File

@ -9,6 +9,7 @@ interface ITenant extends IStoredTenantId {
selector: 'app-tenants-menu',
templateUrl: './tenants-menu.component.html',
styleUrls: ['./tenants-menu.component.scss'],
standalone: false,
})
export class TenantsMenuComponent {
readonly tenantsService = inject(TenantsService);

View File

@ -1,6 +1,6 @@
<div id="user-menu-items">
<ng-container *ngFor="let item of userMenuItems; trackBy: trackBy">
<a (click)="item.action?.()" *ngIf="item.show" [id]="item.id" [routerLink]="item.routerLink | tenant" mat-menu-item>
<a (click)="item.action?.()" *ngIf="item.show" [id]="item.id" [routerLink]="item.routerLink" mat-menu-item>
{{ item.name | translate }}
</a>
</ng-container>

View File

@ -6,7 +6,6 @@ import { User } from '@red/domain';
import { UserService } from '@users/user.service';
import { getCurrentUser } from '@iqser/common-ui/lib/users';
import { List } from '@iqser/common-ui/lib/utils';
import { TenantsService } from '@iqser/common-ui/lib/tenants';
interface MenuItem {
readonly id: string;
@ -21,12 +20,12 @@ interface MenuItem {
selector: 'app-user-menu',
templateUrl: './user-menu.component.html',
styleUrls: ['./user-menu.component.scss'],
standalone: false,
})
export class UserMenuComponent {
readonly #permissionsService = inject(IqserPermissionsService);
readonly currentUser = getCurrentUser<User>();
readonly tenantsService = inject(TenantsService);
readonly userService = inject(UserService);
readonly #permissionsService = inject(IqserPermissionsService);
readonly userMenuItems: List<MenuItem> = [
{
id: 'account',

View File

@ -1,8 +1,9 @@
import { Injectable } from '@angular/core';
import { CanActivate } from '@angular/router';
import { firstValueFrom } from 'rxjs';
import { DashboardStatsService } from '@services/dossier-templates/dashboard-stats.service';
import { firstValueFrom } from 'rxjs';
// TODO: Remove this and use a CanActivateFn instead
@Injectable({ providedIn: 'root' })
export class DashboardGuard implements CanActivate {
constructor(private readonly _dashboardStatsService: DashboardStatsService) {}

View File

@ -1,7 +1,6 @@
import { Injectable, Injector, ProviderToken } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';
import { getConfig } from '@iqser/common-ui';
import { TenantsService } from '@iqser/common-ui/lib/tenants';
import { DOSSIER_ID, DOSSIER_TEMPLATE_ID } from '@red/domain';
import { DossiersService } from '@services/dossiers/dossiers.service';
import { DictionaryService } from '@services/entity-services/dictionary.service';
@ -16,7 +15,6 @@ export class DossierFilesGuard implements CanActivate {
constructor(
private readonly _injector: Injector,
private readonly _tenantsService: TenantsService,
private readonly _filesMapService: FilesMapService,
private readonly _filesService: FilesService,
private readonly _dictionaryService: DictionaryService,
@ -37,7 +35,7 @@ export class DossierFilesGuard implements CanActivate {
}
if (!dossiersService.has(dossierId)) {
await this._router.navigate([`/${this._tenantsService.activeTenantId}/main`, dossierTemplateId]);
await this._router.navigate(['/main', dossierTemplateId]);
return false;
}
@ -49,7 +47,7 @@ export class DossierFilesGuard implements CanActivate {
const promises = [];
if (!this._dictionaryMapService.has(dossierId) && !this.isDocumine) {
const dictionaryPromise = this._dictionaryService.loadDossierDictionary(dossierTemplateId, dossierId);
const dictionaryPromise = firstValueFrom(this._dictionaryService.loadDictionaryDataForDossier(dossierTemplateId, dossierId));
promises.push(dictionaryPromise);
}

View File

@ -1,6 +1,5 @@
import { inject } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivateFn, Router } from '@angular/router';
import { TenantsService } from '@iqser/common-ui/lib/tenants';
import { DOSSIER_TEMPLATE_ID } from '@red/domain';
import { DashboardStatsService } from '@services/dossier-templates/dashboard-stats.service';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
@ -8,14 +7,35 @@ import { DossierTemplateStatsService } from '@services/entity-services/dossier-t
import { NGXLogger } from 'ngx-logger';
import { firstValueFrom } from 'rxjs';
import { UserPreferenceService } from '@users/user-preference.service';
import { DictionaryService } from '@services/entity-services/dictionary.service';
import { DefaultColorsService } from '@services/entity-services/default-colors.service';
import { WatermarkService } from '@services/entity-services/watermark.service';
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
import { getConfig, Toaster } from '@iqser/common-ui';
import { RulesService } from '../modules/admin/services/rules.service';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
export function templateExistsWhenEnteringAdmin(): CanActivateFn {
return async function (route: ActivatedRouteSnapshot): Promise<boolean> {
const dossierTemplateId: string = route.paramMap.get(DOSSIER_TEMPLATE_ID);
const fileAttributesService = inject(FileAttributesService);
const dictionaryService = inject(DictionaryService);
const defaultColorsService = inject(DefaultColorsService);
const watermarksService = inject(WatermarkService);
const router = inject(Router);
const rulesService = inject(RulesService);
const isDocumine = getConfig().IS_DOCUMINE;
const dossierTemplate = inject(DossierTemplateStatsService).get(dossierTemplateId);
await firstValueFrom(fileAttributesService.loadFileAttributesConfig(dossierTemplateId));
await firstValueFrom(dictionaryService.loadDictionaryDataForDossierTemplate(dossierTemplateId));
await firstValueFrom(defaultColorsService.loadForDossierTemplate(dossierTemplateId));
await firstValueFrom(rulesService.getFor(dossierTemplateId));
if (!isDocumine) {
await firstValueFrom(watermarksService.loadForDossierTemplate(dossierTemplateId));
}
if (!dossierTemplate) {
await inject(Router).navigate([inject(TenantsService).activeTenantId, 'main', 'admin', 'dossier-templates']);
await router.navigate(['main', 'admin', 'dossier-templates']);
return false;
}
return true;
@ -29,18 +49,34 @@ export function templateExistsWhenEnteringDossierList(): CanActivateFn {
const dossierTemplatesService = inject(DossierTemplatesService);
const logger = inject(NGXLogger);
const router = inject(Router);
const tenantsService = inject(TenantsService);
const userPreferencesService = inject(UserPreferenceService);
const fileAttributesService = inject(FileAttributesService);
const dictionaryService = inject(DictionaryService);
const defaultColorsService = inject(DefaultColorsService);
const watermarksService = inject(WatermarkService);
const rulesService = inject(RulesService);
const toaster = inject(Toaster);
const isDocumine = getConfig().IS_DOCUMINE;
await firstValueFrom(dashboardStatsService.loadAll());
await firstValueFrom(dossierTemplatesService.loadAll());
await firstValueFrom(dashboardStatsService.loadForTemplate(dossierTemplateId));
await firstValueFrom(dossierTemplatesService.loadDossierTemplate(dossierTemplateId));
const dossierTemplateStats = dashboardStatsService.find(dossierTemplateId);
if (!dossierTemplateStats || dossierTemplateStats.isEmpty) {
logger.warn(`[ROUTES] Dossier template ${dossierTemplateId} not found, redirecting to main`);
await userPreferencesService.saveLastDossierTemplate(null);
await router.navigate([tenantsService.activeTenantId, 'main']);
await router.navigate(['main']);
return false;
}
await firstValueFrom(fileAttributesService.loadFileAttributesConfig(dossierTemplateId));
await firstValueFrom(dictionaryService.loadDictionaryDataForDossierTemplate(dossierTemplateId));
await firstValueFrom(defaultColorsService.loadForDossierTemplate(dossierTemplateId));
const rules = await firstValueFrom(rulesService.getFor(dossierTemplateId));
if (rules.timeoutDetected) {
toaster.error(_('dossier-listing.rules.timeoutError'));
}
if (!isDocumine) {
await firstValueFrom(watermarksService.loadForDossierTemplate(dossierTemplateId));
}
return true;
};
}

View File

@ -1,7 +1,7 @@
import { CanDeactivateFn } from '@angular/router';
import { inject } from '@angular/core';
import { CanDeactivateFn } from '@angular/router';
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
import { DossierOverviewScreenComponent } from '../modules/dossier-overview/screen/dossier-overview-screen.component';
import DossierOverviewScreenComponent from '../modules/dossier-overview/screen/dossier-overview-screen.component';
export const editAttributeGuard: CanDeactivateFn<DossierOverviewScreenComponent> = () =>
export const isNotEditingFileAttributeGuard: CanDeactivateFn<DossierOverviewScreenComponent> = () =>
!inject(FileAttributesService).isEditingFileAttribute();

View File

@ -1,12 +1,13 @@
import { ActivatedRouteSnapshot, Router } from '@angular/router';
import { inject } from '@angular/core';
import { NGXLogger } from 'ngx-logger';
import { keycloakInitializer, KeycloakStatusService, TenantsService } from '@iqser/common-ui/lib/tenants';
import { KeycloakService } from 'keycloak-angular';
import { UserService } from '@users/user.service';
import { LicenseService } from '@services/license.service';
import { ActivatedRouteSnapshot, Router } from '@angular/router';
import { GET_TENANT_FROM_PATH_FN } from '@common-ui/utils';
import { AsyncGuard } from '@iqser/common-ui';
import jwt_decode from 'jwt-decode';
import { keycloakInitializer, KeycloakStatusService, TenantsService } from '@iqser/common-ui/lib/tenants';
import { LicenseService } from '@services/license.service';
import { UserService } from '@users/user.service';
import { jwtDecode } from 'jwt-decode';
import { KeycloakService } from 'keycloak-angular';
import { NGXLogger } from 'ngx-logger';
export interface JwtToken {
auth_time: number;
@ -24,35 +25,36 @@ export function ifLoggedIn(): AsyncGuard {
const licenseService = inject(LicenseService);
const keycloakStatusService = inject(KeycloakStatusService);
const tenant = inject(GET_TENANT_FROM_PATH_FN)();
const keycloakInstance = keycloakService.getKeycloakInstance();
const tenant = route.paramMap.get('tenant');
const queryParams = new URLSearchParams(window.location.search);
const username = queryParams.get('username');
const router = inject(Router);
if (!keycloakInstance) {
if (!tenant) {
logger.error('[ROUTES] No tenant found, something is wrong...');
return inject(Router).navigate(['/']);
return router.navigate(['/']);
}
logger.info('[KEYCLOAK] Keycloak init...');
await keycloakInitializer(tenant);
logger.info('[KEYCLOAK] Keycloak init done!');
logger.info('[KEYCLOAK] Keycloak init done for tenant: ', { tenant });
await tenantsService.selectTenant(tenant);
await usersService.initialize();
await licenseService.loadLicenses();
const token = await keycloakService.getToken();
if (token) {
const jwtToken = jwt_decode(token) as JwtToken;
const jwtToken = jwtDecode(token) as JwtToken;
const authTime = (jwtToken.auth_time || jwtToken.iat).toString();
localStorage.setItem('authTime', authTime);
localStorage.setItem('token', token);
}
}
const isLoggedIn = await keycloakService.isLoggedIn();
if (isLoggedIn) {
if (keycloakService.isLoggedIn()) {
logger.info('[ROUTES] Is logged in, continuing');
return true;
}

View File

@ -1,29 +0,0 @@
import { ActivatedRouteSnapshot, CanActivateFn, Router } from '@angular/router';
import { inject } from '@angular/core';
import { NGXLogger } from 'ngx-logger';
import { KeycloakService } from 'keycloak-angular';
export function ifNotLoggedIn(): CanActivateFn {
return async (route: ActivatedRouteSnapshot) => {
const logger = inject(NGXLogger);
const router = inject(Router);
const keycloakService = inject(KeycloakService);
const isLoggedIn = await keycloakService.isLoggedIn();
if (!isLoggedIn) {
logger.info('[ROUTES] Not logged in, continuing to selected route');
return true;
}
const tenant = route.paramMap.get('tenant') || keycloakService.getKeycloakInstance().realm;
if (!tenant) {
logger.error('[ROUTES] Tenant not found in route or keycloak realm');
return false;
}
logger.warn('[ROUTES] Is logged in for ' + tenant + ', redirecting to /' + tenant);
await router.navigate([tenant]);
return false;
};
}

View File

@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate } from '@angular/router';
import { firstValueFrom } from 'rxjs';
import { EntityPermissionsService } from '@services/entity-permissions/entity-permissions.service';
import { firstValueFrom } from 'rxjs';
@Injectable({ providedIn: 'root' })
export class PermissionsGuard implements CanActivate {

View File

@ -1,48 +1,73 @@
import { AnnotationPermissions } from '@models/file/annotation.permissions';
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
import { Dictionary } from '@red/domain';
import { Dictionary, SuperTypes } from '@red/domain';
export const canUndo = (annotation: AnnotationWrapper, isApprover: boolean) =>
!isApprover && (annotation.isSuggestion || annotation.pending);
export const canUndo = (annotation: AnnotationWrapper, isApprover: boolean) => !isApprover && annotation.pending;
export const canForceHint = (annotation: AnnotationWrapper, canAddRedaction: boolean) =>
canAddRedaction && annotation.isIgnoredHint && !annotation.pending;
export const canForceRedaction = (annotation: AnnotationWrapper, canAddRedaction: boolean) =>
canAddRedaction && annotation.isSkipped && !annotation.isFalsePositive && !annotation.pending;
canAddRedaction &&
(annotation.isSkipped || (annotation.IMAGE_HINT && annotation.superType === SuperTypes.Hint)) &&
!annotation.isFalsePositive &&
!annotation.pending;
export const canAcceptRecommendation = (annotation: AnnotationWrapper) => annotation.isRecommendation && !annotation.pending;
export const canMarkAsFalsePositive = (annotation: AnnotationWrapper, annotationEntity: Dictionary) =>
annotation.canBeMarkedAsFalsePositive && annotationEntity.hasDictionary;
annotation.canBeMarkedAsFalsePositive && !annotation.hasBeenResizedLocally && annotationEntity?.hasDictionary;
export const canRemoveOnlyHere = (annotation: AnnotationWrapper, canAddRedaction: boolean) =>
canAddRedaction && !annotation.pending && (annotation.isRedacted || (annotation.isHint && !annotation.isImage));
export const canRemoveOnlyHere = (annotation: AnnotationWrapper, canAddRedaction: boolean, autoAnalysisDisabled: boolean) =>
canAddRedaction &&
(autoAnalysisDisabled || !annotation.pending) &&
(annotation.isRedacted || (annotation.isHint && !annotation.isImage));
export const canRemoveFromDictionary = (annotation: AnnotationWrapper) =>
annotation.isModifyDictionary &&
(annotation.isRedacted || annotation.isSkipped || annotation.isHint) &&
!annotation.pending &&
!annotation.hasBeenResized;
export const canRemoveFromDictionary = (annotation: AnnotationWrapper, autoAnalysisDisabled: boolean) =>
(annotation.isModifyDictionary || annotation.engines.includes('DICTIONARY') || annotation.engines.includes('DOSSIER_DICTIONARY')) &&
(annotation.isRedacted || annotation.isSkipped || annotation.isHint || (annotation.isIgnoredHint && !annotation.isRuleBased)) &&
(autoAnalysisDisabled || !annotation.pending) &&
annotation.isDictBased;
export const canRemoveRedaction = (annotation: AnnotationWrapper, permissions: AnnotationPermissions) =>
!annotation.isIgnoredHint &&
(!annotation.isIgnoredHint || !annotation.isRuleBased) &&
(permissions.canRemoveOnlyHere || permissions.canRemoveFromDictionary || permissions.canMarkAsFalsePositive);
export const canChangeLegalBasis = (annotation: AnnotationWrapper, canAddRedaction: boolean) =>
canAddRedaction && annotation.isRedacted && !annotation.pending;
export const canChangeLegalBasis = (annotation: AnnotationWrapper, canAddRedaction: boolean, autoAnalysisDisabled: boolean) =>
canAddRedaction && annotation.isRedacted && (autoAnalysisDisabled || !annotation.pending);
export const canRecategorizeAnnotation = (annotation: AnnotationWrapper, canRecategorize: boolean) =>
export const canRecategorizeAnnotation = (annotation: AnnotationWrapper, canRecategorize: boolean, autoAnalysisDisabled: boolean) =>
canRecategorize &&
((annotation.isImage && !annotation.isSuggestion) || annotation.isSuggestionRecategorizeImage || annotation.hintDictionary) &&
!annotation.pending;
(annotation.isImage || (annotation.isHint && !annotation.isRuleBased)) &&
(autoAnalysisDisabled || !annotation.pending);
export const canResizeAnnotation = (annotation: AnnotationWrapper, canAddRedaction: boolean, hasDictionary = false) =>
canAddRedaction &&
!annotation.isSkipped &&
!annotation.pending &&
(((annotation.isRedacted || annotation.isImage) && !annotation.isSuggestion) ||
annotation.isSuggestionResize ||
annotation.isDictBasedHint ||
annotation.isRecommendation ||
(hasDictionary && annotation.isRuleBased));
export const canResizeAnnotation = (
annotation: AnnotationWrapper,
canAddRedaction: boolean,
autoAnalysisDisabled: boolean,
hasDictionary = false,
) =>
(canAddRedaction &&
!annotation.isSkipped &&
!annotation.isIgnoredHint &&
(autoAnalysisDisabled || !annotation.pending) &&
(annotation.isRedacted ||
annotation.isImage ||
(annotation.isHint && !annotation.isRuleBased) ||
(!annotation.isHint && hasDictionary && annotation.isRuleBased))) ||
annotation.isRecommendation;
export const canResizeInDictionary = (annotation: AnnotationWrapper, permissions: AnnotationPermissions) =>
permissions.canResizeAnnotation &&
annotation.isModifyDictionary &&
!annotation.hasBeenResizedLocally &&
!(annotation.hasBeenForcedHint || annotation.hasBeenForcedRedaction);
export const canEditAnnotation = (annotation: AnnotationWrapper) => (annotation.isRedacted || annotation.isSkipped) && !annotation.isImage;
export const canEditHint = (annotation: AnnotationWrapper) =>
((annotation.isHint && !annotation.isRuleBased) || annotation.isIgnoredHint) && !annotation.isImage;
export const canEditImage = (annotation: AnnotationWrapper) => annotation.isImage;
export const canRevertChanges = (annotation: AnnotationWrapper) => annotation.hasRedactionChanges;

View File

@ -2,10 +2,12 @@ import { IqserPermissionsService } from '@iqser/common-ui';
import { Dictionary } from '@red/domain';
import { Roles } from '@users/roles';
import { isArray } from 'lodash-es';
import { IMAGE_CATEGORIES } from '../../modules/file-preview/utils/constants';
import {
canAcceptRecommendation,
canChangeLegalBasis,
canEditAnnotation,
canEditHint,
canEditImage,
canForceHint,
canForceRedaction,
canMarkAsFalsePositive,
@ -14,6 +16,8 @@ import {
canRemoveOnlyHere,
canRemoveRedaction,
canResizeAnnotation,
canResizeInDictionary,
canRevertChanges,
canUndo,
} from './annotation-permissions.utils';
import { AnnotationWrapper } from './annotation.wrapper';
@ -28,17 +32,20 @@ export class AnnotationPermissions {
canForceRedaction = true;
canChangeLegalBasis = true;
canResizeAnnotation = true;
canResizeInDictionary = true;
canRecategorizeAnnotation = true;
canForceHint = true;
canEditAnnotations = true;
canEditHints = true;
canEditImages = true;
canRevertChanges = true;
static forUser(
isApprover: boolean,
annotations: AnnotationWrapper | AnnotationWrapper[],
entities: Dictionary[],
permissionsService: IqserPermissionsService,
autoAnalysisDisabled: boolean,
) {
if (!isArray(annotations)) {
annotations = [annotations];
@ -55,18 +62,22 @@ export class AnnotationPermissions {
permissions.canForceRedaction = canForceRedaction(annotation, canAddRedaction);
permissions.canAcceptRecommendation = canAcceptRecommendation(annotation);
permissions.canMarkAsFalsePositive = canMarkAsFalsePositive(annotation, annotationEntity);
permissions.canRemoveOnlyHere = canRemoveOnlyHere(annotation, canAddRedaction);
permissions.canRemoveFromDictionary = canRemoveFromDictionary(annotation);
permissions.canRemoveOnlyHere = canRemoveOnlyHere(annotation, canAddRedaction, autoAnalysisDisabled);
permissions.canRemoveFromDictionary = canRemoveFromDictionary(annotation, autoAnalysisDisabled);
permissions.canRemoveRedaction = canRemoveRedaction(annotation, permissions);
permissions.canChangeLegalBasis = canChangeLegalBasis(annotation, canAddRedaction);
permissions.canRecategorizeAnnotation = canRecategorizeAnnotation(annotation, canAddRedaction);
permissions.canResizeAnnotation = canResizeAnnotation(annotation, canAddRedaction, annotationEntity.hasDictionary);
permissions.canEditAnnotations = (annotation.isSkipped || annotation.isRedacted) && !annotation.isImage;
permissions.canEditHints =
annotation.isIgnoredHint || annotation.isDictBasedHint || annotation.isHint || annotation.isSuggestionForceHint;
permissions.canEditImages = [...IMAGE_CATEGORIES, 'ocr'].includes(annotation.type);
permissions.canChangeLegalBasis = canChangeLegalBasis(annotation, canAddRedaction, autoAnalysisDisabled);
permissions.canRecategorizeAnnotation = canRecategorizeAnnotation(annotation, canAddRedaction, autoAnalysisDisabled);
permissions.canResizeAnnotation = canResizeAnnotation(
annotation,
canAddRedaction,
autoAnalysisDisabled,
annotationEntity?.hasDictionary,
);
permissions.canResizeInDictionary = canResizeInDictionary(annotation, permissions);
permissions.canEditAnnotations = canEditAnnotation(annotation);
permissions.canEditHints = canEditHint(annotation);
permissions.canEditImages = canEditImage(annotation);
permissions.canRevertChanges = canRevertChanges(annotation);
summedPermissions._merge(permissions);
}
return summedPermissions;
@ -75,6 +86,7 @@ export class AnnotationPermissions {
static reduce(permissions: AnnotationPermissions[]): AnnotationPermissions {
const result = new AnnotationPermissions();
result.canResizeAnnotation = permissions.length === 1 && permissions[0].canResizeAnnotation;
result.canResizeInDictionary = permissions.length === 1 && permissions[0].canResizeInDictionary;
result.canChangeLegalBasis = permissions.reduce((acc, next) => acc && next.canChangeLegalBasis, true);
result.canRecategorizeAnnotation = permissions.reduce((acc, next) => acc && next.canRecategorizeAnnotation, true);
result.canRemoveFromDictionary = permissions.reduce((acc, next) => acc && next.canRemoveFromDictionary, true);
@ -88,6 +100,7 @@ export class AnnotationPermissions {
result.canEditAnnotations = permissions.reduce((acc, next) => acc && next.canEditAnnotations, true);
result.canEditHints = permissions.reduce((acc, next) => acc && next.canEditHints, true);
result.canEditImages = permissions.reduce((acc, next) => acc && next.canEditImages, true);
result.canRevertChanges = permissions.reduce((acc, next) => acc && next.canRevertChanges, true);
return result;
}

View File

@ -5,83 +5,99 @@ import {
annotationEntityColorConfig,
AnnotationIconType,
ChangeType,
ChangeTypes,
DefaultColors,
Dictionary,
Earmark,
EntityTypes,
EntryStates,
FalsePositiveSuperTypes,
IEntityLogEntry,
ILegalBasis,
IManualChange,
IPoint,
IRectangle,
IRedactionLogEntry,
LogEntryEngine,
LogEntryEngines,
LogEntryStatuses,
LowLevelFilterTypes,
ManualRedactionType,
ManualRedactionTypes,
SuggestionAddSuperTypes,
SuggestionRemoveSuperTypes,
SuggestionsSuperTypes,
SuperType,
SuperTypeMapper,
SuperTypes,
} from '@red/domain';
import { annotationTypesTranslations, SuggestionAddFalsePositive } from '@translations/annotation-types-translations';
import { chronologicallyBy, timestampOf } from '../../modules/file-preview/services/file-data.service';
import { annotationTypesTranslations } from '@translations/annotation-types-translations';
interface AnnotationContent {
translation: string;
params: { [key: string]: string };
untranslatedContent: string;
}
export class AnnotationWrapper implements IListable {
[x: string]: unknown;
superType: SuperType;
typeValue: string;
recategorizationType: string;
color: string;
entity: Dictionary;
numberOfComments = 0;
firstTopLeftPoint: IPoint;
id: string;
superType: SuperType;
superTypeLabel: string;
type: string;
typeLabel?: string;
color: string;
numberOfComments = 0;
firstBottomLeftPoint: IPoint;
shortContent: string;
content: string;
content: AnnotationContent;
value: string;
typeLabel: string;
pageNumber: number;
hint: boolean;
redaction: boolean;
status: string;
dictionaryOperation: boolean;
positions: IRectangle[];
recommendationType: string;
dictionaryOperation = false;
positions: IRectangle[] = [];
legalBasisValue: string;
legalBasisChangeValue?: string;
rectangle?: boolean;
// AREA === rectangle
AREA = false;
HINT = false;
IMAGE = false;
IMAGE_HINT = false;
section?: string;
reference: string[];
imported?: boolean;
image?: boolean;
manual?: boolean;
reference: string[] = [];
imported = false;
manual = false;
pending = false;
hintDictionary = false;
textAfter?: string;
textBefore?: string;
isChangeLogEntry = false;
changeLogType?: 'ADDED' | 'REMOVED' | 'CHANGED';
engines?: LogEntryEngine[];
engines: LogEntryEngine[] = [];
hasBeenResized: boolean;
hasBeenResizedLocally: boolean;
hasBeenRecategorized: boolean;
hasLegalBasisChanged: boolean;
hasBeenForcedHint: boolean;
hasBeenForcedRedaction: boolean;
hasBeenRemovedByManualOverride: boolean;
legalBasisList: ILegalBasis[] = [];
isRemoved = false;
isRemovedLocally = false;
hiddenInWorkload = false;
lastManualChange: ManualRedactionType;
entry: IEntityLogEntry;
get isRuleBased() {
return this.engines.includes(LogEntryEngines.RULE);
}
get isDictBased() {
return [LogEntryEngines.DICTIONARY, LogEntryEngines.DOSSIER_DICTIONARY].some(engine => this.engines.includes(engine));
}
get isRedactedImageHint() {
return (
(this.IMAGE_HINT && this.superType === SuperTypes.Redaction) ||
(this.IMAGE_HINT && this.superType === SuperTypes.ManualRedaction)
);
}
get isSkippedImageHint() {
return this.IMAGE_HINT && this.superType === SuperTypes.Hint;
}
get searchKey(): string {
return this.id;
}
get isChangeLogRemoved() {
return this.changeLogType === 'REMOVED';
}
get descriptor() {
return this.isModifyDictionary ? _('dictionary') : _('type');
}
@ -96,7 +112,10 @@ export class AnnotationWrapper implements IListable {
get canBeMarkedAsFalsePositive() {
return (
(this.isRecommendation || this.superType === SuperTypes.Redaction) &&
(this.isRecommendation ||
this.superType === SuperTypes.Redaction ||
(this.isSkipped && this.isDictBased) ||
(this.isRemovedLocally && this.isDictBased)) &&
!this.isImage &&
!this.imported &&
!this.pending &&
@ -104,30 +123,18 @@ export class AnnotationWrapper implements IListable {
);
}
get isSuperTypeBasedColor() {
return this.isSuggestion || this.isDeclinedSuggestion;
}
get isSkipped() {
return this.superType === SuperTypes.Skipped;
}
get isImage() {
return this.type?.toLowerCase() === 'image' || this.image;
}
get isNotSignatureImage() {
return this.isImage && this.recategorizationType === 'signature';
return this.type?.toLowerCase() === 'image' || this.IMAGE || this.IMAGE_HINT;
}
get isOCR() {
return this.type?.toLowerCase() === 'ocr';
}
get type() {
return this.recategorizationType || this.typeValue;
}
get topLevelFilter() {
return !LowLevelFilterTypes[this.superType];
}
@ -144,20 +151,12 @@ export class AnnotationWrapper implements IListable {
return this.type?.toLowerCase() === 'false_positive' && !!FalsePositiveSuperTypes[this.superType];
}
get isSuggestionAddToFalsePositive() {
return this.typeLabel === annotationTypesTranslations[SuggestionAddFalsePositive];
}
get isDeclinedSuggestion() {
return this.superType === SuperTypes.DeclinedSuggestion;
}
get isApproved() {
return this.status === 'APPROVED';
}
get isHint() {
return this.superType === SuperTypes.Hint;
return this.superType === SuperTypes.Hint || this.superType === SuperTypes.ManualHint;
}
get isIgnoredHint() {
return this.superType === SuperTypes.IgnoredHint;
}
get isEarmark() {
@ -169,69 +168,17 @@ export class AnnotationWrapper implements IListable {
return 'hexagon';
}
if (this.isHint || this.isIgnoredHint) {
if (this.HINT) {
return 'circle';
}
if (this.isSuggestion || this.isDeclinedSuggestion) {
return 'rhombus';
}
return 'square';
}
get isDictBasedHint() {
return this.isHint && this.engines.includes(LogEntryEngines.DICTIONARY);
}
get isIgnoredHint() {
return this.superType === SuperTypes.IgnoredHint;
}
get isRedacted() {
return this.superType === SuperTypes.Redaction || this.superType === SuperTypes.ManualRedaction;
}
get isSuggestion() {
return !!SuggestionsSuperTypes[this.superType];
}
get isRuleBased() {
return this.engines.includes(LogEntryEngines.RULE);
}
get isSuggestionResize() {
return this.superType === SuperTypes.SuggestionResize;
}
get isSuggestionRecategorizeImage() {
return this.superType === SuperTypes.SuggestionRecategorizeImage;
}
get isSuggestionForceHint() {
return this.superType === SuperTypes.SuggestionForceHint;
}
get isSuggestionAdd() {
return !!SuggestionAddSuperTypes[this.superType];
}
get isSuggestionAddDictionary() {
return this.superType === SuperTypes.SuggestionAddDictionary;
}
get isSuggestionRemove() {
return !!SuggestionRemoveSuperTypes[this.superType];
}
get isSuggestionRemoveDictionary() {
return this.superType === SuperTypes.SuggestionRemoveDictionary;
}
get isSuggestionLegalBasisChange() {
return this.superType === SuperTypes.SuggestionChangeLegalBasis;
}
get isModifyDictionary() {
return this.dictionaryOperation;
}
@ -252,15 +199,15 @@ export class AnnotationWrapper implements IListable {
}
get x() {
return this.firstTopLeftPoint.x;
return this.firstBottomLeftPoint.x;
}
get y() {
return this.firstTopLeftPoint.y;
return this.firstBottomLeftPoint.y;
}
get legalBasis() {
return this.legalBasisChangeValue || this.legalBasisValue;
return this.legalBasisValue;
}
get width(): number {
@ -271,201 +218,167 @@ export class AnnotationWrapper implements IListable {
return Math.floor(this.positions[0].height);
}
get previewAnnotation() {
return (
this.isRedacted ||
this.isSuggestionAdd ||
this.isSuggestionRemove ||
this.isSuggestionResize ||
this.isSuggestionLegalBasisChange ||
this.isSuggestionRecategorizeImage
);
}
static fromEarmark(earmark: Earmark) {
const annotationWrapper = new AnnotationWrapper();
annotationWrapper.id = earmark.id;
annotationWrapper.pageNumber = earmark.positions[0].page;
annotationWrapper.superType = SuperTypes.TextHighlight;
annotationWrapper.typeValue = SuperTypes.TextHighlight;
annotationWrapper.type = SuperTypes.TextHighlight;
annotationWrapper.value = 'Imported';
annotationWrapper.color = earmark.hexColor;
annotationWrapper.positions = earmark.positions;
annotationWrapper.firstTopLeftPoint = earmark.positions[0]?.topLeft;
annotationWrapper.typeLabel = annotationTypesTranslations[annotationWrapper.superType];
annotationWrapper.firstBottomLeftPoint = earmark.positions[0]?.topLeft;
annotationWrapper.superTypeLabel = annotationTypesTranslations[annotationWrapper.superType];
return annotationWrapper;
}
static fromData(
redactionLogEntry: IRedactionLogEntry,
dictionaries: Dictionary[],
defaultColors: DefaultColors,
logEntry: IEntityLogEntry,
dictionary: Dictionary,
changeLogType: ChangeType,
legalBasisList: ILegalBasis[],
hintDictionary: boolean,
isDocumine: boolean,
defaultColors: DefaultColors,
) {
const annotationWrapper = new AnnotationWrapper();
annotationWrapper.id = redactionLogEntry.id;
annotationWrapper.isChangeLogEntry = !!changeLogType;
annotationWrapper.changeLogType = changeLogType;
annotationWrapper.legalBasisList = legalBasisList;
annotationWrapper.redaction = redactionLogEntry.redacted;
annotationWrapper.hint = redactionLogEntry.hint;
annotationWrapper.typeValue = redactionLogEntry.type;
annotationWrapper.value = redactionLogEntry.value;
annotationWrapper.firstTopLeftPoint = redactionLogEntry.positions[0]?.topLeft;
annotationWrapper.pageNumber = redactionLogEntry.positions[0]?.page;
annotationWrapper.positions = redactionLogEntry.positions;
annotationWrapper.textBefore = redactionLogEntry.textBefore;
annotationWrapper.textAfter = redactionLogEntry.textAfter;
annotationWrapper.dictionaryOperation = redactionLogEntry.dictionaryEntry;
annotationWrapper.image = redactionLogEntry.image;
annotationWrapper.imported = redactionLogEntry.imported;
annotationWrapper.legalBasisValue = redactionLogEntry.legalBasis;
annotationWrapper.manual = redactionLogEntry.manualChanges?.length > 0;
annotationWrapper.engines = redactionLogEntry.engines;
annotationWrapper.section = redactionLogEntry.section;
annotationWrapper.reference = redactionLogEntry.reference || [];
annotationWrapper.rectangle = redactionLogEntry.rectangle;
annotationWrapper.hintDictionary = hintDictionary;
annotationWrapper.hasBeenResized = !!redactionLogEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.RESIZE && c.annotationStatus === LogEntryStatuses.APPROVED,
);
annotationWrapper.hasBeenRecategorized = !!redactionLogEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.RECATEGORIZE && c.annotationStatus === LogEntryStatuses.APPROVED,
);
annotationWrapper.hasLegalBasisChanged = !!redactionLogEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.LEGAL_BASIS_CHANGE && c.annotationStatus === LogEntryStatuses.APPROVED,
);
annotationWrapper.hasBeenForcedHint = !!redactionLogEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.FORCE_HINT && c.annotationStatus === LogEntryStatuses.APPROVED,
);
annotationWrapper.hasBeenForcedRedaction = !!redactionLogEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.FORCE_REDACT && c.annotationStatus === LogEntryStatuses.APPROVED,
);
annotationWrapper.hasBeenRemovedByManualOverride = !!redactionLogEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.REMOVE_LOCALLY && c.annotationStatus === LogEntryStatuses.APPROVED,
);
annotationWrapper.legalBasisChangeValue = redactionLogEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.LEGAL_BASIS_CHANGE && c.annotationStatus === LogEntryStatuses.REQUESTED,
)?.propertyChanges.legalBasis;
annotationWrapper.pending = logEntry.state === EntryStates.PENDING;
annotationWrapper.id = logEntry.id + (annotationWrapper.pending ? '-pending' : '');
annotationWrapper.isChangeLogEntry = logEntry.state === EntryStates.REMOVED || !!changeLogType;
annotationWrapper.type = logEntry.type;
annotationWrapper.value = logEntry.value;
annotationWrapper.firstBottomLeftPoint = { x: logEntry.positions[0].rectangle[0], y: logEntry.positions[0].rectangle[1] };
annotationWrapper.pageNumber = logEntry.positions[0].pageNumber;
annotationWrapper.positions = logEntry.positions.map(p => ({
page: p.pageNumber,
height: p.rectangle[3],
width: p.rectangle[2],
topLeft: { x: p.rectangle[0], y: p.rectangle[1] },
}));
annotationWrapper.textBefore = logEntry.textBefore;
annotationWrapper.textAfter = logEntry.textAfter;
annotationWrapper.dictionaryOperation = logEntry.dictionaryEntry;
this.#createContent(annotationWrapper, redactionLogEntry, isDocumine);
this.#setSuperType(annotationWrapper, redactionLogEntry);
this.#handleRecommendations(annotationWrapper, redactionLogEntry);
annotationWrapper.typeLabel = this.#getTypeLabel(redactionLogEntry, annotationWrapper);
annotationWrapper.HINT = logEntry.entryType === EntityTypes.HINT;
annotationWrapper.IMAGE = logEntry.entryType === EntityTypes.IMAGE;
annotationWrapper.AREA = logEntry.entryType === EntityTypes.AREA;
annotationWrapper.IMAGE_HINT = logEntry.entryType === EntityTypes.IMAGE_HINT;
const entity = dictionaries.find(d => d.type === annotationWrapper.typeValue);
annotationWrapper.entity = entity?.virtual ? null : entity;
annotationWrapper.numberOfComments = logEntry.numberOfComments;
annotationWrapper.imported = logEntry.imported;
annotationWrapper.legalBasisValue = logEntry.legalBasis;
annotationWrapper.manual = logEntry.manualChanges?.length > 0;
annotationWrapper.engines = logEntry.engines ?? [];
annotationWrapper.section = logEntry.section;
annotationWrapper.reference = logEntry.reference || [];
annotationWrapper.hasBeenResized = !!logEntry.manualChanges?.find(c => c.manualRedactionType === ManualRedactionTypes.RESIZE);
annotationWrapper.hasBeenResizedLocally =
annotationWrapper.hasBeenResized && annotationWrapper.engines.includes(LogEntryEngines.MANUAL);
annotationWrapper.hasBeenRecategorized = !!logEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.RECATEGORIZE,
);
annotationWrapper.hasLegalBasisChanged = !!logEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.LEGAL_BASIS_CHANGE,
);
annotationWrapper.hasBeenForcedHint =
!!logEntry.manualChanges?.find(c => c.manualRedactionType === ManualRedactionTypes.FORCE) && annotationWrapper.HINT;
annotationWrapper.hasBeenForcedRedaction =
!!logEntry.manualChanges?.find(c => c.manualRedactionType === ManualRedactionTypes.FORCE) && !annotationWrapper.HINT;
annotationWrapper.hasBeenRemovedByManualOverride = !!logEntry.manualChanges?.find(
c => c.manualRedactionType === ManualRedactionTypes.REMOVE,
);
let colorKey = annotationWrapper.isSuperTypeBasedColor
? annotationDefaultColorConfig[annotationWrapper.superType]
: annotationEntityColorConfig[annotationWrapper.superType];
const content = this.#createContent(annotationWrapper, logEntry, isDocumine);
annotationWrapper.shortContent = this.#getShortContent(annotationWrapper, legalBasisList) || content.untranslatedContent;
annotationWrapper.content = content;
if (annotationWrapper.isSuperTypeBasedColor && annotationWrapper.isSuggestionResize && !annotationWrapper.isModifyDictionary) {
colorKey = annotationDefaultColorConfig[SuperTypes.SuggestionAdd];
const lastRelevantManualChange = logEntry.manualChanges?.at(-1);
annotationWrapper.lastManualChange = lastRelevantManualChange?.manualRedactionType;
annotationWrapper.superType = SuperTypeMapper[logEntry.entryType][logEntry.state](logEntry);
annotationWrapper.superTypeLabel = annotationTypesTranslations[annotationWrapper.superType];
annotationWrapper.isRemoved = logEntry.state === EntryStates.REMOVED;
annotationWrapper.isRemovedLocally =
lastRelevantManualChange?.manualRedactionType === ManualRedactionTypes.REMOVE &&
logEntry.engines.includes(LogEntryEngines.MANUAL);
annotationWrapper.typeLabel = dictionary?.virtual ? undefined : dictionary?.label;
if (annotationWrapper.pending) {
annotationWrapper.color = defaultColors[annotationDefaultColorConfig.analysis] as string;
} else {
const colorKey = annotationEntityColorConfig[annotationWrapper.superType];
const defaultColor = annotationDefaultColorConfig[annotationWrapper.superType];
annotationWrapper.color =
dictionary && !annotationWrapper.isRedactedImageHint
? (dictionary[colorKey] as string)
: (defaultColors[defaultColor] as string);
}
annotationWrapper.color = annotationWrapper.isSuperTypeBasedColor ? defaultColors[colorKey] : (entity[colorKey] as string);
annotationWrapper.entry = logEntry;
return annotationWrapper;
}
static #getTypeLabel(redactionLogEntry: IRedactionLogEntry, annotation: AnnotationWrapper): string {
if (redactionLogEntry.reason?.toLowerCase() === 'false positive') {
return annotationTypesTranslations[SuggestionAddFalsePositive];
}
if (annotation.superType === SuperTypes.ManualRedaction && annotation.hintDictionary) {
return _('annotation-type.manual-hint');
}
return annotationTypesTranslations[annotation.superType];
}
static #createContent(annotationWrapper: AnnotationWrapper, logEntry: IEntityLogEntry, isDocumine: boolean) {
let untranslatedContent = '';
const params: { [key: string]: string } = {};
if (logEntry.matchedRule) {
params['hasRule'] = 'true';
params['matchedRule'] = logEntry.matchedRule.replace(/(^[, ]*)|([, ]*$)/g, '');
params['ruleSymbol'] = isDocumine ? ':' : '';
static #handleRecommendations(annotationWrapper: AnnotationWrapper, redactionLogEntry: IRedactionLogEntry) {
if (annotationWrapper.superType === SuperTypes.Recommendation) {
annotationWrapper.recommendationType = redactionLogEntry.type;
untranslatedContent += `Rule ${logEntry.matchedRule} matched${isDocumine ? ':' : ''} \n\n`;
}
}
static #setSuperType(annotationWrapper: AnnotationWrapper, entry: IRedactionLogEntry) {
if (entry.manualChanges?.length) {
const lastRelevantManualChange = entry.manualChanges?.at(-1);
const viableChanges = entry.changes.filter(c => c.analysisNumber > 1);
const lastChange = viableChanges.sort(chronologicallyBy(x => x.dateTime)).at(-1);
const lastChangeOccurredAfterLastManualChange =
lastChange && timestampOf(lastChange.dateTime) > timestampOf(lastRelevantManualChange.processedDate);
if (lastChangeOccurredAfterLastManualChange && lastChange.type === ChangeTypes.ADDED && entry.redacted) {
annotationWrapper.superType = SuperTypes.Redaction;
return;
if (logEntry.reason) {
params['hasReason'] = 'true';
if (isDocumine && logEntry.reason.slice(-1) === '.') {
logEntry.reason = logEntry.reason.slice(0, -1);
}
annotationWrapper.pending = !lastRelevantManualChange.processed;
annotationWrapper.superType = this.#selectSuperType(entry, lastRelevantManualChange, annotationWrapper.hintDictionary);
if (lastRelevantManualChange.annotationStatus === LogEntryStatuses.REQUESTED) {
annotationWrapper.recategorizationType = lastRelevantManualChange.propertyChanges.type;
}
} else {
if (entry.recommendation) {
annotationWrapper.superType = SuperTypes.Recommendation;
} else if (entry.redacted) {
annotationWrapper.superType = SuperTypes.Redaction;
} else if (entry.hint) {
annotationWrapper.superType = SuperTypes.Hint;
if (!params['hasRule']) {
params['reason'] = logEntry.reason.substring(0, 1).toUpperCase() + logEntry.reason.substring(1);
} else {
annotationWrapper.superType = SuperTypes.Skipped;
params['reason'] = logEntry.reason;
}
}
}
static #createContent(annotationWrapper: AnnotationWrapper, entry: IRedactionLogEntry, isDocumine: boolean) {
let content = '';
if (entry.matchedRule) {
content += `Rule ${entry.matchedRule} matched${isDocumine ? ':' : ''} \n\n`;
}
if (entry.reason) {
if (isDocumine && entry.reason.slice(-1) === '.') {
entry.reason = entry.reason.slice(0, -1);
}
content += entry.reason + '\n\n';
params['reason'] = params['reason'].replace(/(^[, ]*)|([, ]*$)/g, '');
untranslatedContent += logEntry.reason + '\n\n';
//remove leading and trailing commas and whitespaces
content = content.replace(/(^[, ]*)|([, ]*$)/g, '');
content = content.substring(0, 1).toUpperCase() + content.substring(1);
untranslatedContent = untranslatedContent.replace(/(^[, ]*)|([, ]*$)/g, '');
untranslatedContent = untranslatedContent.substring(0, 1).toUpperCase() + untranslatedContent.substring(1);
}
if (annotationWrapper.legalBasis && !isDocumine) {
content += 'Legal basis: ' + annotationWrapper.legalBasis + '\n\n';
params['hasLb'] = 'true';
params['legalBasis'] = annotationWrapper.legalBasis;
untranslatedContent += 'Legal basis: ' + annotationWrapper.legalBasis + '\n\n';
}
if (annotationWrapper.hasBeenRemovedByManualOverride) {
content += 'Removed by manual override';
params['hasOverride'] = 'true';
untranslatedContent += 'Removed by manual override';
}
if (entry.section) {
if (logEntry.section) {
params['hasSection'] = 'true';
params['sectionSymbol'] = isDocumine ? '' : ':';
params['shouldLower'] = untranslatedContent.length.toString();
params['section'] = logEntry.section;
let prefix = `In section${isDocumine ? '' : ':'} `;
if (content.length) {
if (untranslatedContent.length) {
prefix = ` ${prefix.toLowerCase()}`;
}
content += `${prefix} "${entry.section}"`;
untranslatedContent += `${prefix} "${logEntry.section}"`;
}
annotationWrapper.shortContent = this.#getShortContent(annotationWrapper) || content;
annotationWrapper.content = content;
return { translation: _('annotation-content'), params: params, untranslatedContent: untranslatedContent };
}
static #getShortContent(annotationWrapper: AnnotationWrapper) {
static #getShortContent(annotationWrapper: AnnotationWrapper, legalBasisList: ILegalBasis[]) {
if (annotationWrapper.legalBasis) {
const lb = annotationWrapper.legalBasisList.find(
lbm => lbm.reason?.toLowerCase().includes(annotationWrapper.legalBasis.toLowerCase()),
);
const lb = legalBasisList.find(lbm => lbm.technicalName?.toLowerCase().includes(annotationWrapper.legalBasis.toLowerCase()));
if (lb) {
return lb.name;
}
@ -473,154 +386,4 @@ export class AnnotationWrapper implements IListable {
return annotationWrapper.legalBasis;
}
static #selectSuperType(redactionLogEntry: IRedactionLogEntry, lastManualChange: IManualChange, isHintDictionary: boolean): SuperType {
switch (lastManualChange.manualRedactionType) {
case ManualRedactionTypes.ADD_LOCALLY:
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
return SuperTypes.ManualRedaction;
case LogEntryStatuses.DECLINED:
return SuperTypes.DeclinedSuggestion;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionAdd;
}
break;
case ManualRedactionTypes.ADD_TO_DICTIONARY:
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
return isHintDictionary ? SuperTypes.Hint : SuperTypes.Redaction;
case LogEntryStatuses.DECLINED:
return SuperTypes.DeclinedSuggestion;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionAddDictionary;
}
break;
case ManualRedactionTypes.REMOVE_LOCALLY:
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
return isHintDictionary ? SuperTypes.IgnoredHint : SuperTypes.Skipped;
case LogEntryStatuses.DECLINED: {
if (isHintDictionary) {
return SuperTypes.Hint;
}
if (redactionLogEntry.redacted) {
return SuperTypes.Redaction;
}
return SuperTypes.Skipped;
}
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionRemove;
}
break;
case ManualRedactionTypes.REMOVE_FROM_DICTIONARY:
if (redactionLogEntry.redacted) {
if (lastManualChange.processed) {
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
return SuperTypes.Skipped;
case LogEntryStatuses.DECLINED:
return SuperTypes.Redaction;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionRemoveDictionary;
}
} else {
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
case LogEntryStatuses.DECLINED:
return SuperTypes.Redaction;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionRemoveDictionary;
}
}
} else {
if (lastManualChange.processed) {
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
return redactionLogEntry.recommendation ? SuperTypes.Recommendation : SuperTypes.Skipped;
case LogEntryStatuses.DECLINED:
return isHintDictionary ? SuperTypes.Hint : SuperTypes.Skipped;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionRemoveDictionary;
}
} else {
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
case LogEntryStatuses.DECLINED:
return isHintDictionary ? SuperTypes.Hint : SuperTypes.Skipped;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionRemoveDictionary;
}
}
}
break;
case ManualRedactionTypes.FORCE_REDACT:
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
return SuperTypes.Redaction;
case LogEntryStatuses.DECLINED:
return isHintDictionary ? SuperTypes.IgnoredHint : SuperTypes.Skipped;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionForceRedaction;
}
break;
case ManualRedactionTypes.FORCE_HINT:
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
return SuperTypes.Hint;
case LogEntryStatuses.DECLINED:
return SuperTypes.IgnoredHint;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionForceHint;
}
break;
case ManualRedactionTypes.RECATEGORIZE:
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
case LogEntryStatuses.DECLINED: {
if (redactionLogEntry.recommendation) {
return SuperTypes.Recommendation;
} else if (redactionLogEntry.redacted) {
return SuperTypes.Redaction;
} else if (redactionLogEntry.hint) {
return SuperTypes.Hint;
}
return isHintDictionary ? SuperTypes.IgnoredHint : SuperTypes.Skipped;
}
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionRecategorizeImage;
}
break;
case ManualRedactionTypes.LEGAL_BASIS_CHANGE:
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
case LogEntryStatuses.DECLINED:
return redactionLogEntry.type === SuperTypes.ManualRedaction ? SuperTypes.ManualRedaction : SuperTypes.Redaction;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionChangeLegalBasis;
}
break;
case ManualRedactionTypes.RESIZE:
switch (lastManualChange.annotationStatus) {
case LogEntryStatuses.APPROVED:
case LogEntryStatuses.DECLINED:
if (redactionLogEntry.recommendation) {
return SuperTypes.Recommendation;
} else if (redactionLogEntry.redacted) {
return redactionLogEntry.type === SuperTypes.ManualRedaction
? SuperTypes.ManualRedaction
: SuperTypes.Redaction;
} else if (redactionLogEntry.hint) {
return SuperTypes.Hint;
}
return isHintDictionary ? SuperTypes.IgnoredHint : SuperTypes.Skipped;
case LogEntryStatuses.REQUESTED:
return SuperTypes.SuggestionResize;
}
break;
}
}
}

View File

@ -4,6 +4,10 @@ import { IqserPermissionsService } from '@iqser/common-ui';
import { Roles } from '@users/roles';
import { User } from '@red/domain';
import { getCurrentUser } from '@iqser/common-ui/lib/users';
import { SideNavComponent } from '@common-ui/shared';
import { TranslateModule } from '@ngx-translate/core';
import { NgForOf, NgIf } from '@angular/common';
import { RouterLink, RouterLinkActive } from '@angular/router';
interface NavItem {
readonly label: string;
@ -17,6 +21,7 @@ interface NavItem {
templateUrl: './account-side-nav.component.html',
styleUrls: ['./account-side-nav.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [SideNavComponent, TranslateModule, NgForOf, NgIf, RouterLinkActive, RouterLink],
})
export class AccountSideNavComponent {
readonly currentUser = getCurrentUser<User>();

View File

@ -1,27 +0,0 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedModule } from '@shared/shared.module';
import { AccountRoutingModule } from './account-routing.module';
import { AccountSideNavComponent } from './account-side-nav/account-side-nav.component';
import { BaseAccountScreenComponent } from './base-account-screen/base-account-screen-component';
import { NotificationPreferencesService } from './services/notification-preferences.service';
import { TranslateModule } from '@ngx-translate/core';
import { IconButtonComponent, IqserAllowDirective, IqserHelpModeModule } from '@iqser/common-ui';
import { PreferencesComponent } from './screens/preferences/preferences.component';
import { SideNavComponent } from '@iqser/common-ui/lib/shared';
@NgModule({
declarations: [AccountSideNavComponent, BaseAccountScreenComponent, PreferencesComponent],
imports: [
CommonModule,
SharedModule,
AccountRoutingModule,
TranslateModule,
IqserHelpModeModule,
IconButtonComponent,
SideNavComponent,
IqserAllowDirective,
],
providers: [NotificationPreferencesService],
})
export class AccountModule {}

View File

@ -1,13 +1,13 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CompositeRouteGuard, IqserPermissionsGuard, IqserRoutes } from '@iqser/common-ui';
import { RedRoleGuard } from '@users/red-role.guard';
import { BaseAccountScreenComponent } from './base-account-screen/base-account-screen-component';
import { PreferencesComponent } from './screens/preferences/preferences.component';
import { Roles } from '@users/roles';
import { IqserAuthGuard } from '@iqser/common-ui/lib/users';
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
import { NotificationPreferencesService } from './services/notification-preferences.service';
const routes: IqserRoutes = [
export default [
{ path: '', redirectTo: 'user-profile', pathMatch: 'full' },
{
path: 'user-profile',
@ -16,12 +16,13 @@ const routes: IqserRoutes = [
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
loadChildren: () => import('./screens/user-profile/user-profile.module').then(m => m.UserProfileModule),
loadChildren: () => import('./screens/user-profile/user-profile.routes'),
},
{
path: 'notifications',
component: BaseAccountScreenComponent,
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
canDeactivate: [PendingChangesGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
permissions: {
@ -29,7 +30,8 @@ const routes: IqserRoutes = [
redirectTo: '/',
},
},
loadChildren: () => import('./screens/notifications/notifications.module').then(m => m.NotificationsModule),
providers: [NotificationPreferencesService],
loadChildren: () => import('./screens/notifications/notifications.routes'),
},
{
path: 'preferences',
@ -61,10 +63,4 @@ const routes: IqserRoutes = [
},
],
},
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class AccountRoutingModule {}
] satisfies IqserRoutes;

View File

@ -7,11 +7,12 @@
<div class="content-inner">
<div class="content-container full-height">
<div class="overlay-shadow"></div>
<div class="dialog">
<div class="dialog-header">
<div class="heading-l" [translate]="translations[path]"></div>
</div>
<div [ngClass]="!isWarningsScreen && 'dialog'">
@if (!isWarningsScreen) {
<div class="dialog-header">
<div class="heading-l" [translate]="translations[path]"></div>
</div>
}
<router-outlet></router-outlet>
</div>
</div>

View File

@ -1,26 +1,35 @@
import { ChangeDetectionStrategy, Component, OnInit, ViewContainerRef } from '@angular/core';
import { Router } from '@angular/router';
import { Router, RouterOutlet } from '@angular/router';
import { accountTranslations } from '@translations/account-translations';
import { NgClass } from '@angular/common';
import { AccountSideNavComponent } from '../account-side-nav/account-side-nav.component';
import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'redaction-base-account-screen',
templateUrl: './base-account-screen-component.html',
styleUrls: ['./base-account-screen-component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [NgClass, RouterOutlet, AccountSideNavComponent, TranslateModule],
})
export class BaseAccountScreenComponent implements OnInit {
readonly translations = accountTranslations;
readonly path: string;
readonly isWarningsScreen: boolean;
constructor(private readonly _router: Router, private readonly _hostRef: ViewContainerRef) {
constructor(
private readonly _router: Router,
private readonly _hostRef: ViewContainerRef,
) {
this.path = this._router.url.split('/').pop();
this.isWarningsScreen = this.path === 'warnings-preferences';
}
ngOnInit(): void {
this._setDialogWidth();
this.#setDialogWidth();
}
private _setDialogWidth() {
#setDialogWidth() {
const element = this._hostRef.element.nativeElement as HTMLElement;
element.style.setProperty('--width', this.path === 'user-profile' ? 'unset' : '100%');
}

View File

@ -2,11 +2,12 @@
<div class="dialog-content">
<div *ngFor="let category of notificationCategories">
<div class="iqser-input-group header w-full">
<mat-slide-toggle color="primary" formControlName="{{ category }}Enabled">{{
translations[category] | translate
}}</mat-slide-toggle>
<mat-slide-toggle color="primary" formControlName="{{ category }}Enabled"
>{{ translations[category] | translate }}
</mat-slide-toggle>
</div>
<!-- TODO: This lots of getters-->
<div *ngIf="isCategoryActive(category)" class="options-content">
<div [translate]="'notifications-screen.options-title'" class="statement"></div>
@ -15,8 +16,8 @@
<div class="iqser-input-group">
<ng-container *ngFor="let preference of getRssFilteredSettings(notificationGroupsValues[i])">
<mat-checkbox
*ngIf="!skipPreference(preference)"
(change)="addRemovePreference($event.checked, category, preference)"
*ngIf="!skipPreference(preference)"
[checked]="isPreferenceChecked(category, preference)"
color="primary"
>

View File

@ -1,7 +1,7 @@
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';
import { UntypedFormBuilder } from '@angular/forms';
import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms';
import { NotificationPreferencesService } from '../../../services/notification-preferences.service';
import { BaseFormComponent, getConfig, LoadingService, Toaster } from '@iqser/common-ui';
import { BaseFormComponent, getConfig, IconButtonComponent, LoadingService, Toaster } from '@iqser/common-ui';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import {
DocumentNotificationsTypes,
@ -14,6 +14,10 @@ import {
import { firstValueFrom } from 'rxjs';
import { notificationsSettingsTranslations } from '@translations/notifications-settings-translations';
import { getCurrentUser } from '@iqser/common-ui/lib/users';
import { NgForOf, NgIf } from '@angular/common';
import { MatSlideToggle } from '@angular/material/slide-toggle';
import { TranslateModule } from '@ngx-translate/core';
import { MatCheckbox } from '@angular/material/checkbox';
const RSS_EXCLUDED_SETTINGS = ['USER_PROMOTED_TO_APPROVER', 'USER_DEGRADED_TO_REVIEWER', 'ASSIGN_REVIEWER'];
@ -21,6 +25,7 @@ const RSS_EXCLUDED_SETTINGS = ['USER_PROMOTED_TO_APPROVER', 'USER_DEGRADED_TO_RE
templateUrl: './notifications-screen.component.html',
styleUrls: ['./notifications-screen.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [ReactiveFormsModule, NgForOf, MatSlideToggle, TranslateModule, NgIf, MatCheckbox, IconButtonComponent],
})
export class NotificationsScreenComponent extends BaseFormComponent implements OnInit {
readonly #toaster = inject(Toaster);

View File

@ -1,16 +0,0 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { SharedModule } from '@shared/shared.module';
import { NotificationsScreenComponent } from './notifications-screen/notifications-screen.component';
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
import { TranslateModule } from '@ngx-translate/core';
import { IconButtonComponent } from '@iqser/common-ui';
const routes = [{ path: '', component: NotificationsScreenComponent, canDeactivate: [PendingChangesGuard] }];
@NgModule({
declarations: [NotificationsScreenComponent],
imports: [RouterModule.forChild(routes), CommonModule, SharedModule, TranslateModule, IconButtonComponent],
})
export class NotificationsModule {}

View File

@ -0,0 +1,11 @@
import { NotificationsScreenComponent } from './notifications-screen/notifications-screen.component';
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
import { IqserRoutes } from '@iqser/common-ui';
export default [
{
path: '',
component: NotificationsScreenComponent,
canDeactivate: [PendingChangesGuard],
},
] satisfies IqserRoutes;

View File

@ -0,0 +1,79 @@
<div class="dialog">
<form [formGroup]="form">
<div class="dialog-content">
<h1>{{ 'dialog-defaults-form.title' | translate }}</h1>
<h3>{{ 'dialog-defaults-form.redaction.title' | translate }}</h3>
<div class="iqser-input-group w-450">
<label translate="dialog-defaults-form.redaction.add-dialog"></label>
<mat-form-field>
<mat-select formControlName="addRedaction">
<mat-option *ngFor="let option of redactionAddOptions" [value]="option.value">{{
option.label | translate
}}</mat-option>
</mat-select>
</mat-form-field>
<mat-checkbox *ngIf="displayExtraOptionAddRedaction" formControlName="addRedactionApplyToAll">{{
'dialog-defaults-form.extra-option-label' | translate
}}</mat-checkbox>
</div>
<div class="iqser-input-group w-450">
<label translate="dialog-defaults-form.redaction.remove-dialog"></label>
<mat-form-field>
<mat-select formControlName="removeRedaction">
<mat-option *ngFor="let option of redactionRemoveOptions" [value]="option.value">{{
option.label | translate
}}</mat-option>
</mat-select>
</mat-form-field>
<mat-checkbox *ngIf="displayExtraOptionRemoveRedaction" formControlName="removeRedactionApplyToAll">{{
'dialog-defaults-form.extra-option-label' | translate
}}</mat-checkbox>
</div>
<h3>{{ 'dialog-defaults-form.recommendation.title' | translate }}</h3>
<div class="iqser-input-group w-450">
<label translate="dialog-defaults-form.recommendation.remove-dialog"></label>
<mat-form-field>
<mat-select formControlName="removeRecommendation">
<mat-option *ngFor="let option of recommendationRemoveOptions" [value]="option.value">{{
option.label | translate
}}</mat-option>
</mat-select>
</mat-form-field>
<mat-checkbox *ngIf="displayExtraOptionRemoveRecommendation" formControlName="removeRecommendationApplyToAll">{{
'dialog-defaults-form.extra-option-label' | translate
}}</mat-checkbox>
</div>
<h3>{{ 'dialog-defaults-form.hint.title' | translate }}</h3>
<div class="iqser-input-group w-450">
<label translate="dialog-defaults-form.hint.add-dialog"></label>
<mat-form-field>
<mat-select formControlName="addHint">
<mat-option *ngFor="let option of hintAddOptions" [value]="option.value">{{ option.label | translate }}</mat-option>
</mat-select>
</mat-form-field>
<mat-checkbox *ngIf="displayExtraOptionAddHint" formControlName="addHintApplyToAll">{{
'dialog-defaults-form.extra-option-label' | translate
}}</mat-checkbox>
</div>
<div class="iqser-input-group w-450">
<label translate="dialog-defaults-form.hint.remove-dialog"></label>
<mat-form-field>
<mat-select formControlName="removeHint">
<mat-option *ngFor="let option of removeOptions" [value]="option.value">{{ option.label | translate }}</mat-option>
</mat-select>
</mat-form-field>
<mat-checkbox *ngIf="displayExtraOptionRemoveHint" formControlName="removeHintApplyToAll">{{
'dialog-defaults-form.extra-option-label' | translate
}}</mat-checkbox>
</div>
</div>
<div class="dialog-actions">
<iqser-icon-button
(action)="save()"
[disabled]="!valid || !changed"
[label]="'preferences-screen.actions.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>
</div>

View File

@ -0,0 +1,16 @@
mat-checkbox {
margin: 8px 0 0 8px;
}
h3 {
margin-top: 24px;
margin-bottom: 4px;
}
form .iqser-input-group:not(first-of-type) {
margin-top: 8px;
}
.dialog {
margin-bottom: 0;
}

View File

@ -0,0 +1,179 @@
import { NgForOf, NgIf } from '@angular/common';
import { ChangeDetectorRef, Component, inject } from '@angular/core';
import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';
import { MatCheckbox } from '@angular/material/checkbox';
import { MatFormField } from '@angular/material/form-field';
import { MatOption, MatSelect } from '@angular/material/select';
import { BaseFormComponent } from '@common-ui/form';
import { AsControl } from '@common-ui/utils';
import { IconButtonComponent } from '@iqser/common-ui';
import { TranslateModule } from '@ngx-translate/core';
import { PreferencesKeys, UserPreferenceService } from '@users/user-preference.service';
import {
RedactOrHintOption,
RedactOrHintOptions,
RemoveRedactionOption,
RemoveRedactionOptions,
} from '../../../../file-preview/utils/dialog-types';
import {
hintAddOptions,
recommendationRemoveOptions,
redactionAddOptions,
redactionRemoveOptions,
removeOptions,
SystemDefaultType,
} from '../../../utils/dialog-defaults';
interface DefaultOptionsForm {
addRedaction: RedactOrHintOption | SystemDefaultType;
addHint: RedactOrHintOption | SystemDefaultType;
removeRedaction: RemoveRedactionOption | SystemDefaultType;
removeRecommendation: RemoveRedactionOption | SystemDefaultType;
removeHint: RemoveRedactionOption | SystemDefaultType;
addRedactionApplyToAll: boolean;
removeRedactionApplyToAll: boolean;
removeRecommendationApplyToAll: boolean;
addHintApplyToAll: boolean;
removeHintApplyToAll: boolean;
}
@Component({
selector: 'redaction-dialog-defaults',
templateUrl: './dialog-defaults.component.html',
styleUrl: './dialog-defaults.component.scss',
imports: [ReactiveFormsModule, TranslateModule, MatFormField, MatSelect, MatOption, NgForOf, MatCheckbox, NgIf, IconButtonComponent],
})
export class DialogDefaultsComponent extends BaseFormComponent {
readonly #formBuilder = inject(FormBuilder);
readonly #userPreferences = inject(UserPreferenceService);
readonly #changeDetectorRef = inject(ChangeDetectorRef);
form: FormGroup<AsControl<DefaultOptionsForm>> = this.#formBuilder.group({
addRedaction: this.#userPreferences.getAddRedactionDefaultOption(),
addHint: this.#userPreferences.getAddHintDefaultOption(),
removeRedaction: this.#userPreferences.getRemoveRedactionDefaultOption(),
removeRecommendation: this.#userPreferences.getRemoveRecommendationDefaultOption(),
removeHint: this.#userPreferences.getRemoveHintDefaultOption(),
addRedactionApplyToAll: this.#userPreferences.getBool(PreferencesKeys.addRedactionDefaultExtraOption),
removeRedactionApplyToAll: this.#userPreferences.getBool(PreferencesKeys.removeRedactionDefaultExtraOption),
removeRecommendationApplyToAll: this.#userPreferences.getBool(PreferencesKeys.removeRecommendationDefaultExtraOption),
addHintApplyToAll: this.#userPreferences.getBool(PreferencesKeys.addHintDefaultExtraOption),
removeHintApplyToAll: this.#userPreferences.getBool(PreferencesKeys.removeHintDefaultExtraOption),
});
initialFormValue = this.form.getRawValue();
readonly redactionAddOptions = redactionAddOptions;
readonly hintAddOptions = hintAddOptions;
readonly removeOptions = removeOptions;
readonly redactionRemoveOptions = redactionRemoveOptions;
readonly recommendationRemoveOptions = recommendationRemoveOptions;
constructor() {
super();
}
get displayExtraOptionAddRedaction() {
return RedactOrHintOptions.IN_DOSSIER === this.form.controls.addRedaction.value;
}
get displayExtraOptionAddHint() {
return RedactOrHintOptions.IN_DOSSIER === this.form.controls.addHint.value;
}
get displayExtraOptionRemoveRedaction() {
return (
[RemoveRedactionOptions.IN_DOSSIER, RemoveRedactionOptions.FALSE_POSITIVE] as Partial<
RemoveRedactionOption | SystemDefaultType
>[]
).includes(this.form.controls.removeRedaction.value);
}
get displayExtraOptionRemoveHint() {
return RemoveRedactionOptions.IN_DOSSIER === this.form.controls.removeHint.value;
}
get displayExtraOptionRemoveRecommendation() {
return RemoveRedactionOptions.DO_NOT_RECOMMEND === this.form.controls.removeRecommendation.value;
}
async save(): Promise<any> {
const formValue = this.form.value;
if (this.initialFormValue.addRedaction !== this.form.controls.addRedaction.value) {
await this.#userPreferences.saveAddRedactionDefaultOption(this.form.controls.addRedaction.value);
}
if (this.initialFormValue.addHint !== this.form.controls.addHint.value) {
await this.#userPreferences.saveAddHintDefaultOption(this.form.controls.addHint.value);
}
if (this.initialFormValue.removeRedaction !== this.form.controls.removeRedaction.value) {
await this.#userPreferences.saveRemoveRedactionDefaultOption(this.form.controls.removeRedaction.value);
}
if (this.initialFormValue.removeRecommendation !== this.form.controls.removeRecommendation.value) {
await this.#userPreferences.saveRemoveRecommendationDefaultOption(this.form.controls.removeRecommendation.value);
}
if (this.initialFormValue.removeHint !== this.form.controls.removeHint.value) {
await this.#userPreferences.saveRemoveHintDefaultOption(this.form.controls.removeHint.value);
}
if (this.displayExtraOptionAddRedaction) {
if (this.initialFormValue.addRedactionApplyToAll !== this.form.controls.addRedactionApplyToAll.value) {
await this.#userPreferences.saveAddRedactionDefaultExtraOption(this.form.controls.addRedactionApplyToAll.value);
}
} else {
await this.#userPreferences.saveAddRedactionDefaultExtraOption('undefined');
}
if (this.displayExtraOptionAddHint) {
if (this.initialFormValue.addHintApplyToAll !== this.form.controls.addHintApplyToAll.value) {
await this.#userPreferences.saveAddHintDefaultExtraOption(this.form.controls.addHintApplyToAll.value);
}
} else {
await this.#userPreferences.saveAddHintDefaultExtraOption('undefined');
}
if (this.displayExtraOptionRemoveRedaction) {
if (this.initialFormValue.removeRedactionApplyToAll !== this.form.controls.removeRedactionApplyToAll.value) {
await this.#userPreferences.saveRemoveRedactionDefaultExtraOption(this.form.controls.removeRedactionApplyToAll.value);
}
} else {
await this.#userPreferences.saveRemoveRedactionDefaultExtraOption('undefined');
}
if (this.displayExtraOptionRemoveHint) {
if (this.initialFormValue.removeHintApplyToAll !== this.form.controls.removeHintApplyToAll.value) {
await this.#userPreferences.saveRemoveHintDefaultExtraOption(this.form.controls.removeHintApplyToAll.value);
}
} else {
await this.#userPreferences.saveRemoveHintDefaultExtraOption('undefined');
}
if (this.displayExtraOptionRemoveRecommendation) {
if (this.initialFormValue.removeRecommendationApplyToAll !== this.form.controls.removeRecommendationApplyToAll.value) {
await this.#userPreferences.saveRemoveRecommendationDefaultExtraOption(
this.form.controls.removeRecommendationApplyToAll.value,
);
}
} else {
await this.#userPreferences.saveRemoveRecommendationDefaultExtraOption('undefined');
}
await this.#userPreferences.reload();
this.#patchValues();
this.initialFormValue = this.form.getRawValue();
this.#changeDetectorRef.markForCheck();
}
#patchValues() {
this.form.patchValue({
addRedaction: this.#userPreferences.getAddRedactionDefaultOption(),
addHint: this.#userPreferences.getAddHintDefaultOption(),
removeRedaction: this.#userPreferences.getRemoveRedactionDefaultOption(),
removeRecommendation: this.#userPreferences.getRemoveRecommendationDefaultOption(),
removeHint: this.#userPreferences.getRemoveHintDefaultOption(),
addRedactionApplyToAll: this.#userPreferences.getBool(PreferencesKeys.addRedactionDefaultExtraOption),
removeRedactionApplyToAll: this.#userPreferences.getBool(PreferencesKeys.removeRedactionDefaultExtraOption),
removeRecommendationApplyToAll: this.#userPreferences.getBool(PreferencesKeys.removeRecommendationDefaultExtraOption),
addHintApplyToAll: this.#userPreferences.getBool(PreferencesKeys.addHintDefaultExtraOption),
removeHintApplyToAll: this.#userPreferences.getBool(PreferencesKeys.removeHintDefaultExtraOption),
});
}
}

View File

@ -1,45 +1,52 @@
<form [formGroup]="form">
<div class="dialog-content">
<div *ngIf="currentScreen === screens.WARNING_PREFERENCES" class="content-delimiter"></div>
<div class="dialog-content-left">
<ng-container *ngIf="currentScreen === screens.PREFERENCES">
<div class="iqser-input-group">
<mat-slide-toggle color="primary" formControlName="autoExpandFiltersOnActions">
{{ 'preferences-screen.form.auto-expand-filters-on-action' | translate }}
</mat-slide-toggle>
</div>
<redaction-dialog-defaults *ngIf="currentScreen === screens.WARNING_PREFERENCES && !config.IS_DOCUMINE"></redaction-dialog-defaults>
<div *ngIf="config.IS_DOCUMINE" class="iqser-input-group">
<mat-slide-toggle color="primary" formControlName="openScmDialogByDefault">
{{ 'preferences-screen.form.open-structured-view-by-default' | translate }}
</mat-slide-toggle>
</div>
<div [ngClass]="currentScreen === screens.WARNING_PREFERENCES && 'dialog'">
<form [formGroup]="form">
<div class="dialog-content">
<div class="dialog-content-left">
<ng-container *ngIf="currentScreen === screens.PREFERENCES">
<div class="iqser-input-group">
<mat-slide-toggle color="primary" formControlName="autoExpandFiltersOnActions">
{{ 'preferences-screen.form.auto-expand-filters-on-action' | translate }}
</mat-slide-toggle>
</div>
<div *allow="roles.getTables" class="iqser-input-group">
<label [translate]="'preferences-screen.form.table-extraction-type'"></label>
<input formControlName="tableExtractionType" />
</div>
</ng-container>
<div *allow="roles.getTables" class="iqser-input-group">
<label [translate]="'preferences-screen.form.table-extraction-type'"></label>
<input formControlName="tableExtractionType" />
</div>
</ng-container>
<ng-container *ngIf="currentScreen === screens.WARNING_PREFERENCES">
<p class="warnings-subtitle">{{ 'preferences-screen.warnings-subtitle' | translate }}</p>
<p class="warnings-description">{{ 'preferences-screen.warnings-description' | translate }}</p>
<ng-container *ngIf="currentScreen === screens.WARNING_PREFERENCES">
<h1>{{ 'preferences-screen.warnings-subtitle' | translate }}</h1>
<p class="warnings-description">{{ 'preferences-screen.warnings-description' | translate }}</p>
<div class="iqser-input-group">
<mat-checkbox color="primary" formControlName="loadAllAnnotationsWarning">
{{ 'preferences-screen.form.load-all-annotations-warning' | translate }}
</mat-checkbox>
</div>
</ng-container>
<div class="iqser-input-group">
<mat-checkbox color="primary" formControlName="loadAllAnnotationsWarning">
{{ 'preferences-screen.form.load-all-annotations-warning' | translate }}
</mat-checkbox>
</div>
<div class="iqser-input-group">
<mat-checkbox color="primary" formControlName="helpModeDialog">
{{ 'preferences-screen.form.help-mode-dialog' | translate }}
</mat-checkbox>
</div>
<div class="iqser-input-group">
<mat-checkbox color="primary" formControlName="overwriteFileOption">
{{ 'preferences-screen.form.overwrite-file-option' | translate }}
</mat-checkbox>
</div>
</ng-container>
</div>
</div>
</div>
<div class="dialog-actions">
<iqser-icon-button
(action)="save()"
[disabled]="!valid || !changed"
[label]="'preferences-screen.actions.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>
<div class="dialog-actions">
<iqser-icon-button
(action)="save()"
[disabled]="!valid || !changed"
[label]="'preferences-screen.actions.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>
</div>

View File

@ -1,16 +1,3 @@
@use 'variables';
.content-delimiter {
border-top: 1px solid var(--iqser-separator);
margin-bottom: 15px;
}
.warnings-subtitle {
font-size: var(--iqser-font-size);
color: var(--iqser-text);
font-weight: 600;
}
.warnings-description {
width: 105%;
}

View File

@ -1,18 +1,33 @@
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';
import { ActivatedRoute } from '@angular/router';
import { BaseFormComponent, getConfig, IqserPermissionsService, isIqserDevMode, LoadingService } from '@iqser/common-ui';
import {
BaseFormComponent,
getConfig,
IconButtonComponent,
IqserAllowDirective,
IqserPermissionsService,
isIqserDevMode,
KEYS,
LoadingService,
} from '@iqser/common-ui';
import { AsControl } from '@iqser/common-ui/lib/utils';
import { Roles } from '@users/roles';
import { PreferencesKeys, UserPreferenceService } from '@users/user-preference.service';
import { DialogDefaultsComponent } from './dialog-defaults/dialog-defaults.component';
import { NgClass, NgIf } from '@angular/common';
import { MatSlideToggle } from '@angular/material/slide-toggle';
import { TranslateModule } from '@ngx-translate/core';
import { MatCheckbox } from '@angular/material/checkbox';
interface PreferencesForm {
// preferences
autoExpandFiltersOnActions: boolean;
openScmDialogByDefault: boolean;
tableExtractionType: string;
// warnings preferences
loadAllAnnotationsWarning: boolean;
helpModeDialog: boolean;
overwriteFileOption: boolean;
[k: string]: any;
}
@ -29,8 +44,25 @@ const Screens = {
templateUrl: './preferences.component.html',
styleUrls: ['./preferences.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
DialogDefaultsComponent,
NgClass,
NgIf,
ReactiveFormsModule,
MatSlideToggle,
TranslateModule,
IqserAllowDirective,
MatCheckbox,
IconButtonComponent,
],
})
export class PreferencesComponent extends BaseFormComponent implements OnInit {
readonly #formBuilder = inject(FormBuilder);
readonly #permissionsService = inject(IqserPermissionsService);
readonly #changeRef = inject(ChangeDetectorRef);
readonly #loadingService = inject(LoadingService);
readonly #userPreferenceService = inject(UserPreferenceService);
readonly form: FormGroup<AsControl<PreferencesForm>>;
readonly currentScreen: Screen;
readonly screens = Screens;
@ -39,75 +71,87 @@ export class PreferencesComponent extends BaseFormComponent implements OnInit {
readonly config = getConfig();
readonly isIqserDevMode = isIqserDevMode();
constructor(
route: ActivatedRoute,
readonly userPreferenceService: UserPreferenceService,
private readonly _formBuilder: FormBuilder,
private readonly _permissionsService: IqserPermissionsService,
private readonly _changeRef: ChangeDetectorRef,
private readonly _loadingService: LoadingService,
) {
get #isOverwriteFileOptionActive() {
return !(this.#userPreferenceService.getOverwriteFileOption() === 'undefined');
}
constructor(route: ActivatedRoute) {
super();
this.form = this._formBuilder.group({
this.form = this.#formBuilder.group({
// preferences
autoExpandFiltersOnActions: [this.userPreferenceService.getAutoExpandFiltersOnActions()],
openScmDialogByDefault: [this.userPreferenceService.getOpenScmDialogByDefault()],
tableExtractionType: [this.userPreferenceService.getTableExtractionType()],
autoExpandFiltersOnActions: [this.#userPreferenceService.getAutoExpandFiltersOnActions()],
tableExtractionType: [this.#userPreferenceService.getTableExtractionType()],
// warnings preferences
loadAllAnnotationsWarning: [this.userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning)],
loadAllAnnotationsWarning: [this.#userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning)],
helpModeDialog: [this.#userPreferenceService.getBool(KEYS.helpModeDialog)],
overwriteFileOption: [this.#isOverwriteFileOptionActive],
});
if (!this._permissionsService.has(Roles.managePreferences)) {
if (!this.#permissionsService.has(Roles.managePreferences)) {
this.form.disable();
}
if (!this._permissionsService.has(Roles.getTables)) {
if (!this.#permissionsService.has(Roles.getTables)) {
this.form.controls.tableExtractionType.disable();
}
if (!this.#isOverwriteFileOptionActive) {
this.form.controls.overwriteFileOption.disable();
}
this.initialFormValue = this.form.getRawValue();
this.currentScreen = route.snapshot.data.screen;
}
ngOnInit() {
this._loadingService.stop();
this.#loadingService.stop();
}
async save(): Promise<any> {
if (this.form.controls.autoExpandFiltersOnActions.value !== this.userPreferenceService.getAutoExpandFiltersOnActions()) {
await this.userPreferenceService.toggleAutoExpandFiltersOnActions();
}
if (this.form.controls.openScmDialogByDefault.value !== this.userPreferenceService.getOpenScmDialogByDefault()) {
await this.userPreferenceService.toggleOpenScmDialogByDefault();
if (this.form.controls.autoExpandFiltersOnActions.value !== this.#userPreferenceService.getAutoExpandFiltersOnActions()) {
await this.#userPreferenceService.toggleAutoExpandFiltersOnActions();
}
if (this.form.controls.tableExtractionType.value !== this.userPreferenceService.getTableExtractionType()) {
await this.userPreferenceService.save(PreferencesKeys.tableExtractionType, this.form.controls.tableExtractionType.value);
if (this.form.controls.tableExtractionType.value !== this.#userPreferenceService.getTableExtractionType()) {
await this.#userPreferenceService.save(PreferencesKeys.tableExtractionType, this.form.controls.tableExtractionType.value);
}
if (
this.form.controls.loadAllAnnotationsWarning.value !==
this.userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning)
this.#userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning)
) {
await this.userPreferenceService.save(
await this.#userPreferenceService.save(
PreferencesKeys.loadAllAnnotationsWarning,
String(this.form.controls.loadAllAnnotationsWarning.value),
);
}
await this.userPreferenceService.reload();
if (this.form.controls.helpModeDialog.value !== this.#userPreferenceService.getBool(KEYS.helpModeDialog)) {
await this.#userPreferenceService.save(KEYS.helpModeDialog, String(this.form.controls.helpModeDialog.value));
}
if (this.form.controls.overwriteFileOption.enabled && !this.form.controls.overwriteFileOption.value) {
await this.#userPreferenceService.saveOverwriteFileOption('undefined');
}
await this.#userPreferenceService.reload();
this.#patchValues();
this.initialFormValue = this.form.getRawValue();
this._changeRef.markForCheck();
this.#changeRef.markForCheck();
}
#patchValues() {
this.form.patchValue({
autoExpandFiltersOnActions: this.userPreferenceService.getAutoExpandFiltersOnActions(),
openScmDialogByDefault: this.userPreferenceService.getOpenScmDialogByDefault(),
tableExtractionType: this.userPreferenceService.getTableExtractionType(),
loadAllAnnotationsWarning: this.userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning),
autoExpandFiltersOnActions: this.#userPreferenceService.getAutoExpandFiltersOnActions(),
tableExtractionType: this.#userPreferenceService.getTableExtractionType(),
loadAllAnnotationsWarning: this.#userPreferenceService.getBool(PreferencesKeys.loadAllAnnotationsWarning),
helpModeDialog: this.#userPreferenceService.getBool(KEYS.helpModeDialog),
overwriteFileOption: this.#isOverwriteFileOptionActive,
});
if (!this.#isOverwriteFileOptionActive) {
this.form.controls.overwriteFileOption.disable();
}
}
}

View File

@ -1,7 +1,8 @@
import { Component } from '@angular/core';
import { BaseDialogComponent } from '@iqser/common-ui';
import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent } from '@iqser/common-ui';
import { MatDialogRef } from '@angular/material/dialog';
import { AbstractControl, FormGroup, Validators } from '@angular/forms';
import { AbstractControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
import { TranslateModule } from '@ngx-translate/core';
interface FormType {
password: AbstractControl<string>;
@ -9,6 +10,7 @@ interface FormType {
@Component({
templateUrl: './confirm-password-dialog.component.html',
imports: [ReactiveFormsModule, IconButtonComponent, TranslateModule, CircleButtonComponent],
})
export class ConfirmPasswordDialogComponent extends BaseDialogComponent {
constructor(protected readonly _dialogRef: MatDialogRef<ConfirmPasswordDialogComponent>) {

View File

@ -16,32 +16,37 @@
<input formControlName="lastName" name="lastName" type="text" />
</div>
<div *ngIf="devMode" class="iqser-input-group">
<div class="iqser-input-group">
<label [translate]="'top-bar.navigation-items.my-account.children.language.label'"></label>
<mat-form-field>
<mat-select formControlName="language">
<mat-option *ngFor="let language of languages" [value]="language">
{{ translations[language] | translate }}
</mat-option>
<mat-select-trigger>{{ languageSelectLabel() | translate }}</mat-select-trigger>
@for (language of languages; track language) {
<mat-option [value]="language">
{{ translations[language] | translate }}
</mat-option>
}
</mat-select>
</mat-form-field>
</div>
<div class="iqser-input-group">
<a [href]="changePasswordUrl" target="_blank"> {{ 'user-profile-screen.actions.change-password' | translate }}</a>
<a (click)="resetPassword()" target="_blank"> {{ 'user-profile-screen.actions.change-password' | translate }}</a>
</div>
<div *ngIf="devMode" class="iqser-input-group">
<mat-slide-toggle color="primary" formControlName="darkTheme">
{{ 'user-profile-screen.form.dark-theme' | translate }}
</mat-slide-toggle>
</div>
@if (devMode) {
<div class="iqser-input-group">
<mat-slide-toggle color="primary" formControlName="darkTheme">
{{ 'user-profile-screen.form.dark-theme' | translate }}
</mat-slide-toggle>
</div>
}
</div>
</div>
<div class="dialog-actions">
<iqser-icon-button
[disabled]="form.invalid || !(profileChanged || languageChanged || themeChanged)"
[disabled]="disabled"
[label]="'user-profile-screen.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"

View File

@ -1,31 +1,64 @@
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { DomSanitizer } from '@angular/platform-browser';
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed } from '@angular/core';
import { FormGroup, ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { BaseFormComponent, getConfig, IqserPermissionsService, LanguageService, LoadingService, Toaster } from '@iqser/common-ui';
import { TenantsService } from '@iqser/common-ui/lib/tenants';
import { TranslateService } from '@ngx-translate/core';
import { AppConfig, IProfile } from '@red/domain';
import {
BaseFormComponent,
IconButtonComponent,
IqserPermissionsService,
LanguageService,
LoadingService,
Toaster,
} from '@iqser/common-ui';
import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { IProfile } from '@red/domain';
import { languagesTranslations } from '@translations/languages-translations';
import { Roles } from '@users/roles';
import { UserPreferenceService } from '@users/user-preference.service';
import { UserService } from '@users/user.service';
import { firstValueFrom } from 'rxjs';
import { UserProfileDialogService } from '../services/user-profile-dialog.service';
import { MatFormField } from '@angular/material/form-field';
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
import { MatSlideToggle } from '@angular/material/slide-toggle';
import { PdfViewer } from '../../../../pdf-viewer/services/pdf-viewer.service';
import { formControlToSignal } from '@utils/functions';
import { AsControl } from '@common-ui/utils';
interface UserProfileForm {
email: string;
firstName: string;
lastName: string;
language: string;
darkTheme: boolean;
}
@Component({
templateUrl: './user-profile-screen.component.html',
styleUrls: ['./user-profile-screen.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
ReactiveFormsModule,
MatFormField,
MatSelect,
MatOption,
TranslateModule,
MatSlideToggle,
IconButtonComponent,
MatSelectTrigger,
],
})
export class UserProfileScreenComponent extends BaseFormComponent implements OnInit {
#profileModel: IProfile;
export class UserProfileScreenComponent extends BaseFormComponent {
readonly form: FormGroup<AsControl<UserProfileForm>> = this.#getForm();
initialFormValue = this.form.getRawValue();
readonly translations = languagesTranslations;
readonly devMode = this._userPreferenceService.isIqserDevMode;
readonly changePasswordUrl: string;
readonly profileKeys = ['email', 'firstName', 'lastName'];
readonly languages = this._translateService.langs;
readonly language = formControlToSignal<UserProfileForm['language']>(this.form.controls.language);
readonly languageSelectLabel = computed(() => this.translations[this.language()]);
constructor(
domSanitizer: DomSanitizer,
private readonly _userService: UserService,
private readonly _loadingService: LoadingService,
private readonly _dialogService: UserProfileDialogService,
@ -36,46 +69,29 @@ export class UserProfileScreenComponent extends BaseFormComponent implements OnI
protected readonly _userPreferenceService: UserPreferenceService,
private readonly _changeRef: ChangeDetectorRef,
private readonly _toaster: Toaster,
private readonly _pdfViewer: PdfViewer,
) {
super();
this._loadingService.start();
const tenant = inject(TenantsService).activeTenantId;
const realmUrl = `${getConfig<AppConfig>().OAUTH_URL}/realms/${tenant}`;
this.changePasswordUrl = `${realmUrl}/account/password`;
if (!this._permissionsService.has(Roles.updateMyProfile)) {
this.form.disable();
}
this._loadingService.stop();
}
get languageChanged(): boolean {
return this.#profileModel['language'] !== this.form.get('language').value;
return this.initialFormValue['language'] !== this.form.controls.language.value;
}
get themeChanged(): boolean {
return this.#profileModel['darkTheme'] !== this.form.get('darkTheme').value;
return this.initialFormValue['darkTheme'] !== this.form.controls.darkTheme.value;
}
get emailChanged(): boolean {
return this.#profileModel['email'] !== this.form.get('email').value;
return this.initialFormValue['email'] !== this.form.controls.email.value;
}
get profileChanged(): boolean {
const keys = Object.keys(this.form.getRawValue());
keys.splice(keys.indexOf('language'), 1);
keys.splice(keys.indexOf('darkTheme'), 1);
for (const key of keys) {
if (this.#profileModel[key] !== this.form.get(key).value) {
return true;
}
}
return false;
}
get languages(): string[] {
return this._translateService.langs;
}
ngOnInit() {
this._initializeForm();
return this.profileKeys.some(key => this.initialFormValue[key] !== this.form.get(key).value);
}
async save(): Promise<void> {
@ -100,50 +116,34 @@ export class UserProfileScreenComponent extends BaseFormComponent implements OnI
}
if (this.languageChanged) {
await this._languageService.change(this.form.get('language').value);
await this._languageService.change(this.form.controls.language.value);
await this._pdfViewer.instance?.UI.setLanguage(this._languageService.currentLanguage);
}
if (this.themeChanged) {
await this._userPreferenceService.saveTheme(this.form.get('darkTheme').value ? 'dark' : 'light');
await this._userPreferenceService.saveTheme(this.form.controls.darkTheme.value ? 'dark' : 'light');
}
this._initializeForm();
this.initialFormValue = this.form.getRawValue();
this._changeRef.markForCheck();
this._loadingService.stop();
this._toaster.success(_('user-profile-screen.update.success'));
} catch (e) {
this._loadingService.stop();
}
}
private _getForm(): UntypedFormGroup {
return this._formBuilder.group({
email: ['', [Validators.required, Validators.email]],
firstName: [''],
lastName: [''],
language: [''],
darkTheme: [false],
});
async resetPassword() {
await this._userService.createResetPasswordAction();
}
private _initializeForm(): void {
try {
this.form = this._getForm();
if (!this._permissionsService.has(Roles.updateMyProfile)) {
this.form.disable();
}
this.#profileModel = {
email: this._userService.currentUser.email ?? '',
firstName: this._userService.currentUser.firstName ?? '',
lastName: this._userService.currentUser.lastName ?? '',
language: this._languageService.currentLanguage ?? '',
darkTheme: this._userPreferenceService.getTheme() === 'dark',
};
this.form.patchValue(this.#profileModel, { emitEvent: false });
this.initialFormValue = this.form.getRawValue();
} catch (e) {
} finally {
this._loadingService.stop();
this._changeRef.markForCheck();
}
#getForm() {
return this._formBuilder.group({
email: [this._userService.currentUser.email ?? '', [Validators.required, Validators.email]],
firstName: [this._userService.currentUser.firstName ?? ''],
lastName: [this._userService.currentUser.lastName ?? ''],
language: [this._userPreferenceService.getLanguage()],
darkTheme: [this._userPreferenceService.getTheme() === 'dark'],
});
}
}

View File

@ -1,19 +0,0 @@
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { SharedModule } from '@shared/shared.module';
import { UserProfileScreenComponent } from './user-profile-screen/user-profile-screen.component';
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
import { TranslateModule } from '@ngx-translate/core';
import { ConfirmPasswordDialogComponent } from './confirm-password-dialog/confirm-password-dialog.component';
import { UserProfileDialogService } from './services/user-profile-dialog.service';
import { CircleButtonComponent, IconButtonComponent } from '@iqser/common-ui';
const routes = [{ path: '', component: UserProfileScreenComponent, canDeactivate: [PendingChangesGuard] }];
@NgModule({
declarations: [UserProfileScreenComponent, ConfirmPasswordDialogComponent],
imports: [RouterModule.forChild(routes), CommonModule, SharedModule, TranslateModule, IconButtonComponent, CircleButtonComponent],
providers: [UserProfileDialogService],
})
export class UserProfileModule {}

View File

@ -0,0 +1,8 @@
import { UserProfileScreenComponent } from './user-profile-screen/user-profile-screen.component';
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
import { UserProfileDialogService } from './services/user-profile-dialog.service';
import { IqserRoutes } from '@iqser/common-ui';
export default [
{ path: '', component: UserProfileScreenComponent, canDeactivate: [PendingChangesGuard], providers: [UserProfileDialogService] },
] satisfies IqserRoutes;

View File

@ -0,0 +1,95 @@
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { addHintTranslations } from '@translations/add-hint-translations';
import { redactTextTranslations } from '@translations/redact-text-translations';
import { removeRedactionTranslations } from '@translations/remove-redaction-translations';
import {
ForceAnnotationOptions,
RectangleRedactOptions,
RedactOrHintOptions,
RemoveRedactionOptions,
} from '../../file-preview/utils/dialog-types';
export const SystemDefaults = {
RECTANGLE_REDACT_DEFAULT: RectangleRedactOptions.ONLY_THIS_PAGE,
ADD_REDACTION_DEFAULT: RedactOrHintOptions.IN_DOSSIER,
ADD_HINT_DEFAULT: RedactOrHintOptions.IN_DOSSIER,
FORCE_REDACTION_DEFAULT: ForceAnnotationOptions.ONLY_HERE,
REMOVE_REDACTION_DEFAULT: RemoveRedactionOptions.ONLY_HERE,
REMOVE_HINT_DEFAULT: RemoveRedactionOptions.ONLY_HERE,
REMOVE_RECOMMENDATION_DEFAULT: RemoveRedactionOptions.DO_NOT_RECOMMEND,
} as const;
export const SystemDefaultOption = {
SYSTEM_DEFAULT: 'SYSTEM_DEFAULT',
label: _('dialog-defaults-form.system-default'),
} as const;
export type SystemDefaultType = typeof SystemDefaultOption.SYSTEM_DEFAULT;
export const redactionAddOptions = [
{
label: SystemDefaultOption.label,
value: SystemDefaultOption.SYSTEM_DEFAULT,
},
{
label: redactTextTranslations.onlyHere.label,
value: RedactOrHintOptions.ONLY_HERE,
},
{
label: redactTextTranslations.inDocument.label,
value: RedactOrHintOptions.IN_DOCUMENT,
},
{
label: redactTextTranslations.inDossier.label,
value: RedactOrHintOptions.IN_DOSSIER,
},
];
export const hintAddOptions = [
{
label: SystemDefaultOption.label,
value: SystemDefaultOption.SYSTEM_DEFAULT,
},
{
label: addHintTranslations.onlyHere.label,
value: RedactOrHintOptions.ONLY_HERE,
},
{
label: addHintTranslations.inDossier.label,
value: RedactOrHintOptions.IN_DOSSIER,
},
];
export const removeOptions = [
{
label: SystemDefaultOption.label,
value: SystemDefaultOption.SYSTEM_DEFAULT,
},
{
label: removeRedactionTranslations.ONLY_HERE.label,
value: RemoveRedactionOptions.ONLY_HERE,
},
{
label: removeRedactionTranslations.IN_DOSSIER.label,
value: RemoveRedactionOptions.IN_DOSSIER,
},
];
export const redactionRemoveOptions = [
...removeOptions,
{
label: removeRedactionTranslations.FALSE_POSITIVE.label,
value: RemoveRedactionOptions.FALSE_POSITIVE,
},
];
export const recommendationRemoveOptions = [
{
label: SystemDefaultOption.label,
value: SystemDefaultOption.SYSTEM_DEFAULT,
},
{
label: removeRedactionTranslations.DO_NOT_RECOMMEND.label,
value: RemoveRedactionOptions.DO_NOT_RECOMMEND,
},
];

View File

@ -1,282 +0,0 @@
import { NgModule } from '@angular/core';
import { CompositeRouteGuard, IqserPermissionsGuard, IqserRoutes } from '@iqser/common-ui';
import { RedRoleGuard } from '@users/red-role.guard';
import { EntitiesListingScreenComponent } from './screens/entities-listing/entities-listing-screen.component';
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
import { DefaultColorsScreenComponent } from './screens/default-colors/default-colors-screen.component';
import { UserListingScreenComponent } from './screens/user-listing/user-listing-screen.component';
import { DigitalSignatureScreenComponent } from './screens/digital-signature/digital-signature-screen.component';
import { AuditScreenComponent } from './screens/audit/audit-screen.component';
import { RouterModule } from '@angular/router';
import { GeneralConfigScreenComponent } from './screens/general-config/general-config-screen.component';
import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen.component';
import { BaseDossierTemplateScreenComponent } from './base-dossier-templates-screen/base-dossier-template-screen.component';
import { DossierTemplatesGuard } from '@guards/dossier-templates.guard';
import { DOSSIER_TEMPLATE_ID, ENTITY_TYPE } from '@red/domain';
import { templateExistsWhenEnteringAdmin } from '@guards/dossier-template-exists.guard';
import { entityExistsGuard } from '@guards/entity-exists-guard.service';
import { BaseEntityScreenComponent } from './base-entity-screen/base-entity-screen.component';
import { PermissionsGuard } from '@guards/permissions-guard';
import { Roles } from '@users/roles';
import { IqserAuthGuard } from '@iqser/common-ui/lib/users';
const dossierTemplateIdRoutes: IqserRoutes = [
{
path: 'info',
component: BaseDossierTemplateScreenComponent,
loadChildren: () => import('./screens/info/dossier-template-info.module').then(m => m.DossierTemplateInfoModule),
},
{
path: 'entities',
children: [
{
path: '',
component: EntitiesListingScreenComponent,
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: `:${ENTITY_TYPE}`,
component: BaseEntityScreenComponent,
canActivate: [CompositeRouteGuard, entityExistsGuard()],
loadChildren: () => import('./screens/entities/entities.module').then(m => m.EntitiesModule),
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
],
},
{
path: 'entity-rules',
component: BaseDossierTemplateScreenComponent,
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
permissions: {
allow: [Roles.rules.read],
redirectTo: 'info',
},
type: 'ENTITY',
},
loadChildren: () => import('./screens/rules/rules.module').then(m => m.RulesModule),
},
{
path: 'component-rules',
component: BaseDossierTemplateScreenComponent,
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
permissions: {
allow: [Roles.rules.read],
redirectTo: 'info',
},
type: 'COMPONENT',
},
loadChildren: () => import('./screens/rules/rules.module').then(m => m.RulesModule),
},
{
path: 'file-attributes',
component: BaseDossierTemplateScreenComponent,
loadChildren: () =>
import('./screens/file-attributes-listing/file-attributes-listing.module').then(m => m.FileAttributesListingModule),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'watermarks',
component: BaseDossierTemplateScreenComponent,
loadChildren: () => import('./screens/watermark/watermark.module').then(m => m.WatermarkModule),
},
{
path: 'reports',
component: BaseDossierTemplateScreenComponent,
loadChildren: () => import('./screens/reports/reports.module').then(m => m.ReportsModule),
canActivate: [IqserAuthGuard, IqserPermissionsGuard],
data: {
permissions: {
allow: [Roles.reportTemplates.read],
redirectTo: '/auth-error',
},
},
},
{
path: 'dossier-attributes',
component: BaseDossierTemplateScreenComponent,
loadChildren: () =>
import('./screens/dossier-attributes-listing/dossier-attributes-listing.module').then(m => m.DossierAttributesListingModule),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'dossier-states',
component: BaseDossierTemplateScreenComponent,
loadChildren: () =>
import('./screens/dossier-states-listing/dossier-states-listing.module').then(m => m.DossierStatesListingModule),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'default-colors',
component: DefaultColorsScreenComponent,
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'justifications',
component: BaseDossierTemplateScreenComponent,
loadChildren: () => import('./screens/justifications/justifications.module').then(m => m.JustificationsModule),
canActivate: [IqserPermissionsGuard],
data: {
permissions: {
allow: [Roles.legalBasis.read],
redirectTo: '/auth-error',
},
},
},
{ path: '', redirectTo: 'info', pathMatch: 'full' },
];
const dossierTemplatesRoutes: IqserRoutes = [
{
path: '',
component: BaseAdminScreenComponent,
canActivate: [IqserAuthGuard],
loadChildren: () =>
import('./screens/dossier-templates-listing/dossier-templates-listing.module').then(m => m.DossierTemplatesListingModule),
},
{
path: `:${DOSSIER_TEMPLATE_ID}`,
children: dossierTemplateIdRoutes,
canActivate: [templateExistsWhenEnteringAdmin()],
},
];
const routes: IqserRoutes = [
{ path: '', redirectTo: 'dossier-templates', pathMatch: 'full' },
{
path: 'dossier-templates',
children: dossierTemplatesRoutes,
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard, DossierTemplatesGuard],
requiredRoles: ['RED_MANAGER', 'RED_ADMIN'],
permissions: {
allow: [Roles.templates.read],
redirectTo: '/',
},
},
},
{
path: 'users',
component: BaseAdminScreenComponent,
children: [
{
path: '',
component: UserListingScreenComponent,
},
],
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
permissions: {
allow: [Roles.users.read, 'RED_USER_ADMIN'],
redirectTo: '/',
},
},
},
{
path: 'dossier-permissions',
component: BaseAdminScreenComponent,
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard, PermissionsGuard],
permissionsObject: 'Dossier',
permissions: {
allow: [Roles.manageAclPermissions, 'RED_ADMIN'],
redirectTo: '/',
},
},
loadChildren: () => import('./screens/permissions/permissions.module').then(m => m.PermissionsModule),
},
{
path: 'license-info',
component: BaseAdminScreenComponent,
canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
data: {
permissions: {
allow: [Roles.license.readReport, 'RED_ADMIN'],
redirectTo: '/',
},
},
loadChildren: () => import('./screens/license/license.module').then(m => m.LicenseModule),
},
{
path: 'digital-signature',
component: BaseAdminScreenComponent,
children: [
{
path: '',
component: DigitalSignatureScreenComponent,
},
],
canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
data: {
permissions: {
allow: [Roles.digitalSignature.read, 'RED_ADMIN'],
redirectTo: '/',
},
},
},
{
path: 'audit',
component: BaseAdminScreenComponent,
children: [
{
path: '',
component: AuditScreenComponent,
},
],
canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
data: {
permissions: {
allow: [Roles.searchAudit, 'RED_ADMIN'],
redirectTo: '/',
},
},
},
{
path: 'general-config',
component: BaseAdminScreenComponent,
children: [
{
path: '',
component: GeneralConfigScreenComponent,
},
],
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
canDeactivate: [PendingChangesGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
permissions: {
allow: [Roles.generalConfiguration.read, Roles.smtp.read, 'RED_ADMIN'],
redirectTo: '/',
},
},
},
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class AdminRoutingModule {}

View File

@ -1,130 +0,0 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AdminRoutingModule } from './admin-routing.module';
import { SharedModule } from '@shared/shared.module';
import { AuditScreenComponent } from './screens/audit/audit-screen.component';
import { DefaultColorsScreenComponent } from './screens/default-colors/default-colors-screen.component';
import { EntitiesListingScreenComponent } from './screens/entities-listing/entities-listing-screen.component';
import { DigitalSignatureScreenComponent } from './screens/digital-signature/digital-signature-screen.component';
import { UserListingScreenComponent } from './screens/user-listing/user-listing-screen.component';
import { DossierTemplateBreadcrumbsComponent } from './shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component';
import { AddEditCloneDossierTemplateDialogComponent } from './dialogs/add-edit-dossier-template-dialog/add-edit-clone-dossier-template-dialog.component';
import { AddEntityDialogComponent } from './dialogs/add-entity-dialog/add-entity-dialog.component';
import { EditColorDialogComponent } from './dialogs/edit-color-dialog/edit-color-dialog.component';
import { AdminDialogService } from './services/admin-dialog.service';
import { GeneralConfigScreenComponent } from './screens/general-config/general-config-screen.component';
import { SmtpAuthDialogComponent } from './dialogs/smtp-auth-dialog/smtp-auth-dialog.component';
import { AddEditUserDialogComponent } from './dialogs/add-edit-user-dialog/add-edit-user-dialog.component';
import { UsersStatsComponent } from './components/users-stats/users-stats.component';
import { ResetPasswordComponent } from './dialogs/add-edit-user-dialog/reset-password/reset-password.component';
import { UserDetailsComponent } from './dialogs/add-edit-user-dialog/user-details/user-details.component';
import { AuditService } from './services/audit.service';
import { DigitalSignatureService } from './services/digital-signature.service';
import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen.component';
import { RulesService } from './services/rules.service';
import { SmtpConfigService } from './services/smtp-config.service';
import { UploadDictionaryDialogComponent } from './dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component';
import { GeneralConfigFormComponent } from './screens/general-config/general-config-form/general-config-form.component';
import { SmtpFormComponent } from './screens/general-config/smtp-form/smtp-form.component';
import { BaseDossierTemplateScreenComponent } from './base-dossier-templates-screen/base-dossier-template-screen.component';
import { A11yModule } from '@angular/cdk/a11y';
import { BaseEntityScreenComponent } from './base-entity-screen/base-entity-screen.component';
import { AdminSideNavComponent } from './shared/components/admin-side-nav/admin-side-nav.component';
import { SystemPreferencesFormComponent } from './screens/general-config/system-preferences-form/system-preferences-form.component';
import { ConfigureCertificateDialogComponent } from './dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component';
import { PkcsSignatureConfigurationComponent } from './dialogs/configure-digital-signature-dialog/form/pkcs-signature-configuration/pkcs-signature-configuration.component';
import { KmsSignatureConfigurationComponent } from './dialogs/configure-digital-signature-dialog/form/kms-signature-configuration/kms-signature-configuration.component';
import {
ChevronButtonComponent,
CircleButtonComponent,
DetailsRadioComponent,
EditableInputComponent,
EmptyStateComponent,
HasScrollbarDirective,
HumanizePipe,
IconButtonComponent,
InputWithActionComponent,
IqserAllowDirective,
IqserDenyDirective,
IqserHelpModeModule,
IqserListingModule,
IqserUploadFileModule,
RoundCheckboxComponent,
} from '@iqser/common-ui';
import { TranslateModule } from '@ngx-translate/core';
import { AuditInfoDialogComponent } from './dialogs/audit-info-dialog/audit-info-dialog.component';
import { DossierTemplateActionsComponent } from './shared/components/dossier-template-actions/dossier-template-actions.component';
import { IqserUsersModule } from '@iqser/common-ui/lib/users';
import { TenantPipe } from '@iqser/common-ui/lib/tenants';
import { SelectComponent } from '@shared/components/select/select.component';
const dialogs = [
AddEditCloneDossierTemplateDialogComponent,
AddEntityDialogComponent,
EditColorDialogComponent,
SmtpAuthDialogComponent,
AddEditUserDialogComponent,
UploadDictionaryDialogComponent,
ConfigureCertificateDialogComponent,
AuditInfoDialogComponent,
];
const screens = [
AuditScreenComponent,
DefaultColorsScreenComponent,
EntitiesListingScreenComponent,
DigitalSignatureScreenComponent,
UserListingScreenComponent,
GeneralConfigScreenComponent,
];
const components = [
UsersStatsComponent,
ResetPasswordComponent,
UserDetailsComponent,
BaseAdminScreenComponent,
BaseDossierTemplateScreenComponent,
BaseEntityScreenComponent,
GeneralConfigFormComponent,
SmtpFormComponent,
SystemPreferencesFormComponent,
PkcsSignatureConfigurationComponent,
KmsSignatureConfigurationComponent,
...dialogs,
...screens,
];
@NgModule({
declarations: [...components],
providers: [AdminDialogService, AuditService, DigitalSignatureService, RulesService, SmtpConfigService],
imports: [
CommonModule,
SharedModule,
AdminRoutingModule,
A11yModule,
IqserUsersModule,
TranslateModule,
HumanizePipe,
IqserListingModule,
IqserUploadFileModule,
IqserHelpModeModule,
AdminSideNavComponent,
DossierTemplateActionsComponent,
DossierTemplateBreadcrumbsComponent,
IconButtonComponent,
CircleButtonComponent,
ChevronButtonComponent,
EmptyStateComponent,
HasScrollbarDirective,
RoundCheckboxComponent,
InputWithActionComponent,
EditableInputComponent,
DetailsRadioComponent,
IqserAllowDirective,
IqserDenyDirective,
TenantPipe,
SelectComponent,
],
})
export class AdminModule {}

View File

@ -0,0 +1,302 @@
import { inject, provideEnvironmentInitializer } from '@angular/core';
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
import { templateExistsWhenEnteringAdmin } from '@guards/dossier-template-exists.guard';
import { DossierTemplatesGuard } from '@guards/dossier-templates.guard';
import { entityExistsGuard } from '@guards/entity-exists-guard.service';
import { PermissionsGuard } from '@guards/permissions-guard';
import { CompositeRouteGuard, IqserPermissionsGuard, IqserRoutes } from '@iqser/common-ui';
import { IqserAuthGuard } from '@iqser/common-ui/lib/users';
import { DOSSIER_TEMPLATE_ID, ENTITY_TYPE } from '@red/domain';
import { CopilotService } from '@services/copilot.service';
import { RedRoleGuard } from '@users/red-role.guard';
import { Roles } from '@users/roles';
import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen.component';
import { BaseDossierTemplateScreenComponent } from './base-dossier-templates-screen/base-dossier-template-screen.component';
import { BaseEntityScreenComponent } from './base-entity-screen/base-entity-screen.component';
import { AuditScreenComponent } from './screens/audit/audit-screen.component';
import { DefaultColorsScreenComponent } from './screens/default-colors/default-colors-screen.component';
import { DigitalSignatureScreenComponent } from './screens/digital-signature/digital-signature-screen.component';
import { EntitiesListingScreenComponent } from './screens/entities-listing/entities-listing-screen.component';
import { GeneralConfigScreenComponent } from './screens/general-config/general-config-screen.component';
import { UserListingScreenComponent } from './screens/user-listing/user-listing-screen.component';
import { AdminDialogService } from './services/admin-dialog.service';
import { AuditService } from './services/audit.service';
import { DigitalSignatureService } from './services/digital-signature.service';
import { RulesService } from './services/rules.service';
import { SmtpConfigService } from './services/smtp-config.service';
const entityRoutes: IqserRoutes = [
{
path: '',
component: BaseDossierTemplateScreenComponent,
children: [{ path: '', component: EntitiesListingScreenComponent }],
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: `:${ENTITY_TYPE}`,
component: BaseEntityScreenComponent,
canActivate: [CompositeRouteGuard, entityExistsGuard()],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
loadChildren: () => import('./screens/entities/entities.routes'),
},
];
const dossierTemplateIdRoutes: IqserRoutes = [
{ path: '', redirectTo: 'info', pathMatch: 'full' },
{
path: 'info',
component: BaseDossierTemplateScreenComponent,
children: [
{
path: '',
canDeactivate: [PendingChangesGuard],
loadComponent: () => import('./screens/info/dossier-template-info-screen/dossier-template-info-screen.component'),
},
],
},
{
path: 'entities',
children: entityRoutes,
},
{
path: '',
component: BaseDossierTemplateScreenComponent,
children: [
{
path: 'entity-rules',
loadComponent: () => import('./screens/rules/rules-screen/rules-screen.component'),
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
canDeactivate: [PendingChangesGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
permissions: {
allow: [Roles.rules.read],
redirectTo: 'info',
},
type: 'ENTITY',
},
providers: [
RulesService,
provideEnvironmentInitializer(() => {
return inject(CopilotService).connectAsync('/api/llm/llm-websocket');
}),
],
},
{
path: 'component-rules',
loadComponent: () => import('./screens/rules/rules-screen/rules-screen.component'),
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
canDeactivate: [PendingChangesGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
permissions: {
allow: [Roles.rules.read],
redirectTo: 'info',
},
type: 'COMPONENT',
},
providers: [RulesService],
},
{
path: 'component-mappings',
loadComponent: () => import('./screens/component-mappings/component-mappings-screen.component'),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'components',
loadComponent: () => import('./screens/component-definitions/component-definitions.component'),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'file-attributes',
loadComponent: () => import('./screens/file-attributes-listing/file-attributes-listing-screen.component'),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'watermarks',
loadChildren: () => import('./screens/watermark/watermark.routes'),
},
{
path: 'reports',
loadComponent: () => import('./screens/reports/reports-screen/reports-screen.component'),
canActivate: [IqserAuthGuard, IqserPermissionsGuard],
data: {
permissions: {
allow: [Roles.reportTemplates.read],
redirectTo: '/auth-error',
},
},
},
{
path: 'dossier-attributes',
loadComponent: () => import('./screens/dossier-attributes-listing/dossier-attributes-listing-screen.component'),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'dossier-states',
loadComponent: () =>
import('./screens/dossier-states-listing/dossier-states-listing-screen/dossier-states-listing-screen.component'),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'default-colors',
component: DefaultColorsScreenComponent,
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
path: 'justifications',
loadComponent: () => import('./screens/justifications/justifications-screen/justifications-screen.component'),
canActivate: [IqserPermissionsGuard],
data: {
permissions: {
allow: [Roles.legalBasis.read],
redirectTo: '/auth-error',
},
},
},
],
},
];
const dossierTemplatesRoutes: IqserRoutes = [
{
path: '',
component: BaseAdminScreenComponent,
children: [
{
path: '',
loadComponent: () =>
import(
'./screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component'
),
},
],
canActivate: [IqserAuthGuard],
},
{
path: `:${DOSSIER_TEMPLATE_ID}`,
children: dossierTemplateIdRoutes,
canActivate: [templateExistsWhenEnteringAdmin()],
},
];
export default [
{ path: '', redirectTo: 'dossier-templates', pathMatch: 'full' },
{
path: 'dossier-templates',
children: dossierTemplatesRoutes,
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard, DossierTemplatesGuard],
requiredRoles: ['RED_MANAGER', 'RED_ADMIN'],
permissions: {
allow: [Roles.templates.read],
redirectTo: '/',
},
},
},
{
path: '',
component: BaseAdminScreenComponent,
providers: [AdminDialogService],
children: [
{
path: 'users',
component: UserListingScreenComponent,
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
permissions: {
allow: [Roles.users.read, 'RED_USER_ADMIN'],
redirectTo: '/',
},
},
},
{
path: 'dossier-permissions',
loadComponent: () => import('./screens/permissions/permissions-screen/permissions-screen.component'),
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard, PermissionsGuard],
permissionsObject: 'Dossier',
permissions: {
allow: [Roles.manageAclPermissions, 'RED_ADMIN'],
redirectTo: '/',
},
},
},
{
path: 'license-info',
loadChildren: () => import('./screens/license/license.routes'),
canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
data: {
permissions: {
allow: [Roles.license.readReport, 'RED_ADMIN'],
redirectTo: '/',
},
},
},
{
path: 'digital-signature',
component: DigitalSignatureScreenComponent,
canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
data: {
permissions: {
allow: [Roles.digitalSignature.read, 'RED_ADMIN'],
redirectTo: '/',
},
},
providers: [DigitalSignatureService],
},
{
path: 'audit',
component: AuditScreenComponent,
canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
data: {
permissions: {
allow: [Roles.searchAudit, 'RED_ADMIN'],
redirectTo: '/',
},
},
providers: [AuditService],
},
{
path: 'general-config',
component: GeneralConfigScreenComponent,
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
canDeactivate: [PendingChangesGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
permissions: {
allow: [Roles.generalConfiguration.read, Roles.smtp.read, 'RED_ADMIN'],
redirectTo: '/',
},
},
providers: [SmtpConfigService],
},
],
},
] satisfies IqserRoutes;

View File

@ -1,7 +1,10 @@
import { Component } from '@angular/core';
import { AdminSideNavComponent } from '../shared/components/admin-side-nav/admin-side-nav.component';
import { RouterOutlet } from '@angular/router';
@Component({
templateUrl: './base-admin-screen.component.html',
styleUrls: ['./base-admin-screen.component.scss'],
imports: [AdminSideNavComponent, RouterOutlet],
})
export class BaseAdminScreenComponent {}

View File

@ -1,5 +1,3 @@
<!--TODO: Use this for all dossier template screens -->
<section>
<div class="page-header">
<redaction-dossier-template-breadcrumbs class="flex-1"></redaction-dossier-template-breadcrumbs>

View File

@ -1,7 +1,22 @@
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { DossierTemplateBreadcrumbsComponent } from '../shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component';
import { DossierTemplateActionsComponent } from '../shared/components/dossier-template-actions/dossier-template-actions.component';
import { CircleButtonComponent } from '@iqser/common-ui';
import { RouterLink, RouterOutlet } from '@angular/router';
import { TranslateModule } from '@ngx-translate/core';
import { AdminSideNavComponent } from '../shared/components/admin-side-nav/admin-side-nav.component';
@Component({
templateUrl: './base-dossier-template-screen.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
DossierTemplateBreadcrumbsComponent,
DossierTemplateActionsComponent,
CircleButtonComponent,
RouterLink,
TranslateModule,
AdminSideNavComponent,
RouterOutlet,
],
})
export class BaseDossierTemplateScreenComponent {}

View File

@ -1,26 +1,39 @@
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
import { DOSSIER_TEMPLATE_ID, ENTITY_TYPE } from '@red/domain';
import { Router } from '@angular/router';
import { Router, RouterLink, RouterOutlet } from '@angular/router';
import { firstValueFrom, Observable } from 'rxjs';
import { AdminDialogService } from '../services/admin-dialog.service';
import { DictionaryService } from '@services/entity-services/dictionary.service';
import { LoadingService } from '@iqser/common-ui';
import { CircleButtonComponent, LoadingService } from '@iqser/common-ui';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
import { map } from 'rxjs/operators';
import { PermissionsService } from '@services/permissions.service';
import { getParam } from '@iqser/common-ui/lib/utils';
import { TenantsService } from '@iqser/common-ui/lib/tenants';
import { DossierTemplateBreadcrumbsComponent } from '../shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component';
import { AsyncPipe, NgIf } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { AdminSideNavComponent } from '../shared/components/admin-side-nav/admin-side-nav.component';
@Component({
templateUrl: './base-entity-screen.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
DossierTemplateBreadcrumbsComponent,
CircleButtonComponent,
NgIf,
AsyncPipe,
TranslateModule,
RouterLink,
AdminSideNavComponent,
RouterOutlet,
],
})
export class BaseEntityScreenComponent implements OnInit {
readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
readonly #entityType = getParam(ENTITY_TYPE);
readonly disabledItems$: Observable<string[]>;
readonly canDeleteEntity$: Observable<boolean>;
readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
readonly #entityType = getParam(ENTITY_TYPE);
constructor(
private readonly _router: Router,
@ -29,7 +42,6 @@ export class BaseEntityScreenComponent implements OnInit {
private readonly _dialogService: AdminDialogService,
private readonly _dictionaryService: DictionaryService,
private readonly _permissionsService: PermissionsService,
private readonly _tenantsService: TenantsService,
private readonly _dossierTemplatesService: DossierTemplatesService,
) {
const entity$ = dictionaryMapService.watch$(this.#dossierTemplateId, this.#entityType);
@ -50,7 +62,7 @@ export class BaseEntityScreenComponent implements OnInit {
this._loadingService.start();
const dossierTemplate = this._dossierTemplatesService.find(this.#dossierTemplateId);
await firstValueFrom(this._dictionaryService.deleteDictionaries([this.#entityType], this.#dossierTemplateId));
await this._router.navigate([`/${this._tenantsService.activeTenantId}/${dossierTemplate.routerLink}/entities`]);
await this._router.navigate([`/${dossierTemplate.routerLink}/entities`]);
this._loadingService.stop();
});
}

View File

@ -23,7 +23,7 @@
<div class="mt-44">
<redaction-donut-chart
[config]="chartConfig"
[config]="chartConfig()"
[radius]="63"
[strokeWidth]="15"
[subtitles]="['user-stats.chart.users' | translate]"

View File

@ -1,12 +1,16 @@
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { Component, EventEmitter, input, Input, output, Output } from '@angular/core';
import { DonutChartConfig } from '@red/domain';
import { CircleButtonComponent } from '@iqser/common-ui';
import { TranslateModule } from '@ngx-translate/core';
import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
@Component({
selector: 'redaction-users-stats',
templateUrl: './users-stats.component.html',
styleUrls: ['./users-stats.component.scss'],
imports: [CircleButtonComponent, TranslateModule, DonutChartComponent],
})
export class UsersStatsComponent {
@Output() toggleCollapse = new EventEmitter();
@Input() chartConfig: DonutChartConfig[];
readonly chartConfig = input.required<DonutChartConfig[]>();
readonly toggleCollapse = output();
}

View File

@ -0,0 +1,48 @@
<section class="dialog">
<div [innerHTML]="'add-clone-dossier-template.title' | translate: translateParams" class="dialog-header heading-l"></div>
<form [formGroup]="form">
<div class="dialog-content">
<div class="iqser-input-group required w-300">
<label [translate]="'add-edit-clone-dossier-template.form.name'"></label>
<input
[placeholder]="'add-edit-clone-dossier-template.form.name-placeholder' | translate"
formControlName="name"
name="name"
type="text"
/>
</div>
<div class="iqser-input-group w-400">
<label [translate]="'add-edit-clone-dossier-template.form.description'"></label>
<textarea
[placeholder]="'add-edit-clone-dossier-template.form.description-placeholder' | translate"
formControlName="description"
name="description"
rows="4"
type="text"
></textarea>
</div>
</div>
<div class="dialog-actions">
<iqser-icon-button
(action)="save()"
[buttonId]="'saveButton'"
[disabled]="disabled"
[label]="'add-clone-dossier-template.save' | translate: translateParams"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-icon-button
(action)="save({ nextAction: true })"
[buttonId]="'saveButton'"
[disabled]="disabled"
[label]="'add-clone-dossier-template.save-and-edit' | translate"
[type]="iconButtonTypes.dark"
></iqser-icon-button>
</div>
</form>
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>
</section>

View File

@ -0,0 +1,103 @@
import { HttpStatusCode } from '@angular/common/http';
import { Component, Inject } from '@angular/core';
import { ReactiveFormsModule, Validators } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { BaseDialogComponent, CircleButtonComponent, getConfig, IconButtonComponent, SaveOptions } from '@iqser/common-ui';
import { DossierTemplate } from '@red/domain';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
import { Router } from '@angular/router';
import { TranslateModule } from '@ngx-translate/core';
export interface CloneTemplateData {
dossierTemplateId?: string;
}
@Component({
templateUrl: './add-clone-dossier-template-dialog.component.html',
styleUrls: ['./add-clone-dossier-template-dialog.component.scss'],
imports: [TranslateModule, ReactiveFormsModule, IconButtonComponent, CircleButtonComponent],
})
export class AddCloneDossierTemplateDialogComponent extends BaseDialogComponent {
readonly dossierTemplate?: DossierTemplate;
readonly isDocumine = getConfig().IS_DOCUMINE;
readonly translateParams: { type: string; dossierTemplateName?: string };
constructor(
private readonly _dossierTemplatesService: DossierTemplatesService,
private readonly _router: Router,
protected readonly _dialogRef: MatDialogRef<AddCloneDossierTemplateDialogComponent>,
@Inject(MAT_DIALOG_DATA) readonly data: CloneTemplateData,
) {
super(_dialogRef);
this.dossierTemplate = this._dossierTemplatesService.find(this.data.dossierTemplateId);
this.translateParams = {
type: this.dossierTemplate ? 'clone' : 'create',
dossierTemplateName: this.dossierTemplate?.name,
};
this.form = this.#getForm();
this.initialFormValue = this.form.getRawValue();
}
override get disabled(): boolean {
// Ignore 'changed' value, doesn't make sense in this context
return !this.valid || this._hasErrors();
}
async save(options?: SaveOptions): Promise<void> {
let dossierTemplate: DossierTemplate;
this._loadingService.start();
const body = {
...this.dossierTemplate,
...this.form.getRawValue(),
};
try {
if (this.dossierTemplate) {
dossierTemplate = await this._dossierTemplatesService.clone(this.dossierTemplate.id, body);
} else {
dossierTemplate = await this._dossierTemplatesService.createOrUpdate(body);
}
if (options?.nextAction) {
await this._router.navigate([dossierTemplate.routerLink]);
}
this._dialogRef.close(true);
} catch (error) {
if (error.status === HttpStatusCode.Conflict) {
this._toaster.error(_('add-edit-clone-dossier-template.error.conflict'), { error });
} else {
this._toaster.rawError(error.error.message);
}
}
this._loadingService.stop();
}
#getForm() {
return this._formBuilder.group({
name: [this.dossierTemplate ? this.#getCloneName(this.dossierTemplate) : undefined, Validators.required],
description: [this.dossierTemplate?.description],
});
}
#getCloneName(initialTemplate: DossierTemplate): string {
const templateName = initialTemplate.name.trim();
let nameOfClonedTemplate: string = templateName.split('Copy of ').filter(n => n)[0];
nameOfClonedTemplate = nameOfClonedTemplate.split(/\(\s*\d+\s*\)$/)[0].trim();
const allTemplatesNames = this._dossierTemplatesService.all.map(t => t.name);
let clonesCount = 0;
for (const name of allTemplatesNames) {
const splitName = name.split(nameOfClonedTemplate);
const suffixRegExp = new RegExp(/^\(\s*\d+\s*\)$/);
if (splitName[0] === 'Copy of ' && (splitName[1].trim().match(suffixRegExp) || splitName[1] === '')) {
clonesCount++;
}
}
if (clonesCount >= 1) {
return `Copy of ${nameOfClonedTemplate} (${clonesCount})`;
}
return `Copy of ${nameOfClonedTemplate}`;
}
}

View File

@ -1,58 +0,0 @@
.validity {
width: 230px;
display: flex;
> div {
display: flex;
flex-direction: column;
margin-top: 16px;
mat-checkbox {
margin-right: 16px;
height: 100%;
align-items: center;
display: flex;
min-height: 42px;
}
.iqser-input-group {
min-height: 42px;
justify-content: center;
}
}
}
redaction-select {
flex: 1;
}
.download-includes {
margin: 16px 0 10px;
font-weight: 500;
}
.hidden-elements {
display: flex;
gap: 40px;
.iqser-input-group {
margin-top: 0;
flex: 1;
mat-checkbox {
font-weight: 500;
}
.info {
margin-left: 24px;
}
}
}
.half-flex-basis {
flex-basis: 50%;
}
.pl-75 {
padding: 0 0 0 75px;
}

View File

@ -1,173 +0,0 @@
import { HttpStatusCode } from '@angular/common/http';
import { Component, Inject } from '@angular/core';
import { AbstractControl, Validators } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { BaseDialogComponent, getConfig } from '@iqser/common-ui';
import { DossierTemplate, IDossierTemplate } from '@red/domain';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
import { downloadTypesTranslations } from '@translations/download-types-translations';
import { applyIntervalConstraints } from '@utils/date-inputs-utils';
import dayjs, { Dayjs } from 'dayjs';
interface EditCloneTemplateData {
dossierTemplateId: string;
clone?: boolean;
}
const downloadTypes = ['ORIGINAL', 'PREVIEW', 'DELTA_PREVIEW', 'REDACTED'].map(type => ({
key: type,
label: downloadTypesTranslations[type],
}));
@Component({
templateUrl: './add-edit-clone-dossier-template-dialog.component.html',
styleUrls: ['./add-edit-clone-dossier-template-dialog.component.scss'],
})
export class AddEditCloneDossierTemplateDialogComponent extends BaseDialogComponent {
readonly isDocumine = getConfig().IS_DOCUMINE;
hasValidFrom: boolean;
hasValidTo: boolean;
readonly downloadTypes = downloadTypes;
readonly dossierTemplate: DossierTemplate;
private _previousValidFrom: Dayjs;
private _previousValidTo: Dayjs;
private _lastValidFrom: Dayjs;
private _lastValidTo: Dayjs;
get disabled(): boolean {
if (!this.data?.clone) {
return super.disabled;
}
return !this.valid;
}
get translateParams() {
return {
type: this.dossierTemplate ? (this.data.clone ? 'clone' : 'edit') : 'create',
name: this.dossierTemplate?.name,
};
}
constructor(
private readonly _dossierTemplatesService: DossierTemplatesService,
protected readonly _dialogRef: MatDialogRef<AddEditCloneDossierTemplateDialogComponent>,
@Inject(MAT_DIALOG_DATA) readonly data: EditCloneTemplateData,
) {
super(_dialogRef, !!data && !data.clone);
this.dossierTemplate = this._dossierTemplatesService.find(this.data?.dossierTemplateId);
this.form = this.#getForm();
this.initialFormValue = this.form.getRawValue();
this.hasValidFrom = !!this.dossierTemplate?.validFrom;
this.hasValidTo = !!this.dossierTemplate?.validTo;
this._previousValidFrom = this._lastValidFrom = this.form.get('validFrom').value;
this._previousValidTo = this._lastValidTo = this.form.get('validTo').value;
}
toggleHasValid(extremity: string) {
if (extremity === 'from') {
this.hasValidFrom = !this.hasValidFrom;
this.form.controls['validFrom'].setValue(this.hasValidFrom ? this._lastValidFrom : null);
} else {
this.hasValidTo = !this.hasValidTo;
this.form.controls['validTo'].setValue(this.hasValidTo ? this._lastValidTo : null);
}
this.applyValidityIntervalConstraints();
}
async save() {
this._loadingService.start();
const dossierTemplate = {
dossierTemplateId: this.dossierTemplate?.dossierTemplateId,
...this.form.getRawValue(),
validFrom: this.hasValidFrom ? this.form.get('validFrom').value : null,
validTo: this.hasValidTo ? this.form.get('validTo').value : null,
} as IDossierTemplate;
try {
if (this.data?.clone) {
await this._dossierTemplatesService.clone(this.dossierTemplate.id, dossierTemplate);
} else {
await this._dossierTemplatesService.createOrUpdate(dossierTemplate);
}
this._dialogRef.close(true);
} catch (error) {
if (error.status === HttpStatusCode.Conflict) {
this._toaster.error(_('add-edit-clone-dossier-template.error.conflict'), { error });
} else {
this._toaster.rawError(error.error.message);
}
}
this._loadingService.stop();
}
applyValidityIntervalConstraints(): void {
const formValue = this.form.value;
applyIntervalConstraints(formValue, this._previousValidFrom, this._previousValidTo, this.form, 'validFrom', 'validTo');
this._previousValidFrom = this.form.get('validFrom').value;
this._previousValidTo = this.form.get('validTo').value;
this._lastValidFrom = this._previousValidFrom || this._lastValidFrom;
this._lastValidTo = this._previousValidTo || this._lastValidTo;
}
#getForm() {
return this._formBuilder.group({
name: [this.#getCloneName(), Validators.required],
description: [this.dossierTemplate?.description],
validFrom: [
this.dossierTemplate?.validFrom ? dayjs(this.dossierTemplate?.validFrom) : null,
this.#requiredIfValidator(() => this.hasValidFrom),
],
validTo: [
this.dossierTemplate?.validTo ? dayjs(this.dossierTemplate?.validTo) : null,
this.#requiredIfValidator(() => this.hasValidTo),
],
applyDictionaryUpdatesToAllDossiersByDefault: [this.dossierTemplate?.applyDictionaryUpdatesToAllDossiersByDefault],
ocrByDefault: [this.dossierTemplate?.ocrByDefault],
removeWatermark: [this.dossierTemplate?.removeWatermark],
downloadFileTypes: [this.dossierTemplate?.downloadFileTypes || ['PREVIEW', 'REDACTED']],
keepHiddenText: [this.dossierTemplate?.keepHiddenText],
keepImageMetadata: [this.dossierTemplate?.keepImageMetadata],
keepOverlappingObjects: [this.dossierTemplate?.keepOverlappingObjects],
});
}
#getCloneName(): string {
if (!this.data?.clone) {
return this.dossierTemplate?.name;
}
const templateName = this.dossierTemplate.name.trim();
let nameOfClonedTemplate: string = templateName.split('Copy of ').filter(n => n)[0];
nameOfClonedTemplate = nameOfClonedTemplate.split(/\(\s*\d+\s*\)$/)[0].trim();
const allTemplatesNames = this._dossierTemplatesService.all.map(t => t.name);
let clonesCount = 0;
for (const name of allTemplatesNames) {
const splitName = name.split(nameOfClonedTemplate);
const suffixRegExp = new RegExp(/^\(\s*\d+\s*\)$/);
if (splitName[0] === 'Copy of ' && (splitName[1].trim().match(suffixRegExp) || splitName[1] === '')) {
clonesCount++;
}
}
if (clonesCount >= 1) {
return `Copy of ${nameOfClonedTemplate} (${clonesCount})`;
}
return `Copy of ${nameOfClonedTemplate}`;
}
#requiredIfValidator(predicate) {
return (formControl: AbstractControl) => {
if (!formControl.parent) {
return null;
}
if (predicate()) {
return Validators.required(formControl);
}
return null;
};
}
}

View File

@ -1,18 +1,23 @@
import { Component, Inject, ViewChild } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { BaseDialogComponent, CircleButtonComponent } from '@iqser/common-ui';
import { User } from '@red/domain';
import { ResetPasswordComponent } from './reset-password/reset-password.component';
import { UserDetailsComponent } from './user-details/user-details.component';
import { BaseDialogComponent } from '@iqser/common-ui';
@Component({
selector: 'redaction-add-edit-user-dialog',
templateUrl: './add-edit-user-dialog.component.html',
imports: [UserDetailsComponent, ResetPasswordComponent, CircleButtonComponent],
})
export class AddEditUserDialogComponent extends BaseDialogComponent {
resettingPassword = false;
@ViewChild(UserDetailsComponent) private readonly _userDetailsComponent: UserDetailsComponent;
resettingPassword = false;
constructor(protected readonly _dialogRef: MatDialogRef<AddEditUserDialogComponent>, @Inject(MAT_DIALOG_DATA) readonly user: User) {
constructor(
protected readonly _dialogRef: MatDialogRef<AddEditUserDialogComponent>,
@Inject(MAT_DIALOG_DATA) readonly user: User,
) {
super(_dialogRef, !!user);
}

View File

@ -1,14 +1,16 @@
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { UserService } from '@users/user.service';
import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
import { IconButtonComponent, IconButtonTypes, LoadingService } from '@iqser/common-ui';
import { User } from '@red/domain';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { firstValueFrom } from 'rxjs';
import { TranslateModule } from '@ngx-translate/core';
import { NamePipe } from '@common-ui/users/name.pipe';
@Component({
selector: 'redaction-reset-password',
templateUrl: './reset-password.component.html',
imports: [TranslateModule, NamePipe, ReactiveFormsModule, IconButtonComponent],
})
export class ResetPasswordComponent {
readonly iconButtonTypes = IconButtonTypes;
@ -20,25 +22,20 @@ export class ResetPasswordComponent {
private readonly _formBuilder: UntypedFormBuilder,
private readonly _userService: UserService,
private readonly _loadingService: LoadingService,
private readonly _toaster: Toaster,
) {}
async save() {
this._loadingService.start();
try {
await firstValueFrom(
this._userService.resetPassword(
{
password: this.form.get('temporaryPassword').value,
temporary: true,
},
this.user.id,
),
);
this.toggleResetPassword.emit();
} catch (error) {
this._toaster.error(_('reset-password-dialog.error.password-policy'));
}
await firstValueFrom(
this._userService.resetPassword(
{
password: this.form.get('temporaryPassword').value,
temporary: true,
},
this.user.id,
),
);
this.toggleResetPassword.emit();
this._loadingService.stop();
}

View File

@ -1,6 +1,6 @@
<div
[translateParams]="{
type: user ? 'edit' : 'create'
type: !!user() ? 'edit' : 'create',
}"
[translate]="'add-edit-user.title'"
class="dialog-header heading-l"
@ -32,14 +32,22 @@
[formControlName]="role"
color="primary"
>
{{ translations[role] | translate }}
{{ translations[role] | translate: { count: 1 } }}
</mat-checkbox>
</div>
</div>
@if (!user()) {
<div class="iqser-input-group">
<label [translate]="'add-edit-user.form.account-setup'"></label>
<mat-checkbox formControlName="sendSetPasswordMail">{{ 'add-edit-user.form.send-email' | translate }}</mat-checkbox>
<span [translate]="'add-edit-user.form.send-email-explanation'" class="hint"></span>
</div>
}
<div
(click)="toggleResetPassword.emit()"
*ngIf="!!user"
*ngIf="!!user()"
[translate]="'add-edit-user.form.reset-password'"
class="mt-24 fit-content link-action"
></div>
@ -48,14 +56,14 @@
<div class="dialog-actions">
<iqser-icon-button
[disabled]="form.invalid || !changed"
[label]="(user ? 'add-edit-user.actions.save-changes' : 'add-edit-user.actions.save') | translate"
[label]="(user() ? 'add-edit-user.actions.save-changes' : 'add-edit-user.actions.save') | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-icon-button
(action)="delete()"
*ngIf="user && !disabledDelete(user)"
*ngIf="user() && !disabledDelete(user())"
[label]="'add-edit-user.actions.delete' | translate"
[type]="iconButtonTypes.dark"
icon="iqser:trash"

View File

@ -5,3 +5,7 @@
margin-top: 8px;
width: 300px;
}
.hint {
margin-left: 23px;
}

View File

@ -1,29 +1,31 @@
import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { Component, input, OnInit, output } from '@angular/core';
import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { AdminDialogService } from '../../../services/admin-dialog.service';
import { BaseFormComponent, LoadingService, Toaster } from '@iqser/common-ui';
import { BaseFormComponent, IconButtonComponent, LoadingService, Toaster } from '@iqser/common-ui';
import { rolesTranslations } from '@translations/roles-translations';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { User } from '@red/domain';
import { UserService } from '@users/user.service';
import { HttpStatusCode } from '@angular/common/http';
import { firstValueFrom } from 'rxjs';
import { IProfileUpdateRequest } from '@iqser/common-ui/lib/users';
import { TranslateModule } from '@ngx-translate/core';
import { MatCheckbox } from '@angular/material/checkbox';
import { NgForOf, NgIf } from '@angular/common';
@Component({
selector: 'redaction-user-details',
templateUrl: './user-details.component.html',
styleUrls: ['./user-details.component.scss'],
imports: [TranslateModule, ReactiveFormsModule, MatCheckbox, NgForOf, IconButtonComponent, NgIf],
})
export class UserDetailsComponent extends BaseFormComponent implements OnChanges {
/** e.g. a RED_ADMIN is automatically a RED_USER_ADMIN => can't disable RED_USER_ADMIN as long as RED_ADMIN is checked */
private readonly _ROLE_REQUIREMENTS = { RED_MANAGER: 'RED_USER', RED_ADMIN: 'RED_USER_ADMIN' };
@Input() user: User;
@Output() readonly toggleResetPassword = new EventEmitter();
@Output() readonly closeDialog = new EventEmitter();
@Output() readonly cancel = new EventEmitter();
export class UserDetailsComponent extends BaseFormComponent implements OnInit {
user = input<User>();
readonly toggleResetPassword = output();
readonly closeDialog = output<boolean>();
readonly cancel = output();
readonly ROLES = ['RED_USER', 'RED_MANAGER', 'RED_USER_ADMIN', 'RED_ADMIN'];
readonly translations = rolesTranslations;
/** e.g. a RED_ADMIN is automatically a RED_USER_ADMIN => can't disable RED_USER_ADMIN as long as RED_ADMIN is checked */
readonly #ROLE_REQUIREMENTS = { RED_MANAGER: 'RED_USER', RED_ADMIN: 'RED_USER_ADMIN' };
constructor(
private readonly _formBuilder: UntypedFormBuilder,
@ -44,13 +46,17 @@ export class UserDetailsComponent extends BaseFormComponent implements OnChanges
}, []);
}
private get _rolesControls(): any {
get sendSetPasswordMail() {
return !this.form.controls.sendSetPasswordMail.value;
}
get #rolesControls() {
return this.ROLES.reduce(
(prev, role) => ({
...prev,
[role]: [
{
value: this.user && this.user.has(role),
value: this.user() && this.user().has(role),
disabled: this.shouldBeDisabled(role),
},
],
@ -59,20 +65,20 @@ export class UserDetailsComponent extends BaseFormComponent implements OnChanges
);
}
ngOnChanges() {
this.form = this._getForm();
ngOnInit() {
this.form = this.#getForm();
this.initialFormValue = this.form.getRawValue();
}
shouldBeDisabled(role: string): boolean {
const isCurrentAdminUser = this.user && this.user.isAdmin && this.user.id === this._userService.currentUser.id;
const isCurrentAdminUser = this.user() && this.user().isAdmin && this.user().id === this._userService.currentUser.id;
return (
// RED_ADMIN can't remove own RED_ADMIN role
(role === 'RED_ADMIN' && isCurrentAdminUser) ||
// only RED_ADMINs can edit RED_ADMIN roles
(role === 'RED_ADMIN' && !this._userService.currentUser.isAdmin) ||
Object.keys(this._ROLE_REQUIREMENTS).reduce(
(value, key) => value || (role === this._ROLE_REQUIREMENTS[key] && this.user?.roles.includes(key)),
Object.keys(this.#ROLE_REQUIREMENTS).reduce(
(value, key) => value || (role === this.#ROLE_REQUIREMENTS[key] && this.user()?.roles.includes(key)),
false,
)
);
@ -80,38 +86,38 @@ export class UserDetailsComponent extends BaseFormComponent implements OnChanges
async save() {
this._loadingService.start();
const userData: IProfileUpdateRequest = { ...this.form.getRawValue(), roles: this.activeRoles };
const userData: IProfileUpdateRequest = {
...this.form.getRawValue(),
roles: this.activeRoles,
sendSetPasswordMail: this.sendSetPasswordMail,
};
if (!this.user) {
if (!this.user()) {
await firstValueFrom(this._userService.create(userData))
.then(() => {
this.closeDialog.emit(true);
})
.catch(error => {
if (error.status === HttpStatusCode.Conflict) {
this._toaster.error(_('add-edit-user.error.email-already-used'));
} else {
this._toaster.error(_('add-edit-user.error.generic'));
}
this._toaster.error(null, { error });
this._loadingService.stop();
});
} else {
await firstValueFrom(this._userService.updateProfile(userData, this.user.id));
await firstValueFrom(this._userService.updateProfile(userData, this.user().id));
this.closeDialog.emit(true);
}
}
delete() {
this._dialogService.deleteUsers([this.user.id], () => this.closeDialog.emit(true));
this._dialogService.deleteUsers([this.user().id], () => this.closeDialog.emit(true));
}
setRolesRequirements(checked: boolean, role: string): void {
if (Object.keys(this._ROLE_REQUIREMENTS).includes(role)) {
if (Object.keys(this.#ROLE_REQUIREMENTS).includes(role)) {
if (checked) {
this.form.patchValue({ [this._ROLE_REQUIREMENTS[role]]: true });
this.form.controls[this._ROLE_REQUIREMENTS[role]].disable();
this.form.patchValue({ [this.#ROLE_REQUIREMENTS[role]]: true });
this.form.controls[this.#ROLE_REQUIREMENTS[role]].disable();
} else {
this.form.controls[this._ROLE_REQUIREMENTS[role]].enable();
this.form.controls[this.#ROLE_REQUIREMENTS[role]].enable();
}
}
}
@ -122,18 +128,19 @@ export class UserDetailsComponent extends BaseFormComponent implements OnChanges
return user.id === this._userService.currentUser.id || (userAdmin && !currentUserAdmin);
}
private _getForm(): UntypedFormGroup {
#getForm(): UntypedFormGroup {
return this._formBuilder.group({
firstName: [this.user?.firstName, Validators.required],
lastName: [this.user?.lastName, Validators.required],
firstName: [this.user()?.firstName, Validators.required],
lastName: [this.user()?.lastName, Validators.required],
email: [
{
value: this.user?.email,
disabled: !!this.user?.email,
value: this.user()?.email,
disabled: !!this.user()?.email,
},
[Validators.required, Validators.email],
],
...this._rolesControls,
...this.#rolesControls,
sendSetPasswordMail: [false],
});
}
}

View File

@ -16,7 +16,7 @@
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-help-button *ngIf="!config.IS_DOCUMINE" [helpButtonKey]="'create_new_entity'"></iqser-help-button>
<iqser-help-button *ngIf="!config.IS_DOCUMINE"></iqser-help-button>
</div>
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>

View File

@ -1,7 +1,16 @@
import { Component, inject, ViewChild } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { BaseDialogComponent, getConfig, IconButtonTypes } from '@iqser/common-ui';
import {
BaseDialogComponent,
CircleButtonComponent,
getConfig,
HelpButtonComponent,
IconButtonComponent,
IconButtonTypes,
} from '@iqser/common-ui';
import { AddEditEntityComponent } from '@shared/components/add-edit-entity/add-edit-entity.component';
import { TranslateModule } from '@ngx-translate/core';
import { NgIf } from '@angular/common';
interface DialogData {
readonly dossierTemplateId: string;
@ -10,6 +19,7 @@ interface DialogData {
@Component({
templateUrl: './add-entity-dialog.component.html',
styleUrls: ['./add-entity-dialog.component.scss'],
imports: [AddEditEntityComponent, TranslateModule, IconButtonComponent, NgIf, CircleButtonComponent, HelpButtonComponent],
})
export class AddEntityDialogComponent extends BaseDialogComponent {
@ViewChild(AddEditEntityComponent, { static: true }) private readonly _addEditEntityComponent: AddEditEntityComponent;
@ -34,11 +44,7 @@ export class AddEntityDialogComponent extends BaseDialogComponent {
}
async save(): Promise<void> {
try {
await this._addEditEntityComponent.save();
this._dialogRef.close(true);
} catch (e) {
console.error(e);
}
await this._addEditEntityComponent.save();
this._dialogRef.close(true);
}
}

View File

@ -6,9 +6,11 @@
<div class="table-header">Key</div>
<div class="table-header">Value</div>
<ng-container *ngFor="let entry of data.auditEntry.details | keyvalue : originalOrder">
<ng-container *ngFor="let entry of data.auditEntry.details | keyvalue: originalOrder">
<div class="bold">{{ entry.key | humanize }}</div>
<div>{{ entry.value }}</div>
<div>
<pre>{{ entry.value | json }}</pre>
</div>
</ng-container>
</div>
</div>

View File

@ -1,30 +1,32 @@
import { JsonPipe, KeyValue, KeyValuePipe, NgForOf } from '@angular/common';
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
import { BaseDialogComponent } from '@iqser/common-ui';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { BaseDialogComponent, CircleButtonComponent, HumanizePipe } from '@iqser/common-ui';
import { IAudit } from '@red/domain';
import { DossierStatesService } from '@services/entity-services/dossier-states.service';
import { KeyValue } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
interface DialogData {
readonly auditEntry: IAudit;
}
type OrderFn = (a: KeyValue<string, string>, b: KeyValue<string, string>) => number;
@Component({
selector: 'redaction-audit-info-dialog',
templateUrl: './audit-info-dialog.component.html',
styleUrls: ['./audit-info-dialog.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [TranslateModule, NgForOf, KeyValuePipe, HumanizePipe, CircleButtonComponent, JsonPipe],
})
export class AuditInfoDialogComponent extends BaseDialogComponent {
constructor(
private readonly _dossierStatesService: DossierStatesService,
protected readonly _dialogRef: MatDialogRef<AuditInfoDialogComponent>,
@Inject(MAT_DIALOG_DATA) readonly data: DialogData,
) {
super(_dialogRef, false);
}
readonly originalOrder = (a: KeyValue<string, string>, b: KeyValue<string, string>): number => 0;
readonly originalOrder: OrderFn = () => 0;
async save(): Promise<void> {
return;

View File

@ -1,12 +1,18 @@
import { ChangeDetectorRef, Component, ViewChild } from '@angular/core';
import { digitalSignatureDialogTranslations } from '../../translations/digital-signature-dialog-translations';
import { BaseDialogComponent, DetailsRadioOption } from '@iqser/common-ui';
import { MatDialogRef } from '@angular/material/dialog';
import { PkcsSignatureConfigurationComponent } from './form/pkcs-signature-configuration/pkcs-signature-configuration.component';
import { KmsSignatureConfigurationComponent } from './form/kms-signature-configuration/kms-signature-configuration.component';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { NgIf } from '@angular/common';
import { HttpStatusCode } from '@angular/common/http';
import { ChangeDetectorRef, Component, ViewChild } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
import { MatDialogClose, MatDialogRef } from '@angular/material/dialog';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { DetailsRadioOption } from '@common-ui/inputs/details-radio/details-radio-option';
import { DetailsRadioComponent } from '@common-ui/inputs/details-radio/details-radio.component';
import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent } from '@iqser/common-ui';
import { TranslateModule } from '@ngx-translate/core';
import { DigitalSignatureOption, DigitalSignatureOptions } from '@red/domain';
import { DigitalSignatureService } from '../../services/digital-signature.service';
import { digitalSignatureDialogTranslations } from '../../translations/digital-signature-dialog-translations';
import { KmsSignatureConfigurationComponent } from './form/kms-signature-configuration/kms-signature-configuration.component';
import { PkcsSignatureConfigurationComponent } from './form/pkcs-signature-configuration/pkcs-signature-configuration.component';
const DEFAULT_DIALOG_WIDTH = '662px';
const KMS_SIGNATURE_DIALOG_WIDTH = '810px';
@ -14,6 +20,18 @@ const KMS_SIGNATURE_DIALOG_WIDTH = '810px';
@Component({
templateUrl: './configure-certificate-dialog.component.html',
styleUrls: ['./configure-certificate-dialog.component.scss'],
imports: [
DetailsRadioComponent,
NgIf,
ReactiveFormsModule,
TranslateModule,
PkcsSignatureConfigurationComponent,
KmsSignatureConfigurationComponent,
IconButtonComponent,
MatDialogClose,
CircleButtonComponent,
],
providers: [DigitalSignatureService],
})
export class ConfigureCertificateDialogComponent extends BaseDialogComponent {
@ViewChild(PkcsSignatureConfigurationComponent) pkcsSignatureConfigurationComponent: PkcsSignatureConfigurationComponent;

View File

@ -1,8 +1,9 @@
import { BaseFormComponent } from '@iqser/common-ui';
import { DigitalSignatureService } from '../../../services/digital-signature.service';
import { DigitalSignatureOption, DigitalSignatureOptions, IDigitalSignatureRequest } from '@red/domain';
import { firstValueFrom, Observable } from 'rxjs';
import { DigitalSignatureService } from '../../../services/digital-signature.service';
// TODO: This should be handled with services for each type of signature
export abstract class BaseSignatureConfigurationComponent extends BaseFormComponent {
file: File | null;

View File

@ -1,20 +1,27 @@
import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
import { UntypedFormBuilder, Validators } from '@angular/forms';
import { ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
import { BaseSignatureConfigurationComponent } from '../base-signature-configuration-component';
import { DigitalSignatureOptions, IKmsDigitalSignature, IKmsDigitalSignatureRequest } from '@red/domain';
import { firstValueFrom } from 'rxjs';
import { DigitalSignatureService } from '../../../../services/digital-signature.service';
import { UploadFileComponent } from '@iqser/common-ui';
import { NgIf } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'redaction-kms-signature-configuration',
templateUrl: './kms-signature-configuration.component.html',
styleUrls: ['./kms-signature-configuration.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [UploadFileComponent, ReactiveFormsModule, NgIf, TranslateModule],
})
export class KmsSignatureConfigurationComponent extends BaseSignatureConfigurationComponent implements OnInit {
@Input() digitalSignature!: IKmsDigitalSignatureRequest;
constructor(protected readonly _digitalSignatureService: DigitalSignatureService, private readonly _formBuilder: UntypedFormBuilder) {
constructor(
protected readonly _digitalSignatureService: DigitalSignatureService,
private readonly _formBuilder: UntypedFormBuilder,
) {
super(_digitalSignatureService, DigitalSignatureOptions.KMS);
}

View File

@ -5,28 +5,29 @@
[readonly]="!!file"
accept=".p12"
></iqser-upload-file>
<form [formGroup]="form">
<div class="flex">
<div class="flex fields-container">
<div class="iqser-input-group required w-300">
<label [translate]="'digital-signature-dialog.forms.pkcs.certificate-name'"></label>
<input id="certificate-name-input" formControlName="certificateName" type="text" />
<input formControlName="certificateName" id="certificate-name-input" type="text" />
</div>
<div *ngIf="!digitalSignature" class="iqser-input-group required w-300">
<label [translate]="'digital-signature-dialog.forms.pkcs.password-key'"></label>
<input id="certificate-password-input" formControlName="password" type="password" />
<input formControlName="password" id="certificate-password-input" type="password" />
</div>
<div class="iqser-input-group w-300">
<label [translate]="'digital-signature-dialog.forms.pkcs.contact-information'"></label>
<input id="certificate-contact-info-input" formControlName="contactInfo" type="text" />
<input formControlName="contactInfo" id="certificate-contact-info-input" type="text" />
</div>
<div class="iqser-input-group w-300">
<label [translate]="'digital-signature-dialog.forms.pkcs.location'"></label>
<input id="certificate-location-input" formControlName="location" type="text" />
<input formControlName="location" id="certificate-location-input" type="text" />
</div>
<div class="iqser-input-group w-450">
<label [translate]="'digital-signature-dialog.forms.pkcs.reason'"></label>
<textarea id="certificate-location-input" formControlName="reason" rows="4" type="text"></textarea>
<textarea formControlName="reason" id="certificate-reason-input" rows="4" type="text"></textarea>
</div>
</div>
</div>

View File

@ -1,21 +1,28 @@
import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
import { UntypedFormBuilder, Validators } from '@angular/forms';
import { BaseSignatureConfigurationComponent } from '../base-signature-configuration-component';
import { ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
import { DigitalSignatureOptions, IPkcsDigitalSignature, IPkcsDigitalSignatureRequest } from '@red/domain';
import { lastIndexOfEnd } from '@utils/functions';
import { firstValueFrom } from 'rxjs';
import { DigitalSignatureService } from '../../../../services/digital-signature.service';
import { lastIndexOfEnd } from '../../../../../../utils';
import { BaseSignatureConfigurationComponent } from '../base-signature-configuration-component';
import { UploadFileComponent } from '@iqser/common-ui';
import { NgIf } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'redaction-pkcs-signature-configuration',
templateUrl: './pkcs-signature-configuration.component.html',
styleUrls: ['./pkcs-signature-configuration.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [UploadFileComponent, ReactiveFormsModule, NgIf, TranslateModule],
})
export class PkcsSignatureConfigurationComponent extends BaseSignatureConfigurationComponent implements OnInit {
@Input() digitalSignature!: IPkcsDigitalSignatureRequest;
constructor(protected readonly _digitalSignatureService: DigitalSignatureService, private readonly _formBuilder: UntypedFormBuilder) {
constructor(
protected readonly _digitalSignatureService: DigitalSignatureService,
private readonly _formBuilder: UntypedFormBuilder,
) {
super(_digitalSignatureService, DigitalSignatureOptions.PKCS);
}

View File

@ -21,7 +21,7 @@
>
<mat-icon
*ngIf="!form.get('color').value || form.get('color').value?.length === 0"
svgIcon="red:color-picker"
svgIcon="iqser:color-picker"
></mat-icon>
</div>
</div>

View File

@ -1,12 +1,16 @@
import { Component, Inject } from '@angular/core';
import { DefaultColorType } from '@red/domain';
import { BaseDialogComponent, IconButtonTypes } from '@iqser/common-ui';
import { UntypedFormGroup, Validators } from '@angular/forms';
import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent, IconButtonTypes } from '@iqser/common-ui';
import { ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms';
import { defaultColorsTranslations } from '@translations/default-colors-translations';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { firstValueFrom } from 'rxjs';
import { DefaultColorsService } from '@services/entity-services/default-colors.service';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { TranslateModule } from '@ngx-translate/core';
import { ColorPickerModule } from 'ngx-color-picker';
import { MatIcon } from '@angular/material/icon';
import { NgIf } from '@angular/common';
interface IEditColorData {
colorKey: DefaultColorType;
@ -16,6 +20,7 @@ interface IEditColorData {
@Component({
templateUrl: './edit-color-dialog.component.html',
styleUrls: ['./edit-color-dialog.component.scss'],
imports: [ReactiveFormsModule, TranslateModule, ColorPickerModule, MatIcon, NgIf, IconButtonComponent, CircleButtonComponent],
})
export class EditColorDialogComponent extends BaseDialogComponent {
readonly iconButtonTypes = IconButtonTypes;

View File

@ -1,13 +1,15 @@
import { Component, Inject } from '@angular/core';
import { UntypedFormGroup, Validators } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { getCurrentUser } from '@users/user.service';
import { ReactiveFormsModule, Validators } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogClose, MatDialogRef } from '@angular/material/dialog';
import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent } from '@iqser/common-ui';
import { ISmtpConfiguration } from '@red/domain';
import { BaseDialogComponent } from '@iqser/common-ui';
import { getCurrentUser } from '@users/user.service';
import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'redaction-smtp-auth-dialog',
templateUrl: './smtp-auth-dialog.component.html',
imports: [ReactiveFormsModule, TranslateModule, IconButtonComponent, CircleButtonComponent, MatDialogClose],
})
export class SmtpAuthDialogComponent extends BaseDialogComponent {
readonly #currentUser = getCurrentUser();
@ -25,7 +27,7 @@ export class SmtpAuthDialogComponent extends BaseDialogComponent {
this._dialogRef.close(this.form.getRawValue());
}
private _getForm(): UntypedFormGroup {
private _getForm() {
return this._formBuilder.group({
user: [this.data?.user || this.#currentUser.email, [Validators.required]],
password: [this.data?.password, Validators.required],

View File

@ -1,17 +1,18 @@
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { MatDialogRef } from '@angular/material/dialog';
import { IconButtonTypes } from '@iqser/common-ui';
import { IconButtonComponent, IconButtonTypes } from '@iqser/common-ui';
import { TranslateModule } from '@ngx-translate/core';
@Component({
templateUrl: './upload-dictionary-dialog.component.html',
styleUrls: ['./upload-dictionary-dialog.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [IconButtonComponent, TranslateModule],
})
export class UploadDictionaryDialogComponent {
readonly iconButtonTypes = IconButtonTypes;
constructor(private readonly _translateService: TranslateService, public dialogRef: MatDialogRef<UploadDictionaryDialogComponent>) {}
constructor(public dialogRef: MatDialogRef<UploadDictionaryDialogComponent>) {}
cancel() {
this.dialogRef.close();

View File

@ -16,15 +16,15 @@
<ng-template #headerTemplate>
<div class="table-header-actions">
<redaction-pagination
<iqser-pagination
(pageChanged)="pageChanged($event)"
[settings]="{ currentPage: logs?.page || 0, totalPages: totalPages }"
class="mr-0"
></redaction-pagination>
></iqser-pagination>
<div class="separator">·</div>
<form [formGroup]="form" [attr.help-mode-key]="'audit_filter_audit_entries'">
<form [attr.help-mode-key]="'audit_filter_audit_entries'" [formGroup]="form">
<div class="iqser-input-group w-150 mr-20">
<mat-form-field>
<mat-select (selectionChange)="filterChange()" formControlName="category" id="select-category">
@ -96,6 +96,7 @@
</div>
</ng-template>
<!--TODO: use ngTemplateContextGuard for typings here-->
<ng-template #tableItemTemplate let-entity="entity">
<div *ngIf="cast(entity) as log">
<div class="cell">
@ -116,8 +117,8 @@
<div class="action-buttons">
<iqser-circle-button
(action)="openAuditDetails(log)"
[attr.help-mode-key]="'audit_detailed_audit_info'"
*ngIf="log.hasDetails"
[attr.help-mode-key]="'audit_detailed_audit_info'"
[tooltip]="'audit-screen.action.info' | translate"
icon="red:info"
></iqser-circle-button>

View File

@ -23,9 +23,3 @@ form {
font-size: 16px;
opacity: 0.7;
}
.item-info {
background: var(--iqser-light);
border: 1px solid var(--iqser-grey-1);
padding: 20px;
}

View File

@ -1,17 +1,34 @@
import { Component, inject, OnDestroy, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { IqserPermissionsService, ListingComponent, listingProvidersFactory, LoadingService, TableColumnConfig } from '@iqser/common-ui';
import { getCurrentUser } from '@iqser/common-ui/lib/users';
import {
CircleButtonComponent,
HumanizePipe,
IqserListingModule,
IqserPermissionsService,
ListingComponent,
listingProvidersFactory,
LoadingService,
TableColumnConfig,
} from '@iqser/common-ui';
import { getCurrentUser, InitialsAvatarComponent } from '@iqser/common-ui/lib/users';
import { Audit, IAudit, IAuditResponse, IAuditSearchRequest, User } from '@red/domain';
import { RouterHistoryService } from '@services/router-history.service';
import { auditCategoriesTranslations } from '@translations/audit-categories-translations';
import { Roles } from '@users/roles';
import { applyIntervalConstraints } from '@utils/date-inputs-utils';
import { Dayjs } from 'dayjs';
import dayjs, { Dayjs } from 'dayjs';
import { firstValueFrom } from 'rxjs';
import { AdminDialogService } from '../../services/admin-dialog.service';
import { AuditService } from '../../services/audit.service';
import { TranslateModule } from '@ngx-translate/core';
import { PaginationComponent } from '@common-ui/pagination';
import { MatFormField, MatSuffix } from '@angular/material/form-field';
import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatIcon } from '@angular/material/icon';
import { DatePipe } from '@shared/pipes/date.pipe';
const PAGE_SIZE = 50;
@ -19,6 +36,26 @@ const PAGE_SIZE = 50;
templateUrl: './audit-screen.component.html',
styleUrls: ['./audit-screen.component.scss'],
providers: listingProvidersFactory(AuditScreenComponent),
imports: [
IqserListingModule,
TranslateModule,
PaginationComponent,
ReactiveFormsModule,
MatFormField,
MatOption,
NgForOf,
InitialsAvatarComponent,
NgIf,
MatIcon,
MatSuffix,
AsyncPipe,
DatePipe,
HumanizePipe,
CircleButtonComponent,
MatSelectTrigger,
MatSelect,
MatDatepickerModule,
],
})
export class AuditScreenComponent extends ListingComponent<Audit> implements OnInit, OnDestroy {
private _previousFrom: Dayjs;
@ -26,7 +63,7 @@ export class AuditScreenComponent extends ListingComponent<Audit> implements OnI
readonly ALL_CATEGORIES = 'allCategories';
readonly ALL_USERS = _('audit-screen.all-users');
readonly translations = auditCategoriesTranslations;
readonly form: UntypedFormGroup = this._getForm();
readonly form: UntypedFormGroup = this.#getForm();
readonly routerHistoryService = inject(RouterHistoryService);
readonly permissionsService = inject(IqserPermissionsService);
readonly roles = Roles;
@ -59,17 +96,17 @@ export class AuditScreenComponent extends ListingComponent<Audit> implements OnI
}
async pageChanged(page: number) {
await this._fetchData(page);
await this.#fetchData(page);
}
async ngOnInit() {
this.sortingService.setSortingOption({ column: 'recordDate', order: 'desc' });
await this._fetchData();
await this.#fetchData();
}
async filterChange() {
if (!this._updateDateFilters(this.form.value)) {
await this._fetchData();
if (!this.#updateDateFilters(this.form.value)) {
await this.#fetchData();
}
}
@ -77,7 +114,7 @@ export class AuditScreenComponent extends ListingComponent<Audit> implements OnI
this._dialogService.openDialog('auditInfo', { auditEntry: log });
}
private _getForm(): UntypedFormGroup {
#getForm(): UntypedFormGroup {
return this._formBuilder.group({
category: [this.ALL_CATEGORIES],
userId: [this.ALL_USERS],
@ -86,7 +123,7 @@ export class AuditScreenComponent extends ListingComponent<Audit> implements OnI
});
}
private _updateDateFilters(value): boolean {
#updateDateFilters(value): boolean {
if (applyIntervalConstraints(value, this._previousFrom, this._previousTo, this.form, 'from', 'to')) {
return true;
}
@ -96,16 +133,14 @@ export class AuditScreenComponent extends ListingComponent<Audit> implements OnI
return false;
}
private async _fetchData(page?: number) {
async #fetchData(page?: number) {
this._loadingService.start();
const promises = [];
const category = this.form.get('category').value;
const userId = this.form.get('userId').value;
const from = this.form.get('from').value;
let to = this.form.get('to').value;
if (to) {
to = to.clone().add(1, 'd');
}
const from = this.form.get('from').value ? dayjs(this.form.get('from').value).startOf('day').toISOString() : null;
const to = this.form.get('to').value ? dayjs(this.form.get('to').value).endOf('day').toISOString() : null;
const logsRequestBody: IAuditSearchRequest = {
pageSize: PAGE_SIZE,
page: page,

View File

@ -0,0 +1,130 @@
@if (componentDefinitions$ | async; as componentDefinitions) {
<div class="content-container">
<div class="content-header">
<div class="header-title">
<span
class="all-caps-label"
[innerHTML]="'component-definitions.title' | translate: { length: componentDefinitions.length }"
></span>
</div>
<div class="actions">
@if (permissionsService.canEditEntities()) {
<iqser-icon-button
(action)="createEmptyComponentDefinition()"
[label]="'component-definitions.add-new' | translate"
[type]="iconButtonTypes.primary"
icon="iqser:plus"
></iqser-icon-button>
}
</div>
</div>
<div class="content">
<div class="components-list">
<div class="header">
<div class="item-content">
<div class="all-caps-label">{{ 'component-definitions.columns.position' | translate }}</div>
<div class="all-caps-label">{{ 'component-definitions.columns.name' | translate }}</div>
</div>
</div>
<div (cdkDropListDropped)="drop($event)" cdkDropList class="list-content">
@for (component of componentDefinitions; track component) {
<div
class="list-item"
[class.selected]="selectedComponent?.id === component.id"
cdkDrag
(click)="selectComponent(component)"
>
<div class="item-content">
<div class="table-item-title heading">
<mat-icon cdkDragHandle class="draggable" svgIcon="red:draggable-dots"></mat-icon>
<span> {{ component.rank }} </span>
</div>
<div class="table-item-title heading">{{ component.displayName }}</div>
<div class="right-content">
@if (permissionsService.canEditEntities()) {
<iqser-circle-button
[class]="'delete-component-definition'"
(action)="deleteComponent(component.id)"
[tooltip]="'trash.action.delete' | translate"
icon="iqser:trash"
></iqser-circle-button>
}
<mat-icon
[class.not-visible]="selectedComponent?.id !== component.id"
class="arrow-right"
svgIcon="red:arrow-right"
></mat-icon>
</div>
</div>
</div>
}
</div>
</div>
@if (selectedComponent) {
<section class="dialog">
<div class="dialog-header">
@if (selectedComponent.id) {
<div
class="heading-l"
[innerHTML]="'component-definitions.edit-title' | translate: { displayName: selectedComponent.displayName }"
></div>
} @else {
<div class="heading-l" [innerHTML]="'component-definitions.add-title' | translate"></div>
}
</div>
@if (form) {
<form (submit)="save()" [formGroup]="form">
<div class="dialog-content">
<div class="iqser-input-group w-300 required">
<label [translate]="'component-definitions.form.display-name'"></label>
<input
formControlName="displayName"
name="displayName"
placeholder="{{ 'component-definitions.form.display-name-placeholder' | translate }}"
type="text"
/>
</div>
<div class="iqser-input-group w-450">
<label [translate]="'component-definitions.form.description'"></label>
<textarea
[placeholder]="'component-definitions.form.description-placeholder' | translate"
formControlName="description"
iqserHasScrollbar
name="description"
rows="5"
type="text"
></textarea>
</div>
<div class="iqser-input-group w-450">
<label [translate]="'component-definitions.form.technical-name-label'"></label>
<span class="technical-name"> {{ technicalName }} </span>
<label [translate]="'component-definitions.form.autogenerated-label'"></label>
</div>
</div>
<div class="dialog-actions">
<iqser-icon-button
[disabled]="disabled"
[label]="'component-definitions.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
@if (selectedComponent.id) {
<div
(click)="initForm()"
[class.disabled]="disabled"
[translate]="'component-definitions.actions.revert'"
class="all-caps-label cancel"
></div>
}
</div>
</form>
}
</section>
}
</div>
</div>
}

Some files were not shown because too many files have changed in this diff Show More