mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
Refactor: loading component
This commit is contained in:
parent
0647812699
commit
65b48952cd
@ -255,7 +255,7 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">127</context>
|
<context context-type="linenumber">124</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.html</context>
|
<context context-type="sourcefile">src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.html</context>
|
||||||
@ -607,42 +607,42 @@
|
|||||||
<source>Error retrieving config</source>
|
<source>Error retrieving config</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
||||||
<context context-type="linenumber">81</context>
|
<context context-type="linenumber">76</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1172622527269118932" datatype="html">
|
<trans-unit id="1172622527269118932" datatype="html">
|
||||||
<source>Invalid JSON</source>
|
<source>Invalid JSON</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
||||||
<context context-type="linenumber">107</context>
|
<context context-type="linenumber">102</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5103146006962696736" datatype="html">
|
<trans-unit id="5103146006962696736" datatype="html">
|
||||||
<source>Configuration updated</source>
|
<source>Configuration updated</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
||||||
<context context-type="linenumber">151</context>
|
<context context-type="linenumber">146</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1664963291286452273" datatype="html">
|
<trans-unit id="1664963291286452273" datatype="html">
|
||||||
<source>An error occurred updating configuration</source>
|
<source>An error occurred updating configuration</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
||||||
<context context-type="linenumber">156</context>
|
<context context-type="linenumber">151</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2653081282186526824" datatype="html">
|
<trans-unit id="2653081282186526824" datatype="html">
|
||||||
<source>File successfully updated</source>
|
<source>File successfully updated</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
||||||
<context context-type="linenumber">178</context>
|
<context context-type="linenumber">173</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5902783625859504265" datatype="html">
|
<trans-unit id="5902783625859504265" datatype="html">
|
||||||
<source>An error occurred uploading file</source>
|
<source>An error occurred uploading file</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
|
||||||
<context context-type="linenumber">183</context>
|
<context context-type="linenumber">178</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4804785061014590286" datatype="html">
|
<trans-unit id="4804785061014590286" datatype="html">
|
||||||
@ -1392,7 +1392,7 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/confirm-dialog/confirm-dialog.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/confirm-dialog/confirm-dialog.component.ts</context>
|
||||||
<context context-type="linenumber">44</context>
|
<context context-type="linenumber">47</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html</context>
|
||||||
@ -1810,7 +1810,7 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||||
<context context-type="linenumber">124</context>
|
<context context-type="linenumber">122</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2134950584701094962" datatype="html">
|
<trans-unit id="2134950584701094962" datatype="html">
|
||||||
@ -1873,56 +1873,56 @@
|
|||||||
<source>Dismiss selected</source>
|
<source>Dismiss selected</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||||
<context context-type="linenumber">77</context>
|
<context context-type="linenumber">75</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8829078752502782653" datatype="html">
|
<trans-unit id="8829078752502782653" datatype="html">
|
||||||
<source>Dismiss all</source>
|
<source>Dismiss all</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||||
<context context-type="linenumber">78</context>
|
<context context-type="linenumber">76</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1323591410517879795" datatype="html">
|
<trans-unit id="1323591410517879795" datatype="html">
|
||||||
<source>Confirm Dismiss All</source>
|
<source>Confirm Dismiss All</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||||
<context context-type="linenumber">121</context>
|
<context context-type="linenumber">119</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4157200209636243740" datatype="html">
|
<trans-unit id="4157200209636243740" datatype="html">
|
||||||
<source>Dismiss all <x id="PH" equiv-text="tasks.size"/> tasks?</source>
|
<source>Dismiss all <x id="PH" equiv-text="tasks.size"/> tasks?</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||||
<context context-type="linenumber">122</context>
|
<context context-type="linenumber">120</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="9011556615675272238" datatype="html">
|
<trans-unit id="9011556615675272238" datatype="html">
|
||||||
<source>queued</source>
|
<source>queued</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||||
<context context-type="linenumber">207</context>
|
<context context-type="linenumber">205</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6415892379431855826" datatype="html">
|
<trans-unit id="6415892379431855826" datatype="html">
|
||||||
<source>started</source>
|
<source>started</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||||
<context context-type="linenumber">209</context>
|
<context context-type="linenumber">207</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7510279840486540181" datatype="html">
|
<trans-unit id="7510279840486540181" datatype="html">
|
||||||
<source>completed</source>
|
<source>completed</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||||
<context context-type="linenumber">211</context>
|
<context context-type="linenumber">209</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4083337005045748464" datatype="html">
|
<trans-unit id="4083337005045748464" datatype="html">
|
||||||
<source>failed</source>
|
<source>failed</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||||
<context context-type="linenumber">213</context>
|
<context context-type="linenumber">211</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="3418677553313974490" datatype="html">
|
<trans-unit id="3418677553313974490" datatype="html">
|
||||||
@ -2005,11 +2005,11 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">68</context>
|
<context context-type="linenumber">65</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">97</context>
|
<context context-type="linenumber">94</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/users-groups/users-groups.component.html</context>
|
<context context-type="sourcefile">src/app/components/admin/users-groups/users-groups.component.html</context>
|
||||||
@ -2125,7 +2125,7 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">225</context>
|
<context context-type="linenumber">216</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.html</context>
|
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.html</context>
|
||||||
@ -2151,37 +2151,37 @@
|
|||||||
<source>Confirm delete</source>
|
<source>Confirm delete</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">64</context>
|
<context context-type="linenumber">61</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">91</context>
|
<context context-type="linenumber">88</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">221</context>
|
<context context-type="linenumber">212</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">338</context>
|
<context context-type="linenumber">329</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1373208150912772963" datatype="html">
|
<trans-unit id="1373208150912772963" datatype="html">
|
||||||
<source>This operation will permanently delete this document.</source>
|
<source>This operation will permanently delete this document.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">65</context>
|
<context context-type="linenumber">62</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5641451190833696892" datatype="html">
|
<trans-unit id="5641451190833696892" datatype="html">
|
||||||
<source>This operation cannot be undone.</source>
|
<source>This operation cannot be undone.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">66</context>
|
<context context-type="linenumber">63</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">95</context>
|
<context context-type="linenumber">92</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/users-groups/users-groups.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/users-groups/users-groups.component.ts</context>
|
||||||
@ -2193,7 +2193,7 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
||||||
<context context-type="linenumber">93</context>
|
<context context-type="linenumber">89</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/mail/mail.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/mail/mail.component.ts</context>
|
||||||
@ -2205,25 +2205,25 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">340</context>
|
<context context-type="linenumber">331</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">124</context>
|
<context context-type="linenumber">119</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1980187861066369604" datatype="html">
|
<trans-unit id="1980187861066369604" datatype="html">
|
||||||
<source>Document deleted</source>
|
<source>Document deleted</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">75</context>
|
<context context-type="linenumber">72</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7295637485862454066" datatype="html">
|
<trans-unit id="7295637485862454066" datatype="html">
|
||||||
<source>Error deleting document</source>
|
<source>Error deleting document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">80</context>
|
<context context-type="linenumber">77</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
||||||
@ -2234,56 +2234,56 @@
|
|||||||
<source>This operation will permanently delete the selected documents.</source>
|
<source>This operation will permanently delete the selected documents.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">93</context>
|
<context context-type="linenumber">90</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6804051092296228130" datatype="html">
|
<trans-unit id="6804051092296228130" datatype="html">
|
||||||
<source>This operation will permanently delete all documents in the trash.</source>
|
<source>This operation will permanently delete all documents in the trash.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">94</context>
|
<context context-type="linenumber">91</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6996183233986182894" datatype="html">
|
<trans-unit id="6996183233986182894" datatype="html">
|
||||||
<source>Document(s) deleted</source>
|
<source>Document(s) deleted</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">105</context>
|
<context context-type="linenumber">102</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6962724852893361467" datatype="html">
|
<trans-unit id="6962724852893361467" datatype="html">
|
||||||
<source>Error deleting document(s)</source>
|
<source>Error deleting document(s)</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">112</context>
|
<context context-type="linenumber">109</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7534569062269274401" datatype="html">
|
<trans-unit id="7534569062269274401" datatype="html">
|
||||||
<source>Document restored</source>
|
<source>Document restored</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">125</context>
|
<context context-type="linenumber">122</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="9136016619414048201" datatype="html">
|
<trans-unit id="9136016619414048201" datatype="html">
|
||||||
<source>Error restoring document</source>
|
<source>Error restoring document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">135</context>
|
<context context-type="linenumber">132</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="960063472770266304" datatype="html">
|
<trans-unit id="960063472770266304" datatype="html">
|
||||||
<source>Document(s) restored</source>
|
<source>Document(s) restored</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">145</context>
|
<context context-type="linenumber">142</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8405416976953346141" datatype="html">
|
<trans-unit id="8405416976953346141" datatype="html">
|
||||||
<source>Error restoring document(s)</source>
|
<source>Error restoring document(s)</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/trash/trash.component.ts</context>
|
||||||
<context context-type="linenumber">151</context>
|
<context context-type="linenumber">148</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8119815638230251386" datatype="html">
|
<trans-unit id="8119815638230251386" datatype="html">
|
||||||
@ -2532,7 +2532,7 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
||||||
<context context-type="linenumber">95</context>
|
<context context-type="linenumber">91</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/mail/mail.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/mail/mail.component.ts</context>
|
||||||
@ -2544,11 +2544,11 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">342</context>
|
<context context-type="linenumber">333</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">126</context>
|
<context context-type="linenumber">121</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="857903183180440990" datatype="html">
|
<trans-unit id="857903183180440990" datatype="html">
|
||||||
@ -3095,14 +3095,14 @@
|
|||||||
<source>Confirmation</source>
|
<source>Confirmation</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/confirm-dialog/confirm-dialog.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/confirm-dialog/confirm-dialog.component.ts</context>
|
||||||
<context context-type="linenumber">20</context>
|
<context context-type="linenumber">23</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="9178182467454450952" datatype="html">
|
<trans-unit id="9178182467454450952" datatype="html">
|
||||||
<source>Confirm</source>
|
<source>Confirm</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/confirm-dialog/confirm-dialog.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/confirm-dialog/confirm-dialog.component.ts</context>
|
||||||
<context context-type="linenumber">32</context>
|
<context context-type="linenumber">35</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/permissions-dialog/permissions-dialog.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/permissions-dialog/permissions-dialog.component.html</context>
|
||||||
@ -3271,22 +3271,22 @@
|
|||||||
<source>Saved field "<x id="PH" equiv-text="newField.name"/>".</source>
|
<source>Saved field "<x id="PH" equiv-text="newField.name"/>".</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-dropdown/custom-fields-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-dropdown/custom-fields-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">124</context>
|
<context context-type="linenumber">119</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
||||||
<context context-type="linenumber">75</context>
|
<context context-type="linenumber">71</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1841172489943868696" datatype="html">
|
<trans-unit id="1841172489943868696" datatype="html">
|
||||||
<source>Error saving field.</source>
|
<source>Error saving field.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-dropdown/custom-fields-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-dropdown/custom-fields-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">133</context>
|
<context context-type="linenumber">128</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
||||||
<context context-type="linenumber">83</context>
|
<context context-type="linenumber">79</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4465085913683915434" datatype="html">
|
<trans-unit id="4465085913683915434" datatype="html">
|
||||||
@ -3597,14 +3597,14 @@
|
|||||||
<source>Create new custom field</source>
|
<source>Create new custom field</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts</context>
|
||||||
<context context-type="linenumber">87</context>
|
<context context-type="linenumber">79</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8751213029607178010" datatype="html">
|
<trans-unit id="8751213029607178010" datatype="html">
|
||||||
<source>Edit custom field</source>
|
<source>Edit custom field</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts</context>
|
||||||
<context context-type="linenumber">91</context>
|
<context context-type="linenumber">83</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6672809941092516947" datatype="html">
|
<trans-unit id="6672809941092516947" datatype="html">
|
||||||
@ -3625,14 +3625,14 @@
|
|||||||
<source>Create new item</source>
|
<source>Create new item</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/edit-dialog.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/edit-dialog/edit-dialog.component.ts</context>
|
||||||
<context context-type="linenumber">111</context>
|
<context context-type="linenumber">116</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5324147361912094446" datatype="html">
|
<trans-unit id="5324147361912094446" datatype="html">
|
||||||
<source>Edit item</source>
|
<source>Edit item</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/edit-dialog.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/edit-dialog/edit-dialog.component.ts</context>
|
||||||
<context context-type="linenumber">115</context>
|
<context context-type="linenumber">120</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7878445132438733225" datatype="html">
|
<trans-unit id="7878445132438733225" datatype="html">
|
||||||
@ -4168,14 +4168,14 @@
|
|||||||
<source>Create new storage path</source>
|
<source>Create new storage path</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts</context>
|
||||||
<context context-type="linenumber">63</context>
|
<context context-type="linenumber">56</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="3754859110054016570" datatype="html">
|
<trans-unit id="3754859110054016570" datatype="html">
|
||||||
<source>Edit storage path</source>
|
<source>Edit storage path</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts</context>
|
||||||
<context context-type="linenumber">67</context>
|
<context context-type="linenumber">60</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="9011959596901584887" datatype="html">
|
<trans-unit id="9011959596901584887" datatype="html">
|
||||||
@ -4961,7 +4961,7 @@
|
|||||||
<source>Not assigned</source>
|
<source>Not assigned</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">370</context>
|
<context context-type="linenumber">373</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<note priority="1" from="description">Filter drop down element to filter for documents with no correspondent/type/tag assigned</note>
|
<note priority="1" from="description">Filter drop down element to filter for documents with no correspondent/type/tag assigned</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
@ -4969,7 +4969,7 @@
|
|||||||
<source>Open <x id="PH" equiv-text="this.title"/> filter</source>
|
<source>Open <x id="PH" equiv-text="this.title"/> filter</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">486</context>
|
<context context-type="linenumber">488</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7005745151564974365" datatype="html">
|
<trans-unit id="7005745151564974365" datatype="html">
|
||||||
@ -7950,28 +7950,28 @@
|
|||||||
<source>Confirm delete field</source>
|
<source>Confirm delete field</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
||||||
<context context-type="linenumber">91</context>
|
<context context-type="linenumber">87</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2939457975223185057" datatype="html">
|
<trans-unit id="2939457975223185057" datatype="html">
|
||||||
<source>This operation will permanently delete this field.</source>
|
<source>This operation will permanently delete this field.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
||||||
<context context-type="linenumber">92</context>
|
<context context-type="linenumber">88</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5137089475515834162" datatype="html">
|
<trans-unit id="5137089475515834162" datatype="html">
|
||||||
<source>Deleted field</source>
|
<source>Deleted field</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
||||||
<context context-type="linenumber">101</context>
|
<context context-type="linenumber">97</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6352403551920829405" datatype="html">
|
<trans-unit id="6352403551920829405" datatype="html">
|
||||||
<source>Error deleting field.</source>
|
<source>Error deleting field.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
|
||||||
<context context-type="linenumber">107</context>
|
<context context-type="linenumber">103</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8084492669582894778" datatype="html">
|
<trans-unit id="8084492669582894778" datatype="html">
|
||||||
@ -8231,7 +8231,7 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">325</context>
|
<context context-type="linenumber">316</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4010735610815226758" datatype="html">
|
<trans-unit id="4010735610815226758" datatype="html">
|
||||||
@ -8314,7 +8314,7 @@
|
|||||||
<source>Automatic</source>
|
<source>Automatic</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">125</context>
|
<context context-type="linenumber">116</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/data/matching-model.ts</context>
|
<context context-type="sourcefile">src/app/data/matching-model.ts</context>
|
||||||
@ -8325,7 +8325,7 @@
|
|||||||
<source>None</source>
|
<source>None</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">127</context>
|
<context context-type="linenumber">118</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/data/matching-model.ts</context>
|
<context context-type="sourcefile">src/app/data/matching-model.ts</context>
|
||||||
@ -8336,70 +8336,70 @@
|
|||||||
<source>Successfully created <x id="PH" equiv-text="this.typeName"/>.</source>
|
<source>Successfully created <x id="PH" equiv-text="this.typeName"/>.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">178</context>
|
<context context-type="linenumber">169</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="3928835053823658072" datatype="html">
|
<trans-unit id="3928835053823658072" datatype="html">
|
||||||
<source>Error occurred while creating <x id="PH" equiv-text="this.typeName"/>.</source>
|
<source>Error occurred while creating <x id="PH" equiv-text="this.typeName"/>.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">183</context>
|
<context context-type="linenumber">174</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2541368547549828690" datatype="html">
|
<trans-unit id="2541368547549828690" datatype="html">
|
||||||
<source>Successfully updated <x id="PH" equiv-text="this.typeName"/>.</source>
|
<source>Successfully updated <x id="PH" equiv-text="this.typeName"/>.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">198</context>
|
<context context-type="linenumber">189</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6442673774206210733" datatype="html">
|
<trans-unit id="6442673774206210733" datatype="html">
|
||||||
<source>Error occurred while saving <x id="PH" equiv-text="this.typeName"/>.</source>
|
<source>Error occurred while saving <x id="PH" equiv-text="this.typeName"/>.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">203</context>
|
<context context-type="linenumber">194</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8371896857609524947" datatype="html">
|
<trans-unit id="8371896857609524947" datatype="html">
|
||||||
<source>Associated documents will not be deleted.</source>
|
<source>Associated documents will not be deleted.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">223</context>
|
<context context-type="linenumber">214</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6639207128255974941" datatype="html">
|
<trans-unit id="6639207128255974941" datatype="html">
|
||||||
<source>Error while deleting element</source>
|
<source>Error while deleting element</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">239</context>
|
<context context-type="linenumber">230</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4863024195229581844" datatype="html">
|
<trans-unit id="4863024195229581844" datatype="html">
|
||||||
<source>Permissions updated successfully</source>
|
<source>Permissions updated successfully</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">318</context>
|
<context context-type="linenumber">309</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1464476612812630086" datatype="html">
|
<trans-unit id="1464476612812630086" datatype="html">
|
||||||
<source>This operation will permanently delete all objects.</source>
|
<source>This operation will permanently delete all objects.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">339</context>
|
<context context-type="linenumber">330</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5897787932098828336" datatype="html">
|
<trans-unit id="5897787932098828336" datatype="html">
|
||||||
<source>Objects deleted successfully</source>
|
<source>Objects deleted successfully</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">353</context>
|
<context context-type="linenumber">344</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8273353839648035634" datatype="html">
|
<trans-unit id="8273353839648035634" datatype="html">
|
||||||
<source>Error deleting objects</source>
|
<source>Error deleting objects</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
|
||||||
<context context-type="linenumber">359</context>
|
<context context-type="linenumber">350</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1930477323485553035" datatype="html">
|
<trans-unit id="1930477323485553035" datatype="html">
|
||||||
@ -8455,21 +8455,21 @@
|
|||||||
<source>Saved view "<x id="PH" equiv-text="savedView.name"/>" deleted.</source>
|
<source>Saved view "<x id="PH" equiv-text="savedView.name"/>" deleted.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
|
||||||
<context context-type="linenumber">113</context>
|
<context context-type="linenumber">110</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1660419335376265526" datatype="html">
|
<trans-unit id="1660419335376265526" datatype="html">
|
||||||
<source>Views saved successfully.</source>
|
<source>Views saved successfully.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
|
||||||
<context context-type="linenumber">138</context>
|
<context context-type="linenumber">135</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1699877326523238632" datatype="html">
|
<trans-unit id="1699877326523238632" datatype="html">
|
||||||
<source>Error while saving views.</source>
|
<source>Error while saving views.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
|
||||||
<context context-type="linenumber">143</context>
|
<context context-type="linenumber">140</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5101757640976222639" datatype="html">
|
<trans-unit id="5101757640976222639" datatype="html">
|
||||||
@ -8539,63 +8539,63 @@
|
|||||||
<source>Saved workflow "<x id="PH" equiv-text="newWorkflow.name"/>".</source>
|
<source>Saved workflow "<x id="PH" equiv-text="newWorkflow.name"/>".</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">87</context>
|
<context context-type="linenumber">82</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7593065565369163325" datatype="html">
|
<trans-unit id="7593065565369163325" datatype="html">
|
||||||
<source>Error saving workflow.</source>
|
<source>Error saving workflow.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">95</context>
|
<context context-type="linenumber">90</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="563460864902055482" datatype="html">
|
<trans-unit id="563460864902055482" datatype="html">
|
||||||
<source>Confirm delete workflow</source>
|
<source>Confirm delete workflow</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">122</context>
|
<context context-type="linenumber">117</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6874008462443189248" datatype="html">
|
<trans-unit id="6874008462443189248" datatype="html">
|
||||||
<source>This operation will permanently delete this workflow.</source>
|
<source>This operation will permanently delete this workflow.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">123</context>
|
<context context-type="linenumber">118</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1848226135059921165" datatype="html">
|
<trans-unit id="1848226135059921165" datatype="html">
|
||||||
<source>Deleted workflow</source>
|
<source>Deleted workflow</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">132</context>
|
<context context-type="linenumber">127</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="3177411222429626224" datatype="html">
|
<trans-unit id="3177411222429626224" datatype="html">
|
||||||
<source>Error deleting workflow.</source>
|
<source>Error deleting workflow.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">137</context>
|
<context context-type="linenumber">132</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5459159218551862653" datatype="html">
|
<trans-unit id="5459159218551862653" datatype="html">
|
||||||
<source>Enabled workflow</source>
|
<source>Enabled workflow</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">148</context>
|
<context context-type="linenumber">143</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6035681056091592756" datatype="html">
|
<trans-unit id="6035681056091592756" datatype="html">
|
||||||
<source>Disabled workflow</source>
|
<source>Disabled workflow</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">149</context>
|
<context context-type="linenumber">144</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="1376040678213338380" datatype="html">
|
<trans-unit id="1376040678213338380" datatype="html">
|
||||||
<source>Error toggling workflow.</source>
|
<source>Error toggling workflow.</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
<context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.ts</context>
|
||||||
<context context-type="linenumber">155</context>
|
<context context-type="linenumber">150</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2649252321173430744" datatype="html">
|
<trans-unit id="2649252321173430744" datatype="html">
|
||||||
|
@ -17,9 +17,9 @@ import {
|
|||||||
} from 'src/app/data/paperless-config'
|
} from 'src/app/data/paperless-config'
|
||||||
import { ConfigService } from 'src/app/services/config.service'
|
import { ConfigService } from 'src/app/services/config.service'
|
||||||
import { ToastService } from 'src/app/services/toast.service'
|
import { ToastService } from 'src/app/services/toast.service'
|
||||||
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
|
|
||||||
import { DirtyComponent, dirtyCheck } from '@ngneat/dirty-check-forms'
|
import { DirtyComponent, dirtyCheck } from '@ngneat/dirty-check-forms'
|
||||||
import { SettingsService } from 'src/app/services/settings.service'
|
import { SettingsService } from 'src/app/services/settings.service'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-config',
|
selector: 'pngx-config',
|
||||||
@ -27,7 +27,7 @@ import { SettingsService } from 'src/app/services/settings.service'
|
|||||||
styleUrl: './config.component.scss',
|
styleUrl: './config.component.scss',
|
||||||
})
|
})
|
||||||
export class ConfigComponent
|
export class ConfigComponent
|
||||||
extends ComponentWithPermissions
|
extends LoadingComponentWithPermissions
|
||||||
implements OnInit, OnDestroy, DirtyComponent
|
implements OnInit, OnDestroy, DirtyComponent
|
||||||
{
|
{
|
||||||
public readonly ConfigOptionType = ConfigOptionType
|
public readonly ConfigOptionType = ConfigOptionType
|
||||||
@ -45,15 +45,11 @@ export class ConfigComponent
|
|||||||
return PaperlessConfigOptions.filter((o) => o.category === category)
|
return PaperlessConfigOptions.filter((o) => o.category === category)
|
||||||
}
|
}
|
||||||
|
|
||||||
public loading: boolean = false
|
|
||||||
|
|
||||||
initialConfig: PaperlessConfig
|
initialConfig: PaperlessConfig
|
||||||
store: BehaviorSubject<any>
|
store: BehaviorSubject<any>
|
||||||
storeSub: Subscription
|
storeSub: Subscription
|
||||||
isDirty$: Observable<boolean>
|
isDirty$: Observable<boolean>
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private configService: ConfigService,
|
private configService: ConfigService,
|
||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
@ -67,7 +63,6 @@ export class ConfigComponent
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.loading = true
|
|
||||||
this.configService
|
this.configService
|
||||||
.getConfig()
|
.getConfig()
|
||||||
.pipe(takeUntil(this.unsubscribeNotifier))
|
.pipe(takeUntil(this.unsubscribeNotifier))
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
}
|
||||||
@if (isLoading || !logFiles.length) {
|
@if (loading || !logFiles.length) {
|
||||||
<div class="ps-2 d-flex align-items-center">
|
<div class="ps-2 d-flex align-items-center">
|
||||||
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
||||||
@if (!logFiles.length) {
|
@if (!logFiles.length) {
|
||||||
@ -30,7 +30,7 @@
|
|||||||
<div [ngbNavOutlet]="nav" class="mt-2"></div>
|
<div [ngbNavOutlet]="nav" class="mt-2"></div>
|
||||||
|
|
||||||
<div class="bg-dark p-3 text-light font-monospace log-container" #logContainer>
|
<div class="bg-dark p-3 text-light font-monospace log-container" #logContainer>
|
||||||
@if (isLoading && logFiles.length) {
|
@if (loading && logFiles.length) {
|
||||||
<div>
|
<div>
|
||||||
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
||||||
<ng-container i18n>Loading...</ng-container>
|
<ng-container i18n>Loading...</ng-container>
|
||||||
|
@ -3,22 +3,28 @@ import {
|
|||||||
ElementRef,
|
ElementRef,
|
||||||
OnInit,
|
OnInit,
|
||||||
ViewChild,
|
ViewChild,
|
||||||
OnDestroy,
|
|
||||||
ChangeDetectorRef,
|
ChangeDetectorRef,
|
||||||
|
OnDestroy,
|
||||||
} from '@angular/core'
|
} from '@angular/core'
|
||||||
import { Subject, takeUntil } from 'rxjs'
|
import { takeUntil } from 'rxjs'
|
||||||
import { LogService } from 'src/app/services/rest/log.service'
|
import { LogService } from 'src/app/services/rest/log.service'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-logs',
|
selector: 'pngx-logs',
|
||||||
templateUrl: './logs.component.html',
|
templateUrl: './logs.component.html',
|
||||||
styleUrls: ['./logs.component.scss'],
|
styleUrls: ['./logs.component.scss'],
|
||||||
})
|
})
|
||||||
export class LogsComponent implements OnInit, OnDestroy {
|
export class LogsComponent
|
||||||
|
extends LoadingComponentWithPermissions
|
||||||
|
implements OnInit, OnDestroy
|
||||||
|
{
|
||||||
constructor(
|
constructor(
|
||||||
private logService: LogService,
|
private logService: LogService,
|
||||||
private changedetectorRef: ChangeDetectorRef
|
private changedetectorRef: ChangeDetectorRef
|
||||||
) {}
|
) {
|
||||||
|
super()
|
||||||
|
}
|
||||||
|
|
||||||
public logs: string[] = []
|
public logs: string[] = []
|
||||||
|
|
||||||
@ -26,22 +32,17 @@ export class LogsComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
public activeLog: string
|
public activeLog: string
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
public isLoading: boolean = false
|
|
||||||
|
|
||||||
public autoRefreshInterval: any
|
public autoRefreshInterval: any
|
||||||
|
|
||||||
@ViewChild('logContainer') logContainer: ElementRef
|
@ViewChild('logContainer') logContainer: ElementRef
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.isLoading = true
|
|
||||||
this.logService
|
this.logService
|
||||||
.list()
|
.list()
|
||||||
.pipe(takeUntil(this.unsubscribeNotifier))
|
.pipe(takeUntil(this.unsubscribeNotifier))
|
||||||
.subscribe((result) => {
|
.subscribe((result) => {
|
||||||
this.logFiles = result
|
this.logFiles = result
|
||||||
this.isLoading = false
|
this.loading = false
|
||||||
if (this.logFiles.length > 0) {
|
if (this.logFiles.length > 0) {
|
||||||
this.activeLog = this.logFiles[0]
|
this.activeLog = this.logFiles[0]
|
||||||
this.reloadLogs()
|
this.reloadLogs()
|
||||||
@ -51,25 +52,24 @@ export class LogsComponent implements OnInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
ngOnDestroy(): void {
|
||||||
this.unsubscribeNotifier.next(true)
|
super.ngOnDestroy()
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
clearInterval(this.autoRefreshInterval)
|
clearInterval(this.autoRefreshInterval)
|
||||||
}
|
}
|
||||||
|
|
||||||
reloadLogs() {
|
reloadLogs() {
|
||||||
this.isLoading = true
|
this.loading = true
|
||||||
this.logService
|
this.logService
|
||||||
.get(this.activeLog)
|
.get(this.activeLog)
|
||||||
.pipe(takeUntil(this.unsubscribeNotifier))
|
.pipe(takeUntil(this.unsubscribeNotifier))
|
||||||
.subscribe({
|
.subscribe({
|
||||||
next: (result) => {
|
next: (result) => {
|
||||||
this.logs = result
|
this.logs = result
|
||||||
this.isLoading = false
|
this.loading = false
|
||||||
this.scrollToBottom()
|
this.scrollToBottom()
|
||||||
},
|
},
|
||||||
error: () => {
|
error: () => {
|
||||||
this.logs = []
|
this.logs = []
|
||||||
this.isLoading = false
|
this.loading = false
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ import {
|
|||||||
import { PaperlessTask } from 'src/app/data/paperless-task'
|
import { PaperlessTask } from 'src/app/data/paperless-task'
|
||||||
import { TasksService } from 'src/app/services/tasks.service'
|
import { TasksService } from 'src/app/services/tasks.service'
|
||||||
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
||||||
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
export enum TaskTab {
|
export enum TaskTab {
|
||||||
Queued = 'queued',
|
Queued = 'queued',
|
||||||
@ -37,7 +37,7 @@ const FILTER_TARGETS = [
|
|||||||
styleUrls: ['./tasks.component.scss'],
|
styleUrls: ['./tasks.component.scss'],
|
||||||
})
|
})
|
||||||
export class TasksComponent
|
export class TasksComponent
|
||||||
extends ComponentWithPermissions
|
extends LoadingComponentWithPermissions
|
||||||
implements OnInit, OnDestroy
|
implements OnInit, OnDestroy
|
||||||
{
|
{
|
||||||
public activeTab: TaskTab
|
public activeTab: TaskTab
|
||||||
@ -70,8 +70,6 @@ export class TasksComponent
|
|||||||
: FILTER_TARGETS.slice(0, 1)
|
: FILTER_TARGETS.slice(0, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
get dismissButtonText(): string {
|
get dismissButtonText(): string {
|
||||||
return this.selectedTasks.size > 0
|
return this.selectedTasks.size > 0
|
||||||
? $localize`Dismiss selected`
|
? $localize`Dismiss selected`
|
||||||
@ -101,9 +99,9 @@ export class TasksComponent
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
|
super.ngOnDestroy()
|
||||||
this.tasksService.cancelPending()
|
this.tasksService.cancelPending()
|
||||||
clearInterval(this.autoRefreshInterval)
|
clearInterval(this.autoRefreshInterval)
|
||||||
this.unsubscribeNotifier.next(this)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dismissTask(task: PaperlessTask) {
|
dismissTask(task: PaperlessTask) {
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@if (isLoading) {
|
@if (loading) {
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5">
|
<td colspan="5">
|
||||||
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
||||||
@ -88,7 +88,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if (!isLoading) {
|
@if (!loading) {
|
||||||
<div class="d-flex mb-2">
|
<div class="d-flex mb-2">
|
||||||
<div>
|
<div>
|
||||||
<ng-container i18n>{totalDocuments, plural, =1 {One document in trash} other {{{totalDocuments || 0}} total documents in trash}}</ng-container>
|
<ng-container i18n>{totalDocuments, plural, =1 {One document in trash} other {{{totalDocuments || 0}} total documents in trash}}</ng-container>
|
||||||
|
@ -4,25 +4,26 @@ import { Document } from 'src/app/data/document'
|
|||||||
import { ToastService } from 'src/app/services/toast.service'
|
import { ToastService } from 'src/app/services/toast.service'
|
||||||
import { TrashService } from 'src/app/services/trash.service'
|
import { TrashService } from 'src/app/services/trash.service'
|
||||||
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
||||||
import { delay, Subject, takeUntil, tap } from 'rxjs'
|
import { delay, takeUntil, tap } from 'rxjs'
|
||||||
import { SettingsService } from 'src/app/services/settings.service'
|
import { SettingsService } from 'src/app/services/settings.service'
|
||||||
import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
|
import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
|
||||||
import { Router } from '@angular/router'
|
import { Router } from '@angular/router'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-trash',
|
selector: 'pngx-trash',
|
||||||
templateUrl: './trash.component.html',
|
templateUrl: './trash.component.html',
|
||||||
styleUrl: './trash.component.scss',
|
styleUrl: './trash.component.scss',
|
||||||
})
|
})
|
||||||
export class TrashComponent implements OnDestroy {
|
export class TrashComponent
|
||||||
|
extends LoadingComponentWithPermissions
|
||||||
|
implements OnDestroy
|
||||||
|
{
|
||||||
public documentsInTrash: Document[] = []
|
public documentsInTrash: Document[] = []
|
||||||
public selectedDocuments: Set<number> = new Set()
|
public selectedDocuments: Set<number> = new Set()
|
||||||
public allToggled: boolean = false
|
public allToggled: boolean = false
|
||||||
public page: number = 1
|
public page: number = 1
|
||||||
public totalDocuments: number
|
public totalDocuments: number
|
||||||
public isLoading: boolean = false
|
|
||||||
public reveal: boolean = false
|
|
||||||
unsubscribeNotifier: Subject<void> = new Subject()
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private trashService: TrashService,
|
private trashService: TrashService,
|
||||||
@ -31,16 +32,12 @@ export class TrashComponent implements OnDestroy {
|
|||||||
private settingsService: SettingsService,
|
private settingsService: SettingsService,
|
||||||
private router: Router
|
private router: Router
|
||||||
) {
|
) {
|
||||||
|
super()
|
||||||
this.reload()
|
this.reload()
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy() {
|
|
||||||
this.unsubscribeNotifier.next()
|
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
}
|
|
||||||
|
|
||||||
reload() {
|
reload() {
|
||||||
this.isLoading = true
|
this.loading = true
|
||||||
this.trashService
|
this.trashService
|
||||||
.getTrash(this.page)
|
.getTrash(this.page)
|
||||||
.pipe(
|
.pipe(
|
||||||
@ -48,12 +45,12 @@ export class TrashComponent implements OnDestroy {
|
|||||||
this.documentsInTrash = r.results
|
this.documentsInTrash = r.results
|
||||||
this.totalDocuments = r.count
|
this.totalDocuments = r.count
|
||||||
this.selectedDocuments.clear()
|
this.selectedDocuments.clear()
|
||||||
|
this.loading = false
|
||||||
}),
|
}),
|
||||||
delay(100)
|
delay(100)
|
||||||
)
|
)
|
||||||
.subscribe(() => {
|
.subscribe(() => {
|
||||||
this.reveal = true
|
this.reveal = true
|
||||||
this.isLoading = false
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
import { Component, EventEmitter, Input, Output } from '@angular/core'
|
import { Component, EventEmitter, Input, Output } from '@angular/core'
|
||||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { interval, Subject, take } from 'rxjs'
|
import { interval, Subject, take } from 'rxjs'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-confirm-dialog',
|
selector: 'pngx-confirm-dialog',
|
||||||
templateUrl: './confirm-dialog.component.html',
|
templateUrl: './confirm-dialog.component.html',
|
||||||
styleUrls: ['./confirm-dialog.component.scss'],
|
styleUrls: ['./confirm-dialog.component.scss'],
|
||||||
})
|
})
|
||||||
export class ConfirmDialogComponent {
|
export class ConfirmDialogComponent extends LoadingComponentWithPermissions {
|
||||||
constructor(public activeModal: NgbActiveModal) {}
|
constructor(public activeModal: NgbActiveModal) {
|
||||||
|
super()
|
||||||
|
}
|
||||||
|
|
||||||
@Output()
|
@Output()
|
||||||
public confirmClicked = new EventEmitter()
|
public confirmClicked = new EventEmitter()
|
||||||
|
@ -25,8 +25,6 @@ export class MergeConfirmDialogComponent
|
|||||||
|
|
||||||
public metadataDocumentID: number = -1
|
public metadataDocumentID: number = -1
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
activeModal: NgbActiveModal,
|
activeModal: NgbActiveModal,
|
||||||
private documentService: DocumentService,
|
private documentService: DocumentService,
|
||||||
|
@ -1,25 +1,22 @@
|
|||||||
import { getLocaleCurrencyCode } from '@angular/common'
|
import { getLocaleCurrencyCode } from '@angular/common'
|
||||||
import {
|
import { Component, Inject, Input, LOCALE_ID, OnInit } from '@angular/core'
|
||||||
Component,
|
import { takeUntil } from 'rxjs'
|
||||||
Inject,
|
|
||||||
Input,
|
|
||||||
LOCALE_ID,
|
|
||||||
OnDestroy,
|
|
||||||
OnInit,
|
|
||||||
} from '@angular/core'
|
|
||||||
import { Subject, takeUntil } from 'rxjs'
|
|
||||||
import { CustomField, CustomFieldDataType } from 'src/app/data/custom-field'
|
import { CustomField, CustomFieldDataType } from 'src/app/data/custom-field'
|
||||||
import { DisplayField, Document } from 'src/app/data/document'
|
import { DisplayField, Document } from 'src/app/data/document'
|
||||||
import { Results } from 'src/app/data/results'
|
import { Results } from 'src/app/data/results'
|
||||||
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
|
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
|
||||||
import { DocumentService } from 'src/app/services/rest/document.service'
|
import { DocumentService } from 'src/app/services/rest/document.service'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-custom-field-display',
|
selector: 'pngx-custom-field-display',
|
||||||
templateUrl: './custom-field-display.component.html',
|
templateUrl: './custom-field-display.component.html',
|
||||||
styleUrl: './custom-field-display.component.scss',
|
styleUrl: './custom-field-display.component.scss',
|
||||||
})
|
})
|
||||||
export class CustomFieldDisplayComponent implements OnInit, OnDestroy {
|
export class CustomFieldDisplayComponent
|
||||||
|
extends LoadingComponentWithPermissions
|
||||||
|
implements OnInit
|
||||||
|
{
|
||||||
CustomFieldDataType = CustomFieldDataType
|
CustomFieldDataType = CustomFieldDataType
|
||||||
|
|
||||||
private _document: Document
|
private _document: Document
|
||||||
@ -61,7 +58,6 @@ export class CustomFieldDisplayComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
private docLinkDocuments: Document[] = []
|
private docLinkDocuments: Document[] = []
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
private defaultCurrencyCode: any
|
private defaultCurrencyCode: any
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@ -69,6 +65,7 @@ export class CustomFieldDisplayComponent implements OnInit, OnDestroy {
|
|||||||
private documentService: DocumentService,
|
private documentService: DocumentService,
|
||||||
@Inject(LOCALE_ID) currentLocale: string
|
@Inject(LOCALE_ID) currentLocale: string
|
||||||
) {
|
) {
|
||||||
|
super()
|
||||||
this.defaultCurrencyCode = getLocaleCurrencyCode(currentLocale)
|
this.defaultCurrencyCode = getLocaleCurrencyCode(currentLocale)
|
||||||
this.customFieldService.listAll().subscribe((r) => {
|
this.customFieldService.listAll().subscribe((r) => {
|
||||||
this.customFields = r.results
|
this.customFields = r.results
|
||||||
@ -120,9 +117,4 @@ export class CustomFieldDisplayComponent implements OnInit, OnDestroy {
|
|||||||
public getSelectValue(field: CustomField, id: string): string {
|
public getSelectValue(field: CustomField, id: string): string {
|
||||||
return field.extra_data.select_options?.find((o) => o.id === id)?.label
|
return field.extra_data.select_options?.find((o) => o.id === id)?.label
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
|
||||||
this.unsubscribeNotifier.next(true)
|
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ import {
|
|||||||
ViewChildren,
|
ViewChildren,
|
||||||
} from '@angular/core'
|
} from '@angular/core'
|
||||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { Subject, first, takeUntil } from 'rxjs'
|
import { first, takeUntil } from 'rxjs'
|
||||||
import { CustomField, DATA_TYPE_LABELS } from 'src/app/data/custom-field'
|
import { CustomField, DATA_TYPE_LABELS } from 'src/app/data/custom-field'
|
||||||
import { CustomFieldInstance } from 'src/app/data/custom-field-instance'
|
import { CustomFieldInstance } from 'src/app/data/custom-field-instance'
|
||||||
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
|
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
|
||||||
@ -21,13 +21,14 @@ import {
|
|||||||
PermissionType,
|
PermissionType,
|
||||||
PermissionsService,
|
PermissionsService,
|
||||||
} from 'src/app/services/permissions.service'
|
} from 'src/app/services/permissions.service'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-custom-fields-dropdown',
|
selector: 'pngx-custom-fields-dropdown',
|
||||||
templateUrl: './custom-fields-dropdown.component.html',
|
templateUrl: './custom-fields-dropdown.component.html',
|
||||||
styleUrls: ['./custom-fields-dropdown.component.scss'],
|
styleUrls: ['./custom-fields-dropdown.component.scss'],
|
||||||
})
|
})
|
||||||
export class CustomFieldsDropdownComponent implements OnDestroy {
|
export class CustomFieldsDropdownComponent extends LoadingComponentWithPermissions {
|
||||||
@Input()
|
@Input()
|
||||||
documentId: number
|
documentId: number
|
||||||
|
|
||||||
@ -60,8 +61,6 @@ export class CustomFieldsDropdownComponent implements OnDestroy {
|
|||||||
|
|
||||||
public filterText: string
|
public filterText: string
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
get canCreateFields(): boolean {
|
get canCreateFields(): boolean {
|
||||||
return this.permissionsService.currentUserCan(
|
return this.permissionsService.currentUserCan(
|
||||||
PermissionAction.Add,
|
PermissionAction.Add,
|
||||||
@ -75,14 +74,10 @@ export class CustomFieldsDropdownComponent implements OnDestroy {
|
|||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
private permissionsService: PermissionsService
|
private permissionsService: PermissionsService
|
||||||
) {
|
) {
|
||||||
|
super()
|
||||||
this.getFields()
|
this.getFields()
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
|
||||||
this.unsubscribeNotifier.next(this)
|
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
}
|
|
||||||
|
|
||||||
private getFields() {
|
private getFields() {
|
||||||
this.customFieldsService
|
this.customFieldsService
|
||||||
.listAll()
|
.listAll()
|
||||||
|
@ -2,7 +2,6 @@ import {
|
|||||||
Component,
|
Component,
|
||||||
EventEmitter,
|
EventEmitter,
|
||||||
Input,
|
Input,
|
||||||
OnDestroy,
|
|
||||||
Output,
|
Output,
|
||||||
QueryList,
|
QueryList,
|
||||||
ViewChild,
|
ViewChild,
|
||||||
@ -29,6 +28,7 @@ import {
|
|||||||
CustomFieldQueryAtom,
|
CustomFieldQueryAtom,
|
||||||
} from 'src/app/utils/custom-field-query-element'
|
} from 'src/app/utils/custom-field-query-element'
|
||||||
import { popperOptionsReenablePreventOverflow } from 'src/app/utils/popper-options'
|
import { popperOptionsReenablePreventOverflow } from 'src/app/utils/popper-options'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
export class CustomFieldQueriesModel {
|
export class CustomFieldQueriesModel {
|
||||||
public queries: CustomFieldQueryElement[] = []
|
public queries: CustomFieldQueryElement[] = []
|
||||||
@ -157,7 +157,7 @@ export class CustomFieldQueriesModel {
|
|||||||
templateUrl: './custom-fields-query-dropdown.component.html',
|
templateUrl: './custom-fields-query-dropdown.component.html',
|
||||||
styleUrls: ['./custom-fields-query-dropdown.component.scss'],
|
styleUrls: ['./custom-fields-query-dropdown.component.scss'],
|
||||||
})
|
})
|
||||||
export class CustomFieldsQueryDropdownComponent implements OnDestroy {
|
export class CustomFieldsQueryDropdownComponent extends LoadingComponentWithPermissions {
|
||||||
public CustomFieldQueryComponentType = CustomFieldQueryElementType
|
public CustomFieldQueryComponentType = CustomFieldQueryElementType
|
||||||
public CustomFieldQueryOperator = CustomFieldQueryOperator
|
public CustomFieldQueryOperator = CustomFieldQueryOperator
|
||||||
public CustomFieldDataType = CustomFieldDataType
|
public CustomFieldDataType = CustomFieldDataType
|
||||||
@ -223,19 +223,13 @@ export class CustomFieldsQueryDropdownComponent implements OnDestroy {
|
|||||||
|
|
||||||
customFields: CustomField[] = []
|
customFields: CustomField[] = []
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
constructor(protected customFieldsService: CustomFieldsService) {
|
constructor(protected customFieldsService: CustomFieldsService) {
|
||||||
|
super()
|
||||||
this.selectionModel = new CustomFieldQueriesModel()
|
this.selectionModel = new CustomFieldQueriesModel()
|
||||||
this.getFields()
|
this.getFields()
|
||||||
this.reset()
|
this.reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
|
||||||
this.unsubscribeNotifier.next(this)
|
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
}
|
|
||||||
|
|
||||||
public onOpenChange(open: boolean) {
|
public onOpenChange(open: boolean) {
|
||||||
if (open) {
|
if (open) {
|
||||||
if (this.selectionModel.queries.length === 0) {
|
if (this.selectionModel.queries.length === 0) {
|
||||||
|
@ -2,7 +2,6 @@ import {
|
|||||||
AfterViewInit,
|
AfterViewInit,
|
||||||
Component,
|
Component,
|
||||||
ElementRef,
|
ElementRef,
|
||||||
OnDestroy,
|
|
||||||
OnInit,
|
OnInit,
|
||||||
QueryList,
|
QueryList,
|
||||||
ViewChildren,
|
ViewChildren,
|
||||||
@ -18,7 +17,7 @@ import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service
|
|||||||
import { UserService } from 'src/app/services/rest/user.service'
|
import { UserService } from 'src/app/services/rest/user.service'
|
||||||
import { SettingsService } from 'src/app/services/settings.service'
|
import { SettingsService } from 'src/app/services/settings.service'
|
||||||
import { EditDialogComponent, EditDialogMode } from '../edit-dialog.component'
|
import { EditDialogComponent, EditDialogMode } from '../edit-dialog.component'
|
||||||
import { Subject, takeUntil } from 'rxjs'
|
import { takeUntil } from 'rxjs'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-custom-field-edit-dialog',
|
selector: 'pngx-custom-field-edit-dialog',
|
||||||
@ -27,15 +26,13 @@ import { Subject, takeUntil } from 'rxjs'
|
|||||||
})
|
})
|
||||||
export class CustomFieldEditDialogComponent
|
export class CustomFieldEditDialogComponent
|
||||||
extends EditDialogComponent<CustomField>
|
extends EditDialogComponent<CustomField>
|
||||||
implements OnInit, AfterViewInit, OnDestroy
|
implements OnInit, AfterViewInit
|
||||||
{
|
{
|
||||||
CustomFieldDataType = CustomFieldDataType
|
CustomFieldDataType = CustomFieldDataType
|
||||||
|
|
||||||
@ViewChildren('selectOption')
|
@ViewChildren('selectOption')
|
||||||
private selectOptionInputs: QueryList<ElementRef>
|
private selectOptionInputs: QueryList<ElementRef>
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
private get selectOptions(): FormArray {
|
private get selectOptions(): FormArray {
|
||||||
return (this.objectForm.controls.extra_data as FormGroup).controls
|
return (this.objectForm.controls.extra_data as FormGroup).controls
|
||||||
.select_options as FormArray
|
.select_options as FormArray
|
||||||
@ -78,11 +75,6 @@ export class CustomFieldEditDialogComponent
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
|
||||||
this.unsubscribeNotifier.next(true)
|
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
}
|
|
||||||
|
|
||||||
getCreateTitle() {
|
getCreateTitle() {
|
||||||
return $localize`Create new custom field`
|
return $localize`Create new custom field`
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ import { UserService } from 'src/app/services/rest/user.service'
|
|||||||
import { PermissionsFormObject } from '../input/permissions/permissions-form/permissions-form.component'
|
import { PermissionsFormObject } from '../input/permissions/permissions-form/permissions-form.component'
|
||||||
import { SettingsService } from 'src/app/services/settings.service'
|
import { SettingsService } from 'src/app/services/settings.service'
|
||||||
import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
|
import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
export enum EditDialogMode {
|
export enum EditDialogMode {
|
||||||
CREATE = 0,
|
CREATE = 0,
|
||||||
@ -23,15 +24,19 @@ export enum EditDialogMode {
|
|||||||
|
|
||||||
@Directive()
|
@Directive()
|
||||||
export abstract class EditDialogComponent<
|
export abstract class EditDialogComponent<
|
||||||
T extends ObjectWithPermissions | ObjectWithId,
|
T extends ObjectWithPermissions | ObjectWithId,
|
||||||
> implements OnInit
|
>
|
||||||
|
extends LoadingComponentWithPermissions
|
||||||
|
implements OnInit
|
||||||
{
|
{
|
||||||
constructor(
|
constructor(
|
||||||
protected service: AbstractPaperlessService<T>,
|
protected service: AbstractPaperlessService<T>,
|
||||||
private activeModal: NgbActiveModal,
|
private activeModal: NgbActiveModal,
|
||||||
private userService: UserService,
|
private userService: UserService,
|
||||||
private settingsService: SettingsService
|
private settingsService: SettingsService
|
||||||
) {}
|
) {
|
||||||
|
super()
|
||||||
|
}
|
||||||
|
|
||||||
users: User[]
|
users: User[]
|
||||||
|
|
||||||
|
@ -41,8 +41,6 @@ export class StoragePathEditDialogComponent
|
|||||||
public loading = false
|
public loading = false
|
||||||
public testLoading = false
|
public testLoading = false
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
service: StoragePathService,
|
service: StoragePathService,
|
||||||
activeModal: NgbActiveModal,
|
activeModal: NgbActiveModal,
|
||||||
@ -54,11 +52,6 @@ export class StoragePathEditDialogComponent
|
|||||||
this.initPathObservables()
|
this.initPathObservables()
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
|
||||||
this.unsubscribeNotifier.next(this)
|
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
}
|
|
||||||
|
|
||||||
getCreateTitle() {
|
getCreateTitle() {
|
||||||
return $localize`Create new storage path`
|
return $localize`Create new storage path`
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@ import {
|
|||||||
ElementRef,
|
ElementRef,
|
||||||
ViewChild,
|
ViewChild,
|
||||||
OnInit,
|
OnInit,
|
||||||
OnDestroy,
|
|
||||||
} from '@angular/core'
|
} from '@angular/core'
|
||||||
import { FilterPipe } from 'src/app/pipes/filter.pipe'
|
import { FilterPipe } from 'src/app/pipes/filter.pipe'
|
||||||
import { NgbDropdown } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbDropdown } from '@ng-bootstrap/ng-bootstrap'
|
||||||
@ -17,6 +16,7 @@ import { SelectionDataItem } from 'src/app/services/rest/document.service'
|
|||||||
import { ObjectWithPermissions } from 'src/app/data/object-with-permissions'
|
import { ObjectWithPermissions } from 'src/app/data/object-with-permissions'
|
||||||
import { HotKeyService } from 'src/app/services/hot-key.service'
|
import { HotKeyService } from 'src/app/services/hot-key.service'
|
||||||
import { popperOptionsReenablePreventOverflow } from 'src/app/utils/popper-options'
|
import { popperOptionsReenablePreventOverflow } from 'src/app/utils/popper-options'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
export interface ChangedItems {
|
export interface ChangedItems {
|
||||||
itemsToAdd: MatchingModel[]
|
itemsToAdd: MatchingModel[]
|
||||||
@ -353,7 +353,10 @@ export class FilterableDropdownSelectionModel {
|
|||||||
templateUrl: './filterable-dropdown.component.html',
|
templateUrl: './filterable-dropdown.component.html',
|
||||||
styleUrls: ['./filterable-dropdown.component.scss'],
|
styleUrls: ['./filterable-dropdown.component.scss'],
|
||||||
})
|
})
|
||||||
export class FilterableDropdownComponent implements OnDestroy, OnInit {
|
export class FilterableDropdownComponent
|
||||||
|
extends LoadingComponentWithPermissions
|
||||||
|
implements OnInit
|
||||||
|
{
|
||||||
@ViewChild('listFilterTextInput') listFilterTextInput: ElementRef
|
@ViewChild('listFilterTextInput') listFilterTextInput: ElementRef
|
||||||
@ViewChild('dropdown') dropdown: NgbDropdown
|
@ViewChild('dropdown') dropdown: NgbDropdown
|
||||||
@ViewChild('buttonItems') buttonItems: ElementRef
|
@ViewChild('buttonItems') buttonItems: ElementRef
|
||||||
@ -467,12 +470,11 @@ export class FilterableDropdownComponent implements OnDestroy, OnInit {
|
|||||||
|
|
||||||
private keyboardIndex: number
|
private keyboardIndex: number
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private filterPipe: FilterPipe,
|
private filterPipe: FilterPipe,
|
||||||
private hotkeyService: HotKeyService
|
private hotkeyService: HotKeyService
|
||||||
) {
|
) {
|
||||||
|
super()
|
||||||
this.selectionModelChange.subscribe((updatedModel) => {
|
this.selectionModelChange.subscribe((updatedModel) => {
|
||||||
this.modelIsDirty = updatedModel.isDirty()
|
this.modelIsDirty = updatedModel.isDirty()
|
||||||
})
|
})
|
||||||
@ -495,11 +497,6 @@ export class FilterableDropdownComponent implements OnDestroy, OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
|
||||||
this.unsubscribeNotifier.next(true)
|
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
}
|
|
||||||
|
|
||||||
applyClicked() {
|
applyClicked() {
|
||||||
if (this.selectionModel.isDirty()) {
|
if (this.selectionModel.isDirty()) {
|
||||||
this.dropdown.close()
|
this.dropdown.close()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { Component, OnDestroy, OnInit } from '@angular/core'
|
import { Component, OnInit } from '@angular/core'
|
||||||
import { FormControl, FormGroup } from '@angular/forms'
|
import { FormControl, FormGroup } from '@angular/forms'
|
||||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { ProfileService } from 'src/app/services/profile.service'
|
import { ProfileService } from 'src/app/services/profile.service'
|
||||||
@ -8,18 +8,21 @@ import {
|
|||||||
SocialAccountProvider,
|
SocialAccountProvider,
|
||||||
} from 'src/app/data/user-profile'
|
} from 'src/app/data/user-profile'
|
||||||
import { ToastService } from 'src/app/services/toast.service'
|
import { ToastService } from 'src/app/services/toast.service'
|
||||||
import { Subject, takeUntil } from 'rxjs'
|
import { takeUntil } from 'rxjs'
|
||||||
import { Clipboard } from '@angular/cdk/clipboard'
|
import { Clipboard } from '@angular/cdk/clipboard'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-profile-edit-dialog',
|
selector: 'pngx-profile-edit-dialog',
|
||||||
templateUrl: './profile-edit-dialog.component.html',
|
templateUrl: './profile-edit-dialog.component.html',
|
||||||
styleUrls: ['./profile-edit-dialog.component.scss'],
|
styleUrls: ['./profile-edit-dialog.component.scss'],
|
||||||
})
|
})
|
||||||
export class ProfileEditDialogComponent implements OnInit, OnDestroy {
|
export class ProfileEditDialogComponent
|
||||||
|
extends LoadingComponentWithPermissions
|
||||||
|
implements OnInit
|
||||||
|
{
|
||||||
public networkActive: boolean = false
|
public networkActive: boolean = false
|
||||||
public error: any
|
public error: any
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
public form = new FormGroup({
|
public form = new FormGroup({
|
||||||
email: new FormControl(''),
|
email: new FormControl(''),
|
||||||
@ -60,7 +63,9 @@ export class ProfileEditDialogComponent implements OnInit, OnDestroy {
|
|||||||
public activeModal: NgbActiveModal,
|
public activeModal: NgbActiveModal,
|
||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
private clipboard: Clipboard
|
private clipboard: Clipboard
|
||||||
) {}
|
) {
|
||||||
|
super()
|
||||||
|
}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.networkActive = true
|
this.networkActive = true
|
||||||
@ -93,11 +98,6 @@ export class ProfileEditDialogComponent implements OnInit, OnDestroy {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
|
||||||
this.unsubscribeNotifier.next(true)
|
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
}
|
|
||||||
|
|
||||||
get saveDisabled(): boolean {
|
get saveDisabled(): boolean {
|
||||||
return this.error?.password_confirm || this.error?.email_confirm
|
return this.error?.password_confirm || this.error?.email_confirm
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,6 @@ import {
|
|||||||
} from 'src/app/data/filter-rule-type'
|
} from 'src/app/data/filter-rule-type'
|
||||||
import { OpenDocumentsService } from 'src/app/services/open-documents.service'
|
import { OpenDocumentsService } from 'src/app/services/open-documents.service'
|
||||||
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
|
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
|
||||||
import { ComponentWithPermissions } from 'src/app/components/with-permissions/with-permissions.component'
|
|
||||||
import { NgbPopover } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbPopover } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import {
|
import {
|
||||||
PermissionAction,
|
PermissionAction,
|
||||||
@ -38,6 +37,7 @@ import {
|
|||||||
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
|
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
|
||||||
import { CustomField, CustomFieldDataType } from 'src/app/data/custom-field'
|
import { CustomField, CustomFieldDataType } from 'src/app/data/custom-field'
|
||||||
import { SettingsService } from 'src/app/services/settings.service'
|
import { SettingsService } from 'src/app/services/settings.service'
|
||||||
|
import { LoadingComponentWithPermissions } from 'src/app/components/loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-saved-view-widget',
|
selector: 'pngx-saved-view-widget',
|
||||||
@ -45,16 +45,13 @@ import { SettingsService } from 'src/app/services/settings.service'
|
|||||||
styleUrls: ['./saved-view-widget.component.scss'],
|
styleUrls: ['./saved-view-widget.component.scss'],
|
||||||
})
|
})
|
||||||
export class SavedViewWidgetComponent
|
export class SavedViewWidgetComponent
|
||||||
extends ComponentWithPermissions
|
extends LoadingComponentWithPermissions
|
||||||
implements OnInit, OnDestroy
|
implements OnInit, OnDestroy
|
||||||
{
|
{
|
||||||
public DisplayMode = DisplayMode
|
public DisplayMode = DisplayMode
|
||||||
public DisplayField = DisplayField
|
public DisplayField = DisplayField
|
||||||
public CustomFieldDataType = CustomFieldDataType
|
public CustomFieldDataType = CustomFieldDataType
|
||||||
|
|
||||||
public loading: boolean = true
|
|
||||||
public reveal: boolean = false
|
|
||||||
|
|
||||||
private customFields: CustomField[] = []
|
private customFields: CustomField[] = []
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -1,12 +1,18 @@
|
|||||||
import { AfterViewInit, Component, Input } from '@angular/core'
|
import { AfterViewInit, Component, Input } from '@angular/core'
|
||||||
|
import { LoadingComponentWithPermissions } from 'src/app/components/loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-widget-frame',
|
selector: 'pngx-widget-frame',
|
||||||
templateUrl: './widget-frame.component.html',
|
templateUrl: './widget-frame.component.html',
|
||||||
styleUrls: ['./widget-frame.component.scss'],
|
styleUrls: ['./widget-frame.component.scss'],
|
||||||
})
|
})
|
||||||
export class WidgetFrameComponent implements AfterViewInit {
|
export class WidgetFrameComponent
|
||||||
constructor() {}
|
extends LoadingComponentWithPermissions
|
||||||
|
implements AfterViewInit
|
||||||
|
{
|
||||||
|
constructor() {
|
||||||
|
super()
|
||||||
|
}
|
||||||
|
|
||||||
@Input()
|
@Input()
|
||||||
title: string
|
title: string
|
||||||
@ -17,8 +23,6 @@ export class WidgetFrameComponent implements AfterViewInit {
|
|||||||
@Input()
|
@Input()
|
||||||
draggable: any
|
draggable: any
|
||||||
|
|
||||||
public reveal: boolean = false
|
|
||||||
|
|
||||||
ngAfterViewInit(): void {
|
ngAfterViewInit(): void {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.reveal = true
|
this.reveal = true
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing'
|
||||||
|
import { Subject } from 'rxjs'
|
||||||
|
import { LoadingComponentWithPermissions } from './loading.component'
|
||||||
|
import { ComponentWithPermissions } from '../with-permissions/with-permissions.component'
|
||||||
|
import { Component } from '@angular/core'
|
||||||
|
|
||||||
|
class MockComponentWithPermissions extends ComponentWithPermissions {}
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
template: '',
|
||||||
|
})
|
||||||
|
class MockLoadingComponent extends LoadingComponentWithPermissions {}
|
||||||
|
|
||||||
|
describe('LoadingComponentWithPermissions', () => {
|
||||||
|
let component: LoadingComponentWithPermissions
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [LoadingComponentWithPermissions],
|
||||||
|
})
|
||||||
|
component = new MockLoadingComponent()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should have loading set to true by default', () => {
|
||||||
|
expect(component.loading).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should have reveal set to false by default', () => {
|
||||||
|
expect(component.reveal).toBeFalsy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should call next and complete on unsubscribeNotifier with itself on destroy', () => {
|
||||||
|
const nextSpy = jest.spyOn(component['unsubscribeNotifier'], 'next')
|
||||||
|
const completeSpy = jest.spyOn(component['unsubscribeNotifier'], 'complete')
|
||||||
|
component.ngOnDestroy()
|
||||||
|
expect(nextSpy).toHaveBeenCalledWith(component)
|
||||||
|
expect(completeSpy).toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
})
|
@ -0,0 +1,23 @@
|
|||||||
|
import { Subject } from 'rxjs'
|
||||||
|
import { ComponentWithPermissions } from '../with-permissions/with-permissions.component'
|
||||||
|
import { Directive, OnDestroy } from '@angular/core'
|
||||||
|
|
||||||
|
@Directive()
|
||||||
|
export abstract class LoadingComponentWithPermissions
|
||||||
|
extends ComponentWithPermissions
|
||||||
|
implements OnDestroy
|
||||||
|
{
|
||||||
|
public loading: boolean = true
|
||||||
|
public reveal: boolean = false
|
||||||
|
|
||||||
|
protected unsubscribeNotifier: Subject<any> = new Subject()
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super()
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
this.unsubscribeNotifier.next(this)
|
||||||
|
this.unsubscribeNotifier.complete()
|
||||||
|
}
|
||||||
|
}
|
@ -28,6 +28,7 @@ import {
|
|||||||
CustomFieldQueryLogicalOperator,
|
CustomFieldQueryLogicalOperator,
|
||||||
CustomFieldQueryOperator,
|
CustomFieldQueryOperator,
|
||||||
} from 'src/app/data/custom-field-query'
|
} from 'src/app/data/custom-field-query'
|
||||||
|
import { SettingsService } from 'src/app/services/settings.service'
|
||||||
|
|
||||||
const fields: CustomField[] = [
|
const fields: CustomField[] = [
|
||||||
{
|
{
|
||||||
@ -49,6 +50,7 @@ describe('CustomFieldsComponent', () => {
|
|||||||
let modalService: NgbModal
|
let modalService: NgbModal
|
||||||
let toastService: ToastService
|
let toastService: ToastService
|
||||||
let listViewService: DocumentListViewService
|
let listViewService: DocumentListViewService
|
||||||
|
let settingsService: SettingsService
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
@ -91,6 +93,8 @@ describe('CustomFieldsComponent', () => {
|
|||||||
modalService = TestBed.inject(NgbModal)
|
modalService = TestBed.inject(NgbModal)
|
||||||
toastService = TestBed.inject(ToastService)
|
toastService = TestBed.inject(ToastService)
|
||||||
listViewService = TestBed.inject(DocumentListViewService)
|
listViewService = TestBed.inject(DocumentListViewService)
|
||||||
|
settingsService = TestBed.inject(SettingsService)
|
||||||
|
settingsService.currentUser = { id: 0, username: 'test' }
|
||||||
|
|
||||||
fixture = TestBed.createComponent(CustomFieldsComponent)
|
fixture = TestBed.createComponent(CustomFieldsComponent)
|
||||||
component = fixture.componentInstance
|
component = fixture.componentInstance
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, OnInit } from '@angular/core'
|
import { Component, OnInit } from '@angular/core'
|
||||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { delay, Subject, takeUntil, tap } from 'rxjs'
|
import { delay, takeUntil, tap } from 'rxjs'
|
||||||
import { DATA_TYPE_LABELS, CustomField } from 'src/app/data/custom-field'
|
import { DATA_TYPE_LABELS, CustomField } from 'src/app/data/custom-field'
|
||||||
import { PermissionsService } from 'src/app/services/permissions.service'
|
import { PermissionsService } from 'src/app/services/permissions.service'
|
||||||
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
|
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
|
||||||
@ -8,7 +8,6 @@ import { ToastService } from 'src/app/services/toast.service'
|
|||||||
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
||||||
import { CustomFieldEditDialogComponent } from '../../common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component'
|
import { CustomFieldEditDialogComponent } from '../../common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component'
|
||||||
import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component'
|
import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component'
|
||||||
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
|
|
||||||
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
|
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
|
||||||
import { FILTER_CUSTOM_FIELDS_QUERY } from 'src/app/data/filter-rule-type'
|
import { FILTER_CUSTOM_FIELDS_QUERY } from 'src/app/data/filter-rule-type'
|
||||||
import {
|
import {
|
||||||
@ -16,6 +15,7 @@ import {
|
|||||||
CustomFieldQueryOperator,
|
CustomFieldQueryOperator,
|
||||||
} from 'src/app/data/custom-field-query'
|
} from 'src/app/data/custom-field-query'
|
||||||
import { SettingsService } from 'src/app/services/settings.service'
|
import { SettingsService } from 'src/app/services/settings.service'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-custom-fields',
|
selector: 'pngx-custom-fields',
|
||||||
@ -23,15 +23,11 @@ import { SettingsService } from 'src/app/services/settings.service'
|
|||||||
styleUrls: ['./custom-fields.component.scss'],
|
styleUrls: ['./custom-fields.component.scss'],
|
||||||
})
|
})
|
||||||
export class CustomFieldsComponent
|
export class CustomFieldsComponent
|
||||||
extends ComponentWithPermissions
|
extends LoadingComponentWithPermissions
|
||||||
implements OnInit
|
implements OnInit
|
||||||
{
|
{
|
||||||
public fields: CustomField[] = []
|
public fields: CustomField[] = []
|
||||||
|
|
||||||
public loading: boolean = true
|
|
||||||
public reveal: boolean = false
|
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
constructor(
|
constructor(
|
||||||
private customFieldsService: CustomFieldsService,
|
private customFieldsService: CustomFieldsService,
|
||||||
public permissionsService: PermissionsService,
|
public permissionsService: PermissionsService,
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@if (isLoading) {
|
@if (loading) {
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5">
|
<td colspan="5">
|
||||||
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
<div class="spinner-border spinner-border-sm me-2" role="status"></div>
|
||||||
@ -109,7 +109,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if (!isLoading) {
|
@if (!loading) {
|
||||||
<div class="d-flex mb-2">
|
<div class="d-flex mb-2">
|
||||||
@if (collectionSize > 0) {
|
@if (collectionSize > 0) {
|
||||||
<div>
|
<div>
|
||||||
|
@ -39,8 +39,8 @@ import {
|
|||||||
import { ToastService } from 'src/app/services/toast.service'
|
import { ToastService } from 'src/app/services/toast.service'
|
||||||
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
||||||
import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component'
|
import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component'
|
||||||
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
|
|
||||||
import { PermissionsDialogComponent } from '../../common/permissions-dialog/permissions-dialog.component'
|
import { PermissionsDialogComponent } from '../../common/permissions-dialog/permissions-dialog.component'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
export interface ManagementListColumn {
|
export interface ManagementListColumn {
|
||||||
key: string
|
key: string
|
||||||
@ -56,7 +56,7 @@ export interface ManagementListColumn {
|
|||||||
|
|
||||||
@Directive()
|
@Directive()
|
||||||
export abstract class ManagementListComponent<T extends ObjectWithId>
|
export abstract class ManagementListComponent<T extends ObjectWithId>
|
||||||
extends ComponentWithPermissions
|
extends LoadingComponentWithPermissions
|
||||||
implements OnInit, OnDestroy
|
implements OnInit, OnDestroy
|
||||||
{
|
{
|
||||||
constructor(
|
constructor(
|
||||||
@ -86,8 +86,6 @@ export abstract class ManagementListComponent<T extends ObjectWithId>
|
|||||||
public sortField: string
|
public sortField: string
|
||||||
public sortReverse: boolean
|
public sortReverse: boolean
|
||||||
|
|
||||||
public isLoading: boolean = false
|
|
||||||
|
|
||||||
private nameFilterDebounce: Subject<string>
|
private nameFilterDebounce: Subject<string>
|
||||||
protected unsubscribeNotifier: Subject<any> = new Subject()
|
protected unsubscribeNotifier: Subject<any> = new Subject()
|
||||||
protected _nameFilter: string
|
protected _nameFilter: string
|
||||||
@ -95,8 +93,6 @@ export abstract class ManagementListComponent<T extends ObjectWithId>
|
|||||||
public selectedObjects: Set<number> = new Set()
|
public selectedObjects: Set<number> = new Set()
|
||||||
public togggleAll: boolean = false
|
public togggleAll: boolean = false
|
||||||
|
|
||||||
public reveal: boolean = false
|
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.reloadData()
|
this.reloadData()
|
||||||
|
|
||||||
@ -115,11 +111,6 @@ export abstract class ManagementListComponent<T extends ObjectWithId>
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy() {
|
|
||||||
this.unsubscribeNotifier.next(true)
|
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
}
|
|
||||||
|
|
||||||
getMatching(o: MatchingModel) {
|
getMatching(o: MatchingModel) {
|
||||||
if (o.matching_algorithm == MATCH_AUTO) {
|
if (o.matching_algorithm == MATCH_AUTO) {
|
||||||
return $localize`Automatic`
|
return $localize`Automatic`
|
||||||
@ -141,7 +132,7 @@ export abstract class ManagementListComponent<T extends ObjectWithId>
|
|||||||
}
|
}
|
||||||
|
|
||||||
reloadData(extraParams: { [key: string]: any } = null) {
|
reloadData(extraParams: { [key: string]: any } = null) {
|
||||||
this.isLoading = true
|
this.loading = true
|
||||||
this.clearSelection()
|
this.clearSelection()
|
||||||
this.service
|
this.service
|
||||||
.listFiltered(
|
.listFiltered(
|
||||||
@ -163,7 +154,7 @@ export abstract class ManagementListComponent<T extends ObjectWithId>
|
|||||||
)
|
)
|
||||||
.subscribe(() => {
|
.subscribe(() => {
|
||||||
this.reveal = true
|
this.reveal = true
|
||||||
this.isLoading = false
|
this.loading = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,11 +3,11 @@ import { FormControl, FormGroup } from '@angular/forms'
|
|||||||
import { SavedView } from 'src/app/data/saved-view'
|
import { SavedView } from 'src/app/data/saved-view'
|
||||||
import { SavedViewService } from 'src/app/services/rest/saved-view.service'
|
import { SavedViewService } from 'src/app/services/rest/saved-view.service'
|
||||||
import { SettingsService } from 'src/app/services/settings.service'
|
import { SettingsService } from 'src/app/services/settings.service'
|
||||||
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
|
|
||||||
import { DisplayMode } from 'src/app/data/document'
|
import { DisplayMode } from 'src/app/data/document'
|
||||||
import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs'
|
import { BehaviorSubject, Observable, takeUntil } from 'rxjs'
|
||||||
import { dirtyCheck } from '@ngneat/dirty-check-forms'
|
import { dirtyCheck } from '@ngneat/dirty-check-forms'
|
||||||
import { ToastService } from 'src/app/services/toast.service'
|
import { ToastService } from 'src/app/services/toast.service'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-saved-views',
|
selector: 'pngx-saved-views',
|
||||||
@ -15,7 +15,7 @@ import { ToastService } from 'src/app/services/toast.service'
|
|||||||
styleUrl: './saved-views.component.scss',
|
styleUrl: './saved-views.component.scss',
|
||||||
})
|
})
|
||||||
export class SavedViewsComponent
|
export class SavedViewsComponent
|
||||||
extends ComponentWithPermissions
|
extends LoadingComponentWithPermissions
|
||||||
implements OnInit, OnDestroy
|
implements OnInit, OnDestroy
|
||||||
{
|
{
|
||||||
DisplayMode = DisplayMode
|
DisplayMode = DisplayMode
|
||||||
@ -27,11 +27,7 @@ export class SavedViewsComponent
|
|||||||
})
|
})
|
||||||
|
|
||||||
private store: BehaviorSubject<any>
|
private store: BehaviorSubject<any>
|
||||||
private storeSub: Subscription
|
|
||||||
public isDirty$: Observable<boolean>
|
public isDirty$: Observable<boolean>
|
||||||
private isDirty: boolean = false
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
private savePending: boolean = false
|
|
||||||
|
|
||||||
get displayFields() {
|
get displayFields() {
|
||||||
return this.settings.allDisplayFields
|
return this.settings.allDisplayFields
|
||||||
@ -56,9 +52,7 @@ export class SavedViewsComponent
|
|||||||
|
|
||||||
ngOnDestroy(): void {
|
ngOnDestroy(): void {
|
||||||
this.settings.organizingSidebarSavedViews = false
|
this.settings.organizingSidebarSavedViews = false
|
||||||
this.unsubscribeNotifier.next(this)
|
super.ngOnDestroy()
|
||||||
this.unsubscribeNotifier.complete()
|
|
||||||
this.storeSub.unsubscribe()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private initialize() {
|
private initialize() {
|
||||||
@ -93,9 +87,12 @@ export class SavedViewsComponent
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.store = new BehaviorSubject(storeData)
|
this.store = new BehaviorSubject(storeData)
|
||||||
this.storeSub = this.store.asObservable().subscribe((state) => {
|
this.store
|
||||||
this.savedViewsForm.patchValue(state, { emitEvent: false })
|
.asObservable()
|
||||||
})
|
.pipe(takeUntil(this.unsubscribeNotifier))
|
||||||
|
.subscribe((state) => {
|
||||||
|
this.savedViewsForm.patchValue(state, { emitEvent: false })
|
||||||
|
})
|
||||||
|
|
||||||
// Initialize dirtyCheck
|
// Initialize dirtyCheck
|
||||||
this.isDirty$ = dirtyCheck(this.savedViewsForm, this.store.asObservable())
|
this.isDirty$ = dirtyCheck(this.savedViewsForm, this.store.asObservable())
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import { Component, OnInit } from '@angular/core'
|
import { Component, OnInit } from '@angular/core'
|
||||||
import { WorkflowService } from 'src/app/services/rest/workflow.service'
|
import { WorkflowService } from 'src/app/services/rest/workflow.service'
|
||||||
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
|
import { delay, takeUntil, tap } from 'rxjs'
|
||||||
import { delay, Subject, takeUntil, tap } from 'rxjs'
|
|
||||||
import { Workflow } from 'src/app/data/workflow'
|
import { Workflow } from 'src/app/data/workflow'
|
||||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { ToastService } from 'src/app/services/toast.service'
|
import { ToastService } from 'src/app/services/toast.service'
|
||||||
@ -12,6 +11,7 @@ import {
|
|||||||
} from '../../common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component'
|
} from '../../common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component'
|
||||||
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
||||||
import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component'
|
import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component'
|
||||||
|
import { LoadingComponentWithPermissions } from '../../loading-component/loading.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-workflows',
|
selector: 'pngx-workflows',
|
||||||
@ -19,16 +19,11 @@ import { EditDialogMode } from '../../common/edit-dialog/edit-dialog.component'
|
|||||||
styleUrls: ['./workflows.component.scss'],
|
styleUrls: ['./workflows.component.scss'],
|
||||||
})
|
})
|
||||||
export class WorkflowsComponent
|
export class WorkflowsComponent
|
||||||
extends ComponentWithPermissions
|
extends LoadingComponentWithPermissions
|
||||||
implements OnInit
|
implements OnInit
|
||||||
{
|
{
|
||||||
public workflows: Workflow[] = []
|
public workflows: Workflow[] = []
|
||||||
|
|
||||||
private unsubscribeNotifier: Subject<any> = new Subject()
|
|
||||||
|
|
||||||
public loading: boolean = false
|
|
||||||
public reveal: boolean = false
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private workflowService: WorkflowService,
|
private workflowService: WorkflowService,
|
||||||
public permissionsService: PermissionsService,
|
public permissionsService: PermissionsService,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user