From e530750fc6e405bf3a37981d9da8dbb0d33c840a Mon Sep 17 00:00:00 2001 From: tooomm Date: Thu, 19 May 2022 22:05:43 +0200 Subject: [PATCH 001/348] update heading levels for v1.7.0 --- docs/changelog.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 9ba2f9aa0..9d35ee050 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -70,12 +70,12 @@ ## paperless-ngx 1.7.0 -Breaking Changes +### Breaking Changes - `PAPERLESS_URL` is now required when using a reverse proxy. See [\#674](https://github.com/paperless-ngx/paperless-ngx/pull/674). -Features +### Features - Allow setting more than one tag in mail rules [\@jonasc](https://github.com/jonasc) (\#270) @@ -107,7 +107,7 @@ Features - Parse dates when entered without separators [\@GruberViktor](https://github.com/gruberviktor) (\#250). -Bug Fixes +### Bug Fixes - add \"localhost\" to ALLOWED_HOSTS [\@gador](https://github.com/gador) (\#700). @@ -155,7 +155,7 @@ Bug Fixes - Fix: Include excluded items in dropdown count [\@shamoon](https://github.com/shamoon) (\#263). -Translation +### Translation - [\@miku323](https://github.com/miku323) contributed to Slovenian translation. @@ -168,7 +168,7 @@ Translation - [\@Prominence](https://github.com/Prominence) contributed to Belarusian translation. -Documentation +### Documentation - Fix: scanners table [\@qcasey](https://github.com/qcasey) (\#690). - Add [PAPERLESS\_URL]{.title-ref} env variable & CSRF var @@ -180,7 +180,7 @@ Documentation - Fix minor sphinx errors [\@shamoon](https://github.com/shamoon) (\#322). -Maintenance +### Maintenance - Add `PAPERLESS_URL` env variable & CSRF var [\@shamoon](https://github.com/shamoon) (\#674). From 163231d3076562da4079a13842b5e13cd7470611 Mon Sep 17 00:00:00 2001 From: tooomm Date: Thu, 19 May 2022 23:12:40 +0200 Subject: [PATCH 002/348] Link issues, capitalization and minor fixes --- docs/changelog.md | 174 +++++++++++++++++++++++----------------------- 1 file changed, 87 insertions(+), 87 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 9d35ee050..319592b5d 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -17,7 +17,7 @@ ### Bug Fixes - Feature / fix saved view \& sort field query params [\@shamoon](https://github.com/shamoon) ([\#881](https://github.com/paperless-ngx/paperless-ngx/pull/881)) -- mobile friendlier manage pages [\@shamoon](https://github.com/shamoon) ([\#873](https://github.com/paperless-ngx/paperless-ngx/pull/873)) +- Mobile friendlier manage pages [\@shamoon](https://github.com/shamoon) ([\#873](https://github.com/paperless-ngx/paperless-ngx/pull/873)) - Add timeout to healthcheck [\@shamoon](https://github.com/shamoon) ([\#880](https://github.com/paperless-ngx/paperless-ngx/pull/880)) - Always accept yyyy-mm-dd date inputs [\@shamoon](https://github.com/shamoon) ([\#864](https://github.com/paperless-ngx/paperless-ngx/pull/864)) - Fix local Docker image building [\@stumpylog](https://github.com/stumpylog) ([\#849](https://github.com/paperless-ngx/paperless-ngx/pull/849)) @@ -78,129 +78,129 @@ ### Features - Allow setting more than one tag in mail rules - [\@jonasc](https://github.com/jonasc) (\#270) -- global drag\'n\'drop [\@shamoon](https://github.com/shamoon) - (\#283). + [\@jonasc](https://github.com/jonasc) ([\#270](https://github.com/paperless-ngx/paperless-ngx/pull/270)) +- Global drag\'n\'drop [\@shamoon](https://github.com/shamoon) + ([\#283](https://github.com/paperless-ngx/paperless-ngx/pull/283)) - Fix: download buttons should disable while waiting - [\@shamoon](https://github.com/shamoon) (\#630). -- Update checker [\@shamoon](https://github.com/shamoon) (\#591). + [\@shamoon](https://github.com/shamoon) ([\#630](https://github.com/paperless-ngx/paperless-ngx/pull/630)) +- Update checker [\@shamoon](https://github.com/shamoon) ([\#591](https://github.com/paperless-ngx/paperless-ngx/pull/591)) - Show prompt on password-protected pdfs - [\@shamoon](https://github.com/shamoon) (\#564). + [\@shamoon](https://github.com/shamoon) ([\#564](https://github.com/paperless-ngx/paperless-ngx/pull/564)) - Filtering query params aka browser navigation for filtering - [\@shamoon](https://github.com/shamoon) (\#540). + [\@shamoon](https://github.com/shamoon) ([\#540](https://github.com/paperless-ngx/paperless-ngx/pull/540)) - Clickable tags in dashboard widgets - [\@shamoon](https://github.com/shamoon) (\#515). + [\@shamoon](https://github.com/shamoon) ([\#515](https://github.com/paperless-ngx/paperless-ngx/pull/515)) - Add bottom pagination [\@shamoon](https://github.com/shamoon) - (\#372). + ([\#372](https://github.com/paperless-ngx/paperless-ngx/pull/372)) - Feature barcode splitter [\@gador](https://github.com/gador) - (\#532). -- App loading screen [\@shamoon](https://github.com/shamoon) (\#298). + ([\#532](https://github.com/paperless-ngx/paperless-ngx/pull/532)) +- App loading screen [\@shamoon](https://github.com/shamoon) ([\#298](https://github.com/paperless-ngx/paperless-ngx/pull/298)) - Use progress bar for delayed buttons - [\@shamoon](https://github.com/shamoon) (\#415). + [\@shamoon](https://github.com/shamoon) ([\#415](https://github.com/paperless-ngx/paperless-ngx/pull/415)) - Add minimum length for documents text filter - [\@shamoon](https://github.com/shamoon) (\#401). + [\@shamoon](https://github.com/shamoon) ([\#401](https://github.com/paperless-ngx/paperless-ngx/pull/401)) - Added nav buttons in the document detail view - [\@GruberViktor](https://github.com/gruberviktor) (\#273). + [\@GruberViktor](https://github.com/gruberviktor) ([\#273](https://github.com/paperless-ngx/paperless-ngx/pull/273)) - Improve date keyboard input [\@shamoon](https://github.com/shamoon) - (\#253). -- Color theming [\@shamoon](https://github.com/shamoon) (\#243). + ([\#253](https://github.com/paperless-ngx/paperless-ngx/pull/253)) +- Color theming [\@shamoon](https://github.com/shamoon) ([\#243](https://github.com/paperless-ngx/paperless-ngx/pull/243)) - Parse dates when entered without separators - [\@GruberViktor](https://github.com/gruberviktor) (\#250). + [\@GruberViktor](https://github.com/gruberviktor) ([\#250](https://github.com/paperless-ngx/paperless-ngx/pull/250)) ### Bug Fixes -- add \"localhost\" to ALLOWED_HOSTS - [\@gador](https://github.com/gador) (\#700). -- Fix: scanners table [\@qcasey](https://github.com/qcasey) (\#690). +- Add \"localhost\" to ALLOWED_HOSTS + [\@gador](https://github.com/gador) ([\#700](https://github.com/paperless-ngx/paperless-ngx/pull/700)) +- Fix: scanners table [\@qcasey](https://github.com/qcasey) ([\#690](https://github.com/paperless-ngx/paperless-ngx/pull/690)) - Adds wait for file before consuming - [\@stumpylog](https://github.com/stumpylog) (\#483). + [\@stumpylog](https://github.com/stumpylog) ([\#483](https://github.com/paperless-ngx/paperless-ngx/pull/483)) - Fix: frontend document editing erases time data - [\@shamoon](https://github.com/shamoon) (\#654). + [\@shamoon](https://github.com/shamoon) ([\#654](https://github.com/paperless-ngx/paperless-ngx/pull/654)) - Increase length of SavedViewFilterRule - [\@stumpylog](https://github.com/stumpylog) (\#612). + [\@stumpylog](https://github.com/stumpylog) ([\#612](https://github.com/paperless-ngx/paperless-ngx/pull/612)) - Fixes attachment filename matching during mail fetching - [\@stumpylog](https://github.com/stumpylog) (\#680). + [\@stumpylog](https://github.com/stumpylog) ([\#680](https://github.com/paperless-ngx/paperless-ngx/pull/680)) - Add `PAPERLESS_URL` env variable & CSRF var - [\@shamoon](https://github.com/shamoon) (\#674). + [\@shamoon](https://github.com/shamoon) ([\#674](https://github.com/paperless-ngx/paperless-ngx/discussions/674)) - Fix: download buttons should disable while waiting - [\@shamoon](https://github.com/shamoon) (\#630). + [\@shamoon](https://github.com/shamoon) ([\#630](https://github.com/paperless-ngx/paperless-ngx/pull/630)) - Fixes downloaded filename, add more consumer ignore settings - [\@stumpylog](https://github.com/stumpylog) (\#599). + [\@stumpylog](https://github.com/stumpylog) ([\#599](https://github.com/paperless-ngx/paperless-ngx/pull/599)) - FIX BUG: case-sensitive matching was not possible - [\@danielBreitlauch](https://github.com/danielbreitlauch) (\#594). -- uses shutil.move instead of rename - [\@gador](https://github.com/gador) (\#617). + [\@danielBreitlauch](https://github.com/danielbreitlauch) ([\#594](https://github.com/paperless-ngx/paperless-ngx/pull/594)) +- Uses shutil.move instead of rename + [\@gador](https://github.com/gador) ([\#617](https://github.com/paperless-ngx/paperless-ngx/pull/617)) - Fix npm deps 01.02.22 2 [\@shamoon](https://github.com/shamoon) - (\#610). + ([\#610](https://github.com/paperless-ngx/paperless-ngx/discussions/610)) - Fix npm dependencies 01.02.22 - [\@shamoon](https://github.com/shamoon) (\#600). -- fix issue 416: implement PAPERLESS_OCR_MAX_IMAGE_PIXELS - [\@hacker-h](https://github.com/hacker-h) (\#441). -- fix: exclude cypress from build in Dockerfile - [\@FrankStrieter](https://github.com/FrankStrieter) (\#526). + [\@shamoon](https://github.com/shamoon) ([\#600](https://github.com/paperless-ngx/paperless-ngx/pull/600)) +- Fix issue 416: implement `PAPERLESS_OCR_MAX_IMAGE_PIXELS` + [\@hacker-h](https://github.com/hacker-h) ([\#441](https://github.com/paperless-ngx/paperless-ngx/pull/441)) +- Fix: exclude cypress from build in Dockerfile + [\@FrankStrieter](https://github.com/FrankStrieter) ([\#526](https://github.com/paperless-ngx/paperless-ngx/pull/526)) - Corrections to pass pre-commit hooks - [\@schnuffle](https://github.com/schnuffle) (\#454). + [\@schnuffle](https://github.com/schnuffle) ([\#454](https://github.com/paperless-ngx/paperless-ngx/pull/454)) - Fix 311 unable to click checkboxes in document list - [\@shamoon](https://github.com/shamoon) (\#313). + [\@shamoon](https://github.com/shamoon) ([\#313](https://github.com/paperless-ngx/paperless-ngx/pull/313)) - Fix imap tools bug [\@stumpylog](https://github.com/stumpylog) - (\#393). + ([\#393](https://github.com/paperless-ngx/paperless-ngx/pull/393)) - Fix filterable dropdown buttons arent translated - [\@shamoon](https://github.com/shamoon) (\#366). + [\@shamoon](https://github.com/shamoon) ([\#366](https://github.com/paperless-ngx/paperless-ngx/pull/366)) - Fix 224: \"Auto-detected date is day before receipt date\" - [\@a17t](https://github.com/a17t) (\#246). + [\@a17t](https://github.com/a17t) ([\#246](https://github.com/paperless-ngx/paperless-ngx/pull/246)) - Fix minor sphinx errors [\@shamoon](https://github.com/shamoon) - (\#322). + ([\#322](https://github.com/paperless-ngx/paperless-ngx/pull/322)) - Fix page links hidden [\@shamoon](https://github.com/shamoon) - (\#314). + ([\#314](https://github.com/paperless-ngx/paperless-ngx/pull/314)) - Fix: Include excluded items in dropdown count - [\@shamoon](https://github.com/shamoon) (\#263). + [\@shamoon](https://github.com/shamoon) ([\#263](https://github.com/paperless-ngx/paperless-ngx/pull/263)) ### Translation - [\@miku323](https://github.com/miku323) contributed to Slovenian - translation. + translation - [\@FaintGhost](https://github.com/FaintGhost) contributed to Chinese - Simplified translation. + Simplified translation - [\@DarkoBG79](https://github.com/DarkoBG79) contributed to Serbian - translation. + translation - [Kemal Secer](https://crowdin.com/profile/kemal.secer) contributed - to Turkish translation. + to Turkish translation - [\@Prominence](https://github.com/Prominence) contributed to - Belarusian translation. + Belarusian translation ### Documentation -- Fix: scanners table [\@qcasey](https://github.com/qcasey) (\#690). -- Add [PAPERLESS\_URL]{.title-ref} env variable & CSRF var - [\@shamoon](https://github.com/shamoon) (\#674). +- Fix: scanners table [\@qcasey](https://github.com/qcasey) ([\#690](https://github.com/paperless-ngx/paperless-ngx/pull/690)) +- Add `PAPERLESS_URL` env variable & CSRF var + [\@shamoon](https://github.com/shamoon) ([\#674](https://github.com/paperless-ngx/paperless-ngx/pull/674)) - Fixes downloaded filename, add more consumer ignore settings - [\@stumpylog](https://github.com/stumpylog) (\#599). -- fix issue 416: implement `PAPERLESS_OCR_MAX_IMAGE_PIXELS` - [\@hacker-h](https://github.com/hacker-h) (\#441). + [\@stumpylog](https://github.com/stumpylog) ([\#599](https://github.com/paperless-ngx/paperless-ngx/pull/599)) +- Fix issue 416: implement `PAPERLESS_OCR_MAX_IMAGE_PIXELS` + [\@hacker-h](https://github.com/hacker-h) ([\#441](https://github.com/paperless-ngx/paperless-ngx/pull/441)) - Fix minor sphinx errors [\@shamoon](https://github.com/shamoon) - (\#322). + ([\#322](https://github.com/paperless-ngx/paperless-ngx/pull/322)) ### Maintenance - Add `PAPERLESS_URL` env variable & CSRF var - [\@shamoon](https://github.com/shamoon) (\#674). + [\@shamoon](https://github.com/shamoon) ([\#674](https://github.com/paperless-ngx/paperless-ngx/pull/674)) - Chore: Implement release-drafter action for Changelogs - [\@qcasey](https://github.com/qcasey) (\#669). -- Chore: Add CODEOWNERS [\@qcasey](https://github.com/qcasey) (\#667). + [\@qcasey](https://github.com/qcasey) ([\#669](https://github.com/paperless-ngx/paperless-ngx/pull/669)) +- Chore: Add CODEOWNERS [\@qcasey](https://github.com/qcasey) ([\#667](https://github.com/paperless-ngx/paperless-ngx/pull/667)) - Support docker-compose v2 in install - [\@stumpylog](https://github.com/stumpylog) (\#611). + [\@stumpylog](https://github.com/stumpylog) ([\#611](https://github.com/paperless-ngx/paperless-ngx/pull/611)) - Add Belarusian localization [\@shamoon](https://github.com/shamoon) - (\#588). + ([\#588](https://github.com/paperless-ngx/paperless-ngx/pull/588)) - Add Turkish localization [\@shamoon](https://github.com/shamoon) - (\#536). + ([\#536](https://github.com/paperless-ngx/paperless-ngx/pull/536)) - Add Serbian localization [\@shamoon](https://github.com/shamoon) - (\#504). + ([\#504](https://github.com/paperless-ngx/paperless-ngx/pull/504)) - Create PULL_REQUEST_TEMPLATE.md - [\@shamoon](https://github.com/shamoon) (\#304). + [\@shamoon](https://github.com/shamoon) ([\#304](https://github.com/paperless-ngx/paperless-ngx/pull/304)) - Add Chinese localization [\@shamoon](https://github.com/shamoon) - (\#247). + ([\#247](https://github.com/paperless-ngx/paperless-ngx/pull/247)) - Add Slovenian language for frontend - [\@shamoon](https://github.com/shamoon) (\#315). + [\@shamoon](https://github.com/shamoon) ([\#315](https://github.com/paperless-ngx/paperless-ngx/pull/315)) ## paperless-ngx 1.6.0 @@ -216,46 +216,46 @@ include: - Updated Python and Angular dependencies. - Dropped support for Python 3.7. - Dropped support for Ansible playbooks (thanks - [\@slankes](https://github.com/slankes) \#109). If someone would - like to continue supporting them, please see the [ansible + [\@slankes](https://github.com/slankes) [\#109](https://github.com/paperless-ngx/paperless-ngx/pull/109)). If someone would + like to continue supporting them, please see our [ansible repo](https://github.com/paperless-ngx/paperless-ngx-ansible). - Python code is now required to use Black formatting (thanks - [\@kpj](https://github.com/kpj) \#168). + [\@kpj](https://github.com/kpj) [\#168](https://github.com/paperless-ngx/paperless-ngx/pull/168)). - [\@tribut](https://github.com/tribut) added support for a custom SSO - logout redirect (jonaswinkler\#1258). See + logout redirect ([jonaswinkler\#1258](https://github.com/jonaswinkler/paperless-ng/pull/1258)). See `PAPERLESS_LOGOUT_REDIRECT_URL`. - [\@shamoon](https://github.com/shamoon) added a loading indicator - when document list is reloading (jonaswinkler\#1297). + when document list is reloading ([jonaswinkler\#1297](https://github.com/jonaswinkler/paperless-ng/pull/1297)). - [\@shamoon](https://github.com/shamoon) improved the PDF viewer on - mobile (\#2). + mobile ([\#2](https://github.com/paperless-ngx/paperless-ngx/pull/2)). - [\@shamoon](https://github.com/shamoon) added \'any\' / \'all\' and - \'not\' filtering with tags (\#10). + \'not\' filtering with tags ([\#10](https://github.com/paperless-ngx/paperless-ngx/pull/10)). - [\@shamoon](https://github.com/shamoon) added warnings for unsaved - changes, with smart edit buttons (\#13). + changes, with smart edit buttons ([\#13](https://github.com/paperless-ngx/paperless-ngx/pull/13)). - [\@benjaminfrank](https://github.com/benjaminfrank) enabled a - non-root access to port 80 via systemd (\#18). + non-root access to port 80 via systemd ([\#18](https://github.com/paperless-ngx/paperless-ngx/pull/18)). - [\@tribut](https://github.com/tribut) added simple \"delete to - trash\" functionality (\#24). See `PAPERLESS_TRASH_DIR`. + trash\" functionality ([\#24](https://github.com/paperless-ngx/paperless-ngx/pull/24)). See `PAPERLESS_TRASH_DIR`. - [\@amenk](https://github.com/amenk) fixed the search box overlay - menu on mobile (\#32). + menu on mobile ([\#32](https://github.com/paperless-ngx/paperless-ngx/pull/32)). - [\@dblitt](https://github.com/dblitt) updated the login form to not - auto-capitalize usernames (\#36). + auto-capitalize usernames ([\#36](https://github.com/paperless-ngx/paperless-ngx/pull/36)). - [\@evilsidekick293](https://github.com/evilsidekick293) made the - worker timeout configurable (\#37). See `PAPERLESS_WORKER_TIMEOUT`. + worker timeout configurable ([\#37](https://github.com/paperless-ngx/paperless-ngx/pull/37)). See `PAPERLESS_WORKER_TIMEOUT`. - [\@Nicarim](https://github.com/Nicarim) fixed downloads of UTF-8 - formatted documents in Firefox (\#56). + formatted documents in Firefox ([\#56](https://github.com/paperless-ngx/paperless-ngx/pull/56)). - [\@mweimerskirch](https://github.com/mweimerskirch) sorted the - language dropdown by locale (\#78). + language dropdown by locale ([\#78](https://github.com/paperless-ngx/paperless-ngx/issues/78)). - [\@mweimerskirch](https://github.com/mweimerskirch) enabled the - Czech (\#83) and Danish (\#84) translations. + Czech ([\#83](https://github.com/paperless-ngx/paperless-ngx/pull/83)) and Danish ([\#84](https://github.com/paperless-ngx/paperless-ngx/pull/84)) translations. - [\@cschmatzler](https://github.com/cschmatzler) enabled specifying - the webserver port (\#124). See `PAPERLESS_PORT`. + the webserver port ([\#124](https://github.com/paperless-ngx/paperless-ngx/pull/124)). See `PAPERLESS_PORT`. - [\@muellermartin](https://github.com/muellermartin) fixed an error - when uploading transparent PNGs (\#133). + when uploading transparent PNGs ([\#133](https://github.com/paperless-ngx/paperless-ngx/pull/133)). - [\@shamoon](https://github.com/shamoon) created a slick new logo - (\#165). + ([\#165](https://github.com/paperless-ngx/paperless-ngx/pull/165)). - [\@tim-vogel](https://github.com/tim-vogel) fixed exports missing - groups (\#193). + groups ([\#193](https://github.com/paperless-ngx/paperless-ngx/pull/193)). Known issues: From e568b3000e9304c1aa1febfd6ab6749fc59e09a3 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 7 Jun 2022 15:28:49 -0700 Subject: [PATCH 003/348] Add lsio to issue form --- .github/ISSUE_TEMPLATE/bug-report.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 3568c9621..556cef93d 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -63,9 +63,11 @@ body: attributes: label: Installation method options: - - Docker + - Docker - official image + - Docker - linuxserver.io image - Bare metal - Other (please describe above) + description: Note there are significant differences from the official image and linuxserver.io, please check if your issue is specific to the third-party image. validations: required: true - type: input From 26b12512b1fd25dba7e1180bcf1dbf70b66b8dba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20St=C3=BCckler?= Date: Mon, 20 Jun 2022 12:06:54 +0200 Subject: [PATCH 004/348] fix: update scanner capability The Brother ADS-A1700W does indeed support SFTP. I've just bought it, and set it up like this. --- docs/scanners.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scanners.rst b/docs/scanners.rst index e8685fadc..0e89fbfd1 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -18,7 +18,7 @@ Physical scanners +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | | | FTP | SFTP | NFS | SMB | SMTP | API [1]_ | | +=========+===================+=====+======+=====+==========+======+==========+================+ -| Brother | `ADS-1700W`_ | yes | | | yes | yes | |`holzhannes`_ | +| Brother | `ADS-1700W`_ | yes | yes | | yes | yes | |`holzhannes`_ | +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | Brother | `ADS-1600W`_ | yes | | | yes | yes | |`holzhannes`_ | +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ From 08ae3f8771a64bba05f2eac99784b54bde22e29c Mon Sep 17 00:00:00 2001 From: ziprandom Date: Tue, 21 Jun 2022 15:54:51 +0000 Subject: [PATCH 005/348] use env variables in pre-|post-consume scripts + instead of positional arguments because it's easier to use in the shell script and easier to read in the python code. --- docs/advanced_usage.rst | 26 ++++++++++---------- scripts/post-consumption-example.sh | 9 ------- src/documents/consumer.py | 37 +++++++++++++++++++---------- 3 files changed, 38 insertions(+), 34 deletions(-) diff --git a/docs/advanced_usage.rst b/docs/advanced_usage.rst index 6449c478b..bc194ce5a 100644 --- a/docs/advanced_usage.rst +++ b/docs/advanced_usage.rst @@ -121,10 +121,10 @@ Pre-consumption script ====================== Executed after the consumer sees a new document in the consumption folder, but -before any processing of the document is performed. This script receives exactly -one argument: +before any processing of the document is performed. This script can access the +following relevant environment variables set: -* Document file name +* ``DOCUMENT_SOURCE_PATH`` A simple but common example for this would be creating a simple script like this: @@ -134,7 +134,7 @@ this: .. code:: bash #!/usr/bin/env bash - pdf2pdfocr.py -i ${1} + pdf2pdfocr.py -i ${DOCUMENT_SOURCE_PATH} ``/etc/paperless.conf`` @@ -157,16 +157,16 @@ Post-consumption script ======================= Executed after the consumer has successfully processed a document and has moved it -into paperless. It receives the following arguments: +into paperless. It receives the following environment variables: -* Document id -* Generated file name -* Source path -* Thumbnail path -* Download URL -* Thumbnail URL -* Correspondent -* Tags +* ``DOCUMENT_ID`` +* ``DOCUMENT_FILE_NAME`` +* ``DOCUMENT_SOURCE_PATH`` +* ``DOCUMENT_THUMBNAIL_PATH`` +* ``DOCUMENT_DOWNLOAD_URL`` +* ``DOCUMENT_THUMBNAIL_URL`` +* ``DOCUMENT_CORRESPONDENT`` +* ``DOCUMENT_TAGS`` The script can be in any language, but for a simple shell script example, you can take a look at `post-consumption-example.sh`_ in this project. diff --git a/scripts/post-consumption-example.sh b/scripts/post-consumption-example.sh index 6edd3e158..b4c40090c 100755 --- a/scripts/post-consumption-example.sh +++ b/scripts/post-consumption-example.sh @@ -1,14 +1,5 @@ #!/usr/bin/env bash -DOCUMENT_ID=${1} -DOCUMENT_FILE_NAME=${2} -DOCUMENT_SOURCE_PATH=${3} -DOCUMENT_THUMBNAIL_PATH=${4} -DOCUMENT_DOWNLOAD_URL=${5} -DOCUMENT_THUMBNAIL_URL=${6} -DOCUMENT_CORRESPONDENT=${7} -DOCUMENT_TAGS=${8} - echo " A document with an id of ${DOCUMENT_ID} was just consumed. I know the diff --git a/src/documents/consumer.py b/src/documents/consumer.py index e5794ce4f..42666e107 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -134,8 +134,11 @@ class Consumer(LoggingMixin): self.log("info", f"Executing pre-consume script {settings.PRE_CONSUME_SCRIPT}") + script_env = os.environ.copy() + script_env["DOCUMENT_SOURCE_PATH"] = os.path.normpath(self.path) + try: - Popen((settings.PRE_CONSUME_SCRIPT, self.path)).wait() + Popen(settings.PRE_CONSUME_SCRIPT, env=script_env).wait() except Exception as e: self._fail( MESSAGE_PRE_CONSUME_SCRIPT_ERROR, @@ -159,19 +162,29 @@ class Consumer(LoggingMixin): f"Executing post-consume script {settings.POST_CONSUME_SCRIPT}", ) + script_env = os.environ.copy() + + script_env["DOCUMENT_ID"] = str(document.pk) + script_env["DOCUMENT_FILE_NAME"] = document.get_public_filename() + script_env["DOCUMENT_SOURCE_PATH"] = os.path.normpath(document.source_path) + script_env["DOCUMENT_THUMBNAIL_PATH"] = os.path.normpath( + document.thumbnail_path + ) + script_env["DOCUMENT_DOWNLOAD_URL"] = reverse( + "document-download", kwargs={"pk": document.pk} + ) + script_env["DOCUMENT_THUMBNAIL_URL"] = reverse( + "document-thumb", kwargs={"pk": document.pk} + ) + script_env["DOCUMENT_CORRESPONDENT"] = str(document.correspondent) + script_env["DOCUMENT_TAGS"] = str( + ",".join(document.tags.all().values_list("name", flat=True)) + ) + try: Popen( - ( - settings.POST_CONSUME_SCRIPT, - str(document.pk), - document.get_public_filename(), - os.path.normpath(document.source_path), - os.path.normpath(document.thumbnail_path), - reverse("document-download", kwargs={"pk": document.pk}), - reverse("document-thumb", kwargs={"pk": document.pk}), - str(document.correspondent), - str(",".join(document.tags.all().values_list("name", flat=True))), - ), + settings.POST_CONSUME_SCRIPT, + env=script_env, ).wait() except Exception as e: self._fail( From 9424b763cafc94515dd2c04e34948a491216a901 Mon Sep 17 00:00:00 2001 From: ziprandom Date: Tue, 21 Jun 2022 16:02:50 +0000 Subject: [PATCH 006/348] POST_CONSUME_SCRIPT: add document dates to env --- docs/advanced_usage.rst | 3 +++ scripts/post-consumption-example.sh | 3 +++ src/documents/consumer.py | 3 +++ 3 files changed, 9 insertions(+) diff --git a/docs/advanced_usage.rst b/docs/advanced_usage.rst index bc194ce5a..d32d633b9 100644 --- a/docs/advanced_usage.rst +++ b/docs/advanced_usage.rst @@ -161,6 +161,9 @@ into paperless. It receives the following environment variables: * ``DOCUMENT_ID`` * ``DOCUMENT_FILE_NAME`` +* ``DOCUMENT_CREATED`` +* ``DOCUMENT_MODIFIED`` +* ``DOCUMENT_ADDED`` * ``DOCUMENT_SOURCE_PATH`` * ``DOCUMENT_THUMBNAIL_PATH`` * ``DOCUMENT_DOWNLOAD_URL`` diff --git a/scripts/post-consumption-example.sh b/scripts/post-consumption-example.sh index b4c40090c..81bfa3d48 100755 --- a/scripts/post-consumption-example.sh +++ b/scripts/post-consumption-example.sh @@ -7,6 +7,9 @@ following additional information about it: * Generated File Name: ${DOCUMENT_FILE_NAME} * Source Path: ${DOCUMENT_SOURCE_PATH} +* Created: ${DOCUMENT_CREATED} +* Added: ${DOCUMENT_ADDED} +* Modified: ${DOCUMENT_MODIFIED} * Thumbnail Path: ${DOCUMENT_THUMBNAIL_PATH} * Download URL: ${DOCUMENT_DOWNLOAD_URL} * Thumbnail URL: ${DOCUMENT_THUMBNAIL_URL} diff --git a/src/documents/consumer.py b/src/documents/consumer.py index 42666e107..474f9df8a 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -165,6 +165,9 @@ class Consumer(LoggingMixin): script_env = os.environ.copy() script_env["DOCUMENT_ID"] = str(document.pk) + script_env["DOCUMENT_CREATED"] = str(document.created) + script_env["DOCUMENT_MODIFIED"] = str(document.modified) + script_env["DOCUMENT_ADDED"] = str(document.added) script_env["DOCUMENT_FILE_NAME"] = document.get_public_filename() script_env["DOCUMENT_SOURCE_PATH"] = os.path.normpath(document.source_path) script_env["DOCUMENT_THUMBNAIL_PATH"] = os.path.normpath( From f20254217f7e6bb88750de0eaee9e75faf040551 Mon Sep 17 00:00:00 2001 From: ziprandom Date: Wed, 22 Jun 2022 13:58:50 +0000 Subject: [PATCH 007/348] POST_CONSUME_SCRIPT: add documents archive_path --- docs/advanced_usage.rst | 1 + scripts/post-consumption-example.sh | 1 + src/documents/consumer.py | 1 + 3 files changed, 3 insertions(+) diff --git a/docs/advanced_usage.rst b/docs/advanced_usage.rst index d32d633b9..ba5b3cbaa 100644 --- a/docs/advanced_usage.rst +++ b/docs/advanced_usage.rst @@ -165,6 +165,7 @@ into paperless. It receives the following environment variables: * ``DOCUMENT_MODIFIED`` * ``DOCUMENT_ADDED`` * ``DOCUMENT_SOURCE_PATH`` +* ``DOCUMENT_ARCHIVE_PATH`` * ``DOCUMENT_THUMBNAIL_PATH`` * ``DOCUMENT_DOWNLOAD_URL`` * ``DOCUMENT_THUMBNAIL_URL`` diff --git a/scripts/post-consumption-example.sh b/scripts/post-consumption-example.sh index 81bfa3d48..6e42b1bc3 100755 --- a/scripts/post-consumption-example.sh +++ b/scripts/post-consumption-example.sh @@ -6,6 +6,7 @@ A document with an id of ${DOCUMENT_ID} was just consumed. I know the following additional information about it: * Generated File Name: ${DOCUMENT_FILE_NAME} +* Archive Path: ${DOCUMENT_ARCHIVE_PATH} * Source Path: ${DOCUMENT_SOURCE_PATH} * Created: ${DOCUMENT_CREATED} * Added: ${DOCUMENT_ADDED} diff --git a/src/documents/consumer.py b/src/documents/consumer.py index 474f9df8a..5673d159a 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -170,6 +170,7 @@ class Consumer(LoggingMixin): script_env["DOCUMENT_ADDED"] = str(document.added) script_env["DOCUMENT_FILE_NAME"] = document.get_public_filename() script_env["DOCUMENT_SOURCE_PATH"] = os.path.normpath(document.source_path) + script_env["DOCUMENT_ARCHIVE_PATH"] = os.path.normpath(str(document.archive_path)) script_env["DOCUMENT_THUMBNAIL_PATH"] = os.path.normpath( document.thumbnail_path ) From d8cda7fc1b878c43ae10733f6b807c13d50239e9 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 2 Jul 2022 17:51:39 -0700 Subject: [PATCH 008/348] Use any-of-labels for stalebot [ci skip] --- .github/stale.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/stale.yml b/.github/stale.yml index ef287a3fd..91ab0e8ae 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -2,8 +2,7 @@ daysUntilStale: 30 # Number of days of inactivity before a stale issue is closed daysUntilClose: 7 -onlyLabels: - - unconfirmed +any-of-labels: unconfirmed,cant-reproduce,stale # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable From 8efb97ef4ebfad8690c32ac9e4ae0b328b1c13e1 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 2 Jul 2022 19:06:32 -0700 Subject: [PATCH 009/348] Update stale.yml [ci skip] --- .github/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index 91ab0e8ae..c15e06f90 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -2,7 +2,7 @@ daysUntilStale: 30 # Number of days of inactivity before a stale issue is closed daysUntilClose: 7 -any-of-labels: unconfirmed,cant-reproduce,stale +any-of-issue-labels: unconfirmed,cant-reproduce,stale # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable From edaaedae36ee2bb99859b1ca22455b3b7381d0bd Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Mon, 11 Jul 2022 13:54:04 -0700 Subject: [PATCH 010/348] Reduces webserver and task worker count to 1 by default --- docs/configuration.rst | 6 ++--- gunicorn.conf.py | 2 +- src/documents/tests/test_settings.py | 35 ---------------------------- src/paperless/settings.py | 22 +---------------- src/paperless/tests/test_settings.py | 26 +++++++++++++++++++++ 5 files changed, 31 insertions(+), 60 deletions(-) delete mode 100644 src/documents/tests/test_settings.py diff --git a/docs/configuration.rst b/docs/configuration.rst index a5db55927..c4203472c 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -536,6 +536,8 @@ PAPERLESS_TASK_WORKERS= maintain the automatic matching algorithm, check emails, consume documents, etc. This variable specifies how many things it will do in parallel. + Defaults to 1 + PAPERLESS_THREADS_PER_WORKER= Furthermore, paperless uses multiple threads when consuming documents to @@ -797,9 +799,7 @@ PAPERLESS_WEBSERVER_WORKERS= also loads the entire application into memory separately, so increasing this value will increase RAM usage. - Consider configuring this to 1 on low power devices with limited amount of RAM. - - Defaults to 2. + Defaults to 1. PAPERLESS_PORT= The port number the webserver will listen on inside the container. There are diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 9c0e5be78..7193815b3 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -1,7 +1,7 @@ import os bind = f'[::]:{os.getenv("PAPERLESS_PORT", 8000)}' -workers = int(os.getenv("PAPERLESS_WEBSERVER_WORKERS", 2)) +workers = int(os.getenv("PAPERLESS_WEBSERVER_WORKERS", 1)) worker_class = "paperless.workers.ConfigurableWorker" timeout = 120 diff --git a/src/documents/tests/test_settings.py b/src/documents/tests/test_settings.py deleted file mode 100644 index 9b8edab27..000000000 --- a/src/documents/tests/test_settings.py +++ /dev/null @@ -1,35 +0,0 @@ -import logging -from unittest import mock - -from django.test import TestCase -from paperless.settings import default_task_workers -from paperless.settings import default_threads_per_worker - - -class TestSettings(TestCase): - @mock.patch("paperless.settings.multiprocessing.cpu_count") - def test_single_core(self, cpu_count): - cpu_count.return_value = 1 - - default_workers = default_task_workers() - - default_threads = default_threads_per_worker(default_workers) - - self.assertEqual(default_workers, 1) - self.assertEqual(default_threads, 1) - - def test_workers_threads(self): - for i in range(1, 64): - with mock.patch( - "paperless.settings.multiprocessing.cpu_count", - ) as cpu_count: - cpu_count.return_value = i - - default_workers = default_task_workers() - - default_threads = default_threads_per_worker(default_workers) - - self.assertTrue(default_workers >= 1) - self.assertTrue(default_threads >= 1) - - self.assertTrue(default_workers * default_threads <= i, f"{i}") diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 8c8aa8482..bfb9507ba 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -425,27 +425,7 @@ LOGGING = { # Task queue # ############################################################################### - -# Sensible defaults for multitasking: -# use a fair balance between worker processes and threads epr worker so that -# both consuming many documents in parallel and consuming large documents is -# reasonably fast. -# Favors threads per worker on smaller systems and never exceeds cpu_count() -# in total. - - -def default_task_workers() -> int: - # always leave one core open - available_cores = max(multiprocessing.cpu_count(), 1) - try: - if available_cores < 4: - return available_cores - return max(math.floor(math.sqrt(available_cores)), 1) - except NotImplementedError: - return 1 - - -TASK_WORKERS = __get_int("PAPERLESS_TASK_WORKERS", default_task_workers()) +TASK_WORKERS = __get_int("PAPERLESS_TASK_WORKERS", 1) PAPERLESS_WORKER_TIMEOUT: Final[int] = __get_int("PAPERLESS_WORKER_TIMEOUT", 1800) diff --git a/src/paperless/tests/test_settings.py b/src/paperless/tests/test_settings.py index 57481df5b..fed4079e2 100644 --- a/src/paperless/tests/test_settings.py +++ b/src/paperless/tests/test_settings.py @@ -1,7 +1,9 @@ import datetime +from unittest import mock from unittest import TestCase from paperless.settings import _parse_ignore_dates +from paperless.settings import default_threads_per_worker class TestIgnoreDateParsing(TestCase): @@ -56,3 +58,27 @@ class TestIgnoreDateParsing(TestCase): ] self._parse_checker(test_cases) + + def test_workers_threads(self): + """ + GIVEN: + - Certain CPU counts + WHEN: + - Threads per worker is calculated + THEN: + - Threads per worker less than or equal to CPU count + - At least 1 thread per worker + """ + default_workers = 1 + + for i in range(1, 64): + with mock.patch( + "paperless.settings.multiprocessing.cpu_count", + ) as cpu_count: + cpu_count.return_value = i + + default_threads = default_threads_per_worker(default_workers) + + self.assertGreaterEqual(default_threads, 1) + + self.assertLessEqual(default_workers * default_threads, i) From 678bcb171af44abca9df2d8e187b46ad24b56932 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Thu, 14 Jul 2022 08:45:51 -0700 Subject: [PATCH 011/348] Re-adds the script arguments --- src/documents/consumer.py | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/src/documents/consumer.py b/src/documents/consumer.py index 5673d159a..fdf7b2f6e 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -134,11 +134,19 @@ class Consumer(LoggingMixin): self.log("info", f"Executing pre-consume script {settings.PRE_CONSUME_SCRIPT}") + filepath_arg = os.path.normpath(self.path) + script_env = os.environ.copy() - script_env["DOCUMENT_SOURCE_PATH"] = os.path.normpath(self.path) + script_env["DOCUMENT_SOURCE_PATH"] = filepath_arg try: - Popen(settings.PRE_CONSUME_SCRIPT, env=script_env).wait() + Popen( + ( + settings.PRE_CONSUME_SCRIPT, + filepath_arg, + ), + env=script_env, + ).wait() except Exception as e: self._fail( MESSAGE_PRE_CONSUME_SCRIPT_ERROR, @@ -170,24 +178,38 @@ class Consumer(LoggingMixin): script_env["DOCUMENT_ADDED"] = str(document.added) script_env["DOCUMENT_FILE_NAME"] = document.get_public_filename() script_env["DOCUMENT_SOURCE_PATH"] = os.path.normpath(document.source_path) - script_env["DOCUMENT_ARCHIVE_PATH"] = os.path.normpath(str(document.archive_path)) + script_env["DOCUMENT_ARCHIVE_PATH"] = os.path.normpath( + str(document.archive_path), + ) script_env["DOCUMENT_THUMBNAIL_PATH"] = os.path.normpath( - document.thumbnail_path + document.thumbnail_path, ) script_env["DOCUMENT_DOWNLOAD_URL"] = reverse( - "document-download", kwargs={"pk": document.pk} + "document-download", + kwargs={"pk": document.pk}, ) script_env["DOCUMENT_THUMBNAIL_URL"] = reverse( - "document-thumb", kwargs={"pk": document.pk} + "document-thumb", + kwargs={"pk": document.pk}, ) script_env["DOCUMENT_CORRESPONDENT"] = str(document.correspondent) script_env["DOCUMENT_TAGS"] = str( - ",".join(document.tags.all().values_list("name", flat=True)) + ",".join(document.tags.all().values_list("name", flat=True)), ) try: Popen( - settings.POST_CONSUME_SCRIPT, + ( + settings.POST_CONSUME_SCRIPT, + str(document.pk), + document.get_public_filename(), + os.path.normpath(document.source_path), + os.path.normpath(document.thumbnail_path), + reverse("document-download", kwargs={"pk": document.pk}), + reverse("document-thumb", kwargs={"pk": document.pk}), + str(document.correspondent), + str(",".join(document.tags.all().values_list("name", flat=True))), + ), env=script_env, ).wait() except Exception as e: From ca7a6fe1f1f466721366e234386685b48861e69f Mon Sep 17 00:00:00 2001 From: "Paperless-ngx Translation Bot [bot]" <99855517+paperless-l10n@users.noreply.github.com> Date: Thu, 14 Jul 2022 19:37:51 -0700 Subject: [PATCH 012/348] New Crowdin updates (#1234) * New translations messages.xlf (Spanish) [ci skip] * New translations messages.xlf (Spanish) [ci skip] --- src-ui/src/locale/messages.es_ES.xlf | 206 +++++++++++++-------------- 1 file changed, 103 insertions(+), 103 deletions(-) diff --git a/src-ui/src/locale/messages.es_ES.xlf b/src-ui/src/locale/messages.es_ES.xlf index d4bc50d7e..6d4938fca 100644 --- a/src-ui/src/locale/messages.es_ES.xlf +++ b/src-ui/src/locale/messages.es_ES.xlf @@ -195,7 +195,7 @@ node_modules/src/timepicker/timepicker.ts 218,219 - Increment hours + Incrementar horas Decrement hours @@ -203,7 +203,7 @@ node_modules/src/timepicker/timepicker.ts 240,243 - Decrement hours + Decrementar horas Increment minutes @@ -211,7 +211,7 @@ node_modules/src/timepicker/timepicker.ts 268 - Increment minutes + Incrementar minutos Decrement minutes @@ -219,7 +219,7 @@ node_modules/src/timepicker/timepicker.ts 288,289 - Decrement minutes + Decrementar minutos SS @@ -235,7 +235,7 @@ node_modules/src/timepicker/timepicker.ts 295 - Seconds + Segundos Increment seconds @@ -243,7 +243,7 @@ node_modules/src/timepicker/timepicker.ts 295 - Increment seconds + Incrementar segundos Decrement seconds @@ -251,7 +251,7 @@ node_modules/src/timepicker/timepicker.ts 295 - Decrement seconds + Decrementar segundos @@ -277,7 +277,7 @@ node_modules/src/toast/toast.ts 70,71 - Close + Cerrar Drop files to begin upload @@ -285,7 +285,7 @@ src/app/app.component.html 7 - Drop files to begin upload + Arrastra archivos para subirlos Document added @@ -345,7 +345,7 @@ src/app/app.component.ts 146 - Initiating upload... + Iniciando subida... Paperless-ngx @@ -370,7 +370,7 @@ src/app/components/app-frame/app-frame.component.html 34 - Logged in as + Sesión iniciada como Settings @@ -514,7 +514,7 @@ src/app/components/app-frame/app-frame.component.html 141 - Storage paths + Rutas de almacenamiento File Tasks @@ -586,7 +586,7 @@ src/app/components/app-frame/app-frame.component.html 205 - is available. + está disponible. Click to view. @@ -594,7 +594,7 @@ src/app/components/app-frame/app-frame.component.html 205 - Click to view. + Haz clic para ver. Checking for updates is disabled. @@ -602,7 +602,7 @@ src/app/components/app-frame/app-frame.component.html 208 - Checking for updates is disabled. + La comprobación de actualizaciones está desactivada. Click for more information. @@ -610,7 +610,7 @@ src/app/components/app-frame/app-frame.component.html 208 - Click for more information. + Pulse para más información. Update available @@ -618,7 +618,7 @@ src/app/components/app-frame/app-frame.component.html 216 - Update available + Actualización disponible Cancel @@ -626,7 +626,7 @@ src/app/components/common/confirm-dialog/confirm-dialog.component.html 12 - Cancel + Cancelar Confirmation @@ -970,7 +970,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html 10 - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. + Tenga en cuenta que editar una ruta no aplica los cambios a los archivos almacenados hasta que ejecute la utilidad 'document_renamer'. Vea la documentación. Path @@ -982,7 +982,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 35 - Path + Ruta e.g. @@ -990,7 +990,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 25 - e.g. + por ejemplo. or use slashes to add directories e.g. @@ -998,7 +998,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 27 - or use slashes to add directories e.g. + o utilice barras para añadir directorios p.ej. See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. @@ -1006,7 +1006,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 29 - See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. + Vea la <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentación</a> para la lista completa. Create new storage path @@ -1014,7 +1014,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 34 - Create new storage path + Crear nueva ruta de almacenamiento Edit storage path @@ -1022,7 +1022,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 38 - Edit storage path + Editar ruta de almacenamiento Color @@ -1086,7 +1086,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Any + Cualquiera Apply @@ -1204,7 +1204,7 @@ src/app/components/dashboard/dashboard.component.ts 19 - Hello , welcome to Paperless-ngx! + Hola , bienvenido a Paperless-ngx! Welcome to Paperless-ngx! @@ -1563,7 +1563,7 @@ src/app/components/document-detail/document-detail.component.html 44 - Previous + Anterior Next @@ -1571,7 +1571,7 @@ src/app/components/document-detail/document-detail.component.html 49 - Next + Siguiente Details @@ -1663,7 +1663,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 44 - Storage path + Ruta de almacenamiento Default @@ -1671,7 +1671,7 @@ src/app/components/document-detail/document-detail.component.html 77 - Default + Por defecto Content @@ -1783,7 +1783,7 @@ src/app/components/document-detail/document-detail.component.html 186 - Enter Password + Introducir contraseña Discard @@ -1907,7 +1907,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 45 - Filter storage paths + Filtrar rutas de almacenamiento Actions @@ -1947,7 +1947,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 78,82 - Download Preparing download... + Descargar Preparando descarga... Download originals Preparing download... @@ -1955,7 +1955,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 84,88 - Download originals Preparing download... + Descargar originales Preparando descarga... Redo OCR @@ -1963,7 +1963,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 90 - Redo OCR + Rehacer OCR Error executing bulk operation: @@ -1971,7 +1971,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 103,105 - Error executing bulk operation: + Error ejecutando operación múltiple: "" @@ -2025,7 +2025,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 209,211 - This operation will add the tags to selected document(s). + Esta operación agregará las etiquetas a documento(s) seleccionado(s). This operation will remove the tag "" from selected document(s). @@ -2041,7 +2041,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 222,224 - This operation will remove the tags from selected document(s). + Esta operacion eliminará las etiquetas de documento(s) seleccionado(s). This operation will add the tags and remove the tags on selected document(s). @@ -2049,7 +2049,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 226,230 - This operation will add the tags and remove the tags on selected document(s). + Esta operacion agregará las etiquetas y eliminará las etiquetas en documento(s) seleccionado(s). Confirm correspondent assignment @@ -2105,7 +2105,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 337 - Confirm storage path assignment + Confirmar asignación de ruta de almacenamiento This operation will assign the storage path "" to selected document(s). @@ -2113,7 +2113,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 339 - This operation will assign the storage path "" to selected document(s). + Esta operación asignará la ruta de almacenamiento "" a documento(s) seleccionados. This operation will remove the storage path from selected document(s). @@ -2121,7 +2121,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 341 - This operation will remove the storage path from selected document(s). + Esta operación eliminará la ruta de almacenamiento de documento(s) seleccionados. Delete confirm @@ -2173,7 +2173,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 388 - This operation will permanently redo OCR for selected document(s). + Esta operación rehará permanentemente OCR para documento(s) seleccionados. Proceed @@ -2181,7 +2181,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 391 - Proceed + Continuar Filter by correspondent @@ -2269,7 +2269,7 @@ src/app/components/document-list/document-list.component.html 180 - Filter by document type + Filtrar por tipo de documento Filter by storage path @@ -2281,7 +2281,7 @@ src/app/components/document-list/document-list.component.html 185 - Filter by storage path + Filtrar por ruta de almacenamiento Created: @@ -2293,7 +2293,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 48 - Created: + Creado: Added: @@ -2305,7 +2305,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 49 - Added: + Añadido: Modified: @@ -2317,7 +2317,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 50 - Modified: + Modificado: Score: @@ -2333,7 +2333,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 14 - Toggle tag filter + Activar filtro de etiquetas Toggle correspondent filter @@ -2341,7 +2341,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 24 - Toggle correspondent filter + Cambiar filtro de interlocutores Toggle document type filter @@ -2349,7 +2349,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 31 - Toggle document type filter + Activar filtro de tipo de documento Toggle storage path filter @@ -2357,7 +2357,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 38 - Toggle storage path filter + Activar filtro de ruta de almacenamiento Select none @@ -2445,7 +2445,7 @@ src/app/components/document-list/document-list.component.html 102 - Error while loading documents + Error al cargar los documentos ASN @@ -2485,7 +2485,7 @@ src/app/components/document-list/document-list.component.html 175 - Edit document + Editar documento View "" saved successfully. @@ -2533,7 +2533,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 81,83 - Type: + Tipo: Without document type @@ -2549,7 +2549,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 89,91 - Tag: + Etiqueta: Without any tag @@ -2605,7 +2605,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 164 - equals + es igual a is empty @@ -2613,7 +2613,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 168 - is empty + está vacío is not empty @@ -2621,7 +2621,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 172 - is not empty + no está vacío greater than @@ -2629,7 +2629,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 176 - greater than + es mayor que less than @@ -2637,7 +2637,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 180 - less than + es menor que Save current view @@ -2685,7 +2685,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 13 - The error returned was + El error devuelto fue correspondent @@ -2701,7 +2701,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 34 - correspondents + interlocutores Last used @@ -2725,7 +2725,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 30 - document type + tipo de documento document types @@ -2733,7 +2733,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 31 - document types + tipos de documento Do you really want to delete the document type ""? @@ -2841,7 +2841,7 @@ src/app/components/manage/management-list/management-list.component.html 44 - Filter Documents + Filtrar documentos {VAR_PLURAL, plural, =1 {One } other { total }} @@ -2881,7 +2881,7 @@ src/app/components/manage/management-list/management-list.component.ts 140 - Do you really want to delete the ? + ¿Estás seguro de que quieres eliminar ? Associated documents will not be deleted. @@ -2897,7 +2897,7 @@ src/app/components/manage/management-list/management-list.component.ts 168,170 - Error while deleting element: + Error borrando el elemento: General @@ -2905,7 +2905,7 @@ src/app/components/manage/settings/settings.component.html 10 - General + General Appearance @@ -3041,7 +3041,7 @@ src/app/components/manage/settings/settings.component.html 105 - Theme Color + Color del tema Reset @@ -3049,7 +3049,7 @@ src/app/components/manage/settings/settings.component.html 114 - Reset + Reiniciar Bulk editing @@ -3169,7 +3169,7 @@ src/app/components/manage/settings/settings.component.ts 247 - Settings saved + Configuración guardada Settings were saved successfully. @@ -3177,7 +3177,7 @@ src/app/components/manage/settings/settings.component.ts 248 - Settings were saved successfully. + La configuración se ha guardado correctamente. Settings were saved successfully. Reload is required to apply some changes. @@ -3185,7 +3185,7 @@ src/app/components/manage/settings/settings.component.ts 252 - Settings were saved successfully. Reload is required to apply some changes. + La configuración se ha guardado con éxito. Es necesario recargar para aplicar algunos cambios. Reload now @@ -3193,7 +3193,7 @@ src/app/components/manage/settings/settings.component.ts 253 - Reload now + Recargar ahora An error occurred while saving settings. @@ -3201,7 +3201,7 @@ src/app/components/manage/settings/settings.component.ts 263 - An error occurred while saving settings. + Se produjo un error al guardar la configuración. Use system language @@ -3225,7 +3225,7 @@ src/app/components/manage/settings/settings.component.ts 298,300 - Error while storing settings on server: + Error al almacenar la configuración en el servidor: storage path @@ -3233,7 +3233,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 30 - storage path + ruta de almacenamiento storage paths @@ -3241,7 +3241,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 31 - storage paths + rutas de almacenamiento Do you really want to delete the storage path ""? @@ -3249,7 +3249,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 45 - Do you really want to delete the storage path ""? + ¿Realmente desea eliminar la ruta de almacenamiento ""? tag @@ -3257,7 +3257,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 30 - tag + etiqueta tags @@ -3265,7 +3265,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 31 - tags + etiquetas Do you really want to delete the tag ""? @@ -3281,7 +3281,7 @@ src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + Tareas de archivo Clear selection @@ -3289,7 +3289,7 @@ src/app/components/manage/tasks/tasks.component.html 6 - Clear selection + Borrar selección @@ -3307,7 +3307,7 @@ src/app/components/manage/tasks/tasks.component.html 20 - Refresh + Actualizar Results @@ -3315,7 +3315,7 @@ src/app/components/manage/tasks/tasks.component.html 42 - Results + Resultados click for full output @@ -3323,7 +3323,7 @@ src/app/components/manage/tasks/tasks.component.html 66 - click for full output + haz clic para obtener una salida completa Dismiss @@ -3335,7 +3335,7 @@ src/app/components/manage/tasks/tasks.component.ts 54 - Dismiss + Descartar Failed  @@ -3343,7 +3343,7 @@ src/app/components/manage/tasks/tasks.component.html 96 - Failed  + Error Complete  @@ -3375,7 +3375,7 @@ src/app/components/manage/tasks/tasks.component.ts 21 - Dismiss selected + Descartar seleccionados Dismiss all @@ -3387,7 +3387,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - Dismiss all + Descartar todo Confirm Dismiss All @@ -3395,7 +3395,7 @@ src/app/components/manage/tasks/tasks.component.ts 50 - Confirm Dismiss All + Confirmar Descartar Todo tasks? @@ -3403,7 +3403,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - tasks? + tareas? 404 Not Found @@ -3683,7 +3683,7 @@ src/app/services/open-documents.service.ts 113 - You have unsaved changes to the document + Tienes cambios sin guardar en este documento Are you sure you want to close this document? @@ -3748,7 +3748,7 @@ src/app/services/settings.service.ts 146 - Belarusian + Bielorruso Czech @@ -3868,7 +3868,7 @@ src/app/services/settings.service.ts 236 - Slovenian + Esloveno Serbian @@ -3876,7 +3876,7 @@ src/app/services/settings.service.ts 242 - Serbian + Serbio Swedish @@ -3892,7 +3892,7 @@ src/app/services/settings.service.ts 254 - Turkish + Turco Chinese Simplified @@ -3900,7 +3900,7 @@ src/app/services/settings.service.ts 260 - Chinese Simplified + Chino simplificado ISO 8601 @@ -3916,7 +3916,7 @@ src/app/services/settings.service.ts 372 - Successfully completed one-time migratration of settings to the database! + ¡Se completó con éxito la migración única de la configuración a la base de datos! Unable to migrate settings to the database, please try saving manually. @@ -3924,7 +3924,7 @@ src/app/services/settings.service.ts 373 - Unable to migrate settings to the database, please try saving manually. + No se puede migrar la configuración a la base de datos, por favor intente guardarla manualmente. Error From f58c2d0a7bfabe3b73a4c6ab2aa4b8833ea82402 Mon Sep 17 00:00:00 2001 From: Aidan Stein Date: Sun, 3 Jul 2022 14:42:36 -0400 Subject: [PATCH 013/348] allow rootless (as paperless user) --- docker/docker-entrypoint.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index c1e7588e1..b68eeb409 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -95,7 +95,11 @@ initialize() { done set -e - gosu paperless /sbin/docker-prepare.sh + if [ $(id -u) == $(id -u paperless) ]; then + /sbin/docker-prepare.sh + else + gosu paperless /sbin/docker-prepare.sh + fi } install_languages() { From 1d38367e79516c1ad394bd7d7346303a4270421f Mon Sep 17 00:00:00 2001 From: Aidan Stein Date: Sun, 3 Jul 2022 14:42:51 -0400 Subject: [PATCH 014/348] allow podman build --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 630cd367c..f9cf291ec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -117,9 +117,10 @@ COPY gunicorn.conf.py . # setup docker-specific things # Use mounts to avoid copying installer files into the image # These change sometimes, but rarely -WORKDIR /usr/src/paperless/src/docker/ +ARG DOCKER_SRC=/usr/src/paperless/src/docker/ +WORKDIR ${DOCKER_SRC} -RUN --mount=type=bind,readwrite,source=docker,target=./ \ +RUN --mount=type=bind,readwrite,source=docker,target=${DOCKER_SRC} \ set -eux \ && echo "Configuring ImageMagick" \ && cp imagemagick-policy.xml /etc/ImageMagick-6/policy.xml \ From 145c41f462084380a1afd6f7bf74df910957dd33 Mon Sep 17 00:00:00 2001 From: Aidan Stein Date: Sun, 3 Jul 2022 14:43:18 -0400 Subject: [PATCH 015/348] container repository name must be lowercase --- .github/scripts/common.py | 4 ++-- .github/workflows/ci.yml | 20 ++++++++++++++------ .github/workflows/installer-library.yml | 10 +++++++++- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/.github/scripts/common.py b/.github/scripts/common.py index f0302e79a..62f58aa1c 100644 --- a/.github/scripts/common.py +++ b/.github/scripts/common.py @@ -11,7 +11,7 @@ def get_image_tag( """ Returns a string representing the normal image for a given package """ - return f"ghcr.io/{repo_name}/builder/{pkg_name}:{pkg_version}" + return f"ghcr.io/{repo_name.lower()}/builder/{pkg_name}:{pkg_version}" def get_cache_image_tag( @@ -26,7 +26,7 @@ def get_cache_image_tag( Registry type caching is utilized for the builder images, to allow fast rebuilds, generally almost instant for the same version """ - return f"ghcr.io/{repo_name}/builder/cache/{pkg_name}:{pkg_version}" + return f"ghcr.io/{repo_name.lower()}/builder/cache/{pkg_name}:{pkg_version}" def get_log_level(args) -> int: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10437aa2b..d908a456b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,6 +68,12 @@ jobs: - ci-backend - ci-frontend steps: + - + name: Set gchr repository name + id: set-ghrc-repository + run: | + ghcr_name=$(echo "${GITHUB_REPOSITORY}" | awk '{ print tolower($0) }') + echo ::set-output name=repository::${ghcr_name} - name: Checkout uses: actions/checkout@v3 @@ -115,6 +121,8 @@ jobs: outputs: + ghcr-repository: ${{ steps.set-ghrc-repository.outputs.repository }} + qpdf-json: ${{ steps.qpdf-setup.outputs.qpdf-json }} pikepdf-json: ${{ steps.pikepdf-setup.outputs.pikepdf-json }} @@ -142,7 +150,7 @@ jobs: # a tag # Otherwise forks would require a Docker Hub account and secrets setup run: | - if [[ ${{ github.repository }} == "paperless-ngx/paperless-ngx" && ( ${{ github.ref_name }} == "main" || ${{ github.ref_name }} == "dev" || ${{ github.ref_name }} == "beta" || ${{ startsWith(github.ref, 'refs/tags/v') }} == "true" ) ]] ; then + if [[ ${{ needs.prepare-docker-build.outputs.ghcr-repository }} == "paperless-ngx/paperless-ngx" && ( ${{ github.ref_name }} == "main" || ${{ github.ref_name }} == "dev" || ${{ github.ref_name }} == "beta" || ${{ startsWith(github.ref, 'refs/tags/v') }} == "true" ) ]] ; then echo "Enabling DockerHub image push" echo ::set-output name=enable::"true" else @@ -155,7 +163,7 @@ jobs: uses: docker/metadata-action@v4 with: images: | - ghcr.io/${{ github.repository }} + ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }} name=paperlessngx/paperless-ngx,enable=${{ steps.docker-hub.outputs.enable }} tags: | # Tag branches with branch name @@ -206,11 +214,11 @@ jobs: # Get cache layers from this branch, then dev, then main # This allows new branches to get at least some cache benefits, generally from dev cache-from: | - type=registry,ref=ghcr.io/${{ github.repository }}/builder/cache/app:${{ github.ref_name }} - type=registry,ref=ghcr.io/${{ github.repository }}/builder/cache/app:dev - type=registry,ref=ghcr.io/${{ github.repository }}/builder/cache/app:main + type=registry,ref=ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }}/builder/cache/app:${{ github.ref_name }} + type=registry,ref=ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }}/builder/cache/app:dev + type=registry,ref=ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }}/builder/cache/app:main cache-to: | - type=registry,mode=max,ref=ghcr.io/${{ github.repository }}/builder/cache/app:${{ github.ref_name }} + type=registry,mode=max,ref=ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }}/builder/cache/app:${{ github.ref_name }} - name: Inspect image run: | diff --git a/.github/workflows/installer-library.yml b/.github/workflows/installer-library.yml index 879c31fc9..e236b94fb 100644 --- a/.github/workflows/installer-library.yml +++ b/.github/workflows/installer-library.yml @@ -36,6 +36,12 @@ jobs: name: Prepare Docker Image Version Data runs-on: ubuntu-20.04 steps: + - + name: Set gchr repository name + id: set-ghrc-repository + run: | + ghcr_name=$(echo "${GITHUB_REPOSITORY}" | awk '{ print tolower($0) }') + echo ::set-output name=repository::${ghcr_name} - name: Checkout uses: actions/checkout@v3 @@ -83,6 +89,8 @@ jobs: outputs: + ghcr-repository: ${{ steps.set-ghrc-repository.outputs.repository }} + qpdf-json: ${{ steps.qpdf-setup.outputs.qpdf-json }} pikepdf-json: ${{ steps.pikepdf-setup.outputs.pikepdf-json }} @@ -134,6 +142,6 @@ jobs: dockerfile: ./docker-builders/Dockerfile.pikepdf build-json: ${{ needs.prepare-docker-build.outputs.pikepdf-json }} build-args: | - REPO=${{ github.repository }} + REPO=${{ needs.prepare-docker-build.outputs.ghcr-repository }} QPDF_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.qpdf-json).version }} PIKEPDF_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.pikepdf-json).version }} From 9a8562c62421d3fbf0c95b6e0e00c9512126a49d Mon Sep 17 00:00:00 2001 From: Aidan Stein Date: Fri, 8 Jul 2022 16:41:21 -0400 Subject: [PATCH 016/348] add instructions for rootless --- docs/setup.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/setup.rst b/docs/setup.rst index 2eee43fec..640b20fa2 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -184,6 +184,29 @@ Install Paperless from Docker Hub port 8000. Modifying the part before the colon will map requests on another port to the webserver running on the default port. + **Rootless** + + If you want to run Paperless as a rootless container, you will need to: + + - set the ``user`` running the container to map to the ``paperless`` user in the + container. + See ``USERMAP_UID`` and ``USERMAP_GID`` :ref:`here `. + + - override some of the ``supervisord`` defaults by setting the ``command`` to: + + .. code:: + + command: + - "/usr/local/bin/supervisord" + - "-c" + - "/etc/supervisord.conf" + - "--user" + - "paperless" + - "--logfile" + - "supervisord.log" + - "--pidfile" + - "supervisord.pid" + 5. Modify ``docker-compose.env``, following the comments in the file. The most important change is to set ``USERMAP_UID`` and ``USERMAP_GID`` to the uid and gid of your user on the host system. Use ``id -u`` and From e86f737320ec9033aff51783cb2207584aa4e1c6 Mon Sep 17 00:00:00 2001 From: Aidan Stein Date: Sat, 9 Jul 2022 14:37:20 -0400 Subject: [PATCH 017/348] pr comment(s) - CI typos --- .github/workflows/ci.yml | 6 +++--- .github/workflows/installer-library.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d908a456b..3c17f72a3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,8 +69,8 @@ jobs: - ci-frontend steps: - - name: Set gchr repository name - id: set-ghrc-repository + name: Set ghcr repository name + id: set-ghcr-repository run: | ghcr_name=$(echo "${GITHUB_REPOSITORY}" | awk '{ print tolower($0) }') echo ::set-output name=repository::${ghcr_name} @@ -121,7 +121,7 @@ jobs: outputs: - ghcr-repository: ${{ steps.set-ghrc-repository.outputs.repository }} + ghcr-repository: ${{ steps.set-ghcr-repository.outputs.repository }} qpdf-json: ${{ steps.qpdf-setup.outputs.qpdf-json }} diff --git a/.github/workflows/installer-library.yml b/.github/workflows/installer-library.yml index e236b94fb..83dc6baa7 100644 --- a/.github/workflows/installer-library.yml +++ b/.github/workflows/installer-library.yml @@ -37,8 +37,8 @@ jobs: runs-on: ubuntu-20.04 steps: - - name: Set gchr repository name - id: set-ghrc-repository + name: Set ghcr repository name + id: set-ghcr-repository run: | ghcr_name=$(echo "${GITHUB_REPOSITORY}" | awk '{ print tolower($0) }') echo ::set-output name=repository::${ghcr_name} @@ -89,7 +89,7 @@ jobs: outputs: - ghcr-repository: ${{ steps.set-ghrc-repository.outputs.repository }} + ghcr-repository: ${{ steps.set-ghcr-repository.outputs.repository }} qpdf-json: ${{ steps.qpdf-setup.outputs.qpdf-json }} From ea07b261ad2a367833b33e367592bcc80a97c2d1 Mon Sep 17 00:00:00 2001 From: Aidan Stein Date: Sat, 9 Jul 2022 16:14:33 -0400 Subject: [PATCH 018/348] negate second `gosu` command when running as paperless user --- docker/docker-entrypoint.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index b68eeb409..921808f31 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -95,11 +95,7 @@ initialize() { done set -e - if [ $(id -u) == $(id -u paperless) ]; then - /sbin/docker-prepare.sh - else - gosu paperless /sbin/docker-prepare.sh - fi + ${gosu_cmd[@]} /sbin/docker-prepare.sh } install_languages() { @@ -141,6 +137,11 @@ install_languages() { echo "Paperless-ngx docker container starting..." +gosu_cmd=(gosu paperless) +if [ $(id -u) == $(id -u paperless) ]; then + gosu_cmd=() +fi + # Install additional languages if specified if [[ -n "$PAPERLESS_OCR_LANGUAGES" ]]; then install_languages "$PAPERLESS_OCR_LANGUAGES" @@ -150,7 +151,7 @@ initialize if [[ "$1" != "/"* ]]; then echo Executing management command "$@" - exec gosu paperless python3 manage.py "$@" + exec ${gosu_cmd[@]} python3 manage.py "$@" else echo Executing "$@" exec "$@" From 191676b011046e6320ea6d322fc0e7b2aace518c Mon Sep 17 00:00:00 2001 From: Aidan Stein Date: Sat, 9 Jul 2022 16:15:42 -0400 Subject: [PATCH 019/348] switch from bind mount to `COPY` to avoid requiring host directory relabeling on selinux enabled systems --- Dockerfile | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index f9cf291ec..7f0d1adb0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -120,19 +120,29 @@ COPY gunicorn.conf.py . ARG DOCKER_SRC=/usr/src/paperless/src/docker/ WORKDIR ${DOCKER_SRC} -RUN --mount=type=bind,readwrite,source=docker,target=${DOCKER_SRC} \ - set -eux \ +COPY [ \ + "docker/imagemagick-policy.xml", \ + "docker/supervisord.conf", \ + "docker/docker-entrypoint.sh", \ + "docker/docker-prepare.sh", \ + "docker/wait-for-redis.py", \ + "docker/management_script.sh", \ + "docker/install_management_commands.sh", \ + "${DOCKER_SRC}" \ +] + +RUN set -eux \ && echo "Configuring ImageMagick" \ - && cp imagemagick-policy.xml /etc/ImageMagick-6/policy.xml \ + && mv imagemagick-policy.xml /etc/ImageMagick-6/policy.xml \ && echo "Configuring supervisord" \ && mkdir /var/log/supervisord /var/run/supervisord \ - && cp supervisord.conf /etc/supervisord.conf \ + && mv supervisord.conf /etc/supervisord.conf \ && echo "Setting up Docker scripts" \ - && cp docker-entrypoint.sh /sbin/docker-entrypoint.sh \ + && mv docker-entrypoint.sh /sbin/docker-entrypoint.sh \ && chmod 755 /sbin/docker-entrypoint.sh \ - && cp docker-prepare.sh /sbin/docker-prepare.sh \ + && mv docker-prepare.sh /sbin/docker-prepare.sh \ && chmod 755 /sbin/docker-prepare.sh \ - && cp wait-for-redis.py /sbin/wait-for-redis.py \ + && mv wait-for-redis.py /sbin/wait-for-redis.py \ && chmod 755 /sbin/wait-for-redis.py \ && echo "Installing managment commands" \ && chmod +x install_management_commands.sh \ From 3d16266c69de80fefd6667457acf14336f3a9ae8 Mon Sep 17 00:00:00 2001 From: Aidan Stein Date: Sat, 9 Jul 2022 16:45:41 -0400 Subject: [PATCH 020/348] pr comment - documentation edits --- docs/setup.rst | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/docs/setup.rst b/docs/setup.rst index 640b20fa2..10301d29d 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -186,26 +186,35 @@ Install Paperless from Docker Hub **Rootless** - If you want to run Paperless as a rootless container, you will need to: + If you want to run Paperless as a rootless container, you will need to add the + following to your ``docker-compose.yml``: - set the ``user`` running the container to map to the ``paperless`` user in the container. - See ``USERMAP_UID`` and ``USERMAP_GID`` :ref:`here `. + This value (``user_id`` below), should be the same id that ``USERMAP_UID`` and + ``USERMAP_GID`` are set to in the next step. + See ``USERMAP_UID`` and ``USERMAP_GID`` :ref:`here `. - - override some of the ``supervisord`` defaults by setting the ``command`` to: + - override some of the ``supervisord`` defaults by setting the docker ``command`` + (`see here `_) to: + + Your ``docker-compose.yml`` entry for Paperless will look something like: .. code:: - command: - - "/usr/local/bin/supervisord" - - "-c" - - "/etc/supervisord.conf" - - "--user" - - "paperless" - - "--logfile" - - "supervisord.log" - - "--pidfile" - - "supervisord.pid" + webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:latest + user: + command: + - "/usr/local/bin/supervisord" + - "-c" + - "/etc/supervisord.conf" + - "--user" + - "paperless" + - "--logfile" + - "supervisord.log" + - "--pidfile" + - "supervisord.pid" 5. Modify ``docker-compose.env``, following the comments in the file. The most important change is to set ``USERMAP_UID`` and ``USERMAP_GID`` From cdecf8904e12fc9af02e0823ec8ad0d19fdcf8d1 Mon Sep 17 00:00:00 2001 From: Aidan Stein Date: Sat, 9 Jul 2022 17:10:30 -0400 Subject: [PATCH 021/348] move supervisord call into wrapper script --- Dockerfile | 5 ++++- docker/paperless_cmd.sh | 15 +++++++++++++++ docs/setup.rst | 19 +++---------------- 3 files changed, 22 insertions(+), 17 deletions(-) create mode 100755 docker/paperless_cmd.sh diff --git a/Dockerfile b/Dockerfile index 7f0d1adb0..981a194c9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -125,6 +125,7 @@ COPY [ \ "docker/supervisord.conf", \ "docker/docker-entrypoint.sh", \ "docker/docker-prepare.sh", \ + "docker/paperless_cmd.sh", \ "docker/wait-for-redis.py", \ "docker/management_script.sh", \ "docker/install_management_commands.sh", \ @@ -144,6 +145,8 @@ RUN set -eux \ && chmod 755 /sbin/docker-prepare.sh \ && mv wait-for-redis.py /sbin/wait-for-redis.py \ && chmod 755 /sbin/wait-for-redis.py \ + && mv paperless_cmd.sh /usr/local/bin/paperless_cmd.sh \ + && chmod 755 /usr/local/bin/paperless_cmd.sh \ && echo "Installing managment commands" \ && chmod +x install_management_commands.sh \ && ./install_management_commands.sh @@ -222,4 +225,4 @@ ENTRYPOINT ["/sbin/docker-entrypoint.sh"] EXPOSE 8000 -CMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf"] +CMD ["/usr/local/bin/paperless_cmd.sh"] diff --git a/docker/paperless_cmd.sh b/docker/paperless_cmd.sh new file mode 100755 index 000000000..2c8c1364a --- /dev/null +++ b/docker/paperless_cmd.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +rootless_args=() +if [ $(id -u) == $(id -u paperless) ]; then + rootless_args=( + --user + paperless + --logfile + supervisord.log + --pidfile + supervisord.pid + ) +fi + +/usr/local/bin/supervisord -c /etc/supervisord.conf ${rootless_args[@]} diff --git a/docs/setup.rst b/docs/setup.rst index 10301d29d..60fbc212e 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -186,8 +186,8 @@ Install Paperless from Docker Hub **Rootless** - If you want to run Paperless as a rootless container, you will need to add the - following to your ``docker-compose.yml``: + If you want to run Paperless as a rootless container, you will need to do the + following in your ``docker-compose.yml``: - set the ``user`` running the container to map to the ``paperless`` user in the container. @@ -195,26 +195,13 @@ Install Paperless from Docker Hub ``USERMAP_GID`` are set to in the next step. See ``USERMAP_UID`` and ``USERMAP_GID`` :ref:`here `. - - override some of the ``supervisord`` defaults by setting the docker ``command`` - (`see here `_) to: - - Your ``docker-compose.yml`` entry for Paperless will look something like: + Your entry for Paperless should contain something like: .. code:: webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest user: - command: - - "/usr/local/bin/supervisord" - - "-c" - - "/etc/supervisord.conf" - - "--user" - - "paperless" - - "--logfile" - - "supervisord.log" - - "--pidfile" - - "supervisord.pid" 5. Modify ``docker-compose.env``, following the comments in the file. The most important change is to set ``USERMAP_UID`` and ``USERMAP_GID`` From 91ee7972d221a166ff2e546bd0385b9d81567446 Mon Sep 17 00:00:00 2001 From: "Paperless-ngx Translation Bot [bot]" <99855517+paperless-l10n@users.noreply.github.com> Date: Fri, 15 Jul 2022 08:41:29 -0700 Subject: [PATCH 022/348] New Crowdin updates (#1235) * New translations messages.xlf (Chinese Simplified) [ci skip] * New translations django.po (Chinese Simplified) [ci skip] --- src-ui/src/locale/messages.zh_CN.xlf | 50 +++++++++++++------------- src/locale/zh_CN/LC_MESSAGES/django.po | 6 ++-- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src-ui/src/locale/messages.zh_CN.xlf b/src-ui/src/locale/messages.zh_CN.xlf index 1bda829f1..eaed33280 100644 --- a/src-ui/src/locale/messages.zh_CN.xlf +++ b/src-ui/src/locale/messages.zh_CN.xlf @@ -17,7 +17,7 @@ 157,166 Currently selected slide number read by screen reader - Slide of + 滑动 Previous @@ -155,7 +155,7 @@ node_modules/src/progressbar/progressbar.ts 23,26 - + HH @@ -522,7 +522,7 @@ src/app/components/app-frame/app-frame.component.html 148 - File Tasks + 文件任务 Logs @@ -1086,7 +1086,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Any + 所有 Apply @@ -1947,7 +1947,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 78,82 - Download Preparing download... + 下载 正在准备下载... Download originals Preparing download... @@ -1955,7 +1955,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 84,88 - Download originals Preparing download... + 下载原始文件 正在准备下载... Redo OCR @@ -1963,7 +1963,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 90 - Redo OCR + 重新 OCR Error executing bulk operation: @@ -2165,7 +2165,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 387 - Redo OCR confirm + 确定重新 OCR This operation will permanently redo OCR for selected document(s). @@ -2173,7 +2173,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 388 - This operation will permanently redo OCR for selected document(s). + 此操作将永久重新 OCR 个选定的文档。 Proceed @@ -2181,7 +2181,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 391 - Proceed + 继续操作 Filter by correspondent @@ -3281,7 +3281,7 @@ src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + 文件任务 Clear selection @@ -3289,7 +3289,7 @@ src/app/components/manage/tasks/tasks.component.html 6 - Clear selection + 清除选定内容 @@ -3299,7 +3299,7 @@ src/app/components/manage/tasks/tasks.component.html 11 - + Refresh @@ -3307,7 +3307,7 @@ src/app/components/manage/tasks/tasks.component.html 20 - Refresh + 刷新 Results @@ -3315,7 +3315,7 @@ src/app/components/manage/tasks/tasks.component.html 42 - Results + 结果 click for full output @@ -3323,7 +3323,7 @@ src/app/components/manage/tasks/tasks.component.html 66 - click for full output + 单击以获取完整输出 Dismiss @@ -3335,7 +3335,7 @@ src/app/components/manage/tasks/tasks.component.ts 54 - Dismiss + 关闭 Failed  @@ -3343,7 +3343,7 @@ src/app/components/manage/tasks/tasks.component.html 96 - Failed  + 失败  Complete  @@ -3351,7 +3351,7 @@ src/app/components/manage/tasks/tasks.component.html 102 - Complete  + 完成  Started  @@ -3359,7 +3359,7 @@ src/app/components/manage/tasks/tasks.component.html 108 - Started  + 开始  Queued  @@ -3367,7 +3367,7 @@ src/app/components/manage/tasks/tasks.component.html 114 - Queued  + 排队  Dismiss selected @@ -3375,7 +3375,7 @@ src/app/components/manage/tasks/tasks.component.ts 21 - Dismiss selected + 取消选择 Dismiss all @@ -3387,7 +3387,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - Dismiss all + 取消所有 Confirm Dismiss All @@ -3395,7 +3395,7 @@ src/app/components/manage/tasks/tasks.component.ts 50 - Confirm Dismiss All + 确认取消所有 tasks? @@ -3403,7 +3403,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - tasks? + 任务? 404 Not Found diff --git a/src/locale/zh_CN/LC_MESSAGES/django.po b/src/locale/zh_CN/LC_MESSAGES/django.po index 644b220fa..2a76b6cf3 100644 --- a/src/locale/zh_CN/LC_MESSAGES/django.po +++ b/src/locale/zh_CN/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-07-15 04:02\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -376,7 +376,7 @@ msgstr "过滤规则" #: documents/models.py:521 msgid "started" -msgstr "" +msgstr "已开始" #: documents/serialisers.py:70 #, python-format @@ -654,7 +654,7 @@ msgstr "标记邮件,不处理已标记的邮件" #: paperless_mail/models.py:68 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "用指定标签标记邮件,不要处理已标记的邮件" #: paperless_mail/models.py:71 msgid "Use subject as title" From 278453451ec49366f993a7b9cce22a3dcaab5f1d Mon Sep 17 00:00:00 2001 From: tooomm Date: Fri, 15 Jul 2022 21:18:38 +0200 Subject: [PATCH 023/348] only run on certain labels --- .github/stale.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index c15e06f90..6b0169bd9 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,14 +1,23 @@ # Number of days of inactivity before an issue becomes stale daysUntilStale: 30 + # Number of days of inactivity before a stale issue is closed daysUntilClose: 7 -any-of-issue-labels: unconfirmed,cant-reproduce,stale + +# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled) +onlyLabels: [unconfirmed,cant-reproduce] + # Label to use when marking an issue as stale staleLabel: stale + # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. + # Comment to post when closing a stale issue. Set to `false` to disable closeComment: false + +# See https://github.com/marketplace/stale for more info on the app +# and https://github.com/probot/stale for the configuration docs From 2ab2d9127df146910130591b541258c3bb6cd4c4 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 15 Jul 2022 20:19:28 -0700 Subject: [PATCH 024/348] Use cant-reproduce for stale --- .github/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index 6b0169bd9..9b473eef5 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -5,7 +5,7 @@ daysUntilStale: 30 daysUntilClose: 7 # Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled) -onlyLabels: [unconfirmed,cant-reproduce] +onlyLabels: [cant-reproduce] # Label to use when marking an issue as stale staleLabel: stale From 7450088674c5ddf23e1a70a43818c949b7b0d32d Mon Sep 17 00:00:00 2001 From: "Paperless-ngx Translation Bot [bot]" <99855517+paperless-l10n@users.noreply.github.com> Date: Sun, 17 Jul 2022 15:22:35 -0700 Subject: [PATCH 025/348] New Crowdin updates (#1238) * New translations messages.xlf (German) [ci skip] * New translations messages.xlf (German) [ci skip] * New translations messages.xlf (German) [ci skip] --- src-ui/src/locale/messages.de_DE.xlf | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src-ui/src/locale/messages.de_DE.xlf b/src-ui/src/locale/messages.de_DE.xlf index 2d3997ef9..1ec8802c3 100644 --- a/src-ui/src/locale/messages.de_DE.xlf +++ b/src-ui/src/locale/messages.de_DE.xlf @@ -1086,7 +1086,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Any + Alle Apply @@ -1947,7 +1947,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 78,82 - Download Preparing download... + Originale herunterladen Download wird vorbereitet... Download originals Preparing download... @@ -1955,7 +1955,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 84,88 - Download originals Preparing download... + Originale herunterladen Download wird vorbereitet... Redo OCR @@ -1963,7 +1963,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 90 - Redo OCR + PCR wiederholen Error executing bulk operation: @@ -2165,7 +2165,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 387 - Redo OCR confirm + OCR wiederholen This operation will permanently redo OCR for selected document(s). @@ -2173,7 +2173,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 388 - This operation will permanently redo OCR for selected document(s). + Diese Aktion wird OCR permanent für ausgewählte(s) Dokument(e) wiederholen. Proceed @@ -2181,7 +2181,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 391 - Proceed + Fortfahren Filter by correspondent @@ -3281,7 +3281,7 @@ src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + Datei-Aufgaben Clear selection @@ -3289,7 +3289,7 @@ src/app/components/manage/tasks/tasks.component.html 6 - Clear selection + Auswahl leeren @@ -3307,7 +3307,7 @@ src/app/components/manage/tasks/tasks.component.html 20 - Refresh + Aktualisieren Results @@ -3315,7 +3315,7 @@ src/app/components/manage/tasks/tasks.component.html 42 - Results + Ergebnisse click for full output @@ -3323,7 +3323,7 @@ src/app/components/manage/tasks/tasks.component.html 66 - click for full output + für vollständige Ausgabe anklicken Dismiss @@ -3335,7 +3335,7 @@ src/app/components/manage/tasks/tasks.component.ts 54 - Dismiss + Verwerfen Failed  @@ -3343,7 +3343,7 @@ src/app/components/manage/tasks/tasks.component.html 96 - Failed  + Fehlgeschlagen  Complete  @@ -3359,7 +3359,7 @@ src/app/components/manage/tasks/tasks.component.html 108 - Started  + Gestartet  Queued  @@ -3367,7 +3367,7 @@ src/app/components/manage/tasks/tasks.component.html 114 - Queued  + In der Warteschlange  Dismiss selected @@ -3375,7 +3375,7 @@ src/app/components/manage/tasks/tasks.component.ts 21 - Dismiss selected + Auswahl verwerfen Dismiss all From 4c697ab50e3a4ecc92291659c9ca93921421d61d Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Sun, 17 Jul 2022 15:23:28 -0700 Subject: [PATCH 026/348] Bump version to beta --- src-ui/src/environments/environment.prod.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-ui/src/environments/environment.prod.ts b/src-ui/src/environments/environment.prod.ts index 4d64db657..d076f8a78 100644 --- a/src-ui/src/environments/environment.prod.ts +++ b/src-ui/src/environments/environment.prod.ts @@ -5,7 +5,7 @@ export const environment = { apiBaseUrl: document.baseURI + 'api/', apiVersion: '2', appTitle: 'Paperless-ngx', - version: '1.7.1-dev', + version: '1.8.0-rc1', webSocketHost: window.location.host, webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:', webSocketBaseUrl: base_url.pathname + 'ws/', From b1b6d50af602f2d52a2557fb921f36367e9be38c Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Mon, 18 Jul 2022 09:46:31 -0700 Subject: [PATCH 027/348] Adds a couple packages to the Docker image for ocrmypdf and pikepdf --- Dockerfile | 4 ++++ docs/setup.rst | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 981a194c9..187c75cb1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -90,6 +90,10 @@ ARG RUNTIME_PACKAGES="\ tesseract-ocr-fra \ tesseract-ocr-ita \ tesseract-ocr-spa \ + # Suggested for OCRmyPDF + pngquant \ + # Suggested for pikepdf + jbig2dec \ tzdata \ unpaper \ # Mime type detection diff --git a/docs/setup.rst b/docs/setup.rst index 60fbc212e..3aea55467 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -339,7 +339,7 @@ writing. Windows is not and will never be supported. * ``qpdf`` * ``liblept5`` * ``libxml2`` - * ``pngquant`` + * ``pngquant`` (suggested for certain PDF image optimizations) * ``zlib1g`` * ``tesseract-ocr`` >= 4.0.0 for OCR * ``tesseract-ocr`` language packs (``tesseract-ocr-eng``, ``tesseract-ocr-deu``, etc) From 9c1ae96d336b499355cb5053516a36daa60983a0 Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Mon, 18 Jul 2022 09:48:03 -0700 Subject: [PATCH 028/348] Create PR for changelog instead of direct commit --- .github/workflows/ci.yml | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3c17f72a3..d6db6e6d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -305,6 +305,10 @@ jobs: publish-release: runs-on: ubuntu-20.04 + outputs: + prerelease: ${{ steps.get_version.outputs.prerelease }} + changelog: ${{ steps.create-release.outputs.body }} + version: ${{ steps.get_version.outputs.version }} needs: - build-release if: github.ref_type == 'tag' && (startsWith(github.ref_name, 'v') || contains(github.ref_name, '-beta.rc')) @@ -348,6 +352,13 @@ jobs: asset_path: ./paperless-ngx.tar.xz asset_name: paperless-ngx-${{ steps.get_version.outputs.version }}.tar.xz asset_content_type: application/x-xz + + append-changelog: + runs-on: ubuntu-20.04 + needs: + - publish-release + if: needs.publish-release.outputs.prerelease == 'false' + steps: - name: Checkout uses: actions/checkout@v3 @@ -358,11 +369,33 @@ jobs: id: append-Changelog working-directory: docs run: | - echo -e "# Changelog\n\n${{ steps.create-release.outputs.body }}\n" > changelog-new.md + git branch ${{ needs.publish-release.outputs.version }}-changelog + git checkout ${{ needs.publish-release.outputs.version }}-changelog + echo -e "# Changelog\n\n${{ needs.publish-release.outputs.changelog }}\n" > changelog-new.md CURRENT_CHANGELOG=`tail --lines +2 changelog.md` echo -e "$CURRENT_CHANGELOG" >> changelog-new.md mv changelog-new.md changelog.md git config --global user.name "github-actions" git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" git commit -am "Changelog ${{ steps.get_version.outputs.version }} - GHA" - git push origin HEAD:main + git push origin ${{ needs.publish-release.outputs.version }}-changelog + - + name: Create Pull Request + uses: actions/github-script@v6 + with: + script: | + const { repo, owner } = context.repo; + const result = await github.rest.pulls.create({ + title: '[Documentation] Add ${{ needs.publish-release.outputs.version }} changelog', + owner, + repo, + head: '${{ needs.publish-release.outputs.version }}-changelog', + base: 'main', + body: 'This PR is auto-generated by CI.' + }); + github.rest.issues.addLabels({ + owner, + repo, + issue_number: result.data.number, + labels: ['documentation'] + }); From daad634894831b410b9348587ffdde389bf72ae2 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Fri, 15 Jul 2022 13:45:23 -0700 Subject: [PATCH 029/348] Adds a CI job for hadolint over all the Dockerfiles, fixes the minor thing it complained about --- .github/workflows/reusable-ci-backend.yml | 23 +++++++++++++++++++ Dockerfile | 27 +++++++++++------------ 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/.github/workflows/reusable-ci-backend.yml b/.github/workflows/reusable-ci-backend.yml index b6459c110..2b54c6a8f 100644 --- a/.github/workflows/reusable-ci-backend.yml +++ b/.github/workflows/reusable-ci-backend.yml @@ -106,3 +106,26 @@ jobs: run: | cd src/ pipenv run coveralls --service=github + + dockerfile-lint: + name: "Lint ${{ matrix.dockerfile }}" + runs-on: ubuntu-20.04 + strategy: + matrix: + dockerfile: + - Dockerfile + - docker-builders/Dockerfile.qpdf + - docker-builders/Dockerfile.jbig2enc + - docker-builders/Dockerfile.psycopg2 + - docker-builders/Dockerfile.pikepdf + fail-fast: false + steps: + - + name: Checkout + uses: actions/checkout@v3 + - + uses: hadolint/hadolint-action@v2.0.0 + with: + failure-threshold: warning + dockerfile: ${{ matrix.dockerfile }} + ignore: DL3008,DL3013,DL3003 diff --git a/Dockerfile b/Dockerfile index 981a194c9..c57f0b806 100644 --- a/Dockerfile +++ b/Dockerfile @@ -117,19 +117,18 @@ COPY gunicorn.conf.py . # setup docker-specific things # Use mounts to avoid copying installer files into the image # These change sometimes, but rarely -ARG DOCKER_SRC=/usr/src/paperless/src/docker/ -WORKDIR ${DOCKER_SRC} +WORKDIR /usr/src/paperless/src/docker/ COPY [ \ - "docker/imagemagick-policy.xml", \ - "docker/supervisord.conf", \ - "docker/docker-entrypoint.sh", \ - "docker/docker-prepare.sh", \ - "docker/paperless_cmd.sh", \ - "docker/wait-for-redis.py", \ - "docker/management_script.sh", \ - "docker/install_management_commands.sh", \ - "${DOCKER_SRC}" \ + "docker/imagemagick-policy.xml", \ + "docker/supervisord.conf", \ + "docker/docker-entrypoint.sh", \ + "docker/docker-prepare.sh", \ + "docker/paperless_cmd.sh", \ + "docker/wait-for-redis.py", \ + "docker/management_script.sh", \ + "docker/install_management_commands.sh", \ + "/usr/src/paperless/src/docker/" \ ] RUN set -eux \ @@ -162,15 +161,15 @@ RUN --mount=type=bind,from=qpdf-builder,target=/qpdf \ && apt-get install --yes --no-install-recommends /qpdf/usr/src/qpdf/libqpdf28_*.deb \ && apt-get install --yes --no-install-recommends /qpdf/usr/src/qpdf/qpdf_*.deb \ && echo "Installing pikepdf and dependencies" \ + && python3 -m pip install --no-cache-dir /pikepdf/usr/src/wheels/pyparsing*.whl \ && python3 -m pip install --no-cache-dir /pikepdf/usr/src/wheels/packaging*.whl \ && python3 -m pip install --no-cache-dir /pikepdf/usr/src/wheels/lxml*.whl \ && python3 -m pip install --no-cache-dir /pikepdf/usr/src/wheels/Pillow*.whl \ - && python3 -m pip install --no-cache-dir /pikepdf/usr/src/wheels/pyparsing*.whl \ && python3 -m pip install --no-cache-dir /pikepdf/usr/src/wheels/pikepdf*.whl \ - && python -m pip list \ + && python3 -m pip list \ && echo "Installing psycopg2" \ && python3 -m pip install --no-cache-dir /psycopg2/usr/src/wheels/psycopg2*.whl \ - && python -m pip list + && python3 -m pip list # Python dependencies # Change pretty frequently From 329a317fdf04ce905b9e3bfcbefb7e3a21f04659 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 19 Jul 2022 13:54:33 -0700 Subject: [PATCH 030/348] Configure Hadolint in a single location for both hooks and CI --- .github/workflows/reusable-ci-backend.yml | 4 +--- .hadolint.yml | 8 ++++++++ .pre-commit-config.yaml | 7 ------- 3 files changed, 9 insertions(+), 10 deletions(-) create mode 100644 .hadolint.yml diff --git a/.github/workflows/reusable-ci-backend.yml b/.github/workflows/reusable-ci-backend.yml index 2b54c6a8f..663a954b5 100644 --- a/.github/workflows/reusable-ci-backend.yml +++ b/.github/workflows/reusable-ci-backend.yml @@ -124,8 +124,6 @@ jobs: name: Checkout uses: actions/checkout@v3 - - uses: hadolint/hadolint-action@v2.0.0 + uses: hadolint/hadolint-action@v2.0 with: - failure-threshold: warning dockerfile: ${{ matrix.dockerfile }} - ignore: DL3008,DL3013,DL3003 diff --git a/.hadolint.yml b/.hadolint.yml new file mode 100644 index 000000000..e195127fe --- /dev/null +++ b/.hadolint.yml @@ -0,0 +1,8 @@ +failure-threshold: warning +ignored: + # https://github.com/hadolint/hadolint/wiki/DL3008 + - DL3008 + # https://github.com/hadolint/hadolint/wiki/DL3013 + - DL3013 + # https://github.com/hadolint/hadolint/wiki/DL3003 + - DL3003 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 46ad91ee8..70496a4d0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -74,13 +74,6 @@ repos: rev: v2.10.0 hooks: - id: hadolint - args: - - --ignore - - DL3008 # https://github.com/hadolint/hadolint/wiki/DL3008 (should probably do this at some point) - - --ignore - - DL3013 # https://github.com/hadolint/hadolint/wiki/DL3013 (should probably do this too at some point) - - --ignore - - DL3003 # https://github.com/hadolint/hadolint/wiki/DL3003 (seems excessive to use WORKDIR so much) # Shell script hooks - repo: https://github.com/lovesegfault/beautysh rev: v6.2.1 From 27721aef71529e133487294e79585bc2c8f6f451 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 19 Jul 2022 14:01:47 -0700 Subject: [PATCH 031/348] Fixes and updates the Hadolint action version --- .github/workflows/reusable-ci-backend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reusable-ci-backend.yml b/.github/workflows/reusable-ci-backend.yml index 663a954b5..333a94fc1 100644 --- a/.github/workflows/reusable-ci-backend.yml +++ b/.github/workflows/reusable-ci-backend.yml @@ -124,6 +124,6 @@ jobs: name: Checkout uses: actions/checkout@v3 - - uses: hadolint/hadolint-action@v2.0 + uses: hadolint/hadolint-action@v2.1.0 with: dockerfile: ${{ matrix.dockerfile }} From 16b0f7f9ee96a5fdf3c1c989dba0db9279bc907c Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 19 Jul 2022 14:18:47 -0700 Subject: [PATCH 032/348] Removes a Dockerfile I can't find referenced anywhere --- docs/Dockerfile | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 docs/Dockerfile diff --git a/docs/Dockerfile b/docs/Dockerfile deleted file mode 100644 index bb4b35e2d..000000000 --- a/docs/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM python:3.5.1 - -# Install Sphinx and Pygments -RUN pip install --no-cache-dir Sphinx Pygments \ - # Setup directories, copy data - && mkdir /build - -COPY . /build -WORKDIR /build/docs - -# Build documentation -RUN make html - -# Start webserver -WORKDIR /build/docs/_build/html -EXPOSE 8000/tcp -CMD ["python3", "-m", "http.server"] From 4e78ca5d82cb9b047639d92e0692436434d3a556 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 20 Jul 2022 11:15:35 -0700 Subject: [PATCH 033/348] remove merge error ng-select css --- src-ui/src/styles.scss | 2 -- 1 file changed, 2 deletions(-) diff --git a/src-ui/src/styles.scss b/src-ui/src/styles.scss index a6199b24d..18413276a 100644 --- a/src-ui/src/styles.scss +++ b/src-ui/src/styles.scss @@ -215,8 +215,6 @@ a, a:hover, .btn-link, .btn-link:hover { top: 7px; } - .paperless-input-select .ng-select .ng-select-container - .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked { background-color: var(--pngx-bg-darker) !important; color: var(--pngx-body-color-accent) !important; From 7a99dcf69309a464648db39e59498a97715238c4 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Thu, 21 Jul 2022 08:02:11 -0700 Subject: [PATCH 034/348] Adds configuration for database timeout, documentation and troubleshotting suggestion --- docs/configuration.rst | 9 ++++++++- docs/troubleshooting.rst | 16 ++++++++++++++++ src/documents/signals/handlers.py | 28 ++++++++++++++++++++-------- src/paperless/settings.py | 7 +++++++ 4 files changed, 51 insertions(+), 9 deletions(-) diff --git a/docs/configuration.rst b/docs/configuration.rst index c4203472c..fd68f61cb 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -31,7 +31,7 @@ PAPERLESS_REDIS= PAPERLESS_DBHOST= By default, sqlite is used as the database backend. This can be changed here. - Set PAPERLESS_DBHOST and PostgreSQL will be used instead of mysql. + Set PAPERLESS_DBHOST and PostgreSQL will be used instead of sqlite. PAPERLESS_DBPORT= Adjust port if necessary. @@ -60,6 +60,13 @@ PAPERLESS_DBSSLMODE= Default is ``prefer``. +PAPERLESS_DB_TIMEOUT= + Amount of time for a database connection to wait for the database to unlock. + Mostly applicable for an sqlite based installation, consider changing to postgresql + if you need to increase this. + + Defaults to unset, keeping the Django defaults. + Paths and folders ################# diff --git a/docs/troubleshooting.rst b/docs/troubleshooting.rst index 3db9a069e..1605fed11 100644 --- a/docs/troubleshooting.rst +++ b/docs/troubleshooting.rst @@ -301,3 +301,19 @@ try adjusting the :ref:`polling configuration `. The user will need to manually move the file out of the consume folder and back in, for the initial failing file to be consumed. + +Log reports "Creating PaperlessTask failed". +######################################################### + +You might find messages like these in your log files: + +.. code:: + + [WARNING] [paperless.management.consumer] Not consuming file /usr/src/paperless/src/../consume/SCN_0001.pdf: OS reports file as busy still + +You are likely using an sqlite based installation, with an increased number of workers and are running into sqlite's concurrency limitations. +Uploading or consuming multiple files at once results in many workers attempting to access the database simultaneously. + +Consider changing to the PostgreSQL database if you will be processing many documents at once often. Otherwise, +try tweaking the ``PAPERLESS_DB_TIMEOUT`` setting to allow more time for the database to unlock. This may have +minor performance implications. diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index f7a04ad51..e2f4fb4f7 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -11,6 +11,7 @@ from django.contrib.contenttypes.models import ContentType from django.db import DatabaseError from django.db import models from django.db.models import Q +from django.db.utils import OperationalError from django.dispatch import receiver from django.utils import termcolors from django.utils import timezone @@ -506,21 +507,28 @@ def add_to_index(sender, document, **kwargs): @receiver(django_q.signals.pre_enqueue) def init_paperless_task(sender, task, **kwargs): if task["func"] == "documents.tasks.consume_file": - paperless_task, created = PaperlessTask.objects.get_or_create( - task_id=task["id"], - ) - paperless_task.name = task["name"] - paperless_task.created = task["started"] - paperless_task.save() + try: + paperless_task, created = PaperlessTask.objects.get_or_create( + task_id=task["id"], + ) + paperless_task.name = task["name"] + paperless_task.created = task["started"] + paperless_task.save() + except OperationalError as e: + logger.error(f"Creating PaperlessTask failed: {e}") @receiver(django_q.signals.pre_execute) def paperless_task_started(sender, task, **kwargs): try: if task["func"] == "documents.tasks.consume_file": - paperless_task = PaperlessTask.objects.get(task_id=task["id"]) + paperless_task, created = PaperlessTask.objects.get_or_create( + task_id=task["id"], + ) paperless_task.started = timezone.now() paperless_task.save() + except OperationalError as e: + logger.error(f"Creating PaperlessTask failed: {e}") except PaperlessTask.DoesNotExist: pass @@ -529,8 +537,12 @@ def paperless_task_started(sender, task, **kwargs): def update_paperless_task(sender, instance, **kwargs): try: if instance.func == "documents.tasks.consume_file": - paperless_task = PaperlessTask.objects.get(task_id=instance.id) + paperless_task, created = PaperlessTask.objects.get_or_create( + task_id=instance.id, + ) paperless_task.attempted_task = instance paperless_task.save() + except OperationalError as e: + logger.error(f"Creating PaperlessTask failed: {e}") except PaperlessTask.DoesNotExist: pass diff --git a/src/paperless/settings.py b/src/paperless/settings.py index bfb9507ba..e7fd0f3f0 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -327,6 +327,13 @@ if os.getenv("PAPERLESS_DBHOST"): if os.getenv("PAPERLESS_DBPORT"): DATABASES["default"]["PORT"] = os.getenv("PAPERLESS_DBPORT") +if os.getenv("PAPERLESS_DB_TIMEOUT") is not None: + _new_opts = {"timeout": float(os.getenv("PAPERLESS_DB_TIMEOUT"))} + if "OPTIONS" in DATABASES["default"]: + DATABASES["default"]["OPTIONS"].update(_new_opts) + else: + DATABASES["default"]["OPTIONS"] = _new_opts + DEFAULT_AUTO_FIELD = "django.db.models.AutoField" ############################################################################### From 0e2e5f3413ba265ac209ec9e755702671e47f30a Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 19 Jul 2022 13:57:00 -0700 Subject: [PATCH 035/348] Creates utiliy to ensure all paths in settings are normalized and absolute --- src/paperless/settings.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/paperless/settings.py b/src/paperless/settings.py index bfb9507ba..5c698532c 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -4,6 +4,7 @@ import math import multiprocessing import os import re +import tempfile from typing import Final from typing import Optional from typing import Set @@ -56,6 +57,13 @@ def __get_float(key: str, default: float) -> float: return float(os.getenv(key, default)) +def __get_path(key: str, default: str) -> str: + """ + Return a normalized, absolute path based on the environment variable or a default + """ + return os.path.abspath(os.path.normpath(os.environ.get(key, default))) + + # NEVER RUN WITH DEBUG IN PRODUCTION. DEBUG = __get_boolean("PAPERLESS_DEBUG", "NO") @@ -66,14 +74,14 @@ DEBUG = __get_boolean("PAPERLESS_DEBUG", "NO") BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -STATIC_ROOT = os.getenv("PAPERLESS_STATICDIR", os.path.join(BASE_DIR, "..", "static")) +STATIC_ROOT = __get_path("PAPERLESS_STATICDIR", os.path.join(BASE_DIR, "..", "static")) -MEDIA_ROOT = os.getenv("PAPERLESS_MEDIA_ROOT", os.path.join(BASE_DIR, "..", "media")) +MEDIA_ROOT = __get_path("PAPERLESS_MEDIA_ROOT", os.path.join(BASE_DIR, "..", "media")) ORIGINALS_DIR = os.path.join(MEDIA_ROOT, "documents", "originals") ARCHIVE_DIR = os.path.join(MEDIA_ROOT, "documents", "archive") THUMBNAIL_DIR = os.path.join(MEDIA_ROOT, "documents", "thumbnails") -DATA_DIR = os.getenv("PAPERLESS_DATA_DIR", os.path.join(BASE_DIR, "..", "data")) +DATA_DIR = __get_path("PAPERLESS_DATA_DIR", os.path.join(BASE_DIR, "..", "data")) TRASH_DIR = os.getenv("PAPERLESS_TRASH_DIR") @@ -83,15 +91,18 @@ MEDIA_LOCK = os.path.join(MEDIA_ROOT, "media.lock") INDEX_DIR = os.path.join(DATA_DIR, "index") MODEL_FILE = os.path.join(DATA_DIR, "classification_model.pickle") -LOGGING_DIR = os.getenv("PAPERLESS_LOGGING_DIR", os.path.join(DATA_DIR, "log")) +LOGGING_DIR = __get_path("PAPERLESS_LOGGING_DIR", os.path.join(DATA_DIR, "log")) -CONSUMPTION_DIR = os.getenv( +CONSUMPTION_DIR = __get_path( "PAPERLESS_CONSUMPTION_DIR", os.path.join(BASE_DIR, "..", "consume"), ) # This will be created if it doesn't exist -SCRATCH_DIR = os.getenv("PAPERLESS_SCRATCH_DIR", "/tmp/paperless") +SCRATCH_DIR = __get_path( + "PAPERLESS_SCRATCH_DIR", + os.path.join(tempfile.gettempdir(), "paperless"), +) ############################################################################### # Application Definition # From 91ba0bd0af089e59157305ea23331c8b86bd8644 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Fri, 22 Jul 2022 08:53:02 -0700 Subject: [PATCH 036/348] Locks dependencies to the final versions for the beta --- Pipfile.lock | 234 ++++++++++++++++++++++++----------------------- requirements.txt | 12 +-- 2 files changed, 127 insertions(+), 119 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index ba1ee3149..e121d9ed2 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -198,11 +198,11 @@ }, "channels-redis": { "hashes": [ - "sha256:5dffd4cc16174125bd4043fc8fe7462ca7403cf801d59a9fa7410ed101fa6a57", - "sha256:6e4565b7c11c6bcde5d48556cb83bd043779697ff03811867d2f895aa6170d56" + "sha256:78e4a2f2b2a744fe5a87848ec36b5ee49f522c6808cefe6c583663d0d531faa8", + "sha256:ba7e2ad170f273c372812dd32aaac102d68d4e508172abb1cfda3160b7333890" ], "index": "pypi", - "version": "==3.4.0" + "version": "==3.4.1" }, "charset-normalizer": { "hashes": [ @@ -724,11 +724,11 @@ }, "ocrmypdf": { "hashes": [ - "sha256:4c3d9ead76d2cbf248fa764bf6950acacc5586a153895e136332d3df0af4f4f5", - "sha256:ed2ad72ef796770c38edf5eb43392c6d166eb8959ad14a19ea0350c510b9c121" + "sha256:c98061536decf1686e057cfe555b435605d68ab0838de3fccef0e7f3cc591eab", + "sha256:d123e8e1c530fa2a7c0a880e048334867ab691907927d63594b0adf94dbcc5e8" ], "index": "pypi", - "version": "==13.6.0" + "version": "==13.6.1" }, "packaging": { "hashes": [ @@ -764,41 +764,41 @@ }, "pikepdf": { "hashes": [ - "sha256:021021b30c0d8bc0637c73463f85141154f8434870d60b18a9b8c9f3763e7bf4", - "sha256:0438140aee2e46c11379fe14a5a2b982b311ad2683a6749091ce60a28ee9fbf2", - "sha256:0d6ff379b9b9f5efb25e1a35e4d18c6e2f2fc6b9515f29620fafdb1a81a7b926", - "sha256:2e2b5fa3889e05ca78c2e7c8737a31f22e5689a38bab70a78d41325c9532cdfb", - "sha256:35d4913fb161fc9d8e32f970a80c8f5a8fda013393072a5b83d05738e06e7f2a", - "sha256:451435fcbbde528ea5650e61af00840c2983b218fcb58ac2d734d9c96836e53d", - "sha256:4ad6926ccdb65830a7477db96dd3fe500d6be4f5f1195caf38ed151c77f873ed", - "sha256:4f62bab6f017974a5cb640493881e1f1af9f653dc3c60c1568332e188d62bce9", - "sha256:692bcd0e1802a4d478734fd5d3a557a9050b906862e70fab2abe942bd8bd0be3", - "sha256:69e081faabcc60a652b95bdf6330198346bf2c79dd60c6935fb1b4aa7fdb7472", - "sha256:714c47c0d8d4ca07f301974b6497acacc9bb9d4387d2d5eb0cc52c0d366f80ce", - "sha256:7bd8e8bd7532c5652927061ae58668297d564d77a8844d54fd83f0a03a27c355", - "sha256:7ded2776ba03340ffd8543cf9a02322ad29f18ad32dff95d3262965d54dc4bd3", - "sha256:87b409871ab24818e49b2061cc7fc64d27f88173263945b318172b4b13b3326f", - "sha256:8a7174e748c1e442aee47a2efdc772ef13947c5da94ecae99e5cf08dde1c6a52", - "sha256:908e5cd64eaa45a3527cb13497baa09fb68aa91faf746e53269d1f3286dd6959", - "sha256:90b6a7fe632462feba79f2981b88b225a7e286f7535c87fac1d9f3c1dc165bba", - "sha256:9b7d0a38c71114c58b3c4ab4f37aa809466e9ccc16762a1cd1badbf6df194545", - "sha256:a184b83c47a22092ecbe4b849440a0a50f5bffb392f89fe5a863e115b0f6cb46", - "sha256:a60e4a6f41c0f97de81a0d9a84e1968e8ef5feb3bfa599ad77975bd9ca8266bc", - "sha256:a97b930121c2a19ad4ce8cc733fb4b45f79152becf21debf949bec51fcc95c29", - "sha256:b06d847c93857127ccfc38a578b64dc460cee39981e50ba856ffa122525b838b", - "sha256:b0f75244c48e81655a1b91fce960bfd42f1c978af273ce0d5f6ee20093741249", - "sha256:b54729e983d8c0289eb94ceb48cf170555ab0928b364e9d3b7a1204fde979647", - "sha256:b637d18b9d6a59199ad1b061e821e9eb6e6a81e3483a8233a03fa66bb40d2957", - "sha256:b8c9e5cc1c73fa4d0dae9f4b184adbc72949973a011f2746c851affec3c0ede3", - "sha256:bc7374c33c7977bdfba05546fdb07b2e5b2c53ac7a54cc1da001431dc6375e26", - "sha256:cfb76f360f914954340fa8c05c8f849f54c55a76bf94a114351ffa9a3665ad4d", - "sha256:d3b0228da670b194cdc470ddc84239f499a11ebade12c9d721195171b78c1866", - "sha256:e3c7c2e5f4cacf76a6340d43c68829a8f4a841728472d03cb996023b350e8548", - "sha256:e6f5267179115af4de26d8d83e6b5f721b3a632cd68f931acd83c78f236c7f3c", - "sha256:eb51f78841e61d2921379d5c275315c7a7fcda35aecd6ddf9e3556bad8a2e142" + "sha256:125d46d635634355ce21d6a6de87a5fff2f12a1086b5d0581639fb981a4ecec2", + "sha256:13d50d69e0d6f7d9ff0d08d38ec714acc907e8f2f443a97f57f5c6bbf7c5d440", + "sha256:173c5089cb3fc4c0944d45e33cb6c676dc817a076df19a30d66d30e9ef0dee55", + "sha256:2720fdc92685003155a7f5c1dc166c4d26621a03eb47987d0ce7f84078cac286", + "sha256:3b3762b31926b145a9014cf59a749c101b6d77e0e87f36c46043a59f4d31ed60", + "sha256:43bf8912f7a3b7d32a66c9a1c33f757d66746a47826a7e087fa81fe6ee4c3fcf", + "sha256:48274fe2afbe66990a86a41b986a759738ded7cbeca3d8b03cc3203a5aefbc2e", + "sha256:59f84c618e6db4655ea33f023621be1b5537d8ebe82d6de7be4bd2b54a53022c", + "sha256:6216355a15d7e93ea8ed1f4ab91ab4b26e5d11b7df4229d0a6501476aa3d80e4", + "sha256:6bef943ce87837d206b3cbb6eabe63018a26eddad9dac34c2d16c67a490629c9", + "sha256:73136cbc8183d43cefb53fc84ecd8cda4d01a568fdf8d7214d8048e98e9ac577", + "sha256:76748ea30d24f3a8c4348c2d4ea649024e6aa51a760b2939d33710f3438df50c", + "sha256:7b550d1ba6d53436b1c42ca82c7fbf66ebd7c82a96f1567c398510fd7ea8562e", + "sha256:811c2b7b85e801cc30754340ae39dae75d0284e0db9ab5113376768f4d981077", + "sha256:8c55a1b1cfb5c68104f26893482bff4bac9d42fca27d212d8a5b78e7851ff98d", + "sha256:8d2420e4211c87c2da5b30610a3de7a26153c7aa4d86150808db7308f6dd751e", + "sha256:8d86189a8679699eddbaacc15d95f55cb27b2447abd9ac15f798567a0bf3694f", + "sha256:993eb93d1beea5b6b2edc3e730f1b528438340eadf3248b9e1c898f4dac57fbf", + "sha256:ac6a85d15b6b3a008fbbc61e7d30c3a92ffd0ef768af1212b362b666d3456036", + "sha256:ade58804ae816d4aac479468fcb45f354a87f1ce69807c4404239e974b7e3d9f", + "sha256:bd41e636920f3afecdc8be3e2b4cebaeb9dcdd6266822c903b54a7c2053cfe52", + "sha256:d0a37b4093e88753e8c689092c9444b120ebb2d1c1228e283724f01da4681d16", + "sha256:d29a9b4b6972026c1146a7fb2d582f9e4ef6d474e0762885cd0c6991fd0cb2d9", + "sha256:d364e7d723d261123b7e05590e8e5dceb5d01e32c70c0f03ddf2bfa82a36904e", + "sha256:d397a061959a5cd7d9869a381dda005eccfef59c33dd3eba6a8e19ce036168be", + "sha256:d6d23916d9a4645ffbb27acae011ee052e479ce7d0dce6c4b9e16cb7a2423eb9", + "sha256:ddc45fb735918616ff96f24639628c00db9067117f250a04e4c430ba81ea8721", + "sha256:e7b2c99181dcb00c0faad1e5a16294e6c75c6ec497262f1df1ed882b6224b40e", + "sha256:eaa64e6583c6be54cc8b33cd793cf070e1e52168f7680e184f34a2febd6b723c", + "sha256:ec03ca399d4855c224e3a4b573b54049730ddd6937ee08cd0562aeba3043e151", + "sha256:ed3183288cdf84d88b76eae3afbbf008800c5a97102fa4fea65a1c740db61a60", + "sha256:f5018081e849cdd3472a4901e00dc2fdacb38985ea9beeeb20e8a6126c76e61c" ], "index": "pypi", - "version": "==5.3.1" + "version": "==5.4.0" }, "pillow": { "hashes": [ @@ -1255,11 +1255,11 @@ }, "setuptools": { "hashes": [ - "sha256:16923d366ced322712c71ccb97164d07472abeecd13f3a6c283f6d5d26722793", - "sha256:db3b8e2f922b2a910a29804776c643ea609badb6a32c4bcc226fd4fd902cce65" + "sha256:0d33c374d41c7863419fc8f6c10bfe25b7b498aa34164d135c622e52580c6b16", + "sha256:c04b44a57a6265fe34a4a444e965884716d34bae963119a76353434d6f18e450" ], "markers": "python_version >= '3.7'", - "version": "==63.1.0" + "version": "==63.2.0" }, "six": { "hashes": [ @@ -1424,20 +1424,25 @@ }, "watchfiles": { "hashes": [ - "sha256:56abed43e645d1f2d6def83e35999cc5758b051aff54ca1065cbfcaea15b3389", - "sha256:65ca99a94fcab29d00aa406526eb29cf198c0661854d59a315596064fed02141", - "sha256:67d4c66e46a564059df4aeedab78f09cba0b697bf36cc77566b0a7015dfb7f5d", - "sha256:6e0e8829d32b05151e6009570449f44f891e05f518e495d25f960e0d0b2d0064", - "sha256:715733c2ac9da67b2790788657ff6f8b3797eb31565bfc592289b523ae907ca2", - "sha256:7b81c6e404b2aa62482a719eb778e4a16d01728302dce1f1512c1e5354a73fda", - "sha256:82238d08d8a49f1a1ba254278cd4329a154f6100b028393059722ebeddd2ff3d", - "sha256:955e8f840e1996a8a41be57de4c03af7b1515a685b7fb6abe222f859e413a907", - "sha256:cab62510f990d195986302aa6a48ed636d685b099927049120d520c96069fa49", - "sha256:d1f9de6b776b3aff17898a4cf5ac5a2d0a16212ea7aad2bbe0ef6aa3e79a96af", - "sha256:d4f45acd1143db6d3ee77a4ff12d3239bc8083108133e6174e9dcce59c1f9902", - "sha256:f7f71012e096e11256fae3b37617a9777980f281e18deb2e789e85cd5b113935" + "sha256:059bd9596429f8c13604b2eb30888a5661b3c79099edc506f11b63be7afe3ca4", + "sha256:09490d258be8fdd7f5141a39b468dede0b4aa4a52f2b2dbfb0f3835ae7c23eca", + "sha256:1bb5f0117c8b93f8e1b22ac0be60cfeb00332959a72e6bbe2073fea27ed086e5", + "sha256:3d3f0397c9128971398a5cbb0fb45852ab2fa4472ac9724c031071e1e39970c0", + "sha256:43d1d517faffa8955c2da0e6f64268e38442d43b50ca73cb686df25f891e49a1", + "sha256:4f712dbe9d8c0365bf46ffe0dd9c6a62cc0acf05ba951f1a53de2b4d5bb63299", + "sha256:59498853d3214d1e4d9b1cb3a06b0011a11f24d31708b1734d9cd7f5a30fe1af", + "sha256:5e3d4c92091d16bca1d61920575dab5d6dcbceda76dccd5fb91da0b7390b4ee9", + "sha256:5fa786d102e7eabef22b2147af531aa70194aabcb35335be81c07c26382b0050", + "sha256:750e40db5efcf3f5f11602dbc6fdf8e96a0eefdbccd271093efe9fa2e9d02ed2", + "sha256:7c80e3907d21ca3f1689f42632d239fdc40ffc1d5f32f564997480f85e94c474", + "sha256:8d635dcba3aab2909bf568765547696d7465d30e2e9c6f5ab99da877b58d29bb", + "sha256:a5f64674559fac56a6bf2f5e086cb3758740140c80711fe3e016f5443b84ef15", + "sha256:bcd085980389bc64fe509188a9caffa4fe13b2616e2e3e674cde58f916b2a8ee", + "sha256:c9e3756cd2ba17e5042e8c9399a08e4bdbe1a366156a164e8373bda30ca096d0", + "sha256:cbdb7814ca43f85ab8569206ab2c3bcd51dd5d1ba582914246784414e6ada62e", + "sha256:d5fb4f3b5c884d4f22f643b0697edbb04942bcad961a8f9a9bfadb73e7a1e229" ], - "version": "==0.15.0" + "version": "==0.16.0" }, "wcwidth": { "hashes": [ @@ -1588,12 +1593,12 @@ }, "zipp": { "hashes": [ - "sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad", - "sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099" + "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2", + "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009" ], "index": "pypi", "markers": "python_version < '3.9'", - "version": "==3.8.0" + "version": "==3.8.1" }, "zope.interface": { "hashes": [ @@ -1747,51 +1752,54 @@ "version": "==0.4.5" }, "coverage": { + "extras": [ + "toml" + ], "hashes": [ - "sha256:01c5615d13f3dd3aa8543afc069e5319cfa0c7d712f6e04b920431e5c564a749", - "sha256:106c16dfe494de3193ec55cac9640dd039b66e196e4641fa8ac396181578b982", - "sha256:129cd05ba6f0d08a766d942a9ed4b29283aff7b2cccf5b7ce279d50796860bb3", - "sha256:145f296d00441ca703a659e8f3eb48ae39fb083baba2d7ce4482fb2723e050d9", - "sha256:1480ff858b4113db2718848d7b2d1b75bc79895a9c22e76a221b9d8d62496428", - "sha256:269eaa2c20a13a5bf17558d4dc91a8d078c4fa1872f25303dddcbba3a813085e", - "sha256:26dff09fb0d82693ba9e6231248641d60ba606150d02ed45110f9ec26404ed1c", - "sha256:2bd9a6fc18aab8d2e18f89b7ff91c0f34ff4d5e0ba0b33e989b3cd4194c81fd9", - "sha256:309ce4a522ed5fca432af4ebe0f32b21d6d7ccbb0f5fcc99290e71feba67c264", - "sha256:3384f2a3652cef289e38100f2d037956194a837221edd520a7ee5b42d00cc605", - "sha256:342d4aefd1c3e7f620a13f4fe563154d808b69cccef415415aece4c786665397", - "sha256:39ee53946bf009788108b4dd2894bf1349b4e0ca18c2016ffa7d26ce46b8f10d", - "sha256:4321f075095a096e70aff1d002030ee612b65a205a0a0f5b815280d5dc58100c", - "sha256:4803e7ccf93230accb928f3a68f00ffa80a88213af98ed338a57ad021ef06815", - "sha256:4ce1b258493cbf8aec43e9b50d89982346b98e9ffdfaae8ae5793bc112fb0068", - "sha256:664a47ce62fe4bef9e2d2c430306e1428ecea207ffd68649e3b942fa8ea83b0b", - "sha256:75ab269400706fab15981fd4bd5080c56bd5cc07c3bccb86aab5e1d5a88dc8f4", - "sha256:83c4e737f60c6936460c5be330d296dd5b48b3963f48634c53b3f7deb0f34ec4", - "sha256:84631e81dd053e8a0d4967cedab6db94345f1c36107c71698f746cb2636c63e3", - "sha256:84e65ef149028516c6d64461b95a8dbcfce95cfd5b9eb634320596173332ea84", - "sha256:865d69ae811a392f4d06bde506d531f6a28a00af36f5c8649684a9e5e4a85c83", - "sha256:87f4f3df85aa39da00fd3ec4b5abeb7407e82b68c7c5ad181308b0e2526da5d4", - "sha256:8c08da0bd238f2970230c2a0d28ff0e99961598cb2e810245d7fc5afcf1254e8", - "sha256:961e2fb0680b4f5ad63234e0bf55dfb90d302740ae9c7ed0120677a94a1590cb", - "sha256:9b3e07152b4563722be523e8cd0b209e0d1a373022cfbde395ebb6575bf6790d", - "sha256:a7f3049243783df2e6cc6deafc49ea123522b59f464831476d3d1448e30d72df", - "sha256:bf5601c33213d3cb19d17a796f8a14a9eaa5e87629a53979a5981e3e3ae166f6", - "sha256:cec3a0f75c8f1031825e19cd86ee787e87cf03e4fd2865c79c057092e69e3a3b", - "sha256:d42c549a8f41dc103a8004b9f0c433e2086add8a719da00e246e17cbe4056f72", - "sha256:d67d44996140af8b84284e5e7d398e589574b376fb4de8ccd28d82ad8e3bea13", - "sha256:d9c80df769f5ec05ad21ea34be7458d1dc51ff1fb4b2219e77fe24edf462d6df", - "sha256:e57816f8ffe46b1df8f12e1b348f06d164fd5219beba7d9433ba79608ef011cc", - "sha256:ee2ddcac99b2d2aec413e36d7a429ae9ebcadf912946b13ffa88e7d4c9b712d6", - "sha256:f02cbbf8119db68455b9d763f2f8737bb7db7e43720afa07d8eb1604e5c5ae28", - "sha256:f1d5aa2703e1dab4ae6cf416eb0095304f49d004c39e9db1d86f57924f43006b", - "sha256:f5b66caa62922531059bc5ac04f836860412f7f88d38a476eda0a6f11d4724f4", - "sha256:f69718750eaae75efe506406c490d6fc5a6161d047206cc63ce25527e8a3adad", - "sha256:fb73e0011b8793c053bfa85e53129ba5f0250fdc0392c1591fd35d915ec75c46", - "sha256:fd180ed867e289964404051a958f7cccabdeed423f91a899829264bb7974d3d3", - "sha256:fdb6f7bd51c2d1714cea40718f6149ad9be6a2ee7d93b19e9f00934c0f2a74d9", - "sha256:ffa9297c3a453fba4717d06df579af42ab9a28022444cae7fa605af4df612d54" + "sha256:0895ea6e6f7f9939166cc835df8fa4599e2d9b759b02d1521b574e13b859ac32", + "sha256:0f211df2cba951ffcae210ee00e54921ab42e2b64e0bf2c0befc977377fb09b7", + "sha256:147605e1702d996279bb3cc3b164f408698850011210d133a2cb96a73a2f7996", + "sha256:24b04d305ea172ccb21bee5bacd559383cba2c6fcdef85b7701cf2de4188aa55", + "sha256:25b7ec944f114f70803d6529394b64f8749e93cbfac0fe6c5ea1b7e6c14e8a46", + "sha256:2b20286c2b726f94e766e86a3fddb7b7e37af5d0c635bdfa7e4399bc523563de", + "sha256:2dff52b3e7f76ada36f82124703f4953186d9029d00d6287f17c68a75e2e6039", + "sha256:2f8553878a24b00d5ab04b7a92a2af50409247ca5c4b7a2bf4eabe94ed20d3ee", + "sha256:3def6791adf580d66f025223078dc84c64696a26f174131059ce8e91452584e1", + "sha256:422fa44070b42fef9fb8dabd5af03861708cdd6deb69463adc2130b7bf81332f", + "sha256:4f89d8e03c8a3757aae65570d14033e8edf192ee9298303db15955cadcff0c63", + "sha256:5336e0352c0b12c7e72727d50ff02557005f79a0b8dcad9219c7c4940a930083", + "sha256:54d8d0e073a7f238f0666d3c7c0d37469b2aa43311e4024c925ee14f5d5a1cbe", + "sha256:5ef42e1db047ca42827a85e34abe973971c635f83aed49611b7f3ab49d0130f0", + "sha256:5f65e5d3ff2d895dab76b1faca4586b970a99b5d4b24e9aafffc0ce94a6022d6", + "sha256:6c3ccfe89c36f3e5b9837b9ee507472310164f352c9fe332120b764c9d60adbe", + "sha256:6d0b48aff8e9720bdec315d67723f0babd936a7211dc5df453ddf76f89c59933", + "sha256:6fe75dcfcb889b6800f072f2af5a331342d63d0c1b3d2bf0f7b4f6c353e8c9c0", + "sha256:79419370d6a637cb18553ecb25228893966bd7935a9120fa454e7076f13b627c", + "sha256:7bb00521ab4f99fdce2d5c05a91bddc0280f0afaee0e0a00425e28e209d4af07", + "sha256:80db4a47a199c4563d4a25919ff29c97c87569130375beca3483b41ad5f698e8", + "sha256:866ebf42b4c5dbafd64455b0a1cd5aa7b4837a894809413b930026c91e18090b", + "sha256:8af6c26ba8df6338e57bedbf916d76bdae6308e57fc8f14397f03b5da8622b4e", + "sha256:a13772c19619118903d65a91f1d5fea84be494d12fd406d06c849b00d31bf120", + "sha256:a697977157adc052284a7160569b36a8bbec09db3c3220642e6323b47cec090f", + "sha256:a9032f9b7d38bdf882ac9f66ebde3afb8145f0d4c24b2e600bc4c6304aafb87e", + "sha256:b5e28db9199dd3833cc8a07fa6cf429a01227b5d429facb56eccd765050c26cd", + "sha256:c77943ef768276b61c96a3eb854eba55633c7a3fddf0a79f82805f232326d33f", + "sha256:d230d333b0be8042ac34808ad722eabba30036232e7a6fb3e317c49f61c93386", + "sha256:d4548be38a1c810d79e097a38107b6bf2ff42151900e47d49635be69943763d8", + "sha256:d4e7ced84a11c10160c0697a6cc0b214a5d7ab21dfec1cd46e89fbf77cc66fae", + "sha256:d56f105592188ce7a797b2bd94b4a8cb2e36d5d9b0d8a1d2060ff2a71e6b9bbc", + "sha256:d714af0bdba67739598849c9f18efdcc5a0412f4993914a0ec5ce0f1e864d783", + "sha256:d774d9e97007b018a651eadc1b3970ed20237395527e22cbeb743d8e73e0563d", + "sha256:e0524adb49c716ca763dbc1d27bedce36b14f33e6b8af6dba56886476b42957c", + "sha256:e2618cb2cf5a7cc8d698306e42ebcacd02fb7ef8cfc18485c59394152c70be97", + "sha256:e36750fbbc422c1c46c9d13b937ab437138b998fe74a635ec88989afb57a3978", + "sha256:edfdabe7aa4f97ed2b9dd5dde52d2bb29cb466993bb9d612ddd10d0085a683cf", + "sha256:f22325010d8824594820d6ce84fa830838f581a7fd86a9235f0d2ed6deb61e29", + "sha256:f23876b018dfa5d3e98e96f5644b109090f16a4acb22064e0f06933663005d39", + "sha256:f7bd0ffbcd03dc39490a1f40b2669cc414fae0c4e16b77bb26806a4d0b7d1452" ], "markers": "python_version >= '3.7'", - "version": "==6.4.1" + "version": "==6.4.2" }, "coveralls": { "hashes": [ @@ -1803,10 +1811,10 @@ }, "distlib": { "hashes": [ - "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b", - "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579" + "sha256:a7f75737c70be3b25e2bee06288cec4e4c221de18455b2dd037fe2a795cab2fe", + "sha256:b710088c59f06338ca514800ad795a132da19fda270e3ce4affc74abf955a26c" ], - "version": "==0.3.4" + "version": "==0.3.5" }, "docopt": { "hashes": [ @@ -1856,11 +1864,11 @@ }, "identify": { "hashes": [ - "sha256:0dca2ea3e4381c435ef9c33ba100a78a9b40c0bab11189c7cf121f75815efeaa", - "sha256:3d11b16f3fe19f52039fb7e39c9c884b21cb1b586988114fbe42671f03de3e82" + "sha256:a3d4c096b384d50d5e6dc5bc8b9bc44f1f61cefebd750a7b3e9f939b53fb214d", + "sha256:feaa9db2dc0ce333b453ce171c0cf1247bbfde2c55fc6bb785022d411a1b78b5" ], "markers": "python_version >= '3.7'", - "version": "==2.5.1" + "version": "==2.5.2" }, "idna": { "hashes": [ @@ -2189,11 +2197,11 @@ }, "setuptools": { "hashes": [ - "sha256:16923d366ced322712c71ccb97164d07472abeecd13f3a6c283f6d5d26722793", - "sha256:db3b8e2f922b2a910a29804776c643ea609badb6a32c4bcc226fd4fd902cce65" + "sha256:0d33c374d41c7863419fc8f6c10bfe25b7b498aa34164d135c622e52580c6b16", + "sha256:c04b44a57a6265fe34a4a444e965884716d34bae963119a76353434d6f18e450" ], "markers": "python_version >= '3.7'", - "version": "==63.1.0" + "version": "==63.2.0" }, "six": { "hashes": [ @@ -2301,7 +2309,7 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_full_version < '3.11.0a7'", + "markers": "python_version >= '3.7'", "version": "==2.0.1" }, "tornado": { @@ -2355,12 +2363,12 @@ }, "zipp": { "hashes": [ - "sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad", - "sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099" + "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2", + "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009" ], "index": "pypi", "markers": "python_version < '3.9'", - "version": "==3.8.0" + "version": "==3.8.1" } } } diff --git a/requirements.txt b/requirements.txt index dbab771b5..4532c8210 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,7 @@ blessed==1.19.1; python_version >= '2.7' certifi==2022.6.15; python_version >= '3.6' cffi==1.15.1 channels==3.0.5 -channels-redis==3.4.0 +channels-redis==3.4.1 charset-normalizer==2.1.0; python_version >= '3.6' click==8.1.3; python_version >= '3.7' coloredlogs==15.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' @@ -51,12 +51,12 @@ langdetect==1.0.9 lxml==4.9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' msgpack==1.0.4 numpy==1.23.1; python_version >= '3.8' -ocrmypdf==13.6.0 +ocrmypdf==13.6.1 packaging==21.3; python_version >= '3.6' pathvalidate==2.5.0 pdf2image==1.16.0 pdfminer.six==20220524 -pikepdf==5.3.1 +pikepdf==5.4.0 pillow==9.2.0 pluggy==1.0.0; python_version >= '3.6' portalocker==2.5.1; python_version >= '3' @@ -82,7 +82,7 @@ requests==2.28.1; python_version >= '3.7' and python_version < '4' scikit-learn==1.1.1 scipy==1.8.1; python_version < '3.11' and python_version >= '3.8' service-identity==21.1.0 -setuptools==63.1.0; python_version >= '3.7' +setuptools==63.2.0; python_version >= '3.7' six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' sniffio==1.2.0; python_version >= '3.5' sqlparse==0.4.2; python_version >= '3.5' @@ -98,11 +98,11 @@ urllib3==1.26.10; python_version >= '2.7' and python_version not in '3.0, 3.1, 3 uvicorn[standard]==0.18.2 uvloop==0.16.0 watchdog==2.1.9 -watchfiles==0.15.0 +watchfiles==0.16.0 wcwidth==0.2.5 websockets==10.3 whitenoise==6.2.0 whoosh==2.7.4 wrapt==1.14.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -zipp==3.8.0; python_version < '3.9' +zipp==3.8.1; python_version < '3.9' zope.interface==5.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' From ef790ca6f4336095610a3fca2a4ad6507c26455e Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Fri, 22 Jul 2022 11:08:52 -0700 Subject: [PATCH 037/348] Fixes the copy and paste of the log line --- docs/troubleshooting.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/troubleshooting.rst b/docs/troubleshooting.rst index 1605fed11..6d94d7100 100644 --- a/docs/troubleshooting.rst +++ b/docs/troubleshooting.rst @@ -309,7 +309,7 @@ You might find messages like these in your log files: .. code:: - [WARNING] [paperless.management.consumer] Not consuming file /usr/src/paperless/src/../consume/SCN_0001.pdf: OS reports file as busy still + [ERROR] [paperless.management.consumer] Creating PaperlessTask failed: db locked You are likely using an sqlite based installation, with an increased number of workers and are running into sqlite's concurrency limitations. Uploading or consuming multiple files at once results in many workers attempting to access the database simultaneously. From ecc4553e673440d18f68d88c8579ef4f53f4dc80 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 22 Jul 2022 15:10:33 -0700 Subject: [PATCH 038/348] fix occasional code block color legibility --- docs/_static/css/custom.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css index 87694a598..c0b3ed83a 100644 --- a/docs/_static/css/custom.css +++ b/docs/_static/css/custom.css @@ -439,7 +439,8 @@ a.image-reference img { } .rst-content code.literal, -.rst-content tt.literal { +.rst-content tt.literal, +html.writer-html5 .rst-content dl.footnote code { border-color: var(--color-border); background-color: var(--color-border); color: var(--color-text-code-inline) From b4d20d9b9a4f1ff3cb90945dbbcf321e6f84c6ea Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Sun, 24 Jul 2022 10:22:53 -0700 Subject: [PATCH 039/348] Fixes document import copying PNG files to .webp extensions without actual conversion --- .../management/commands/document_importer.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/documents/management/commands/document_importer.py b/src/documents/management/commands/document_importer.py index 1a1316059..db85460da 100644 --- a/src/documents/management/commands/document_importer.py +++ b/src/documents/management/commands/document_importer.py @@ -3,6 +3,7 @@ import logging import os import shutil from contextlib import contextmanager +from pathlib import Path import tqdm from django.conf import settings @@ -14,6 +15,7 @@ from django.core.serializers.base import DeserializationError from django.db.models.signals import m2m_changed from django.db.models.signals import post_save from documents.models import Document +from documents.parsers import run_convert from documents.settings import EXPORTER_ARCHIVE_NAME from documents.settings import EXPORTER_FILE_NAME from documents.settings import EXPORTER_THUMBNAIL_NAME @@ -192,7 +194,7 @@ class Command(BaseCommand): document_path = os.path.join(self.source, doc_file) thumb_file = record[EXPORTER_THUMBNAIL_NAME] - thumbnail_path = os.path.join(self.source, thumb_file) + thumbnail_path = Path(os.path.join(self.source, thumb_file)).resolve() if EXPORTER_ARCHIVE_NAME in record: archive_file = record[EXPORTER_ARCHIVE_NAME] @@ -209,7 +211,20 @@ class Command(BaseCommand): create_source_path_directory(document.source_path) shutil.copy2(document_path, document.source_path) - shutil.copy2(thumbnail_path, document.thumbnail_path) + + if thumbnail_path.suffix in {".png", ".PNG"}: + run_convert( + density=300, + scale="500x5000>", + alpha="remove", + strip=True, + trim=False, + auto_orient=True, + input_file=f"{thumbnail_path}[0]", + output_file=str(document.thumbnail_path), + ) + else: + shutil.copy2(thumbnail_path, document.thumbnail_path) if archive_path: create_source_path_directory(document.archive_path) # TODO: this assumes that the export is valid and From 45a6b5a43676d8e62b09c37594e01ad98c432fba Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 24 Jul 2022 20:15:26 -0700 Subject: [PATCH 040/348] Add redo OCR button to document edit --- src-ui/messages.xlf | 161 +++++++++++------- .../document-detail.component.html | 6 + .../document-detail.component.ts | 36 ++++ 3 files changed, 142 insertions(+), 61 deletions(-) diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index a8c43a998..331d9bf5d 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -812,7 +812,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 174 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1138,7 +1138,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1391,11 +1391,22 @@ 25 + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1406,49 +1417,49 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1471,7 +1482,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1494,7 +1505,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1513,21 +1524,21 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1538,95 +1549,95 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 117 Original file size src/app/components/document-detail/document-detail.component.html - 115 + 121 Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 125 Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 129 Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 133 Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 139 Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 140 Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 162 src/app/components/document-detail/document-detail.component.html - 186 + 192 Discard src/app/components/document-detail/document-detail.component.html - 166 + 172 Save & next src/app/components/document-detail/document-detail.component.html - 167 + 173 @@ -1668,6 +1679,66 @@ 459 + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 479 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 480 + + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 481 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 483 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 491 + + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 502,504 + + Select: @@ -1771,13 +1842,6 @@ 84,88 - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Error executing bulk operation: 363 - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Delete document(s) @@ -1959,13 +2012,6 @@ 366 - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - This operation will permanently redo OCR for selected document(s). @@ -1973,13 +2019,6 @@ 388 - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Filter by correspondent diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html index 7948d82e3..2c4a5c85f 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.html +++ b/src-ui/src/app/components/document-detail/document-detail.component.html @@ -28,6 +28,12 @@ + +
@@ -16,7 +16,7 @@ -  Download + Download
@@ -31,13 +31,13 @@
@@ -16,7 +16,7 @@ -  Download + Download
@@ -28,10 +28,16 @@
+ +
Invalid date.
{{hint}} + + Suggestions:  + +
{{s}}  + +
diff --git a/src-ui/src/app/components/common/input/date/date.component.ts b/src-ui/src/app/components/common/input/date/date.component.ts index 44e7c7513..cf475df5e 100644 --- a/src-ui/src/app/components/common/input/date/date.component.ts +++ b/src-ui/src/app/components/common/input/date/date.component.ts @@ -1,8 +1,10 @@ -import { Component, forwardRef, OnInit } from '@angular/core' +import { Component, forwardRef, Input, OnInit } from '@angular/core' import { NG_VALUE_ACCESSOR } from '@angular/forms' -import { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap' +import { + NgbDateParserFormatter, + NgbDateStruct, +} from '@ng-bootstrap/ng-bootstrap' import { SettingsService } from 'src/app/services/settings.service' -import { LocalizedDateParserFormatter } from 'src/app/utils/ngb-date-parser-formatter' import { AbstractInputComponent } from '../abstract-input' @Component({ @@ -28,6 +30,40 @@ export class DateComponent super() } + @Input() + suggestions: Date[] + + getSuggestions() { + if (this.suggestions == null) return [] + + return this.suggestions + .map((s) => new Date(s)) // required to call the date functions below + .filter( + (d) => + this.value === null || // if value is not set, take all suggestions + d.toISOString().slice(0, 10) != this.value // otherwise filter out the current value + ) + .map((s) => + this.ngbDateParserFormatter.format({ + year: s.getFullYear(), + month: s.getMonth() + 1, // month of Date is zero based + day: s.getDate(), + }) + ) + } + + onSuggestionClick(dateString: string) { + const parsedNgDate = this.ngbDateParserFormatter.parse(dateString) + this.writeValue(this.formatDateAsYYYYMMDD(parsedNgDate)) + this.onChange(this.value) + } + + formatDateAsYYYYMMDD(date: NgbDateStruct) { + const monthPrefix = date.month > 9 ? '' : '0' + const dayPrefix = date.day > 9 ? '' : '0' + return `${date.year}-${monthPrefix}${date.month}-${dayPrefix}${date.day}` + } + ngOnInit(): void { super.ngOnInit() this.placeholder = this.settings.getLocalizedDateInputFormat() diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html index 6c8fc463f..ea191e55c 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.html +++ b/src-ui/src/app/components/document-detail/document-detail.component.html @@ -74,7 +74,8 @@ - + Date: Sat, 6 Aug 2022 17:17:59 +0000 Subject: [PATCH 094/348] fix(parsers|test_api): fix failed tests --- src/documents/parsers.py | 3 ++- src/documents/tests/test_api.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/documents/parsers.py b/src/documents/parsers.py index 26a4e11c6..f62199677 100644 --- a/src/documents/parsers.py +++ b/src/documents/parsers.py @@ -7,6 +7,7 @@ import shutil import subprocess import tempfile from typing import Iterator +from typing import Match from typing import Optional from typing import Set @@ -252,7 +253,7 @@ def parse_date_generator(filename, text) -> Iterator[datetime.datetime]: return None def __process_match( - match: re.Match[str], + match: Match[str], date_order: str, ) -> Optional[datetime.datetime]: date_string = match.group(0) diff --git a/src/documents/tests/test_api.py b/src/documents/tests/test_api.py index bf3061520..b6fa69699 100644 --- a/src/documents/tests/test_api.py +++ b/src/documents/tests/test_api.py @@ -1119,6 +1119,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): @mock.patch("documents.views.match_document_types") @mock.patch("documents.views.match_tags") @mock.patch("documents.views.match_correspondents") + @override_settings(NUMBER_OF_SUGGESTED_DATES=10) def test_get_suggestions( self, match_correspondents, From 0175eab031a17877275305d532c50f5dd46e0fc5 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 6 Aug 2022 19:30:39 -0700 Subject: [PATCH 095/348] Fix browser unsaved changes with custom guard --- src-ui/messages.xlf | 51 +++++++++++-------- src-ui/src/app/app-routing.module.ts | 2 + src-ui/src/app/app.module.ts | 2 + .../app-frame/app-frame.component.ts | 12 +++-- .../document-detail.component.ts | 11 ++-- src-ui/src/app/guards/dirty-doc.guard.ts | 20 ++++++++ .../app/services/open-documents.service.ts | 11 ++-- 7 files changed, 77 insertions(+), 32 deletions(-) create mode 100644 src-ui/src/app/guards/dirty-doc.guard.ts diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index 08e08608d..c79413a4b 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -179,21 +179,21 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 @@ -1648,7 +1648,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1659,35 +1659,35 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 479 + 482 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -1698,14 +1698,14 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 480 + 483 This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 481 + 484 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -1720,7 +1720,7 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 483 + 486 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -1731,7 +1731,7 @@ Redo OCR operation will begin in the background. src/app/components/document-detail/document-detail.component.ts - 491 + 494 @@ -1740,7 +1740,7 @@ )"/> src/app/components/document-detail/document-detail.component.ts - 502,504 + 505,507 @@ -3200,6 +3200,13 @@ 39 + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 18 + + Unsaved Changes @@ -3208,11 +3215,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 @@ -3223,7 +3230,7 @@ src/app/services/open-documents.service.ts - 139 + 144 @@ -3360,35 +3367,35 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Close document src/app/services/open-documents.service.ts - 119 + 124 Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Close documents src/app/services/open-documents.service.ts - 142 + 147 diff --git a/src-ui/src/app/app-routing.module.ts b/src-ui/src/app/app-routing.module.ts index 65db5f97e..c62357c5d 100644 --- a/src-ui/src/app/app-routing.module.ts +++ b/src-ui/src/app/app-routing.module.ts @@ -14,12 +14,14 @@ import { DocumentAsnComponent } from './components/document-asn/document-asn.com import { DirtyFormGuard } from './guards/dirty-form.guard' import { StoragePathListComponent } from './components/manage/storage-path-list/storage-path-list.component' import { TasksComponent } from './components/manage/tasks/tasks.component' +import { DirtyDocGuard } from './guards/dirty-doc.guard' const routes: Routes = [ { path: '', redirectTo: 'dashboard', pathMatch: 'full' }, { path: '', component: AppFrameComponent, + canDeactivate: [DirtyDocGuard], children: [ { path: 'dashboard', component: DashboardComponent }, { path: 'documents', component: DocumentListComponent }, diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts index f4c49d95d..edbd261f6 100644 --- a/src-ui/src/app/app.module.ts +++ b/src-ui/src/app/app.module.ts @@ -67,6 +67,7 @@ import { ApiVersionInterceptor } from './interceptors/api-version.interceptor' import { ColorSliderModule } from 'ngx-color/slider' import { ColorComponent } from './components/common/input/color/color.component' import { DocumentAsnComponent } from './components/document-asn/document-asn.component' +import { DirtyDocGuard } from './guards/dirty-doc.guard' import localeBe from '@angular/common/locales/be' import localeCs from '@angular/common/locales/cs' @@ -209,6 +210,7 @@ function initializeApp(settings: SettingsService) { DocumentTitlePipe, { provide: NgbDateAdapter, useClass: ISODateAdapter }, { provide: NgbDateParserFormatter, useClass: LocalizedDateParserFormatter }, + DirtyDocGuard, ], bootstrap: [AppComponent], }) diff --git a/src-ui/src/app/components/app-frame/app-frame.component.ts b/src-ui/src/app/components/app-frame/app-frame.component.ts index 441a75330..6e758d262 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.ts +++ b/src-ui/src/app/components/app-frame/app-frame.component.ts @@ -1,6 +1,6 @@ -import { Component } from '@angular/core' +import { Component, HostListener } from '@angular/core' import { FormControl } from '@angular/forms' -import { ActivatedRoute, Router, Params } from '@angular/router' +import { ActivatedRoute, Router } from '@angular/router' import { from, Observable } from 'rxjs' import { debounceTime, @@ -23,13 +23,14 @@ import { } from 'src/app/services/rest/remote-version.service' import { SettingsService } from 'src/app/services/settings.service' import { TasksService } from 'src/app/services/tasks.service' +import { ComponentCanDeactivate } from 'src/app/guards/dirty-doc.guard' @Component({ selector: 'app-app-frame', templateUrl: './app-frame.component.html', styleUrls: ['./app-frame.component.scss'], }) -export class AppFrameComponent { +export class AppFrameComponent implements ComponentCanDeactivate { constructor( public router: Router, private activatedRoute: ActivatedRoute, @@ -64,6 +65,11 @@ export class AppFrameComponent { return this.openDocumentsService.getOpenDocuments() } + @HostListener('window:beforeunload') + canDeactivate(): Observable | boolean { + return !this.openDocumentsService.hasDirty() + } + searchAutoComplete = (text$: Observable) => text$.pipe( debounceTime(200), diff --git a/src-ui/src/app/components/document-detail/document-detail.component.ts b/src-ui/src/app/components/document-detail/document-detail.component.ts index f86ee1ea8..203a56f04 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.ts @@ -206,7 +206,7 @@ export class DocumentDetailComponent this.store.getValue().title !== this.documentForm.get('title').value ) { - this.openDocumentService.setDirty(doc.id, true) + this.openDocumentService.setDirty(doc, true) } }, }) @@ -228,12 +228,15 @@ export class DocumentDetailComponent this.store.asObservable() ) - return this.isDirty$.pipe(map((dirty) => ({ doc, dirty }))) + return this.isDirty$.pipe( + takeUntil(this.unsubscribeNotifier), + map((dirty) => ({ doc, dirty })) + ) }) ) .subscribe({ next: ({ doc, dirty }) => { - this.openDocumentService.setDirty(doc.id, dirty) + this.openDocumentService.setDirty(doc, dirty) }, error: (error) => { this.router.navigate(['404']) @@ -349,7 +352,7 @@ export class DocumentDetailComponent Object.assign(this.document, doc) this.title = doc.title this.documentForm.patchValue(doc) - this.openDocumentService.setDirty(doc.id, false) + this.openDocumentService.setDirty(doc, false) }, error: () => { this.router.navigate(['404']) diff --git a/src-ui/src/app/guards/dirty-doc.guard.ts b/src-ui/src/app/guards/dirty-doc.guard.ts new file mode 100644 index 000000000..10362db45 --- /dev/null +++ b/src-ui/src/app/guards/dirty-doc.guard.ts @@ -0,0 +1,20 @@ +import { CanDeactivate } from '@angular/router' +import { Injectable } from '@angular/core' +import { Observable } from 'rxjs' + +export interface ComponentCanDeactivate { + canDeactivate: () => boolean | Observable +} + +@Injectable() +export class DirtyDocGuard implements CanDeactivate { + canDeactivate( + component: ComponentCanDeactivate + ): boolean | Observable { + return component.canDeactivate() + ? true + : confirm( + $localize`Warning: You have unsaved changes to your document(s).` + ) + } +} diff --git a/src-ui/src/app/services/open-documents.service.ts b/src-ui/src/app/services/open-documents.service.ts index d7746d261..8533166c3 100644 --- a/src-ui/src/app/services/open-documents.service.ts +++ b/src-ui/src/app/services/open-documents.service.ts @@ -92,9 +92,14 @@ export class OpenDocumentsService { } } - setDirty(documentId: number, dirty: boolean) { - if (dirty) this.dirtyDocuments.add(documentId) - else this.dirtyDocuments.delete(documentId) + setDirty(doc: PaperlessDocument, dirty: boolean) { + if (!this.openDocuments.find((d) => d.id == doc.id)) return + if (dirty) this.dirtyDocuments.add(doc.id) + else this.dirtyDocuments.delete(doc.id) + } + + hasDirty(): boolean { + return this.dirtyDocuments.size > 0 } closeDocument(doc: PaperlessDocument): Observable { From 7396e4c32666ad2acfcfb1343672b988741249ab Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 6 Aug 2022 21:19:06 -0700 Subject: [PATCH 096/348] simplify date value format --- .../app/components/common/input/date/date.component.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src-ui/src/app/components/common/input/date/date.component.ts b/src-ui/src/app/components/common/input/date/date.component.ts index cf475df5e..63a15709b 100644 --- a/src-ui/src/app/components/common/input/date/date.component.ts +++ b/src-ui/src/app/components/common/input/date/date.component.ts @@ -53,17 +53,11 @@ export class DateComponent } onSuggestionClick(dateString: string) { - const parsedNgDate = this.ngbDateParserFormatter.parse(dateString) - this.writeValue(this.formatDateAsYYYYMMDD(parsedNgDate)) + const parsedDate = this.ngbDateParserFormatter.parse(dateString) + this.writeValue(`${parsedDate.year}-${parsedDate.month}-${parsedDate.day}`) this.onChange(this.value) } - formatDateAsYYYYMMDD(date: NgbDateStruct) { - const monthPrefix = date.month > 9 ? '' : '0' - const dayPrefix = date.day > 9 ? '' : '0' - return `${date.year}-${monthPrefix}${date.month}-${dayPrefix}${date.day}` - } - ngOnInit(): void { super.ngOnInit() this.placeholder = this.settings.getLocalizedDateInputFormat() From 7e2c693c8afe9e133b7be28d1b500e1ad8ce20f6 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 08:37:18 -0700 Subject: [PATCH 097/348] Make date suggestions timezone-unaware --- .../common/input/date/date.component.ts | 35 ++++++++----------- .../data/paperless-document-suggestions.ts | 2 +- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src-ui/src/app/components/common/input/date/date.component.ts b/src-ui/src/app/components/common/input/date/date.component.ts index 63a15709b..76bfd08d0 100644 --- a/src-ui/src/app/components/common/input/date/date.component.ts +++ b/src-ui/src/app/components/common/input/date/date.component.ts @@ -1,8 +1,8 @@ import { Component, forwardRef, Input, OnInit } from '@angular/core' import { NG_VALUE_ACCESSOR } from '@angular/forms' import { + NgbDateAdapter, NgbDateParserFormatter, - NgbDateStruct, } from '@ng-bootstrap/ng-bootstrap' import { SettingsService } from 'src/app/services/settings.service' import { AbstractInputComponent } from '../abstract-input' @@ -25,36 +25,31 @@ export class DateComponent { constructor( private settings: SettingsService, - private ngbDateParserFormatter: NgbDateParserFormatter + private ngbDateParserFormatter: NgbDateParserFormatter, + private isoDateAdapter: NgbDateAdapter ) { super() } @Input() - suggestions: Date[] + suggestions: string[] getSuggestions() { - if (this.suggestions == null) return [] - - return this.suggestions - .map((s) => new Date(s)) // required to call the date functions below - .filter( - (d) => - this.value === null || // if value is not set, take all suggestions - d.toISOString().slice(0, 10) != this.value // otherwise filter out the current value - ) - .map((s) => - this.ngbDateParserFormatter.format({ - year: s.getFullYear(), - month: s.getMonth() + 1, // month of Date is zero based - day: s.getDate(), - }) - ) + return this.suggestions == null + ? [] + : this.suggestions + .map((s) => this.ngbDateParserFormatter.parse(s)) + .filter( + (d) => + this.value === null || // if value is not set, take all suggestions + this.value != this.isoDateAdapter.toModel(d) // otherwise filter out current date + ) + .map((s) => this.ngbDateParserFormatter.format(s)) } onSuggestionClick(dateString: string) { const parsedDate = this.ngbDateParserFormatter.parse(dateString) - this.writeValue(`${parsedDate.year}-${parsedDate.month}-${parsedDate.day}`) + this.writeValue(this.isoDateAdapter.toModel(parsedDate)) this.onChange(this.value) } diff --git a/src-ui/src/app/data/paperless-document-suggestions.ts b/src-ui/src/app/data/paperless-document-suggestions.ts index 9f976d71b..295a1ab0e 100644 --- a/src-ui/src/app/data/paperless-document-suggestions.ts +++ b/src-ui/src/app/data/paperless-document-suggestions.ts @@ -7,5 +7,5 @@ export interface PaperlessDocumentSuggestions { storage_paths?: number[] - dates?: Date[] + dates?: string[] // ISO-formatted date string e.g. 2022-11-03 } From a0f48130c0cacf59a7d7a62f627e6a5e62d90727 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 6 Aug 2022 20:49:00 -0700 Subject: [PATCH 098/348] Fix some date pasting cases --- .../common/input/date/date.component.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src-ui/src/app/components/common/input/date/date.component.ts b/src-ui/src/app/components/common/input/date/date.component.ts index 44e7c7513..168745910 100644 --- a/src-ui/src/app/components/common/input/date/date.component.ts +++ b/src-ui/src/app/components/common/input/date/date.component.ts @@ -1,8 +1,10 @@ import { Component, forwardRef, OnInit } from '@angular/core' import { NG_VALUE_ACCESSOR } from '@angular/forms' -import { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap' +import { + NgbDateAdapter, + NgbDateParserFormatter, +} from '@ng-bootstrap/ng-bootstrap' import { SettingsService } from 'src/app/services/settings.service' -import { LocalizedDateParserFormatter } from 'src/app/utils/ngb-date-parser-formatter' import { AbstractInputComponent } from '../abstract-input' @Component({ @@ -23,7 +25,8 @@ export class DateComponent { constructor( private settings: SettingsService, - private ngbDateParserFormatter: NgbDateParserFormatter + private ngbDateParserFormatter: NgbDateParserFormatter, + private isoDateAdapter: NgbDateAdapter ) { super() } @@ -43,9 +46,10 @@ export class DateComponent let pastedText = clipboardData.getData('text') pastedText = pastedText.replace(/[\sa-z#!$%\^&\*;:{}=\-_`~()]+/g, '') const parsedDate = this.ngbDateParserFormatter.parse(pastedText) - const formattedDate = this.ngbDateParserFormatter.format(parsedDate) - this.writeValue(formattedDate) - this.onChange(formattedDate) + if (parsedDate) { + this.writeValue(this.isoDateAdapter.toModel(parsedDate)) + this.onChange(this.value) + } } } From 110bd65c206c98838d35ae7c1c6aec9324b06d38 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 8 Aug 2022 00:03:15 -0700 Subject: [PATCH 099/348] fix pagination, refactor --- .../document-list/document-list.component.html | 2 +- .../document-list/document-list.component.ts | 4 ---- .../src/app/services/document-list-view.service.ts | 12 ++++++------ src-ui/src/app/utils/query-params.ts | 4 ++-- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src-ui/src/app/components/document-list/document-list.component.html b/src-ui/src/app/components/document-list/document-list.component.html index 7895c9a52..60c9bcfb9 100644 --- a/src-ui/src/app/components/document-list/document-list.component.html +++ b/src-ui/src/app/components/document-list/document-list.component.html @@ -91,7 +91,7 @@ {list.collectionSize, plural, =1 {One document} other {{{list.collectionSize || 0}} documents}} (filtered)

-
diff --git a/src-ui/src/app/components/document-list/document-list.component.ts b/src-ui/src/app/components/document-list/document-list.component.ts index a73c54ad9..fc9ab3ce7 100644 --- a/src-ui/src/app/components/document-list/document-list.component.ts +++ b/src-ui/src/app/components/document-list/document-list.component.ts @@ -87,10 +87,6 @@ export class DocumentListComponent implements OnInit, OnDestroy { this.list.setSort(event.column, event.reverse) } - setPage(page: number) { - this.list.currentPage = page - } - get isBulkEditing(): boolean { return this.list.selected.size > 0 } diff --git a/src-ui/src/app/services/document-list-view.service.ts b/src-ui/src/app/services/document-list-view.service.ts index adff25223..764febb4b 100644 --- a/src-ui/src/app/services/document-list-view.service.ts +++ b/src-ui/src/app/services/document-list-view.service.ts @@ -11,7 +11,7 @@ import { PaperlessDocument } from '../data/paperless-document' import { PaperlessSavedView } from '../data/paperless-saved-view' import { SETTINGS_KEYS } from '../data/paperless-uisettings' import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys' -import { generateParams, parseParams } from '../utils/query-params' +import { paramsFromViewState, paramsToViewState } from '../utils/query-params' import { DocumentService, DOCUMENT_SORT_FIELDS } from './rest/document.service' import { SettingsService } from './settings.service' @@ -151,9 +151,9 @@ export class DocumentListViewService { view: PaperlessSavedView, queryParams: ParamMap ) { - let params = parseParams(queryParams) + const viewState = paramsToViewState(queryParams) this.activateSavedView(view) - this.activeListViewState.currentPage = params.currentPage + this.currentPage = viewState.currentPage } loadSavedView(view: PaperlessSavedView, closeCurrentView: boolean = false) { @@ -180,7 +180,7 @@ export class DocumentListViewService { loadFromQueryParams(queryParams: ParamMap) { const paramsEmpty: boolean = queryParams.keys.length == 0 let newState: ListViewState = this.listViewStates.get(null) - if (!paramsEmpty) newState = parseParams(queryParams) + if (!paramsEmpty) newState = paramsToViewState(queryParams) if (newState == undefined) newState = this.defaultListViewState() // if nothing in local storage // only reload if things have changed @@ -224,11 +224,11 @@ export class DocumentListViewService { if (updateQueryParams && !this._activeSavedViewId) { let base = ['/documents'] this.router.navigate(base, { - queryParams: generateParams(activeListViewState), + queryParams: paramsFromViewState(activeListViewState), }) } else if (this._activeSavedViewId) { this.router.navigate([], { - queryParams: generateParams(activeListViewState, true), + queryParams: paramsFromViewState(activeListViewState, true), queryParamsHandling: 'merge', }) } diff --git a/src-ui/src/app/utils/query-params.ts b/src-ui/src/app/utils/query-params.ts index 0849fab4b..9694442be 100644 --- a/src-ui/src/app/utils/query-params.ts +++ b/src-ui/src/app/utils/query-params.ts @@ -7,7 +7,7 @@ const SORT_FIELD_PARAMETER = 'sort' const SORT_REVERSE_PARAMETER = 'reverse' const PAGE_PARAMETER = 'page' -export function generateParams( +export function paramsFromViewState( viewState: ListViewState, pageOnly: boolean = false ): Params { @@ -22,7 +22,7 @@ export function generateParams( return params } -export function parseParams(queryParams: ParamMap): ListViewState { +export function paramsToViewState(queryParams: ParamMap): ListViewState { let filterRules = filterRulesFromQueryParams(queryParams) let sortField = queryParams.get(SORT_FIELD_PARAMETER) let sortReverse = From d0f5cc839f15d5040ebf01e5e08fdd69a6af16b8 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 8 Aug 2022 00:05:19 -0700 Subject: [PATCH 100/348] fix navigation to /documents breaks history --- src-ui/src/app/services/document-list-view.service.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src-ui/src/app/services/document-list-view.service.ts b/src-ui/src/app/services/document-list-view.service.ts index 764febb4b..1dea011c0 100644 --- a/src-ui/src/app/services/document-list-view.service.ts +++ b/src-ui/src/app/services/document-list-view.service.ts @@ -225,6 +225,7 @@ export class DocumentListViewService { let base = ['/documents'] this.router.navigate(base, { queryParams: paramsFromViewState(activeListViewState), + replaceUrl: !this.router.routerState.snapshot.url.includes('?'), // in case navigating from params-less /documents }) } else if (this._activeSavedViewId) { this.router.navigate([], { From d4c3b7614d75e70fce2f9c452e9a6fbb460fcbb5 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 9 Aug 2022 15:50:03 -0700 Subject: [PATCH 101/348] Catch all exceptions during the task creation so some error here, but not with a file, will allow consumption to run --- src/documents/signals/handlers.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index e2f4fb4f7..cf6bcc0ae 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -11,7 +11,6 @@ from django.contrib.contenttypes.models import ContentType from django.db import DatabaseError from django.db import models from django.db.models import Q -from django.db.utils import OperationalError from django.dispatch import receiver from django.utils import termcolors from django.utils import timezone @@ -514,7 +513,9 @@ def init_paperless_task(sender, task, **kwargs): paperless_task.name = task["name"] paperless_task.created = task["started"] paperless_task.save() - except OperationalError as e: + except Exception as e: + # Don't let an exception in the signal handlers prevent + # a document from being consumed. logger.error(f"Creating PaperlessTask failed: {e}") @@ -527,10 +528,10 @@ def paperless_task_started(sender, task, **kwargs): ) paperless_task.started = timezone.now() paperless_task.save() - except OperationalError as e: - logger.error(f"Creating PaperlessTask failed: {e}") except PaperlessTask.DoesNotExist: pass + except Exception as e: + logger.error(f"Creating PaperlessTask failed: {e}") @receiver(models.signals.post_save, sender=django_q.models.Task) @@ -542,7 +543,7 @@ def update_paperless_task(sender, instance, **kwargs): ) paperless_task.attempted_task = instance paperless_task.save() - except OperationalError as e: - logger.error(f"Creating PaperlessTask failed: {e}") except PaperlessTask.DoesNotExist: pass + except Exception as e: + logger.error(f"Creating PaperlessTask failed: {e}") From 89b7270233109f9228a24d0603a4f3727889b9ee Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Wed, 10 Aug 2022 08:24:12 -0700 Subject: [PATCH 102/348] Updates some deps, skipping scipy --- .editorconfig | 3 + Pipfile | 4 +- Pipfile.lock | 172 +++++++++++++++++++++++++------------------------- 3 files changed, 91 insertions(+), 88 deletions(-) diff --git a/.editorconfig b/.editorconfig index 8111f01d8..741981f9d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -27,6 +27,9 @@ indent_style = space [*.md] indent_style = space +[Pipfile.lock] +indent_style = space + # Tests don't get a line width restriction. It's still a good idea to follow # the 79 character rule, but in the interests of clarity, tests often need to # violate it. diff --git a/Pipfile b/Pipfile index 1eaa165d0..a33c43845 100644 --- a/Pipfile +++ b/Pipfile @@ -23,7 +23,7 @@ imap-tools = "*" langdetect = "*" pathvalidate = "*" pillow = "~=9.2" -pikepdf = "~=5.1" +pikepdf = "~=5.4" python-gnupg = "*" python-dotenv = "*" python-dateutil = "*" @@ -35,7 +35,7 @@ whitenoise = "~=6.2.0" watchdog = "~=2.1.9" whoosh="~=2.7.4" inotifyrecursive = "~=0.3" -ocrmypdf = "~=13.4" +ocrmypdf = "~=13.7" tqdm = "*" tika = "*" # TODO: This will sadly also install daphne+dependencies, diff --git a/Pipfile.lock b/Pipfile.lock index e121d9ed2..88d10b2ef 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "534811f5ee688864c2abc3bd671e4350493c3d8ab98a26ed7cef53b092389727" + "sha256": "0caafbcf74a410e61e71cd805803e3399f29d45f7fa96bf69d342bdc11581326" }, "pipfile-spec": 6, "requires": {}, @@ -60,11 +60,11 @@ }, "attrs": { "hashes": [ - "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4", - "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" + "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", + "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==21.4.0" + "version": "==22.1.0" }, "autobahn": { "hashes": [ @@ -99,7 +99,6 @@ "sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac", "sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2" ], - "index": "pypi", "markers": "python_version < '3.9'", "version": "==0.2.1" }, @@ -515,12 +514,12 @@ }, "importlib-resources": { "hashes": [ - "sha256:568c9f16cb204f9decc8d6d24a572eeea27dacbb4cee9e6b03a8025736769751", - "sha256:7952325ffd516c05a8ad0858c74dff2c3343f136fe66a6002b2623dd1d43f223" + "sha256:5481e97fb45af8dcf2f798952625591c58fe599d0735d86b10f54de086a61681", + "sha256:f78a8df21a79bcc30cfd400bdc38f314333de7c0fb619763f6b9dabab8268bb7" ], "index": "pypi", "markers": "python_version < '3.9'", - "version": "==5.8.0" + "version": "==5.9.0" }, "incremental": { "hashes": [ @@ -724,11 +723,11 @@ }, "ocrmypdf": { "hashes": [ - "sha256:c98061536decf1686e057cfe555b435605d68ab0838de3fccef0e7f3cc591eab", - "sha256:d123e8e1c530fa2a7c0a880e048334867ab691907927d63594b0adf94dbcc5e8" + "sha256:45fa226f6753f6e0be1e6304d3363a6d8047bb4cb0cf0d25728c3b9c9a0bff40", + "sha256:bba8508d35c75bc1e9ecbbbfa546356215bdeccf7fdfce2068ea9bbb1fe5f3b6" ], "index": "pypi", - "version": "==13.6.1" + "version": "==13.7.0" }, "packaging": { "hashes": [ @@ -740,11 +739,11 @@ }, "pathvalidate": { "hashes": [ - "sha256:119ba36be7e9a405d704c7b7aea4b871c757c53c9adc0ed64f40be1ed8da2781", - "sha256:e5b2747ad557363e8f4124f0553d68878b12ecabd77bcca7e7312d5346d20262" + "sha256:8dbbc64e78e874ddff049ac187499d8bf34f890adb8b7f657e134a842832d3b9", + "sha256:bbc27e653335aba7935a2ade2299622e76a9487bc9004cdcf1441ce8d2ff4a54" ], "index": "pypi", - "version": "==2.5.0" + "version": "==2.5.1" }, "pdf2image": { "hashes": [ @@ -764,41 +763,41 @@ }, "pikepdf": { "hashes": [ - "sha256:125d46d635634355ce21d6a6de87a5fff2f12a1086b5d0581639fb981a4ecec2", - "sha256:13d50d69e0d6f7d9ff0d08d38ec714acc907e8f2f443a97f57f5c6bbf7c5d440", - "sha256:173c5089cb3fc4c0944d45e33cb6c676dc817a076df19a30d66d30e9ef0dee55", - "sha256:2720fdc92685003155a7f5c1dc166c4d26621a03eb47987d0ce7f84078cac286", - "sha256:3b3762b31926b145a9014cf59a749c101b6d77e0e87f36c46043a59f4d31ed60", - "sha256:43bf8912f7a3b7d32a66c9a1c33f757d66746a47826a7e087fa81fe6ee4c3fcf", - "sha256:48274fe2afbe66990a86a41b986a759738ded7cbeca3d8b03cc3203a5aefbc2e", - "sha256:59f84c618e6db4655ea33f023621be1b5537d8ebe82d6de7be4bd2b54a53022c", - "sha256:6216355a15d7e93ea8ed1f4ab91ab4b26e5d11b7df4229d0a6501476aa3d80e4", - "sha256:6bef943ce87837d206b3cbb6eabe63018a26eddad9dac34c2d16c67a490629c9", - "sha256:73136cbc8183d43cefb53fc84ecd8cda4d01a568fdf8d7214d8048e98e9ac577", - "sha256:76748ea30d24f3a8c4348c2d4ea649024e6aa51a760b2939d33710f3438df50c", - "sha256:7b550d1ba6d53436b1c42ca82c7fbf66ebd7c82a96f1567c398510fd7ea8562e", - "sha256:811c2b7b85e801cc30754340ae39dae75d0284e0db9ab5113376768f4d981077", - "sha256:8c55a1b1cfb5c68104f26893482bff4bac9d42fca27d212d8a5b78e7851ff98d", - "sha256:8d2420e4211c87c2da5b30610a3de7a26153c7aa4d86150808db7308f6dd751e", - "sha256:8d86189a8679699eddbaacc15d95f55cb27b2447abd9ac15f798567a0bf3694f", - "sha256:993eb93d1beea5b6b2edc3e730f1b528438340eadf3248b9e1c898f4dac57fbf", - "sha256:ac6a85d15b6b3a008fbbc61e7d30c3a92ffd0ef768af1212b362b666d3456036", - "sha256:ade58804ae816d4aac479468fcb45f354a87f1ce69807c4404239e974b7e3d9f", - "sha256:bd41e636920f3afecdc8be3e2b4cebaeb9dcdd6266822c903b54a7c2053cfe52", - "sha256:d0a37b4093e88753e8c689092c9444b120ebb2d1c1228e283724f01da4681d16", - "sha256:d29a9b4b6972026c1146a7fb2d582f9e4ef6d474e0762885cd0c6991fd0cb2d9", - "sha256:d364e7d723d261123b7e05590e8e5dceb5d01e32c70c0f03ddf2bfa82a36904e", - "sha256:d397a061959a5cd7d9869a381dda005eccfef59c33dd3eba6a8e19ce036168be", - "sha256:d6d23916d9a4645ffbb27acae011ee052e479ce7d0dce6c4b9e16cb7a2423eb9", - "sha256:ddc45fb735918616ff96f24639628c00db9067117f250a04e4c430ba81ea8721", - "sha256:e7b2c99181dcb00c0faad1e5a16294e6c75c6ec497262f1df1ed882b6224b40e", - "sha256:eaa64e6583c6be54cc8b33cd793cf070e1e52168f7680e184f34a2febd6b723c", - "sha256:ec03ca399d4855c224e3a4b573b54049730ddd6937ee08cd0562aeba3043e151", - "sha256:ed3183288cdf84d88b76eae3afbbf008800c5a97102fa4fea65a1c740db61a60", - "sha256:f5018081e849cdd3472a4901e00dc2fdacb38985ea9beeeb20e8a6126c76e61c" + "sha256:1bc680f9bc26fabe733b8db4b330b453793651e482917b000bb7471873758519", + "sha256:1bc68d7f36c1570c9cc28b2f8c0ecb9bcd3657306f4ce4b8c1711169de983e87", + "sha256:242309c366e7f84f35ed350da629910e35584aa10176599faa0265e2066de04c", + "sha256:2a7df0a8340ef05bb7a7c42383f37df59b6ee0c9ec59810206b8b4086bcd711c", + "sha256:2b1a61b4deac7c6d1313b7669d3ac0fcb2d8ae6d942e95c70bcc292da607752c", + "sha256:37bf6c9bb441b3f719eb59aef66b2803a852f9447bac42131a25f5f11769c60f", + "sha256:41d4bd09d9ba7b3517b5bd5aa6c07ebe0222f79b00fecda53a3ff65032431115", + "sha256:439d1123768447d3e1699eecedfebb3d66fc08e11f58558b91ca16c882db8de7", + "sha256:48069359ab11b181ac06a47ae1d80cc59c486261f2295d59b6f90e18f543a11a", + "sha256:4e4b9f288060ef04508ce030e7797a753c53f94fcd54a7f1ef61a112e976d9aa", + "sha256:52dba73bf2220f356eb8dcc4a7d1cd68f2e6166f2c0fab1c5cad33689cf81fa3", + "sha256:7835681bed0bf4bf97842c286639d99586ae2cf3a05f4fe3bc3a1422f7a90318", + "sha256:86a5feeaf22a426f466a5e2dce23382dd0a4306b34679777f6d5637be889eb2a", + "sha256:8b066a4da175e73945877fe0726e3da4db5b4f7efae553ff954b991e0c58aea3", + "sha256:8f3a056f7a5647c91fc0861e8ae011c6dd7ecdf6c622ff483739c74887fc3eaa", + "sha256:9f4378221d8698bda01f093ae7b6f6aa93450cc2d467f039099238cf6dbe00dd", + "sha256:a843bce388967a7ca65e1abfea9478362e0bb761cf27c19992576f345a816268", + "sha256:a84ca5b4ee4374eb15abf52fe902e4d773f55b119f075f033e9862e536c206b9", + "sha256:b06816b473b0b9a4d50a8a17b1298dfca9e0a73943938cabbaa31fb12e1a55af", + "sha256:c1b0cfa0058f5dbc18c2565f02d6f7f7ab629a0a0699edbe96f0446b10f14c39", + "sha256:c23cac76a421fc926f2cdc6bc88309bcf2e64b72f4e9fb130d61d6dbb8965641", + "sha256:c2a75f73a8585d3b57b26e2c857a84d1a167bae6a0cfccb1e671aa285e87beb8", + "sha256:c980f0b1b93e556eb27ac483d7d4cc61568a2945e73c9c261210538c64d1e44b", + "sha256:d34071d0033769284fbbd20946327886c0044ffbed8718871be01a806dae2f92", + "sha256:d382a4ba2c628a4bd8da1907ebc0c2fa1c369a0b20b633b3ed85aaf7377f40cc", + "sha256:df9bea9b7e0b4a72388740d974cb6fa54e33327a885d6d01501b0162fa03cb4f", + "sha256:e209560debb1f933eb31457130c91f3d0d2e002899cf7f1f3509825c52eec63f", + "sha256:e3488ec916662ee1b8511a45427b4a5b09ffbf41dd8a64813235f9a3b512dcad", + "sha256:f12b86fd47e5bb42d6a6b94582c9793a64d47939b08ae1b3c3325460e2f7fdfd", + "sha256:f6cb2c8974958f6b5d8c1a275c713aeaa025ddf2e9b5bba69e15489c82cefd64", + "sha256:fbdda6a8baf83c8f47d11214e12cdcf2331b750db1bcb155c5f3138b1ac11856", + "sha256:fcbc554517f4b0f6303a5bb30bce7738fbee88972ce35ae80ab74798af18006d" ], "index": "pypi", - "version": "==5.4.0" + "version": "==5.4.2" }, "pillow": { "hashes": [ @@ -1255,11 +1254,11 @@ }, "setuptools": { "hashes": [ - "sha256:0d33c374d41c7863419fc8f6c10bfe25b7b498aa34164d135c622e52580c6b16", - "sha256:c04b44a57a6265fe34a4a444e965884716d34bae963119a76353434d6f18e450" + "sha256:273b6847ae61f7829c1affcdd9a32f67aa65233be508f4fbaab866c5faa4e408", + "sha256:d5340d16943a0f67057329db59b564e938bb3736c6e50ae16ea84d5e5d9ba6d0" ], "markers": "python_version >= '3.7'", - "version": "==63.2.0" + "version": "==63.3.0" }, "six": { "hashes": [ @@ -1353,11 +1352,11 @@ }, "urllib3": { "hashes": [ - "sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec", - "sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6" + "sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc", + "sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", - "version": "==1.26.10" + "version": "==1.26.11" }, "uvicorn": { "extras": [ @@ -1424,25 +1423,26 @@ }, "watchfiles": { "hashes": [ - "sha256:059bd9596429f8c13604b2eb30888a5661b3c79099edc506f11b63be7afe3ca4", - "sha256:09490d258be8fdd7f5141a39b468dede0b4aa4a52f2b2dbfb0f3835ae7c23eca", - "sha256:1bb5f0117c8b93f8e1b22ac0be60cfeb00332959a72e6bbe2073fea27ed086e5", - "sha256:3d3f0397c9128971398a5cbb0fb45852ab2fa4472ac9724c031071e1e39970c0", - "sha256:43d1d517faffa8955c2da0e6f64268e38442d43b50ca73cb686df25f891e49a1", - "sha256:4f712dbe9d8c0365bf46ffe0dd9c6a62cc0acf05ba951f1a53de2b4d5bb63299", - "sha256:59498853d3214d1e4d9b1cb3a06b0011a11f24d31708b1734d9cd7f5a30fe1af", - "sha256:5e3d4c92091d16bca1d61920575dab5d6dcbceda76dccd5fb91da0b7390b4ee9", - "sha256:5fa786d102e7eabef22b2147af531aa70194aabcb35335be81c07c26382b0050", - "sha256:750e40db5efcf3f5f11602dbc6fdf8e96a0eefdbccd271093efe9fa2e9d02ed2", - "sha256:7c80e3907d21ca3f1689f42632d239fdc40ffc1d5f32f564997480f85e94c474", - "sha256:8d635dcba3aab2909bf568765547696d7465d30e2e9c6f5ab99da877b58d29bb", - "sha256:a5f64674559fac56a6bf2f5e086cb3758740140c80711fe3e016f5443b84ef15", - "sha256:bcd085980389bc64fe509188a9caffa4fe13b2616e2e3e674cde58f916b2a8ee", - "sha256:c9e3756cd2ba17e5042e8c9399a08e4bdbe1a366156a164e8373bda30ca096d0", - "sha256:cbdb7814ca43f85ab8569206ab2c3bcd51dd5d1ba582914246784414e6ada62e", - "sha256:d5fb4f3b5c884d4f22f643b0697edbb04942bcad961a8f9a9bfadb73e7a1e229" + "sha256:1e41c8b4bf3e07c18aa51775b36b718830fa727929529a7d6e5b38cf845a06b4", + "sha256:22af3b915f928ef59d427d7228668f87ac8054ed8200808c73fbcaa4f82d5572", + "sha256:2a3debb19912072799d7ca53e99fc5f090f77948f5601392623b2a416b4c86be", + "sha256:35f3e411822e14a35f2ef656535aad4e6e79670d6b6ef8e53db958e28916b1fe", + "sha256:44c6aff58b8a70a26431737e483a54e8e224279b21873388571ed184fe7c91a7", + "sha256:4a6a1ac96edf5bc3f8e36f4462fc1daad0ec3769ff2adb920571e120e37c91c5", + "sha256:5741246ae399a03395aa5ee35480083a4f29d58ffd41dd3395594f8805f8cdbc", + "sha256:70159e759f52b65a50c498182dece80364bfd721e839c254c328cbc7a1716616", + "sha256:75a4b9cec1b1c337ea77d4428b29861553d6bf8179923b1bc7e825e217460e2c", + "sha256:91d1b2d0cf060e5222a930a3e2f40f6577da1d18c085c32741b98a128dc1e72c", + "sha256:a8a1809bf910672aa0b7ed6e6045d4fc2cf1e0718b99bc443ef17faa5697b68a", + "sha256:aed7575e24434c8fec2f2bbb0cecb1521ea1240234d9108db7915a3424d92394", + "sha256:b2c7ad91a867dd688b9a12097dd6a4f89397b43fccee871152aa67197cc94398", + "sha256:baa6d0c1c5140e1dcf6ff802dd7b09fcd95b358e50d42fabc83d83f719451c54", + "sha256:c9a7a6dc63684ff5ba11f0be0e64f744112c3c7a0baf4ec8f6794f9a6257d21e", + "sha256:cd7d2fd9a8f28066edc8db5278f3632eb94d10596af760fa0601631f32b1a41e", + "sha256:e939a2693404ac11e055f9d1237db8ad7635e2185a6143bde00116e691ea2983", + "sha256:f91035a273001390093a09e52274a34695b0d15ee8736183b640bbc3b8a432ab" ], - "version": "==0.16.0" + "version": "==0.16.1" }, "wcwidth": { "hashes": [ @@ -1668,11 +1668,11 @@ }, "attrs": { "hashes": [ - "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4", - "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd" + "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", + "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==21.4.0" + "version": "==22.1.0" }, "babel": { "hashes": [ @@ -1848,11 +1848,11 @@ }, "faker": { "hashes": [ - "sha256:8e94a749d2f3d9b367f61eb33be6a534f0a2d305c54e912ee6618370e3278db7", - "sha256:a126fa66f54e65a67f913dcc698c9d023def7277882536bde2968fcac701bfd5" + "sha256:172e45220b7a46743f4fb58cf380adb306d5c3ab1c0b0d97062508474cec5ff8", + "sha256:7c3f8ee807d3916415568169a172bf0893ea9cc3371ab55e4e5f5170d2185bea" ], "markers": "python_version >= '3.6'", - "version": "==13.15.0" + "version": "==13.15.1" }, "filelock": { "hashes": [ @@ -2197,11 +2197,11 @@ }, "setuptools": { "hashes": [ - "sha256:0d33c374d41c7863419fc8f6c10bfe25b7b498aa34164d135c622e52580c6b16", - "sha256:c04b44a57a6265fe34a4a444e965884716d34bae963119a76353434d6f18e450" + "sha256:273b6847ae61f7829c1affcdd9a32f67aa65233be508f4fbaab866c5faa4e408", + "sha256:d5340d16943a0f67057329db59b564e938bb3736c6e50ae16ea84d5e5d9ba6d0" ], "markers": "python_version >= '3.7'", - "version": "==63.2.0" + "version": "==63.3.0" }, "six": { "hashes": [ @@ -2347,19 +2347,19 @@ }, "urllib3": { "hashes": [ - "sha256:8298d6d56d39be0e3bc13c1c97d133f9b45d797169a0e11cdd0e0489d786f7ec", - "sha256:879ba4d1e89654d9769ce13121e0f94310ea32e8d2f8cf587b77c08bbcdb30d6" + "sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc", + "sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", - "version": "==1.26.10" + "version": "==1.26.11" }, "virtualenv": { "hashes": [ - "sha256:288171134a2ff3bfb1a2f54f119e77cd1b81c29fc1265a2356f3e8d14c7d58c4", - "sha256:b30aefac647e86af6d82bfc944c556f8f1a9c90427b2fb4e3bfbf338cb82becf" + "sha256:0ef5be6d07181946891f5abc8047fda8bc2f0b4b9bf222c64e6e8963baee76db", + "sha256:635b272a8e2f77cb051946f46c60a54ace3cb5e25568228bd6b57fc70eca9ff3" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==20.15.1" + "version": "==20.16.2" }, "zipp": { "hashes": [ From a0617c1fad2bc32e5b84f0cdd1d474d8f26851c9 Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Wed, 10 Aug 2022 17:19:13 -0700 Subject: [PATCH 103/348] CI: Add autolabeler --- .github/release-drafter.yml | 11 +++++++++++ .github/workflows/project-actions.yml | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 16538820d..a1b653554 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -1,3 +1,14 @@ +autolabeler: + - label: "bug" + branch: + - '/^fix/' + title: + - "/^fix/i" + - label: "enhancement" + branch: + - '/^feature/' + title: + - "/^feature/i" categories: - title: 'Breaking Changes' labels: diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index adfbc6d40..e8595edf1 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -13,6 +13,9 @@ on: - main - dev +permissions: + contents: read + env: todo: Todo done: Done @@ -35,6 +38,9 @@ jobs: pr_opened_or_reopened: name: pr_opened_or_reopened runs-on: ubuntu-latest + permissions: + # write permission is required for autolabeler + pull-requests: write if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') steps: - name: Set PR status to ${{ env.in_progress }} @@ -45,3 +51,7 @@ jobs: project_id: 2 resource_node_id: ${{ github.event.pull_request.node_id }} status_value: ${{ env.in_progress }} # Target status + - name: Label PR with release-drafter + uses: release-drafter/release-drafter@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 5dd4d0c37002292ed20d51e8a361c1cbe3ce25a3 Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Fri, 29 Jul 2022 09:16:31 -0700 Subject: [PATCH 104/348] Add documentation as included label --- .github/release-drafter.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 16538820d..29f8c55bd 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -25,6 +25,7 @@ include-labels: - 'deployment' - 'translation' - 'dependencies' + - 'documentation' replacers: # Changes "Feature: Update checker" to "Update checker" - search: '/Feature:|Feat:|\[feature\]/gi' replace: '' From 8d3361766dd96214e053c25780755068f77d056e Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Wed, 10 Aug 2022 17:45:01 -0700 Subject: [PATCH 105/348] Draft more comprehensive changelog --- .github/release-drafter.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 29f8c55bd..f16f71d55 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -15,9 +15,15 @@ categories: - 'chore' - 'deployment' - 'translation' + - 'ci-cd' - title: 'Dependencies' collapse-after: 3 label: 'dependencies' + - title: 'All App Changes' + labels: + - 'frontend' + - 'backend' + collapse-after: 0 include-labels: - 'enhancement' - 'bug' @@ -26,8 +32,11 @@ include-labels: - 'translation' - 'dependencies' - 'documentation' + - 'frontend' + - 'backend' + - 'ci-cd' replacers: # Changes "Feature: Update checker" to "Update checker" - - search: '/Feature:|Feat:|\[feature\]/gi' + - search: '/Feature:?|Feat:?|\[feature\]/gi' replace: '' category-template: '### $TITLE' change-template: '- $TITLE [@$AUTHOR](https://github.com/$AUTHOR) ([#$NUMBER]($URL))' From 18a2a41682274d870c9a935feb4b8a20381e29f2 Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Thu, 11 Aug 2022 09:49:04 -0700 Subject: [PATCH 106/348] Use fork of release-drafter to exclude prereleases --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6db6e6d1..d7f57cde5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -332,7 +332,7 @@ jobs: - name: Create Release and Changelog id: create-release - uses: release-drafter/release-drafter@v5 + uses: paperless-ngx/release-drafter@master with: name: Paperless-ngx ${{ steps.get_version.outputs.version }} tag: ${{ steps.get_version.outputs.version }} From 40ae184c4eb1b764bf393091e668fe70f12ad201 Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Thu, 11 Aug 2022 10:03:37 -0700 Subject: [PATCH 107/348] Exclude dependabot PRs from project --- .github/workflows/project-actions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index e8595edf1..e6826f7b7 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -41,7 +41,7 @@ jobs: permissions: # write permission is required for autolabeler pull-requests: write - if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') + if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') && github.event.pull_request.user.login != "dependabot" steps: - name: Set PR status to ${{ env.in_progress }} uses: leonsteinhaeuser/project-beta-automations@v1.2.1 From 22fb659b72f95799606282e1c6bc5de81ae4062b Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Thu, 11 Aug 2022 10:10:08 -0700 Subject: [PATCH 108/348] Set status of new PRs to "Needs Review" --- .github/workflows/project-actions.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index e6826f7b7..91f8f27db 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -27,7 +27,7 @@ jobs: runs-on: ubuntu-latest if: github.event_name == 'issues' && (github.event.action == 'opened' || github.event.action == 'reopened') steps: - - name: Set issue status to ${{ env.todo }} + - name: Add issue to project and set status to ${{ env.todo }} uses: leonsteinhaeuser/project-beta-automations@v1.2.1 with: gh_token: ${{ secrets.GH_TOKEN }} @@ -43,14 +43,14 @@ jobs: pull-requests: write if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') && github.event.pull_request.user.login != "dependabot" steps: - - name: Set PR status to ${{ env.in_progress }} + - name: Add PR to project and set status to "Needs Review" uses: leonsteinhaeuser/project-beta-automations@v1.2.1 with: gh_token: ${{ secrets.GH_TOKEN }} organization: paperless-ngx project_id: 2 resource_node_id: ${{ github.event.pull_request.node_id }} - status_value: ${{ env.in_progress }} # Target status + status_value: "Needs Review" # Target status - name: Label PR with release-drafter uses: release-drafter/release-drafter@v5 env: From a8c575147b8f81c558b4bce1ebceab9b2d90dc1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Ple=C3=9F?= Date: Sat, 13 Aug 2022 22:52:17 +0200 Subject: [PATCH 109/348] Update scanners.rst added Brother ADS-4300N. I tested it and can recommend the Device. It scans fast and reliable. --- docs/scanners.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/scanners.rst b/docs/scanners.rst index 1100516a9..f38a3164f 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -28,6 +28,8 @@ Physical scanners +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | Brother | `ADS-2800W`_ | yes | yes | | yes | yes | |`philpagel`_ | +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ +| Brother | `ADS-4300N`_ | yes | yes | | yes | yes | |`derlucas`_ | ++---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | Brother | `MFC-J6930DW`_ | yes | | | | | |`ayounggun`_ | +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | Brother | `MFC-L5850DW`_ | yes | | | | yes | |`holzhannes`_ | @@ -60,6 +62,7 @@ Physical scanners .. _ADS-1500W: https://www.brother.ca/en/p/ads1500w .. _ADS-1100W: https://support.brother.com/g/b/downloadtop.aspx?c=fr&lang=fr&prod=ads1100w_eu_as_cn .. _ADS-2800W: https://www.brother-usa.com/products/ads2800w +.. _ADS-4300N: https://www.brother-usa.com/products/ads4300n .. _Maxify MB 5350: https://www.canon.de/printers/inkjet/maxify/maxify_mb5350/specification.html .. _MFC-J6930DW: https://www.brother.ca/en/p/MFCJ6930DW .. _MFC-J5910DW: https://www.brother.co.uk/printers/inkjet-printers/mfcj5910dw @@ -85,6 +88,7 @@ Physical scanners .. _muued: https://github.com/muued .. _philpagel: https://github.com/philpagel .. _eingemaischt: https://github.com/eingemaischt +.. _derlucas: https://github.com/derlucas .. [1] Scanners with API Integration allow to push scanned documents directly to :ref:`Paperless API `, sometimes referred to as Webhook or Document POST. .. [2] Canon Multi Function Printers show strange behavior over SMB. They close and reopen the file after every page. It's recommended to tune the From 8183de49022b43f66412bce434cbb1fd942e8f95 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 13 Aug 2022 07:13:51 -0700 Subject: [PATCH 110/348] `created_date` is not supposed to be required --- src/documents/serialisers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index c83dc2541..a1db44791 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -240,7 +240,8 @@ class DocumentSerializer(DynamicFieldsModelSerializer): ) instance.created = new_datetime instance.save() - validated_data.pop("created_date") + if "created_date" in validated_data: + validated_data.pop("created_date") super().update(instance, validated_data) return instance From f58e0041cee6e998eac58737b747c21b0c5bc0ea Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Sun, 14 Aug 2022 13:29:29 -0700 Subject: [PATCH 111/348] Resets to a last known working pipenv version --- .github/workflows/ci.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 910b291ed..9606e8d50 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,7 +43,9 @@ jobs: uses: actions/checkout@v3 - name: Install pipenv - run: pipx install pipenv + run: | + pipx install pipenv==2022.8.5 + pipenv --version - name: Set up Python uses: actions/setup-python@v4 @@ -55,6 +57,10 @@ jobs: name: Install dependencies run: | pipenv sync --dev + - + name: List installed Python dependencies + run: | + pipenv run pip list - name: Make documentation run: | @@ -84,7 +90,9 @@ jobs: fetch-depth: 2 - name: Install pipenv - run: pipx install pipenv + run: | + pipx install pipenv==2022.8.5 + pipenv --version - name: Set up Python uses: actions/setup-python@v4 @@ -101,6 +109,10 @@ jobs: name: Install Python dependencies run: | pipenv sync --dev + - + name: List installed Python dependencies + run: | + pipenv run pip list - name: Tests run: | From 86358d556162e4c6112238821937f7856749f157 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 9 Aug 2022 14:20:30 -0700 Subject: [PATCH 112/348] Attempts to make production consumer more event driven while still allowing unit testing --- docker/supervisord.conf | 1 + .../management/commands/document_consumer.py | 80 +++++++++++++------ .../tests/test_management_consumer.py | 22 ++--- 3 files changed, 68 insertions(+), 35 deletions(-) diff --git a/docker/supervisord.conf b/docker/supervisord.conf index c1681b7b3..21bbdd68d 100644 --- a/docker/supervisord.conf +++ b/docker/supervisord.conf @@ -19,6 +19,7 @@ stderr_logfile_maxbytes=0 [program:consumer] command=python3 manage.py document_consumer user=paperless +stopsignal=INT stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 diff --git a/src/documents/management/commands/document_consumer.py b/src/documents/management/commands/document_consumer.py index baa14f166..1b232c072 100644 --- a/src/documents/management/commands/document_consumer.py +++ b/src/documents/management/commands/document_consumer.py @@ -2,6 +2,7 @@ import logging import os from pathlib import Path from pathlib import PurePath +from threading import Event from threading import Thread from time import monotonic from time import sleep @@ -148,9 +149,11 @@ class Command(BaseCommand): """ # This is here primarily for the tests and is irrelevant in production. - stop_flag = False - - observer = None + stop_flag = Event() + # Also only for testing, configures in one place the timeout used before checking + # the stop flag + testing_timeout_s: Final[float] = 0.5 + testing_timeout_ms: Final[float] = testing_timeout_s * 1000.0 def add_arguments(self, parser): parser.add_argument( @@ -161,6 +164,16 @@ class Command(BaseCommand): ) parser.add_argument("--oneshot", action="store_true", help="Run only once.") + # Only use during unit testing, will configure a timeout + # Leaving it unset or false and the consumer will exit when it + # receives SIGINT + parser.add_argument( + "--testing", + action="store_true", + help="Flag used only for unit testing", + default=False, + ) + def handle(self, *args, **options): directory = options["directory"] recursive = settings.CONSUMER_RECURSIVE @@ -186,29 +199,40 @@ class Command(BaseCommand): return if settings.CONSUMER_POLLING == 0 and INotify: - self.handle_inotify(directory, recursive) + self.handle_inotify(directory, recursive, options["testing"]) else: - self.handle_polling(directory, recursive) + self.handle_polling(directory, recursive, options["testing"]) logger.debug("Consumer exiting.") - def handle_polling(self, directory, recursive): + def handle_polling(self, directory, recursive, is_testing: bool): logger.info(f"Polling directory for changes: {directory}") - self.observer = PollingObserver(timeout=settings.CONSUMER_POLLING) - self.observer.schedule(Handler(), directory, recursive=recursive) - self.observer.start() - try: - while self.observer.is_alive(): - self.observer.join(1) - if self.stop_flag: - self.observer.stop() - except KeyboardInterrupt: - self.observer.stop() - self.observer.join() - def handle_inotify(self, directory, recursive): + timeout = None + if is_testing: + timeout = self.testing_timeout_s + logger.debug(f"Configuring timeout to {timeout}s") + + observer = PollingObserver(timeout=settings.CONSUMER_POLLING) + observer.schedule(Handler(), directory, recursive=recursive) + observer.start() + try: + while observer.is_alive(): + observer.join(timeout) + if self.stop_flag.is_set(): + observer.stop() + except KeyboardInterrupt: + observer.stop() + observer.join() + + def handle_inotify(self, directory, recursive, is_testing: bool): logger.info(f"Using inotify to watch directory for changes: {directory}") + timeout = None + if is_testing: + timeout = self.testing_timeout_ms + logger.debug(f"Configuring timeout to {timeout}ms") + inotify = INotify() inotify_flags = flags.CLOSE_WRITE | flags.MOVED_TO if recursive: @@ -216,14 +240,15 @@ class Command(BaseCommand): else: descriptor = inotify.add_watch(directory, inotify_flags) - try: + inotify_debounce: Final[float] = settings.CONSUMER_INOTIFY_DELAY - inotify_debounce: Final[float] = settings.CONSUMER_INOTIFY_DELAY - notified_files = {} + finished = False - while not self.stop_flag: + notified_files = {} - for event in inotify.read(timeout=1000): + while not finished: + try: + for event in inotify.read(timeout): if recursive: path = inotify.get_path(event.wd) else: @@ -256,8 +281,13 @@ class Command(BaseCommand): # These files are still waiting to hit the timeout notified_files = still_waiting - except KeyboardInterrupt: - pass + if self.stop_flag.is_set(): + logger.debug("Finishing because event is set") + finished = True + + except KeyboardInterrupt: + logger.info("Received SIGINT, stopping inotify") + finished = True inotify.rm_watch(descriptor) inotify.close() diff --git a/src/documents/tests/test_management_consumer.py b/src/documents/tests/test_management_consumer.py index 32b04282b..71cc97be1 100644 --- a/src/documents/tests/test_management_consumer.py +++ b/src/documents/tests/test_management_consumer.py @@ -2,6 +2,7 @@ import filecmp import os import shutil from threading import Thread +from time import monotonic from time import sleep from unittest import mock @@ -20,13 +21,14 @@ class ConsumerThread(Thread): def __init__(self): super().__init__() self.cmd = document_consumer.Command() + self.cmd.stop_flag.clear() def run(self) -> None: - self.cmd.handle(directory=settings.CONSUMPTION_DIR, oneshot=False) + self.cmd.handle(directory=settings.CONSUMPTION_DIR, oneshot=False, testing=True) def stop(self): # Consumer checks this every second. - self.cmd.stop_flag = True + self.cmd.stop_flag.set() def chunked(size, source): @@ -59,13 +61,14 @@ class ConsumerMixin: self.t.stop() # wait for the consumer to exit. self.t.join() + self.t = None super().tearDown() - def wait_for_task_mock_call(self, excpeted_call_count=1): + def wait_for_task_mock_call(self, expected_call_count=1): n = 0 - while n < 100: - if self.task_mock.call_count >= excpeted_call_count: + while n < 50: + if self.task_mock.call_count >= expected_call_count: # give task_mock some time to finish and raise errors sleep(1) return @@ -234,7 +237,7 @@ class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase): sleep(5) - self.wait_for_task_mock_call(excpeted_call_count=2) + self.wait_for_task_mock_call(expected_call_count=2) self.assertEqual(2, self.task_mock.call_count) @@ -281,7 +284,7 @@ class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase): @override_settings( CONSUMER_POLLING=1, - CONSUMER_POLLING_DELAY=3, + CONSUMER_POLLING_DELAY=1, CONSUMER_POLLING_RETRY_COUNT=20, ) class TestConsumerPolling(TestConsumer): @@ -298,7 +301,7 @@ class TestConsumerRecursive(TestConsumer): @override_settings( CONSUMER_RECURSIVE=True, CONSUMER_POLLING=1, - CONSUMER_POLLING_DELAY=3, + CONSUMER_POLLING_DELAY=1, CONSUMER_POLLING_RETRY_COUNT=20, ) class TestConsumerRecursivePolling(TestConsumer): @@ -307,8 +310,7 @@ class TestConsumerRecursivePolling(TestConsumer): class TestConsumerTags(DirectoriesMixin, ConsumerMixin, TransactionTestCase): - @override_settings(CONSUMER_RECURSIVE=True) - @override_settings(CONSUMER_SUBDIRS_AS_TAGS=True) + @override_settings(CONSUMER_RECURSIVE=True, CONSUMER_SUBDIRS_AS_TAGS=True) def test_consume_file_with_path_tags(self): tag_names = ("existingTag", "Space Tag") From ad1f5ae08163d9ec2c0f00fa5713a821c5552618 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 9 Aug 2022 18:20:47 -0700 Subject: [PATCH 113/348] Corrects the timeout's interaction with files waiting to be consumed --- .../management/commands/document_consumer.py | 11 ++++++++++- src/documents/tests/test_management_consumer.py | 1 - 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/documents/management/commands/document_consumer.py b/src/documents/management/commands/document_consumer.py index 1b232c072..3a3b8a163 100644 --- a/src/documents/management/commands/document_consumer.py +++ b/src/documents/management/commands/document_consumer.py @@ -248,7 +248,7 @@ class Command(BaseCommand): while not finished: try: - for event in inotify.read(timeout): + for event in inotify.read(timeout=timeout): if recursive: path = inotify.get_path(event.wd) else: @@ -281,6 +281,15 @@ class Command(BaseCommand): # These files are still waiting to hit the timeout notified_files = still_waiting + # If files are waiting, need to exit read() to check them + # Otherwise, go back to infinite sleep time, but only if not testing + if len(notified_files) > 0: + timeout = inotify_debounce + elif is_testing: + timeout = self.testing_timeout_ms + else: + timeout = None + if self.stop_flag.is_set(): logger.debug("Finishing because event is set") finished = True diff --git a/src/documents/tests/test_management_consumer.py b/src/documents/tests/test_management_consumer.py index 71cc97be1..be8f26d12 100644 --- a/src/documents/tests/test_management_consumer.py +++ b/src/documents/tests/test_management_consumer.py @@ -2,7 +2,6 @@ import filecmp import os import shutil from threading import Thread -from time import monotonic from time import sleep from unittest import mock From 02456b271bdc65f639b223211a7529535d9326ff Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Mon, 15 Aug 2022 06:27:08 -0700 Subject: [PATCH 114/348] Fix incorrect double quote on string --- .github/workflows/project-actions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index 91f8f27db..4366f8aa1 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -41,7 +41,7 @@ jobs: permissions: # write permission is required for autolabeler pull-requests: write - if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') && github.event.pull_request.user.login != "dependabot" + if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') && github.event.pull_request.user.login != 'dependabot' steps: - name: Add PR to project and set status to "Needs Review" uses: leonsteinhaeuser/project-beta-automations@v1.2.1 From f4fece5550ef0e3859d5da2e5fa6c6dce4605404 Mon Sep 17 00:00:00 2001 From: Dennis Gaida <2392217+DennisGaida@users.noreply.github.com> Date: Fri, 12 Aug 2022 13:14:42 +0200 Subject: [PATCH 115/348] PAPERLESS_REDIS may be set via docker secrets Best practice is for redis to be at least password protected: https://redis.io/docs/getting-started/. Paperless uses `Redis.from_url` (https://github.com/paperless-ngx/paperless-ngx/blob/5fe435048bc6eb77f9473afc11588427846456ab/docker/wait-for-redis.py#L24) to establish a connection to redis which already enables us to use username/password, e.g. `redis://username:password@redis:6379`. The redis connection string therefore is a secret and needs to be able to leverage docker secrets, hence this PR. --- docker/docker-entrypoint.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index 7a6fa01cb..cc91fadb6 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -62,7 +62,8 @@ initialize() { PAPERLESS_AUTO_LOGIN_USERNAME \ PAPERLESS_ADMIN_USER \ PAPERLESS_ADMIN_MAIL \ - PAPERLESS_ADMIN_PASSWORD; do + PAPERLESS_ADMIN_PASSWORD \ + PAPERLESS_REDIS; do # Check for a version of this var with _FILE appended # and convert the contents to the env var value file_env ${env_var} From 3d36d0445c23d259e22a37927dac40853eeb19f3 Mon Sep 17 00:00:00 2001 From: Dennis Gaida <2392217+DennisGaida@users.noreply.github.com> Date: Sat, 13 Aug 2022 13:09:02 +0200 Subject: [PATCH 116/348] Hide credentials from log --- docker/wait-for-redis.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docker/wait-for-redis.py b/docker/wait-for-redis.py index 8ceae1ba9..576546150 100755 --- a/docker/wait-for-redis.py +++ b/docker/wait-for-redis.py @@ -7,6 +7,7 @@ a certain number of times, waiting a little bit in between import os import sys import time +import re from typing import Final from redis import Redis @@ -17,8 +18,14 @@ if __name__ == "__main__": RETRY_SLEEP_SECONDS: Final[int] = 5 REDIS_URL: Final[str] = os.getenv("PAPERLESS_REDIS", "redis://localhost:6379") + matches = re.match(r"(?P.*//)(?P.*\@)?(?P.*)", REDIS_URL) - print(f"Waiting for Redis: {REDIS_URL}", flush=True) + credentials="" + if (matches.group("credentials") is not None): + credentials="xxx:xxx@" + redisurl="{0}{1}{2}".format(matches.group("protocol"), credentials, matches.group("host")) + + print(f"Waiting for Redis: {redisurl}", flush=True) attempt = 0 with Redis.from_url(url=REDIS_URL) as client: @@ -37,8 +44,8 @@ if __name__ == "__main__": attempt += 1 if attempt >= MAX_RETRY_COUNT: - print(f"Failed to connect to: {REDIS_URL}") + print(f"Failed to connect to: {redisurl}") sys.exit(os.EX_UNAVAILABLE) else: - print(f"Connected to Redis broker: {REDIS_URL}") + print(f"Connected to Redis broker: {redisurl}") sys.exit(os.EX_OK) From 9cbc74ebb2bb53586da3edcf6b8af0f98a223795 Mon Sep 17 00:00:00 2001 From: Dennis Gaida <2392217+DennisGaida@users.noreply.github.com> Date: Mon, 15 Aug 2022 23:18:53 +0200 Subject: [PATCH 117/348] remove redis URL from log --- docker/wait-for-redis.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/docker/wait-for-redis.py b/docker/wait-for-redis.py index 576546150..86f35a7cf 100755 --- a/docker/wait-for-redis.py +++ b/docker/wait-for-redis.py @@ -7,7 +7,6 @@ a certain number of times, waiting a little bit in between import os import sys import time -import re from typing import Final from redis import Redis @@ -18,14 +17,8 @@ if __name__ == "__main__": RETRY_SLEEP_SECONDS: Final[int] = 5 REDIS_URL: Final[str] = os.getenv("PAPERLESS_REDIS", "redis://localhost:6379") - matches = re.match(r"(?P.*//)(?P.*\@)?(?P.*)", REDIS_URL) - credentials="" - if (matches.group("credentials") is not None): - credentials="xxx:xxx@" - redisurl="{0}{1}{2}".format(matches.group("protocol"), credentials, matches.group("host")) - - print(f"Waiting for Redis: {redisurl}", flush=True) + print(f"Waiting for Redis...", flush=True) attempt = 0 with Redis.from_url(url=REDIS_URL) as client: @@ -44,8 +37,8 @@ if __name__ == "__main__": attempt += 1 if attempt >= MAX_RETRY_COUNT: - print(f"Failed to connect to: {redisurl}") + print(f"Failed to connect to redis using environment variable PAPERLESS_REDIS.") sys.exit(os.EX_UNAVAILABLE) else: - print(f"Connected to Redis broker: {redisurl}") + print(f"Connected to Redis broker.") sys.exit(os.EX_OK) From f2cab81aed261ea18ed50fdc73acedd11bd46db2 Mon Sep 17 00:00:00 2001 From: glassbox-sco <57235495+glassbox-sco@users.noreply.github.com> Date: Wed, 17 Aug 2022 00:09:21 +0100 Subject: [PATCH 118/348] Update scanners.rst --- docs/scanners.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/scanners.rst b/docs/scanners.rst index f38a3164f..b89ff6685 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -54,6 +54,8 @@ Physical scanners +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | Doxie | `Q2`_ | | | | | | yes |`Unkn0wnCat`_ | +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ +| HP | `MFP M277 dw ` | yes | | | yes | | yes |`glassbox_sco` | ++---------+-------------------+-----+------+-----+----------+------+----------+----------------+ .. _MFC-L5850DW: https://www.brother-usa.com/products/mfcl5850dw .. _MFC-L2750DW: https://www.brother.de/drucker/laserdrucker/mfc-l2750dw @@ -73,6 +75,7 @@ Physical scanners .. _ix500: http://www.fujitsu.com/us/products/computing/peripheral/scanners/scansnap/ix500/ .. _S1300i: https://www.fujitsu.com/global/products/computing/peripheral/scanners/soho/s1300i/ .. _Q2: https://www.getdoxie.com/product/doxie-q/ +.. MFP M277 dw https://support.hp.com/us-en/drivers/selfservice/hp-color-laserjet-mfp-m277-series/7089945/model/7089949 .. _ayounggun: https://github.com/ayounggun .. _bmsleight: https://github.com/bmsleight From 1ec73518426975adfa50a82082d8ebbb6f09c732 Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Tue, 16 Aug 2022 19:44:48 -0700 Subject: [PATCH 119/348] Minor doc fixes --- docs/scanners.rst | 5 +++-- docs/setup.rst | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/scanners.rst b/docs/scanners.rst index b89ff6685..3e0210cce 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -54,7 +54,7 @@ Physical scanners +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | Doxie | `Q2`_ | | | | | | yes |`Unkn0wnCat`_ | +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| HP | `MFP M277 dw ` | yes | | | yes | | yes |`glassbox_sco` | +| HP | `MFP M277 dw`_ | yes | | | yes | | yes |`glassbox_sco`_ | +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ .. _MFC-L5850DW: https://www.brother-usa.com/products/mfcl5850dw @@ -75,7 +75,7 @@ Physical scanners .. _ix500: http://www.fujitsu.com/us/products/computing/peripheral/scanners/scansnap/ix500/ .. _S1300i: https://www.fujitsu.com/global/products/computing/peripheral/scanners/soho/s1300i/ .. _Q2: https://www.getdoxie.com/product/doxie-q/ -.. MFP M277 dw https://support.hp.com/us-en/drivers/selfservice/hp-color-laserjet-mfp-m277-series/7089945/model/7089949 +.. _MFP M277 dw: https://support.hp.com/us-en/drivers/selfservice/hp-color-laserjet-mfp-m277-series/7089945/model/7089949 .. _ayounggun: https://github.com/ayounggun .. _bmsleight: https://github.com/bmsleight @@ -92,6 +92,7 @@ Physical scanners .. _philpagel: https://github.com/philpagel .. _eingemaischt: https://github.com/eingemaischt .. _derlucas: https://github.com/derlucas +.. _glassbox_sco: https://github.com/glassbox_sco .. [1] Scanners with API Integration allow to push scanned documents directly to :ref:`Paperless API `, sometimes referred to as Webhook or Document POST. .. [2] Canon Multi Function Printers show strange behavior over SMB. They close and reopen the file after every page. It's recommended to tune the diff --git a/docs/setup.rst b/docs/setup.rst index 3aea55467..decb1ed65 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -224,6 +224,7 @@ Install Paperless from Docker Hub You can utilize Docker secrets for some configuration settings by appending `_FILE` to some configuration values. This is supported currently only by: + * PAPERLESS_DBUSER * PAPERLESS_DBPASS * PAPERLESS_SECRET_KEY From a4c4b81297445365602f2c460b617dffa3a63f2b Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Wed, 17 Aug 2022 08:30:40 -0700 Subject: [PATCH 120/348] Manually link authors only in docs/changelog.md --- .github/release-drafter.yml | 5 +---- .github/workflows/ci.yml | 2 ++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index f16f71d55..a23fc7165 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -35,11 +35,8 @@ include-labels: - 'frontend' - 'backend' - 'ci-cd' -replacers: # Changes "Feature: Update checker" to "Update checker" - - search: '/Feature:?|Feat:?|\[feature\]/gi' - replace: '' category-template: '### $TITLE' -change-template: '- $TITLE [@$AUTHOR](https://github.com/$AUTHOR) ([#$NUMBER]($URL))' +change-template: '- $TITLE @$AUTHOR ([#$NUMBER]($URL))' change-title-escapes: '\<*_&#@' template: | ## paperless-ngx $RESOLVED_VERSION diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d7f57cde5..cf86d0c82 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -372,6 +372,8 @@ jobs: git branch ${{ needs.publish-release.outputs.version }}-changelog git checkout ${{ needs.publish-release.outputs.version }}-changelog echo -e "# Changelog\n\n${{ needs.publish-release.outputs.changelog }}\n" > changelog-new.md + echo "Manually linking usernames" + sed -i -r 's|@(.+?) \(\[#|[@\1](https://github.com/\1) ([#|ig' changelog-new.md CURRENT_CHANGELOG=`tail --lines +2 changelog.md` echo -e "$CURRENT_CHANGELOG" >> changelog-new.md mv changelog-new.md changelog.md From eec1f03f867e31a5fda259a8c689b5e00b3beaed Mon Sep 17 00:00:00 2001 From: Felix Eckhofer Date: Thu, 18 Aug 2022 11:32:44 +0200 Subject: [PATCH 121/348] Use redis image tag :7 --- docker/compose/docker-compose.portainer.yml | 2 +- docker/compose/docker-compose.postgres-tika.yml | 2 +- docker/compose/docker-compose.postgres.yml | 2 +- docker/compose/docker-compose.sqlite-tika.yml | 2 +- docker/compose/docker-compose.sqlite.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docker/compose/docker-compose.portainer.yml b/docker/compose/docker-compose.portainer.yml index fa34735b9..c3720e213 100644 --- a/docker/compose/docker-compose.portainer.yml +++ b/docker/compose/docker-compose.portainer.yml @@ -31,7 +31,7 @@ version: "3.4" services: broker: - image: docker.io/library/redis:6.0 + image: docker.io/library/redis:7 restart: unless-stopped volumes: - redisdata:/data diff --git a/docker/compose/docker-compose.postgres-tika.yml b/docker/compose/docker-compose.postgres-tika.yml index df2023e91..39bb67ccf 100644 --- a/docker/compose/docker-compose.postgres-tika.yml +++ b/docker/compose/docker-compose.postgres-tika.yml @@ -33,7 +33,7 @@ version: "3.4" services: broker: - image: docker.io/library/redis:6.0 + image: docker.io/library/redis:7 restart: unless-stopped volumes: - redisdata:/data diff --git a/docker/compose/docker-compose.postgres.yml b/docker/compose/docker-compose.postgres.yml index 85c70f1a3..5a2ab2496 100644 --- a/docker/compose/docker-compose.postgres.yml +++ b/docker/compose/docker-compose.postgres.yml @@ -29,7 +29,7 @@ version: "3.4" services: broker: - image: docker.io/library/redis:6.0 + image: docker.io/library/redis:7 restart: unless-stopped volumes: - redisdata:/data diff --git a/docker/compose/docker-compose.sqlite-tika.yml b/docker/compose/docker-compose.sqlite-tika.yml index 35f3a358a..7ff8327ba 100644 --- a/docker/compose/docker-compose.sqlite-tika.yml +++ b/docker/compose/docker-compose.sqlite-tika.yml @@ -33,7 +33,7 @@ version: "3.4" services: broker: - image: docker.io/library/redis:6.0 + image: docker.io/library/redis:7 restart: unless-stopped volumes: - redisdata:/data diff --git a/docker/compose/docker-compose.sqlite.yml b/docker/compose/docker-compose.sqlite.yml index f1f3a02d4..5f5b9063b 100644 --- a/docker/compose/docker-compose.sqlite.yml +++ b/docker/compose/docker-compose.sqlite.yml @@ -26,7 +26,7 @@ version: "3.4" services: broker: - image: docker.io/library/redis:6.0 + image: docker.io/library/redis:7 restart: unless-stopped volumes: - redisdata:/data From edabf208bc15fbf7cbead983e02cc59258f6a59f Mon Sep 17 00:00:00 2001 From: Stefan Date: Wed, 17 Aug 2022 10:40:51 +0200 Subject: [PATCH 122/348] Handle tags for gmail email accounts like mentioned here: https://github.com/ikvk/imap_tools/issues/174 --- src/paperless_mail/mail.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index e1357d958..e7991e25b 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -1,4 +1,5 @@ import os +import re import tempfile from datetime import date from datetime import timedelta @@ -70,7 +71,11 @@ class TagMailAction(BaseMailAction): return {"no_keyword": self.keyword} def post_consume(self, M: MailBox, message_uids, parameter): - M.flag(message_uids, [self.keyword], True) + if re.search(r"gmail\.com$|googlemail\.com$", M._host): + for uid in message_uids: + M.client.uid("STORE", uid, 'X-GM-LABELS', self.keyword) + else: + M.flag(message_uids, [self.keyword], True) def get_rule_action(rule): From 5c49bbfc73afd2459c8bbdf694a85b7a500f1090 Mon Sep 17 00:00:00 2001 From: Stefan Date: Wed, 17 Aug 2022 11:18:48 +0200 Subject: [PATCH 123/348] fix formatting --- src/paperless_mail/mail.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index e7991e25b..3896a9348 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -73,7 +73,7 @@ class TagMailAction(BaseMailAction): def post_consume(self, M: MailBox, message_uids, parameter): if re.search(r"gmail\.com$|googlemail\.com$", M._host): for uid in message_uids: - M.client.uid("STORE", uid, 'X-GM-LABELS', self.keyword) + M.client.uid("STORE", uid, "X-GM-LABELS", self.keyword) else: M.flag(message_uids, [self.keyword], True) From 9bb762fc8f76eb8ac44ee0b39e519e90ae8e9a25 Mon Sep 17 00:00:00 2001 From: Stefan Date: Wed, 17 Aug 2022 11:34:21 +0200 Subject: [PATCH 124/348] fix mail tests --- src/paperless_mail/tests/test_mail.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index 2aaa588d6..0c85013ae 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -65,6 +65,7 @@ class BogusMailBox(ContextManager): self.messages_spam: List[MailMessage] = [] self.folder = BogusFolderManager() self.client = BogusClient() + self._host = "" def login(self, username, password): # This will raise a UnicodeEncodeError if the password is not ASCII only From 260b709296ae31d32334bd6b1cc3d1d07241b32e Mon Sep 17 00:00:00 2001 From: Stefan Date: Thu, 18 Aug 2022 13:02:33 +0200 Subject: [PATCH 125/348] add test for gmail account tag handling --- src/paperless_mail/tests/test_mail.py | 49 ++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index 0c85013ae..67293c6f5 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -46,12 +46,30 @@ class BogusFolderManager: class BogusClient: + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + pass + + def __init__(self, messages): + self.messages: List[MailMessage] = messages + def authenticate(self, mechanism, authobject): # authobject must be a callable object auth_bytes = authobject(None) if auth_bytes != b"\x00admin\x00w57\xc3\xa4\xc3\xb6\xc3\xbcw4b6huwb6nhu": raise MailboxLoginError("BAD", "OK") + def uid(self, command, *args): + if command == "STORE": + for message in self.messages: + if message.uid == args[0]: + flag = args[2] + if flag == "processed": + message._raw_flag_data.append(f"+FLAGS (processed)".encode()) + MailMessage.flags.fget.cache_clear() + class BogusMailBox(ContextManager): def __enter__(self): @@ -64,9 +82,12 @@ class BogusMailBox(ContextManager): self.messages: List[MailMessage] = [] self.messages_spam: List[MailMessage] = [] self.folder = BogusFolderManager() - self.client = BogusClient() + self.client = BogusClient(self.messages) self._host = "" + def updateClient(self): + self.client = BogusClient(self.messages) + def login(self, username, password): # This will raise a UnicodeEncodeError if the password is not ASCII only password.encode("ascii") @@ -248,6 +269,7 @@ class TestMail(DirectoriesMixin, TestCase): seen=False, ), ) + self.bogus_mailbox.updateClient() def test_get_correspondent(self): message = namedtuple("MailMessage", []) @@ -608,6 +630,31 @@ class TestMail(DirectoriesMixin, TestCase): self.assertEqual(len(self.bogus_mailbox.fetch("UNKEYWORD processed", False)), 0) self.assertEqual(len(self.bogus_mailbox.messages), 3) + def test_handle_mail_mail_account_tag_gmail(self): + self.bogus_mailbox._host = "imap.gmail.com" + + account = MailAccount.objects.create( + name="test", + imap_server="", + username="admin", + password="secret", + ) + + _ = MailRule.objects.create( + name="testrule", + account=account, + action=MailRule.MailAction.TAG, + action_parameter="processed", + ) + + self.assertEqual(len(self.bogus_mailbox.messages), 3) + self.assertEqual(self.async_task.call_count, 0) + self.assertEqual(len(self.bogus_mailbox.fetch("UNKEYWORD processed", False)), 2) + self.mail_account_handler.handle_mail_account(account) + self.assertEqual(self.async_task.call_count, 2) + self.assertEqual(len(self.bogus_mailbox.fetch("UNKEYWORD processed", False)), 0) + self.assertEqual(len(self.bogus_mailbox.messages), 3) + def test_error_login(self): account = MailAccount.objects.create( name="test", From f1e93eb70abb5d823af634a6cf2b0db93c56acc9 Mon Sep 17 00:00:00 2001 From: Stefan Date: Thu, 18 Aug 2022 14:09:06 +0200 Subject: [PATCH 126/348] Ignore tagged emails from gmail to avoid duplicated documents. --- src/paperless_mail/mail.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index 3896a9348..850664ee7 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -20,6 +20,7 @@ from imap_tools import MailboxFolderSelectError from imap_tools import MailBoxUnencrypted from imap_tools import MailMessage from imap_tools import MailMessageFlags +from imap_tools import NOT from imap_tools.mailbox import MailBoxTls from paperless_mail.models import MailAccount from paperless_mail.models import MailRule @@ -68,7 +69,7 @@ class TagMailAction(BaseMailAction): self.keyword = parameter def get_criteria(self): - return {"no_keyword": self.keyword} + return {"no_keyword": self.keyword, "gmail_label": self.keyword} def post_consume(self, M: MailBox, message_uids, parameter): if re.search(r"gmail\.com$|googlemail\.com$", M._host): @@ -274,6 +275,11 @@ class MailAccountHandler(LoggingMixin): ) from err criterias = make_criterias(rule) + criterias_imap = AND(**criterias) + if "gmail_label" in criterias: + gmail_label = criterias["gmail_label"] + del criterias["gmail_label"] + criterias_imap = AND(NOT(gmail_label=gmail_label), **criterias) self.log( "debug", @@ -282,7 +288,7 @@ class MailAccountHandler(LoggingMixin): try: messages = M.fetch( - criteria=AND(**criterias), + criteria=criterias_imap, mark_seen=False, charset=rule.account.character_set, ) From d80d5e4e703858f2ad6a6cbeac273acbeb8ad05a Mon Sep 17 00:00:00 2001 From: Stefan Date: Fri, 19 Aug 2022 10:36:05 +0200 Subject: [PATCH 127/348] fix debug output --- src/paperless_mail/mail.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index 850664ee7..ad1358ebe 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -283,7 +283,7 @@ class MailAccountHandler(LoggingMixin): self.log( "debug", - f"Rule {rule}: Searching folder with criteria " f"{str(AND(**criterias))}", + f"Rule {rule}: Searching folder with criteria " f"{str(criterias_imap)}", ) try: From fccea022fa01b28a5f2950e23e723d358e8c3337 Mon Sep 17 00:00:00 2001 From: Stefan Date: Fri, 19 Aug 2022 10:38:16 +0200 Subject: [PATCH 128/348] adapt test to respect gmail_label keyword --- src/paperless_mail/tests/test_mail.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index 67293c6f5..a0957a64d 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -20,6 +20,7 @@ from imap_tools import MailboxFolderSelectError from imap_tools import MailboxLoginError from imap_tools import MailMessage from imap_tools import MailMessageFlags +from imap_tools import NOT from paperless_mail import tasks from paperless_mail.mail import MailAccountHandler from paperless_mail.mail import MailError @@ -122,6 +123,9 @@ class BogusMailBox(ContextManager): tag = criteria[criteria.index("UNKEYWORD") + 1].strip("'") msg = filter(lambda m: "processed" not in m.flags, msg) + if "(X-GM-LABELS" in criteria: # ['NOT', '(X-GM-LABELS', '"processed"'] + msg = filter(lambda m: "processed" not in m.flags, msg) + return list(msg) def delete(self, uid_list): @@ -630,7 +634,7 @@ class TestMail(DirectoriesMixin, TestCase): self.assertEqual(len(self.bogus_mailbox.fetch("UNKEYWORD processed", False)), 0) self.assertEqual(len(self.bogus_mailbox.messages), 3) - def test_handle_mail_mail_account_tag_gmail(self): + def test_handle_mail_account_tag_gmail(self): self.bogus_mailbox._host = "imap.gmail.com" account = MailAccount.objects.create( @@ -649,10 +653,11 @@ class TestMail(DirectoriesMixin, TestCase): self.assertEqual(len(self.bogus_mailbox.messages), 3) self.assertEqual(self.async_task.call_count, 0) - self.assertEqual(len(self.bogus_mailbox.fetch("UNKEYWORD processed", False)), 2) + criteria = NOT(gmail_label="processed") + self.assertEqual(len(self.bogus_mailbox.fetch(criteria, False)), 2) self.mail_account_handler.handle_mail_account(account) self.assertEqual(self.async_task.call_count, 2) - self.assertEqual(len(self.bogus_mailbox.fetch("UNKEYWORD processed", False)), 0) + self.assertEqual(len(self.bogus_mailbox.fetch(criteria, False)), 0) self.assertEqual(len(self.bogus_mailbox.messages), 3) def test_error_login(self): From b3b2519bf03185aa12028fa68d3b8f8860555e6e Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Sat, 20 Aug 2022 13:47:56 -0700 Subject: [PATCH 129/348] Fixes the creation of an archive file, even if noarchive was specified --- src/paperless_tesseract/parsers.py | 5 ++- src/paperless_tesseract/tests/test_parser.py | 34 +++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/paperless_tesseract/parsers.py b/src/paperless_tesseract/parsers.py index 1cb79959a..abb3d3dfe 100644 --- a/src/paperless_tesseract/parsers.py +++ b/src/paperless_tesseract/parsers.py @@ -276,7 +276,10 @@ class RasterisedDocumentParser(DocumentParser): self.log("debug", f"Calling OCRmyPDF with args: {args}") ocrmypdf.ocr(**args) - self.archive_path = archive_path + # Only create archive file if archiving isn't being skipped + if settings.OCR_MODE != "skip_noarchive": + self.archive_path = archive_path + self.text = self.extract_text(sidecar_file, archive_path) if not self.text: diff --git a/src/paperless_tesseract/tests/test_parser.py b/src/paperless_tesseract/tests/test_parser.py index 6bf8bd5f4..700782a92 100644 --- a/src/paperless_tesseract/tests/test_parser.py +++ b/src/paperless_tesseract/tests/test_parser.py @@ -364,6 +364,16 @@ class TestParser(DirectoriesMixin, TestCase): @override_settings(OCR_MODE="skip_noarchive") def test_skip_noarchive_withtext(self): + """ + GIVEN: + - File with existing text layer + - OCR mode set to skip_noarchive + WHEN: + - Document is parsed + THEN: + - Text from images is extracted + - No archive file is created + """ parser = RasterisedDocumentParser(None) parser.parse( os.path.join(self.SAMPLE_FILES, "multi-page-digital.pdf"), @@ -377,17 +387,29 @@ class TestParser(DirectoriesMixin, TestCase): @override_settings(OCR_MODE="skip_noarchive") def test_skip_noarchive_notext(self): + """ + GIVEN: + - File with text contained in images but no text layer + - OCR mode set to skip_noarchive + WHEN: + - Document is parsed + THEN: + - Text from images is extracted + - No archive file is created + """ parser = RasterisedDocumentParser(None) parser.parse( os.path.join(self.SAMPLE_FILES, "multi-page-images.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3"], ) + self.assertIsNone(parser.archive_path) + @override_settings(OCR_MODE="skip") def test_multi_page_mixed(self): parser = RasterisedDocumentParser(None) @@ -408,6 +430,16 @@ class TestParser(DirectoriesMixin, TestCase): @override_settings(OCR_MODE="skip_noarchive") def test_multi_page_mixed_no_archive(self): + """ + GIVEN: + - File with some text contained in images and some in text layer + - OCR mode set to skip_noarchive + WHEN: + - Document is parsed + THEN: + - Text from images is extracted + - No archive file is created + """ parser = RasterisedDocumentParser(None) parser.parse( os.path.join(self.SAMPLE_FILES, "multi-page-mixed.pdf"), From 3fcbd8f3acd81d6298df3002132b260595508eb5 Mon Sep 17 00:00:00 2001 From: Gwyn Hannay Date: Sat, 18 Jun 2022 08:10:22 +0800 Subject: [PATCH 130/348] update files and model to include new field --- src-ui/src/app/data/paperless-document-metadata.ts | 2 ++ src/documents/admin.py | 1 + src/documents/consumer.py | 1 + src/documents/models.py | 10 ++++++++++ src/documents/views.py | 1 + 5 files changed, 15 insertions(+) diff --git a/src-ui/src/app/data/paperless-document-metadata.ts b/src-ui/src/app/data/paperless-document-metadata.ts index 1f9155b3a..152f69046 100644 --- a/src-ui/src/app/data/paperless-document-metadata.ts +++ b/src-ui/src/app/data/paperless-document-metadata.ts @@ -7,5 +7,7 @@ export interface PaperlessDocumentMetadata { media_filename?: string + original_filename?: string + has_archive_version?: boolean } diff --git a/src/documents/admin.py b/src/documents/admin.py index 3e3f1eb1c..6fa06c49b 100644 --- a/src/documents/admin.py +++ b/src/documents/admin.py @@ -42,6 +42,7 @@ class DocumentAdmin(admin.ModelAdmin): "checksum", "archive_filename", "archive_checksum", + "original_filename", ) list_display_links = ("title",) diff --git a/src/documents/consumer.py b/src/documents/consumer.py index 69a9efb48..bbad88b12 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -475,6 +475,7 @@ class Consumer(LoggingMixin): created=create_date, modified=create_date, storage_type=storage_type, + original_filename=self.filename ) self.apply_overrides(document) diff --git a/src/documents/models.py b/src/documents/models.py index d8e02e570..af96104e0 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -214,6 +214,16 @@ class Document(models.Model): help_text=_("Current archive filename in storage"), ) + original_filename = models.FilePathField( + _("original filename"), + max_length=1024, + editable=False, + default=None, + unique=False, + null=True, + help_text=_("The original name of the file when it was uploaded") + ) + archive_serial_number = models.IntegerField( _("archive serial number"), blank=True, diff --git a/src/documents/views.py b/src/documents/views.py index 84fc38a38..b261f37fd 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -313,6 +313,7 @@ class DocumentViewSet( "original_metadata": self.get_metadata(doc.source_path, doc.mime_type), "archive_checksum": doc.archive_checksum, "archive_media_filename": doc.archive_filename, + "original_filename": doc.original_filename, } if doc.has_archive_version: From 4194b248b9439c8d7cd5de4d31cbb49cdf6b86df Mon Sep 17 00:00:00 2001 From: Gwyn Hannay Date: Mon, 25 Jul 2022 14:40:43 +0800 Subject: [PATCH 131/348] create migration for original filename --- .../1023_document_original_filename.py | 18 ++++++++++++++++++ src/documents/models.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/documents/migrations/1023_document_original_filename.py diff --git a/src/documents/migrations/1023_document_original_filename.py b/src/documents/migrations/1023_document_original_filename.py new file mode 100644 index 000000000..53e451dba --- /dev/null +++ b/src/documents/migrations/1023_document_original_filename.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.6 on 2022-07-25 06:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('documents', '1022_paperlesstask'), + ] + + operations = [ + migrations.AddField( + model_name='document', + name='original_filename', + field=models.CharField(default=None, editable=False, help_text='The original name of the file when it was uploaded', max_length=1024, null=True, verbose_name='original filename'), + ), + ] diff --git a/src/documents/models.py b/src/documents/models.py index af96104e0..c371bc99e 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -214,7 +214,7 @@ class Document(models.Model): help_text=_("Current archive filename in storage"), ) - original_filename = models.FilePathField( + original_filename = models.CharField( _("original filename"), max_length=1024, editable=False, From e3cc5c301386d257657de5559813d46046b14eda Mon Sep 17 00:00:00 2001 From: Gwyn Hannay Date: Fri, 29 Jul 2022 20:32:07 -0700 Subject: [PATCH 132/348] format code --- src/documents/consumer.py | 2 +- .../migrations/1023_document_original_filename.py | 15 +++++++++++---- src/documents/models.py | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/documents/consumer.py b/src/documents/consumer.py index bbad88b12..9cc9b758d 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -475,7 +475,7 @@ class Consumer(LoggingMixin): created=create_date, modified=create_date, storage_type=storage_type, - original_filename=self.filename + original_filename=self.filename, ) self.apply_overrides(document) diff --git a/src/documents/migrations/1023_document_original_filename.py b/src/documents/migrations/1023_document_original_filename.py index 53e451dba..065956bd9 100644 --- a/src/documents/migrations/1023_document_original_filename.py +++ b/src/documents/migrations/1023_document_original_filename.py @@ -6,13 +6,20 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ('documents', '1022_paperlesstask'), + ("documents", "1022_paperlesstask"), ] operations = [ migrations.AddField( - model_name='document', - name='original_filename', - field=models.CharField(default=None, editable=False, help_text='The original name of the file when it was uploaded', max_length=1024, null=True, verbose_name='original filename'), + model_name="document", + name="original_filename", + field=models.CharField( + default=None, + editable=False, + help_text="The original name of the file when it was uploaded", + max_length=1024, + null=True, + verbose_name="original filename", + ), ), ] diff --git a/src/documents/models.py b/src/documents/models.py index c371bc99e..f6df273ad 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -221,7 +221,7 @@ class Document(models.Model): default=None, unique=False, null=True, - help_text=_("The original name of the file when it was uploaded") + help_text=_("The original name of the file when it was uploaded"), ) archive_serial_number = models.IntegerField( From a56de4547cb90b1c72f22997f1b828111cb8e52f Mon Sep 17 00:00:00 2001 From: Zerteax <111658582+Zerteax@users.noreply.github.com> Date: Sun, 21 Aug 2022 16:27:45 +0200 Subject: [PATCH 133/348] Changes to Redis documentation (#1441) * Added more description in PAPERLESS_REDIS * More Information on Redis * Update configuration.rst * Changed to Same as in the Documentation of Redis * Edited the link Linking directly to the Securing Redis part --- docs/configuration.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/configuration.rst b/docs/configuration.rst index fd68f61cb..94c7c2e64 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -26,6 +26,12 @@ Required services PAPERLESS_REDIS= This is required for processing scheduled tasks such as email fetching, index optimization and for training the automatic document matcher. + + * If your Redis server needs login credentials PAPERLESS_REDIS = ``redis://:@:`` + + * With the requirepass option PAPERLESS_REDIS = ``redis://:@:`` + + `More information on securing your Redis Instance `_. Defaults to redis://localhost:6379. From baeb2a074ad8b309db4ca6a5669d0a2c3b40193b Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 21 Aug 2022 08:06:56 -0700 Subject: [PATCH 134/348] Add original filename to frontend doc detail metadata --- src-ui/messages.xlf | 31 ++++++++++++------- .../document-detail.component.html | 4 +++ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index c79413a4b..b17b0ee10 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -816,7 +816,7 @@
src/app/components/document-detail/document-detail.component.html - 174 + 178 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1570,78 +1570,85 @@ 113
+ + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 117 + 121 Original file size src/app/components/document-detail/document-detail.component.html - 121 + 125 Original mime type src/app/components/document-detail/document-detail.component.html - 125 + 129 Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 129 + 133 Archive file size src/app/components/document-detail/document-detail.component.html - 133 + 137 Original document metadata src/app/components/document-detail/document-detail.component.html - 139 + 143 Archived document metadata src/app/components/document-detail/document-detail.component.html - 140 + 144 Enter Password src/app/components/document-detail/document-detail.component.html - 162 + 166 src/app/components/document-detail/document-detail.component.html - 192 + 196 Discard src/app/components/document-detail/document-detail.component.html - 172 + 176 Save & next src/app/components/document-detail/document-detail.component.html - 173 + 177 diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html index 6c8fc463f..764a587e0 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.html +++ b/src-ui/src/app/components/document-detail/document-detail.component.html @@ -113,6 +113,10 @@ Media filename {{metadata?.media_filename}} + + Original filename + {{metadata?.original_filename}} + Original MD5 checksum {{metadata?.original_checksum}} From 5e3cdcdd6e656d3b29d5e921bd75f8dda9a1c1b9 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Sun, 21 Aug 2022 08:34:40 -0700 Subject: [PATCH 135/348] Bumps all library versions which are currently working --- .pre-commit-config.yaml | 6 +- Pipfile.lock | 361 +++++++++++++++++++++------------------- 2 files changed, 189 insertions(+), 178 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 70496a4d0..b93d0fb6e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -37,12 +37,12 @@ repos: exclude: "(^Pipfile\\.lock$)" # Python hooks - repo: https://github.com/asottile/reorder_python_imports - rev: v3.8.1 + rev: v3.8.2 hooks: - id: reorder-python-imports exclude: "(migrations)" - repo: https://github.com/asottile/yesqa - rev: "v1.3.0" + rev: "v1.4.0" hooks: - id: yesqa exclude: "(migrations)" @@ -63,7 +63,7 @@ repos: hooks: - id: black - repo: https://github.com/asottile/pyupgrade - rev: v2.37.1 + rev: v2.37.3 hooks: - id: pyupgrade exclude: "(migrations)" diff --git a/Pipfile.lock b/Pipfile.lock index 88d10b2ef..ec4a7cf96 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "0caafbcf74a410e61e71cd805803e3399f29d45f7fa96bf69d342bdc11581326" + "sha256": "11e6eaa28348fb63b923ecaed91ebbc9266b2e784a1921ca32e8e4b7e8c67626" }, "pipfile-spec": 6, "requires": {}, @@ -63,15 +63,15 @@ "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "markers": "python_version >= '3.5'", "version": "==22.1.0" }, "autobahn": { "hashes": [ - "sha256:fb63e946d5c2dd0df680851e84e65624a494ce87c999f2a4944e4f2d81bf4498" + "sha256:8b462ea2e6aad6b4dc0ed45fb800b6cbfeb0325e7fe6983907f122f2be4a1fe9" ], "markers": "python_version >= '3.7'", - "version": "==22.6.1" + "version": "==22.7.1" }, "automat": { "hashes": [ @@ -205,11 +205,11 @@ }, "charset-normalizer": { "hashes": [ - "sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5", - "sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413" + "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", + "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], "markers": "python_version >= '3.6'", - "version": "==2.1.0" + "version": "==2.1.1" }, "click": { "hashes": [ @@ -344,7 +344,7 @@ "django-q": { "editable": true, "git": "https://github.com/paperless-ngx/django-q.git", - "ref": "bf20d57f859a7d872d5979cd8879fac9c9df981c" + "ref": "9838d0da2e6a3bc7b3944542ab581138a213872d" }, "djangorestframework": { "hashes": [ @@ -356,11 +356,11 @@ }, "filelock": { "hashes": [ - "sha256:37def7b658813cda163b56fc564cdc75e86d338246458c4c28ae84cabefa2404", - "sha256:3a0fd85166ad9dbab54c9aec96737b744106dc5f15c0b09a6744a445299fcf04" + "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc", + "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4" ], "index": "pypi", - "version": "==3.7.1" + "version": "==3.8.0" }, "fuzzywuzzy": { "extras": [ @@ -517,7 +517,6 @@ "sha256:5481e97fb45af8dcf2f798952625591c58fe599d0735d86b10f54de086a61681", "sha256:f78a8df21a79bcc30cfd400bdc38f314333de7c0fb619763f6b9dabab8268bb7" ], - "index": "pypi", "markers": "python_version < '3.9'", "version": "==5.9.0" }, @@ -695,31 +694,37 @@ }, "numpy": { "hashes": [ - "sha256:1408c3527a74a0209c781ac82bde2182b0f0bf54dea6e6a363fe0cc4488a7ce7", - "sha256:173f28921b15d341afadf6c3898a34f20a0569e4ad5435297ba262ee8941e77b", - "sha256:1865fdf51446839ca3fffaab172461f2b781163f6f395f1aed256b1ddc253622", - "sha256:3119daed207e9410eaf57dcf9591fdc68045f60483d94956bee0bfdcba790953", - "sha256:35590b9c33c0f1c9732b3231bb6a72d1e4f77872390c47d50a615686ae7ed3fd", - "sha256:37e5ebebb0eb54c5b4a9b04e6f3018e16b8ef257d26c8945925ba8105008e645", - "sha256:37ece2bd095e9781a7156852e43d18044fd0d742934833335599c583618181b9", - "sha256:3ab67966c8d45d55a2bdf40701536af6443763907086c0a6d1232688e27e5447", - "sha256:47f10ab202fe4d8495ff484b5561c65dd59177949ca07975663f4494f7269e3e", - "sha256:55df0f7483b822855af67e38fb3a526e787adf189383b4934305565d71c4b148", - "sha256:5d732d17b8a9061540a10fda5bfeabca5785700ab5469a5e9b93aca5e2d3a5fb", - "sha256:68b69f52e6545af010b76516f5daaef6173e73353e3295c5cb9f96c35d755641", - "sha256:7e8229f3687cdadba2c4faef39204feb51ef7c1a9b669247d49a24f3e2e1617c", - "sha256:8002574a6b46ac3b5739a003b5233376aeac5163e5dcd43dd7ad062f3e186129", - "sha256:876f60de09734fbcb4e27a97c9a286b51284df1326b1ac5f1bf0ad3678236b22", - "sha256:9ce242162015b7e88092dccd0e854548c0926b75c7924a3495e02c6067aba1f5", - "sha256:a35c4e64dfca659fe4d0f1421fc0f05b8ed1ca8c46fb73d9e5a7f175f85696bb", - "sha256:aeba539285dcf0a1ba755945865ec61240ede5432df41d6e29fab305f4384db2", - "sha256:b15c3f1ed08df4980e02cc79ee058b788a3d0bef2fb3c9ca90bb8cbd5b8a3a04", - "sha256:c2f91f88230042a130ceb1b496932aa717dcbd665350beb821534c5c7e15881c", - "sha256:d748ef349bfef2e1194b59da37ed5a29c19ea8d7e6342019921ba2ba4fd8b624", - "sha256:e0d7447679ae9a7124385ccf0ea990bb85bb869cef217e2ea6c844b6a6855073" + "sha256:17e5226674f6ea79e14e3b91bfbc153fdf3ac13f5cc54ee7bc8fdbe820a32da0", + "sha256:2bd879d3ca4b6f39b7770829f73278b7c5e248c91d538aab1e506c628353e47f", + "sha256:4f41f5bf20d9a521f8cab3a34557cd77b6f205ab2116651f12959714494268b0", + "sha256:5593f67e66dea4e237f5af998d31a43e447786b2154ba1ad833676c788f37cde", + "sha256:5e28cd64624dc2354a349152599e55308eb6ca95a13ce6a7d5679ebff2962913", + "sha256:633679a472934b1c20a12ed0c9a6c9eb167fbb4cb89031939bfd03dd9dbc62b8", + "sha256:806970e69106556d1dd200e26647e9bee5e2b3f1814f9da104a943e8d548ca38", + "sha256:806cc25d5c43e240db709875e947076b2826f47c2c340a5a2f36da5bb10c58d6", + "sha256:8247f01c4721479e482cc2f9f7d973f3f47810cbc8c65e38fd1bbd3141cc9842", + "sha256:8ebf7e194b89bc66b78475bd3624d92980fca4e5bb86dda08d677d786fefc414", + "sha256:8ecb818231afe5f0f568c81f12ce50f2b828ff2b27487520d85eb44c71313b9e", + "sha256:8f9d84a24889ebb4c641a9b99e54adb8cab50972f0166a3abc14c3b93163f074", + "sha256:909c56c4d4341ec8315291a105169d8aae732cfb4c250fbc375a1efb7a844f8f", + "sha256:9b83d48e464f393d46e8dd8171687394d39bc5abfe2978896b77dc2604e8635d", + "sha256:ac987b35df8c2a2eab495ee206658117e9ce867acf3ccb376a19e83070e69418", + "sha256:b78d00e48261fbbd04aa0d7427cf78d18401ee0abd89c7559bbf422e5b1c7d01", + "sha256:b8b97a8a87cadcd3f94659b4ef6ec056261fa1e1c3317f4193ac231d4df70215", + "sha256:bd5b7ccae24e3d8501ee5563e82febc1771e73bd268eef82a1e8d2b4d556ae66", + "sha256:bdc02c0235b261925102b1bd586579b7158e9d0d07ecb61148a1799214a4afd5", + "sha256:be6b350dfbc7f708d9d853663772a9310783ea58f6035eec649fb9c4371b5389", + "sha256:c403c81bb8ffb1c993d0165a11493fd4bf1353d258f6997b3ee288b0a48fce77", + "sha256:cf8c6aed12a935abf2e290860af8e77b26a042eb7f2582ff83dc7ed5f963340c", + "sha256:d98addfd3c8728ee8b2c49126f3c44c703e2b005d4a95998e2167af176a9e722", + "sha256:dc76bca1ca98f4b122114435f83f1fcf3c0fe48e4e6f660e07996abf2f53903c", + "sha256:dec198619b7dbd6db58603cd256e092bcadef22a796f778bf87f8592b468441d", + "sha256:df28dda02c9328e122661f399f7655cdcbcf22ea42daa3650a26bce08a187450", + "sha256:e603ca1fb47b913942f3e660a15e55a9ebca906857edfea476ae5f0fe9b457d5", + "sha256:ecfdd68d334a6b97472ed032b5b37a30d8217c097acfff15e8452c710e775524" ], "markers": "python_version >= '3.8'", - "version": "==1.23.1" + "version": "==1.23.2" }, "ocrmypdf": { "hashes": [ @@ -739,11 +744,11 @@ }, "pathvalidate": { "hashes": [ - "sha256:8dbbc64e78e874ddff049ac187499d8bf34f890adb8b7f657e134a842832d3b9", - "sha256:bbc27e653335aba7935a2ade2299622e76a9487bc9004cdcf1441ce8d2ff4a54" + "sha256:5ff57d0fabe5ecb7a4f1e4957bfeb5ad8ab5ab4c0fa71f79c6bbc24bd9b7d14d", + "sha256:e39a4dfacdba70e3a96d3e4c6ff617a39e991cf242e6e1f2017f1f67c3408d33" ], "index": "pypi", - "version": "==2.5.1" + "version": "==2.5.2" }, "pdf2image": { "hashes": [ @@ -763,41 +768,40 @@ }, "pikepdf": { "hashes": [ - "sha256:1bc680f9bc26fabe733b8db4b330b453793651e482917b000bb7471873758519", - "sha256:1bc68d7f36c1570c9cc28b2f8c0ecb9bcd3657306f4ce4b8c1711169de983e87", - "sha256:242309c366e7f84f35ed350da629910e35584aa10176599faa0265e2066de04c", - "sha256:2a7df0a8340ef05bb7a7c42383f37df59b6ee0c9ec59810206b8b4086bcd711c", - "sha256:2b1a61b4deac7c6d1313b7669d3ac0fcb2d8ae6d942e95c70bcc292da607752c", - "sha256:37bf6c9bb441b3f719eb59aef66b2803a852f9447bac42131a25f5f11769c60f", - "sha256:41d4bd09d9ba7b3517b5bd5aa6c07ebe0222f79b00fecda53a3ff65032431115", - "sha256:439d1123768447d3e1699eecedfebb3d66fc08e11f58558b91ca16c882db8de7", - "sha256:48069359ab11b181ac06a47ae1d80cc59c486261f2295d59b6f90e18f543a11a", - "sha256:4e4b9f288060ef04508ce030e7797a753c53f94fcd54a7f1ef61a112e976d9aa", - "sha256:52dba73bf2220f356eb8dcc4a7d1cd68f2e6166f2c0fab1c5cad33689cf81fa3", - "sha256:7835681bed0bf4bf97842c286639d99586ae2cf3a05f4fe3bc3a1422f7a90318", - "sha256:86a5feeaf22a426f466a5e2dce23382dd0a4306b34679777f6d5637be889eb2a", - "sha256:8b066a4da175e73945877fe0726e3da4db5b4f7efae553ff954b991e0c58aea3", - "sha256:8f3a056f7a5647c91fc0861e8ae011c6dd7ecdf6c622ff483739c74887fc3eaa", - "sha256:9f4378221d8698bda01f093ae7b6f6aa93450cc2d467f039099238cf6dbe00dd", - "sha256:a843bce388967a7ca65e1abfea9478362e0bb761cf27c19992576f345a816268", - "sha256:a84ca5b4ee4374eb15abf52fe902e4d773f55b119f075f033e9862e536c206b9", - "sha256:b06816b473b0b9a4d50a8a17b1298dfca9e0a73943938cabbaa31fb12e1a55af", - "sha256:c1b0cfa0058f5dbc18c2565f02d6f7f7ab629a0a0699edbe96f0446b10f14c39", - "sha256:c23cac76a421fc926f2cdc6bc88309bcf2e64b72f4e9fb130d61d6dbb8965641", - "sha256:c2a75f73a8585d3b57b26e2c857a84d1a167bae6a0cfccb1e671aa285e87beb8", - "sha256:c980f0b1b93e556eb27ac483d7d4cc61568a2945e73c9c261210538c64d1e44b", - "sha256:d34071d0033769284fbbd20946327886c0044ffbed8718871be01a806dae2f92", - "sha256:d382a4ba2c628a4bd8da1907ebc0c2fa1c369a0b20b633b3ed85aaf7377f40cc", - "sha256:df9bea9b7e0b4a72388740d974cb6fa54e33327a885d6d01501b0162fa03cb4f", - "sha256:e209560debb1f933eb31457130c91f3d0d2e002899cf7f1f3509825c52eec63f", - "sha256:e3488ec916662ee1b8511a45427b4a5b09ffbf41dd8a64813235f9a3b512dcad", - "sha256:f12b86fd47e5bb42d6a6b94582c9793a64d47939b08ae1b3c3325460e2f7fdfd", - "sha256:f6cb2c8974958f6b5d8c1a275c713aeaa025ddf2e9b5bba69e15489c82cefd64", - "sha256:fbdda6a8baf83c8f47d11214e12cdcf2331b750db1bcb155c5f3138b1ac11856", - "sha256:fcbc554517f4b0f6303a5bb30bce7738fbee88972ce35ae80ab74798af18006d" + "sha256:09fd6ad782a93a1f7599771132502c7ca4ac6473527925cd822f61f0740e1401", + "sha256:1a1c65c3b66370492a4de982fd4ad8f9ced0d7529dc39f03b58d713c8b5bdce1", + "sha256:2cbb53f1d2979a52f4cd2b4a12410e537dc854ab28093b56dab00864dc0090c4", + "sha256:3c85e79a297c77436c11a09b72ff69f5408ad8d1926c33f5722405c8c70b69af", + "sha256:3df3e39720b68e78c2690e3c4ca95d586b3ebcb099defe7f3ed92189c1b80c70", + "sha256:4534efdcde2d5f7a8cad336393c0cb9c5a38d28c91ac4d8e1c5d32d1cf03cb84", + "sha256:4ec70c09f94220c1a275baf6973c7ab0f1fb4309ee7a8c000abcc7ea351bd2a2", + "sha256:53efd1db3cf828cbdb9bc691a118bc7261f99e395f439c92c6f38e5ac7a47093", + "sha256:53f253be2df5cd72594dd7518a20bf8c9df391510557ed065f74bf66b09cd9f1", + "sha256:5e70a77d7bd41277559af46aa2d7b538fcf79cad15cf9493eee1228dae7b015b", + "sha256:62dab267b5c37e5ca69864b4125cfd60462567f4120506ec6439a76ca9c50e6f", + "sha256:6789a8ff3635f8c830b758468a07fb907b87e0da39684b28d21990fef33f57df", + "sha256:693a3dc9b0d3b396aea92c8b3a5a7ed1c6b8eeafe819bb50df6bb9817ad1b79f", + "sha256:7447fe441a8913f984a6a6b2ea4a7776c309d3e82c738daa973e21e764e5b819", + "sha256:88b69bc4b7365e5563afe63b9c25473ef6155ad9b220fdd6110d5abbd44e578d", + "sha256:8d573ac603bc5e081480e9c31d349445c1f9f6558d51c04f98d2661c18d67e70", + "sha256:9159798c95c0f25ffb0a1610e26b9d412cd0936f041fb77be8abaab9dc69ed3d", + "sha256:999bf1c23a393a72503bab7241cf2f6e785e6064e9eb20f64a4499a028da477d", + "sha256:9dd51dbdfa0470135cced6f14ef77ab2d2478f15711b1376984702191ef7625b", + "sha256:a6fa014b9c49e6a8fab37b0ac6a775ad9254df24d8468a554ec9a38f610afd1e", + "sha256:a8b92effd2de2abf1935f4308f42f6321053f49c0750ac4a4e3dc93fb4ba27f1", + "sha256:af1a3488057e3a7f5bc1b81e914b59cea997e2db9d67071f94a1f01588e561a3", + "sha256:b530abc08a7b15fb3721f0fdc0189c071fa53f87828fcf8b5e80fc6f9a377f08", + "sha256:bd0004901bd253dbe3ebd040fe23430c4a87235f4d55a1d8169b6d9ea7443f69", + "sha256:c51f53f77dc4d4fb147b3175224e3646922377b9c222b41e513495145291fe7c", + "sha256:c85c49b0d5462664105d8566070e04a54473951dfc6404d0945cb877b942c562", + "sha256:c9352a909f7c6cbcb743d1510fdbfdd7f2bf42fdd4f34b0234558d24bdb2f738", + "sha256:c94af61eb542289b4411ebcb8d46ccce678eaca1f9dfd1cfe720bd3ea75a4839", + "sha256:d4e57f973c7cd50ba0a964aae680f4d1d814c49205b8da018a956260ce3a09d6", + "sha256:d5df4d0dbdda627ea8d4c593a16f7af6c1e3d4f7a34f9ffacecc805e47738c21", + "sha256:f01e0e889769dc9995086faba97d947437cd92284a4ffc743c29e1872ddc9f4b" ], "index": "pypi", - "version": "==5.4.2" + "version": "==5.5.0" }, "pillow": { "hashes": [ @@ -994,10 +998,10 @@ }, "pytz": { "hashes": [ - "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7", - "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c" + "sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197", + "sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5" ], - "version": "==2022.1" + "version": "==2022.2.1" }, "pytz-deprecation-shim": { "hashes": [ @@ -1194,27 +1198,27 @@ }, "scikit-learn": { "hashes": [ - "sha256:0403ad13f283e27d43b0ad875f187ec7f5d964903d92d1ed06c51439560ecea0", - "sha256:102f51797cd8944bf44a038d106848ddf2804f2c1edf7aea45fba81a4fdc4d80", - "sha256:22145b60fef02e597a8e7f061ebc7c51739215f11ce7fcd2ca9af22c31aa9f86", - "sha256:33cf061ed0b79d647a3e4c3f6c52c412172836718a7cd4d11c1318d083300133", - "sha256:3be10d8d325821ca366d4fe7083d87c40768f842f54371a9c908d97c45da16fc", - "sha256:3e77b71e8e644f86c8b5be7f1c285ef597de4c384961389ee3e9ca36c445b256", - "sha256:45c0f6ae523353f1d99b85469d746f9c497410adff5ba8b24423705b6956a86e", - "sha256:47464c110eaa9ed9d1fe108cb403510878c3d3a40f110618d2a19b2190a3e35c", - "sha256:542ccd2592fe7ad31f5c85fed3a3deb3e252383960a85e4b49a629353fffaba4", - "sha256:723cdb278b1fa57a55f68945bc4e501a2f12abe82f76e8d21e1806cbdbef6fc5", - "sha256:8fe80df08f5b9cee5dd008eccc672e543976198d790c07e5337f7dfb67eaac05", - "sha256:8ff56d07b9507fbe07ca0f4e5c8f3e171f74a429f998da03e308166251316b34", - "sha256:b2db720e13e697d912a87c1a51194e6fb085dc6d8323caa5ca51369ca6948f78", - "sha256:b928869072366dc138762fe0929e7dc88413f8a469aebc6a64adc10a9226180c", - "sha256:c2dad2bfc502344b869d4a3f4aa7271b2a5f4fe41f7328f404844c51612e2c58", - "sha256:e851f8874398dcd50d1e174e810e9331563d189356e945b3271c0e19ee6f4d6f", - "sha256:e9d228ced1214d67904f26fb820c8abbea12b2889cd4aa8cda20a4ca0ed781c1", - "sha256:f2d5b5d6e87d482e17696a7bfa03fe9515fdfe27e462a4ad37f3d7774a5e2fd6" + "sha256:1c8fecb7c9984d9ec2ea48898229f98aad681a0873e0935f2b7f724fbce4a047", + "sha256:2b8db962360c93554cab7bb3c096c4a24695da394dd4b3c3f13409f409b425bc", + "sha256:2f46c6e3ff1054a5ec701646dcfd61d43b8ecac4d416014daed8843cf4c33d4d", + "sha256:3e7d1fc817867a350133f937aaebcafbc06192517cbdf0cf7e5774ad4d1adb9f", + "sha256:407e9a1cb9e6ba458a539986a9bd25546a757088095b3aab91d465b79a760d37", + "sha256:567417dbbe6a6278399c3e6daf1654414a5a1a4d818d28f251fa7fc28730a1bf", + "sha256:589d46f28460469f444b898223b13d99db9463e1038dc581ba698111f612264b", + "sha256:5ec3ea40d467966821843210c02117d82b097b54276fdcfb50f4dfb5c60dbe39", + "sha256:6c840f662b5d3377c4ccb8be1fc21bb52cb5d8b8790f8d6bf021739f84e543cf", + "sha256:76800652fb6d6bf527bce36ecc2cc25738b28fe1a17bd294a218fff8e8bd6d50", + "sha256:7c22d1305b16f08d57751a4ea36071e2215efb4c09cb79183faa4e8e82a3dbf8", + "sha256:a682ec0f82b6f30fb07486daed1c8001b6683cc66b51877644dfc532bece6a18", + "sha256:a90ca42fe8242fd6ff56cda2fecc5fca586a88a24ab602d275d2d0dcc0b928fb", + "sha256:b1e706deca9b2ad87ae27dafd5ac4e8eff01b6db492ed5c12cef4735ec5f21ea", + "sha256:bbef6ea1c012ff9f3e6f6e9ca006b8772d8383e177b898091e68fbd9b3f840f9", + "sha256:c33e16e9a165af6012f5be530ccfbb672e2bc5f9b840238a05eb7f6694304e3f", + "sha256:d6f232779023c3b060b80b5c82e5823723bc424dcac1d1a148aa2492c54d245d", + "sha256:f94c0146bad51daef919c402a3da8c1c6162619653e1c00c92baa168fda292f2" ], "index": "pypi", - "version": "==1.1.1" + "version": "==1.1.2" }, "scipy": { "hashes": [ @@ -1254,11 +1258,11 @@ }, "setuptools": { "hashes": [ - "sha256:273b6847ae61f7829c1affcdd9a32f67aa65233be508f4fbaab866c5faa4e408", - "sha256:d5340d16943a0f67057329db59b564e938bb3736c6e50ae16ea84d5e5d9ba6d0" + "sha256:1c664b23706b753986b0f4b13e20bb82177ab29450d5b4d5d6d244c34a2235bd", + "sha256:201d7b596b0685f2dd3aaf231a637ffda51fc61323631d915e5c55b79d2d8115" ], "markers": "python_version >= '3.7'", - "version": "==63.3.0" + "version": "==65.1.1" }, "six": { "hashes": [ @@ -1336,11 +1340,11 @@ }, "tzdata": { "hashes": [ - "sha256:238e70234214138ed7b4e8a0fab0e5e13872edab3be586ab8198c407620e2ab9", - "sha256:8b536a8ec63dc0751342b3984193a3118f8fca2afe25752bb9b7fffd398552d3" + "sha256:21f4f0d7241572efa7f7a4fdabb052e61b55dc48274e6842697ccdf5253e5451", + "sha256:c3119520447d68ef3eb8187a55a4f44fa455f30eb1b4238fa5691ba094f2b05b" ], "markers": "python_version >= '3.6'", - "version": "==2022.1" + "version": "==2022.2" }, "tzlocal": { "hashes": [ @@ -1596,7 +1600,6 @@ "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2", "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009" ], - "index": "pypi", "markers": "python_version < '3.9'", "version": "==3.8.1" }, @@ -1671,7 +1674,7 @@ "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6", "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "markers": "python_version >= '3.5'", "version": "==22.1.0" }, "babel": { @@ -1729,11 +1732,11 @@ }, "charset-normalizer": { "hashes": [ - "sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5", - "sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413" + "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", + "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], "markers": "python_version >= '3.6'", - "version": "==2.1.0" + "version": "==2.1.1" }, "click": { "hashes": [ @@ -1756,50 +1759,59 @@ "toml" ], "hashes": [ - "sha256:0895ea6e6f7f9939166cc835df8fa4599e2d9b759b02d1521b574e13b859ac32", - "sha256:0f211df2cba951ffcae210ee00e54921ab42e2b64e0bf2c0befc977377fb09b7", - "sha256:147605e1702d996279bb3cc3b164f408698850011210d133a2cb96a73a2f7996", - "sha256:24b04d305ea172ccb21bee5bacd559383cba2c6fcdef85b7701cf2de4188aa55", - "sha256:25b7ec944f114f70803d6529394b64f8749e93cbfac0fe6c5ea1b7e6c14e8a46", - "sha256:2b20286c2b726f94e766e86a3fddb7b7e37af5d0c635bdfa7e4399bc523563de", - "sha256:2dff52b3e7f76ada36f82124703f4953186d9029d00d6287f17c68a75e2e6039", - "sha256:2f8553878a24b00d5ab04b7a92a2af50409247ca5c4b7a2bf4eabe94ed20d3ee", - "sha256:3def6791adf580d66f025223078dc84c64696a26f174131059ce8e91452584e1", - "sha256:422fa44070b42fef9fb8dabd5af03861708cdd6deb69463adc2130b7bf81332f", - "sha256:4f89d8e03c8a3757aae65570d14033e8edf192ee9298303db15955cadcff0c63", - "sha256:5336e0352c0b12c7e72727d50ff02557005f79a0b8dcad9219c7c4940a930083", - "sha256:54d8d0e073a7f238f0666d3c7c0d37469b2aa43311e4024c925ee14f5d5a1cbe", - "sha256:5ef42e1db047ca42827a85e34abe973971c635f83aed49611b7f3ab49d0130f0", - "sha256:5f65e5d3ff2d895dab76b1faca4586b970a99b5d4b24e9aafffc0ce94a6022d6", - "sha256:6c3ccfe89c36f3e5b9837b9ee507472310164f352c9fe332120b764c9d60adbe", - "sha256:6d0b48aff8e9720bdec315d67723f0babd936a7211dc5df453ddf76f89c59933", - "sha256:6fe75dcfcb889b6800f072f2af5a331342d63d0c1b3d2bf0f7b4f6c353e8c9c0", - "sha256:79419370d6a637cb18553ecb25228893966bd7935a9120fa454e7076f13b627c", - "sha256:7bb00521ab4f99fdce2d5c05a91bddc0280f0afaee0e0a00425e28e209d4af07", - "sha256:80db4a47a199c4563d4a25919ff29c97c87569130375beca3483b41ad5f698e8", - "sha256:866ebf42b4c5dbafd64455b0a1cd5aa7b4837a894809413b930026c91e18090b", - "sha256:8af6c26ba8df6338e57bedbf916d76bdae6308e57fc8f14397f03b5da8622b4e", - "sha256:a13772c19619118903d65a91f1d5fea84be494d12fd406d06c849b00d31bf120", - "sha256:a697977157adc052284a7160569b36a8bbec09db3c3220642e6323b47cec090f", - "sha256:a9032f9b7d38bdf882ac9f66ebde3afb8145f0d4c24b2e600bc4c6304aafb87e", - "sha256:b5e28db9199dd3833cc8a07fa6cf429a01227b5d429facb56eccd765050c26cd", - "sha256:c77943ef768276b61c96a3eb854eba55633c7a3fddf0a79f82805f232326d33f", - "sha256:d230d333b0be8042ac34808ad722eabba30036232e7a6fb3e317c49f61c93386", - "sha256:d4548be38a1c810d79e097a38107b6bf2ff42151900e47d49635be69943763d8", - "sha256:d4e7ced84a11c10160c0697a6cc0b214a5d7ab21dfec1cd46e89fbf77cc66fae", - "sha256:d56f105592188ce7a797b2bd94b4a8cb2e36d5d9b0d8a1d2060ff2a71e6b9bbc", - "sha256:d714af0bdba67739598849c9f18efdcc5a0412f4993914a0ec5ce0f1e864d783", - "sha256:d774d9e97007b018a651eadc1b3970ed20237395527e22cbeb743d8e73e0563d", - "sha256:e0524adb49c716ca763dbc1d27bedce36b14f33e6b8af6dba56886476b42957c", - "sha256:e2618cb2cf5a7cc8d698306e42ebcacd02fb7ef8cfc18485c59394152c70be97", - "sha256:e36750fbbc422c1c46c9d13b937ab437138b998fe74a635ec88989afb57a3978", - "sha256:edfdabe7aa4f97ed2b9dd5dde52d2bb29cb466993bb9d612ddd10d0085a683cf", - "sha256:f22325010d8824594820d6ce84fa830838f581a7fd86a9235f0d2ed6deb61e29", - "sha256:f23876b018dfa5d3e98e96f5644b109090f16a4acb22064e0f06933663005d39", - "sha256:f7bd0ffbcd03dc39490a1f40b2669cc414fae0c4e16b77bb26806a4d0b7d1452" + "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2", + "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820", + "sha256:1238b08f3576201ebf41f7c20bf59baa0d05da941b123c6656e42cdb668e9827", + "sha256:14a32ec68d721c3d714d9b105c7acf8e0f8a4f4734c811eda75ff3718570b5e3", + "sha256:15e38d853ee224e92ccc9a851457fb1e1f12d7a5df5ae44544ce7863691c7a0d", + "sha256:354df19fefd03b9a13132fa6643527ef7905712109d9c1c1903f2133d3a4e145", + "sha256:35ef1f8d8a7a275aa7410d2f2c60fa6443f4a64fae9be671ec0696a68525b875", + "sha256:4179502f210ebed3ccfe2f78bf8e2d59e50b297b598b100d6c6e3341053066a2", + "sha256:42c499c14efd858b98c4e03595bf914089b98400d30789511577aa44607a1b74", + "sha256:4b7101938584d67e6f45f0015b60e24a95bf8dea19836b1709a80342e01b472f", + "sha256:564cd0f5b5470094df06fab676c6d77547abfdcb09b6c29c8a97c41ad03b103c", + "sha256:5f444627b3664b80d078c05fe6a850dd711beeb90d26731f11d492dcbadb6973", + "sha256:6113e4df2fa73b80f77663445be6d567913fb3b82a86ceb64e44ae0e4b695de1", + "sha256:61b993f3998ee384935ee423c3d40894e93277f12482f6e777642a0141f55782", + "sha256:66e6df3ac4659a435677d8cd40e8eb1ac7219345d27c41145991ee9bf4b806a0", + "sha256:67f9346aeebea54e845d29b487eb38ec95f2ecf3558a3cffb26ee3f0dcc3e760", + "sha256:6913dddee2deff8ab2512639c5168c3e80b3ebb0f818fed22048ee46f735351a", + "sha256:6a864733b22d3081749450466ac80698fe39c91cb6849b2ef8752fd7482011f3", + "sha256:7026f5afe0d1a933685d8f2169d7c2d2e624f6255fb584ca99ccca8c0e966fd7", + "sha256:783bc7c4ee524039ca13b6d9b4186a67f8e63d91342c713e88c1865a38d0892a", + "sha256:7a98d6bf6d4ca5c07a600c7b4e0c5350cd483c85c736c522b786be90ea5bac4f", + "sha256:8d032bfc562a52318ae05047a6eb801ff31ccee172dc0d2504614e911d8fa83e", + "sha256:98c0b9e9b572893cdb0a00e66cf961a238f8d870d4e1dc8e679eb8bdc2eb1b86", + "sha256:9c7b9b498eb0c0d48b4c2abc0e10c2d78912203f972e0e63e3c9dc21f15abdaa", + "sha256:9cc4f107009bca5a81caef2fca843dbec4215c05e917a59dec0c8db5cff1d2aa", + "sha256:9d6e1f3185cbfd3d91ac77ea065d85d5215d3dfa45b191d14ddfcd952fa53796", + "sha256:a095aa0a996ea08b10580908e88fbaf81ecf798e923bbe64fb98d1807db3d68a", + "sha256:a3b2752de32c455f2521a51bd3ffb53c5b3ae92736afde67ce83477f5c1dd928", + "sha256:ab066f5ab67059d1f1000b5e1aa8bbd75b6ed1fc0014559aea41a9eb66fc2ce0", + "sha256:c1328d0c2f194ffda30a45f11058c02410e679456276bfa0bbe0b0ee87225fac", + "sha256:c35cca192ba700979d20ac43024a82b9b32a60da2f983bec6c0f5b84aead635c", + "sha256:cbbb0e4cd8ddcd5ef47641cfac97d8473ab6b132dd9a46bacb18872828031685", + "sha256:cdbb0d89923c80dbd435b9cf8bba0ff55585a3cdb28cbec65f376c041472c60d", + "sha256:cf2afe83a53f77aec067033199797832617890e15bed42f4a1a93ea24794ae3e", + "sha256:d5dd4b8e9cd0deb60e6fcc7b0647cbc1da6c33b9e786f9c79721fd303994832f", + "sha256:dfa0b97eb904255e2ab24166071b27408f1f69c8fbda58e9c0972804851e0558", + "sha256:e16c45b726acb780e1e6f88b286d3c10b3914ab03438f32117c4aa52d7f30d58", + "sha256:e1fabd473566fce2cf18ea41171d92814e4ef1495e04471786cbc943b89a3781", + "sha256:e3d3c4cc38b2882f9a15bafd30aec079582b819bec1b8afdbde8f7797008108a", + "sha256:e431e305a1f3126477abe9a184624a85308da8edf8486a863601d58419d26ffa", + "sha256:e7b4da9bafad21ea45a714d3ea6f3e1679099e420c8741c74905b92ee9bfa7cc", + "sha256:ee2b2fb6eb4ace35805f434e0f6409444e1466a47f620d1d5763a22600f0f892", + "sha256:ee6ae6bbcac0786807295e9687169fba80cb0617852b2fa118a99667e8e6815d", + "sha256:ef6f44409ab02e202b31a05dd6666797f9de2aa2b4b3534e9d450e42dea5e817", + "sha256:f67cf9f406cf0d2f08a3515ce2db5b82625a7257f88aad87904674def6ddaec1", + "sha256:f855b39e4f75abd0dfbcf74a82e84ae3fc260d523fcb3532786bcbbcb158322c", + "sha256:fc600f6ec19b273da1d85817eda339fb46ce9eef3e89f220055d8696e0a06908", + "sha256:fcbe3d9a53e013f8ab88734d7e517eb2cd06b7e689bedf22c0eb68db5e4a0a19", + "sha256:fde17bc42e0716c94bf19d92e4c9f5a00c5feb401f5bc01101fdf2a8b7cacf60", + "sha256:ff934ced84054b9018665ca3967fc48e1ac99e811f6cc99ea65978e1d384454b" ], "markers": "python_version >= '3.7'", - "version": "==6.4.2" + "version": "==6.4.4" }, "coveralls": { "hashes": [ @@ -1848,27 +1860,27 @@ }, "faker": { "hashes": [ - "sha256:172e45220b7a46743f4fb58cf380adb306d5c3ab1c0b0d97062508474cec5ff8", - "sha256:7c3f8ee807d3916415568169a172bf0893ea9cc3371ab55e4e5f5170d2185bea" + "sha256:067a03f64e555261610e69277536072997b4576dbf84b113faef3c06d85b466b", + "sha256:0e00bfa1eadf1493f15662edb181222fea4847764cf3f9ff3e66ee0f95c9a644" ], "markers": "python_version >= '3.6'", - "version": "==13.15.1" + "version": "==14.1.0" }, "filelock": { "hashes": [ - "sha256:37def7b658813cda163b56fc564cdc75e86d338246458c4c28ae84cabefa2404", - "sha256:3a0fd85166ad9dbab54c9aec96737b744106dc5f15c0b09a6744a445299fcf04" + "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc", + "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4" ], "index": "pypi", - "version": "==3.7.1" + "version": "==3.8.0" }, "identify": { "hashes": [ - "sha256:a3d4c096b384d50d5e6dc5bc8b9bc44f1f61cefebd750a7b3e9f939b53fb214d", - "sha256:feaa9db2dc0ce333b453ce171c0cf1247bbfde2c55fc6bb785022d411a1b78b5" + "sha256:25851c8c1370effb22aaa3c987b30449e9ff0cece408f810ae6ce408fdd20893", + "sha256:887e7b91a1be152b0d46bbf072130235a8117392b9f1828446079a816a05ef44" ], "markers": "python_version >= '3.7'", - "version": "==2.5.2" + "version": "==2.5.3" }, "idna": { "hashes": [ @@ -1979,11 +1991,11 @@ }, "mdurl": { "hashes": [ - "sha256:6a8f6804087b7128040b2fb2ebe242bdc2affaeaa034d5fc9feeed30b443651b", - "sha256:f79c9709944df218a4cdb0fcc0b0c7ead2f44594e3e84dc566606f04ad749c20" + "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", + "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba" ], "markers": "python_version >= '3.7'", - "version": "==0.1.1" + "version": "==0.1.2" }, "mypy-extensions": { "hashes": [ @@ -2057,19 +2069,19 @@ }, "pycodestyle": { "hashes": [ - "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20", - "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f" + "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785", + "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b" ], "index": "pypi", - "version": "==2.8.0" + "version": "==2.9.1" }, "pygments": { "hashes": [ - "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb", - "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519" + "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1", + "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42" ], "markers": "python_version >= '3.6'", - "version": "==2.12.0" + "version": "==2.13.0" }, "pyparsing": { "hashes": [ @@ -2144,10 +2156,10 @@ }, "pytz": { "hashes": [ - "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7", - "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c" + "sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197", + "sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5" ], - "version": "==2022.1" + "version": "==2022.2.1" }, "pyyaml": { "hashes": [ @@ -2197,11 +2209,11 @@ }, "setuptools": { "hashes": [ - "sha256:273b6847ae61f7829c1affcdd9a32f67aa65233be508f4fbaab866c5faa4e408", - "sha256:d5340d16943a0f67057329db59b564e938bb3736c6e50ae16ea84d5e5d9ba6d0" + "sha256:1c664b23706b753986b0f4b13e20bb82177ab29450d5b4d5d6d244c34a2235bd", + "sha256:201d7b596b0685f2dd3aaf231a637ffda51fc61323631d915e5c55b79d2d8115" ], "markers": "python_version >= '3.7'", - "version": "==63.3.0" + "version": "==65.1.1" }, "six": { "hashes": [ @@ -2355,18 +2367,17 @@ }, "virtualenv": { "hashes": [ - "sha256:0ef5be6d07181946891f5abc8047fda8bc2f0b4b9bf222c64e6e8963baee76db", - "sha256:635b272a8e2f77cb051946f46c60a54ace3cb5e25568228bd6b57fc70eca9ff3" + "sha256:4193b7bc8a6cd23e4eb251ac64f29b4398ab2c233531e66e40b19a6b7b0d30c1", + "sha256:d86ea0bb50e06252d79e6c241507cb904fcd66090c3271381372d6221a3970f9" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==20.16.2" + "markers": "python_version >= '3.6'", + "version": "==20.16.3" }, "zipp": { "hashes": [ "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2", "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009" ], - "index": "pypi", "markers": "python_version < '3.9'", "version": "==3.8.1" } From 9b24cf7591507ec8def0ff3f37d334c0bd38b07e Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Sun, 21 Aug 2022 16:16:28 -0700 Subject: [PATCH 136/348] Also provide the original file name to the post consumption script --- docs/advanced_usage.rst | 1 + src/documents/consumer.py | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/advanced_usage.rst b/docs/advanced_usage.rst index ba5b3cbaa..7709da1c9 100644 --- a/docs/advanced_usage.rst +++ b/docs/advanced_usage.rst @@ -171,6 +171,7 @@ into paperless. It receives the following environment variables: * ``DOCUMENT_THUMBNAIL_URL`` * ``DOCUMENT_CORRESPONDENT`` * ``DOCUMENT_TAGS`` +* ``DOCUMENT_ORIGINAL_FILENAME`` The script can be in any language, but for a simple shell script example, you can take a look at `post-consumption-example.sh`_ in this project. diff --git a/src/documents/consumer.py b/src/documents/consumer.py index 9cc9b758d..d1b01290a 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -203,6 +203,7 @@ class Consumer(LoggingMixin): script_env["DOCUMENT_TAGS"] = str( ",".join(document.tags.all().values_list("name", flat=True)), ) + script_env["DOCUMENT_ORIGINAL_FILENAME"] = str(document.original_filename) try: Popen( From c8e838e3a0828e82efac1fd93ebb9aba6a000ff8 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Sun, 21 Aug 2022 17:54:05 -0700 Subject: [PATCH 137/348] Adds the storage paths to the re-tagger command --- docs/administration.rst | 3 +- .../management/commands/document_retagger.py | 13 +++ src/documents/signals/handlers.py | 2 +- .../tests/test_management_retagger.py | 82 +++++++++++++++++-- 4 files changed, 90 insertions(+), 10 deletions(-) diff --git a/docs/administration.rst b/docs/administration.rst index dfb88ff80..d8f41dd16 100644 --- a/docs/administration.rst +++ b/docs/administration.rst @@ -310,6 +310,7 @@ there are tools for it. -c, --correspondent -T, --tags -t, --document_type + -s, --storage_path -i, --inbox-only --use-first -f, --overwrite @@ -318,7 +319,7 @@ Run this after changing or adding matching rules. It'll loop over all of the documents in your database and attempt to match documents according to the new rules. -Specify any combination of ``-c``, ``-T`` and ``-t`` to have the +Specify any combination of ``-c``, ``-T``, ``-t`` and ``-s`` to have the retagger perform matching of the specified metadata type. If you don't specify any of these options, the document retagger won't do anything. diff --git a/src/documents/management/commands/document_retagger.py b/src/documents/management/commands/document_retagger.py index 5ecf7f8ce..c42357eb5 100644 --- a/src/documents/management/commands/document_retagger.py +++ b/src/documents/management/commands/document_retagger.py @@ -7,6 +7,7 @@ from documents.models import Document from ...signals.handlers import set_correspondent from ...signals.handlers import set_document_type +from ...signals.handlers import set_storage_path from ...signals.handlers import set_tags @@ -29,6 +30,7 @@ class Command(BaseCommand): parser.add_argument("-c", "--correspondent", default=False, action="store_true") parser.add_argument("-T", "--tags", default=False, action="store_true") parser.add_argument("-t", "--document_type", default=False, action="store_true") + parser.add_argument("-s", "--storage_path", default=False, action="store_true") parser.add_argument("-i", "--inbox-only", default=False, action="store_true") parser.add_argument( "--use-first", @@ -112,3 +114,14 @@ class Command(BaseCommand): base_url=options["base_url"], color=color, ) + if options["storage_path"]: + set_storage_path( + sender=None, + document=document, + classifier=classifier, + replace=options["overwrite"], + use_first=options["use_first"], + suggest=options["suggest"], + base_url=options["base_url"], + color=color, + ) diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index cf6bcc0ae..2e7c2369c 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -291,7 +291,7 @@ def set_storage_path( ) + f" [{document.pk}]", ) - print(f"Sugest storage directory {selected}") + print(f"Suggest storage directory {selected}") else: logger.info( f"Assigning storage path {selected} to {document}", diff --git a/src/documents/tests/test_management_retagger.py b/src/documents/tests/test_management_retagger.py index c31462855..2b7aae649 100644 --- a/src/documents/tests/test_management_retagger.py +++ b/src/documents/tests/test_management_retagger.py @@ -3,12 +3,34 @@ from django.test import TestCase from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType +from documents.models import StoragePath from documents.models import Tag from documents.tests.utils import DirectoriesMixin class TestRetagger(DirectoriesMixin, TestCase): def make_models(self): + + self.sp1 = StoragePath.objects.create( + name="dummy a", + path="{created_data}/{title}", + match="auto document", + matching_algorithm=StoragePath.MATCH_LITERAL, + ) + self.sp2 = StoragePath.objects.create( + name="dummy b", + path="{title}", + match="^first|^unrelated", + matching_algorithm=StoragePath.MATCH_REGEX, + ) + + self.sp3 = StoragePath.objects.create( + name="dummy c", + path="{title}", + match="^blah", + matching_algorithm=StoragePath.MATCH_REGEX, + ) + self.d1 = Document.objects.create( checksum="A", title="A", @@ -23,6 +45,7 @@ class TestRetagger(DirectoriesMixin, TestCase): checksum="C", title="C", content="unrelated document", + storage_path=self.sp3, ) self.d4 = Document.objects.create( checksum="D", @@ -146,15 +169,15 @@ class TestRetagger(DirectoriesMixin, TestCase): call_command("document_retagger", "--document_type", "--suggest") d_first, d_second, d_unrelated, d_auto = self.get_updated_docs() - self.assertEqual(d_first.document_type, None) - self.assertEqual(d_second.document_type, None) + self.assertIsNone(d_first.document_type) + self.assertIsNone(d_second.document_type) def test_add_correspondent_suggest(self): call_command("document_retagger", "--correspondent", "--suggest") d_first, d_second, d_unrelated, d_auto = self.get_updated_docs() - self.assertEqual(d_first.correspondent, None) - self.assertEqual(d_second.correspondent, None) + self.assertIsNone(d_first.correspondent) + self.assertIsNone(d_second.correspondent) def test_add_tags_suggest_url(self): call_command( @@ -178,8 +201,8 @@ class TestRetagger(DirectoriesMixin, TestCase): ) d_first, d_second, d_unrelated, d_auto = self.get_updated_docs() - self.assertEqual(d_first.document_type, None) - self.assertEqual(d_second.document_type, None) + self.assertIsNone(d_first.document_type) + self.assertIsNone(d_second.document_type) def test_add_correspondent_suggest_url(self): call_command( @@ -190,5 +213,48 @@ class TestRetagger(DirectoriesMixin, TestCase): ) d_first, d_second, d_unrelated, d_auto = self.get_updated_docs() - self.assertEqual(d_first.correspondent, None) - self.assertEqual(d_second.correspondent, None) + self.assertIsNone(d_first.correspondent) + self.assertIsNone(d_second.correspondent) + + def test_add_storage_path(self): + """ + GIVEN: + - 2 storage paths with documents which match them + - 1 document which matches but has a storage path + WHEN: + - document retagger is called + THEN: + - Matching document's storage paths updated + - Non-matching documents have no storage path + - Existing storage patch left unchanged + """ + call_command( + "document_retagger", + "--storage_path", + ) + d_first, d_second, d_unrelated, d_auto = self.get_updated_docs() + + self.assertEqual(d_first.storage_path, self.sp2) + self.assertEqual(d_auto.storage_path, self.sp1) + self.assertIsNone(d_second.storage_path) + self.assertEqual(d_unrelated.storage_path, self.sp3) + + def test_overwrite_storage_path(self): + """ + GIVEN: + - 2 storage paths with documents which match them + - 1 document which matches but has a storage path + WHEN: + - document retagger is called with overwrite + THEN: + - Matching document's storage paths updated + - Non-matching documents have no storage path + - Existing storage patch overwritten + """ + call_command("document_retagger", "--storage_path", "--overwrite") + d_first, d_second, d_unrelated, d_auto = self.get_updated_docs() + + self.assertEqual(d_first.storage_path, self.sp2) + self.assertEqual(d_auto.storage_path, self.sp1) + self.assertIsNone(d_second.storage_path) + self.assertEqual(d_unrelated.storage_path, self.sp2) From ab761e837c4be4974f699c8c97560a4291a8d298 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Sun, 21 Aug 2022 18:20:59 -0700 Subject: [PATCH 138/348] Implements a better re-do of OCR by making the document archiver function common. Actually creates updated file now --- src/documents/bulk_edit.py | 6 +- .../management/commands/document_archiver.py | 71 +------------- .../management/commands/document_redo_ocr.py | 35 ------- src/documents/tasks.py | 94 ++++++++++++------- src/documents/tests/test_management.py | 10 +- 5 files changed, 70 insertions(+), 146 deletions(-) delete mode 100644 src/documents/management/commands/document_redo_ocr.py diff --git a/src/documents/bulk_edit.py b/src/documents/bulk_edit.py index babd5f3b4..0cf0daf3e 100644 --- a/src/documents/bulk_edit.py +++ b/src/documents/bulk_edit.py @@ -122,6 +122,10 @@ def delete(doc_ids): def redo_ocr(doc_ids): - async_task("documents.tasks.redo_ocr", document_ids=doc_ids) + for document_id in doc_ids: + async_task( + "documents.tasks.update_document_archive_file", + document_id=document_id, + ) return "OK" diff --git a/src/documents/management/commands/document_archiver.py b/src/documents/management/commands/document_archiver.py index c51f1baeb..fa78a1963 100644 --- a/src/documents/management/commands/document_archiver.py +++ b/src/documents/management/commands/document_archiver.py @@ -1,85 +1,18 @@ -import hashlib import logging import multiprocessing import os -import shutil -import uuid import tqdm from django import db from django.conf import settings from django.core.management.base import BaseCommand -from django.db import transaction from documents.models import Document -from filelock import FileLock - -from ... import index -from ...file_handling import create_source_path_directory -from ...file_handling import generate_unique_filename -from ...parsers import get_parser_class_for_mime_type +from documents.tasks import update_document_archive_file logger = logging.getLogger("paperless.management.archiver") -def handle_document(document_id): - document = Document.objects.get(id=document_id) - - mime_type = document.mime_type - - parser_class = get_parser_class_for_mime_type(mime_type) - - if not parser_class: - logger.error( - f"No parser found for mime type {mime_type}, cannot " - f"archive document {document} (ID: {document_id})", - ) - return - - parser = parser_class(logging_group=uuid.uuid4()) - - try: - parser.parse(document.source_path, mime_type, document.get_public_filename()) - - thumbnail = parser.get_thumbnail( - document.source_path, - mime_type, - document.get_public_filename(), - ) - - if parser.get_archive_path(): - with transaction.atomic(): - with open(parser.get_archive_path(), "rb") as f: - checksum = hashlib.md5(f.read()).hexdigest() - # I'm going to save first so that in case the file move - # fails, the database is rolled back. - # We also don't use save() since that triggers the filehandling - # logic, and we don't want that yet (file not yet in place) - document.archive_filename = generate_unique_filename( - document, - archive_filename=True, - ) - Document.objects.filter(pk=document.pk).update( - archive_checksum=checksum, - content=parser.get_text(), - archive_filename=document.archive_filename, - ) - with FileLock(settings.MEDIA_LOCK): - create_source_path_directory(document.archive_path) - shutil.move(parser.get_archive_path(), document.archive_path) - shutil.move(thumbnail, document.thumbnail_path) - - with index.open_index_writer() as writer: - index.update_document(writer, document) - - except Exception: - logger.exception( - f"Error while parsing document {document} " f"(ID: {document_id})", - ) - finally: - parser.cleanup() - - class Command(BaseCommand): help = """ @@ -146,7 +79,7 @@ class Command(BaseCommand): with multiprocessing.Pool(processes=settings.TASK_WORKERS) as pool: list( tqdm.tqdm( - pool.imap_unordered(handle_document, document_ids), + pool.imap_unordered(update_document_archive_file, document_ids), total=len(document_ids), disable=options["no_progress_bar"], ), diff --git a/src/documents/management/commands/document_redo_ocr.py b/src/documents/management/commands/document_redo_ocr.py deleted file mode 100644 index 1e44e6134..000000000 --- a/src/documents/management/commands/document_redo_ocr.py +++ /dev/null @@ -1,35 +0,0 @@ -import tqdm -from django.core.management.base import BaseCommand -from documents.tasks import redo_ocr - - -class Command(BaseCommand): - - help = """ - This will rename all documents to match the latest filename format. - """.replace( - " ", - "", - ) - - def add_arguments(self, parser): - - parser.add_argument( - "--no-progress-bar", - default=False, - action="store_true", - help="If set, the progress bar will not be shown", - ) - - parser.add_argument( - "documents", - nargs="+", - help="Document primary keys for re-processing OCR on", - ) - - def handle(self, *args, **options): - doc_pks = tqdm.tqdm( - options["documents"], - disable=options["no_progress_bar"], - ) - redo_ocr(doc_pks) diff --git a/src/documents/tasks.py b/src/documents/tasks.py index 35404587d..b1793e760 100644 --- a/src/documents/tasks.py +++ b/src/documents/tasks.py @@ -1,6 +1,8 @@ +import hashlib import logging import os import shutil +import uuid from pathlib import Path from typing import Type @@ -8,7 +10,7 @@ import tqdm from asgiref.sync import async_to_sync from channels.layers import get_channel_layer from django.conf import settings -from django.core.exceptions import ObjectDoesNotExist +from django.db import transaction from django.db.models.signals import post_save from documents import barcodes from documents import index @@ -17,6 +19,8 @@ from documents.classifier import DocumentClassifier from documents.classifier import load_classifier from documents.consumer import Consumer from documents.consumer import ConsumerError +from documents.file_handling import create_source_path_directory +from documents.file_handling import generate_unique_filename from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType @@ -24,8 +28,8 @@ from documents.models import StoragePath from documents.models import Tag from documents.parsers import DocumentParser from documents.parsers import get_parser_class_for_mime_type -from documents.parsers import ParseError from documents.sanity_checker import SanityCheckFailedException +from filelock import FileLock from whoosh.writing import AsyncWriter @@ -213,44 +217,62 @@ def bulk_update_documents(document_ids): index.update_document(writer, doc) -def redo_ocr(document_ids): - all_docs = Document.objects.all() +def update_document_archive_file(document_id): + """ + Re-creates the archive file of a document, including new OCR content and thumbnail + """ + document = Document.objects.get(id=document_id) - for doc_pk in document_ids: - try: - logger.info(f"Parsing document {doc_pk}") - doc: Document = all_docs.get(pk=doc_pk) - except ObjectDoesNotExist: - logger.error(f"Document {doc_pk} does not exist") - continue + mime_type = document.mime_type - # Get the correct parser for this mime type - parser_class: Type[DocumentParser] = get_parser_class_for_mime_type( - doc.mime_type, + parser_class: Type[DocumentParser] = get_parser_class_for_mime_type(mime_type) + + if not parser_class: + logger.error( + f"No parser found for mime type {mime_type}, cannot " + f"archive document {document} (ID: {document_id})", ) - document_parser: DocumentParser = parser_class( - "redo-ocr", + return + + parser: DocumentParser = parser_class(logging_group=uuid.uuid4()) + + try: + parser.parse(document.source_path, mime_type, document.get_public_filename()) + + thumbnail = parser.get_thumbnail( + document.source_path, + mime_type, + document.get_public_filename(), ) - # Create a file path to copy the original file to for working on - temp_file = (Path(document_parser.tempdir) / Path("new-ocr-file")).resolve() + if parser.get_archive_path(): + with transaction.atomic(): + with open(parser.get_archive_path(), "rb") as f: + checksum = hashlib.md5(f.read()).hexdigest() + # I'm going to save first so that in case the file move + # fails, the database is rolled back. + # We also don't use save() since that triggers the filehandling + # logic, and we don't want that yet (file not yet in place) + document.archive_filename = generate_unique_filename( + document, + archive_filename=True, + ) + Document.objects.filter(pk=document.pk).update( + archive_checksum=checksum, + content=parser.get_text(), + archive_filename=document.archive_filename, + ) + with FileLock(settings.MEDIA_LOCK): + create_source_path_directory(document.archive_path) + shutil.move(parser.get_archive_path(), document.archive_path) + shutil.move(thumbnail, document.thumbnail_path) - shutil.copy(doc.source_path, temp_file) + with index.open_index_writer() as writer: + index.update_document(writer, document) - try: - logger.info( - f"Using {type(document_parser).__name__} for document", - ) - # Try to re-parse the document into text - document_parser.parse(str(temp_file), doc.mime_type) - - doc.content = document_parser.get_text() - doc.save() - logger.info("Document OCR updated") - - except ParseError as e: - logger.error(f"Error parsing document: {e}") - finally: - # Remove the file path if it was created - if temp_file.exists() and temp_file.is_file(): - temp_file.unlink() + except Exception: + logger.exception( + f"Error while parsing document {document} " f"(ID: {document_id})", + ) + finally: + parser.cleanup() diff --git a/src/documents/tests/test_management.py b/src/documents/tests/test_management.py index 76a5459b5..fe217676b 100644 --- a/src/documents/tests/test_management.py +++ b/src/documents/tests/test_management.py @@ -10,8 +10,8 @@ from django.core.management import call_command from django.test import override_settings from django.test import TestCase from documents.file_handling import generate_filename -from documents.management.commands.document_archiver import handle_document from documents.models import Document +from documents.tasks import update_document_archive_file from documents.tests.utils import DirectoriesMixin @@ -46,7 +46,7 @@ class TestArchiver(DirectoriesMixin, TestCase): os.path.join(self.dirs.originals_dir, f"{doc.id:07}.pdf"), ) - handle_document(doc.pk) + update_document_archive_file(doc.pk) doc = Document.objects.get(id=doc.id) @@ -63,7 +63,7 @@ class TestArchiver(DirectoriesMixin, TestCase): doc.save() shutil.copy(sample_file, doc.source_path) - handle_document(doc.pk) + update_document_archive_file(doc.pk) doc = Document.objects.get(id=doc.id) @@ -94,8 +94,8 @@ class TestArchiver(DirectoriesMixin, TestCase): os.path.join(self.dirs.originals_dir, f"document_01.pdf"), ) - handle_document(doc2.pk) - handle_document(doc1.pk) + update_document_archive_file(doc2.pk) + update_document_archive_file(doc1.pk) doc1 = Document.objects.get(id=doc1.id) doc2 = Document.objects.get(id=doc2.id) From 42c50c4e0b21f8a101818852a8378437eec31300 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Aug 2022 12:37:59 +0000 Subject: [PATCH 139/348] Bump sphinx from 5.0.2 to 5.1.1 Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.0.2 to 5.1.1. - [Release notes](https://github.com/sphinx-doc/sphinx/releases) - [Changelog](https://github.com/sphinx-doc/sphinx/blob/5.x/CHANGES) - [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.0.2...v5.1.1) --- updated-dependencies: - dependency-name: sphinx dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Pipfile | 2 +- Pipfile.lock | 92 ++++++++++++++++++++++------------------------------ 2 files changed, 39 insertions(+), 55 deletions(-) diff --git a/Pipfile b/Pipfile index a33c43845..62bf435df 100644 --- a/Pipfile +++ b/Pipfile @@ -61,7 +61,7 @@ pytest-django = "*" pytest-env = "*" pytest-sugar = "*" pytest-xdist = "*" -sphinx = "~=5.0.2" +sphinx = "~=5.1.1" sphinx_rtd_theme = "*" tox = "*" black = "*" diff --git a/Pipfile.lock b/Pipfile.lock index ec4a7cf96..998a0536c 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "11e6eaa28348fb63b923ecaed91ebbc9266b2e784a1921ca32e8e4b7e8c67626" + "sha256": "53421795b6bf5c0dd1fbc0d564cea200bb4b8eb4ec44b9d4fefbabf02215f46c" }, "pipfile-spec": 6, "requires": {}, @@ -1222,32 +1222,32 @@ }, "scipy": { "hashes": [ - "sha256:02b567e722d62bddd4ac253dafb01ce7ed8742cf8031aea030a41414b86c1125", - "sha256:1166514aa3bbf04cb5941027c6e294a000bba0cf00f5cdac6c77f2dad479b434", - "sha256:1da52b45ce1a24a4a22db6c157c38b39885a990a566748fc904ec9f03ed8c6ba", - "sha256:23b22fbeef3807966ea42d8163322366dd89da9bebdc075da7034cee3a1441ca", - "sha256:28d2cab0c6ac5aa131cc5071a3a1d8e1366dad82288d9ec2ca44df78fb50e649", - "sha256:2ef0fbc8bcf102c1998c1f16f15befe7cffba90895d6e84861cd6c6a33fb54f6", - "sha256:3b69b90c9419884efeffaac2c38376d6ef566e6e730a231e15722b0ab58f0328", - "sha256:4b93ec6f4c3c4d041b26b5f179a6aab8f5045423117ae7a45ba9710301d7e462", - "sha256:4e53a55f6a4f22de01ffe1d2f016e30adedb67a699a310cdcac312806807ca81", - "sha256:6311e3ae9cc75f77c33076cb2794fb0606f14c8f1b1c9ff8ce6005ba2c283621", - "sha256:65b77f20202599c51eb2771d11a6b899b97989159b7975e9b5259594f1d35ef4", - "sha256:6cc6b33139eb63f30725d5f7fa175763dc2df6a8f38ddf8df971f7c345b652dc", - "sha256:70de2f11bf64ca9921fda018864c78af7147025e467ce9f4a11bc877266900a6", - "sha256:70ebc84134cf0c504ce6a5f12d6db92cb2a8a53a49437a6bb4edca0bc101f11c", - "sha256:83606129247e7610b58d0e1e93d2c5133959e9cf93555d3c27e536892f1ba1f2", - "sha256:93d07494a8900d55492401917a119948ed330b8c3f1d700e0b904a578f10ead4", - "sha256:9c4e3ae8a716c8b3151e16c05edb1daf4cb4d866caa385e861556aff41300c14", - "sha256:9dd4012ac599a1e7eb63c114d1eee1bcfc6dc75a29b589ff0ad0bb3d9412034f", - "sha256:9e3fb1b0e896f14a85aa9a28d5f755daaeeb54c897b746df7a55ccb02b340f33", - "sha256:a0aa8220b89b2e3748a2836fbfa116194378910f1a6e78e4675a095bcd2c762d", - "sha256:d3b3c8924252caaffc54d4a99f1360aeec001e61267595561089f8b5900821bb", - "sha256:e013aed00ed776d790be4cb32826adb72799c61e318676172495383ba4570aa4", - "sha256:f3e7a8867f307e3359cc0ed2c63b61a1e33a19080f92fe377bc7d49f646f2ec1" + "sha256:01c2015e132774feefe059d5354055fec6b751d7a7d70ad2cf5ce314e7426e2a", + "sha256:0424d1bbbfa51d5ddaa16d067fd593863c9f2fb7c6840c32f8a08a8832f8e7a4", + "sha256:10417935486b320d98536d732a58362e3d37e84add98c251e070c59a6bfe0863", + "sha256:12005d30894e4fe7b247f7233ba0801a341f887b62e2eb99034dd6f2a8a33ad6", + "sha256:16207622570af10f9e6a2cdc7da7a9660678852477adbcd056b6d1057a036fef", + "sha256:45f0d6c0d6e55582d3b8f5c58ad4ca4259a02affb190f89f06c8cc02e21bba81", + "sha256:5d1b9cf3771fd921f7213b4b886ab2606010343bb36259b544a816044576d69e", + "sha256:693b3fe2e7736ce0dbc72b4d933798eb6ca8ce51b8b934e3f547cc06f48b2afb", + "sha256:73b704c5eea9be811919cae4caacf3180dd9212d9aed08477c1d2ba14900a9de", + "sha256:79dd7876614fc2869bf5d311ef33962d2066ea888bc66c80fd4fa80f8772e5a9", + "sha256:7bad16b91918bf3288089a78a4157e04892ea6475fb7a1d9bcdf32c30c8a3dba", + "sha256:8d541db2d441ef87afb60c4a2addb00c3af281633602a4967e733ef4b7050504", + "sha256:8f2232c9d9119ec356240255a715a289b3a33be828c3e4abac11fd052ce15b1e", + "sha256:97a1f1e51ea30782d7baa8d0c52f72c3f9f05cb609cf1b990664231c5102bccd", + "sha256:adb6c438c6ef550e2bb83968e772b9690cb421f2c6073f9c2cb6af15ee538bc9", + "sha256:bb687d245b6963673c639f318eea7e875d1ba147a67925586abed3d6f39bb7d8", + "sha256:bd490f77f35800d5620f4d9af669e372d9a88db1f76ef219e1609cc4ecdd1a24", + "sha256:c0dfd7d2429452e7e94904c6a3af63cbaa3cf51b348bd9d35b42db7e9ad42791", + "sha256:d3a326673ac5afa9ef5613a61626b9ec15c8f7222b4ecd1ce0fd8fcba7b83c59", + "sha256:e2004d2a3c397b26ca78e67c9d320153a1a9b71ae713ad33f4a3a3ab3d79cc65", + "sha256:e2ac088ea4aa61115b96b47f5f3d94b3fa29554340b6629cd2bfe6b0521ee33b", + "sha256:f7c3c578ff556333f3890c2df6c056955d53537bb176698359088108af73a58f", + "sha256:fc58c3fcb8a724b703ffbc126afdca5a8353d4d5945d5c92db85617e165299e7" ], - "markers": "python_version < '3.11' and python_version >= '3.8'", - "version": "==1.8.1" + "markers": "python_version < '3.12' and python_version >= '3.8'", + "version": "==1.9.0" }, "service-identity": { "hashes": [ @@ -1258,11 +1258,11 @@ }, "setuptools": { "hashes": [ - "sha256:1c664b23706b753986b0f4b13e20bb82177ab29450d5b4d5d6d244c34a2235bd", - "sha256:201d7b596b0685f2dd3aaf231a637ffda51fc61323631d915e5c55b79d2d8115" + "sha256:7f4bc85450898a09f76ebf28b72fa25bc7111f6c7d665d514a60bba9c75ef2a9", + "sha256:a3ca5857c89f82f5c9410e8508cb32f4872a3bafd4aa7ae122a24ca33bccc750" ], "markers": "python_version >= '3.7'", - "version": "==65.1.1" + "version": "==65.2.0" }, "six": { "hashes": [ @@ -1756,7 +1756,7 @@ }, "coverage": { "extras": [ - "toml" + ], "hashes": [ "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2", @@ -1898,14 +1898,6 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.4.1" }, - "importlib-metadata": { - "hashes": [ - "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670", - "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23" - ], - "markers": "python_version < '3.10'", - "version": "==4.12.0" - }, "iniconfig": { "hashes": [ "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", @@ -2209,11 +2201,11 @@ }, "setuptools": { "hashes": [ - "sha256:1c664b23706b753986b0f4b13e20bb82177ab29450d5b4d5d6d244c34a2235bd", - "sha256:201d7b596b0685f2dd3aaf231a637ffda51fc61323631d915e5c55b79d2d8115" + "sha256:7f4bc85450898a09f76ebf28b72fa25bc7111f6c7d665d514a60bba9c75ef2a9", + "sha256:a3ca5857c89f82f5c9410e8508cb32f4872a3bafd4aa7ae122a24ca33bccc750" ], "markers": "python_version >= '3.7'", - "version": "==65.1.1" + "version": "==65.2.0" }, "six": { "hashes": [ @@ -2232,11 +2224,11 @@ }, "sphinx": { "hashes": [ - "sha256:b18e978ea7565720f26019c702cd85c84376e948370f1cd43d60265010e1c7b0", - "sha256:d3e57663eed1d7c5c50895d191fdeda0b54ded6f44d5621b50709466c338d1e8" + "sha256:309a8da80cb6da9f4713438e5b55861877d5d7976b69d87e336733637ea12693", + "sha256:ba3224a4e206e1fbdecf98a4fae4992ef9b24b85ebf7b584bb340156eaf08d89" ], "index": "pypi", - "version": "==5.0.2" + "version": "==5.1.1" }, "sphinx-autobuild": { "hashes": [ @@ -2321,7 +2313,7 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_version >= '3.7'", + "markers": "python_full_version < '3.11.0a7'", "version": "==2.0.1" }, "tornado": { @@ -2338,7 +2330,7 @@ "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" ], - "markers": "python_version > '2.7'", + "markers": "python_version >= '3.7'", "version": "==6.2" }, "tox": { @@ -2372,14 +2364,6 @@ ], "markers": "python_version >= '3.6'", "version": "==20.16.3" - }, - "zipp": { - "hashes": [ - "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2", - "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009" - ], - "markers": "python_version < '3.9'", - "version": "==3.8.1" } } } From d1e82990103111b4b2cec5a93fa5055c85c3c4a6 Mon Sep 17 00:00:00 2001 From: tooomm Date: Wed, 3 Aug 2022 15:00:23 +0200 Subject: [PATCH 140/348] typo --- docs/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.rst b/docs/index.rst index 715fef588..735804560 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -44,7 +44,7 @@ resources in the documentation: learn about how paperless automates all tagging using machine learning. * Paperless now comes with a :ref:`proper email consumer ` that's fully tested and production ready. -* Paperless creates searchable PDF/A documents from whatever you you put into +* Paperless creates searchable PDF/A documents from whatever you put into the consumption directory. This means that you can select text in image-only documents coming from your scanner. * See :ref:`this note ` about GnuPG encryption in From 817882ff6f0fd8dd99960514ea59676557caefca Mon Sep 17 00:00:00 2001 From: tim-vogel Date: Sun, 7 Aug 2022 12:41:30 -0700 Subject: [PATCH 141/348] add comment function --- src-ui/src/app/app.module.ts | 2 + .../document-comment.component.html | 25 ++++++ .../document-comment.component.scss | 22 +++++ .../document-comment.component.spec.ts | 25 ++++++ .../document-comment.component.ts | 63 ++++++++++++++ .../document-detail.component.html | 7 ++ .../document-detail.component.ts | 13 ++- .../app/data/paperless-document-comment.ts | 8 ++ src-ui/src/app/data/paperless-environment.ts | 3 + src-ui/src/app/data/user-type.ts | 7 ++ .../rest/document-comment.service.spec.ts | 16 ++++ .../services/rest/document-comment.service.ts | 31 +++++++ .../services/rest/environment.service.spec.ts | 16 ++++ .../app/services/rest/environment.service.ts | 22 +++++ .../management/commands/document_exporter.py | 4 + src/documents/migrations/1023_add_comments.py | 19 ++++ src/documents/models.py | 37 ++++++++ src/documents/views.py | 87 +++++++++++++++++++ src/paperless/settings.py | 8 ++ src/paperless/urls.py | 2 + 20 files changed, 416 insertions(+), 1 deletion(-) create mode 100644 src-ui/src/app/components/document-comment/document-comment.component.html create mode 100644 src-ui/src/app/components/document-comment/document-comment.component.scss create mode 100644 src-ui/src/app/components/document-comment/document-comment.component.spec.ts create mode 100644 src-ui/src/app/components/document-comment/document-comment.component.ts create mode 100644 src-ui/src/app/data/paperless-document-comment.ts create mode 100644 src-ui/src/app/data/paperless-environment.ts create mode 100644 src-ui/src/app/data/user-type.ts create mode 100644 src-ui/src/app/services/rest/document-comment.service.spec.ts create mode 100644 src-ui/src/app/services/rest/document-comment.service.ts create mode 100644 src-ui/src/app/services/rest/environment.service.spec.ts create mode 100644 src-ui/src/app/services/rest/environment.service.ts create mode 100644 src/documents/migrations/1023_add_comments.py diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts index edbd261f6..dd34724a6 100644 --- a/src-ui/src/app/app.module.ts +++ b/src-ui/src/app/app.module.ts @@ -67,6 +67,7 @@ import { ApiVersionInterceptor } from './interceptors/api-version.interceptor' import { ColorSliderModule } from 'ngx-color/slider' import { ColorComponent } from './components/common/input/color/color.component' import { DocumentAsnComponent } from './components/document-asn/document-asn.component' +import { DocumentCommentComponent } from './components/document-comment/document-comment.component'; import { DirtyDocGuard } from './guards/dirty-doc.guard' import localeBe from '@angular/common/locales/be' @@ -173,6 +174,7 @@ function initializeApp(settings: SettingsService) { DateComponent, ColorComponent, DocumentAsnComponent, + DocumentCommentComponent, TasksComponent, ], imports: [ diff --git a/src-ui/src/app/components/document-comment/document-comment.component.html b/src-ui/src/app/components/document-comment/document-comment.component.html new file mode 100644 index 000000000..6a36f999f --- /dev/null +++ b/src-ui/src/app/components/document-comment/document-comment.component.html @@ -0,0 +1,25 @@ +
+
+
+ +
+   +
+
+
+
+ {{comment?.user?.firstname}} {{comment?.user?.lastname}} ({{comment?.user?.username}}) - {{ comment?.created | customDate}} + + + + + + + + +
+
+ {{comment.comment}} +
+
+
\ No newline at end of file diff --git a/src-ui/src/app/components/document-comment/document-comment.component.scss b/src-ui/src/app/components/document-comment/document-comment.component.scss new file mode 100644 index 000000000..778556485 --- /dev/null +++ b/src-ui/src/app/components/document-comment/document-comment.component.scss @@ -0,0 +1,22 @@ +.comment-card-body { + padding-top: .8rem !important; + padding-bottom: .8rem !important; + max-height: 10rem; + overflow: scroll; + white-space: pre-wrap; +} + +.comment-card-header a { + border: none; + background: none; + padding: 5px; + border-radius: 50%; +} + +.comment-card-header a:hover { + background: #FFF; +} + +.comment-card-header a:hover svg { + fill: var(--primary); +} \ No newline at end of file diff --git a/src-ui/src/app/components/document-comment/document-comment.component.spec.ts b/src-ui/src/app/components/document-comment/document-comment.component.spec.ts new file mode 100644 index 000000000..1f6389b1d --- /dev/null +++ b/src-ui/src/app/components/document-comment/document-comment.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DocumentCommentComponent } from './document-comment.component'; + +describe('DocumentCommentComponent', () => { + let component: DocumentCommentComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ DocumentCommentComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DocumentCommentComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); \ No newline at end of file diff --git a/src-ui/src/app/components/document-comment/document-comment.component.ts b/src-ui/src/app/components/document-comment/document-comment.component.ts new file mode 100644 index 000000000..57b052d84 --- /dev/null +++ b/src-ui/src/app/components/document-comment/document-comment.component.ts @@ -0,0 +1,63 @@ +import { Component, OnInit } from '@angular/core'; +import { DocumentDetailComponent } from 'src/app/components/document-detail/document-detail.component'; +import { DocumentCommentService } from 'src/app/services/rest/document-comment.service'; +import { PaperlessDocumentComment } from 'src/app/data/paperless-document-comment'; + +import { take } from 'rxjs/operators'; +import { FormControl, FormGroup } from '@angular/forms'; + +@Component({ + selector: 'app-document-comment', + templateUrl: './document-comment.component.html', + styleUrls: ['./document-comment.component.scss'] +}) +export class DocumentCommentComponent implements OnInit { + + comments:PaperlessDocumentComment[]; + networkActive = false; + documentId: number; + commentForm: FormGroup = new FormGroup({ + newcomment: new FormControl('') + }) + + constructor( + private documentDetailComponent: DocumentDetailComponent, + private documentCommentService: DocumentCommentService, + ) { } + + byId(index, item: PaperlessDocumentComment) { + return item.id; + } + + async ngOnInit(): Promise { + try { + this.documentId = this.documentDetailComponent.documentId; + this.comments= await this.documentCommentService.getComments(this.documentId).pipe(take(1)).toPromise(); + } catch(err){ + this.comments = []; + } + } + + addComment(){ + this.networkActive = true + this.documentCommentService.addComment(this.documentId, this.commentForm.get("newcomment").value).subscribe(result => { + this.comments = result; + this.commentForm.get("newcomment").reset(); + this.networkActive = false; + }, error => { + this.networkActive = false; + }); + } + + deleteComment(event){ + let parent = event.target.parentElement.closest('div[comment-id]'); + if(parent){ + this.documentCommentService.deleteComment(this.documentId, parseInt(parent.getAttribute("comment-id"))).subscribe(result => { + this.comments = result; + this.networkActive = false; + }, error => { + this.networkActive = false; + }); + } + } +} \ No newline at end of file diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html index 764a587e0..ebf286895 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.html +++ b/src-ui/src/app/components/document-detail/document-detail.component.html @@ -169,6 +169,13 @@ +
  • + Comments + + + + +
  • diff --git a/src-ui/src/app/components/document-detail/document-detail.component.ts b/src-ui/src/app/components/document-detail/document-detail.component.ts index 203a56f04..d0f4ecded 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.ts @@ -35,6 +35,7 @@ import { StoragePathService } from 'src/app/services/rest/storage-path.service' import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path' import { StoragePathEditDialogComponent } from '../common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component' import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings' +import { EnvironmentService } from 'src/app/services/rest/environment.service' @Component({ selector: 'app-document-detail', @@ -83,6 +84,8 @@ export class DocumentDetailComponent previewCurrentPage: number = 1 previewNumPages: number = 1 + isCommentsEnabled:boolean = false + store: BehaviorSubject isDirty$: Observable unsubscribeNotifier: Subject = new Subject() @@ -118,7 +121,8 @@ export class DocumentDetailComponent private documentTitlePipe: DocumentTitlePipe, private toastService: ToastService, private settings: SettingsService, - private storagePathService: StoragePathService + private storagePathService: StoragePathService, + private environment: EnvironmentService ) {} titleKeyUp(event) { @@ -274,6 +278,13 @@ export class DocumentDetailComponent this.suggestions = null }, }) + + this.environment.get("PAPERLESS_COMMENTS_ENABLED").subscribe(result => { + this.isCommentsEnabled = (result.value.toString().toLowerCase() === "true"?true:false); + }, error => { + this.isCommentsEnabled = false; + }) + this.title = this.documentTitlePipe.transform(doc.title) this.documentForm.patchValue(doc) } diff --git a/src-ui/src/app/data/paperless-document-comment.ts b/src-ui/src/app/data/paperless-document-comment.ts new file mode 100644 index 000000000..1b60e6c5c --- /dev/null +++ b/src-ui/src/app/data/paperless-document-comment.ts @@ -0,0 +1,8 @@ +import { ObjectWithId } from './object-with-id' +import { CommentUser } from './user-type' + +export interface PaperlessDocumentComment extends ObjectWithId { + created?: Date + comment?: string + user?: CommentUser +} \ No newline at end of file diff --git a/src-ui/src/app/data/paperless-environment.ts b/src-ui/src/app/data/paperless-environment.ts new file mode 100644 index 000000000..27dda6427 --- /dev/null +++ b/src-ui/src/app/data/paperless-environment.ts @@ -0,0 +1,3 @@ +export interface PaperlessEnvironment { + value?: string; +} \ No newline at end of file diff --git a/src-ui/src/app/data/user-type.ts b/src-ui/src/app/data/user-type.ts new file mode 100644 index 000000000..9324cab43 --- /dev/null +++ b/src-ui/src/app/data/user-type.ts @@ -0,0 +1,7 @@ +import { ObjectWithId } from './object-with-id' + +export interface CommentUser extends ObjectWithId { + username: string + firstname: string + lastname: string +} \ No newline at end of file diff --git a/src-ui/src/app/services/rest/document-comment.service.spec.ts b/src-ui/src/app/services/rest/document-comment.service.spec.ts new file mode 100644 index 000000000..112144b90 --- /dev/null +++ b/src-ui/src/app/services/rest/document-comment.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { DocumentCommentService } from './document-comment.service'; + +describe('DocumentCommentService', () => { + let service: DocumentCommentService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(DocumentCommentService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); \ No newline at end of file diff --git a/src-ui/src/app/services/rest/document-comment.service.ts b/src-ui/src/app/services/rest/document-comment.service.ts new file mode 100644 index 000000000..b5739d65e --- /dev/null +++ b/src-ui/src/app/services/rest/document-comment.service.ts @@ -0,0 +1,31 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpParams } from '@angular/common/http'; +import { PaperlessDocumentComment } from 'src/app/data/paperless-document-comment'; +import { AbstractPaperlessService } from './abstract-paperless-service'; +import { Observable } from 'rxjs'; +import { PaperlessDocumentCommentFrame } from 'src/app/data/paperless-document-comment-frame'; + +@Injectable({ + providedIn: 'root' +}) +export class DocumentCommentService extends AbstractPaperlessService { + + constructor(http: HttpClient) { + super(http, 'documents') + } + + + getComments(id: number): Observable { + return this.http.get(this.getResourceUrl(id, "comments")) + } + + addComment(id: number, comment): Observable{ + return this.http.post(this.getResourceUrl(id, 'comments'), {"payload": comment}) + } + + deleteComment(documentId: number, commentId: number): Observable{ + let httpParams = new HttpParams(); + httpParams = httpParams.set("commentId", commentId.toString()); + return this.http.delete(this.getResourceUrl(documentId, 'comments'), {params: httpParams}); + } +} \ No newline at end of file diff --git a/src-ui/src/app/services/rest/environment.service.spec.ts b/src-ui/src/app/services/rest/environment.service.spec.ts new file mode 100644 index 000000000..941a180b9 --- /dev/null +++ b/src-ui/src/app/services/rest/environment.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { EnvironmentService } from './environment.service'; + +describe('EnvironmentService', () => { + let service: EnvironmentService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(EnvironmentService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); \ No newline at end of file diff --git a/src-ui/src/app/services/rest/environment.service.ts b/src-ui/src/app/services/rest/environment.service.ts new file mode 100644 index 000000000..86ac146ea --- /dev/null +++ b/src-ui/src/app/services/rest/environment.service.ts @@ -0,0 +1,22 @@ +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { PaperlessEnvironment } from 'src/app/data/paperless-environment'; +import { environment } from 'src/environments/environment' + +@Injectable({ + providedIn: 'root' +}) +export class EnvironmentService { + + protected baseUrl: string = environment.apiBaseUrl + + constructor(protected http: HttpClient) { } + + get(environment: string): Observable { + let httpParams = new HttpParams(); + httpParams = httpParams.set('name', environment); + + return this.http.get(`${this.baseUrl}environment/`, {params: httpParams}) + } +} \ No newline at end of file diff --git a/src/documents/management/commands/document_exporter.py b/src/documents/management/commands/document_exporter.py index 526d59368..da00d10f5 100644 --- a/src/documents/management/commands/document_exporter.py +++ b/src/documents/management/commands/document_exporter.py @@ -12,6 +12,7 @@ from django.core import serializers from django.core.management.base import BaseCommand from django.core.management.base import CommandError from django.db import transaction +from documents.models import Comment from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType @@ -126,6 +127,9 @@ class Command(BaseCommand): serializers.serialize("json", DocumentType.objects.all()), ) + manifest += json.loads( + serializers.serialize("json", Comment.objects.all())), + documents = Document.objects.order_by("id") document_map = {d.pk: d for d in documents} document_manifest = json.loads(serializers.serialize("json", documents)) diff --git a/src/documents/migrations/1023_add_comments.py b/src/documents/migrations/1023_add_comments.py new file mode 100644 index 000000000..8ae779e66 --- /dev/null +++ b/src/documents/migrations/1023_add_comments.py @@ -0,0 +1,19 @@ +from django.db import migrations, models + +class Migration(migrations.Migration): + dependencies = [ + ('documents', '1016_auto_20210317_1351'), + ] + + operations = [ + migrations.CreateModel( + name='Comment', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('comment', models.TextField()), + ('created', models.DateTimeField(auto_now_add=True)), + ('document_id', models.PositiveIntegerField()), + ('user_id', models.PositiveIntegerField()) + ], + ) + ] \ No newline at end of file diff --git a/src/documents/models.py b/src/documents/models.py index f6df273ad..cb64946c3 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -537,3 +537,40 @@ class PaperlessTask(models.Model): blank=True, ) acknowledged = models.BooleanField(default=False) + +class Comment(models.Model): + comment = models.TextField( + _("content"), + blank=True, + help_text=_("Comment for the document") + ) + + created = models.DateTimeField( + _("created"), + default=timezone.now, db_index=True) + + document = models.ForeignKey( + Document, + blank=True, + null=True, + related_name="documents", + on_delete=models.CASCADE, + verbose_name=_("document") + ) + + user = models.ForeignKey( + User, + blank=True, + null=True, + related_name="users", + on_delete=models.SET_NULL, + verbose_name=_("user") + ) + + class Meta: + ordering = ("created",) + verbose_name = _("comment") + verbose_name_plural = _("comments") + + def __str__(self): + return self.content \ No newline at end of file diff --git a/src/documents/views.py b/src/documents/views.py index b261f37fd..4633642e6 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -21,6 +21,8 @@ from django.db.models.functions import Lower from django.http import Http404 from django.http import HttpResponse from django.http import HttpResponseBadRequest +from django.http import HttpResponseNotAllowed +from django.http import HttpResponseNotFound from django.utils.decorators import method_decorator from django.utils.translation import get_language from django.views.decorators.cache import cache_control @@ -62,6 +64,7 @@ from .matching import match_correspondents from .matching import match_document_types from .matching import match_storage_paths from .matching import match_tags +from .models import Comment from .models import Correspondent from .models import Document from .models import DocumentType @@ -379,6 +382,61 @@ class DocumentViewSet( except (FileNotFoundError, Document.DoesNotExist): raise Http404() + def getComments(self, doc): + return [ + { + "id":c.id, + "comment":c.comment, + "created":c.created, + "user":{ + "id":c.user.id, + "username": c.user.username, + "firstname":c.user.first_name, + "lastname":c.user.last_name + } + } for c in Comment.objects.filter(document=doc).order_by('-created') + ]; + + @action(methods=['get', 'post', 'delete'], detail=True) + def comments(self, request, pk=None): + if settings.PAPERLESS_COMMENTS_ENABLED != True: + return HttpResponseNotAllowed("comment function is disabled") + + try: + doc = Document.objects.get(pk=pk) + except Document.DoesNotExist: + raise Http404() + + currentUser = request.user; + + if request.method == 'GET': + try: + return Response(self.getComments(doc)); + except Exception as e: + return Response({"error": str(e)}); + elif request.method == 'POST': + try: + c = Comment.objects.create( + document = doc, + comment=request.data["payload"], + user=currentUser + ); + c.save(); + + return Response(self.getComments(doc)); + except Exception as e: + return Response({ + "error": str(e) + }); + elif request.method == 'DELETE': + comment = Comment.objects.get(id=int(request.GET.get("commentId"))); + comment.delete(); + return Response(self.getComments(doc)); + + return Response({ + "error": "error" + }); + class SearchResultSerializer(DocumentSerializer): def to_representation(self, instance): @@ -835,3 +893,32 @@ class AcknowledgeTasksView(GenericAPIView): return Response({"result": result}) except Exception: return HttpResponseBadRequest() + +class EnvironmentView(APIView): + + permission_classes = (IsAuthenticated,) + + def get(self, request, format=None): + if 'name' in request.query_params: + name = request.query_params['name'] + else: + return HttpResponseBadRequest("name required") + + if(name not in settings.PAPERLESS_FRONTEND_ALLOWED_ENVIRONMENTS and settings.PAPERLESS_DISABLED_FRONTEND_ENVIRONMENT_CHECK == False): + return HttpResponseNotAllowed("environment not allowed to request") + + value = None + try: + value = getattr(settings, name) + except: + try: + value = os.getenv(name) + except: + value = None + + if value == None: + return HttpResponseNotFound("environment not found") + + return Response({ + "value": str(value) + }); diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 2ce99ac0e..e42cf4359 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -566,6 +566,14 @@ CONVERT_MEMORY_LIMIT = os.getenv("PAPERLESS_CONVERT_MEMORY_LIMIT") GS_BINARY = os.getenv("PAPERLESS_GS_BINARY", "gs") +# Comment settings +PAPERLESS_COMMENTS_ENABLED = __get_boolean("PAPERLESS_COMMENTS_ENABLED", "NO") + +# allowed environments for frontend +PAPERLESS_DISABLED_FRONTEND_ENVIRONMENT_CHECK = __get_boolean("PAPERLESS_DISABLED_FRONTEND_ENVIRONMENT_CHECK", "NO") +PAPERLESS_FRONTEND_ALLOWED_ENVIRONMENTS = [ + "PAPERLESS_COMMENTS_ENABLED" +] # Pre-2.x versions of Paperless stored your documents locally with GPG # encryption, but that is no longer the default. This behaviour is still diff --git a/src/paperless/urls.py b/src/paperless/urls.py index 46309e1e6..6ba1ee263 100644 --- a/src/paperless/urls.py +++ b/src/paperless/urls.py @@ -8,6 +8,7 @@ from django.utils.translation import gettext_lazy as _ from django.views.decorators.csrf import csrf_exempt from django.views.generic import RedirectView from documents.views import AcknowledgeTasksView +from documents.views import EnvironmentView from documents.views import BulkDownloadView from documents.views import BulkEditView from documents.views import CorrespondentViewSet @@ -94,6 +95,7 @@ urlpatterns = [ AcknowledgeTasksView.as_view(), name="acknowledge_tasks", ), + re_path(r"^environment/", EnvironmentView.as_view()), path("token/", views.obtain_auth_token), ] + api_router.urls, From 6fa32c36e92be0ae626e41ccd83b282189520011 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 15:05:58 -0700 Subject: [PATCH 142/348] Use frontend settings instead of env variable --- .../document-detail.component.html | 2 +- .../document-detail.component.ts | 16 +-- .../manage/settings/settings.component.html | 8 ++ .../manage/settings/settings.component.ts | 6 ++ src-ui/src/app/data/paperless-environment.ts | 3 - src-ui/src/app/data/paperless-uisettings.ts | 6 ++ .../services/rest/environment.service.spec.ts | 16 --- .../app/services/rest/environment.service.ts | 22 ----- src/documents/views.py | 99 +++++++------------ src/paperless/settings.py | 9 -- src/paperless/urls.py | 2 - 11 files changed, 63 insertions(+), 126 deletions(-) delete mode 100644 src-ui/src/app/data/paperless-environment.ts delete mode 100644 src-ui/src/app/services/rest/environment.service.spec.ts delete mode 100644 src-ui/src/app/services/rest/environment.service.ts diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html index ebf286895..211f93d50 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.html +++ b/src-ui/src/app/components/document-detail/document-detail.component.html @@ -169,7 +169,7 @@ -
  • +
  • Comments diff --git a/src-ui/src/app/components/document-detail/document-detail.component.ts b/src-ui/src/app/components/document-detail/document-detail.component.ts index d0f4ecded..06fddd41b 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.ts @@ -35,7 +35,6 @@ import { StoragePathService } from 'src/app/services/rest/storage-path.service' import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path' import { StoragePathEditDialogComponent } from '../common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component' import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings' -import { EnvironmentService } from 'src/app/services/rest/environment.service' @Component({ selector: 'app-document-detail', @@ -84,8 +83,6 @@ export class DocumentDetailComponent previewCurrentPage: number = 1 previewNumPages: number = 1 - isCommentsEnabled:boolean = false - store: BehaviorSubject isDirty$: Observable unsubscribeNotifier: Subject = new Subject() @@ -121,8 +118,7 @@ export class DocumentDetailComponent private documentTitlePipe: DocumentTitlePipe, private toastService: ToastService, private settings: SettingsService, - private storagePathService: StoragePathService, - private environment: EnvironmentService + private storagePathService: StoragePathService ) {} titleKeyUp(event) { @@ -278,12 +274,6 @@ export class DocumentDetailComponent this.suggestions = null }, }) - - this.environment.get("PAPERLESS_COMMENTS_ENABLED").subscribe(result => { - this.isCommentsEnabled = (result.value.toString().toLowerCase() === "true"?true:false); - }, error => { - this.isCommentsEnabled = false; - }) this.title = this.documentTitlePipe.transform(doc.title) this.documentForm.patchValue(doc) @@ -562,4 +552,8 @@ export class DocumentDetailComponent this.password = (event.target as HTMLInputElement).value } } + + get commentsEnabled(): boolean { + return this.settings.get(SETTINGS_KEYS.COMMENTS_ENABLED) + } } diff --git a/src-ui/src/app/components/manage/settings/settings.component.html b/src-ui/src/app/components/manage/settings/settings.component.html index 002cc4eed..f72587139 100644 --- a/src-ui/src/app/components/manage/settings/settings.component.html +++ b/src-ui/src/app/components/manage/settings/settings.component.html @@ -125,6 +125,14 @@ +

    Comments

    + +
    +
    + +
    +
    +
  • diff --git a/src-ui/src/app/components/manage/settings/settings.component.ts b/src-ui/src/app/components/manage/settings/settings.component.ts index 22ecfe9bb..bb7244663 100644 --- a/src-ui/src/app/components/manage/settings/settings.component.ts +++ b/src-ui/src/app/components/manage/settings/settings.component.ts @@ -44,6 +44,7 @@ export class SettingsComponent implements OnInit, OnDestroy, DirtyComponent { notificationsConsumerSuccess: new FormControl(null), notificationsConsumerFailed: new FormControl(null), notificationsConsumerSuppressOnDashboard: new FormControl(null), + commentsEnabled: new FormControl(null), }) savedViews: PaperlessSavedView[] @@ -116,6 +117,7 @@ export class SettingsComponent implements OnInit, OnDestroy, DirtyComponent { notificationsConsumerSuppressOnDashboard: this.settings.get( SETTINGS_KEYS.NOTIFICATIONS_CONSUMER_SUPPRESS_ON_DASHBOARD ), + commentsEnabled: this.settings.get(SETTINGS_KEYS.COMMENTS_ENABLED), } for (let view of this.savedViews) { @@ -234,6 +236,10 @@ export class SettingsComponent implements OnInit, OnDestroy, DirtyComponent { SETTINGS_KEYS.NOTIFICATIONS_CONSUMER_SUPPRESS_ON_DASHBOARD, this.settingsForm.value.notificationsConsumerSuppressOnDashboard ) + this.settings.set( + SETTINGS_KEYS.COMMENTS_ENABLED, + this.settingsForm.value.commentsEnabled + ) this.settings.setLanguage(this.settingsForm.value.displayLanguage) this.settings .storeSettings() diff --git a/src-ui/src/app/data/paperless-environment.ts b/src-ui/src/app/data/paperless-environment.ts deleted file mode 100644 index 27dda6427..000000000 --- a/src-ui/src/app/data/paperless-environment.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface PaperlessEnvironment { - value?: string; -} \ No newline at end of file diff --git a/src-ui/src/app/data/paperless-uisettings.ts b/src-ui/src/app/data/paperless-uisettings.ts index 75aec2a51..e3d977687 100644 --- a/src-ui/src/app/data/paperless-uisettings.ts +++ b/src-ui/src/app/data/paperless-uisettings.ts @@ -36,6 +36,7 @@ export const SETTINGS_KEYS = { 'general-settings:notifications:consumer-failed', NOTIFICATIONS_CONSUMER_SUPPRESS_ON_DASHBOARD: 'general-settings:notifications:consumer-suppress-on-dashboard', + COMMENTS_ENABLED: 'general-settings:comments-enabled', } export const SETTINGS: PaperlessUiSetting[] = [ @@ -114,4 +115,9 @@ export const SETTINGS: PaperlessUiSetting[] = [ type: 'boolean', default: true, }, + { + key: SETTINGS_KEYS.COMMENTS_ENABLED, + type: 'boolean', + default: true, + }, ] diff --git a/src-ui/src/app/services/rest/environment.service.spec.ts b/src-ui/src/app/services/rest/environment.service.spec.ts deleted file mode 100644 index 941a180b9..000000000 --- a/src-ui/src/app/services/rest/environment.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { EnvironmentService } from './environment.service'; - -describe('EnvironmentService', () => { - let service: EnvironmentService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(EnvironmentService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); \ No newline at end of file diff --git a/src-ui/src/app/services/rest/environment.service.ts b/src-ui/src/app/services/rest/environment.service.ts deleted file mode 100644 index 86ac146ea..000000000 --- a/src-ui/src/app/services/rest/environment.service.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { HttpClient, HttpParams } from '@angular/common/http'; -import { Injectable } from '@angular/core'; -import { Observable } from 'rxjs'; -import { PaperlessEnvironment } from 'src/app/data/paperless-environment'; -import { environment } from 'src/environments/environment' - -@Injectable({ - providedIn: 'root' -}) -export class EnvironmentService { - - protected baseUrl: string = environment.apiBaseUrl - - constructor(protected http: HttpClient) { } - - get(environment: string): Observable { - let httpParams = new HttpParams(); - httpParams = httpParams.set('name', environment); - - return this.http.get(`${this.baseUrl}environment/`, {params: httpParams}) - } -} \ No newline at end of file diff --git a/src/documents/views.py b/src/documents/views.py index 4633642e6..9713e5d95 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -22,7 +22,6 @@ from django.http import Http404 from django.http import HttpResponse from django.http import HttpResponseBadRequest from django.http import HttpResponseNotAllowed -from django.http import HttpResponseNotFound from django.utils.decorators import method_decorator from django.utils.translation import get_language from django.views.decorators.cache import cache_control @@ -385,21 +384,22 @@ class DocumentViewSet( def getComments(self, doc): return [ { - "id":c.id, - "comment":c.comment, - "created":c.created, - "user":{ - "id":c.user.id, + "id": c.id, + "comment": c.comment, + "created": c.created, + "user": { + "id": c.user.id, "username": c.user.username, - "firstname":c.user.first_name, - "lastname":c.user.last_name - } - } for c in Comment.objects.filter(document=doc).order_by('-created') - ]; + "firstname": c.user.first_name, + "lastname": c.user.last_name, + }, + } + for c in Comment.objects.filter(document=doc).order_by("-created") + ] - @action(methods=['get', 'post', 'delete'], detail=True) + @action(methods=["get", "post", "delete"], detail=True) def comments(self, request, pk=None): - if settings.PAPERLESS_COMMENTS_ENABLED != True: + if settings.PAPERLESS_COMMENTS_ENABLED is not True: return HttpResponseNotAllowed("comment function is disabled") try: @@ -407,35 +407,39 @@ class DocumentViewSet( except Document.DoesNotExist: raise Http404() - currentUser = request.user; + currentUser = request.user - if request.method == 'GET': + if request.method == "GET": try: - return Response(self.getComments(doc)); + return Response(self.getComments(doc)) except Exception as e: - return Response({"error": str(e)}); - elif request.method == 'POST': + return Response({"error": str(e)}) + elif request.method == "POST": try: c = Comment.objects.create( - document = doc, + document=doc, comment=request.data["payload"], - user=currentUser - ); - c.save(); + user=currentUser, + ) + c.save() - return Response(self.getComments(doc)); + return Response(self.getComments(doc)) except Exception as e: - return Response({ - "error": str(e) - }); - elif request.method == 'DELETE': - comment = Comment.objects.get(id=int(request.GET.get("commentId"))); - comment.delete(); - return Response(self.getComments(doc)); + return Response( + { + "error": str(e), + }, + ) + elif request.method == "DELETE": + comment = Comment.objects.get(id=int(request.GET.get("commentId"))) + comment.delete() + return Response(self.getComments(doc)) - return Response({ - "error": "error" - }); + return Response( + { + "error": "error", + }, + ) class SearchResultSerializer(DocumentSerializer): @@ -893,32 +897,3 @@ class AcknowledgeTasksView(GenericAPIView): return Response({"result": result}) except Exception: return HttpResponseBadRequest() - -class EnvironmentView(APIView): - - permission_classes = (IsAuthenticated,) - - def get(self, request, format=None): - if 'name' in request.query_params: - name = request.query_params['name'] - else: - return HttpResponseBadRequest("name required") - - if(name not in settings.PAPERLESS_FRONTEND_ALLOWED_ENVIRONMENTS and settings.PAPERLESS_DISABLED_FRONTEND_ENVIRONMENT_CHECK == False): - return HttpResponseNotAllowed("environment not allowed to request") - - value = None - try: - value = getattr(settings, name) - except: - try: - value = os.getenv(name) - except: - value = None - - if value == None: - return HttpResponseNotFound("environment not found") - - return Response({ - "value": str(value) - }); diff --git a/src/paperless/settings.py b/src/paperless/settings.py index e42cf4359..bfa498359 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -566,15 +566,6 @@ CONVERT_MEMORY_LIMIT = os.getenv("PAPERLESS_CONVERT_MEMORY_LIMIT") GS_BINARY = os.getenv("PAPERLESS_GS_BINARY", "gs") -# Comment settings -PAPERLESS_COMMENTS_ENABLED = __get_boolean("PAPERLESS_COMMENTS_ENABLED", "NO") - -# allowed environments for frontend -PAPERLESS_DISABLED_FRONTEND_ENVIRONMENT_CHECK = __get_boolean("PAPERLESS_DISABLED_FRONTEND_ENVIRONMENT_CHECK", "NO") -PAPERLESS_FRONTEND_ALLOWED_ENVIRONMENTS = [ - "PAPERLESS_COMMENTS_ENABLED" -] - # Pre-2.x versions of Paperless stored your documents locally with GPG # encryption, but that is no longer the default. This behaviour is still # available, but it must be explicitly enabled by setting diff --git a/src/paperless/urls.py b/src/paperless/urls.py index 6ba1ee263..46309e1e6 100644 --- a/src/paperless/urls.py +++ b/src/paperless/urls.py @@ -8,7 +8,6 @@ from django.utils.translation import gettext_lazy as _ from django.views.decorators.csrf import csrf_exempt from django.views.generic import RedirectView from documents.views import AcknowledgeTasksView -from documents.views import EnvironmentView from documents.views import BulkDownloadView from documents.views import BulkEditView from documents.views import CorrespondentViewSet @@ -95,7 +94,6 @@ urlpatterns = [ AcknowledgeTasksView.as_view(), name="acknowledge_tasks", ), - re_path(r"^environment/", EnvironmentView.as_view()), path("token/", views.obtain_auth_token), ] + api_router.urls, From 78bd424ecb505d77a387459c1d9f9bd5c466879b Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 15:06:21 -0700 Subject: [PATCH 143/348] Remove faux testing file --- .../rest/document-comment.service.spec.ts | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 src-ui/src/app/services/rest/document-comment.service.spec.ts diff --git a/src-ui/src/app/services/rest/document-comment.service.spec.ts b/src-ui/src/app/services/rest/document-comment.service.spec.ts deleted file mode 100644 index 112144b90..000000000 --- a/src-ui/src/app/services/rest/document-comment.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { DocumentCommentService } from './document-comment.service'; - -describe('DocumentCommentService', () => { - let service: DocumentCommentService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(DocumentCommentService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); \ No newline at end of file From f20f200c8d2be8a1c26d006919115b5aa708289f Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 15:06:52 -0700 Subject: [PATCH 144/348] Fix comment service method signature and run prettier over file --- .../services/rest/document-comment.service.ts | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src-ui/src/app/services/rest/document-comment.service.ts b/src-ui/src/app/services/rest/document-comment.service.ts index b5739d65e..2dfbb3185 100644 --- a/src-ui/src/app/services/rest/document-comment.service.ts +++ b/src-ui/src/app/services/rest/document-comment.service.ts @@ -1,31 +1,39 @@ -import { Injectable } from '@angular/core'; -import { HttpClient, HttpParams } from '@angular/common/http'; -import { PaperlessDocumentComment } from 'src/app/data/paperless-document-comment'; -import { AbstractPaperlessService } from './abstract-paperless-service'; -import { Observable } from 'rxjs'; -import { PaperlessDocumentCommentFrame } from 'src/app/data/paperless-document-comment-frame'; +import { Injectable } from '@angular/core' +import { HttpClient, HttpParams } from '@angular/common/http' +import { PaperlessDocumentComment } from 'src/app/data/paperless-document-comment' +import { AbstractPaperlessService } from './abstract-paperless-service' +import { Observable } from 'rxjs' @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class DocumentCommentService extends AbstractPaperlessService { - constructor(http: HttpClient) { super(http, 'documents') } - - getComments(id: number): Observable { - return this.http.get(this.getResourceUrl(id, "comments")) + getComments(id: number): Observable { + return this.http.get( + this.getResourceUrl(id, 'comments') + ) } - addComment(id: number, comment): Observable{ - return this.http.post(this.getResourceUrl(id, 'comments'), {"payload": comment}) + addComment(id: number, comment): Observable { + return this.http.post( + this.getResourceUrl(id, 'comments'), + { payload: comment } + ) } - deleteComment(documentId: number, commentId: number): Observable{ - let httpParams = new HttpParams(); - httpParams = httpParams.set("commentId", commentId.toString()); - return this.http.delete(this.getResourceUrl(documentId, 'comments'), {params: httpParams}); + deleteComment( + documentId: number, + commentId: number + ): Observable { + let httpParams = new HttpParams() + httpParams = httpParams.set('commentId', commentId.toString()) + return this.http.delete( + this.getResourceUrl(documentId, 'comments'), + { params: httpParams } + ) } -} \ No newline at end of file +} From 97cfd0085e9b1500e021bca90ea4998fcffe2c8f Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 15:47:30 -0700 Subject: [PATCH 145/348] Remove faux test file --- .../document-comment.component.spec.ts | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 src-ui/src/app/components/document-comment/document-comment.component.spec.ts diff --git a/src-ui/src/app/components/document-comment/document-comment.component.spec.ts b/src-ui/src/app/components/document-comment/document-comment.component.spec.ts deleted file mode 100644 index 1f6389b1d..000000000 --- a/src-ui/src/app/components/document-comment/document-comment.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { DocumentCommentComponent } from './document-comment.component'; - -describe('DocumentCommentComponent', () => { - let component: DocumentCommentComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ DocumentCommentComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(DocumentCommentComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); \ No newline at end of file From 865fbbd15c963a08ac8b07a4c1faeab0a532c791 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 17:30:49 -0700 Subject: [PATCH 146/348] Missed PAPERLESS_COMMENTS_ENABLED code --- src/documents/views.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/documents/views.py b/src/documents/views.py index 9713e5d95..41f652905 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -21,7 +21,6 @@ from django.db.models.functions import Lower from django.http import Http404 from django.http import HttpResponse from django.http import HttpResponseBadRequest -from django.http import HttpResponseNotAllowed from django.utils.decorators import method_decorator from django.utils.translation import get_language from django.views.decorators.cache import cache_control @@ -399,9 +398,6 @@ class DocumentViewSet( @action(methods=["get", "post", "delete"], detail=True) def comments(self, request, pk=None): - if settings.PAPERLESS_COMMENTS_ENABLED is not True: - return HttpResponseNotAllowed("comment function is disabled") - try: doc = Document.objects.get(pk=pk) except Document.DoesNotExist: From 6d956ac13b0235dd2ebd9a36354ba1fc67f5d0d0 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 17:31:03 -0700 Subject: [PATCH 147/348] fix migration dependency and run code style --- src/documents/migrations/1023_add_comments.py | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/documents/migrations/1023_add_comments.py b/src/documents/migrations/1023_add_comments.py index 8ae779e66..124e4777c 100644 --- a/src/documents/migrations/1023_add_comments.py +++ b/src/documents/migrations/1023_add_comments.py @@ -1,19 +1,28 @@ from django.db import migrations, models + class Migration(migrations.Migration): dependencies = [ - ('documents', '1016_auto_20210317_1351'), + ("documents", "1022_paperlesstask"), ] operations = [ migrations.CreateModel( - name='Comment', + name="Comment", fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('comment', models.TextField()), - ('created', models.DateTimeField(auto_now_add=True)), - ('document_id', models.PositiveIntegerField()), - ('user_id', models.PositiveIntegerField()) + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("comment", models.TextField()), + ("created", models.DateTimeField(auto_now_add=True)), + ("document_id", models.PositiveIntegerField()), + ("user_id", models.PositiveIntegerField()), ], ) - ] \ No newline at end of file + ] From 5c1e09cc48790a4eb4d91eeb2a0693a40671a795 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 17:33:13 -0700 Subject: [PATCH 148/348] Refactor comment UI code And run prettier --- src-ui/src/app/app.module.ts | 4 +- .../document-comment.component.ts | 63 ---------------- .../document-comments.component.html} | 10 +-- .../document-comments.component.scss} | 2 +- .../document-comments.component.ts | 73 +++++++++++++++++++ .../document-detail.component.html | 2 +- ...ervice.ts => document-comments.service.ts} | 6 +- 7 files changed, 85 insertions(+), 75 deletions(-) delete mode 100644 src-ui/src/app/components/document-comment/document-comment.component.ts rename src-ui/src/app/components/{document-comment/document-comment.component.html => document-comments/document-comments.component.html} (71%) rename src-ui/src/app/components/{document-comment/document-comment.component.scss => document-comments/document-comments.component.scss} (99%) create mode 100644 src-ui/src/app/components/document-comments/document-comments.component.ts rename src-ui/src/app/services/rest/{document-comment.service.ts => document-comments.service.ts} (82%) diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts index dd34724a6..9840deb58 100644 --- a/src-ui/src/app/app.module.ts +++ b/src-ui/src/app/app.module.ts @@ -67,7 +67,7 @@ import { ApiVersionInterceptor } from './interceptors/api-version.interceptor' import { ColorSliderModule } from 'ngx-color/slider' import { ColorComponent } from './components/common/input/color/color.component' import { DocumentAsnComponent } from './components/document-asn/document-asn.component' -import { DocumentCommentComponent } from './components/document-comment/document-comment.component'; +import { DocumentCommentsComponent } from './components/document-comments/document-comments.component' import { DirtyDocGuard } from './guards/dirty-doc.guard' import localeBe from '@angular/common/locales/be' @@ -174,7 +174,7 @@ function initializeApp(settings: SettingsService) { DateComponent, ColorComponent, DocumentAsnComponent, - DocumentCommentComponent, + DocumentCommentsComponent, TasksComponent, ], imports: [ diff --git a/src-ui/src/app/components/document-comment/document-comment.component.ts b/src-ui/src/app/components/document-comment/document-comment.component.ts deleted file mode 100644 index 57b052d84..000000000 --- a/src-ui/src/app/components/document-comment/document-comment.component.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { DocumentDetailComponent } from 'src/app/components/document-detail/document-detail.component'; -import { DocumentCommentService } from 'src/app/services/rest/document-comment.service'; -import { PaperlessDocumentComment } from 'src/app/data/paperless-document-comment'; - -import { take } from 'rxjs/operators'; -import { FormControl, FormGroup } from '@angular/forms'; - -@Component({ - selector: 'app-document-comment', - templateUrl: './document-comment.component.html', - styleUrls: ['./document-comment.component.scss'] -}) -export class DocumentCommentComponent implements OnInit { - - comments:PaperlessDocumentComment[]; - networkActive = false; - documentId: number; - commentForm: FormGroup = new FormGroup({ - newcomment: new FormControl('') - }) - - constructor( - private documentDetailComponent: DocumentDetailComponent, - private documentCommentService: DocumentCommentService, - ) { } - - byId(index, item: PaperlessDocumentComment) { - return item.id; - } - - async ngOnInit(): Promise { - try { - this.documentId = this.documentDetailComponent.documentId; - this.comments= await this.documentCommentService.getComments(this.documentId).pipe(take(1)).toPromise(); - } catch(err){ - this.comments = []; - } - } - - addComment(){ - this.networkActive = true - this.documentCommentService.addComment(this.documentId, this.commentForm.get("newcomment").value).subscribe(result => { - this.comments = result; - this.commentForm.get("newcomment").reset(); - this.networkActive = false; - }, error => { - this.networkActive = false; - }); - } - - deleteComment(event){ - let parent = event.target.parentElement.closest('div[comment-id]'); - if(parent){ - this.documentCommentService.deleteComment(this.documentId, parseInt(parent.getAttribute("comment-id"))).subscribe(result => { - this.comments = result; - this.networkActive = false; - }, error => { - this.networkActive = false; - }); - } - } -} \ No newline at end of file diff --git a/src-ui/src/app/components/document-comment/document-comment.component.html b/src-ui/src/app/components/document-comments/document-comments.component.html similarity index 71% rename from src-ui/src/app/components/document-comment/document-comment.component.html rename to src-ui/src/app/components/document-comments/document-comments.component.html index 6a36f999f..bdad4da4d 100644 --- a/src-ui/src/app/components/document-comment/document-comment.component.html +++ b/src-ui/src/app/components/document-comments/document-comments.component.html @@ -1,16 +1,16 @@
    - +
    -   +

    -
    +
    {{comment?.user?.firstname}} {{comment?.user?.lastname}} ({{comment?.user?.username}}) - {{ comment?.created | customDate}} - + @@ -22,4 +22,4 @@ {{comment.comment}}
    -
    \ No newline at end of file +
    diff --git a/src-ui/src/app/components/document-comment/document-comment.component.scss b/src-ui/src/app/components/document-comments/document-comments.component.scss similarity index 99% rename from src-ui/src/app/components/document-comment/document-comment.component.scss rename to src-ui/src/app/components/document-comments/document-comments.component.scss index 778556485..a5ff6f86e 100644 --- a/src-ui/src/app/components/document-comment/document-comment.component.scss +++ b/src-ui/src/app/components/document-comments/document-comments.component.scss @@ -19,4 +19,4 @@ .comment-card-header a:hover svg { fill: var(--primary); -} \ No newline at end of file +} diff --git a/src-ui/src/app/components/document-comments/document-comments.component.ts b/src-ui/src/app/components/document-comments/document-comments.component.ts new file mode 100644 index 000000000..421811d4f --- /dev/null +++ b/src-ui/src/app/components/document-comments/document-comments.component.ts @@ -0,0 +1,73 @@ +import { Component, Input, OnInit } from '@angular/core' +import { DocumentCommentsService } from 'src/app/services/rest/document-comments.service' +import { PaperlessDocumentComment } from 'src/app/data/paperless-document-comment' +import { FormControl, FormGroup } from '@angular/forms' +import { first } from 'rxjs/operators' +import { ToastService } from 'src/app/services/toast.service' + +@Component({ + selector: 'app-document-comments', + templateUrl: './document-comments.component.html', + styleUrls: ['./document-comments.component.scss'], +}) +export class DocumentCommentsComponent implements OnInit { + commentForm: FormGroup = new FormGroup({ + newcomment: new FormControl(''), + }) + + networkActive = false + comments: PaperlessDocumentComment[] = [] + + @Input() + documentId: number + + constructor( + private commentsService: DocumentCommentsService, + private toastService: ToastService + ) {} + + ngOnInit(): void { + this.commentsService + .getComments(this.documentId) + .pipe(first()) + .subscribe((comments) => (this.comments = comments)) + } + + commentId(index, comment: PaperlessDocumentComment) { + return comment.id + } + + addComment() { + this.networkActive = true + this.commentsService + .addComment(this.documentId, this.commentForm.get('newcomment').value) + .subscribe({ + next: (result) => { + this.comments = result + this.commentForm.get('newcomment').reset() + this.networkActive = false + }, + error: (e) => { + this.networkActive = false + this.toastService.showError( + $localize`Error saving comment: ${e.toString()}` + ) + }, + }) + } + + deleteComment(commentId: number) { + this.commentsService.deleteComment(this.documentId, commentId).subscribe({ + next: (result) => { + this.comments = result + this.networkActive = false + }, + error: (e) => { + this.networkActive = false + this.toastService.showError( + $localize`Error deleting comment: ${e.toString()}` + ) + }, + }) + } +} diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html index 211f93d50..8e7176655 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.html +++ b/src-ui/src/app/components/document-detail/document-detail.component.html @@ -172,7 +172,7 @@
  • Comments - +
  • diff --git a/src-ui/src/app/services/rest/document-comment.service.ts b/src-ui/src/app/services/rest/document-comments.service.ts similarity index 82% rename from src-ui/src/app/services/rest/document-comment.service.ts rename to src-ui/src/app/services/rest/document-comments.service.ts index 2dfbb3185..b105a90d1 100644 --- a/src-ui/src/app/services/rest/document-comment.service.ts +++ b/src-ui/src/app/services/rest/document-comments.service.ts @@ -7,14 +7,14 @@ import { Observable } from 'rxjs' @Injectable({ providedIn: 'root', }) -export class DocumentCommentService extends AbstractPaperlessService { +export class DocumentCommentsService extends AbstractPaperlessService { constructor(http: HttpClient) { super(http, 'documents') } - getComments(id: number): Observable { + getComments(documentId: number): Observable { return this.http.get( - this.getResourceUrl(id, 'comments') + this.getResourceUrl(documentId, 'comments') ) } From d5018af2a3f137a20941af834f1cc3b069914d44 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 17:45:49 -0700 Subject: [PATCH 149/348] python code style --- .../management/commands/document_exporter.py | 7 +++++-- src/documents/models.py | 13 ++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/documents/management/commands/document_exporter.py b/src/documents/management/commands/document_exporter.py index da00d10f5..1493bf078 100644 --- a/src/documents/management/commands/document_exporter.py +++ b/src/documents/management/commands/document_exporter.py @@ -127,8 +127,11 @@ class Command(BaseCommand): serializers.serialize("json", DocumentType.objects.all()), ) - manifest += json.loads( - serializers.serialize("json", Comment.objects.all())), + manifest += ( + json.loads( + serializers.serialize("json", Comment.objects.all()), + ), + ) documents = Document.objects.order_by("id") document_map = {d.pk: d for d in documents} diff --git a/src/documents/models.py b/src/documents/models.py index cb64946c3..b2070d2f1 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -538,16 +538,19 @@ class PaperlessTask(models.Model): ) acknowledged = models.BooleanField(default=False) + class Comment(models.Model): comment = models.TextField( _("content"), blank=True, - help_text=_("Comment for the document") + help_text=_("Comment for the document"), ) created = models.DateTimeField( _("created"), - default=timezone.now, db_index=True) + default=timezone.now, + db_index=True, + ) document = models.ForeignKey( Document, @@ -555,7 +558,7 @@ class Comment(models.Model): null=True, related_name="documents", on_delete=models.CASCADE, - verbose_name=_("document") + verbose_name=_("document"), ) user = models.ForeignKey( @@ -564,7 +567,7 @@ class Comment(models.Model): null=True, related_name="users", on_delete=models.SET_NULL, - verbose_name=_("user") + verbose_name=_("user"), ) class Meta: @@ -573,4 +576,4 @@ class Comment(models.Model): verbose_name_plural = _("comments") def __str__(self): - return self.content \ No newline at end of file + return self.content From 1b56ffd0c09c1a4fb09a165944421508e44a4605 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 21:44:28 -0700 Subject: [PATCH 150/348] Rework comment UI Add error popups, text field validation, move form, move comment header to footer, updated styling --- .../document-comments.component.html | 44 +++++++------- .../document-comments.component.scss | 21 ++----- .../document-comments.component.ts | 57 ++++++++++++------- 3 files changed, 65 insertions(+), 57 deletions(-) diff --git a/src-ui/src/app/components/document-comments/document-comments.component.html b/src-ui/src/app/components/document-comments/document-comments.component.html index bdad4da4d..055c97552 100644 --- a/src-ui/src/app/components/document-comments/document-comments.component.html +++ b/src-ui/src/app/components/document-comments/document-comments.component.html @@ -1,25 +1,29 @@
    -
    -
    - +
    +
    +

    {{comment.comment}}

    - - -
    -
    -
    - {{comment?.user?.firstname}} {{comment?.user?.lastname}} ({{comment?.user?.username}}) - {{ comment?.created | customDate}} - - - - - - - - -
    -
    - {{comment.comment}} +
    +
    +
    +
    + +
    + Please enter a comment. +
    +
    +
    + +
    +
    +
    diff --git a/src-ui/src/app/components/document-comments/document-comments.component.scss b/src-ui/src/app/components/document-comments/document-comments.component.scss index a5ff6f86e..d7e21e14e 100644 --- a/src-ui/src/app/components/document-comments/document-comments.component.scss +++ b/src-ui/src/app/components/document-comments/document-comments.component.scss @@ -1,22 +1,9 @@ -.comment-card-body { - padding-top: .8rem !important; - padding-bottom: .8rem !important; - max-height: 10rem; +.card-body { + max-height: 12rem; overflow: scroll; white-space: pre-wrap; } -.comment-card-header a { - border: none; - background: none; - padding: 5px; - border-radius: 50%; -} - -.comment-card-header a:hover { - background: #FFF; -} - -.comment-card-header a:hover svg { - fill: var(--primary); +.card:hover .fade { + opacity: 1; } diff --git a/src-ui/src/app/components/document-comments/document-comments.component.ts b/src-ui/src/app/components/document-comments/document-comments.component.ts index 421811d4f..5362e1661 100644 --- a/src-ui/src/app/components/document-comments/document-comments.component.ts +++ b/src-ui/src/app/components/document-comments/document-comments.component.ts @@ -12,11 +12,12 @@ import { ToastService } from 'src/app/services/toast.service' }) export class DocumentCommentsComponent implements OnInit { commentForm: FormGroup = new FormGroup({ - newcomment: new FormControl(''), + newComment: new FormControl(''), }) networkActive = false comments: PaperlessDocumentComment[] = [] + newCommentError: boolean = false @Input() documentId: number @@ -33,27 +34,30 @@ export class DocumentCommentsComponent implements OnInit { .subscribe((comments) => (this.comments = comments)) } - commentId(index, comment: PaperlessDocumentComment) { - return comment.id - } - addComment() { + const comment: string = this.commentForm + .get('newComment') + .value.toString() + .trim() + if (comment.length == 0) { + this.newCommentError = true + return + } + this.newCommentError = false this.networkActive = true - this.commentsService - .addComment(this.documentId, this.commentForm.get('newcomment').value) - .subscribe({ - next: (result) => { - this.comments = result - this.commentForm.get('newcomment').reset() - this.networkActive = false - }, - error: (e) => { - this.networkActive = false - this.toastService.showError( - $localize`Error saving comment: ${e.toString()}` - ) - }, - }) + this.commentsService.addComment(this.documentId, comment).subscribe({ + next: (result) => { + this.comments = result + this.commentForm.get('newComment').reset() + this.networkActive = false + }, + error: (e) => { + this.networkActive = false + this.toastService.showError( + $localize`Error saving comment: ${e.toString()}` + ) + }, + }) } deleteComment(commentId: number) { @@ -70,4 +74,17 @@ export class DocumentCommentsComponent implements OnInit { }, }) } + + displayName(comment: PaperlessDocumentComment): string { + if (!comment.user) return '' + let nameComponents = [] + if (comment.user.firstname) nameComponents.unshift(comment.user.firstname) + if (comment.user.lastname) nameComponents.unshift(comment.user.lastname) + if (comment.user.username) { + if (nameComponents.length > 0) + nameComponents.push(`(${comment.user.username})`) + else nameComponents.push(comment.user.username) + } + return nameComponents.join(' ') + } } From 1d2282df9e8e105f6b2292b3e44ec7d83a2ea6b0 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 22:05:32 -0700 Subject: [PATCH 151/348] Cleanup frontend comment service & other code [ci skip] --- .../document-comments/document-comments.component.html | 7 +++---- .../document-detail/document-detail.component.html | 1 - .../document-detail/document-detail.component.ts | 1 - src-ui/src/app/data/paperless-document-comment.ts | 10 +++++----- src-ui/src/app/data/user-type.ts | 7 ------- src-ui/src/app/data/user.ts | 7 +++++++ .../src/app/services/rest/document-comments.service.ts | 6 ++---- src/documents/views.py | 4 ++-- src/paperless/settings.py | 1 + 9 files changed, 20 insertions(+), 24 deletions(-) delete mode 100644 src-ui/src/app/data/user-type.ts create mode 100644 src-ui/src/app/data/user.ts diff --git a/src-ui/src/app/components/document-comments/document-comments.component.html b/src-ui/src/app/components/document-comments/document-comments.component.html index 055c97552..107d02623 100644 --- a/src-ui/src/app/components/document-comments/document-comments.component.html +++ b/src-ui/src/app/components/document-comments/document-comments.component.html @@ -4,11 +4,10 @@

    {{comment.comment}}

    diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html index 8e7176655..8481cad2f 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.html +++ b/src-ui/src/app/components/document-detail/document-detail.component.html @@ -174,7 +174,6 @@ - diff --git a/src-ui/src/app/components/document-detail/document-detail.component.ts b/src-ui/src/app/components/document-detail/document-detail.component.ts index 06fddd41b..ff0a5303b 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.ts @@ -274,7 +274,6 @@ export class DocumentDetailComponent this.suggestions = null }, }) - this.title = this.documentTitlePipe.transform(doc.title) this.documentForm.patchValue(doc) } diff --git a/src-ui/src/app/data/paperless-document-comment.ts b/src-ui/src/app/data/paperless-document-comment.ts index 1b60e6c5c..14085cf32 100644 --- a/src-ui/src/app/data/paperless-document-comment.ts +++ b/src-ui/src/app/data/paperless-document-comment.ts @@ -1,8 +1,8 @@ import { ObjectWithId } from './object-with-id' -import { CommentUser } from './user-type' +import { User } from './user' export interface PaperlessDocumentComment extends ObjectWithId { - created?: Date - comment?: string - user?: CommentUser -} \ No newline at end of file + created?: Date + comment?: string + user?: User +} diff --git a/src-ui/src/app/data/user-type.ts b/src-ui/src/app/data/user-type.ts deleted file mode 100644 index 9324cab43..000000000 --- a/src-ui/src/app/data/user-type.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ObjectWithId } from './object-with-id' - -export interface CommentUser extends ObjectWithId { - username: string - firstname: string - lastname: string -} \ No newline at end of file diff --git a/src-ui/src/app/data/user.ts b/src-ui/src/app/data/user.ts new file mode 100644 index 000000000..adf00e86b --- /dev/null +++ b/src-ui/src/app/data/user.ts @@ -0,0 +1,7 @@ +import { ObjectWithId } from './object-with-id' + +export interface User extends ObjectWithId { + username: string + firstname: string + lastname: string +} diff --git a/src-ui/src/app/services/rest/document-comments.service.ts b/src-ui/src/app/services/rest/document-comments.service.ts index b105a90d1..a697c0e93 100644 --- a/src-ui/src/app/services/rest/document-comments.service.ts +++ b/src-ui/src/app/services/rest/document-comments.service.ts @@ -21,7 +21,7 @@ export class DocumentCommentsService extends AbstractPaperlessService { return this.http.post( this.getResourceUrl(id, 'comments'), - { payload: comment } + { comment: comment } ) } @@ -29,11 +29,9 @@ export class DocumentCommentsService extends AbstractPaperlessService { - let httpParams = new HttpParams() - httpParams = httpParams.set('commentId', commentId.toString()) return this.http.delete( this.getResourceUrl(documentId, 'comments'), - { params: httpParams } + { params: new HttpParams({ fromString: `id=${commentId}` }) } ) } } diff --git a/src/documents/views.py b/src/documents/views.py index 41f652905..b9c8a1265 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -414,7 +414,7 @@ class DocumentViewSet( try: c = Comment.objects.create( document=doc, - comment=request.data["payload"], + comment=request.data["comment"], user=currentUser, ) c.save() @@ -427,7 +427,7 @@ class DocumentViewSet( }, ) elif request.method == "DELETE": - comment = Comment.objects.get(id=int(request.GET.get("commentId"))) + comment = Comment.objects.get(id=int(request.GET.get("id"))) comment.delete() return Response(self.getComments(doc)) diff --git a/src/paperless/settings.py b/src/paperless/settings.py index bfa498359..2ce99ac0e 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -566,6 +566,7 @@ CONVERT_MEMORY_LIMIT = os.getenv("PAPERLESS_CONVERT_MEMORY_LIMIT") GS_BINARY = os.getenv("PAPERLESS_GS_BINARY", "gs") + # Pre-2.x versions of Paperless stored your documents locally with GPG # encryption, but that is no longer the default. This behaviour is still # available, but it must be explicitly enabled by setting From 3f536552a623f03fb62de58b9d4a9c20a2cf7f12 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 23 Aug 2022 15:15:34 -0700 Subject: [PATCH 152/348] Move add comment to top of comments list --- .../document-comments.component.html | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src-ui/src/app/components/document-comments/document-comments.component.html b/src-ui/src/app/components/document-comments/document-comments.component.html index 107d02623..7e4afa90a 100644 --- a/src-ui/src/app/components/document-comments/document-comments.component.html +++ b/src-ui/src/app/components/document-comments/document-comments.component.html @@ -1,4 +1,16 @@
    +
    +
    + +
    + Please enter a comment. +
    +
    +
    + +
    +
    +

    {{comment.comment}}

    @@ -12,17 +24,4 @@
    -
    -
    -
    - -
    - Please enter a comment. -
    -
    -
    - -
    -
    -
    From ba1cdd5914ffa28cf83fa72d47fbf00af499e06c Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 7 Aug 2022 22:33:05 -0700 Subject: [PATCH 153/348] Update messages.xlf --- src-ui/messages.xlf | 117 ++++++++++++++++++++++++++++++++------------ 1 file changed, 85 insertions(+), 32 deletions(-) diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index b17b0ee10..3080e8b84 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -395,7 +395,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 @@ -701,7 +701,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -816,7 +816,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -824,7 +824,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 @@ -1304,6 +1304,41 @@ 1 + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Page @@ -1370,7 +1405,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 @@ -1634,21 +1669,32 @@ src/app/components/document-detail/document-detail.component.html - 196 + 202 + + + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 Discard src/app/components/document-detail/document-detail.component.html - 176 + 182 Save & next src/app/components/document-detail/document-detail.component.html - 177 + 183 @@ -1832,7 +1878,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -2310,14 +2356,14 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 @@ -2454,7 +2500,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 @@ -2465,7 +2511,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 @@ -2840,123 +2886,130 @@ 124 + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 @@ -2965,7 +3018,7 @@ )"/> src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 @@ -3211,7 +3264,7 @@ Warning: You have unsaved changes to your document(s). src/app/guards/dirty-doc.guard.ts - 18 + 17 From 66593a28f50f26c3208a2ebacdaf07d7578f4d4f Mon Sep 17 00:00:00 2001 From: Mark Stenglein Date: Tue, 23 Aug 2022 19:58:06 -0400 Subject: [PATCH 154/348] docs: scanners: add Brother ads4700w I've tested Paperless with the ADS-4700W and it works great. This commit adds the recommendation. --- docs/scanners.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/scanners.rst b/docs/scanners.rst index 3e0210cce..8b63614f9 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -30,6 +30,8 @@ Physical scanners +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | Brother | `ADS-4300N`_ | yes | yes | | yes | yes | |`derlucas`_ | +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ +| Brother | `ADS-4700W`_ | yes | yes | | yes | yes | |`ocelotsloth`_ | ++---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | Brother | `MFC-J6930DW`_ | yes | | | | | |`ayounggun`_ | +---------+-------------------+-----+------+-----+----------+------+----------+----------------+ | Brother | `MFC-L5850DW`_ | yes | | | | yes | |`holzhannes`_ | @@ -65,6 +67,7 @@ Physical scanners .. _ADS-1100W: https://support.brother.com/g/b/downloadtop.aspx?c=fr&lang=fr&prod=ads1100w_eu_as_cn .. _ADS-2800W: https://www.brother-usa.com/products/ads2800w .. _ADS-4300N: https://www.brother-usa.com/products/ads4300n +.. _ADS-4700W: https://www.brother-usa.com/products/ads4700w .. _Maxify MB 5350: https://www.canon.de/printers/inkjet/maxify/maxify_mb5350/specification.html .. _MFC-J6930DW: https://www.brother.ca/en/p/MFCJ6930DW .. _MFC-J5910DW: https://www.brother.co.uk/printers/inkjet-printers/mfcj5910dw @@ -93,6 +96,7 @@ Physical scanners .. _eingemaischt: https://github.com/eingemaischt .. _derlucas: https://github.com/derlucas .. _glassbox_sco: https://github.com/glassbox_sco +.. _ocelotsloth: https://github.com/ocelotsloth .. [1] Scanners with API Integration allow to push scanned documents directly to :ref:`Paperless API `, sometimes referred to as Webhook or Document POST. .. [2] Canon Multi Function Printers show strange behavior over SMB. They close and reopen the file after every page. It's recommended to tune the From f5f2240828cf96b641145c36e45c8f88d6f057b6 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 23 Aug 2022 21:59:54 -0700 Subject: [PATCH 155/348] Add frontend tests for comments --- .../e2e/documents/document-detail.cy.ts | 52 +++++++++++++++++++ .../fixtures/documents/1/comments.json | 46 ++++++++++++++++ .../document-comments.component.html | 4 +- 3 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 src-ui/cypress/fixtures/documents/1/comments.json diff --git a/src-ui/cypress/e2e/documents/document-detail.cy.ts b/src-ui/cypress/e2e/documents/document-detail.cy.ts index cc269655a..a836ffa92 100644 --- a/src-ui/cypress/e2e/documents/document-detail.cy.ts +++ b/src-ui/cypress/e2e/documents/document-detail.cy.ts @@ -17,6 +17,32 @@ describe('document-detail', () => { req.reply({ result: 'OK' }) }).as('saveDoc') + cy.fixture('documents/1/comments.json').then((commentsJson) => { + cy.intercept( + 'GET', + 'http://localhost:8000/api/documents/1/comments/', + (req) => { + req.reply(commentsJson.filter((c) => c.id != 10)) // 3 + } + ) + + cy.intercept( + 'DELETE', + 'http://localhost:8000/api/documents/1/comments/?id=9', + (req) => { + req.reply(commentsJson.filter((c) => c.id != 9 && c.id != 10)) // 2 + } + ) + + cy.intercept( + 'POST', + 'http://localhost:8000/api/documents/1/comments/', + (req) => { + req.reply(commentsJson) // 4 + } + ) + }) + cy.viewport(1024, 1024) cy.visit('/documents/1/') }) @@ -39,4 +65,30 @@ describe('document-detail', () => { cy.contains('button', 'Save').click().wait('@saveDoc').wait(2000) // navigates away after saving cy.contains('You have unsaved changes').should('not.exist') }) + + it('should show a list of comments', () => { + cy.wait(1000).get('a').contains('Comments').click().wait(1000) + cy.get('app-document-comments').find('.card').its('length').should('eq', 3) + }) + + it('should support comment deletion', () => { + cy.wait(1000).get('a').contains('Comments').click().wait(1000) + cy.get('app-document-comments') + .find('.card') + .first() + .find('button') + .click({ force: true }) + .wait(500) + cy.get('app-document-comments').find('.card').its('length').should('eq', 2) + }) + + it('should support comment insertion', () => { + cy.wait(1000).get('a').contains('Comments').click().wait(1000) + cy.get('app-document-comments') + .find('form textarea') + .type('Testing new comment') + .wait(500) + cy.get('app-document-comments').find('form button').click().wait(1500) + cy.get('app-document-comments').find('.card').its('length').should('eq', 4) + }) }) diff --git a/src-ui/cypress/fixtures/documents/1/comments.json b/src-ui/cypress/fixtures/documents/1/comments.json new file mode 100644 index 000000000..73e932187 --- /dev/null +++ b/src-ui/cypress/fixtures/documents/1/comments.json @@ -0,0 +1,46 @@ +[ + { + "id": 10, + "comment": "Testing new comment", + "created": "2022-08-08T04:24:55.176008Z", + "user": { + "id": 1, + "username": "user2", + "firstname": "", + "lastname": "" + } + }, + { + "id": 9, + "comment": "Testing one more time", + "created": "2022-02-18T04:24:55.176008Z", + "user": { + "id": 2, + "username": "user1", + "firstname": "", + "lastname": "" + } + }, + { + "id": 8, + "comment": "Another comment", + "created": "2021-11-08T04:24:47.925042Z", + "user": { + "id": 2, + "username": "user33", + "firstname": "", + "lastname": "" + } + }, + { + "id": 7, + "comment": "Cupcake ipsum dolor sit amet cheesecake candy cookie tiramisu. Donut chocolate chupa chups macaroon brownie halvah pie cheesecake gummies. Sweet chocolate bar candy donut gummi bears bear claw liquorice bonbon shortbread.\n\nDonut chocolate bar candy wafer wafer tiramisu. Gummies chocolate cake muffin toffee carrot cake macaroon. Toffee toffee jelly beans danish lollipop cake.", + "created": "2021-02-08T02:37:49.724132Z", + "user": { + "id": 3, + "username": "admin", + "firstname": "", + "lastname": "" + } + } +] diff --git a/src-ui/src/app/components/document-comments/document-comments.component.html b/src-ui/src/app/components/document-comments/document-comments.component.html index 7e4afa90a..9a2e7debb 100644 --- a/src-ui/src/app/components/document-comments/document-comments.component.html +++ b/src-ui/src/app/components/document-comments/document-comments.component.html @@ -17,11 +17,11 @@
    From 0f4b118b61c14a00efc1b282a320a3eebe2760a6 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 23 Aug 2022 22:04:27 -0700 Subject: [PATCH 156/348] Basic verification of Comment export & exporter comment tuple fix From oprhaned commits https://github.com/paperless-ngx/paperless-ngx/commit/b1855a4b7af689d0a7c7f18bf7ef513967da269f https://github.com/paperless-ngx/paperless-ngx/commit/53f21574fd8af0f3561c12f709a14980f8f1cb7f Co-Authored-By: Trenton Holmes <797416+stumpylog@users.noreply.github.com> --- .../management/commands/document_exporter.py | 6 ++---- src/documents/tests/test_management_exporter.py | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/documents/management/commands/document_exporter.py b/src/documents/management/commands/document_exporter.py index 1493bf078..dc53a690e 100644 --- a/src/documents/management/commands/document_exporter.py +++ b/src/documents/management/commands/document_exporter.py @@ -127,10 +127,8 @@ class Command(BaseCommand): serializers.serialize("json", DocumentType.objects.all()), ) - manifest += ( - json.loads( - serializers.serialize("json", Comment.objects.all()), - ), + manifest += json.loads( + serializers.serialize("json", Comment.objects.all()), ) documents = Document.objects.order_by("id") diff --git a/src/documents/tests/test_management_exporter.py b/src/documents/tests/test_management_exporter.py index a9dcabc4d..92f1d3b62 100644 --- a/src/documents/tests/test_management_exporter.py +++ b/src/documents/tests/test_management_exporter.py @@ -10,10 +10,12 @@ from django.core.management import call_command from django.test import override_settings from django.test import TestCase from documents.management.commands import document_exporter +from documents.models import Comment from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType from documents.models import Tag +from documents.models import User from documents.sanity_checker import check_sanity from documents.settings import EXPORTER_FILE_NAME from documents.tests.utils import DirectoriesMixin @@ -25,6 +27,8 @@ class TestExportImport(DirectoriesMixin, TestCase): self.target = tempfile.mkdtemp() self.addCleanup(shutil.rmtree, self.target) + self.user = User.objects.create(username="temp_admin") + self.d1 = Document.objects.create( content="Content", checksum="42995833e01aea9b3edee44bbfdd7ce1", @@ -57,6 +61,12 @@ class TestExportImport(DirectoriesMixin, TestCase): storage_type=Document.STORAGE_TYPE_GPG, ) + self.comment = Comment.objects.create( + comment="This is a comment. amaze.", + document=self.d1, + user=self.user, + ) + self.t1 = Tag.objects.create(name="t") self.dt1 = DocumentType.objects.create(name="dt") self.c1 = Correspondent.objects.create(name="c") @@ -110,7 +120,7 @@ class TestExportImport(DirectoriesMixin, TestCase): manifest = self._do_export(use_filename_format=use_filename_format) - self.assertEqual(len(manifest), 8) + self.assertEqual(len(manifest), 10) self.assertEqual( len(list(filter(lambda e: e["model"] == "documents.document", manifest))), 4, @@ -171,6 +181,11 @@ class TestExportImport(DirectoriesMixin, TestCase): checksum = hashlib.md5(f.read()).hexdigest() self.assertEqual(checksum, element["fields"]["archive_checksum"]) + elif element["model"] == "documents.comment": + self.assertEqual(element["fields"]["comment"], self.comment.comment) + self.assertEqual(element["fields"]["document"], self.d1.id) + self.assertEqual(element["fields"]["user"], self.user.id) + with paperless_environment() as dirs: self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() From d39b4ae8cb89c4b07f0e101c7faaeee9806238f8 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Wed, 24 Aug 2022 06:43:52 -0700 Subject: [PATCH 157/348] Merges the migration branches --- .../migrations/1024_merge_20220824_1341.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/documents/migrations/1024_merge_20220824_1341.py diff --git a/src/documents/migrations/1024_merge_20220824_1341.py b/src/documents/migrations/1024_merge_20220824_1341.py new file mode 100644 index 000000000..4a2b9706a --- /dev/null +++ b/src/documents/migrations/1024_merge_20220824_1341.py @@ -0,0 +1,13 @@ +# Generated by Django 4.0.6 on 2022-08-24 13:41 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("documents", "1023_add_comments"), + ("documents", "1023_document_original_filename"), + ] + + operations = [] From 6d5d308d6c7b7e359ba72964a300634e1065ace9 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Wed, 24 Aug 2022 07:26:39 -0700 Subject: [PATCH 158/348] Starts on implementing tests for the new API --- src/documents/tests/test_api.py | 127 ++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/src/documents/tests/test_api.py b/src/documents/tests/test_api.py index 38fe6f07b..774b8dde3 100644 --- a/src/documents/tests/test_api.py +++ b/src/documents/tests/test_api.py @@ -32,6 +32,7 @@ from documents.models import SavedView from documents.models import StoragePath from documents.models import Tag from documents.models import UiSettings +from documents.models import Comment from documents.models import StoragePath from documents.tests.utils import DirectoriesMixin from paperless import version @@ -1354,6 +1355,132 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): 1, ) + def test_get_existing_comments(self): + """ + GIVEN: + - A document with a single comment + WHEN: + - API reuqest for document comments is made + THEN: + - The associated comment is returned + """ + doc = Document.objects.create( + title="test", + mime_type="application/pdf", + content="this is a document which will have comments!", + ) + comment = Comment.objects.create( + comment="This is a comment.", + document=doc, + user=self.user, + ) + + response = self.client.get( + f"/api/documents/{doc.pk}/comments/", + format="json", + ) + + self.assertEqual(response.status_code, 200) + + resp_data = response.json() + + self.assertEqual(len(resp_data), 1) + + resp_data = resp_data[0] + del resp_data["created"] + + self.assertDictEqual( + resp_data, + { + "id": comment.id, + "comment": comment.comment, + "user": { + "id": comment.user.id, + "username": comment.user.username, + "firstname": comment.user.first_name, + "lastname": comment.user.last_name, + }, + }, + ) + + def test_create_comment(self): + """ + GIVEN: + - Existing document + WHEN: + - API request is made to add a comment + THEN: + - Comment is created and associated with document + """ + doc = Document.objects.create( + title="test", + mime_type="application/pdf", + content="this is a document which will have comments added", + ) + resp = self.client.post( + f"/api/documents/{doc.pk}/comments/", + data={"comment": "this is a posted comment"}, + ) + self.assertEqual(resp.status_code, 200) + + response = self.client.get( + f"/api/documents/{doc.pk}/comments/", + format="json", + ) + + self.assertEqual(response.status_code, 200) + + resp_data = response.json() + + self.assertEqual(len(resp_data), 1) + + resp_data = resp_data[0] + + self.assertEqual(resp_data["comment"], "this is a posted comment") + + def test_delete_comment(self): + """ + GIVEN: + - Existing document + WHEN: + - API request is made to add a comment + THEN: + - Comment is created and associated with document + """ + doc = Document.objects.create( + title="test", + mime_type="application/pdf", + content="this is a document which will have comments!", + ) + comment = Comment.objects.create( + comment="This is a comment.", + document=doc, + user=self.user, + ) + + response = self.client.delete( + f"/api/documents/{doc.pk}/comments/", + data={"id": f"{comment.pk}"}, + format="json", + ) + + self.assertEqual(response.status_code, 200) + + def test_get_comments_no_doc(self): + """ + GIVEN: + - A request to get comments from a non-existent document + WHEN: + - API request for document comments is made + THEN: + - HTTP 404 is returned + """ + response = self.client.get( + "/api/documents/500/comments/", + format="json", + ) + self.assertEqual(response.status_code, 404) + class TestDocumentApiV2(DirectoriesMixin, APITestCase): def setUp(self): From 67bb140eef7cee42a7d9b2ed96b909758cf552f6 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Wed, 24 Aug 2022 08:27:43 -0700 Subject: [PATCH 159/348] Finalizes testing of the delete comment --- src/documents/tests/test_api.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/documents/tests/test_api.py b/src/documents/tests/test_api.py index 774b8dde3..4942751e4 100644 --- a/src/documents/tests/test_api.py +++ b/src/documents/tests/test_api.py @@ -1459,13 +1459,14 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) response = self.client.delete( - f"/api/documents/{doc.pk}/comments/", - data={"id": f"{comment.pk}"}, + f"/api/documents/{doc.pk}/comments/?id={comment.pk}", format="json", ) self.assertEqual(response.status_code, 200) + self.assertEqual(len(Comment.objects.all()), 0) + def test_get_comments_no_doc(self): """ GIVEN: From cce1595c3d979c0e6877bea765106cc515db0e1b Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 24 Aug 2022 14:16:47 -0700 Subject: [PATCH 160/348] Fix CodeQL warnings --- src/documents/views.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/documents/views.py b/src/documents/views.py index b9c8a1265..0e380c217 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -409,7 +409,10 @@ class DocumentViewSet( try: return Response(self.getComments(doc)) except Exception as e: - return Response({"error": str(e)}) + logger.warning(f"An error occurred retrieving comments: {str(e)}") + return Response( + {"error": "Error retreiving comments, check logs for more detail."}, + ) elif request.method == "POST": try: c = Comment.objects.create( @@ -421,9 +424,10 @@ class DocumentViewSet( return Response(self.getComments(doc)) except Exception as e: + logger.warning(f"An error occurred saving comment: {str(e)}") return Response( { - "error": str(e), + "error": "Error saving comment, check logs for more detail.", }, ) elif request.method == "DELETE": From 858ae909e8960af9fb52f3b866003c645b34708d Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 25 Aug 2022 08:03:38 -0700 Subject: [PATCH 161/348] Default PAPERLESS_NUMBER_OF_SUGGESTED_DATES to 3 --- docs/configuration.rst | 19 +++++++++---------- src/paperless/settings.py | 7 +++---- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/docs/configuration.rst b/docs/configuration.rst index f9714379c..1c1c54806 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -742,18 +742,17 @@ PAPERLESS_FILENAME_DATE_ORDER= Defaults to none, which disables this feature. PAPERLESS_NUMBER_OF_SUGGESTED_DATES= - Paperless will search the entire document for any date. The first date found will - be used as a default value for the created date. With this setting in place, - paperless will suggestion other dates found in the document. + Paperless searches an entire document for dates. The first date found will + be used as the initial value for the created date. When this variable is + greater than 0 (or left to it's default value), paperless will also suggest + other dates found in the document, up to a maximum of this setting. Note that + duplicates will be removed, which can result in fewer dates displayed in the + frontend than this setting value. - Regarding the size of the document, the task to find all dates can consuming much time. - Therefore the number of found dates can be limited with this setting. + The task to find all dates can be time-consuming and increases with a higher + (maximum) number of suggested dates and slower hardware. - If 10 dates should be suggested, paperless will grab every date from the top of the - document to the bottom until it has reached 10 dates. After this, duplicates will - be removed, which can lead to less than 10 dates displayed in the frontend. - - Set the number to 0 to disable this feature (default) + Defaults to 3. Set to 0 to disable this feature. PAPERLESS_THUMBNAIL_FONT_NAME= Paperless creates thumbnails for plain text files by rendering the content diff --git a/src/paperless/settings.py b/src/paperless/settings.py index f0c24feea..7ec260b1a 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -588,10 +588,9 @@ POST_CONSUME_SCRIPT = os.getenv("PAPERLESS_POST_CONSUME_SCRIPT") DATE_ORDER = os.getenv("PAPERLESS_DATE_ORDER", "DMY") FILENAME_DATE_ORDER = os.getenv("PAPERLESS_FILENAME_DATE_ORDER") -# Number of dates used as suggestions in the frontend -# The number counter from top to bottom. -# Duplicates will be removed, which will result in less shown suggestion dates. -NUMBER_OF_SUGGESTED_DATES = __get_int("PAPERLESS_NUMBER_OF_SUGGESTED_DATES", 0) +# Maximum number of dates taken from document start to end to show as suggestions for +# `created` date in the frontend. Duplicates are removed, which can result in fewer dates shown. +NUMBER_OF_SUGGESTED_DATES = __get_int("PAPERLESS_NUMBER_OF_SUGGESTED_DATES", 3) # Transformations applied before filename parsing FILENAME_PARSE_TRANSFORMS = [] From 06a4949266eac4af9200098bf2ec834f6cf4774f Mon Sep 17 00:00:00 2001 From: Quinn Casey Date: Thu, 25 Aug 2022 08:36:48 -0700 Subject: [PATCH 162/348] Fix minor duplicate/incorrect conf key --- paperless.conf.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paperless.conf.example b/paperless.conf.example index bb2449e05..d7319689b 100644 --- a/paperless.conf.example +++ b/paperless.conf.example @@ -64,7 +64,7 @@ #PAPERLESS_CONSUMER_IGNORE_PATTERNS=[".DS_STORE/*", "._*", ".stfolder/*", ".stversions/*", ".localized/*", "desktop.ini"] #PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=false #PAPERLESS_CONSUMER_ENABLE_BARCODES=false -#PAPERLESS_CONSUMER_ENABLE_BARCODES=PATCHT +#PAPERLESS_CONSUMER_BARCODE_STRING=PATCHT #PAPERLESS_PRE_CONSUME_SCRIPT=/path/to/an/arbitrary/script.sh #PAPERLESS_POST_CONSUME_SCRIPT=/path/to/an/arbitrary/script.sh #PAPERLESS_FILENAME_DATE_ORDER=YMD From 696ebf545f9c0a74bb6f3c381661c7140cc341e8 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 25 Aug 2022 08:50:39 -0700 Subject: [PATCH 163/348] Revert "Bump sphinx from 5.0.2 to 5.1.1" --- Pipfile | 2 +- Pipfile.lock | 92 ++++++++++++++++++++++++++++++---------------------- 2 files changed, 55 insertions(+), 39 deletions(-) diff --git a/Pipfile b/Pipfile index 62bf435df..a33c43845 100644 --- a/Pipfile +++ b/Pipfile @@ -61,7 +61,7 @@ pytest-django = "*" pytest-env = "*" pytest-sugar = "*" pytest-xdist = "*" -sphinx = "~=5.1.1" +sphinx = "~=5.0.2" sphinx_rtd_theme = "*" tox = "*" black = "*" diff --git a/Pipfile.lock b/Pipfile.lock index 998a0536c..ec4a7cf96 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "53421795b6bf5c0dd1fbc0d564cea200bb4b8eb4ec44b9d4fefbabf02215f46c" + "sha256": "11e6eaa28348fb63b923ecaed91ebbc9266b2e784a1921ca32e8e4b7e8c67626" }, "pipfile-spec": 6, "requires": {}, @@ -1222,32 +1222,32 @@ }, "scipy": { "hashes": [ - "sha256:01c2015e132774feefe059d5354055fec6b751d7a7d70ad2cf5ce314e7426e2a", - "sha256:0424d1bbbfa51d5ddaa16d067fd593863c9f2fb7c6840c32f8a08a8832f8e7a4", - "sha256:10417935486b320d98536d732a58362e3d37e84add98c251e070c59a6bfe0863", - "sha256:12005d30894e4fe7b247f7233ba0801a341f887b62e2eb99034dd6f2a8a33ad6", - "sha256:16207622570af10f9e6a2cdc7da7a9660678852477adbcd056b6d1057a036fef", - "sha256:45f0d6c0d6e55582d3b8f5c58ad4ca4259a02affb190f89f06c8cc02e21bba81", - "sha256:5d1b9cf3771fd921f7213b4b886ab2606010343bb36259b544a816044576d69e", - "sha256:693b3fe2e7736ce0dbc72b4d933798eb6ca8ce51b8b934e3f547cc06f48b2afb", - "sha256:73b704c5eea9be811919cae4caacf3180dd9212d9aed08477c1d2ba14900a9de", - "sha256:79dd7876614fc2869bf5d311ef33962d2066ea888bc66c80fd4fa80f8772e5a9", - "sha256:7bad16b91918bf3288089a78a4157e04892ea6475fb7a1d9bcdf32c30c8a3dba", - "sha256:8d541db2d441ef87afb60c4a2addb00c3af281633602a4967e733ef4b7050504", - "sha256:8f2232c9d9119ec356240255a715a289b3a33be828c3e4abac11fd052ce15b1e", - "sha256:97a1f1e51ea30782d7baa8d0c52f72c3f9f05cb609cf1b990664231c5102bccd", - "sha256:adb6c438c6ef550e2bb83968e772b9690cb421f2c6073f9c2cb6af15ee538bc9", - "sha256:bb687d245b6963673c639f318eea7e875d1ba147a67925586abed3d6f39bb7d8", - "sha256:bd490f77f35800d5620f4d9af669e372d9a88db1f76ef219e1609cc4ecdd1a24", - "sha256:c0dfd7d2429452e7e94904c6a3af63cbaa3cf51b348bd9d35b42db7e9ad42791", - "sha256:d3a326673ac5afa9ef5613a61626b9ec15c8f7222b4ecd1ce0fd8fcba7b83c59", - "sha256:e2004d2a3c397b26ca78e67c9d320153a1a9b71ae713ad33f4a3a3ab3d79cc65", - "sha256:e2ac088ea4aa61115b96b47f5f3d94b3fa29554340b6629cd2bfe6b0521ee33b", - "sha256:f7c3c578ff556333f3890c2df6c056955d53537bb176698359088108af73a58f", - "sha256:fc58c3fcb8a724b703ffbc126afdca5a8353d4d5945d5c92db85617e165299e7" + "sha256:02b567e722d62bddd4ac253dafb01ce7ed8742cf8031aea030a41414b86c1125", + "sha256:1166514aa3bbf04cb5941027c6e294a000bba0cf00f5cdac6c77f2dad479b434", + "sha256:1da52b45ce1a24a4a22db6c157c38b39885a990a566748fc904ec9f03ed8c6ba", + "sha256:23b22fbeef3807966ea42d8163322366dd89da9bebdc075da7034cee3a1441ca", + "sha256:28d2cab0c6ac5aa131cc5071a3a1d8e1366dad82288d9ec2ca44df78fb50e649", + "sha256:2ef0fbc8bcf102c1998c1f16f15befe7cffba90895d6e84861cd6c6a33fb54f6", + "sha256:3b69b90c9419884efeffaac2c38376d6ef566e6e730a231e15722b0ab58f0328", + "sha256:4b93ec6f4c3c4d041b26b5f179a6aab8f5045423117ae7a45ba9710301d7e462", + "sha256:4e53a55f6a4f22de01ffe1d2f016e30adedb67a699a310cdcac312806807ca81", + "sha256:6311e3ae9cc75f77c33076cb2794fb0606f14c8f1b1c9ff8ce6005ba2c283621", + "sha256:65b77f20202599c51eb2771d11a6b899b97989159b7975e9b5259594f1d35ef4", + "sha256:6cc6b33139eb63f30725d5f7fa175763dc2df6a8f38ddf8df971f7c345b652dc", + "sha256:70de2f11bf64ca9921fda018864c78af7147025e467ce9f4a11bc877266900a6", + "sha256:70ebc84134cf0c504ce6a5f12d6db92cb2a8a53a49437a6bb4edca0bc101f11c", + "sha256:83606129247e7610b58d0e1e93d2c5133959e9cf93555d3c27e536892f1ba1f2", + "sha256:93d07494a8900d55492401917a119948ed330b8c3f1d700e0b904a578f10ead4", + "sha256:9c4e3ae8a716c8b3151e16c05edb1daf4cb4d866caa385e861556aff41300c14", + "sha256:9dd4012ac599a1e7eb63c114d1eee1bcfc6dc75a29b589ff0ad0bb3d9412034f", + "sha256:9e3fb1b0e896f14a85aa9a28d5f755daaeeb54c897b746df7a55ccb02b340f33", + "sha256:a0aa8220b89b2e3748a2836fbfa116194378910f1a6e78e4675a095bcd2c762d", + "sha256:d3b3c8924252caaffc54d4a99f1360aeec001e61267595561089f8b5900821bb", + "sha256:e013aed00ed776d790be4cb32826adb72799c61e318676172495383ba4570aa4", + "sha256:f3e7a8867f307e3359cc0ed2c63b61a1e33a19080f92fe377bc7d49f646f2ec1" ], - "markers": "python_version < '3.12' and python_version >= '3.8'", - "version": "==1.9.0" + "markers": "python_version < '3.11' and python_version >= '3.8'", + "version": "==1.8.1" }, "service-identity": { "hashes": [ @@ -1258,11 +1258,11 @@ }, "setuptools": { "hashes": [ - "sha256:7f4bc85450898a09f76ebf28b72fa25bc7111f6c7d665d514a60bba9c75ef2a9", - "sha256:a3ca5857c89f82f5c9410e8508cb32f4872a3bafd4aa7ae122a24ca33bccc750" + "sha256:1c664b23706b753986b0f4b13e20bb82177ab29450d5b4d5d6d244c34a2235bd", + "sha256:201d7b596b0685f2dd3aaf231a637ffda51fc61323631d915e5c55b79d2d8115" ], "markers": "python_version >= '3.7'", - "version": "==65.2.0" + "version": "==65.1.1" }, "six": { "hashes": [ @@ -1756,7 +1756,7 @@ }, "coverage": { "extras": [ - + "toml" ], "hashes": [ "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2", @@ -1898,6 +1898,14 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.4.1" }, + "importlib-metadata": { + "hashes": [ + "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670", + "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23" + ], + "markers": "python_version < '3.10'", + "version": "==4.12.0" + }, "iniconfig": { "hashes": [ "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", @@ -2201,11 +2209,11 @@ }, "setuptools": { "hashes": [ - "sha256:7f4bc85450898a09f76ebf28b72fa25bc7111f6c7d665d514a60bba9c75ef2a9", - "sha256:a3ca5857c89f82f5c9410e8508cb32f4872a3bafd4aa7ae122a24ca33bccc750" + "sha256:1c664b23706b753986b0f4b13e20bb82177ab29450d5b4d5d6d244c34a2235bd", + "sha256:201d7b596b0685f2dd3aaf231a637ffda51fc61323631d915e5c55b79d2d8115" ], "markers": "python_version >= '3.7'", - "version": "==65.2.0" + "version": "==65.1.1" }, "six": { "hashes": [ @@ -2224,11 +2232,11 @@ }, "sphinx": { "hashes": [ - "sha256:309a8da80cb6da9f4713438e5b55861877d5d7976b69d87e336733637ea12693", - "sha256:ba3224a4e206e1fbdecf98a4fae4992ef9b24b85ebf7b584bb340156eaf08d89" + "sha256:b18e978ea7565720f26019c702cd85c84376e948370f1cd43d60265010e1c7b0", + "sha256:d3e57663eed1d7c5c50895d191fdeda0b54ded6f44d5621b50709466c338d1e8" ], "index": "pypi", - "version": "==5.1.1" + "version": "==5.0.2" }, "sphinx-autobuild": { "hashes": [ @@ -2313,7 +2321,7 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_full_version < '3.11.0a7'", + "markers": "python_version >= '3.7'", "version": "==2.0.1" }, "tornado": { @@ -2330,7 +2338,7 @@ "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" ], - "markers": "python_version >= '3.7'", + "markers": "python_version > '2.7'", "version": "==6.2" }, "tox": { @@ -2364,6 +2372,14 @@ ], "markers": "python_version >= '3.6'", "version": "==20.16.3" + }, + "zipp": { + "hashes": [ + "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2", + "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009" + ], + "markers": "python_version < '3.9'", + "version": "==3.8.1" } } } From 8ad2f7daf05e56ac4d3e535f8dea9a075a7bad50 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Thu, 25 Aug 2022 09:38:29 -0700 Subject: [PATCH 164/348] Locks scipy to 1.8.1, allows some other minor version updates --- Pipfile | 14 ++++++++------ Pipfile.lock | 53 ++++++++++++++++++++++++++-------------------------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/Pipfile b/Pipfile index a33c43845..e856607b6 100644 --- a/Pipfile +++ b/Pipfile @@ -23,17 +23,19 @@ imap-tools = "*" langdetect = "*" pathvalidate = "*" pillow = "~=9.2" -pikepdf = "~=5.4" +pikepdf = "~=5.5" python-gnupg = "*" python-dotenv = "*" python-dateutil = "*" python-magic = "*" psycopg2 = "*" redis = "*" -scikit-learn="~=1.1" -whitenoise = "~=6.2.0" -watchdog = "~=2.1.9" -whoosh="~=2.7.4" +scikit-learn = "~=1.1" +# Pin this until piwheels is building 1.9 (see https://www.piwheels.org/project/scipy/) +scipy = "==1.8.1" +whitenoise = "~=6.2" +watchdog = "~=2.1" +whoosh="~=2.7" inotifyrecursive = "~=0.3" ocrmypdf = "~=13.7" tqdm = "*" @@ -61,7 +63,7 @@ pytest-django = "*" pytest-env = "*" pytest-sugar = "*" pytest-xdist = "*" -sphinx = "~=5.0.2" +sphinx = "~=5.1" sphinx_rtd_theme = "*" tox = "*" black = "*" diff --git a/Pipfile.lock b/Pipfile.lock index ec4a7cf96..18d6bc315 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "11e6eaa28348fb63b923ecaed91ebbc9266b2e784a1921ca32e8e4b7e8c67626" + "sha256": "db8cfb4b0134a0fc7baa8c635faa98f2b17b96269ad73659056873ae99ff7f1f" }, "pipfile-spec": 6, "requires": {}, @@ -303,11 +303,11 @@ }, "django": { "hashes": [ - "sha256:a67a793ff6827fd373555537dca0da293a63a316fe34cb7f367f898ccca3c3ae", - "sha256:ca54ebedfcbc60d191391efbf02ba68fb52165b8bf6ccd6fe71f098cac1fe59e" + "sha256:41bd65a9e5f8a89cdbfa7a7bba45cd7431ae89e750af82dea8a35fd1a7ecbe66", + "sha256:9c6d5ad36be798e562ddcaa6b17b1c3ff2d3c4f529a47432b69fb9a30f847461" ], "index": "pypi", - "version": "==4.0.6" + "version": "==4.0.7" }, "django-cors-headers": { "hashes": [ @@ -582,7 +582,6 @@ "sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7", "sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4", "sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97", - "sha256:49a866923e69bc7da45a0565636243707c22752fc38f6b9d5c8428a86121022c", "sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67", "sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627", "sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7", @@ -976,11 +975,11 @@ }, "python-gnupg": { "hashes": [ - "sha256:012960bde4d25dad631bb7650f563dda5e7271248a73f3584240063a293d99d8", - "sha256:aaa748795572591aaf127b4ac8985684f3673ff82b39f370c836b006e68fc537" + "sha256:345723a03e67b82aba0ea8ae2328b2e4a3906fbe2c18c4082285c3b01068f270", + "sha256:70758e387fc0e0c4badbcb394f61acbe68b34970a8fed7e0f7c89469fe17912a" ], "index": "pypi", - "version": "==0.4.9" + "version": "==0.5.0" }, "python-levenshtein": { "hashes": [ @@ -1246,7 +1245,7 @@ "sha256:e013aed00ed776d790be4cb32826adb72799c61e318676172495383ba4570aa4", "sha256:f3e7a8867f307e3359cc0ed2c63b61a1e33a19080f92fe377bc7d49f646f2ec1" ], - "markers": "python_version < '3.11' and python_version >= '3.8'", + "index": "pypi", "version": "==1.8.1" }, "service-identity": { @@ -1258,11 +1257,11 @@ }, "setuptools": { "hashes": [ - "sha256:1c664b23706b753986b0f4b13e20bb82177ab29450d5b4d5d6d244c34a2235bd", - "sha256:201d7b596b0685f2dd3aaf231a637ffda51fc61323631d915e5c55b79d2d8115" + "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82", + "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57" ], "markers": "python_version >= '3.7'", - "version": "==65.1.1" + "version": "==65.3.0" }, "six": { "hashes": [ @@ -1356,22 +1355,22 @@ }, "urllib3": { "hashes": [ - "sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc", - "sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a" + "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", + "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", - "version": "==1.26.11" + "version": "==1.26.12" }, "uvicorn": { "extras": [ "standard" ], "hashes": [ - "sha256:c19a057deb1c5bb060946e2e5c262fc01590c6529c0af2c3d9ce941e89bc30e0", - "sha256:cade07c403c397f9fe275492a48c1b869efd175d5d8a692df649e6e7e2ed8f4e" + "sha256:0abd429ebb41e604ed8d2be6c60530de3408f250e8d2d84967d85ba9e86fe3af", + "sha256:9a66e7c42a2a95222f76ec24a4b754c158261c4696e683b9dadc72b590e0311b" ], "index": "pypi", - "version": "==0.18.2" + "version": "==0.18.3" }, "uvloop": { "hashes": [ @@ -2209,11 +2208,11 @@ }, "setuptools": { "hashes": [ - "sha256:1c664b23706b753986b0f4b13e20bb82177ab29450d5b4d5d6d244c34a2235bd", - "sha256:201d7b596b0685f2dd3aaf231a637ffda51fc61323631d915e5c55b79d2d8115" + "sha256:2e24e0bec025f035a2e72cdd1961119f557d78ad331bb00ff82efb2ab8da8e82", + "sha256:7732871f4f7fa58fb6bdcaeadb0161b2bd046c85905dbaa066bdcbcc81953b57" ], "markers": "python_version >= '3.7'", - "version": "==65.1.1" + "version": "==65.3.0" }, "six": { "hashes": [ @@ -2232,11 +2231,11 @@ }, "sphinx": { "hashes": [ - "sha256:b18e978ea7565720f26019c702cd85c84376e948370f1cd43d60265010e1c7b0", - "sha256:d3e57663eed1d7c5c50895d191fdeda0b54ded6f44d5621b50709466c338d1e8" + "sha256:309a8da80cb6da9f4713438e5b55861877d5d7976b69d87e336733637ea12693", + "sha256:ba3224a4e206e1fbdecf98a4fae4992ef9b24b85ebf7b584bb340156eaf08d89" ], "index": "pypi", - "version": "==5.0.2" + "version": "==5.1.1" }, "sphinx-autobuild": { "hashes": [ @@ -2359,11 +2358,11 @@ }, "urllib3": { "hashes": [ - "sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc", - "sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a" + "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", + "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", - "version": "==1.26.11" + "version": "==1.26.12" }, "virtualenv": { "hashes": [ From a406920ae6b33ec04e80a7ecbad425f195f7a2b4 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 26 Aug 2022 08:26:08 -0700 Subject: [PATCH 165/348] Add missing filter rule types to SavedViewFilterRule model And add note to filter-rule-type.ts --- src-ui/src/app/data/filter-rule-type.ts | 1 + src/documents/models.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src-ui/src/app/data/filter-rule-type.ts b/src-ui/src/app/data/filter-rule-type.ts index 35e597ab6..3c115e772 100644 --- a/src-ui/src/app/data/filter-rule-type.ts +++ b/src-ui/src/app/data/filter-rule-type.ts @@ -1,3 +1,4 @@ +// These correspond to src/documents/models.py and changes here require a DB migration (and vice versa) export const FILTER_TITLE = 0 export const FILTER_CONTENT = 1 diff --git a/src/documents/models.py b/src/documents/models.py index b2070d2f1..fc1d0cb7d 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -404,6 +404,9 @@ class SavedViewFilterRule(models.Model): (20, _("fulltext query")), (21, _("more like this")), (22, _("has tags in")), + (23, _("ASN greater than")), + (24, _("ASN less than")), + (25, _("storage path is")), ] saved_view = models.ForeignKey( From ddff902291c8233c90aeeda14b27db350ef7cd21 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:50:02 -0700 Subject: [PATCH 166/348] Fix 1023, 1024 migrations, add savedviewfilterrule migration --- src/documents/migrations/1023_add_comments.py | 51 +++++++++++++++++-- ....py => 1024_document_original_filename.py} | 2 +- .../migrations/1024_merge_20220824_1341.py | 13 ----- ...025_alter_savedviewfilterrule_rule_type.py | 48 +++++++++++++++++ 4 files changed, 95 insertions(+), 19 deletions(-) rename src/documents/migrations/{1023_document_original_filename.py => 1024_document_original_filename.py} (93%) delete mode 100644 src/documents/migrations/1024_merge_20220824_1341.py create mode 100644 src/documents/migrations/1025_alter_savedviewfilterrule_rule_type.py diff --git a/src/documents/migrations/1023_add_comments.py b/src/documents/migrations/1023_add_comments.py index 124e4777c..2c89947e9 100644 --- a/src/documents/migrations/1023_add_comments.py +++ b/src/documents/migrations/1023_add_comments.py @@ -1,4 +1,6 @@ from django.db import migrations, models +import django.utils.timezone +from django.conf import settings class Migration(migrations.Migration): @@ -19,10 +21,49 @@ class Migration(migrations.Migration): verbose_name="ID", ), ), - ("comment", models.TextField()), - ("created", models.DateTimeField(auto_now_add=True)), - ("document_id", models.PositiveIntegerField()), - ("user_id", models.PositiveIntegerField()), + ( + "comment", + models.TextField( + blank=True, + help_text="Comment for the document", + verbose_name="content", + ), + ), + ( + "created", + models.DateTimeField( + db_index=True, + default=django.utils.timezone.now, + verbose_name="created", + ), + ), + ( + "document", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name="documents", + to="documents.document", + verbose_name="document", + ), + ), + ( + "user", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="users", + to=settings.AUTH_USER_MODEL, + verbose_name="user", + ), + ), ], - ) + options={ + "verbose_name": "comment", + "verbose_name_plural": "comments", + "ordering": ("created",), + }, + ), ] diff --git a/src/documents/migrations/1023_document_original_filename.py b/src/documents/migrations/1024_document_original_filename.py similarity index 93% rename from src/documents/migrations/1023_document_original_filename.py rename to src/documents/migrations/1024_document_original_filename.py index 065956bd9..b0f03cd50 100644 --- a/src/documents/migrations/1023_document_original_filename.py +++ b/src/documents/migrations/1024_document_original_filename.py @@ -6,7 +6,7 @@ from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ - ("documents", "1022_paperlesstask"), + ("documents", "1023_add_comments"), ] operations = [ diff --git a/src/documents/migrations/1024_merge_20220824_1341.py b/src/documents/migrations/1024_merge_20220824_1341.py deleted file mode 100644 index 4a2b9706a..000000000 --- a/src/documents/migrations/1024_merge_20220824_1341.py +++ /dev/null @@ -1,13 +0,0 @@ -# Generated by Django 4.0.6 on 2022-08-24 13:41 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("documents", "1023_add_comments"), - ("documents", "1023_document_original_filename"), - ] - - operations = [] diff --git a/src/documents/migrations/1025_alter_savedviewfilterrule_rule_type.py b/src/documents/migrations/1025_alter_savedviewfilterrule_rule_type.py new file mode 100644 index 000000000..1e5b005b8 --- /dev/null +++ b/src/documents/migrations/1025_alter_savedviewfilterrule_rule_type.py @@ -0,0 +1,48 @@ +# Generated by Django 4.0.5 on 2022-08-26 16:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("documents", "1024_document_original_filename"), + ] + + operations = [ + migrations.AlterField( + model_name="savedviewfilterrule", + name="rule_type", + field=models.PositiveIntegerField( + choices=[ + (0, "title contains"), + (1, "content contains"), + (2, "ASN is"), + (3, "correspondent is"), + (4, "document type is"), + (5, "is in inbox"), + (6, "has tag"), + (7, "has any tag"), + (8, "created before"), + (9, "created after"), + (10, "created year is"), + (11, "created month is"), + (12, "created day is"), + (13, "added before"), + (14, "added after"), + (15, "modified before"), + (16, "modified after"), + (17, "does not have tag"), + (18, "does not have ASN"), + (19, "title or content contains"), + (20, "fulltext query"), + (21, "more like this"), + (22, "has tags in"), + (23, "ASN greater than"), + (24, "ASN less than"), + (25, "storage path is"), + ], + verbose_name="rule type", + ), + ), + ] From 9c2265d1aa9a68bfcf3e6e38e8721a4b80d4e97a Mon Sep 17 00:00:00 2001 From: tooomm Date: Sat, 27 Aug 2022 18:03:54 +0200 Subject: [PATCH 167/348] update mobile scanner section --- docs/scanners.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/scanners.rst b/docs/scanners.rst index 8b63614f9..a764a2a84 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -112,24 +112,24 @@ You can use your phone to "scan" documents. The regular camera app will work, bu +-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ | | | FTP | NFS | SMB | Email | WebDAV | | +=============================+================+=====+=====+=====+=======+========+==================+ -| `Office Lens`_ | Android | ? | ? | ? | ? | ? | `jonaswinkler`_ | +| `Microsoft Lens`_ | Android, iOS | ? | ? | ? | ? | ? | `jonaswinkler`_ | +-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ -| `Genius Scan`_ | Android | yes | no | yes | yes | yes | `hannahswain`_ | +| `Genius Scan`_ | Android, iOS | yes | no | yes | yes | yes | `hannahswain`_ | +-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ | `OpenScan`_ | Android | no | no | no | no | no | `benjaminfrank`_ | +-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ -| `OCR Scanner - QuickScan`_ | iOS | no | no | no | no | yes | `holzhannes`_ | +| `QuickScan`_ | iOS | no | no | no | no | yes | `holzhannes`_ | +-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ -On Android, you can use these applications in combination with one of the :ref:`Paperless-ngx compatible apps ` to "Share" the documents produced by these scanner apps with paperless. On iOS, you can share the scanned documents via iOS-Sharing to other mail, WebDav or FTP apps. +On **Android**, you can use these applications in combination with one of the :ref:`Paperless-ngx compatible apps ` to "Share" the documents produced by these scanner apps with paperless. On iOS, you can share the scanned documents via iOS-Sharing to other mail, WebDav or FTP apps. -There is also an iOS Shortcut that allows you to directly upload text, PDF and image documents available here: https://www.icloud.com/shortcuts/d234abc0885040129d9d75fa45fe1154 +There is also an **iOS** Shortcut that allows you to directly upload text, PDF and image documents available here: https://www.icloud.com/shortcuts/d234abc0885040129d9d75fa45fe1154 Please note this only works for documents downloaded to iCloud / the device, in other words not directly from a URL. -.. _Office Lens: https://play.google.com/store/apps/details?id=com.microsoft.office.officelens -.. _Genius Scan: https://play.google.com/store/apps/details?id=com.thegrizzlylabs.geniusscan.free -.. _OCR Scanner - QuickScan: https://apps.apple.com/us/app/quickscan-scanner-text-ocr/id1513790291 +.. _Microsoft Lens: https://play.google.com/store/apps/details?id=com.microsoft.office.officelens +.. _Genius Scan: https://www.thegrizzlylabs.com/genius-scan .. _OpenScan: https://github.com/Ethereal-Developers-Inc/OpenScan +.. _QuickScan: https://apps.apple.com/us/app/quickscan-scanner-text-ocr/id1513790291 .. _hannahswain: https://github.com/hannahswain .. _benjaminfrank: https://github.com/benjaminfrank From ebdd7afb678c909e085c077492675c81778ee55c Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 30 Aug 2022 22:04:13 -0700 Subject: [PATCH 168/348] Move scanner & software recs to GH wiki --- docs/scanners.rst | 154 ++-------------------------------------------- 1 file changed, 4 insertions(+), 150 deletions(-) diff --git a/docs/scanners.rst b/docs/scanners.rst index a764a2a84..68b0b335f 100644 --- a/docs/scanners.rst +++ b/docs/scanners.rst @@ -1,154 +1,8 @@ .. _scanners: -*********************** -Scanner recommendations -*********************** +******************* +Scanners & Software +******************* -As Paperless operates by watching a folder for new files, doesn't care what -scanner you use, but sometimes finding a scanner that will write to an FTP, -NFS, or SMB server can be difficult. This page is here to help you find one -that works right for you based on recommendations from other Paperless users. - -Physical scanners -================= - -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brand | Model | Supports | Recommended By | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| | | FTP | SFTP | NFS | SMB | SMTP | API [1]_ | | -+=========+===================+=====+======+=====+==========+======+==========+================+ -| Brother | `ADS-1700W`_ | yes | yes | | yes | yes | |`holzhannes`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `ADS-1600W`_ | yes | | | yes | yes | |`holzhannes`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `ADS-1500W`_ | yes | | | yes | yes | |`danielquinn`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `ADS-1100W`_ | yes | | | | | |`ytzelf`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `ADS-2800W`_ | yes | yes | | yes | yes | |`philpagel`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `ADS-4300N`_ | yes | yes | | yes | yes | |`derlucas`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `ADS-4700W`_ | yes | yes | | yes | yes | |`ocelotsloth`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `MFC-J6930DW`_ | yes | | | | | |`ayounggun`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `MFC-L5850DW`_ | yes | | | | yes | |`holzhannes`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `MFC-L2750DW`_ | yes | | | yes | yes | |`muued`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `MFC-J5910DW`_ | yes | | | | | |`bmsleight`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `MFC-8950DW`_ | yes | | | yes | yes | |`philpagel`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Brother | `MFC-9142CDN`_ | yes | | | yes | | |`REOLDEV`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Canon | `Maxify MB 5350`_ | | | | yes [2]_ | yes | |`eingemaischt`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Fujitsu | `ix500`_ | yes | | | yes | | |`eonist`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Epson | `ES-580W`_ | yes | | | yes | yes | |`fignew`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Epson | `WF-7710DWF`_ | yes | | | yes | | |`Skylinar`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Fujitsu | `S1300i`_ | yes | | | yes | | |`jonaswinkler`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| Doxie | `Q2`_ | | | | | | yes |`Unkn0wnCat`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ -| HP | `MFP M277 dw`_ | yes | | | yes | | yes |`glassbox_sco`_ | -+---------+-------------------+-----+------+-----+----------+------+----------+----------------+ - -.. _MFC-L5850DW: https://www.brother-usa.com/products/mfcl5850dw -.. _MFC-L2750DW: https://www.brother.de/drucker/laserdrucker/mfc-l2750dw -.. _ADS-1700W: https://www.brother-usa.com/products/ads1700w -.. _ADS-1600W: https://www.brother-usa.com/products/ads1600w -.. _ADS-1500W: https://www.brother.ca/en/p/ads1500w -.. _ADS-1100W: https://support.brother.com/g/b/downloadtop.aspx?c=fr&lang=fr&prod=ads1100w_eu_as_cn -.. _ADS-2800W: https://www.brother-usa.com/products/ads2800w -.. _ADS-4300N: https://www.brother-usa.com/products/ads4300n -.. _ADS-4700W: https://www.brother-usa.com/products/ads4700w -.. _Maxify MB 5350: https://www.canon.de/printers/inkjet/maxify/maxify_mb5350/specification.html -.. _MFC-J6930DW: https://www.brother.ca/en/p/MFCJ6930DW -.. _MFC-J5910DW: https://www.brother.co.uk/printers/inkjet-printers/mfcj5910dw -.. _MFC-8950DW: https://www.brother-usa.com/products/mfc8950dw -.. _MFC-9142CDN: https://www.brother.co.uk/printers/laser-printers/mfc9140cdn -.. _ES-580W: https://epson.com/Support/Scanners/ES-Series/Epson-WorkForce-ES-580W/s/SPT_B11B258201 -.. _WF-7710DWF: https://www.epson.de/en/products/printers/inkjet-printers/for-home/workforce-wf-7710dwf -.. _ix500: http://www.fujitsu.com/us/products/computing/peripheral/scanners/scansnap/ix500/ -.. _S1300i: https://www.fujitsu.com/global/products/computing/peripheral/scanners/soho/s1300i/ -.. _Q2: https://www.getdoxie.com/product/doxie-q/ -.. _MFP M277 dw: https://support.hp.com/us-en/drivers/selfservice/hp-color-laserjet-mfp-m277-series/7089945/model/7089949 - -.. _ayounggun: https://github.com/ayounggun -.. _bmsleight: https://github.com/bmsleight -.. _danielquinn: https://github.com/danielquinn -.. _eonist: https://github.com/eonist -.. _fignew: https://github.com/fignew -.. _holzhannes: https://github.com/holzhannes -.. _jonaswinkler: https://github.com/jonaswinkler -.. _REOLDEV: https://github.com/REOLDEV -.. _Skylinar: https://github.com/Skylinar -.. _ytzelf: https://github.com/ytzelf -.. _Unkn0wnCat: https://github.com/Unkn0wnCat -.. _muued: https://github.com/muued -.. _philpagel: https://github.com/philpagel -.. _eingemaischt: https://github.com/eingemaischt -.. _derlucas: https://github.com/derlucas -.. _glassbox_sco: https://github.com/glassbox_sco -.. _ocelotsloth: https://github.com/ocelotsloth - -.. [1] Scanners with API Integration allow to push scanned documents directly to :ref:`Paperless API `, sometimes referred to as Webhook or Document POST. -.. [2] Canon Multi Function Printers show strange behavior over SMB. They close and reopen the file after every page. It's recommended to tune the - :ref:`polling ` and :ref:`inotify ` configuration values for your scanner. The scanner timeout is 3 minutes, so ``180`` is a good starting point. - -Mobile phone software -===================== - -You can use your phone to "scan" documents. The regular camera app will work, but may have too low contrast for OCR to work well. Apps specifically for scanning are recommended. - -+-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ -| Name | OS | Supports | Recommended By | -+-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ -| | | FTP | NFS | SMB | Email | WebDAV | | -+=============================+================+=====+=====+=====+=======+========+==================+ -| `Microsoft Lens`_ | Android, iOS | ? | ? | ? | ? | ? | `jonaswinkler`_ | -+-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ -| `Genius Scan`_ | Android, iOS | yes | no | yes | yes | yes | `hannahswain`_ | -+-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ -| `OpenScan`_ | Android | no | no | no | no | no | `benjaminfrank`_ | -+-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ -| `QuickScan`_ | iOS | no | no | no | no | yes | `holzhannes`_ | -+-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+ - -On **Android**, you can use these applications in combination with one of the :ref:`Paperless-ngx compatible apps ` to "Share" the documents produced by these scanner apps with paperless. On iOS, you can share the scanned documents via iOS-Sharing to other mail, WebDav or FTP apps. - -There is also an **iOS** Shortcut that allows you to directly upload text, PDF and image documents available here: https://www.icloud.com/shortcuts/d234abc0885040129d9d75fa45fe1154 -Please note this only works for documents downloaded to iCloud / the device, in other words not directly from a URL. - -.. _Microsoft Lens: https://play.google.com/store/apps/details?id=com.microsoft.office.officelens -.. _Genius Scan: https://www.thegrizzlylabs.com/genius-scan -.. _OpenScan: https://github.com/Ethereal-Developers-Inc/OpenScan -.. _QuickScan: https://apps.apple.com/us/app/quickscan-scanner-text-ocr/id1513790291 - -.. _hannahswain: https://github.com/hannahswain -.. _benjaminfrank: https://github.com/benjaminfrank - -API Scanning Setup -================== - -This sections contains information on how to set up scanners to post directly to :ref:`Paperless API `. - -Doxie Q2 --------- - -This part assumes your Doxie is connected to WiFi and you know its IP. - -1. Open your Doxie web UI by navigating to its IP address -2. Navigate to Options -> Webhook -3. Set the *URL* to ``https://[your-paperless-ngx-instance]/api/documents/post_document/`` -4. Set the *File Parameter Name* to ``document`` -5. Add the username and password to the respective fields (Consider creating a user just for your Doxie) -6. Click *Submit* at the bottom of the page - -Congrats, you can now scan directly from your Doxie to your Paperless-ngx instance! +Paperless-ngx is compatible with many different scanners and scanning tools. A user-maintained list of scanners and other software is available on `the wiki `_. From efe51b30fee5b7d33527656bfbda690f5a22882a Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 31 Aug 2022 12:39:56 -0700 Subject: [PATCH 169/348] Fix actions button in tasks table --- src-ui/src/app/components/manage/tasks/tasks.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-ui/src/app/components/manage/tasks/tasks.component.html b/src-ui/src/app/components/manage/tasks/tasks.component.html index fcffc0ba3..91dad4ec8 100644 --- a/src-ui/src/app/components/manage/tasks/tasks.component.html +++ b/src-ui/src/app/components/manage/tasks/tasks.component.html @@ -55,7 +55,7 @@ {{ task.name }} {{ task.created | customDate:'short' }} - +
    {{ task.result | slice:0:50 }}… From 3828d712bd516cebeb5f6dc534f6c62240c6c2a9 Mon Sep 17 00:00:00 2001 From: viktor-c Date: Thu, 1 Sep 2022 01:36:13 +0200 Subject: [PATCH 170/348] Info about installing on subpath (#1350) * Update docker-compose.env * Update configuration.rst example.com/paperless is not a subdomain, but a subpath. Also when hosting from a subdomain like paperless.example.com one does not have to change anything in the configuration, it just works, because paperless expects to be hosted at root, i.e. paperless.example.com This however changes when paperless is not hosted at root anymore but for example at paperless.example.com/paperlessNgx * Update docker-compose.env * Apply suggestions from code review Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com> --- docker/compose/docker-compose.env | 4 ++++ docs/configuration.rst | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/docker/compose/docker-compose.env b/docker/compose/docker-compose.env index 34e694b92..c4dbb4cce 100644 --- a/docker/compose/docker-compose.env +++ b/docker/compose/docker-compose.env @@ -36,3 +36,7 @@ # The default language to use for OCR. Set this to the language most of your # documents are written in. #PAPERLESS_OCR_LANGUAGE=eng + +# Set if accessing paperless via a domain subpath e.g. https://domain.com/PATHPREFIX and using a reverse-proxy like traefik or nginx +#PAPERLESS_FORCE_SCRIPT_NAME=/PATHPREFIX +#PAPERLESS_STATIC_URL=/PATHPREFIX/static/ # trailing slash required diff --git a/docs/configuration.rst b/docs/configuration.rst index 94c7c2e64..7eac9440f 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -215,9 +215,16 @@ PAPERLESS_FORCE_SCRIPT_NAME= PAPERLESS_STATIC_URL= Override the STATIC_URL here. Unless you're hosting Paperless off a subdomain like /paperless/, you probably don't need to change this. + If you do change it, be sure to include the trailing slash. Defaults to "/static/". + .. note:: + + When hosting paperless behind a reverse proxy like Traefik or Nginx at a subpath e.g. + example.com/paperlessngx you will also need to set ``PAPERLESS_FORCE_SCRIPT_NAME`` + (see above). + PAPERLESS_AUTO_LOGIN_USERNAME= Specify a username here so that paperless will automatically perform login with the selected user. From bd18a57a5dc4f544de09275163a57f92ea072857 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Thu, 1 Sep 2022 08:51:14 -0700 Subject: [PATCH 171/348] Updates imap_tools and updates to use the new login method for UTF-8 --- Pipfile.lock | 11 +++++------ src/paperless_mail/mail.py | 18 ++---------------- src/paperless_mail/tests/test_mail.py | 20 ++++++++++++++++---- 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 18d6bc315..bcdf26a35 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -501,10 +501,12 @@ "imap-tools": { "hashes": [ "sha256:4fe4c07c4cc4aab83492d126e221c39118ff530268149b721296fc0fb87de3c2", - "sha256:56942853be2125d509365b84eacf0f3a87ae58ea8f82bca7a6943634a60cfb60" + "sha256:56942853be2125d509365b84eacf0f3a87ae58ea8f82bca7a6943634a60cfb60", + "sha256:6f5572b2e747a81a607438e0ef61ff28f323f6697820493c8ca4467465baeb76", + "sha256:9e2658f267311051e04d437aca06d5b4c7c091fc4f411f7d13ca610e0cead5cb" ], "index": "pypi", - "version": "==0.56.0" + "version": "==0.57.0" }, "img2pdf": { "hashes": [ @@ -1754,9 +1756,6 @@ "version": "==0.4.5" }, "coverage": { - "extras": [ - "toml" - ], "hashes": [ "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2", "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820", @@ -2320,7 +2319,7 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_version >= '3.7'", + "markers": "python_full_version < '3.11.0a7'", "version": "==2.0.1" }, "tornado": { diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index ad1358ebe..ebab59a88 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -4,7 +4,6 @@ import tempfile from datetime import date from datetime import timedelta from fnmatch import fnmatch -from imaplib import IMAP4 import magic import pathvalidate @@ -187,22 +186,9 @@ class MailAccountHandler(LoggingMixin): except UnicodeEncodeError: self.log("debug", "Falling back to AUTH=PLAIN") - try: - # rfc2595 section 6 - PLAIN SASL mechanism - client: IMAP4 = M.client - encoded = ( - b"\0" - + account.username.encode("utf8") - + b"\0" - + account.password.encode("utf8") - ) - # Assumption is the server supports AUTH=PLAIN capability - # Could check the list with client.capability(), but then what? - # We're failing anyway then - client.authenticate("PLAIN", lambda x: encoded) - # Need to transition out of AUTH state to SELECTED - M.folder.set("INBOX") + try: + M.login_utf8(account.username, account.password) except Exception as err: self.log( "error", diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index a0957a64d..be016a79a 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -73,6 +73,13 @@ class BogusClient: class BogusMailBox(ContextManager): + + # Common values so tests don't need to remember an accepted login + USERNAME: str = "admin" + ASCII_PASSWORD: str = "secret" + # Note the non-ascii characters here + UTF_PASSWORD: str = "w57äöüw4b6huwb6nhu" + def __enter__(self): return self @@ -93,7 +100,12 @@ class BogusMailBox(ContextManager): # This will raise a UnicodeEncodeError if the password is not ASCII only password.encode("ascii") # Otherwise, check for correct values - if username != "admin" or password not in {"secret"}: + if username != self.USERNAME or password != self.ASCII_PASSWORD: + raise MailboxLoginError("BAD", "OK") + + def login_utf8(self, username, password): + # Expected to only be called with the UTF-8 password + if username != self.USERNAME or password != self.UTF_PASSWORD: raise MailboxLoginError("BAD", "OK") def fetch(self, criteria, mark_seen, charset=""): @@ -931,9 +943,9 @@ class TestMail(DirectoriesMixin, TestCase): account = MailAccount.objects.create( name="test", imap_server="", - username="admin", + username=BogusMailBox.USERNAME, # Note the non-ascii characters here - password="w57äöüw4b6huwb6nhu", + password=BogusMailBox.UTF_PASSWORD, ) _ = MailRule.objects.create( @@ -963,7 +975,7 @@ class TestMail(DirectoriesMixin, TestCase): account = MailAccount.objects.create( name="test", imap_server="", - username="admin", + username=BogusMailBox.USERNAME, # Note the non-ascii characters here # Passes the check in login, not in authenticate password="réception", From 99d61036172191c120ec6fb94b684fb6f9ff4cec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Sep 2022 20:09:45 +0000 Subject: [PATCH 172/348] Bump @cypress/schematic from 2.0.0 to 2.1.1 in /src-ui Bumps [@cypress/schematic](https://github.com/cypress-io/cypress) from 2.0.0 to 2.1.1. - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js) - [Commits](https://github.com/cypress-io/cypress/compare/@cypress/schematic-v2.0.0...@cypress/schematic-v2.1.1) --- updated-dependencies: - dependency-name: "@cypress/schematic" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- src-ui/package-lock.json | 241 ++++++++++++--------------------------- src-ui/package.json | 2 +- 2 files changed, 77 insertions(+), 166 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 4a9b77741..abfb7821e 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -16,12 +16,12 @@ "@angular/platform-browser": "~14.1.0", "@angular/platform-browser-dynamic": "~14.1.0", "@angular/router": "~14.1.0", + "@cypress/schematic": "^2.1.1", "@ng-bootstrap/ng-bootstrap": "^13.0.0-beta.1", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", "@popperjs/core": "^2.11.5", "bootstrap": "^5.2.0", - "cypress": "~10.3.1", "file-saver": "^2.0.5", "ng2-pdf-viewer": "^9.1.0", "ngx-color": "^8.0.1", @@ -50,7 +50,7 @@ "wait-on": "~6.0.1" }, "optionalDependencies": { - "@cypress/schematic": "^2.0.0", + "@cypress/schematic": "^2.1.1", "cypress": "~10.3.1" } }, @@ -2691,15 +2691,15 @@ } }, "node_modules/@cypress/schematic": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-2.0.0.tgz", - "integrity": "sha512-cKIyL1Gm/EU+eXTwYpxgFLdToVIpJwJHvUW+MVYpnoacfvPUU3UhgJsicPihw6e0hR0j/WImBkaIEqjH1MZK4Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-2.1.1.tgz", + "integrity": "sha512-Kf4QeNk8IVx3tdybls+xq8CbqsZwqR9dZjE3ELZhfG2rZeId9SSG6F2GpR4Xly5ROkX0BuQVeuIFNSkDxWAtPg==", "optional": true, "dependencies": { - "@angular-devkit/architect": "^0.1202.10", - "@angular-devkit/core": "^12.2.17", - "@angular-devkit/schematics": "^12.2.17", - "@schematics/angular": "^12.2.17", + "@angular-devkit/architect": "^0.1402.1", + "@angular-devkit/core": "^14.2.1", + "@angular-devkit/schematics": "^14.2.1", + "@schematics/angular": "^14.2.1", "jsonc-parser": "^3.0.0", "rxjs": "~6.6.0" }, @@ -2709,119 +2709,80 @@ } }, "node_modules/@cypress/schematic/node_modules/@angular-devkit/architect": { - "version": "0.1202.18", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.18.tgz", - "integrity": "sha512-C4ASKe+xBjl91MJyHDLt3z7ICPF9FU6B0CeJ1phwrlSHK9lmFG99WGxEj/Tc82+vHyPhajqS5XJ38KyVAPBGzA==", + "version": "0.1402.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", + "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", "optional": true, "dependencies": { - "@angular-devkit/core": "12.2.18", + "@angular-devkit/core": "14.2.1", "rxjs": "6.6.7" }, "engines": { - "node": "^12.14.1 || >=14.0.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@cypress/schematic/node_modules/@angular-devkit/core": { - "version": "12.2.18", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.18.tgz", - "integrity": "sha512-GDLHGe9HEY5SRS+NrKr14C8aHsRCiBFkBFSSbeohgLgcgSXzZHFoU84nDWrl3KZNP8oqcUSv5lHu6dLcf2fnww==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", "optional": true, "dependencies": { - "ajv": "8.6.2", - "ajv-formats": "2.1.0", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", "rxjs": "6.6.7", - "source-map": "0.7.3" + "source-map": "0.7.4" }, "engines": { - "node": "^12.14.1 || >=14.0.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } } }, "node_modules/@cypress/schematic/node_modules/@angular-devkit/schematics": { - "version": "12.2.18", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.18.tgz", - "integrity": "sha512-bZ9NS5PgoVfetRC6WeQBHCY5FqPZ9y2TKHUo12sOB2YSL3tgWgh1oXyP8PtX34gasqsLjNULxEQsAQYEsiX/qQ==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", "optional": true, "dependencies": { - "@angular-devkit/core": "12.2.18", + "@angular-devkit/core": "14.2.1", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", "ora": "5.4.1", "rxjs": "6.6.7" }, "engines": { - "node": "^12.14.1 || >=14.0.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@cypress/schematic/node_modules/@schematics/angular": { - "version": "12.2.18", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.18.tgz", - "integrity": "sha512-niRS9Ly9y8uI0YmTSbo8KpdqCCiZ/ATMZWeS2id5M8JZvfXbngwiqJvojdSol0SWU+n1W4iA+lJBdt4gSKlD5w==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.1.tgz", + "integrity": "sha512-Dchixep/FMETAMuyFchw9Nryi7tfuZQRumzIOtQpv+KaVtfjvcIlES0KuI0U3Qh7tGIYPBmO3Mkt3oojcl2RBA==", "optional": true, "dependencies": { - "@angular-devkit/core": "12.2.18", - "@angular-devkit/schematics": "12.2.18", - "jsonc-parser": "3.0.0" + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "jsonc-parser": "3.1.0" }, "engines": { - "node": "^12.14.1 || >=14.0.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, - "node_modules/@cypress/schematic/node_modules/ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "optional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@cypress/schematic/node_modules/ajv-formats": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz", - "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", - "optional": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@cypress/schematic/node_modules/jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "optional": true - }, - "node_modules/@cypress/schematic/node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "optional": true, - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, "node_modules/@cypress/schematic/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -2834,15 +2795,6 @@ "npm": ">=2.0.0" } }, - "node_modules/@cypress/schematic/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "optional": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/@cypress/schematic/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -8134,7 +8086,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -18967,99 +18919,64 @@ } }, "@cypress/schematic": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-2.0.0.tgz", - "integrity": "sha512-cKIyL1Gm/EU+eXTwYpxgFLdToVIpJwJHvUW+MVYpnoacfvPUU3UhgJsicPihw6e0hR0j/WImBkaIEqjH1MZK4Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-2.1.1.tgz", + "integrity": "sha512-Kf4QeNk8IVx3tdybls+xq8CbqsZwqR9dZjE3ELZhfG2rZeId9SSG6F2GpR4Xly5ROkX0BuQVeuIFNSkDxWAtPg==", "optional": true, "requires": { - "@angular-devkit/architect": "^0.1202.10", - "@angular-devkit/core": "^12.2.17", - "@angular-devkit/schematics": "^12.2.17", - "@schematics/angular": "^12.2.17", + "@angular-devkit/architect": "^0.1402.1", + "@angular-devkit/core": "^14.2.1", + "@angular-devkit/schematics": "^14.2.1", + "@schematics/angular": "^14.2.1", "jsonc-parser": "^3.0.0", "rxjs": "~6.6.0" }, "dependencies": { "@angular-devkit/architect": { - "version": "0.1202.18", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.18.tgz", - "integrity": "sha512-C4ASKe+xBjl91MJyHDLt3z7ICPF9FU6B0CeJ1phwrlSHK9lmFG99WGxEj/Tc82+vHyPhajqS5XJ38KyVAPBGzA==", + "version": "0.1402.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", + "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", "optional": true, "requires": { - "@angular-devkit/core": "12.2.18", + "@angular-devkit/core": "14.2.1", "rxjs": "6.6.7" } }, "@angular-devkit/core": { - "version": "12.2.18", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.18.tgz", - "integrity": "sha512-GDLHGe9HEY5SRS+NrKr14C8aHsRCiBFkBFSSbeohgLgcgSXzZHFoU84nDWrl3KZNP8oqcUSv5lHu6dLcf2fnww==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", "optional": true, "requires": { - "ajv": "8.6.2", - "ajv-formats": "2.1.0", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", "rxjs": "6.6.7", - "source-map": "0.7.3" + "source-map": "0.7.4" } }, "@angular-devkit/schematics": { - "version": "12.2.18", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.18.tgz", - "integrity": "sha512-bZ9NS5PgoVfetRC6WeQBHCY5FqPZ9y2TKHUo12sOB2YSL3tgWgh1oXyP8PtX34gasqsLjNULxEQsAQYEsiX/qQ==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", "optional": true, "requires": { - "@angular-devkit/core": "12.2.18", + "@angular-devkit/core": "14.2.1", + "jsonc-parser": "3.1.0", + "magic-string": "0.26.2", "ora": "5.4.1", "rxjs": "6.6.7" } }, "@schematics/angular": { - "version": "12.2.18", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.18.tgz", - "integrity": "sha512-niRS9Ly9y8uI0YmTSbo8KpdqCCiZ/ATMZWeS2id5M8JZvfXbngwiqJvojdSol0SWU+n1W4iA+lJBdt4gSKlD5w==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.1.tgz", + "integrity": "sha512-Dchixep/FMETAMuyFchw9Nryi7tfuZQRumzIOtQpv+KaVtfjvcIlES0KuI0U3Qh7tGIYPBmO3Mkt3oojcl2RBA==", "optional": true, "requires": { - "@angular-devkit/core": "12.2.18", - "@angular-devkit/schematics": "12.2.18", - "jsonc-parser": "3.0.0" - } - }, - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "optional": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz", - "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", - "optional": true, - "requires": { - "ajv": "^8.0.0" - } - }, - "jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "optional": true - }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "optional": true, - "requires": { - "sourcemap-codec": "^1.4.4" + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "jsonc-parser": "3.1.0" } }, "rxjs": { @@ -19071,12 +18988,6 @@ "tslib": "^1.9.0" } }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "optional": true - }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -23093,7 +23004,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true + "dev": true }, "fast-levenshtein": { "version": "2.0.6", diff --git a/src-ui/package.json b/src-ui/package.json index 957a82481..eab04f689 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -54,7 +54,7 @@ "wait-on": "~6.0.1" }, "optionalDependencies": { - "@cypress/schematic": "^2.0.0", + "@cypress/schematic": "^2.1.1", "cypress": "~10.3.1" } } From 8b28159e2da5f0bd76c1fac89c26712ce56991b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Sep 2022 20:12:56 +0000 Subject: [PATCH 173/348] Bump @popperjs/core from 2.11.5 to 2.11.6 in /src-ui Bumps [@popperjs/core](https://github.com/popperjs/popper-core) from 2.11.5 to 2.11.6. - [Release notes](https://github.com/popperjs/popper-core/releases) - [Commits](https://github.com/popperjs/popper-core/compare/v2.11.5...v2.11.6) --- updated-dependencies: - dependency-name: "@popperjs/core" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src-ui/package-lock.json | 15 +++++++-------- src-ui/package.json | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 4a9b77741..13398646b 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -19,9 +19,8 @@ "@ng-bootstrap/ng-bootstrap": "^13.0.0-beta.1", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", - "@popperjs/core": "^2.11.5", + "@popperjs/core": "^2.11.6", "bootstrap": "^5.2.0", - "cypress": "~10.3.1", "file-saver": "^2.0.5", "ng2-pdf-viewer": "^9.1.0", "ngx-color": "^8.0.1", @@ -3909,9 +3908,9 @@ } }, "node_modules/@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -19888,9 +19887,9 @@ } }, "@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, "@schematics/angular": { "version": "14.1.0", diff --git a/src-ui/package.json b/src-ui/package.json index 957a82481..a0cb8889b 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -24,7 +24,7 @@ "@ng-bootstrap/ng-bootstrap": "^13.0.0-beta.1", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", - "@popperjs/core": "^2.11.5", + "@popperjs/core": "^2.11.6", "bootstrap": "^5.2.0", "file-saver": "^2.0.5", "ng2-pdf-viewer": "^9.1.0", From 5ffb25b71d72e9f9c62a1ded91728d088801b868 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Wed, 31 Aug 2022 10:59:55 -0700 Subject: [PATCH 174/348] Tweaks gunicorn to preload the app and use shared memory for temporary fs --- gunicorn.conf.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gunicorn.conf.py b/gunicorn.conf.py index daebd4bea..a3ada7a64 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -1,9 +1,17 @@ import os +# See https://docs.gunicorn.org/en/stable/settings.html for +# explanations of settings + bind = f'{os.getenv("PAPERLESS_BIND_ADDR", "[::]")}:{os.getenv("PAPERLESS_PORT", 8000)}' + workers = int(os.getenv("PAPERLESS_WEBSERVER_WORKERS", 1)) worker_class = "paperless.workers.ConfigurableWorker" timeout = 120 +preload_app = True + +# https://docs.gunicorn.org/en/stable/faq.html#blocking-os-fchmod +worker_tmp_dir = "/dev/shm" def pre_fork(server, worker): From ff280f030955189ab91bca5274ad968e941a7f98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Sep 2022 06:53:44 +0000 Subject: [PATCH 175/348] Bump cypress from 10.3.1 to 10.7.0 in /src-ui Bumps [cypress](https://github.com/cypress-io/cypress) from 10.3.1 to 10.7.0. - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js) - [Commits](https://github.com/cypress-io/cypress/compare/v10.3.1...v10.7.0) --- updated-dependencies: - dependency-name: cypress dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- src-ui/package-lock.json | 16 ++++++++-------- src-ui/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 0ee1becf4..871ceb081 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -16,12 +16,12 @@ "@angular/platform-browser": "~14.1.0", "@angular/platform-browser-dynamic": "~14.1.0", "@angular/router": "~14.1.0", - "@cypress/schematic": "^2.1.1", "@ng-bootstrap/ng-bootstrap": "^13.0.0-beta.1", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", "@popperjs/core": "^2.11.6", "bootstrap": "^5.2.0", + "cypress": "~10.7.0", "file-saver": "^2.0.5", "ng2-pdf-viewer": "^9.1.0", "ngx-color": "^8.0.1", @@ -51,7 +51,7 @@ }, "optionalDependencies": { "@cypress/schematic": "^2.1.1", - "cypress": "~10.3.1" + "cypress": "~10.7.0" } }, "node_modules/@ampproject/remapping": { @@ -6607,9 +6607,9 @@ "dev": true }, "node_modules/cypress": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.3.1.tgz", - "integrity": "sha512-As9HrExjAgpgjCnbiQCuPdw5sWKx5HUJcK2EOKziu642akwufr/GUeqL5UnCPYXTyyibvEdWT/pSC2qnGW/e5w==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.7.0.tgz", + "integrity": "sha512-gTFvjrUoBnqPPOu9Vl5SBHuFlzx/Wxg/ZXIz2H4lzoOLFelKeF7mbwYUOzgzgF0oieU2WhJAestQdkgwJMMTvQ==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -21980,9 +21980,9 @@ } }, "cypress": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.3.1.tgz", - "integrity": "sha512-As9HrExjAgpgjCnbiQCuPdw5sWKx5HUJcK2EOKziu642akwufr/GUeqL5UnCPYXTyyibvEdWT/pSC2qnGW/e5w==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.7.0.tgz", + "integrity": "sha512-gTFvjrUoBnqPPOu9Vl5SBHuFlzx/Wxg/ZXIz2H4lzoOLFelKeF7mbwYUOzgzgF0oieU2WhJAestQdkgwJMMTvQ==", "optional": true, "requires": { "@cypress/request": "^2.88.10", diff --git a/src-ui/package.json b/src-ui/package.json index edd9c8bfc..11616a0dc 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -55,6 +55,6 @@ }, "optionalDependencies": { "@cypress/schematic": "^2.1.1", - "cypress": "~10.3.1" + "cypress": "~10.7.0" } } From 4aebb8e15385aca75e4f6a7dfc1d5a64e7f334f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Sep 2022 07:02:45 +0000 Subject: [PATCH 176/348] Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui Bumps [ngx-color](https://github.com/scttcper/ngx-color) from 8.0.1 to 8.0.2. - [Release notes](https://github.com/scttcper/ngx-color/releases) - [Commits](https://github.com/scttcper/ngx-color/compare/v8.0.1...v8.0.2) --- updated-dependencies: - dependency-name: ngx-color dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src-ui/package-lock.json | 15 +++++++-------- src-ui/package.json | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 871ceb081..1b891c9a2 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -21,10 +21,9 @@ "@ngneat/dirty-check-forms": "^3.0.2", "@popperjs/core": "^2.11.6", "bootstrap": "^5.2.0", - "cypress": "~10.7.0", "file-saver": "^2.0.5", "ng2-pdf-viewer": "^9.1.0", - "ngx-color": "^8.0.1", + "ngx-color": "^8.0.2", "ngx-cookie-service": "^14.0.1", "ngx-file-drop": "^14.0.1", "rxjs": "~7.5.6", @@ -12412,9 +12411,9 @@ } }, "node_modules/ngx-color": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ngx-color/-/ngx-color-8.0.1.tgz", - "integrity": "sha512-ZemxEFtn5Pw3hkx7GFwFc0PNkovsX/9A8SaYwrIFIJmdvmPhWPKa0OXkxRaD/0kpALFIeHraC/jWF2w761D8jA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/ngx-color/-/ngx-color-8.0.2.tgz", + "integrity": "sha512-apVHCRCxU0iPCflNGtBQ/0XRvZGphcIH1Y7P/vryOMXggZ4ZDqQU5lrm4cCZxexTqcFmQzEyD84Mk+IOfLz7FA==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", "material-colors": "^1.2.6", @@ -26232,9 +26231,9 @@ } }, "ngx-color": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ngx-color/-/ngx-color-8.0.1.tgz", - "integrity": "sha512-ZemxEFtn5Pw3hkx7GFwFc0PNkovsX/9A8SaYwrIFIJmdvmPhWPKa0OXkxRaD/0kpALFIeHraC/jWF2w761D8jA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/ngx-color/-/ngx-color-8.0.2.tgz", + "integrity": "sha512-apVHCRCxU0iPCflNGtBQ/0XRvZGphcIH1Y7P/vryOMXggZ4ZDqQU5lrm4cCZxexTqcFmQzEyD84Mk+IOfLz7FA==", "requires": { "@ctrl/tinycolor": "^3.4.1", "material-colors": "^1.2.6", diff --git a/src-ui/package.json b/src-ui/package.json index 11616a0dc..5aea3cee5 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -28,7 +28,7 @@ "bootstrap": "^5.2.0", "file-saver": "^2.0.5", "ng2-pdf-viewer": "^9.1.0", - "ngx-color": "^8.0.1", + "ngx-color": "^8.0.2", "ngx-cookie-service": "^14.0.1", "ngx-file-drop": "^14.0.1", "rxjs": "~7.5.6", From 299ae2b82867b82199438d2f07ccb1b2dd1e565b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Sep 2022 07:30:09 +0000 Subject: [PATCH 177/348] Bump zone.js from 0.11.7 to 0.11.8 in /src-ui Bumps [zone.js](https://github.com/angular/angular/tree/HEAD/packages/zone.js) from 0.11.7 to 0.11.8. - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/packages/zone.js/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/zone.js-0.11.8/packages/zone.js) --- updated-dependencies: - dependency-name: zone.js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src-ui/package-lock.json | 14 +++++++------- src-ui/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 1b891c9a2..c2b6caf54 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -29,7 +29,7 @@ "rxjs": "~7.5.6", "tslib": "^2.3.1", "uuid": "^8.3.1", - "zone.js": "~0.11.6" + "zone.js": "~0.11.8" }, "devDependencies": { "@angular-builders/jest": "14.0.0", @@ -17127,9 +17127,9 @@ } }, "node_modules/zone.js": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.7.tgz", - "integrity": "sha512-e39K2EdK5JfA3FDuUTVRvPlYV4aBfnOOcGuILhQAT7nzeV12uSrLBzImUM9CDVoncDSX4brR/gwqu0heQ3BQ0g==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.8.tgz", + "integrity": "sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==", "dependencies": { "tslib": "^2.3.0" } @@ -29631,9 +29631,9 @@ "dev": true }, "zone.js": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.7.tgz", - "integrity": "sha512-e39K2EdK5JfA3FDuUTVRvPlYV4aBfnOOcGuILhQAT7nzeV12uSrLBzImUM9CDVoncDSX4brR/gwqu0heQ3BQ0g==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.8.tgz", + "integrity": "sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==", "requires": { "tslib": "^2.3.0" } diff --git a/src-ui/package.json b/src-ui/package.json index 5aea3cee5..e2ae35e92 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -34,7 +34,7 @@ "rxjs": "~7.5.6", "tslib": "^2.3.1", "uuid": "^8.3.1", - "zone.js": "~0.11.6" + "zone.js": "~0.11.8" }, "devDependencies": { "@angular-builders/jest": "14.0.0", From a80b413d388c95e5bdbc9c13164727e49bc79174 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Sep 2022 07:33:26 +0000 Subject: [PATCH 178/348] Bump @angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui Bumps [@angular-builders/jest](https://github.com/just-jeb/angular-builders/tree/HEAD/packages/jest) from 14.0.0 to 14.0.1. - [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.0.1/packages/jest) --- updated-dependencies: - dependency-name: "@angular-builders/jest" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- src-ui/package-lock.json | 61 ++++++---------------------------------- src-ui/package.json | 2 +- 2 files changed, 10 insertions(+), 53 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index c2b6caf54..eb3d50d1e 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -32,7 +32,7 @@ "zone.js": "~0.11.8" }, "devDependencies": { - "@angular-builders/jest": "14.0.0", + "@angular-builders/jest": "14.0.1", "@angular-devkit/build-angular": "~14.1.0", "@angular/cli": "~14.1.0", "@angular/compiler-cli": "~14.1.0", @@ -66,14 +66,14 @@ } }, "node_modules/@angular-builders/jest": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-14.0.0.tgz", - "integrity": "sha512-FBcbEmrCJqlA6lDVW7BzcPq2zQ98UNua0IO6DxHEi9LN/5Yyx2YJSbYqmfykyRBEnIqLzHVGOX9eBIiSg0Bc/w==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-14.0.1.tgz", + "integrity": "sha512-ol+/u6KD7kX0AyQ8Mr6pPmsptNh89p+PJtXhcU9epzjJw1y1Y+SlXHGVWg8JseaGRfxo3FVshS/ZvTxoGsstTA==", "dev": true, "dependencies": { "@angular-devkit/architect": ">=0.1400.0 < 0.1500.0", "@angular-devkit/core": "^14.0.0", - "jest-preset-angular": "12.1.0", + "jest-preset-angular": "12.2.0", "lodash": "^4.17.15" }, "engines": { @@ -87,33 +87,6 @@ "jest": ">=28" } }, - "node_modules/@angular-builders/jest/node_modules/jest-preset-angular": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-12.1.0.tgz", - "integrity": "sha512-zOiUvAMqIYkr8yRRO9x2NwVD8rzx0GtDaWxxox5GdgFQ/EEeIMI2Wqf5gfuX0t3Cnrq+K6cJCr181VMrjPkLPA==", - "dev": true, - "dependencies": { - "bs-logger": "^0.2.6", - "esbuild-wasm": ">=0.13.8", - "jest-environment-jsdom": "^28.0.0", - "pretty-format": "^28.0.0", - "ts-jest": "^28.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.10.0" - }, - "optionalDependencies": { - "esbuild": ">=0.13.8" - }, - "peerDependencies": { - "@angular-devkit/build-angular": ">=0.1102.19 <15.0.0", - "@angular/compiler-cli": ">=11.2.14 <15.0.0", - "@angular/core": ">=11.2.14 <15.0.0", - "@angular/platform-browser-dynamic": ">=11.2.14 <15.0.0", - "jest": "^28.0.0", - "typescript": ">=4.3" - } - }, "node_modules/@angular-devkit/architect": { "version": "0.1401.0", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1401.0.tgz", @@ -17146,31 +17119,15 @@ } }, "@angular-builders/jest": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-14.0.0.tgz", - "integrity": "sha512-FBcbEmrCJqlA6lDVW7BzcPq2zQ98UNua0IO6DxHEi9LN/5Yyx2YJSbYqmfykyRBEnIqLzHVGOX9eBIiSg0Bc/w==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@angular-builders/jest/-/jest-14.0.1.tgz", + "integrity": "sha512-ol+/u6KD7kX0AyQ8Mr6pPmsptNh89p+PJtXhcU9epzjJw1y1Y+SlXHGVWg8JseaGRfxo3FVshS/ZvTxoGsstTA==", "dev": true, "requires": { "@angular-devkit/architect": ">=0.1400.0 < 0.1500.0", "@angular-devkit/core": "^14.0.0", - "jest-preset-angular": "12.1.0", + "jest-preset-angular": "12.2.0", "lodash": "^4.17.15" - }, - "dependencies": { - "jest-preset-angular": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-12.1.0.tgz", - "integrity": "sha512-zOiUvAMqIYkr8yRRO9x2NwVD8rzx0GtDaWxxox5GdgFQ/EEeIMI2Wqf5gfuX0t3Cnrq+K6cJCr181VMrjPkLPA==", - "dev": true, - "requires": { - "bs-logger": "^0.2.6", - "esbuild": ">=0.13.8", - "esbuild-wasm": ">=0.13.8", - "jest-environment-jsdom": "^28.0.0", - "pretty-format": "^28.0.0", - "ts-jest": "^28.0.0" - } - } } }, "@angular-devkit/architect": { diff --git a/src-ui/package.json b/src-ui/package.json index e2ae35e92..669478776 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -37,7 +37,7 @@ "zone.js": "~0.11.8" }, "devDependencies": { - "@angular-builders/jest": "14.0.0", + "@angular-builders/jest": "14.0.1", "@angular-devkit/build-angular": "~14.1.0", "@angular/cli": "~14.1.0", "@angular/compiler-cli": "~14.1.0", From 2582d325bce327898f595f6c00ee1282b8c1dd73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Sep 2022 07:39:49 +0000 Subject: [PATCH 179/348] Bump @types/node from 18.6.3 to 18.7.14 in /src-ui Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 18.6.3 to 18.7.14. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- src-ui/package-lock.json | 14 +++++++------- src-ui/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index eb3d50d1e..221da40e4 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -37,7 +37,7 @@ "@angular/cli": "~14.1.0", "@angular/compiler-cli": "~14.1.0", "@types/jest": "28.1.6", - "@types/node": "^18.6.3", + "@types/node": "^18.7.14", "codelyzer": "^6.0.2", "concurrently": "7.3.0", "jest": "28.1.3", @@ -4139,9 +4139,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", - "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==", + "version": "18.7.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", + "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", "devOptional": true }, "node_modules/@types/parse-json": { @@ -20049,9 +20049,9 @@ "dev": true }, "@types/node": { - "version": "18.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", - "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==", + "version": "18.7.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", + "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", "devOptional": true }, "@types/parse-json": { diff --git a/src-ui/package.json b/src-ui/package.json index 669478776..1e89af3ed 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -42,7 +42,7 @@ "@angular/cli": "~14.1.0", "@angular/compiler-cli": "~14.1.0", "@types/jest": "28.1.6", - "@types/node": "^18.6.3", + "@types/node": "^18.7.14", "codelyzer": "^6.0.2", "concurrently": "7.3.0", "jest": "28.1.3", From 6d42b2a29d62fae957f0d123c767674accc2dab1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Sep 2022 07:41:29 +0000 Subject: [PATCH 180/348] Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 28.1.3 to 29.0.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.0.1/packages/jest-environment-jsdom) --- updated-dependencies: - dependency-name: jest-environment-jsdom dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- src-ui/package-lock.json | 948 ++++++++++++++++++++++++++++++++++----- src-ui/package.json | 2 +- 2 files changed, 836 insertions(+), 114 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 221da40e4..2b52a5d6b 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -41,7 +41,7 @@ "codelyzer": "^6.0.2", "concurrently": "7.3.0", "jest": "28.1.3", - "jest-environment-jsdom": "^28.1.3", + "jest-environment-jsdom": "^29.0.1", "jest-preset-angular": "^12.2.0", "ts-node": "~10.9.1", "tslint": "~6.1.3", @@ -4116,14 +4116,38 @@ } }, "node_modules/@types/jsdom": { - "version": "16.2.15", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz", - "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.0.tgz", + "integrity": "sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==", "dev": true, "dependencies": { "@types/node": "*", - "@types/parse5": "^6.0.3", - "@types/tough-cookie": "*" + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/jsdom/node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@types/jsdom/node_modules/parse5": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "dev": true, + "dependencies": { + "entities": "^4.3.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/@types/json-schema": { @@ -6767,19 +6791,6 @@ "node": ">=12" } }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/date-fns": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.1.tgz", @@ -6816,9 +6827,9 @@ } }, "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.0.tgz", + "integrity": "sha512-Nv6ENEzyPQ6AItkGwLE2PGKinZZ9g59vSh2BeH6NqPu0OTKZ5ruJsVqh/orbAnqXc9pBbgXAIrc2EyaCj8NpGg==", "dev": true }, "node_modules/decode-uri-component": { @@ -10086,22 +10097,238 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.3.tgz", - "integrity": "sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==", + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.0.1.tgz", + "integrity": "sha512-rMF501kfui+bw4AmwowLA2bNaYb633A3ejFMN5pVU0AeOqLv2NbMAY5XzzlMr/+lM1itEf+3ZdCr9dGGrUfoxg==", "dev": true, "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/jsdom": "^16.2.4", + "@jest/environment": "^29.0.1", + "@jest/fake-timers": "^29.0.1", + "@jest/types": "^29.0.1", + "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3", - "jsdom": "^19.0.0" + "jest-mock": "^29.0.1", + "jest-util": "^29.0.1", + "jsdom": "^20.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@jest/environment": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.0.1.tgz", + "integrity": "sha512-iLcFfoq2K6DAB+Mc+2VNLzZVmHdwQFeSqvoM/X8SMON6s/+yEi1iuRX3snx/JfwSnvmiMXjSr0lktxNxOcqXYA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.0.1", + "@jest/types": "^29.0.1", + "@types/node": "*", + "jest-mock": "^29.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@jest/fake-timers": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.0.1.tgz", + "integrity": "sha512-XZ+kAhLChVQ+KJNa5034p7O1Mz3vtWrelxDcMoxhZkgqmWDaEQAW9qJeutaeCfPvwaEwKYVyKDYfWpcyT8RiMw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.0.1", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^29.0.1", + "jest-mock": "^29.0.1", + "jest-util": "^29.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@jest/types": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.0.1.tgz", + "integrity": "sha512-ft01rxzVsbh9qZPJ6EFgAIj3PT9FCRfBF9Xljo2/33VDOUjLZr0ZJ2oKANqh9S/K0/GERCsHDAQlBwj7RxA+9g==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-message-util": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.0.1.tgz", + "integrity": "sha512-wRMAQt3HrLpxSubdnzOo68QoTfQ+NLXFzU0Heb18ZUzO2S9GgaXNEdQ4rpd0fI9dq2NXkpCk1IUWSqzYKji64A==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.0.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.0.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-mock": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.0.1.tgz", + "integrity": "sha512-i1yTceg2GKJwUNZFjIzrH7Y74fN1SKJWxQX/Vu3LT4TiJerFARH5l+4URNyapZ+DNpchHYrGOP2deVbn3ma8JA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.0.1", + "@types/node": "*" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-util": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.0.1.tgz", + "integrity": "sha512-GIWkgNfkeA9d84rORDHPGGTFBrRD13A38QVSKE0bVrGSnoR1KDn8Kqz+0yI5kezMgbT/7zrWaruWP1Kbghlb2A==", + "dev": true, + "dependencies": { + "@jest/types": "^29.0.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/pretty-format": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.0.1.tgz", + "integrity": "sha512-iTHy3QZMzuL484mSTYbQIM1AHhEQsH8mXWS2/vd2yFBYnG3EBqGiMONo28PlPgrW7P/8s/1ISv+y7WH306l8cw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/jest-environment-node": { @@ -10409,6 +10636,145 @@ "typescript": ">=4.3" } }, + "node_modules/jest-preset-angular/node_modules/@types/jsdom": { + "version": "16.2.15", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz", + "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/parse5": "^6.0.3", + "@types/tough-cookie": "*" + } + }, + "node_modules/jest-preset-angular/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-preset-angular/node_modules/jest-environment-jsdom": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.3.tgz", + "integrity": "sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/jsdom": "^16.2.4", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3", + "jsdom": "^19.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-preset-angular/node_modules/jsdom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", + "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.5.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-preset-angular/node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-preset-angular/node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-preset-angular/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/jest-preset-angular/node_modules/whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/jest-regex-util": { "version": "28.0.2", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", @@ -11304,28 +11670,28 @@ "optional": true }, "node_modules/jsdom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", - "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.0.tgz", + "integrity": "sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==", "dev": true, "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.5.0", + "abab": "^2.0.6", + "acorn": "^8.7.1", "acorn-globals": "^6.0.0", "cssom": "^0.5.0", "cssstyle": "^2.3.0", - "data-urls": "^3.0.1", + "data-urls": "^3.0.2", "decimal.js": "^10.3.1", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", "html-encoding-sniffer": "^3.0.0", "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", + "parse5": "^7.0.0", + "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.0.0", "w3c-hr-time": "^1.0.2", @@ -11333,12 +11699,12 @@ "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^10.0.0", - "ws": "^8.2.3", + "whatwg-url": "^11.0.0", + "ws": "^8.8.0", "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" }, "peerDependencies": { "canvas": "^2.5.0" @@ -11349,6 +11715,18 @@ } } }, + "node_modules/jsdom/node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/jsdom/node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -11363,24 +11741,37 @@ "node": ">= 6" } }, + "node_modules/jsdom/node_modules/parse5": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "dev": true, + "dependencies": { + "entities": "^4.3.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/jsdom/node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", "dev": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { "node": ">=6" } }, "node_modules/jsdom/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, "engines": { "node": ">= 4.0.0" @@ -14138,6 +14529,12 @@ "node": ">=0.6" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -14682,15 +15079,15 @@ "dev": true }, "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, "dependencies": { "xmlchars": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=v12.22.7" } }, "node_modules/schema-utils": { @@ -16373,6 +16770,16 @@ "punycode": "^2.1.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -16870,9 +17277,9 @@ } }, "node_modules/whatwg-url": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", - "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, "dependencies": { "tr46": "^3.0.0", @@ -20026,14 +20433,31 @@ } }, "@types/jsdom": { - "version": "16.2.15", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz", - "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.0.tgz", + "integrity": "sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==", "dev": true, "requires": { "@types/node": "*", - "@types/parse5": "^6.0.3", - "@types/tough-cookie": "*" + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + }, + "dependencies": { + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true + }, + "parse5": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "dev": true, + "requires": { + "entities": "^4.3.0" + } + } } }, "@types/json-schema": { @@ -22083,18 +22507,6 @@ "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", "whatwg-url": "^11.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - } } }, "date-fns": { @@ -22118,9 +22530,9 @@ } }, "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.0.tgz", + "integrity": "sha512-Nv6ENEzyPQ6AItkGwLE2PGKinZZ9g59vSh2BeH6NqPu0OTKZ5ruJsVqh/orbAnqXc9pBbgXAIrc2EyaCj8NpGg==", "dev": true }, "decode-uri-component": { @@ -24467,19 +24879,185 @@ } }, "jest-environment-jsdom": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.3.tgz", - "integrity": "sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==", + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.0.1.tgz", + "integrity": "sha512-rMF501kfui+bw4AmwowLA2bNaYb633A3ejFMN5pVU0AeOqLv2NbMAY5XzzlMr/+lM1itEf+3ZdCr9dGGrUfoxg==", "dev": true, "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/jsdom": "^16.2.4", + "@jest/environment": "^29.0.1", + "@jest/fake-timers": "^29.0.1", + "@jest/types": "^29.0.1", + "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3", - "jsdom": "^19.0.0" + "jest-mock": "^29.0.1", + "jest-util": "^29.0.1", + "jsdom": "^20.0.0" + }, + "dependencies": { + "@jest/environment": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.0.1.tgz", + "integrity": "sha512-iLcFfoq2K6DAB+Mc+2VNLzZVmHdwQFeSqvoM/X8SMON6s/+yEi1iuRX3snx/JfwSnvmiMXjSr0lktxNxOcqXYA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.0.1", + "@jest/types": "^29.0.1", + "@types/node": "*", + "jest-mock": "^29.0.1" + } + }, + "@jest/fake-timers": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.0.1.tgz", + "integrity": "sha512-XZ+kAhLChVQ+KJNa5034p7O1Mz3vtWrelxDcMoxhZkgqmWDaEQAW9qJeutaeCfPvwaEwKYVyKDYfWpcyT8RiMw==", + "dev": true, + "requires": { + "@jest/types": "^29.0.1", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^29.0.1", + "jest-mock": "^29.0.1", + "jest-util": "^29.0.1" + } + }, + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.0.1.tgz", + "integrity": "sha512-ft01rxzVsbh9qZPJ6EFgAIj3PT9FCRfBF9Xljo2/33VDOUjLZr0ZJ2oKANqh9S/K0/GERCsHDAQlBwj7RxA+9g==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-message-util": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.0.1.tgz", + "integrity": "sha512-wRMAQt3HrLpxSubdnzOo68QoTfQ+NLXFzU0Heb18ZUzO2S9GgaXNEdQ4rpd0fI9dq2NXkpCk1IUWSqzYKji64A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.0.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.0.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.0.1.tgz", + "integrity": "sha512-i1yTceg2GKJwUNZFjIzrH7Y74fN1SKJWxQX/Vu3LT4TiJerFARH5l+4URNyapZ+DNpchHYrGOP2deVbn3ma8JA==", + "dev": true, + "requires": { + "@jest/types": "^29.0.1", + "@types/node": "*" + } + }, + "jest-util": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.0.1.tgz", + "integrity": "sha512-GIWkgNfkeA9d84rORDHPGGTFBrRD13A38QVSKE0bVrGSnoR1KDn8Kqz+0yI5kezMgbT/7zrWaruWP1Kbghlb2A==", + "dev": true, + "requires": { + "@jest/types": "^29.0.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "pretty-format": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.0.1.tgz", + "integrity": "sha512-iTHy3QZMzuL484mSTYbQIM1AHhEQsH8mXWS2/vd2yFBYnG3EBqGiMONo28PlPgrW7P/8s/1ISv+y7WH306l8cw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-environment-node": { @@ -24698,6 +25276,118 @@ "jest-environment-jsdom": "^28.0.0", "pretty-format": "^28.0.0", "ts-jest": "^28.0.0" + }, + "dependencies": { + "@types/jsdom": { + "version": "16.2.15", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz", + "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/parse5": "^6.0.3", + "@types/tough-cookie": "*" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "jest-environment-jsdom": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.3.tgz", + "integrity": "sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/jsdom": "^16.2.4", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3", + "jsdom": "^19.0.0" + } + }, + "jsdom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", + "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.5.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" + } + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + } + }, + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true + }, + "whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + } } }, "jest-regex-util": { @@ -25383,28 +26073,28 @@ "optional": true }, "jsdom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", - "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.0.tgz", + "integrity": "sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==", "dev": true, "requires": { - "abab": "^2.0.5", - "acorn": "^8.5.0", + "abab": "^2.0.6", + "acorn": "^8.7.1", "acorn-globals": "^6.0.0", "cssom": "^0.5.0", "cssstyle": "^2.3.0", - "data-urls": "^3.0.1", + "data-urls": "^3.0.2", "decimal.js": "^10.3.1", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", "html-encoding-sniffer": "^3.0.0", "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", + "parse5": "^7.0.0", + "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.0.0", "w3c-hr-time": "^1.0.2", @@ -25412,11 +26102,17 @@ "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^10.0.0", - "ws": "^8.2.3", + "whatwg-url": "^11.0.0", + "ws": "^8.8.0", "xml-name-validator": "^4.0.0" }, "dependencies": { + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -25428,21 +26124,31 @@ "mime-types": "^2.1.12" } }, + "parse5": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "dev": true, + "requires": { + "entities": "^4.3.0" + } + }, "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", "dev": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" } }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true } } @@ -27389,6 +28095,12 @@ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "optional": true }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -27788,9 +28500,9 @@ "dev": true }, "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, "requires": { "xmlchars": "^2.2.0" @@ -29058,6 +29770,16 @@ "punycode": "^2.1.0" } }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -29424,9 +30146,9 @@ "dev": true }, "whatwg-url": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", - "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, "requires": { "tr46": "^3.0.0", diff --git a/src-ui/package.json b/src-ui/package.json index 1e89af3ed..20d4fa035 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -46,7 +46,7 @@ "codelyzer": "^6.0.2", "concurrently": "7.3.0", "jest": "28.1.3", - "jest-environment-jsdom": "^28.1.3", + "jest-environment-jsdom": "^29.0.1", "jest-preset-angular": "^12.2.0", "ts-node": "~10.9.1", "tslint": "~6.1.3", From 6796cdf947bcd7b35e28e1884d4a01a1ac2fe39b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Sep 2022 08:15:36 +0000 Subject: [PATCH 181/348] Bump @angular/cli from 14.1.0 to 14.2.1 in /src-ui Bumps [@angular/cli](https://github.com/angular/angular-cli) from 14.1.0 to 14.2.1. - [Release notes](https://github.com/angular/angular-cli/releases) - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular-cli/compare/14.1.0...14.2.1) --- updated-dependencies: - dependency-name: "@angular/cli" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- src-ui/package-lock.json | 567 +++++++++++++++++++++++++++------------ src-ui/package.json | 2 +- 2 files changed, 389 insertions(+), 180 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 2b52a5d6b..2cc624599 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -34,7 +34,7 @@ "devDependencies": { "@angular-builders/jest": "14.0.1", "@angular-devkit/build-angular": "~14.1.0", - "@angular/cli": "~14.1.0", + "@angular/cli": "~14.2.1", "@angular/compiler-cli": "~14.1.0", "@types/jest": "28.1.6", "@types/node": "^18.7.14", @@ -91,7 +91,7 @@ "version": "0.1401.0", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1401.0.tgz", "integrity": "sha512-dHgP2/5EXkJpdf6Y1QHQX2RP8xTli/CFZH3uNnTh+EuAib/kwu+Z6K3UttZWB5VGhAF1u/xf97Vly/UkXvjKAg==", - "devOptional": true, + "dev": true, "dependencies": { "@angular-devkit/core": "14.1.0", "rxjs": "6.6.7" @@ -106,7 +106,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "devOptional": true, + "dev": true, "dependencies": { "tslib": "^1.9.0" }, @@ -118,7 +118,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "devOptional": true + "dev": true }, "node_modules/@angular-devkit/build-angular": { "version": "14.1.0", @@ -287,7 +287,7 @@ "version": "14.1.0", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.1.0.tgz", "integrity": "sha512-Y2d/+nFmjjY4eatc3cwdDDAnpnhG3KTX2OVW7dXSUxW3eY5e3vdMlVUbFiKwvwAshlrJy85Y6RMvZSBN4VrpnA==", - "devOptional": true, + "dev": true, "dependencies": { "ajv": "8.11.0", "ajv-formats": "2.1.1", @@ -313,7 +313,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "devOptional": true, + "dev": true, "dependencies": { "tslib": "^1.9.0" }, @@ -325,15 +325,15 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "devOptional": true + "dev": true }, "node_modules/@angular-devkit/schematics": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.1.0.tgz", - "integrity": "sha512-5QC01k9eznuQSiqxijKhVkAEmA8sioYuLhBzyffaPszSySH8kPMNxhAc8zJhBTNLumbS6iDaGkSqTQl5Kv9fOw==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", "devOptional": true, "dependencies": { - "@angular-devkit/core": "14.1.0", + "@angular-devkit/core": "14.2.1", "jsonc-parser": "3.1.0", "magic-string": "0.26.2", "ora": "5.4.1", @@ -345,6 +345,32 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "devOptional": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -364,15 +390,15 @@ "devOptional": true }, "node_modules/@angular/cli": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.1.0.tgz", - "integrity": "sha512-W/t2PkGHu9r87po1ZXQRYU81VtjzNMuGsP5tmoW1pGuibK7Kj+25G+jrXK/WADTi+pjTMXHNXYn8PlMNAIrZ/w==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.1.tgz", + "integrity": "sha512-ab/kpK3wYQvDOdhwfk3cVSiLMyl9lEVrNiwvrTnPLdt3jwqkT5Gm28WFShnOuNCaKea3iHP7LIItoRxeIWQQ9A==", "devOptional": true, "dependencies": { - "@angular-devkit/architect": "0.1401.0", - "@angular-devkit/core": "14.1.0", - "@angular-devkit/schematics": "14.1.0", - "@schematics/angular": "14.1.0", + "@angular-devkit/architect": "0.1402.1", + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "@schematics/angular": "14.2.1", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "debug": "4.3.4", @@ -383,7 +409,7 @@ "npm-pick-manifest": "7.0.1", "open": "8.4.0", "ora": "5.4.1", - "pacote": "13.6.1", + "pacote": "13.6.2", "resolve": "1.22.1", "semver": "7.3.7", "symbol-observable": "4.0.0", @@ -399,6 +425,65 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.1402.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", + "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", + "devOptional": true, + "dependencies": { + "@angular-devkit/core": "14.2.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "devOptional": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "devOptional": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular/cli/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "devOptional": true + }, "node_modules/@angular/common": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.1.0.tgz", @@ -2721,40 +2806,6 @@ } } }, - "node_modules/@cypress/schematic/node_modules/@angular-devkit/schematics": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", - "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", - "optional": true, - "dependencies": { - "@angular-devkit/core": "14.2.1", - "jsonc-parser": "3.1.0", - "magic-string": "0.26.2", - "ora": "5.4.1", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@cypress/schematic/node_modules/@schematics/angular": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.1.tgz", - "integrity": "sha512-Dchixep/FMETAMuyFchw9Nryi7tfuZQRumzIOtQpv+KaVtfjvcIlES0KuI0U3Qh7tGIYPBmO3Mkt3oojcl2RBA==", - "optional": true, - "dependencies": { - "@angular-devkit/core": "14.2.1", - "@angular-devkit/schematics": "14.2.1", - "jsonc-parser": "3.1.0" - }, - "engines": { - "node": "^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, "node_modules/@cypress/schematic/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -3747,9 +3798,9 @@ } }, "node_modules/@npmcli/git": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.1.tgz", - "integrity": "sha512-UU85F/T+F1oVn3IsB/L6k9zXIMpXBuUBE25QDH0SsURwT6IOBqkC7M16uqo2vVZIyji3X1K4XH9luip7YekH1A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", + "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", "devOptional": true, "dependencies": { "@npmcli/promise-spawn": "^3.0.0", @@ -3817,9 +3868,9 @@ } }, "node_modules/@npmcli/run-script": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.0.tgz", - "integrity": "sha512-e/QgLg7j2wSJp1/7JRl0GC8c7PMX+uYlA/1Tb+IDOLdSM4T7K1VQ9mm9IGU3WRtY5vEIObpqCLb3aCNCug18DA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", + "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", "devOptional": true, "dependencies": { "@npmcli/node-gyp": "^2.0.0", @@ -3842,13 +3893,13 @@ } }, "node_modules/@schematics/angular": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.1.0.tgz", - "integrity": "sha512-lhqNZzA+iT3XwlwRU757mhYmd5WE9XB2OKFhosvvszou2zuNUJMDPR9P01ZVNCOa2fScOeCMg2q3ZDgGTBl96Q==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.1.tgz", + "integrity": "sha512-Dchixep/FMETAMuyFchw9Nryi7tfuZQRumzIOtQpv+KaVtfjvcIlES0KuI0U3Qh7tGIYPBmO3Mkt3oojcl2RBA==", "devOptional": true, "dependencies": { - "@angular-devkit/core": "14.1.0", - "@angular-devkit/schematics": "14.1.0", + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", "jsonc-parser": "3.1.0" }, "engines": { @@ -3857,6 +3908,50 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "devOptional": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@schematics/angular/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "devOptional": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@schematics/angular/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "devOptional": true + }, "node_modules/@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -8604,15 +8699,15 @@ "dev": true }, "node_modules/hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "devOptional": true, "dependencies": { "lru-cache": "^7.5.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/hpack.js": { @@ -12345,9 +12440,9 @@ "dev": true }, "node_modules/make-fetch-happen": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.0.tgz", - "integrity": "sha512-OnEfCLofQVJ5zgKwGk55GaqosqKjaR6khQlJY3dBAA+hM25Bc5CmX5rKUfVut+rYA3uidA7zb7AvcglU87rPRg==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "devOptional": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -12577,9 +12672,9 @@ } }, "node_modules/minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "devOptional": true, "dependencies": { "minipass": "^3.1.6", @@ -12952,9 +13047,9 @@ } }, "node_modules/normalize-package-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.0.tgz", - "integrity": "sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", "devOptional": true, "dependencies": { "hosted-git-info": "^5.0.0", @@ -12963,7 +13058,7 @@ "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/normalize-path": { @@ -13026,15 +13121,15 @@ } }, "node_modules/npm-packlist": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.1.tgz", - "integrity": "sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", + "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", "devOptional": true, "dependencies": { "glob": "^8.0.1", "ignore-walk": "^5.0.1", - "npm-bundled": "^1.1.2", - "npm-normalize-package-bin": "^1.0.1" + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" }, "bin": { "npm-packlist": "bin/index.js" @@ -13043,6 +13138,27 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/npm-packlist/node_modules/npm-bundled": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", + "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", + "devOptional": true, + "dependencies": { + "npm-normalize-package-bin": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "devOptional": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/npm-pick-manifest": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz", @@ -13059,9 +13175,9 @@ } }, "node_modules/npm-registry-fetch": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.0.tgz", - "integrity": "sha512-10LJQ/1+VhKrZjIuY9I/+gQTvumqqlgnsCufoXETHAPFTS3+M+Z5CFhZRDHGavmJ6rOye3UvNga88vl8n1r6gg==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", + "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", "devOptional": true, "dependencies": { "make-fetch-happen": "^10.0.6", @@ -13438,9 +13554,9 @@ } }, "node_modules/pacote": { - "version": "13.6.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.1.tgz", - "integrity": "sha512-L+2BI1ougAPsFjXRyBhcKmfT016NscRFLv6Pz5EiNf1CCFJFU0pSKKQwsZTyAQB+sTuUL4TyFyp6J1Ork3dOqw==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", + "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", "devOptional": true, "dependencies": { "@npmcli/git": "^3.0.0", @@ -14613,15 +14729,15 @@ } }, "node_modules/read-package-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.1.tgz", - "integrity": "sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", + "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", "devOptional": true, "dependencies": { "glob": "^8.0.1", "json-parse-even-better-errors": "^2.3.1", "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1" + "npm-normalize-package-bin": "^2.0.0" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -14640,6 +14756,15 @@ "node": ">=10" } }, + "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "devOptional": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -15651,9 +15776,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "devOptional": true }, "node_modules/spdy": { @@ -17541,7 +17666,7 @@ "version": "0.1401.0", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1401.0.tgz", "integrity": "sha512-dHgP2/5EXkJpdf6Y1QHQX2RP8xTli/CFZH3uNnTh+EuAib/kwu+Z6K3UttZWB5VGhAF1u/xf97Vly/UkXvjKAg==", - "devOptional": true, + "dev": true, "requires": { "@angular-devkit/core": "14.1.0", "rxjs": "6.6.7" @@ -17551,7 +17676,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "devOptional": true, + "dev": true, "requires": { "tslib": "^1.9.0" } @@ -17560,7 +17685,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "devOptional": true + "dev": true } } }, @@ -17685,7 +17810,7 @@ "version": "14.1.0", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.1.0.tgz", "integrity": "sha512-Y2d/+nFmjjY4eatc3cwdDDAnpnhG3KTX2OVW7dXSUxW3eY5e3vdMlVUbFiKwvwAshlrJy85Y6RMvZSBN4VrpnA==", - "devOptional": true, + "dev": true, "requires": { "ajv": "8.11.0", "ajv-formats": "2.1.1", @@ -17698,7 +17823,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "devOptional": true, + "dev": true, "requires": { "tslib": "^1.9.0" } @@ -17707,23 +17832,36 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "devOptional": true + "dev": true } } }, "@angular-devkit/schematics": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.1.0.tgz", - "integrity": "sha512-5QC01k9eznuQSiqxijKhVkAEmA8sioYuLhBzyffaPszSySH8kPMNxhAc8zJhBTNLumbS6iDaGkSqTQl5Kv9fOw==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", + "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", "devOptional": true, "requires": { - "@angular-devkit/core": "14.1.0", + "@angular-devkit/core": "14.2.1", "jsonc-parser": "3.1.0", "magic-string": "0.26.2", "ora": "5.4.1", "rxjs": "6.6.7" }, "dependencies": { + "@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "devOptional": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + } + }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -17742,15 +17880,15 @@ } }, "@angular/cli": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.1.0.tgz", - "integrity": "sha512-W/t2PkGHu9r87po1ZXQRYU81VtjzNMuGsP5tmoW1pGuibK7Kj+25G+jrXK/WADTi+pjTMXHNXYn8PlMNAIrZ/w==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.1.tgz", + "integrity": "sha512-ab/kpK3wYQvDOdhwfk3cVSiLMyl9lEVrNiwvrTnPLdt3jwqkT5Gm28WFShnOuNCaKea3iHP7LIItoRxeIWQQ9A==", "devOptional": true, "requires": { - "@angular-devkit/architect": "0.1401.0", - "@angular-devkit/core": "14.1.0", - "@angular-devkit/schematics": "14.1.0", - "@schematics/angular": "14.1.0", + "@angular-devkit/architect": "0.1402.1", + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", + "@schematics/angular": "14.2.1", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "debug": "4.3.4", @@ -17761,12 +17899,52 @@ "npm-pick-manifest": "7.0.1", "open": "8.4.0", "ora": "5.4.1", - "pacote": "13.6.1", + "pacote": "13.6.2", "resolve": "1.22.1", "semver": "7.3.7", "symbol-observable": "4.0.0", "uuid": "8.3.2", "yargs": "17.5.1" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.1402.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", + "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", + "devOptional": true, + "requires": { + "@angular-devkit/core": "14.2.1", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "devOptional": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "devOptional": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "devOptional": true + } } }, "@angular/common": { @@ -19318,30 +19496,6 @@ "source-map": "0.7.4" } }, - "@angular-devkit/schematics": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.2.1.tgz", - "integrity": "sha512-0U18FwDYt4zROBPrvewH6iBTkf2ozVHN4/gxUb9jWrqVw8mPU5AWc/iYxQLHBSinkr2Egjo1H/i9aBqgJSeh3g==", - "optional": true, - "requires": { - "@angular-devkit/core": "14.2.1", - "jsonc-parser": "3.1.0", - "magic-string": "0.26.2", - "ora": "5.4.1", - "rxjs": "6.6.7" - } - }, - "@schematics/angular": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.1.tgz", - "integrity": "sha512-Dchixep/FMETAMuyFchw9Nryi7tfuZQRumzIOtQpv+KaVtfjvcIlES0KuI0U3Qh7tGIYPBmO3Mkt3oojcl2RBA==", - "optional": true, - "requires": { - "@angular-devkit/core": "14.2.1", - "@angular-devkit/schematics": "14.2.1", - "jsonc-parser": "3.1.0" - } - }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -20097,9 +20251,9 @@ } }, "@npmcli/git": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.1.tgz", - "integrity": "sha512-UU85F/T+F1oVn3IsB/L6k9zXIMpXBuUBE25QDH0SsURwT6IOBqkC7M16uqo2vVZIyji3X1K4XH9luip7YekH1A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", + "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", "devOptional": true, "requires": { "@npmcli/promise-spawn": "^3.0.0", @@ -20149,9 +20303,9 @@ } }, "@npmcli/run-script": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.0.tgz", - "integrity": "sha512-e/QgLg7j2wSJp1/7JRl0GC8c7PMX+uYlA/1Tb+IDOLdSM4T7K1VQ9mm9IGU3WRtY5vEIObpqCLb3aCNCug18DA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", + "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", "devOptional": true, "requires": { "@npmcli/node-gyp": "^2.0.0", @@ -20167,14 +20321,44 @@ "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, "@schematics/angular": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.1.0.tgz", - "integrity": "sha512-lhqNZzA+iT3XwlwRU757mhYmd5WE9XB2OKFhosvvszou2zuNUJMDPR9P01ZVNCOa2fScOeCMg2q3ZDgGTBl96Q==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.2.1.tgz", + "integrity": "sha512-Dchixep/FMETAMuyFchw9Nryi7tfuZQRumzIOtQpv+KaVtfjvcIlES0KuI0U3Qh7tGIYPBmO3Mkt3oojcl2RBA==", "devOptional": true, "requires": { - "@angular-devkit/core": "14.1.0", - "@angular-devkit/schematics": "14.1.0", + "@angular-devkit/core": "14.2.1", + "@angular-devkit/schematics": "14.2.1", "jsonc-parser": "3.1.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "devOptional": true, + "requires": { + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.1.0", + "rxjs": "6.6.7", + "source-map": "0.7.4" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "devOptional": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "devOptional": true + } } }, "@sideway/address": { @@ -23778,9 +23962,9 @@ "dev": true }, "hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "devOptional": true, "requires": { "lru-cache": "^7.5.1" @@ -26566,9 +26750,9 @@ "dev": true }, "make-fetch-happen": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.0.tgz", - "integrity": "sha512-OnEfCLofQVJ5zgKwGk55GaqosqKjaR6khQlJY3dBAA+hM25Bc5CmX5rKUfVut+rYA3uidA7zb7AvcglU87rPRg==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "devOptional": true, "requires": { "agentkeepalive": "^4.2.1", @@ -26741,9 +26925,9 @@ } }, "minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "devOptional": true, "requires": { "encoding": "^0.1.13", @@ -27024,9 +27208,9 @@ } }, "normalize-package-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.0.tgz", - "integrity": "sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", "devOptional": true, "requires": { "hosted-git-info": "^5.0.0", @@ -27083,15 +27267,32 @@ } }, "npm-packlist": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.1.tgz", - "integrity": "sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", + "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", "devOptional": true, "requires": { "glob": "^8.0.1", "ignore-walk": "^5.0.1", - "npm-bundled": "^1.1.2", - "npm-normalize-package-bin": "^1.0.1" + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "dependencies": { + "npm-bundled": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", + "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", + "devOptional": true, + "requires": { + "npm-normalize-package-bin": "^2.0.0" + } + }, + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "devOptional": true + } } }, "npm-pick-manifest": { @@ -27107,9 +27308,9 @@ } }, "npm-registry-fetch": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.0.tgz", - "integrity": "sha512-10LJQ/1+VhKrZjIuY9I/+gQTvumqqlgnsCufoXETHAPFTS3+M+Z5CFhZRDHGavmJ6rOye3UvNga88vl8n1r6gg==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", + "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", "devOptional": true, "requires": { "make-fetch-happen": "^10.0.6", @@ -27387,9 +27588,9 @@ "dev": true }, "pacote": { - "version": "13.6.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.1.tgz", - "integrity": "sha512-L+2BI1ougAPsFjXRyBhcKmfT016NscRFLv6Pz5EiNf1CCFJFU0pSKKQwsZTyAQB+sTuUL4TyFyp6J1Ork3dOqw==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", + "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", "devOptional": true, "requires": { "@npmcli/git": "^3.0.0", @@ -28158,15 +28359,23 @@ } }, "read-package-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.1.tgz", - "integrity": "sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", + "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", "devOptional": true, "requires": { "glob": "^8.0.1", "json-parse-even-better-errors": "^2.3.1", "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1" + "npm-normalize-package-bin": "^2.0.0" + }, + "dependencies": { + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "devOptional": true + } } }, "read-package-json-fast": { @@ -28977,9 +29186,9 @@ } }, "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "devOptional": true }, "spdy": { diff --git a/src-ui/package.json b/src-ui/package.json index 20d4fa035..f1746be3f 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -39,7 +39,7 @@ "devDependencies": { "@angular-builders/jest": "14.0.1", "@angular-devkit/build-angular": "~14.1.0", - "@angular/cli": "~14.1.0", + "@angular/cli": "~14.2.1", "@angular/compiler-cli": "~14.1.0", "@types/jest": "28.1.6", "@types/node": "^18.7.14", From 60d40cc2ce2a8296ef5a8ba38c316b3acde5cc87 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 2 Sep 2022 01:21:41 -0700 Subject: [PATCH 182/348] update angular cli --- src-ui/package-lock.json | 2422 +++++++++++++++++++------------------- src-ui/package.json | 4 +- 2 files changed, 1211 insertions(+), 1215 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 2cc624599..774e6fdc4 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -16,7 +16,7 @@ "@angular/platform-browser": "~14.1.0", "@angular/platform-browser-dynamic": "~14.1.0", "@angular/router": "~14.1.0", - "@ng-bootstrap/ng-bootstrap": "^13.0.0-beta.1", + "@ng-bootstrap/ng-bootstrap": "^13.0.0", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", "@popperjs/core": "^2.11.6", @@ -33,7 +33,7 @@ }, "devDependencies": { "@angular-builders/jest": "14.0.1", - "@angular-devkit/build-angular": "~14.1.0", + "@angular-devkit/build-angular": "~14.2.1", "@angular/cli": "~14.2.1", "@angular/compiler-cli": "~14.1.0", "@types/jest": "28.1.6", @@ -53,6 +53,12 @@ "cypress": "~10.7.0" } }, + "node_modules/@adobe/css-tools": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==", + "dev": true + }, "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -87,13 +93,179 @@ "jest": ">=28" } }, - "node_modules/@angular-devkit/architect": { - "version": "0.1401.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1401.0.tgz", - "integrity": "sha512-dHgP2/5EXkJpdf6Y1QHQX2RP8xTli/CFZH3uNnTh+EuAib/kwu+Z6K3UttZWB5VGhAF1u/xf97Vly/UkXvjKAg==", + "node_modules/@angular-builders/jest/node_modules/@types/jsdom": { + "version": "16.2.15", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz", + "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "14.1.0", + "@types/node": "*", + "@types/parse5": "^6.0.3", + "@types/tough-cookie": "*" + } + }, + "node_modules/@angular-builders/jest/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@angular-builders/jest/node_modules/jest-environment-jsdom": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.3.tgz", + "integrity": "sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/jsdom": "^16.2.4", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3", + "jsdom": "^19.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@angular-builders/jest/node_modules/jest-preset-angular": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-12.2.0.tgz", + "integrity": "sha512-dXnPdcglVcJeXdnxrws3M/gxLlYWaZGU7JS+ffuiCfMzG0AO3EDo/wpsPsxvnjCZiov1uV7g7UD1dHtmOW/sEw==", + "dev": true, + "dependencies": { + "bs-logger": "^0.2.6", + "esbuild-wasm": ">=0.13.8", + "jest-environment-jsdom": "^28.0.0", + "pretty-format": "^28.0.0", + "ts-jest": "^28.0.0" + }, + "engines": { + "node": "^14.15.0 || >=16.10.0" + }, + "optionalDependencies": { + "esbuild": ">=0.13.8" + }, + "peerDependencies": { + "@angular-devkit/build-angular": ">=0.1102.19 <15.0.0", + "@angular/compiler-cli": ">=11.2.14 <15.0.0", + "@angular/core": ">=11.2.14 <15.0.0", + "@angular/platform-browser-dynamic": ">=11.2.14 <15.0.0", + "jest": "^28.0.0", + "typescript": ">=4.3" + } + }, + "node_modules/@angular-builders/jest/node_modules/jsdom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", + "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.5.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/@angular-builders/jest/node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-builders/jest/node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular-builders/jest/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@angular-builders/jest/node_modules/whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1402.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", + "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", + "devOptional": true, + "dependencies": { + "@angular-devkit/core": "14.2.1", "rxjs": "6.6.7" }, "engines": { @@ -106,7 +278,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, + "devOptional": true, "dependencies": { "tslib": "^1.9.0" }, @@ -118,38 +290,38 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "devOptional": true }, "node_modules/@angular-devkit/build-angular": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.1.0.tgz", - "integrity": "sha512-AtecSuDEPLYd3p7uFVKpoA0XNcq+NvVYFJK8h90BG+IRZtzEm7ZJeYdohXVeVfTO5GvpNFN1XoHxR5rxiXeBhg==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.1.tgz", + "integrity": "sha512-6FeIe2nsNH/fslZmTfbo+RCjLk3HuCQa5rb/SFf3w0mwzWCrhV0/SqnQ4+YYgkKrohmTX+q5JmJPwWnkqgdIgQ==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1401.0", - "@angular-devkit/build-webpack": "0.1401.0", - "@angular-devkit/core": "14.1.0", - "@babel/core": "7.18.6", - "@babel/generator": "7.18.7", + "@angular-devkit/architect": "0.1402.1", + "@angular-devkit/build-webpack": "0.1402.1", + "@angular-devkit/core": "14.2.1", + "@babel/core": "7.18.10", + "@babel/generator": "7.18.12", "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.18.6", + "@babel/plugin-proposal-async-generator-functions": "7.18.10", "@babel/plugin-transform-async-to-generator": "7.18.6", - "@babel/plugin-transform-runtime": "7.18.6", - "@babel/preset-env": "7.18.6", - "@babel/runtime": "7.18.6", - "@babel/template": "7.18.6", + "@babel/plugin-transform-runtime": "7.18.10", + "@babel/preset-env": "7.18.10", + "@babel/runtime": "7.18.9", + "@babel/template": "7.18.10", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "14.1.0", + "@ngtools/webpack": "14.2.1", "ansi-colors": "4.1.3", "babel-loader": "8.2.5", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.9.1", - "cacache": "16.1.1", + "cacache": "16.1.2", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", "css-loader": "6.7.1", - "esbuild-wasm": "0.14.49", + "esbuild-wasm": "0.15.5", "glob": "8.0.3", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", @@ -165,27 +337,27 @@ "ora": "5.4.1", "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.2.0", - "postcss": "8.4.14", + "postcss": "8.4.16", "postcss-import": "14.1.0", "postcss-loader": "7.0.1", - "postcss-preset-env": "7.7.2", + "postcss-preset-env": "7.8.0", "regenerator-runtime": "0.13.9", "resolve-url-loader": "5.0.0", "rxjs": "6.6.7", - "sass": "1.53.0", + "sass": "1.54.4", "sass-loader": "13.0.2", "semver": "7.3.7", "source-map-loader": "4.0.0", "source-map-support": "0.5.21", - "stylus": "0.58.1", + "stylus": "0.59.0", "stylus-loader": "7.0.0", "terser": "5.14.2", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.4.0", - "webpack": "5.73.0", + "webpack": "5.74.0", "webpack-dev-middleware": "5.3.3", - "webpack-dev-server": "4.9.3", + "webpack-dev-server": "4.10.0", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, @@ -195,7 +367,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.14.49" + "esbuild": "0.15.5" }, "peerDependencies": { "@angular/compiler-cli": "^14.0.0", @@ -205,7 +377,7 @@ "ng-packagr": "^14.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.6.2 <4.8" + "typescript": ">=4.6.2 <4.9" }, "peerDependenciesMeta": { "@angular/localize": { @@ -247,12 +419,12 @@ "dev": true }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1401.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1401.0.tgz", - "integrity": "sha512-jKfnHal09mVnEapmNrAHXL/00LfafmfEUtlOPzQMgGJL7MWCeMcFthsbcOnGuzUerbiiquRk/KmLTERYjH+ZrQ==", + "version": "0.1402.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.1.tgz", + "integrity": "sha512-S9WvNKrHVgOWNqGCytJNPBEMojB9j6cgl5XlUMEQ+4NV5geOlDNiZltQ/gbC1jz19OU5N+Ky374mPI5IeIBqZg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1401.0", + "@angular-devkit/architect": "0.1402.1", "rxjs": "6.6.7" }, "engines": { @@ -284,10 +456,10 @@ "dev": true }, "node_modules/@angular-devkit/core": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.1.0.tgz", - "integrity": "sha512-Y2d/+nFmjjY4eatc3cwdDDAnpnhG3KTX2OVW7dXSUxW3eY5e3vdMlVUbFiKwvwAshlrJy85Y6RMvZSBN4VrpnA==", - "dev": true, + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "devOptional": true, "dependencies": { "ajv": "8.11.0", "ajv-formats": "2.1.1", @@ -313,7 +485,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, + "devOptional": true, "dependencies": { "tslib": "^1.9.0" }, @@ -325,7 +497,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "devOptional": true }, "node_modules/@angular-devkit/schematics": { "version": "14.2.1", @@ -345,32 +517,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", - "devOptional": true, - "dependencies": { - "ajv": "8.11.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.1.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "engines": { - "node": "^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -425,69 +571,10 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1402.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", - "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", - "devOptional": true, - "dependencies": { - "@angular-devkit/core": "14.2.1", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", - "devOptional": true, - "dependencies": { - "ajv": "8.11.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.1.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "engines": { - "node": "^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular/cli/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "devOptional": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular/cli/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "devOptional": true - }, "node_modules/@angular/common": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.1.0.tgz", - "integrity": "sha512-leethDtLbA3qySaOEBUto602DF0qH1maK9u2zHncrUFOpnHAYUEd7N9MFMdIYASurTnwOSglEoIDCML94qzImQ==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.1.3.tgz", + "integrity": "sha512-t5zidNLcQrgrShBFFsEhvJ6yKw5jwv/Td/AQrknQzrAz3kVBH4dOZGC5jolasFipy/P1DNoG2K+igPCGeskc4w==", "dependencies": { "tslib": "^2.3.0" }, @@ -495,14 +582,14 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "14.1.0", + "@angular/core": "14.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.1.0.tgz", - "integrity": "sha512-aLbtpFDF3fp/DOEsWSdpszmoNZAb0To/zoKhHVmEReuUKkMtlPNd3+e6wkR2vrvR/cWgbKwdb7RQ1IQtGDu74A==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.1.3.tgz", + "integrity": "sha512-QtBHzhGzym8CwGrZLFYsciaLq/F4lxUxNOBDQdrc5Pd/qYiaJ50rrWfmXpqrFR6CC0E0bgzIj0Uxdf+D/VRmWQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -510,7 +597,7 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "14.1.0" + "@angular/core": "14.1.3" }, "peerDependenciesMeta": { "@angular/core": { @@ -519,9 +606,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.1.0.tgz", - "integrity": "sha512-llJkDnv0+riTdRPdOJv/FToz4X9ZO1URnalW+tIe2RyfOzkEqM+VLD/x+3cVgnsaFKuoPxIjZEkMoppGwVB4kg==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.1.3.tgz", + "integrity": "sha512-GJqUfIKuM7bYeR699ceRSa6LT90vEi2q+s+YIwRrlXSFto7xNCmn5bJsYV6XmslvPPTqiLR5w9K8MNC9qYBbxw==", "dependencies": { "@babel/core": "^7.17.2", "chokidar": "^3.0.0", @@ -543,14 +630,14 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/compiler": "14.1.0", + "@angular/compiler": "14.1.3", "typescript": ">=4.6.2 <4.8" } }, "node_modules/@angular/core": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.1.0.tgz", - "integrity": "sha512-3quEsHmQifJOQ2oij5K+cjGjmhsKsyZI1+OTHWNZ6IXeuYviZv4U/Cui9fUJ1RN3CZxH3NzWB3gB/5qYFQfOgg==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.1.3.tgz", + "integrity": "sha512-V3OJD4cShjLzyJAWQ1ogSW0WhKJwti5zsoT1SQ2RoA5UScBPzZN/F/0n/4IupHeaIC+NfaLX916xKTGWA8G8SQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -563,9 +650,9 @@ } }, "node_modules/@angular/forms": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.1.0.tgz", - "integrity": "sha512-y7VQ2t+/ASEjzt8zXg4y5b03lMSPHmnhy4XzjDT14ZFrALaSxyhkSqoBfAksPkTeKmsFMnP/VgLboRsE8TLs0Q==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.1.3.tgz", + "integrity": "sha512-gCN3my9KRp6BLlBGh4uw8NukUPKCl+quroMO2lkvsodF0MA42uhKHO+EImrpLxNMK7lfENIERwthb4mh4G4cFQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -573,16 +660,16 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.1.0", - "@angular/core": "14.1.0", - "@angular/platform-browser": "14.1.0", + "@angular/common": "14.1.3", + "@angular/core": "14.1.3", + "@angular/platform-browser": "14.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/localize": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.1.0.tgz", - "integrity": "sha512-kGiSLDhYCCYyHgXFjy6P9VCCD9dI/IqM0V6Vn/cCL+ZCVUz6pcsGtnhfU6bycMYwyv72py51hMYKMEVR+nfIhQ==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.1.3.tgz", + "integrity": "sha512-u6llXXTm7WAPAjg2jbqgKMHkquVP0dT9LI92hc91gX8HSbojSNYK2Hsx6QJ2VWOpjXxfc13W5IMhp2G6u29urw==", "dependencies": { "@babel/core": "7.18.9", "glob": "8.0.3", @@ -597,8 +684,8 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/compiler": "14.1.0", - "@angular/compiler-cli": "14.1.0" + "@angular/compiler": "14.1.3", + "@angular/compiler-cli": "14.1.3" } }, "node_modules/@angular/localize/node_modules/@babel/core": { @@ -631,11 +718,11 @@ } }, "node_modules/@angular/localize/node_modules/@babel/generator": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", - "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", + "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", "dependencies": { - "@babel/types": "^7.18.10", + "@babel/types": "^7.18.13", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -665,9 +752,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.1.0.tgz", - "integrity": "sha512-axNXUSqxsP0QSdNskd1pFo2uMo1UNoFaSAB02eDWwLkWQ1pWel+T78HiQY2bNeI3elgzjwPTT4vCCDQKNVTNig==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.1.3.tgz", + "integrity": "sha512-baEHBj2pCrz5XR9KCb2FaAChWsRrxl9yapDZFNpApucN/OlQpBDVA9UDDvaYeD3PsI8nVL3B6danKUloamd+pw==", "dependencies": { "tslib": "^2.3.0" }, @@ -675,9 +762,9 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/animations": "14.1.0", - "@angular/common": "14.1.0", - "@angular/core": "14.1.0" + "@angular/animations": "14.1.3", + "@angular/common": "14.1.3", + "@angular/core": "14.1.3" }, "peerDependenciesMeta": { "@angular/animations": { @@ -686,9 +773,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.1.0.tgz", - "integrity": "sha512-0Lxz3HJ9qTOyMTp5Qud2tycP7wqe+tnHOSUqDywrbNRozTKGX0z3i+l0KMku3BtUbuMi3tJomqV914/dtbCvIw==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.1.3.tgz", + "integrity": "sha512-WOWMgXUe8dEXt33jCP8/d8O5NQJKyr+4Dq2sjJ7y1ouCOjJsc9Ybi3y5uMyDCwb6SausGWLJ6w7DweMDWMlsYA==", "dependencies": { "tslib": "^2.3.0" }, @@ -696,16 +783,16 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.1.0", - "@angular/compiler": "14.1.0", - "@angular/core": "14.1.0", - "@angular/platform-browser": "14.1.0" + "@angular/common": "14.1.3", + "@angular/compiler": "14.1.3", + "@angular/core": "14.1.3", + "@angular/platform-browser": "14.1.3" } }, "node_modules/@angular/router": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.1.0.tgz", - "integrity": "sha512-WBC1E+d9RS8vy57zJ6LVtWT3AM12mEHY7SCMBRJNBcrmBYJwojxeV8IVkUoW4Ds910gG/w3LjIN0eNHg5qRtNA==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.1.3.tgz", + "integrity": "sha512-LjWQBaeaGkgFy814booGmQV2eELDynzACGAZUwrpWmdHKo9p9GCi9dYttYXspNDmxoipXAzYvVPSABlMfhuQ+g==", "dependencies": { "tslib": "^2.3.0" }, @@ -713,9 +800,9 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.1.0", - "@angular/core": "14.1.0", - "@angular/platform-browser": "14.1.0", + "@angular/common": "14.1.3", + "@angular/core": "14.1.3", + "@angular/platform-browser": "14.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -737,28 +824,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", + "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -782,11 +869,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", "dependencies": { - "@babel/types": "^7.18.7", + "@babel/types": "^7.18.10", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -858,9 +945,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", - "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz", + "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -1118,28 +1205,14 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz", - "integrity": "sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ==", + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", + "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.18.9", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", + "@babel/traverse": "^7.18.11", "@babel/types": "^7.18.10" }, "engines": { @@ -1173,9 +1246,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", - "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", + "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1216,14 +1289,14 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", - "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -1795,9 +1868,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", + "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" @@ -2097,16 +2170,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.6.tgz", - "integrity": "sha512-8uRHk9ZmRSnWqUgyae249EJZ94b0yAGLBIqzZzl+0iEdbno55Pmlt/32JZsHwXD9k/uZj18Aqqk35wBX4CBTXA==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz", + "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", + "@babel/helper-plugin-utils": "^7.18.9", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "semver": "^6.3.0" }, "engines": { @@ -2233,29 +2306,29 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", - "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-async-generator-functions": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.18.6", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", @@ -2277,40 +2350,40 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.6", - "@babel/plugin-transform-classes": "^7.18.6", - "@babel/plugin-transform-computed-properties": "^7.18.6", - "@babel/plugin-transform-destructuring": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.6", - "@babel/plugin-transform-function-name": "^7.18.6", - "@babel/plugin-transform-literals": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.6", - "@babel/plugin-transform-typeof-symbol": "^7.18.6", - "@babel/plugin-transform-unicode-escapes": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "core-js-compat": "^3.22.1", "semver": "^6.3.0" }, @@ -2347,9 +2420,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" @@ -2359,31 +2432,31 @@ } }, "node_modules/@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", - "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.13.tgz", + "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", + "@babel/generator": "^7.18.13", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.18.9", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10", + "@babel/parser": "^7.18.13", + "@babel/types": "^7.18.13", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2392,11 +2465,11 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", - "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", + "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", "dependencies": { - "@babel/types": "^7.18.10", + "@babel/types": "^7.18.13", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -2418,9 +2491,9 @@ } }, "node_modules/@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.13.tgz", + "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", "dependencies": { "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", @@ -2585,6 +2658,25 @@ "postcss": "^8.2" } }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, "node_modules/@csstools/postcss-normalize-display-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", @@ -2658,6 +2750,25 @@ "postcss": "^8.2" } }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, "node_modules/@csstools/postcss-trigonometric-functions": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", @@ -2765,47 +2876,6 @@ "@angular/core": ">=12" } }, - "node_modules/@cypress/schematic/node_modules/@angular-devkit/architect": { - "version": "0.1402.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", - "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", - "optional": true, - "dependencies": { - "@angular-devkit/core": "14.2.1", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@cypress/schematic/node_modules/@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", - "optional": true, - "dependencies": { - "ajv": "8.11.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.1.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "engines": { - "node": "^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@cypress/schematic/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -2852,6 +2922,22 @@ "node": ">=10.0.0" } }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", + "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -3672,9 +3758,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -3734,9 +3820,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.1.0.tgz", - "integrity": "sha512-d4U6ymDCXckVgfjYEv1Wjzd78ZSm0NKgq8mN6FdlrCupg02LPIODjeKyNr4c4zwMAOJeHkVNEZ+USoDEK3XSsw==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.1.tgz", + "integrity": "sha512-9tsfx2ZQscnpszVkdoJIIxZZDwitgmbPNrsQmyfHhwqPeJ8UUnAk6RNTfHjtX31VCmIM+qdGJsX7vDR9ye3/uA==", "dev": true, "engines": { "node": "^14.15.0 || >=16.10.0", @@ -3745,7 +3831,7 @@ }, "peerDependencies": { "@angular/compiler-cli": "^14.0.0", - "typescript": ">=4.6.2 <4.8", + "typescript": ">=4.6.2 <4.9", "webpack": "^5.54.0" } }, @@ -3785,9 +3871,9 @@ } }, "node_modules/@npmcli/fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.1.tgz", - "integrity": "sha512-1Q0uzx6c/NVNGszePbr5Gc2riSU1zLpNlo/1YWntH+eaPmMgBssAW0qXofCVkpdj3ce4swZtlDYQu+NKiYcptg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "devOptional": true, "dependencies": { "@gar/promisify": "^1.1.3", @@ -3834,9 +3920,9 @@ } }, "node_modules/@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "devOptional": true, "dependencies": { "mkdirp": "^1.0.4", @@ -3908,50 +3994,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", - "devOptional": true, - "dependencies": { - "ajv": "8.11.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.1.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - }, - "engines": { - "node": "^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@schematics/angular/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "devOptional": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@schematics/angular/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "devOptional": true - }, "node_modules/@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -3974,9 +4016,9 @@ "dev": true }, "node_modules/@sinclair/typebox": { - "version": "0.24.25", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.25.tgz", - "integrity": "sha512-Z0b1gkfeHzRQen7juqXIZ4P2nvI6vZV+m/PhxBlVsNH/jSg2FuqJ+x4haFFIbbct6LMA7m6x2sBob/Giecj09A==", + "version": "0.24.34", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.34.tgz", + "integrity": "sha512-x3ejWKw7rpy30Bvm6U0AQMOHdjqe2E3YJrBHlTxH0KFsp77bBa+MH324nJxtXZFpnTy/JW2h5HPYVm0vG2WPnw==", "dev": true }, "node_modules/@sinonjs/commons": { @@ -4063,9 +4105,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.1.tgz", + "integrity": "sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==", "dev": true, "dependencies": { "@babel/types": "^7.3.0" @@ -4110,9 +4152,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", "dev": true, "dependencies": { "@types/estree": "*", @@ -4252,9 +4294,9 @@ "dev": true }, "node_modules/@types/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-fccbsHKqFDXClBZTDLA43zl0+TbxyIwyzIzwwhvoJvhNjOErCdeX2xJbURimv2EbSVUGav001PaCJg4mZxMl4w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", "dev": true }, "node_modules/@types/node": { @@ -4276,9 +4318,9 @@ "dev": true }, "node_modules/@types/prettier": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.4.tgz", - "integrity": "sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", + "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", "dev": true }, "node_modules/@types/qs": { @@ -4361,9 +4403,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", - "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "version": "17.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.12.tgz", + "integrity": "sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -4804,9 +4846,9 @@ } }, "node_modules/app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", + "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", "dev": true, "engines": { "node": ">= 6.0.0" @@ -4942,18 +4984,6 @@ "node": ">= 4.0.0" } }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/autoprefixer": { "version": "10.4.8", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz", @@ -5230,12 +5260,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", + "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -5433,9 +5463,9 @@ } }, "node_modules/bonjour-service": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", - "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", @@ -5608,9 +5638,9 @@ } }, "node_modules/cacache": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.1.tgz", - "integrity": "sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg==", + "version": "16.1.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.2.tgz", + "integrity": "sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA==", "devOptional": true, "dependencies": { "@npmcli/fs": "^2.1.0", @@ -5677,9 +5707,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "version": "1.0.30001388", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001388.tgz", + "integrity": "sha512-znVbq4OUjqgLxMxoNX2ZeeLR0d7lcDiE5uJ4eUiWdml1J1EkxbnQq6opT9jb9SMfJxB0XA16/ziHwni4u1I3GQ==", "funding": [ { "type": "opencollective", @@ -6359,9 +6389,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz", + "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==", "dev": true, "dependencies": { "browserslist": "^4.21.3", @@ -6507,17 +6537,6 @@ "node": ">= 8" } }, - "node_modules/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, "node_modules/css-blank-pseudo": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", @@ -6633,15 +6652,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cssauron": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", @@ -6652,9 +6662,9 @@ } }, "node_modules/cssdb": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.3.tgz", - "integrity": "sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.1.tgz", + "integrity": "sha512-pT3nzyGM78poCKLAEy2zWIVX2hikq6dIrjuZzLV98MumBg+xMTNYfHx7paUlfiRTgg91O/vR889CIf+qiv79Rw==", "dev": true, "funding": { "type": "opencollective", @@ -6755,9 +6765,9 @@ } }, "node_modules/cypress/node_modules/@types/node": { - "version": "14.18.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.23.tgz", - "integrity": "sha512-MhbCWN18R4GhO8ewQWAFK4TGQdBpXWByukz7cWyJmXhvRuCIaM/oWytGPqVmDzgEnnaIc9ss6HbU5mUi+vyZPA==", + "version": "14.18.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.26.tgz", + "integrity": "sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA==", "optional": true }, "node_modules/cypress/node_modules/ansi-styles": { @@ -6887,9 +6897,9 @@ } }, "node_modules/date-fns": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.1.tgz", - "integrity": "sha512-dlLD5rKaKxpFdnjrs+5azHDFOPEu4ANy/LTh04A1DTzMM7qoajmKCBc8pkKRFT41CNzw+4gQh79X5C+Jq27HAw==", + "version": "2.29.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.2.tgz", + "integrity": "sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA==", "dev": true, "engines": { "node": ">=0.11" @@ -6900,9 +6910,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.4", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.4.tgz", - "integrity": "sha512-Zj/lPM5hOvQ1Bf7uAvewDaUcsJoI6JmNqmHhHl3nyumwe0XHwt8sWdOVAPACJzCebL8gQCi+K49w7iKWnGwX9g==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==", "optional": true }, "node_modules/debug": { @@ -6927,15 +6937,6 @@ "integrity": "sha512-Nv6ENEzyPQ6AItkGwLE2PGKinZZ9g59vSh2BeH6NqPu0OTKZ5ruJsVqh/orbAnqXc9pBbgXAIrc2EyaCj8NpGg==", "dev": true }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -7241,9 +7242,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.206", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", - "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==" + "version": "1.4.240", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.240.tgz", + "integrity": "sha512-r20dUOtZ4vUPTqAajDGonIM1uas5tf85Up+wPdtNBNvBSqGCfkpvMVvQ1T8YJzPV9/Y9g3FbUDcXb94Rafycow==" }, "node_modules/emittery": { "version": "0.10.2", @@ -7388,9 +7389,9 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.49.tgz", - "integrity": "sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", + "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", "dev": true, "hasInstallScript": true, "optional": true, @@ -7401,32 +7402,33 @@ "node": ">=12" }, "optionalDependencies": { - "esbuild-android-64": "0.14.49", - "esbuild-android-arm64": "0.14.49", - "esbuild-darwin-64": "0.14.49", - "esbuild-darwin-arm64": "0.14.49", - "esbuild-freebsd-64": "0.14.49", - "esbuild-freebsd-arm64": "0.14.49", - "esbuild-linux-32": "0.14.49", - "esbuild-linux-64": "0.14.49", - "esbuild-linux-arm": "0.14.49", - "esbuild-linux-arm64": "0.14.49", - "esbuild-linux-mips64le": "0.14.49", - "esbuild-linux-ppc64le": "0.14.49", - "esbuild-linux-riscv64": "0.14.49", - "esbuild-linux-s390x": "0.14.49", - "esbuild-netbsd-64": "0.14.49", - "esbuild-openbsd-64": "0.14.49", - "esbuild-sunos-64": "0.14.49", - "esbuild-windows-32": "0.14.49", - "esbuild-windows-64": "0.14.49", - "esbuild-windows-arm64": "0.14.49" + "@esbuild/linux-loong64": "0.15.5", + "esbuild-android-64": "0.15.5", + "esbuild-android-arm64": "0.15.5", + "esbuild-darwin-64": "0.15.5", + "esbuild-darwin-arm64": "0.15.5", + "esbuild-freebsd-64": "0.15.5", + "esbuild-freebsd-arm64": "0.15.5", + "esbuild-linux-32": "0.15.5", + "esbuild-linux-64": "0.15.5", + "esbuild-linux-arm": "0.15.5", + "esbuild-linux-arm64": "0.15.5", + "esbuild-linux-mips64le": "0.15.5", + "esbuild-linux-ppc64le": "0.15.5", + "esbuild-linux-riscv64": "0.15.5", + "esbuild-linux-s390x": "0.15.5", + "esbuild-netbsd-64": "0.15.5", + "esbuild-openbsd-64": "0.15.5", + "esbuild-sunos-64": "0.15.5", + "esbuild-windows-32": "0.15.5", + "esbuild-windows-64": "0.15.5", + "esbuild-windows-arm64": "0.15.5" } }, "node_modules/esbuild-android-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.49.tgz", - "integrity": "sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", + "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", "cpu": [ "x64" ], @@ -7440,9 +7442,9 @@ } }, "node_modules/esbuild-android-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.49.tgz", - "integrity": "sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", + "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", "cpu": [ "arm64" ], @@ -7456,9 +7458,9 @@ } }, "node_modules/esbuild-darwin-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.49.tgz", - "integrity": "sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", + "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", "cpu": [ "x64" ], @@ -7472,9 +7474,9 @@ } }, "node_modules/esbuild-darwin-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.49.tgz", - "integrity": "sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", + "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", "cpu": [ "arm64" ], @@ -7488,9 +7490,9 @@ } }, "node_modules/esbuild-freebsd-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.49.tgz", - "integrity": "sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", + "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", "cpu": [ "x64" ], @@ -7504,9 +7506,9 @@ } }, "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.49.tgz", - "integrity": "sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", + "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", "cpu": [ "arm64" ], @@ -7520,9 +7522,9 @@ } }, "node_modules/esbuild-linux-32": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.49.tgz", - "integrity": "sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", + "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", "cpu": [ "ia32" ], @@ -7536,9 +7538,9 @@ } }, "node_modules/esbuild-linux-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.49.tgz", - "integrity": "sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", + "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", "cpu": [ "x64" ], @@ -7552,9 +7554,9 @@ } }, "node_modules/esbuild-linux-arm": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.49.tgz", - "integrity": "sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", + "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", "cpu": [ "arm" ], @@ -7568,9 +7570,9 @@ } }, "node_modules/esbuild-linux-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.49.tgz", - "integrity": "sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", + "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", "cpu": [ "arm64" ], @@ -7584,9 +7586,9 @@ } }, "node_modules/esbuild-linux-mips64le": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.49.tgz", - "integrity": "sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", + "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", "cpu": [ "mips64el" ], @@ -7600,9 +7602,9 @@ } }, "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.49.tgz", - "integrity": "sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", + "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", "cpu": [ "ppc64" ], @@ -7616,9 +7618,9 @@ } }, "node_modules/esbuild-linux-riscv64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.49.tgz", - "integrity": "sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", + "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", "cpu": [ "riscv64" ], @@ -7632,9 +7634,9 @@ } }, "node_modules/esbuild-linux-s390x": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.49.tgz", - "integrity": "sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", + "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", "cpu": [ "s390x" ], @@ -7648,9 +7650,9 @@ } }, "node_modules/esbuild-netbsd-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.49.tgz", - "integrity": "sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", + "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", "cpu": [ "x64" ], @@ -7664,9 +7666,9 @@ } }, "node_modules/esbuild-openbsd-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.49.tgz", - "integrity": "sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", + "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", "cpu": [ "x64" ], @@ -7680,9 +7682,9 @@ } }, "node_modules/esbuild-sunos-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.49.tgz", - "integrity": "sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", + "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", "cpu": [ "x64" ], @@ -7696,9 +7698,9 @@ } }, "node_modules/esbuild-wasm": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.49.tgz", - "integrity": "sha512-5ddzZv8M3WI1fWZ5rEfK5cSA9swlWJcceKgqjKLLERC7FnlNW50kF7hxhpkyC0Z/4w7Xeyt3yUJ9QWNMDXLk2Q==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.5.tgz", + "integrity": "sha512-lTJOEKekN/4JI/eOEq0wLcx53co2N6vaT/XjBz46D1tvIVoUEyM0o2K6txW6gEotf31szFD/J1PbxmnbkGlK9A==", "dev": true, "bin": { "esbuild": "bin/esbuild" @@ -7708,9 +7710,9 @@ } }, "node_modules/esbuild-windows-32": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.49.tgz", - "integrity": "sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", + "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", "cpu": [ "ia32" ], @@ -7724,9 +7726,9 @@ } }, "node_modules/esbuild-windows-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.49.tgz", - "integrity": "sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", + "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", "cpu": [ "x64" ], @@ -7740,9 +7742,9 @@ } }, "node_modules/esbuild-windows-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.49.tgz", - "integrity": "sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", + "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", "cpu": [ "arm64" ], @@ -9226,9 +9228,9 @@ } }, "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "devOptional": true, "dependencies": { "has": "^1.0.3" @@ -10705,9 +10707,9 @@ } }, "node_modules/jest-preset-angular": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-12.2.0.tgz", - "integrity": "sha512-dXnPdcglVcJeXdnxrws3M/gxLlYWaZGU7JS+ffuiCfMzG0AO3EDo/wpsPsxvnjCZiov1uV7g7UD1dHtmOW/sEw==", + "version": "12.2.2", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-12.2.2.tgz", + "integrity": "sha512-aj5ZwVW6cGGzZKUn6e/jDwFgQh6FHy1zCCXWOeqFCuM3WODrbdUJ93zKrex18e9K1+PvOcP0e20yKbj3gwhfFg==", "dev": true, "dependencies": { "bs-logger": "^0.2.6", @@ -12390,9 +12392,9 @@ } }, "node_modules/lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", "devOptional": true, "engines": { "node": ">=12" @@ -13256,14 +13258,14 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -13814,9 +13816,9 @@ } }, "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", "dev": true, "funding": [ { @@ -14351,57 +14353,59 @@ } }, "node_modules/postcss-preset-env": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.7.2.tgz", - "integrity": "sha512-1q0ih7EDsZmCb/FMDRvosna7Gsbdx8CvYO5hYT120hcp2ZAuOHpSzibujZ4JpIUcAC02PG6b+eftxqjTFh5BNA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.0.tgz", + "integrity": "sha512-leqiqLOellpLKfbHkD06E04P6d9ZQ24mat6hu4NSqun7WG0UhspHR5Myiv/510qouCjoo4+YJtNOqg5xHaFnCA==", "dev": true, "dependencies": { - "@csstools/postcss-cascade-layers": "^1.0.4", - "@csstools/postcss-color-function": "^1.1.0", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.1", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.6", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.1.0", + "@csstools/postcss-cascade-layers": "^1.0.5", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "@csstools/postcss-stepped-value-functions": "^1.0.0", - "@csstools/postcss-trigonometric-functions": "^1.0.1", - "@csstools/postcss-unset-value": "^1.0.1", - "autoprefixer": "^10.4.7", - "browserslist": "^4.21.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.8", + "browserslist": "^4.21.3", "css-blank-pseudo": "^3.0.3", "css-has-pseudo": "^3.0.4", "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.6.3", - "postcss-attribute-case-insensitive": "^5.0.1", + "cssdb": "^7.0.0", + "postcss-attribute-case-insensitive": "^5.0.2", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.3", + "postcss-color-functional-notation": "^4.2.4", "postcss-color-hex-alpha": "^8.0.4", - "postcss-color-rebeccapurple": "^7.1.0", + "postcss-color-rebeccapurple": "^7.1.1", "postcss-custom-media": "^8.0.2", "postcss-custom-properties": "^12.1.8", "postcss-custom-selectors": "^6.0.3", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.1", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", "postcss-env-function": "^4.0.6", "postcss-focus-visible": "^6.0.4", "postcss-focus-within": "^5.0.4", "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.2.0", + "postcss-lab-function": "^4.2.1", "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.9", + "postcss-nesting": "^10.1.10", "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", + "postcss-overflow-shorthand": "^3.0.4", "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.5", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^6.0.0", + "postcss-selector-not": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -15143,9 +15147,9 @@ "devOptional": true }, "node_modules/sass": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", - "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "version": "1.54.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz", + "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -15708,17 +15712,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -15981,12 +15974,12 @@ } }, "node_modules/stylus": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.58.1.tgz", - "integrity": "sha512-AYiCHm5ogczdCPMfe9aeQa4NklB2gcf4D/IhzYPddJjTgPc+k4D/EVE0yfQbZD43MHP3lPy+8NZ9fcFxkrgs/w==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", + "integrity": "sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==", "dev": true, "dependencies": { - "css": "^3.0.0", + "@adobe/css-tools": "^4.0.1", "debug": "^4.3.2", "glob": "^7.1.6", "sax": "~1.2.4", @@ -15997,6 +15990,9 @@ }, "engines": { "node": "*" + }, + "funding": { + "url": "https://opencollective.com/stylus" } }, "node_modules/stylus-loader": { @@ -16196,16 +16192,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.7", + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" + "terser": "^5.14.1" }, "engines": { "node": ">= 10.13.0" @@ -16477,9 +16473,9 @@ } }, "node_modules/ts-jest": { - "version": "28.0.7", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.7.tgz", - "integrity": "sha512-wWXCSmTwBVmdvWrOpYhal79bDpioDy4rTT+0vyUnE3ZzM7LOAAGG9NXwzkEL/a516rQEgnMmS/WKP9jBPCVJyA==", + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", "dev": true, "dependencies": { "bs-logger": "0.x", @@ -16862,9 +16858,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.6.tgz", + "integrity": "sha512-We7BqM9XFlcW94Op93uW8+2LXvGezs7QA0WY+f1H7RR1q46B06W6hZF6LbmOlpCS1HU22q/6NOGTGW5sCm7NJQ==", "funding": [ { "type": "opencollective", @@ -17091,9 +17087,9 @@ } }, "node_modules/webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -17101,11 +17097,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -17118,7 +17114,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { @@ -17180,9 +17176,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz", - "integrity": "sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz", + "integrity": "sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -17505,16 +17501,16 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/ws": { @@ -17593,9 +17589,9 @@ } }, "node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "engines": { "node": ">=12" } @@ -17641,6 +17637,12 @@ } }, "dependencies": { + "@adobe/css-tools": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==", + "dev": true + }, "@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -17660,15 +17662,141 @@ "@angular-devkit/core": "^14.0.0", "jest-preset-angular": "12.2.0", "lodash": "^4.17.15" + }, + "dependencies": { + "@types/jsdom": { + "version": "16.2.15", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.15.tgz", + "integrity": "sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/parse5": "^6.0.3", + "@types/tough-cookie": "*" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "jest-environment-jsdom": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-28.1.3.tgz", + "integrity": "sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==", + "dev": true, + "requires": { + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/jsdom": "^16.2.4", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3", + "jsdom": "^19.0.0" + } + }, + "jest-preset-angular": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-12.2.0.tgz", + "integrity": "sha512-dXnPdcglVcJeXdnxrws3M/gxLlYWaZGU7JS+ffuiCfMzG0AO3EDo/wpsPsxvnjCZiov1uV7g7UD1dHtmOW/sEw==", + "dev": true, + "requires": { + "bs-logger": "^0.2.6", + "esbuild": ">=0.13.8", + "esbuild-wasm": ">=0.13.8", + "jest-environment-jsdom": "^28.0.0", + "pretty-format": "^28.0.0", + "ts-jest": "^28.0.0" + } + }, + "jsdom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", + "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.5.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.1", + "decimal.js": "^10.3.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^10.0.0", + "ws": "^8.2.3", + "xml-name-validator": "^4.0.0" + } + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + } + }, + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true + }, + "whatwg-url": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", + "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + } } }, "@angular-devkit/architect": { - "version": "0.1401.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1401.0.tgz", - "integrity": "sha512-dHgP2/5EXkJpdf6Y1QHQX2RP8xTli/CFZH3uNnTh+EuAib/kwu+Z6K3UttZWB5VGhAF1u/xf97Vly/UkXvjKAg==", - "dev": true, + "version": "0.1402.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", + "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", + "devOptional": true, "requires": { - "@angular-devkit/core": "14.1.0", + "@angular-devkit/core": "14.2.1", "rxjs": "6.6.7" }, "dependencies": { @@ -17676,7 +17804,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, + "devOptional": true, "requires": { "tslib": "^1.9.0" } @@ -17685,41 +17813,41 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "devOptional": true } } }, "@angular-devkit/build-angular": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.1.0.tgz", - "integrity": "sha512-AtecSuDEPLYd3p7uFVKpoA0XNcq+NvVYFJK8h90BG+IRZtzEm7ZJeYdohXVeVfTO5GvpNFN1XoHxR5rxiXeBhg==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.2.1.tgz", + "integrity": "sha512-6FeIe2nsNH/fslZmTfbo+RCjLk3HuCQa5rb/SFf3w0mwzWCrhV0/SqnQ4+YYgkKrohmTX+q5JmJPwWnkqgdIgQ==", "dev": true, "requires": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1401.0", - "@angular-devkit/build-webpack": "0.1401.0", - "@angular-devkit/core": "14.1.0", - "@babel/core": "7.18.6", - "@babel/generator": "7.18.7", + "@angular-devkit/architect": "0.1402.1", + "@angular-devkit/build-webpack": "0.1402.1", + "@angular-devkit/core": "14.2.1", + "@babel/core": "7.18.10", + "@babel/generator": "7.18.12", "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.18.6", + "@babel/plugin-proposal-async-generator-functions": "7.18.10", "@babel/plugin-transform-async-to-generator": "7.18.6", - "@babel/plugin-transform-runtime": "7.18.6", - "@babel/preset-env": "7.18.6", - "@babel/runtime": "7.18.6", - "@babel/template": "7.18.6", + "@babel/plugin-transform-runtime": "7.18.10", + "@babel/preset-env": "7.18.10", + "@babel/runtime": "7.18.9", + "@babel/template": "7.18.10", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "14.1.0", + "@ngtools/webpack": "14.2.1", "ansi-colors": "4.1.3", "babel-loader": "8.2.5", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.9.1", - "cacache": "16.1.1", + "cacache": "16.1.2", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", "css-loader": "6.7.1", - "esbuild": "0.14.49", - "esbuild-wasm": "0.14.49", + "esbuild": "0.15.5", + "esbuild-wasm": "0.15.5", "glob": "8.0.3", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", @@ -17735,27 +17863,27 @@ "ora": "5.4.1", "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.2.0", - "postcss": "8.4.14", + "postcss": "8.4.16", "postcss-import": "14.1.0", "postcss-loader": "7.0.1", - "postcss-preset-env": "7.7.2", + "postcss-preset-env": "7.8.0", "regenerator-runtime": "0.13.9", "resolve-url-loader": "5.0.0", "rxjs": "6.6.7", - "sass": "1.53.0", + "sass": "1.54.4", "sass-loader": "13.0.2", "semver": "7.3.7", "source-map-loader": "4.0.0", "source-map-support": "0.5.21", - "stylus": "0.58.1", + "stylus": "0.59.0", "stylus-loader": "7.0.0", "terser": "5.14.2", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.4.0", - "webpack": "5.73.0", + "webpack": "5.74.0", "webpack-dev-middleware": "5.3.3", - "webpack-dev-server": "4.9.3", + "webpack-dev-server": "4.10.0", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, @@ -17780,12 +17908,12 @@ } }, "@angular-devkit/build-webpack": { - "version": "0.1401.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1401.0.tgz", - "integrity": "sha512-jKfnHal09mVnEapmNrAHXL/00LfafmfEUtlOPzQMgGJL7MWCeMcFthsbcOnGuzUerbiiquRk/KmLTERYjH+ZrQ==", + "version": "0.1402.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1402.1.tgz", + "integrity": "sha512-S9WvNKrHVgOWNqGCytJNPBEMojB9j6cgl5XlUMEQ+4NV5geOlDNiZltQ/gbC1jz19OU5N+Ky374mPI5IeIBqZg==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1401.0", + "@angular-devkit/architect": "0.1402.1", "rxjs": "6.6.7" }, "dependencies": { @@ -17807,10 +17935,10 @@ } }, "@angular-devkit/core": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.1.0.tgz", - "integrity": "sha512-Y2d/+nFmjjY4eatc3cwdDDAnpnhG3KTX2OVW7dXSUxW3eY5e3vdMlVUbFiKwvwAshlrJy85Y6RMvZSBN4VrpnA==", - "dev": true, + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", + "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", + "devOptional": true, "requires": { "ajv": "8.11.0", "ajv-formats": "2.1.1", @@ -17823,7 +17951,7 @@ "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, + "devOptional": true, "requires": { "tslib": "^1.9.0" } @@ -17832,7 +17960,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "devOptional": true } } }, @@ -17849,19 +17977,6 @@ "rxjs": "6.6.7" }, "dependencies": { - "@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", - "devOptional": true, - "requires": { - "ajv": "8.11.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.1.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - } - }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -17905,68 +18020,28 @@ "symbol-observable": "4.0.0", "uuid": "8.3.2", "yargs": "17.5.1" - }, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.1402.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", - "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", - "devOptional": true, - "requires": { - "@angular-devkit/core": "14.2.1", - "rxjs": "6.6.7" - } - }, - "@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", - "devOptional": true, - "requires": { - "ajv": "8.11.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.1.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "devOptional": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "devOptional": true - } } }, "@angular/common": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.1.0.tgz", - "integrity": "sha512-leethDtLbA3qySaOEBUto602DF0qH1maK9u2zHncrUFOpnHAYUEd7N9MFMdIYASurTnwOSglEoIDCML94qzImQ==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.1.3.tgz", + "integrity": "sha512-t5zidNLcQrgrShBFFsEhvJ6yKw5jwv/Td/AQrknQzrAz3kVBH4dOZGC5jolasFipy/P1DNoG2K+igPCGeskc4w==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.1.0.tgz", - "integrity": "sha512-aLbtpFDF3fp/DOEsWSdpszmoNZAb0To/zoKhHVmEReuUKkMtlPNd3+e6wkR2vrvR/cWgbKwdb7RQ1IQtGDu74A==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.1.3.tgz", + "integrity": "sha512-QtBHzhGzym8CwGrZLFYsciaLq/F4lxUxNOBDQdrc5Pd/qYiaJ50rrWfmXpqrFR6CC0E0bgzIj0Uxdf+D/VRmWQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.1.0.tgz", - "integrity": "sha512-llJkDnv0+riTdRPdOJv/FToz4X9ZO1URnalW+tIe2RyfOzkEqM+VLD/x+3cVgnsaFKuoPxIjZEkMoppGwVB4kg==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.1.3.tgz", + "integrity": "sha512-GJqUfIKuM7bYeR699ceRSa6LT90vEi2q+s+YIwRrlXSFto7xNCmn5bJsYV6XmslvPPTqiLR5w9K8MNC9qYBbxw==", "requires": { "@babel/core": "^7.17.2", "chokidar": "^3.0.0", @@ -17981,25 +18056,25 @@ } }, "@angular/core": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.1.0.tgz", - "integrity": "sha512-3quEsHmQifJOQ2oij5K+cjGjmhsKsyZI1+OTHWNZ6IXeuYviZv4U/Cui9fUJ1RN3CZxH3NzWB3gB/5qYFQfOgg==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.1.3.tgz", + "integrity": "sha512-V3OJD4cShjLzyJAWQ1ogSW0WhKJwti5zsoT1SQ2RoA5UScBPzZN/F/0n/4IupHeaIC+NfaLX916xKTGWA8G8SQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.1.0.tgz", - "integrity": "sha512-y7VQ2t+/ASEjzt8zXg4y5b03lMSPHmnhy4XzjDT14ZFrALaSxyhkSqoBfAksPkTeKmsFMnP/VgLboRsE8TLs0Q==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.1.3.tgz", + "integrity": "sha512-gCN3my9KRp6BLlBGh4uw8NukUPKCl+quroMO2lkvsodF0MA42uhKHO+EImrpLxNMK7lfENIERwthb4mh4G4cFQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/localize": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.1.0.tgz", - "integrity": "sha512-kGiSLDhYCCYyHgXFjy6P9VCCD9dI/IqM0V6Vn/cCL+ZCVUz6pcsGtnhfU6bycMYwyv72py51hMYKMEVR+nfIhQ==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.1.3.tgz", + "integrity": "sha512-u6llXXTm7WAPAjg2jbqgKMHkquVP0dT9LI92hc91gX8HSbojSNYK2Hsx6QJ2VWOpjXxfc13W5IMhp2G6u29urw==", "requires": { "@babel/core": "7.18.9", "glob": "8.0.3", @@ -18029,11 +18104,11 @@ } }, "@babel/generator": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", - "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", + "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", "requires": { - "@babel/types": "^7.18.10", + "@babel/types": "^7.18.13", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } @@ -18056,25 +18131,25 @@ } }, "@angular/platform-browser": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.1.0.tgz", - "integrity": "sha512-axNXUSqxsP0QSdNskd1pFo2uMo1UNoFaSAB02eDWwLkWQ1pWel+T78HiQY2bNeI3elgzjwPTT4vCCDQKNVTNig==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.1.3.tgz", + "integrity": "sha512-baEHBj2pCrz5XR9KCb2FaAChWsRrxl9yapDZFNpApucN/OlQpBDVA9UDDvaYeD3PsI8nVL3B6danKUloamd+pw==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.1.0.tgz", - "integrity": "sha512-0Lxz3HJ9qTOyMTp5Qud2tycP7wqe+tnHOSUqDywrbNRozTKGX0z3i+l0KMku3BtUbuMi3tJomqV914/dtbCvIw==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.1.3.tgz", + "integrity": "sha512-WOWMgXUe8dEXt33jCP8/d8O5NQJKyr+4Dq2sjJ7y1ouCOjJsc9Ybi3y5uMyDCwb6SausGWLJ6w7DweMDWMlsYA==", "requires": { "tslib": "^2.3.0" } }, "@angular/router": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.1.0.tgz", - "integrity": "sha512-WBC1E+d9RS8vy57zJ6LVtWT3AM12mEHY7SCMBRJNBcrmBYJwojxeV8IVkUoW4Ds910gG/w3LjIN0eNHg5qRtNA==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.1.3.tgz", + "integrity": "sha512-LjWQBaeaGkgFy814booGmQV2eELDynzACGAZUwrpWmdHKo9p9GCi9dYttYXspNDmxoipXAzYvVPSABlMfhuQ+g==", "requires": { "tslib": "^2.3.0" } @@ -18094,25 +18169,25 @@ } }, "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", + "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==" }, "@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -18128,11 +18203,11 @@ } }, "@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", "requires": { - "@babel/types": "^7.18.7", + "@babel/types": "^7.18.10", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -18187,9 +18262,9 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", - "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz", + "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -18377,28 +18452,15 @@ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" }, "@babel/helper-wrap-function": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz", - "integrity": "sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ==", + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", + "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", "dev": true, "requires": { "@babel/helper-function-name": "^7.18.9", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", + "@babel/traverse": "^7.18.11", "@babel/types": "^7.18.10" - }, - "dependencies": { - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - } } }, "@babel/helpers": { @@ -18422,9 +18484,9 @@ } }, "@babel/parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", - "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==" + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", + "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -18447,14 +18509,14 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", - "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, @@ -18831,9 +18893,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", + "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" @@ -19019,16 +19081,16 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.6.tgz", - "integrity": "sha512-8uRHk9ZmRSnWqUgyae249EJZ94b0yAGLBIqzZzl+0iEdbno55Pmlt/32JZsHwXD9k/uZj18Aqqk35wBX4CBTXA==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz", + "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", + "@babel/helper-plugin-utils": "^7.18.9", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "semver": "^6.3.0" }, "dependencies": { @@ -19106,29 +19168,29 @@ } }, "@babel/preset-env": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", - "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", - "@babel/plugin-proposal-async-generator-functions": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.18.6", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", @@ -19150,40 +19212,40 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.6", - "@babel/plugin-transform-classes": "^7.18.6", - "@babel/plugin-transform-computed-properties": "^7.18.6", - "@babel/plugin-transform-destructuring": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.6", - "@babel/plugin-transform-function-name": "^7.18.6", - "@babel/plugin-transform-literals": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.6", - "@babel/plugin-transform-typeof-symbol": "^7.18.6", - "@babel/plugin-transform-unicode-escapes": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "core-js-compat": "^3.22.1", "semver": "^6.3.0" }, @@ -19210,47 +19272,47 @@ } }, "@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" } }, "@babel/traverse": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", - "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.13.tgz", + "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", + "@babel/generator": "^7.18.13", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.18.9", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10", + "@babel/parser": "^7.18.13", + "@babel/types": "^7.18.13", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { "@babel/generator": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", - "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", + "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", "requires": { - "@babel/types": "^7.18.10", + "@babel/types": "^7.18.13", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } @@ -19268,9 +19330,9 @@ } }, "@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.13.tgz", + "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", "requires": { "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", @@ -19368,6 +19430,15 @@ "postcss-selector-parser": "^6.0.10" } }, + "@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, "@csstools/postcss-normalize-display-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", @@ -19405,6 +19476,15 @@ "postcss-value-parser": "^4.2.0" } }, + "@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, "@csstools/postcss-trigonometric-functions": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", @@ -19473,29 +19553,6 @@ "rxjs": "~6.6.0" }, "dependencies": { - "@angular-devkit/architect": { - "version": "0.1402.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1402.1.tgz", - "integrity": "sha512-OZ5mkVHSrk5WX6wIfvkxJUCqJRtfQh1S476qHIi80llhJufFTwoOwJrcz7XtNRvbZMLRMztf0aIhEDaUtEBRZQ==", - "optional": true, - "requires": { - "@angular-devkit/core": "14.2.1", - "rxjs": "6.6.7" - } - }, - "@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", - "optional": true, - "requires": { - "ajv": "8.11.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.1.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - } - }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -19540,6 +19597,13 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, + "@esbuild/linux-loong64": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz", + "integrity": "sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A==", + "dev": true, + "optional": true + }, "@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -20169,9 +20233,9 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -20208,9 +20272,9 @@ } }, "@ngtools/webpack": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.1.0.tgz", - "integrity": "sha512-d4U6ymDCXckVgfjYEv1Wjzd78ZSm0NKgq8mN6FdlrCupg02LPIODjeKyNr4c4zwMAOJeHkVNEZ+USoDEK3XSsw==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.1.tgz", + "integrity": "sha512-9tsfx2ZQscnpszVkdoJIIxZZDwitgmbPNrsQmyfHhwqPeJ8UUnAk6RNTfHjtX31VCmIM+qdGJsX7vDR9ye3/uA==", "dev": true, "requires": {} }, @@ -20241,9 +20305,9 @@ } }, "@npmcli/fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.1.tgz", - "integrity": "sha512-1Q0uzx6c/NVNGszePbr5Gc2riSU1zLpNlo/1YWntH+eaPmMgBssAW0qXofCVkpdj3ce4swZtlDYQu+NKiYcptg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "devOptional": true, "requires": { "@gar/promisify": "^1.1.3", @@ -20278,9 +20342,9 @@ } }, "@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "devOptional": true, "requires": { "mkdirp": "^1.0.4", @@ -20329,36 +20393,6 @@ "@angular-devkit/core": "14.2.1", "@angular-devkit/schematics": "14.2.1", "jsonc-parser": "3.1.0" - }, - "dependencies": { - "@angular-devkit/core": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.2.1.tgz", - "integrity": "sha512-lW8oNGuJqr4r31FWBjfWQYkSXdiOHBGOThIEtHvUVBKfPF/oVrupLueCUgBPel+NvxENXdo93uPsqHN7bZbmsQ==", - "devOptional": true, - "requires": { - "ajv": "8.11.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.1.0", - "rxjs": "6.6.7", - "source-map": "0.7.4" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "devOptional": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "devOptional": true - } } }, "@sideway/address": { @@ -20383,9 +20417,9 @@ "dev": true }, "@sinclair/typebox": { - "version": "0.24.25", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.25.tgz", - "integrity": "sha512-Z0b1gkfeHzRQen7juqXIZ4P2nvI6vZV+m/PhxBlVsNH/jSg2FuqJ+x4haFFIbbct6LMA7m6x2sBob/Giecj09A==", + "version": "0.24.34", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.34.tgz", + "integrity": "sha512-x3ejWKw7rpy30Bvm6U0AQMOHdjqe2E3YJrBHlTxH0KFsp77bBa+MH324nJxtXZFpnTy/JW2h5HPYVm0vG2WPnw==", "dev": true }, "@sinonjs/commons": { @@ -20469,9 +20503,9 @@ } }, "@types/babel__traverse": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.1.tgz", + "integrity": "sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -20516,9 +20550,9 @@ } }, "@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", "dev": true, "requires": { "@types/estree": "*", @@ -20651,9 +20685,9 @@ "dev": true }, "@types/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-fccbsHKqFDXClBZTDLA43zl0+TbxyIwyzIzwwhvoJvhNjOErCdeX2xJbURimv2EbSVUGav001PaCJg4mZxMl4w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", "dev": true }, "@types/node": { @@ -20675,9 +20709,9 @@ "dev": true }, "@types/prettier": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.4.tgz", - "integrity": "sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", + "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", "dev": true }, "@types/qs": { @@ -20760,9 +20794,9 @@ } }, "@types/yargs": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", - "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "version": "17.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.12.tgz", + "integrity": "sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -21133,9 +21167,9 @@ } }, "app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", + "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", "dev": true }, "aproba": { @@ -21244,12 +21278,6 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "optional": true }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, "autoprefixer": { "version": "10.4.8", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz", @@ -21455,12 +21483,12 @@ } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", + "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.2" } }, "babel-preset-current-node-syntax": { @@ -21612,9 +21640,9 @@ } }, "bonjour-service": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", - "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", "dev": true, "requires": { "array-flatten": "^2.1.2", @@ -21730,9 +21758,9 @@ "dev": true }, "cacache": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.1.tgz", - "integrity": "sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg==", + "version": "16.1.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.2.tgz", + "integrity": "sha512-Xx+xPlfCZIUHagysjjOAje9nRo8pRDczQCcXb4J2O0BLtH+xeVue6ba4y1kfJfQMAnM2mkcoMIAyOctlaRGWYA==", "devOptional": true, "requires": { "@npmcli/fs": "^2.1.0", @@ -21784,9 +21812,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==" + "version": "1.0.30001388", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001388.tgz", + "integrity": "sha512-znVbq4OUjqgLxMxoNX2ZeeLR0d7lcDiE5uJ4eUiWdml1J1EkxbnQq6opT9jb9SMfJxB0XA16/ziHwni4u1I3GQ==" }, "caseless": { "version": "0.12.0", @@ -22292,9 +22320,9 @@ } }, "core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz", + "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==", "dev": true, "requires": { "browserslist": "^4.21.3", @@ -22410,25 +22438,6 @@ "which": "^2.0.1" } }, - "css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "css-blank-pseudo": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", @@ -22509,9 +22518,9 @@ } }, "cssdb": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.3.tgz", - "integrity": "sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.0.1.tgz", + "integrity": "sha512-pT3nzyGM78poCKLAEy2zWIVX2hikq6dIrjuZzLV98MumBg+xMTNYfHx7paUlfiRTgg91O/vR889CIf+qiv79Rw==", "dev": true }, "cssesc": { @@ -22594,9 +22603,9 @@ }, "dependencies": { "@types/node": { - "version": "14.18.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.23.tgz", - "integrity": "sha512-MhbCWN18R4GhO8ewQWAFK4TGQdBpXWByukz7cWyJmXhvRuCIaM/oWytGPqVmDzgEnnaIc9ss6HbU5mUi+vyZPA==", + "version": "14.18.26", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.26.tgz", + "integrity": "sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA==", "optional": true }, "ansi-styles": { @@ -22694,15 +22703,15 @@ } }, "date-fns": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.1.tgz", - "integrity": "sha512-dlLD5rKaKxpFdnjrs+5azHDFOPEu4ANy/LTh04A1DTzMM7qoajmKCBc8pkKRFT41CNzw+4gQh79X5C+Jq27HAw==", + "version": "2.29.2", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.2.tgz", + "integrity": "sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA==", "dev": true }, "dayjs": { - "version": "1.11.4", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.4.tgz", - "integrity": "sha512-Zj/lPM5hOvQ1Bf7uAvewDaUcsJoI6JmNqmHhHl3nyumwe0XHwt8sWdOVAPACJzCebL8gQCi+K49w7iKWnGwX9g==", + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==", "optional": true }, "debug": { @@ -22719,12 +22728,6 @@ "integrity": "sha512-Nv6ENEzyPQ6AItkGwLE2PGKinZZ9g59vSh2BeH6NqPu0OTKZ5ruJsVqh/orbAnqXc9pBbgXAIrc2EyaCj8NpGg==", "dev": true }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", - "dev": true - }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -22953,9 +22956,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.206", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", - "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==" + "version": "1.4.240", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.240.tgz", + "integrity": "sha512-r20dUOtZ4vUPTqAajDGonIM1uas5tf85Up+wPdtNBNvBSqGCfkpvMVvQ1T8YJzPV9/Y9g3FbUDcXb94Rafycow==" }, "emittery": { "version": "0.10.2", @@ -23072,177 +23075,178 @@ "dev": true }, "esbuild": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.49.tgz", - "integrity": "sha512-/TlVHhOaq7Yz8N1OJrjqM3Auzo5wjvHFLk+T8pIue+fhnhIMpfAzsG6PLVMbFveVxqD2WOp3QHei+52IMUNmCw==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.5.tgz", + "integrity": "sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg==", "dev": true, "optional": true, "requires": { - "esbuild-android-64": "0.14.49", - "esbuild-android-arm64": "0.14.49", - "esbuild-darwin-64": "0.14.49", - "esbuild-darwin-arm64": "0.14.49", - "esbuild-freebsd-64": "0.14.49", - "esbuild-freebsd-arm64": "0.14.49", - "esbuild-linux-32": "0.14.49", - "esbuild-linux-64": "0.14.49", - "esbuild-linux-arm": "0.14.49", - "esbuild-linux-arm64": "0.14.49", - "esbuild-linux-mips64le": "0.14.49", - "esbuild-linux-ppc64le": "0.14.49", - "esbuild-linux-riscv64": "0.14.49", - "esbuild-linux-s390x": "0.14.49", - "esbuild-netbsd-64": "0.14.49", - "esbuild-openbsd-64": "0.14.49", - "esbuild-sunos-64": "0.14.49", - "esbuild-windows-32": "0.14.49", - "esbuild-windows-64": "0.14.49", - "esbuild-windows-arm64": "0.14.49" + "@esbuild/linux-loong64": "0.15.5", + "esbuild-android-64": "0.15.5", + "esbuild-android-arm64": "0.15.5", + "esbuild-darwin-64": "0.15.5", + "esbuild-darwin-arm64": "0.15.5", + "esbuild-freebsd-64": "0.15.5", + "esbuild-freebsd-arm64": "0.15.5", + "esbuild-linux-32": "0.15.5", + "esbuild-linux-64": "0.15.5", + "esbuild-linux-arm": "0.15.5", + "esbuild-linux-arm64": "0.15.5", + "esbuild-linux-mips64le": "0.15.5", + "esbuild-linux-ppc64le": "0.15.5", + "esbuild-linux-riscv64": "0.15.5", + "esbuild-linux-s390x": "0.15.5", + "esbuild-netbsd-64": "0.15.5", + "esbuild-openbsd-64": "0.15.5", + "esbuild-sunos-64": "0.15.5", + "esbuild-windows-32": "0.15.5", + "esbuild-windows-64": "0.15.5", + "esbuild-windows-arm64": "0.15.5" } }, "esbuild-android-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.49.tgz", - "integrity": "sha512-vYsdOTD+yi+kquhBiFWl3tyxnj2qZJsl4tAqwhT90ktUdnyTizgle7TjNx6Ar1bN7wcwWqZ9QInfdk2WVagSww==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz", + "integrity": "sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg==", "dev": true, "optional": true }, "esbuild-android-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.49.tgz", - "integrity": "sha512-g2HGr/hjOXCgSsvQZ1nK4nW/ei8JUx04Li74qub9qWrStlysaVmadRyTVuW32FGIpLQyc5sUjjZopj49eGGM2g==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz", + "integrity": "sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg==", "dev": true, "optional": true }, "esbuild-darwin-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.49.tgz", - "integrity": "sha512-3rvqnBCtX9ywso5fCHixt2GBCUsogNp9DjGmvbBohh31Ces34BVzFltMSxJpacNki96+WIcX5s/vum+ckXiLYg==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz", + "integrity": "sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ==", "dev": true, "optional": true }, "esbuild-darwin-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.49.tgz", - "integrity": "sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz", + "integrity": "sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg==", "dev": true, "optional": true }, "esbuild-freebsd-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.49.tgz", - "integrity": "sha512-NJ5Q6AjV879mOHFri+5lZLTp5XsO2hQ+KSJYLbfY9DgCu8s6/Zl2prWXVANYTeCDLlrIlNNYw8y34xqyLDKOmQ==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz", + "integrity": "sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA==", "dev": true, "optional": true }, "esbuild-freebsd-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.49.tgz", - "integrity": "sha512-lFLtgXnAc3eXYqj5koPlBZvEbBSOSUbWO3gyY/0+4lBdRqELyz4bAuamHvmvHW5swJYL7kngzIZw6kdu25KGOA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz", + "integrity": "sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w==", "dev": true, "optional": true }, "esbuild-linux-32": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.49.tgz", - "integrity": "sha512-zTTH4gr2Kb8u4QcOpTDVn7Z8q7QEIvFl/+vHrI3cF6XOJS7iEI1FWslTo3uofB2+mn6sIJEQD9PrNZKoAAMDiA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz", + "integrity": "sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ==", "dev": true, "optional": true }, "esbuild-linux-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.49.tgz", - "integrity": "sha512-hYmzRIDzFfLrB5c1SknkxzM8LdEUOusp6M2TnuQZJLRtxTgyPnZZVtyMeCLki0wKgYPXkFsAVhi8vzo2mBNeTg==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz", + "integrity": "sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg==", "dev": true, "optional": true }, "esbuild-linux-arm": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.49.tgz", - "integrity": "sha512-iE3e+ZVv1Qz1Sy0gifIsarJMQ89Rpm9mtLSRtG3AH0FPgAzQ5Z5oU6vYzhc/3gSPi2UxdCOfRhw2onXuFw/0lg==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz", + "integrity": "sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q==", "dev": true, "optional": true }, "esbuild-linux-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.49.tgz", - "integrity": "sha512-KLQ+WpeuY+7bxukxLz5VgkAAVQxUv67Ft4DmHIPIW+2w3ObBPQhqNoeQUHxopoW/aiOn3m99NSmSV+bs4BSsdA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz", + "integrity": "sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA==", "dev": true, "optional": true }, "esbuild-linux-mips64le": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.49.tgz", - "integrity": "sha512-n+rGODfm8RSum5pFIqFQVQpYBw+AztL8s6o9kfx7tjfK0yIGF6tm5HlG6aRjodiiKkH2xAiIM+U4xtQVZYU4rA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz", + "integrity": "sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ==", "dev": true, "optional": true }, "esbuild-linux-ppc64le": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.49.tgz", - "integrity": "sha512-WP9zR4HX6iCBmMFH+XHHng2LmdoIeUmBpL4aL2TR8ruzXyT4dWrJ5BSbT8iNo6THN8lod6GOmYDLq/dgZLalGw==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz", + "integrity": "sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw==", "dev": true, "optional": true }, "esbuild-linux-riscv64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.49.tgz", - "integrity": "sha512-h66ORBz+Dg+1KgLvzTVQEA1LX4XBd1SK0Fgbhhw4akpG/YkN8pS6OzYI/7SGENiN6ao5hETRDSkVcvU9NRtkMQ==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz", + "integrity": "sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA==", "dev": true, "optional": true }, "esbuild-linux-s390x": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.49.tgz", - "integrity": "sha512-DhrUoFVWD+XmKO1y7e4kNCqQHPs6twz6VV6Uezl/XHYGzM60rBewBF5jlZjG0nCk5W/Xy6y1xWeopkrhFFM0sQ==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz", + "integrity": "sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ==", "dev": true, "optional": true }, "esbuild-netbsd-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.49.tgz", - "integrity": "sha512-BXaUwFOfCy2T+hABtiPUIpWjAeWK9P8O41gR4Pg73hpzoygVGnj0nI3YK4SJhe52ELgtdgWP/ckIkbn2XaTxjQ==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz", + "integrity": "sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w==", "dev": true, "optional": true }, "esbuild-openbsd-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.49.tgz", - "integrity": "sha512-lP06UQeLDGmVPw9Rg437Btu6J9/BmyhdoefnQ4gDEJTtJvKtQaUcOQrhjTq455ouZN4EHFH1h28WOJVANK41kA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz", + "integrity": "sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA==", "dev": true, "optional": true }, "esbuild-sunos-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.49.tgz", - "integrity": "sha512-4c8Zowp+V3zIWje329BeLbGh6XI9c/rqARNaj5yPHdC61pHI9UNdDxT3rePPJeWcEZVKjkiAS6AP6kiITp7FSw==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz", + "integrity": "sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA==", "dev": true, "optional": true }, "esbuild-wasm": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.49.tgz", - "integrity": "sha512-5ddzZv8M3WI1fWZ5rEfK5cSA9swlWJcceKgqjKLLERC7FnlNW50kF7hxhpkyC0Z/4w7Xeyt3yUJ9QWNMDXLk2Q==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.5.tgz", + "integrity": "sha512-lTJOEKekN/4JI/eOEq0wLcx53co2N6vaT/XjBz46D1tvIVoUEyM0o2K6txW6gEotf31szFD/J1PbxmnbkGlK9A==", "dev": true }, "esbuild-windows-32": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.49.tgz", - "integrity": "sha512-q7Rb+J9yHTeKr9QTPDYkqfkEj8/kcKz9lOabDuvEXpXuIcosWCJgo5Z7h/L4r7rbtTH4a8U2FGKb6s1eeOHmJA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz", + "integrity": "sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg==", "dev": true, "optional": true }, "esbuild-windows-64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.49.tgz", - "integrity": "sha512-+Cme7Ongv0UIUTniPqfTX6mJ8Deo7VXw9xN0yJEN1lQMHDppTNmKwAM3oGbD/Vqff+07K2gN0WfNkMohmG+dVw==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz", + "integrity": "sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw==", "dev": true, "optional": true }, "esbuild-windows-arm64": { - "version": "0.14.49", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.49.tgz", - "integrity": "sha512-v+HYNAXzuANrCbbLFJ5nmO3m5y2PGZWLe3uloAkLt87aXiO2mZr3BTmacZdjwNkNEHuH3bNtN8cak+mzVjVPfA==", + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz", + "integrity": "sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA==", "dev": true, "optional": true }, @@ -24365,9 +24369,9 @@ } }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "devOptional": true, "requires": { "has": "^1.0.3" @@ -25449,9 +25453,9 @@ "requires": {} }, "jest-preset-angular": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-12.2.0.tgz", - "integrity": "sha512-dXnPdcglVcJeXdnxrws3M/gxLlYWaZGU7JS+ffuiCfMzG0AO3EDo/wpsPsxvnjCZiov1uV7g7UD1dHtmOW/sEw==", + "version": "12.2.2", + "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-12.2.2.tgz", + "integrity": "sha512-aj5ZwVW6cGGzZKUn6e/jDwFgQh6FHy1zCCXWOeqFCuM3WODrbdUJ93zKrex18e9K1+PvOcP0e20yKbj3gwhfFg==", "dev": true, "requires": { "bs-logger": "^0.2.6", @@ -26713,9 +26717,9 @@ } }, "lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", "devOptional": true }, "magic-string": { @@ -27371,14 +27375,14 @@ "dev": true }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, @@ -27790,9 +27794,9 @@ } }, "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -28072,57 +28076,59 @@ } }, "postcss-preset-env": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.7.2.tgz", - "integrity": "sha512-1q0ih7EDsZmCb/FMDRvosna7Gsbdx8CvYO5hYT120hcp2ZAuOHpSzibujZ4JpIUcAC02PG6b+eftxqjTFh5BNA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.0.tgz", + "integrity": "sha512-leqiqLOellpLKfbHkD06E04P6d9ZQ24mat6hu4NSqun7WG0UhspHR5Myiv/510qouCjoo4+YJtNOqg5xHaFnCA==", "dev": true, "requires": { - "@csstools/postcss-cascade-layers": "^1.0.4", - "@csstools/postcss-color-function": "^1.1.0", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.1", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.6", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.1.0", + "@csstools/postcss-cascade-layers": "^1.0.5", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "@csstools/postcss-stepped-value-functions": "^1.0.0", - "@csstools/postcss-trigonometric-functions": "^1.0.1", - "@csstools/postcss-unset-value": "^1.0.1", - "autoprefixer": "^10.4.7", - "browserslist": "^4.21.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.8", + "browserslist": "^4.21.3", "css-blank-pseudo": "^3.0.3", "css-has-pseudo": "^3.0.4", "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.6.3", - "postcss-attribute-case-insensitive": "^5.0.1", + "cssdb": "^7.0.0", + "postcss-attribute-case-insensitive": "^5.0.2", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.3", + "postcss-color-functional-notation": "^4.2.4", "postcss-color-hex-alpha": "^8.0.4", - "postcss-color-rebeccapurple": "^7.1.0", + "postcss-color-rebeccapurple": "^7.1.1", "postcss-custom-media": "^8.0.2", "postcss-custom-properties": "^12.1.8", "postcss-custom-selectors": "^6.0.3", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.1", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", "postcss-env-function": "^4.0.6", "postcss-focus-visible": "^6.0.4", "postcss-focus-within": "^5.0.4", "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.2.0", + "postcss-lab-function": "^4.2.1", "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.9", + "postcss-nesting": "^10.1.10", "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", + "postcss-overflow-shorthand": "^3.0.4", "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.5", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^6.0.0", + "postcss-selector-not": "^6.0.1", "postcss-value-parser": "^4.2.0" } }, @@ -28682,9 +28688,9 @@ "devOptional": true }, "sass": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", - "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "version": "1.54.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz", + "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -29120,16 +29126,6 @@ } } }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -29337,12 +29333,12 @@ "dev": true }, "stylus": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.58.1.tgz", - "integrity": "sha512-AYiCHm5ogczdCPMfe9aeQa4NklB2gcf4D/IhzYPddJjTgPc+k4D/EVE0yfQbZD43MHP3lPy+8NZ9fcFxkrgs/w==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.59.0.tgz", + "integrity": "sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==", "dev": true, "requires": { - "css": "^3.0.0", + "@adobe/css-tools": "^4.0.1", "debug": "^4.3.2", "glob": "^7.1.6", "sax": "~1.2.4", @@ -29491,16 +29487,16 @@ } }, "terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.7", + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" + "terser": "^5.14.1" }, "dependencies": { "ajv": { @@ -29697,9 +29693,9 @@ "dev": true }, "ts-jest": { - "version": "28.0.7", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.7.tgz", - "integrity": "sha512-wWXCSmTwBVmdvWrOpYhal79bDpioDy4rTT+0vyUnE3ZzM7LOAAGG9NXwzkEL/a516rQEgnMmS/WKP9jBPCVJyA==", + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.8.tgz", + "integrity": "sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==", "dev": true, "requires": { "bs-logger": "0.x", @@ -29962,9 +29958,9 @@ "optional": true }, "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.6.tgz", + "integrity": "sha512-We7BqM9XFlcW94Op93uW8+2LXvGezs7QA0WY+f1H7RR1q46B06W6hZF6LbmOlpCS1HU22q/6NOGTGW5sCm7NJQ==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -30139,9 +30135,9 @@ "dev": true }, "webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -30149,11 +30145,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -30166,7 +30162,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { @@ -30236,9 +30232,9 @@ } }, "webpack-dev-server": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz", - "integrity": "sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz", + "integrity": "sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", @@ -30433,9 +30429,9 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -30492,9 +30488,9 @@ } }, "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" }, "yauzl": { "version": "2.10.0", diff --git a/src-ui/package.json b/src-ui/package.json index f1746be3f..a00bdab97 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -21,7 +21,7 @@ "@angular/platform-browser": "~14.1.0", "@angular/platform-browser-dynamic": "~14.1.0", "@angular/router": "~14.1.0", - "@ng-bootstrap/ng-bootstrap": "^13.0.0-beta.1", + "@ng-bootstrap/ng-bootstrap": "^13.0.0", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", "@popperjs/core": "^2.11.6", @@ -38,7 +38,7 @@ }, "devDependencies": { "@angular-builders/jest": "14.0.1", - "@angular-devkit/build-angular": "~14.1.0", + "@angular-devkit/build-angular": "~14.2.1", "@angular/cli": "~14.2.1", "@angular/compiler-cli": "~14.1.0", "@types/jest": "28.1.6", From 31ebe2675b559cadc2b47e992a48840b031a7d2a Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 2 Sep 2022 01:25:39 -0700 Subject: [PATCH 183/348] update angular core --- src-ui/package-lock.json | 164 +++++++++++++++++++-------------------- src-ui/package.json | 18 ++--- 2 files changed, 91 insertions(+), 91 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 774e6fdc4..48b8d4973 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -8,14 +8,14 @@ "name": "paperless-ui", "version": "0.0.0", "dependencies": { - "@angular/common": "~14.1.0", - "@angular/compiler": "~14.1.0", - "@angular/core": "~14.1.0", - "@angular/forms": "~14.1.0", - "@angular/localize": "~14.1.0", - "@angular/platform-browser": "~14.1.0", - "@angular/platform-browser-dynamic": "~14.1.0", - "@angular/router": "~14.1.0", + "@angular/common": "~14.2.0", + "@angular/compiler": "~14.2.0", + "@angular/core": "~14.2.0", + "@angular/forms": "~14.2.0", + "@angular/localize": "~14.2.0", + "@angular/platform-browser": "~14.2.0", + "@angular/platform-browser-dynamic": "~14.2.0", + "@angular/router": "~14.2.0", "@ng-bootstrap/ng-bootstrap": "^13.0.0", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", @@ -35,7 +35,7 @@ "@angular-builders/jest": "14.0.1", "@angular-devkit/build-angular": "~14.2.1", "@angular/cli": "~14.2.1", - "@angular/compiler-cli": "~14.1.0", + "@angular/compiler-cli": "~14.2.0", "@types/jest": "28.1.6", "@types/node": "^18.7.14", "codelyzer": "^6.0.2", @@ -572,9 +572,9 @@ } }, "node_modules/@angular/common": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.1.3.tgz", - "integrity": "sha512-t5zidNLcQrgrShBFFsEhvJ6yKw5jwv/Td/AQrknQzrAz3kVBH4dOZGC5jolasFipy/P1DNoG2K+igPCGeskc4w==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.0.tgz", + "integrity": "sha512-dXCGuM/Yh9B8OVVHHfPuXLYdu0olemKmuYLZXGoqyzeYU5OpQ6+qcHYTrlREkWpF9QY+pk2ewfM9Hke1UENEHA==", "dependencies": { "tslib": "^2.3.0" }, @@ -582,14 +582,14 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "14.1.3", + "@angular/core": "14.2.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.1.3.tgz", - "integrity": "sha512-QtBHzhGzym8CwGrZLFYsciaLq/F4lxUxNOBDQdrc5Pd/qYiaJ50rrWfmXpqrFR6CC0E0bgzIj0Uxdf+D/VRmWQ==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.0.tgz", + "integrity": "sha512-csnvopy5a6ctdT7sHgwgn3wRni+UIk2zvs7WYsx+gtLTdH7SPg78CN0XZR/KQ142qLtuMnmkVON3D3ejmqC9xg==", "dependencies": { "tslib": "^2.3.0" }, @@ -597,7 +597,7 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/core": "14.1.3" + "@angular/core": "14.2.0" }, "peerDependenciesMeta": { "@angular/core": { @@ -606,9 +606,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.1.3.tgz", - "integrity": "sha512-GJqUfIKuM7bYeR699ceRSa6LT90vEi2q+s+YIwRrlXSFto7xNCmn5bJsYV6XmslvPPTqiLR5w9K8MNC9qYBbxw==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.0.tgz", + "integrity": "sha512-cMjMVmAitY4GIn45pIqzhy4GKWfVAJSktCtuAebaAYC6Nqo9LbvqF2dnHK0MHoqjAf98e5zmz9WeBOQ7YlRZFQ==", "dependencies": { "@babel/core": "^7.17.2", "chokidar": "^3.0.0", @@ -630,14 +630,14 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/compiler": "14.1.3", - "typescript": ">=4.6.2 <4.8" + "@angular/compiler": "14.2.0", + "typescript": ">=4.6.2 <4.9" } }, "node_modules/@angular/core": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.1.3.tgz", - "integrity": "sha512-V3OJD4cShjLzyJAWQ1ogSW0WhKJwti5zsoT1SQ2RoA5UScBPzZN/F/0n/4IupHeaIC+NfaLX916xKTGWA8G8SQ==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.0.tgz", + "integrity": "sha512-m00WZL+df90QjrNmA43W8oSP1hyePoEXgw36JcFLQ+2ISO1HvqoeuKXIccyIQKpCuQ9VLNv5ptlTio6pjmcCqg==", "dependencies": { "tslib": "^2.3.0" }, @@ -650,9 +650,9 @@ } }, "node_modules/@angular/forms": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.1.3.tgz", - "integrity": "sha512-gCN3my9KRp6BLlBGh4uw8NukUPKCl+quroMO2lkvsodF0MA42uhKHO+EImrpLxNMK7lfENIERwthb4mh4G4cFQ==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.0.tgz", + "integrity": "sha512-KVAd4ITEUnP/MLNTDbTWEMoYIZgKawvoaNu4nBP0DAcZsADmB5a6IPYcg6GrgJ+teN0SnpiCxKvq1hRITj3d7g==", "dependencies": { "tslib": "^2.3.0" }, @@ -660,16 +660,16 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.1.3", - "@angular/core": "14.1.3", - "@angular/platform-browser": "14.1.3", + "@angular/common": "14.2.0", + "@angular/core": "14.2.0", + "@angular/platform-browser": "14.2.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/localize": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.1.3.tgz", - "integrity": "sha512-u6llXXTm7WAPAjg2jbqgKMHkquVP0dT9LI92hc91gX8HSbojSNYK2Hsx6QJ2VWOpjXxfc13W5IMhp2G6u29urw==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.0.tgz", + "integrity": "sha512-sV+4itOllkgYkHMMtfYGsOvO+nuFMBlk6RKFVqWZcFO+XgOC4E9bXhRbkpGZ0JcIr42tlB63krjopnYfN9u+7A==", "dependencies": { "@babel/core": "7.18.9", "glob": "8.0.3", @@ -684,8 +684,8 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/compiler": "14.1.3", - "@angular/compiler-cli": "14.1.3" + "@angular/compiler": "14.2.0", + "@angular/compiler-cli": "14.2.0" } }, "node_modules/@angular/localize/node_modules/@babel/core": { @@ -752,9 +752,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.1.3.tgz", - "integrity": "sha512-baEHBj2pCrz5XR9KCb2FaAChWsRrxl9yapDZFNpApucN/OlQpBDVA9UDDvaYeD3PsI8nVL3B6danKUloamd+pw==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.0.tgz", + "integrity": "sha512-zYWB9FtZQZEhPV2PuzaoXWChWS+7o4SP+0sF8hLddGNOezf1FsKKrqDhyYtQYgZ2qQPsS+uDFfkVry5dppALUQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -762,9 +762,9 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/animations": "14.1.3", - "@angular/common": "14.1.3", - "@angular/core": "14.1.3" + "@angular/animations": "14.2.0", + "@angular/common": "14.2.0", + "@angular/core": "14.2.0" }, "peerDependenciesMeta": { "@angular/animations": { @@ -773,9 +773,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.1.3.tgz", - "integrity": "sha512-WOWMgXUe8dEXt33jCP8/d8O5NQJKyr+4Dq2sjJ7y1ouCOjJsc9Ybi3y5uMyDCwb6SausGWLJ6w7DweMDWMlsYA==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.0.tgz", + "integrity": "sha512-CRSWbJiohfz4KBU4ts2kq2B2lATApMeG6uuxgXwNJAEUkn63EYbrFVY9JTaApyZ7X+3dUDZZtcsfNmQruK2UxQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -783,16 +783,16 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.1.3", - "@angular/compiler": "14.1.3", - "@angular/core": "14.1.3", - "@angular/platform-browser": "14.1.3" + "@angular/common": "14.2.0", + "@angular/compiler": "14.2.0", + "@angular/core": "14.2.0", + "@angular/platform-browser": "14.2.0" } }, "node_modules/@angular/router": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.1.3.tgz", - "integrity": "sha512-LjWQBaeaGkgFy814booGmQV2eELDynzACGAZUwrpWmdHKo9p9GCi9dYttYXspNDmxoipXAzYvVPSABlMfhuQ+g==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.0.tgz", + "integrity": "sha512-SvtmSlRCIWeLhbXYh09W7luPKTtpZL16PB4DbT3VVfZlt2PfMys/tAmOCvChNxjkOgV7yEGaqklWw/1wKxeRlg==", "dependencies": { "tslib": "^2.3.0" }, @@ -800,9 +800,9 @@ "node": "^14.15.0 || >=16.10.0" }, "peerDependencies": { - "@angular/common": "14.1.3", - "@angular/core": "14.1.3", - "@angular/platform-browser": "14.1.3", + "@angular/common": "14.2.0", + "@angular/core": "14.2.0", + "@angular/platform-browser": "14.2.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -18023,25 +18023,25 @@ } }, "@angular/common": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.1.3.tgz", - "integrity": "sha512-t5zidNLcQrgrShBFFsEhvJ6yKw5jwv/Td/AQrknQzrAz3kVBH4dOZGC5jolasFipy/P1DNoG2K+igPCGeskc4w==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.2.0.tgz", + "integrity": "sha512-dXCGuM/Yh9B8OVVHHfPuXLYdu0olemKmuYLZXGoqyzeYU5OpQ6+qcHYTrlREkWpF9QY+pk2ewfM9Hke1UENEHA==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.1.3.tgz", - "integrity": "sha512-QtBHzhGzym8CwGrZLFYsciaLq/F4lxUxNOBDQdrc5Pd/qYiaJ50rrWfmXpqrFR6CC0E0bgzIj0Uxdf+D/VRmWQ==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.0.tgz", + "integrity": "sha512-csnvopy5a6ctdT7sHgwgn3wRni+UIk2zvs7WYsx+gtLTdH7SPg78CN0XZR/KQ142qLtuMnmkVON3D3ejmqC9xg==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.1.3.tgz", - "integrity": "sha512-GJqUfIKuM7bYeR699ceRSa6LT90vEi2q+s+YIwRrlXSFto7xNCmn5bJsYV6XmslvPPTqiLR5w9K8MNC9qYBbxw==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.2.0.tgz", + "integrity": "sha512-cMjMVmAitY4GIn45pIqzhy4GKWfVAJSktCtuAebaAYC6Nqo9LbvqF2dnHK0MHoqjAf98e5zmz9WeBOQ7YlRZFQ==", "requires": { "@babel/core": "^7.17.2", "chokidar": "^3.0.0", @@ -18056,25 +18056,25 @@ } }, "@angular/core": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.1.3.tgz", - "integrity": "sha512-V3OJD4cShjLzyJAWQ1ogSW0WhKJwti5zsoT1SQ2RoA5UScBPzZN/F/0n/4IupHeaIC+NfaLX916xKTGWA8G8SQ==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.2.0.tgz", + "integrity": "sha512-m00WZL+df90QjrNmA43W8oSP1hyePoEXgw36JcFLQ+2ISO1HvqoeuKXIccyIQKpCuQ9VLNv5ptlTio6pjmcCqg==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.1.3.tgz", - "integrity": "sha512-gCN3my9KRp6BLlBGh4uw8NukUPKCl+quroMO2lkvsodF0MA42uhKHO+EImrpLxNMK7lfENIERwthb4mh4G4cFQ==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.2.0.tgz", + "integrity": "sha512-KVAd4ITEUnP/MLNTDbTWEMoYIZgKawvoaNu4nBP0DAcZsADmB5a6IPYcg6GrgJ+teN0SnpiCxKvq1hRITj3d7g==", "requires": { "tslib": "^2.3.0" } }, "@angular/localize": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.1.3.tgz", - "integrity": "sha512-u6llXXTm7WAPAjg2jbqgKMHkquVP0dT9LI92hc91gX8HSbojSNYK2Hsx6QJ2VWOpjXxfc13W5IMhp2G6u29urw==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.2.0.tgz", + "integrity": "sha512-sV+4itOllkgYkHMMtfYGsOvO+nuFMBlk6RKFVqWZcFO+XgOC4E9bXhRbkpGZ0JcIr42tlB63krjopnYfN9u+7A==", "requires": { "@babel/core": "7.18.9", "glob": "8.0.3", @@ -18131,25 +18131,25 @@ } }, "@angular/platform-browser": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.1.3.tgz", - "integrity": "sha512-baEHBj2pCrz5XR9KCb2FaAChWsRrxl9yapDZFNpApucN/OlQpBDVA9UDDvaYeD3PsI8nVL3B6danKUloamd+pw==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.2.0.tgz", + "integrity": "sha512-zYWB9FtZQZEhPV2PuzaoXWChWS+7o4SP+0sF8hLddGNOezf1FsKKrqDhyYtQYgZ2qQPsS+uDFfkVry5dppALUQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.1.3.tgz", - "integrity": "sha512-WOWMgXUe8dEXt33jCP8/d8O5NQJKyr+4Dq2sjJ7y1ouCOjJsc9Ybi3y5uMyDCwb6SausGWLJ6w7DweMDWMlsYA==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.2.0.tgz", + "integrity": "sha512-CRSWbJiohfz4KBU4ts2kq2B2lATApMeG6uuxgXwNJAEUkn63EYbrFVY9JTaApyZ7X+3dUDZZtcsfNmQruK2UxQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/router": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.1.3.tgz", - "integrity": "sha512-LjWQBaeaGkgFy814booGmQV2eELDynzACGAZUwrpWmdHKo9p9GCi9dYttYXspNDmxoipXAzYvVPSABlMfhuQ+g==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.2.0.tgz", + "integrity": "sha512-SvtmSlRCIWeLhbXYh09W7luPKTtpZL16PB4DbT3VVfZlt2PfMys/tAmOCvChNxjkOgV7yEGaqklWw/1wKxeRlg==", "requires": { "tslib": "^2.3.0" } diff --git a/src-ui/package.json b/src-ui/package.json index a00bdab97..6c52ed1a6 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -13,14 +13,14 @@ }, "private": true, "dependencies": { - "@angular/common": "~14.1.0", - "@angular/compiler": "~14.1.0", - "@angular/core": "~14.1.0", - "@angular/forms": "~14.1.0", - "@angular/localize": "~14.1.0", - "@angular/platform-browser": "~14.1.0", - "@angular/platform-browser-dynamic": "~14.1.0", - "@angular/router": "~14.1.0", + "@angular/common": "~14.2.0", + "@angular/compiler": "~14.2.0", + "@angular/core": "~14.2.0", + "@angular/forms": "~14.2.0", + "@angular/localize": "~14.2.0", + "@angular/platform-browser": "~14.2.0", + "@angular/platform-browser-dynamic": "~14.2.0", + "@angular/router": "~14.2.0", "@ng-bootstrap/ng-bootstrap": "^13.0.0", "@ng-select/ng-select": "^9.0.2", "@ngneat/dirty-check-forms": "^3.0.2", @@ -40,7 +40,7 @@ "@angular-builders/jest": "14.0.1", "@angular-devkit/build-angular": "~14.2.1", "@angular/cli": "~14.2.1", - "@angular/compiler-cli": "~14.1.0", + "@angular/compiler-cli": "~14.2.0", "@types/jest": "28.1.6", "@types/node": "^18.7.14", "codelyzer": "^6.0.2", From 5f7c724531600a562178af7851944bab3f677e51 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 2 Sep 2022 01:26:05 -0700 Subject: [PATCH 184/348] update jest-preset-angular --- src-ui/package-lock.json | 2 +- src-ui/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 48b8d4973..2d4a6d5f7 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -42,7 +42,7 @@ "concurrently": "7.3.0", "jest": "28.1.3", "jest-environment-jsdom": "^29.0.1", - "jest-preset-angular": "^12.2.0", + "jest-preset-angular": "^12.2.2", "ts-node": "~10.9.1", "tslint": "~6.1.3", "typescript": "~4.7.4", diff --git a/src-ui/package.json b/src-ui/package.json index 6c52ed1a6..e3e35fb43 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -47,7 +47,7 @@ "concurrently": "7.3.0", "jest": "28.1.3", "jest-environment-jsdom": "^29.0.1", - "jest-preset-angular": "^12.2.0", + "jest-preset-angular": "^12.2.2", "ts-node": "~10.9.1", "tslint": "~6.1.3", "typescript": "~4.7.4", From 50ee1c0bd57ee1741eb2f671ebc3c138353b1f26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Sep 2022 20:06:44 +0000 Subject: [PATCH 185/348] Bump tj-actions/changed-files from 24 to 29.0.2 Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 24 to 29.0.2. - [Release notes](https://github.com/tj-actions/changed-files/releases) - [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md) - [Commits](https://github.com/tj-actions/changed-files/compare/v24...v29.0.2) --- updated-dependencies: - dependency-name: tj-actions/changed-files dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9606e8d50..bdb98741d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,7 +121,7 @@ jobs: - name: Get changed files id: changed-files-specific - uses: tj-actions/changed-files@v24 + uses: tj-actions/changed-files@v29.0.2 with: files: | src/** From 03559454f62210783d3acbf828dd271d81c48b46 Mon Sep 17 00:00:00 2001 From: Erik Arvstedt Date: Sun, 4 Sep 2022 15:21:36 +0200 Subject: [PATCH 186/348] docs/configuration: Fix binary variable defaults --- docs/configuration.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/configuration.rst b/docs/configuration.rst index 7eac9440f..4d0231933 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -799,10 +799,10 @@ the program doesn't automatically execute it (ie. the program isn't in your $PATH), then you'll need to specify the literal path for that program. PAPERLESS_CONVERT_BINARY= - Defaults to "/usr/bin/convert". + Defaults to "convert". PAPERLESS_GS_BINARY= - Defaults to "/usr/bin/gs". + Defaults to "gs". .. _configuration-docker: From 148e875523ca706844ca0f223da754043a4a46d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Sep 2022 20:34:12 +0000 Subject: [PATCH 187/348] Bump pytest from 7.1.2 to 7.1.3 Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.1.2 to 7.1.3. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/7.1.2...7.1.3) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Pipfile.lock | 78 +++++++++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 43 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index bcdf26a35..5f995b606 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -36,11 +36,11 @@ }, "arrow": { "hashes": [ - "sha256:05caf1fd3d9a11a1135b2b6f09887421153b94558e5ef4d090b567b47173ac2b", - "sha256:d622c46ca681b5b3e3574fcb60a04e5cc81b9625112d5fb2b44220c36c892177" + "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1", + "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2" ], "markers": "python_version >= '3.6'", - "version": "==1.2.2" + "version": "==1.2.3" }, "asgiref": { "hashes": [ @@ -344,7 +344,7 @@ "django-q": { "editable": true, "git": "https://github.com/paperless-ngx/django-q.git", - "ref": "9838d0da2e6a3bc7b3944542ab581138a213872d" + "ref": "21ef9116f6386cf985ccd812dde4111efcfd1ba9" }, "djangorestframework": { "hashes": [ @@ -770,7 +770,9 @@ "pikepdf": { "hashes": [ "sha256:09fd6ad782a93a1f7599771132502c7ca4ac6473527925cd822f61f0740e1401", + "sha256:1804b039d66f0fe878eddf7c6b7ee0166926f3b66f9c243487c5eb552e8c95f6", "sha256:1a1c65c3b66370492a4de982fd4ad8f9ced0d7529dc39f03b58d713c8b5bdce1", + "sha256:25e651d584e1e347ef76c4e9dbcc3c23539e851abb634ade11260b2632589dd5", "sha256:2cbb53f1d2979a52f4cd2b4a12410e537dc854ab28093b56dab00864dc0090c4", "sha256:3c85e79a297c77436c11a09b72ff69f5408ad8d1926c33f5722405c8c70b69af", "sha256:3df3e39720b68e78c2690e3c4ca95d586b3ebcb099defe7f3ed92189c1b80c70", @@ -821,6 +823,7 @@ "sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f", "sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069", "sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402", + "sha256:336b9036127eab855beec9662ac3ea13a4544a523ae273cbf108b228ecac8437", "sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885", "sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e", "sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be", @@ -849,6 +852,7 @@ "sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8", "sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb", "sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3", + "sha256:adabc0bce035467fb537ef3e5e74f2847c8af217ee0be0455d4fec8adc0462fc", "sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf", "sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1", "sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a", @@ -1275,11 +1279,11 @@ }, "sniffio": { "hashes": [ - "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663", - "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de" + "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101", + "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384" ], - "markers": "python_version >= '3.5'", - "version": "==1.2.0" + "markers": "python_version >= '3.7'", + "version": "==1.3.0" }, "sqlparse": { "hashes": [ @@ -1756,6 +1760,9 @@ "version": "==0.4.5" }, "coverage": { + "extras": [ + "toml" + ], "hashes": [ "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2", "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820", @@ -1821,10 +1828,10 @@ }, "distlib": { "hashes": [ - "sha256:a7f75737c70be3b25e2bee06288cec4e4c221de18455b2dd037fe2a795cab2fe", - "sha256:b710088c59f06338ca514800ad795a132da19fda270e3ce4affc74abf955a26c" + "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46", + "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e" ], - "version": "==0.3.5" + "version": "==0.3.6" }, "docopt": { "hashes": [ @@ -1858,11 +1865,11 @@ }, "faker": { "hashes": [ - "sha256:067a03f64e555261610e69277536072997b4576dbf84b113faef3c06d85b466b", - "sha256:0e00bfa1eadf1493f15662edb181222fea4847764cf3f9ff3e66ee0f95c9a644" + "sha256:6db56e2c43a2b74250d1c332ef25fef7dc07dcb6c5fab5329dd7b4467b8ed7b9", + "sha256:e02c55a5b0586caaf913cc6c254b3de178e08b031c5922e590fd033ebbdbfd02" ], "markers": "python_version >= '3.6'", - "version": "==14.1.0" + "version": "==14.2.0" }, "filelock": { "hashes": [ @@ -1874,11 +1881,11 @@ }, "identify": { "hashes": [ - "sha256:25851c8c1370effb22aaa3c987b30449e9ff0cece408f810ae6ce408fdd20893", - "sha256:887e7b91a1be152b0d46bbf072130235a8117392b9f1828446079a816a05ef44" + "sha256:962d9bec27ccd1fcceff9b11f8c635afeb163ea3d8b6b30d8f1eee37ec7fac47", + "sha256:b020e876cec2b11dadb3324fa0427eb744b7d66ef19ac579a748dfff774b6dcf" ], "markers": "python_version >= '3.7'", - "version": "==2.5.3" + "version": "==2.5.4" }, "idna": { "hashes": [ @@ -1896,14 +1903,6 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.4.1" }, - "importlib-metadata": { - "hashes": [ - "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670", - "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23" - ], - "markers": "python_version < '3.10'", - "version": "==4.12.0" - }, "iniconfig": { "hashes": [ "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", @@ -2028,10 +2027,11 @@ }, "pathspec": { "hashes": [ - "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", - "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" + "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93", + "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d" ], - "version": "==0.9.0" + "markers": "python_version >= '3.7'", + "version": "==0.10.1" }, "platformdirs": { "hashes": [ @@ -2091,11 +2091,11 @@ }, "pytest": { "hashes": [ - "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c", - "sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45" + "sha256:1377bda3466d70b55e3f5cecfa55bb7cfcf219c7964629b967c37cf0bda818b7", + "sha256:4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39" ], "index": "pypi", - "version": "==7.1.2" + "version": "==7.1.3" }, "pytest-cov": { "hashes": [ @@ -2336,7 +2336,7 @@ "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" ], - "markers": "python_version > '2.7'", + "markers": "python_version >= '3.7'", "version": "==6.2" }, "tox": { @@ -2365,19 +2365,11 @@ }, "virtualenv": { "hashes": [ - "sha256:4193b7bc8a6cd23e4eb251ac64f29b4398ab2c233531e66e40b19a6b7b0d30c1", - "sha256:d86ea0bb50e06252d79e6c241507cb904fcd66090c3271381372d6221a3970f9" + "sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782", + "sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22" ], "markers": "python_version >= '3.6'", - "version": "==20.16.3" - }, - "zipp": { - "hashes": [ - "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2", - "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009" - ], - "markers": "python_version < '3.9'", - "version": "==3.8.1" + "version": "==20.16.4" } } } From 2680a8345541f60956e635270cae0f26cd00723d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Sep 2022 15:03:09 +0000 Subject: [PATCH 188/348] Bump tqdm from 4.64.0 to 4.64.1 Bumps [tqdm](https://github.com/tqdm/tqdm) from 4.64.0 to 4.64.1. - [Release notes](https://github.com/tqdm/tqdm/releases) - [Commits](https://github.com/tqdm/tqdm/compare/v4.64.0...v4.64.1) --- updated-dependencies: - dependency-name: tqdm dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Pipfile.lock | 104 ++++++++++++++++++++++++++------------------------- 1 file changed, 54 insertions(+), 50 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 5f995b606..c9daa102b 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -39,7 +39,7 @@ "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1", "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==1.2.3" }, "asgiref": { @@ -55,7 +55,7 @@ "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15", "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==4.0.2" }, "attrs": { @@ -115,7 +115,7 @@ "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2022.6.15" }, "cffi": { @@ -208,7 +208,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.1.1" }, "click": { @@ -244,38 +244,42 @@ }, "cryptography": { "hashes": [ - "sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59", - "sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596", - "sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3", - "sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5", - "sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab", - "sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884", - "sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82", - "sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b", - "sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441", - "sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa", - "sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d", - "sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b", - "sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a", - "sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6", - "sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157", - "sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280", - "sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282", - "sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67", - "sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8", - "sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046", - "sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327", - "sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9" + "sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a", + "sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f", + "sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0", + "sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407", + "sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7", + "sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6", + "sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153", + "sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750", + "sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad", + "sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6", + "sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b", + "sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5", + "sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a", + "sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d", + "sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d", + "sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294", + "sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0", + "sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a", + "sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac", + "sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61", + "sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013", + "sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e", + "sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb", + "sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9", + "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd", + "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818" ], - "markers": "python_version >= '3.6'", - "version": "==37.0.4" + "markers": "python_full_version >= '3.6.0'", + "version": "==38.0.1" }, "daphne": { "hashes": [ "sha256:76ffae916ba3aa66b46996c14fa713e46004788167a4873d647544e750e0e99f", "sha256:a9af943c79717bc52fe64a3c236ae5d3adccc8b5be19c881b442d2c3db233393" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==3.0.2" }, "dateparser": { @@ -386,7 +390,7 @@ "sha256:70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06", "sha256:8ddd78563b633ca55346c8cd41ec0af27d3c79931828beffb46ce70a379e7442" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==0.13.0" }, "hiredis": { @@ -433,7 +437,7 @@ "sha256:f52010e0a44e3d8530437e7da38d11fb822acfb0d5b12e9cd5ba655509937ca0", "sha256:f8196f739092a78e4f6b1b2172679ed3343c39c61a3e9d722ce6fcf1dac2824a" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.0.0" }, "httptools": { @@ -549,7 +553,7 @@ "sha256:4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35", "sha256:f21f109b3c7ff9d95f8387f752d0d9c34a02aa2f7060c2135f465da0e5160ff6" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==1.1.0" }, "langdetect": { @@ -740,7 +744,7 @@ "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==21.3" }, "pathvalidate": { @@ -877,7 +881,7 @@ "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==1.0.0" }, "portalocker": { @@ -1148,7 +1152,7 @@ "sha256:fbc88d3ba402b5d041d204ec2449c4078898f89c4a6e6f0ed1c1a510ef1e221d", "sha256:fbd3fe37353c62fd0eb19fb76f78aa693716262bcd5f9c14bb9e5aca4b3f0dc4" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2022.3.2" }, "reportlab": { @@ -1298,7 +1302,7 @@ "sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b", "sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==3.1.0" }, "tika": { @@ -1310,11 +1314,11 @@ }, "tqdm": { "hashes": [ - "sha256:40be55d30e200777a307a7585aee69e4eabb46b4ec6a4b4a5f2d9f11e7d5408d", - "sha256:74a2cdefe14d11442cedf3ba4e21a3b84ff9a2dbdc6cfae2c34addb2a14a5ea6" + "sha256:5f4f682a004951c1b450bc753c710e9280c5746ce6ffedee253ddbcbf54cf1e4", + "sha256:6fee160d6ffcd1b1c68c65f14c829c22832bc401726335ce92c52d395944a6a1" ], "index": "pypi", - "version": "==4.64.0" + "version": "==4.64.1" }, "twisted": { "extras": [ @@ -1332,7 +1336,7 @@ "sha256:2e4582b70f04b2345908254684a984206c0d9b50e3074a24a4c55aba21d24d01", "sha256:41223af4a9d5726e645a8ee82480f413e5e300dd257db94bc38ae12ea48fb2e5" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==22.2.1" }, "typing-extensions": { @@ -1348,7 +1352,7 @@ "sha256:21f4f0d7241572efa7f7a4fdabb052e61b55dc48274e6842697ccdf5253e5451", "sha256:c3119520447d68ef3eb8187a55a4f44fa455f30eb1b4238fa5691ba094f2b05b" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2022.2" }, "tzlocal": { @@ -1356,7 +1360,7 @@ "sha256:89885494684c929d9191c57aa27502afc87a579be5cdd3225c77c463ea043745", "sha256:ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==4.2" }, "urllib3": { @@ -1724,7 +1728,7 @@ "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2022.6.15" }, "cfgv": { @@ -1740,7 +1744,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.1.1" }, "click": { @@ -1881,11 +1885,11 @@ }, "identify": { "hashes": [ - "sha256:962d9bec27ccd1fcceff9b11f8c635afeb163ea3d8b6b30d8f1eee37ec7fac47", - "sha256:b020e876cec2b11dadb3324fa0427eb744b7d66ef19ac579a748dfff774b6dcf" + "sha256:322a5699daecf7c6fd60e68852f36f2ecbb6a36ff6e6e973e0d2bb6fca203ee6", + "sha256:ef78c0d96098a3b5fe7720be4a97e73f439af7cf088ebf47b620aeaa10fadf97" ], "markers": "python_version >= '3.7'", - "version": "==2.5.4" + "version": "==2.5.5" }, "idna": { "hashes": [ @@ -2022,7 +2026,7 @@ "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==21.3" }, "pathspec": { @@ -2046,7 +2050,7 @@ "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==1.0.0" }, "pre-commit": { @@ -2319,7 +2323,7 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_full_version < '3.11.0a7'", + "markers": "python_version >= '3.7'", "version": "==2.0.1" }, "tornado": { From 1fda0782ae0f45597ec89062855abcd997965299 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Sep 2022 16:10:32 +0000 Subject: [PATCH 189/348] Bump black from 22.6.0 to 22.8.0 Bumps [black](https://github.com/psf/black) from 22.6.0 to 22.8.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/22.6.0...22.8.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Pipfile.lock | 88 ++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index c9daa102b..edc344fec 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -39,7 +39,7 @@ "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1", "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==1.2.3" }, "asgiref": { @@ -55,7 +55,7 @@ "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15", "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==4.0.2" }, "attrs": { @@ -115,7 +115,7 @@ "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2022.6.15" }, "cffi": { @@ -208,7 +208,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2.1.1" }, "click": { @@ -271,7 +271,7 @@ "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd", "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==38.0.1" }, "daphne": { @@ -279,7 +279,7 @@ "sha256:76ffae916ba3aa66b46996c14fa713e46004788167a4873d647544e750e0e99f", "sha256:a9af943c79717bc52fe64a3c236ae5d3adccc8b5be19c881b442d2c3db233393" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==3.0.2" }, "dateparser": { @@ -390,7 +390,7 @@ "sha256:70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06", "sha256:8ddd78563b633ca55346c8cd41ec0af27d3c79931828beffb46ce70a379e7442" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==0.13.0" }, "hiredis": { @@ -437,7 +437,7 @@ "sha256:f52010e0a44e3d8530437e7da38d11fb822acfb0d5b12e9cd5ba655509937ca0", "sha256:f8196f739092a78e4f6b1b2172679ed3343c39c61a3e9d722ce6fcf1dac2824a" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2.0.0" }, "httptools": { @@ -553,7 +553,7 @@ "sha256:4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35", "sha256:f21f109b3c7ff9d95f8387f752d0d9c34a02aa2f7060c2135f465da0e5160ff6" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==1.1.0" }, "langdetect": { @@ -744,7 +744,7 @@ "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==21.3" }, "pathvalidate": { @@ -881,7 +881,7 @@ "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==1.0.0" }, "portalocker": { @@ -1152,7 +1152,7 @@ "sha256:fbc88d3ba402b5d041d204ec2449c4078898f89c4a6e6f0ed1c1a510ef1e221d", "sha256:fbd3fe37353c62fd0eb19fb76f78aa693716262bcd5f9c14bb9e5aca4b3f0dc4" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2022.3.2" }, "reportlab": { @@ -1302,7 +1302,7 @@ "sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b", "sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==3.1.0" }, "tika": { @@ -1336,7 +1336,7 @@ "sha256:2e4582b70f04b2345908254684a984206c0d9b50e3074a24a4c55aba21d24d01", "sha256:41223af4a9d5726e645a8ee82480f413e5e300dd257db94bc38ae12ea48fb2e5" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==22.2.1" }, "typing-extensions": { @@ -1352,7 +1352,7 @@ "sha256:21f4f0d7241572efa7f7a4fdabb052e61b55dc48274e6842697ccdf5253e5451", "sha256:c3119520447d68ef3eb8187a55a4f44fa455f30eb1b4238fa5691ba094f2b05b" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2022.2" }, "tzlocal": { @@ -1360,7 +1360,7 @@ "sha256:89885494684c929d9191c57aa27502afc87a579be5cdd3225c77c463ea043745", "sha256:ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==4.2" }, "urllib3": { @@ -1696,39 +1696,39 @@ }, "black": { "hashes": [ - "sha256:074458dc2f6e0d3dab7928d4417bb6957bb834434516f21514138437accdbe90", - "sha256:187d96c5e713f441a5829e77120c269b6514418f4513a390b0499b0987f2ff1c", - "sha256:2ea29072e954a4d55a2ff58971b83365eba5d3d357352a07a7a4df0d95f51c78", - "sha256:4af5bc0e1f96be5ae9bd7aaec219c901a94d6caa2484c21983d043371c733fc4", - "sha256:560558527e52ce8afba936fcce93a7411ab40c7d5fe8c2463e279e843c0328ee", - "sha256:568ac3c465b1c8b34b61cd7a4e349e93f91abf0f9371eda1cf87194663ab684e", - "sha256:6797f58943fceb1c461fb572edbe828d811e719c24e03375fd25170ada53825e", - "sha256:6c1734ab264b8f7929cef8ae5f900b85d579e6cbfde09d7387da8f04771b51c6", - "sha256:6c6d39e28aed379aec40da1c65434c77d75e65bb59a1e1c283de545fb4e7c6c9", - "sha256:7ba9be198ecca5031cd78745780d65a3f75a34b2ff9be5837045dce55db83d1c", - "sha256:94783f636bca89f11eb5d50437e8e17fbc6a929a628d82304c80fa9cd945f256", - "sha256:a218d7e5856f91d20f04e931b6f16d15356db1c846ee55f01bac297a705ca24f", - "sha256:a3db5b6409b96d9bd543323b23ef32a1a2b06416d525d27e0f67e74f1446c8f2", - "sha256:ac609cf8ef5e7115ddd07d85d988d074ed00e10fbc3445aee393e70164a2219c", - "sha256:b154e6bbde1e79ea3260c4b40c0b7b3109ffcdf7bc4ebf8859169a6af72cd70b", - "sha256:b270a168d69edb8b7ed32c193ef10fd27844e5c60852039599f9184460ce0807", - "sha256:b9fd45787ba8aa3f5e0a0a98920c1012c884622c6c920dbe98dbd05bc7c70fbf", - "sha256:c85928b9d5f83b23cee7d0efcb310172412fbf7cb9d9ce963bd67fd141781def", - "sha256:c9a3ac16efe9ec7d7381ddebcc022119794872abce99475345c5a61aa18c45ad", - "sha256:cfaf3895a9634e882bf9d2363fed5af8888802d670f58b279b0bece00e9a872d", - "sha256:e439798f819d49ba1c0bd9664427a05aab79bfba777a6db94fd4e56fae0cb849", - "sha256:f586c26118bc6e714ec58c09df0157fe2d9ee195c764f630eb0d8e7ccce72e69", - "sha256:f6fe02afde060bbeef044af7996f335fbe90b039ccf3f5eb8f16df8b20f77666" + "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411", + "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c", + "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497", + "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e", + "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342", + "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27", + "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41", + "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab", + "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5", + "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16", + "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e", + "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c", + "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe", + "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3", + "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec", + "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3", + "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd", + "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c", + "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4", + "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90", + "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869", + "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747", + "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875" ], "index": "pypi", - "version": "==22.6.0" + "version": "==22.8.0" }, "certifi": { "hashes": [ "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2022.6.15" }, "cfgv": { @@ -1744,7 +1744,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==2.1.1" }, "click": { @@ -2026,7 +2026,7 @@ "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==21.3" }, "pathspec": { @@ -2050,7 +2050,7 @@ "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==1.0.0" }, "pre-commit": { From 45fd01a6889a6aafb6b5e98a5f4d45ee64450471 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Wed, 7 Sep 2022 12:34:05 -0700 Subject: [PATCH 190/348] Decrease the final size of the images containing .deb and .whl files --- docker-builders/Dockerfile.jbig2enc | 30 +++++++-------- docker-builders/Dockerfile.pikepdf | 60 ++++++++++++++--------------- docker-builders/Dockerfile.psycopg2 | 49 ++++++++++++----------- docker-builders/Dockerfile.qpdf | 53 +++++++++++++------------ 4 files changed, 93 insertions(+), 99 deletions(-) diff --git a/docker-builders/Dockerfile.jbig2enc b/docker-builders/Dockerfile.jbig2enc index d9f1643fd..90318084f 100644 --- a/docker-builders/Dockerfile.jbig2enc +++ b/docker-builders/Dockerfile.jbig2enc @@ -7,6 +7,7 @@ FROM debian:bullseye-slim as main LABEL org.opencontainers.image.description="A intermediate image with jbig2enc built" ARG DEBIAN_FRONTEND=noninteractive +ARG JBIG2ENC_VERSION ARG BUILD_PACKAGES="\ build-essential \ @@ -19,21 +20,16 @@ ARG BUILD_PACKAGES="\ WORKDIR /usr/src/jbig2enc -# As this is an base image for a multi-stage final image -# the added size of the install is basically irrelevant -RUN apt-get update --quiet \ - && apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \ - && rm -rf /var/lib/apt/lists/* - -# Layers after this point change according to required version -# For better caching, seperate the basic installs from -# the building - -ARG JBIG2ENC_VERSION - RUN set -eux \ - && git clone --quiet --branch $JBIG2ENC_VERSION https://github.com/agl/jbig2enc . -RUN set -eux \ - && ./autogen.sh -RUN set -eux \ - && ./configure && make + && echo "Installing build tools" \ + && apt-get update --quiet \ + && apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \ + && echo "Building jbig2enc" \ + && git clone --quiet --branch $JBIG2ENC_VERSION https://github.com/agl/jbig2enc . \ + && ./autogen.sh \ + && ./configure \ + && make \ + && echo "Cleaning up image" \ + && apt-get -y purge ${BUILD_PACKAGES} \ + && apt-get -y autoremove --purge \ + && rm -rf /var/lib/apt/lists/* diff --git a/docker-builders/Dockerfile.pikepdf b/docker-builders/Dockerfile.pikepdf index ff7086b7c..5f0c3eea2 100644 --- a/docker-builders/Dockerfile.pikepdf +++ b/docker-builders/Dockerfile.pikepdf @@ -17,6 +17,7 @@ FROM python:3.9-slim-bullseye as main LABEL org.opencontainers.image.description="A intermediate image with pikepdf wheel built" ARG DEBIAN_FRONTEND=noninteractive +ARG PIKEPDF_VERSION ARG BUILD_PACKAGES="\ build-essential \ @@ -55,34 +56,33 @@ COPY --from=qpdf-builder /usr/src/qpdf/*.deb ./ # the added size of the install is basically irrelevant RUN set -eux \ - && apt-get update --quiet \ - && apt-get install --yes --quiet --no-install-recommends $BUILD_PACKAGES \ - && dpkg --install libqpdf28_*.deb \ - && dpkg --install libqpdf-dev_*.deb \ - && python3 -m pip install --no-cache-dir --upgrade \ - pip \ - wheel \ - # https://pikepdf.readthedocs.io/en/latest/installation.html#requirements - pybind11 \ - && rm -rf /var/lib/apt/lists/* - -# Layers after this point change according to required version -# For better caching, seperate the basic installs from -# the building - -ARG PIKEPDF_VERSION - -RUN set -eux \ + && echo "Installing build tools" \ + && apt-get update --quiet \ + && apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \ + && echo "Installing qpdf" \ + && dpkg --install libqpdf28_*.deb \ + && dpkg --install libqpdf-dev_*.deb \ + && echo "Installing Python tools" \ + && python3 -m pip install --no-cache-dir --upgrade \ + pip \ + wheel \ + # https://pikepdf.readthedocs.io/en/latest/installation.html#requirements + pybind11 \ && echo "Building pikepdf wheel ${PIKEPDF_VERSION}" \ - && mkdir wheels \ - && python3 -m pip wheel \ - # Build the package at the required version - pikepdf==${PIKEPDF_VERSION} \ - # Output the *.whl into this directory - --wheel-dir wheels \ - # Do not use a binary packge for the package being built - --no-binary=pikepdf \ - # Do use binary packages for dependencies - --prefer-binary \ - --no-cache-dir \ - && ls -ahl wheels + && mkdir wheels \ + && python3 -m pip wheel \ + # Build the package at the required version + pikepdf==${PIKEPDF_VERSION} \ + # Output the *.whl into this directory + --wheel-dir wheels \ + # Do not use a binary packge for the package being built + --no-binary=pikepdf \ + # Do use binary packages for dependencies + --prefer-binary \ + # Don't cache build files + --no-cache-dir \ + && ls -ahl wheels \ + && echo "Cleaning up image" \ + && apt-get -y purge ${BUILD_PACKAGES} \ + && apt-get -y autoremove --purge \ + && rm -rf /var/lib/apt/lists/* diff --git a/docker-builders/Dockerfile.psycopg2 b/docker-builders/Dockerfile.psycopg2 index 5e6157a02..56bc7a1b2 100644 --- a/docker-builders/Dockerfile.psycopg2 +++ b/docker-builders/Dockerfile.psycopg2 @@ -6,6 +6,7 @@ FROM python:3.9-slim-bullseye as main LABEL org.opencontainers.image.description="A intermediate image with psycopg2 wheel built" +ARG PSYCOPG2_VERSION ARG DEBIAN_FRONTEND=noninteractive ARG BUILD_PACKAGES="\ @@ -21,29 +22,27 @@ WORKDIR /usr/src # the added size of the install is basically irrelevant RUN set -eux \ - && apt-get update --quiet \ - && apt-get install --yes --quiet --no-install-recommends $BUILD_PACKAGES \ - && rm -rf /var/lib/apt/lists/* \ - && python3 -m pip install --no-cache-dir --upgrade pip wheel - -# Layers after this point change according to required version -# For better caching, seperate the basic installs from -# the building - -ARG PSYCOPG2_VERSION - -RUN set -eux \ + && echo "Installing build tools" \ + && apt-get update --quiet \ + && apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \ + && echo "Installing Python tools" \ + && python3 -m pip install --no-cache-dir --upgrade pip wheel \ && echo "Building psycopg2 wheel ${PSYCOPG2_VERSION}" \ - && cd /usr/src \ - && mkdir wheels \ - && python3 -m pip wheel \ - # Build the package at the required version - psycopg2==${PSYCOPG2_VERSION} \ - # Output the *.whl into this directory - --wheel-dir wheels \ - # Do not use a binary packge for the package being built - --no-binary=psycopg2 \ - # Do use binary packages for dependencies - --prefer-binary \ - --no-cache-dir \ - && ls -ahl wheels/ + && cd /usr/src \ + && mkdir wheels \ + && python3 -m pip wheel \ + # Build the package at the required version + psycopg2==${PSYCOPG2_VERSION} \ + # Output the *.whl into this directory + --wheel-dir wheels \ + # Do not use a binary packge for the package being built + --no-binary=psycopg2 \ + # Do use binary packages for dependencies + --prefer-binary \ + # Don't cache build files + --no-cache-dir \ + && ls -ahl wheels/ \ + && echo "Cleaning up image" \ + && apt-get -y purge ${BUILD_PACKAGES} \ + && apt-get -y autoremove --purge \ + && rm -rf /var/lib/apt/lists/* diff --git a/docker-builders/Dockerfile.qpdf b/docker-builders/Dockerfile.qpdf index 0d738a4ad..0cc5fba24 100644 --- a/docker-builders/Dockerfile.qpdf +++ b/docker-builders/Dockerfile.qpdf @@ -1,8 +1,15 @@ +# This Dockerfile compiles the jbig2enc library +# Inputs: +# - QPDF_VERSION - the version of qpdf to build a .deb. +# Must be preset as a deb-src + FROM debian:bullseye-slim as main LABEL org.opencontainers.image.description="A intermediate image with qpdf built" ARG DEBIAN_FRONTEND=noninteractive +# This must match to pikepdf's minimum at least +ARG QPDF_VERSION ARG BUILD_PACKAGES="\ build-essential \ @@ -23,31 +30,23 @@ WORKDIR /usr/src # the added size of the install is basically irrelevant RUN set -eux \ - && apt-get update --quiet \ - && apt-get install --yes --quiet --no-install-recommends $BUILD_PACKAGES \ - && rm -rf /var/lib/apt/lists/* - -# Layers after this point change according to required version -# For better caching, seperate the basic installs from -# the building - -# This must match to pikepdf's minimum at least -ARG QPDF_VERSION - -# In order to get the required version of qpdf, it is backported from bookwork -# and then built from source -RUN set -eux \ + && echo "Installing build tools" \ + && apt-get update --quiet \ + && apt-get install --yes --quiet --no-install-recommends $BUILD_PACKAGES \ && echo "Building qpdf" \ - && echo "deb-src http://deb.debian.org/debian/ bookworm main" > /etc/apt/sources.list.d/bookworm-src.list \ - && apt-get update \ - && mkdir qpdf \ - && cd qpdf \ - && apt-get source --yes --quiet qpdf=${QPDF_VERSION}-1/bookworm \ - && rm -rf /var/lib/apt/lists/* \ - && cd qpdf-$QPDF_VERSION \ - # We don't need to build the tests (also don't run them) - && rm -rf libtests \ - && DEBEMAIL=hello@paperless-ngx.com debchange --bpo \ - && export DEB_BUILD_OPTIONS="terse nocheck nodoc parallel=2" \ - && dpkg-buildpackage --build=binary --unsigned-source --unsigned-changes \ - && ls -ahl ../*.deb + && echo "deb-src http://deb.debian.org/debian/ bookworm main" > /etc/apt/sources.list.d/bookworm-src.list \ + && apt-get update \ + && mkdir qpdf \ + && cd qpdf \ + && apt-get source --yes --quiet qpdf=${QPDF_VERSION}-1/bookworm \ + && cd qpdf-$QPDF_VERSION \ + # We don't need to build the tests (also don't run them) + && rm -rf libtests \ + && DEBEMAIL=hello@paperless-ngx.com debchange --bpo \ + && export DEB_BUILD_OPTIONS="terse nocheck nodoc parallel=2" \ + && dpkg-buildpackage --build=binary --unsigned-source --unsigned-changes --post-clean \ + && ls -ahl ../*.deb \ + && echo "Cleaning up image" \ + && apt-get -y purge ${BUILD_PACKAGES} \ + && apt-get -y autoremove --purge \ + && rm -rf /var/lib/apt/lists/* From 55d36b39b1b353a447bfeafa4895d82ca8c3eaf4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Sep 2022 16:15:05 +0000 Subject: [PATCH 191/348] Bump pikepdf from 5.5.0 to 5.6.1 Bumps [pikepdf](https://github.com/pikepdf/pikepdf) from 5.5.0 to 5.6.1. - [Release notes](https://github.com/pikepdf/pikepdf/releases) - [Commits](https://github.com/pikepdf/pikepdf/compare/v5.5.0...v5.6.1) --- updated-dependencies: - dependency-name: pikepdf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Pipfile | 2 +- Pipfile.lock | 72 ++++++++++++++++++++++++++-------------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/Pipfile b/Pipfile index e856607b6..87cf55f3f 100644 --- a/Pipfile +++ b/Pipfile @@ -23,7 +23,7 @@ imap-tools = "*" langdetect = "*" pathvalidate = "*" pillow = "~=9.2" -pikepdf = "~=5.5" +pikepdf = "~=5.6" python-gnupg = "*" python-dotenv = "*" python-dateutil = "*" diff --git a/Pipfile.lock b/Pipfile.lock index edc344fec..bf59cc8e2 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "db8cfb4b0134a0fc7baa8c635faa98f2b17b96269ad73659056873ae99ff7f1f" + "sha256": "8d8183effbecd0c91106f23f66517f720754f7d129eec22c86969da43f69ca82" }, "pipfile-spec": 6, "requires": {}, @@ -773,42 +773,42 @@ }, "pikepdf": { "hashes": [ - "sha256:09fd6ad782a93a1f7599771132502c7ca4ac6473527925cd822f61f0740e1401", - "sha256:1804b039d66f0fe878eddf7c6b7ee0166926f3b66f9c243487c5eb552e8c95f6", - "sha256:1a1c65c3b66370492a4de982fd4ad8f9ced0d7529dc39f03b58d713c8b5bdce1", - "sha256:25e651d584e1e347ef76c4e9dbcc3c23539e851abb634ade11260b2632589dd5", - "sha256:2cbb53f1d2979a52f4cd2b4a12410e537dc854ab28093b56dab00864dc0090c4", - "sha256:3c85e79a297c77436c11a09b72ff69f5408ad8d1926c33f5722405c8c70b69af", - "sha256:3df3e39720b68e78c2690e3c4ca95d586b3ebcb099defe7f3ed92189c1b80c70", - "sha256:4534efdcde2d5f7a8cad336393c0cb9c5a38d28c91ac4d8e1c5d32d1cf03cb84", - "sha256:4ec70c09f94220c1a275baf6973c7ab0f1fb4309ee7a8c000abcc7ea351bd2a2", - "sha256:53efd1db3cf828cbdb9bc691a118bc7261f99e395f439c92c6f38e5ac7a47093", - "sha256:53f253be2df5cd72594dd7518a20bf8c9df391510557ed065f74bf66b09cd9f1", - "sha256:5e70a77d7bd41277559af46aa2d7b538fcf79cad15cf9493eee1228dae7b015b", - "sha256:62dab267b5c37e5ca69864b4125cfd60462567f4120506ec6439a76ca9c50e6f", - "sha256:6789a8ff3635f8c830b758468a07fb907b87e0da39684b28d21990fef33f57df", - "sha256:693a3dc9b0d3b396aea92c8b3a5a7ed1c6b8eeafe819bb50df6bb9817ad1b79f", - "sha256:7447fe441a8913f984a6a6b2ea4a7776c309d3e82c738daa973e21e764e5b819", - "sha256:88b69bc4b7365e5563afe63b9c25473ef6155ad9b220fdd6110d5abbd44e578d", - "sha256:8d573ac603bc5e081480e9c31d349445c1f9f6558d51c04f98d2661c18d67e70", - "sha256:9159798c95c0f25ffb0a1610e26b9d412cd0936f041fb77be8abaab9dc69ed3d", - "sha256:999bf1c23a393a72503bab7241cf2f6e785e6064e9eb20f64a4499a028da477d", - "sha256:9dd51dbdfa0470135cced6f14ef77ab2d2478f15711b1376984702191ef7625b", - "sha256:a6fa014b9c49e6a8fab37b0ac6a775ad9254df24d8468a554ec9a38f610afd1e", - "sha256:a8b92effd2de2abf1935f4308f42f6321053f49c0750ac4a4e3dc93fb4ba27f1", - "sha256:af1a3488057e3a7f5bc1b81e914b59cea997e2db9d67071f94a1f01588e561a3", - "sha256:b530abc08a7b15fb3721f0fdc0189c071fa53f87828fcf8b5e80fc6f9a377f08", - "sha256:bd0004901bd253dbe3ebd040fe23430c4a87235f4d55a1d8169b6d9ea7443f69", - "sha256:c51f53f77dc4d4fb147b3175224e3646922377b9c222b41e513495145291fe7c", - "sha256:c85c49b0d5462664105d8566070e04a54473951dfc6404d0945cb877b942c562", - "sha256:c9352a909f7c6cbcb743d1510fdbfdd7f2bf42fdd4f34b0234558d24bdb2f738", - "sha256:c94af61eb542289b4411ebcb8d46ccce678eaca1f9dfd1cfe720bd3ea75a4839", - "sha256:d4e57f973c7cd50ba0a964aae680f4d1d814c49205b8da018a956260ce3a09d6", - "sha256:d5df4d0dbdda627ea8d4c593a16f7af6c1e3d4f7a34f9ffacecc805e47738c21", - "sha256:f01e0e889769dc9995086faba97d947437cd92284a4ffc743c29e1872ddc9f4b" + "sha256:03fb70ff4fada9cba864d04033f4166b5bf7fa85c90cdc05afd0ab87c9ccaa1a", + "sha256:054a06e954d2c3efb79d64e11583f271490a6fbd5a0636eb3d903ceb4ae2d780", + "sha256:13d3c1a8112eddfa1090fcfd0478187e1e69ec43680a9cda91ff2594f67acd35", + "sha256:235456098db3e2ee30ff2996b8d59f7d096c38ef6da5655048038a86d23a3cc8", + "sha256:24c0d95e34b6f9030cabc06cc793e288c14f78897730ff4b78cd6e435cd0a6ff", + "sha256:45eae036f0b1483dfbb2a8739cb6ca245b94f9897373d85e8bbab14e3aca8f70", + "sha256:4a5c13455430c16f9c93f08e5f70d837a0a17b828e3a670295a7a1a24f663c38", + "sha256:5c59a87b0954f7e6ffc8566a3f48b98da3c3f746ee89e829608c4ba20642386c", + "sha256:5f7a18a54168e4f85b1fa72062048222240f644fb505b46f05f1d8acc917e78a", + "sha256:677ca2f6ebe6c9a4398870e00797adb4f53a83d6309f1d2ce0dd1dd7c9f20db6", + "sha256:6e9016d37c0a11ad8be7c3701ea789694aff415c13f4c92446b119a4dc6259a1", + "sha256:7553fa83875113ca8b851a6d122309cc636c41676a7d4c7c686bdb253fdf0b07", + "sha256:7dd968a073fd30a5b53cacebb99ce8bd6ecce629e1d76c7a94aace6cf328fe63", + "sha256:859ca4393846b83bea4b3ff05cc365886e0051db523936784cb8d5c9aecf6054", + "sha256:887a0e3cb0d051a20aef47a6ffa74070336d2cb29497ad0cac52c6bb1a4b2b12", + "sha256:9301ea6d5cf1130a17d9f35f7892689d51629999cdcb2418d42da9a9da1a7e64", + "sha256:97c303bffb50b8090f8f271edd64d939863a310c70e380f9d547ee290ca5a75e", + "sha256:9e30007a034a0e786baabb77fa2c65a01f8fb38d156d9c20aab2fb3e77e44d63", + "sha256:a3e57debada6be5cc64ad336e7c32da691b914a1b9b620d072e7470206dc77f1", + "sha256:a6e0d55e8e441c83be0dac8dd94eab51afd149e7619a0c1309e3236e19277f64", + "sha256:acbae016c146ff8d96be6cab2e28f6c178c064e9a2636b3cfb233999741a5d81", + "sha256:b93577f094756725591539da24233d289924802427785a123dcc4d15d10c74c2", + "sha256:ceb06aded3359bbddda4a4d281573b88d39fdcc7dcc80b42bff2e82904462cf6", + "sha256:d434141d12656d6fb0d6914e0ebe68db6a822bf96e0e74084960585756048467", + "sha256:d46346ea139da5036c9926939889ab8c92dc729f2e9c587963cf2f2080fb8c4f", + "sha256:d4c84d7f35928137a3d60829ce7ff48787cab9a54662a20bcc1f0917be1568f8", + "sha256:d77ee549208395ed92bd0f607f2a474e2c6077089be183832761001cc843416d", + "sha256:dd51c9de5f067d90c79989ff10d7c28bd34de193441877d0f08c3888a5374ab1", + "sha256:e2248e1e16af931406069d4eb4e7a64f553b5e40b79cf48542d69cc04eff0b34", + "sha256:e32e68e2cc94a13a8a9aeb60951b690d90d0a8f6f50788562977cd85b13f5f16", + "sha256:f5576a9d328775421a7e4c3dd0833c79d0b687f5df5344b57b116fd0b1861232", + "sha256:f681bb3664dcee052facb2265d978845d6faf22f049f872aa0e2aeefff1494bd", + "sha256:f720c07108df0161677a7400a35ec06910ec3f3e8f75e376836f3b7152f17b68" ], "index": "pypi", - "version": "==5.5.0" + "version": "==5.6.1" }, "pillow": { "hashes": [ @@ -2323,7 +2323,7 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_version >= '3.7'", + "markers": "python_full_version < '3.11.0a7'", "version": "==2.0.1" }, "tornado": { From 0bf9e55ca79983f4d5e5f42794f494f51f555345 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Thu, 1 Sep 2022 10:35:33 -0700 Subject: [PATCH 192/348] Fixes a minor TODO in settings, and enables flake8 for settings.py --- src/paperless/settings.py | 37 +++++++++++++++++++---------------- src/paperless_tika/apps.py | 2 +- src/paperless_tika/parsers.py | 6 +++--- src/setup.cfg | 2 +- 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 7ec260b1a..515e2a05f 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -285,7 +285,7 @@ SECRET_KEY = os.getenv( AUTH_PASSWORD_VALIDATORS = [ { - "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", + "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", # noqa: E501 }, { "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", @@ -445,13 +445,14 @@ LOGGING = { TASK_WORKERS = __get_int("PAPERLESS_TASK_WORKERS", 1) -PAPERLESS_WORKER_TIMEOUT: Final[int] = __get_int("PAPERLESS_WORKER_TIMEOUT", 1800) +WORKER_TIMEOUT: Final[int] = __get_int("PAPERLESS_WORKER_TIMEOUT", 1800) # Per django-q docs, timeout must be smaller than retry -# We default retry to 10s more than the timeout -PAPERLESS_WORKER_RETRY: Final[int] = __get_int( +# We default retry to 10s more than the timeout to silence the +# warning, as retry functionality isn't used. +WORKER_RETRY: Final[int] = __get_int( "PAPERLESS_WORKER_RETRY", - PAPERLESS_WORKER_TIMEOUT + 10, + WORKER_TIMEOUT + 10, ) Q_CLUSTER = { @@ -459,8 +460,8 @@ Q_CLUSTER = { "guard_cycle": 5, "catch_up": False, "recycle": 1, - "retry": PAPERLESS_WORKER_RETRY, - "timeout": PAPERLESS_WORKER_TIMEOUT, + "retry": WORKER_RETRY, + "timeout": WORKER_TIMEOUT, "workers": TASK_WORKERS, "redis": os.getenv("PAPERLESS_REDIS", "redis://localhost:6379"), "log_level": "DEBUG" if DEBUG else "INFO", @@ -507,7 +508,7 @@ CONSUMER_IGNORE_PATTERNS = list( json.loads( os.getenv( "PAPERLESS_CONSUMER_IGNORE_PATTERNS", - '[".DS_STORE/*", "._*", ".stfolder/*", ".stversions/*", ".localized/*", "desktop.ini"]', + '[".DS_STORE/*", "._*", ".stfolder/*", ".stversions/*", ".localized/*", "desktop.ini"]', # noqa: E501 ), ), ) @@ -589,7 +590,8 @@ DATE_ORDER = os.getenv("PAPERLESS_DATE_ORDER", "DMY") FILENAME_DATE_ORDER = os.getenv("PAPERLESS_FILENAME_DATE_ORDER") # Maximum number of dates taken from document start to end to show as suggestions for -# `created` date in the frontend. Duplicates are removed, which can result in fewer dates shown. +# `created` date in the frontend. Duplicates are removed, which can result in +# fewer dates shown. NUMBER_OF_SUGGESTED_DATES = __get_int("PAPERLESS_NUMBER_OF_SUGGESTED_DATES", 3) # Transformations applied before filename parsing @@ -600,7 +602,8 @@ for t in json.loads(os.getenv("PAPERLESS_FILENAME_PARSE_TRANSFORMS", "[]")): # Specify the filename format for out files FILENAME_FORMAT = os.getenv("PAPERLESS_FILENAME_FORMAT") -# If this is enabled, variables in filename format will resolve to empty-string instead of 'none'. +# If this is enabled, variables in filename format will resolve to +# empty-string instead of 'none'. # Directories with 'empty names' are omitted, too. FILENAME_FORMAT_REMOVE_NONE = __get_boolean( "PAPERLESS_FILENAME_FORMAT_REMOVE_NONE", @@ -612,16 +615,15 @@ THUMBNAIL_FONT_NAME = os.getenv( "/usr/share/fonts/liberation/LiberationSerif-Regular.ttf", ) -# TODO: this should not have a prefix. # Tika settings -PAPERLESS_TIKA_ENABLED = __get_boolean("PAPERLESS_TIKA_ENABLED", "NO") -PAPERLESS_TIKA_ENDPOINT = os.getenv("PAPERLESS_TIKA_ENDPOINT", "http://localhost:9998") -PAPERLESS_TIKA_GOTENBERG_ENDPOINT = os.getenv( +TIKA_ENABLED = __get_boolean("PAPERLESS_TIKA_ENABLED", "NO") +TIKA_ENDPOINT = os.getenv("PAPERLESS_TIKA_ENDPOINT", "http://localhost:9998") +TIKA_GOTENBERG_ENDPOINT = os.getenv( "PAPERLESS_TIKA_GOTENBERG_ENDPOINT", "http://localhost:3000", ) -if PAPERLESS_TIKA_ENABLED: +if TIKA_ENABLED: INSTALLED_APPS.append("paperless_tika.apps.PaperlessTikaConfig") @@ -634,8 +636,9 @@ def _parse_ignore_dates( user provided string(s) into dates Args: - env_ignore (str): The value of the environment variable, comma seperated dates - date_order (str, optional): The format of the date strings. Defaults to DATE_ORDER. + env_ignore (str): The value of the environment variable, comma separated dates + date_order (str, optional): The format of the date strings. + Defaults to DATE_ORDER. Returns: Set[datetime.datetime]: The set of parsed date objects diff --git a/src/paperless_tika/apps.py b/src/paperless_tika/apps.py index 5cab21427..012986543 100644 --- a/src/paperless_tika/apps.py +++ b/src/paperless_tika/apps.py @@ -9,6 +9,6 @@ class PaperlessTikaConfig(AppConfig): def ready(self): from documents.signals import document_consumer_declaration - if settings.PAPERLESS_TIKA_ENABLED: + if settings.TIKA_ENABLED: document_consumer_declaration.connect(tika_consumer_declaration) AppConfig.ready(self) diff --git a/src/paperless_tika/parsers.py b/src/paperless_tika/parsers.py index 0cd0caeab..e706e3aa5 100644 --- a/src/paperless_tika/parsers.py +++ b/src/paperless_tika/parsers.py @@ -27,7 +27,7 @@ class TikaDocumentParser(DocumentParser): ) def extract_metadata(self, document_path, mime_type): - tika_server = settings.PAPERLESS_TIKA_ENDPOINT + tika_server = settings.TIKA_ENDPOINT try: parsed = parser.from_file(document_path, tika_server) except Exception as e: @@ -49,7 +49,7 @@ class TikaDocumentParser(DocumentParser): def parse(self, document_path, mime_type, file_name=None): self.log("info", f"Sending {document_path} to Tika server") - tika_server = settings.PAPERLESS_TIKA_ENDPOINT + tika_server = settings.TIKA_ENDPOINT try: parsed = parser.from_file(document_path, tika_server) @@ -73,7 +73,7 @@ class TikaDocumentParser(DocumentParser): def convert_to_pdf(self, document_path, file_name): pdf_path = os.path.join(self.tempdir, "convert.pdf") - gotenberg_server = settings.PAPERLESS_TIKA_GOTENBERG_ENDPOINT + gotenberg_server = settings.TIKA_GOTENBERG_ENDPOINT url = gotenberg_server + "/forms/libreoffice/convert" self.log("info", f"Converting {document_path} to PDF as {pdf_path}") diff --git a/src/setup.cfg b/src/setup.cfg index 3b50151a7..409c5c7cd 100644 --- a/src/setup.cfg +++ b/src/setup.cfg @@ -1,5 +1,5 @@ [flake8] -extend-exclude = */migrations/*, paperless/settings.py, */tests/* +extend-exclude = */migrations/*, */tests/* # E203 - https://www.flake8rules.com/rules/E203.html # W503 - https://www.flake8rules.com/rules/W503.html ignore = E203,W503 From d408900a916b02c5c5d5b52a17109a0cb9072852 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Fri, 9 Sep 2022 11:42:43 -0700 Subject: [PATCH 193/348] Adds validation and testing to cover some of the common settings --- src/paperless/__init__.py | 3 +- src/paperless/checks.py | 49 ++++++++++++++++ src/paperless/settings.py | 2 - src/paperless/tests/test_checks.py | 92 +++++++++++++++++++++++++++++- 4 files changed, 140 insertions(+), 6 deletions(-) diff --git a/src/paperless/__init__.py b/src/paperless/__init__.py index 8cdd600b3..1c7f09cbe 100644 --- a/src/paperless/__init__.py +++ b/src/paperless/__init__.py @@ -1,4 +1,5 @@ from .checks import binaries_check from .checks import paths_check +from .checks import settings_values_check -__all__ = ["binaries_check", "paths_check"] +__all__ = ["binaries_check", "paths_check", "settings_values_check"] diff --git a/src/paperless/checks.py b/src/paperless/checks.py index 26d18b692..c9ac5cb6a 100644 --- a/src/paperless/checks.py +++ b/src/paperless/checks.py @@ -96,3 +96,52 @@ def debug_mode_check(app_configs, **kwargs): ] else: return [] + + +@register() +def settings_values_check(app_configs, **kwargs): + """ + Validates at least some of the user provided settings + """ + + def _ocrmypdf_settings_check(): + """ + Validates some of the arguments which will be provided to ocrmypdf + against the valid options. Use "ocrmypdf --help" to see the valid + inputs + """ + msgs = [] + if settings.OCR_OUTPUT_TYPE not in { + "pdfa", + "pdf", + "pdfa-1", + "pdfa-2", + "pdfa-3", + }: + msgs.append( + Error(f'OCR output type "{settings.OCR_OUTPUT_TYPE}" is not valid'), + ) + + if settings.OCR_MODE not in {"force", "skip", "redo_ocr"}: + msgs.append(Error(f'OCR output mode "{settings.OCR_MODE}" is not valid')) + + if settings.OCR_CLEAN not in {"clean", "clean_final"}: + msgs.append(Error(f'OCR clean mode "{settings.OCR_CLEAN}" is not valid')) + return msgs + + def _timezone_validate(): + """ + Validates the user provided timezone is a valid timezone + """ + try: + import zoneinfo + except ImportError: # pragma: nocover + import backports.zoneinfo as zoneinfo + msgs = [] + if settings.TIME_ZONE not in zoneinfo.available_timezones(): + msgs.append( + Error(f'Timezone "{settings.TIME_ZONE}" is not a valid timezone'), + ) + return msgs + + return _ocrmypdf_settings_check() + _timezone_validate() diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 515e2a05f..92042ac31 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -532,11 +532,9 @@ OCR_PAGES = int(os.getenv("PAPERLESS_OCR_PAGES", 0)) OCR_LANGUAGE = os.getenv("PAPERLESS_OCR_LANGUAGE", "eng") # OCRmyPDF --output-type options are available. -# TODO: validate this setting. OCR_OUTPUT_TYPE = os.getenv("PAPERLESS_OCR_OUTPUT_TYPE", "pdfa") # skip. redo, force -# TODO: validate this. OCR_MODE = os.getenv("PAPERLESS_OCR_MODE", "skip") OCR_IMAGE_DPI = os.getenv("PAPERLESS_OCR_IMAGE_DPI") diff --git a/src/paperless/tests/test_checks.py b/src/paperless/tests/test_checks.py index ba45ebf79..b2d8b5810 100644 --- a/src/paperless/tests/test_checks.py +++ b/src/paperless/tests/test_checks.py @@ -1,12 +1,12 @@ import os -import shutil from django.test import override_settings from django.test import TestCase from documents.tests.utils import DirectoriesMixin -from paperless import binaries_check -from paperless import paths_check +from paperless.checks import binaries_check from paperless.checks import debug_mode_check +from paperless.checks import paths_check +from paperless.checks import settings_values_check class TestChecks(DirectoriesMixin, TestCase): @@ -54,3 +54,89 @@ class TestChecks(DirectoriesMixin, TestCase): @override_settings(DEBUG=True) def test_debug_enabled(self): self.assertEqual(len(debug_mode_check(None)), 1) + + +class TestSettingsChecks(DirectoriesMixin, TestCase): + def test_all_valid(self): + """ + GIVEN: + - Default settings + WHEN: + - Settings are validated + THEN: + - No system check errors reported + """ + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 0) + + @override_settings(OCR_OUTPUT_TYPE="notapdf") + def test_invalid_output_type(self): + """ + GIVEN: + - Default settings + - OCR output type is invalid + WHEN: + - Settings are validated + THEN: + - system check error reported for OCR output type + """ + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 1) + + msg = msgs[0] + + self.assertIn('OCR output type "notapdf"', msg.msg) + + @override_settings(OCR_MODE="makeitso") + def test_invalid_ocr_type(self): + """ + GIVEN: + - Default settings + - OCR type is invalid + WHEN: + - Settings are validated + THEN: + - system check error reported for OCR type + """ + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 1) + + msg = msgs[0] + + self.assertIn('OCR output mode "makeitso"', msg.msg) + + @override_settings(OCR_CLEAN="cleanme") + def test_invalid_ocr_clean(self): + """ + GIVEN: + - Default settings + - OCR cleaning type is invalid + WHEN: + - Settings are validated + THEN: + - system check error reported for OCR cleaning type + """ + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 1) + + msg = msgs[0] + + self.assertIn('OCR clean mode "cleanme"', msg.msg) + + @override_settings(TIME_ZONE="TheMoon\\MyCrater") + def test_invalid_timezone(self): + """ + GIVEN: + - Default settings + - Timezone is invalid + WHEN: + - Settings are validated + THEN: + - system check error reported for timezone + """ + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 1) + + msg = msgs[0] + + self.assertIn('Timezone "TheMoon\\MyCrater"', msg.msg) From 15d074d39c55f18dfbe97a8514708cf04c99fe1d Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 10 Sep 2022 18:48:18 -0700 Subject: [PATCH 194/348] Include storage path in exporter + tests --- src/documents/management/commands/document_exporter.py | 9 +++++++-- src/documents/tests/test_management_exporter.py | 7 ++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/documents/management/commands/document_exporter.py b/src/documents/management/commands/document_exporter.py index dc53a690e..0e99e7b7d 100644 --- a/src/documents/management/commands/document_exporter.py +++ b/src/documents/management/commands/document_exporter.py @@ -18,6 +18,7 @@ from documents.models import Document from documents.models import DocumentType from documents.models import SavedView from documents.models import SavedViewFilterRule +from documents.models import StoragePath from documents.models import Tag from documents.models import UiSettings from documents.settings import EXPORTER_ARCHIVE_NAME @@ -114,8 +115,8 @@ class Command(BaseCommand): map(lambda f: os.path.abspath(os.path.join(root, f)), files), ) - # 2. Create manifest, containing all correspondents, types, tags, - # documents and ui_settings + # 2. Create manifest, containing all correspondents, types, tags, storage paths + # comments, documents and ui_settings with transaction.atomic(): manifest = json.loads( serializers.serialize("json", Correspondent.objects.all()), @@ -127,6 +128,10 @@ class Command(BaseCommand): serializers.serialize("json", DocumentType.objects.all()), ) + manifest += json.loads( + serializers.serialize("json", StoragePath.objects.all()), + ) + manifest += json.loads( serializers.serialize("json", Comment.objects.all()), ) diff --git a/src/documents/tests/test_management_exporter.py b/src/documents/tests/test_management_exporter.py index 92f1d3b62..fa7567f05 100644 --- a/src/documents/tests/test_management_exporter.py +++ b/src/documents/tests/test_management_exporter.py @@ -14,6 +14,7 @@ from documents.models import Comment from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType +from documents.models import StoragePath from documents.models import Tag from documents.models import User from documents.sanity_checker import check_sanity @@ -70,11 +71,14 @@ class TestExportImport(DirectoriesMixin, TestCase): self.t1 = Tag.objects.create(name="t") self.dt1 = DocumentType.objects.create(name="dt") self.c1 = Correspondent.objects.create(name="c") + self.sp1 = StoragePath.objects.create(path="{created_year}-{title}") self.d1.tags.add(self.t1) self.d1.correspondent = self.c1 self.d1.document_type = self.dt1 self.d1.save() + self.d4.storage_path = self.sp1 + self.d4.save() super().setUp() def _get_document_from_manifest(self, manifest, id): @@ -120,7 +124,7 @@ class TestExportImport(DirectoriesMixin, TestCase): manifest = self._do_export(use_filename_format=use_filename_format) - self.assertEqual(len(manifest), 10) + self.assertEqual(len(manifest), 11) self.assertEqual( len(list(filter(lambda e: e["model"] == "documents.document", manifest))), 4, @@ -199,6 +203,7 @@ class TestExportImport(DirectoriesMixin, TestCase): self.assertEqual(Tag.objects.count(), 1) self.assertEqual(Correspondent.objects.count(), 1) self.assertEqual(DocumentType.objects.count(), 1) + self.assertEqual(StoragePath.objects.count(), 1) self.assertEqual(Document.objects.get(id=self.d1.id).title, "wow1") self.assertEqual(Document.objects.get(id=self.d2.id).title, "wow2") self.assertEqual(Document.objects.get(id=self.d3.id).title, "wow2") From 65cfd55027eb14adb26498f4f92736612d0d1e77 Mon Sep 17 00:00:00 2001 From: Brian Kelly Date: Tue, 3 May 2022 20:13:13 -0600 Subject: [PATCH 195/348] rebase mariadb feature onto dev --- Dockerfile | 2 + .../compose/docker-compose.mariadb-tika.yml | 101 ++++++++++++++++++ docker/compose/docker-compose.mariadb.yml | 84 +++++++++++++++ docker/docker-prepare.sh | 28 ++++- docs/administration.rst | 6 +- docs/configuration.rst | 14 ++- docs/extending.rst | 2 +- docs/setup.rst | 7 +- install-paperless-ngx.sh | 23 +++- src/paperless/settings.py | 15 ++- 10 files changed, 268 insertions(+), 14 deletions(-) create mode 100644 docker/compose/docker-compose.mariadb-tika.yml create mode 100644 docker/compose/docker-compose.mariadb.yml diff --git a/Dockerfile b/Dockerfile index 01adb47f5..d0acec101 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,6 +56,7 @@ ARG RUNTIME_PACKAGES="\ curl \ file \ # fonts for text file thumbnail generation + default-libmysqlclient-dev \ fonts-liberation \ gettext \ ghostscript \ @@ -186,6 +187,7 @@ COPY Pipfile* ./ ARG BUILD_PACKAGES="\ build-essential \ git \ + mariadb-client \ python3-dev" RUN set -eux \ diff --git a/docker/compose/docker-compose.mariadb-tika.yml b/docker/compose/docker-compose.mariadb-tika.yml new file mode 100644 index 000000000..238068184 --- /dev/null +++ b/docker/compose/docker-compose.mariadb-tika.yml @@ -0,0 +1,101 @@ +# docker-compose file for running paperless from the Docker Hub. +# This file contains everything paperless needs to run. +# Paperless supports amd64, arm and arm64 hardware. +# +# All compose files of paperless configure paperless in the following way: +# +# - Paperless is (re)started on system boot, if it was running before shutdown. +# - Docker volumes for storing data are managed by Docker. +# - Folders for importing and exporting files are created in the same directory +# as this file and mounted to the correct folders inside the container. +# - Paperless listens on port 8000. +# +# In addition to that, this docker-compose file adds the following optional +# configurations: +# +# - Instead of SQLite (default), MariaDB is used as the database server. +# - Apache Tika and Gotenberg servers are started with paperless and paperless +# is configured to use these services. These provide support for consuming +# Office documents (Word, Excel, Power Point and their LibreOffice counter- +# parts. +# +# To install and update paperless with this file, do the following: +# +# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env' +# and '.env' into a folder. +# - Run 'docker-compose pull'. +# - Run 'docker-compose run --rm webserver createsuperuser' to create a user. +# - Run 'docker-compose up -d'. +# +# For more extensive installation and update instructions, refer to the +# documentation. + +version: "3.4" +services: + broker: + image: redis:6.0 + restart: unless-stopped + volumes: + - redisdata:/data + + db: + image: mariadb:10 + restart: unless-stopped + volumes: + - dbdata:/var/lib/mariadb/data + environment: + MARIADB_HOST: paperless + MARIADB_DATABASE: paperless + MARIADB_USER: paperless + MARIADB_PASSWORD: paperless + MARIADB_ROOT_PASSWORD: paperless + ports: + - "3306:3306" + + webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:latest + restart: unless-stopped + depends_on: + - db + - broker + - gotenberg + - tika + ports: + - 8000:8000 + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000"] + interval: 30s + timeout: 10s + retries: 5 + volumes: + - data:/usr/src/paperless/data + - media:/usr/src/paperless/media + - ./export:/usr/src/paperless/export + - ./consume:/usr/src/paperless/consume + env_file: docker-compose.env + environment: + PAPERLESS_REDIS: redis://broker:6379 + PAPERLESS_DBENGINE: mariadb + PAPERLESS_DBHOST: db + PAPERLESS_DBUSER: root + PAPERLESS_DBPASSWORD: paperless + PAPERLESS_DBPORT: 3306 + PAPERLESS_TIKA_ENABLED: 1 + PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 + PAPERLESS_TIKA_ENDPOINT: http://tika:9998 + + gotenberg: + image: gotenberg/gotenberg:7 + restart: unless-stopped + environment: + CHROMIUM_DISABLE_ROUTES: 1 + + tika: + image: apache/tika + restart: unless-stopped + +volumes: + data: + media: + dbdata: + redisdata: diff --git a/docker/compose/docker-compose.mariadb.yml b/docker/compose/docker-compose.mariadb.yml new file mode 100644 index 000000000..c8782a20b --- /dev/null +++ b/docker/compose/docker-compose.mariadb.yml @@ -0,0 +1,84 @@ +# docker-compose file for running paperless from the Docker Hub. +# This file contains everything paperless needs to run. +# Paperless supports amd64, arm and arm64 hardware. +# +# All compose files of paperless configure paperless in the following way: +# +# - Paperless is (re)started on system boot, if it was running before shutdown. +# - Docker volumes for storing data are managed by Docker. +# - Folders for importing and exporting files are created in the same directory +# as this file and mounted to the correct folders inside the container. +# - Paperless listens on port 8000. +# +# In addition to that, this docker-compose file adds the following optional +# configurations: +# +# - Instead of SQLite (default), MariaDB is used as the database server. +# +# To install and update paperless with this file, do the following: +# +# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env' +# and '.env' into a folder. +# - Run 'docker-compose pull'. +# - Run 'docker-compose run --rm webserver createsuperuser' to create a user. +# - Run 'docker-compose up -d'. +# +# For more extensive installation and update instructions, refer to the +# documentation. + +version: "3.4" +services: + broker: + image: redis:6.0 + restart: unless-stopped + volumes: + - redisdata:/data + + db: + image: mariadb:10 + restart: unless-stopped + volumes: + - dbdata:/var/lib/mariadb/data + environment: + MARIADB_HOST: paperless + MARIADB_DATABASE: paperless + MARIADB_USER: paperless + MARIADB_PASSWORD: paperless + MARIADB_ROOT_PASSWORD: paperless + ports: + - "3306:3306" + + webserver: +# image: ghcr.io/paperless-ngx/paperless-ngx:latest + image: paperless-bktest:latest + restart: unless-stopped + depends_on: + - db + - broker + ports: + - 8000:8000 + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000"] + interval: 30s + timeout: 10s + retries: 5 + volumes: + - data:/usr/src/paperless/data + - media:/usr/src/paperless/media + - ./export:/usr/src/paperless/export + - ./consume:/usr/src/paperless/consume + env_file: docker-compose.env + environment: + PAPERLESS_REDIS: redis://broker:6379 + PAPERLESS_DBENGINE: mariadb + PAPERLESS_DBHOST: db + PAPERLESS_DBUSER: root + PAPERLESS_DBPASSWORD: paperless + PAPERLESS_DBPORT: 3306 + + +volumes: + data: + media: + dbdata: + redisdata: diff --git a/docker/docker-prepare.sh b/docker/docker-prepare.sh index 879e1653a..193811d01 100755 --- a/docker/docker-prepare.sh +++ b/docker/docker-prepare.sh @@ -28,6 +28,30 @@ wait_for_postgres() { done } +wait_for_mariadb() { + echo "Waiting for MariaDB to start..." + + host="${PAPERLESS_DBHOST:=localhost}" + port="${PAPERLESS_DBPORT:=3306}" + + attempt_num=1 + max_attempts=5 + + while ! Defaults to redis://localhost:6379. +PAPERLESS_DBENGINE= + Optional, gives the ability to choose Postgres or MariaDB for database engine. + Available options are `postgresql` and `mariadb`. + Default is `postgresql`. + PAPERLESS_DBHOST= By default, sqlite is used as the database backend. This can be changed here. - Set PAPERLESS_DBHOST and PostgreSQL will be used instead of sqlite. + + Set PAPERLESS_DBHOST and another database will be used instead of sqlite. PAPERLESS_DBPORT= Adjust port if necessary. @@ -39,17 +45,17 @@ PAPERLESS_DBPORT= Default is 5432. PAPERLESS_DBNAME= - Database name in PostgreSQL. + Database name in PostgreSQL or MariaDB. Defaults to "paperless". PAPERLESS_DBUSER= - Database user in PostgreSQL. + Database user in PostgreSQL or MariaDB. Defaults to "paperless". PAPERLESS_DBPASS= - Database password for PostgreSQL. + Database password for PostgreSQL or MariaDB. Defaults to "paperless". diff --git a/docs/extending.rst b/docs/extending.rst index 199cd78ce..bfc289689 100644 --- a/docs/extending.rst +++ b/docs/extending.rst @@ -79,7 +79,7 @@ To do the setup you need to perform the steps from the following chapters in a c 6. You can now either ... * install redis or - * use the included scripts/start-services.sh to use docker to fire up a redis instance (and some other services such as tika, gotenberg and a postgresql server) or + * use the included scripts/start-services.sh to use docker to fire up a redis instance (and some other services such as tika, gotenberg and a database server) or * spin up a bare redis container .. code:: shell-session diff --git a/docs/setup.rst b/docs/setup.rst index 3aea55467..9312e70d4 100644 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -73,7 +73,7 @@ Paperless consists of the following components: for getting the tasks from the webserver and the consumer to the task scheduler. These run in a different process (maybe even on different machines!), and therefore, this is necessary. -* Optional: A database server. Paperless supports both PostgreSQL and SQLite for storing its data. +* Optional: A database server. Paperless supports PostgreSQL, MariaDB and SQLite for storing its data. Installation @@ -316,11 +316,13 @@ writing. Windows is not and will never be supported. * ``python3-pip`` * ``python3-dev`` + * ``default-libmysqlclient-dev`` for MariaDB * ``fonts-liberation`` for generating thumbnails for plain text files * ``imagemagick`` >= 6 for PDF conversion * ``gnupg`` for handling encrypted documents * ``libpq-dev`` for PostgreSQL * ``libmagic-dev`` for mime type detection + * ``mariadb-client`` for MariaDB compile time * ``mime-support`` for mime type detection * ``libzbar0`` for barcode detection * ``poppler-utils`` for barcode detection @@ -361,7 +363,7 @@ writing. Windows is not and will never be supported. 2. Install ``redis`` >= 5.0 and configure it to start automatically. 3. Optional. Install ``postgresql`` and configure a database, user and password for paperless. If you do not wish - to use PostgreSQL, SQLite is available as well. + to use PostgreSQL, MariaDB and SQLite are available as well. .. note:: @@ -377,6 +379,7 @@ writing. Windows is not and will never be supported. settings to your needs. Required settings for getting paperless running are: * ``PAPERLESS_REDIS`` should point to your redis server, such as redis://localhost:6379. + * ``PAPERLESS_DBENGINE`` optional, and should be one of `postgres, mariadb, or sqlite` * ``PAPERLESS_DBHOST`` should be the hostname on which your PostgreSQL server is running. Do not configure this to use SQLite instead. Also configure port, database name, user and password as necessary. * ``PAPERLESS_CONSUMPTION_DIR`` should point to a folder which paperless should watch for documents. You might diff --git a/install-paperless-ngx.sh b/install-paperless-ngx.sh index fec14ea83..d0bc0d59e 100755 --- a/install-paperless-ngx.sh +++ b/install-paperless-ngx.sh @@ -118,12 +118,12 @@ ask "Current time zone" "$default_time_zone" TIME_ZONE=$ask_result echo "" -echo "Database backend: PostgreSQL and SQLite are available. Use PostgreSQL" +echo "Database backend: PostgreSQL, MariaDB, and SQLite are available. Use PostgreSQL" echo "if unsure. If you're running on a low-power device such as Raspberry" echo "Pi, use SQLite to save resources." echo "" -ask "Database backend" "postgres" "postgres sqlite" +ask "Database backend" "postgres" "postgres sqlite" "mariadb" DATABASE_BACKEND=$ask_result echo "" @@ -227,6 +227,18 @@ if [[ "$DATABASE_BACKEND" == "postgres" ]] ; then POSTGRES_FOLDER=$ask_result fi +if [[ "$DATABASE_BACKEND" == "mariadb" ]] ; then + echo "" + echo "The database folder, where mariadb stores its data." + echo "" + echo "CAUTION: If specified, you must specify an absolute path starting with /" + echo "or a relative path starting with ./ here." + echo "" + + ask_docker_folder "Database folder" "" + MARIADB_FOLDER=$ask_result +fi + echo "" echo "3. Login credentials" echo "====================" @@ -285,6 +297,9 @@ if [[ "$DATABASE_BACKEND" == "postgres" ]] ; then echo "Database (postgres) folder: $POSTGRES_FOLDER" fi fi +if [[ "$DATABASE_BACKEND" == "mariadb" ]] ; then + echo "Database (mariadb) folder: $MARIADB_FOLDER" +fi echo "" echo "URL: $URL" echo "Port: $PORT" @@ -361,6 +376,10 @@ if [[ -n $POSTGRES_FOLDER ]] ; then sed -i "/^\s*pgdata:/d" docker-compose.yml fi +if [[ -n $MARIADB_FOLDER ]] ; then + sed -i "s#- dbdata:/var/lib/mariadb/data#- $MARIADB_FOLDER:/var/lib/mariadb/data#g" docker-compose.yml +fi + # remove trailing blank lines from end of file sed -i -e :a -e '/^\n*$/{$d;N;};/\n$/ba' docker-compose.yml # if last line in file contains "volumes:", remove that line since no more named volumes are left diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 92042ac31..ff9d350ce 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -328,16 +328,27 @@ if os.getenv("PAPERLESS_DBHOST"): DATABASES["sqlite"] = DATABASES["default"].copy() DATABASES["default"] = { - "ENGINE": "django.db.backends.postgresql_psycopg2", "HOST": os.getenv("PAPERLESS_DBHOST"), "NAME": os.getenv("PAPERLESS_DBNAME", "paperless"), "USER": os.getenv("PAPERLESS_DBUSER", "paperless"), "PASSWORD": os.getenv("PAPERLESS_DBPASS", "paperless"), - "OPTIONS": {"sslmode": os.getenv("PAPERLESS_DBSSLMODE", "prefer")}, + "OPTIONS": {}, } if os.getenv("PAPERLESS_DBPORT"): DATABASES["default"]["PORT"] = os.getenv("PAPERLESS_DBPORT") + # Leave room for future extensibility + if os.getenv("PAPERLESS_DBENGINE") == "mariadb": + engine = "django.db.backends.mysql" + options = {"read_default_file": "/etc/mysql/my.cnf"} + else: # Default to PostgresDB + engine = "django.db.backends.postgresql_psycopg2" + options = {"sslmode": os.getenv("PAPERLESS_DBSSLMODE", "prefer")} + + DATABASES["default"]["ENGINE"] = engine + for key, value in options.items(): + DATABASES["default"]["OPTIONS"][key] = value + if os.getenv("PAPERLESS_DB_TIMEOUT") is not None: _new_opts = {"timeout": float(os.getenv("PAPERLESS_DB_TIMEOUT"))} if "OPTIONS" in DATABASES["default"]: From 6ae9a8f2bea39e8441357a7e5558549806547fb4 Mon Sep 17 00:00:00 2001 From: Brian Kelly Date: Tue, 3 May 2022 20:13:41 -0600 Subject: [PATCH 196/348] remove debug image reference --- docker/compose/docker-compose.mariadb.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/compose/docker-compose.mariadb.yml b/docker/compose/docker-compose.mariadb.yml index c8782a20b..5242e18bf 100644 --- a/docker/compose/docker-compose.mariadb.yml +++ b/docker/compose/docker-compose.mariadb.yml @@ -49,8 +49,7 @@ services: - "3306:3306" webserver: -# image: ghcr.io/paperless-ngx/paperless-ngx:latest - image: paperless-bktest:latest + image: ghcr.io/paperless-ngx/paperless-ngx:latest restart: unless-stopped depends_on: - db From f528b01de4a81196601d9013f265a411b6ca2962 Mon Sep 17 00:00:00 2001 From: Brian Kelly Date: Thu, 12 May 2022 21:01:47 -0600 Subject: [PATCH 197/348] set paperless db user --- docker/compose/docker-compose.mariadb-tika.yml | 2 +- docker/compose/docker-compose.mariadb.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/compose/docker-compose.mariadb-tika.yml b/docker/compose/docker-compose.mariadb-tika.yml index 238068184..8a4a72040 100644 --- a/docker/compose/docker-compose.mariadb-tika.yml +++ b/docker/compose/docker-compose.mariadb-tika.yml @@ -77,7 +77,7 @@ services: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBENGINE: mariadb PAPERLESS_DBHOST: db - PAPERLESS_DBUSER: root + PAPERLESS_DBUSER: paperless PAPERLESS_DBPASSWORD: paperless PAPERLESS_DBPORT: 3306 PAPERLESS_TIKA_ENABLED: 1 diff --git a/docker/compose/docker-compose.mariadb.yml b/docker/compose/docker-compose.mariadb.yml index 5242e18bf..dd95bf7b8 100644 --- a/docker/compose/docker-compose.mariadb.yml +++ b/docker/compose/docker-compose.mariadb.yml @@ -71,7 +71,7 @@ services: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBENGINE: mariadb PAPERLESS_DBHOST: db - PAPERLESS_DBUSER: root + PAPERLESS_DBUSER: paperless PAPERLESS_DBPASSWORD: paperless PAPERLESS_DBPORT: 3306 From ebdf9b55df21bd3619887563fbcc7db28d9f38a6 Mon Sep 17 00:00:00 2001 From: Brian Kelly Date: Tue, 17 May 2022 12:38:02 -0600 Subject: [PATCH 198/348] correct the mariadb volume data path --- docker/compose/docker-compose.mariadb-tika.yml | 2 +- docker/compose/docker-compose.mariadb.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/compose/docker-compose.mariadb-tika.yml b/docker/compose/docker-compose.mariadb-tika.yml index 8a4a72040..cf7bae6c4 100644 --- a/docker/compose/docker-compose.mariadb-tika.yml +++ b/docker/compose/docker-compose.mariadb-tika.yml @@ -42,7 +42,7 @@ services: image: mariadb:10 restart: unless-stopped volumes: - - dbdata:/var/lib/mariadb/data + - dbdata:/var/lib/mysql environment: MARIADB_HOST: paperless MARIADB_DATABASE: paperless diff --git a/docker/compose/docker-compose.mariadb.yml b/docker/compose/docker-compose.mariadb.yml index dd95bf7b8..ac895d60b 100644 --- a/docker/compose/docker-compose.mariadb.yml +++ b/docker/compose/docker-compose.mariadb.yml @@ -38,7 +38,7 @@ services: image: mariadb:10 restart: unless-stopped volumes: - - dbdata:/var/lib/mariadb/data + - dbdata:/var/lib/mysql environment: MARIADB_HOST: paperless MARIADB_DATABASE: paperless From 3b84e34c8e8e7ad102c6ac3e5f2a2b38559e8594 Mon Sep 17 00:00:00 2001 From: Brian Kelly Date: Tue, 31 May 2022 22:18:43 -0600 Subject: [PATCH 199/348] re-order apt dependencies --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d0acec101..60f3374e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,7 +56,6 @@ ARG RUNTIME_PACKAGES="\ curl \ file \ # fonts for text file thumbnail generation - default-libmysqlclient-dev \ fonts-liberation \ gettext \ ghostscript \ @@ -78,10 +77,12 @@ ARG RUNTIME_PACKAGES="\ libraqm0 \ libgnutls30 \ libjpeg62-turbo \ + optipng \ python3 \ python3-pip \ python3-setuptools \ postgresql-client \ + mariadb-client \ # For Numpy libatlas3-base \ # OCRmyPDF dependencies @@ -187,7 +188,7 @@ COPY Pipfile* ./ ARG BUILD_PACKAGES="\ build-essential \ git \ - mariadb-client \ + default-libmysqlclient-dev \ python3-dev" RUN set -eux \ From 60980cb26ae954f082441e31248f04657d327375 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 30 Aug 2022 14:56:14 -0700 Subject: [PATCH 200/348] Adds the mysql Python dependency --- Pipfile | 1 + Pipfile.lock | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Pipfile b/Pipfile index 87cf55f3f..48b855f1a 100644 --- a/Pipfile +++ b/Pipfile @@ -52,6 +52,7 @@ concurrent-log-handler = "*" zipp = {version = "*", markers = "python_version < '3.9'"} pyzbar = "*" pdf2image = "*" +mysqlclient = "*" [dev-packages] coveralls = "*" diff --git a/Pipfile.lock b/Pipfile.lock index bf59cc8e2..b439beadd 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -697,6 +697,19 @@ ], "version": "==1.0.4" }, + "mysqlclient": { + "hashes": [ + "sha256:0d1cd3a5a4d28c222fa199002810e8146cffd821410b67851af4cc80aeccd97c", + "sha256:828757e419fb11dd6c5ed2576ec92c3efaa93a0f7c39e263586d1ee779c3d782", + "sha256:996924f3483fd36a34a5812210c69e71dea5a3d5978d01199b78b7f6d485c855", + "sha256:b355c8b5a7d58f2e909acdbb050858390ee1b0e13672ae759e5e784110022994", + "sha256:c1ed71bd6244993b526113cca3df66428609f90e4652f37eb51c33496d478b37", + "sha256:c812b67e90082a840efb82a8978369e6e69fc62ce1bda4ca8f3084a9d862308b", + "sha256:dea88c8d3f5a5d9293dfe7f087c16dd350ceb175f2f6631c9cf4caf3e19b7a96" + ], + "index": "pypi", + "version": "==2.1.1" + }, "numpy": { "hashes": [ "sha256:17e5226674f6ea79e14e3b91bfbc153fdf3ac13f5cc54ee7bc8fdbe820a32da0", @@ -1764,9 +1777,7 @@ "version": "==0.4.5" }, "coverage": { - "extras": [ - "toml" - ], + "extras": [], "hashes": [ "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2", "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820", From ed2e884de8bd7d1b4657d45ee4b6568f0c8b62df Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 30 Aug 2022 14:58:20 -0700 Subject: [PATCH 201/348] Fully qualifies the image and updates to Redis 7 --- docker/compose/docker-compose.mariadb-tika.yml | 8 ++++---- docker/compose/docker-compose.mariadb.yml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docker/compose/docker-compose.mariadb-tika.yml b/docker/compose/docker-compose.mariadb-tika.yml index cf7bae6c4..42ad74051 100644 --- a/docker/compose/docker-compose.mariadb-tika.yml +++ b/docker/compose/docker-compose.mariadb-tika.yml @@ -33,13 +33,13 @@ version: "3.4" services: broker: - image: redis:6.0 + image: docker.io/library/redis:7 restart: unless-stopped volumes: - redisdata:/data db: - image: mariadb:10 + image: docker.io/library/mariadb:10 restart: unless-stopped volumes: - dbdata:/var/lib/mysql @@ -85,13 +85,13 @@ services: PAPERLESS_TIKA_ENDPOINT: http://tika:9998 gotenberg: - image: gotenberg/gotenberg:7 + image: docker.io/gotenberg/gotenberg:7.4 restart: unless-stopped environment: CHROMIUM_DISABLE_ROUTES: 1 tika: - image: apache/tika + image: ghcr.io/paperless-ngx/tika:latest restart: unless-stopped volumes: diff --git a/docker/compose/docker-compose.mariadb.yml b/docker/compose/docker-compose.mariadb.yml index ac895d60b..8cb452464 100644 --- a/docker/compose/docker-compose.mariadb.yml +++ b/docker/compose/docker-compose.mariadb.yml @@ -29,13 +29,13 @@ version: "3.4" services: broker: - image: redis:6.0 + image: docker.io/library/redis:7 restart: unless-stopped volumes: - redisdata:/data db: - image: mariadb:10 + image: docker.io/library/mariadb:10 restart: unless-stopped volumes: - dbdata:/var/lib/mysql From 537e7c63f4461d8bdb7c1fa9d170b0914ff91b11 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 30 Aug 2022 15:17:08 -0700 Subject: [PATCH 202/348] Combines the two database folders to a single variable during installation --- install-paperless-ngx.sh | 51 ++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/install-paperless-ngx.sh b/install-paperless-ngx.sh index d0bc0d59e..d5266efca 100755 --- a/install-paperless-ngx.sh +++ b/install-paperless-ngx.sh @@ -123,7 +123,7 @@ echo "if unsure. If you're running on a low-power device such as Raspberry" echo "Pi, use SQLite to save resources." echo "" -ask "Database backend" "postgres" "postgres sqlite" "mariadb" +ask "Database backend" "postgres" "postgres sqlite mariadb" DATABASE_BACKEND=$ask_result echo "" @@ -214,9 +214,9 @@ echo "" ask_docker_folder "Data folder" "" DATA_FOLDER=$ask_result -if [[ "$DATABASE_BACKEND" == "postgres" ]] ; then +if [[ "$DATABASE_BACKEND" == "postgres" || "$DATABASE_BACKEND" == "mariadb" ]] ; then echo "" - echo "The database folder, where postgres stores its data." + echo "The database folder, where your database stores its data." echo "Leave empty to have this managed by docker." echo "" echo "CAUTION: If specified, you must specify an absolute path starting with /" @@ -224,19 +224,7 @@ if [[ "$DATABASE_BACKEND" == "postgres" ]] ; then echo "" ask_docker_folder "Database folder" "" - POSTGRES_FOLDER=$ask_result -fi - -if [[ "$DATABASE_BACKEND" == "mariadb" ]] ; then - echo "" - echo "The database folder, where mariadb stores its data." - echo "" - echo "CAUTION: If specified, you must specify an absolute path starting with /" - echo "or a relative path starting with ./ here." - echo "" - - ask_docker_folder "Database folder" "" - MARIADB_FOLDER=$ask_result + DATABASE_FOLDER=$ask_result fi echo "" @@ -290,16 +278,14 @@ if [[ -z $DATA_FOLDER ]] ; then else echo "Data folder: $DATA_FOLDER" fi -if [[ "$DATABASE_BACKEND" == "postgres" ]] ; then - if [[ -z $POSTGRES_FOLDER ]] ; then - echo "Database (postgres) folder: Managed by docker" +if [[ "$DATABASE_BACKEND" == "postgres" || "$DATABASE_BACKEND" == "mariadb" ]] ; then + if [[ -z $DATABASE_FOLDER ]] ; then + echo "Database folder: Managed by docker" else - echo "Database (postgres) folder: $POSTGRES_FOLDER" + echo "Database folder: $DATABASE_FOLDER" fi fi -if [[ "$DATABASE_BACKEND" == "mariadb" ]] ; then - echo "Database (mariadb) folder: $MARIADB_FOLDER" -fi + echo "" echo "URL: $URL" echo "Port: $PORT" @@ -371,13 +357,16 @@ if [[ -n $DATA_FOLDER ]] ; then sed -i "/^\s*data:/d" docker-compose.yml fi -if [[ -n $POSTGRES_FOLDER ]] ; then - sed -i "s#- pgdata:/var/lib/postgresql/data#- $POSTGRES_FOLDER:/var/lib/postgresql/data#g" docker-compose.yml - sed -i "/^\s*pgdata:/d" docker-compose.yml -fi - -if [[ -n $MARIADB_FOLDER ]] ; then - sed -i "s#- dbdata:/var/lib/mariadb/data#- $MARIADB_FOLDER:/var/lib/mariadb/data#g" docker-compose.yml +# If the database folder was provided (not blank), replace the pgdata/dbdata volume with a bind mount +# of the provided folder +if [[ -n $DATABASE_FOLDER ]] ; then + if [[ "$DATABASE_BACKEND" == "postgres" ]] ; then + sed -i "s#- pgdata:/var/lib/postgresql/data#- $DATABASE_FOLDER:/var/lib/postgresql/data#g" docker-compose.yml + sed -i "/^\s*pgdata:/d" docker-compose.yml + elif [[ "$DATABASE_BACKEND" == "mariadb" ]]; then + sed -i "s#- dbdata:/var/lib/mysql#- $DATABASE_FOLDER:/var/lib/mysql#g" docker-compose.yml + sed -i "/^\s*dbdata:/d" docker-compose.yml + fi fi # remove trailing blank lines from end of file @@ -394,4 +383,4 @@ ${DOCKER_COMPOSE_CMD} pull ${DOCKER_COMPOSE_CMD} run --rm -e DJANGO_SUPERUSER_PASSWORD="$PASSWORD" webserver createsuperuser --noinput --username "$USERNAME" --email "$EMAIL" -${DOCKER_COMPOSE_CMD} up -d +${DOCKER_COMPOSE_CMD} up --detach From 140e239bdb61f49cfa834408862f317a82a12a4c Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 30 Aug 2022 15:34:56 -0700 Subject: [PATCH 203/348] Fixes the shellcheck issues --- docker/docker-prepare.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/docker-prepare.sh b/docker/docker-prepare.sh index 193811d01..c4e45c032 100755 --- a/docker/docker-prepare.sh +++ b/docker/docker-prepare.sh @@ -37,7 +37,7 @@ wait_for_mariadb() { attempt_num=1 max_attempts=5 - while ! /dev/tcp/$host/$port; do if [ $attempt_num -eq $max_attempts ]; then echo "Unable to connect to database." @@ -47,7 +47,7 @@ wait_for_mariadb() { fi - attempt_num=$(expr "$attempt_num" + 1) + attempt_num=$(("$attempt_num" + 1)) sleep 5 done } From 18a4ba77780a0628e4be61b725969f86f1438d0d Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Tue, 30 Aug 2022 15:38:57 -0700 Subject: [PATCH 204/348] Removes optipng, added in a bad merge --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 60f3374e7..bb9a148ef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -77,7 +77,6 @@ ARG RUNTIME_PACKAGES="\ libraqm0 \ libgnutls30 \ libjpeg62-turbo \ - optipng \ python3 \ python3-pip \ python3-setuptools \ From 2c3c26edf18a458eff6c9549d647dc7224bb8fe6 Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Sun, 11 Sep 2022 08:20:58 -0700 Subject: [PATCH 205/348] Ensures the Pipfile.lock hash is up to date --- Pipfile.lock | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index b439beadd..651ae4825 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "8d8183effbecd0c91106f23f66517f720754f7d129eec22c86969da43f69ca82" + "sha256": "af0a0a5b996c11ad95266e98200640fd77648ec0f337ac3eb4e4b5ca1c714a0e" }, "pipfile-spec": 6, "requires": {}, @@ -39,7 +39,7 @@ "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1", "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==1.2.3" }, "asgiref": { @@ -55,7 +55,7 @@ "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15", "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==4.0.2" }, "attrs": { @@ -115,7 +115,7 @@ "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2022.6.15" }, "cffi": { @@ -208,7 +208,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.1.1" }, "click": { @@ -271,7 +271,7 @@ "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd", "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==38.0.1" }, "daphne": { @@ -279,7 +279,7 @@ "sha256:76ffae916ba3aa66b46996c14fa713e46004788167a4873d647544e750e0e99f", "sha256:a9af943c79717bc52fe64a3c236ae5d3adccc8b5be19c881b442d2c3db233393" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==3.0.2" }, "dateparser": { @@ -390,7 +390,7 @@ "sha256:70813c1135087a248a4d38cc0e1a0181ffab2188141a93eaf567940c3957ff06", "sha256:8ddd78563b633ca55346c8cd41ec0af27d3c79931828beffb46ce70a379e7442" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==0.13.0" }, "hiredis": { @@ -437,7 +437,7 @@ "sha256:f52010e0a44e3d8530437e7da38d11fb822acfb0d5b12e9cd5ba655509937ca0", "sha256:f8196f739092a78e4f6b1b2172679ed3343c39c61a3e9d722ce6fcf1dac2824a" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.0.0" }, "httptools": { @@ -553,7 +553,7 @@ "sha256:4158fcecd13733f8be669be0683b96ebdbbd38d23559f54dca7205aea1bf1e35", "sha256:f21f109b3c7ff9d95f8387f752d0d9c34a02aa2f7060c2135f465da0e5160ff6" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==1.1.0" }, "langdetect": { @@ -757,7 +757,7 @@ "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==21.3" }, "pathvalidate": { @@ -894,7 +894,7 @@ "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==1.0.0" }, "portalocker": { @@ -1165,7 +1165,7 @@ "sha256:fbc88d3ba402b5d041d204ec2449c4078898f89c4a6e6f0ed1c1a510ef1e221d", "sha256:fbd3fe37353c62fd0eb19fb76f78aa693716262bcd5f9c14bb9e5aca4b3f0dc4" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2022.3.2" }, "reportlab": { @@ -1315,7 +1315,7 @@ "sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b", "sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==3.1.0" }, "tika": { @@ -1349,7 +1349,7 @@ "sha256:2e4582b70f04b2345908254684a984206c0d9b50e3074a24a4c55aba21d24d01", "sha256:41223af4a9d5726e645a8ee82480f413e5e300dd257db94bc38ae12ea48fb2e5" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==22.2.1" }, "typing-extensions": { @@ -1365,7 +1365,7 @@ "sha256:21f4f0d7241572efa7f7a4fdabb052e61b55dc48274e6842697ccdf5253e5451", "sha256:c3119520447d68ef3eb8187a55a4f44fa455f30eb1b4238fa5691ba094f2b05b" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2022.2" }, "tzlocal": { @@ -1373,7 +1373,7 @@ "sha256:89885494684c929d9191c57aa27502afc87a579be5cdd3225c77c463ea043745", "sha256:ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==4.2" }, "urllib3": { @@ -1741,7 +1741,7 @@ "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2022.6.15" }, "cfgv": { @@ -1757,7 +1757,7 @@ "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==2.1.1" }, "click": { @@ -1777,7 +1777,6 @@ "version": "==0.4.5" }, "coverage": { - "extras": [], "hashes": [ "sha256:01778769097dbd705a24e221f42be885c544bb91251747a8a3efdec6eb4788f2", "sha256:08002f9251f51afdcc5e3adf5d5d66bb490ae893d9e21359b085f0e03390a820", @@ -2037,7 +2036,7 @@ "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==21.3" }, "pathspec": { @@ -2061,7 +2060,7 @@ "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version >= '3.6.0'", "version": "==1.0.0" }, "pre-commit": { @@ -2351,7 +2350,7 @@ "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" ], - "markers": "python_version >= '3.7'", + "markers": "python_version > '2.7'", "version": "==6.2" }, "tox": { From 32677080976b64c901d1d872facb6250b92b8c53 Mon Sep 17 00:00:00 2001 From: "Paperless-ngx Translation Bot [bot]" <99855517+paperless-l10n@users.noreply.github.com> Date: Sun, 11 Sep 2022 15:04:55 -0700 Subject: [PATCH 206/348] New Crowdin updates (#1295) Squashed commit of Crowdin updates Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com> --- src-ui/src/locale/messages.ar_SA.xlf | 336 +++++++---- src-ui/src/locale/messages.be_BY.xlf | 336 +++++++---- src-ui/src/locale/messages.cs_CZ.xlf | 336 +++++++---- src-ui/src/locale/messages.da_DK.xlf | 336 +++++++---- src-ui/src/locale/messages.de_DE.xlf | 370 ++++++++---- src-ui/src/locale/messages.es_ES.xlf | 358 +++++++---- src-ui/src/locale/messages.fi_FI.xlf | 554 ++++++++++------- src-ui/src/locale/messages.fr_FR.xlf | 420 ++++++++----- src-ui/src/locale/messages.he_IL.xlf | 336 +++++++---- src-ui/src/locale/messages.hr_HR.xlf | 336 +++++++---- src-ui/src/locale/messages.it_IT.xlf | 390 +++++++----- src-ui/src/locale/messages.ja_JP.xlf | 336 +++++++---- src-ui/src/locale/messages.lb_LU.xlf | 336 +++++++---- src-ui/src/locale/messages.nl_NL.xlf | 462 +++++++++------ src-ui/src/locale/messages.no_NO.xlf | 784 ++++++++++++++----------- src-ui/src/locale/messages.pl_PL.xlf | 336 +++++++---- src-ui/src/locale/messages.pt_BR.xlf | 336 +++++++---- src-ui/src/locale/messages.pt_PT.xlf | 336 +++++++---- src-ui/src/locale/messages.ro_RO.xlf | 336 +++++++---- src-ui/src/locale/messages.ru_RU.xlf | 416 ++++++++----- src-ui/src/locale/messages.sl_SI.xlf | 376 ++++++++---- src-ui/src/locale/messages.sr_CS.xlf | 522 +++++++++------- src-ui/src/locale/messages.sv_SE.xlf | 336 +++++++---- src-ui/src/locale/messages.tr_TR.xlf | 328 +++++++---- src-ui/src/locale/messages.zh_CN.xlf | 336 +++++++---- src/locale/be_BY/LC_MESSAGES/django.po | 4 +- src/locale/de_DE/LC_MESSAGES/django.po | 4 +- src/locale/fi_FI/LC_MESSAGES/django.po | 66 +-- src/locale/fr_FR/LC_MESSAGES/django.po | 8 +- src/locale/it_IT/LC_MESSAGES/django.po | 6 +- src/locale/nl_NL/LC_MESSAGES/django.po | 28 +- src/locale/no_NO/LC_MESSAGES/django.po | 224 +++---- src/locale/pl_PL/LC_MESSAGES/django.po | 6 +- src/locale/ru_RU/LC_MESSAGES/django.po | 30 +- src/locale/sl_SI/LC_MESSAGES/django.po | 30 +- src/locale/sr_CS/LC_MESSAGES/django.po | 120 ++-- src/locale/tr_TR/LC_MESSAGES/django.po | 2 +- 37 files changed, 6614 insertions(+), 3598 deletions(-) diff --git a/src-ui/src/locale/messages.ar_SA.xlf b/src-ui/src/locale/messages.ar_SA.xlf index 1618db6f7..a183870d8 100644 --- a/src-ui/src/locale/messages.ar_SA.xlf +++ b/src-ui/src/locale/messages.ar_SA.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 طرق العرض المحفوظة @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 حفظ @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Searching document with asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Delete @@ -1537,11 +1581,23 @@ تحميل النسخة الأصلية + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 إغلاق @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 تفاصيل @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 الرقم التسلسلي للأرشيف @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 تاريخ الإنشاء @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 محتوى @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 تاريخ التعديل @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 تاريخ الإضافة @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 اسم ملف الوسائط + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 مجموع MD5 الاختباري للأصل @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 حجم الملف الأصلي @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 نوع mime الأصلي @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 مجموع MD5 الاختباري للأرشيف @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 حجم ملف الأرشيف @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 بيانات التعريف للمستند الأصلي @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 بيانات التعريف للمستند الأصلي @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Enter Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 تجاهل @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 حفظ & التالي @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 هل تريد حقاً حذف المستند " @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 ستحذف ملفات هذا المستند بشكل دائم. لا يمكن التراجع عن هذه العملية. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 حذف مستند @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 حدث خطأ أثناء حذف الوثيقة: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + This operation cannot be undone. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ This operation will permanently delete selected document(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - This operation cannot be undone. - Delete document(s) @@ -2159,14 +2279,6 @@ Delete document(s) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 View "" saved successfully. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 View "" created successfully. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Show in sidebar @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Show on dashboard @@ -3083,11 +3187,19 @@ Apply on close + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 الإشعارات @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Document processing @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Show notifications when new documents are detected @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Show notifications when document processing completes successfully @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Show notifications when document processing fails @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Suppress notifications on dashboard @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 This will suppress all messages about document processing status on the dashboard. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Appears on @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 No saved views defined. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Saved view "" deleted. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 استخدم لغة النظام @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 استخدم تنسيق تاريخ لغة العرض @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Learn matching automatically + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Unsaved Changes @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 You have unsaved changes. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Are you sure you want to close this document? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Close document @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Are you sure you want to close all documents? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Close documents diff --git a/src-ui/src/locale/messages.be_BY.xlf b/src-ui/src/locale/messages.be_BY.xlf index 3cedbe4d7..2256207cd 100644 --- a/src-ui/src/locale/messages.be_BY.xlf +++ b/src-ui/src/locale/messages.be_BY.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Захаваныя выгляды @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Захаваць @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Пошук дакумента з asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Выдаліць @@ -1537,11 +1581,23 @@ Спампаваць арыгінал + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Закрыць @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Падрабязнасці @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Парадкавы нумар архіва @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Дата стварэння @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Змест @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Дата змянення @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Дата дадання @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Імя медыяфайла + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Арыгінальная кантрольная сума MD5 @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Арыгінальны памер файла @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Арыгінальны MIME тып @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 MD5 сума архіва @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Памер файла архіва @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Арыгінальныя метададзеныя дакумента @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Метададзеныя архіўнага дакумента @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Enter Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Адхіліць @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Захаваць & наступны @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Вы сапраўды хочаце выдаліць дакумент ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Файлы для гэтага дакумента будуць выдалены назаўсёды. Гэтую аперацыю нельга адмяніць. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Выдаліць дакумент @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Памылка выдалення дакумента: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Гэтую аперацыю нельга адмяніць. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ Гэтая аперацыя назаўжды выдаліць абраных дакументаў. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Гэтую аперацыю нельга адмяніць. - Delete document(s) @@ -2159,14 +2279,6 @@ Выдаліць дакумент(ы) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Прагляд "" паспяхова захаваны. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Прагляд "" створаны паспяхова. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Паказаць у бакавой панэлі @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Паказаць на панэлі @@ -3083,11 +3187,19 @@ Ужыць пры зачыненні + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Апавяшчэнні @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Апрацоўка дакумента @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Паказваць апавяшчэнні пры выяўленні новых дакументаў @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Паказваць апавяшчэнні, калі апрацоўка дакумента завершана паспяхова @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Паказваць апавяшчэнні, калі апрацоўка дакумента няўдалая @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Схаваць апавяшчэння на галоўнай панэлі @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Гэта адключыць усе паведамленні аб статуце апрацоўкі дакументаў на галоўнай панэлі. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 З'яўляецца на @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Няма захаваных праглядаў. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Захаваны выгляд "" выдалены. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Выкарыстоўваць мову сістэмы @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Выкарыстоўваць фармат даты мовы адлюстравання @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Аўтаматычны: вучыцеся аўтаматычна + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Незахаваныя змены @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 У вас ёсць незахаваныя змены. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Вы ўпэўнены, што хочаце закрыць гэты дакумент? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Закрыць дакумент @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Вы ўпэўнены, што хочаце закрыць усе дакументы? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Закрыць дакументы diff --git a/src-ui/src/locale/messages.cs_CZ.xlf b/src-ui/src/locale/messages.cs_CZ.xlf index 72b82e843..f5809a659 100644 --- a/src-ui/src/locale/messages.cs_CZ.xlf +++ b/src-ui/src/locale/messages.cs_CZ.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Uložené pohledy @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Uložit @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Hledání dokumentu s ASN + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Odstranit @@ -1537,11 +1581,23 @@ Stáhnout originál + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Zavřít @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Podrobnosti @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Sériové číslo archivu @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Vytvořeno @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Obsah @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Upraveno @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Přidána @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Název souboru + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Původní kontrolní součet MD5 @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Původní velikost souboru @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Původní typ mime @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Kontrolní součet MD5 archivu @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Velikost souboru archivu @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metadata původního dokumentu @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metadata archivovaného dokumentu @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Enter Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Zrušit @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Uložit & další @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Opravdu chcete smazat dokument ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Soubory tohoto dokumentu budou trvale smazány. Tuto operaci nelze vrátit zpět. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Smazat dokument @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Chyba při mazání dokumentu: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Tuto operaci nelze vrátit zpět. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ Tato operace trvale odstraní vybraných dokumentů. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Tuto operaci nelze vrátit zpět. - Delete document(s) @@ -2159,14 +2279,6 @@ Smazat dokument(y) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Zobrazení "" bylo úspěšně uloženo. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Zobrazení "" bylo úspěšně vytvořeno. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Zobrazit na postranním panelu @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Zobrazit na nástěnce @@ -3083,11 +3187,19 @@ Aplikovat při zavření + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Oznámení @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Zpracovávání dokumentu @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Zobrazit oznámení, když jsou zjištěny nové dokumenty @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Zobrazit oznámení při úspěšném dokončení zpracování dokumentu @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Zobrazit oznámení, když zpracování dokumentu selže @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Potlačit oznámení na nástěnce @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Toto potlačí všechny zprávy o stavu zpracování dokumentu na nástěnce. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Výskyt @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Nejsou definovány žádné uložené pohledy. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Uložený pohled "" odstraněn. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Použít systémový jazyk @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Použít formát data zobrazeného jazyka @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Automaticky se učit hledat shody + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Unsaved Changes @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 You have unsaved changes. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Are you sure you want to close this document? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Close document @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Are you sure you want to close all documents? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Close documents diff --git a/src-ui/src/locale/messages.da_DK.xlf b/src-ui/src/locale/messages.da_DK.xlf index b060b66b1..26fe800fb 100644 --- a/src-ui/src/locale/messages.da_DK.xlf +++ b/src-ui/src/locale/messages.da_DK.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Reducer timer @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Forøg minutter @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Reducer minutter @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Gemte visninger @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Gem @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Søger efter dokument med asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Slet @@ -1537,11 +1581,23 @@ Download original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Luk @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Forrige @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Næste @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Detaljer @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Arkiv serienummer @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Oprettelsesdato @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Indhold @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Ændringsdato @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Tilføjelsesdato @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Filnavn for medie + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Original MD5 kontrolsum @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Original filstørrelse @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Original mimetype @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Arkiv MD5 kontrolsum @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Arkiv filstørrelse @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Original dokumentmetadata @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Arkiveret dokumentmetadata @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Indtast adgangskode + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Forkast @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Gem & næste @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Er du sikker på, at du vil slette dokument ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Filerne for dette dokument vil blive slettet permanent. Denne handling kan ikke fortrydes. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Slet dokument @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Fejl ved sletning af dokument: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Denne handling kan ikke fortrydes. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ Denne handling vil permanent slette valgte dokument(er). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Denne handling kan ikke fortrydes. - Delete document(s) @@ -2159,14 +2279,6 @@ Slet dokument(er) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Visning "" er gemt. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Visning "" er oprettet. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Vis i sidebjælke @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Vis på betjeningspanel @@ -3083,11 +3187,19 @@ Anvend ved lukning + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notifikationer @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Dokumentbehandling @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Vis notifikationer når nye dokumenter registreres @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Vis notifikationer når dokumentbehandling er fuldført @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Vis notifikationer når dokumentbehandling fejler @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Undertryk notifikationer på betjeningspanelet @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Dette vil undertrykke alle meddelelser om dokumentbehandlingsstatus på betjeningspanelet. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Vises på @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Ingen gemte visninger. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Gemt visning "" slettet. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Benyt systemsprog @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Benyt datoformat for visningssprog @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Lær automatisk at matche + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Ugemte Ændringer @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Du har ugemte ændringer. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Er du sikker på, at du vil lukke dette dokument? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Luk dokument @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Er du sikker på, at du vil lukke alle dokumenter? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Luk dokumenter diff --git a/src-ui/src/locale/messages.de_DE.xlf b/src-ui/src/locale/messages.de_DE.xlf index a9cbbed61..37760766e 100644 --- a/src-ui/src/locale/messages.de_DE.xlf +++ b/src-ui/src/locale/messages.de_DE.xlf @@ -17,7 +17,7 @@ 157,166 Currently selected slide number read by screen reader - Slide of + Folie von Previous @@ -33,7 +33,7 @@ node_modules/src/carousel/carousel.ts 209,211 - Weiter + Nächste Select month @@ -155,7 +155,7 @@ node_modules/src/progressbar/progressbar.ts 23,26 - + HH @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Stunden verringern @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Minuten erhöhen @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Minuten verringern @@ -345,7 +345,7 @@ src/app/app.component.ts 146 - Starte Upload... + Beginne Upload... Paperless-ngx @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Gespeicherte Ansichten @@ -522,7 +522,7 @@ src/app/components/app-frame/app-frame.component.html 148 - File Tasks + Dateiaufgaben Logs @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Speichern @@ -1086,7 +1090,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Alle + Irgendeines Apply @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Dokument mit ASN wird gesucht + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Kommentar eingeben + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Bitte geben Sie einen Kommentar ein. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Kommentar hinzufügen + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Fehler beim Speichern des Kommentars: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Fehler beim Löschen des Kommentars: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Löschen @@ -1537,11 +1581,23 @@ Original herunterladen + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + OCR wiederholen + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Schließen @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Zurück @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Weiter @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Details @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Archiv-Seriennummer @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Ausgestellt am @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Standard @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Inhalt @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Geändert am @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Hinzugefügt am @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Media-Dateiname + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Dateiname Original + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 MD5-Prüfsumme Original @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Dateigröße Original @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 MIME-Typ Original @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 MD5-Prüfsumme Archiv @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Dateigröße Archiv @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metadaten Original @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metadaten Archiv @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Passwort eingeben + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Kommentare + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Verwerfen @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Speichern & weiter @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Möchten Sie das Dokument "" wirklich löschen? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Die Dateien dieses Dokuments werden permanent gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Dokument löschen @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Fehler beim Löschen des Dokuments: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + OCR wiederholen + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + Diese Aktion wird die Texterkennung für das Dokument wiederholen. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Diese Aktion kann nicht rückgängig gemacht werden. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Fortfahren + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Die erneute Texterkennung wird im Hintergrund gestartet. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Fehler beim Ausführen der Aktion: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1947,7 +2087,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 78,82 - Originale herunterladen Download wird vorbereitet... + Herunterladen Herunterladen wird vorbereitet... Download originals Preparing download... @@ -1957,14 +2097,6 @@ Originale herunterladen Download wird vorbereitet... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - PCR wiederholen - Error executing bulk operation: @@ -2025,7 +2157,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 209,211 - Dieser Vorgang wird die folgenden Tags hinzufügen zu ausgewählten Dokument(en). + Diese Aktion wird die folgenden Tags hinzufügen zu ausgewählten Dokument(en). This operation will remove the tag "" from selected document(s). @@ -2041,7 +2173,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 222,224 - Dieser Vorgang wird die folgenden Tags entfernen von ausgewählten Dokument(en). + Diese Aktion wird die folgenden Tags von ausgewählten Dokument(en) entfernen. This operation will add the tags and remove the tags on selected document(s). @@ -2049,7 +2181,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 226,230 - Dieser Vorgang wird die folgenden Tags hinzufügen und die folgenden entfernen von ausgewählten Dokumenten(en). + Diese Aktion wird die Tags hinzufügen und die Tags ertfernen von ausgewählten Dokument(en). Confirm correspondent assignment @@ -2139,18 +2271,6 @@ Diese Aktion wird ausgewählte Dokumente unwiderruflich löschen. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Diese Aktion kann nicht rückgängig gemacht werden. - Delete document(s) @@ -2159,29 +2279,13 @@ Dokument(e) löschen - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - OCR wiederholen - This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts 388 - Diese Aktion wird OCR permanent für ausgewählte(s) Dokument(e) wiederholen. - - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Fortfahren + Diese Aktion wird die Texterkennung für ausgewählte(s) Dokument(e) wiederholen. Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Ansicht "" erfolgreich gespeichert. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Ansicht "" erfolgreich erstellt. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 In Seitenleiste zeigen @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Auf Startseite zeigen @@ -3083,11 +3187,19 @@ Anwenden beim Schließen + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Kommentare aktivieren + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Benachrichtigungen @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Dokumentverarbeitung @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Zeige Benachrichtigungen wenn neue Dokumente erkannt werden @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Zeige Benachrichtigungen wenn neue Dokumente erfolgreich hinzugefügt wurden @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Zeige Benachrichtigungen wenn Dokumente nicht hinzugefügt werden konnten @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Unterdrücke Benachrichtigungen auf der Startseite @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Dadurch werden alle Benachrichtigungen über die Dokumentenverarbeitung auf der Startseite unterdrückt. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Erscheint auf @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Keine gespeicherten Ansichten vorhanden. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Gespeicherte Ansicht "" gelöscht. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Einstellungen gespeichert @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Einstellungen wurden erfolgreich gespeichert. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Einstellungen wurden erfolgreich gespeichert. Neuladen ist erforderlich, um einige Änderungen zu übernehmen. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Jetzt neuladen @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 Ein Fehler ist beim Speichern der Einstellungen aufgetreten. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Benutze Systemsprache @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Benutze Datumsformat der Anzeigesprache @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Fehler beim Speichern der Einstellungen auf dem Server: @@ -3281,7 +3393,7 @@ src/app/components/manage/tasks/tasks.component.html 1 - Datei-Aufgaben + Dateiaufgaben Clear selection @@ -3299,7 +3411,7 @@ src/app/components/manage/tasks/tasks.component.html 11 - + Refresh @@ -3351,7 +3463,7 @@ src/app/components/manage/tasks/tasks.component.html 102 - Complete  + Erledigt Started  @@ -3387,7 +3499,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - Alle verwerfen + Alle Confirm Dismiss All @@ -3403,7 +3515,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - tasks? + Aufgaben verwerfen? 404 Not Found @@ -3501,6 +3613,14 @@ Auto: Zuweisung automatisch erlernen + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warnung: Sie haben nicht gespeicherte Änderungen an Ihren Dokument(en). + Unsaved Changes @@ -3509,13 +3629,13 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 - Ungespeicherte Änderungen + Nicht gespeicherte Änderungen You have unsaved changes. @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Sie haben ungespeicherte Änderungen. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 Sie haben ungespeicherte Änderungen am Dokument @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Sind Sie sicher, dass Sie dieses Dokument schließen möchten? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Dokument schließen @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Sind Sie sicher, dass Sie alle Dokumente schließen möchten? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Alle Dokumente schließen diff --git a/src-ui/src/locale/messages.es_ES.xlf b/src-ui/src/locale/messages.es_ES.xlf index 6d4938fca..e79268171 100644 --- a/src-ui/src/locale/messages.es_ES.xlf +++ b/src-ui/src/locale/messages.es_ES.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrementar horas @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Incrementar minutos @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrementar minutos @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Vistas guardadas @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Salvar @@ -914,7 +918,7 @@ src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts 24 - Crear nuevo tipo de documento + Crear nuevo interlocutor Edit correspondent @@ -922,7 +926,7 @@ src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts 28 - Editar tipo de documento + Editar interlocutor Create new document type @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Buscando documento con NSA + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Introducir comentario + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Por favor, introduzca un comentario. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Añadir comentario + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error guardando el comentario: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error borrando el comentario: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Borrar @@ -1537,11 +1581,23 @@ Documento original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Rehacer OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Cerrar @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Anterior @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Siguiente @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Detalles @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Número de serie del archivo @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Fecha de creación @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1619,13 +1675,13 @@ src/app/services/rest/document.service.ts 19 - Correspondencia + Interlocutor Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Por defecto @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Contenido @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Fecha de modificación @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Fecha de subida @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Nombre del fichero + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Nombre del archivo original + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Comprobación MD5 original @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Tamaño del fichero original @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Tipo MIME original @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Comprobación MD5 del archivo @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Tamaño del archivo @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metadatos originales @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metadatos archivados @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Introducir contraseña + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comentarios + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Descartar @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Guardar y continuar @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 ¿Estás seguro de querer borrar el documento ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Los archivos para este documento serán borrados permanentemente. Esta operación no se puede deshacer. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Borrar documento @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Error borrando el documento: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Rehacer confirmación de OCR + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + Esta operación rehará permanentemente el OCR de este documento. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Esta operación no se puede deshacer. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Continuar + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + La operación de rehacer OCR comenzará en segundo plano. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1883,7 +2023,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 31 - Filtrar tipos de documento + Filtrar interlocutores Filter document types @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Descargar originales Preparando descarga... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Rehacer OCR - Error executing bulk operation: @@ -2057,7 +2189,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 265 - Confirmar asignación correspondiente + Confirmar asignación interlocutor This operation will assign the correspondent "" to selected document(s). @@ -2065,7 +2197,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 267 - Esta operacion asignará el tipo de documento "" a documento(s) seleccionado(s). + Esta operación asignará el interlocutor "" a documento(s) seleccionado(s). This operation will remove the correspondent from selected document(s). @@ -2073,7 +2205,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 269 - Esta operación eliminará el tipo de documento de documento(s) seleccionado(s). + Esta operación eliminará el interlocutor de documento(s) seleccionado(s). Confirm document type assignment @@ -2139,18 +2271,6 @@ Esta operación borrará permanentemente documento(s) seleccionado(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Esta operación no se puede deshacer. - Delete document(s) @@ -2159,14 +2279,6 @@ Borrar documento(s) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ Esta operación rehará permanentemente OCR para documento(s) seleccionados. - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Continuar - Filter by correspondent @@ -2193,7 +2297,7 @@ src/app/components/document-list/document-list.component.html 171 - Filtrar por tipo de documento + Filtrar por interlocutor Filter by tag @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Ver "" guardado satisfactoriamente. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Ver "" creado satisfactoriamente. @@ -2525,7 +2629,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 76 - Sin tipo de documento + Sin interlocutor Type: @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Mostrar barra lateral @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Mostrar en el panel de control @@ -2677,7 +2781,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 12 - Filter rules error occurred while saving this view + Error en las reglas de filtro al guardar esta vista The error returned was @@ -2717,7 +2821,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 48 - ¿Estás seguro de querer borrar el tipo de documento ""? + ¿Estás seguro de querer borrar el interlocutor ""? document type @@ -3083,11 +3187,19 @@ Aplicar al cerrar + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Activar comentarios + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notificaciones @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Procesado de documentos @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Mostrar notificaciones cuando nuevos documentos sean borrados @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Mostrar notificaciones cuando el procesado se complete satisfactoriamente @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Mostrar notificaciones cuando el procesado falle @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 No mostrar notificaciones en el panel de control @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Esto suprimirá todos los mensajes de estado de procesamiento en el panel de control. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Aparece en @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 No hay ninguna vista guardada definida @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Vista guardada "" borrada. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Configuración guardada @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 La configuración se ha guardado correctamente. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 La configuración se ha guardado con éxito. Es necesario recargar para aplicar algunos cambios. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Recargar ahora @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 Se produjo un error al guardar la configuración. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Usar idioma del sistema @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Usar formato de fechas del idioma seleccionado @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error al almacenar la configuración en el servidor: @@ -3501,6 +3613,14 @@ Automático: Aprender automáticamente + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Advertencia: Tiene cambios sin guardar en su documento(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Cambios sin guardar @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Tiene cambios sin guardar. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 Tienes cambios sin guardar en este documento @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 ¿Está seguro de querer cerrar este documento? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Cerrar documento @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 ¿Está seguro de querer cerrar todos los documentos? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Cerrar documentos diff --git a/src-ui/src/locale/messages.fi_FI.xlf b/src-ui/src/locale/messages.fi_FI.xlf index 251ce0743..714cfe018 100644 --- a/src-ui/src/locale/messages.fi_FI.xlf +++ b/src-ui/src/locale/messages.fi_FI.xlf @@ -8,7 +8,7 @@ node_modules/src/alert/alert.ts 42,44 - Close + Sulje Slide of @@ -17,7 +17,7 @@ 157,166 Currently selected slide number read by screen reader - Slide of + Liu'uta / Previous @@ -25,7 +25,7 @@ node_modules/src/carousel/carousel.ts 188,191 - Previous + Edellinen Next @@ -33,7 +33,7 @@ node_modules/src/carousel/carousel.ts 209,211 - Next + Seuraava Select month @@ -45,7 +45,7 @@ node_modules/src/datepicker/datepicker-navigation-select.ts 41,42 - Select month + Valitse kuukausi Select year @@ -57,7 +57,7 @@ node_modules/src/datepicker/datepicker-navigation-select.ts 41,42 - Select year + Valitse vuosi Previous month @@ -69,7 +69,7 @@ node_modules/src/datepicker/datepicker-navigation.ts 43,46 - Previous month + Edellinen kuukausi Next month @@ -81,7 +81,7 @@ node_modules/src/datepicker/datepicker-navigation.ts 43,46 - Next month + Seuraava kuukausi «« @@ -121,7 +121,7 @@ node_modules/src/pagination/pagination.ts 224,226 - First + Ensimmäinen Previous @@ -129,7 +129,7 @@ node_modules/src/pagination/pagination.ts 224,226 - Previous + Edellinen Next @@ -137,7 +137,7 @@ node_modules/src/pagination/pagination.ts 224,225 - Next + Seuraava Last @@ -145,7 +145,7 @@ node_modules/src/pagination/pagination.ts 224,225 - Last + Viimeinen @@ -155,7 +155,7 @@ node_modules/src/progressbar/progressbar.ts 23,26 - + HH @@ -163,7 +163,7 @@ node_modules/src/timepicker/timepicker.ts 138,141 - HH + HH Hours @@ -171,7 +171,7 @@ node_modules/src/timepicker/timepicker.ts 161 - Hours + Tuntia MM @@ -179,7 +179,7 @@ node_modules/src/timepicker/timepicker.ts 182 - MM + MM Minutes @@ -187,7 +187,7 @@ node_modules/src/timepicker/timepicker.ts 199 - Minutes + Minuuttia Increment hours @@ -195,13 +195,13 @@ node_modules/src/timepicker/timepicker.ts 218,219 - Increment hours + Lisää tunteja Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Tallennetut näkymät @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Save @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1423,7 +1427,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 11 - You can configure paperless to read your mails and add documents from attached files. + Voit määrittää Paperlessin lukemaan sähköpostejasi ja lisäämään asiakirjoja liitetyistä tiedostoista. Consult the documentation on how to use these features. The section on basic usage also has some information on how to use paperless in general. @@ -1431,7 +1435,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 13 - Consult the documentation on how to use these features. The section on basic usage also has some information on how to use paperless in general. + Lue dokumentaatiosta, miten näitä ominaisuuksia käytetään. Peruskäyttöä koskevassa osiossa on myös tietoa Paperlessin käytön yleisestä käytöstä. Searching document with asn @@ -1439,7 +1443,47 @@ src/app/components/document-asn/document-asn.component.html 1 - Searching document with asn + Etsitään asiakirjaa asn-tiedolla + + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Syötä kommentti + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Kirjoita kommentti. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Lisää kommentti + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Virhe tallennettaessa kommenttia: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Virhe poistettaessa kommenttia: Page @@ -1451,7 +1495,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 15 - Page + Sivu of @@ -1459,7 +1503,7 @@ src/app/components/document-detail/document-detail.component.html 5 - of + sivusta Delete @@ -1509,9 +1553,9 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 - Delete + Poista Download @@ -1527,7 +1571,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 86 - Download + Lataa Download original @@ -1535,73 +1579,85 @@ src/app/components/document-detail/document-detail.component.html 25 - Download original + Lataa alkuperäinen - - More like this + + Redo OCR src/app/components/document-detail/document-detail.component.html 34 + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Tee OCR Uudelleen + + + More like this + + src/app/components/document-detail/document-detail.component.html + 40 + src/app/components/document-list/document-card-large/document-card-large.component.html 38 - More like this + Enemmän tällaisia Close src/app/components/document-detail/document-detail.component.html - 37 + 43 - Close + Sulje Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 - Previous + Edellinen Next src/app/components/document-detail/document-detail.component.html - 49 + 55 - Next + Seuraava Details src/app/components/document-detail/document-detail.component.html - 66 + 72 - Details + Tarkemmat tiedot Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 - Archive serial number + Arkistointisarjanumero Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 - Date created + Luontipäivä Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1619,13 +1675,13 @@ src/app/services/rest/document.service.ts 19 - Correspondent + Yhteyshenkilö Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1643,13 +1699,13 @@ src/app/services/rest/document.service.ts 21 - Document type + Asiakirjatyyppi Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1663,187 +1719,271 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 44 - Storage path + Tallennustilan polku Default src/app/components/document-detail/document-detail.component.html - 77 + 83 - Default + Oletusarvo Content src/app/components/document-detail/document-detail.component.html - 84 + 90 - Content + Sisältö Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts 17 - Metadata + Metatiedot Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 - Date modified + Muokkauspäivämäärä Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 - Date added + Lisäyspäivämäärä Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 - Media filename + Median tiedostonimi + + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Alkuperäinen tiedoston nimi Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 - Original MD5 checksum + Alkuperäinen MD5-tarkistussumma Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 - Original file size + Alkuperäinen tiedostokoko Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 - Original mime type + Alkuperäinen mime-tyyppi Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 - Archive MD5 checksum + Arkistoidun MD5-tarkistussumma Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 - Archive file size + Arkistoidun tiedostokoko Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 - Original document metadata + Alkuperäisen asiakirjan metatiedot Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 - Archived document metadata + Arkistoidun dokumentin metatiedot Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 - Enter Password + Syötä salasana + + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Kommentit Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 - Discard + Hylkää Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 - Save & next + Tallenna & Lopeta Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts 153 - Confirm delete + Vahvista poisto Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 - Do you really want to delete document ""? + Haluatko varmasti poistaa asiakirjan ""? The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 - The files for this document will be deleted permanently. This operation cannot be undone. + Tämän asiakirjan tiedostot poistetaan pysyvästi. Tätä toimintoa ei voi peruuttaa. Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 - Delete document + Poista asiakirja Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 - Error deleting document: + Virhe poistettaessa asiakirjaa: + + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Vahvista OCR:n uudelleenteko + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + Tämä toiminto suorittaa OCR:n uudelleen. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Toimintoa ei voi peruuttaa. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ This operation will permanently delete selected document(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - This operation cannot be undone. - Delete document(s) @@ -2159,14 +2279,6 @@ Delete document(s) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2373,7 +2477,7 @@ src/app/components/document-list/document-list.component.html 12 - Select page + Valitse sivu Select all @@ -2381,7 +2485,7 @@ src/app/components/document-list/document-list.component.html 13 - Select all + Valitse kaikki Sort @@ -2389,7 +2493,7 @@ src/app/components/document-list/document-list.component.html 38 - Sort + Lajittele Views @@ -2397,7 +2501,7 @@ src/app/components/document-list/document-list.component.html 63 - Views + Näkymät Save "" @@ -2405,7 +2509,7 @@ src/app/components/document-list/document-list.component.html 70 - Save "" + Tallenna "" Save as... @@ -2413,7 +2517,7 @@ src/app/components/document-list/document-list.component.html 71 - Save as... + Tallenna nimellä... {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} @@ -2421,7 +2525,7 @@ src/app/components/document-list/document-list.component.html 89 - {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} + {VAR_PLURAL, plural, one {}=1 {Valittu yhdestä asiakirjasta} other {Valitut asiakirjasta}} {VAR_PLURAL, plural, =1 {One document} other { documents}} @@ -2429,7 +2533,7 @@ src/app/components/document-list/document-list.component.html 91 - {VAR_PLURAL, plural, =1 {One document} other { documents}} + {VAR_PLURAL, plural, one {}=1 {Yksi dokumentti} other { dokumenttia}} (filtered) @@ -2437,7 +2541,7 @@ src/app/components/document-list/document-list.component.html 91 - (filtered) + (suodatettu) Error while loading documents @@ -2445,7 +2549,7 @@ src/app/components/document-list/document-list.component.html 102 - Error while loading documents + Virhe ladattaessa asiakirjoja ASN @@ -2461,7 +2565,7 @@ src/app/services/rest/document.service.ts 18 - ASN + ASN Added @@ -2477,7 +2581,7 @@ src/app/services/rest/document.service.ts 23 - Added + Lisätty Edit document @@ -2485,23 +2589,23 @@ src/app/components/document-list/document-list.component.html 175 - Edit document + Muokkaa asiakirjaa View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 - View "" saved successfully. + Näkymä "" tallennettu onnistuneesti. View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 - View "" created successfully. + Näkymä "" luotu onnistuneesti. Reset filters @@ -2509,7 +2613,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 71 - Reset filters + Tyhjennä suodattimet Correspondent: @@ -2517,7 +2621,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 72,74 - Correspondent: + Vastaava: Without correspondent @@ -2525,7 +2629,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 76 - Without correspondent + Ilman kirjeenvaihtajaa Type: @@ -2533,7 +2637,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 81,83 - Type: + Tyyppi: Without document type @@ -2541,7 +2645,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 85 - Without document type + Ilman asiakirjatyyppiä Tag: @@ -2549,7 +2653,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 89,91 - Tag: + Tunniste: Without any tag @@ -2557,7 +2661,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 95 - Without any tag + Ilman tunnistetta Title: @@ -2565,7 +2669,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 99 - Title: + Otsikko: ASN: @@ -2573,7 +2677,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 102 - ASN: + ASN: Title & content @@ -2581,7 +2685,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 134 - Title & content + Otsikko & sisältö Advanced search @@ -2589,7 +2693,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 139 - Advanced search + Laajennettu haku More like @@ -2597,7 +2701,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 145 - More like + Enemmän kuin equals @@ -2605,7 +2709,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 164 - equals + on yhtä kuin is empty @@ -2613,7 +2717,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 168 - is empty + on tyhjä is not empty @@ -2621,7 +2725,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 172 - is not empty + ei ole tyhjä greater than @@ -2629,7 +2733,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 176 - greater than + suurempi kuin less than @@ -2637,7 +2741,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 180 - less than + pienempi kuin Save current view @@ -2645,7 +2749,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 3 - Save current view + Tallenna nykyinen näkymä Show in sidebar @@ -2655,9 +2759,9 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 - Show in sidebar + Näytä sivupalkissa Show on dashboard @@ -2667,9 +2771,9 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 - Show on dashboard + Näytä Dashboardissa Filter rules error occurred while saving this view @@ -2677,7 +2781,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 12 - Filter rules error occurred while saving this view + Suodatinsääntövirhe tallentaessa tätä näkymää The error returned was @@ -2685,7 +2789,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 13 - The error returned was + Tapahtui virhe correspondent @@ -2693,7 +2797,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 33 - correspondent + yhteyshenkilö correspondents @@ -2701,7 +2805,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 34 - correspondents + yhteyshenkilöt Last used @@ -2709,7 +2813,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 38 - Last used + Viimeksi käytetty Do you really want to delete the correspondent ""? @@ -2717,7 +2821,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 48 - Do you really want to delete the correspondent ""? + Haluatko varmasti poistaa kirjeenvaihtajan ""? document type @@ -2725,7 +2829,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 30 - document type + asiakirjatyyppi document types @@ -2733,7 +2837,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 31 - document types + asiakirjatyypit Do you really want to delete the document type ""? @@ -2741,7 +2845,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 37 - Do you really want to delete the document type ""? + Haluatko varmasti poistaa asiakirjan tyypin ""? Create @@ -2761,7 +2865,7 @@ src/app/components/manage/management-list/management-list.component.html 2 - Create + Luo Filter by: @@ -2781,7 +2885,7 @@ src/app/components/manage/management-list/management-list.component.html 8 - Filter by: + Suodata: Matching @@ -2801,7 +2905,7 @@ src/app/components/manage/management-list/management-list.component.html 20 - Matching + Vastaavuus Document count @@ -2821,7 +2925,7 @@ src/app/components/manage/management-list/management-list.component.html 21 - Document count + Dokumenttien määrä Filter Documents @@ -2841,7 +2945,7 @@ src/app/components/manage/management-list/management-list.component.html 44 - Filter Documents + Suodata Asiakirjat {VAR_PLURAL, plural, =1 {One } other { total }} @@ -2861,7 +2965,7 @@ src/app/components/manage/management-list/management-list.component.html 74 - {VAR_PLURAL, plural, =1 {One } other { total }} + {VAR_PLURAL, plural, one {}=1 {Yksi } other { yhteensä }} Automatic @@ -3083,11 +3187,19 @@ Apply on close + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notifications @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Document processing @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Show notifications when new documents are detected @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Show notifications when document processing completes successfully @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Show notifications when document processing fails @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Suppress notifications on dashboard @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 This will suppress all messages about document processing status on the dashboard. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Appears on @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 No saved views defined. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Saved view "" deleted. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Use system language @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Use date format of display language @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3265,7 +3377,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 31 - tags + tunnisteet Do you really want to delete the tag ""? @@ -3501,6 +3613,14 @@ Auto: Learn matching automatically + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Unsaved Changes @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 You have unsaved changes. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Are you sure you want to close this document? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Close document @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Are you sure you want to close all documents? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Close documents diff --git a/src-ui/src/locale/messages.fr_FR.xlf b/src-ui/src/locale/messages.fr_FR.xlf index dbc1fab47..c335f0996 100644 --- a/src-ui/src/locale/messages.fr_FR.xlf +++ b/src-ui/src/locale/messages.fr_FR.xlf @@ -17,7 +17,7 @@ 157,166 Currently selected slide number read by screen reader - Diapositive sur + Diapositive sur Previous @@ -45,7 +45,7 @@ node_modules/src/datepicker/datepicker-navigation-select.ts 41,42 - Sélectionner un mois + Sélectionner le mois Select year @@ -57,7 +57,7 @@ node_modules/src/datepicker/datepicker-navigation-select.ts 41,42 - Sélectionnez l'année + Sélectionner l'année Previous month @@ -155,7 +155,7 @@ node_modules/src/progressbar/progressbar.ts 23,26 - + HH @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Décrémenter les heures @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Incrémenter les minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Décrémenter les minutes @@ -285,7 +285,7 @@ src/app/app.component.html 7 - Déposez des fichiers pour lancer le téléchargement + Déposez des fichiers pour lancer l'envoi Document added @@ -345,7 +345,7 @@ src/app/app.component.ts 146 - Début du téléchargement... + Début de l'envoi … Paperless-ngx @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Vues enregistrées @@ -522,7 +522,7 @@ src/app/components/app-frame/app-frame.component.html 148 - File Tasks + Traitement des fichiers Logs @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -594,7 +598,7 @@ src/app/components/app-frame/app-frame.component.html 205 - Cliquez pour voir. + Cliquer pour visualiser. Checking for updates is disabled. @@ -610,7 +614,7 @@ src/app/components/app-frame/app-frame.component.html 208 - Cliquez pour plus d'informations. + Cliquer pour plus d'informations. Update available @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Enregistrer @@ -970,7 +974,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html 10 - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. + Notez que l'édition d'un chemin ne modifie pas les fichiers stockés jusqu'à ce que vous ayez exécuté l'utilitaire 'document_renamer'. Voir la documentation . Path @@ -998,7 +1002,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 27 - or use slashes to add directories e.g. + ou utilisez des barres obliques pour ajouter des répertoires, comme See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. @@ -1006,7 +1010,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 29 - See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. + Voir <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> pour la liste complète. Create new storage path @@ -1014,7 +1018,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 34 - Create new storage path + Créer un nouveau chemin de stockage Edit storage path @@ -1022,7 +1026,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 38 - Edit storage path + Modifier le chemin de stockage Color @@ -1086,7 +1090,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Any + Tous Apply @@ -1102,7 +1106,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 43 - Cliquez à nouveau pour exclure des éléments. + Cliquer à nouveau pour exclure des éléments. Not assigned @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Recherche de document avec NSA + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Saisir un commentaire + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Veuillez saisir un commentaire. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Ajouter un commentaire + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Erreur lors de l'enregistrement du commentaire : + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Erreur lors de la suppression du commentaire : + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Supprimer @@ -1537,11 +1581,23 @@ Télécharger l'original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Relancer la ROC + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Fermer @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Précédent @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Suivant @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Détails @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Numéro de série de l'archive @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Date de création @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,15 +1725,15 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 - Default + Par défaut Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Contenu @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Modifié le @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Date d'ajout @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Nom de fichier du média + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Nom de fichier d'origine + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Somme de contrôle MD5 de l'original @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Taille de fichier de l'original @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Type mime de l'original @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Somme de contrôle MD5 de l'archive @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Taille de fichier de l'archive @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Métadonnées du document original @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Métadonnées du document archivé @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 - Entrez le mot de passe + Saisir le mot de passe + + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Commentaires Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Abandonner @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Enregistrer & suivant @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Voulez-vous vraiment supprimer le document "" ? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Les fichiers liés à ce document seront supprimés définitivement. Cette action est irréversible. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Supprimer le document @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Une erreur s'est produite lors de la suppression du document : + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Confirmer la relance de la ROC + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + Cette opération écrasera la ROC pour ce document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Cette action est irréversible. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Continuer + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + La relance de la ROC commencera en arrière-plan. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Erreur lors de l'exécution de l'opération : + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1947,7 +2087,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 78,82 - Download Preparing download... + Télécharger Préparation du téléchargement… Download originals Preparing download... @@ -1955,15 +2095,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 84,88 - Download originals Preparing download... - - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Refaire l’OCR + Télécharger les originauxPréparation du téléchargement… Error executing bulk operation: @@ -2105,7 +2237,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 337 - Confirm storage path assignment + Confirmez le chemin de stockage This operation will assign the storage path "" to selected document(s). @@ -2113,7 +2245,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 339 - This operation will assign the storage path "" to selected document(s). + Cette opération assignera le chemin de stockage "" aux document(s) sélectionné(s). This operation will remove the storage path from selected document(s). @@ -2121,7 +2253,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 341 - This operation will remove the storage path from selected document(s). + Cette opération assignera le chemin de stockage des "" document(s) sélectionné(s). Delete confirm @@ -2139,18 +2271,6 @@ Cette action supprimera définitivement document(s) sélectionné(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Cette action est irréversible. - Delete document(s) @@ -2159,29 +2279,13 @@ Supprimer le(s) document(s) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Confirmer le relancement de l’OCR - This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts 388 - Cette opération va remplacer définitivement l’OCR pour les document(s) sélectionné(s). - - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed + Cette opération écrasera la ROC pour les document(s) sélectionné(s). Filter by correspondent @@ -2333,7 +2437,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 14 - Toggle tag filter + (Dés)activer filtre d'étiquette Toggle correspondent filter @@ -2341,7 +2445,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 24 - Toggle correspondent filter + (Dés)activer le filtre correspondant Toggle document type filter @@ -2349,7 +2453,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 31 - Toggle document type filter + Activer/désactiver le filtre par type de document Toggle storage path filter @@ -2357,7 +2461,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 38 - Toggle storage path filter + Activer/désactiver le filtre sur le chemin de stockage Select none @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Vue "" enregistrée avec succès. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Vue "" créée avec succès. @@ -2605,7 +2709,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 164 - equals + est égal à is empty @@ -2613,7 +2717,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 168 - is empty + est vide is not empty @@ -2621,7 +2725,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 172 - is not empty + n'est pas vide greater than @@ -2629,7 +2733,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 176 - greater than + est supérieur à less than @@ -2637,7 +2741,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 180 - less than + est inférieur à Save current view @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Montrer dans la barre latérale @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Montrer sur le tableau de bord @@ -2733,7 +2837,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 31 - document types + types de document Do you really want to delete the document type ""? @@ -2861,7 +2965,7 @@ src/app/components/manage/management-list/management-list.component.html 74 - {VAR_PLURAL, plural, =1 {One } other { total }} + {VAR_PLURAL, plural, one {}=1 {Un } other { total }} Automatic @@ -3083,11 +3187,19 @@ Appliquer lors de la fermeture + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Activer les commentaires + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notifications @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Traitement de documents @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Afficher des notifications lorsque de nouveaux documents sont détectés @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Afficher des notifications lorsque le traitement des documents se termine avec succès @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Afficher des notifications en cas d'échec du traitement des documents @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Supprimer les notifications du tableau de bord @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Cela supprimera tous les messages liés au traitement de documents sur le tableau de bord. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Apparaît sur @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Aucune vue sauvegardée n'est définie. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Vue "" supprimée. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Paramètres enregistrés @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Les paramètres ont été enregistrés avec succès. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Les paramètres ont été enregistrés avec succès. Un rechargement est nécessaire pour appliquer certains changements. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Recharger maintenant @@ -3199,15 +3311,15 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 - An error occurred while saving settings. + Une erreur est survenue lors de la sauvegarde des paramètres. Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Utiliser la langue du système @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Utiliser le format de date de la langue d'affichage @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Une erreur s'est produite lors de l'enregistrement des paramètres sur le serveur : @@ -3233,7 +3345,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 30 - storage path + chemin de stockage storage paths @@ -3241,7 +3353,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 31 - storage paths + chemins de stockage Do you really want to delete the storage path ""? @@ -3249,7 +3361,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 45 - Do you really want to delete the storage path ""? + Voulez-vous vraiment supprimer le chemin de stockage " " ? tag @@ -3265,7 +3377,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 31 - tags + étiquettes Do you really want to delete the tag ""? @@ -3281,7 +3393,7 @@ src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + Tâches sur les fichiers Clear selection @@ -3323,7 +3435,7 @@ src/app/components/manage/tasks/tasks.component.html 66 - cliquez pour obtenir l'affichage complet + cliquer pour obtenir l'affichage complet Dismiss @@ -3501,6 +3613,14 @@ Automatique : apprentissage automatique du rapprochement + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Attention : Des modifications non sauvegardées ont été apportées à votre/vos document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Modifications non enregistrées @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Vous avez des changements non enregistrés. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 Vous avez des modifications non enregistrées sur ce document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Voulez-vous vraiment fermer ce document ? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Fermer le document @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Voulez-vous vraiment fermer tous les documents ? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Fermer tous les documents diff --git a/src-ui/src/locale/messages.he_IL.xlf b/src-ui/src/locale/messages.he_IL.xlf index 4a16a6998..7cd8ae0e1 100644 --- a/src-ui/src/locale/messages.he_IL.xlf +++ b/src-ui/src/locale/messages.he_IL.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 הקטנת שעות @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 הגדלת דקות @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 הקטנת דקות @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 תצוגות שמורות @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 שמור @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ מחפש מסמכים עם מס"ד + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 מחק @@ -1537,11 +1581,23 @@ הורדת קובץ המקור + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 סגור @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 הקודם @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 הבא @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 פרטים @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 מספר סידורי בארכיון @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 תאריך יצירה @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 ברירת המחדל @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 תוכן @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 תאריך שינוי @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 תאריך הוספה @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 שם קובץ המסמך + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 סכום בדיקה MD5 לקובץ המקורי @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 גודל הקובץ המקורי @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 סוג ה-mime המקורי @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 סכום בדיקה MD5 לקובץ בארכיון @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 גודל הקובץ בארכיון @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 מטא-נתונים של המסמך המקורי @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 מטא-נתונים של המסמך בארכיון @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 הזן סיסמה + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 בטל @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 שמור & הבא @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 בטוח שברצנך למחוק את המסמך ? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 הקבצים עבור מסמך זה יימחקו לצמיתות. לא ניתן לבטל פעולה זו. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 מחק מסמך @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 שגיאה במחיקת מסמך: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + This operation cannot be undone. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ This operation will permanently delete selected document(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - This operation cannot be undone. - Delete document(s) @@ -2159,14 +2279,6 @@ Delete document(s) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 View "" saved successfully. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 View "" created successfully. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 הצג בסרגל צידי @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 הצג בדשבורד @@ -3083,11 +3187,19 @@ Apply on close + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notifications @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Document processing @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Show notifications when new documents are detected @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Show notifications when document processing completes successfully @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Show notifications when document processing fails @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Suppress notifications on dashboard @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 This will suppress all messages about document processing status on the dashboard. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Appears on @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 No saved views defined. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Saved view "" deleted. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Use system language @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Use date format of display language @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Learn matching automatically + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Unsaved Changes @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 You have unsaved changes. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 ישנם שינויים שלא נשמרו במסמך @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 בטוח שברצונך לסגור מסמך זה? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 סגור מסמך @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 בטוח שברצונך לסגור את כל המסמכים? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 סגור מסמכים diff --git a/src-ui/src/locale/messages.hr_HR.xlf b/src-ui/src/locale/messages.hr_HR.xlf index 563bde4a0..256eba745 100644 --- a/src-ui/src/locale/messages.hr_HR.xlf +++ b/src-ui/src/locale/messages.hr_HR.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Smanjenje sati @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Povečanje minuta @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Smanjenje minuta @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Spremljeni prikazi @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Spremi @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Searching document with asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Delete @@ -1537,11 +1581,23 @@ Download original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Close @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Details @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Archive serial number @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Date created @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Content @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Date modified @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Date added @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Media filename + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Original MD5 checksum @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Original file size @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Original mime type @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Archive MD5 checksum @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Archive file size @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Original document metadata @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Archived document metadata @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Enter Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Discard @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Save & next @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Do you really want to delete document ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 The files for this document will be deleted permanently. This operation cannot be undone. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Delete document @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Error deleting document: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + This operation cannot be undone. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ This operation will permanently delete selected document(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - This operation cannot be undone. - Delete document(s) @@ -2159,14 +2279,6 @@ Delete document(s) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 View "" saved successfully. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 View "" created successfully. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Show in sidebar @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Show on dashboard @@ -3083,11 +3187,19 @@ Apply on close + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notifications @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Document processing @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Show notifications when new documents are detected @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Show notifications when document processing completes successfully @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Show notifications when document processing fails @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Suppress notifications on dashboard @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 This will suppress all messages about document processing status on the dashboard. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Appears on @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 No saved views defined. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Saved view "" deleted. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Use system language @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Use date format of display language @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Learn matching automatically + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Unsaved Changes @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 You have unsaved changes. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Are you sure you want to close this document? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Close document @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Are you sure you want to close all documents? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Close documents diff --git a/src-ui/src/locale/messages.it_IT.xlf b/src-ui/src/locale/messages.it_IT.xlf index feb962f11..78e121e3e 100644 --- a/src-ui/src/locale/messages.it_IT.xlf +++ b/src-ui/src/locale/messages.it_IT.xlf @@ -17,7 +17,7 @@ 157,166 Currently selected slide number read by screen reader - Slide of + Diapositiva di Previous @@ -155,7 +155,7 @@ node_modules/src/progressbar/progressbar.ts 23,26 - + HH @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrementa ore @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Incrementa minuti @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrementa minuti @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Viste salvate @@ -522,7 +522,7 @@ src/app/components/app-frame/app-frame.component.html 148 - File Tasks + Attività File Logs @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Salva @@ -970,7 +974,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html 10 - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. + Si noti che la modifica di un percorso non applica le modifiche ai file memorizzati finché non viene eseguita l'utilità 'document_renamer'. Vedi la documentazione. Path @@ -1086,7 +1090,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Any + Qualsiasi Apply @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Cercando documento con asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Inserisci commento + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Inserisci un commento. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Aggiungi commento + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Errore nel salvataggio del commento: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Errore nell'eliminazione del commento: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Elimina @@ -1537,11 +1581,23 @@ Scarica originale + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Ripeti OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Chiudi @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Precedente @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Successivo @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Dettagli @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Numero seriale di archivio @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Data creazione @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Predefinito @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Contenuto @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Data modifica @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Data aggiunta @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Nome file + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Nome file originale + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Checksum MD5 originale @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Dimensione file originale @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Tipo mime originale @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Checksum MD5 archivio @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Dimensione file archivio @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metadati del documento originale @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metadati del documento archiviato @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Immettere Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Commenti + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Scarta @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Salva e vai al prossimo @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Vuoi eliminare il documento ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 I file di questo documento saranno eliminati permanentemente. Questa operazione è irreversibile. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Elimina documento @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Errore nell'eliminazione del documento: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Ripeti la conferma OCR + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + Questa operazione effettuerà la rilettura OCR di questo documento. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Questa operazione non può essere annullata. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Procedi + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + L'operazione di rilettura OCR inizierà in background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Errore nell'esecuzione dell'operazione: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1947,7 +2087,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 78,82 - Download Preparing download... + Scarica Preparazione del download... Download originals Preparing download... @@ -1955,15 +2095,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 84,88 - Download originals Preparing download... - - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR + Scarica gli originali Preparazione del download... Error executing bulk operation: @@ -1971,7 +2103,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 103,105 - Error executing bulk operation: + Errore durante l'operazione di modifica in blocco: "" @@ -2025,7 +2157,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 209,211 - This operation will add the tags to selected document(s). + Questa operazione aggiungerà i tag a documento/i selezionato/i. This operation will remove the tag "" from selected document(s). @@ -2041,7 +2173,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 222,224 - This operation will remove the tags from selected document(s). + Questa operazione rimuoverà i tag da documento/i selezionato/i. This operation will add the tags and remove the tags on selected document(s). @@ -2049,7 +2181,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 226,230 - This operation will add the tags and remove the tags on selected document(s). + Questa operazione aggiungerà i tag e rimuoverà i tag a documento/i selezionato/i. Confirm correspondent assignment @@ -2113,7 +2245,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 339 - This operation will assign the storage path "" to selected document(s). + Questa operazione assegnerà il percorso di archiviazione "" a documento/i selezionato/i. This operation will remove the storage path from selected document(s). @@ -2121,7 +2253,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 341 - This operation will remove the storage path from selected document(s). + Questa operazione rimuoverà il percorso di archiviazione da documento/i selezionato/i. Delete confirm @@ -2139,18 +2271,6 @@ Questa operazione eliminerà definitivamente documento/i selezionato/i. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Questa operazione non può essere annullata. - Delete document(s) @@ -2159,21 +2279,13 @@ Elimina documento/i - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts 388 - This operation will permanently redo OCR for selected document(s). + Questa operazione riesegue in modo permanente l'OCR per documento/i selezionato/i. Proceed @@ -2333,7 +2445,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 14 - Toggle tag filter + Attiva/Disattiva filtro tag Toggle correspondent filter @@ -2341,7 +2453,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 24 - Toggle correspondent filter + Attiva/Disattiva filtro corrispondente Toggle document type filter @@ -2349,7 +2461,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 31 - Toggle document type filter + Attiva/Disattiva filtro tipo documento Toggle storage path filter @@ -2357,7 +2469,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 38 - Toggle storage path filter + Attiva/Disattiva filtro percorso di archiviazione Select none @@ -2491,7 +2603,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 La vista "" è stata salvata. @@ -2499,7 +2611,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 La vista "" è stata creata. @@ -2655,7 +2767,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Mostra nella barra laterale @@ -2667,7 +2779,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Mostra nella dashboard @@ -2861,7 +2973,7 @@ src/app/components/manage/management-list/management-list.component.html 74 - {VAR_PLURAL, plural, =1 {One } other { total }} + {VAR_PLURAL, plural, =1 {Uno } other { totale }} Automatic @@ -3083,11 +3195,19 @@ Applica in chiusura + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Abilita i commenti + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notifiche @@ -3095,7 +3215,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Elaborazione del documento @@ -3103,7 +3223,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Notifica quando vengono trovati nuovi documenti @@ -3111,7 +3231,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Notifica quando l'elaborazione del documento viene completata con successo. @@ -3119,7 +3239,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Notifica quando l'elaborazione del documento fallisce @@ -3127,7 +3247,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Non mostrare notifiche nella dashboard @@ -3135,7 +3255,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Verranno interrotte tutte le notifiche nella dashboard riguardo lo stato dell'elaborazione dei documenti. @@ -3143,7 +3263,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Appare in @@ -3151,7 +3271,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Nessuna vista salvata. @@ -3159,7 +3279,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 La vista "" è stata eliminata. @@ -3167,7 +3287,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Impostazioni salvate @@ -3175,7 +3295,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Impostazioni salvate con successo. @@ -3183,7 +3303,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Impostazioni salvate con successo. È necessario ricaricare per applicare alcune modifiche. @@ -3191,7 +3311,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Ricarica ora @@ -3199,7 +3319,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 Si è verificato un errore durante il salvataggio delle impostazioni. @@ -3207,7 +3327,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Usa lingua di sistema @@ -3215,7 +3335,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Usa il formato data della lingua @@ -3223,7 +3343,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Errore durante il salvataggio delle impostazioni sul server: @@ -3233,7 +3353,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 30 - storage path + percorso di archiviazione storage paths @@ -3241,7 +3361,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 31 - storage paths + percorsi di archiviazione Do you really want to delete the storage path ""? @@ -3249,7 +3369,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 45 - Do you really want to delete the storage path ""? + Vuoi eliminare il percorso di archiviazione ""? tag @@ -3265,7 +3385,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 31 - tags + tag Do you really want to delete the tag ""? @@ -3281,7 +3401,7 @@ src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + Attività File Clear selection @@ -3299,7 +3419,7 @@ src/app/components/manage/tasks/tasks.component.html 11 - + Refresh @@ -3343,7 +3463,7 @@ src/app/components/manage/tasks/tasks.component.html 96 - Failed  + Fallito  Complete  @@ -3351,7 +3471,7 @@ src/app/components/manage/tasks/tasks.component.html 102 - Complete  + Completa  Started  @@ -3359,7 +3479,7 @@ src/app/components/manage/tasks/tasks.component.html 108 - Started  + Avviato  Queued  @@ -3367,7 +3487,7 @@ src/app/components/manage/tasks/tasks.component.html 114 - Queued  + Accodato  Dismiss selected @@ -3403,7 +3523,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - tasks? + attività? 404 Not Found @@ -3501,6 +3621,14 @@ Automatico: apprende l'assegnazione automaticamente + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Attenzione: Hai modifiche non salvate ai tuoi documenti. + Unsaved Changes @@ -3509,11 +3637,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Modifiche non salvate @@ -3525,7 +3653,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Hai delle modifiche non salvate. @@ -3681,7 +3809,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 Hai modifiche non salvate nel documento @@ -3689,7 +3817,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Sei sicuro di voler chiudere questo documento? @@ -3697,7 +3825,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Chiudi documento @@ -3705,7 +3833,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Sei sicuro di voler chiudere tutti i documenti? @@ -3713,7 +3841,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Chiudi documenti @@ -3916,7 +4044,7 @@ src/app/services/settings.service.ts 372 - Successfully completed one-time migratration of settings to the database! + La migrazione delle impostazioni al database è stata completata con successo! Unable to migrate settings to the database, please try saving manually. diff --git a/src-ui/src/locale/messages.ja_JP.xlf b/src-ui/src/locale/messages.ja_JP.xlf index 1b77a00bd..677814f40 100644 --- a/src-ui/src/locale/messages.ja_JP.xlf +++ b/src-ui/src/locale/messages.ja_JP.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Saved views @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Save @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Searching document with asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Delete @@ -1537,11 +1581,23 @@ Download original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Close @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Details @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Archive serial number @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Date created @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Content @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Date modified @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Date added @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Media filename + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Original MD5 checksum @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Original file size @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Original mime type @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Archive MD5 checksum @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Archive file size @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Original document metadata @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Archived document metadata @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Enter Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Discard @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Save & next @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Do you really want to delete document ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 The files for this document will be deleted permanently. This operation cannot be undone. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Delete document @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Error deleting document: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + This operation cannot be undone. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ This operation will permanently delete selected document(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - This operation cannot be undone. - Delete document(s) @@ -2159,14 +2279,6 @@ Delete document(s) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 View "" saved successfully. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 View "" created successfully. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Show in sidebar @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Show on dashboard @@ -3083,11 +3187,19 @@ Apply on close + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notifications @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Document processing @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Show notifications when new documents are detected @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Show notifications when document processing completes successfully @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Show notifications when document processing fails @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Suppress notifications on dashboard @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 This will suppress all messages about document processing status on the dashboard. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Appears on @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 No saved views defined. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Saved view "" deleted. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Use system language @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Use date format of display language @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Learn matching automatically + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Unsaved Changes @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 You have unsaved changes. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Are you sure you want to close this document? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Close document @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Are you sure you want to close all documents? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Close documents diff --git a/src-ui/src/locale/messages.lb_LU.xlf b/src-ui/src/locale/messages.lb_LU.xlf index ae2b98eb5..14ffe837c 100644 --- a/src-ui/src/locale/messages.lb_LU.xlf +++ b/src-ui/src/locale/messages.lb_LU.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Stonnen erofsetzen @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Minutten erhéijen @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Minutten erofsetzen @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Gespäichert Usiichten @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Späicheren @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Dokument mat ASN gëtt gesicht + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Läschen @@ -1537,11 +1581,23 @@ Original eroflueden + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Zoumaachen @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Zréck @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Weider @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Detailer @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Archiv-Seriennummer @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Erstellungsdatum @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Virdefinéiert @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Inhalt @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Verännert um @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Dobäigesat um @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Dateinumm vum Mediefichier + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 MD5-Préifzomm vum Original @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Dateigréisst vum Original @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Urspréngleche MIME-Typ @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 MD5-Préifzomm vum Archiv @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Archiv-Dateigréisst @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metadate vum Original-Dokument @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metadate vum Archiv-Dokument @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Passwuert aginn + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Verwerfen @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Späicheren a weider @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Wëllt Dir d'Dokument "" wierklech läschen? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 D'Fichiere fir dëst Dokument gi permanent geläscht. Dës Operatioun kann net réckgängeg gemaach ginn. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Dokument läschen @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Feeler beim Läsche vum Dokument: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Dës Operatioun kann net réckgängeg gemaach ginn. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ Dës Operatioun wäert ausgewielt Dokument(er) permanent läschen. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Dës Operatioun kann net réckgängeg gemaach ginn. - Delete document(s) @@ -2159,14 +2279,6 @@ Dokument(er) läschen - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Usiicht "" gouf erfollegräich gespäichert. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Vue "" gouf erfollegräich erstallt. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 An der Säiteleescht uweisen @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Op der Startsäit uweisen @@ -3083,11 +3187,19 @@ Späichere beim Zoumaachen + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notifikatiounen @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Dokumenteveraarbechtung @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Notifikatiounen uweise wann nei Dokumenter detektéiert ginn @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Notifikatiounen uweise wann d'Dokumentveraarbechtung erfollegräich ofgeschloss ass @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Notifikatiounen uweise wann d'Dokumenteveraarbechtung feelschléit @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Notifikatiounen op der Startsäit ënnerdrécken @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Doduerch ginn all Messagen iwwer Dokumenteveraarbechtung op der Startsäit ënnerdréckt. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Erschéngt op @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Keng gespäichert Usiicht definéiert. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Gespäichert Usiicht "" geläscht. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Astellunge gespäichert @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Astellungen erfollegräich gespäichert. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Astellungen erfollegräich gespäichert. Nei lueden ass néideg fir verschidden Ännerungen ze applizéieren. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Elo nei lueden @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Systemsprooch benotzen @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Datumsformat vun der Sprooch vum Interface notzen @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Zouweisung automatesch léieren + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Ongespäichert Ännerungen @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Dir hutt ongespäichert Ännerungen. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 Et ginn ongespäichert Ännerungen um Dokument @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Sidd Dir sécher datt Dir dëst Dokument zoumaache wëllt? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Dokument zoumaachen @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Sidd Dir sécher datt Dir all Dokumenter zoumaache wëllt? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Dokument zoumaachen diff --git a/src-ui/src/locale/messages.nl_NL.xlf b/src-ui/src/locale/messages.nl_NL.xlf index f66f5298b..4e781c7cb 100644 --- a/src-ui/src/locale/messages.nl_NL.xlf +++ b/src-ui/src/locale/messages.nl_NL.xlf @@ -8,7 +8,7 @@ node_modules/src/alert/alert.ts 42,44 - Close + Sluiten Slide of @@ -25,7 +25,7 @@ node_modules/src/carousel/carousel.ts 188,191 - Previous + Vorige Next @@ -33,7 +33,7 @@ node_modules/src/carousel/carousel.ts 209,211 - Next + Volgende Select month @@ -45,7 +45,7 @@ node_modules/src/datepicker/datepicker-navigation-select.ts 41,42 - Select month + Maand selecteren Select year @@ -57,7 +57,7 @@ node_modules/src/datepicker/datepicker-navigation-select.ts 41,42 - Select year + Jaar selecteren Previous month @@ -69,7 +69,7 @@ node_modules/src/datepicker/datepicker-navigation.ts 43,46 - Previous month + Vorige maand Next month @@ -81,7 +81,7 @@ node_modules/src/datepicker/datepicker-navigation.ts 43,46 - Next month + Volgende maand «« @@ -121,7 +121,7 @@ node_modules/src/pagination/pagination.ts 224,226 - First + Eerste Previous @@ -129,7 +129,7 @@ node_modules/src/pagination/pagination.ts 224,226 - Previous + Vorige Next @@ -137,7 +137,7 @@ node_modules/src/pagination/pagination.ts 224,225 - Next + Volgende Last @@ -145,7 +145,7 @@ node_modules/src/pagination/pagination.ts 224,225 - Last + Laatste @@ -171,7 +171,7 @@ node_modules/src/timepicker/timepicker.ts 161 - Hours + Uren MM @@ -187,7 +187,7 @@ node_modules/src/timepicker/timepicker.ts 199 - Minutes + Minuten Increment hours @@ -195,31 +195,31 @@ node_modules/src/timepicker/timepicker.ts 218,219 - Increment hours + Uren verhogen Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 - Decrement hours + Uren verlagen Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 - Increment minutes + Minuten verhogen Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 - Decrement minutes + Minuten verlagen SS @@ -235,7 +235,7 @@ node_modules/src/timepicker/timepicker.ts 295 - Seconds + Seconden Increment seconds @@ -243,7 +243,7 @@ node_modules/src/timepicker/timepicker.ts 295 - Increment seconds + Seconden verhogen Decrement seconds @@ -251,7 +251,7 @@ node_modules/src/timepicker/timepicker.ts 295 - Decrement seconds + Seconden verlagen @@ -277,7 +277,7 @@ node_modules/src/toast/toast.ts 70,71 - Close + Sluiten Drop files to begin upload @@ -285,7 +285,7 @@ src/app/app.component.html 7 - Drop files to begin upload + Plaats hier bestanden om uploaden te beginnen Document added @@ -345,7 +345,7 @@ src/app/app.component.ts 146 - Initiating upload... + Upload starten... Paperless-ngx @@ -370,7 +370,7 @@ src/app/components/app-frame/app-frame.component.html 34 - Logged in as + Ingelogd als Settings @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Opgeslagen views @@ -514,7 +514,7 @@ src/app/components/app-frame/app-frame.component.html 141 - Storage paths + Opslag paden File Tasks @@ -522,7 +522,7 @@ src/app/components/app-frame/app-frame.component.html 148 - File Tasks + Bestandstaken Logs @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -586,7 +590,7 @@ src/app/components/app-frame/app-frame.component.html 205 - is available. + is beschikbaar. Click to view. @@ -594,7 +598,7 @@ src/app/components/app-frame/app-frame.component.html 205 - Click to view. + Klik om te bekijken. Checking for updates is disabled. @@ -602,7 +606,7 @@ src/app/components/app-frame/app-frame.component.html 208 - Checking for updates is disabled. + Controleren op updates is uitgeschakeld. Click for more information. @@ -610,7 +614,7 @@ src/app/components/app-frame/app-frame.component.html 208 - Click for more information. + Klik voor meer informatie. Update available @@ -618,7 +622,7 @@ src/app/components/app-frame/app-frame.component.html 216 - Update available + Update beschikbaar Cancel @@ -626,7 +630,7 @@ src/app/components/common/confirm-dialog/confirm-dialog.component.html 12 - Cancel + Annuleren Confirmation @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Opslaan @@ -982,7 +986,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 35 - Path + Pad e.g. @@ -990,7 +994,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 25 - e.g. + bijv. or use slashes to add directories e.g. @@ -998,7 +1002,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 27 - or use slashes to add directories e.g. + of gebruik slashes om mappen toe te voegen, bijv. See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. @@ -1006,7 +1010,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 29 - See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. + Zie <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentatie</a> voor volledige lijst. Create new storage path @@ -1014,7 +1018,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 34 - Create new storage path + Nieuw opslag pad maken Edit storage path @@ -1022,7 +1026,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 38 - Edit storage path + Opslag pad bewerken Color @@ -1086,7 +1090,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Any + Alle Apply @@ -1204,7 +1208,7 @@ src/app/components/dashboard/dashboard.component.ts 19 - Hello , welcome to Paperless-ngx! + Hallo , welkom bij Paperless-ngx! Welcome to Paperless-ngx! @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Document zoeken met asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Opmerking toevoegen + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Voer een opmerking in. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Commentaar invoeren + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Fout bij opslaan reactie: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Verwijderen @@ -1537,11 +1581,23 @@ Download origineel + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + OCR opnieuw uitvoeren + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Sluiten @@ -1561,23 +1617,23 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 - Previous + Vorige Next src/app/components/document-detail/document-detail.component.html - 49 + 55 - Next + Volgende Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Details @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Archief serienummer @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Aanmaakdatum @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1663,21 +1719,21 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 44 - Storage path + Opslag pad Default src/app/components/document-detail/document-detail.component.html - 77 + 83 - Default + Standaard Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Inhoud @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Wijzigingsdatum @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Datum toegevoegd @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Media bestandsnaam + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Originele bestandsnaam + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Originele MD5 checksum @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Originele bestandsgrootte @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Oorspronkelijke mime-type @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Archief MD5 checksum @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Archief bestandsgrootte @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Originele document metadata @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Gearchiveerde document metadata @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 - Enter Password + Wachtwoord invoeren + + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Negeren @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Opslaan & volgende @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Wilt u het document echt verwijderen ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 De bestanden voor dit document worden definitief verwijderd. Deze bewerking kan niet ongedaan worden gemaakt. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Verwijder document @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Fout bij het verwijderen van het document: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Deze actie kan niet ongedaan worden gemaakt. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ geselecteerd(e) document(en) zullen permanent worden verwijderd. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Deze actie kan niet ongedaan worden gemaakt. - Delete document(s) @@ -2159,14 +2279,6 @@ Verwijder document(en) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 View "" met succes opgeslagen. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 View "" met succes gemaakt. @@ -2605,7 +2709,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 164 - equals + gelijk aan is empty @@ -2613,7 +2717,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 168 - is empty + is leeg is not empty @@ -2621,7 +2725,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 172 - is not empty + is niet leeg greater than @@ -2629,7 +2733,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 176 - greater than + groter dan less than @@ -2637,7 +2741,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 180 - less than + kleiner dan Save current view @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Toon in de zijbalk @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Toon op het dashboard @@ -2905,7 +3009,7 @@ src/app/components/manage/settings/settings.component.html 10 - General + Algemeen Appearance @@ -3049,7 +3153,7 @@ src/app/components/manage/settings/settings.component.html 114 - Reset + Resetten Bulk editing @@ -3083,11 +3187,19 @@ Toepassen bij het sluiten + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Meldingen @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Verwerking van documenten @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Toon meldingen wanneer nieuwe documenten worden gedetecteerd @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Toon een melding wanneer documenten met succes zijn verwerkt @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Toon meldingen wanneer het verwerken van documenten faalt @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Onderdruk meldingen op het dashboard @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Dit verbergt alle statusberichten op het dashboard die met het verwerken van documenten te maken hebben. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Komt voor bij @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Geen opgeslagen views gedefinieerd. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Opgeslagen view "" verwijderd. @@ -3167,23 +3279,23 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 - Settings saved + Instellingen opgeslagen Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 - Settings were saved successfully. + Instellingen zijn succesvol opgeslagen. Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Gebruik de systeemtaal @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Datumopmaak van weergavetaal gebruiken @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3257,7 +3369,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 30 - tag + label tags @@ -3265,7 +3377,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 31 - tags + labels Do you really want to delete the tag ""? @@ -3315,7 +3427,7 @@ src/app/components/manage/tasks/tasks.component.html 42 - Results + Resultaten click for full output @@ -3403,7 +3515,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - tasks? + taken? 404 Not Found @@ -3501,6 +3613,14 @@ Auto: Automatisch overeenkomsten aanleren + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Niet-opgeslagen wijzigingen @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 U heeft niet-opgeslagen wijzigingen. @@ -3681,15 +3801,15 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 - You have unsaved changes to the document + Je hebt niet opgeslagen wijzigingen in het document Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Weet u zeker dat u dit document wilt sluiten? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Sluit document @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Weet u zeker dat u alle documenten wilt sluiten? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Sluit documenten @@ -3748,7 +3868,7 @@ src/app/services/settings.service.ts 146 - Belarusian + Wit-Russisch Czech @@ -3868,7 +3988,7 @@ src/app/services/settings.service.ts 236 - Slovenian + Sloveens Serbian @@ -3876,7 +3996,7 @@ src/app/services/settings.service.ts 242 - Serbian + Servisch Swedish @@ -3892,7 +4012,7 @@ src/app/services/settings.service.ts 254 - Turkish + Turks Chinese Simplified diff --git a/src-ui/src/locale/messages.no_NO.xlf b/src-ui/src/locale/messages.no_NO.xlf index ac37aefd3..61c34a184 100644 --- a/src-ui/src/locale/messages.no_NO.xlf +++ b/src-ui/src/locale/messages.no_NO.xlf @@ -8,7 +8,7 @@ node_modules/src/alert/alert.ts 42,44 - Close + Lukk Slide of @@ -25,7 +25,7 @@ node_modules/src/carousel/carousel.ts 188,191 - Previous + Forrige Next @@ -33,7 +33,7 @@ node_modules/src/carousel/carousel.ts 209,211 - Next + Neste Select month @@ -45,7 +45,7 @@ node_modules/src/datepicker/datepicker-navigation-select.ts 41,42 - Select month + Velg en måned Select year @@ -57,7 +57,7 @@ node_modules/src/datepicker/datepicker-navigation-select.ts 41,42 - Select year + Velg år Previous month @@ -69,7 +69,7 @@ node_modules/src/datepicker/datepicker-navigation.ts 43,46 - Previous month + Forrige måned Next month @@ -81,7 +81,7 @@ node_modules/src/datepicker/datepicker-navigation.ts 43,46 - Next month + Neste måned «« @@ -89,7 +89,7 @@ node_modules/src/pagination/pagination.ts 224,225 - «« + «« « @@ -97,7 +97,7 @@ node_modules/src/pagination/pagination.ts 224,225 - « + « » @@ -105,7 +105,7 @@ node_modules/src/pagination/pagination.ts 224,225 - » + » »» @@ -113,7 +113,7 @@ node_modules/src/pagination/pagination.ts 224,225 - »» + »» First @@ -121,7 +121,7 @@ node_modules/src/pagination/pagination.ts 224,226 - First + Først Previous @@ -129,7 +129,7 @@ node_modules/src/pagination/pagination.ts 224,226 - Previous + Forrige Next @@ -155,7 +155,7 @@ node_modules/src/progressbar/progressbar.ts 23,26 - + HH @@ -163,7 +163,7 @@ node_modules/src/timepicker/timepicker.ts 138,141 - HH + HH Hours @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Reduksjon i timer @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Økende minutter @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Reduksjon i minutter @@ -243,7 +243,7 @@ node_modules/src/timepicker/timepicker.ts 295 - Increment seconds + Tilleggstid i sekund Decrement seconds @@ -251,7 +251,7 @@ node_modules/src/timepicker/timepicker.ts 295 - Decrement seconds + Reduksjon sekunder @@ -277,7 +277,7 @@ node_modules/src/toast/toast.ts 70,71 - Close + Lukk Drop files to begin upload @@ -285,7 +285,7 @@ src/app/app.component.html 7 - Drop files to begin upload + Slipp filer for å starte opplasting Document added @@ -301,7 +301,7 @@ src/app/app.component.ts 77 - Document was added to paperless. + Dokumentet ble lagt til papirløst. Open document @@ -329,7 +329,7 @@ src/app/app.component.ts 109 - New document detected + Nytt dokument oppdaget Document is being processed by paperless. @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Lagrede visninger @@ -570,15 +570,19 @@ src/app/components/app-frame/app-frame.component.html 190 - GitHub + GitHub Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 - Suggest an idea + Foreslå en idé is available. @@ -586,7 +590,7 @@ src/app/components/app-frame/app-frame.component.html 205 - is available. + er tilgjengelig. Click to view. @@ -594,7 +598,7 @@ src/app/components/app-frame/app-frame.component.html 205 - Click to view. + Klikk for å se. Checking for updates is disabled. @@ -602,7 +606,7 @@ src/app/components/app-frame/app-frame.component.html 208 - Checking for updates is disabled. + Å se etter oppdateringer er deaktivert. Click for more information. @@ -610,7 +614,7 @@ src/app/components/app-frame/app-frame.component.html 208 - Click for more information. + Klikk her for mer informasjon. Update available @@ -618,7 +622,7 @@ src/app/components/app-frame/app-frame.component.html 216 - Update available + Oppdatering er tilgjengelig Cancel @@ -634,7 +638,7 @@ src/app/components/common/confirm-dialog/confirm-dialog.component.ts 17 - Confirmation + Bekreftelse Confirm @@ -658,7 +662,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 344 - Confirm + Bekreft After @@ -666,7 +670,7 @@ src/app/components/common/date-dropdown/date-dropdown.component.html 13 - After + Etter Clear @@ -678,7 +682,7 @@ src/app/components/common/date-dropdown/date-dropdown.component.html 41 - Clear + Tøm Before @@ -686,7 +690,7 @@ src/app/components/common/date-dropdown/date-dropdown.component.html 36 - Before + Før Last 7 days @@ -694,7 +698,7 @@ src/app/components/common/date-dropdown/date-dropdown.component.ts 38 - Last 7 days + Siste 7 dager Last month @@ -702,7 +706,7 @@ src/app/components/common/date-dropdown/date-dropdown.component.ts 39 - Last month + Forrige måned Last 3 months @@ -710,7 +714,7 @@ src/app/components/common/date-dropdown/date-dropdown.component.ts 40 - Last 3 months + Siste 3 måneder Last year @@ -718,7 +722,7 @@ src/app/components/common/date-dropdown/date-dropdown.component.ts 41 - Last year + Siste år Name @@ -776,13 +780,13 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html 40 - Name + Navn Matching algorithm @@ -802,7 +806,7 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html 13 - Matching algorithm + Samsvarende algoritme Matching pattern @@ -822,7 +826,7 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html 14 - Matching pattern + Matchende mønster Case insensitive @@ -842,7 +846,7 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html 15 - Case insensitive + Skill mellom store og små bokstaver Cancel @@ -874,7 +878,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 18 - Cancel + Avbryt Save @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,9 +908,9 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 - Save + Lagre Create new correspondent @@ -914,7 +918,7 @@ src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts 24 - Create new correspondent + Opprett ny korrespondent Edit correspondent @@ -922,7 +926,7 @@ src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts 28 - Edit correspondent + Rediger korrespondent Create new document type @@ -930,7 +934,7 @@ src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts 24 - Create new document type + Opprett ny dokumenttype Edit document type @@ -938,7 +942,7 @@ src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts 28 - Edit document type + Rediger dokumenttype Create new item @@ -946,7 +950,7 @@ src/app/components/common/edit-dialog/edit-dialog.component.ts 52 - Create new item + + Opprett produkt Edit item @@ -954,7 +958,7 @@ src/app/components/common/edit-dialog/edit-dialog.component.ts 56 - Edit item + Rediger produkt Could not save element: @@ -962,7 +966,7 @@ src/app/components/common/edit-dialog/edit-dialog.component.ts 60 - Could not save element: + Kunne ikke lagre elementet: Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. @@ -982,7 +986,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 35 - Path + Fil sti e.g. @@ -998,7 +1002,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 27 - or use slashes to add directories e.g. + eller bruk skråstreker for å legge til kataloger, f.eks. See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. @@ -1014,7 +1018,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 34 - Create new storage path + Lag ny lagringssti Edit storage path @@ -1022,7 +1026,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 38 - Edit storage path + Redigere lagringssti Color @@ -1078,7 +1082,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 - All + Alle Any @@ -1086,7 +1090,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Any + Enhver Apply @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Searching document with asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Slett @@ -1537,11 +1581,23 @@ Last ned original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,55 +1609,55 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 - Close + Lukk Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 - Previous + Forrige Next src/app/components/document-detail/document-detail.component.html - 49 + 55 - Next + Neste Details src/app/components/document-detail/document-detail.component.html - 66 + 72 - Details + Detaljer Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 - Archive serial number + Arkiver serienummer Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 - Date created + Dato opprettet Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1619,13 +1675,13 @@ src/app/services/rest/document.service.ts 19 - Correspondent + Korrespondent Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1643,13 +1699,13 @@ src/app/services/rest/document.service.ts 21 - Document type + Dokument type Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1663,187 +1719,271 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 44 - Storage path + Lagringssti Default src/app/components/document-detail/document-detail.component.html - 77 + 83 - Default + Standard Content src/app/components/document-detail/document-detail.component.html - 84 + 90 - Content + Innhold Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts 17 - Metadata + Metadata Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 - Date modified + Dato Modofisert Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 - Date added + Dato lagt til Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 - Media filename + Media filnavn + + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 - Original MD5 checksum + Opprinnelig MD5-kontrollsum Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 - Original file size + Opprinnelig filstørrelse Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 - Original mime type + Opprinnelig mimetype Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 - Archive MD5 checksum + Arkiver MD5-sjekksum Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 - Archive file size + Arkivstørrelse Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 - Original document metadata + Opprinnelig dokumentmetadata Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 - Archived document metadata + Arkivert dokumentmetadata Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 - Enter Password + Skriv inn passord + + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 - Discard + Forkast Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 - Save & next + Lagre & Avslutt Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts 153 - Confirm delete + Bekreft sletting Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 - Do you really want to delete document ""? + Ønsker du virkelig å slette dokumentet ""? The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 - The files for this document will be deleted permanently. This operation cannot be undone. + Filene til dokumentet vil bli slettet permanent. Denne operasjonen kan ikke angres. Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 - Delete document + Slett dokument Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 - Error deleting document: + Feil ved sletting av dokument: + + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Gjenta OCR bekreft + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + Denne operasjonen vil permanent gjenta OCR for dette dokumentet. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Denne handlingen kan ikke angres. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Fortsett + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: Select: @@ -1851,7 +1991,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 10 - Select: + Velg: Edit: @@ -1859,7 +1999,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 27 - Edit: + Rediger: Filter tags @@ -1871,7 +2011,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 23 - Filter tags + Filtrer etter tagger Filter correspondents @@ -1883,7 +2023,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 31 - Filter correspondents + Filtrere korrespondenter Filter document types @@ -1895,7 +2035,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 38 - Filter document types + Filtrer dokumenttyper Filter storage paths @@ -1933,13 +2073,13 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html 44 - Actions + Handlinger Download Preparing download... @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -1983,7 +2115,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 177 - "" + "" "" and "" @@ -2009,7 +2141,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 198 - Confirm tags assignment + Bekreft tildeling av tagger This operation will add the tag "" to selected document(s). @@ -2033,7 +2165,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 217 - This operation will remove the tag "" from selected document(s). + Denne handlingen vil fjerne taggen "" fra valgte dokument(er). This operation will remove the tags from selected document(s). @@ -2057,7 +2189,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 265 - Confirm correspondent assignment + Bekreft korrespondent tildeling This operation will assign the correspondent "" to selected document(s). @@ -2081,7 +2213,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 301 - Confirm document type assignment + Bekreft tildeling av dokumenttype This operation will assign the document type "" to selected document(s). @@ -2105,7 +2237,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 337 - Confirm storage path assignment + Bekreft tildeling av lagringssti This operation will assign the storage path "" to selected document(s). @@ -2139,18 +2271,6 @@ This operation will permanently delete selected document(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Denne handlingen kan ikke angres. - Delete document(s) @@ -2159,14 +2279,6 @@ Slett dokument(er) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2193,7 +2297,7 @@ src/app/components/document-list/document-list.component.html 171 - Filter by correspondent + Filtrer etter korrespondent Filter by tag @@ -2205,7 +2309,7 @@ src/app/components/document-list/document-list.component.html 176 - Filter by tag + Filtrer etter tagger Edit @@ -2269,7 +2373,7 @@ src/app/components/document-list/document-list.component.html 180 - Filter by document type + Filtrer etter dokumenttype Filter by storage path @@ -2325,7 +2429,7 @@ src/app/components/document-list/document-card-large/document-card-large.component.html 98 - Score: + Scoring: Toggle tag filter @@ -2333,7 +2437,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 14 - Toggle tag filter + Vis/skjul tagg-filter Toggle correspondent filter @@ -2341,7 +2445,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 24 - Toggle correspondent filter + Veksle tilsvarende filter Toggle document type filter @@ -2349,7 +2453,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 31 - Toggle document type filter + Veksle filter for dokumenttype Toggle storage path filter @@ -2357,7 +2461,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 38 - Toggle storage path filter + Veksle lagringsplass-filter Select none @@ -2405,7 +2509,7 @@ src/app/components/document-list/document-list.component.html 70 - Save "" + Lagre "" Save as... @@ -2437,7 +2541,7 @@ src/app/components/document-list/document-list.component.html 91 - (filtered) + (filtrert) Error while loading documents @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 View "" saved successfully. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 View "" created successfully. @@ -2509,7 +2613,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 71 - Reset filters + Tilbakestille filtre Correspondent: @@ -2525,7 +2629,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 76 - Without correspondent + Uten korrespondent Type: @@ -2541,7 +2645,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 85 - Without document type + Uten dokumenttype Tag: @@ -2557,7 +2661,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 95 - Without any tag + Uten noe tag Title: @@ -2589,7 +2693,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 139 - Advanced search + Avansert søk More like @@ -2597,7 +2701,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 145 - More like + Mer lik equals @@ -2605,7 +2709,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 164 - equals + er lik is empty @@ -2613,7 +2717,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 168 - is empty + er tom is not empty @@ -2621,7 +2725,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 172 - is not empty + er ikke tom greater than @@ -2629,7 +2733,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 176 - greater than + større enn less than @@ -2637,7 +2741,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 180 - less than + mindre enn Save current view @@ -2645,7 +2749,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 3 - Save current view + Lagre gjeldende visning Show in sidebar @@ -2655,9 +2759,9 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 - Show in sidebar + Vis i sidestolpen Show on dashboard @@ -2667,9 +2771,9 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 - Show on dashboard + Vis på dashbordet Filter rules error occurred while saving this view @@ -2677,7 +2781,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 12 - Filter rules error occurred while saving this view + Filterregel feil oppsto under lagring av denne visningen The error returned was @@ -2685,7 +2789,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 13 - The error returned was + Felmelding som oppsto var correspondent @@ -2693,7 +2797,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 33 - correspondent + korrespondent correspondents @@ -2701,7 +2805,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 34 - correspondents + korrespondenter Last used @@ -2709,7 +2813,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 38 - Last used + Sist brukt Do you really want to delete the correspondent ""? @@ -2725,7 +2829,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 30 - document type + dokument type document types @@ -2733,7 +2837,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 31 - document types + dokumenttyper Do you really want to delete the document type ""? @@ -2741,7 +2845,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 37 - Do you really want to delete the document type ""? + Ønsker du virkelig å slette dokumenttype "? Create @@ -2761,7 +2865,7 @@ src/app/components/manage/management-list/management-list.component.html 2 - Create + Opprett Filter by: @@ -2801,7 +2905,7 @@ src/app/components/manage/management-list/management-list.component.html 20 - Matching + Samsvarende Document count @@ -2841,7 +2945,7 @@ src/app/components/manage/management-list/management-list.component.html 44 - Filter Documents + Filtrer dokumenter {VAR_PLURAL, plural, =1 {One } other { total }} @@ -2873,7 +2977,7 @@ src/app/data/matching-model.ts 38 - Automatic + Automatisk Do you really want to delete the ? @@ -2881,7 +2985,7 @@ src/app/components/manage/management-list/management-list.component.ts 140 - Do you really want to delete the ? + Ønsker du virkelig å slette dokumentet "? Associated documents will not be deleted. @@ -2889,7 +2993,7 @@ src/app/components/manage/management-list/management-list.component.ts 155 - Associated documents will not be deleted. + Tilknyttede dokumenter vil ikke bli slettet. Error while deleting element: @@ -2897,7 +3001,7 @@ src/app/components/manage/management-list/management-list.component.ts 168,170 - Error while deleting element: + Feil under sletting av element: General @@ -2905,7 +3009,7 @@ src/app/components/manage/settings/settings.component.html 10 - General + Generelt Appearance @@ -2913,7 +3017,7 @@ src/app/components/manage/settings/settings.component.html 13 - Appearance + Utseende Display language @@ -2921,7 +3025,7 @@ src/app/components/manage/settings/settings.component.html 17 - Display language + Visningsspråk You need to reload the page after applying a new language. @@ -2937,7 +3041,7 @@ src/app/components/manage/settings/settings.component.html 32 - Date display + Dato visning Date format @@ -2945,7 +3049,7 @@ src/app/components/manage/settings/settings.component.html 45 - Date format + Datoformat Short: @@ -2985,7 +3089,7 @@ src/app/components/manage/settings/settings.component.html 83 - Document editor + Dokument editor Use PDF viewer provided by the browser @@ -3025,7 +3129,7 @@ src/app/components/manage/settings/settings.component.html 98 - Enable dark mode + Aktiver mørk modus Invert thumbnails in dark mode @@ -3041,7 +3145,7 @@ src/app/components/manage/settings/settings.component.html 105 - Theme Color + Temafarge Reset @@ -3049,7 +3153,7 @@ src/app/components/manage/settings/settings.component.html 114 - Reset + Tilbakestill Bulk editing @@ -3057,7 +3161,7 @@ src/app/components/manage/settings/settings.component.html 119 - Bulk editing + Bulk redigering Show confirmation dialogs @@ -3081,21 +3185,29 @@ src/app/components/manage/settings/settings.component.html 124 - Apply on close + Bruk ved lukking + + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 - Notifications + Varsler Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Document processing @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Show notifications when new documents are detected @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Show notifications when document processing completes successfully @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Show notifications when document processing fails @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Suppress notifications on dashboard @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 This will suppress all messages about document processing status on the dashboard. @@ -3143,23 +3255,23 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 - Appears on + Vises på No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 - No saved views defined. + Ingen lagrede visninger definert. Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Saved view "" deleted. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,15 +3287,15 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 - Settings were saved successfully. + Innstillingene ble lagret. Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,39 +3303,39 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 - Reload now + Oppfrisk nå An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 - An error occurred while saving settings. + Det oppstod en feil under lagring av innstillingene. Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 - Use system language + Bruk systemspråk Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 - Use date format of display language + Bruk datoformat for visningsspråk Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3233,7 +3345,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 30 - storage path + lagringssti storage paths @@ -3241,7 +3353,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 31 - storage paths + lagringsstier Do you really want to delete the storage path ""? @@ -3249,7 +3361,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 45 - Do you really want to delete the storage path ""? + Ønsker du virkelig å slette lagringsstien ""? tag @@ -3257,7 +3369,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 30 - tag + tagg tags @@ -3265,7 +3377,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 31 - tags + tagger Do you really want to delete the tag ""? @@ -3273,7 +3385,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 46 - Do you really want to delete the tag ""? + Ønsker du virkelig å slette taggen ""? File Tasks @@ -3281,7 +3393,7 @@ src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + Fil oppgaver Clear selection @@ -3289,7 +3401,7 @@ src/app/components/manage/tasks/tasks.component.html 6 - Clear selection + Nullstill valg @@ -3299,7 +3411,7 @@ src/app/components/manage/tasks/tasks.component.html 11 - + Refresh @@ -3307,7 +3419,7 @@ src/app/components/manage/tasks/tasks.component.html 20 - Refresh + Oppdater Results @@ -3315,7 +3427,7 @@ src/app/components/manage/tasks/tasks.component.html 42 - Results + Resultater click for full output @@ -3323,7 +3435,7 @@ src/app/components/manage/tasks/tasks.component.html 66 - click for full output + klikk for full utdata Dismiss @@ -3335,7 +3447,7 @@ src/app/components/manage/tasks/tasks.component.ts 54 - Dismiss + Avvis Failed  @@ -3375,7 +3487,7 @@ src/app/components/manage/tasks/tasks.component.ts 21 - Dismiss selected + Avvis valgte Dismiss all @@ -3387,7 +3499,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - Dismiss all + Avvis alle Confirm Dismiss All @@ -3395,7 +3507,7 @@ src/app/components/manage/tasks/tasks.component.ts 50 - Confirm Dismiss All + Bekreft avvisning av alle tasks? @@ -3403,7 +3515,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - tasks? + oppgaver? 404 Not Found @@ -3411,7 +3523,7 @@ src/app/components/not-found/not-found.component.html 7 - 404 Not Found + 404 ikke funnet Any word @@ -3419,7 +3531,7 @@ src/app/data/matching-model.ts 13 - Any word + Hvilket som helst ord Any: Document contains any of these words (space separated) @@ -3435,7 +3547,7 @@ src/app/data/matching-model.ts 18 - All words + Alle ord All: Document contains all of these words (space separated) @@ -3451,7 +3563,7 @@ src/app/data/matching-model.ts 23 - Exact match + Nøyaktig samsvar Exact: Document contains this string @@ -3501,6 +3613,14 @@ Auto: Learn matching automatically + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,13 +3629,13 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 - Unsaved Changes + Ulagrede endringer You have unsaved changes. @@ -3525,9 +3645,9 @@ src/app/services/open-documents.service.ts - 139 + 144 - You have unsaved changes. + Du har ulagrede endringer. Are you sure you want to leave? @@ -3535,7 +3655,7 @@ src/app/guards/dirty-form.guard.ts 20 - Are you sure you want to leave? + Er du sikker på at du vil forlate denne siden? Leave page @@ -3543,7 +3663,7 @@ src/app/guards/dirty-form.guard.ts 22 - Leave page + Forlat side (no title) @@ -3551,7 +3671,7 @@ src/app/pipes/document-title.pipe.ts 11 - (no title) + (Ingen tittel) Yes @@ -3559,7 +3679,7 @@ src/app/pipes/yes-no.pipe.ts 8 - Yes + Ja No @@ -3567,7 +3687,7 @@ src/app/pipes/yes-no.pipe.ts 8 - No + Nei Document already exists. @@ -3575,7 +3695,7 @@ src/app/services/consumer-status.service.ts 15 - Document already exists. + Dokumentet finnes allerede. File not found. @@ -3583,7 +3703,7 @@ src/app/services/consumer-status.service.ts 16 - File not found. + Finner ikke filen. Pre-consume script does not exist. @@ -3610,7 +3730,7 @@ 19 Post-Consume is a term that appears like that in the documentation as well and does not need a specific translation - Post-consume script does not exist. + Innholdsskript finnes ikke. Error while executing post-consume script. @@ -3619,7 +3739,7 @@ 20 Post-Consume is a term that appears like that in the documentation as well and does not need a specific translation - Error while executing post-consume script. + Feil under kjøring av skript for postinnhold. Received new file. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,33 +3809,33 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 - Are you sure you want to close this document? + Er du sikker på at du vil lukke dette dokumentet? Close document src/app/services/open-documents.service.ts - 119 + 124 - Close document + Lukk dokument Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 - Are you sure you want to close all documents? + Er du sikker på at du vil lukke alle dokumenter? Close documents src/app/services/open-documents.service.ts - 142 + 147 - Close documents + Lukk dokument Modified @@ -3723,7 +3843,7 @@ src/app/services/rest/document.service.ts 24 - Modified + Endret Search score @@ -3732,7 +3852,7 @@ 31 Score is a value returned by the full text search engine and specifies how well a result matches the given query - Search score + Søk etter score English (US) @@ -3740,7 +3860,7 @@ src/app/services/settings.service.ts 140 - English (US) + English (US) Belarusian @@ -3748,7 +3868,7 @@ src/app/services/settings.service.ts 146 - Belarusian + Belarusian Czech @@ -3756,7 +3876,7 @@ src/app/services/settings.service.ts 152 - Czech + Czech Danish @@ -3764,7 +3884,7 @@ src/app/services/settings.service.ts 158 - Danish + Danish German @@ -3772,7 +3892,7 @@ src/app/services/settings.service.ts 164 - German + German English (GB) @@ -3780,7 +3900,7 @@ src/app/services/settings.service.ts 170 - English (GB) + English (GB) Spanish @@ -3788,7 +3908,7 @@ src/app/services/settings.service.ts 176 - Spanish + Spanish French @@ -3796,7 +3916,7 @@ src/app/services/settings.service.ts 182 - French + French Italian @@ -3804,7 +3924,7 @@ src/app/services/settings.service.ts 188 - Italian + Italian Luxembourgish @@ -3812,7 +3932,7 @@ src/app/services/settings.service.ts 194 - Luxembourgish + Luxembourgish Dutch @@ -3820,7 +3940,7 @@ src/app/services/settings.service.ts 200 - Dutch + Dutch Polish @@ -3828,7 +3948,7 @@ src/app/services/settings.service.ts 206 - Polish + Polish Portuguese (Brazil) @@ -3836,7 +3956,7 @@ src/app/services/settings.service.ts 212 - Portuguese (Brazil) + Portuguese (Brazil) Portuguese @@ -3844,7 +3964,7 @@ src/app/services/settings.service.ts 218 - Portuguese + Portuguese Romanian @@ -3852,7 +3972,7 @@ src/app/services/settings.service.ts 224 - Romanian + Romanian Russian @@ -3860,7 +3980,7 @@ src/app/services/settings.service.ts 230 - Russian + Russian Slovenian @@ -3868,7 +3988,7 @@ src/app/services/settings.service.ts 236 - Slovenian + Slovenian Serbian @@ -3876,7 +3996,7 @@ src/app/services/settings.service.ts 242 - Serbian + Serbian Swedish @@ -3884,7 +4004,7 @@ src/app/services/settings.service.ts 248 - Swedish + Swedish Turkish @@ -3892,7 +4012,7 @@ src/app/services/settings.service.ts 254 - Turkish + Turkish Chinese Simplified @@ -3900,7 +4020,7 @@ src/app/services/settings.service.ts 260 - Chinese Simplified + Kinesisk forenklet ISO 8601 @@ -3908,7 +4028,7 @@ src/app/services/settings.service.ts 277 - ISO 8601 + ISO 8601 Successfully completed one-time migratration of settings to the database! @@ -3916,7 +4036,7 @@ src/app/services/settings.service.ts 372 - Successfully completed one-time migratration of settings to the database! + Engangs migrering av innstillinger ble fullført til databasen! Unable to migrate settings to the database, please try saving manually. @@ -3924,7 +4044,7 @@ src/app/services/settings.service.ts 373 - Unable to migrate settings to the database, please try saving manually. + Kunne ikke overføre innstillinger til databasen, prøv å lagre manuelt. Error @@ -3932,7 +4052,7 @@ src/app/services/toast.service.ts 32 - Error + Feil Information @@ -3940,7 +4060,7 @@ src/app/services/toast.service.ts 36 - Information + Informasjon Connecting... @@ -3948,7 +4068,7 @@ src/app/services/upload-documents.service.ts 31 - Connecting... + Kobler til... Uploading... @@ -3956,7 +4076,7 @@ src/app/services/upload-documents.service.ts 43 - Uploading... + Laster opp... Upload complete, waiting... @@ -3964,7 +4084,7 @@ src/app/services/upload-documents.service.ts 46 - Upload complete, waiting... + Opplasting fullført, venter... HTTP error: @@ -3972,7 +4092,7 @@ src/app/services/upload-documents.service.ts 62 - HTTP error: + HTTP error: diff --git a/src-ui/src/locale/messages.pl_PL.xlf b/src-ui/src/locale/messages.pl_PL.xlf index 2fda1ab96..4e1d4a384 100644 --- a/src-ui/src/locale/messages.pl_PL.xlf +++ b/src-ui/src/locale/messages.pl_PL.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Redukcja godzin @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Przyrost minut @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Zmniejszenie minut @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Zapisane widoki @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Zapisz @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Wyszukiwanie dokumentu z ASN + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Usuń @@ -1537,11 +1581,23 @@ Pobierz oryginał + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Zamknij @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Poprzedni @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Następny @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Szczegóły @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Numer seryjny archiwum @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Data utworzenia @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Domyślne @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Zawartość @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Data modyfikacji @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Data dodania @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Nazwa pliku + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 MD5 - Suma kontrolna Oryginału @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Rozmiar oryginalnego pliku @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Typ mime oryginału @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Suma kontrolna archiwum @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Rozmiar pliku archiwalnego @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metadane oryginalnego dokumentu @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metadane zarchiwizowanego dokumentu @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Wprowadź hasło + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Zaniechaj @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Zapisz & następny @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Czy na pewno chcesz usunąć dokument""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Pliki tego dokumentu zostaną trwale usunięte. Tej operacji nie można cofnąć. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Usuń dokument @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Błąd podczas usuwania dokumentu: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Ta czynność nie może być cofnięta. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ Ta operacja trwale usunie zaznaczonych dokumentów. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Ta czynność nie może być cofnięta. - Delete document(s) @@ -2159,14 +2279,6 @@ Usuń dokument(y) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Widok "" został zapisany. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Widok "" został utworzony pomyślnie. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Pokaż w panelu bocznym @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Pokaż na pulpicie @@ -3083,11 +3187,19 @@ Zamknięcie zapisuje zmiany + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Powiadomienia @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Przetwarzanie dokumentów @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Pokaż powiadomienia, gdy zostaną wykryte nowe dokumenty @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Pokaż powiadomienia, gdy przetwarzanie dokumentu zakończy się pomyślnie @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Pokaż powiadomienia, gdy przetwarzanie dokumentu nie powiedzie się @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Wyłącz powiadomienia na pulpicie @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Wyłącz pokazywanie wszystkich wiadomości o statusie przetwarzania dokumentów na pulpicie. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Wyświetlanie @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Nie zdefiniowano zapisanych widoków. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Zapisany widok "" został usunięty. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Ustawienia zostały zapisane @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Ustawienia zapisane pomyślnie. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Ustawienia zostały pomyślnie zapisane. Przeładowanie jest wymagane do zastosowania zmian. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Załaduj ponownie @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 Wystąpił błąd podczas zapisywania ustawień. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Użyj języka systemowego @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Użyj formatu daty według wyświetlanego języka @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Błąd podczas zapisywania ustawień na serwerze: @@ -3501,6 +3613,14 @@ Auto: ucz się dopasowywać automatycznie + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Niezapisane zmiany @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Masz niezapisane zmiany. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 Masz niezapisane zmiany w dokumencie @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Czy na pewno chcesz zamknąć ten dokument? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Zamknij dokument @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Czy na pewno chcesz zamknąć wszystkie dokumenty? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Zamknij dokumenty diff --git a/src-ui/src/locale/messages.pt_BR.xlf b/src-ui/src/locale/messages.pt_BR.xlf index 3b90d2400..4d844f98a 100644 --- a/src-ui/src/locale/messages.pt_BR.xlf +++ b/src-ui/src/locale/messages.pt_BR.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Visualizações @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Salvar @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Procurando documento com asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Excluir @@ -1537,11 +1581,23 @@ Baixar original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Fechar @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Detalhes @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Número de série de arquivamento @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Data de criação @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Conteúdo @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Data de modificação @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Data de adição @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Nome do arquivo + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Soma de verificação MD5 original @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Tamanho do arquivo original @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Tipo mime original @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Soma de verificação MD5 de arquivamento @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Tamanho arquivado @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metadados do documento original @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metadados do documento arquivado @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Enter Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Descartar @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Salvar & próximo @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Você realmente deseja excluir o documento ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Os arquivos desse documento serão excluídos permanentemente. Essa operação não pode ser revertida. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Excluir documento @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Erro ao excluir documento: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Essa operação não pode ser revertida. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ Essa operação irá excluir permanentemente documento(s) selecionado(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Essa operação não pode ser revertida. - Delete document(s) @@ -2159,14 +2279,6 @@ Apagar documento(s) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Visualização "" salva com sucesso. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Visualização "" criada com sucesso. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Mostrar na navegação lateral @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Exibir no painel de controle @@ -3083,11 +3187,19 @@ Aplicar ao fechar + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notificações @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Processamento de documentos @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Exibir notificações quando novos documentos forem detectados @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Exibir notificações quando o processamento de um documento concluir com sucesso @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Exibir notificações quando o processamento de um documento falhar @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Não exibir notificações no painel de controle @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Isso esconderá todas as mensagens sobre o status de processamento de documentos no painel de controle. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Aparece em @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Nenhuma visualização definida. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Visualização "" excluída. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Usar linguagem do sistema @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Usar formato de data da linguagem de exibição @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Aprender detecção automaticamente + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Alterações não salvas @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Você tem alterações não salvas. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Tem certeza de que deseja fechar este documento? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Fechar documento @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Tem certeza de que deseja fechar todos os documentos? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Fechar documentos diff --git a/src-ui/src/locale/messages.pt_PT.xlf b/src-ui/src/locale/messages.pt_PT.xlf index 473208a2c..00899a808 100644 --- a/src-ui/src/locale/messages.pt_PT.xlf +++ b/src-ui/src/locale/messages.pt_PT.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Diminuir horas @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Incrementar minutos @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Diminuir minutos @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Visualizações @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Salvar @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ A pesquisar documento com nsa + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Apagar @@ -1537,11 +1581,23 @@ Baixar original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Fechar @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Anterior @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Seguinte @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Detalhes @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Número de série de arquivamento @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Data de criação @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Conteúdo @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Data de modificação @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Data de adição @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Nome do ficheiro + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Checksum MD5 original @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Tamanho do ficheiro original @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Tipo mime original @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Checksum MD5 do arquivo @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Tamanho do arquivo @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metadados do documento original @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metadados do documento arquivado @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Introduzir Palavra-Passe + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Descartar @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Guardar & próximo @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Tem a certeza que quer apagar o documento ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Os ficheiros deste documento serão excluídos permanentemente. Esta operação não pode ser revertida. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Apagar documento @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Erro ao apagar documento: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Esta operação não pode ser revertida. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ Esta operação irá apagar permanentemente o(s) documento(s) selecionado(s). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Esta operação não pode ser revertida. - Delete document(s) @@ -2159,14 +2279,6 @@ Apagar documento(s) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Visualização "" guardado com sucesso. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Visualização "" criada com sucesso. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Mostrar na barra lateral @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Exibir no dashboard @@ -3083,11 +3187,19 @@ Aplicar ao fechar + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notificações @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Processamento de documentos @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Exibir notificações quando novos documentos forem detectados @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Exibir notificações quando o processamento de um documento concluir com sucesso @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Mostrar notificações quando o processamento de um documento falhar @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Não mostrar notificações no dashboard @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Isso esconderá todas as mensagens sobre o status de processamento de documentos no painel de controle. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Aparece em @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Nenhuma vista gravada definida. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Visualização "" apagada. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Usar linguagem do sistema @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Usar formato de data da linguagem de exibição @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Erro ao armazenar configurações no servidor: @@ -3501,6 +3613,14 @@ Auto: Aprender correspondência automaticamente + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Alterações não guardadas @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Tem alterações não guardadas. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Tem a certeza de que deseja fechar este documento? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Fechar documento @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Tem a certeza de que pretende fechar todos os documentos? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Fechar documentos diff --git a/src-ui/src/locale/messages.ro_RO.xlf b/src-ui/src/locale/messages.ro_RO.xlf index 3c5ed3c9c..38a7cf594 100644 --- a/src-ui/src/locale/messages.ro_RO.xlf +++ b/src-ui/src/locale/messages.ro_RO.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Vizualizări @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Salvează @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Se caută documentul cu asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Șterge @@ -1537,11 +1581,23 @@ Descarcă originalul + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Închide @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Detalii @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Număr serial în arhivă @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Data creării @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Conținut @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Data ultimei modificări @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Data adăugării @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Numele fișierului media + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 MD5 original @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Dimensiunea fișierului original @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Tip MIME original @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 MD5 arhivă @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Mărimea arhivei @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metadatele documentului original @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metadatele documentului arhivat @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Enter Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Renunță @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Salvează și continuă @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Sunteţi sigur că doriţi să ştergeţi documentul ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Fișierele pentru acest document vor fi șterse permanent. Operațiunea este ireversibila. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Șterge document @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Eroare la ștergerea documentului: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Această operațiune este ireversibilă. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ document(e) selectat(e) vor fi șterse permanent. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Această operațiune este ireversibilă. - Delete document(s) @@ -2159,14 +2279,6 @@ Șterge document(e) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Vizualizarea "" a fost salvată. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Vizualizarea "" a fost creată. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Afișează in bara laterala @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Afișează pe tabloul de bord @@ -3083,11 +3187,19 @@ Aplică la ieșire + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notificări @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Procesarea documentelor @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Arată notificări atunci când sunt detectate documente noi @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Arată notificări atunci când procesarea documentului se termină cu succes @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Arată notificări atunci când procesarea documentului eșuează @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Ascunde notificările pe tabloul de bord @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Această setare va opri mesajele despre procesarea documentelor pe tabloul de bord. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Apare pe @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Nu sunt definite vizualizări. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Vizualizarea "" a fost ștearsă. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Utilizați limba sistemului @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Folosiți formatul datei corespunzător limbii de afișare @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Învață potrivirea automat + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Modificări nesalvate @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Aveți modificări nesalvate. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Sigur doriți să închideți acest document? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Închide document @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Sigur doriți să închideți toate documentele? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Închide documentele diff --git a/src-ui/src/locale/messages.ru_RU.xlf b/src-ui/src/locale/messages.ru_RU.xlf index 94041e1de..b87cd18df 100644 --- a/src-ui/src/locale/messages.ru_RU.xlf +++ b/src-ui/src/locale/messages.ru_RU.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Представления @@ -514,7 +514,7 @@ src/app/components/app-frame/app-frame.component.html 141 - Storage paths + Пути хранения File Tasks @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Сохранить @@ -982,7 +986,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 35 - Path + Путь e.g. @@ -990,7 +994,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 25 - e.g. + напр. or use slashes to add directories e.g. @@ -998,7 +1002,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 27 - or use slashes to add directories e.g. + или используйте слэши для добавления каталогов, например. See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. @@ -1014,7 +1018,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 34 - Create new storage path + Создать новый путь хранения Edit storage path @@ -1022,7 +1026,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 38 - Edit storage path + Редактировать путь хранения Color @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Поиск документа с asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Удалить @@ -1537,11 +1581,23 @@ Скачать оригинал + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Закрыть @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Детали @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Архивный номер (АН) @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Дата создания @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1663,13 +1719,13 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 44 - Storage path + Путь к хранилищу Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Содержимое @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Дата изменения @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Дата добавления @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Имя файла + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Оригинальная MD5 сумма @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Размер оригинального файла @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Оригинальный MIME тип @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 MD5 сумма архива @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Размер архива @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Метаданные оригинального документа @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Метаданные архивного документа @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Enter Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Отменить @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Сохранить & следующий @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Вы действительно хотите удалить документ ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Файлы из этого документа будут удалены незамедлительно. Это операцию нельзя отменить. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Удалить документ @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Ошибка удаления документа: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Эту операцию нельзя отменить. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1907,7 +2047,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 45 - Filter storage paths + Фильтр по пути хранения Actions @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2105,7 +2237,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 337 - Confirm storage path assignment + Подтвердите назначение путь хранения This operation will assign the storage path "" to selected document(s). @@ -2139,18 +2271,6 @@ Эта операция навсегда удалит выбранных документов. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Эту операцию нельзя отменить. - Delete document(s) @@ -2159,14 +2279,6 @@ Удалить документ(ы) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2269,7 +2373,7 @@ src/app/components/document-list/document-list.component.html 180 - Filter by document type + Фильтр по типу документа Filter by storage path @@ -2281,7 +2385,7 @@ src/app/components/document-list/document-list.component.html 185 - Filter by storage path + Фильтр по пути хранения Created: @@ -2357,7 +2461,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 38 - Toggle storage path filter + Переключить фильтр пути хранения Select none @@ -2485,13 +2589,13 @@ src/app/components/document-list/document-list.component.html 175 - Edit document + Изменить документ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Представление "" успешно сохранено. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Представление "" успешно создано. @@ -2517,7 +2621,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 72,74 - Correspondent: + Корреспондент: Without correspondent @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Показать в боковой панели @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Показать на главной @@ -2701,7 +2805,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 34 - correspondents + корреспонденты Last used @@ -2725,7 +2829,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 30 - document type + тип документа document types @@ -2733,7 +2837,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 31 - document types + типы документов Do you really want to delete the document type ""? @@ -2841,7 +2945,7 @@ src/app/components/manage/management-list/management-list.component.html 44 - Filter Documents + Фильтр документов {VAR_PLURAL, plural, =1 {One } other { total }} @@ -3041,7 +3145,7 @@ src/app/components/manage/settings/settings.component.html 105 - Theme Color + Цветовая тема Reset @@ -3049,7 +3153,7 @@ src/app/components/manage/settings/settings.component.html 114 - Reset + Сбросить Bulk editing @@ -3083,11 +3187,19 @@ Применить при закрытии + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Уведомления @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Обработка документа @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Показывать уведомления при обнаружении новых документов @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Показывать уведомления, когда обработка документа успешна @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Показывать уведомления, когда обработка документа не удалась @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Спрятать уведомления на главной @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Это отключит все сообщения о статусе обработки документов на главной. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Появляется на @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Нет сохраненных представлений. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Сохраненное представление "" удалено. @@ -3167,23 +3279,23 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 - Settings saved + Сохранено Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 - Settings were saved successfully. + Настройки успешно сохранены. Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,15 +3303,15 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 - Reload now + Перезагрузить An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Использовать язык системы @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Использовать формат даты, соответствующий языку @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3233,7 +3345,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 30 - storage path + путь к хранилищу storage paths @@ -3241,7 +3353,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 31 - storage paths + пути хранения Do you really want to delete the storage path ""? @@ -3257,7 +3369,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 30 - tag + тег tags @@ -3265,7 +3377,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 31 - tags + теги Do you really want to delete the tag ""? @@ -3281,7 +3393,7 @@ src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + Файловые Задачи Clear selection @@ -3289,7 +3401,7 @@ src/app/components/manage/tasks/tasks.component.html 6 - Clear selection + Отменить выбор @@ -3307,7 +3419,7 @@ src/app/components/manage/tasks/tasks.component.html 20 - Refresh + Обновить Results @@ -3315,7 +3427,7 @@ src/app/components/manage/tasks/tasks.component.html 42 - Results + Результаты click for full output @@ -3323,7 +3435,7 @@ src/app/components/manage/tasks/tasks.component.html 66 - click for full output + нажать для полного вывода Dismiss @@ -3335,7 +3447,7 @@ src/app/components/manage/tasks/tasks.component.ts 54 - Dismiss + Отклонить Failed  @@ -3375,7 +3487,7 @@ src/app/components/manage/tasks/tasks.component.ts 21 - Dismiss selected + Отменить выбранное Dismiss all @@ -3387,7 +3499,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - Dismiss all + Отменить все Confirm Dismiss All @@ -3395,7 +3507,7 @@ src/app/components/manage/tasks/tasks.component.ts 50 - Confirm Dismiss All + Подтвердить отмену всех tasks? @@ -3403,7 +3515,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - tasks? + задачи? 404 Not Found @@ -3501,6 +3613,14 @@ Авто: Автоматически изучать соответствие + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Несохранённые изменения @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 У вас есть несохраненные изменения. @@ -3681,15 +3801,15 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 - You have unsaved changes to the document + У вас есть несохраненные изменения в документе Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Вы уверены, что хотите закрыть этот документ? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Закрыть документ @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Вы уверены, что хотите закрыть все документы? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Закрыть документы @@ -3916,7 +4036,7 @@ src/app/services/settings.service.ts 372 - Successfully completed one-time migratration of settings to the database! + Одноразовая миграция настроек в базу данных завершена! Unable to migrate settings to the database, please try saving manually. @@ -3924,7 +4044,7 @@ src/app/services/settings.service.ts 373 - Unable to migrate settings to the database, please try saving manually. + Не удается перенести настройки в базу данных, пожалуйста, попробуйте сохранить вручную. Error diff --git a/src-ui/src/locale/messages.sl_SI.xlf b/src-ui/src/locale/messages.sl_SI.xlf index 31f8e826c..f52b6f7eb 100644 --- a/src-ui/src/locale/messages.sl_SI.xlf +++ b/src-ui/src/locale/messages.sl_SI.xlf @@ -17,7 +17,7 @@ 157,166 Currently selected slide number read by screen reader - Slide of + Slike od Previous @@ -155,7 +155,7 @@ node_modules/src/progressbar/progressbar.ts 23,26 - + HH @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Zmanjšanje ur @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Povečanje minut @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Zmanjšanje minut @@ -370,7 +370,7 @@ src/app/components/app-frame/app-frame.component.html 34 - Logged in as + Prijavljen kot Settings @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Shranjeni pogledi @@ -514,7 +514,7 @@ src/app/components/app-frame/app-frame.component.html 141 - Storage paths + Poti do shrambe File Tasks @@ -522,7 +522,7 @@ src/app/components/app-frame/app-frame.component.html 148 - File Tasks + Opravila datotek Logs @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Shrani @@ -970,7 +974,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html 10 - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. + Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. Path @@ -982,7 +986,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 35 - Path + Pot e.g. @@ -990,7 +994,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 25 - e.g. + npr. or use slashes to add directories e.g. @@ -998,7 +1002,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 27 - or use slashes to add directories e.g. + ali uporabljaj slash za dodajanje map npr. See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. @@ -1006,7 +1010,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 29 - See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. + Poglejte <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> za cel seznam. Create new storage path @@ -1014,7 +1018,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 34 - Create new storage path + Ustvari novo pot shrambe Edit storage path @@ -1022,7 +1026,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 38 - Edit storage path + Uredi pot shrambe Color @@ -1086,7 +1090,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Any + Poljuben Apply @@ -1204,7 +1208,7 @@ src/app/components/dashboard/dashboard.component.ts 19 - Hello , welcome to Paperless-ngx! + Pozdravjen , dobrodošel v Paperless-ngx! Welcome to Paperless-ngx! @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Iskanje dokumenta z asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Izbriši @@ -1537,11 +1581,23 @@ Prenesi izvirnik + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Ponovno naredi OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Zapri @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Prejšnji @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Naslednji @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Podrobnosti @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Arhivska serijska številka @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Datum nastanka @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1663,21 +1719,21 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 44 - Storage path + Pot do shrambe Default src/app/components/document-detail/document-detail.component.html - 77 + 83 - Default + Privzeto Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Vsebina @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Datum spremembe @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Datum vnosa @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Ime medijske datoteke + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Izvirno ime datoteke + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Izvirni MD5 checksum @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Izvirna velikost datoteke @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Izvirna mime vrsta @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Arhiviran MD5 checksum @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Velikost arhivske datoteke @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Izvirni metapodatki dokumenta @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Arhivirani metapodatki dokumenta @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Vnesi geslo + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Zavrzi @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Shrani & naslednjo @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Ali res želite izbrisati dokument ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Datoteke za ta dokument bodo trajno izbrisane. Te operacije ni mogoče razveljaviti. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Izbriši dokument @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Napaka pri brisanju dokumenta: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Potrdi ponovno izdelavo OCR + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + Ta izbira bo permanentno izvedla ponovni OCR na tem dokumentu. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Te operacije ni mogoče razveljaviti. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Nadaljuj + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Ponovna izdelava OCR operacije se bo izvedla v ozadju. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Napaka pri izvajanju operacije: + Select: @@ -1907,7 +2047,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 45 - Filter storage paths + Filtriraj poti shrambe Actions @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1947,7 +2087,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 78,82 - Download Preparing download... + Prenesi Pripravljam prenos... Download originals Preparing download... @@ -1955,15 +2095,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 84,88 - Download originals Preparing download... - - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR + Prenesi originale Pripravljam prenos... Error executing bulk operation: @@ -2105,7 +2237,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 337 - Confirm storage path assignment + Potrdite dodelitev oznak poti This operation will assign the storage path "" to selected document(s). @@ -2139,18 +2271,6 @@ Ta operacija bo trajno izbrisala izbrane dokumente. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Te operacije ni mogoče razveljaviti. - Delete document(s) @@ -2159,14 +2279,6 @@ Izbriši dokument(e) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Pogled »" je uspešno shranjen. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Pogled »" je bil uspešno ustvarjen. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Prikaži v stranski vrstici @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Prikaži na pregledni plošči @@ -3083,11 +3187,19 @@ Potrdite ob zaprtju + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Obvestila @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Obdelava dokumentov @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Pokaži obvestila, ko so zaznani novi dokumenti @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Pokaži obvestila, ko se obdelava dokumenta uspešno zaključi @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Pokaži obvestila, ko obdelava dokumenta ne uspe @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Preprečite obvestila na pregledni strani @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 S tem bodo na plošči prekinjena vsa sporočila o stanju obdelave dokumentov. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Pojavi se na @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Ni določenih shranjenih pogledov. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Shranjen pogled "" je izbrisan. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Uporabi sistemski jezik @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Uporabite obliko datuma prikaznega jezika @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Samodejno: Nauči se samodejnega ujemanja + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Neshranjene spremembe @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Imate neshranjene spremembe. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Ali ste prepričani, da želite zapreti ta dokument? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Zapri dokument @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Ali ste prepričani, da želite zapreti vse dokumente? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Zapri dokumente diff --git a/src-ui/src/locale/messages.sr_CS.xlf b/src-ui/src/locale/messages.sr_CS.xlf index 0f879c9a8..21d161f07 100644 --- a/src-ui/src/locale/messages.sr_CS.xlf +++ b/src-ui/src/locale/messages.sr_CS.xlf @@ -17,7 +17,7 @@ 157,166 Currently selected slide number read by screen reader - Slide of + Slajd od Previous @@ -155,7 +155,7 @@ node_modules/src/progressbar/progressbar.ts 23,26 - + HH @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Smanji sate @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Povećaj minute @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Smanji minute @@ -370,7 +370,7 @@ src/app/components/app-frame/app-frame.component.html 34 - Logged in as + Ulogovan kao Settings @@ -434,7 +434,7 @@ src/app/components/manage/management-list/management-list.component.html 54 - Dokumenta + Dokumenti Saved views @@ -444,9 +444,9 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 - Sačuvani prikaz + Sačuvani pogledi Open documents @@ -478,7 +478,7 @@ src/app/components/app-frame/app-frame.component.html 120 - Dopisnici + Korespodenti Tags @@ -514,7 +514,7 @@ src/app/components/app-frame/app-frame.component.html 141 - Storage paths + Putanja skladišta File Tasks @@ -522,7 +522,7 @@ src/app/components/app-frame/app-frame.component.html 148 - File Tasks + Procesiranje fajlova Logs @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Sačuvaj @@ -914,7 +918,7 @@ src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts 24 - Krairaj novog dopisnika + Krairaj novog korespodenta Edit correspondent @@ -922,7 +926,7 @@ src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts 28 - Izmeni dopisnika + Izmeni korespodenta Create new document type @@ -970,7 +974,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html 10 - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. + Imajte na umu da se promena uređivanje putanje ne primenjuje na sačuvane datoteke sve dok ne pokrenete uslužni program 'document_renamer'. Pogledajte dokumentaciju. Path @@ -982,7 +986,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 35 - Path + Putanja e.g. @@ -990,7 +994,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 25 - e.g. + npr. or use slashes to add directories e.g. @@ -998,7 +1002,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 27 - or use slashes to add directories e.g. + ili koristite kose crte za dodavanje direktorijuma, npr. See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. @@ -1006,7 +1010,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 29 - See <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">documentation</a> for full list. + Pogledaj <a target="_blank" href="https://paperless-ngx.readthedocs.io/en/latest/advanced_usage.html#file-name-handling">dokumentaciju</a> za kompletnu listu. Create new storage path @@ -1014,7 +1018,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 34 - Create new storage path + Kreiraj novu putanju skladišta Edit storage path @@ -1022,7 +1026,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts 38 - Edit storage path + Izmeni putanju skladišta Color @@ -1086,7 +1090,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 23 - Any + Bilo koja Apply @@ -1111,7 +1115,7 @@ 261 Filter drop down element to filter for documents with no correspondent/type/tag assigned - Nije dodeljeno + Nije dodeljen Invalid date. @@ -1204,7 +1208,7 @@ src/app/components/dashboard/dashboard.component.ts 19 - Hello , welcome to Paperless-ngx! + Pozdrav , dobro došao u Paperless-ngx! Welcome to Paperless-ngx! @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1288,7 +1292,7 @@ src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 3 - Dokumenata u prijemnom sandučetu: + Dokumenta u prijemnom sandučetu: Total documents: @@ -1441,6 +1445,46 @@ Pretraži dokument sa ASN + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Unesi komentar + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Molimo unesite komentar. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Dodaj komentar + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Greška prilikom čuvanja komentara: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Greška prilikom brisanja komentara: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Obriši @@ -1537,11 +1581,23 @@ Preuzmi original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Ponovi OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Zatvori @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Prethodni @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Sledeći @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Detalji @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Arhivski serijski broj @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Datum kreiranja @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1619,13 +1675,13 @@ src/app/services/rest/document.service.ts 19 - Dopisnik + Korespodent Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1663,21 +1719,21 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 44 - Storage path + Putanja skladišta Default src/app/components/document-detail/document-detail.component.html - 77 + 83 - Default + Podrazumevano Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Sadržaj @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Datum izmene @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Datum dodavanja @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Naziv fajla + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Originalno ime fajla + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Originalni MD5 checksum @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Originalna veličina fajla @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Originalni MIME tip @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Arhivni MD5 checksum @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Arhivna veličina fajla @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Metapodaci originalnog dokumenta @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Metapodaci arhivnog dokumenta @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Unesite lozinku + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Komentari + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Odbaci @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Sačuvaj & sledeći @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Da li stvarno želite da obrišite dokument ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Fajlovi za ovaj dokument će biti trajno obrisani. Ova operacija se ne može opozvati. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Obriši dokument @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Greška prilikom brisanja dokumenta: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Ponovi OCR potvrda + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + Ova će operacija trajno ponoviti OCR za ovaj dokument. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Ovu radnju nije moguće opozvati. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Nastavi + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Operacija ponovnog OCR će započeti u pozadini. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Greška pri izvršavanju operacije: + Select: @@ -1883,7 +2023,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 31 - Filtriraj dopisnike + Filtriraj korespodente Filter document types @@ -1895,7 +2035,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 38 - Filtriraj tipove dokumenata + Filtriraj tip dokumenta Filter storage paths @@ -1907,7 +2047,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 45 - Filter storage paths + Filtriraj po putanji skladišta Actions @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1947,7 +2087,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 78,82 - Download Preparing download... + Preuzimanje Priprema preuzimanja... Download originals Preparing download... @@ -1955,15 +2095,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 84,88 - Download originals Preparing download... - - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR + Preuzimanje originala Priprema preuzimanja... Error executing bulk operation: @@ -2057,7 +2189,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 265 - Potvrdi dodelu dopisnika + Potvrdi dodelu korespodenta This operation will assign the correspondent "" to selected document(s). @@ -2065,7 +2197,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 267 - Ova radnja će dodati dopisnika "" na selektovane dokumente. + Ova radnja će dodati korespodenta "" na selektovane dokumente. This operation will remove the correspondent from selected document(s). @@ -2073,7 +2205,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 269 - Ova radnja će obrisati dopisnike sa selektovanih dokumenata. + Ova radnja će obrisati korespodente sa selektovanih dokumenata. Confirm document type assignment @@ -2105,7 +2237,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 337 - Confirm storage path assignment + Potvrdi dodelu putanje skladišta This operation will assign the storage path "" to selected document(s). @@ -2113,7 +2245,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 339 - This operation will assign the storage path "" to selected document(s). + Ova radnja će dodati putanju skladišta "" na selektovane dokumente. This operation will remove the storage path from selected document(s). @@ -2121,7 +2253,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 341 - This operation will remove the storage path from selected document(s). + Ova radnja će obrisati putanju skladišta selektovanih dokumenata. Delete confirm @@ -2139,18 +2271,6 @@ Ova radnja će trajno obrisati selektovan(a) dokument(a). - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Ovu radnju nije moguće opozvati. - Delete document(s) @@ -2159,29 +2279,13 @@ Obriši dokument(e) - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts 388 - This operation will permanently redo OCR for selected document(s). - - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed + Ova radnja će trajno ponoviti OCR za selektovan(a) dokument(a). Filter by correspondent @@ -2193,7 +2297,7 @@ src/app/components/document-list/document-list.component.html 171 - Filtriraj po dopisniku + Filtriraj po korespodentu Filter by tag @@ -2269,7 +2373,7 @@ src/app/components/document-list/document-list.component.html 180 - Filter by document type + Filtriraj po tipu dokumenta Filter by storage path @@ -2281,7 +2385,7 @@ src/app/components/document-list/document-list.component.html 185 - Filter by storage path + Filtriraj po putanji skladišta Created: @@ -2293,7 +2397,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 48 - Created: + Kreirano: Added: @@ -2305,7 +2409,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 49 - Added: + Dodato: Modified: @@ -2317,7 +2421,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 50 - Modified: + Izmenjeno: Score: @@ -2333,7 +2437,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 14 - Toggle tag filter + Isključi filter oznaka Toggle correspondent filter @@ -2341,7 +2445,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 24 - Toggle correspondent filter + Isključi filter korespodenta Toggle document type filter @@ -2349,7 +2453,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 31 - Toggle document type filter + Isključi filter tipova dokumenata Toggle storage path filter @@ -2357,7 +2461,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 38 - Toggle storage path filter + Isključiti filter putanje skladišta Select none @@ -2397,7 +2501,7 @@ src/app/components/document-list/document-list.component.html 63 - Prikazi + Pogledi Save "" @@ -2485,13 +2589,13 @@ src/app/components/document-list/document-list.component.html 175 - Edit document + Uredi dokument View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Prikaz "" je uspešno sačuvan. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Prikaz "" je uspešno kreiran. @@ -2517,7 +2621,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 72,74 - Dopisnik: + Korespodent: Without correspondent @@ -2525,7 +2629,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 76 - Bez dopisnika + Bez korespodenta Type: @@ -2605,7 +2709,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 164 - equals + jednako is empty @@ -2613,7 +2717,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 168 - is empty + je prazan is not empty @@ -2621,7 +2725,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 172 - is not empty + nije prazan greater than @@ -2629,7 +2733,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 176 - greater than + veće od less than @@ -2637,7 +2741,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 180 - less than + manje od Save current view @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Prikaži u bočnoj traci @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Prikaži na kontrolnoj tabli @@ -2693,7 +2797,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 33 - dopisnik + korespodent correspondents @@ -2701,7 +2805,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 34 - correspondents + korespodenti Last used @@ -2709,7 +2813,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 38 - Last used + Poslednje korišćenje Do you really want to delete the correspondent ""? @@ -2717,7 +2821,7 @@ src/app/components/manage/correspondent-list/correspondent-list.component.ts 48 - Da li stvarno želite da obrišete ovog dopisnika ""? + Da li stvarno želite da obrišete ovog korespodenta ""? document type @@ -2733,7 +2837,7 @@ src/app/components/manage/document-type-list/document-type-list.component.ts 31 - document types + tipovi dokumenta Do you really want to delete the document type ""? @@ -2841,7 +2945,7 @@ src/app/components/manage/management-list/management-list.component.html 44 - Filter Documents + Filter dokumenata {VAR_PLURAL, plural, =1 {One } other { total }} @@ -2861,7 +2965,7 @@ src/app/components/manage/management-list/management-list.component.html 74 - {VAR_PLURAL, plural, =1 {One } other { total }} + {VAR_PLURAL, plural, =1 {Jedan } other { ukupno }} Automatic @@ -3083,11 +3187,19 @@ Primeni pri zatvaranju + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Omogući komentare + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Obaveštenja @@ -3095,15 +3207,15 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 - Obrada dokumenata + Procesiranje dokumenata Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Prikaži obaveštenja kada se otkriju novi dokumenti @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Prikaži obaveštenja kada se obrada dokumenta uspešno završi @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Prikaži obaveštenja kada obrada dokumenta ne uspe @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Poništi obaveštenja na kontrolnoj tabli @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Ovo će potisnuti sve poruke o statusu obrade dokumenta na kontrolnoj tabli. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Pojavljuje se na @@ -3151,63 +3263,63 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 - Nema definisanih sačuvanih prikaza. + Nema definisanih sačuvanih pogleda. Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 - Sačuvani prikaz "" je obrisan. + Sačuvan pogled "" je obrisan. Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 - Settings saved + Podešavanja su sačuvana Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 - Settings were saved successfully. + Podešavanja su uspešno sačuvana. Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 - Settings were saved successfully. Reload is required to apply some changes. + Podešavanja su uspešno sačuvana. Potrebno je ponovno učitavanje da biste primenili neke promene. Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 - Reload now + Sad ponovo učitaj An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 - An error occurred while saving settings. + Došlo je do greške prilikom čuvanja podešavanja. Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Koristi sistemski jezik @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Koristi format datuma jezika prikaza @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Greška pri čuvanju podešavanja na serveru: @@ -3233,7 +3345,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 30 - storage path + putanja skladišta storage paths @@ -3241,7 +3353,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 31 - storage paths + putanja skladišta Do you really want to delete the storage path ""? @@ -3249,7 +3361,7 @@ src/app/components/manage/storage-path-list/storage-path-list.component.ts 45 - Do you really want to delete the storage path ""? + Da li stvarno želite da obrišete putanju skladišta ""? tag @@ -3265,7 +3377,7 @@ src/app/components/manage/tag-list/tag-list.component.ts 31 - tags + oznake Do you really want to delete the tag ""? @@ -3281,7 +3393,7 @@ src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + Obrada dokumenata Clear selection @@ -3289,7 +3401,7 @@ src/app/components/manage/tasks/tasks.component.html 6 - Clear selection + Poništi izbor @@ -3299,7 +3411,7 @@ src/app/components/manage/tasks/tasks.component.html 11 - + Refresh @@ -3307,7 +3419,7 @@ src/app/components/manage/tasks/tasks.component.html 20 - Refresh + Osveži Results @@ -3315,7 +3427,7 @@ src/app/components/manage/tasks/tasks.component.html 42 - Results + Rezultati click for full output @@ -3323,7 +3435,7 @@ src/app/components/manage/tasks/tasks.component.html 66 - click for full output + klikni za pun prikaz Dismiss @@ -3335,7 +3447,7 @@ src/app/components/manage/tasks/tasks.component.ts 54 - Dismiss + Odbaci Failed  @@ -3343,7 +3455,7 @@ src/app/components/manage/tasks/tasks.component.html 96 - Failed  + Neuspešno  Complete  @@ -3351,7 +3463,7 @@ src/app/components/manage/tasks/tasks.component.html 102 - Complete  + Završeno Started  @@ -3359,7 +3471,7 @@ src/app/components/manage/tasks/tasks.component.html 108 - Started  + Pokrenuto Queued  @@ -3367,7 +3479,7 @@ src/app/components/manage/tasks/tasks.component.html 114 - Queued  + Na čekanju  Dismiss selected @@ -3375,7 +3487,7 @@ src/app/components/manage/tasks/tasks.component.ts 21 - Dismiss selected + Odbaci selektovano Dismiss all @@ -3387,7 +3499,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - Dismiss all + Odbaci sve Confirm Dismiss All @@ -3395,7 +3507,7 @@ src/app/components/manage/tasks/tasks.component.ts 50 - Confirm Dismiss All + Potvrdi odbacivanje svega tasks? @@ -3403,7 +3515,7 @@ src/app/components/manage/tasks/tasks.component.ts 52 - tasks? + obrade? 404 Not Found @@ -3427,7 +3539,7 @@ src/app/data/matching-model.ts 14 - Bilo koji: dokument sadrži bilo koju od ovih reči (razdvojenih razmacima) + Bilo koja: dokument sadrži bilo koju od ovih reči (razdvojenih razmacima) All words @@ -3501,6 +3613,14 @@ Automatski: nauči automatsko podudaranje + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Upozorenje: Imate nesačuvane promene u dokumentu. + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Nesačuvane izmene @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Imate nesačuvanih izmena. @@ -3681,15 +3801,15 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 - You have unsaved changes to the document + Imate nesačuvane promene u dokumentu Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Da li ste sigurni da želite da zatvorite ovaj dokument? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Zatvori dokument @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Da li ste sigurni da želite da zatvorite sve dokumente? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Zatvori dokumenta @@ -3916,7 +4036,7 @@ src/app/services/settings.service.ts 372 - Successfully completed one-time migratration of settings to the database! + Uspešno završena jednokratna migracija podešavanja u bazu podataka! Unable to migrate settings to the database, please try saving manually. @@ -3924,7 +4044,7 @@ src/app/services/settings.service.ts 373 - Unable to migrate settings to the database, please try saving manually. + Nije moguće preneti podešavanja u bazu podataka, pokušajte da ih sačuvate ručno. Error diff --git a/src-ui/src/locale/messages.sv_SE.xlf b/src-ui/src/locale/messages.sv_SE.xlf index 234515dc2..fb3e64fb7 100644 --- a/src-ui/src/locale/messages.sv_SE.xlf +++ b/src-ui/src/locale/messages.sv_SE.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Sparade vyer @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Spara @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Söker dokument med asn + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Radera @@ -1537,11 +1581,23 @@ Ladda ner original + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Stäng @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Detaljer @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Arkivets serienummer @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Datum skapad @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Default @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Innehåll @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Datum ändrad @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Datum tillagd @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Media filnamn + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Original MD5-kontrollsumma @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Ursprunglig filstorlek @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Ursprunglig mime-typ @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Arkiv MD5-kontrollsumma @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Arkiv filstorlek @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Ursprungliga dokument metadata @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Arkiverade dokument metadata @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 Enter Password + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Avfärda @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Spara & nästa @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 Vill du verkligen ta bort dokumentet ""? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Filerna för detta dokument kommer att raderas permanent. Den här åtgärden kan inte ångras. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Ta bort dokument @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 Fel vid borttagning av dokument: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Den här åtgärden kan inte ångras. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Proceed + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ Den här åtgärden kommer att permanent ta bort markerade dokument. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Den här åtgärden kan inte ångras. - Delete document(s) @@ -2159,14 +2279,6 @@ Ta bort dokument - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ This operation will permanently redo OCR for selected document(s). - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - Proceed - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 Vy "" sparades. @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 Vy "" skapades. @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Visa i sidofältet @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Visa på instrumentpanelen @@ -3083,11 +3187,19 @@ Tillämpa vid stängning + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Notifieringar @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Dokument bearbetas @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Visa notifieringar när nya dokument upptäcks @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Visa notifieringar när dokumentbehandlingen är klar @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Visa aviseringar när dokumentbehandling misslyckas @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Förhindra aviseringar på instrumentpanelen @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Detta kommer att förhindra alla meddelanden om status för dokumenthantering på instrumentpanelen. @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Visas på @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Inga sparade vyer har definierats. @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 Sparad vy "" borttagen. @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Reload now @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Använd systemspråk @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Använd datumformat för visningsspråk @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3613,14 @@ Auto: Lär matchning automatiskt + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Unsaved Changes @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 You have unsaved changes. @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Are you sure you want to close this document? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Close document @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Are you sure you want to close all documents? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Close documents diff --git a/src-ui/src/locale/messages.tr_TR.xlf b/src-ui/src/locale/messages.tr_TR.xlf index d740985ef..f99f35c1a 100644 --- a/src-ui/src/locale/messages.tr_TR.xlf +++ b/src-ui/src/locale/messages.tr_TR.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 Decrement hours @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 Increment minutes @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 Decrement minutes @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 Kaydedilen görünümler @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 Kaydet @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ Belgeyi asn ile arama + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 Sil @@ -1537,11 +1581,23 @@ Orijinal Dosyayı İndir + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + Redo OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 Kapat @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 Previous @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 Next @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 Ayrıntılar @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 Arşiv seri numarası @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 Oluşturma tarihi @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 Varsayılan @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 Içerik @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 Değiştirilme tarihi @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 Ekleme tarihi @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 Medya dosya ismi + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 Orijinal MD5 sağlama toplamı @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 Orijinal dosya boyutu @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 Orijinal mime türü @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 Arşiv MD5 sağlama toplamı @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 Arşiv dosya boyutu @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 Orijinal belge meta verisi @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 Arşivlenen belge meta verileri @@ -1777,11 +1841,23 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 + + Parolayı girin + + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 Parolayı girin @@ -1789,7 +1865,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 Gözardı et @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 Kaydet & sonraki @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 "" olan belgeyi gerçekten silmek istiyormusunuz? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 Bu belgeye ait dosyalar kalıcı olarak siliniecektir. Bu işlem geri alınamaz. @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 Belgeyi sil @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 belgeyi silerken hata + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + Bu işlem geri alınamaz. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + Devam et + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ Download originals Preparing download... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - Redo OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ Bu işlem, "" seçili belge(leri) kalıcı olarak silecektir. - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - Bu işlem geri alınamaz. - Delete document(s) @@ -2159,14 +2279,6 @@ Belge(yi/leri) sil - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - Redo OCR confirm - This operation will permanently redo OCR for selected document(s). @@ -2491,7 +2603,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 "" adlı görünüm başarı ile kayıt edildi. @@ -2499,7 +2611,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 adlı görünüm başarı ile oluşturuldu. @@ -2655,7 +2767,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 Kenar çubuğunda göster @@ -2667,7 +2779,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 Kontrol paneli'nde göster @@ -3083,11 +3195,19 @@ Kapanışta uygula + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 Bildirimler @@ -3095,7 +3215,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 Belge işleme @@ -3103,7 +3223,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 Yeni belge bulunduğunda bildirimi göster @@ -3111,7 +3231,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 Belge işleme başarıyla tamamlandığında bildirimleri göster @@ -3119,7 +3239,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 Belge işleme başarız tamamlandığında bildirimleri göster @@ -3127,7 +3247,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 Kontrol panodaki bildirimleri bastır @@ -3135,7 +3255,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 Bu, kontrol panodaki belge işleme durumuyla ilgili tüm iletileri bastırır. @@ -3143,7 +3263,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 Görünür @@ -3151,7 +3271,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 Kaydedilmiş görünüm tanımlanmadı. @@ -3159,7 +3279,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 adlı görünüm silindi. @@ -3167,7 +3287,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 Settings saved @@ -3175,7 +3295,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 Settings were saved successfully. @@ -3183,7 +3303,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 Settings were saved successfully. Reload is required to apply some changes. @@ -3191,7 +3311,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 Şimdi yenile @@ -3199,7 +3319,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 An error occurred while saving settings. @@ -3207,7 +3327,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 Sistem dilini kullan @@ -3215,7 +3335,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 Görüntüleme dilinin tarih formatını kullan @@ -3223,7 +3343,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 Error while storing settings on server: @@ -3501,6 +3621,14 @@ Otomatik mod: Eşleşmeyi otomatik olarak öğrenir + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3637,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 Kaydedilmemiş değişiklikler @@ -3525,7 +3653,7 @@ src/app/services/open-documents.service.ts - 139 + 144 Kaydedilmemiş değişiklikleriniz var. @@ -3681,7 +3809,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 You have unsaved changes to the document @@ -3689,7 +3817,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 Bu belgeyi kapatmak istediğinizden emin misin? @@ -3697,7 +3825,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 Belgeyi kapat @@ -3705,7 +3833,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 Tüm belgeleri kapatmak istediğinizden emin misiniz? @@ -3713,7 +3841,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 Belgeleri kapat diff --git a/src-ui/src/locale/messages.zh_CN.xlf b/src-ui/src/locale/messages.zh_CN.xlf index eaed33280..dc6a92b27 100644 --- a/src-ui/src/locale/messages.zh_CN.xlf +++ b/src-ui/src/locale/messages.zh_CN.xlf @@ -201,7 +201,7 @@ Decrement hours node_modules/src/timepicker/timepicker.ts - 240,243 + 239,240 减少小时 @@ -209,7 +209,7 @@ Increment minutes node_modules/src/timepicker/timepicker.ts - 268 + 264,268 增加分钟 @@ -217,7 +217,7 @@ Decrement minutes node_modules/src/timepicker/timepicker.ts - 288,289 + 287,289 减少分钟 @@ -444,7 +444,7 @@ src/app/components/manage/settings/settings.component.html - 150 + 158 保存视图 @@ -574,6 +574,10 @@ Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 192 + src/app/components/app-frame/app-frame.component.html 196 @@ -776,7 +780,7 @@ src/app/components/manage/settings/settings.component.html - 157 + 165 src/app/components/manage/tasks/tasks.component.html @@ -896,7 +900,7 @@ src/app/components/document-detail/document-detail.component.html - 168 + 184 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -904,7 +908,7 @@ src/app/components/manage/settings/settings.component.html - 189 + 197 保存 @@ -1258,7 +1262,7 @@ src/app/components/document-detail/document-detail.component.html - 69 + 75 src/app/components/document-list/document-list.component.html @@ -1441,6 +1445,46 @@ 正在以ASN搜索文档 + + Enter comment + + src/app/components/document-comments/document-comments.component.html + 4 + + Enter comment + + + Please enter a comment. + + src/app/components/document-comments/document-comments.component.html + 5,7 + + Please enter a comment. + + + Add comment + + src/app/components/document-comments/document-comments.component.html + 10 + + Add comment + + + Error saving comment: + + src/app/components/document-comments/document-comments.component.ts + 57 + + Error saving comment: + + + Error deleting comment: + + src/app/components/document-comments/document-comments.component.ts + 72 + + Error deleting comment: + Page @@ -1509,7 +1553,7 @@ src/app/components/manage/settings/settings.component.html - 175 + 183 删除 @@ -1537,11 +1581,23 @@ 下载原始文件 + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 90 + + 重新 OCR + More like this src/app/components/document-detail/document-detail.component.html - 34 + 40 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1553,7 +1609,7 @@ Close src/app/components/document-detail/document-detail.component.html - 37 + 43 关闭 @@ -1561,7 +1617,7 @@ Previous src/app/components/document-detail/document-detail.component.html - 44 + 50 上一个 @@ -1569,7 +1625,7 @@ Next src/app/components/document-detail/document-detail.component.html - 49 + 55 下一个 @@ -1577,7 +1633,7 @@ Details src/app/components/document-detail/document-detail.component.html - 66 + 72 详细信息 @@ -1585,7 +1641,7 @@ Archive serial number src/app/components/document-detail/document-detail.component.html - 70 + 76 归档序列号 @@ -1593,7 +1649,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 71 + 77 创建日期 @@ -1601,7 +1657,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 72 + 78 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1625,7 +1681,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 74 + 80 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1649,7 +1705,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 76 + 82 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1669,7 +1725,7 @@ Default src/app/components/document-detail/document-detail.component.html - 77 + 83 默认 @@ -1677,7 +1733,7 @@ Content src/app/components/document-detail/document-detail.component.html - 84 + 90 内容 @@ -1685,7 +1741,7 @@ Metadata src/app/components/document-detail/document-detail.component.html - 93 + 99 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1697,7 +1753,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 99 + 105 修改日期 @@ -1705,7 +1761,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 103 + 109 日期已添加 @@ -1713,15 +1769,23 @@ Media filename src/app/components/document-detail/document-detail.component.html - 107 + 113 媒体文件名 + + Original filename + + src/app/components/document-detail/document-detail.component.html + 117 + + Original filename + Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 111 + 121 原始 MD5 校验和 @@ -1729,7 +1793,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 115 + 125 原始文件大小 @@ -1737,7 +1801,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 119 + 129 原始 mime 类型 @@ -1745,7 +1809,7 @@ Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 123 + 133 归档 MD5 校验和 @@ -1753,7 +1817,7 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 127 + 137 归档文件大小 @@ -1761,7 +1825,7 @@ Original document metadata src/app/components/document-detail/document-detail.component.html - 133 + 143 原始文档元数据 @@ -1769,7 +1833,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 134 + 144 归档文档元数据 @@ -1777,19 +1841,31 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 156 + 166 src/app/components/document-detail/document-detail.component.html - 186 + 202 输入密码 + + Comments + + src/app/components/document-detail/document-detail.component.html + 173 + + + src/app/components/manage/settings/settings.component.html + 128 + + Comments + Discard src/app/components/document-detail/document-detail.component.html - 166 + 182 放弃 @@ -1797,7 +1873,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 167 + 183 保存 & 下一个 @@ -1805,7 +1881,7 @@ Confirm delete src/app/components/document-detail/document-detail.component.ts - 439 + 442 src/app/components/manage/management-list/management-list.component.ts @@ -1817,7 +1893,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 440 + 443 您真的想要删除文档 “” 吗? @@ -1825,7 +1901,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 441 + 444 此文档的文件将被永久删除。此操作无法撤消。 @@ -1833,7 +1909,7 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 443 + 446 删除文档 @@ -1841,10 +1917,74 @@ Error deleting document: src/app/components/document-detail/document-detail.component.ts - 459 + 462 删除文档时出错: + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 482 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 387 + + 确定重新 OCR + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 483 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 389 + + 此操作无法撤消。 + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 486 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 391 + + 继续操作 + + + Redo OCR operation will begin in the background. + + src/app/components/document-detail/document-detail.component.ts + 494 + + Redo OCR operation will begin in the background. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 505,507 + + Error executing operation: + Select: @@ -1933,7 +2073,7 @@ src/app/components/manage/settings/settings.component.html - 174 + 182 src/app/components/manage/tasks/tasks.component.html @@ -1957,14 +2097,6 @@ 下载原始文件 正在准备下载... - - Redo OCR - - src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 - - 重新 OCR - Error executing bulk operation: @@ -2139,18 +2271,6 @@ 此操作将永久删除 个选定的文档。 - - This operation cannot be undone. - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 364 - - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 389 - - 此操作无法撤消。 - Delete document(s) @@ -2159,14 +2279,6 @@ 删除文档 - - Redo OCR confirm - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 387 - - 确定重新 OCR - This operation will permanently redo OCR for selected document(s). @@ -2175,14 +2287,6 @@ 此操作将永久重新 OCR 个选定的文档。 - - Proceed - - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 391 - - 继续操作 - Filter by correspondent @@ -2491,7 +2595,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 180 + 176 视图保存成功。 @@ -2499,7 +2603,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 210 + 206 视图:创建成功。 @@ -2655,7 +2759,7 @@ src/app/components/manage/settings/settings.component.html - 169 + 177 在侧边栏显示 @@ -2667,7 +2771,7 @@ src/app/components/manage/settings/settings.component.html - 165 + 173 在仪表板上显示 @@ -3083,11 +3187,19 @@ 关闭时应用 + + Enable comments + + src/app/components/manage/settings/settings.component.html + 132 + + Enable comments + Notifications src/app/components/manage/settings/settings.component.html - 132 + 140 通知 @@ -3095,7 +3207,7 @@ Document processing src/app/components/manage/settings/settings.component.html - 135 + 143 文档处理 @@ -3103,7 +3215,7 @@ Show notifications when new documents are detected src/app/components/manage/settings/settings.component.html - 139 + 147 检测到新文档时显示通知 @@ -3111,7 +3223,7 @@ Show notifications when document processing completes successfully src/app/components/manage/settings/settings.component.html - 140 + 148 文件处理成功完成时显示通知 @@ -3119,7 +3231,7 @@ Show notifications when document processing fails src/app/components/manage/settings/settings.component.html - 141 + 149 文件处理失败时显示通知 @@ -3127,7 +3239,7 @@ Suppress notifications on dashboard src/app/components/manage/settings/settings.component.html - 142 + 150 禁用在仪表盘上的通知 @@ -3135,7 +3247,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/manage/settings/settings.component.html - 142 + 150 这将禁止仪表盘上所有有关文件处理状态的消息。 @@ -3143,7 +3255,7 @@ Appears on src/app/components/manage/settings/settings.component.html - 162 + 170 出现于 @@ -3151,7 +3263,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 179 + 187 未定义保存的视图。 @@ -3159,7 +3271,7 @@ Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 174 + 176 保存的视图已删除。 @@ -3167,7 +3279,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 247 + 253 设置已保存 @@ -3175,7 +3287,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 248 + 254 设置保存成功 @@ -3183,7 +3295,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 252 + 258 设置已成功保存。需要重新加载以应用某些更改。 @@ -3191,7 +3303,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 253 + 259 立即重载 @@ -3199,7 +3311,7 @@ An error occurred while saving settings. src/app/components/manage/settings/settings.component.ts - 263 + 269 保存设置时发生错误。 @@ -3207,7 +3319,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 271 + 277 使用系统语言 @@ -3215,7 +3327,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 278 + 284 使用显示语言的日期格式 @@ -3223,7 +3335,7 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 298,300 + 304,306 在服务器上存储设置时出错: @@ -3501,6 +3613,14 @@ 自动:自动学习匹配 + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + Unsaved Changes @@ -3509,11 +3629,11 @@ src/app/services/open-documents.service.ts - 111 + 116 src/app/services/open-documents.service.ts - 138 + 143 未保存的更改 @@ -3525,7 +3645,7 @@ src/app/services/open-documents.service.ts - 139 + 144 您有尚未保存的更改。 @@ -3681,7 +3801,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 113 + 118 您对此文档的修改未保存 @@ -3689,7 +3809,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 117 + 122 您确定要关闭此文档吗? @@ -3697,7 +3817,7 @@ Close document src/app/services/open-documents.service.ts - 119 + 124 关闭文档 @@ -3705,7 +3825,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 140 + 145 您确定要关闭所有文档吗? @@ -3713,7 +3833,7 @@ Close documents src/app/services/open-documents.service.ts - 142 + 147 关闭文档 diff --git a/src/locale/be_BY/LC_MESSAGES/django.po b/src/locale/be_BY/LC_MESSAGES/django.po index 810fec8bf..8c661bcb2 100644 --- a/src/locale/be_BY/LC_MESSAGES/django.po +++ b/src/locale/be_BY/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-07-29 20:44\n" "Last-Translator: \n" "Language-Team: Belarusian\n" "Language: be_BY\n" @@ -100,7 +100,7 @@ msgstr "тыпы дакументаў" #: documents/models.py:90 msgid "path" -msgstr "" +msgstr "шлях" #: documents/models.py:96 documents/models.py:124 msgid "storage path" diff --git a/src/locale/de_DE/LC_MESSAGES/django.po b/src/locale/de_DE/LC_MESSAGES/django.po index fa8efc9e1..e61bcb564 100644 --- a/src/locale/de_DE/LC_MESSAGES/django.po +++ b/src/locale/de_DE/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-18 16:55\n" +"PO-Revision-Date: 2022-09-04 11:44\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -402,7 +402,7 @@ msgstr "Paperless-ngx wird geladen..." #: documents/templates/index.html:79 msgid "Still here?! Hmm, something might be wrong." -msgstr "Du bist noch hier?! Hmm, da muss wohl etwas schief gelaufen sein." +msgstr "Du bist noch hier? Hmm, da muss wohl etwas schiefgelaufen sein." #: documents/templates/index.html:79 msgid "Here's a link to the docs." diff --git a/src/locale/fi_FI/LC_MESSAGES/django.po b/src/locale/fi_FI/LC_MESSAGES/django.po index ab274f8fa..8d817560e 100644 --- a/src/locale/fi_FI/LC_MESSAGES/django.po +++ b/src/locale/fi_FI/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-09-06 20:21\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -376,7 +376,7 @@ msgstr "suodatussäännöt" #: documents/models.py:521 msgid "started" -msgstr "" +msgstr "aloitettu" #: documents/serialisers.py:70 #, python-format @@ -638,11 +638,11 @@ msgstr "Prosessoi kaikki tiedostot, sisältäen \"inline\"-liitteet." #: paperless_mail/models.py:64 msgid "Delete" -msgstr "" +msgstr "Poista" #: paperless_mail/models.py:65 msgid "Move to specified folder" -msgstr "" +msgstr "Siirrä määritettyyn kansioon" #: paperless_mail/models.py:66 msgid "Mark as read, don't process read mails" @@ -650,117 +650,117 @@ msgstr "Merkitse luetuksi, älä prosessoi luettuja sähköposteja" #: paperless_mail/models.py:67 msgid "Flag the mail, don't process flagged mails" -msgstr "" +msgstr "Liputa sähköposti, älä käsittele liputettuja sähköposteja" #: paperless_mail/models.py:68 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "Merkitse viesti määrätyllä tagilla, älä käsittele tageja" #: paperless_mail/models.py:71 msgid "Use subject as title" -msgstr "" +msgstr "Käytä aihetta otsikkona" #: paperless_mail/models.py:72 msgid "Use attachment filename as title" -msgstr "" +msgstr "Käytä liitteen tiedostonimeä otsikkona" #: paperless_mail/models.py:75 msgid "Do not assign a correspondent" -msgstr "" +msgstr "Älä määritä yhteyshenkilöä" #: paperless_mail/models.py:76 msgid "Use mail address" -msgstr "" +msgstr "Käytä sähköpostiosoitetta" #: paperless_mail/models.py:77 msgid "Use name (or mail address if not available)" -msgstr "" +msgstr "Käytä nimeä (tai sähköpostiosoitetta, jos ei ole saatavilla)" #: paperless_mail/models.py:78 msgid "Use correspondent selected below" -msgstr "" +msgstr "Käytä alla valittua yhteyshenkilöä" #: paperless_mail/models.py:82 msgid "order" -msgstr "" +msgstr "järjestys" #: paperless_mail/models.py:88 msgid "account" -msgstr "" +msgstr "tili" #: paperless_mail/models.py:92 msgid "folder" -msgstr "" +msgstr "kansio" #: paperless_mail/models.py:96 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." -msgstr "" +msgstr "Alikansiot on erotettava erottimella, usein pisteellä ('.') tai kauttaviivalla ('/'), mutta se vaihtelee postipalvelimen mukaan." #: paperless_mail/models.py:102 msgid "filter from" -msgstr "" +msgstr "suodata lähettäjä-kenttä" #: paperless_mail/models.py:108 msgid "filter subject" -msgstr "" +msgstr "suodata aihe" #: paperless_mail/models.py:114 msgid "filter body" -msgstr "" +msgstr "suodata runko" #: paperless_mail/models.py:121 msgid "filter attachment filename" -msgstr "" +msgstr "suodata liitteen tiedostonimi" #: paperless_mail/models.py:126 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." -msgstr "" +msgstr "Tuo vain dokumentit jotka täsmäävät täysin tiedostonimen suhteen. Jokerimerkit kuten *.pdf tai *lasku* ovat sallittuja. Kirjainkoko ei merkitse." #: paperless_mail/models.py:133 msgid "maximum age" -msgstr "" +msgstr "ikä enintään" #: paperless_mail/models.py:135 msgid "Specified in days." -msgstr "" +msgstr "Määritetty päivinä." #: paperless_mail/models.py:139 msgid "attachment type" -msgstr "" +msgstr "liitteen tyyppi" #: paperless_mail/models.py:143 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." -msgstr "" +msgstr "Sisäiset liitteet sisältävät upotettuja kuvia, joten on parasta yhdistää tämä vaihtoehto tiedostonimen suodattimeen." #: paperless_mail/models.py:149 msgid "action" -msgstr "" +msgstr "toiminto" #: paperless_mail/models.py:155 msgid "action parameter" -msgstr "" +msgstr "toiminnon parametrit" #: paperless_mail/models.py:160 msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots." -msgstr "" +msgstr "Yllä valitun toiminnon lisäparametri eli siirrä hakemistoon -toiminnon kohdehakemisto. Alikansiot on erotettava toisistaan pisteillä." #: paperless_mail/models.py:168 msgid "assign title from" -msgstr "" +msgstr "aseta otsikko kohteesta" #: paperless_mail/models.py:176 msgid "assign this tag" -msgstr "" +msgstr "määritä tämä tunniste" #: paperless_mail/models.py:184 msgid "assign this document type" -msgstr "" +msgstr "määritä tämä asiakirjatyyppi" #: paperless_mail/models.py:188 msgid "assign correspondent from" -msgstr "" +msgstr "määritä kirjeenvaihtaja kohteesta" #: paperless_mail/models.py:198 msgid "assign this correspondent" -msgstr "" +msgstr "määritä tämä kirjeenvaihtaja" diff --git a/src/locale/fr_FR/LC_MESSAGES/django.po b/src/locale/fr_FR/LC_MESSAGES/django.po index 451a099a6..75b58e884 100644 --- a/src/locale/fr_FR/LC_MESSAGES/django.po +++ b/src/locale/fr_FR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-27 17:57\n" +"PO-Revision-Date: 2022-09-07 21:41\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -376,7 +376,7 @@ msgstr "règles de filtrage" #: documents/models.py:521 msgid "started" -msgstr "commencé" +msgstr "démarré" #: documents/serialisers.py:70 #, python-format @@ -394,7 +394,7 @@ msgstr "Type de fichier %(type)s non pris en charge" #: documents/serialisers.py:596 msgid "Invalid variable detected." -msgstr "Variable invalide détectée." +msgstr "Variable non valide détectée." #: documents/templates/index.html:78 msgid "Paperless-ngx is loading..." @@ -406,7 +406,7 @@ msgstr "Toujours ici ? Hum, quelque chose a dû mal se passer." #: documents/templates/index.html:79 msgid "Here's a link to the docs." -msgstr "Voici un lien vers la documentation." +msgstr "Lien vers la documentation." #: documents/templates/registration/logged_out.html:14 msgid "Paperless-ngx signed out" diff --git a/src/locale/it_IT/LC_MESSAGES/django.po b/src/locale/it_IT/LC_MESSAGES/django.po index a8bc4ae57..c827d96f0 100644 --- a/src/locale/it_IT/LC_MESSAGES/django.po +++ b/src/locale/it_IT/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-08-03 11:24\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -376,7 +376,7 @@ msgstr "regole filtro" #: documents/models.py:521 msgid "started" -msgstr "" +msgstr "avviato" #: documents/serialisers.py:70 #, python-format @@ -654,7 +654,7 @@ msgstr "Contrassegna la email, non elaborare le email elaborate." #: paperless_mail/models.py:68 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "Etichetta la posta con il tag specificato, non processare le email etichettate" #: paperless_mail/models.py:71 msgid "Use subject as title" diff --git a/src/locale/nl_NL/LC_MESSAGES/django.po b/src/locale/nl_NL/LC_MESSAGES/django.po index 6dad5d30a..00387a8e8 100644 --- a/src/locale/nl_NL/LC_MESSAGES/django.po +++ b/src/locale/nl_NL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-08-26 20:54\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -100,15 +100,15 @@ msgstr "documenttypen" #: documents/models.py:90 msgid "path" -msgstr "" +msgstr "pad" #: documents/models.py:96 documents/models.py:124 msgid "storage path" -msgstr "" +msgstr "opslag pad" #: documents/models.py:97 msgid "storage paths" -msgstr "" +msgstr "opslag paden" #: documents/models.py:105 msgid "Unencrypted" @@ -376,7 +376,7 @@ msgstr "filterregels" #: documents/models.py:521 msgid "started" -msgstr "" +msgstr "gestart" #: documents/serialisers.py:70 #, python-format @@ -394,7 +394,7 @@ msgstr "Bestandstype %(type)s niet ondersteund" #: documents/serialisers.py:596 msgid "Invalid variable detected." -msgstr "" +msgstr "Ongeldige variabele ontdekt." #: documents/templates/index.html:78 msgid "Paperless-ngx is loading..." @@ -402,7 +402,7 @@ msgstr "Paperless-ngx is aan het laden..." #: documents/templates/index.html:79 msgid "Still here?! Hmm, something might be wrong." -msgstr "" +msgstr "Nog steeds hier?! Hmm, er kan iets mis zijn." #: documents/templates/index.html:79 msgid "Here's a link to the docs." @@ -450,7 +450,7 @@ msgstr "Engels (US)" #: paperless/settings.py:340 msgid "Belarusian" -msgstr "" +msgstr "Wit-Russisch" #: paperless/settings.py:341 msgid "Czech" @@ -510,11 +510,11 @@ msgstr "Russisch" #: paperless/settings.py:355 msgid "Slovenian" -msgstr "" +msgstr "Sloveens" #: paperless/settings.py:356 msgid "Serbian" -msgstr "" +msgstr "Servisch" #: paperless/settings.py:357 msgid "Swedish" @@ -522,11 +522,11 @@ msgstr "Zweeds" #: paperless/settings.py:358 msgid "Turkish" -msgstr "" +msgstr "Turks" #: paperless/settings.py:359 msgid "Chinese Simplified" -msgstr "" +msgstr "Chinees (vereenvoudigd)" #: paperless/urls.py:161 msgid "Paperless-ngx administration" @@ -654,7 +654,7 @@ msgstr "Markeer de mail, verwerk geen mails met markering" #: paperless_mail/models.py:68 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "Tag de mail met de opgegeven tag, verwerk geen getagde mails" #: paperless_mail/models.py:71 msgid "Use subject as title" @@ -694,7 +694,7 @@ msgstr "map" #: paperless_mail/models.py:96 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." -msgstr "" +msgstr "Submappen moeten gescheiden worden door een scheidingsteken, vaak een punt ('.') of slash ('/'), maar het varieert per mailserver." #: paperless_mail/models.py:102 msgid "filter from" diff --git a/src/locale/no_NO/LC_MESSAGES/django.po b/src/locale/no_NO/LC_MESSAGES/django.po index 765290f10..d5a1a2b09 100644 --- a/src/locale/no_NO/LC_MESSAGES/django.po +++ b/src/locale/no_NO/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-08-03 08:59\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -220,7 +220,7 @@ msgstr "kritisk" #: documents/models.py:325 msgid "group" -msgstr "" +msgstr "gruppe" #: documents/models.py:327 msgid "message" @@ -228,11 +228,11 @@ msgstr "melding" #: documents/models.py:330 msgid "level" -msgstr "" +msgstr "nivå" #: documents/models.py:339 msgid "log" -msgstr "log" +msgstr "Logg" #: documents/models.py:340 msgid "logs" @@ -240,11 +240,11 @@ msgstr "logger" #: documents/models.py:350 documents/models.py:403 msgid "saved view" -msgstr "" +msgstr "lagret visning" #: documents/models.py:351 msgid "saved views" -msgstr "" +msgstr "lagrede visninger" #: documents/models.py:353 msgid "user" @@ -252,35 +252,35 @@ msgstr "bruker" #: documents/models.py:357 msgid "show on dashboard" -msgstr "" +msgstr "vis på dashbordet" #: documents/models.py:360 msgid "show in sidebar" -msgstr "" +msgstr "vis i sidestolpen" #: documents/models.py:364 msgid "sort field" -msgstr "" +msgstr "sorter felt" #: documents/models.py:369 msgid "sort reverse" -msgstr "" +msgstr "sorter på baksiden" #: documents/models.py:374 msgid "title contains" -msgstr "" +msgstr "tittelen inneholder" #: documents/models.py:375 msgid "content contains" -msgstr "" +msgstr "innholdet inneholder" #: documents/models.py:376 msgid "ASN is" -msgstr "" +msgstr "ASN er" #: documents/models.py:377 msgid "correspondent is" -msgstr "" +msgstr "tilsvarendet er" #: documents/models.py:378 msgid "document type is" @@ -288,15 +288,15 @@ msgstr "dokumenttype er" #: documents/models.py:379 msgid "is in inbox" -msgstr "" +msgstr "er i innboksen" #: documents/models.py:380 msgid "has tag" -msgstr "" +msgstr "har tagg" #: documents/models.py:381 msgid "has any tag" -msgstr "" +msgstr "har en tag" #: documents/models.py:382 msgid "created before" @@ -304,125 +304,125 @@ msgstr "opprettet før" #: documents/models.py:383 msgid "created after" -msgstr "" +msgstr "opprettet etter" #: documents/models.py:384 msgid "created year is" -msgstr "" +msgstr "opprettet år er" #: documents/models.py:385 msgid "created month is" -msgstr "" +msgstr "opprettet måned er" #: documents/models.py:386 msgid "created day is" -msgstr "" +msgstr "opprettet dag er" #: documents/models.py:387 msgid "added before" -msgstr "" +msgstr "lagt til før" #: documents/models.py:388 msgid "added after" -msgstr "" +msgstr "lagt til etter" #: documents/models.py:389 msgid "modified before" -msgstr "" +msgstr "endret før" #: documents/models.py:390 msgid "modified after" -msgstr "" +msgstr "endret etter" #: documents/models.py:391 msgid "does not have tag" -msgstr "" +msgstr "har ikke tagg" #: documents/models.py:392 msgid "does not have ASN" -msgstr "" +msgstr "har ikke ASN" #: documents/models.py:393 msgid "title or content contains" -msgstr "" +msgstr "tittel eller innhold inneholder" #: documents/models.py:394 msgid "fulltext query" -msgstr "" +msgstr "full tekst spørring" #: documents/models.py:395 msgid "more like this" -msgstr "" +msgstr "mer som dette" #: documents/models.py:396 msgid "has tags in" -msgstr "" +msgstr "har tags i" #: documents/models.py:406 msgid "rule type" -msgstr "" +msgstr "Type regel" #: documents/models.py:408 msgid "value" -msgstr "" +msgstr "verdi" #: documents/models.py:411 msgid "filter rule" -msgstr "" +msgstr "filtrer regel" #: documents/models.py:412 msgid "filter rules" -msgstr "" +msgstr "filtrer regler" #: documents/models.py:521 msgid "started" -msgstr "" +msgstr "startet" #: documents/serialisers.py:70 #, python-format msgid "Invalid regular expression: %(error)s" -msgstr "" +msgstr "Ugyldig regulært uttrykk: %(error)s" #: documents/serialisers.py:191 msgid "Invalid color." -msgstr "" +msgstr "Ugyldig farge." #: documents/serialisers.py:515 #, python-format msgid "File type %(type)s not supported" -msgstr "" +msgstr "Filtype %(type)s støttes ikke" #: documents/serialisers.py:596 msgid "Invalid variable detected." -msgstr "" +msgstr "Ugyldig variabel oppdaget." #: documents/templates/index.html:78 msgid "Paperless-ngx is loading..." -msgstr "" +msgstr "Paperless-ngx laster..." #: documents/templates/index.html:79 msgid "Still here?! Hmm, something might be wrong." -msgstr "" +msgstr "Fortsatt her?! Hmm, noe kan være galt." #: documents/templates/index.html:79 msgid "Here's a link to the docs." -msgstr "" +msgstr "Her er en lenke til dokkene." #: documents/templates/registration/logged_out.html:14 msgid "Paperless-ngx signed out" -msgstr "" +msgstr "Paperless-ngx logget ut" #: documents/templates/registration/logged_out.html:59 msgid "You have been successfully logged out. Bye!" -msgstr "" +msgstr "Du har blitt logget ut. Av!" #: documents/templates/registration/logged_out.html:60 msgid "Sign in again" -msgstr "" +msgstr "Logg inn igjen" #: documents/templates/registration/login.html:15 msgid "Paperless-ngx sign in" -msgstr "" +msgstr "Paperless-ngx-tegn inn" #: documents/templates/registration/login.html:61 msgid "Please sign in." @@ -450,63 +450,63 @@ msgstr "Engelsk (US)" #: paperless/settings.py:340 msgid "Belarusian" -msgstr "Belarusian" +msgstr "Hviterussisk" #: paperless/settings.py:341 msgid "Czech" -msgstr "Czech" +msgstr "Tsjekkisk" #: paperless/settings.py:342 msgid "Danish" -msgstr "Danish" +msgstr "Dansk" #: paperless/settings.py:343 msgid "German" -msgstr "German" +msgstr "Tysk" #: paperless/settings.py:344 msgid "English (GB)" -msgstr "English (GB)" +msgstr "Engelsk (GB)" #: paperless/settings.py:345 msgid "Spanish" -msgstr "Spanish" +msgstr "Spansk" #: paperless/settings.py:346 msgid "French" -msgstr "French" +msgstr "Fransk" #: paperless/settings.py:347 msgid "Italian" -msgstr "Italian" +msgstr "Italiensk" #: paperless/settings.py:348 msgid "Luxembourgish" -msgstr "Luxembourgish" +msgstr "Luxembourgsk" #: paperless/settings.py:349 msgid "Dutch" -msgstr "Dutch" +msgstr "Nederlandsk" #: paperless/settings.py:350 msgid "Polish" -msgstr "Polish" +msgstr "Polsk" #: paperless/settings.py:351 msgid "Portuguese (Brazil)" -msgstr "Portuguese (Brazil)" +msgstr "Portugisisk (Brasil)" #: paperless/settings.py:352 msgid "Portuguese" -msgstr "Portuguese" +msgstr "Portugisisk" #: paperless/settings.py:353 msgid "Romanian" -msgstr "Romanian" +msgstr "Rumensk" #: paperless/settings.py:354 msgid "Russian" -msgstr "Russian" +msgstr "Russisk" #: paperless/settings.py:355 msgid "Slovenian" @@ -514,19 +514,19 @@ msgstr "Slovenian" #: paperless/settings.py:356 msgid "Serbian" -msgstr "Serbian" +msgstr "Serbisk" #: paperless/settings.py:357 msgid "Swedish" -msgstr "Swedish" +msgstr "Svensk" #: paperless/settings.py:358 msgid "Turkish" -msgstr "Turkish" +msgstr "Tyrkisk" #: paperless/settings.py:359 msgid "Chinese Simplified" -msgstr "Chinese Simplified" +msgstr "Kinesisk forenklet" #: paperless/urls.py:161 msgid "Paperless-ngx administration" @@ -542,7 +542,7 @@ msgstr "Avanserte innstillinger" #: paperless_mail/admin.py:47 msgid "Filter" -msgstr "Filter" +msgstr "Filtrer" #: paperless_mail/admin.py:50 msgid "Paperless will only process mails that match ALL of the filters given below." @@ -554,19 +554,19 @@ msgstr "Handlinger" #: paperless_mail/admin.py:67 msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched." -msgstr "" +msgstr "Handlingen som brukes på e-posten. Denne handlingen blir bare utført når dokumenter blir forbrukt av e-posten. Mailer uten vedlegg forblir helt urørte." #: paperless_mail/admin.py:75 msgid "Metadata" -msgstr "Metadata" +msgstr "Nøkkeldata" #: paperless_mail/admin.py:78 msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined." -msgstr "" +msgstr "Tilordne metadata til dokumenter som brukes fra denne regelen automatisk. Hvis du ikke tilordner etiketter, typer eller korrespondenter her, vil papirløs fremdeles behandle alle matchende regler som du har definert." #: paperless_mail/apps.py:8 msgid "Paperless mail" -msgstr "" +msgstr "Paperløst e-post" #: paperless_mail/models.py:8 msgid "mail account" @@ -586,23 +586,23 @@ msgstr "Bruk SSL" #: paperless_mail/models.py:14 msgid "Use STARTTLS" -msgstr "" +msgstr "Bruk STARTTLS" #: paperless_mail/models.py:18 msgid "IMAP server" -msgstr "" +msgstr "IMAP tjener" #: paperless_mail/models.py:21 msgid "IMAP port" -msgstr "" +msgstr "IMAP port" #: paperless_mail/models.py:25 msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." -msgstr "" +msgstr "Dette er vanligvis 143 for ukrypterte og STARTTLS-tilkoblinger, og 993 for SSL-tilkoblinger." #: paperless_mail/models.py:31 msgid "IMAP security" -msgstr "" +msgstr "IMAP sikkerhet" #: paperless_mail/models.py:36 msgid "username" @@ -618,7 +618,7 @@ msgstr "tegnsett" #: paperless_mail/models.py:45 msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'." -msgstr "" +msgstr "Tegnet som skal brukes ved kommunikasjon med e-posttjeneren, som for eksempel 'UTF-8' eller 'US-ASCII'." #: paperless_mail/models.py:56 msgid "mail rule" @@ -626,141 +626,141 @@ msgstr "e-post regel" #: paperless_mail/models.py:57 msgid "mail rules" -msgstr "" +msgstr "Epost regler" #: paperless_mail/models.py:60 msgid "Only process attachments." -msgstr "" +msgstr "Bare behandle vedlegg." #: paperless_mail/models.py:61 msgid "Process all files, including 'inline' attachments." -msgstr "" +msgstr "Behandle alle filer, inkludert \"inline\"-vedlegg." #: paperless_mail/models.py:64 msgid "Delete" -msgstr "" +msgstr "Slett" #: paperless_mail/models.py:65 msgid "Move to specified folder" -msgstr "" +msgstr "Flytt til angitt mappe" #: paperless_mail/models.py:66 msgid "Mark as read, don't process read mails" -msgstr "" +msgstr "Merk som lest og ikke behandle e-post" #: paperless_mail/models.py:67 msgid "Flag the mail, don't process flagged mails" -msgstr "" +msgstr "Marker posten, ikke behandle flaggede meldinger" #: paperless_mail/models.py:68 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "Merk e-post med angitte tag, ikke bruk merkede meldinger" #: paperless_mail/models.py:71 msgid "Use subject as title" -msgstr "" +msgstr "Bruk emne som tittel" #: paperless_mail/models.py:72 msgid "Use attachment filename as title" -msgstr "" +msgstr "Bruk vedlagte filnavn som tittel" #: paperless_mail/models.py:75 msgid "Do not assign a correspondent" -msgstr "" +msgstr "Ikke tildel en korrespondent" #: paperless_mail/models.py:76 msgid "Use mail address" -msgstr "" +msgstr "Bruk e-postadresse" #: paperless_mail/models.py:77 msgid "Use name (or mail address if not available)" -msgstr "" +msgstr "Bruk navn (eller e-postadresse hvis det ikke er tilgjengelig)" #: paperless_mail/models.py:78 msgid "Use correspondent selected below" -msgstr "" +msgstr "Bruk tilsvarende valgt nedenfor" #: paperless_mail/models.py:82 msgid "order" -msgstr "" +msgstr "ordre" #: paperless_mail/models.py:88 msgid "account" -msgstr "" +msgstr "konto" #: paperless_mail/models.py:92 msgid "folder" -msgstr "" +msgstr "mappe" #: paperless_mail/models.py:96 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." -msgstr "" +msgstr "Undermapper må være atskilt av en skilletegn, ofte en punktum ('.') eller skråstrek ('/'), men den varierer fra e-postserver." #: paperless_mail/models.py:102 msgid "filter from" -msgstr "" +msgstr "filtrer fra" #: paperless_mail/models.py:108 msgid "filter subject" -msgstr "" +msgstr "filtrer emne" #: paperless_mail/models.py:114 msgid "filter body" -msgstr "" +msgstr "filtrer innhold" #: paperless_mail/models.py:121 msgid "filter attachment filename" -msgstr "" +msgstr "filtrer vedlagte filnavn" #: paperless_mail/models.py:126 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." -msgstr "" +msgstr "Bare bruke dokumenter som samsvarer med dette filnavnet hvis angitt. Jokertegn som *.pdf eller *faktura* er tillatt. Saksfortegnet." #: paperless_mail/models.py:133 msgid "maximum age" -msgstr "" +msgstr "maksimal alder" #: paperless_mail/models.py:135 msgid "Specified in days." -msgstr "" +msgstr "Spesifisert i dager" #: paperless_mail/models.py:139 msgid "attachment type" -msgstr "" +msgstr "vedlegg type" #: paperless_mail/models.py:143 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." -msgstr "" +msgstr "Innebygde vedlegg inkluderer innebygde bilder, så det er best å kombinere dette alternativet med et filter." #: paperless_mail/models.py:149 msgid "action" -msgstr "" +msgstr "handling" #: paperless_mail/models.py:155 msgid "action parameter" -msgstr "" +msgstr "parameter for handling" #: paperless_mail/models.py:160 msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots." -msgstr "" +msgstr "Ytterligere parameter for handlingen valgt ovenfor, dvs. målmappen for flytting til mappehandling. Undermapper må separeres med punkter." #: paperless_mail/models.py:168 msgid "assign title from" -msgstr "" +msgstr "tilordne tittel fra" #: paperless_mail/models.py:176 msgid "assign this tag" -msgstr "" +msgstr "tilordne denne taggen" #: paperless_mail/models.py:184 msgid "assign this document type" -msgstr "" +msgstr "tilordne denne dokumenttypen" #: paperless_mail/models.py:188 msgid "assign correspondent from" -msgstr "" +msgstr "Tildel korrespondent fra" #: paperless_mail/models.py:198 msgid "assign this correspondent" -msgstr "" +msgstr "Tildel denne korrespondenten" diff --git a/src/locale/pl_PL/LC_MESSAGES/django.po b/src/locale/pl_PL/LC_MESSAGES/django.po index 7109c1e60..29ca75596 100644 --- a/src/locale/pl_PL/LC_MESSAGES/django.po +++ b/src/locale/pl_PL/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-08-17 11:20\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -376,7 +376,7 @@ msgstr "reguły filtrowania" #: documents/models.py:521 msgid "started" -msgstr "" +msgstr "start" #: documents/serialisers.py:70 #, python-format @@ -654,7 +654,7 @@ msgstr "Oznacz wiadomość, nie przetwarzaj oznaczonych wiadomości" #: paperless_mail/models.py:68 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "Oznacz pocztę z podanym tagiem, nie przetwarzaj otagowanych wiadomości" #: paperless_mail/models.py:71 msgid "Use subject as title" diff --git a/src/locale/ru_RU/LC_MESSAGES/django.po b/src/locale/ru_RU/LC_MESSAGES/django.po index 10cbd0241..d5b200971 100644 --- a/src/locale/ru_RU/LC_MESSAGES/django.po +++ b/src/locale/ru_RU/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-08-03 16:12\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -100,15 +100,15 @@ msgstr "типы документов" #: documents/models.py:90 msgid "path" -msgstr "" +msgstr "путь" #: documents/models.py:96 documents/models.py:124 msgid "storage path" -msgstr "" +msgstr "путь к хранилищу" #: documents/models.py:97 msgid "storage paths" -msgstr "" +msgstr "пути хранения" #: documents/models.py:105 msgid "Unencrypted" @@ -376,7 +376,7 @@ msgstr "правила фильтрации" #: documents/models.py:521 msgid "started" -msgstr "" +msgstr "запущено" #: documents/serialisers.py:70 #, python-format @@ -394,7 +394,7 @@ msgstr "Тип файла %(type)s не поддерживается" #: documents/serialisers.py:596 msgid "Invalid variable detected." -msgstr "" +msgstr "Обнаружена неверная переменная." #: documents/templates/index.html:78 msgid "Paperless-ngx is loading..." @@ -402,11 +402,11 @@ msgstr "Paperless-ngx загружается..." #: documents/templates/index.html:79 msgid "Still here?! Hmm, something might be wrong." -msgstr "" +msgstr "Все еще здесь?! Хмм, возможно что-то не так." #: documents/templates/index.html:79 msgid "Here's a link to the docs." -msgstr "" +msgstr "Вот ссылка на документацию." #: documents/templates/registration/logged_out.html:14 msgid "Paperless-ngx signed out" @@ -450,7 +450,7 @@ msgstr "Английский (США)" #: paperless/settings.py:340 msgid "Belarusian" -msgstr "" +msgstr "Белорусский" #: paperless/settings.py:341 msgid "Czech" @@ -510,11 +510,11 @@ msgstr "Русский" #: paperless/settings.py:355 msgid "Slovenian" -msgstr "" +msgstr "Словенский" #: paperless/settings.py:356 msgid "Serbian" -msgstr "" +msgstr "Сербский" #: paperless/settings.py:357 msgid "Swedish" @@ -522,11 +522,11 @@ msgstr "Шведский" #: paperless/settings.py:358 msgid "Turkish" -msgstr "" +msgstr "Турецкий" #: paperless/settings.py:359 msgid "Chinese Simplified" -msgstr "" +msgstr "Китайский упрощенный" #: paperless/urls.py:161 msgid "Paperless-ngx administration" @@ -654,7 +654,7 @@ msgstr "Пометить почту, не обрабатывать помече #: paperless_mail/models.py:68 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "Отметить почту указанным тегом, не обрабатывать помеченные письма" #: paperless_mail/models.py:71 msgid "Use subject as title" @@ -694,7 +694,7 @@ msgstr "каталог" #: paperless_mail/models.py:96 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." -msgstr "" +msgstr "Подпапки должны быть отделены разделителем, часто точкой ('.') или косой чертой ('/'), но это зависит от почтового сервера." #: paperless_mail/models.py:102 msgid "filter from" diff --git a/src/locale/sl_SI/LC_MESSAGES/django.po b/src/locale/sl_SI/LC_MESSAGES/django.po index 356162d3c..f1e408407 100644 --- a/src/locale/sl_SI/LC_MESSAGES/django.po +++ b/src/locale/sl_SI/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-08-25 12:46\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -100,15 +100,15 @@ msgstr "vrste dokumentov" #: documents/models.py:90 msgid "path" -msgstr "" +msgstr "pot" #: documents/models.py:96 documents/models.py:124 msgid "storage path" -msgstr "" +msgstr "pot do shrambe" #: documents/models.py:97 msgid "storage paths" -msgstr "" +msgstr "poti do shrambe" #: documents/models.py:105 msgid "Unencrypted" @@ -376,7 +376,7 @@ msgstr "filtriraj pravila" #: documents/models.py:521 msgid "started" -msgstr "" +msgstr "zagnano" #: documents/serialisers.py:70 #, python-format @@ -394,7 +394,7 @@ msgstr "Vrsta datoteke %(type)s ni podprta" #: documents/serialisers.py:596 msgid "Invalid variable detected." -msgstr "" +msgstr "Zaznani neveljavni znaki." #: documents/templates/index.html:78 msgid "Paperless-ngx is loading..." @@ -402,11 +402,11 @@ msgstr "Paperless-ngx se nalaga..." #: documents/templates/index.html:79 msgid "Still here?! Hmm, something might be wrong." -msgstr "" +msgstr "Še vedno tam? Hmm, kot kaže je šlo nekaj narobe." #: documents/templates/index.html:79 msgid "Here's a link to the docs." -msgstr "" +msgstr "Tu je povezava do dokumentacije." #: documents/templates/registration/logged_out.html:14 msgid "Paperless-ngx signed out" @@ -450,7 +450,7 @@ msgstr "Angleščina (ZDA)" #: paperless/settings.py:340 msgid "Belarusian" -msgstr "" +msgstr "Beloruščina" #: paperless/settings.py:341 msgid "Czech" @@ -510,11 +510,11 @@ msgstr "Ruščina" #: paperless/settings.py:355 msgid "Slovenian" -msgstr "" +msgstr "Slovenščina" #: paperless/settings.py:356 msgid "Serbian" -msgstr "" +msgstr "Srbščina" #: paperless/settings.py:357 msgid "Swedish" @@ -522,11 +522,11 @@ msgstr "Švedščina" #: paperless/settings.py:358 msgid "Turkish" -msgstr "" +msgstr "Turščina" #: paperless/settings.py:359 msgid "Chinese Simplified" -msgstr "" +msgstr "Poenostavljena kitajščina" #: paperless/urls.py:161 msgid "Paperless-ngx administration" @@ -654,7 +654,7 @@ msgstr "Označite pošto z zastavico, ne obdelujte označene pošte" #: paperless_mail/models.py:68 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "Označi pošto s določeno oznako, ne procesiraj označene pošte" #: paperless_mail/models.py:71 msgid "Use subject as title" @@ -694,7 +694,7 @@ msgstr "mapa" #: paperless_mail/models.py:96 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." -msgstr "" +msgstr "Podmape morajo biti ločene s znakom, običajno je to pika (.) ali slash ('/'), je pa odvisno od poštnega strežnika." #: paperless_mail/models.py:102 msgid "filter from" diff --git a/src/locale/sr_CS/LC_MESSAGES/django.po b/src/locale/sr_CS/LC_MESSAGES/django.po index de65708f0..ca01c8d1e 100644 --- a/src/locale/sr_CS/LC_MESSAGES/django.po +++ b/src/locale/sr_CS/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-08 22:07\n" +"PO-Revision-Date: 2022-08-04 23:55\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -60,15 +60,15 @@ msgstr "algoritam podudaranja" #: documents/models.py:47 msgid "is insensitive" -msgstr "" +msgstr "bez razlike veliko/malo slovo" #: documents/models.py:60 documents/models.py:115 msgid "correspondent" -msgstr "dopisnik" +msgstr "korespodent" #: documents/models.py:61 msgid "correspondents" -msgstr "dopisnici" +msgstr "korespodenti" #: documents/models.py:66 msgid "color" @@ -80,7 +80,7 @@ msgstr "je oznaka prijemnog sandučeta" #: documents/models.py:72 msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags." -msgstr "" +msgstr "Označava ovu oznaku kao oznaku prijemnog sandučeta (inbox): Svi novoobrađeni dokumenti će biti označeni oznakama prijemnog sandučeta (inbox)." #: documents/models.py:78 msgid "tag" @@ -100,23 +100,23 @@ msgstr "tipovi dokumenta" #: documents/models.py:90 msgid "path" -msgstr "" +msgstr "putanja" #: documents/models.py:96 documents/models.py:124 msgid "storage path" -msgstr "" +msgstr "putanja skladišta" #: documents/models.py:97 msgid "storage paths" -msgstr "" +msgstr "putanja skladišta" #: documents/models.py:105 msgid "Unencrypted" -msgstr "" +msgstr "Nešifrovano" #: documents/models.py:106 msgid "Encrypted with GNU Privacy Guard" -msgstr "" +msgstr "Šifrovano pomoću GNU Privacy Guard" #: documents/models.py:127 msgid "title" @@ -128,7 +128,7 @@ msgstr "sadržaj" #: documents/models.py:142 msgid "The raw, text-only data of the document. This field is primarily used for searching." -msgstr "" +msgstr "Neobrađeni tekstualni podaci dokumenta. Ovo se polje koristi prvenstveno za pretraživanje." #: documents/models.py:147 msgid "mime type" @@ -172,7 +172,7 @@ msgstr "naziv fajla" #: documents/models.py:204 msgid "Current filename in storage" -msgstr "" +msgstr "Trenutni naziv sačuvane datoteke" #: documents/models.py:208 msgid "archive filename" @@ -180,7 +180,7 @@ msgstr "naziv fajla arhive" #: documents/models.py:214 msgid "Current archive filename in storage" -msgstr "" +msgstr "Trenutni naziv arhivirane sačuvane datoteke" #: documents/models.py:218 msgid "archive serial number" @@ -188,7 +188,7 @@ msgstr "arhivski serijski broj" #: documents/models.py:224 msgid "The position of this document in your physical document archive." -msgstr "" +msgstr "Položaj ovog dokumenta u vašoj fizičkoj arhivi dokumenata." #: documents/models.py:230 msgid "document" @@ -264,7 +264,7 @@ msgstr "polje za sortiranje" #: documents/models.py:369 msgid "sort reverse" -msgstr "" +msgstr "obrnuto sortiranje" #: documents/models.py:374 msgid "title contains" @@ -280,7 +280,7 @@ msgstr "ASN je" #: documents/models.py:377 msgid "correspondent is" -msgstr "dopisnik je" +msgstr "korespodent je" #: documents/models.py:378 msgid "document type is" @@ -348,7 +348,7 @@ msgstr "naslov i sadržaj sadrži" #: documents/models.py:394 msgid "fulltext query" -msgstr "" +msgstr "upit za ceo tekst" #: documents/models.py:395 msgid "more like this" @@ -376,12 +376,12 @@ msgstr "filter pravila" #: documents/models.py:521 msgid "started" -msgstr "" +msgstr "pokrenuto" #: documents/serialisers.py:70 #, python-format msgid "Invalid regular expression: %(error)s" -msgstr "" +msgstr "Nevažeći regularni izraz: %(error)s" #: documents/serialisers.py:191 msgid "Invalid color." @@ -390,11 +390,11 @@ msgstr "Nevažeća boja." #: documents/serialisers.py:515 #, python-format msgid "File type %(type)s not supported" -msgstr "" +msgstr "Vrsta datoteke %(type)s nije podržana" #: documents/serialisers.py:596 msgid "Invalid variable detected." -msgstr "" +msgstr "Otkrivena je nevažeća promenljiva." #: documents/templates/index.html:78 msgid "Paperless-ngx is loading..." @@ -402,19 +402,19 @@ msgstr "Paperless-ngx se učitava..." #: documents/templates/index.html:79 msgid "Still here?! Hmm, something might be wrong." -msgstr "" +msgstr "Još uvek si ovde?! Hmm, možda nešto nije u redu." #: documents/templates/index.html:79 msgid "Here's a link to the docs." -msgstr "" +msgstr "Veze ka dokumentima." #: documents/templates/registration/logged_out.html:14 msgid "Paperless-ngx signed out" -msgstr "" +msgstr "Paperless-ngx odjavljen" #: documents/templates/registration/logged_out.html:59 msgid "You have been successfully logged out. Bye!" -msgstr "" +msgstr "Uspešno ste se odjavili!" #: documents/templates/registration/logged_out.html:60 msgid "Sign in again" @@ -422,7 +422,7 @@ msgstr "Prijavitе sе ponovo" #: documents/templates/registration/login.html:15 msgid "Paperless-ngx sign in" -msgstr "" +msgstr "Paperless-ngx prijava" #: documents/templates/registration/login.html:61 msgid "Please sign in." @@ -430,7 +430,7 @@ msgstr "Prijavite se." #: documents/templates/registration/login.html:64 msgid "Your username and password didn't match. Please try again." -msgstr "" +msgstr "Vaše korisničko ime i lozinka ne odgovaraju. Molimo pokušajte ponovo." #: documents/templates/registration/login.html:67 msgid "Username" @@ -450,7 +450,7 @@ msgstr "Engleski (US)" #: paperless/settings.py:340 msgid "Belarusian" -msgstr "" +msgstr "Beloruski" #: paperless/settings.py:341 msgid "Czech" @@ -510,11 +510,11 @@ msgstr "Ruski" #: paperless/settings.py:355 msgid "Slovenian" -msgstr "" +msgstr "Slovenački" #: paperless/settings.py:356 msgid "Serbian" -msgstr "" +msgstr "Srpski" #: paperless/settings.py:357 msgid "Swedish" @@ -522,11 +522,11 @@ msgstr "Švedski" #: paperless/settings.py:358 msgid "Turkish" -msgstr "" +msgstr "Turski" #: paperless/settings.py:359 msgid "Chinese Simplified" -msgstr "" +msgstr "Kineski pojednostavljen" #: paperless/urls.py:161 msgid "Paperless-ngx administration" @@ -534,7 +534,7 @@ msgstr "Paperless-ngx administracija" #: paperless_mail/admin.py:29 msgid "Authentication" -msgstr "" +msgstr "Autentifikacija" #: paperless_mail/admin.py:30 msgid "Advanced settings" @@ -546,7 +546,7 @@ msgstr "Filter" #: paperless_mail/admin.py:50 msgid "Paperless will only process mails that match ALL of the filters given below." -msgstr "" +msgstr "Paperless-ngx će obrađivati samo e-poštu koja odgovara SVIM filterima navedenim u nastavku." #: paperless_mail/admin.py:64 msgid "Actions" @@ -554,7 +554,7 @@ msgstr "Radnje" #: paperless_mail/admin.py:67 msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched." -msgstr "" +msgstr "Akcija se odnosi na e-poštu. Ova se radnja izvodi samo ako su dokumenti konzumirani iz e-pošte. E-pošta bez priloga ostat će u potpunosti netaknuta." #: paperless_mail/admin.py:75 msgid "Metadata" @@ -562,7 +562,7 @@ msgstr "Metapodaci" #: paperless_mail/admin.py:78 msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined." -msgstr "" +msgstr "Automatski dodelite metapodatke dokumentima koji se koriste iz ovog pravila. Ako ne dodelite oznaku, vrstu ili korespodenta, Paperless-ngx će i dalje obraditi sva pravila podudaranja koja ste definisali." #: paperless_mail/apps.py:8 msgid "Paperless mail" @@ -578,7 +578,7 @@ msgstr "mejl nalozi" #: paperless_mail/models.py:12 msgid "No encryption" -msgstr "" +msgstr "Nema enkripcije" #: paperless_mail/models.py:13 msgid "Use SSL" @@ -598,7 +598,7 @@ msgstr "IMAP port" #: paperless_mail/models.py:25 msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." -msgstr "" +msgstr "Uobičajno 143 za nešifrovane i STARTTLS veze, a 993 za SSL veze." #: paperless_mail/models.py:31 msgid "IMAP security" @@ -618,23 +618,23 @@ msgstr "karakter set" #: paperless_mail/models.py:45 msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'." -msgstr "" +msgstr "Skup znakova koji se koristi pri komunikaciji sa mejl serverom, poput 'UTF-8' ili 'US-ASCII'." #: paperless_mail/models.py:56 msgid "mail rule" -msgstr "" +msgstr "pravilo e-pošte" #: paperless_mail/models.py:57 msgid "mail rules" -msgstr "" +msgstr "pravila e-pošte" #: paperless_mail/models.py:60 msgid "Only process attachments." -msgstr "" +msgstr "Obradi samo priloge." #: paperless_mail/models.py:61 msgid "Process all files, including 'inline' attachments." -msgstr "" +msgstr "Obradite sve datoteke, uključujući \"umetnute\" priloge." #: paperless_mail/models.py:64 msgid "Delete" @@ -642,31 +642,31 @@ msgstr "Obriši" #: paperless_mail/models.py:65 msgid "Move to specified folder" -msgstr "" +msgstr "Premesti u određen folder" #: paperless_mail/models.py:66 msgid "Mark as read, don't process read mails" -msgstr "" +msgstr "Označi kao pročitano. Ne obrađuj pročitanu e-poštu" #: paperless_mail/models.py:67 msgid "Flag the mail, don't process flagged mails" -msgstr "" +msgstr "Označi poštu zastavicom. Ne obrađuj e-poštu sa zastavicom" #: paperless_mail/models.py:68 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "Označite poštu specifičnom oznakom. Ne obrađuj e-poštu s specifičnom oznakom" #: paperless_mail/models.py:71 msgid "Use subject as title" -msgstr "" +msgstr "Koristi predmet kao naziv" #: paperless_mail/models.py:72 msgid "Use attachment filename as title" -msgstr "" +msgstr "Koristi naziv datoteke priloga kao naziv" #: paperless_mail/models.py:75 msgid "Do not assign a correspondent" -msgstr "Ne dodeljuj dopisnika" +msgstr "Ne dodeljuj korespodenta" #: paperless_mail/models.py:76 msgid "Use mail address" @@ -678,7 +678,7 @@ msgstr "Koristi naziv (ili mejl adresu ako nije dostupno)" #: paperless_mail/models.py:78 msgid "Use correspondent selected below" -msgstr "Koristi dopisnika ispod" +msgstr "Koristi koreespodenta ispod" #: paperless_mail/models.py:82 msgid "order" @@ -694,7 +694,7 @@ msgstr "folder" #: paperless_mail/models.py:96 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." -msgstr "" +msgstr "Podfolderi moraju biti odvojeni separatorom, često tačkom ('.') ili kosom crtom ('/'), ali to se razlikuje zavisno od servera e-pošte." #: paperless_mail/models.py:102 msgid "filter from" @@ -714,15 +714,15 @@ msgstr "filter naziv fajla priloga" #: paperless_mail/models.py:126 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." -msgstr "" +msgstr "Konzumirajte samo dokumente koji u potpunosti odgovaraju ovom nazivu datoteke ako je navedeno. Dopušteni su zamenski znakovi kao što su *.pdf ili *faktura*. Neosetljivo je na mala i mala slova." #: paperless_mail/models.py:133 msgid "maximum age" -msgstr "" +msgstr "maksimalna starost" #: paperless_mail/models.py:135 msgid "Specified in days." -msgstr "" +msgstr "Navedeno u danima." #: paperless_mail/models.py:139 msgid "attachment type" @@ -730,7 +730,7 @@ msgstr "tip priloga" #: paperless_mail/models.py:143 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." -msgstr "" +msgstr "Ugrađeni prilozi uključuju ugrađene slike, pa je najbolje kombinovati ovu opciju s filterom naziva datoteke." #: paperless_mail/models.py:149 msgid "action" @@ -738,11 +738,11 @@ msgstr "radnja" #: paperless_mail/models.py:155 msgid "action parameter" -msgstr "" +msgstr "parametar akcije" #: paperless_mail/models.py:160 msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots." -msgstr "" +msgstr "Dodatni parametar za gore odabranu akciju, tj. ciljani folder za premeštanje u folder akcije. Podfolderi moraju biti odvojeni tačkama." #: paperless_mail/models.py:168 msgid "assign title from" @@ -758,9 +758,9 @@ msgstr "dodeli ovaj tip dokumenta" #: paperless_mail/models.py:188 msgid "assign correspondent from" -msgstr "dodeli dopisnika iz" +msgstr "dodeli korespodenta iz" #: paperless_mail/models.py:198 msgid "assign this correspondent" -msgstr "dodeli ovog dopisnika" +msgstr "dodeli ovog korspodenta" diff --git a/src/locale/tr_TR/LC_MESSAGES/django.po b/src/locale/tr_TR/LC_MESSAGES/django.po index edc4177fe..78b4d6f70 100644 --- a/src/locale/tr_TR/LC_MESSAGES/django.po +++ b/src/locale/tr_TR/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-08 14:11-0700\n" -"PO-Revision-Date: 2022-07-28 11:11\n" +"PO-Revision-Date: 2022-08-01 19:02\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" From b0d842a370f468b548cf2d14a3366a0dfd4ae3ea Mon Sep 17 00:00:00 2001 From: Trenton Holmes Date: Sun, 11 Sep 2022 15:34:10 -0700 Subject: [PATCH 207/348] Updates version string to 1.9.0-rc1 Signed-off-by: Trenton Holmes --- src-ui/src/environments/environment.prod.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-ui/src/environments/environment.prod.ts b/src-ui/src/environments/environment.prod.ts index 5ccd48d07..f85aa63a4 100644 --- a/src-ui/src/environments/environment.prod.ts +++ b/src-ui/src/environments/environment.prod.ts @@ -5,7 +5,7 @@ export const environment = { apiBaseUrl: document.baseURI + 'api/', apiVersion: '2', appTitle: 'Paperless-ngx', - version: '1.8.1-dev', + version: '1.9.0-rc1', webSocketHost: window.location.host, webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:', webSocketBaseUrl: base_url.pathname + 'ws/', From 4a9dc1e33a0af3dc41e566c620c864303bc40275 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 11 Sep 2022 20:47:47 -0700 Subject: [PATCH 208/348] Update messages.xlf --- src-ui/messages.xlf | 66 ++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index 3080e8b84..9827bda41 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -816,7 +816,7 @@ src/app/components/document-detail/document-detail.component.html - 184 + 185 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1015,16 +1015,12 @@ 13 - - Add item - - src/app/components/common/input/select/select.component.html - 11 - - Used for both types, correspondents, storage paths - Suggestions: + + src/app/components/common/input/date/date.component.html + 16 + src/app/components/common/input/select/select.component.html 30 @@ -1034,6 +1030,14 @@ 42 + + Add item + + src/app/components/common/input/select/select.component.html + 11 + + Used for both types, correspondents, storage paths + Add tag @@ -1498,7 +1502,7 @@ Correspondent src/app/components/document-detail/document-detail.component.html - 78 + 79 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1521,7 +1525,7 @@ Document type src/app/components/document-detail/document-detail.component.html - 80 + 81 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1544,7 +1548,7 @@ Storage path src/app/components/document-detail/document-detail.component.html - 82 + 83 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1563,21 +1567,21 @@ Default src/app/components/document-detail/document-detail.component.html - 83 + 84 Content src/app/components/document-detail/document-detail.component.html - 90 + 91 Metadata src/app/components/document-detail/document-detail.component.html - 99 + 100 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -1588,95 +1592,95 @@ Date modified src/app/components/document-detail/document-detail.component.html - 105 + 106 Date added src/app/components/document-detail/document-detail.component.html - 109 + 110 Media filename src/app/components/document-detail/document-detail.component.html - 113 + 114 Original filename src/app/components/document-detail/document-detail.component.html - 117 + 118 Original MD5 checksum src/app/components/document-detail/document-detail.component.html - 121 + 122 Original file size src/app/components/document-detail/document-detail.component.html - 125 + 126 Original mime type src/app/components/document-detail/document-detail.component.html - 129 + 130 Archive MD5 checksum src/app/components/document-detail/document-detail.component.html - 133 + 134 Archive file size src/app/components/document-detail/document-detail.component.html - 137 + 138 Original document metadata src/app/components/document-detail/document-detail.component.html - 143 + 144 Archived document metadata src/app/components/document-detail/document-detail.component.html - 144 + 145 Enter Password src/app/components/document-detail/document-detail.component.html - 166 + 167 src/app/components/document-detail/document-detail.component.html - 202 + 203 Comments src/app/components/document-detail/document-detail.component.html - 173 + 174 src/app/components/manage/settings/settings.component.html @@ -1687,14 +1691,14 @@ Discard src/app/components/document-detail/document-detail.component.html - 182 + 183 Save & next src/app/components/document-detail/document-detail.component.html - 183 + 184 From 8fa7bc3dab6478f238e35f310672c75dab99d529 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 12 Sep 2022 08:35:04 -0700 Subject: [PATCH 209/348] Remove user dropdown border --- src-ui/src/app/components/app-frame/app-frame.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-ui/src/app/components/app-frame/app-frame.component.html b/src-ui/src/app/components/app-frame/app-frame.component.html index 4db6825b3..5a68a3cda 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.html +++ b/src-ui/src/app/components/app-frame/app-frame.component.html @@ -21,7 +21,7 @@