Compare commits

..

299 Commits

Author SHA1 Message Date
Trenton H
8967f07c8d Fixes a missing option for OCR mode and incorrect clean mode 2022-09-26 11:05:19 -07:00
shamoon
6e21d3dbee Merge pull request #1646 from paperless-ngx/fix/reset-button-padding
Fix reset button padding on small screens
2022-09-26 11:03:52 -07:00
Michael Shamoon
45b3422506 Fix reset button padding on small screens 2022-09-26 10:55:22 -07:00
Trenton H
df7e4d85c6 Fixes the linting issue 2022-09-26 09:15:22 -07:00
janis-ax
ae736f8f68 Update docs/advanced_usage.rst
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-09-26 09:06:36 -07:00
janis-ax
e2674c29a6 Improve docs with exampe
Filename ending comes automatically
2022-09-26 09:06:36 -07:00
shamoon
58afac2312 Merge pull request #1639 from paperless-ngx/v1.9.0-changelog
[Documentation] Add v1.9.0 changelog
2022-09-26 08:49:43 -07:00
Trenton H
ea60b83336 Fixes missing markdown text from a PR title 2022-09-26 08:44:42 -07:00
github-actions
09139fe434 Changelog - GHA 2022-09-26 15:24:50 +00:00
Michael Shamoon
7d4ce40a37 v1.9.0 2022-09-26 07:54:10 -07:00
shamoon
8feada6907 Merge pull request #1560 from paperless-ngx/beta
[Beta] Paperless-ngx v1.9.0 Release Candidate
2022-09-26 07:53:16 -07:00
Paperless-ngx Translation Bot [bot]
ed9b0c32d8 New Crowdin updates (#1633)
* bugfix: increase delay

partially reverts 86358d5561
re-implements 4fbabe43ea

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
Co-authored-by: Florian Brandes <florian.brandes@posteo.de>
2022-09-26 07:52:44 -07:00
lemmi
27906df149 paperless_cmd.sh: use exec to run supervisord
Without exec, signals aren't passed through properly. Stopping the
container won't have any effect unless killed.

closes #1616
2022-09-20 07:23:04 -07:00
Paperless-ngx Translation Bot [bot]
b8e7f0b45f New Crowdin updates (#1607)
* bugfix: increase delay

partially reverts 86358d5561
re-implements 4fbabe43ea

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>

* New translations messages.xlf (Finnish) [ci skip]

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
Co-authored-by: Florian Brandes <florian.brandes@posteo.de>
2022-09-16 15:45:17 -07:00
Trenton H
355b3fcb3d Fixes grammar in comment
Co-authored-by: Florian <florian.brandes@posteo.de>
2022-09-16 09:08:16 -07:00
Trenton Holmes
7aa0e5650b Updates how barcodes are detected, using pikepdf images, instead of converting each page to an image 2022-09-16 09:08:16 -07:00
Paperless-ngx Translation Bot [bot]
f9a0adc64e New Crowdin updates (#1580)
* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]
2022-09-16 08:37:07 -07:00
shamoon
3b34aed64f Merge pull request #1605 from paperless-ngx/fix/1599-consume-permissions
Fix: Consume directory permissions were not updated
2022-09-16 08:31:41 -07:00
Trenton H
3a7cbd3a42 Fixes an issue where the consume directory wasn't included in the permissions fix at Docker entry 2022-09-16 07:52:33 -07:00
Trenton H
0e443ba017 Merge pull request #1596 from paperless-ngx/fix/1590-barcodes
Fix: Double barcode separation creates empty file
2022-09-15 14:18:01 -07:00
shamoon
8ed401aec1 Merge pull request #1591 from paperless-ngx/fix/1583-tika-str
Fix: Parsing Tika documents fails with AttributeError
2022-09-14 21:52:49 -07:00
Trenton Holmes
9ae847039b Fixes the seperation of files by barcode, during the case where 2 barcodes appear back to back 2022-09-14 14:00:37 -07:00
Trenton Holmes
d4cb84ff76 Ensure the tika parse function gets a string, not a PathLike 2022-09-14 07:48:12 -07:00
shamoon
17ae2aacbf Merge pull request #1576 from paperless-ngx/fix/slow-classifier
Fix: Resolve issue with slow classifier
2022-09-13 11:57:58 -07:00
Michael Shamoon
82d03f2dc6 fix tag list vertical space 2022-09-13 11:54:25 -07:00
Trenton Holmes
3cf2aaf8ff Locks numpy version until an upstream fix or resolution to aarch64 classifier slowdown 2022-09-13 10:33:07 -07:00
shamoon
0c89721133 Merge pull request #1567 from paperless-ngx/feature-process-names
Feature: Display django-q process names
2022-09-12 12:21:49 -07:00
Trenton H
e206687070 Updates django-q and add optional setproctitle to allow display 2022-09-12 12:18:41 -07:00
Trenton Holmes
cdb9c48545 Minor logging updates 2022-09-12 11:44:33 -07:00
Trenton Holmes
0b8eff9643 Extends the cleanup of image versions to the library images and all the registry cache images as well 2022-09-12 11:44:33 -07:00
shamoon
16882b8fa9 Merge pull request #1566 from paperless-ngx/fix/issue-1564
Fix document comments not updating on document navigation
2022-09-12 11:37:30 -07:00
Michael Shamoon
2afa5940e3 Fix live updating of comments on doc change 2022-09-12 08:35:13 -07:00
Michael Shamoon
8fa7bc3dab Remove user dropdown border 2022-09-12 08:35:04 -07:00
Michael Shamoon
4a9dc1e33a Update messages.xlf 2022-09-11 20:47:47 -07:00
Trenton Holmes
b0d842a370 Updates version string to 1.9.0-rc1
Signed-off-by: Trenton Holmes <holmes.trenton@gmail.com>
2022-09-11 15:34:10 -07:00
Trenton Holmes
194dda6d84 Merge branch 'main' into beta 2022-09-11 15:12:54 -07:00
Paperless-ngx Translation Bot [bot]
3267708097 New Crowdin updates (#1295)
Squashed commit of Crowdin updates

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-09-11 15:04:55 -07:00
shamoon
71a808c95a Merge pull request #543 from bckelly1/feature-mariadb-support
Feature: Add MariaDB support
2022-09-11 08:50:27 -07:00
Trenton Holmes
2c3c26edf1 Ensures the Pipfile.lock hash is up to date 2022-09-11 08:20:58 -07:00
Trenton Holmes
18a4ba7778 Removes optipng, added in a bad merge 2022-09-11 07:42:20 -07:00
Trenton Holmes
140e239bdb Fixes the shellcheck issues 2022-09-11 07:42:20 -07:00
Trenton Holmes
537e7c63f4 Combines the two database folders to a single variable during installation 2022-09-11 07:42:20 -07:00
Trenton Holmes
ed2e884de8 Fully qualifies the image and updates to Redis 7 2022-09-11 07:42:20 -07:00
Trenton Holmes
60980cb26a Adds the mysql Python dependency 2022-09-11 07:42:19 -07:00
Brian Kelly
3b84e34c8e re-order apt dependencies 2022-09-11 07:40:32 -07:00
Brian Kelly
ebdf9b55df correct the mariadb volume data path 2022-09-11 07:40:32 -07:00
Brian Kelly
f528b01de4 set paperless db user 2022-09-11 07:40:32 -07:00
Brian Kelly
6ae9a8f2be remove debug image reference 2022-09-11 07:40:32 -07:00
Brian Kelly
65cfd55027 rebase mariadb feature onto dev 2022-09-11 07:40:31 -07:00
Michael Shamoon
15d074d39c Include storage path in exporter + tests 2022-09-11 07:39:35 -07:00
shamoon
962d0ebb40 Merge pull request #1551 from paperless-ngx/chore-settings-cleanup
Chore: Cleanup and validate settings
2022-09-10 20:04:35 -07:00
Trenton Holmes
d408900a91 Adds validation and testing to cover some of the common settings 2022-09-09 11:48:57 -07:00
Trenton Holmes
0bf9e55ca7 Fixes a minor TODO in settings, and enables flake8 for settings.py 2022-09-09 11:42:50 -07:00
dependabot[bot]
55d36b39b1 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] <support@github.com>
2022-09-08 07:51:11 -07:00
Trenton Holmes
45fd01a688 Decrease the final size of the images containing .deb and .whl files 2022-09-08 07:31:00 -07:00
dependabot[bot]
1fda0782ae 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] <support@github.com>
2022-09-07 09:33:36 -07:00
dependabot[bot]
2680a83455 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] <support@github.com>
2022-09-07 09:05:32 -07:00
dependabot[bot]
148e875523 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] <support@github.com>
2022-09-07 07:57:41 -07:00
shamoon
b9e60e0145 Merge pull request #1528 from erikarvstedt/docs-fix-variable-defaults
docs/configuration: Fix binary variable defaults
2022-09-06 14:22:23 -07:00
Erik Arvstedt
03559454f6 docs/configuration: Fix binary variable defaults 2022-09-04 15:21:49 +02:00
dependabot[bot]
50ee1c0bd5 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] <support@github.com>
2022-09-03 18:35:51 -07:00
shamoon
c6b13271cf Merge pull request #1500 from paperless-ngx/feature-gunicorn-tune
Bugfix: Better gunicorn settings for workers
2022-09-02 18:01:47 -07:00
dependabot[bot]
fd83e8f2a9 Merge pull request #1502 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular/cli-14.2.1 2022-09-02 08:40:58 +00:00
Michael Shamoon
5f7c724531 update jest-preset-angular 2022-09-02 01:26:05 -07:00
Michael Shamoon
31ebe2675b update angular core 2022-09-02 01:25:39 -07:00
Michael Shamoon
60d40cc2ce update angular cli 2022-09-02 01:24:14 -07:00
dependabot[bot]
6796cdf947 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] <support@github.com>
2022-09-02 08:15:36 +00:00
shamoon
6592a925c4 Merge pull request #1507 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-environment-jsdom-29.0.1
Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui
2022-09-02 01:03:23 -07:00
dependabot[bot]
6d42b2a29d 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] <support@github.com>
2022-09-02 07:41:29 +00:00
shamoon
6b4dccfbd5 Merge pull request #1506 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/types/node-18.7.14
Bump @types/node from 18.6.3 to 18.7.14 in /src-ui
2022-09-02 00:40:15 -07:00
dependabot[bot]
2582d325bc 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] <support@github.com>
2022-09-02 07:39:49 +00:00
shamoon
078814e77a Merge pull request #1505 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular-builders/jest-14.0.1
Bump @angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui
2022-09-02 00:35:49 -07:00
dependabot[bot]
a80b413d38 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] <support@github.com>
2022-09-02 07:33:26 +00:00
shamoon
8cb93da53e Merge pull request #1504 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/zone.js-0.11.8
Bump zone.js from 0.11.7 to 0.11.8 in /src-ui
2022-09-02 00:32:20 -07:00
dependabot[bot]
299ae2b828 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] <support@github.com>
2022-09-02 07:30:09 +00:00
shamoon
96cf316eec Merge pull request #1494 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-color-8.0.2
Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui
2022-09-02 00:17:09 -07:00
dependabot[bot]
4aebb8e153 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] <support@github.com>
2022-09-02 07:02:45 +00:00
shamoon
82c6942f09 Merge pull request #1496 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress-10.7.0
Bump cypress from 10.3.1 to 10.7.0 in /src-ui
2022-09-02 00:01:35 -07:00
dependabot[bot]
ff280f0309 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] <support@github.com>
2022-09-02 06:53:44 +00:00
shamoon
06d15a11c8 Merge pull request #1495 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress/schematic-2.1.1
Bump @cypress/schematic from 2.0.0 to 2.1.1 in /src-ui
2022-09-01 23:52:39 -07:00
shamoon
4b3649ea94 Merge pull request #1498 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/popperjs/core-2.11.6
Bump @popperjs/core from 2.11.5 to 2.11.6 in /src-ui
2022-09-01 23:41:01 -07:00
Trenton Holmes
5ffb25b71d Tweaks gunicorn to preload the app and use shared memory for temporary fs 2022-09-01 18:04:12 -07:00
dependabot[bot]
8b28159e2d 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] <support@github.com>
2022-09-01 20:12:56 +00:00
dependabot[bot]
99d6103617 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] <support@github.com>
2022-09-01 20:09:45 +00:00
shamoon
a502fe7c5c Merge pull request #1492 from paperless-ngx/feature-imap-utf-improve
Feature: Simplify IMAP login for UTF-8
2022-09-01 09:35:26 -07:00
Trenton Holmes
bd18a57a5d Updates imap_tools and updates to use the new login method for UTF-8 2022-09-01 08:54:44 -07:00
viktor-c
3828d712bd 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>
2022-08-31 16:36:13 -07:00
Quinn Casey
a6be010464 Merge pull request #1488 from paperless-ngx/fix/tasks-table-actions
Fix actions button in tasks table
2022-08-31 16:18:13 -07:00
Michael Shamoon
efe51b30fe Fix actions button in tasks table 2022-08-31 12:39:56 -07:00
Felix E
26019b9c17 Merge pull request #1482 from paperless-ngx/move-scanners-to-wiki
Docs: move scanner & software recs to GH wiki
2022-08-31 19:28:03 +02:00
Michael Shamoon
ebdd7afb67 Move scanner & software recs to GH wiki 2022-08-30 22:14:07 -07:00
Felix E
0c90b84a92 Merge pull request #1467 from tooomm/patch-1
Docs: Update mobile scanner section
2022-08-28 10:29:15 +02:00
tooomm
9c2265d1aa update mobile scanner section 2022-08-27 18:03:54 +02:00
Quinn Casey
8046a6f3a7 Merge pull request #1463 from paperless-ngx/fix/issue-1462
Fix: Add missing filter rule types to SavedViewFilterRule model & fix migrations
2022-08-26 12:35:29 -07:00
Michael Shamoon
ddff902291 Fix 1023, 1024 migrations, add savedviewfilterrule migration 2022-08-26 10:02:48 -07:00
Michael Shamoon
a406920ae6 Add missing filter rule types to SavedViewFilterRule model
And add note to filter-rule-type.ts
2022-08-26 10:02:48 -07:00
Quinn Casey
44e596b0c4 Merge pull request #1451 from paperless-ngx/feature-better-redo-ocr
Feature: Even better re-do of OCR
2022-08-25 17:01:54 -07:00
shamoon
2b1c8c8d9a Merge pull request #1375 from tim-vogel/add_comments
Feature: document comments
2022-08-25 11:48:31 -07:00
shamoon
d40c13420d Merge pull request #1367 from Eckii24/feat/date-suggestions
Adding date suggestions to the documents details view
2022-08-25 11:47:37 -07:00
Trenton Holmes
8ad2f7daf0 Locks scipy to 1.8.1, allows some other minor version updates 2022-08-25 11:34:00 -07:00
shamoon
696ebf545f Revert "Bump sphinx from 5.0.2 to 5.1.1" 2022-08-25 11:34:00 -07:00
Quinn Casey
ed515f4e36 Merge pull request #1460 from paperless-ngx/fix/paperless-conf-typo
Fix paperless.conf.example typo
2022-08-25 08:39:53 -07:00
Quinn Casey
06a4949266 Fix minor duplicate/incorrect conf key 2022-08-25 08:36:48 -07:00
shamoon
f50a01e118 Merge pull request #1297 from paperless-ngx/dependabot/pip/dev/sphinx-5.1.1
Bump sphinx from 5.0.2 to 5.1.1
2022-08-25 08:33:40 -07:00
shamoon
09512be1ad Merge pull request #1301 from paperless-ngx/fix-release-drafter
[CI] Fix release drafter issues
2022-08-25 08:25:28 -07:00
shamoon
bb951ad860 Merge pull request #1421 from paperless-ngx/feature-consumer-event-driven
Feature: Event driven consumer
2022-08-25 08:16:47 -07:00
Michael Shamoon
858ae909e8 Default PAPERLESS_NUMBER_OF_SUGGESTED_DATES to 3 2022-08-25 08:03:38 -07:00
Quinn Casey
1692bac3fe Merge pull request #1442 from paperless-ngx/fix/skip-archive-still-archiving
Bugfix: Fixes the creation of an archive file, even if noarchive was specified
2022-08-25 06:23:10 -07:00
Michael Shamoon
cce1595c3d Fix CodeQL warnings 2022-08-24 14:24:10 -07:00
Trenton Holmes
67bb140eef Finalizes testing of the delete comment 2022-08-24 14:24:10 -07:00
Trenton Holmes
6d5d308d6c Starts on implementing tests for the new API 2022-08-24 14:24:10 -07:00
Trenton Holmes
d39b4ae8cb Merges the migration branches 2022-08-24 14:24:10 -07:00
Michael Shamoon
0f4b118b61 Basic verification of Comment export & exporter comment tuple fix
From oprhaned commits b1855a4b7a
53f21574fd

Co-Authored-By: Trenton Holmes <797416+stumpylog@users.noreply.github.com>
2022-08-24 14:24:10 -07:00
Michael Shamoon
f5f2240828 Add frontend tests for comments 2022-08-24 14:24:10 -07:00
Mark Stenglein
66593a28f5 docs: scanners: add Brother ads4700w
I've tested Paperless with the ADS-4700W and it works great.

This commit adds the recommendation.
2022-08-24 08:57:45 -07:00
Michael Shamoon
ba1cdd5914 Update messages.xlf 2022-08-23 19:22:30 -07:00
Michael Shamoon
3f536552a6 Move add comment to top of comments list 2022-08-23 19:22:30 -07:00
Michael Shamoon
1d2282df9e Cleanup frontend comment service & other code
[ci skip]
2022-08-23 19:20:08 -07:00
Michael Shamoon
1b56ffd0c0 Rework comment UI
Add error popups, text field validation, move form, move comment header to footer, updated styling
2022-08-23 19:20:08 -07:00
Michael Shamoon
d5018af2a3 python code style 2022-08-23 19:20:08 -07:00
Michael Shamoon
5c1e09cc48 Refactor comment UI code
And run prettier
2022-08-23 19:20:08 -07:00
Michael Shamoon
6d956ac13b fix migration dependency
and run code style
2022-08-23 19:19:21 -07:00
Michael Shamoon
865fbbd15c Missed PAPERLESS_COMMENTS_ENABLED code 2022-08-23 19:19:21 -07:00
shamoon
97cfd0085e Remove faux test file 2022-08-23 19:19:21 -07:00
Michael Shamoon
f20f200c8d Fix comment service method signature
and run prettier over file
2022-08-23 19:19:21 -07:00
Michael Shamoon
78bd424ecb Remove faux testing file 2022-08-23 19:19:21 -07:00
Michael Shamoon
6fa32c36e9 Use frontend settings instead of env variable 2022-08-23 19:19:21 -07:00
tim-vogel
817882ff6f add comment function 2022-08-23 19:19:21 -07:00
tooomm
d1e8299010 typo 2022-08-23 19:18:45 -07:00
dependabot[bot]
42c50c4e0b 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] <support@github.com>
2022-08-22 12:37:59 +00:00
shamoon
c151db6e21 Merge pull request #1446 from paperless-ngx/feature-storage-path-rematch
Feature: Adds storage paths to re-tagger command
2022-08-21 20:07:06 -07:00
shamoon
7844537355 Merge pull request #1440 from GwynHannay/feature-orig-filename-metadata
Feature: Preserve original filename in metadata
2022-08-21 20:05:25 -07:00
Quinn Casey
a414208327 Merge pull request #1445 from paperless-ngx/library-deps-update
Chore: Bump Python dependencies
2022-08-21 18:45:58 -07:00
Trenton Holmes
ab761e837c Implements a better re-do of OCR by making the document archiver function common. Actually creates updated file now 2022-08-21 18:20:59 -07:00
Trenton Holmes
c8e838e3a0 Adds the storage paths to the re-tagger command 2022-08-21 18:01:19 -07:00
Trenton Holmes
9b24cf7591 Also provide the original file name to the post consumption script 2022-08-21 16:16:28 -07:00
Trenton Holmes
5e3cdcdd6e Bumps all library versions which are currently working 2022-08-21 08:34:40 -07:00
Michael Shamoon
baeb2a074a Add original filename to frontend doc detail metadata 2022-08-21 08:06:56 -07:00
Zerteax
a56de4547c Changes to Redis documentation (#1441)
* Added more description in PAPERLESS_REDIS

* More Information on Redis

* Update configuration.rst

* Changed <ip> to <host>

Same as in the Documentation of Redis

* Edited the link

Linking directly to the Securing Redis part
2022-08-21 07:27:45 -07:00
Gwyn Hannay
e3cc5c3013 format code 2022-08-20 14:31:30 -07:00
Gwyn Hannay
4194b248b9 create migration for original filename 2022-08-20 14:30:40 -07:00
Gwyn Hannay
3fcbd8f3ac update files and model to include new field 2022-08-20 14:30:14 -07:00
Trenton Holmes
b3b2519bf0 Fixes the creation of an archive file, even if noarchive was specified 2022-08-20 13:47:56 -07:00
Stefan
fccea022fa adapt test to respect gmail_label keyword 2022-08-20 13:15:38 -07:00
Stefan
d80d5e4e70 fix debug output 2022-08-20 13:15:38 -07:00
Stefan
f1e93eb70a Ignore tagged emails from gmail to avoid duplicated documents. 2022-08-20 13:15:38 -07:00
Stefan
260b709296 add test for gmail account tag handling 2022-08-20 13:15:38 -07:00
Stefan
9bb762fc8f fix mail tests 2022-08-20 13:15:38 -07:00
Stefan
5c49bbfc73 fix formatting 2022-08-20 13:15:38 -07:00
Stefan
edabf208bc Handle tags for gmail email accounts
like mentioned here: https://github.com/ikvk/imap_tools/issues/174
2022-08-20 13:15:38 -07:00
Quinn Casey
0878a199f4 Merge pull request #1436 from tribut/redis-image
Update redis image
2022-08-18 08:03:19 -07:00
Felix Eckhofer
eec1f03f86 Use redis image tag :7 2022-08-18 11:47:47 +02:00
Quinn Casey
a4c4b81297 Manually link authors only in docs/changelog.md 2022-08-17 08:30:40 -07:00
Felix E
a5f9c8f651 Merge pull request #1430 from glassbox-sco/patch-1
Update scanners.rst
2022-08-17 08:31:51 +02:00
Quinn Casey
1ec7351842 Minor doc fixes 2022-08-16 19:44:48 -07:00
glassbox-sco
f2cab81aed Update scanners.rst 2022-08-17 00:09:21 +01:00
Dennis Gaida
9cbc74ebb2 remove redis URL from log 2022-08-16 12:41:52 -07:00
Dennis Gaida
3d36d0445c Hide credentials from log 2022-08-16 12:41:52 -07:00
Dennis Gaida
f4fece5550 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` (5fe435048b/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.
2022-08-16 12:41:52 -07:00
Quinn Casey
6133f745b7 Merge pull request #1415 from derlucas/main
Update scanners.rst
2022-08-15 06:47:21 -07:00
Quinn Casey
02456b271b Fix incorrect double quote on string 2022-08-15 06:27:08 -07:00
Trenton Holmes
ad1f5ae081 Corrects the timeout's interaction with files waiting to be consumed 2022-08-14 17:47:59 -07:00
Trenton Holmes
86358d5561 Attempts to make production consumer more event driven while still allowing unit testing 2022-08-14 17:47:59 -07:00
shamoon
87953cb98a Merge pull request #1412 from paperless-ngx/fix/created-date-not-required
Fix: `created_date` should not be required
2022-08-14 16:06:48 -07:00
Trenton Holmes
f58e0041ce Resets to a last known working pipenv version 2022-08-14 16:01:22 -07:00
Michael Shamoon
8183de4902 created_date is not supposed to be required 2022-08-14 00:58:31 -07:00
Lucas Pleß
a8c575147b Update scanners.rst
added Brother ADS-4300N. I tested it and can recommend the Device. It scans fast and reliable.
2022-08-13 22:52:17 +02:00
shamoon
09fcc28ded Merge pull request #1397 from paperless-ngx/chore/remove-dependabot-from-projects
Chore: Exclude dependabot PRs from Project, set status to "Needs Review"
2022-08-13 07:27:50 -07:00
Quinn Casey
22fb659b72 Set status of new PRs to "Needs Review" 2022-08-11 10:10:08 -07:00
Quinn Casey
40ae184c4e Exclude dependabot PRs from project 2022-08-11 10:03:37 -07:00
Quinn Casey
18a2a41682 Use fork of release-drafter to exclude prereleases 2022-08-11 09:49:04 -07:00
Quinn Casey
4faff70b5d Merge pull request #1396 from paperless-ngx/chore/add-autolabeler
Chore: Add `autolabeler` to label PRs based on `ref` and title
2022-08-11 09:46:24 -07:00
Quinn Casey
8d3361766d Draft more comprehensive changelog 2022-08-10 17:48:56 -07:00
Quinn Casey
5dd4d0c370 Add documentation as included label 2022-08-10 17:48:56 -07:00
Quinn Casey
a0617c1fad CI: Add autolabeler 2022-08-10 17:19:13 -07:00
Quinn Casey
9e9593b899 Merge pull request #1391 from paperless-ngx/chore-update-deps
Chore: Update Python deps
2022-08-10 09:31:00 -07:00
Trenton Holmes
89b7270233 Updates some deps, skipping scipy 2022-08-10 08:45:49 -07:00
shamoon
3af4808864 Merge pull request #1387 from paperless-ngx/bugfix-task-error-prevents-consume
Bugfix: Catch all exceptions during the task signals
2022-08-10 07:09:29 -07:00
Trenton Holmes
d4c3b7614d Catch all exceptions during the task creation so some error here, but not with a file, will allow consumption to run 2022-08-09 15:50:03 -07:00
Quinn Casey
676ba9ca22 Merge pull request #1376 from paperless-ngx/fix/saved-view-page-param
Fix: saved view page parameter
2022-08-08 10:06:11 -07:00
Michael Shamoon
d0f5cc839f fix navigation to /documents breaks history 2022-08-08 00:05:19 -07:00
Michael Shamoon
110bd65c20 fix pagination, refactor 2022-08-08 00:03:15 -07:00
shamoon
ef0080b0a9 Merge pull request #1369 from paperless-ngx/fix/browser-unsaved-changes
Fix: Correct browser unsaved changes warning
2022-08-07 15:43:10 -07:00
shamoon
a81dc00ccf Merge pull request #1370 from paperless-ngx/fix/date-pasting
Fix: correct date pasting with some non-US formats
2022-08-07 15:42:00 -07:00
Quinn Casey
765fea7f7e Merge pull request #1362 from paperless-ngx/ci-file-health
Chore: use pre-commit in the Ci workflow
2022-08-07 13:33:34 -07:00
Michael Shamoon
a0f48130c0 Fix some date pasting cases 2022-08-07 08:44:39 -07:00
Michael Shamoon
7e2c693c8a Make date suggestions timezone-unaware 2022-08-07 08:37:18 -07:00
Michael Shamoon
7396e4c326 simplify date value format 2022-08-06 21:19:06 -07:00
Michael Shamoon
0175eab031 Fix browser unsaved changes with custom guard 2022-08-06 20:23:05 -07:00
Matthias Eck
3d0a26fdb1 fix(parsers|test_api): fix failed tests 2022-08-06 19:19:10 +02:00
Matthias Eck
c52d18da1f feat(date.component): adding suggestions to frontend 2022-08-06 13:03:20 +02:00
Matthias Eck
e0f341938a docs(configuration.rst): add doc for NUMBER_OF_SUGGESTED_DATES 2022-08-06 13:03:20 +02:00
Matthias Eck
a037e562b2 test(test-date-parsing): test parsing of multiple dates 2022-08-06 13:03:20 +02:00
Matthias Eck
f1084cbdcf feat(settings): add setting to set number of suggested dates 2022-08-06 13:03:20 +02:00
Matthias Eck
f6e4339069 test(test-date-parsing): test parsing of multiple dates 2022-08-06 13:03:20 +02:00
Matthias Eck
a754c6047d test(test-api): update existing tests for suggestions 2022-08-06 13:03:20 +02:00
Matthias Eck
a5d2ae2588 feat(parsers): add generator for date parsing 2022-08-06 13:03:20 +02:00
Michael Shamoon
a6f3378c21 Handle page parameter on saved views 2022-08-05 23:35:13 -07:00
Quinn Casey
ca75fb5664 Merge pull request #1358 from paperless-ngx/bugfix-ip-bind-addr
Bugfix: Allow webserver bind address to be configured
2022-08-04 12:35:28 -07:00
Trenton Holmes
32861ad592 Removes no longer needed files 2022-08-04 11:11:49 -07:00
Trenton Holmes
ada8516803 Allows the webserver binding address to be configured via the environment 2022-08-04 07:43:23 -07:00
Trenton Holmes
d5c27a95aa Fixes minor linting 2022-08-03 13:26:04 -07:00
Trenton Holmes
6b8a21d2b0 Test pre-commit action 2022-08-03 13:20:02 -07:00
Trenton Holmes
cb7e6f8cd0 Adds a pull of all images for the main image after the pruning 2022-08-03 10:19:15 -07:00
Trenton Holmes
f48a2cb65e Fixes the untagged image deletion so it will not remove images which are referred to by a multi-arch manifest image 2022-08-03 10:19:15 -07:00
Trenton Holmes
0fdd3d56f4 Changes the cleanup images workflow so it uses a OAuth token with the correct scope (GITHUB_TOKEN is not enough). Also prevents running if the token is not defined and generally does commenting/cleanups" 2022-08-03 10:19:15 -07:00
Quinn Casey
173934258c Merge pull request #1354 from paperless-ngx/bugfix-exception-chains
Bugfix: Chain exceptions during exception handling
2022-08-03 09:59:26 -07:00
Trenton Holmes
b70e21a6d5 When raising an exception during exception handling, chain them together for slightly cleaner logs 2022-08-03 09:00:56 -07:00
shamoon
cafb884991 Merge pull request #1352 from tooomm/patch-1
docs: fix small typo
2022-08-03 06:42:13 -07:00
tooomm
94b09614d9 typo 2022-08-03 15:00:23 +02:00
shamoon
7488505e37 Update dev version string
[ci skip]
2022-08-02 13:28:29 -07:00
Trenton Holmes
641ff9a71d Revert "Bump watchfiles from 0.15.0 to 0.16.1"
This reverts commit b596502f74.
2022-08-02 11:25:01 -07:00
dependabot[bot]
b596502f74 Bump watchfiles from 0.15.0 to 0.16.1
Bumps [watchfiles](https://github.com/samuelcolvin/watchfiles) from 0.15.0 to 0.16.1.
- [Release notes](https://github.com/samuelcolvin/watchfiles/releases)
- [Commits](https://github.com/samuelcolvin/watchfiles/compare/v0.15.0...v0.16.1)

---
updated-dependencies:
- dependency-name: watchfiles
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 08:46:02 -07:00
dependabot[bot]
4fbd760005 Bump leonsteinhaeuser/project-beta-automations from 1.2.1 to 1.3.0
Bumps [leonsteinhaeuser/project-beta-automations](https://github.com/leonsteinhaeuser/project-beta-automations) from 1.2.1 to 1.3.0.
- [Release notes](https://github.com/leonsteinhaeuser/project-beta-automations/releases)
- [Commits](https://github.com/leonsteinhaeuser/project-beta-automations/compare/v1.2.1...v1.3.0)

---
updated-dependencies:
- dependency-name: leonsteinhaeuser/project-beta-automations
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 08:10:45 -07:00
dependabot[bot]
6a5ac15b07 Bump tj-actions/changed-files from 23.1 to 24
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 23.1 to 24.
- [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/v23.1...v24)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 07:55:28 -07:00
shamoon
57b419fa87 Merge pull request #1342 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress-10.3.1
Bump cypress from 10.3.0 to 10.3.1 in /src-ui
2022-08-01 15:49:45 -07:00
shamoon
52ce54930b Merge pull request #1343 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-color-8.0.1
Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui
2022-08-01 13:59:15 -07:00
dependabot[bot]
fa9898ebe1 Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui
Bumps [ngx-color](https://github.com/scttcper/ngx-color) from 7.3.3 to 8.0.1.
- [Release notes](https://github.com/scttcper/ngx-color/releases)
- [Commits](https://github.com/scttcper/ngx-color/compare/v7.3.3...v8.0.1)

---
updated-dependencies:
- dependency-name: ngx-color
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:56:48 +00:00
shamoon
de4b3c39b9 Merge pull request #1330 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular/cli-14.1.0
Bump @angular/cli from 14.0.4 to 14.1.0 in /src-ui
2022-08-01 13:55:41 -07:00
Michael Shamoon
232e358a34 bump all angular packages together 2022-08-01 13:54:09 -07:00
dependabot[bot]
a0d35f9262 Bump @angular/cli from 14.0.4 to 14.1.0 in /src-ui
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 14.0.4 to 14.1.0.
- [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.0.4...14.1.0)

---
updated-dependencies:
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:46:55 +00:00
dependabot[bot]
8883ef81dc Bump cypress from 10.3.0 to 10.3.1 in /src-ui
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.3.0 to 10.3.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/v10.3.0...v10.3.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:46:27 +00:00
shamoon
39a425eca4 Merge pull request #1341 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/types/node-18.6.3
Bump @types/node from 18.0.0 to 18.6.3 in /src-ui
2022-08-01 13:45:09 -07:00
dependabot[bot]
e31d383cfc Bump @types/node from 18.0.0 to 18.6.3 in /src-ui
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 18.0.0 to 18.6.3.
- [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] <support@github.com>
2022-08-01 20:44:37 +00:00
shamoon
cb104b60f4 Merge pull request #1340 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-preset-angular-12.2.0
Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui
2022-08-01 13:43:47 -07:00
dependabot[bot]
b88963c900 Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui
Bumps [jest-preset-angular](https://github.com/thymikee/jest-preset-angular) from 12.1.0 to 12.2.0.
- [Release notes](https://github.com/thymikee/jest-preset-angular/releases)
- [Changelog](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/thymikee/jest-preset-angular/compare/v12.1.0...v12.2.0)

---
updated-dependencies:
- dependency-name: jest-preset-angular
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:39:58 +00:00
shamoon
3597abbcd7 Merge pull request #1326 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/concurrently-7.3.0
Bump concurrently from 7.2.2 to 7.3.0 in /src-ui
2022-08-01 13:38:44 -07:00
dependabot[bot]
0f780b6271 Bump concurrently from 7.2.2 to 7.3.0 in /src-ui
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 7.2.2 to 7.3.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v7.2.2...v7.3.0)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:38:16 +00:00
shamoon
f1ce4e1f5b Merge pull request #1337 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ng2-pdf-viewer-9.1.0
Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui
2022-08-01 13:38:11 -07:00
dependabot[bot]
5d0d800c0a Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui
Bumps [ng2-pdf-viewer](https://github.com/VadimDez/ng2-pdf-viewer) from 9.0.0 to 9.1.0.
- [Release notes](https://github.com/VadimDez/ng2-pdf-viewer/releases)
- [Changelog](https://github.com/VadimDez/ng2-pdf-viewer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/VadimDez/ng2-pdf-viewer/compare/9.0.0...9.1.0)

---
updated-dependencies:
- dependency-name: ng2-pdf-viewer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:37:34 +00:00
shamoon
3b330ef22f Merge pull request #1336 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-environment-jsdom-28.1.3
Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui
2022-08-01 13:36:22 -07:00
dependabot[bot]
873bb4fd2d Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui
Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 28.1.2 to 28.1.3.
- [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/v28.1.3/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:35:56 +00:00
shamoon
3973df64ba Merge pull request #1331 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-file-drop-14.0.1
Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui
2022-08-01 13:35:04 -07:00
shamoon
8cda62ae92 Merge pull request #1333 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-and-types/jest-28.1.3
Bump jest and @types/jest in /src-ui
2022-08-01 13:29:31 -07:00
dependabot[bot]
b8e1a49f85 Bump jest and @types/jest in /src-ui
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) and [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest). These dependencies needed to be updated together.

Updates `jest` from 28.1.2 to 28.1.3
- [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/v28.1.3/packages/jest)

Updates `@types/jest` from 28.1.4 to 28.1.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: "@types/jest"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:25:09 +00:00
shamoon
f9147b5405 Merge pull request #1327 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/bootstrap-5.2.0
Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui
2022-08-01 13:21:46 -07:00
dependabot[bot]
878f727a2c Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui
Bumps [ngx-file-drop](https://github.com/georgipeltekov/ngx-file-drop) from 13.0.0 to 14.0.1.
- [Release notes](https://github.com/georgipeltekov/ngx-file-drop/releases)
- [Changelog](https://github.com/georgipeltekov/ngx-file-drop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/georgipeltekov/ngx-file-drop/compare/v13.0.0...v14.0.1)

---
updated-dependencies:
- dependency-name: ngx-file-drop
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:19:33 +00:00
shamoon
0169ee4885 Merge pull request #1324 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/typescript-4.7.4
Bump typescript from 4.6.4 to 4.7.4 in /src-ui
2022-08-01 13:18:12 -07:00
dependabot[bot]
904faf27c2 Bump typescript from 4.6.4 to 4.7.4 in /src-ui
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.6.4 to 4.7.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.6.4...v4.7.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:15:13 +00:00
shamoon
d2a38fe05c Merge pull request #1325 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ts-node-10.9.1
Bump ts-node from 10.8.1 to 10.9.1 in /src-ui
2022-08-01 13:13:49 -07:00
shamoon
9a5d06239f Merge pull request #1323 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/rxjs-7.5.6
Bump rxjs from 7.5.5 to 7.5.6 in /src-ui
2022-08-01 13:12:06 -07:00
dependabot[bot]
a1fad471a9 Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 5.1.3 to 5.2.0.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v5.1.3...v5.2.0)

---
updated-dependencies:
- dependency-name: bootstrap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:09:16 +00:00
dependabot[bot]
57a97365b6 Bump ts-node from 10.8.1 to 10.9.1 in /src-ui
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.8.1 to 10.9.1.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.8.1...v10.9.1)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:08:43 +00:00
dependabot[bot]
cce36906b1 Bump rxjs from 7.5.5 to 7.5.6 in /src-ui
Bumps [rxjs](https://github.com/reactivex/rxjs) from 7.5.5 to 7.5.6.
- [Release notes](https://github.com/reactivex/rxjs/releases)
- [Changelog](https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reactivex/rxjs/compare/7.5.5...7.5.6)

---
updated-dependencies:
- dependency-name: rxjs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:08:06 +00:00
Quinn Casey
da99ba114b Merge pull request #1305 from paperless-ngx/fix/1299+1300
Fix: missing tooltip translation & filter editor wrapping
2022-07-31 20:40:48 -07:00
Michael Shamoon
9a66bd3c34 Better filter editor wrapping across display sizes
Closes #1299
2022-07-31 20:25:21 -07:00
Quinn Casey
0d23b33c0e Merge pull request #1316 from paperless-ngx/feature-docker-pipenv
Feature: Remove requirements.txt and use pipenv everywhere
2022-07-31 18:46:59 -07:00
Trenton Holmes
e721092c2a Changes the Dockerfile to use pipenv and the releases to use pipenv, removing the need for a requirements.txt 2022-07-30 13:41:08 -07:00
Quinn Casey
8c7afc5646 Merge branch 'main' into dev 2022-07-30 08:41:36 -07:00
Michael Shamoon
7752d83781 Fix "suggest an idea" not using translation
Closes #1300
2022-07-29 14:48:11 -07:00
Quinn Casey
4b45e94beb Merge pull request #1303 from paperless-ngx/bugfix-barcode-and-dirs
Bugfix: Interaction between barcode and directories as tags
2022-07-29 12:25:40 -07:00
Trenton Holmes
2a4ec13c8e Fixes issue where barcode containing files wouldn't be placed into the same directory after splitting 2022-07-29 10:22:54 -07:00
Michael Shamoon
20671c718e Run prettier over changelog.md
[ci skip]
2022-07-28 20:00:59 -07:00
github-actions[bot]
e73db49ed0 [Documentation] Add v1.8.0 changelog (#1298)
* Changelog  - GHA

* Update changelog.md

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-07-28 19:52:13 -07:00
Michael Shamoon
0553824df2 Revert "Update changelog.md"
This reverts commit 3a031084f3.
2022-07-28 15:41:39 -07:00
Michael Shamoon
71bc2c5944 Add -dev to version string 2022-07-28 15:36:55 -07:00
Michael Shamoon
05feadbb7a Squashed commit of the following:
commit a4709b1175
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Thu Jul 28 15:36:13 2022 -0700

    Update stale.yml

    [skip ci]

commit 3a031084f3
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Thu Jul 28 15:24:23 2022 -0700

    Update changelog.md

commit 0c517e5351
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Thu Jul 28 15:18:49 2022 -0700

    v1.8.0 version strings

commit 5fe435048b
Merge: 278cedf3 a722bfd0
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Thu Jul 28 15:17:30 2022 -0700

    Merge pull request #1240 from paperless-ngx/beta

    [Beta] Paperless-ngx v1.8.0 Release Candidate 1

commit a722bfd099
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com>
Date:   Thu Jul 28 07:46:12 2022 -0700

    New Crowdin updates (#1291)

    * New translations django.po (French)
    [ci skip]

    * New translations messages.xlf (French)
    [ci skip]

    * New translations django.po (French)
    [ci skip]

    * New translations messages.xlf (French)
    [ci skip]

    * New translations messages.xlf (Turkish)
    [ci skip]

    * New translations django.po (Turkish)
    [ci skip]

commit f3d99a5fdb
Merge: ca334770 79de0989
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Tue Jul 26 11:21:42 2022 -0700

    Merge pull request #1277 from paperless-ngx/fix/redo-ocr-button-on-edit

    Fix/feature: add redo ocr button to document edit view

commit 79de0989d5
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Tue Jul 26 09:54:05 2022 -0700

    fix button icon spacing on mobile

commit ca334770b7
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com>
Date:   Tue Jul 26 09:45:21 2022 -0700

    New Crowdin updates (#1242)

    * New translations messages.xlf (Turkish)
    [ci skip]

    * New translations messages.xlf (German)
    [ci skip]

    * New translations django.po (German)
    [ci skip]

    * New translations messages.xlf (Italian)
    [ci skip]

    * New translations messages.xlf (Italian)
    [ci skip]

    * New translations messages.xlf (Finnish)
    [ci skip]

    * New translations messages.xlf (Finnish)
    [ci skip]

commit 1071357505
Merge: f32dfe02 ef790ca6
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Tue Jul 26 09:44:42 2022 -0700

    Merge pull request #1268 from paperless-ngx/bugfix-db-locked

    Bugfix: Adds configuration for database timeout, fixing database locked error

commit f32dfe0278
Merge: 611707a3 4e78ca5d
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Mon Jul 25 12:59:31 2022 -0700

    Merge pull request #1261 from paperless-ngx/fix/b1.8.0-ng-select-dropdowns

    Fix: dropdown selected items not visible again

commit 278cedf3d0
Merge: b141671d ecc4553e
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Mon Jul 25 09:25:52 2022 -0700

    Merge pull request #1272 from paperless-ngx/fix-1263

    Documentation: fix occasional code block color legibility

commit 45a6b5a436
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sun Jul 24 20:15:26 2022 -0700

    Add redo OCR button to document edit

commit 611707a3d1
Merge: 2d88638d b4d20d9b
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sun Jul 24 19:59:30 2022 -0700

    Merge pull request #1276 from paperless-ngx/bugfix-webp-import

    Bugfix: Document import doesn't convert thumbnails to WebP

commit b4d20d9b9a
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Sun Jul 24 10:22:53 2022 -0700

    Fixes document import copying PNG files to .webp extensions without actual conversion

commit ecc4553e67
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Fri Jul 22 15:10:33 2022 -0700

    fix occasional code block color legibility

commit ef790ca6f4
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Fri Jul 22 11:08:52 2022 -0700

    Fixes the copy and paste of the log line

commit 2d88638da7
Merge: 0e2e5f34 91ba0bd0
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Fri Jul 22 10:45:53 2022 -0700

    Merge pull request #1269 from paperless-ngx/beta-deps-final

    Chore: Locks dependencies to the final versions for the beta

commit 91ba0bd0af
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Fri Jul 22 08:53:02 2022 -0700

    Locks dependencies to the final versions for the beta

commit 0e2e5f3413
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Tue Jul 19 13:57:00 2022 -0700

    Creates utiliy to ensure all paths in settings are normalized and absolute

commit 7a99dcf693
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Thu Jul 21 08:02:11 2022 -0700

    Adds configuration for database timeout, documentation and troubleshotting suggestion

commit 4e78ca5d82
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Wed Jul 20 11:15:35 2022 -0700

    remove merge error ng-select css

commit 83de38e56f
Merge: f4be2e4f b1b6d50a
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Wed Jul 20 08:26:12 2022 -0700

    Merge pull request #1247 from paperless-ngx/bugfix-pikepdf-ocrmypdf-warnings

    Bugfix: Adds pngquant and jbig2dec to Docker image

commit f4be2e4fe7
Merge: 4444925d 16b0f7f9
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Tue Jul 19 21:03:16 2022 -0700

    Merge pull request #1259 from paperless-ngx/chore-add-ci-hadolint

    Chore: Add Hadolint job to CI

commit 16b0f7f9ee
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Tue Jul 19 14:18:47 2022 -0700

    Removes a Dockerfile I can't find referenced anywhere

commit 27721aef71
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Tue Jul 19 14:01:47 2022 -0700

    Fixes and updates the Hadolint action version

commit 329a317fdf
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Tue Jul 19 13:54:33 2022 -0700

    Configure Hadolint in a single location for both hooks and CI

commit daad634894
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Fri Jul 15 13:45:23 2022 -0700

    Adds a CI job for hadolint over all the Dockerfiles, fixes the minor thing it complained about

commit 4444925dea
Merge: 4c697ab5 9c1ae96d
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Mon Jul 18 15:55:29 2022 -0700

    Merge pull request #1249 from paperless-ngx/fix-generated-changelog

    [CI] Fix automatic changelog generation on release

commit 9c1ae96d33
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Mon Jul 18 09:48:03 2022 -0700

    Create PR for changelog instead of direct commit

commit b1b6d50af6
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Mon Jul 18 09:46:31 2022 -0700

    Adds a couple packages to the Docker image for ocrmypdf and pikepdf

commit 4c697ab50e
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Sun Jul 17 15:23:28 2022 -0700

    Bump version to beta

commit b141671d90
Merge: 48dfbbeb 2ab2d912
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Sun Jul 17 13:18:57 2022 -0700

    Merge pull request #1237 from tooomm/patch-1

    chore: Run stale bot only on certain labels

commit 2ab2d9127d
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Fri Jul 15 20:19:28 2022 -0700

    Use cant-reproduce for stale

commit 278453451e
Author: tooomm <tooomm@users.noreply.github.com>
Date:   Fri Jul 15 21:18:38 2022 +0200

    only run on certain labels

commit 48dfbbebc6
Merge: 8efb97ef e568b300
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sun Jul 3 07:42:20 2022 -0700

    Merge pull request #1110 from paperless-ngx/update-issue-form

commit 8efb97ef4e
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sat Jul 2 19:06:32 2022 -0700

    Update stale.yml

    [ci skip]

commit d8cda7fc1b
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sat Jul 2 17:51:39 2022 -0700

    Use any-of-labels for stalebot

    [ci skip]

commit 68f0cf419b
Merge: 666b9385 26b12512
Author: Felix E <felix@eckhofer.com>
Date:   Mon Jun 20 14:25:59 2022 +0200

    Merge pull request #1148 from pReya/patch-1

    fix: update scanner capability

commit 26b12512b1
Author: Moritz Stückler <moritz.stueckler@gmail.com>
Date:   Mon Jun 20 12:06:54 2022 +0200

    fix: update scanner capability

    The Brother ADS-A1700W does indeed support SFTP. I've just bought it, and set it up like this.

commit e568b3000e
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Tue Jun 7 15:28:49 2022 -0700

    Add lsio to issue form

commit 666b938550
Merge: de5eaf1c 163231d3
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Thu May 19 17:23:23 2022 -0700

    Merge pull request #990 from tooomm/patch-2

    Docs: Fix headings and add links to PRs in changelog

commit 163231d307
Author: tooomm <tooomm@users.noreply.github.com>
Date:   Thu May 19 23:12:40 2022 +0200

    Link issues, capitalization and minor fixes

commit e530750fc6
Author: tooomm <tooomm@users.noreply.github.com>
Date:   Thu May 19 22:05:43 2022 +0200

    update heading levels for v1.7.0
2022-07-28 15:36:24 -07:00
Michael Shamoon
a4709b1175 Update stale.yml
[skip ci]
2022-07-28 15:36:13 -07:00
Michael Shamoon
3a031084f3 Update changelog.md 2022-07-28 15:24:23 -07:00
Michael Shamoon
0c517e5351 v1.8.0 version strings 2022-07-28 15:18:49 -07:00
shamoon
5fe435048b Merge pull request #1240 from paperless-ngx/beta
[Beta] Paperless-ngx v1.8.0 Release Candidate 1
2022-07-28 15:17:30 -07:00
Paperless-ngx Translation Bot [bot]
a722bfd099 New Crowdin updates (#1291)
* New translations django.po (French)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations django.po (French)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations django.po (Turkish)
[ci skip]
2022-07-28 07:46:12 -07:00
shamoon
f3d99a5fdb Merge pull request #1277 from paperless-ngx/fix/redo-ocr-button-on-edit
Fix/feature: add redo ocr button to document edit view
2022-07-26 11:21:42 -07:00
Michael Shamoon
79de0989d5 fix button icon spacing on mobile 2022-07-26 09:54:05 -07:00
Paperless-ngx Translation Bot [bot]
ca334770b7 New Crowdin updates (#1242)
* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations django.po (German)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]
2022-07-26 09:45:21 -07:00
shamoon
1071357505 Merge pull request #1268 from paperless-ngx/bugfix-db-locked
Bugfix: Adds configuration for database timeout, fixing database locked error
2022-07-26 09:44:42 -07:00
shamoon
f32dfe0278 Merge pull request #1261 from paperless-ngx/fix/b1.8.0-ng-select-dropdowns
Fix: dropdown selected items not visible again
2022-07-25 12:59:31 -07:00
shamoon
278cedf3d0 Merge pull request #1272 from paperless-ngx/fix-1263
Documentation: fix occasional code block color legibility
2022-07-25 09:25:52 -07:00
Michael Shamoon
45a6b5a436 Add redo OCR button to document edit 2022-07-24 20:15:26 -07:00
shamoon
611707a3d1 Merge pull request #1276 from paperless-ngx/bugfix-webp-import
Bugfix: Document import doesn't convert thumbnails to WebP
2022-07-24 19:59:30 -07:00
Trenton Holmes
b4d20d9b9a Fixes document import copying PNG files to .webp extensions without actual conversion 2022-07-24 10:22:53 -07:00
Michael Shamoon
ecc4553e67 fix occasional code block color legibility 2022-07-22 15:12:18 -07:00
Trenton Holmes
ef790ca6f4 Fixes the copy and paste of the log line 2022-07-22 11:08:52 -07:00
shamoon
2d88638da7 Merge pull request #1269 from paperless-ngx/beta-deps-final
Chore: Locks dependencies to the final versions for the beta
2022-07-22 10:45:53 -07:00
Trenton Holmes
91ba0bd0af Locks dependencies to the final versions for the beta 2022-07-22 08:53:02 -07:00
Trenton Holmes
0e2e5f3413 Creates utiliy to ensure all paths in settings are normalized and absolute 2022-07-22 08:48:17 -07:00
Trenton Holmes
7a99dcf693 Adds configuration for database timeout, documentation and troubleshotting suggestion 2022-07-22 08:40:08 -07:00
Michael Shamoon
4e78ca5d82 remove merge error ng-select css 2022-07-20 11:15:35 -07:00
shamoon
83de38e56f Merge pull request #1247 from paperless-ngx/bugfix-pikepdf-ocrmypdf-warnings
Bugfix: Adds pngquant and jbig2dec to Docker image
2022-07-20 08:26:12 -07:00
Quinn Casey
f4be2e4fe7 Merge pull request #1259 from paperless-ngx/chore-add-ci-hadolint
Chore: Add Hadolint job to CI
2022-07-19 21:03:16 -07:00
Trenton Holmes
16b0f7f9ee Removes a Dockerfile I can't find referenced anywhere 2022-07-19 14:18:47 -07:00
Trenton Holmes
27721aef71 Fixes and updates the Hadolint action version 2022-07-19 14:01:47 -07:00
Trenton Holmes
329a317fdf Configure Hadolint in a single location for both hooks and CI 2022-07-19 13:54:33 -07:00
Trenton Holmes
daad634894 Adds a CI job for hadolint over all the Dockerfiles, fixes the minor thing it complained about 2022-07-19 13:50:15 -07:00
shamoon
4444925dea Merge pull request #1249 from paperless-ngx/fix-generated-changelog
[CI] Fix automatic changelog generation on release
2022-07-18 15:55:29 -07:00
Quinn Casey
9c1ae96d33 Create PR for changelog instead of direct commit 2022-07-18 09:48:03 -07:00
Trenton Holmes
b1b6d50af6 Adds a couple packages to the Docker image for ocrmypdf and pikepdf 2022-07-18 09:46:31 -07:00
Quinn Casey
b141671d90 Merge pull request #1237 from tooomm/patch-1
chore: Run stale bot only on certain labels
2022-07-17 13:18:57 -07:00
shamoon
2ab2d9127d Use cant-reproduce for stale 2022-07-15 20:19:28 -07:00
tooomm
278453451e only run on certain labels 2022-07-15 21:18:38 +02:00
shamoon
48dfbbebc6 Merge pull request #1110 from paperless-ngx/update-issue-form 2022-07-03 07:42:20 -07:00
shamoon
8efb97ef4e Update stale.yml
[ci skip]
2022-07-02 19:06:32 -07:00
shamoon
d8cda7fc1b Use any-of-labels for stalebot
[ci skip]
2022-07-02 17:51:39 -07:00
Felix E
68f0cf419b Merge pull request #1148 from pReya/patch-1
fix: update scanner capability
2022-06-20 14:25:59 +02:00
Moritz Stückler
26b12512b1 fix: update scanner capability
The Brother ADS-A1700W does indeed support SFTP. I've just bought it, and set it up like this.
2022-06-20 12:06:54 +02:00
shamoon
e568b3000e Add lsio to issue form 2022-06-14 08:31:08 -07:00
Quinn Casey
666b938550 Merge pull request #990 from tooomm/patch-2
Docs: Fix headings and add links to PRs in changelog
2022-05-19 17:23:23 -07:00
tooomm
163231d307 Link issues, capitalization and minor fixes 2022-05-19 23:12:40 +02:00
tooomm
e530750fc6 update heading levels for v1.7.0 2022-05-19 22:05:43 +02:00
165 changed files with 15566 additions and 9852 deletions

View File

@@ -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.

View File

@@ -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

View File

@@ -1,3 +1,14 @@
autolabeler:
- label: "bug"
branch:
- '/^fix/'
title:
- "/^fix/i"
- label: "enhancement"
branch:
- '/^feature/'
title:
- "/^feature/i"
categories:
- title: 'Breaking Changes'
labels:
@@ -15,9 +26,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'
@@ -25,11 +42,12 @@ include-labels:
- 'deployment'
- 'translation'
- 'dependencies'
replacers: # Changes "Feature: Update checker" to "Update checker"
- search: '/Feature:|Feat:|\[feature\]/gi'
replace: ''
- 'documentation'
- 'frontend'
- 'backend'
- 'ci-cd'
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

View File

@@ -1,143 +1,41 @@
#!/usr/bin/env python3
import json
import logging
import os
import shutil
import subprocess
from argparse import ArgumentParser
from typing import Dict
from typing import Final
from typing import List
from urllib.parse import quote
import requests
from common import get_log_level
from github import ContainerPackage
from github import GithubBranchApi
from github import GithubContainerRegistryApi
logger = logging.getLogger("cleanup-tags")
class GithubContainerRegistry:
def __init__(
self,
session: requests.Session,
token: str,
owner_or_org: str,
):
self._session: requests.Session = session
self._token = token
self._owner_or_org = owner_or_org
# https://docs.github.com/en/rest/branches/branches
self._BRANCHES_ENDPOINT = "https://api.github.com/repos/{OWNER}/{REPO}/branches"
if self._owner_or_org == "paperless-ngx":
# https://docs.github.com/en/rest/packages#get-all-package-versions-for-a-package-owned-by-an-organization
self._PACKAGES_VERSIONS_ENDPOINT = "https://api.github.com/orgs/{ORG}/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions"
# https://docs.github.com/en/rest/packages#delete-package-version-for-an-organization
self._PACKAGE_VERSION_DELETE_ENDPOINT = "https://api.github.com/orgs/{ORG}/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions/{PACKAGE_VERSION_ID}"
else:
# https://docs.github.com/en/rest/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user
self._PACKAGES_VERSIONS_ENDPOINT = "https://api.github.com/user/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions"
# https://docs.github.com/en/rest/packages#delete-a-package-version-for-the-authenticated-user
self._PACKAGE_VERSION_DELETE_ENDPOINT = "https://api.github.com/user/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions/{PACKAGE_VERSION_ID}"
class DockerManifest2:
"""
Data class wrapping the Docker Image Manifest Version 2.
def __enter__(self):
self._session.headers.update(
{
"Accept": "application/vnd.github.v3+json",
"Authorization": f"token {self._token}",
},
See https://docs.docker.com/registry/spec/manifest-v2-2/
"""
def __init__(self, data: Dict) -> None:
self._data = data
# This is the sha256: digest string. Corresponds to Github API name
# if the package is an untagged package
self.digest = self._data["digest"]
platform_data_os = self._data["platform"]["os"]
platform_arch = self._data["platform"]["architecture"]
platform_variant = self._data["platform"].get(
"variant",
"",
)
return self
def __exit__(self, exc_type, exc_val, exc_tb):
if "Accept" in self._session.headers:
del self._session.headers["Accept"]
if "Authorization" in self._session.headers:
del self._session.headers["Authorization"]
def _read_all_pages(self, endpoint):
internal_data = []
while True:
resp = self._session.get(endpoint)
if resp.status_code == 200:
internal_data += resp.json()
if "next" in resp.links:
endpoint = resp.links["next"]["url"]
else:
logger.debug("Exiting pagination loop")
break
else:
logger.warning(f"Request to {endpoint} return HTTP {resp.status_code}")
break
return internal_data
def get_branches(self, repo: str):
endpoint = self._BRANCHES_ENDPOINT.format(OWNER=self._owner_or_org, REPO=repo)
internal_data = self._read_all_pages(endpoint)
return internal_data
def filter_branches_by_name_pattern(self, branch_data, pattern: str):
matches = {}
for branch in branch_data:
if branch["name"].startswith(pattern):
matches[branch["name"]] = branch
return matches
def get_package_versions(
self,
package_name: str,
package_type: str = "container",
) -> List:
package_name = quote(package_name, safe="")
endpoint = self._PACKAGES_VERSIONS_ENDPOINT.format(
ORG=self._owner_or_org,
PACKAGE_TYPE=package_type,
PACKAGE_NAME=package_name,
)
internal_data = self._read_all_pages(endpoint)
return internal_data
def filter_packages_by_tag_pattern(self, package_data, pattern: str):
matches = {}
for package in package_data:
if "metadata" in package and "container" in package["metadata"]:
container_metadata = package["metadata"]["container"]
if "tags" in container_metadata:
container_tags = container_metadata["tags"]
for tag in container_tags:
if tag.startswith(pattern):
matches[tag] = package
break
return matches
def filter_packages_untagged(self, package_data):
matches = {}
for package in package_data:
if "metadata" in package and "container" in package["metadata"]:
container_metadata = package["metadata"]["container"]
if "tags" in container_metadata:
container_tags = container_metadata["tags"]
if not len(container_tags):
matches[package["name"]] = package
return matches
def delete_package_version(self, package_name, package_data):
package_name = quote(package_name, safe="")
endpoint = self._PACKAGE_VERSION_DELETE_ENDPOINT.format(
ORG=self._owner_or_org,
PACKAGE_TYPE=package_data["metadata"]["package_type"],
PACKAGE_NAME=package_name,
PACKAGE_VERSION_ID=package_data["id"],
)
resp = self._session.delete(endpoint)
if resp.status_code != 204:
logger.warning(
f"Request to delete {endpoint} returned HTTP {resp.status_code}",
)
self.platform = f"{platform_data_os}/{platform_arch}{platform_variant}"
def _main():
@@ -146,6 +44,7 @@ def _main():
" tags which no longer have an associated feature branch",
)
# Requires an affirmative command to actually do a delete
parser.add_argument(
"--delete",
action="store_true",
@@ -153,7 +52,8 @@ def _main():
help="If provided, actually delete the container tags",
)
# TODO There's a lot of untagged images, do those need to stay for anything?
# When a tagged image is updated, the previous version remains, but it no longer tagged
# Add this option to remove them as well
parser.add_argument(
"--untagged",
action="store_true",
@@ -161,12 +61,28 @@ def _main():
help="If provided, delete untagged containers as well",
)
# If given, the package is assumed to be a multi-arch manifest. Cache packages are
# not multi-arch, all other types are
parser.add_argument(
"--is-manifest",
action="store_true",
default=False,
help="If provided, the package is assumed to be a multi-arch manifest following schema v2",
)
# Allows configuration of log level for debugging
parser.add_argument(
"--loglevel",
default="info",
help="Configures the logging level",
)
# Get the name of the package being processed this round
parser.add_argument(
"package",
help="The package to process",
)
args = parser.parse_args()
logging.basicConfig(
@@ -175,79 +91,199 @@ def _main():
format="%(asctime)s %(levelname)-8s %(message)s",
)
# Must be provided in the environment
repo_owner: Final[str] = os.environ["GITHUB_REPOSITORY_OWNER"]
repo: Final[str] = os.environ["GITHUB_REPOSITORY"]
gh_token: Final[str] = os.environ["GITHUB_TOKEN"]
gh_token: Final[str] = os.environ["TOKEN"]
with requests.session() as sess:
with GithubContainerRegistry(sess, gh_token, repo_owner) as gh_api:
all_branches = gh_api.get_branches("paperless-ngx")
logger.info(f"Located {len(all_branches)} branches of {repo_owner}/{repo} ")
# Find all branches named feature-*
# Note: Only relevant to the main application, but simpler to
# leave in for all packages
with GithubBranchApi(gh_token) as branch_api:
feature_branches = {}
for branch in branch_api.get_branches(
repo=repo,
):
if branch.name.startswith("feature-"):
logger.debug(f"Found feature branch {branch.name}")
feature_branches[branch.name] = branch
feature_branches = gh_api.filter_branches_by_name_pattern(
all_branches,
"feature-",
)
logger.info(f"Located {len(feature_branches)} feature branches")
logger.info(f"Located {len(feature_branches)} feature branches")
for package_name in ["paperless-ngx", "paperless-ngx/builder/cache/app"]:
with GithubContainerRegistryApi(gh_token, repo_owner) as container_api:
# Get the information about all versions of the given package
all_package_versions: List[
ContainerPackage
] = container_api.get_package_versions(args.package)
all_package_versions = gh_api.get_package_versions(package_name)
all_pkgs_tags_to_version: Dict[str, ContainerPackage] = {}
for pkg in all_package_versions:
for tag in pkg.tags:
all_pkgs_tags_to_version[tag] = pkg
logger.info(
f"Located {len(all_package_versions)} versions of package {args.package}",
)
# Filter to packages which are tagged with feature-*
packages_tagged_feature: List[ContainerPackage] = []
for package in all_package_versions:
if package.tag_matches("feature-"):
packages_tagged_feature.append(package)
feature_pkgs_tags_to_versions: Dict[str, ContainerPackage] = {}
for pkg in packages_tagged_feature:
for tag in pkg.tags:
feature_pkgs_tags_to_versions[tag] = pkg
logger.info(
f'Located {len(feature_pkgs_tags_to_versions)} versions of package {args.package} tagged "feature-"',
)
# All the feature tags minus all the feature branches leaves us feature tags
# with no corresponding branch
tags_to_delete = list(
set(feature_pkgs_tags_to_versions.keys()) - set(feature_branches.keys()),
)
# All the tags minus the set of going to be deleted tags leaves us the
# tags which will be kept around
tags_to_keep = list(
set(all_pkgs_tags_to_version.keys()) - set(tags_to_delete),
)
logger.info(
f"Located {len(tags_to_delete)} versions of package {args.package} to delete",
)
# Delete certain package versions for which no branch existed
for tag_to_delete in tags_to_delete:
package_version_info = feature_pkgs_tags_to_versions[tag_to_delete]
if args.delete:
logger.info(
f"Located {len(all_package_versions)} versions of package {package_name}",
f"Deleting {tag_to_delete} (id {package_version_info.id})",
)
container_api.delete_package_version(
package_version_info,
)
packages_tagged_feature = gh_api.filter_packages_by_tag_pattern(
all_package_versions,
"feature-",
)
else:
logger.info(
f'Located {len(packages_tagged_feature)} versions of package {package_name} tagged "feature-"',
f"Would delete {tag_to_delete} (id {package_version_info.id})",
)
untagged_packages = gh_api.filter_packages_untagged(
all_package_versions,
)
logger.info(
f"Located {len(untagged_packages)} untagged versions of package {package_name}",
)
# Deal with untagged package versions
if args.untagged:
to_delete = list(
set(packages_tagged_feature.keys()) - set(feature_branches.keys()),
)
logger.info(
f"Located {len(to_delete)} versions of package {package_name} to delete",
)
logger.info("Handling untagged image packages")
for tag_to_delete in to_delete:
package_version_info = packages_tagged_feature[tag_to_delete]
if args.delete:
logger.info(
f"Deleting {tag_to_delete} (id {package_version_info['id']})",
)
gh_api.delete_package_version(
package_name,
package_version_info,
)
if not args.is_manifest:
# If the package is not a multi-arch manifest, images without tags are safe to delete.
# They are not referred to by anything. This will leave all with at least 1 tag
for package in all_package_versions:
if package.untagged:
if args.delete:
logger.info(
f"Deleting id {package.id} named {package.name}",
)
container_api.delete_package_version(
package,
)
else:
logger.info(
f"Would delete {package.name} (id {package.id})",
)
else:
logger.info(
f"Would delete {tag_to_delete} (id {package_version_info['id']})",
f"Not deleting tag {package.tags[0]} of package {args.package}",
)
else:
"""
Ok, bear with me, these are annoying.
Our images are multi-arch, so the manifest is more like a pointer to a sha256 digest.
These images are untagged, but pointed to, and so should not be removed (or every pull fails).
So for each image getting kept, parse the manifest to find the digest(s) it points to. Then
remove those from the list of untagged images. The final result is the untagged, not pointed to
version which should be safe to remove.
Example:
Tag: ghcr.io/paperless-ngx/paperless-ngx:1.7.1 refers to
amd64: sha256:b9ed4f8753bbf5146547671052d7e91f68cdfc9ef049d06690b2bc866fec2690
armv7: sha256:81605222df4ba4605a2ba4893276e5d08c511231ead1d5da061410e1bbec05c3
arm64: sha256:374cd68db40734b844705bfc38faae84cc4182371de4bebd533a9a365d5e8f3b
each of which appears as untagged image, but isn't really.
So from the list of untagged packages, remove those digests. Once all tags which
are being kept are checked, the remaining untagged packages are actually untagged
with no referrals in a manifest to them.
"""
# Simplify the untagged data, mapping name (which is a digest) to the version
untagged_versions = {}
for x in all_package_versions:
if x.untagged:
untagged_versions[x.name] = x
skips = 0
# Extra security to not delete on an unexpected error
actually_delete = True
# Parse manifests to locate digests pointed to
for tag in sorted(tags_to_keep):
full_name = f"ghcr.io/{repo_owner}/{args.package}:{tag}"
logger.info(f"Checking manifest for {full_name}")
try:
proc = subprocess.run(
[
shutil.which("docker"),
"manifest",
"inspect",
full_name,
],
capture_output=True,
)
if args.untagged:
logger.info(f"Deleting untagged packages of {package_name}")
for to_delete_name in untagged_packages:
to_delete_version = untagged_packages[to_delete_name]
logger.info(f"Deleting id {to_delete_version['id']}")
if args.delete:
gh_api.delete_package_version(
package_name,
to_delete_version,
)
else:
logger.info("Leaving untagged images untouched")
manifest_list = json.loads(proc.stdout)
for manifest_data in manifest_list["manifests"]:
manifest = DockerManifest2(manifest_data)
if manifest.digest in untagged_versions:
logger.debug(
f"Skipping deletion of {manifest.digest}, referred to by {full_name} for {manifest.platform}",
)
del untagged_versions[manifest.digest]
skips += 1
except Exception as err:
actually_delete = False
logger.exception(err)
logger.info(
f"Skipping deletion of {skips} packages referred to by a manifest",
)
# Step 3.3 - Delete the untagged and not pointed at packages
logger.info(f"Deleting untagged packages of {args.package}")
for to_delete_name in untagged_versions:
to_delete_version = untagged_versions[to_delete_name]
if args.delete and actually_delete:
logger.info(
f"Deleting id {to_delete_version.id} named {to_delete_version.name}",
)
container_api.delete_package_version(
to_delete_version,
)
else:
logger.info(
f"Would delete {to_delete_name} (id {to_delete_version.id})",
)
else:
logger.info("Leaving untagged images untouched")
if __name__ == "__main__":

View File

@@ -1,6 +1,5 @@
#!/usr/bin/env python3
import logging
from argparse import ArgumentError
def get_image_tag(

227
.github/scripts/github.py vendored Normal file
View File

@@ -0,0 +1,227 @@
#!/usr/bin/env python3
"""
This module contains some useful classes for interacting with the Github API.
The full documentation for the API can be found here: https://docs.github.com/en/rest
Mostly, this focusses on two areas, repo branches and repo packages, as the use case
is cleaning up container images which are no longer referred to.
"""
import functools
import logging
import re
import urllib.parse
from typing import Dict
from typing import List
from typing import Optional
import requests
logger = logging.getLogger("github-api")
class _GithubApiBase:
"""
A base class for interacting with the Github API. It
will handle the session and setting authorization headers.
"""
def __init__(self, token: str) -> None:
self._token = token
self._session: Optional[requests.Session] = None
def __enter__(self) -> "_GithubApiBase":
"""
Sets up the required headers for auth and response
type from the API
"""
self._session = requests.Session()
self._session.headers.update(
{
"Accept": "application/vnd.github.v3+json",
"Authorization": f"token {self._token}",
},
)
return self
def __exit__(self, exc_type, exc_val, exc_tb):
"""
Ensures the authorization token is cleaned up no matter
the reason for the exit
"""
if "Accept" in self._session.headers:
del self._session.headers["Accept"]
if "Authorization" in self._session.headers:
del self._session.headers["Authorization"]
# Close the session as well
self._session.close()
self._session = None
def _read_all_pages(self, endpoint):
"""
Helper function to read all pages of an endpoint, utilizing the
next.url until exhausted. Assumes the endpoint returns a list
"""
internal_data = []
while True:
resp = self._session.get(endpoint)
if resp.status_code == 200:
internal_data += resp.json()
if "next" in resp.links:
endpoint = resp.links["next"]["url"]
else:
logger.debug("Exiting pagination loop")
break
else:
logger.warning(f"Request to {endpoint} return HTTP {resp.status_code}")
break
return internal_data
class _EndpointResponse:
"""
For all endpoint JSON responses, store the full
response data, for ease of extending later, if need be.
"""
def __init__(self, data: Dict) -> None:
self._data = data
class GithubBranch(_EndpointResponse):
"""
Simple wrapper for a repository branch, only extracts name information
for now.
"""
def __init__(self, data: Dict) -> None:
super().__init__(data)
self.name = self._data["name"]
class GithubBranchApi(_GithubApiBase):
"""
Wrapper around branch API.
See https://docs.github.com/en/rest/branches/branches
"""
def __init__(self, token: str) -> None:
super().__init__(token)
self._ENDPOINT = "https://api.github.com/repos/{REPO}/branches"
def get_branches(self, repo: str) -> List[GithubBranch]:
"""
Returns all current branches of the given repository owned by the given
owner or organization.
"""
endpoint = self._ENDPOINT.format(REPO=repo)
internal_data = self._read_all_pages(endpoint)
return [GithubBranch(branch) for branch in internal_data]
class ContainerPackage(_EndpointResponse):
"""
Data class wrapping the JSON response from the package related
endpoints
"""
def __init__(self, data: Dict):
super().__init__(data)
# This is a numerical ID, required for interactions with this
# specific package, including deletion of it or restoration
self.id: int = self._data["id"]
# A string name. This might be an actual name or it could be a
# digest string like "sha256:"
self.name: str = self._data["name"]
# URL to the package, including its ID, can be used for deletion
# or restoration without needing to build up a URL ourselves
self.url: str = self._data["url"]
# The list of tags applied to this image. Maybe an empty list
self.tags: List[str] = self._data["metadata"]["container"]["tags"]
@functools.cached_property
def untagged(self) -> bool:
"""
Returns True if the image has no tags applied to it, False otherwise
"""
return len(self.tags) == 0
@functools.cache
def tag_matches(self, pattern: str) -> bool:
"""
Returns True if the image has at least one tag which matches the given regex,
False otherwise
"""
for tag in self.tags:
if re.match(pattern, tag) is not None:
return True
return False
def __repr__(self):
return f"Package {self.name}"
class GithubContainerRegistryApi(_GithubApiBase):
"""
Class wrapper to deal with the Github packages API. This class only deals with
container type packages, the only type published by paperless-ngx.
"""
def __init__(self, token: str, owner_or_org: str) -> None:
super().__init__(token)
self._owner_or_org = owner_or_org
if self._owner_or_org == "paperless-ngx":
# https://docs.github.com/en/rest/packages#get-all-package-versions-for-a-package-owned-by-an-organization
self._PACKAGES_VERSIONS_ENDPOINT = "https://api.github.com/orgs/{ORG}/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions"
# https://docs.github.com/en/rest/packages#delete-package-version-for-an-organization
self._PACKAGE_VERSION_DELETE_ENDPOINT = "https://api.github.com/orgs/{ORG}/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions/{PACKAGE_VERSION_ID}"
else:
# https://docs.github.com/en/rest/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user
self._PACKAGES_VERSIONS_ENDPOINT = "https://api.github.com/user/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions"
# https://docs.github.com/en/rest/packages#delete-a-package-version-for-the-authenticated-user
self._PACKAGE_VERSION_DELETE_ENDPOINT = "https://api.github.com/user/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions/{PACKAGE_VERSION_ID}"
def get_package_versions(
self,
package_name: str,
) -> List[ContainerPackage]:
"""
Returns all the versions of a given package (container images) from
the API
"""
package_type: str = "container"
# Need to quote this for slashes in the name
package_name = urllib.parse.quote(package_name, safe="")
endpoint = self._PACKAGES_VERSIONS_ENDPOINT.format(
ORG=self._owner_or_org,
PACKAGE_TYPE=package_type,
PACKAGE_NAME=package_name,
)
pkgs = []
for data in self._read_all_pages(endpoint):
pkgs.append(ContainerPackage(data))
return pkgs
def delete_package_version(self, package_data: ContainerPackage):
"""
Deletes the given package version from the GHCR
"""
resp = self._session.delete(package_data.url)
if resp.status_code != 204:
logger.warning(
f"Request to delete {package_data.url} returned HTTP {resp.status_code}",
)

12
.github/stale.yml vendored
View File

@@ -1,15 +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
onlyLabels:
- unconfirmed
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: [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

View File

@@ -14,16 +14,38 @@ on:
- 'translations**'
jobs:
pre-commit:
name: Linting Checks
runs-on: ubuntu-latest
steps:
-
name: Checkout repository
uses: actions/checkout@v3
-
name: Install tools
uses: actions/setup-python@v4
with:
python-version: "3.9"
-
name: Check files
uses: pre-commit/action@v3.0.0
documentation:
name: "Build Documentation"
runs-on: ubuntu-20.04
needs:
- pre-commit
steps:
-
name: Checkout
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
@@ -35,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: |
@@ -47,11 +73,92 @@ jobs:
name: documentation
path: docs/_build/html/
ci-backend:
uses: ./.github/workflows/reusable-ci-backend.yml
tests-backend:
name: "Tests (${{ matrix.python-version }})"
runs-on: ubuntu-20.04
needs:
- pre-commit
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10']
fail-fast: false
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
-
name: Install pipenv
run: |
pipx install pipenv==2022.8.5
pipenv --version
-
name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "${{ matrix.python-version }}"
cache: "pipenv"
cache-dependency-path: 'Pipfile.lock'
-
name: Install system dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -qq --no-install-recommends unpaper tesseract-ocr imagemagick ghostscript libzbar0 poppler-utils
-
name: Install Python dependencies
run: |
pipenv sync --dev
-
name: List installed Python dependencies
run: |
pipenv run pip list
-
name: Tests
run: |
cd src/
pipenv run pytest
-
name: Get changed files
id: changed-files-specific
uses: tj-actions/changed-files@v29.0.2
with:
files: |
src/**
-
name: List all changed files
run: |
for file in ${{ steps.changed-files-specific.outputs.all_changed_files }}; do
echo "${file} was changed"
done
-
name: Publish coverage results
if: matrix.python-version == '3.9' && steps.changed-files-specific.outputs.any_changed == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# https://github.com/coveralls-clients/coveralls-python/issues/251
run: |
cd src/
pipenv run coveralls --service=github
ci-frontend:
uses: ./.github/workflows/reusable-ci-frontend.yml
tests-frontend:
name: "Tests Frontend"
runs-on: ubuntu-20.04
needs:
- pre-commit
strategy:
matrix:
node-version: [16.x]
steps:
- uses: actions/checkout@v3
-
name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: cd src-ui && npm ci
- run: cd src-ui && npm run test
- run: cd src-ui && npm run e2e:ci
prepare-docker-build:
name: Prepare Docker Pipeline Data
@@ -65,8 +172,8 @@ jobs:
cancel-in-progress: false
needs:
- documentation
- ci-backend
- ci-frontend
- tests-backend
- tests-frontend
steps:
-
name: Set ghcr repository name
@@ -243,18 +350,27 @@ jobs:
-
name: Checkout
uses: actions/checkout@v3
-
name: Install pipenv
run: |
pip3 install --upgrade pip setuptools wheel pipx
pipx install pipenv
-
name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
cache: "pipenv"
cache-dependency-path: 'Pipfile.lock'
-
name: Install dependencies
name: Install Python dependencies
run: |
pipenv sync --dev
-
name: Install system dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -qq --no-install-recommends gettext liblept5
pip3 install --upgrade pip setuptools wheel
pip3 install -r requirements.txt
-
name: Download frontend artifact
uses: actions/download-artifact@v3
@@ -267,34 +383,38 @@ jobs:
with:
name: documentation
path: docs/_build/html/
-
name: Generate requirements file
run: |
pipenv requirements > requirements.txt
-
name: Compile messages
run: |
cd src/
pipenv run python3 manage.py compilemessages
-
name: Collect static files
run: |
cd src/
pipenv run python3 manage.py collectstatic --no-input
-
name: Move files
run: |
mkdir dist
mkdir dist/paperless-ngx
mkdir dist/paperless-ngx/scripts
cp .dockerignore .env Dockerfile Pipfile Pipfile.lock LICENSE README.md requirements.txt dist/paperless-ngx/
cp .dockerignore .env Dockerfile Pipfile Pipfile.lock requirements.txt LICENSE README.md dist/paperless-ngx/
cp paperless.conf.example dist/paperless-ngx/paperless.conf
cp gunicorn.conf.py dist/paperless-ngx/gunicorn.conf.py
cp docker/ dist/paperless-ngx/docker -r
cp -r docker/ dist/paperless-ngx/docker
cp scripts/*.service scripts/*.sh dist/paperless-ngx/scripts/
cp src/ dist/paperless-ngx/src -r
cp docs/_build/html/ dist/paperless-ngx/docs -r
-
name: Compile messages
run: |
cd dist/paperless-ngx/src
python3 manage.py compilemessages
-
name: Collect static files
run: |
cd dist/paperless-ngx/src
python3 manage.py collectstatic --no-input
cp -r src/ dist/paperless-ngx/src
cp -r docs/_build/html/ dist/paperless-ngx/docs
mv static dist/paperless-ngx
-
name: Make release package
run: |
cd dist
find . -name __pycache__ | xargs rm -r
tar -cJf paperless-ngx.tar.xz paperless-ngx/
-
name: Upload release artifact
@@ -305,6 +425,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'))
@@ -328,7 +452,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 }}
@@ -348,6 +472,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 +489,35 @@ 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
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
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']
});

View File

@@ -1,3 +1,8 @@
# This workflow runs on certain conditions to check for and potentially
# delete container images from the GHCR which no longer have an associated
# code branch.
# Requires a PAT with the correct scope set in the secrets
name: Cleanup Image Tags
on:
@@ -11,17 +16,16 @@ on:
paths:
- ".github/workflows/cleanup-tags.yml"
- ".github/scripts/cleanup-tags.py"
- ".github/scripts/github.py"
- ".github/scripts/common.py"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
cleanup:
name: Cleanup Image Tags
runs-on: ubuntu-20.04
permissions:
packages: write
env:
# Requires a personal access token with the OAuth scope delete:packages
TOKEN: ${{ secrets.GHA_CONTAINER_DELETE_TOKEN }}
steps:
-
name: Checkout
@@ -37,12 +41,68 @@ jobs:
name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.9"
python-version: "3.10"
-
name: Install requests
run: |
python -m pip install requests
# Clean up primary packages
-
name: Cleanup feature tags
name: Cleanup for package "paperless-ngx"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --delete
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --is-manifest --delete "paperless-ngx"
-
name: Cleanup for package "qpdf"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --is-manifest --delete "paperless-ngx/builder/qpdf"
-
name: Cleanup for package "pikepdf"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --is-manifest --delete "paperless-ngx/builder/pikepdf"
-
name: Cleanup for package "jbig2enc"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --is-manifest --delete "paperless-ngx/builder/jbig2enc"
-
name: Cleanup for package "psycopg2"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --is-manifest --delete "paperless-ngx/builder/psycopg2"
#
# Clean up registry cache packages
#
-
name: Cleanup for package "builder/cache/app"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --delete "paperless-ngx/builder/cache/app"
-
name: Cleanup for package "builder/cache/qpdf"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --delete "paperless-ngx/builder/cache/qpdf"
-
name: Cleanup for package "builder/cache/psycopg2"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --delete "paperless-ngx/builder/cache/psycopg2"
-
name: Cleanup for package "builder/cache/jbig2enc"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --delete "paperless-ngx/builder/cache/jbig2enc"
-
name: Cleanup for package "builder/cache/pikepdf"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --loglevel info --untagged --delete "paperless-ngx/builder/cache/pikepdf"
-
name: Check all tags still pull
run: |
ghcr_name=$(echo "${GITHUB_REPOSITORY}" | awk '{ print tolower($0) }')
echo "Pulling all tags of ghcr.io/${ghcr_name}"
docker pull --quiet --all-tags ghcr.io/${ghcr_name}

View File

@@ -13,6 +13,9 @@ on:
- main
- dev
permissions:
contents: read
env:
todo: Todo
done: Done
@@ -24,8 +27,8 @@ 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 }}
uses: leonsteinhaeuser/project-beta-automations@v1.2.1
- name: Add issue to project and set status to ${{ env.todo }}
uses: leonsteinhaeuser/project-beta-automations@v1.3.0
with:
gh_token: ${{ secrets.GH_TOKEN }}
organization: paperless-ngx
@@ -35,13 +38,20 @@ jobs:
pr_opened_or_reopened:
name: pr_opened_or_reopened
runs-on: ubuntu-latest
if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened')
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'
steps:
- name: Set PR status to ${{ env.in_progress }}
uses: leonsteinhaeuser/project-beta-automations@v1.2.1
- name: Add PR to project and set status to "Needs Review"
uses: leonsteinhaeuser/project-beta-automations@v1.3.0
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:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,108 +0,0 @@
name: Backend CI Jobs
on:
workflow_call:
jobs:
code-checks-backend:
name: "Code Style Checks"
runs-on: ubuntu-20.04
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Install checkers
run: |
pipx install reorder-python-imports
pipx install yesqa
pipx install add-trailing-comma
pipx install flake8
-
name: Run reorder-python-imports
run: |
find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs reorder-python-imports
-
name: Run yesqa
run: |
find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs yesqa
-
name: Run add-trailing-comma
run: |
find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs add-trailing-comma
# black is placed after add-trailing-comma because it may format differently
# if a trailing comma is added
-
name: Run black
uses: psf/black@stable
with:
options: "--check --diff"
version: "22.3.0"
-
name: Run flake8 checks
run: |
cd src/
flake8 --max-line-length=88 --ignore=E203,W503
tests-backend:
name: "Tests (${{ matrix.python-version }})"
runs-on: ubuntu-20.04
needs:
- code-checks-backend
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10']
fail-fast: false
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
-
name: Install pipenv
run: pipx install pipenv
-
name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "${{ matrix.python-version }}"
cache: "pipenv"
cache-dependency-path: 'Pipfile.lock'
-
name: Install system dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -qq --no-install-recommends unpaper tesseract-ocr imagemagick ghostscript libzbar0 poppler-utils
-
name: Install Python dependencies
run: |
pipenv sync --dev
-
name: Tests
run: |
cd src/
pipenv run pytest
-
name: Get changed files
id: changed-files-specific
uses: tj-actions/changed-files@v23.1
with:
files: |
src/**
-
name: List all changed files
run: |
for file in ${{ steps.changed-files-specific.outputs.all_changed_files }}; do
echo "${file} was changed"
done
-
name: Publish coverage results
if: matrix.python-version == '3.9' && steps.changed-files-specific.outputs.any_changed == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# https://github.com/coveralls-clients/coveralls-python/issues/251
run: |
cd src/
pipenv run coveralls --service=github

View File

@@ -1,42 +0,0 @@
name: Frontend CI Jobs
on:
workflow_call:
jobs:
code-checks-frontend:
name: "Code Style Checks"
runs-on: ubuntu-20.04
steps:
-
name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16'
-
name: Install prettier
run: |
npm install prettier
-
name: Run prettier
run:
npx prettier --check --ignore-path Pipfile.lock **/*.js **/*.ts *.md **/*.md
tests-frontend:
name: "Tests"
runs-on: ubuntu-20.04
needs:
- code-checks-frontend
strategy:
matrix:
node-version: [16.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: cd src-ui && npm ci
- run: cd src-ui && npm run test
- run: cd src-ui && npm run e2e:ci

8
.hadolint.yml Normal file
View File

@@ -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

View File

@@ -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)"
@@ -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

View File

@@ -7,4 +7,3 @@
/src/ @paperless-ngx/backend
Pipfile* @paperless-ngx/backend
*.py @paperless-ngx/backend
requirements.txt @paperless-ngx/backend

View File

@@ -81,6 +81,7 @@ ARG RUNTIME_PACKAGES="\
python3-pip \
python3-setuptools \
postgresql-client \
mariadb-client \
# For Numpy
libatlas3-base \
# OCRmyPDF dependencies
@@ -90,6 +91,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
@@ -117,19 +122,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,25 +166,28 @@ 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
WORKDIR /usr/src/paperless/src/
# Python dependencies
# Change pretty frequently
COPY requirements.txt ../
COPY Pipfile* ./
# Packages needed only for building a few quick Python
# dependencies
ARG BUILD_PACKAGES="\
build-essential \
git \
default-libmysqlclient-dev \
python3-dev"
RUN set -eux \
@@ -188,20 +195,30 @@ RUN set -eux \
&& apt-get update \
&& apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \
&& python3 -m pip install --no-cache-dir --upgrade wheel \
&& echo "Installing pipenv" \
&& python3 -m pip install --no-cache-dir --upgrade pipenv \
&& echo "Installing Python requirements" \
&& python3 -m pip install --default-timeout=1000 --no-cache-dir -r ../requirements.txt \
# pipenv tries to be too fancy and prints so much junk
&& pipenv requirements > requirements.txt \
&& python3 -m pip install --default-timeout=1000 --no-cache-dir --requirement requirements.txt \
&& rm requirements.txt \
&& echo "Cleaning up image" \
&& apt-get -y purge ${BUILD_PACKAGES} \
&& apt-get -y autoremove --purge \
&& apt-get clean --yes \
# Remove pipenv and its unique packages
&& python3 -m pip uninstall --yes \
pipenv \
distlib \
platformdirs \
virtualenv \
virtualenv-clone \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /tmp/* \
&& rm -rf /var/tmp/* \
&& rm -rf /var/cache/apt/archives/* \
&& truncate -s 0 /var/log/*log
WORKDIR /usr/src/paperless/src/
# copy backend
COPY ./src ./

21
Pipfile
View File

@@ -23,19 +23,23 @@ imap-tools = "*"
langdetect = "*"
pathvalidate = "*"
pillow = "~=9.2"
pikepdf = "~=5.1"
pikepdf = "~=5.6"
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"
# https://github.com/paperless-ngx/paperless-ngx/issues/1364
numpy = "==1.22.3"
whitenoise = "~=6.2"
watchdog = "~=2.1"
whoosh="~=2.7"
inotifyrecursive = "~=0.3"
ocrmypdf = "~=13.4"
ocrmypdf = "~=13.7"
tqdm = "*"
tika = "*"
# TODO: This will sadly also install daphne+dependencies,
@@ -49,7 +53,8 @@ concurrent-log-handler = "*"
"importlib-resources" = {version = "*", markers = "python_version < '3.9'"}
zipp = {version = "*", markers = "python_version < '3.9'"}
pyzbar = "*"
pdf2image = "*"
mysqlclient = "*"
setproctitle = "*"
[dev-packages]
coveralls = "*"
@@ -61,7 +66,7 @@ pytest-django = "*"
pytest-env = "*"
pytest-sugar = "*"
pytest-xdist = "*"
sphinx = "~=5.0.2"
sphinx = "~=5.1"
sphinx_rtd_theme = "*"
tox = "*"
black = "*"

759
Pipfile.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -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/*

View File

@@ -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/*

View File

@@ -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/*

View File

@@ -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/*

View File

@@ -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

View File

@@ -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: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: docker.io/library/mariadb:10
restart: unless-stopped
volumes:
- dbdata:/var/lib/mysql
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: paperless
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: docker.io/gotenberg/gotenberg:7.4
restart: unless-stopped
environment:
CHROMIUM_DISABLE_ROUTES: 1
tika:
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped
volumes:
data:
media:
dbdata:
redisdata:

View File

@@ -0,0 +1,83 @@
# 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: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: docker.io/library/mariadb:10
restart: unless-stopped
volumes:
- dbdata:/var/lib/mysql
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
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: paperless
PAPERLESS_DBPASSWORD: paperless
PAPERLESS_DBPORT: 3306
volumes:
data:
media:
dbdata:
redisdata:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -50,6 +50,7 @@ map_folders() {
# Export these so they can be used in docker-prepare.sh
export DATA_DIR="${PAPERLESS_DATA_DIR:-/usr/src/paperless/data}"
export MEDIA_ROOT_DIR="${PAPERLESS_MEDIA_ROOT:-/usr/src/paperless/media}"
export CONSUME_DIR="${PAPERLESS_CONSUMPTION_DIR:-/usr/src/paperless/consume}"
}
initialize() {
@@ -62,7 +63,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}
@@ -76,7 +78,11 @@ initialize() {
local export_dir="/usr/src/paperless/export"
for dir in "${export_dir}" "${DATA_DIR}" "${DATA_DIR}/index" "${MEDIA_ROOT_DIR}" "${MEDIA_ROOT_DIR}/documents" "${MEDIA_ROOT_DIR}/documents/originals" "${MEDIA_ROOT_DIR}/documents/thumbnails"; do
for dir in \
"${export_dir}" \
"${DATA_DIR}" "${DATA_DIR}/index" \
"${MEDIA_ROOT_DIR}" "${MEDIA_ROOT_DIR}/documents" "${MEDIA_ROOT_DIR}/documents/originals" "${MEDIA_ROOT_DIR}/documents/thumbnails" \
"${CONSUME_DIR}"; do
if [[ ! -d "${dir}" ]]; then
echo "Creating directory ${dir}"
mkdir "${dir}"
@@ -90,12 +96,16 @@ initialize() {
set +e
echo "Adjusting permissions of paperless files. This may take a while."
chown -R paperless:paperless ${tmp_dir}
for dir in "${export_dir}" "${DATA_DIR}" "${MEDIA_ROOT_DIR}"; do
for dir in \
"${export_dir}" \
"${DATA_DIR}" \
"${MEDIA_ROOT_DIR}" \
"${CONSUME_DIR}"; do
find "${dir}" -not \( -user paperless -and -group paperless \) -exec chown paperless:paperless {} +
done
set -e
${gosu_cmd[@]} /sbin/docker-prepare.sh
"${gosu_cmd[@]}" /sbin/docker-prepare.sh
}
install_languages() {
@@ -138,7 +148,7 @@ install_languages() {
echo "Paperless-ngx docker container starting..."
gosu_cmd=(gosu paperless)
if [ $(id -u) == $(id -u paperless) ]; then
if [ "$(id -u)" == "$(id -u paperless)" ]; then
gosu_cmd=()
fi
@@ -151,7 +161,7 @@ initialize
if [[ "$1" != "/"* ]]; then
echo Executing management command "$@"
exec ${gosu_cmd[@]} python3 manage.py "$@"
exec "${gosu_cmd[@]}" python3 manage.py "$@"
else
echo Executing "$@"
exec "$@"

View File

@@ -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 ! true > /dev/tcp/$host/$port; do
if [ $attempt_num -eq $max_attempts ]; then
echo "Unable to connect to database."
exit 1
else
echo "Attempt $attempt_num failed! Trying again in 5 seconds..."
fi
attempt_num=$(("$attempt_num" + 1))
sleep 5
done
}
wait_for_redis() {
# We use a Python script to send the Redis ping
# instead of installing redis-tools just for 1 thing
@@ -66,7 +90,9 @@ superuser() {
}
do_work() {
if [[ -n "${PAPERLESS_DBHOST}" ]]; then
if [[ "${PAPERLESS_DBENGINE}" == "mariadb" ]]; then
wait_for_mariadb
elif [[ -n "${PAPERLESS_DBHOST}" ]]; then
wait_for_postgres
fi

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
rootless_args=()
if [ $(id -u) == $(id -u paperless) ]; then
if [ "$(id -u)" == "$(id -u paperless)" ]; then
rootless_args=(
--user
paperless
@@ -12,4 +12,4 @@ if [ $(id -u) == $(id -u paperless) ]; then
)
fi
/usr/local/bin/supervisord -c /etc/supervisord.conf ${rootless_args[@]}
exec /usr/local/bin/supervisord -c /etc/supervisord.conf "${rootless_args[@]}"

View File

@@ -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

View File

@@ -18,7 +18,7 @@ if __name__ == "__main__":
REDIS_URL: Final[str] = os.getenv("PAPERLESS_REDIS", "redis://localhost:6379")
print(f"Waiting for Redis: {REDIS_URL}", flush=True)
print(f"Waiting for Redis...", flush=True)
attempt = 0
with Redis.from_url(url=REDIS_URL) as client:
@@ -37,8 +37,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 redis using environment variable PAPERLESS_REDIS.")
sys.exit(os.EX_UNAVAILABLE)
else:
print(f"Connected to Redis broker: {REDIS_URL}")
print(f"Connected to Redis broker.")
sys.exit(os.EX_OK)

View File

@@ -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"]

View File

@@ -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)

View File

@@ -35,13 +35,15 @@ Options available to docker installations:
``/var/lib/docker/volumes`` on the host and you need to be root in order
to access them.
Paperless uses 3 volumes:
Paperless uses 4 volumes:
* ``paperless_media``: This is where your documents are stored.
* ``paperless_data``: This is where auxillary data is stored. This
folder also contains the SQLite database, if you use it.
* ``paperless_pgdata``: Exists only if you use PostgreSQL and contains
the database.
* ``paperless_dbdata``: Exists only if you use MariaDB and contains
the database.
Options available to bare-metal and non-docker installations:
@@ -49,7 +51,7 @@ Options available to bare-metal and non-docker installations:
crashes at some point or your disk fails, you can simply copy the folder back
into place and it works.
When using PostgreSQL, you'll also have to backup the database.
When using PostgreSQL or MariaDB, you'll also have to backup the database.
.. _migrating-restoring:
@@ -310,6 +312,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 +321,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.

View File

@@ -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.
@@ -217,7 +218,8 @@ using the identifier which it has assigned to each document. You will end up get
files like ``0000123.pdf`` in your media directory. This isn't necessarily a bad
thing, because you normally don't have to access these files manually. However, if
you wish to name your files differently, you can do that by adjusting the
``PAPERLESS_FILENAME_FORMAT`` configuration option.
``PAPERLESS_FILENAME_FORMAT`` configuration option. Paperless adds the correct
file extension e.g. ``.pdf``, ``.jpg`` automatically.
This variable allows you to configure the filename (folders are allowed) using
placeholders. For example, configuring this to

View File

@@ -1,5 +1,304 @@
# Changelog
## paperless-ngx 1.9.0
### Features
- Feature: Faster, less memory barcode handling [@stumpylog](https://github.com/stumpylog) ([#1594](https://github.com/paperless-ngx/paperless-ngx/pull/1594))
- Feature: Display django-q process names [@stumpylog](https://github.com/stumpylog) ([#1567](https://github.com/paperless-ngx/paperless-ngx/pull/1567))
- Feature: Add MariaDB support [@bckelly1](https://github.com/bckelly1) ([#543](https://github.com/paperless-ngx/paperless-ngx/pull/543))
- Feature: Simplify IMAP login for UTF-8 [@stumpylog](https://github.com/stumpylog) ([#1492](https://github.com/paperless-ngx/paperless-ngx/pull/1492))
- Feature: Even better re-do of OCR [@stumpylog](https://github.com/stumpylog) ([#1451](https://github.com/paperless-ngx/paperless-ngx/pull/1451))
- Feature: document comments [@tim-vogel](https://github.com/tim-vogel) ([#1375](https://github.com/paperless-ngx/paperless-ngx/pull/1375))
- Adding date suggestions to the documents details view [@Eckii24](https://github.com/Eckii24) ([#1367](https://github.com/paperless-ngx/paperless-ngx/pull/1367))
- Feature: Event driven consumer [@stumpylog](https://github.com/stumpylog) ([#1421](https://github.com/paperless-ngx/paperless-ngx/pull/1421))
- Feature: Adds storage paths to re-tagger command [@stumpylog](https://github.com/stumpylog) ([#1446](https://github.com/paperless-ngx/paperless-ngx/pull/1446))
- Feature: Preserve original filename in metadata [@GwynHannay](https://github.com/GwynHannay) ([#1440](https://github.com/paperless-ngx/paperless-ngx/pull/1440))
- Handle tags for gmail email accounts [@sisao](https://github.com/sisao) ([#1433](https://github.com/paperless-ngx/paperless-ngx/pull/1433))
- Update redis image [@tribut](https://github.com/tribut) ([#1436](https://github.com/paperless-ngx/paperless-ngx/pull/1436))
- PAPERLESS_REDIS may be set via docker secrets [@DennisGaida](https://github.com/DennisGaida) ([#1405](https://github.com/paperless-ngx/paperless-ngx/pull/1405))
### Bug Fixes
- paperless_cmd.sh: use exec to run supervisord [@lemmi](https://github.com/lemmi) ([#1617](https://github.com/paperless-ngx/paperless-ngx/pull/1617))
- Fix: Double barcode separation creates empty file [@stumpylog](https://github.com/stumpylog) ([#1596](https://github.com/paperless-ngx/paperless-ngx/pull/1596))
- Fix: Resolve issue with slow classifier [@stumpylog](https://github.com/stumpylog) ([#1576](https://github.com/paperless-ngx/paperless-ngx/pull/1576))
- Fix document comments not updating on document navigation [@shamoon](https://github.com/shamoon) ([#1566](https://github.com/paperless-ngx/paperless-ngx/pull/1566))
- Fix: Include storage paths in document exporter [@shamoon](https://github.com/shamoon) ([#1557](https://github.com/paperless-ngx/paperless-ngx/pull/1557))
- Chore: Cleanup and validate settings [@stumpylog](https://github.com/stumpylog) ([#1551](https://github.com/paperless-ngx/paperless-ngx/pull/1551))
- Bugfix: Better gunicorn settings for workers [@stumpylog](https://github.com/stumpylog) ([#1500](https://github.com/paperless-ngx/paperless-ngx/pull/1500))
- Fix actions button in tasks table [@shamoon](https://github.com/shamoon) ([#1488](https://github.com/paperless-ngx/paperless-ngx/pull/1488))
- Fix: Add missing filter rule types to SavedViewFilterRule model \& fix migrations [@shamoon](https://github.com/shamoon) ([#1463](https://github.com/paperless-ngx/paperless-ngx/pull/1463))
- Fix paperless.conf.example typo [@qcasey](https://github.com/qcasey) ([#1460](https://github.com/paperless-ngx/paperless-ngx/pull/1460))
- Bugfix: Fixes the creation of an archive file, even if noarchive was specified [@stumpylog](https://github.com/stumpylog) ([#1442](https://github.com/paperless-ngx/paperless-ngx/pull/1442))
- Fix: created_date should not be required [@shamoon](https://github.com/shamoon) ([#1412](https://github.com/paperless-ngx/paperless-ngx/pull/1412))
- Fix: dev backend testing [@stumpylog](https://github.com/stumpylog) ([#1420](https://github.com/paperless-ngx/paperless-ngx/pull/1420))
- Bugfix: Catch all exceptions during the task signals [@stumpylog](https://github.com/stumpylog) ([#1387](https://github.com/paperless-ngx/paperless-ngx/pull/1387))
- Fix: saved view page parameter [@shamoon](https://github.com/shamoon) ([#1376](https://github.com/paperless-ngx/paperless-ngx/pull/1376))
- Fix: Correct browser unsaved changes warning [@shamoon](https://github.com/shamoon) ([#1369](https://github.com/paperless-ngx/paperless-ngx/pull/1369))
- Fix: correct date pasting with other formats [@shamoon](https://github.com/shamoon) ([#1370](https://github.com/paperless-ngx/paperless-ngx/pull/1370))
- Bugfix: Allow webserver bind address to be configured [@stumpylog](https://github.com/stumpylog) ([#1358](https://github.com/paperless-ngx/paperless-ngx/pull/1358))
- Bugfix: Chain exceptions during exception handling [@stumpylog](https://github.com/stumpylog) ([#1354](https://github.com/paperless-ngx/paperless-ngx/pull/1354))
- Fix: missing tooltip translation \& filter editor wrapping [@shamoon](https://github.com/shamoon) ([#1305](https://github.com/paperless-ngx/paperless-ngx/pull/1305))
- Bugfix: Interaction between barcode and directories as tags [@stumpylog](https://github.com/stumpylog) ([#1303](https://github.com/paperless-ngx/paperless-ngx/pull/1303))
### Documentation
- [Beta] Paperless-ngx v1.9.0 Release Candidate [@stumpylog](https://github.com/stumpylog) ([#1560](https://github.com/paperless-ngx/paperless-ngx/pull/1560))
- docs/configuration: Fix binary variable defaults [@erikarvstedt](https://github.com/erikarvstedt) ([#1528](https://github.com/paperless-ngx/paperless-ngx/pull/1528))
- Info about installing on subpath [@viktor-c](https://github.com/viktor-c) ([#1350](https://github.com/paperless-ngx/paperless-ngx/pull/1350))
- Docs: move scanner \& software recs to GH wiki [@shamoon](https://github.com/shamoon) ([#1482](https://github.com/paperless-ngx/paperless-ngx/pull/1482))
- Docs: Update mobile scanner section [@tooomm](https://github.com/tooomm) ([#1467](https://github.com/paperless-ngx/paperless-ngx/pull/1467))
- Adding date suggestions to the documents details view [@Eckii24](https://github.com/Eckii24) ([#1367](https://github.com/paperless-ngx/paperless-ngx/pull/1367))
- docs: scanners: add Brother ads4700w [@ocelotsloth](https://github.com/ocelotsloth) ([#1450](https://github.com/paperless-ngx/paperless-ngx/pull/1450))
- Feature: Adds storage paths to re-tagger command [@stumpylog](https://github.com/stumpylog) ([#1446](https://github.com/paperless-ngx/paperless-ngx/pull/1446))
- Changes to Redis documentation [@Zerteax](https://github.com/Zerteax) ([#1441](https://github.com/paperless-ngx/paperless-ngx/pull/1441))
- Update scanners.rst [@glassbox-sco](https://github.com/glassbox-sco) ([#1430](https://github.com/paperless-ngx/paperless-ngx/pull/1430))
- Update scanners.rst [@derlucas](https://github.com/derlucas) ([#1415](https://github.com/paperless-ngx/paperless-ngx/pull/1415))
- Bugfix: Allow webserver bind address to be configured [@stumpylog](https://github.com/stumpylog) ([#1358](https://github.com/paperless-ngx/paperless-ngx/pull/1358))
- docs: fix small typo [@tooomm](https://github.com/tooomm) ([#1352](https://github.com/paperless-ngx/paperless-ngx/pull/1352))
- [Documentation] Add v1.8.0 changelog [@github-actions](https://github.com/github-actions) ([#1298](https://github.com/paperless-ngx/paperless-ngx/pull/1298))
### Maintenance
- [Beta] Paperless-ngx v1.9.0 Release Candidate [@stumpylog](https://github.com/stumpylog) ([#1560](https://github.com/paperless-ngx/paperless-ngx/pull/1560))
- paperless_cmd.sh: use exec to run supervisord [@lemmi](https://github.com/lemmi) ([#1617](https://github.com/paperless-ngx/paperless-ngx/pull/1617))
- Chore: Extended container image cleanup [@stumpylog](https://github.com/stumpylog) ([#1556](https://github.com/paperless-ngx/paperless-ngx/pull/1556))
- Chore: Smaller library images [@stumpylog](https://github.com/stumpylog) ([#1546](https://github.com/paperless-ngx/paperless-ngx/pull/1546))
- Bump tj-actions/changed-files from 24 to 29.0.2 [@dependabot](https://github.com/dependabot) ([#1493](https://github.com/paperless-ngx/paperless-ngx/pull/1493))
- Bugfix: Better gunicorn settings for workers [@stumpylog](https://github.com/stumpylog) ([#1500](https://github.com/paperless-ngx/paperless-ngx/pull/1500))
- [CI] Fix release drafter issues [@qcasey](https://github.com/qcasey) ([#1301](https://github.com/paperless-ngx/paperless-ngx/pull/1301))
- Fix: dev backend testing [@stumpylog](https://github.com/stumpylog) ([#1420](https://github.com/paperless-ngx/paperless-ngx/pull/1420))
- Chore: Exclude dependabot PRs from Project, set status to Needs Review [@qcasey](https://github.com/qcasey) ([#1397](https://github.com/paperless-ngx/paperless-ngx/pull/1397))
- Chore: Add to label PRs based on and title [@qcasey](https://github.com/qcasey) ([#1396](https://github.com/paperless-ngx/paperless-ngx/pull/1396))
- Chore: use pre-commit in the Ci workflow [@stumpylog](https://github.com/stumpylog) ([#1362](https://github.com/paperless-ngx/paperless-ngx/pull/1362))
- Chore: Fixes permissions for image tag cleanup [@stumpylog](https://github.com/stumpylog) ([#1315](https://github.com/paperless-ngx/paperless-ngx/pull/1315))
- Bump leonsteinhaeuser/project-beta-automations from 1.2.1 to 1.3.0 [@dependabot](https://github.com/dependabot) ([#1328](https://github.com/paperless-ngx/paperless-ngx/pull/1328))
- Bump tj-actions/changed-files from 23.1 to 24 [@dependabot](https://github.com/dependabot) ([#1329](https://github.com/paperless-ngx/paperless-ngx/pull/1329))
- Feature: Remove requirements.txt and use pipenv everywhere [@stumpylog](https://github.com/stumpylog) ([#1316](https://github.com/paperless-ngx/paperless-ngx/pull/1316))
### Dependencies
<details>
<summary>34 changes</summary>
- Bump pikepdf from 5.5.0 to 5.6.1 [@dependabot](https://github.com/dependabot) ([#1537](https://github.com/paperless-ngx/paperless-ngx/pull/1537))
- Bump black from 22.6.0 to 22.8.0 [@dependabot](https://github.com/dependabot) ([#1539](https://github.com/paperless-ngx/paperless-ngx/pull/1539))
- Bump tqdm from 4.64.0 to 4.64.1 [@dependabot](https://github.com/dependabot) ([#1540](https://github.com/paperless-ngx/paperless-ngx/pull/1540))
- Bump pytest from 7.1.2 to 7.1.3 [@dependabot](https://github.com/dependabot) ([#1538](https://github.com/paperless-ngx/paperless-ngx/pull/1538))
- Bump tj-actions/changed-files from 24 to 29.0.2 [@dependabot](https://github.com/dependabot) ([#1493](https://github.com/paperless-ngx/paperless-ngx/pull/1493))
- Bump angular packages, jest-preset-angular in src-ui [@dependabot](https://github.com/dependabot) ([#1502](https://github.com/paperless-ngx/paperless-ngx/pull/1502))
- Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1507](https://github.com/paperless-ngx/paperless-ngx/pull/1507))
- Bump [@<!---->types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot](https://github.com/<!---->types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot) ([#1506](https://github.com/paperless-ngx/paperless-ngx/pull/1506))
- Bump [@<!---->angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot](https://github.com/<!---->angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot) ([#1505](https://github.com/paperless-ngx/paperless-ngx/pull/1505))
- Bump zone.js from 0.11.7 to 0.11.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#1504](https://github.com/paperless-ngx/paperless-ngx/pull/1504))
- Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1494](https://github.com/paperless-ngx/paperless-ngx/pull/1494))
- Bump cypress from 10.3.1 to 10.7.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1496](https://github.com/paperless-ngx/paperless-ngx/pull/1496))
- Bump [@<!---->cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot](https://github.com/<!---->cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot) ([#1495](https://github.com/paperless-ngx/paperless-ngx/pull/1495))
- Bump [@<!---->popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot](https://github.com/<!---->popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot) ([#1498](https://github.com/paperless-ngx/paperless-ngx/pull/1498))
- Bump sphinx from 5.0.2 to 5.1.1 [@dependabot](https://github.com/dependabot) ([#1297](https://github.com/paperless-ngx/paperless-ngx/pull/1297))
- Chore: Bump Python dependencies [@stumpylog](https://github.com/stumpylog) ([#1445](https://github.com/paperless-ngx/paperless-ngx/pull/1445))
- Chore: Update Python deps [@stumpylog](https://github.com/stumpylog) ([#1391](https://github.com/paperless-ngx/paperless-ngx/pull/1391))
- Bump watchfiles from 0.15.0 to 0.16.1 [@dependabot](https://github.com/dependabot) ([#1285](https://github.com/paperless-ngx/paperless-ngx/pull/1285))
- Bump leonsteinhaeuser/project-beta-automations from 1.2.1 to 1.3.0 [@dependabot](https://github.com/dependabot) ([#1328](https://github.com/paperless-ngx/paperless-ngx/pull/1328))
- Bump tj-actions/changed-files from 23.1 to 24 [@dependabot](https://github.com/dependabot) ([#1329](https://github.com/paperless-ngx/paperless-ngx/pull/1329))
- Bump cypress from 10.3.0 to 10.3.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1342](https://github.com/paperless-ngx/paperless-ngx/pull/1342))
- Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1343](https://github.com/paperless-ngx/paperless-ngx/pull/1343))
- Bump [@<!---->angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot](https://github.com/<!---->angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot) ([#1330](https://github.com/paperless-ngx/paperless-ngx/pull/1330))
- Bump [@<!---->types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot](https://github.com/<!---->types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot) ([#1341](https://github.com/paperless-ngx/paperless-ngx/pull/1341))
- Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1340](https://github.com/paperless-ngx/paperless-ngx/pull/1340))
- Bump concurrently from 7.2.2 to 7.3.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1326](https://github.com/paperless-ngx/paperless-ngx/pull/1326))
- Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1337](https://github.com/paperless-ngx/paperless-ngx/pull/1337))
- Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#1336](https://github.com/paperless-ngx/paperless-ngx/pull/1336))
- Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1331](https://github.com/paperless-ngx/paperless-ngx/pull/1331))
- Bump jest and [@<!---->types/jest in /src-ui @dependabot](https://github.com/<!---->types/jest in /src-ui @dependabot) ([#1333](https://github.com/paperless-ngx/paperless-ngx/pull/1333))
- Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1327](https://github.com/paperless-ngx/paperless-ngx/pull/1327))
- Bump typescript from 4.6.4 to 4.7.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1324](https://github.com/paperless-ngx/paperless-ngx/pull/1324))
- Bump ts-node from 10.8.1 to 10.9.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1325](https://github.com/paperless-ngx/paperless-ngx/pull/1325))
- Bump rxjs from 7.5.5 to 7.5.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#1323](https://github.com/paperless-ngx/paperless-ngx/pull/1323))
</details>
### All App Changes
- [Beta] Paperless-ngx v1.9.0 Release Candidate [@stumpylog](https://github.com/stumpylog) ([#1560](https://github.com/paperless-ngx/paperless-ngx/pull/1560))
- Feature: Faster, less memory barcode handling [@stumpylog](https://github.com/stumpylog) ([#1594](https://github.com/paperless-ngx/paperless-ngx/pull/1594))
- Fix: Consume directory permissions were not updated [@stumpylog](https://github.com/stumpylog) ([#1605](https://github.com/paperless-ngx/paperless-ngx/pull/1605))
- Fix: Double barcode separation creates empty file [@stumpylog](https://github.com/stumpylog) ([#1596](https://github.com/paperless-ngx/paperless-ngx/pull/1596))
- Fix: Parsing Tika documents fails with AttributeError [@stumpylog](https://github.com/stumpylog) ([#1591](https://github.com/paperless-ngx/paperless-ngx/pull/1591))
- Fix: Resolve issue with slow classifier [@stumpylog](https://github.com/stumpylog) ([#1576](https://github.com/paperless-ngx/paperless-ngx/pull/1576))
- Feature: Display django-q process names [@stumpylog](https://github.com/stumpylog) ([#1567](https://github.com/paperless-ngx/paperless-ngx/pull/1567))
- Fix document comments not updating on document navigation [@shamoon](https://github.com/shamoon) ([#1566](https://github.com/paperless-ngx/paperless-ngx/pull/1566))
- Feature: Add MariaDB support [@bckelly1](https://github.com/bckelly1) ([#543](https://github.com/paperless-ngx/paperless-ngx/pull/543))
- Fix: Include storage paths in document exporter [@shamoon](https://github.com/shamoon) ([#1557](https://github.com/paperless-ngx/paperless-ngx/pull/1557))
- Chore: Cleanup and validate settings [@stumpylog](https://github.com/stumpylog) ([#1551](https://github.com/paperless-ngx/paperless-ngx/pull/1551))
- Bump pikepdf from 5.5.0 to 5.6.1 [@dependabot](https://github.com/dependabot) ([#1537](https://github.com/paperless-ngx/paperless-ngx/pull/1537))
- Bump black from 22.6.0 to 22.8.0 [@dependabot](https://github.com/dependabot) ([#1539](https://github.com/paperless-ngx/paperless-ngx/pull/1539))
- Bump tqdm from 4.64.0 to 4.64.1 [@dependabot](https://github.com/dependabot) ([#1540](https://github.com/paperless-ngx/paperless-ngx/pull/1540))
- Bump pytest from 7.1.2 to 7.1.3 [@dependabot](https://github.com/dependabot) ([#1538](https://github.com/paperless-ngx/paperless-ngx/pull/1538))
- Bump angular packages, jest-preset-angular in src-ui [@dependabot](https://github.com/dependabot) ([#1502](https://github.com/paperless-ngx/paperless-ngx/pull/1502))
- Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1507](https://github.com/paperless-ngx/paperless-ngx/pull/1507))
- Bump [@<!---->types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot](https://github.com/<!---->types/node from 18.6.3 to 18.7.14 in /src-ui @dependabot) ([#1506](https://github.com/paperless-ngx/paperless-ngx/pull/1506))
- Bump [@<!---->angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot](https://github.com/<!---->angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui @dependabot) ([#1505](https://github.com/paperless-ngx/paperless-ngx/pull/1505))
- Bump zone.js from 0.11.7 to 0.11.8 in /src-ui [@dependabot](https://github.com/dependabot) ([#1504](https://github.com/paperless-ngx/paperless-ngx/pull/1504))
- Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1494](https://github.com/paperless-ngx/paperless-ngx/pull/1494))
- Bump cypress from 10.3.1 to 10.7.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1496](https://github.com/paperless-ngx/paperless-ngx/pull/1496))
- Bump [@<!---->cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot](https://github.com/<!---->cypress/schematic from 2.0.0 to 2.1.1 in /src-ui @dependabot) ([#1495](https://github.com/paperless-ngx/paperless-ngx/pull/1495))
- Bump [@<!---->popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot](https://github.com/<!---->popperjs/core from 2.11.5 to 2.11.6 in /src-ui @dependabot) ([#1498](https://github.com/paperless-ngx/paperless-ngx/pull/1498))
- Feature: Simplify IMAP login for UTF-8 [@stumpylog](https://github.com/stumpylog) ([#1492](https://github.com/paperless-ngx/paperless-ngx/pull/1492))
- Fix actions button in tasks table [@shamoon](https://github.com/shamoon) ([#1488](https://github.com/paperless-ngx/paperless-ngx/pull/1488))
- Fix: Add missing filter rule types to SavedViewFilterRule model \& fix migrations [@shamoon](https://github.com/shamoon) ([#1463](https://github.com/paperless-ngx/paperless-ngx/pull/1463))
- Feature: Even better re-do of OCR [@stumpylog](https://github.com/stumpylog) ([#1451](https://github.com/paperless-ngx/paperless-ngx/pull/1451))
- Feature: document comments [@tim-vogel](https://github.com/tim-vogel) ([#1375](https://github.com/paperless-ngx/paperless-ngx/pull/1375))
- Adding date suggestions to the documents details view [@Eckii24](https://github.com/Eckii24) ([#1367](https://github.com/paperless-ngx/paperless-ngx/pull/1367))
- Bump sphinx from 5.0.2 to 5.1.1 [@dependabot](https://github.com/dependabot) ([#1297](https://github.com/paperless-ngx/paperless-ngx/pull/1297))
- Feature: Event driven consumer [@stumpylog](https://github.com/stumpylog) ([#1421](https://github.com/paperless-ngx/paperless-ngx/pull/1421))
- Bugfix: Fixes the creation of an archive file, even if noarchive was specified [@stumpylog](https://github.com/stumpylog) ([#1442](https://github.com/paperless-ngx/paperless-ngx/pull/1442))
- Feature: Adds storage paths to re-tagger command [@stumpylog](https://github.com/stumpylog) ([#1446](https://github.com/paperless-ngx/paperless-ngx/pull/1446))
- Feature: Preserve original filename in metadata [@GwynHannay](https://github.com/GwynHannay) ([#1440](https://github.com/paperless-ngx/paperless-ngx/pull/1440))
- Handle tags for gmail email accounts [@sisao](https://github.com/sisao) ([#1433](https://github.com/paperless-ngx/paperless-ngx/pull/1433))
- Fix: should not be required [@shamoon](https://github.com/shamoon) ([#1412](https://github.com/paperless-ngx/paperless-ngx/pull/1412))
- Bugfix: Catch all exceptions during the task signals [@stumpylog](https://github.com/stumpylog) ([#1387](https://github.com/paperless-ngx/paperless-ngx/pull/1387))
- Fix: saved view page parameter [@shamoon](https://github.com/shamoon) ([#1376](https://github.com/paperless-ngx/paperless-ngx/pull/1376))
- Fix: Correct browser unsaved changes warning [@shamoon](https://github.com/shamoon) ([#1369](https://github.com/paperless-ngx/paperless-ngx/pull/1369))
- Fix: correct date pasting with other formats [@shamoon](https://github.com/shamoon) ([#1370](https://github.com/paperless-ngx/paperless-ngx/pull/1370))
- Chore: use pre-commit in the Ci workflow [@stumpylog](https://github.com/stumpylog) ([#1362](https://github.com/paperless-ngx/paperless-ngx/pull/1362))
- Bugfix: Chain exceptions during exception handling [@stumpylog](https://github.com/stumpylog) ([#1354](https://github.com/paperless-ngx/paperless-ngx/pull/1354))
- Bump watchfiles from 0.15.0 to 0.16.1 [@dependabot](https://github.com/dependabot) ([#1285](https://github.com/paperless-ngx/paperless-ngx/pull/1285))
- Bump cypress from 10.3.0 to 10.3.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1342](https://github.com/paperless-ngx/paperless-ngx/pull/1342))
- Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1343](https://github.com/paperless-ngx/paperless-ngx/pull/1343))
- Bump [@<!---->angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot](https://github.com/<!---->angular/cli from 14.0.4 to 14.1.0 in /src-ui @dependabot) ([#1330](https://github.com/paperless-ngx/paperless-ngx/pull/1330))
- Bump [@<!---->types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot](https://github.com/<!---->types/node from 18.0.0 to 18.6.3 in /src-ui @dependabot) ([#1341](https://github.com/paperless-ngx/paperless-ngx/pull/1341))
- Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1340](https://github.com/paperless-ngx/paperless-ngx/pull/1340))
- Bump concurrently from 7.2.2 to 7.3.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1326](https://github.com/paperless-ngx/paperless-ngx/pull/1326))
- Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1337](https://github.com/paperless-ngx/paperless-ngx/pull/1337))
- Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui [@dependabot](https://github.com/dependabot) ([#1336](https://github.com/paperless-ngx/paperless-ngx/pull/1336))
- Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1331](https://github.com/paperless-ngx/paperless-ngx/pull/1331))
- Bump jest and [@<!---->types/jest in /src-ui @dependabot](https://github.com/<!---->types/jest in /src-ui @dependabot) ([#1333](https://github.com/paperless-ngx/paperless-ngx/pull/1333))
- Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1327](https://github.com/paperless-ngx/paperless-ngx/pull/1327))
- Bump typescript from 4.6.4 to 4.7.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1324](https://github.com/paperless-ngx/paperless-ngx/pull/1324))
- Bump ts-node from 10.8.1 to 10.9.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1325](https://github.com/paperless-ngx/paperless-ngx/pull/1325))
- Bump rxjs from 7.5.5 to 7.5.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#1323](https://github.com/paperless-ngx/paperless-ngx/pull/1323))
- Fix: missing tooltip translation \& filter editor wrapping [@shamoon](https://github.com/shamoon) ([#1305](https://github.com/paperless-ngx/paperless-ngx/pull/1305))
- Feature: Remove requirements.txt and use pipenv everywhere [@stumpylog](https://github.com/stumpylog) ([#1316](https://github.com/paperless-ngx/paperless-ngx/pull/1316))
- Bugfix: Interaction between barcode and directories as tags [@stumpylog](https://github.com/stumpylog) ([#1303](https://github.com/paperless-ngx/paperless-ngx/pull/1303))
## paperless-ngx 1.8.0
### Features
- Feature use env vars in pre post scripts [@ziprandom](https://github.com/ziprandom) ([#1154](https://github.com/paperless-ngx/paperless-ngx/pull/1154))
- frontend task queue [@shamoon](https://github.com/shamoon) ([#1020](https://github.com/paperless-ngx/paperless-ngx/pull/1020))
- Fearless scikit-learn updates [@stumpylog](https://github.com/stumpylog) ([#1082](https://github.com/paperless-ngx/paperless-ngx/pull/1082))
- Adds support for Docker secrets [@stumpylog](https://github.com/stumpylog) ([#1034](https://github.com/paperless-ngx/paperless-ngx/pull/1034))
- make frontend timezone un-aware [@shamoon](https://github.com/shamoon) ([#957](https://github.com/paperless-ngx/paperless-ngx/pull/957))
- Change document thumbnails to WebP [@stumpylog](https://github.com/stumpylog) ([#1127](https://github.com/paperless-ngx/paperless-ngx/pull/1127))
- Fork django-q to update dependencies [@stumpylog](https://github.com/stumpylog) ([#1014](https://github.com/paperless-ngx/paperless-ngx/pull/1014))
- Fix: Rework query params logic [@shamoon](https://github.com/shamoon) ([#1000](https://github.com/paperless-ngx/paperless-ngx/pull/1000))
- Enhancement: show note on language change and offer reload [@shamoon](https://github.com/shamoon) ([#1030](https://github.com/paperless-ngx/paperless-ngx/pull/1030))
- Include error information when Redis connection fails [@stumpylog](https://github.com/stumpylog) ([#1016](https://github.com/paperless-ngx/paperless-ngx/pull/1016))
- frontend settings saved to database [@shamoon](https://github.com/shamoon) ([#919](https://github.com/paperless-ngx/paperless-ngx/pull/919))
- Add "Created" as additional (optional) parameter for post_documents [@eingemaischt](https://github.com/eingemaischt) ([#965](https://github.com/paperless-ngx/paperless-ngx/pull/965))
- Convert Changelog to markdown, auto-commit future changelogs [@qcasey](https://github.com/qcasey) ([#935](https://github.com/paperless-ngx/paperless-ngx/pull/935))
- allow all ASN filtering functions [@shamoon](https://github.com/shamoon) ([#920](https://github.com/paperless-ngx/paperless-ngx/pull/920))
- gunicorn: Allow IPv6 sockets [@vlcty](https://github.com/vlcty) ([#924](https://github.com/paperless-ngx/paperless-ngx/pull/924))
- initial app loading indicators [@shamoon](https://github.com/shamoon) ([#899](https://github.com/paperless-ngx/paperless-ngx/pull/899))
### Bug Fixes
- Fix: dropdown selected items not visible again [@shamoon](https://github.com/shamoon) ([#1261](https://github.com/paperless-ngx/paperless-ngx/pull/1261))
- [CI] Fix automatic changelog generation on release [@qcasey](https://github.com/qcasey) ([#1249](https://github.com/paperless-ngx/paperless-ngx/pull/1249))
- Fix: Prevent duplicate api calls on text filtering [@shamoon](https://github.com/shamoon) ([#1133](https://github.com/paperless-ngx/paperless-ngx/pull/1133))
- make frontend timezone un-aware [@shamoon](https://github.com/shamoon) ([#957](https://github.com/paperless-ngx/paperless-ngx/pull/957))
- Feature / fix quick toggleable filters [@shamoon](https://github.com/shamoon) ([#1122](https://github.com/paperless-ngx/paperless-ngx/pull/1122))
- Chore: Manually downgrade reportlab (and update everything else) [@stumpylog](https://github.com/stumpylog) ([#1116](https://github.com/paperless-ngx/paperless-ngx/pull/1116))
- Bugfix: Don't assume default Docker folders [@stumpylog](https://github.com/stumpylog) ([#1088](https://github.com/paperless-ngx/paperless-ngx/pull/1088))
- Bugfix: Better sanity check messages [@stumpylog](https://github.com/stumpylog) ([#1049](https://github.com/paperless-ngx/paperless-ngx/pull/1049))
- Fix vertical margins between pages of pdf viewer [@shamoon](https://github.com/shamoon) ([#1081](https://github.com/paperless-ngx/paperless-ngx/pull/1081))
- Bugfix: Pass debug setting on to django-q [@stumpylog](https://github.com/stumpylog) ([#1058](https://github.com/paperless-ngx/paperless-ngx/pull/1058))
- Bugfix: Don't assume the document has a title set [@stumpylog](https://github.com/stumpylog) ([#1057](https://github.com/paperless-ngx/paperless-ngx/pull/1057))
- Bugfix: Corrects the setting of max pixel size for OCR [@stumpylog](https://github.com/stumpylog) ([#1008](https://github.com/paperless-ngx/paperless-ngx/pull/1008))
- better date pasting [@shamoon](https://github.com/shamoon) ([#1007](https://github.com/paperless-ngx/paperless-ngx/pull/1007))
- Enhancement: Alphabetize tags by default [@shamoon](https://github.com/shamoon) ([#1017](https://github.com/paperless-ngx/paperless-ngx/pull/1017))
- Fix: Rework query params logic [@shamoon](https://github.com/shamoon) ([#1000](https://github.com/paperless-ngx/paperless-ngx/pull/1000))
- Fix: add translation for some un-translated tooltips [@shamoon](https://github.com/shamoon) ([#995](https://github.com/paperless-ngx/paperless-ngx/pull/995))
- Change npm --no-optional to --omit=optional [@shamoon](https://github.com/shamoon) ([#986](https://github.com/paperless-ngx/paperless-ngx/pull/986))
- Add `myst-parser` to fix readthedocs [@qcasey](https://github.com/qcasey) ([#982](https://github.com/paperless-ngx/paperless-ngx/pull/982))
- Fix: Title is changed after switching doc quickly [@shamoon](https://github.com/shamoon) ([#979](https://github.com/paperless-ngx/paperless-ngx/pull/979))
- Fix: warn when closing a document with unsaved changes due to max open docs [@shamoon](https://github.com/shamoon) ([#956](https://github.com/paperless-ngx/paperless-ngx/pull/956))
- Bugfix: Adds configurable intoify debounce time [@stumpylog](https://github.com/stumpylog) ([#953](https://github.com/paperless-ngx/paperless-ngx/pull/953))
- Bugfix: Fixes document filename date off by 1 issue [@stumpylog](https://github.com/stumpylog) ([#942](https://github.com/paperless-ngx/paperless-ngx/pull/942))
- fixes #<!---->949: change to MIME detection for files [@gador](https://github.com/gador) ([#962](https://github.com/paperless-ngx/paperless-ngx/pull/962))
- docs: fix some typos [@Berjou](https://github.com/Berjou) ([#948](https://github.com/paperless-ngx/paperless-ngx/pull/948))
- [Docs] Fix 2 small typos [@tooomm](https://github.com/tooomm) ([#946](https://github.com/paperless-ngx/paperless-ngx/pull/946))
- [Readme] Fix typo [@tooomm](https://github.com/tooomm) ([#941](https://github.com/paperless-ngx/paperless-ngx/pull/941))
- Fix: management pages plurals incorrect in other languages [@shamoon](https://github.com/shamoon) ([#939](https://github.com/paperless-ngx/paperless-ngx/pull/939))
- Fix: v1.7.1 frontend visual fixes [@shamoon](https://github.com/shamoon) ([#933](https://github.com/paperless-ngx/paperless-ngx/pull/933))
- Fix: unassigned query params ignored [@shamoon](https://github.com/shamoon) ([#930](https://github.com/paperless-ngx/paperless-ngx/pull/930))
- Fix: allow commas in non-multi rules query params [@shamoon](https://github.com/shamoon) ([#923](https://github.com/paperless-ngx/paperless-ngx/pull/923))
- Fix: Include version in export for better error messages [@stumpylog](https://github.com/stumpylog) ([#883](https://github.com/paperless-ngx/paperless-ngx/pull/883))
- Bugfix: Superuser Management Won't Reset Password [@stumpylog](https://github.com/stumpylog) ([#903](https://github.com/paperless-ngx/paperless-ngx/pull/903))
- Fix Ignore Date Parsing [@stumpylog](https://github.com/stumpylog) ([#721](https://github.com/paperless-ngx/paperless-ngx/pull/721))
### Documentation
- Feature use env vars in pre post scripts [@ziprandom](https://github.com/ziprandom) ([#1154](https://github.com/paperless-ngx/paperless-ngx/pull/1154))
- Add `myst-parser` to fix readthedocs [@qcasey](https://github.com/qcasey) ([#982](https://github.com/paperless-ngx/paperless-ngx/pull/982))
- Add "Created" as additional (optional) parameter for post_documents [@eingemaischt](https://github.com/eingemaischt) ([#965](https://github.com/paperless-ngx/paperless-ngx/pull/965))
- Bugfix: Adds configurable intoify debounce time [@stumpylog](https://github.com/stumpylog) ([#953](https://github.com/paperless-ngx/paperless-ngx/pull/953))
- docs: fix some typos [@Berjou](https://github.com/Berjou) ([#948](https://github.com/paperless-ngx/paperless-ngx/pull/948))
- [Docs] Fix 2 small typos [@tooomm](https://github.com/tooomm) ([#946](https://github.com/paperless-ngx/paperless-ngx/pull/946))
- Convert Changelog to markdown, auto-commit future changelogs [@qcasey](https://github.com/qcasey) ([#935](https://github.com/paperless-ngx/paperless-ngx/pull/935))
- [Readme] Fix typo [@tooomm](https://github.com/tooomm) ([#941](https://github.com/paperless-ngx/paperless-ngx/pull/941))
### Maintenance
- Adds support for Docker secrets [@stumpylog](https://github.com/stumpylog) ([#1034](https://github.com/paperless-ngx/paperless-ngx/pull/1034))
- Bugfix: Don't assume default Docker folders [@stumpylog](https://github.com/stumpylog) ([#1088](https://github.com/paperless-ngx/paperless-ngx/pull/1088))
- Include error information when Redis connection fails [@stumpylog](https://github.com/stumpylog) ([#1016](https://github.com/paperless-ngx/paperless-ngx/pull/1016))
- Fix: add translation for some un-translated tooltips [@shamoon](https://github.com/shamoon) ([#995](https://github.com/paperless-ngx/paperless-ngx/pull/995))
- gunicorn: Allow IPv6 sockets [@vlcty](https://github.com/vlcty) ([#924](https://github.com/paperless-ngx/paperless-ngx/pull/924))
### Dependencies
<details>
<summary>34 changes</summary>
- Fearless scikit-learn updates [@stumpylog](https://github.com/stumpylog) ([#1082](https://github.com/paperless-ngx/paperless-ngx/pull/1082))
- Bump pillow from 9.1.1 to 9.2.0 [@dependabot](https://github.com/dependabot) ([#1193](https://github.com/paperless-ngx/paperless-ngx/pull/1193))
- Bump watchdog from 2.1.8 to 2.1.9 [@dependabot](https://github.com/dependabot) ([#1132](https://github.com/paperless-ngx/paperless-ngx/pull/1132))
- Bump scikit-learn from 1.0.2 to 1.1.1 [@dependabot](https://github.com/dependabot) ([#992](https://github.com/paperless-ngx/paperless-ngx/pull/992))
- Bump setuptools from 62.3.3 to 62.6.0 [@dependabot](https://github.com/dependabot) ([#1150](https://github.com/paperless-ngx/paperless-ngx/pull/1150))
- Bump django-filter from 21.1 to 22.1 [@dependabot](https://github.com/dependabot) ([#1191](https://github.com/paperless-ngx/paperless-ngx/pull/1191))
- Bump actions/setup-python from 3 to 4 [@dependabot](https://github.com/dependabot) ([#1176](https://github.com/paperless-ngx/paperless-ngx/pull/1176))
- Bump sphinx from 4.5.0 to 5.0.2 [@dependabot](https://github.com/dependabot) ([#1151](https://github.com/paperless-ngx/paperless-ngx/pull/1151))
- Bump docker/metadata-action from 3 to 4 [@dependabot](https://github.com/dependabot) ([#1178](https://github.com/paperless-ngx/paperless-ngx/pull/1178))
- Bump tj-actions/changed-files from 22.1 to 23.1 [@dependabot](https://github.com/dependabot) ([#1179](https://github.com/paperless-ngx/paperless-ngx/pull/1179))
- Bump @<!---->angular/cli from 13.3.7 to 14.0.4 in /src-ui [@dependabot](https://github.com/dependabot) ([#1177](https://github.com/paperless-ngx/paperless-ngx/pull/1177))
- Bump cypress from 10.0.1 to 10.3.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1187](https://github.com/paperless-ngx/paperless-ngx/pull/1187))
- Bump zone.js from 0.11.5 to 0.11.6 in /src-ui [@dependabot](https://github.com/dependabot) ([#1185](https://github.com/paperless-ngx/paperless-ngx/pull/1185))
- Bump ts-node from 10.8.0 to 10.8.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1184](https://github.com/paperless-ngx/paperless-ngx/pull/1184))
- Bump jest-environment-jsdom from 28.1.0 to 28.1.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1175](https://github.com/paperless-ngx/paperless-ngx/pull/1175))
- Bump @<!---->types/node from 17.0.38 to 18.0.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1183](https://github.com/paperless-ngx/paperless-ngx/pull/1183))
- Bump concurrently from 7.2.1 to 7.2.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1181](https://github.com/paperless-ngx/paperless-ngx/pull/1181))
- Bump jest-preset-angular from 12.0.1 to 12.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1182](https://github.com/paperless-ngx/paperless-ngx/pull/1182))
- Bump jest and @<!---->types/jest in /src-ui [@dependabot](https://github.com/dependabot) ([#1180](https://github.com/paperless-ngx/paperless-ngx/pull/1180))
- Bump whitenoise from 6.1.0 to 6.2.0 [@dependabot](https://github.com/dependabot) ([#1103](https://github.com/paperless-ngx/paperless-ngx/pull/1103))
- Bump cypress from 9.6.1 to 10.0.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1083](https://github.com/paperless-ngx/paperless-ngx/pull/1083))
- Bump docker/setup-qemu-action from 1 to 2 [@dependabot](https://github.com/dependabot) ([#1065](https://github.com/paperless-ngx/paperless-ngx/pull/1065))
- Bump docker/setup-buildx-action from 1 to 2 [@dependabot](https://github.com/dependabot) ([#1064](https://github.com/paperless-ngx/paperless-ngx/pull/1064))
- Bump docker/build-push-action from 2 to 3 [@dependabot](https://github.com/dependabot) ([#1063](https://github.com/paperless-ngx/paperless-ngx/pull/1063))
- Bump @<!---->cypress/schematic from 1.7.0 to 2.0.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1075](https://github.com/paperless-ngx/paperless-ngx/pull/1075))
- Bump tj-actions/changed-files from 19 to 22.1 [@dependabot](https://github.com/dependabot) ([#1062](https://github.com/paperless-ngx/paperless-ngx/pull/1062))
- Bump concurrently from 7.1.0 to 7.2.1 in /src-ui [@dependabot](https://github.com/dependabot) ([#1073](https://github.com/paperless-ngx/paperless-ngx/pull/1073))
- Bump @<!---->types/jest from 27.4.1 to 27.5.2 in /src-ui [@dependabot](https://github.com/dependabot) ([#1074](https://github.com/paperless-ngx/paperless-ngx/pull/1074))
- Bump ts-node from 10.7.0 to 10.8.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1070](https://github.com/paperless-ngx/paperless-ngx/pull/1070))
- Bump jest from 28.0.3 to 28.1.0 in /src-ui [@dependabot](https://github.com/dependabot) ([#1071](https://github.com/paperless-ngx/paperless-ngx/pull/1071))
- Chore: npm package updates 22-06-01 [@shamoon](https://github.com/shamoon) ([#1069](https://github.com/paperless-ngx/paperless-ngx/pull/1069))
- Bump docker/login-action from 1 to 2 [@dependabot](https://github.com/dependabot) ([#1061](https://github.com/paperless-ngx/paperless-ngx/pull/1061))
- Chore: Manually update dependencies [@stumpylog](https://github.com/stumpylog) ([#1013](https://github.com/paperless-ngx/paperless-ngx/pull/1013))
- Chore: Manually update all Python dependencies [@stumpylog](https://github.com/stumpylog) ([#973](https://github.com/paperless-ngx/paperless-ngx/pull/973))
</details>
## paperless-ngx 1.7.1
### Features
@@ -17,7 +316,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))
@@ -70,137 +369,137 @@
## 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)
- 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
### 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
### 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
### 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
### 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 +515,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:

View File

@@ -27,11 +27,23 @@ PAPERLESS_REDIS=<url>
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://<username>:<password>@<host>:<port>``
* With the requirepass option PAPERLESS_REDIS = ``redis://:<password>@<host>:<port>``
`More information on securing your Redis Instance <https://redis.io/docs/getting-started/#securing-redis>`_.
Defaults to redis://localhost:6379.
PAPERLESS_DBENGINE=<engine_name>
Optional, gives the ability to choose Postgres or MariaDB for database engine.
Available options are `postgresql` and `mariadb`.
Default is `postgresql`.
PAPERLESS_DBHOST=<hostname>
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 another database will be used instead of sqlite.
PAPERLESS_DBPORT=<port>
Adjust port if necessary.
@@ -39,17 +51,17 @@ PAPERLESS_DBPORT=<port>
Default is 5432.
PAPERLESS_DBNAME=<name>
Database name in PostgreSQL.
Database name in PostgreSQL or MariaDB.
Defaults to "paperless".
PAPERLESS_DBUSER=<name>
Database user in PostgreSQL.
Database user in PostgreSQL or MariaDB.
Defaults to "paperless".
PAPERLESS_DBPASS=<password>
Database password for PostgreSQL.
Database password for PostgreSQL or MariaDB.
Defaults to "paperless".
@@ -60,6 +72,13 @@ PAPERLESS_DBSSLMODE=<mode>
Default is ``prefer``.
PAPERLESS_DB_TIMEOUT=<float>
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
#################
@@ -202,9 +221,16 @@ PAPERLESS_FORCE_SCRIPT_NAME=<path>
PAPERLESS_STATIC_URL=<path>
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=<username>
Specify a username here so that paperless will automatically perform login
with the selected user.
@@ -734,6 +760,19 @@ PAPERLESS_FILENAME_DATE_ORDER=<format>
Defaults to none, which disables this feature.
PAPERLESS_NUMBER_OF_SUGGESTED_DATES=<num>
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.
The task to find all dates can be time-consuming and increases with a higher
(maximum) number of suggested dates and slower hardware.
Defaults to 3. Set to 0 to disable this feature.
PAPERLESS_THUMBNAIL_FONT_NAME=<filename>
Paperless creates thumbnails for plain text files by rendering the content
of the file on an image and uses a predefined font for that. This
@@ -779,10 +818,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=<path>
Defaults to "/usr/bin/convert".
Defaults to "convert".
PAPERLESS_GS_BINARY=<path>
Defaults to "/usr/bin/gs".
Defaults to "gs".
.. _configuration-docker:
@@ -801,6 +840,13 @@ PAPERLESS_WEBSERVER_WORKERS=<num>
Defaults to 1.
PAPERLESS_BIND_ADDR=<ip address>
The IP address the webserver will listen on inside the container. There are
special setups where you may need to configure this value to restrict the
Ip address or interface the webserver listens on.
Defaults to [::], meaning all interfaces, including IPv6.
PAPERLESS_PORT=<port>
The port number the webserver will listen on inside the container. There are
special setups where you may need this to avoid collisions with other

View File

@@ -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

View File

@@ -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 <usage-email>`
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 <utilities-encyption>` about GnuPG encryption in

View File

@@ -1,142 +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 | |`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 | `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`_ |
+---------+-------------------+-----+------+-----+----------+------+----------+----------------+
.. _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
.. _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/
.. _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
.. [1] Scanners with API Integration allow to push scanned documents directly to :ref:`Paperless API <api-file_uploads>`, 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 <configuration-polling>` and :ref:`inotify <configuration-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 | |
+=============================+================+=====+=====+=====+=======+========+==================+
| `Office Lens`_ | Android | ? | ? | ? | ? | ? | `jonaswinkler`_ |
+-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+
| `Genius Scan`_ | Android | yes | no | yes | yes | yes | `hannahswain`_ |
+-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+
| `OpenScan`_ | Android | no | no | no | no | no | `benjaminfrank`_ |
+-----------------------------+----------------+-----+-----+-----+-------+--------+------------------+
| `OCR Scanner - 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 <usage-mobile_upload>` 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.
.. _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
.. _OpenScan: https://github.com/Ethereal-Developers-Inc/OpenScan
.. _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 <api-file_uploads>`.
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 <https://github.com/paperless-ngx/paperless-ngx/wiki/Scanner-&-Software-Recommendations>`_.

View File

@@ -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
@@ -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
@@ -316,11 +317,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
@@ -339,7 +342,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)
@@ -361,7 +364,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 +380,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

View File

@@ -301,3 +301,19 @@ try adjusting the :ref:`polling configuration <configuration-polling>`.
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::
[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.
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.

View File

@@ -1,9 +1,17 @@
import os
bind = f'[::]:{os.getenv("PAPERLESS_PORT", 8000)}'
# 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):

View File

@@ -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 ""
@@ -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,7 +224,7 @@ if [[ "$DATABASE_BACKEND" == "postgres" ]] ; then
echo ""
ask_docker_folder "Database folder" ""
POSTGRES_FOLDER=$ask_result
DATABASE_FOLDER=$ask_result
fi
echo ""
@@ -278,13 +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
echo ""
echo "URL: $URL"
echo "Port: $PORT"
@@ -356,9 +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
# 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
@@ -375,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

View File

@@ -64,11 +64,12 @@
#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
#PAPERLESS_FILENAME_PARSE_TRANSFORMS=[]
#PAPERLESS_NUMBER_OF_SUGGESTED_DATES=5
#PAPERLESS_THUMBNAIL_FONT_NAME=
#PAPERLESS_IGNORE_DATES=
#PAPERLESS_ENABLE_UPDATE_CHECK=

View File

@@ -1,108 +0,0 @@
-i https://pypi.python.org/simple
--extra-index-url https://www.piwheels.org/simple
aioredis==1.3.1
anyio==3.6.1; python_full_version >= '3.6.2'
arrow==1.2.2; python_version >= '3.6'
asgiref==3.5.2; python_version >= '3.7'
async-timeout==4.0.2; python_version >= '3.6'
attrs==21.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
autobahn==22.6.1; python_version >= '3.7'
automat==20.2.0
backports.zoneinfo==0.2.1; python_version < '3.9'
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
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'
concurrent-log-handler==0.9.20
constantly==15.1.0
cryptography==37.0.4; python_version >= '3.6'
daphne==3.0.2; python_version >= '3.6'
dateparser==1.1.1
deprecated==1.2.13; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
deprecation==2.1.0
django==4.0.6
django-cors-headers==3.13.0
django-extensions==3.2.0
django-filter==22.1
django-picklefield==3.1; python_version >= '3'
-e git+https://github.com/paperless-ngx/django-q.git@bf20d57f859a7d872d5979cd8879fac9c9df981c#egg=django-q
djangorestframework==3.13.1
filelock==3.7.1
fuzzywuzzy[speedup]==0.18.0
gunicorn==20.1.0
h11==0.13.0; python_version >= '3.6'
hiredis==2.0.0; python_version >= '3.6'
httptools==0.4.0
humanfriendly==10.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
hyperlink==21.0.0
idna==3.3; python_version >= '3.5'
imap-tools==0.56.0
img2pdf==0.4.4
importlib-resources==5.8.0; python_version < '3.9'
incremental==21.3.0
inotify-simple==1.3.5; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
inotifyrecursive==0.3.5
joblib==1.1.0; python_version >= '3.6'
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
packaging==21.3; python_version >= '3.6'
pathvalidate==2.5.0
pdf2image==1.16.0
pdfminer.six==20220524
pikepdf==5.3.1
pillow==9.2.0
pluggy==1.0.0; python_version >= '3.6'
portalocker==2.5.1; python_version >= '3'
psycopg2==2.9.3
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.21
pyopenssl==22.0.0
pyparsing==3.0.9; python_full_version >= '3.6.8'
python-dateutil==2.8.2
python-dotenv==0.20.0
python-gnupg==0.4.9
python-levenshtein==0.12.2
python-magic==0.4.27
pytz==2022.1
pytz-deprecation-shim==0.1.0.post0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
pyyaml==6.0
pyzbar==0.1.9
redis==4.3.4
regex==2022.3.2; python_version >= '3.6'
reportlab==3.6.11; python_version >= '3.7' and python_version < '4'
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'
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'
threadpoolctl==3.1.0; python_version >= '3.6'
tika==1.24
tqdm==4.64.0
twisted[tls]==22.4.0; python_full_version >= '3.6.7'
txaio==22.2.1; python_version >= '3.6'
typing-extensions==4.3.0; python_version >= '3.7'
tzdata==2022.1; python_version >= '3.6'
tzlocal==4.2; python_version >= '3.6'
urllib3==1.26.10; 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'
uvicorn[standard]==0.18.2
uvloop==0.16.0
watchdog==2.1.9
watchfiles==0.15.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'
zope.interface==5.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'

View File

@@ -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)
})
})

View File

@@ -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": ""
}
}
]

View File

@@ -179,21 +179,21 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.increment-minutes" datatype="html">
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.decrement-minutes" datatype="html">
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
</trans-unit>
<trans-unit id="ngb.timepicker.SS" datatype="html">
@@ -395,7 +395,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
</trans-unit>
<trans-unit id="6988090220128974198" datatype="html">
@@ -511,6 +511,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -697,7 +701,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -812,7 +816,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">185</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -820,7 +824,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
</trans-unit>
<trans-unit id="6457471243969293847" datatype="html">
@@ -1011,16 +1015,12 @@
<context context-type="linenumber">13</context>
</context-group>
</trans-unit>
<trans-unit id="2722549756198502062" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types, correspondents, storage paths</note>
</trans-unit>
<trans-unit id="524422427194414813" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/date/date.component.html</context>
<context context-type="linenumber">16</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">30</context>
@@ -1030,6 +1030,14 @@
<context context-type="linenumber">42</context>
</context-group>
</trans-unit>
<trans-unit id="2722549756198502062" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types, correspondents, storage paths</note>
</trans-unit>
<trans-unit id="6560126119609945418" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
@@ -1138,7 +1146,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1300,6 +1308,41 @@
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html">
<source>Page</source>
<context-group purpose="location">
@@ -1366,7 +1409,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
</trans-unit>
<trans-unit id="3099741642167775297" datatype="html">
@@ -1391,11 +1434,22 @@
<context context-type="linenumber">25</context>
</context-group>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1406,49 +1460,49 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
</trans-unit>
<trans-unit id="4452427314943113135" datatype="html">
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
</trans-unit>
<trans-unit id="3885497195825665706" datatype="html">
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
</trans-unit>
<trans-unit id="5028777105388019087" datatype="html">
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
</trans-unit>
<trans-unit id="1379170675585571971" datatype="html">
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
</trans-unit>
<trans-unit id="5114742157723900905" datatype="html">
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
</trans-unit>
<trans-unit id="2691296884221415710" datatype="html">
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">79</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1471,7 +1525,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">81</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1494,7 +1548,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">83</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1513,21 +1567,21 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">84</context>
</context-group>
</trans-unit>
<trans-unit id="6205355627445317276" datatype="html">
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">91</context>
</context-group>
</trans-unit>
<trans-unit id="218403386307979629" datatype="html">
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">100</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1538,102 +1592,120 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">106</context>
</context-group>
</trans-unit>
<trans-unit id="6392918669949841614" datatype="html">
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">110</context>
</context-group>
</trans-unit>
<trans-unit id="146828917013192897" datatype="html">
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">114</context>
</context-group>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">118</context>
</context-group>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">122</context>
</context-group>
</trans-unit>
<trans-unit id="5888243105821763422" datatype="html">
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">126</context>
</context-group>
</trans-unit>
<trans-unit id="2696647325713149563" datatype="html">
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">130</context>
</context-group>
</trans-unit>
<trans-unit id="342875990758166588" datatype="html">
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">134</context>
</context-group>
</trans-unit>
<trans-unit id="6033581412811562084" datatype="html">
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">138</context>
</context-group>
</trans-unit>
<trans-unit id="6992781481378431874" datatype="html">
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">144</context>
</context-group>
</trans-unit>
<trans-unit id="2846565152091361585" datatype="html">
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">145</context>
</context-group>
</trans-unit>
<trans-unit id="8191371354890763172" datatype="html">
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">167</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">203</context>
</context-group>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">174</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">183</context>
</context-group>
</trans-unit>
<trans-unit id="5129524307369213584" datatype="html">
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">184</context>
</context-group>
</trans-unit>
<trans-unit id="9021887951960049161" datatype="html">
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1644,28 +1716,88 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
</trans-unit>
<trans-unit id="6691075929777935948" datatype="html">
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
</trans-unit>
<trans-unit id="719892092227206532" datatype="html">
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
</trans-unit>
<trans-unit id="1844801255494293730" datatype="html">
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify(
error.error
)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html">
@@ -1750,7 +1882,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1771,13 +1903,6 @@
<context context-type="linenumber">84,88</context>
</context-group>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify(
error.error
@@ -1941,17 +2066,6 @@
<context context-type="linenumber">363</context>
</context-group>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -1959,13 +2073,6 @@
<context context-type="linenumber">366</context>
</context-group>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -1973,13 +2080,6 @@
<context context-type="linenumber">388</context>
</context-group>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2260,14 +2360,14 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
</trans-unit>
<trans-unit id="6837554170707123455" datatype="html">
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
</trans-unit>
<trans-unit id="6849725902312323996" datatype="html">
@@ -2404,7 +2504,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
</trans-unit>
<trans-unit id="4104807402967139762" datatype="html">
@@ -2415,7 +2515,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
</trans-unit>
<trans-unit id="6965614903949668392" datatype="html">
@@ -2790,123 +2890,130 @@
<context context-type="linenumber">124</context>
</context-group>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
</trans-unit>
<trans-unit id="8545554728558600606" datatype="html">
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
</trans-unit>
<trans-unit id="3656786776644872398" datatype="html">
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
</trans-unit>
<trans-unit id="6057053428592387613" datatype="html">
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
</trans-unit>
<trans-unit id="370315664367425513" datatype="html">
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
</trans-unit>
<trans-unit id="6838309441164918531" datatype="html">
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
</trans-unit>
<trans-unit id="2741919327232918179" datatype="html">
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
</trans-unit>
<trans-unit id="6925788033494878061" datatype="html">
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
</trans-unit>
<trans-unit id="7877440816920439876" datatype="html">
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
</trans-unit>
<trans-unit id="5610279464668232148" datatype="html">
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
</trans-unit>
<trans-unit id="3891152409365583719" datatype="html">
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
</trans-unit>
<trans-unit id="7217000812750597833" datatype="html">
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
</trans-unit>
<trans-unit id="525012668859298131" datatype="html">
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
</trans-unit>
<trans-unit id="8491974984518503778" datatype="html">
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
</trans-unit>
<trans-unit id="3011185103048412841" datatype="html">
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
</trans-unit>
<trans-unit id="6839066544204061364" datatype="html">
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
</trans-unit>
<trans-unit id="7729897675462249787" datatype="html">
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
</trans-unit>
<trans-unit id="8488620293789898901" datatype="html">
@@ -2915,7 +3022,7 @@
)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
</trans-unit>
<trans-unit id="5101757640976222639" datatype="html">
@@ -3157,6 +3264,13 @@
<context context-type="linenumber">39</context>
</context-group>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3165,11 +3279,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
</trans-unit>
<trans-unit id="2573823578527613511" datatype="html">
@@ -3180,7 +3294,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
</trans-unit>
<trans-unit id="3305084982600522070" datatype="html">
@@ -3317,35 +3431,35 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
</trans-unit>
<trans-unit id="2089045849587358256" datatype="html">
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
</trans-unit>
<trans-unit id="2885986061416655600" datatype="html">
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
</trans-unit>
<trans-unit id="6755718693176327396" datatype="html">
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
</trans-unit>
<trans-unit id="4215561719980781894" datatype="html">
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
</trans-unit>
<trans-unit id="3553216189604488439" datatype="html">

8103
src-ui/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -13,48 +13,48 @@
},
"private": true,
"dependencies": {
"@angular/common": "~14.0.4",
"@angular/compiler": "~14.0.4",
"@angular/core": "~14.0.4",
"@angular/forms": "~14.0.4",
"@angular/localize": "~14.0.4",
"@angular/platform-browser": "~14.0.4",
"@angular/platform-browser-dynamic": "~14.0.4",
"@angular/router": "~14.0.4",
"@ng-bootstrap/ng-bootstrap": "^13.0.0-beta.1",
"@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",
"@popperjs/core": "^2.11.5",
"bootstrap": "^5.1.3",
"@popperjs/core": "^2.11.6",
"bootstrap": "^5.2.0",
"file-saver": "^2.0.5",
"ng2-pdf-viewer": "^9.0.0",
"ngx-color": "^7.3.3",
"ng2-pdf-viewer": "^9.1.0",
"ngx-color": "^8.0.2",
"ngx-cookie-service": "^14.0.1",
"ngx-file-drop": "^13.0.0",
"rxjs": "~7.5.5",
"ngx-file-drop": "^14.0.1",
"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",
"@angular-devkit/build-angular": "~14.0.4",
"@angular/cli": "~14.0.4",
"@angular/compiler-cli": "~14.0.4",
"@types/jest": "28.1.4",
"@types/node": "^18.0.0",
"@angular-builders/jest": "14.0.1",
"@angular-devkit/build-angular": "~14.2.1",
"@angular/cli": "~14.2.1",
"@angular/compiler-cli": "~14.2.0",
"@types/jest": "28.1.6",
"@types/node": "^18.7.14",
"codelyzer": "^6.0.2",
"concurrently": "7.2.2",
"jest": "28.1.2",
"jest-environment-jsdom": "^28.1.2",
"jest-preset-angular": "^12.1.0",
"ts-node": "~10.8.1",
"concurrently": "7.3.0",
"jest": "28.1.3",
"jest-environment-jsdom": "^29.0.1",
"jest-preset-angular": "^12.2.2",
"ts-node": "~10.9.1",
"tslint": "~6.1.3",
"typescript": "~4.6.3",
"typescript": "~4.7.4",
"wait-on": "~6.0.1"
},
"optionalDependencies": {
"@cypress/schematic": "^2.0.0",
"cypress": "~10.3.0"
"@cypress/schematic": "^2.1.1",
"cypress": "~10.7.0"
}
}

View File

@@ -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 },

View File

@@ -67,6 +67,8 @@ 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 { DocumentCommentsComponent } from './components/document-comments/document-comments.component'
import { DirtyDocGuard } from './guards/dirty-doc.guard'
import localeBe from '@angular/common/locales/be'
import localeCs from '@angular/common/locales/cs'
@@ -172,6 +174,7 @@ function initializeApp(settings: SettingsService) {
DateComponent,
ColorComponent,
DocumentAsnComponent,
DocumentCommentsComponent,
TasksComponent,
],
imports: [
@@ -209,6 +212,7 @@ function initializeApp(settings: SettingsService) {
DocumentTitlePipe,
{ provide: NgbDateAdapter, useClass: ISODateAdapter },
{ provide: NgbDateParserFormatter, useClass: LocalizedDateParserFormatter },
DirtyDocGuard,
],
bootstrap: [AppComponent],
})

View File

@@ -21,7 +21,7 @@
</div>
<ul ngbNav class="order-sm-3">
<li ngbDropdown class="nav-item dropdown">
<button class="btn" id="userDropdown" ngbDropdownToggle>
<button class="btn border-0" id="userDropdown" ngbDropdownToggle>
<span class="small me-2 d-none d-sm-inline">
{{this.settingsService.displayName}}
</span>
@@ -189,7 +189,7 @@
<use xlink:href="assets/bootstrap-icons.svg#github" />
</svg>&nbsp;<ng-container i18n>GitHub</ng-container>
</a>
<a class="nav-link-additional small text-muted ms-3" target="_blank" rel="noopener noreferrer" href="https://github.com/paperless-ngx/paperless-ngx/discussions/categories/feature-requests" title="Suggest an idea">
<a class="nav-link-additional small text-muted ms-3" target="_blank" rel="noopener noreferrer" href="https://github.com/paperless-ngx/paperless-ngx/discussions/categories/feature-requests" title="Suggest an idea" i18n-title>
<svg xmlns="http://www.w3.org/2000/svg" width="1.1em" height="1.1em" fill="currentColor" class="me-1" viewBox="0 0 16 16">
<use xlink:href="assets/bootstrap-icons.svg#lightbulb" />
</svg>

View File

@@ -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> | boolean {
return !this.openDocumentsService.hasDirty()
}
searchAutoComplete = (text$: Observable<string>) =>
text$.pipe(
debounceTime(200),

View File

@@ -12,4 +12,10 @@
</div>
<div class="invalid-feedback" i18n>Invalid date.</div>
<small *ngIf="hint" class="form-text text-muted">{{hint}}</small>
<small *ngIf="getSuggestions().length > 0">
<span i18n>Suggestions:</span>&nbsp;
<ng-container *ngFor="let s of getSuggestions()">
<a (click)="onSuggestionClick(s)" [routerLink]="[]">{{s}}</a>&nbsp;
</ng-container>
</small>
</div>

View File

@@ -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 {
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,11 +25,34 @@ export class DateComponent
{
constructor(
private settings: SettingsService,
private ngbDateParserFormatter: NgbDateParserFormatter
private ngbDateParserFormatter: NgbDateParserFormatter,
private isoDateAdapter: NgbDateAdapter<string>
) {
super()
}
@Input()
suggestions: string[]
getSuggestions() {
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(this.isoDateAdapter.toModel(parsedDate))
this.onChange(this.value)
}
ngOnInit(): void {
super.ngOnInit()
this.placeholder = this.settings.getLocalizedDateInputFormat()
@@ -43,9 +68,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)
}
}
}

View File

@@ -0,0 +1,28 @@
<div *ngIf="comments">
<form [formGroup]="commentForm" class="needs-validation mt-3" novalidate>
<div class="form-group">
<textarea class="form-control form-control-sm" [class.is-invalid]="newCommentError" rows="3" formControlName="newComment" placeholder="Enter comment" i18n-placeholder required></textarea>
<div class="invalid-feedback" i18n>
Please enter a comment.
</div>
</div>
<div class="form-group mt-2 d-flex justify-content-end align-items-center">
<div *ngIf="networkActive" class="spinner-border spinner-border-sm fw-normal me-auto" role="status"></div>
<button type="button" class="btn btn-primary btn-sm" [disabled]="networkActive" (click)="addComment()" i18n>Add comment</button>
</div>
</form>
<hr>
<div *ngFor="let comment of comments" class="card border mb-3">
<div class="card-body text-dark">
<p class="card-text">{{comment.comment}}</p>
</div>
<div class="d-flex card-footer small bg-light text-primary justify-content-between align-items-center">
<span>{{displayName(comment)}} - {{ comment.created | customDate}}</span>
<button type="button" class="btn btn-link btn-sm p-0 fade" (click)="deleteComment(comment.id)">
<svg width="13" height="13" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#trash" />
</svg>
</button>
</div>
</div>
</div>

View File

@@ -0,0 +1,9 @@
.card-body {
max-height: 12rem;
overflow: scroll;
white-space: pre-wrap;
}
.card:hover .fade {
opacity: 1;
}

View File

@@ -0,0 +1,101 @@
import { Component, Input } 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 {
commentForm: FormGroup = new FormGroup({
newComment: new FormControl(''),
})
networkActive = false
comments: PaperlessDocumentComment[] = []
newCommentError: boolean = false
private _documentId: number
@Input()
set documentId(id: number) {
if (id != this._documentId) {
this._documentId = id
this.update()
}
}
constructor(
private commentsService: DocumentCommentsService,
private toastService: ToastService
) {}
update(): void {
this.networkActive = true
this.commentsService
.getComments(this._documentId)
.pipe(first())
.subscribe((comments) => {
this.comments = comments
this.networkActive = false
})
}
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, 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) {
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()}`
)
},
})
}
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(' ')
}
}

View File

@@ -8,7 +8,7 @@
<button type="button" class="btn btn-sm btn-outline-danger me-2 ms-auto" (click)="delete()">
<svg class="buttonicon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#trash" />
</svg>&nbsp;<span class="d-none d-lg-inline" i18n>Delete</span>
</svg><span class="d-none d-lg-inline ps-1" i18n>Delete</span>
</button>
<div class="btn-group me-2">
@@ -16,7 +16,7 @@
<a [href]="downloadUrl" class="btn btn-sm btn-outline-primary">
<svg class="buttonicon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#download" />
</svg>&nbsp;<span class="d-none d-lg-inline" i18n>Download</span>
</svg><span class="d-none d-lg-inline ps-1" i18n>Download</span>
</a>
<div class="btn-group" ngbDropdown role="group" *ngIf="metadata?.has_archive_version">
@@ -28,10 +28,16 @@
</div>
<button type="button" class="btn btn-sm btn-outline-primary me-2" (click)="redoOcr()">
<svg class="buttonicon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#arrow-counterclockwise" />
</svg><span class="d-none d-lg-inline ps-1" i18n>Redo OCR</span>
</button>
<button type="button" class="btn btn-sm btn-outline-primary me-2" (click)="moreLike()">
<svg class="buttonicon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#diagram-3" />
</svg>&nbsp;<span class="d-none d-lg-inline" i18n>More like this</span>
</svg><span class="d-none d-lg-inline ps-1" i18n>More like this</span>
</button>
<button type="button" class="btn btn-sm btn-outline-primary me-2" i18n-title title="Close" (click)="close()">
@@ -68,7 +74,8 @@
<app-input-text #inputTitle i18n-title title="Title" formControlName="title" (keyup)="titleKeyUp($event)" [error]="error?.title"></app-input-text>
<app-input-number i18n-title title="Archive serial number" [error]="error?.archive_serial_number" formControlName='archive_serial_number'></app-input-number>
<app-input-date i18n-title title="Date created" formControlName="created_date" [error]="error?.created_date"></app-input-date>
<app-input-date i18n-title title="Date created" formControlName="created_date" [suggestions]="suggestions?.dates"
[error]="error?.created_date"></app-input-date>
<app-input-select [items]="correspondents" i18n-title title="Correspondent" formControlName="correspondent" [allowNull]="true"
(createNew)="createCorrespondent($event)" [suggestions]="suggestions?.correspondents"></app-input-select>
<app-input-select [items]="documentTypes" i18n-title title="Document type" formControlName="document_type" [allowNull]="true"
@@ -107,6 +114,10 @@
<td i18n>Media filename</td>
<td>{{metadata?.media_filename}}</td>
</tr>
<tr>
<td i18n>Original filename</td>
<td>{{metadata?.original_filename}}</td>
</tr>
<tr>
<td i18n>Original MD5 checksum</td>
<td>{{metadata?.original_checksum}}</td>
@@ -159,6 +170,12 @@
</div>
</ng-template>
</li>
<li [ngbNavItem]="5" *ngIf="commentsEnabled">
<a ngbNavLink i18n>Comments</a>
<ng-template ngbNavContent>
<app-document-comments [documentId]="documentId"></app-document-comments>
</ng-template>
</li>
</ul>
<div [ngbNavOutlet]="nav" class="mt-2"></div>

View File

@@ -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'])
@@ -472,6 +475,42 @@ export class DocumentDetailComponent
])
}
redoOcr() {
let modal = this.modalService.open(ConfirmDialogComponent, {
backdrop: 'static',
})
modal.componentInstance.title = $localize`Redo OCR confirm`
modal.componentInstance.messageBold = $localize`This operation will permanently redo OCR for this document.`
modal.componentInstance.message = $localize`This operation cannot be undone.`
modal.componentInstance.btnClass = 'btn-danger'
modal.componentInstance.btnCaption = $localize`Proceed`
modal.componentInstance.confirmClicked.subscribe(() => {
modal.componentInstance.buttonsEnabled = false
this.documentsService
.bulkEdit([this.document.id], 'redo_ocr', {})
.subscribe({
next: () => {
this.toastService.showInfo(
$localize`Redo OCR operation will begin in the background.`
)
if (modal) {
modal.close()
}
},
error: (error) => {
if (modal) {
modal.componentInstance.buttonsEnabled = true
}
this.toastService.showError(
$localize`Error executing operation: ${JSON.stringify(
error.error
)}`
)
},
})
})
}
hasNext() {
return this.documentListViewService.hasNext(this.documentId)
}
@@ -512,4 +551,8 @@ export class DocumentDetailComponent
this.password = (event.target as HTMLInputElement).value
}
}
get commentsEnabled(): boolean {
return this.settings.get(SETTINGS_KEYS.COMMENTS_ENABLED)
}
}

View File

@@ -80,7 +80,7 @@ a {
}
.tags {
top: 0;
top: .2rem;
right: 0;
max-width: 80%;
row-gap: .2rem;

View File

@@ -91,7 +91,7 @@
<span i18n *ngIf="list.selected.size == 0">{list.collectionSize, plural, =1 {One document} other {{{list.collectionSize || 0}} documents}}</span>&nbsp;<span i18n *ngIf="isFiltered">(filtered)</span>
</ng-container>
</p>
<ngb-pagination [pageSize]="list.currentPageSize" [collectionSize]="list.collectionSize" (pageChange)="setPage($event)" [page]="list.currentPage" [maxSize]="5"
<ngb-pagination *ngIf="list.collectionSize" [pageSize]="list.currentPageSize" [collectionSize]="list.collectionSize" [(page)]="list.currentPage" [maxSize]="5"
[rotate]="true" aria-label="Default pagination"></ngb-pagination>
</div>
</ng-template>

View File

@@ -6,7 +6,7 @@ import {
ViewChild,
ViewChildren,
} from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router'
import { ActivatedRoute, convertToParamMap, Router } from '@angular/router'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { filter, first, map, Subject, switchMap, takeUntil } from 'rxjs'
import { FilterRule, isFullTextFilterRule } from 'src/app/data/filter-rule'
@@ -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
}
@@ -126,7 +122,11 @@ export class DocumentListComponent implements OnInit, OnDestroy {
this.router.navigate(['404'])
return
}
this.list.activateSavedView(view)
this.list.activateSavedViewWithQueryParams(
view,
convertToParamMap(this.route.snapshot.queryParams)
)
this.list.reload()
this.unmodifiedFilterRules = view.filter_rules
})
@@ -139,7 +139,13 @@ export class DocumentListComponent implements OnInit, OnDestroy {
.subscribe((queryParams) => {
if (queryParams.has('view')) {
// loading a saved view on /documents
this.loadViewConfig(parseInt(queryParams.get('view')))
this.savedViewService
.getCached(parseInt(queryParams.get('view')))
.pipe(first())
.subscribe((view) => {
this.list.activateSavedView(view)
this.list.reload()
})
} else {
this.list.activateSavedView(null)
this.list.loadFromQueryParams(queryParams)
@@ -154,16 +160,6 @@ export class DocumentListComponent implements OnInit, OnDestroy {
this.unsubscribeNotifier.complete()
}
loadViewConfig(viewId: number) {
this.savedViewService
.getCached(viewId)
.pipe(first())
.subscribe((view) => {
this.list.activateSavedView(view)
this.list.reload()
})
}
saveViewConfig() {
if (this.list.activeSavedViewId != null) {
let savedView: PaperlessSavedView = {

View File

@@ -1,5 +1,5 @@
<div class="row flex-wrap">
<div class="col mb-2 mb-xl-0">
<div class="col mb-2 mb-xxl-0">
<div class="form-inline d-flex align-items-center">
<div class="input-group input-group-sm flex-fill w-auto flex-nowrap">
<div ngbDropdown>
@@ -15,10 +15,10 @@
</div>
</div>
</div>
<div class="w-100 d-xl-none"></div>
<div class="w-100 d-xxl-none"></div>
<div class="col col-xl-auto">
<div class="d-flex flex-wrap">
<div class="d-flex flex-wrap mb-2 mb-lg-0">
<div class="d-flex flex-wrap mb-2 mb-xxl-0">
<app-filterable-dropdown class="flex-fill" title="Tags" icon="tag-fill" i18n-title
filterPlaceholder="Filter tags" i18n-filterPlaceholder
[items]="tags"
@@ -63,10 +63,10 @@
</div>
</div>
</div>
<div class="w-100 d-xl-none"></div>
<div class="col col-xl-auto ps-0">
<div class="w-100 d-xxl-none"></div>
<div class="col col-xl-auto ps-xxl-0">
<button class="btn btn-link btn-sm px-0" [disabled]="!rulesModified" (click)="resetSelected()">
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-x me-1" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-x me-1 ms-n1" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/>
</svg><ng-container i18n>Reset filters</ng-container>
</button>

View File

@@ -17,3 +17,7 @@
.d-flex.flex-wrap {
column-gap: 0.7rem;
}
input[type="text"] {
min-width: 120px;
}

View File

@@ -125,6 +125,14 @@
</div>
</div>
<h4 class="mt-4" i18n>Comments</h4>
<div class="row mb-3">
<div class="offset-md-3 col">
<app-input-check i18n-title title="Enable comments" formControlName="commentsEnabled"></app-input-check>
</div>
</div>
</ng-template>
</li>

View File

@@ -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()

View File

@@ -55,7 +55,7 @@
</th>
<td class="overflow-auto">{{ task.name }}</td>
<td class="d-none d-lg-table-cell">{{ task.created | customDate:'short' }}</td>
<td class="d-none d-lg-table-cell" *ngIf="activeTab != 'incomplete'">
<td class="d-none d-lg-table-cell" *ngIf="activeTab != 'started' && activeTab != 'queued'">
<div *ngIf="task.result.length > 50" class="result" (click)="expandTask(task); $event.stopPropagation();"
[ngbPopover]="resultPopover" popoverClass="shadow small mobile" triggers="mouseenter:mouseleave" container="body">
<span class="small d-none d-md-inline-block font-monospace text-muted">{{ task.result | slice:0:50 }}&hellip;</span>

View File

@@ -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

View File

@@ -0,0 +1,8 @@
import { ObjectWithId } from './object-with-id'
import { User } from './user'
export interface PaperlessDocumentComment extends ObjectWithId {
created?: Date
comment?: string
user?: User
}

View File

@@ -7,5 +7,7 @@ export interface PaperlessDocumentMetadata {
media_filename?: string
original_filename?: string
has_archive_version?: boolean
}

View File

@@ -6,4 +6,6 @@ export interface PaperlessDocumentSuggestions {
document_types?: number[]
storage_paths?: number[]
dates?: string[] // ISO-formatted date string e.g. 2022-11-03
}

View File

@@ -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,
},
]

View File

@@ -0,0 +1,7 @@
import { ObjectWithId } from './object-with-id'
export interface User extends ObjectWithId {
username: string
firstname: string
lastname: string
}

View File

@@ -0,0 +1,20 @@
import { CanDeactivate } from '@angular/router'
import { Injectable } from '@angular/core'
import { Observable } from 'rxjs'
export interface ComponentCanDeactivate {
canDeactivate: () => boolean | Observable<boolean>
}
@Injectable()
export class DirtyDocGuard implements CanDeactivate<ComponentCanDeactivate> {
canDeactivate(
component: ComponentCanDeactivate
): boolean | Observable<boolean> {
return component.canDeactivate()
? true
: confirm(
$localize`Warning: You have unsaved changes to your document(s).`
)
}
}

View File

@@ -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'
@@ -147,6 +147,15 @@ export class DocumentListViewService {
}
}
activateSavedViewWithQueryParams(
view: PaperlessSavedView,
queryParams: ParamMap
) {
const viewState = paramsToViewState(queryParams)
this.activateSavedView(view)
this.currentPage = viewState.currentPage
}
loadSavedView(view: PaperlessSavedView, closeCurrentView: boolean = false) {
if (closeCurrentView) {
this._activeSavedViewId = null
@@ -171,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
@@ -212,11 +221,16 @@ export class DocumentListViewService {
this.isReloading = false
activeListViewState.collectionSize = result.count
activeListViewState.documents = result.results
if (updateQueryParams && !this._activeSavedViewId) {
let base = ['/documents']
this.router.navigate(base, {
queryParams: generateParams(activeListViewState),
queryParams: paramsFromViewState(activeListViewState),
replaceUrl: !this.router.routerState.snapshot.url.includes('?'), // in case navigating from params-less /documents
})
} else if (this._activeSavedViewId) {
this.router.navigate([], {
queryParams: paramsFromViewState(activeListViewState, true),
queryParamsHandling: 'merge',
})
}
@@ -305,7 +319,6 @@ export class DocumentListViewService {
set currentPage(page: number) {
if (this.activeListViewState.currentPage == page) return
this._activeSavedViewId = null
this.activeListViewState.currentPage = page
this.reload()
this.saveDocumentListView()

View File

@@ -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<boolean> {

View File

@@ -0,0 +1,37 @@
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',
})
export class DocumentCommentsService extends AbstractPaperlessService<PaperlessDocumentComment> {
constructor(http: HttpClient) {
super(http, 'documents')
}
getComments(documentId: number): Observable<PaperlessDocumentComment[]> {
return this.http.get<PaperlessDocumentComment[]>(
this.getResourceUrl(documentId, 'comments')
)
}
addComment(id: number, comment): Observable<PaperlessDocumentComment[]> {
return this.http.post<PaperlessDocumentComment[]>(
this.getResourceUrl(id, 'comments'),
{ comment: comment }
)
}
deleteComment(
documentId: number,
commentId: number
): Observable<PaperlessDocumentComment[]> {
return this.http.delete<PaperlessDocumentComment[]>(
this.getResourceUrl(documentId, 'comments'),
{ params: new HttpParams({ fromString: `id=${commentId}` }) }
)
}
}

View File

@@ -7,17 +7,22 @@ const SORT_FIELD_PARAMETER = 'sort'
const SORT_REVERSE_PARAMETER = 'reverse'
const PAGE_PARAMETER = 'page'
export function generateParams(viewState: ListViewState): Params {
export function paramsFromViewState(
viewState: ListViewState,
pageOnly: boolean = false
): Params {
let params = queryParamsFromFilterRules(viewState.filterRules)
params[SORT_FIELD_PARAMETER] = viewState.sortField
params[SORT_REVERSE_PARAMETER] = viewState.sortReverse ? 1 : undefined
if (pageOnly) params = {}
params[PAGE_PARAMETER] = isNaN(viewState.currentPage)
? 1
: viewState.currentPage
if (pageOnly && viewState.currentPage == 1) params[PAGE_PARAMETER] = null
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 =

View File

@@ -5,7 +5,7 @@ export const environment = {
apiBaseUrl: document.baseURI + 'api/',
apiVersion: '2',
appTitle: 'Paperless-ngx',
version: '1.8.0-rc1',
version: '1.9.0',
webSocketHost: window.location.host,
webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:',
webSocketBaseUrl: base_url.pathname + 'ws/',

View File

@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="needs-translation">Decrement hours</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="needs-translation">Increment minutes</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="needs-translation">Decrement minutes</target>
</trans-unit>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="final">طرق العرض المحفوظة</target>
</trans-unit>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html" approved="yes">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="final">حفظ</target>
</trans-unit>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="needs-translation">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Enter comment</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="needs-translation"> Please enter a comment. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="needs-translation">Add comment</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="needs-translation">Error saving comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Error deleting comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html" approved="yes">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="needs-translation">Delete</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="final">تحميل النسخة الأصلية</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html" approved="yes">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="final">إغلاق</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="needs-translation">Previous</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="needs-translation">Next</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="final">تفاصيل</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="final">الرقم التسلسلي للأرشيف</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="final">تاريخ الإنشاء</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1625,7 +1681,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="needs-translation">Default</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="final">محتوى</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="final">تاريخ التعديل</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="final">تاريخ الإضافة</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="final">اسم ملف الوسائط</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="needs-translation">Original filename</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html" approved="yes">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="final">مجموع MD5 الاختباري للأصل</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="final">حجم الملف الأصلي</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="final">نوع mime الأصلي</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="final">مجموع MD5 الاختباري للأرشيف</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="final">حجم ملف الأرشيف</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="final">بيانات التعريف للمستند الأصلي</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="final">بيانات التعريف للمستند الأصلي</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="needs-translation">Enter Password</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="needs-translation">Comments</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html" approved="yes">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="final">تجاهل</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">حفظ &amp; التالي</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="final">هل تريد حقاً حذف المستند "<x id="PH" equiv-text="this.document.title"/>"؟</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="final">ستحذف ملفات هذا المستند بشكل دائم. لا يمكن التراجع عن هذه العملية.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="final">حذف مستند</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="final">حدث خطأ أثناء حذف الوثيقة: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for this document.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="needs-translation">This operation cannot be undone.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="needs-translation">Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html">
<source>Select:</source>
<context-group purpose="location">
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="needs-translation"> Download originals <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparing download...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2139,18 +2271,6 @@
</context-group>
<target state="needs-translation">This operation will permanently delete <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="needs-translation">This operation cannot be undone.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,14 +2279,6 @@
</context-group>
<target state="needs-translation">Delete document(s)</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -2175,14 +2287,6 @@
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="needs-translation">View "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" saved successfully.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="needs-translation">View "<x id="PH" equiv-text="savedView.name"/>" created successfully.</target>
</trans-unit>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="needs-translation">Show in sidebar</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="needs-translation">Show on dashboard</target>
</trans-unit>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="needs-translation">Apply on close</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="needs-translation">Enable comments</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html" approved="yes">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="final">الإشعارات</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Document processing</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="needs-translation">Show notifications when new documents are detected</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="needs-translation">Show notifications when document processing completes successfully</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="needs-translation">Show notifications when document processing fails</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="needs-translation">Suppress notifications on dashboard</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="needs-translation">This will suppress all messages about document processing status on the dashboard.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="needs-translation">Appears on</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="needs-translation">No saved views defined.</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="needs-translation">Saved view "<x id="PH" equiv-text="savedView.name"/>" deleted.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="needs-translation">Settings saved</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="needs-translation">Settings were saved successfully.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="needs-translation">Settings were saved successfully. Reload is required to apply some changes.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="needs-translation">Reload now</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="needs-translation">An error occurred while saving settings.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="final">استخدم لغة النظام</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="final">استخدم تنسيق تاريخ لغة العرض</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="needs-translation">Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="needs-translation">Auto: Learn matching automatically</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="needs-translation">Warning: You have unsaved changes to your document(s).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,11 +3629,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Unsaved Changes</target>
</trans-unit>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="needs-translation">You have unsaved changes.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="needs-translation">You have unsaved changes to the document</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="needs-translation">Are you sure you want to close this document?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="needs-translation">Close document</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="needs-translation">Are you sure you want to close all documents?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="needs-translation">Close documents</target>
</trans-unit>

View File

@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="needs-translation">Decrement hours</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="needs-translation">Increment minutes</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="needs-translation">Decrement minutes</target>
</trans-unit>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="translated">Захаваныя выгляды</target>
</trans-unit>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="translated">Захаваць</target>
</trans-unit>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="translated">Пошук дакумента з asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Enter comment</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="needs-translation"> Please enter a comment. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="needs-translation">Add comment</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="needs-translation">Error saving comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Error deleting comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="translated">Выдаліць</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="translated">Спампаваць арыгінал</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="translated">Закрыць</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="needs-translation">Previous</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="needs-translation">Next</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="translated">Падрабязнасці</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="translated">Парадкавы нумар архіва</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="translated">Дата стварэння</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1625,7 +1681,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="needs-translation">Default</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="translated">Змест</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="translated">Дата змянення</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="translated">Дата дадання</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="translated">Імя медыяфайла</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="needs-translation">Original filename</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="translated">Арыгінальная кантрольная сума MD5</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="translated">Арыгінальны памер файла</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="translated">Арыгінальны MIME тып</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="translated">MD5 сума архіва</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="translated">Памер файла архіва</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">Арыгінальныя метададзеныя дакумента</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="translated">Метададзеныя архіўнага дакумента</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="needs-translation">Enter Password</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="needs-translation">Comments</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="translated">Адхіліць</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="translated">Захаваць &amp; наступны</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="translated">Вы сапраўды хочаце выдаліць дакумент "<x id="PH" equiv-text="this.document.title"/>"?</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="translated">Файлы для гэтага дакумента будуць выдалены назаўсёды. Гэтую аперацыю нельга адмяніць.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="translated">Выдаліць дакумент</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="translated">Памылка выдалення дакумента: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for this document.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="translated">Гэтую аперацыю нельга адмяніць.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="needs-translation">Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html">
<source>Select:</source>
<context-group purpose="location">
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="needs-translation"> Download originals <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparing download...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2139,18 +2271,6 @@
</context-group>
<target state="translated">Гэтая аперацыя назаўжды выдаліць <x id="PH" equiv-text="this.list.selected.size"/> абраных дакументаў.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="translated">Гэтую аперацыю нельга адмяніць.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,14 +2279,6 @@
</context-group>
<target state="translated">Выдаліць дакумент(ы)</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -2175,14 +2287,6 @@
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="translated">Прагляд "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" паспяхова захаваны.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="translated">Прагляд "<x id="PH" equiv-text="savedView.name"/>" створаны паспяхова.</target>
</trans-unit>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="translated">Паказаць у бакавой панэлі</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="translated">Паказаць на панэлі</target>
</trans-unit>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="translated">Ужыць пры зачыненні</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="needs-translation">Enable comments</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="translated">Апавяшчэнні</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">Апрацоўка дакумента</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="translated">Паказваць апавяшчэнні пры выяўленні новых дакументаў</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="translated">Паказваць апавяшчэнні, калі апрацоўка дакумента завершана паспяхова</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="translated">Паказваць апавяшчэнні, калі апрацоўка дакумента няўдалая</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="translated">Схаваць апавяшчэння на галоўнай панэлі</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="translated">Гэта адключыць усе паведамленні аб статуце апрацоўкі дакументаў на галоўнай панэлі.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="translated">З'яўляецца на</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="translated">Няма захаваных праглядаў.</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="translated">Захаваны выгляд "<x id="PH" equiv-text="savedView.name"/>" выдалены.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="needs-translation">Settings saved</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="needs-translation">Settings were saved successfully.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="needs-translation">Settings were saved successfully. Reload is required to apply some changes.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="needs-translation">Reload now</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="needs-translation">An error occurred while saving settings.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="translated">Выкарыстоўваць мову сістэмы</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="translated">Выкарыстоўваць фармат даты мовы адлюстравання</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="needs-translation">Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="translated">Аўтаматычны: вучыцеся аўтаматычна</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="needs-translation">Warning: You have unsaved changes to your document(s).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,11 +3629,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">Незахаваныя змены</target>
</trans-unit>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="translated">У вас ёсць незахаваныя змены.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="needs-translation">You have unsaved changes to the document</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="translated">Вы ўпэўнены, што хочаце закрыць гэты дакумент?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="translated">Закрыць дакумент</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="translated">Вы ўпэўнены, што хочаце закрыць усе дакументы?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="translated">Закрыць дакументы</target>
</trans-unit>

View File

@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="needs-translation">Decrement hours</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="needs-translation">Increment minutes</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="needs-translation">Decrement minutes</target>
</trans-unit>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="final">Uložené pohledy</target>
</trans-unit>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html" approved="yes">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="final">Uložit</target>
</trans-unit>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="final">Hledání dokumentu s ASN <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Enter comment</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="needs-translation"> Please enter a comment. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="needs-translation">Add comment</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="needs-translation">Error saving comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Error deleting comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html" approved="yes">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">Odstranit</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="final">Stáhnout originál</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html" approved="yes">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="final">Zavřít</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="needs-translation">Previous</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="needs-translation">Next</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="final">Podrobnosti</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="final">Sériové číslo archivu</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="final">Vytvořeno</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1625,7 +1681,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="needs-translation">Default</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="final">Obsah</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="final">Upraveno</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="final">Přidána</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="final">Název souboru</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="needs-translation">Original filename</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html" approved="yes">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="final">Původní kontrolní součet MD5</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="final">Původní velikost souboru</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="final">Původní typ mime</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="final">Kontrolní součet MD5 archivu</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="final">Velikost souboru archivu</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="final">Metadata původního dokumentu</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="final">Metadata archivovaného dokumentu</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="needs-translation">Enter Password</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="needs-translation">Comments</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html" approved="yes">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="final">Zrušit</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">Uložit &amp; další</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="final">Opravdu chcete smazat dokument "<x id="PH" equiv-text="this.document.title"/>"?</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="final">Soubory tohoto dokumentu budou trvale smazány. Tuto operaci nelze vrátit zpět.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="final">Smazat dokument</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="final">Chyba při mazání dokumentu: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for this document.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Tuto operaci nelze vrátit zpět.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="needs-translation">Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html" approved="yes">
<source>Select:</source>
<context-group purpose="location">
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="needs-translation"> Download originals <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparing download...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2139,18 +2271,6 @@
</context-group>
<target state="final">Tato operace trvale odstraní <x id="PH" equiv-text="this.list.selected.size"/> vybraných dokumentů.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Tuto operaci nelze vrátit zpět.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html" approved="yes">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,14 +2279,6 @@
</context-group>
<target state="final">Smazat dokument(y)</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -2175,14 +2287,6 @@
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html" approved="yes">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Zobrazení "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" bylo úspěšně uloženo.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="final">Zobrazení "<x id="PH" equiv-text="savedView.name"/>" bylo úspěšně vytvořeno.</target>
</trans-unit>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="final">Zobrazit na postranním panelu</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="final">Zobrazit na nástěnce</target>
</trans-unit>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="final">Aplikovat při zavření</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="needs-translation">Enable comments</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html" approved="yes">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="final">Oznámení</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="final">Zpracovávání dokumentu</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="final">Zobrazit oznámení, když jsou zjištěny nové dokumenty</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="final">Zobrazit oznámení při úspěšném dokončení zpracování dokumentu</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="final">Zobrazit oznámení, když zpracování dokumentu selže</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="final">Potlačit oznámení na nástěnce</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="final">Toto potlačí všechny zprávy o stavu zpracování dokumentu na nástěnce.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="final">Výskyt</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="final">Nejsou definovány žádné uložené pohledy.</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Uložený pohled "<x id="PH" equiv-text="savedView.name"/>" odstraněn.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="needs-translation">Settings saved</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="needs-translation">Settings were saved successfully.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="needs-translation">Settings were saved successfully. Reload is required to apply some changes.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="needs-translation">Reload now</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="needs-translation">An error occurred while saving settings.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="final">Použít systémový jazyk</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="final">Použít formát data zobrazeného jazyka</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="needs-translation">Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="final">Auto: Automaticky se učit hledat shody</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="needs-translation">Warning: You have unsaved changes to your document(s).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,11 +3629,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Unsaved Changes</target>
</trans-unit>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="needs-translation">You have unsaved changes.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="needs-translation">You have unsaved changes to the document</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="needs-translation">Are you sure you want to close this document?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="needs-translation">Close document</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="needs-translation">Are you sure you want to close all documents?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="needs-translation">Close documents</target>
</trans-unit>

View File

@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="translated">Reducer timer</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="translated">Forøg minutter</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="translated">Reducer minutter</target>
</trans-unit>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="translated">Gemte visninger</target>
</trans-unit>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="translated">Gem</target>
</trans-unit>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="translated">Søger efter dokument med asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Enter comment</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="needs-translation"> Please enter a comment. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="needs-translation">Add comment</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="needs-translation">Error saving comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Error deleting comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">Slet</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="translated">Download original</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="translated">Luk</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="translated">Forrige</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="translated">Næste</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="translated">Detaljer</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="translated">Arkiv serienummer</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="translated">Oprettelsesdato</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1625,7 +1681,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="needs-translation">Default</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="translated">Indhold</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="translated">Ændringsdato</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="translated">Tilføjelsesdato</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="translated">Filnavn for medie</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="needs-translation">Original filename</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="translated">Original MD5 kontrolsum</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="translated">Original filstørrelse</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="translated">Original mimetype</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="translated">Arkiv MD5 kontrolsum</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="translated">Arkiv filstørrelse</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">Original dokumentmetadata</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="translated">Arkiveret dokumentmetadata</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="translated">Indtast adgangskode</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="needs-translation">Comments</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="translated">Forkast</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="translated">Gem &amp; næste</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="final">Er du sikker på, at du vil slette dokument "<x id="PH" equiv-text="this.document.title"/>"?</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="final">Filerne for dette dokument vil blive slettet permanent. Denne handling kan ikke fortrydes.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="final">Slet dokument</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="final">Fejl ved sletning af dokument: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for this document.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Denne handling kan ikke fortrydes.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="needs-translation">Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html">
<source>Select:</source>
<context-group purpose="location">
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="needs-translation"> Download originals <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparing download...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2139,18 +2271,6 @@
</context-group>
<target state="final">Denne handling vil permanent slette <x id="PH" equiv-text="this.list.selected.size"/> valgte dokument(er).</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Denne handling kan ikke fortrydes.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html" approved="yes">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,14 +2279,6 @@
</context-group>
<target state="final">Slet dokument(er)</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -2175,14 +2287,6 @@
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Visning "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" er gemt.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="final">Visning "<x id="PH" equiv-text="savedView.name"/>" er oprettet.</target>
</trans-unit>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="translated">Vis i sidebjælke</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="translated">Vis på betjeningspanel</target>
</trans-unit>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="translated">Anvend ved lukning</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="needs-translation">Enable comments</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="translated">Notifikationer</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">Dokumentbehandling</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="translated">Vis notifikationer når nye dokumenter registreres</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="translated">Vis notifikationer når dokumentbehandling er fuldført</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="translated">Vis notifikationer når dokumentbehandling fejler</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="translated">Undertryk notifikationer på betjeningspanelet</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="translated">Dette vil undertrykke alle meddelelser om dokumentbehandlingsstatus på betjeningspanelet.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="translated">Vises på</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="translated">Ingen gemte visninger.</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Gemt visning "<x id="PH" equiv-text="savedView.name"/>" slettet.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="needs-translation">Settings saved</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="needs-translation">Settings were saved successfully.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="needs-translation">Settings were saved successfully. Reload is required to apply some changes.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="needs-translation">Reload now</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="needs-translation">An error occurred while saving settings.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="final">Benyt systemsprog</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="final">Benyt datoformat for visningssprog</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="needs-translation">Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="final">Auto: Lær automatisk at matche</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="needs-translation">Warning: You have unsaved changes to your document(s).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,11 +3629,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">Ugemte Ændringer</target>
</trans-unit>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="translated">Du har ugemte ændringer.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="needs-translation">You have unsaved changes to the document</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="translated">Er du sikker på, at du vil lukke dette dokument?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="translated">Luk dokument</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="translated">Er du sikker på, at du vil lukke alle dokumenter?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="translated">Luk dokumenter</target>
</trans-unit>

View File

@@ -17,7 +17,7 @@
<context context-type="linenumber">157,166</context>
</context-group>
<note priority="1" from="description">Currently selected slide number read by screen reader</note>
<target state="needs-translation"> Slide <x id="INTERPOLATION" equiv-text="ing when mouse"/> of <x id="INTERPOLATION_1" equiv-text="e. * * @s"/> </target>
<target state="translated"> Folie <x id="INTERPOLATION" equiv-text="ing when mouse"/> von <x id="INTERPOLATION_1" equiv-text="e. * * @s"/> </target>
</trans-unit>
<trans-unit id="ngb.carousel.previous" datatype="html">
<source>Previous</source>
@@ -33,7 +33,7 @@
<context context-type="sourcefile">node_modules/src/carousel/carousel.ts</context>
<context context-type="linenumber">209,211</context>
</context-group>
<target state="translated">Weiter</target>
<target state="translated">Nächste</target>
</trans-unit>
<trans-unit id="ngb.datepicker.select-month" datatype="html">
<source>Select month</source>
@@ -155,7 +155,7 @@
<context context-type="sourcefile">node_modules/src/progressbar/progressbar.ts</context>
<context context-type="linenumber">23,26</context>
</context-group>
<target state="needs-translation"><x id="INTERPOLATION" equiv-text="* The maxim"/></target>
<target state="translated"><x id="INTERPOLATION" equiv-text="* The maxim"/></target>
</trans-unit>
<trans-unit id="ngb.timepicker.HH" datatype="html">
<source>HH</source>
@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="translated">Stunden verringern</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="translated">Minuten erhöhen</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="translated">Minuten verringern</target>
</trans-unit>
@@ -345,7 +345,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">146</context>
</context-group>
<target state="translated">Starte Upload...</target>
<target state="translated">Beginne Upload...</target>
</trans-unit>
<trans-unit id="2173456130768795374" datatype="html">
<source>Paperless-ngx</source>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="final">Gespeicherte Ansichten</target>
</trans-unit>
@@ -522,7 +522,7 @@
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="needs-translation">File Tasks<x id="START_TAG_NG_CONTAINER" ctype="x-ng_container" equiv-text="&lt;ng-container *ngIf=&quot;tasksService.failedFileTasks.length &gt; 0&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;badge bg-danger ms-2&quot;&gt;"/><x id="INTERPOLATION" equiv-text="{{tasksService.failedFileTasks.length}}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_NG_CONTAINER" ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;"/></target>
<target state="translated">Dateiaufgaben<x id="START_TAG_NG_CONTAINER" ctype="x-ng_container" equiv-text="&lt;ng-container *ngIf=&quot;tasksService.failedFileTasks.length &gt; 0&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;badge bg-danger ms-2&quot;&gt;"/><x id="INTERPOLATION" equiv-text="{{tasksService.failedFileTasks.length}}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_NG_CONTAINER" ctype="x-ng_container" equiv-text="&lt;/ng-container&gt;"/></target>
</trans-unit>
<trans-unit id="4804785061014590286" datatype="html" approved="yes">
<source>Logs</source>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html" approved="yes">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="final">Speichern</target>
</trans-unit>
@@ -1086,7 +1090,7 @@
<context context-type="sourcefile">src/app/components/common/filterable-dropdown/filterable-dropdown.component.html</context>
<context context-type="linenumber">23</context>
</context-group>
<target state="translated">Alle</target>
<target state="translated">Irgendeines</target>
</trans-unit>
<trans-unit id="4391289919356861627" datatype="html" approved="yes">
<source>Apply</source>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="final">Dokument mit ASN <x id="INTERPOLATION" equiv-text="{{asn}}"/> wird gesucht</target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="translated">Kommentar eingeben</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="translated"> Bitte geben Sie einen Kommentar ein. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="translated">Kommentar hinzufügen</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="translated">Fehler beim Speichern des Kommentars: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="translated">Fehler beim Löschen des Kommentars: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html" approved="yes">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">Löschen</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="final">Original herunterladen</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html" approved="yes">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="final">OCR wiederholen</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html" approved="yes">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="final">Schließen</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="translated">Zurück</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="translated">Weiter</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="translated">Details</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="final">Archiv-Seriennummer</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="final">Ausgestellt am</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1625,7 +1681,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="translated">Standard</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="final">Inhalt</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="final">Geändert am</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="final">Hinzugefügt am</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="final">Media-Dateiname</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="translated">Dateiname Original</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html" approved="yes">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="final">MD5-Prüfsumme Original</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="final">Dateigröße Original</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="final">MIME-Typ Original</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="final">MD5-Prüfsumme Archiv</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="final">Dateigröße Archiv</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="final">Metadaten Original</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="final">Metadaten Archiv</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="translated">Passwort eingeben</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="translated">Kommentare</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html" approved="yes">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="final">Verwerfen</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">Speichern &amp; weiter</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="final">Möchten Sie das Dokument "<x id="PH" equiv-text="this.document.title"/>" wirklich löschen?</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="final">Die Dateien dieses Dokuments werden permanent gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="final">Dokument löschen</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="final">Fehler beim Löschen des Dokuments: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="translated">OCR wiederholen</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="translated">Diese Aktion wird die Texterkennung für das Dokument wiederholen.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Diese Aktion kann nicht rückgängig gemacht werden.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="translated">Fortfahren</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">Die erneute Texterkennung wird im Hintergrund gestartet.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="translated">Fehler beim Ausführen der Aktion: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html" approved="yes">
<source>Select:</source>
<context-group purpose="location">
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1947,7 +2087,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">78,82</context>
</context-group>
<target state="translated"> Originale herunterladen <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Download wird vorbereitet...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
<target state="translated"> Herunterladen <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Herunterladen wird vorbereitet...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="9202029122138685465" datatype="html">
<source> Download originals <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparing download...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></source>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="translated"> Originale herunterladen <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Download wird vorbereitet...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="translated">PCR wiederholen</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2025,7 +2157,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">209,211</context>
</context-group>
<target state="translated">Dieser Vorgang wird die folgenden Tags hinzufügen <x id="PH" equiv-text="this._localizeList( changedTags.itemsToAdd )"/> zu <x id="PH_1" equiv-text="this.list.selected.size"/> ausgewählten Dokument(en).</target>
<target state="translated">Diese Aktion wird die folgenden Tags hinzufügen <x id="PH" equiv-text="this._localizeList( changedTags.itemsToAdd )"/> zu <x id="PH_1" equiv-text="this.list.selected.size"/> ausgewählten Dokument(en).</target>
</trans-unit>
<trans-unit id="7181166515756808573" datatype="html" approved="yes">
<source>This operation will remove the tag &quot;<x id="PH" equiv-text="tag.name"/>&quot; from <x id="PH_1" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -2041,7 +2173,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">222,224</context>
</context-group>
<target state="translated">Dieser Vorgang wird die folgenden Tags entfernen <x id="PH" equiv-text="this._localizeList( changedTags.itemsToRemove )"/> von <x id="PH_1" equiv-text="this.list.selected.size"/> ausgewählten Dokument(en).</target>
<target state="translated">Diese Aktion wird die folgenden Tags <x id="PH" equiv-text="this._localizeList( changedTags.itemsToRemove )"/> von <x id="PH_1" equiv-text="this.list.selected.size"/> ausgewählten Dokument(en) entfernen.</target>
</trans-unit>
<trans-unit id="2739066218579571288" datatype="html">
<source>This operation will add the tags <x id="PH" equiv-text="this._localizeList( changedTags.itemsToAdd )"/> and remove the tags <x id="PH_1" equiv-text="this._localizeList( changedTags.itemsToRemove )"/> on <x id="PH_2" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -2049,7 +2181,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">226,230</context>
</context-group>
<target state="translated">Dieser Vorgang wird die folgenden Tags hinzufügen <x id="PH" equiv-text="this._localizeList( changedTags.itemsToAdd )"/> und die folgenden entfernen <x id="PH_1" equiv-text="this._localizeList( changedTags.itemsToRemove )"/> von <x id="PH_2" equiv-text="this.list.selected.size"/> ausgewählten Dokumenten(en).</target>
<target state="translated">Diese Aktion wird die Tags <x id="PH" equiv-text="this._localizeList( changedTags.itemsToAdd )"/> hinzufügen und die Tags <x id="PH_1" equiv-text="this._localizeList( changedTags.itemsToRemove )"/> ertfernen von <x id="PH_2" equiv-text="this.list.selected.size"/> ausgewählten Dokument(en).</target>
</trans-unit>
<trans-unit id="2996713129519325161" datatype="html" approved="yes">
<source>Confirm correspondent assignment</source>
@@ -2139,18 +2271,6 @@
</context-group>
<target state="final">Diese Aktion wird <x id="PH" equiv-text="this.list.selected.size"/> ausgewählte Dokumente unwiderruflich löschen.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Diese Aktion kann nicht rückgängig gemacht werden.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html" approved="yes">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,29 +2279,13 @@
</context-group>
<target state="final">Dokument(e) löschen</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="translated">OCR wiederholen</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">388</context>
</context-group>
<target state="translated">Diese Aktion wird OCR permanent für <x id="PH" equiv-text="this.list.selected.size"/> ausgewählte(s) Dokument(e) wiederholen.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="translated">Fortfahren</target>
<target state="translated">Diese Aktion wird die Texterkennung für <x id="PH" equiv-text="this.list.selected.size"/> ausgewählte(s) Dokument(e) wiederholen.</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html" approved="yes">
<source>Filter by correspondent</source>
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Ansicht "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" erfolgreich gespeichert.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="final">Ansicht "<x id="PH" equiv-text="savedView.name"/>" erfolgreich erstellt.</target>
</trans-unit>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="final">In Seitenleiste zeigen</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="final">Auf Startseite zeigen</target>
</trans-unit>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="final">Anwenden beim Schließen</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="translated">Kommentare aktivieren</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html" approved="yes">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="final">Benachrichtigungen</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="final">Dokumentverarbeitung</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="final">Zeige Benachrichtigungen wenn neue Dokumente erkannt werden</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="final">Zeige Benachrichtigungen wenn neue Dokumente erfolgreich hinzugefügt wurden</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="final">Zeige Benachrichtigungen wenn Dokumente nicht hinzugefügt werden konnten</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="final">Unterdrücke Benachrichtigungen auf der Startseite</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="final">Dadurch werden alle Benachrichtigungen über die Dokumentenverarbeitung auf der Startseite unterdrückt.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="final">Erscheint auf</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="final">Keine gespeicherten Ansichten vorhanden.</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Gespeicherte Ansicht "<x id="PH" equiv-text="savedView.name"/>" gelöscht.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="translated">Einstellungen gespeichert</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="translated">Einstellungen wurden erfolgreich gespeichert.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="translated">Einstellungen wurden erfolgreich gespeichert. Neuladen ist erforderlich, um einige Änderungen zu übernehmen.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="translated">Jetzt neuladen</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="translated">Ein Fehler ist beim Speichern der Einstellungen aufgetreten.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="final">Benutze Systemsprache</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="final">Benutze Datumsformat der Anzeigesprache</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="translated">Fehler beim Speichern der Einstellungen auf dem Server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3281,7 +3393,7 @@
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target state="translated">Datei-Aufgaben</target>
<target state="translated">Dateiaufgaben</target>
</trans-unit>
<trans-unit id="103921551219467537" datatype="html">
<source>Clear selection</source>
@@ -3299,7 +3411,7 @@
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="needs-translation"><x id="INTERPOLATION" equiv-text="{{dismissButtonText}}"/></target>
<target state="translated"><x id="INTERPOLATION" equiv-text="{{dismissButtonText}}"/></target>
</trans-unit>
<trans-unit id="1102717806459547726" datatype="html">
<source>Refresh</source>
@@ -3351,7 +3463,7 @@
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="needs-translation">Complete <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span *ngIf=&quot;tasksService.completedFileTasks.length &gt; 0&quot; class=&quot;badge bg-secondary ms-1&quot;&gt;"/><x id="INTERPOLATION" equiv-text="{{tasksService.completedFileTasks.length}}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></target>
<target state="translated">Erledigt <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span *ngIf=&quot;tasksService.completedFileTasks.length &gt; 0&quot; class=&quot;badge bg-secondary ms-1&quot;&gt;"/><x id="INTERPOLATION" equiv-text="{{tasksService.completedFileTasks.length}}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></target>
</trans-unit>
<trans-unit id="1697296301417588213" datatype="html">
<source>Started <x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span *ngIf=&quot;tasksService.startedFileTasks.length &gt; 0&quot; class=&quot;badge bg-secondary ms-1&quot;&gt;"/><x id="INTERPOLATION" equiv-text="{{tasksService.startedFileTasks.length}}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/></source>
@@ -3387,7 +3499,7 @@
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.ts</context>
<context context-type="linenumber">52</context>
</context-group>
<target state="needs-translation">Dismiss all</target>
<target state="translated">Alle</target>
</trans-unit>
<trans-unit id="1323591410517879795" datatype="html">
<source>Confirm Dismiss All</source>
@@ -3395,7 +3507,7 @@
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.ts</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="needs-translation">Confirm Dismiss All</target>
<target state="translated">Alle verwerfen bestätigen</target>
</trans-unit>
<trans-unit id="6566358716882976903" datatype="html">
<source>tasks?</source>
@@ -3403,7 +3515,7 @@
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.ts</context>
<context context-type="linenumber">52</context>
</context-group>
<target state="needs-translation">tasks?</target>
<target state="translated">Aufgaben verwerfen?</target>
</trans-unit>
<trans-unit id="181464970911903082" datatype="html" approved="yes">
<source>404 Not Found</source>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="final">Auto: Zuweisung automatisch erlernen</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="translated">Warnung: Sie haben nicht gespeicherte Änderungen an Ihren Dokument(en).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,13 +3629,13 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">Ungespeicherte Änderungen</target>
<target state="translated">Nicht gespeicherte Änderungen</target>
</trans-unit>
<trans-unit id="2573823578527613511" datatype="html">
<source>You have unsaved changes.</source>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="translated">Sie haben ungespeicherte Änderungen.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="translated">Sie haben ungespeicherte Änderungen am Dokument</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="translated">Sind Sie sicher, dass Sie dieses Dokument schließen möchten?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="translated">Dokument schließen</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="translated">Sind Sie sicher, dass Sie alle Dokumente schließen möchten?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="translated">Alle Dokumente schließen</target>
</trans-unit>

View File

@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="translated">Decrementar horas</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="translated">Incrementar minutos</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="translated">Decrementar minutos</target>
</trans-unit>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="final">Vistas guardadas</target>
</trans-unit>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html" approved="yes">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="final">Salvar</target>
</trans-unit>
@@ -914,7 +918,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts</context>
<context context-type="linenumber">24</context>
</context-group>
<target state="final">Crear nuevo tipo de documento</target>
<target state="final">Crear nuevo interlocutor</target>
</trans-unit>
<trans-unit id="2059822531169388684" datatype="html" approved="yes">
<source>Edit correspondent</source>
@@ -922,7 +926,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<target state="final">Editar tipo de documento</target>
<target state="final">Editar interlocutor</target>
</trans-unit>
<trans-unit id="6672809941092516947" datatype="html" approved="yes">
<source>Create new document type</source>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="final">Buscando documento con NSA <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="translated">Introducir comentario</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="translated"> Por favor, introduzca un comentario. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="translated">Añadir comentario</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="translated">Error guardando el comentario: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="translated">Error borrando el comentario: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html" approved="yes">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">Borrar</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="final">Documento original</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="translated">Rehacer OCR</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html" approved="yes">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="final">Cerrar</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="translated">Anterior</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="translated">Siguiente</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="final">Detalles</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="final">Número de serie del archivo</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="final">Fecha de creación</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1619,13 +1675,13 @@
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">19</context>
</context-group>
<target state="final">Correspondencia</target>
<target state="final">Interlocutor</target>
</trans-unit>
<trans-unit id="5066119607229701477" datatype="html" approved="yes">
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="translated">Por defecto</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="final">Contenido</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="final">Fecha de modificación</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="final">Fecha de subida</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="final">Nombre del fichero</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="translated">Nombre del archivo original</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html" approved="yes">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="final">Comprobación MD5 original</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="final">Tamaño del fichero original</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="final">Tipo MIME original</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="final">Comprobación MD5 del archivo</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="final">Tamaño del archivo</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="final">Metadatos originales</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="final">Metadatos archivados</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="translated">Introducir contraseña</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="translated">Comentarios</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html" approved="yes">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="final">Descartar</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">Guardar y continuar</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="final">¿Estás seguro de querer borrar el documento "<x id="PH" equiv-text="this.document.title"/>"?</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="final">Los archivos para este documento serán borrados permanentemente. Esta operación no se puede deshacer.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="final">Borrar documento</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="final">Error borrando el documento: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="translated">Rehacer confirmación de OCR</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="translated">Esta operación rehará permanentemente el OCR de este documento.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Esta operación no se puede deshacer.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="translated">Continuar</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="translated">La operación de rehacer OCR comenzará en segundo plano.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="needs-translation">Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html" approved="yes">
<source>Select:</source>
<context-group purpose="location">
@@ -1883,7 +2023,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.html</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="final">Filtrar tipos de documento</target>
<target state="final">Filtrar interlocutores</target>
</trans-unit>
<trans-unit id="2947613869920454977" datatype="html" approved="yes">
<source>Filter document types</source>
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="translated"> Descargar originales <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparando descarga...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="translated">Rehacer OCR</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2057,7 +2189,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">265</context>
</context-group>
<target state="final">Confirmar asignación correspondiente</target>
<target state="final">Confirmar asignación interlocutor</target>
</trans-unit>
<trans-unit id="6900893559485781849" datatype="html" approved="yes">
<source>This operation will assign the correspondent &quot;<x id="PH" equiv-text="correspondent.name"/>&quot; to <x id="PH_1" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -2065,7 +2197,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">267</context>
</context-group>
<target state="final">Esta operacion asignará el tipo de documento "<x id="PH" equiv-text="correspondent.name"/>" a <x id="PH_1" equiv-text="this.list.selected.size"/> documento(s) seleccionado(s).</target>
<target state="final">Esta operación asignará el interlocutor "<x id="PH" equiv-text="correspondent.name"/>" a <x id="PH_1" equiv-text="this.list.selected.size"/> documento(s) seleccionado(s).</target>
</trans-unit>
<trans-unit id="1257522660364398440" datatype="html" approved="yes">
<source>This operation will remove the correspondent from <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -2073,7 +2205,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="final">Esta operación eliminará el tipo de documento de <x id="PH" equiv-text="this.list.selected.size"/> documento(s) seleccionado(s).</target>
<target state="final">Esta operación eliminará el interlocutor de <x id="PH" equiv-text="this.list.selected.size"/> documento(s) seleccionado(s).</target>
</trans-unit>
<trans-unit id="5393409374423140648" datatype="html" approved="yes">
<source>Confirm document type assignment</source>
@@ -2139,18 +2271,6 @@
</context-group>
<target state="final">Esta operación borrará permanentemente <x id="PH" equiv-text="this.list.selected.size"/> documento(s) seleccionado(s).</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Esta operación no se puede deshacer.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html" approved="yes">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,14 +2279,6 @@
</context-group>
<target state="final">Borrar documento(s)</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -2175,14 +2287,6 @@
</context-group>
<target state="translated">Esta operación rehará permanentemente OCR para <x id="PH" equiv-text="this.list.selected.size"/> documento(s) seleccionados.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="translated">Continuar</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html" approved="yes">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2193,7 +2297,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
<context context-type="linenumber">171</context>
</context-group>
<target state="final">Filtrar por tipo de documento</target>
<target state="final">Filtrar por interlocutor</target>
</trans-unit>
<trans-unit id="2784168796433474565" datatype="html" approved="yes">
<source>Filter by tag</source>
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Ver "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" guardado satisfactoriamente.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="final">Ver "<x id="PH" equiv-text="savedView.name"/>" creado satisfactoriamente.</target>
</trans-unit>
@@ -2525,7 +2629,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="final">Sin tipo de documento</target>
<target state="final">Sin interlocutor</target>
</trans-unit>
<trans-unit id="8705701325879965907" datatype="html">
<source>Type: <x id="PH" equiv-text="this.documentTypes.find((dt) =&gt; dt.id == +rule.value)?.name"/></source>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="final">Mostrar barra lateral</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="final">Mostrar en el panel de control</target>
</trans-unit>
@@ -2677,7 +2781,7 @@
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<target state="needs-translation">Filter rules error occurred while saving this view</target>
<target state="translated">Error en las reglas de filtro al guardar esta vista</target>
</trans-unit>
<trans-unit id="6438839705789707938" datatype="html">
<source>The error returned was</source>
@@ -2717,7 +2821,7 @@
<context context-type="sourcefile">src/app/components/manage/correspondent-list/correspondent-list.component.ts</context>
<context context-type="linenumber">48</context>
</context-group>
<target state="final">¿Estás seguro de querer borrar el tipo de documento "<x id="PH" equiv-text="object.name"/>"?</target>
<target state="final">¿Estás seguro de querer borrar el interlocutor "<x id="PH" equiv-text="object.name"/>"?</target>
</trans-unit>
<trans-unit id="8084492669582894778" datatype="html">
<source>document type</source>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="final">Aplicar al cerrar</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="translated">Activar comentarios</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html" approved="yes">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="final">Notificaciones</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="final">Procesado de documentos</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="final">Mostrar notificaciones cuando nuevos documentos sean borrados</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="final">Mostrar notificaciones cuando el procesado se complete satisfactoriamente</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="final">Mostrar notificaciones cuando el procesado falle</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="final">No mostrar notificaciones en el panel de control</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="final">Esto suprimirá todos los mensajes de estado de procesamiento en el panel de control.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="final">Aparece en</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="final">No hay ninguna vista guardada definida</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Vista guardada "<x id="PH" equiv-text="savedView.name"/>" borrada.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="translated">Configuración guardada</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="translated">La configuración se ha guardado correctamente.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="translated">La configuración se ha guardado con éxito. Es necesario recargar para aplicar algunos cambios.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="translated">Recargar ahora</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="translated">Se produjo un error al guardar la configuración.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="final">Usar idioma del sistema</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="final">Usar formato de fechas del idioma seleccionado</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="translated">Error al almacenar la configuración en el servidor: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="final">Automático: Aprender automáticamente</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="translated">Advertencia: Tiene cambios sin guardar en su documento(s).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,11 +3629,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">Cambios sin guardar</target>
</trans-unit>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="translated">Tiene cambios sin guardar.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="translated">Tienes cambios sin guardar en este documento</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="translated">¿Está seguro de querer cerrar este documento?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="translated">Cerrar documento</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="translated">¿Está seguro de querer cerrar todos los documentos?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="translated">Cerrar documentos</target>
</trans-unit>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="translated">הקטנת שעות</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="translated">הגדלת דקות</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="translated">הקטנת דקות</target>
</trans-unit>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="translated">תצוגות שמורות</target>
</trans-unit>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="final">שמור</target>
</trans-unit>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="translated">מחפש מסמכים עם מס"ד <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Enter comment</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="needs-translation"> Please enter a comment. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="needs-translation">Add comment</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="needs-translation">Error saving comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Error deleting comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html" approved="yes">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="translated">מחק</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="translated">הורדת קובץ המקור</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="final">סגור</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="translated">הקודם</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="translated">הבא</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="translated">פרטים</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="translated">מספר סידורי בארכיון</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="translated">תאריך יצירה</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1625,7 +1681,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="translated">ברירת המחדל</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="translated">תוכן</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="translated">תאריך שינוי</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="final">תאריך הוספה</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="translated">שם קובץ המסמך</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="needs-translation">Original filename</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="translated">סכום בדיקה MD5 לקובץ המקורי</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="translated">גודל הקובץ המקורי</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="translated">סוג ה-mime המקורי</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="translated">סכום בדיקה MD5 לקובץ בארכיון</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="translated">גודל הקובץ בארכיון</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">מטא-נתונים של המסמך המקורי</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="translated">מטא-נתונים של המסמך בארכיון</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="translated">הזן סיסמה</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="needs-translation">Comments</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="translated">בטל</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="translated">שמור &amp; הבא</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="translated">בטוח שברצנך למחוק את המסמך <x id="PH" equiv-text="this.document.title"/>?</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="translated">הקבצים עבור מסמך זה יימחקו לצמיתות. לא ניתן לבטל פעולה זו.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="translated">מחק מסמך</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="translated">שגיאה במחיקת מסמך: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for this document.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="needs-translation">This operation cannot be undone.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="needs-translation">Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html">
<source>Select:</source>
<context-group purpose="location">
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="needs-translation"> Download originals <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparing download...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2139,18 +2271,6 @@
</context-group>
<target state="needs-translation">This operation will permanently delete <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="needs-translation">This operation cannot be undone.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,14 +2279,6 @@
</context-group>
<target state="needs-translation">Delete document(s)</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -2175,14 +2287,6 @@
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="needs-translation">View "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" saved successfully.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="needs-translation">View "<x id="PH" equiv-text="savedView.name"/>" created successfully.</target>
</trans-unit>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="translated">הצג בסרגל צידי</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="translated">הצג בדשבורד</target>
</trans-unit>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="needs-translation">Apply on close</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="needs-translation">Enable comments</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="needs-translation">Notifications</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Document processing</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="needs-translation">Show notifications when new documents are detected</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="needs-translation">Show notifications when document processing completes successfully</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="needs-translation">Show notifications when document processing fails</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="needs-translation">Suppress notifications on dashboard</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="needs-translation">This will suppress all messages about document processing status on the dashboard.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="needs-translation">Appears on</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="needs-translation">No saved views defined.</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="needs-translation">Saved view "<x id="PH" equiv-text="savedView.name"/>" deleted.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="needs-translation">Settings saved</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="needs-translation">Settings were saved successfully.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="needs-translation">Settings were saved successfully. Reload is required to apply some changes.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="needs-translation">Reload now</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="needs-translation">An error occurred while saving settings.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="needs-translation">Use system language</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="needs-translation">Use date format of display language</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="needs-translation">Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="needs-translation">Auto: Learn matching automatically</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="needs-translation">Warning: You have unsaved changes to your document(s).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,11 +3629,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Unsaved Changes</target>
</trans-unit>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="needs-translation">You have unsaved changes.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="translated">ישנם שינויים שלא נשמרו במסמך</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="translated">בטוח שברצונך לסגור מסמך זה?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="translated">סגור מסמך</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="translated">בטוח שברצונך לסגור את כל המסמכים?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="translated">סגור מסמכים</target>
</trans-unit>

View File

@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="translated">Smanjenje sati</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="translated">Povečanje minuta</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="translated">Smanjenje minuta</target>
</trans-unit>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="translated">Spremljeni prikazi</target>
</trans-unit>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="translated">Spremi</target>
</trans-unit>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="needs-translation">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Enter comment</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="needs-translation"> Please enter a comment. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="needs-translation">Add comment</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="needs-translation">Error saving comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Error deleting comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="needs-translation">Delete</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="needs-translation">Download original</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="needs-translation">Close</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="needs-translation">Previous</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="needs-translation">Next</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Details</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="needs-translation">Archive serial number</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="needs-translation">Date created</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1625,7 +1681,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="needs-translation">Default</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Content</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="needs-translation">Date modified</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="needs-translation">Date added</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="needs-translation">Media filename</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="needs-translation">Original filename</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="needs-translation">Original MD5 checksum</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="needs-translation">Original file size</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="needs-translation">Original mime type</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="needs-translation">Archive MD5 checksum</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="needs-translation">Archive file size</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Original document metadata</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="needs-translation">Archived document metadata</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="needs-translation">Enter Password</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="needs-translation">Comments</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="needs-translation">Discard</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="needs-translation">Save &amp; next</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="needs-translation">Do you really want to delete document "<x id="PH" equiv-text="this.document.title"/>"?</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="needs-translation">The files for this document will be deleted permanently. This operation cannot be undone.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="needs-translation">Delete document</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="needs-translation">Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for this document.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="needs-translation">This operation cannot be undone.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="needs-translation">Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html">
<source>Select:</source>
<context-group purpose="location">
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="needs-translation"> Download originals <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparing download...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2139,18 +2271,6 @@
</context-group>
<target state="needs-translation">This operation will permanently delete <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="needs-translation">This operation cannot be undone.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,14 +2279,6 @@
</context-group>
<target state="needs-translation">Delete document(s)</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -2175,14 +2287,6 @@
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="needs-translation">View "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" saved successfully.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="needs-translation">View "<x id="PH" equiv-text="savedView.name"/>" created successfully.</target>
</trans-unit>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="needs-translation">Show in sidebar</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="needs-translation">Show on dashboard</target>
</trans-unit>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="needs-translation">Apply on close</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="needs-translation">Enable comments</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="needs-translation">Notifications</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Document processing</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="needs-translation">Show notifications when new documents are detected</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="needs-translation">Show notifications when document processing completes successfully</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="needs-translation">Show notifications when document processing fails</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="needs-translation">Suppress notifications on dashboard</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="needs-translation">This will suppress all messages about document processing status on the dashboard.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="needs-translation">Appears on</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="needs-translation">No saved views defined.</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="needs-translation">Saved view "<x id="PH" equiv-text="savedView.name"/>" deleted.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="needs-translation">Settings saved</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="needs-translation">Settings were saved successfully.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="needs-translation">Settings were saved successfully. Reload is required to apply some changes.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="needs-translation">Reload now</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="needs-translation">An error occurred while saving settings.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="needs-translation">Use system language</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="needs-translation">Use date format of display language</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="needs-translation">Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="needs-translation">Auto: Learn matching automatically</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="needs-translation">Warning: You have unsaved changes to your document(s).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,11 +3629,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Unsaved Changes</target>
</trans-unit>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="needs-translation">You have unsaved changes.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="needs-translation">You have unsaved changes to the document</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="needs-translation">Are you sure you want to close this document?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="needs-translation">Close document</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="needs-translation">Are you sure you want to close all documents?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="needs-translation">Close documents</target>
</trans-unit>

File diff suppressed because it is too large Load Diff

View File

@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="needs-translation">Decrement hours</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="needs-translation">Increment minutes</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="needs-translation">Decrement minutes</target>
</trans-unit>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="needs-translation">Saved views</target>
</trans-unit>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="needs-translation">Save</target>
</trans-unit>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="needs-translation">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Enter comment</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="needs-translation"> Please enter a comment. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="needs-translation">Add comment</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="needs-translation">Error saving comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Error deleting comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="needs-translation">Delete</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="needs-translation">Download original</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="needs-translation">Close</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="needs-translation">Previous</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="needs-translation">Next</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Details</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="needs-translation">Archive serial number</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="needs-translation">Date created</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1625,7 +1681,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="needs-translation">Default</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Content</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="needs-translation">Date modified</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="needs-translation">Date added</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="needs-translation">Media filename</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="needs-translation">Original filename</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="needs-translation">Original MD5 checksum</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="needs-translation">Original file size</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="needs-translation">Original mime type</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="needs-translation">Archive MD5 checksum</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="needs-translation">Archive file size</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Original document metadata</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="needs-translation">Archived document metadata</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="needs-translation">Enter Password</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="needs-translation">Comments</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="needs-translation">Discard</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="needs-translation">Save &amp; next</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="needs-translation">Do you really want to delete document "<x id="PH" equiv-text="this.document.title"/>"?</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="needs-translation">The files for this document will be deleted permanently. This operation cannot be undone.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="needs-translation">Delete document</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="needs-translation">Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for this document.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="needs-translation">This operation cannot be undone.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="needs-translation">Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html">
<source>Select:</source>
<context-group purpose="location">
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="needs-translation"> Download originals <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparing download...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2139,18 +2271,6 @@
</context-group>
<target state="needs-translation">This operation will permanently delete <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="needs-translation">This operation cannot be undone.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,14 +2279,6 @@
</context-group>
<target state="needs-translation">Delete document(s)</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -2175,14 +2287,6 @@
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="needs-translation">View "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" saved successfully.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="needs-translation">View "<x id="PH" equiv-text="savedView.name"/>" created successfully.</target>
</trans-unit>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="needs-translation">Show in sidebar</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="needs-translation">Show on dashboard</target>
</trans-unit>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="needs-translation">Apply on close</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="needs-translation">Enable comments</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="needs-translation">Notifications</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Document processing</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="needs-translation">Show notifications when new documents are detected</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="needs-translation">Show notifications when document processing completes successfully</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="needs-translation">Show notifications when document processing fails</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="needs-translation">Suppress notifications on dashboard</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="needs-translation">This will suppress all messages about document processing status on the dashboard.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="needs-translation">Appears on</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="needs-translation">No saved views defined.</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="needs-translation">Saved view "<x id="PH" equiv-text="savedView.name"/>" deleted.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="needs-translation">Settings saved</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="needs-translation">Settings were saved successfully.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="needs-translation">Settings were saved successfully. Reload is required to apply some changes.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="needs-translation">Reload now</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="needs-translation">An error occurred while saving settings.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="needs-translation">Use system language</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="needs-translation">Use date format of display language</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="needs-translation">Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="needs-translation">Auto: Learn matching automatically</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="needs-translation">Warning: You have unsaved changes to your document(s).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,11 +3629,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="needs-translation">Unsaved Changes</target>
</trans-unit>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="needs-translation">You have unsaved changes.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="needs-translation">You have unsaved changes to the document</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="needs-translation">Are you sure you want to close this document?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="needs-translation">Close document</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="needs-translation">Are you sure you want to close all documents?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="needs-translation">Close documents</target>
</trans-unit>

View File

@@ -201,7 +201,7 @@
<source>Decrement hours</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">240,243</context>
<context context-type="linenumber">239,240</context>
</context-group>
<target state="translated">Stonnen erofsetzen</target>
</trans-unit>
@@ -209,7 +209,7 @@
<source>Increment minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">268</context>
<context context-type="linenumber">264,268</context>
</context-group>
<target state="translated">Minutten erhéijen</target>
</trans-unit>
@@ -217,7 +217,7 @@
<source>Decrement minutes</source>
<context-group purpose="location">
<context context-type="sourcefile">node_modules/src/timepicker/timepicker.ts</context>
<context context-type="linenumber">288,289</context>
<context context-type="linenumber">287,289</context>
</context-group>
<target state="translated">Minutten erofsetzen</target>
</trans-unit>
@@ -444,7 +444,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">150</context>
<context context-type="linenumber">158</context>
</context-group>
<target state="final">Gespäichert Usiichten</target>
</trans-unit>
@@ -574,6 +574,10 @@
</trans-unit>
<trans-unit id="5612903193691847840" datatype="html" approved="yes">
<source>Suggest an idea</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">192</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
<context context-type="linenumber">196</context>
@@ -776,7 +780,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">157</context>
<context context-type="linenumber">165</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -896,7 +900,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">168</context>
<context context-type="linenumber">184</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html</context>
@@ -904,7 +908,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">189</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="final">Späicheren</target>
</trans-unit>
@@ -1258,7 +1262,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">69</context>
<context context-type="linenumber">75</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
@@ -1441,6 +1445,46 @@
</context-group>
<target state="final">Dokument mat ASN <x id="INTERPOLATION" equiv-text="{{asn}}"/> gëtt gesicht</target>
</trans-unit>
<trans-unit id="2122666445936087317" datatype="html">
<source>Enter comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Enter comment</target>
</trans-unit>
<trans-unit id="4025397324401332794" datatype="html">
<source> Please enter a comment. </source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">5,7</context>
</context-group>
<target state="needs-translation"> Please enter a comment. </target>
</trans-unit>
<trans-unit id="2337485514607640701" datatype="html">
<source>Add comment</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="needs-translation">Add comment</target>
</trans-unit>
<trans-unit id="5438997040668245251" datatype="html">
<source>Error saving comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">57</context>
</context-group>
<target state="needs-translation">Error saving comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="7593210124183303626" datatype="html">
<source>Error deleting comment: <x id="PH" equiv-text="e.toString()"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-comments/document-comments.component.ts</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="needs-translation">Error deleting comment: <x id="PH" equiv-text="e.toString()"/></target>
</trans-unit>
<trans-unit id="1407560924967345762" datatype="html" approved="yes">
<source>Page</source>
<context-group purpose="location">
@@ -1509,7 +1553,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">175</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">Läschen</target>
</trans-unit>
@@ -1537,11 +1581,23 @@
</context-group>
<target state="final">Original eroflueden</target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="1418444397960583910" datatype="html" approved="yes">
<source>More like this</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">34</context>
<context context-type="linenumber">40</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
@@ -1553,7 +1609,7 @@
<source>Close</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">37</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="final">Zoumaachen</target>
</trans-unit>
@@ -1561,7 +1617,7 @@
<source>Previous</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">44</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="translated">Zréck</target>
</trans-unit>
@@ -1569,7 +1625,7 @@
<source>Next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">49</context>
<context context-type="linenumber">55</context>
</context-group>
<target state="translated">Weider</target>
</trans-unit>
@@ -1577,7 +1633,7 @@
<source>Details</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">66</context>
<context context-type="linenumber">72</context>
</context-group>
<target state="final">Detailer</target>
</trans-unit>
@@ -1585,7 +1641,7 @@
<source>Archive serial number</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">70</context>
<context context-type="linenumber">76</context>
</context-group>
<target state="final">Archiv-Seriennummer</target>
</trans-unit>
@@ -1593,7 +1649,7 @@
<source>Date created</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">71</context>
<context context-type="linenumber">77</context>
</context-group>
<target state="final">Erstellungsdatum</target>
</trans-unit>
@@ -1601,7 +1657,7 @@
<source>Correspondent</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">72</context>
<context context-type="linenumber">78</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1625,7 +1681,7 @@
<source>Document type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">74</context>
<context context-type="linenumber">80</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1649,7 +1705,7 @@
<source>Storage path</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">76</context>
<context context-type="linenumber">82</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
@@ -1669,7 +1725,7 @@
<source>Default</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">77</context>
<context context-type="linenumber">83</context>
</context-group>
<target state="translated">Virdefinéiert</target>
</trans-unit>
@@ -1677,7 +1733,7 @@
<source>Content</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">84</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="final">Inhalt</target>
</trans-unit>
@@ -1685,7 +1741,7 @@
<source>Metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">99</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts</context>
@@ -1697,7 +1753,7 @@
<source>Date modified</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">99</context>
<context context-type="linenumber">105</context>
</context-group>
<target state="final">Verännert um</target>
</trans-unit>
@@ -1705,7 +1761,7 @@
<source>Date added</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">103</context>
<context context-type="linenumber">109</context>
</context-group>
<target state="final">Dobäigesat um</target>
</trans-unit>
@@ -1713,15 +1769,23 @@
<source>Media filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">107</context>
<context context-type="linenumber">113</context>
</context-group>
<target state="final">Dateinumm vum Mediefichier</target>
</trans-unit>
<trans-unit id="4500855521601039868" datatype="html">
<source>Original filename</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="needs-translation">Original filename</target>
</trans-unit>
<trans-unit id="7985558498848210210" datatype="html" approved="yes">
<source>Original MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">121</context>
</context-group>
<target state="final">MD5-Préifzomm vum Original</target>
</trans-unit>
@@ -1729,7 +1793,7 @@
<source>Original file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">115</context>
<context context-type="linenumber">125</context>
</context-group>
<target state="final">Dateigréisst vum Original</target>
</trans-unit>
@@ -1737,7 +1801,7 @@
<source>Original mime type</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">129</context>
</context-group>
<target state="final">Urspréngleche MIME-Typ</target>
</trans-unit>
@@ -1745,7 +1809,7 @@
<source>Archive MD5 checksum</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">123</context>
<context context-type="linenumber">133</context>
</context-group>
<target state="final">MD5-Préifzomm vum Archiv</target>
</trans-unit>
@@ -1753,7 +1817,7 @@
<source>Archive file size</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">127</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="final">Archiv-Dateigréisst</target>
</trans-unit>
@@ -1761,7 +1825,7 @@
<source>Original document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">133</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="final">Metadate vum Original-Dokument</target>
</trans-unit>
@@ -1769,7 +1833,7 @@
<source>Archived document metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">134</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="final">Metadate vum Archiv-Dokument</target>
</trans-unit>
@@ -1777,19 +1841,31 @@
<source>Enter Password</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">156</context>
<context context-type="linenumber">166</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">186</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="translated">Passwuert aginn</target>
</trans-unit>
<trans-unit id="3807699453257291879" datatype="html">
<source>Comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">173</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">128</context>
</context-group>
<target state="needs-translation">Comments</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html" approved="yes">
<source>Discard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">166</context>
<context context-type="linenumber">182</context>
</context-group>
<target state="final">Verwerfen</target>
</trans-unit>
@@ -1797,7 +1873,7 @@
<source>Save &amp; next</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">167</context>
<context context-type="linenumber">183</context>
</context-group>
<target state="final">Späicheren a weider</target>
</trans-unit>
@@ -1805,7 +1881,7 @@
<source>Confirm delete</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">439</context>
<context context-type="linenumber">442</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.ts</context>
@@ -1817,7 +1893,7 @@
<source>Do you really want to delete document &quot;<x id="PH" equiv-text="this.document.title"/>&quot;?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">440</context>
<context context-type="linenumber">443</context>
</context-group>
<target state="final">Wëllt Dir d'Dokument "<x id="PH" equiv-text="this.document.title"/>" wierklech läschen?</target>
</trans-unit>
@@ -1825,7 +1901,7 @@
<source>The files for this document will be deleted permanently. This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">441</context>
<context context-type="linenumber">444</context>
</context-group>
<target state="final">D'Fichiere fir dëst Dokument gi permanent geläscht. Dës Operatioun kann net réckgängeg gemaach ginn.</target>
</trans-unit>
@@ -1833,7 +1909,7 @@
<source>Delete document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">443</context>
<context context-type="linenumber">446</context>
</context-group>
<target state="final">Dokument läschen</target>
</trans-unit>
@@ -1841,10 +1917,74 @@
<source>Error deleting document: <x id="PH" equiv-text="JSON.stringify(error)"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">459</context>
<context context-type="linenumber">462</context>
</context-group>
<target state="final">Feeler beim Läsche vum Dokument: <x id="PH" equiv-text="JSON.stringify(error)"/></target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">482</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="9197453786953646058" datatype="html">
<source>This operation will permanently redo OCR for this document.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">483</context>
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for this document.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">484</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Dës Operatioun kann net réckgängeg gemaach ginn.</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">486</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="7662620858973651688" datatype="html">
<source>Redo OCR operation will begin in the background.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">494</context>
</context-group>
<target state="needs-translation">Redo OCR operation will begin in the background.</target>
</trans-unit>
<trans-unit id="8008978164775353960" datatype="html">
<source>Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">505,507</context>
</context-group>
<target state="needs-translation">Error executing operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
<trans-unit id="6857598786757174736" datatype="html" approved="yes">
<source>Select:</source>
<context-group purpose="location">
@@ -1933,7 +2073,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">182</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/tasks/tasks.component.html</context>
@@ -1957,14 +2097,6 @@
</context-group>
<target state="needs-translation"> Download originals <x id="START_TAG_DIV" ctype="x-div" equiv-text="&lt;div *ngIf=&quot;awaitingDownload&quot; class=&quot;spinner-border spinner-border-sm&quot; role=&quot;status&quot;&gt;"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;visually-hidden&quot;&gt;"/>Preparing download...<x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_TAG_DIV" ctype="x-div" equiv-text="&lt;/div&gt;"/></target>
</trans-unit>
<trans-unit id="8312409092917397847" datatype="html">
<source>Redo OCR</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
<context context-type="linenumber">90</context>
</context-group>
<target state="needs-translation">Redo OCR</target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
@@ -2139,18 +2271,6 @@
</context-group>
<target state="final">Dës Operatioun wäert <x id="PH" equiv-text="this.list.selected.size"/> ausgewielt Dokument(er) permanent läschen.</target>
</trans-unit>
<trans-unit id="5641451190833696892" datatype="html" approved="yes">
<source>This operation cannot be undone.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">364</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">389</context>
</context-group>
<target state="final">Dës Operatioun kann net réckgängeg gemaach ginn.</target>
</trans-unit>
<trans-unit id="6734339521247847366" datatype="html" approved="yes">
<source>Delete document(s)</source>
<context-group purpose="location">
@@ -2159,14 +2279,6 @@
</context-group>
<target state="final">Dokument(er) läschen</target>
</trans-unit>
<trans-unit id="7362691899087997122" datatype="html">
<source>Redo OCR confirm</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">387</context>
</context-group>
<target state="needs-translation">Redo OCR confirm</target>
</trans-unit>
<trans-unit id="8968869182645922415" datatype="html">
<source>This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</source>
<context-group purpose="location">
@@ -2175,14 +2287,6 @@
</context-group>
<target state="needs-translation">This operation will permanently redo OCR for <x id="PH" equiv-text="this.list.selected.size"/> selected document(s).</target>
</trans-unit>
<trans-unit id="1181910457994920507" datatype="html">
<source>Proceed</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">391</context>
</context-group>
<target state="needs-translation">Proceed</target>
</trans-unit>
<trans-unit id="8076495233090006322" datatype="html" approved="yes">
<source>Filter by correspondent</source>
<context-group purpose="location">
@@ -2491,7 +2595,7 @@
<source>View &quot;<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>&quot; saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">180</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Usiicht "<x id="PH" equiv-text="this.list.activeSavedViewTitle"/>" gouf erfollegräich gespäichert.</target>
</trans-unit>
@@ -2499,7 +2603,7 @@
<source>View &quot;<x id="PH" equiv-text="savedView.name"/>&quot; created successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/document-list/document-list.component.ts</context>
<context context-type="linenumber">210</context>
<context context-type="linenumber">206</context>
</context-group>
<target state="final">Vue "<x id="PH" equiv-text="savedView.name"/>" gouf erfollegräich erstallt.</target>
</trans-unit>
@@ -2655,7 +2759,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
<context context-type="linenumber">177</context>
</context-group>
<target state="final">An der Säiteleescht uweisen</target>
</trans-unit>
@@ -2667,7 +2771,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">165</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="final">Op der Startsäit uweisen</target>
</trans-unit>
@@ -3083,11 +3187,19 @@
</context-group>
<target state="final">Späichere beim Zoumaachen</target>
</trans-unit>
<trans-unit id="4666858503087488647" datatype="html">
<source>Enable comments</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="needs-translation">Enable comments</target>
</trans-unit>
<trans-unit id="5851560788527570644" datatype="html" approved="yes">
<source>Notifications</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">132</context>
<context context-type="linenumber">140</context>
</context-group>
<target state="final">Notifikatiounen</target>
</trans-unit>
@@ -3095,7 +3207,7 @@
<source>Document processing</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">135</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="final">Dokumenteveraarbechtung</target>
</trans-unit>
@@ -3103,7 +3215,7 @@
<source>Show notifications when new documents are detected</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="final">Notifikatiounen uweise wann nei Dokumenter detektéiert ginn</target>
</trans-unit>
@@ -3111,7 +3223,7 @@
<source>Show notifications when document processing completes successfully</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">148</context>
</context-group>
<target state="final">Notifikatiounen uweise wann d'Dokumentveraarbechtung erfollegräich ofgeschloss ass</target>
</trans-unit>
@@ -3119,7 +3231,7 @@
<source>Show notifications when document processing fails</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">141</context>
<context context-type="linenumber">149</context>
</context-group>
<target state="final">Notifikatiounen uweise wann d'Dokumenteveraarbechtung feelschléit</target>
</trans-unit>
@@ -3127,7 +3239,7 @@
<source>Suppress notifications on dashboard</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="final">Notifikatiounen op der Startsäit ënnerdrécken</target>
</trans-unit>
@@ -3135,7 +3247,7 @@
<source>This will suppress all messages about document processing status on the dashboard.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">150</context>
</context-group>
<target state="final">Doduerch ginn all Messagen iwwer Dokumenteveraarbechtung op der Startsäit ënnerdréckt.</target>
</trans-unit>
@@ -3143,7 +3255,7 @@
<source>Appears on</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">162</context>
<context context-type="linenumber">170</context>
</context-group>
<target state="final">Erschéngt op</target>
</trans-unit>
@@ -3151,7 +3263,7 @@
<source>No saved views defined.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
<context context-type="linenumber">187</context>
</context-group>
<target state="final">Keng gespäichert Usiicht definéiert.</target>
</trans-unit>
@@ -3159,7 +3271,7 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">174</context>
<context context-type="linenumber">176</context>
</context-group>
<target state="final">Gespäichert Usiicht "<x id="PH" equiv-text="savedView.name"/>" geläscht.</target>
</trans-unit>
@@ -3167,7 +3279,7 @@
<source>Settings saved</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">247</context>
<context context-type="linenumber">253</context>
</context-group>
<target state="translated">Astellunge gespäichert</target>
</trans-unit>
@@ -3175,7 +3287,7 @@
<source>Settings were saved successfully.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">248</context>
<context context-type="linenumber">254</context>
</context-group>
<target state="translated">Astellungen erfollegräich gespäichert.</target>
</trans-unit>
@@ -3183,7 +3295,7 @@
<source>Settings were saved successfully. Reload is required to apply some changes.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">252</context>
<context context-type="linenumber">258</context>
</context-group>
<target state="translated">Astellungen erfollegräich gespäichert. Nei lueden ass néideg fir verschidden Ännerungen ze applizéieren.</target>
</trans-unit>
@@ -3191,7 +3303,7 @@
<source>Reload now</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">253</context>
<context context-type="linenumber">259</context>
</context-group>
<target state="translated">Elo nei lueden</target>
</trans-unit>
@@ -3199,7 +3311,7 @@
<source>An error occurred while saving settings.</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">263</context>
<context context-type="linenumber">269</context>
</context-group>
<target state="needs-translation">An error occurred while saving settings.</target>
</trans-unit>
@@ -3207,7 +3319,7 @@
<source>Use system language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">271</context>
<context context-type="linenumber">277</context>
</context-group>
<target state="final">Systemsprooch benotzen</target>
</trans-unit>
@@ -3215,7 +3327,7 @@
<source>Use date format of display language</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">278</context>
<context context-type="linenumber">284</context>
</context-group>
<target state="final">Datumsformat vun der Sprooch vum Interface notzen</target>
</trans-unit>
@@ -3223,7 +3335,7 @@
<source>Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/settings/settings.component.ts</context>
<context context-type="linenumber">298,300</context>
<context context-type="linenumber">304,306</context>
</context-group>
<target state="needs-translation">Error while storing settings on server: <x id="PH" equiv-text="JSON.stringify( error.error )"/></target>
</trans-unit>
@@ -3501,6 +3613,14 @@
</context-group>
<target state="final">Auto: Zouweisung automatesch léieren</target>
</trans-unit>
<trans-unit id="5948496158474272829" datatype="html">
<source>Warning: You have unsaved changes to your document(s).</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/guards/dirty-doc.guard.ts</context>
<context context-type="linenumber">17</context>
</context-group>
<target state="needs-translation">Warning: You have unsaved changes to your document(s).</target>
</trans-unit>
<trans-unit id="159901853873315050" datatype="html">
<source>Unsaved Changes</source>
<context-group purpose="location">
@@ -3509,11 +3629,11 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">111</context>
<context context-type="linenumber">116</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">138</context>
<context context-type="linenumber">143</context>
</context-group>
<target state="translated">Ongespäichert Ännerungen</target>
</trans-unit>
@@ -3525,7 +3645,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">139</context>
<context context-type="linenumber">144</context>
</context-group>
<target state="translated">Dir hutt ongespäichert Ännerungen.</target>
</trans-unit>
@@ -3681,7 +3801,7 @@
<source>You have unsaved changes to the document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">118</context>
</context-group>
<target state="translated">Et ginn ongespäichert Ännerungen um Dokument</target>
</trans-unit>
@@ -3689,7 +3809,7 @@
<source>Are you sure you want to close this document?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="translated">Sidd Dir sécher datt Dir dëst Dokument zoumaache wëllt?</target>
</trans-unit>
@@ -3697,7 +3817,7 @@
<source>Close document</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">119</context>
<context context-type="linenumber">124</context>
</context-group>
<target state="translated">Dokument zoumaachen</target>
</trans-unit>
@@ -3705,7 +3825,7 @@
<source>Are you sure you want to close all documents?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">140</context>
<context context-type="linenumber">145</context>
</context-group>
<target state="translated">Sidd Dir sécher datt Dir all Dokumenter zoumaache wëllt?</target>
</trans-unit>
@@ -3713,7 +3833,7 @@
<source>Close documents</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/open-documents.service.ts</context>
<context context-type="linenumber">142</context>
<context context-type="linenumber">147</context>
</context-group>
<target state="translated">Dokument zoumaachen</target>
</trans-unit>

File diff suppressed because it is too large Load Diff

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