mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-28 18:24:38 -05:00
Merge branch 'dev'
commitfb9d3f736b
Merge:4d4d5453
049dc179
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun Dec 4 16:47:58 2022 -0800 Merge pull request #2000 from paperless-ngx/feature-frontend-paperless-mail Feature: frontend paperless mail commit4d4d545343
Merge:2704bcb9
4b31e5d0
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Sun Dec 4 16:34:41 2022 -0800 Merge pull request #848 from p-h-a-i-l/feature-consume-eml Feature ability to consume mails and eml files commit049dc17902
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Dec 4 16:33:07 2022 -0800 Moves where the mail views live and puts the ordering on those commit4b31e5d0b4
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Dec 4 14:00:59 2022 -0800 Fixes my broken formatting commit8076ebd78c
Merge:fe2db4db
2704bcb9
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Dec 4 13:55:46 2022 -0800 Merge remote-tracking branch 'upstream/dev' into feature-consume-eml commit2704bcb979
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Dec 4 13:06:18 2022 -0800 Resets to -dev versioning commit59f6074093
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Dec 4 12:58:03 2022 -0800 Bumps version to 1.10.2 commitb1da7f3491
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Dec 4 12:57:19 2022 -0800 Probably fixes the changelog step not working commitadde88e7b9
Merge:a8f3c4be
8e876ef2
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Dec 4 12:55:55 2022 -0800 Merge branch 'dev' commit8e876ef2d1
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Dec 4 10:20:48 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commit2ea0f83a91
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 05:12:02 2022 -0800 New translations messages.xlf (Italian) [ci skip] commit05d8ea5a9d
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:09:05 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commit967248233f
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:09:04 2022 -0800 New translations messages.xlf (French) [ci skip] commitb4c4b9fb6a
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:09:03 2022 -0800 New translations messages.xlf (Spanish) [ci skip] commitadb6483abc
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:09:01 2022 -0800 New translations messages.xlf (Arabic) [ci skip] commit908db55bb7
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:09:00 2022 -0800 New translations messages.xlf (Belarusian) [ci skip] commit610f20de28
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:59 2022 -0800 New translations messages.xlf (Czech) [ci skip] commitb2513a5cde
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:57 2022 -0800 New translations messages.xlf (Danish) [ci skip] commitbfa1c13d01
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:56 2022 -0800 New translations messages.xlf (Finnish) [ci skip] commit12aaff431f
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:55 2022 -0800 New translations messages.xlf (Hebrew) [ci skip] commit547e5ea55e
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:54 2022 -0800 New translations messages.xlf (Italian) [ci skip] commitc301127096
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:52 2022 -0800 New translations messages.xlf (Dutch) [ci skip] commit19147855e7
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:51 2022 -0800 New translations messages.xlf (Romanian) [ci skip] commit4e7c7ea1d6
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:49 2022 -0800 New translations messages.xlf (Norwegian) [ci skip] commitfcf8a49160
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:48 2022 -0800 New translations messages.xlf (Portuguese) [ci skip] commitc6d658a954
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:47 2022 -0800 New translations messages.xlf (Russian) [ci skip] commita78cd6526c
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:45 2022 -0800 New translations messages.xlf (Slovenian) [ci skip] commitbf895b54f4
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:44 2022 -0800 New translations messages.xlf (Swedish) [ci skip] commite5f84ef583
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:43 2022 -0800 New translations messages.xlf (Turkish) [ci skip] commit8c690a9a51
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:41 2022 -0800 New translations messages.xlf (Chinese Simplified) [ci skip] commit56526b970a
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:40 2022 -0800 New translations messages.xlf (Portuguese, Brazilian) [ci skip] commit94fbf92916
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:38 2022 -0800 New translations messages.xlf (Croatian) [ci skip] commit37f5e46d09
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:37 2022 -0800 New translations messages.xlf (Luxembourgish) [ci skip] commit38be817637
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:36 2022 -0800 New translations messages.xlf (Polish) [ci skip] commit17303f41da
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Dec 3 02:08:34 2022 -0800 New translations messages.xlf (German) [ci skip] commit55ef0d4a1b
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Dec 4 08:44:35 2022 -0800 Fixes language code checks around two part languages commita8f3c4be54
Merge:fa62ae82
1b9de2be
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 18:47:09 2022 -0800 Merge pull request #1947 from alexander-bauer/helm Take ownership of k8s-at-home Helm chart, commit1b9de2be5a
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 18:46:19 2022 -0800 Use checkout v3 commit0e8265f1ae
Merge:ea38eb01
5b45a140
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 18:44:28 2022 -0800 Merge pull request #2109 from paperless-ngx/fix/redis-socket-parsing Bugfix: Redis socket compatibility didn't handle URLs with ports commit5b45a140b9
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sat Dec 3 18:30:21 2022 -0800 Fixes issue when the Redis URL also specifies a port commit72fb9a475d
Author: Alexander Bauer <sasha@linux.com> Date: Thu Nov 10 02:24:04 2022 +0000 Ignore end-of-lines on generated Chart README commitbf97f5807f
Author: Alexander Bauer <sasha@linux.com> Date: Thu Nov 10 02:21:29 2022 +0000 Ignore non-yaml Helm chart template commita707818b4d
Author: Alexander Bauer <sasha@linux.com> Date: Thu Nov 10 01:54:35 2022 +0000 Change Helm chart releaser to use version tags only commitfb46c1b96a
Author: Alexander Bauer <sasha@linux.com> Date: Thu Nov 10 01:52:02 2022 +0000 Ignore generated Helm chart README from prettier commit3226d8b25b
Author: Alexander Bauer <sasha@linux.com> Date: Tue Nov 8 00:46:27 2022 +0000 fixup! Add mostly-unchanged Helm chart from k8s-at-home commit5c4363cbea
Author: Alexander Bauer <sasha@linux.com> Date: Tue Nov 8 00:24:04 2022 +0000 Add mostly-unchanged Helm chart from k8s-at-home - Add the chart from k8s-at-home with some modifications - Add the Apache 2.0 license to the new charts/paperless-ngx subdirectory, the license under which the chart was distributed by k8s-at-home. I believe the chart will have to maintain this license. - Update the maintainers section and contact information to point to Paperless-ngx. - Regenerate the README (using helm-docs) - Add a GitHub actions configuration to publish the chart using GitHub pages. This makes the GitHub Pages page rendered by this repository usable as a Helm repository, without affecting potential future uses of the Pages site. These are in response to discussion #1790. commitfa62ae820b
Merge:bcc029a2
17891baf
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 14:19:36 2022 -0800 Merge pull request #2106 from tooomm/docs/edit Docs: Some more small MkDocs updates commit17891bafaf
Author: tooomm <tooomm@users.noreply.github.com> Date: Sat Dec 3 20:02:40 2022 +0100 lint commit15fdadadef
Author: tooomm <tooomm@users.noreply.github.com> Date: Sat Dec 3 19:36:49 2022 +0100 open demo in new page commitce9f604d81
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 09:29:34 2022 -0800 Explicit default ordering for rule / account views commit4f876db5d1
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Nov 28 21:38:52 2022 -0800 prevent loss of unsaved changes to settings on tab nav commit5e5f56dc67
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Nov 28 20:39:03 2022 -0800 Re-org where some of the new classes are found commit93fab8bb95
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Nov 28 12:53:20 2022 -0800 Apply code suggestions from @stumpylog commit35ca2195fe
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Nov 28 15:51:39 2022 -0800 frontend mail rule validation Display non-field validation errors, hide action param field if not needed commit7ace66d7fd
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Nov 28 13:58:37 2022 -0800 fix edit dialog getters commit4f9a31244b
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Nov 18 20:23:40 2022 -0800 Add settings routing commit14cf4f7095
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Nov 18 19:38:49 2022 -0800 Update frontend strings commit8bd7c27826
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Nov 18 17:11:15 2022 -0800 Hide order parameter, fix imap port commit8c4f486fe9
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Nov 18 14:22:07 2022 -0800 API mail rule & account tests and fix use of assign_tags commit2849414445
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Nov 18 14:21:31 2022 -0800 one-way imap password setting via API, ObfuscatedPasswordField commitea1ea0816f
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Nov 18 14:10:17 2022 -0800 Fix mail account / rule delete commit52d3a8703c
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Nov 12 15:14:58 2022 -0800 Dynamically load mail rules / accounts settings commit4cb4d6adcd
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Nov 12 15:15:59 2022 -0800 update settings tests to not wait on data which is now on-demand commit24444237f2
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Nov 12 14:46:57 2022 -0800 dynamic loading of settings tab contents commit40c8629aef
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Nov 10 21:04:29 2022 -0800 Update welcome tour, move admin button commit98cdf614a5
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed Nov 9 19:59:35 2022 -0800 Mail form tweaks Include add button Include add button commit2eb2d99a91
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed Nov 9 03:43:57 2022 -0800 Update frontend fixtures & tests for compatibility commit18ad9bcbf2
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 8 12:18:47 2022 -0800 Working mail rule & account edit commit997bff4917
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed Nov 9 02:40:45 2022 -0800 Update deprecated edit-dialog rxjs commit78f9a80895
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 8 12:09:16 2022 -0800 mail account + rule deletion commit9231df7a4a
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 8 11:50:57 2022 -0800 Mail rule edit dialog commit6f25917c86
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 8 11:11:35 2022 -0800 Mail account edit dialog commitc41d1a78a8
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 8 10:53:41 2022 -0800 remove unused toastService from edit dialogs and add confirmation commitc3331086d5
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 8 03:39:54 2022 -0800 Basic data retrieval commit6bd9ccd8f6
Author: tooomm <tooomm@users.noreply.github.com> Date: Sat Dec 3 18:30:02 2022 +0100 update default edit path commit68c7cecb07
Author: tooomm <tooomm@users.noreply.github.com> Date: Sat Dec 3 18:29:14 2022 +0100 add mkdocs site to gitignore commitbcc029a2c7
Merge:9d418055
1727eb00
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 09:00:02 2022 -0800 Merge pull request #2104 from paperless-ngx/docs-cleanup Chore: Cleans up documentation links commitea38eb01b2
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Fri Dec 2 13:54:15 2022 -0800 Adds support for database number specification commit01d070b882
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Fri Dec 2 09:34:59 2022 -0800 Adds a layer to translate between differing formats of socket based Redis URLs commit1727eb00cc
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Fri Dec 2 19:34:43 2022 -0800 Cleans up a number of internal links commit9d4180553c
Merge:7c614264
8049af4b
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 07:58:12 2022 -0800 Merge pull request #2102 from tooomm/patch-1 Fix doc links in contributing commit8049af4b22
Author: tooomm <tooomm@users.noreply.github.com> Date: Sat Dec 3 14:38:55 2022 +0100 Fix doc links in contributing commit7c6142643d
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 02:08:51 2022 -0800 Update more docs references commit2e8706f4e2
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 02:05:49 2022 -0800 Update frontend translation strings commitd39d32d555
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 02:04:30 2022 -0800 Fix docs references commit6f52945449
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 01:47:04 2022 -0800 docs index formatting error commit37025297b5
Merge:aa023ea2
dc9e9e3b
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 01:33:31 2022 -0800 Merge pull request #2095 from paperless-ngx/update-readme-doc-links Documentation: Update docs links and screenshot in readme, add favicon commitaa023ea2e3
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Dec 3 01:30:07 2022 -0800 correct docs deploy domain commit78bf0b63a5
Merge:29391c1c
a96ecd67
Author: Felix E <felix@eckhofer.com> Date: Sat Dec 3 09:10:20 2022 +0100 Merge pull request #2087 from Ricks-ha/main Add examples to URL and TIME_ZONE commitdc9e9e3b48
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Dec 2 20:06:51 2022 -0800 add favicon commitab29c49b7a
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Dec 2 19:09:19 2022 -0800 Update docs links and screenshot in readme commit1c0ac474b8
Merge:25fb8d9c
29391c1c
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Fri Dec 2 19:05:28 2022 -0800 Merge branch 'main' into dev commit29391c1c7b
Merge:58a01a57
69383497
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Dec 2 15:22:39 2022 -0800 Merge pull request #2067 from paperless-ngx/material-docs [WIP] Feature: Move docs to material-mkdocs commit693834971c
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 20:00:23 2022 -0800 Add v1.10.1 changelog commit97376d4b72
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Dec 2 09:09:29 2022 -0800 update ci for documentation build vs deploy commit3ee1d2a9a9
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 29 21:20:45 2022 -0800 Add changes from #2069 commit605f885e19
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 29 12:49:23 2022 -0800 Move docs to material-mkdocs commit25fb8d9c3b
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Dec 2 08:30:42 2022 -0800 Update dev version string commita96ecd673b
Author: Ricks-ha <ricks@ricksha.eu> Date: Fri Dec 2 13:27:57 2022 +0100 Add examples to URL and TIME_ZONE commit58a01a57ee
Merge:a96f79f6
c18fc03e
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Dec 2 03:36:55 2022 -0800 Merge pull request #2082 from paperless-ngx/v1.10.1-changelog Chore: Add v1.10.1 changelong commitc18fc03ef3
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 20:00:23 2022 -0800 Add v1.10.1 changelong commita96f79f6a3
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 18:54:00 2022 -0800 Bump version to 1.10.1 commitd6f1d004a3
Merge:88cf6ef8
da72d357
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 18:52:35 2022 -0800 Merge branch 'dev' commitda72d3571b
Merge:8241da0e
86592928
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 18:52:06 2022 -0800 Merge pull request #2050 from paperless-ngx/l10n_dev New Crowdin updates commit8241da0eb3
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 17:01:22 2022 -0800 fix broken npm package-lock commit51562667bf
Merge:1aee2988
97eeae65
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 16:40:07 2022 -0800 Merge pull request #2076 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/tslib-2.4.1 Bump tslib from 2.4.0 to 2.4.1 in /src-ui commit97eeae65a3
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri Dec 2 00:39:26 2022 +0000 Bump tslib from 2.4.0 to 2.4.1 in /src-ui Bumps [tslib](https://github.com/Microsoft/tslib) from 2.4.0 to 2.4.1. - [Release notes](https://github.com/Microsoft/tslib/releases) - [Commits](https://github.com/Microsoft/tslib/compare/2.4.0...2.4.1) --- updated-dependencies: - dependency-name: tslib dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> commit1aee2988f7
Merge:a63a8dd4
6f0077ef
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 16:39:24 2022 -0800 Merge pull request #2079 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular-builders/jest-14.1.0 Bump @angular-builders/jest from 14.0.1 to 14.1.0 in /src-ui commita63a8dd488
Merge:06a9df6d
39be68a1
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 16:38:38 2022 -0800 Merge pull request #2078 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-preset-angular-12.2.3 Bump jest-preset-angular from 12.2.2 to 12.2.3 in /src-ui commit06a9df6dbd
Merge:49933bb5
7d7d9630
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 16:37:25 2022 -0800 Merge pull request #2080 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-file-drop-14.0.2 Bump ngx-file-drop from 14.0.1 to 14.0.2 in /src-ui commit49933bb5a8
Merge:02c782a1
ac69babf
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 16:18:07 2022 -0800 Merge pull request #2077 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngneat/dirty-check-forms-3.0.3 Bump @ngneat/dirty-check-forms from 3.0.2 to 3.0.3 in /src-ui commit7d7d9630c1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu Dec 1 20:03:32 2022 +0000 Bump ngx-file-drop from 14.0.1 to 14.0.2 in /src-ui Bumps [ngx-file-drop](https://github.com/georgipeltekov/ngx-file-drop) from 14.0.1 to 14.0.2. - [Release notes](https://github.com/georgipeltekov/ngx-file-drop/releases) - [Changelog](https://github.com/georgipeltekov/ngx-file-drop/blob/master/CHANGELOG.md) - [Commits](https://github.com/georgipeltekov/ngx-file-drop/compare/v14.0.1...v14.0.2) --- updated-dependencies: - dependency-name: ngx-file-drop dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> commit6f0077efac
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu Dec 1 20:03:05 2022 +0000 Bump @angular-builders/jest from 14.0.1 to 14.1.0 in /src-ui Bumps [@angular-builders/jest](https://github.com/just-jeb/angular-builders/tree/HEAD/packages/jest) from 14.0.1 to 14.1.0. - [Release notes](https://github.com/just-jeb/angular-builders/releases) - [Changelog](https://github.com/just-jeb/angular-builders/blob/master/packages/jest/CHANGELOG.md) - [Commits](https://github.com/just-jeb/angular-builders/commits/@angular-builders/jest@14.1.0/packages/jest) --- updated-dependencies: - dependency-name: "@angular-builders/jest" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> commit39be68a1a4
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu Dec 1 20:02:39 2022 +0000 Bump jest-preset-angular from 12.2.2 to 12.2.3 in /src-ui Bumps [jest-preset-angular](https://github.com/thymikee/jest-preset-angular) from 12.2.2 to 12.2.3. - [Release notes](https://github.com/thymikee/jest-preset-angular/releases) - [Changelog](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/thymikee/jest-preset-angular/compare/v12.2.2...v12.2.3) --- updated-dependencies: - dependency-name: jest-preset-angular dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> commitac69babfce
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu Dec 1 20:02:11 2022 +0000 Bump @ngneat/dirty-check-forms from 3.0.2 to 3.0.3 in /src-ui Bumps [@ngneat/dirty-check-forms](https://github.com/ngneat/dirty-check-forms) from 3.0.2 to 3.0.3. - [Release notes](https://github.com/ngneat/dirty-check-forms/releases) - [Changelog](https://github.com/ngneat/dirty-check-forms/blob/master/CHANGELOG.md) - [Commits](https://github.com/ngneat/dirty-check-forms/compare/v3.0.2...v3.0.3) --- updated-dependencies: - dependency-name: "@ngneat/dirty-check-forms" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> commit02c782a127
Merge:4e90fda8
9b602a4b
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Dec 1 08:19:59 2022 -0800 Merge pull request #2073 from paperless-ngx/fix-frontend-tasks-display Fix: frontend tasks display in 1.10.0 commit4e90fda80f
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Tue Nov 29 20:06:56 2022 -0800 Expands documentation around the permissions of the custom scripts and the folder commit88e3e556a1
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Tue Nov 29 20:05:08 2022 -0800 Fixes the custom scripts not running as root commit88cf6ef843
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed Nov 30 15:14:21 2022 -0800 add demo badge commit9b602a4bf0
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed Nov 30 13:55:51 2022 -0800 Fix frontend tasks display commitfe2db4dbf7
Author: phail <phail@hacknology.de> Date: Wed Nov 30 10:16:39 2022 +0100 adapt compose file for eml parsing commit47c88a6bdd
Merge:4aa31859
a3bc3b78
Author: phail <phail@hacknology.de> Date: Wed Nov 30 10:10:57 2022 +0100 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commita3bc3b78d5
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Tue Nov 29 14:34:12 2022 -0800 Also display the container logs commitfed7d3e993
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Tue Nov 29 13:59:48 2022 -0800 Use docker compose to start and stop containers which match directly to our command overrides commit3a74f24e49
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Tue Nov 29 12:44:53 2022 -0800 Adds libatomic1 for supporting armv7 better commit52afab39cf
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Tue Nov 29 12:16:51 2022 -0800 Organizes the system packages a little bit more commit8659292852
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Tue Nov 29 00:29:45 2022 -0800 New translations django.po (Norwegian) [ci skip] commitce73f159fd
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Mon Nov 28 14:13:54 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commit71382e9c62
Merge:5d3a6e23
a1a802fc
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Nov 28 14:05:57 2022 -0800 Merge pull request #2062 from paperless-ngx/fix/2053-long-names-too-quiet Bugfix: Don't silence an exception when trying to handle file naming commita1a802fc92
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon Nov 28 13:44:17 2022 -0800 Don't silence an exception when trying to handle file naming commit4200fc610d
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Mon Nov 28 13:17:22 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commit32d212cd9f
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Mon Nov 28 11:17:07 2022 -0800 New translations messages.xlf (German) [ci skip] commit5d3a6e230d
Merge:b33fcc11
f0497e77
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Nov 28 11:04:44 2022 -0800 Merge pull request #2057 from paperless-ngx/fix/2044-lang-code-diffs Bugfix: Some tesseract languages aren't detected as installed. commitb33fcc117e
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon Nov 28 09:25:03 2022 -0800 Transition to a maintained upload release assert commite96d65f945
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon Nov 14 15:38:35 2022 -0800 Allows parsing of WebP format images commitcfeed0ce6e
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Mon Nov 28 08:30:32 2022 -0800 New translations django.po (Polish) [ci skip] commitb89ecf7d77
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Mon Nov 28 05:28:39 2022 -0800 New translations messages.xlf (Luxembourgish) [ci skip] commit5ca25d44ba
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Mon Nov 28 04:27:31 2022 -0800 New translations messages.xlf (Luxembourgish) [ci skip] commit1e11c12d96
Merge:e74d7dad
3e22e8e0
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun Nov 27 21:16:50 2022 -0800 Merge branch 'main' into dev commit3e22e8e0b9
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 27 19:22:59 2022 -0800 prepends the latest changelog commitdba45f93a4
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 27 19:22:03 2022 -0800 Fixes the pre-commit command commit18f3f44ae9
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:25 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commit85a6a271dc
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:23 2022 -0800 New translations messages.xlf (French) [ci skip] commitabb515d4ea
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:22 2022 -0800 New translations messages.xlf (Spanish) [ci skip] commit309d1f2b67
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:21 2022 -0800 New translations messages.xlf (Arabic) [ci skip] commitfa2f09bc4b
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:19 2022 -0800 New translations messages.xlf (Belarusian) [ci skip] commitc51590cd12
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:18 2022 -0800 New translations messages.xlf (Czech) [ci skip] commit8e01406acf
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:17 2022 -0800 New translations messages.xlf (Danish) [ci skip] commit7cce2f0fe6
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:16 2022 -0800 New translations messages.xlf (Finnish) [ci skip] commit95091c2f39
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:14 2022 -0800 New translations messages.xlf (Hebrew) [ci skip] commit4a0aa12bd9
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:13 2022 -0800 New translations messages.xlf (Italian) [ci skip] commit9a0329746a
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:11 2022 -0800 New translations messages.xlf (Dutch) [ci skip] commit8392a6fd4a
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:10 2022 -0800 New translations messages.xlf (Romanian) [ci skip] commit8fa18bb8a6
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:09 2022 -0800 New translations messages.xlf (Norwegian) [ci skip] commit0095b593fb
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:08 2022 -0800 New translations messages.xlf (Portuguese) [ci skip] commitb1e5135e21
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:05 2022 -0800 New translations messages.xlf (Russian) [ci skip] commite88755e7ac
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:04 2022 -0800 New translations messages.xlf (Slovenian) [ci skip] commitc582947291
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:02 2022 -0800 New translations messages.xlf (Swedish) [ci skip] commit98fe3a2cb7
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:58:01 2022 -0800 New translations messages.xlf (Turkish) [ci skip] commit61647606fa
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:57:59 2022 -0800 New translations messages.xlf (Chinese Simplified) [ci skip] commit95a1e5c645
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:57:58 2022 -0800 New translations messages.xlf (Portuguese, Brazilian) [ci skip] commit8ead77f128
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:57:57 2022 -0800 New translations messages.xlf (Croatian) [ci skip] commitb9e9e82f33
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:57:55 2022 -0800 New translations messages.xlf (Luxembourgish) [ci skip] commit487fd3a5dd
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:57:54 2022 -0800 New translations messages.xlf (Polish) [ci skip] commit657786a2fe
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sun Nov 27 17:57:52 2022 -0800 New translations messages.xlf (German) [ci skip] commite74d7dadfb
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 27 17:43:46 2022 -0800 Adds the -dev back to the UI version commita2937cd54d
Merge:9b01aa92
7b3ce628
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 27 17:42:41 2022 -0800 Merge branch 'main' into dev commit7b3ce6289f
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 27 17:21:12 2022 -0800 Bumps version number to 1.10.0 commita16e8324be
Merge:34a0111f
39de531d
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 27 17:18:08 2022 -0800 Merge pull request #1960 from paperless-ngx/beta [Beta] Paperless-ngx v1.10.0 Release Candidate commit39de531df5
Merge:4764d4fd
c9d6c208
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun Nov 27 14:47:14 2022 -0800 Merge pull request #2041 from paperless-ngx/l10n_dev New Crowdin updates commit4764d4fd2b
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Nov 26 12:28:51 2022 -0800 New translations django.po (German) [ci skip] commite147d4571f
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Nov 26 09:54:00 2022 -0800 New translations django.po (German) [ci skip] commitdc9aaa6472
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Tue Nov 22 15:21:31 2022 -0800 New translations django.po (German) [ci skip] commit8a061c4ac2
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Tue Nov 22 15:21:30 2022 -0800 New translations messages.xlf (German) [ci skip] commitd051c5c282
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Nov 12 08:48:48 2022 -0800 Remove ar-SA commit9e60810a8b
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Nov 12 08:33:08 2022 -0800 New translations messages.xlf (Arabic) [ci skip] commit96ee7990b2
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Fri Nov 11 13:59:54 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commit224bfeb72e
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Fri Nov 11 13:04:01 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commitf0497e7744
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 27 08:28:22 2022 -0800 Fixes how a language code like chi-sim is treated in the checks commitc9d6c208af
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Nov 26 12:28:51 2022 -0800 New translations django.po (German) [ci skip] commit9f2b8b1734
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Nov 26 09:54:00 2022 -0800 New translations django.po (German) [ci skip] commita04b9e3755
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Tue Nov 22 15:21:31 2022 -0800 New translations django.po (German) [ci skip] commita81d4c5e9d
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Tue Nov 22 15:21:30 2022 -0800 New translations messages.xlf (German) [ci skip] commit2140d42098
Merge:a5283525
2a5dc4de
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 22 14:35:34 2022 -0800 Merge pull request #2025 from paperless-ngx/fix-redo-ocr-message Add info that re-do OCR doesnt automatically refresh content commit43325371fc
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Nov 12 08:48:48 2022 -0800 Remove ar-SA commitd10721089e
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Nov 12 08:33:08 2022 -0800 New translations messages.xlf (Arabic) [ci skip] commitf1a1a2da8b
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Fri Nov 11 13:59:54 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commit612e0a1163
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Fri Nov 11 13:04:01 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commit2a5dc4de38
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 22 14:16:04 2022 -0800 Add info that re-do OCR doesnt automatically refresh content commita5283525bc
Merge:f0155565
de98d748
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Nov 22 13:53:08 2022 -0800 Merge pull request #2023 from paperless-ngx/fix/2019-create-date Bugfix: Fix created_date being a string commitde98d748a9
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Tue Nov 22 10:11:27 2022 -0800 If override_date is provided, coerce it into a datetime commitf015556562
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon Nov 21 14:56:14 2022 -0800 Adds a test to cover this edge case commitb897d6de2e
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon Nov 21 14:45:20 2022 -0800 Don't use the sidecar file when redoing the OCR, it only contains new text commit54f20b381e
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon Nov 21 12:59:14 2022 -0800 Documents some issues and the required manual fixes for MariaDB commitc0d4248021
Merge:27f7f0a9
870e295a
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Nov 21 22:19:02 2022 -0800 Merge pull request #1973 from paperless-ngx/l10n_dev New Crowdin updates commit870e295aae
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Mon Nov 21 21:43:54 2022 -0800 New translations messages.xlf (German) [ci skip] commit4aa318598f
Author: phail <phail@hacknology.de> Date: Sun Nov 20 23:26:20 2022 +0100 add test comments commit00f39d8b58
Author: phail <phail@hacknology.de> Date: Sun Nov 20 22:49:42 2022 +0100 add test comments commit0b1a16908f
Author: phail <phail@hacknology.de> Date: Sun Nov 20 20:33:07 2022 +0100 Include .eml reference in docs commitd9796e5003
Author: phail <phail@hacknology.de> Date: Sun Nov 20 20:24:36 2022 +0100 change order of elements in parsed Texts commit3599bb52c0
Author: phail <phail@hacknology.de> Date: Sun Nov 20 20:12:41 2022 +0100 minor test improvements commitaf8a6c3764
Author: phail <phail@hacknology.de> Date: Sun Nov 20 19:53:57 2022 +0100 fix filenames commit6d37ebf79e
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 20 09:15:06 2022 -0800 Fixes one more place which used manual size formatting commitf6a70b85f4
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 20 09:13:08 2022 -0800 Use Django templating engine commit538a4219bd
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 20 09:10:44 2022 -0800 Fixes missing return commit85c41b79be
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Sun Nov 20 08:02:06 2022 -0800 Adds the new packages without updating other dependencies commit25d014d8ef
Merge:9ec89762
27f7f0a9
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun Nov 20 07:48:55 2022 -0800 Merge branch 'beta' into l10n_dev commit9b01aa9202
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon Nov 14 15:47:22 2022 -0800 Fixes the link for flake8 to the new (?) GitHub repo commitdf101f5e7a
Author: phail <phail@hacknology.de> Date: Sun Nov 20 16:09:46 2022 +0100 split handle_message function commit1fa735eb23
Author: phail <phail@hacknology.de> Date: Sun Nov 20 15:44:43 2022 +0100 use imagehash instead of bitwise hashing commitebe21a0114
Author: phail <phail@hacknology.de> Date: Sun Nov 20 14:22:30 2022 +0100 eml parsing requires tika commitd132eba143
Author: phail <phail@hacknology.de> Date: Sun Nov 20 12:48:03 2022 +0100 optimize regex commit073c3c8fed
Author: phail <phail@hacknology.de> Date: Sun Nov 20 12:36:49 2022 +0100 use html.escape instead of some self build functions commite3c1bde793
Author: phail <phail@hacknology.de> Date: Sun Nov 20 12:06:35 2022 +0100 remove log mocking, replace pytest raises, use humanfriendly commit27f7f0a941
Merge:9f5fd6c3
914661fd
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Nov 17 14:31:46 2022 -0800 Merge pull request #1998 from paperless-ngx/fix/1993-date-overflow Bugfix: Don't allow exceptions during date parsing to fail consume commit9f5fd6c3ba
Merge:0ae82005
3dfeee93
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Nov 17 14:30:23 2022 -0800 Merge pull request #1967 from paperless-ngx/feature-scripts-output Feature: Capture stdout & stderr of the pre/post consume scripts commit914661fdbb
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Thu Nov 17 13:37:37 2022 -0800 Don't allow an exception when trying to parse a date cause complete failure commit0ae8200593
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Mon Nov 14 15:47:22 2022 -0800 Fixes the link for flake8 to the new (?) GitHub repo commitb68906b14e
Author: phail <phail@hacknology.de> Date: Sun Nov 13 22:49:52 2022 +0100 merge pipfile commit681eecc46e
Merge:1578e8de
d4712234
Author: phail <phail@hacknology.de> Date: Sun Nov 13 22:43:55 2022 +0100 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commit1578e8de2d
Author: phail <phail@hacknology.de> Date: Sun Nov 13 22:33:26 2022 +0100 fix live tests commit023c931401
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun Nov 13 07:11:45 2022 -0800 Fix top search not working due to missing button type commit9ec89762a3
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Nov 12 09:31:54 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commitfa47595ac8
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Nov 12 08:58:01 2022 -0800 remove ar_SA [ci skip] commit79f5019b40
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Sat Nov 12 08:53:52 2022 -0800 New Crowdin updates (#1971) * New translations messages.xlf (Serbian (Latin)) [ci skip] * New translations messages.xlf (Serbian (Latin)) [ci skip] * New translations messages.xlf (Italian) [ci skip] * New translations django.po (Italian) [ci skip] * New translations django.po (Serbian (Latin)) [ci skip] * New translations messages.xlf (Russian) [ci skip] * New translations messages.xlf (Polish) [ci skip] * New translations messages.xlf (Serbian (Latin)) [ci skip] * New translations messages.xlf (Luxembourgish) [ci skip] * New translations messages.xlf (Croatian) [ci skip] * New translations messages.xlf (Portuguese, Brazilian) [ci skip] * New translations messages.xlf (Chinese Simplified) [ci skip] * New translations messages.xlf (Turkish) [ci skip] * New translations messages.xlf (Swedish) [ci skip] * New translations messages.xlf (Slovenian) [ci skip] * New translations messages.xlf (Portuguese) [ci skip] * New translations messages.xlf (Norwegian) [ci skip] * New translations messages.xlf (German) [ci skip] * New translations messages.xlf (Dutch) [ci skip] * New translations messages.xlf (Italian) [ci skip] * New translations messages.xlf (Hebrew) [ci skip] * New translations messages.xlf (Finnish) [ci skip] * New translations messages.xlf (Danish) [ci skip] * New translations messages.xlf (Czech) [ci skip] * New translations messages.xlf (Belarusian) [ci skip] * New translations messages.xlf (Spanish) [ci skip] * New translations messages.xlf (French) [ci skip] * New translations messages.xlf (Romanian) [ci skip] * New translations messages.xlf (Arabic) [ci skip] * Remove ar-SA * remote ar other than ar-ar Co-authored-by: Michael Shamoon <4887959+shamoon@users.noreply.github.com> commit756ce2f9d8
Merge:50a211f3
d4712234
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Nov 12 08:33:43 2022 -0800 Merge branch 'dev' into beta commitd47122340a
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat Nov 12 08:31:25 2022 -0800 Add translation strings for welcome tour buttons commitb01cbc9aa0
Author: phail <phail@hacknology.de> Date: Sat Nov 12 15:48:30 2022 +0100 add conditions to unittests commit3dfeee9332
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Fri Nov 11 10:09:56 2022 -0800 Don't do decoding work if not needed commit057f6016cc
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Fri Nov 11 08:58:49 2022 -0800 Adds further testing to cover scripts with non-zero exit codes commitc4965580de
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Thu Nov 10 17:40:36 2022 -0800 Fixes stderr appearing to have content when it doesn't commit9a47963fd5
Author: Trenton Holmes <797416+stumpylog@users.noreply.github.com> Date: Wed Nov 9 20:11:36 2022 -0800 Captures the stdout and stderr of the pre/post scripts into the log commit50a211f367
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Thu Nov 10 17:25:39 2022 -0800 Fixes an issue with the install of languages and read-only variable commit5f278d7fbb
Merge:e5106bdc
a17d2519
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed Nov 9 21:37:29 2022 -0800 Merge pull request #1956 from paperless-ngx/l10n_dev New Crowdin updates commita17d251913
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:37 2022 -0800 New translations django.po (Serbian (Latin)) [ci skip] commit1cbf088656
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:36 2022 -0800 New translations messages.xlf (Serbian (Latin)) [ci skip] commitd3254d6bcf
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:35 2022 -0800 New translations messages.xlf (Luxembourgish) [ci skip] commit1543729c7b
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:34 2022 -0800 New translations messages.xlf (Croatian) [ci skip] commitef2a96c34b
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:32 2022 -0800 New translations messages.xlf (Portuguese, Brazilian) [ci skip] commit656b1e150f
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:31 2022 -0800 New translations messages.xlf (Chinese Simplified) [ci skip] commite0f61003cf
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:30 2022 -0800 New translations messages.xlf (Turkish) [ci skip] commit1ca98678cd
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:28 2022 -0800 New translations messages.xlf (Swedish) [ci skip] commit9919cc1956
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:27 2022 -0800 New translations messages.xlf (Slovenian) [ci skip] commitd2096e3c05
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:26 2022 -0800 New translations messages.xlf (Portuguese) [ci skip] commit5f2b508b7a
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:24 2022 -0800 New translations messages.xlf (Polish) [ci skip] commit752d4f4249
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:23 2022 -0800 New translations django.po (German) [ci skip] commit72e7d5150e
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:22 2022 -0800 New translations messages.xlf (Norwegian) [ci skip] commit42a9e05a7f
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:21 2022 -0800 New translations messages.xlf (Italian) [ci skip] commitb4add2ed55
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:19 2022 -0800 New translations messages.xlf (Hebrew) [ci skip] commited7d9295bd
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:18 2022 -0800 New translations messages.xlf (Finnish) [ci skip] commit5b7b1b2349
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:16 2022 -0800 New translations messages.xlf (Danish) [ci skip] commitd5c930acc9
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:15 2022 -0800 New translations messages.xlf (Czech) [ci skip] commit4c93d6d7e6
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:14 2022 -0800 New translations messages.xlf (Belarusian) [ci skip] commit066f3264fb
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:12 2022 -0800 New translations messages.xlf (Spanish) [ci skip] commit88a803f949
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:11 2022 -0800 New translations messages.xlf (French) [ci skip] commite69615dc06
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:10 2022 -0800 New translations messages.xlf (Romanian) [ci skip] commita1e0840e24
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:08 2022 -0800 New translations messages.xlf (Dutch) [ci skip] commitd814353e83
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:07 2022 -0800 New translations messages.xlf (German) [ci skip] commit06d7845eca
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:04 2022 -0800 New translations django.po (Dutch) [ci skip] commitae8682c7a5
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:03 2022 -0800 New translations django.po (Romanian) [ci skip] commitc9c0b3d430
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:02 2022 -0800 New translations django.po (Luxembourgish) [ci skip] commitcc46fc7e4b
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:01 2022 -0800 New translations django.po (Croatian) [ci skip] commitd1b1ba21cd
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:12:00 2022 -0800 New translations django.po (Portuguese, Brazilian) [ci skip] commita009417a99
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:59 2022 -0800 New translations django.po (Chinese Simplified) [ci skip] commit775da720ec
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:58 2022 -0800 New translations django.po (Turkish) [ci skip] commitaeae6ea0d3
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:57 2022 -0800 New translations django.po (Swedish) [ci skip] commit0ae46d2269
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:56 2022 -0800 New translations django.po (Slovenian) [ci skip] commit0e7f1ec0de
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:55 2022 -0800 New translations django.po (Russian) [ci skip] commit13cd55b96f
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:53 2022 -0800 New translations django.po (Portuguese) [ci skip] commit9139e807ec
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:52 2022 -0800 New translations messages.xlf (Arabic) [ci skip] commit53616f6625
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:51 2022 -0800 New translations django.po (Polish) [ci skip] commit526fdf1153
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:50 2022 -0800 New translations django.po (Italian) [ci skip] commitfc4aceb0ee
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:49 2022 -0800 New translations django.po (Hebrew) [ci skip] commit3d8421b718
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:48 2022 -0800 New translations django.po (Finnish) [ci skip] commit6cebceda15
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:47 2022 -0800 New translations django.po (Danish) [ci skip] commite1fd6bda19
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:46 2022 -0800 New translations django.po (Czech) [ci skip] commitfd34414b17
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:45 2022 -0800 New translations django.po (Belarusian) [ci skip] commit3ce1886a54
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:44 2022 -0800 New translations django.po (Arabic) [ci skip] commit8ed43779a8
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:43 2022 -0800 New translations django.po (Spanish) [ci skip] commita7949b3e22
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:42 2022 -0800 New translations django.po (French) [ci skip] commit19c293c3e6
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:41 2022 -0800 New translations django.po (Norwegian) [ci skip] commitccb1ec4ff5
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com> Date: Wed Nov 9 15:11:40 2022 -0800 New translations messages.xlf (Russian) [ci skip] commite5106bdca0
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Wed Nov 9 14:00:09 2022 -0800 Updates the version strings to 1.10.0 commitba1366f49a
Merge:34a0111f
f3b3db30
Author: Trenton H <797416+stumpylog@users.noreply.github.com> Date: Wed Nov 9 13:51:10 2022 -0800 Merge branch 'dev' into beta commitacd3832417
Author: phail <phail@hacknology.de> Date: Thu Nov 3 21:08:15 2022 +0100 merge Pipfile.lock commit82b2ba3cc2
Merge:3de6e0bc
7e3e0a0f
Author: phail <phail@hacknology.de> Date: Thu Nov 3 21:00:01 2022 +0100 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commit3de6e0bcf1
Author: phail <phail@hacknology.de> Date: Thu Nov 3 00:58:36 2022 +0100 put parser into setup make test using convert optional Gotenberg live testing commit34a0111ff5
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Oct 31 13:06:17 2022 -0700 update logs section commitb511b084d0
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun Oct 30 06:48:41 2022 -0700 Update matrix url [ci skip] commit6df73ae940
Author: phail <phail@hacknology.de> Date: Sat Oct 29 23:20:35 2022 +0200 gotenberg with modified cmd commit4a24ba51c5
Merge:87472b31
d5fb98b7
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Oct 28 22:22:08 2022 -0700 Merge pull request #1876 from astubenbord/main Added new application to list of affiliated projects commitd5fb98b7c4
Author: Anton Stubenbord <79228196+astubenbord@users.noreply.github.com> Date: Fri Oct 28 11:07:42 2022 +0200 Added new application to list of affiliated projects commit2204090151
Author: phail <phail@hacknology.de> Date: Thu Oct 27 23:53:47 2022 +0200 fix string commit3c81a7468b
Author: phail <phail@hacknology.de> Date: Thu Oct 27 23:41:29 2022 +0200 replace thumbnail creation with mock commit5ef86f9489
Merge:90cb0836
9b82ab95
Author: phail <phail@hacknology.de> Date: Thu Oct 27 23:12:51 2022 +0200 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commit90cb0836bb
Author: phail <phail@hacknology.de> Date: Thu Oct 27 23:11:41 2022 +0200 Downgrade pdf validation to text only commitef1d4264b5
Author: phail <phail@hacknology.de> Date: Thu Oct 27 00:27:15 2022 +0200 improve test coverage a little commite1fa59122d
Merge:5bf26369
3357fa19
Author: phail <phail@hacknology.de> Date: Wed Oct 26 20:59:49 2022 +0200 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commit5bf26369e2
Author: phail <phail@hacknology.de> Date: Tue Oct 25 21:17:40 2022 +0200 remove erroring paramerter commit36239ba09f
Author: phail <phail@hacknology.de> Date: Mon Oct 24 22:15:33 2022 +0200 rename help text commit318c1d2fbd
Merge:e7c40fc3
f8ce6285
Author: phail <phail@hacknology.de> Date: Mon Oct 24 21:12:35 2022 +0200 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commite7c40fc3dc
Author: phail <phail@hacknology.de> Date: Sun Oct 23 22:02:11 2022 +0200 Update Pipfile commit0da0b1c062
Author: phail <phail@hacknology.de> Date: Sun Oct 23 21:39:15 2022 +0200 update variable names commit08988e11f8
Merge:30372b0e
8be6c707
Author: phail <phail@hacknology.de> Date: Sun Oct 23 20:37:22 2022 +0200 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commit30372b0e85
Author: phail <phail@hacknology.de> Date: Sun Oct 23 17:18:10 2022 +0200 add tests for mail_to_html and generate_pdf_from_mail commit567e89d1c7
Author: phail <phail@hacknology.de> Date: Sat Oct 22 02:25:23 2022 +0200 test for broken eml, add test_generate_pdf commitf1f5227ccd
Author: phail <phail@hacknology.de> Date: Sat Oct 22 00:44:32 2022 +0200 add unittest for external images commit09b5bd17f2
Author: phail <phail@hacknology.de> Date: Wed Oct 19 23:19:33 2022 +0200 add unittest for generate_pdf_from_html commite384bd78c5
Author: phail <phail@hacknology.de> Date: Tue Oct 18 23:48:07 2022 +0200 add unittest for transform_inline_html commitfda844f64c
Author: phail <phail@hacknology.de> Date: Sat Oct 15 15:41:43 2022 +0200 add unittest for parse commitdaf90399bd
Author: phail <phail@hacknology.de> Date: Sat Oct 15 13:13:29 2022 +0200 Add unitest for tika_parse() commit3d37e49c1a
Author: phail <phail@hacknology.de> Date: Fri Oct 14 15:43:43 2022 +0200 add 2 more tests commit261c6fb990
Author: phail <phail@hacknology.de> Date: Thu Oct 13 01:03:09 2022 +0200 add unittest for get_thumbnail commit87472b31d2
Merge:430c5c3b
1024d7e6
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Oct 11 19:59:46 2022 -0700 Merge pull request #1780 from paperless-ngx/fix/issue-1647 Documentation: Add note re MS exchange servers commit1024d7e6e2
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Oct 11 15:12:22 2022 -0700 Add note re MS exchange servers commit430c5c3b87
Merge:0b5c6d35
b7c33550
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri Oct 7 23:45:51 2022 -0700 Merge pull request #1761 from paperless-ngx/docs/lsio-tweak Documentation: Tweak LinuxServer commitb7c335507f
Author: Trenton Holmes <holmes.trenton@gmail.com> Date: Thu Oct 6 18:24:25 2022 -0700 Fixes the LSIO migration setting for the media root commit0b5c6d3532
Merge:fdac108c
5fd39472
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu Oct 6 13:22:58 2022 -0700 Merge pull request #1731 from paperless-ngx/fix/1624 Documentation: Adds troubleshooting note about Kubernetes and ports commitfdac108cab
Merge:5639659b
821c14fb
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon Oct 3 17:07:06 2022 -0700 Merge pull request #1733 from paperless-ngx/docs-lsio-migrate Documentation: LinuxServer.io Migration commit821c14fbce
Author: Trenton H <holmes.trenton@gmail.com> Date: Mon Oct 3 11:14:18 2022 -0700 Corrects how the link to example compose files looks commit8c03d9c638
Author: Trenton H <holmes.trenton@gmail.com> Date: Mon Oct 3 11:11:51 2022 -0700 Corrects a re-numbered step commit174a609449
Author: Trenton H <holmes.trenton@gmail.com> Date: Mon Oct 3 10:16:53 2022 -0700 Adds a few steps for migration from the LinuxServer.io image commit5fd394726e
Author: Trenton H <holmes.trenton@gmail.com> Date: Mon Oct 3 09:01:07 2022 -0700 Adds troubleshooting note for Kubernetes about needing to set the port again commit5639659b63
Merge:807b7130
7ba9cdbe
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed Sep 28 09:48:20 2022 -0700 Merge pull request #1683 from paperless-ngx/fix/issue-1660 Mariadb compose files should use `PAPERLESS_DBPASS` commit7ba9cdbe23
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed Sep 28 09:07:30 2022 -0700 Mariadb compose files should use `PAPERLESS_DBPASS` commit807b7130e5
Merge:9d117ee1
e2d593c0
Author: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Sep 27 16:50:23 2022 -0700 Merge pull request #1671 from paperless-ngx/v1.9.2-changelog [Documentation] Add v1.9.2 changelog commite2d593c023
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue Sep 27 10:04:41 2022 -0700 Fix formatting, add note about 1.9.1 version string commit7455963124
Author: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue Sep 27 17:01:37 2022 +0000 Changelog - GHA commitcdd2b99b6b
Merge:d0a0ae91
72ce4405
Author: phail <phail@hacknology.de> Date: Mon Jul 11 23:58:21 2022 +0200 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commitd0a0ae91c4
Merge:c04b9fd7
feaf2da8
Author: phail <phail@hacknology.de> Date: Fri May 20 19:29:52 2022 +0200 Merge branch 'dev' into feature-consume-eml commitc04b9fd7f6
Author: phail <phail@hacknology.de> Date: Thu May 19 22:51:17 2022 +0200 switch to From: Header instead of date to compensate for older libmagic versions commit6809b15ce1
Author: phail <phail@hacknology.de> Date: Sat May 14 16:47:12 2022 +0200 workaround for wrong mime detection of .eml files commitc317eca1ca
Author: phail <phel@hacknology.de> Date: Thu May 5 00:20:32 2022 +0200 add attachment size to pdf commit466afa8203
Author: phail <phel@hacknology.de> Date: Wed May 4 23:42:59 2022 +0200 fix consumption of mails without html split pdf generation functions commitc2e3dc76d9
Author: phail <phel@hacknology.de> Date: Tue May 3 23:21:33 2022 +0200 add parsing of inline attachments remove insecure chromium option fix html parsing commit5a899664f8
Author: phail <phel@hacknology.de> Date: Tue May 3 18:02:08 2022 +0200 remove .eml parser from tika commit990e905a04
Merge:6b7155a8
98ebb095
Author: phail <phel@hacknology.de> Date: Tue May 3 17:42:56 2022 +0200 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commit6b7155a849
Author: phail <phel@hacknology.de> Date: Sat Apr 30 17:33:12 2022 +0200 merge migrations commit47851ddd3f
Merge:47189643
0f1e3164
Author: phail <phel@hacknology.de> Date: Fri Apr 29 23:52:56 2022 +0200 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml commit47189643ff
Author: phail <phel@hacknology.de> Date: Fri Apr 29 22:58:11 2022 +0200 add eml parser to paperless_mail commitc1efe11cf3
Author: phail <phel@hacknology.de> Date: Wed Apr 27 23:32:10 2022 +0200 improve pdf generation commit0e40ef5f35
Author: phail <phel@hacknology.de> Date: Wed Apr 27 19:52:59 2022 +0200 add css for pdf generation commitc8081595c4
Author: phail <phel@hacknology.de> Date: Tue Apr 26 23:25:48 2022 +0200 improve pdf generation commita2b5b3b253
Author: phail <phel@hacknology.de> Date: Tue Apr 26 23:12:36 2022 +0200 moved files commit790bcf05ed
Author: phail <phel@hacknology.de> Date: Mon Apr 25 20:55:00 2022 +0200 add prototype archive pdf commitd8d2d53c59
Author: phail <phel@hacknology.de> Date: Tue Apr 19 20:14:31 2022 +0200 fix Mail actions mixup commit027897ff03
Author: phail <phel@hacknology.de> Date: Tue Apr 19 00:39:00 2022 +0200 work in progress Mail parsing commitcca576f518
Author: phail <phel@hacknology.de> Date: Fri Apr 15 14:40:02 2022 +0200 add feature to consume imap mail als .eml commit5fcf1b5434
Author: phail <phel@hacknology.de> Date: Thu Apr 14 00:19:30 2022 +0200 remove uneeded print and fix merge fail commit942b5aa9df
Merge:c05b39a0
cc936160
Author: phail <phel@hacknology.de> Date: Wed Apr 13 23:55:38 2022 +0200 Merge branch 'dev' into fix-mail-starttls commitc05b39a056
Author: phail <phel@hacknology.de> Date: Wed Apr 13 23:37:21 2022 +0200 fix unittest commit3c8196527f
Author: phail <phel@hacknology.de> Date: Sat Apr 9 13:07:14 2022 +0200 adapt to starttls interface change in imap_tools pin imap-tools version to avoid breaking changes improve mail log Update settings.component.ts Update settings.component.ts
This commit is contained in:
@@ -154,6 +154,12 @@ const routes: Routes = [
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'settings/:section',
|
||||
component: SettingsComponent,
|
||||
canDeactivate: [DirtyFormGuard],
|
||||
},
|
||||
{ path: 'tasks', component: TasksComponent },
|
||||
],
|
||||
},
|
||||
|
||||
|
@@ -135,6 +135,10 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
})
|
||||
|
||||
const prevBtnTitle = $localize`Prev`
|
||||
const nextBtnTitle = $localize`Next`
|
||||
const endBtnTitle = $localize`End`
|
||||
|
||||
this.tourService.initialize([
|
||||
{
|
||||
anchorId: 'tour.dashboard',
|
||||
@@ -142,12 +146,18 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||
route: '/dashboard',
|
||||
enableBackdrop: true,
|
||||
delayAfterNavigation: 500,
|
||||
prevBtnTitle,
|
||||
nextBtnTitle,
|
||||
endBtnTitle,
|
||||
},
|
||||
{
|
||||
anchorId: 'tour.upload-widget',
|
||||
content: $localize`Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms.`,
|
||||
route: '/dashboard',
|
||||
enableBackdrop: true,
|
||||
prevBtnTitle,
|
||||
nextBtnTitle,
|
||||
endBtnTitle,
|
||||
},
|
||||
{
|
||||
anchorId: 'tour.documents',
|
||||
@@ -157,6 +167,9 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||
placement: 'bottom',
|
||||
enableBackdrop: true,
|
||||
disableScrollToAnchor: true,
|
||||
prevBtnTitle,
|
||||
nextBtnTitle,
|
||||
endBtnTitle,
|
||||
},
|
||||
{
|
||||
anchorId: 'tour.documents-filter-editor',
|
||||
@@ -164,35 +177,45 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||
route: '/documents?sort=created&reverse=1&page=1',
|
||||
placement: 'bottom',
|
||||
enableBackdrop: true,
|
||||
prevBtnTitle,
|
||||
nextBtnTitle,
|
||||
endBtnTitle,
|
||||
},
|
||||
{
|
||||
anchorId: 'tour.documents-views',
|
||||
content: $localize`Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar.`,
|
||||
route: '/documents?sort=created&reverse=1&page=1',
|
||||
enableBackdrop: true,
|
||||
prevBtnTitle,
|
||||
nextBtnTitle,
|
||||
endBtnTitle,
|
||||
},
|
||||
{
|
||||
anchorId: 'tour.tags',
|
||||
content: $localize`Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view.`,
|
||||
route: '/tags',
|
||||
enableBackdrop: true,
|
||||
prevBtnTitle,
|
||||
nextBtnTitle,
|
||||
endBtnTitle,
|
||||
},
|
||||
{
|
||||
anchorId: 'tour.file-tasks',
|
||||
content: $localize`File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process.`,
|
||||
route: '/tasks',
|
||||
enableBackdrop: true,
|
||||
prevBtnTitle,
|
||||
nextBtnTitle,
|
||||
endBtnTitle,
|
||||
},
|
||||
{
|
||||
anchorId: 'tour.settings',
|
||||
content: $localize`Check out the settings for various tweaks to the web app or to toggle settings for saved views.`,
|
||||
content: $localize`Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking.`,
|
||||
route: '/settings',
|
||||
enableBackdrop: true,
|
||||
},
|
||||
{
|
||||
anchorId: 'tour.admin',
|
||||
content: $localize`The Admin area contains more advanced controls as well as the settings for automatic e-mail fetching.`,
|
||||
enableBackdrop: true,
|
||||
prevBtnTitle,
|
||||
nextBtnTitle,
|
||||
endBtnTitle,
|
||||
},
|
||||
{
|
||||
anchorId: 'tour.outro',
|
||||
@@ -202,6 +225,9 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||
'<br/><br/>' +
|
||||
$localize`Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx!`,
|
||||
route: '/dashboard',
|
||||
prevBtnTitle,
|
||||
nextBtnTitle,
|
||||
endBtnTitle,
|
||||
},
|
||||
])
|
||||
|
||||
|
@@ -39,6 +39,7 @@ import { NgxFileDropModule } from 'ngx-file-drop'
|
||||
import { TextComponent } from './components/common/input/text/text.component'
|
||||
import { SelectComponent } from './components/common/input/select/select.component'
|
||||
import { CheckComponent } from './components/common/input/check/check.component'
|
||||
import { PasswordComponent } from './components/common/input/password/password.component'
|
||||
import { SaveViewConfigDialogComponent } from './components/document-list/save-view-config-dialog/save-view-config-dialog.component'
|
||||
import { TagsComponent } from './components/common/input/tags/tags.component'
|
||||
import { IfPermissionsDirective } from './directives/if-permissions.directive'
|
||||
@@ -81,6 +82,8 @@ import { TourNgBootstrapModule } from 'ngx-ui-tour-ng-bootstrap'
|
||||
import { UserEditDialogComponent } from './components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component'
|
||||
import { GroupEditDialogComponent } from './components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component'
|
||||
import { PermissionsSelectComponent } from './components/common/permissions-select/permissions-select.component'
|
||||
import { MailAccountEditDialogComponent } from './components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component'
|
||||
import { MailRuleEditDialogComponent } from './components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component'
|
||||
|
||||
import localeBe from '@angular/common/locales/be'
|
||||
import localeCs from '@angular/common/locales/cs'
|
||||
@@ -162,6 +165,7 @@ function initializeApp(settings: SettingsService) {
|
||||
TextComponent,
|
||||
SelectComponent,
|
||||
CheckComponent,
|
||||
PasswordComponent,
|
||||
SaveViewConfigDialogComponent,
|
||||
TagsComponent,
|
||||
IfPermissionsDirective,
|
||||
@@ -189,6 +193,8 @@ function initializeApp(settings: SettingsService) {
|
||||
UserEditDialogComponent,
|
||||
GroupEditDialogComponent,
|
||||
PermissionsSelectComponent,
|
||||
MailAccountEditDialogComponent,
|
||||
MailRuleEditDialogComponent,
|
||||
],
|
||||
imports: [
|
||||
BrowserModule,
|
||||
|
@@ -17,7 +17,7 @@
|
||||
</svg>
|
||||
<input class="form-control form-control-sm" type="text" placeholder="Search documents" aria-label="Search"
|
||||
[formControl]="searchField" [ngbTypeahead]="searchAutoComplete" (keyup)="searchFieldKeyup($event)" (selectItem)="itemSelected($event)" i18n-placeholder>
|
||||
<button *ngIf="!searchFieldEmpty" class="btn btn-link btn-sm px-0 position-absolute top-0 end-0" (click)="resetSearchField()">
|
||||
<button type="button" *ngIf="!searchFieldEmpty" class="btn btn-link btn-sm px-0 position-absolute top-0 end-0" (click)="resetSearchField()">
|
||||
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-x me-1" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/>
|
||||
</svg>
|
||||
@@ -177,13 +177,6 @@
|
||||
</svg><span> <ng-container i18n>Settings</ng-container></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item" *ifPermissions="{ action: PermissionAction.View, type: PermissionType.Admin }" tourAnchor="tour.admin">
|
||||
<a class="nav-link" href="admin/" ngbPopover="Admin" i18n-ngbPopover [disablePopover]="!slimSidebarEnabled" placement="end" container="body" triggers="mouseenter:mouseleave" popoverClass="popover-slim">
|
||||
<svg class="sidebaricon" fill="currentColor">
|
||||
<use xlink:href="assets/bootstrap-icons.svg#toggles"/>
|
||||
</svg><span> <ng-container i18n>Admin</ng-container></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h6 class="sidebar-heading px-3 mt-auto pt-4 mb-1 text-muted">
|
||||
@@ -191,7 +184,7 @@
|
||||
</h6>
|
||||
<ul class="nav flex-column mb-2">
|
||||
<li class="nav-item" tourAnchor="tour.outro">
|
||||
<a class="nav-link" target="_blank" rel="noopener noreferrer" href="https://paperless-ngx.readthedocs.io/en/latest/" ngbPopover="Documentation" i18n-ngbPopover [disablePopover]="!slimSidebarEnabled" placement="end" container="body" triggers="mouseenter:mouseleave" popoverClass="popover-slim">
|
||||
<a class="nav-link" target="_blank" rel="noopener noreferrer" href="https://docs.paperless-ngx.com" ngbPopover="Documentation" i18n-ngbPopover [disablePopover]="!slimSidebarEnabled" placement="end" container="body" triggers="mouseenter:mouseleave" popoverClass="popover-slim">
|
||||
<svg class="sidebaricon" fill="currentColor">
|
||||
<use xlink:href="assets/bootstrap-icons.svg#question-circle"/>
|
||||
</svg><span> <ng-container i18n>Documentation</ng-container></span>
|
||||
|
@@ -97,6 +97,15 @@ export class AppFrameComponent
|
||||
this.isMenuCollapsed = true
|
||||
}
|
||||
|
||||
get openDocuments(): PaperlessDocument[] {
|
||||
return this.openDocumentsService.getOpenDocuments()
|
||||
}
|
||||
|
||||
@HostListener('window:beforeunload')
|
||||
canDeactivate(): Observable<boolean> | boolean {
|
||||
return !this.openDocumentsService.hasDirty()
|
||||
}
|
||||
|
||||
searchField = new FormControl('')
|
||||
|
||||
get searchFieldEmpty(): boolean {
|
||||
@@ -113,15 +122,6 @@ export class AppFrameComponent
|
||||
}
|
||||
}
|
||||
|
||||
get openDocuments(): PaperlessDocument[] {
|
||||
return this.openDocumentsService.getOpenDocuments()
|
||||
}
|
||||
|
||||
@HostListener('window:beforeunload')
|
||||
canDeactivate(): Observable<boolean> | boolean {
|
||||
return !this.openDocumentsService.hasDirty()
|
||||
}
|
||||
|
||||
searchAutoComplete = (text$: Observable<string>) =>
|
||||
text$.pipe(
|
||||
debounceTime(200),
|
||||
|
@@ -2,11 +2,9 @@ import { Directive, EventEmitter, Input, OnInit, Output } from '@angular/core'
|
||||
import { FormGroup } from '@angular/forms'
|
||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { Observable } from 'rxjs'
|
||||
import { map } from 'rxjs/operators'
|
||||
import { MATCHING_ALGORITHMS, MATCH_AUTO } from 'src/app/data/matching-model'
|
||||
import { ObjectWithId } from 'src/app/data/object-with-id'
|
||||
import { AbstractPaperlessService } from 'src/app/services/rest/abstract-paperless-service'
|
||||
import { ToastService } from 'src/app/services/toast.service'
|
||||
|
||||
@Directive()
|
||||
export abstract class EditDialogComponent<T extends ObjectWithId>
|
||||
@@ -94,16 +92,16 @@ export abstract class EditDialogComponent<T extends ObjectWithId>
|
||||
break
|
||||
}
|
||||
this.networkActive = true
|
||||
serverResponse.subscribe(
|
||||
(result) => {
|
||||
serverResponse.subscribe({
|
||||
next: (result) => {
|
||||
this.activeModal.close()
|
||||
this.success.emit(result)
|
||||
},
|
||||
(error) => {
|
||||
error: (error) => {
|
||||
this.error = error.error
|
||||
this.networkActive = false
|
||||
}
|
||||
)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
cancel() {
|
||||
|
@@ -0,0 +1,26 @@
|
||||
<form [formGroup]="objectForm" (ngSubmit)="save()">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modal-basic-title">{{getTitle()}}</h4>
|
||||
<button type="button" [disabled]="!closeEnabled" class="btn-close" aria-label="Close" (click)="cancel()">
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<app-input-text i18n-title title="Name" formControlName="name" [error]="error?.name"></app-input-text>
|
||||
<app-input-text i18n-title title="IMAP Server" formControlName="imap_server" [error]="error?.imap_server"></app-input-text>
|
||||
<app-input-text i18n-title title="IMAP Port" formControlName="imap_port" [error]="error?.imap_port"></app-input-text>
|
||||
<app-input-select i18n-title title="IMAP Security" [items]="imapSecurityOptions" formControlName="imap_security"></app-input-select>
|
||||
</div>
|
||||
<div class="col">
|
||||
<app-input-text i18n-title title="Username" formControlName="username" [error]="error?.username"></app-input-text>
|
||||
<app-input-password i18n-title title="Password" formControlName="password" [error]="error?.password"></app-input-password>
|
||||
<app-input-text i18n-title title="Character Set" formControlName="character_set" [error]="error?.character_set"></app-input-text>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-outline-secondary" (click)="cancel()" i18n [disabled]="networkActive">Cancel</button>
|
||||
<button type="submit" class="btn btn-primary" i18n [disabled]="networkActive">Save</button>
|
||||
</div>
|
||||
</form>
|
@@ -0,0 +1,50 @@
|
||||
import { Component } from '@angular/core'
|
||||
import { FormControl, FormGroup } from '@angular/forms'
|
||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
|
||||
import {
|
||||
IMAPSecurity,
|
||||
PaperlessMailAccount,
|
||||
} from 'src/app/data/paperless-mail-account'
|
||||
import { MailAccountService } from 'src/app/services/rest/mail-account.service'
|
||||
|
||||
const IMAP_SECURITY_OPTIONS = [
|
||||
{ id: IMAPSecurity.None, name: $localize`No encryption` },
|
||||
{ id: IMAPSecurity.SSL, name: $localize`SSL` },
|
||||
{ id: IMAPSecurity.STARTTLS, name: $localize`STARTTLS` },
|
||||
]
|
||||
|
||||
@Component({
|
||||
selector: 'app-mail-account-edit-dialog',
|
||||
templateUrl: './mail-account-edit-dialog.component.html',
|
||||
styleUrls: ['./mail-account-edit-dialog.component.scss'],
|
||||
})
|
||||
export class MailAccountEditDialogComponent extends EditDialogComponent<PaperlessMailAccount> {
|
||||
constructor(service: MailAccountService, activeModal: NgbActiveModal) {
|
||||
super(service, activeModal)
|
||||
}
|
||||
|
||||
getCreateTitle() {
|
||||
return $localize`Create new mail account`
|
||||
}
|
||||
|
||||
getEditTitle() {
|
||||
return $localize`Edit mail account`
|
||||
}
|
||||
|
||||
getForm(): FormGroup {
|
||||
return new FormGroup({
|
||||
name: new FormControl(null),
|
||||
imap_server: new FormControl(null),
|
||||
imap_port: new FormControl(null),
|
||||
imap_security: new FormControl(IMAPSecurity.SSL),
|
||||
username: new FormControl(null),
|
||||
password: new FormControl(null),
|
||||
character_set: new FormControl('UTF-8'),
|
||||
})
|
||||
}
|
||||
|
||||
get imapSecurityOptions() {
|
||||
return IMAP_SECURITY_OPTIONS
|
||||
}
|
||||
}
|
@@ -0,0 +1,39 @@
|
||||
<form [formGroup]="objectForm" (ngSubmit)="save()">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="modal-basic-title">{{getTitle()}}</h4>
|
||||
<button type="button" [disabled]="!closeEnabled" class="btn-close" aria-label="Close" (click)="cancel()">
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<app-input-text i18n-title title="Name" formControlName="name" [error]="error?.name"></app-input-text>
|
||||
<app-input-select i18n-title title="Account" [items]="accounts" formControlName="account"></app-input-select>
|
||||
<app-input-text i18n-title title="Folder" formControlName="folder" i18n-hint hint="Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." [error]="error?.folder"></app-input-text>
|
||||
<app-input-number i18n-title title="Maximum age (days)" formControlName="maximum_age" [showAdd]="false" [error]="error?.maximum_age"></app-input-number>
|
||||
<app-input-select i18n-title title="Attachment type" [items]="attachmentTypeOptions" formControlName="attachment_type"></app-input-select>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p class="small" i18n>Paperless will only process mails that match <em>all</em> of the filters specified below.</p>
|
||||
<app-input-text i18n-title title="Filter from" formControlName="filter_from" [error]="error?.filter_from"></app-input-text>
|
||||
<app-input-text i18n-title title="Filter subject" formControlName="filter_subject" [error]="error?.filter_subject"></app-input-text>
|
||||
<app-input-text i18n-title title="Filter body" formControlName="filter_body" [error]="error?.filter_body"></app-input-text>
|
||||
<app-input-text i18n-title title="Filter attachment filename" formControlName="filter_attachment_filename" i18n-hint hint="Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." [error]="error?.filter_attachment_filename"></app-input-text>
|
||||
</div>
|
||||
<div class="col">
|
||||
<app-input-select i18n-title title="Action" [items]="actionOptions" formControlName="action" i18n-hint hint="Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched."></app-input-select>
|
||||
<app-input-text i18n-title title="Action parameter" *ngIf="showActionParamField" formControlName="action_parameter" [error]="error?.action_parameter"></app-input-text>
|
||||
<app-input-select i18n-title title="Assign title from" [items]="metadataTitleOptions" formControlName="assign_title_from"></app-input-select>
|
||||
<app-input-tags [allowCreate]="false" formControlName="assign_tags"></app-input-tags>
|
||||
<app-input-select i18n-title title="Assign document type" [items]="documentTypes" [allowNull]="true" formControlName="assign_document_type"></app-input-select>
|
||||
<app-input-select i18n-title title="Assign correspondent from" [items]="metadataCorrespondentOptions" formControlName="assign_correspondent_from"></app-input-select>
|
||||
<app-input-select *ngIf="showCorrespondentField" i18n-title title="Assign correspondent" [items]="correspondents" [allowNull]="true" formControlName="assign_correspondent"></app-input-select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<span class="text-danger" *ngIf="error?.non_field_errors"><ng-container i18n>Error</ng-container>: {{error.non_field_errors}}</span>
|
||||
<button type="button" class="btn btn-outline-secondary" (click)="cancel()" i18n [disabled]="networkActive">Cancel</button>
|
||||
<button type="submit" class="btn btn-primary" i18n [disabled]="networkActive">Save</button>
|
||||
</div>
|
||||
</form>
|
@@ -0,0 +1,180 @@
|
||||
import { Component } from '@angular/core'
|
||||
import { FormControl, FormGroup } from '@angular/forms'
|
||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { first } from 'rxjs'
|
||||
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
|
||||
import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
|
||||
import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
|
||||
import { PaperlessMailAccount } from 'src/app/data/paperless-mail-account'
|
||||
import {
|
||||
MailAction,
|
||||
MailFilterAttachmentType,
|
||||
MailMetadataCorrespondentOption,
|
||||
MailMetadataTitleOption,
|
||||
PaperlessMailRule,
|
||||
} from 'src/app/data/paperless-mail-rule'
|
||||
import { CorrespondentService } from 'src/app/services/rest/correspondent.service'
|
||||
import { DocumentTypeService } from 'src/app/services/rest/document-type.service'
|
||||
import { MailAccountService } from 'src/app/services/rest/mail-account.service'
|
||||
import { MailRuleService } from 'src/app/services/rest/mail-rule.service'
|
||||
|
||||
const ATTACHMENT_TYPE_OPTIONS = [
|
||||
{
|
||||
id: MailFilterAttachmentType.Attachments,
|
||||
name: $localize`Only process attachments.`,
|
||||
},
|
||||
{
|
||||
id: MailFilterAttachmentType.Everything,
|
||||
name: $localize`Process all files, including 'inline' attachments.`,
|
||||
},
|
||||
]
|
||||
|
||||
const ACTION_OPTIONS = [
|
||||
{
|
||||
id: MailAction.Delete,
|
||||
name: $localize`Delete`,
|
||||
},
|
||||
{
|
||||
id: MailAction.Move,
|
||||
name: $localize`Move to specified folder`,
|
||||
},
|
||||
{
|
||||
id: MailAction.MarkRead,
|
||||
name: $localize`Mark as read, don't process read mails`,
|
||||
},
|
||||
{
|
||||
id: MailAction.Flag,
|
||||
name: $localize`Flag the mail, don't process flagged mails`,
|
||||
},
|
||||
{
|
||||
id: MailAction.Tag,
|
||||
name: $localize`Tag the mail with specified tag, don't process tagged mails`,
|
||||
},
|
||||
]
|
||||
|
||||
const METADATA_TITLE_OPTIONS = [
|
||||
{
|
||||
id: MailMetadataTitleOption.FromSubject,
|
||||
name: $localize`Use subject as title`,
|
||||
},
|
||||
{
|
||||
id: MailMetadataTitleOption.FromFilename,
|
||||
name: $localize`Use attachment filename as title`,
|
||||
},
|
||||
]
|
||||
|
||||
const METADATA_CORRESPONDENT_OPTIONS = [
|
||||
{
|
||||
id: MailMetadataCorrespondentOption.FromNothing,
|
||||
name: $localize`Do not assign a correspondent`,
|
||||
},
|
||||
{
|
||||
id: MailMetadataCorrespondentOption.FromEmail,
|
||||
name: $localize`Use mail address`,
|
||||
},
|
||||
{
|
||||
id: MailMetadataCorrespondentOption.FromName,
|
||||
name: $localize`Use name (or mail address if not available)`,
|
||||
},
|
||||
{
|
||||
id: MailMetadataCorrespondentOption.FromCustom,
|
||||
name: $localize`Use correspondent selected below`,
|
||||
},
|
||||
]
|
||||
|
||||
@Component({
|
||||
selector: 'app-mail-rule-edit-dialog',
|
||||
templateUrl: './mail-rule-edit-dialog.component.html',
|
||||
styleUrls: ['./mail-rule-edit-dialog.component.scss'],
|
||||
})
|
||||
export class MailRuleEditDialogComponent extends EditDialogComponent<PaperlessMailRule> {
|
||||
accounts: PaperlessMailAccount[]
|
||||
correspondents: PaperlessCorrespondent[]
|
||||
documentTypes: PaperlessDocumentType[]
|
||||
|
||||
constructor(
|
||||
service: MailRuleService,
|
||||
activeModal: NgbActiveModal,
|
||||
accountService: MailAccountService,
|
||||
correspondentService: CorrespondentService,
|
||||
documentTypeService: DocumentTypeService
|
||||
) {
|
||||
super(service, activeModal)
|
||||
|
||||
accountService
|
||||
.listAll()
|
||||
.pipe(first())
|
||||
.subscribe((result) => (this.accounts = result.results))
|
||||
|
||||
correspondentService
|
||||
.listAll()
|
||||
.pipe(first())
|
||||
.subscribe((result) => (this.correspondents = result.results))
|
||||
|
||||
documentTypeService
|
||||
.listAll()
|
||||
.pipe(first())
|
||||
.subscribe((result) => (this.documentTypes = result.results))
|
||||
}
|
||||
|
||||
getCreateTitle() {
|
||||
return $localize`Create new mail rule`
|
||||
}
|
||||
|
||||
getEditTitle() {
|
||||
return $localize`Edit mail rule`
|
||||
}
|
||||
|
||||
getForm(): FormGroup {
|
||||
return new FormGroup({
|
||||
name: new FormControl(null),
|
||||
account: new FormControl(null),
|
||||
folder: new FormControl('INBOX'),
|
||||
filter_from: new FormControl(null),
|
||||
filter_subject: new FormControl(null),
|
||||
filter_body: new FormControl(null),
|
||||
filter_attachment_filename: new FormControl(null),
|
||||
maximum_age: new FormControl(null),
|
||||
attachment_type: new FormControl(MailFilterAttachmentType.Attachments),
|
||||
action: new FormControl(MailAction.MarkRead),
|
||||
action_parameter: new FormControl(null),
|
||||
assign_title_from: new FormControl(MailMetadataTitleOption.FromSubject),
|
||||
assign_tags: new FormControl([]),
|
||||
assign_document_type: new FormControl(null),
|
||||
assign_correspondent_from: new FormControl(
|
||||
MailMetadataCorrespondentOption.FromNothing
|
||||
),
|
||||
assign_correspondent: new FormControl(null),
|
||||
})
|
||||
}
|
||||
|
||||
get showCorrespondentField(): boolean {
|
||||
return (
|
||||
this.objectForm?.get('assign_correspondent_from')?.value ==
|
||||
MailMetadataCorrespondentOption.FromCustom
|
||||
)
|
||||
}
|
||||
|
||||
get showActionParamField(): boolean {
|
||||
return (
|
||||
this.objectForm?.get('action')?.value == MailAction.Move ||
|
||||
this.objectForm?.get('action')?.value == MailAction.Tag
|
||||
)
|
||||
}
|
||||
|
||||
get attachmentTypeOptions() {
|
||||
return ATTACHMENT_TYPE_OPTIONS
|
||||
}
|
||||
|
||||
get actionOptions() {
|
||||
return ACTION_OPTIONS
|
||||
}
|
||||
|
||||
get metadataTitleOptions() {
|
||||
return METADATA_TITLE_OPTIONS
|
||||
}
|
||||
|
||||
get metadataCorrespondentOptions() {
|
||||
return METADATA_CORRESPONDENT_OPTIONS
|
||||
}
|
||||
}
|
@@ -7,7 +7,7 @@
|
||||
<div class="modal-body">
|
||||
|
||||
<p *ngIf="this.dialogMode == 'edit'" i18n>
|
||||
<em>Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/administration.html#utilities-renamer">documentation</a>.</em>
|
||||
<em>Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the <a target="_blank" href="https://docs.paperless-ngx.com/administration/#renamer">documentation</a>.</em>
|
||||
</p>
|
||||
|
||||
<app-input-text i18n-title title="Name" formControlName="name" [error]="error?.name"></app-input-text>
|
||||
|
@@ -22,7 +22,7 @@ export class StoragePathEditDialogComponent extends EditDialogComponent<Paperles
|
||||
' <code>{created_year}-{title}</code> ' +
|
||||
$localize`or use slashes to add directories e.g.` +
|
||||
' <code>{created_year}/{correspondent}/{title}</code>. ' +
|
||||
$localize`See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list.`
|
||||
$localize`See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list.`
|
||||
)
|
||||
}
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<label class="form-label" [for]="inputId">{{title}}</label>
|
||||
<div class="input-group" [class.is-invalid]="error">
|
||||
<input type="number" class="form-control" [id]="inputId" [(ngModel)]="value" (change)="onChange(value)" [class.is-invalid]="error">
|
||||
<button class="btn btn-outline-secondary" type="button" id="button-addon1" (click)="nextAsn()" [disabled]="value">+1</button>
|
||||
<button *ngIf="showAdd" class="btn btn-outline-secondary" type="button" id="button-addon1" (click)="nextAsn()" [disabled]="value">+1</button>
|
||||
</div>
|
||||
<div class="invalid-feedback">
|
||||
{{error}}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { Component, forwardRef } from '@angular/core'
|
||||
import { Component, forwardRef, Input } from '@angular/core'
|
||||
import { NG_VALUE_ACCESSOR } from '@angular/forms'
|
||||
import { FILTER_ASN_ISNULL } from 'src/app/data/filter-rule-type'
|
||||
import { DocumentService } from 'src/app/services/rest/document.service'
|
||||
@@ -17,6 +17,9 @@ import { AbstractInputComponent } from '../abstract-input'
|
||||
styleUrls: ['./number.component.scss'],
|
||||
})
|
||||
export class NumberComponent extends AbstractInputComponent<number> {
|
||||
@Input()
|
||||
showAdd: boolean = true
|
||||
|
||||
constructor(private documentService: DocumentService) {
|
||||
super()
|
||||
}
|
||||
|
@@ -0,0 +1,8 @@
|
||||
<div class="mb-3">
|
||||
<label class="form-label" [for]="inputId">{{title}}</label>
|
||||
<input #inputField type="password" class="form-control" [class.is-invalid]="error" [id]="inputId" [(ngModel)]="value" (change)="onChange(value)">
|
||||
<small *ngIf="hint" class="form-text text-muted" [innerHTML]="hint | safeHtml"></small>
|
||||
<div class="invalid-feedback">
|
||||
{{error}}
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,21 @@
|
||||
import { Component, forwardRef } from '@angular/core'
|
||||
import { NG_VALUE_ACCESSOR } from '@angular/forms'
|
||||
import { AbstractInputComponent } from '../abstract-input'
|
||||
|
||||
@Component({
|
||||
providers: [
|
||||
{
|
||||
provide: NG_VALUE_ACCESSOR,
|
||||
useExisting: forwardRef(() => PasswordComponent),
|
||||
multi: true,
|
||||
},
|
||||
],
|
||||
selector: 'app-input-password',
|
||||
templateUrl: './password.component.html',
|
||||
styleUrls: ['./password.component.scss'],
|
||||
})
|
||||
export class PasswordComponent extends AbstractInputComponent<string> {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
}
|
@@ -7,7 +7,7 @@
|
||||
[closeOnSelect]="false"
|
||||
[clearSearchOnAdd]="true"
|
||||
[hideSelected]="true"
|
||||
[addTag]="createTagRef"
|
||||
[addTag]="allowCreate ? createTagRef : false"
|
||||
addTagText="Add tag"
|
||||
i18n-addTagText
|
||||
(change)="onChange(value)"
|
||||
@@ -31,7 +31,7 @@
|
||||
</ng-template>
|
||||
</ng-select>
|
||||
|
||||
<button class="btn btn-outline-secondary" type="button" (click)="createTag()">
|
||||
<button *ngIf="allowCreate" class="btn btn-outline-secondary" type="button" (click)="createTag()">
|
||||
<svg class="buttonicon" fill="currentColor">
|
||||
<use xlink:href="assets/bootstrap-icons.svg#plus" />
|
||||
</svg>
|
||||
|
@@ -54,6 +54,9 @@ export class TagsComponent implements OnInit, ControlValueAccessor {
|
||||
@Input()
|
||||
suggestions: number[]
|
||||
|
||||
@Input()
|
||||
allowCreate: boolean = true
|
||||
|
||||
value: number[]
|
||||
|
||||
tags: PaperlessTag[]
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<!-- [dismissible]="isFinished(status)" (closed)="dismiss(status)" -->
|
||||
<h4 class="alert-heading"><ng-container i18n>Paperless-ngx is running!</ng-container> 🎉</h4>
|
||||
<p i18n>You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below.</p>
|
||||
<p i18n>More detail on how to use and configure Paperless-ngx is always available in the <a href="https://paperless-ngx.readthedocs.io" target="_blank">documentation</a>.</p>
|
||||
<p i18n>More detail on how to use and configure Paperless-ngx is always available in the <a href="https://docs.paperless-ngx.com" target="_blank">documentation</a>.</p>
|
||||
<hr>
|
||||
<div class="d-flex align-items-end">
|
||||
<p class="lead fs-6 m-0"><em i18n>Thanks for being a part of the Paperless-ngx community!</em></p>
|
||||
|
@@ -500,7 +500,7 @@ export class DocumentDetailComponent
|
||||
.subscribe({
|
||||
next: () => {
|
||||
this.toastService.showInfo(
|
||||
$localize`Redo OCR operation will begin in the background.`
|
||||
$localize`Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content.`
|
||||
)
|
||||
if (modal) {
|
||||
modal.close()
|
||||
|
@@ -126,8 +126,20 @@ export abstract class ManagementListComponent<T extends ObjectWithId>
|
||||
backdrop: 'static',
|
||||
})
|
||||
activeModal.componentInstance.dialogMode = 'create'
|
||||
activeModal.componentInstance.success.subscribe((o) => {
|
||||
this.reloadData()
|
||||
activeModal.componentInstance.success.subscribe({
|
||||
next: () => {
|
||||
this.reloadData()
|
||||
this.toastService.showInfo(
|
||||
$localize`Successfully created ${this.typeName}.`
|
||||
)
|
||||
},
|
||||
error: (e) => {
|
||||
this.toastService.showInfo(
|
||||
$localize`Error occurred while creating ${
|
||||
this.typeName
|
||||
} : ${e.toString()}.`
|
||||
)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -137,8 +149,20 @@ export abstract class ManagementListComponent<T extends ObjectWithId>
|
||||
})
|
||||
activeModal.componentInstance.object = object
|
||||
activeModal.componentInstance.dialogMode = 'edit'
|
||||
activeModal.componentInstance.success.subscribe((o) => {
|
||||
this.reloadData()
|
||||
activeModal.componentInstance.success.subscribe({
|
||||
next: () => {
|
||||
this.reloadData()
|
||||
this.toastService.showInfo(
|
||||
$localize`Successfully updated ${this.typeName}.`
|
||||
)
|
||||
},
|
||||
error: (e) => {
|
||||
this.toastService.showInfo(
|
||||
$localize`Error occurred while saving ${
|
||||
this.typeName
|
||||
} : ${e.toString()}.`
|
||||
)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
|
@@ -1,11 +1,16 @@
|
||||
<app-page-header title="Settings" i18n-title>
|
||||
<button class="btn btn-sm btn-outline-primary" (click)="tourService.start()"><ng-container i18n>Start tour</ng-container></button>
|
||||
<a class="btn btn-sm btn-primary ms-3" href="admin/" target="_blank">
|
||||
<ng-container i18n>Open Django Admin</ng-container>
|
||||
<svg class="sidebaricon ms-1" fill="currentColor">
|
||||
<use xlink:href="assets/bootstrap-icons.svg#arrow-up-right"/>
|
||||
</svg>
|
||||
</a>
|
||||
</app-page-header>
|
||||
|
||||
<!-- <p>items per page, documents per view type</p> -->
|
||||
<form [formGroup]="settingsForm" (ngSubmit)="saveSettings()">
|
||||
|
||||
<ul ngbNav #nav="ngbNav" (navChange)="maybeInitializeTab($event)" [(activeId)]="activeNavID" class="nav-tabs">
|
||||
<ul ngbNav #nav="ngbNav" (navChange)="onNavChange($event)" [(activeId)]="activeNavID" class="nav-tabs">
|
||||
<li [ngbNavItem]="SettingsNavIDs.General">
|
||||
<a ngbNavLink i18n>General</a>
|
||||
<ng-template ngbNavContent>
|
||||
@@ -222,6 +227,90 @@
|
||||
</ng-template>
|
||||
</li>
|
||||
|
||||
<li [ngbNavItem]="SettingsNavIDs.Mail" (mouseover)="maybeInitializeTab(SettingsNavIDs.Mail)" (focusin)="maybeInitializeTab(SettingsNavIDs.Mail)">
|
||||
<a ngbNavLink i18n>Mail</a>
|
||||
<ng-template ngbNavContent>
|
||||
|
||||
<ng-container *ngIf="mailAccounts && mailRules">
|
||||
<h4>
|
||||
<ng-container i18n>Mail accounts</ng-container>
|
||||
<button type="button" class="btn btn-sm btn-primary ms-4" (click)="editMailAccount()">
|
||||
<svg class="sidebaricon me-1" fill="currentColor">
|
||||
<use xlink:href="assets/bootstrap-icons.svg#plus-circle" />
|
||||
</svg>
|
||||
<ng-container i18n>Add Account</ng-container>
|
||||
</button>
|
||||
</h4>
|
||||
<ul class="list-group" formGroupName="mailAccounts">
|
||||
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col" i18n>Name</div>
|
||||
<div class="col" i18n>Server</div>
|
||||
<div class="col" i18n>Actions</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li *ngFor="let account of mailAccounts" class="list-group-item" [formGroupName]="account.id">
|
||||
<div class="row">
|
||||
<div class="col d-flex align-items-center"><button class="btn btn-link p-0" type="button" (click)="editMailAccount(account)">{{account.name}}</button></div>
|
||||
<div class="col d-flex align-items-center">{{account.imap_server}}</div>
|
||||
<div class="col">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-sm btn-primary" type="button" (click)="editMailAccount(account)" i18n>Edit</button>
|
||||
<button class="btn btn-sm btn-outline-danger" type="button" (click)="deleteMailAccount(account)" i18n>Delete</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<div *ngIf="mailAccounts.length == 0" i18n>No mail accounts defined.</div>
|
||||
</ul>
|
||||
|
||||
<h4 class="mt-4">
|
||||
<ng-container i18n>Mail rules</ng-container>
|
||||
<button type="button" class="btn btn-sm btn-primary ms-4" (click)="editMailRule()">
|
||||
<svg class="sidebaricon me-1" fill="currentColor">
|
||||
<use xlink:href="assets/bootstrap-icons.svg#plus-circle" />
|
||||
</svg>
|
||||
<ng-container i18n>Add Rule</ng-container>
|
||||
</button>
|
||||
</h4>
|
||||
<ul class="list-group" formGroupName="mailRules">
|
||||
|
||||
<li class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col" i18n>Name</div>
|
||||
<div class="col" i18n>Account</div>
|
||||
<div class="col" i18n>Actions</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li *ngFor="let rule of mailRules" class="list-group-item" [formGroupName]="rule.id">
|
||||
<div class="row">
|
||||
<div class="col d-flex align-items-center"><button class="btn btn-link p-0" type="button" (click)="editMailRule(rule)">{{rule.name}}</button></div>
|
||||
<div class="col d-flex align-items-center">{{(mailAccountService.getCached(rule.account) | async)?.name}}</div>
|
||||
<div class="col">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-sm btn-primary" type="button" (click)="editMailRule(rule)" i18n>Edit</button>
|
||||
<button class="btn btn-sm btn-outline-danger" type="button" (click)="deleteMailRule(rule)" i18n>Delete</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<div *ngIf="mailRules.length == 0" i18n>No mail rules defined.</div>
|
||||
</ul>
|
||||
</ng-container>
|
||||
|
||||
<div *ngIf="!mailAccounts || !mailRules">
|
||||
<div class="spinner-border spinner-border-sm fw-normal ms-2 me-auto" role="status"></div>
|
||||
<div class="visually-hidden" i18n>Loading...</div>
|
||||
</div>
|
||||
|
||||
</ng-template>
|
||||
</li>
|
||||
|
||||
<li [ngbNavItem]="SettingsNavIDs.UsersGroups" *ifPermissions="{ action: PermissionAction.Add, type: PermissionType.User }" (mouseover)="maybeInitializeTab(SettingsNavIDs.UsersGroups)" (focusin)="maybeInitializeTab(SettingsNavIDs.UsersGroups)">
|
||||
<a ngbNavLink i18n>Users & Groups</a>
|
||||
<ng-template ngbNavContent>
|
||||
|
@@ -26,7 +26,7 @@ import {
|
||||
Subject,
|
||||
} from 'rxjs'
|
||||
import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
|
||||
import { ActivatedRoute } from '@angular/router'
|
||||
import { ActivatedRoute, Router } from '@angular/router'
|
||||
import { ViewportScroller } from '@angular/common'
|
||||
import { TourService } from 'ngx-ui-tour-ng-bootstrap'
|
||||
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
|
||||
@@ -39,6 +39,12 @@ import { PaperlessGroup } from 'src/app/data/paperless-group'
|
||||
import { UserEditDialogComponent } from '../../common/edit-dialog/user-edit-dialog/user-edit-dialog.component'
|
||||
import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component'
|
||||
import { GroupEditDialogComponent } from '../../common/edit-dialog/group-edit-dialog/group-edit-dialog.component'
|
||||
import { PaperlessMailAccount } from 'src/app/data/paperless-mail-account'
|
||||
import { PaperlessMailRule } from 'src/app/data/paperless-mail-rule'
|
||||
import { MailAccountService } from 'src/app/services/rest/mail-account.service'
|
||||
import { MailRuleService } from 'src/app/services/rest/mail-rule.service'
|
||||
import { MailAccountEditDialogComponent } from '../../common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component'
|
||||
import { MailRuleEditDialogComponent } from '../../common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component'
|
||||
|
||||
enum SettingsNavIDs {
|
||||
General = 1,
|
||||
@@ -64,6 +70,9 @@ export class SettingsComponent
|
||||
usersGroup = new FormGroup({})
|
||||
groupsGroup = new FormGroup({})
|
||||
|
||||
mailAccountGroup = new FormGroup({})
|
||||
mailRuleGroup = new FormGroup({})
|
||||
|
||||
settingsForm = new FormGroup({
|
||||
bulkEditConfirmationDialogs: new FormControl(null),
|
||||
bulkEditApplyOnClose: new FormControl(null),
|
||||
@@ -74,22 +83,30 @@ export class SettingsComponent
|
||||
darkModeInvertThumbs: new FormControl(null),
|
||||
themeColor: new FormControl(null),
|
||||
useNativePdfViewer: new FormControl(null),
|
||||
savedViews: this.savedViewGroup,
|
||||
displayLanguage: new FormControl(null),
|
||||
dateLocale: new FormControl(null),
|
||||
dateFormat: new FormControl(null),
|
||||
commentsEnabled: new FormControl(null),
|
||||
updateCheckingEnabled: new FormControl(null),
|
||||
|
||||
notificationsConsumerNewDocument: new FormControl(null),
|
||||
notificationsConsumerSuccess: new FormControl(null),
|
||||
notificationsConsumerFailed: new FormControl(null),
|
||||
notificationsConsumerSuppressOnDashboard: new FormControl(null),
|
||||
commentsEnabled: new FormControl(null),
|
||||
updateCheckingEnabled: new FormControl(null),
|
||||
usersGroup: this.usersGroup,
|
||||
groupsGroup: this.groupsGroup,
|
||||
|
||||
savedViews: this.savedViewGroup,
|
||||
|
||||
mailAccounts: this.mailAccountGroup,
|
||||
mailRules: this.mailRuleGroup,
|
||||
})
|
||||
|
||||
savedViews: PaperlessSavedView[]
|
||||
|
||||
mailAccounts: PaperlessMailAccount[]
|
||||
mailRules: PaperlessMailRule[]
|
||||
|
||||
store: BehaviorSubject<any>
|
||||
storeSub: Subscription
|
||||
isDirty$: Observable<boolean>
|
||||
@@ -110,6 +127,8 @@ export class SettingsComponent
|
||||
|
||||
constructor(
|
||||
public savedViewService: SavedViewService,
|
||||
public mailAccountService: MailAccountService,
|
||||
public mailRuleService: MailRuleService,
|
||||
private documentListViewService: DocumentListViewService,
|
||||
private toastService: ToastService,
|
||||
private settings: SettingsService,
|
||||
@@ -119,6 +138,7 @@ export class SettingsComponent
|
||||
public readonly tourService: TourService,
|
||||
private usersService: UserService,
|
||||
private groupsService: GroupService,
|
||||
private router: Router,
|
||||
private modalService: NgbModal
|
||||
) {
|
||||
super()
|
||||
@@ -127,6 +147,23 @@ export class SettingsComponent
|
||||
})
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.initialize()
|
||||
|
||||
this.activatedRoute.paramMap.subscribe((paramMap) => {
|
||||
const section = paramMap.get('section')
|
||||
if (section) {
|
||||
const navIDKey: string = Object.keys(SettingsNavIDs).find(
|
||||
(navID) => navID.toLowerCase() == section
|
||||
)
|
||||
if (navIDKey) {
|
||||
this.activeNavID = SettingsNavIDs[navIDKey]
|
||||
this.maybeInitializeTab(this.activeNavID)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
ngAfterViewInit(): void {
|
||||
if (this.activatedRoute.snapshot.fragment) {
|
||||
this.viewportScroller.scrollToAnchor(
|
||||
@@ -156,10 +193,13 @@ export class SettingsComponent
|
||||
useNativePdfViewer: this.settings.get(
|
||||
SETTINGS_KEYS.USE_NATIVE_PDF_VIEWER
|
||||
),
|
||||
savedViews: {},
|
||||
displayLanguage: this.settings.getLanguage(),
|
||||
dateLocale: this.settings.get(SETTINGS_KEYS.DATE_LOCALE),
|
||||
dateFormat: this.settings.get(SETTINGS_KEYS.DATE_FORMAT),
|
||||
commentsEnabled: this.settings.get(SETTINGS_KEYS.COMMENTS_ENABLED),
|
||||
updateCheckingEnabled: this.settings.get(
|
||||
SETTINGS_KEYS.UPDATE_CHECKING_ENABLED
|
||||
),
|
||||
notificationsConsumerNewDocument: this.settings.get(
|
||||
SETTINGS_KEYS.NOTIFICATIONS_CONSUMER_NEW_DOCUMENT
|
||||
),
|
||||
@@ -172,28 +212,38 @@ export class SettingsComponent
|
||||
notificationsConsumerSuppressOnDashboard: this.settings.get(
|
||||
SETTINGS_KEYS.NOTIFICATIONS_CONSUMER_SUPPRESS_ON_DASHBOARD
|
||||
),
|
||||
commentsEnabled: this.settings.get(SETTINGS_KEYS.COMMENTS_ENABLED),
|
||||
updateCheckingEnabled: this.settings.get(
|
||||
SETTINGS_KEYS.UPDATE_CHECKING_ENABLED
|
||||
),
|
||||
usersGroup: {},
|
||||
groupsGroup: {},
|
||||
savedViews: {},
|
||||
mailAccounts: {},
|
||||
mailRules: {},
|
||||
}
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.initialize()
|
||||
onNavChange(navChangeEvent: NgbNavChangeEvent) {
|
||||
this.maybeInitializeTab(navChangeEvent.nextId)
|
||||
const [foundNavIDkey, foundNavIDValue] = Object.entries(
|
||||
SettingsNavIDs
|
||||
).find(([navIDkey, navIDValue]) => navIDValue == navChangeEvent.nextId)
|
||||
if (foundNavIDkey)
|
||||
// if its dirty we need to wait for confirmation
|
||||
this.router
|
||||
.navigate(['settings', foundNavIDkey.toLowerCase()])
|
||||
.then((navigated) => {
|
||||
if (!navigated && this.isDirty) {
|
||||
this.activeNavID = navChangeEvent.activeId
|
||||
} else if (navigated && this.isDirty) {
|
||||
this.initialize()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Load tab contents 'on demand', either on mouseover or focusin (i.e. before click) or on nav change event
|
||||
maybeInitializeTab(navIDorEvent: number | NgbNavChangeEvent): void {
|
||||
const navID =
|
||||
typeof navIDorEvent == 'number' ? navIDorEvent : navIDorEvent.nextId
|
||||
// initialize saved views
|
||||
// Load tab contents 'on demand', either on mouseover or focusin (i.e. before click) or called from nav change event
|
||||
maybeInitializeTab(navID: number): void {
|
||||
if (navID == SettingsNavIDs.SavedViews && !this.savedViews) {
|
||||
this.savedViewService.listAll().subscribe((r) => {
|
||||
this.savedViews = r.results
|
||||
this.initialize()
|
||||
this.initialize(false)
|
||||
})
|
||||
} else if (
|
||||
(navID == SettingsNavIDs.UsersGroups && !this.users) ||
|
||||
@@ -201,18 +251,31 @@ export class SettingsComponent
|
||||
) {
|
||||
this.usersService.listAll().subscribe((r) => {
|
||||
this.users = r.results
|
||||
|
||||
this.groupsService.listAll().subscribe((r) => {
|
||||
this.groups = r.results
|
||||
this.initialize()
|
||||
})
|
||||
})
|
||||
} else if (
|
||||
navID == SettingsNavIDs.Mail &&
|
||||
(!this.mailAccounts || !this.mailRules)
|
||||
) {
|
||||
this.mailAccountService.listAll().subscribe((r) => {
|
||||
this.mailAccounts = r.results
|
||||
|
||||
this.mailRuleService.listAll().subscribe((r) => {
|
||||
this.mailRules = r.results
|
||||
this.initialize(false)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
initialize() {
|
||||
initialize(resetSettings: boolean = true) {
|
||||
this.unsubscribeNotifier.next(true)
|
||||
|
||||
const currentFormValue = this.settingsForm.value
|
||||
|
||||
let storeData = this.getCurrentSettings()
|
||||
|
||||
if (this.savedViews) {
|
||||
@@ -279,6 +342,76 @@ export class SettingsComponent
|
||||
}
|
||||
}
|
||||
|
||||
if (this.mailAccounts && this.mailRules) {
|
||||
for (let account of this.mailAccounts) {
|
||||
storeData.mailAccounts[account.id.toString()] = {
|
||||
id: account.id,
|
||||
name: account.name,
|
||||
imap_server: account.imap_server,
|
||||
imap_port: account.imap_port,
|
||||
imap_security: account.imap_security,
|
||||
username: account.username,
|
||||
password: account.password,
|
||||
character_set: account.character_set,
|
||||
}
|
||||
this.mailAccountGroup.addControl(
|
||||
account.id.toString(),
|
||||
new FormGroup({
|
||||
id: new FormControl(null),
|
||||
name: new FormControl(null),
|
||||
imap_server: new FormControl(null),
|
||||
imap_port: new FormControl(null),
|
||||
imap_security: new FormControl(null),
|
||||
username: new FormControl(null),
|
||||
password: new FormControl(null),
|
||||
character_set: new FormControl(null),
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
for (let rule of this.mailRules) {
|
||||
storeData.mailRules[rule.id.toString()] = {
|
||||
name: rule.name,
|
||||
account: rule.account,
|
||||
folder: rule.folder,
|
||||
filter_from: rule.filter_from,
|
||||
filter_subject: rule.filter_subject,
|
||||
filter_body: rule.filter_body,
|
||||
filter_attachment_filename: rule.filter_attachment_filename,
|
||||
maximum_age: rule.maximum_age,
|
||||
attachment_type: rule.attachment_type,
|
||||
action: rule.action,
|
||||
action_parameter: rule.action_parameter,
|
||||
assign_title_from: rule.assign_title_from,
|
||||
assign_tags: rule.assign_tags,
|
||||
assign_document_type: rule.assign_document_type,
|
||||
assign_correspondent_from: rule.assign_correspondent_from,
|
||||
assign_correspondent: rule.assign_correspondent,
|
||||
}
|
||||
this.mailRuleGroup.addControl(
|
||||
rule.id.toString(),
|
||||
new FormGroup({
|
||||
name: new FormControl(null),
|
||||
account: new FormControl(null),
|
||||
folder: new FormControl(null),
|
||||
filter_from: new FormControl(null),
|
||||
filter_subject: new FormControl(null),
|
||||
filter_body: new FormControl(null),
|
||||
filter_attachment_filename: new FormControl(null),
|
||||
maximum_age: new FormControl(null),
|
||||
attachment_type: new FormControl(null),
|
||||
action: new FormControl(null),
|
||||
action_parameter: new FormControl(null),
|
||||
assign_title_from: new FormControl(null),
|
||||
assign_tags: new FormControl(null),
|
||||
assign_document_type: new FormControl(null),
|
||||
assign_correspondent_from: new FormControl(null),
|
||||
assign_correspondent: new FormControl(null),
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
this.store = new BehaviorSubject(storeData)
|
||||
|
||||
this.storeSub = this.store.asObservable().subscribe((state) => {
|
||||
@@ -305,6 +438,11 @@ export class SettingsComponent
|
||||
this.settingsForm.get('themeColor').value
|
||||
)
|
||||
})
|
||||
|
||||
if (!resetSettings && currentFormValue) {
|
||||
// prevents loss of unsaved changes
|
||||
this.settingsForm.patchValue(currentFormValue)
|
||||
}
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
@@ -585,4 +723,121 @@ export class SettingsComponent
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
editMailAccount(account: PaperlessMailAccount) {
|
||||
const modal = this.modalService.open(MailAccountEditDialogComponent, {
|
||||
backdrop: 'static',
|
||||
size: 'xl',
|
||||
})
|
||||
modal.componentInstance.dialogMode = account ? 'edit' : 'create'
|
||||
modal.componentInstance.object = account
|
||||
modal.componentInstance.success
|
||||
.pipe(takeUntil(this.unsubscribeNotifier))
|
||||
.subscribe({
|
||||
next: (newMailAccount) => {
|
||||
this.toastService.showInfo(
|
||||
$localize`Saved account "${newMailAccount.name}".`
|
||||
)
|
||||
this.mailAccountService.clearCache()
|
||||
this.mailAccountService.listAll().subscribe((r) => {
|
||||
this.mailAccounts = r.results
|
||||
this.initialize()
|
||||
})
|
||||
},
|
||||
error: (e) => {
|
||||
this.toastService.showError(
|
||||
$localize`Error saving account: ${e.toString()}.`
|
||||
)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
deleteMailAccount(account: PaperlessMailAccount) {
|
||||
const modal = this.modalService.open(ConfirmDialogComponent, {
|
||||
backdrop: 'static',
|
||||
})
|
||||
modal.componentInstance.title = $localize`Confirm delete mail account`
|
||||
modal.componentInstance.messageBold = $localize`This operation will permanently this mail account.`
|
||||
modal.componentInstance.message = $localize`This operation cannot be undone.`
|
||||
modal.componentInstance.btnClass = 'btn-danger'
|
||||
modal.componentInstance.btnCaption = $localize`Proceed`
|
||||
modal.componentInstance.confirmClicked.subscribe(() => {
|
||||
modal.componentInstance.buttonsEnabled = false
|
||||
this.mailAccountService.delete(account).subscribe({
|
||||
next: () => {
|
||||
modal.close()
|
||||
this.toastService.showInfo($localize`Deleted mail account`)
|
||||
this.mailAccountService.clearCache()
|
||||
this.mailAccountService.listAll().subscribe((r) => {
|
||||
this.mailAccounts = r.results
|
||||
this.initialize()
|
||||
})
|
||||
},
|
||||
error: (e) => {
|
||||
this.toastService.showError(
|
||||
$localize`Error deleting mail account: ${e.toString()}.`
|
||||
)
|
||||
},
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
editMailRule(rule: PaperlessMailRule) {
|
||||
const modal = this.modalService.open(MailRuleEditDialogComponent, {
|
||||
backdrop: 'static',
|
||||
size: 'xl',
|
||||
})
|
||||
modal.componentInstance.dialogMode = rule ? 'edit' : 'create'
|
||||
modal.componentInstance.object = rule
|
||||
modal.componentInstance.success
|
||||
.pipe(takeUntil(this.unsubscribeNotifier))
|
||||
.subscribe({
|
||||
next: (newMailRule) => {
|
||||
this.toastService.showInfo(
|
||||
$localize`Saved rule "${newMailRule.name}".`
|
||||
)
|
||||
this.mailRuleService.clearCache()
|
||||
this.mailRuleService.listAll().subscribe((r) => {
|
||||
this.mailRules = r.results
|
||||
|
||||
this.initialize()
|
||||
})
|
||||
},
|
||||
error: (e) => {
|
||||
this.toastService.showError(
|
||||
$localize`Error saving rule: ${e.toString()}.`
|
||||
)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
deleteMailRule(rule: PaperlessMailRule) {
|
||||
const modal = this.modalService.open(ConfirmDialogComponent, {
|
||||
backdrop: 'static',
|
||||
})
|
||||
modal.componentInstance.title = $localize`Confirm delete mail rule`
|
||||
modal.componentInstance.messageBold = $localize`This operation will permanently this mail rule.`
|
||||
modal.componentInstance.message = $localize`This operation cannot be undone.`
|
||||
modal.componentInstance.btnClass = 'btn-danger'
|
||||
modal.componentInstance.btnCaption = $localize`Proceed`
|
||||
modal.componentInstance.confirmClicked.subscribe(() => {
|
||||
modal.componentInstance.buttonsEnabled = false
|
||||
this.mailRuleService.delete(rule).subscribe({
|
||||
next: () => {
|
||||
modal.close()
|
||||
this.toastService.showInfo($localize`Deleted mail rule`)
|
||||
this.mailRuleService.clearCache()
|
||||
this.mailRuleService.listAll().subscribe((r) => {
|
||||
this.mailRules = r.results
|
||||
this.initialize()
|
||||
})
|
||||
},
|
||||
error: (e) => {
|
||||
this.toastService.showError(
|
||||
$localize`Error deleting mail rule: ${e.toString()}.`
|
||||
)
|
||||
},
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@@ -56,14 +56,14 @@
|
||||
<td class="overflow-auto">{{ task.task_file_name }}</td>
|
||||
<td class="d-none d-lg-table-cell">{{ task.date_created | customDate:'short' }}</td>
|
||||
<td class="d-none d-lg-table-cell" *ngIf="activeTab != 'started' && activeTab != 'queued'">
|
||||
<div *ngIf="task.result.length > 50" class="result" (click)="expandTask(task); $event.stopPropagation();"
|
||||
<div *ngIf="task.result?.length > 50" class="result" (click)="expandTask(task); $event.stopPropagation();"
|
||||
[ngbPopover]="resultPopover" popoverClass="shadow small mobile" triggers="mouseenter:mouseleave" container="body">
|
||||
<span class="small d-none d-md-inline-block font-monospace text-muted">{{ task.result | slice:0:50 }}…</span>
|
||||
</div>
|
||||
<span *ngIf="task.result.length <= 50" class="small d-none d-md-inline-block font-monospace text-muted">{{ task.result }}</span>
|
||||
<span *ngIf="task.result?.length <= 50" class="small d-none d-md-inline-block font-monospace text-muted">{{ task.result }}</span>
|
||||
<ng-template #resultPopover>
|
||||
<pre class="small mb-0">{{ task.result | slice:0:300 }}<ng-container *ngIf="task.result.length > 300">…</ng-container></pre>
|
||||
<ng-container *ngIf="task.result.length > 300"><br/><em>(<ng-container i18n>click for full output</ng-container>)</em></ng-container>
|
||||
<ng-container *ngIf="task.result?.length > 300"><br/><em>(<ng-container i18n>click for full output</ng-container>)</em></ng-container>
|
||||
</ng-template>
|
||||
</td>
|
||||
<td class="d-lg-none">
|
||||
|
23
src-ui/src/app/data/paperless-mail-account.ts
Normal file
23
src-ui/src/app/data/paperless-mail-account.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { ObjectWithId } from './object-with-id'
|
||||
|
||||
export enum IMAPSecurity {
|
||||
None = 1,
|
||||
SSL = 2,
|
||||
STARTTLS = 3,
|
||||
}
|
||||
|
||||
export interface PaperlessMailAccount extends ObjectWithId {
|
||||
name: string
|
||||
|
||||
imap_server: string
|
||||
|
||||
imap_port: number
|
||||
|
||||
imap_security: IMAPSecurity
|
||||
|
||||
username: string
|
||||
|
||||
password: string
|
||||
|
||||
character_set?: string
|
||||
}
|
60
src-ui/src/app/data/paperless-mail-rule.ts
Normal file
60
src-ui/src/app/data/paperless-mail-rule.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import { ObjectWithId } from './object-with-id'
|
||||
|
||||
export enum MailFilterAttachmentType {
|
||||
Attachments = 1,
|
||||
Everything = 2,
|
||||
}
|
||||
|
||||
export enum MailAction {
|
||||
Delete = 1,
|
||||
Move = 2,
|
||||
MarkRead = 3,
|
||||
Flag = 4,
|
||||
Tag = 5,
|
||||
}
|
||||
|
||||
export enum MailMetadataTitleOption {
|
||||
FromSubject = 1,
|
||||
FromFilename = 2,
|
||||
}
|
||||
|
||||
export enum MailMetadataCorrespondentOption {
|
||||
FromNothing = 1,
|
||||
FromEmail = 2,
|
||||
FromName = 3,
|
||||
FromCustom = 4,
|
||||
}
|
||||
|
||||
export interface PaperlessMailRule extends ObjectWithId {
|
||||
name: string
|
||||
|
||||
account: number // PaperlessMailAccount.id
|
||||
|
||||
folder: string
|
||||
|
||||
filter_from: string
|
||||
|
||||
filter_subject: string
|
||||
|
||||
filter_body: string
|
||||
|
||||
filter_attachment_filename: string
|
||||
|
||||
maximum_age: number
|
||||
|
||||
attachment_type: MailFilterAttachmentType
|
||||
|
||||
action: MailAction
|
||||
|
||||
action_parameter?: string
|
||||
|
||||
assign_title_from: MailMetadataTitleOption
|
||||
|
||||
assign_tags?: number[] // PaperlessTag.id
|
||||
|
||||
assign_document_type?: number // PaperlessDocumentType.id
|
||||
|
||||
assign_correspondent_from?: MailMetadataCorrespondentOption
|
||||
|
||||
assign_correspondent?: number // PaperlessCorrespondent.id
|
||||
}
|
@@ -25,9 +25,9 @@ export interface PaperlessTask extends ObjectWithId {
|
||||
|
||||
date_created: Date
|
||||
|
||||
done?: Date
|
||||
date_done?: Date
|
||||
|
||||
result: string
|
||||
result?: string
|
||||
|
||||
related_document?: number
|
||||
}
|
||||
|
@@ -1,7 +1,6 @@
|
||||
import { Injectable } from '@angular/core'
|
||||
import { DirtyCheckGuard } from '@ngneat/dirty-check-forms'
|
||||
import { Observable, Subject } from 'rxjs'
|
||||
import { map } from 'rxjs/operators'
|
||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||
import { ConfirmDialogComponent } from 'src/app/components/common/confirm-dialog/confirm-dialog.component'
|
||||
|
||||
|
51
src-ui/src/app/services/rest/mail-account.service.ts
Normal file
51
src-ui/src/app/services/rest/mail-account.service.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { combineLatest, Observable } from 'rxjs'
|
||||
import { tap } from 'rxjs/operators'
|
||||
import { PaperlessMailAccount } from 'src/app/data/paperless-mail-account'
|
||||
import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class MailAccountService extends AbstractPaperlessService<PaperlessMailAccount> {
|
||||
loading: boolean
|
||||
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'mail_accounts')
|
||||
}
|
||||
|
||||
private reload() {
|
||||
this.loading = true
|
||||
this.listAll().subscribe((r) => {
|
||||
this.mailAccounts = r.results
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
|
||||
private mailAccounts: PaperlessMailAccount[] = []
|
||||
|
||||
get allAccounts() {
|
||||
return this.mailAccounts
|
||||
}
|
||||
|
||||
create(o: PaperlessMailAccount) {
|
||||
return super.create(o).pipe(tap(() => this.reload()))
|
||||
}
|
||||
|
||||
update(o: PaperlessMailAccount) {
|
||||
return super.update(o).pipe(tap(() => this.reload()))
|
||||
}
|
||||
|
||||
patchMany(
|
||||
objects: PaperlessMailAccount[]
|
||||
): Observable<PaperlessMailAccount[]> {
|
||||
return combineLatest(objects.map((o) => super.patch(o))).pipe(
|
||||
tap(() => this.reload())
|
||||
)
|
||||
}
|
||||
|
||||
delete(o: PaperlessMailAccount) {
|
||||
return super.delete(o).pipe(tap(() => this.reload()))
|
||||
}
|
||||
}
|
49
src-ui/src/app/services/rest/mail-rule.service.ts
Normal file
49
src-ui/src/app/services/rest/mail-rule.service.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { combineLatest, Observable } from 'rxjs'
|
||||
import { tap } from 'rxjs/operators'
|
||||
import { PaperlessMailRule } from 'src/app/data/paperless-mail-rule'
|
||||
import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class MailRuleService extends AbstractPaperlessService<PaperlessMailRule> {
|
||||
loading: boolean
|
||||
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'mail_rules')
|
||||
}
|
||||
|
||||
private reload() {
|
||||
this.loading = true
|
||||
this.listAll().subscribe((r) => {
|
||||
this.mailRules = r.results
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
|
||||
private mailRules: PaperlessMailRule[] = []
|
||||
|
||||
get allRules() {
|
||||
return this.mailRules
|
||||
}
|
||||
|
||||
create(o: PaperlessMailRule) {
|
||||
return super.create(o).pipe(tap(() => this.reload()))
|
||||
}
|
||||
|
||||
update(o: PaperlessMailRule) {
|
||||
return super.update(o).pipe(tap(() => this.reload()))
|
||||
}
|
||||
|
||||
patchMany(objects: PaperlessMailRule[]): Observable<PaperlessMailRule[]> {
|
||||
return combineLatest(objects.map((o) => super.patch(o))).pipe(
|
||||
tap(() => this.reload())
|
||||
)
|
||||
}
|
||||
|
||||
delete(o: PaperlessMailRule) {
|
||||
return super.delete(o).pipe(tap(() => this.reload()))
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user