Compare commits

..

5 Commits

Author SHA1 Message Date
Crowdin Bot
d74c275683 New Crowdin translations by GitHub Action 2025-06-24 12:14:42 +00:00
shamoon
37267f3f04
Chore: add webpack directly 2025-06-22 20:03:48 -07:00
shamoon
b34538d991
Update support.yml 2025-06-22 08:03:41 -07:00
shamoon
fc97bd1315
Chore: create support discussion template 2025-06-22 08:02:26 -07:00
shamoon
dbf3721ec2
Chore: reject absurd max age values (#10243) 2025-06-22 07:39:36 -07:00
14 changed files with 179 additions and 74 deletions

55
.github/DISCUSSION_TEMPLATE/support.yml vendored Normal file
View File

@ -0,0 +1,55 @@
title: "[Support] "
body:
- type: textarea
id: description
attributes:
label: What's your question or issue?
description: Provide a clear and concise description of what you're trying to do, and what's going wrong.
placeholder: |
I'm trying to...
[Include screenshots if helpful]
validations:
required: true
- type: textarea
id: steps
attributes:
label: What have you tried?
description: Describe any steps you've already taken to troubleshoot or solve the issue.
placeholder: |
- I checked the logs and saw...
- I followed the install guide and tried...
- type: input
id: version
attributes:
label: Paperless-ngx version
placeholder: e.g. 1.14.0
validations:
required: true
- type: input
id: host-os
attributes:
label: Host OS
description: Include architecture if relevant.
placeholder: e.g. Ubuntu 22.04 / Raspberry Pi arm64
- type: dropdown
id: install-method
attributes:
label: Installation method
options:
- Docker - official image
- Docker - linuxserver.io image
- Bare metal
- Other (please describe above)
- type: textarea
id: system-status
attributes:
label: System status
description: If available, copy & paste the system status output from Settings > System Status > Copy
render: json
- type: textarea
id: logs
attributes:
label: Relevant logs or output
description: If you have logs, errors that might help, paste it here.
render: bash

View File

@ -67,7 +67,8 @@
"jest-websocket-mock": "^2.5.0", "jest-websocket-mock": "^2.5.0",
"prettier-plugin-organize-imports": "^4.1.0", "prettier-plugin-organize-imports": "^4.1.0",
"ts-node": "~10.9.1", "ts-node": "~10.9.1",
"typescript": "^5.5.4" "typescript": "^5.5.4",
"webpack": "^5.98.0"
}, },
"pnpm": { "pnpm": {
"onlyBuiltDependencies": [ "onlyBuiltDependencies": [

67
src-ui/pnpm-lock.yaml generated
View File

@ -174,6 +174,9 @@ importers:
typescript: typescript:
specifier: ^5.5.4 specifier: ^5.5.4
version: 5.5.4 version: 5.5.4
webpack:
specifier: ^5.98.0
version: 5.98.0(esbuild@0.25.4)
packages: packages:
@ -6187,7 +6190,7 @@ snapshots:
dependencies: dependencies:
'@ampproject/remapping': 2.3.0 '@ampproject/remapping': 2.3.0
'@angular-devkit/architect': 0.1902.14(chokidar@4.0.3) '@angular-devkit/architect': 0.1902.14(chokidar@4.0.3)
'@angular-devkit/build-webpack': 0.1902.14(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.4)))(webpack@5.98.0(esbuild@0.25.4)) '@angular-devkit/build-webpack': 0.1902.14(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0))(webpack@5.98.0)
'@angular-devkit/core': 19.2.14(chokidar@4.0.3) '@angular-devkit/core': 19.2.14(chokidar@4.0.3)
'@angular/build': 19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(@angular/compiler@19.2.14)(@angular/localize@19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(@angular/compiler@19.2.14))(@types/node@22.15.29)(chokidar@4.0.3)(jiti@1.21.7)(less@4.2.2)(postcss@8.5.2)(terser@5.39.0)(typescript@5.5.4)(yaml@2.7.0) '@angular/build': 19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(@angular/compiler@19.2.14)(@angular/localize@19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(@angular/compiler@19.2.14))(@types/node@22.15.29)(chokidar@4.0.3)(jiti@1.21.7)(less@4.2.2)(postcss@8.5.2)(terser@5.39.0)(typescript@5.5.4)(yaml@2.7.0)
'@angular/compiler-cli': 19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4) '@angular/compiler-cli': 19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4)
@ -6201,14 +6204,14 @@ snapshots:
'@babel/preset-env': 7.26.9(@babel/core@7.26.10) '@babel/preset-env': 7.26.9(@babel/core@7.26.10)
'@babel/runtime': 7.26.10 '@babel/runtime': 7.26.10
'@discoveryjs/json-ext': 0.6.3 '@discoveryjs/json-ext': 0.6.3
'@ngtools/webpack': 19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(esbuild@0.25.4)) '@ngtools/webpack': 19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0)
'@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.7(@types/node@22.15.29)(jiti@1.21.7)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.7.0)) '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.7(@types/node@22.15.29)(jiti@1.21.7)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.7.0))
ansi-colors: 4.1.3 ansi-colors: 4.1.3
autoprefixer: 10.4.20(postcss@8.5.2) autoprefixer: 10.4.20(postcss@8.5.2)
babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.4)) babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0)
browserslist: 4.25.0 browserslist: 4.25.0
copy-webpack-plugin: 12.0.2(webpack@5.98.0(esbuild@0.25.4)) copy-webpack-plugin: 12.0.2(webpack@5.98.0)
css-loader: 7.1.2(webpack@5.98.0(esbuild@0.25.4)) css-loader: 7.1.2(webpack@5.98.0)
esbuild-wasm: 0.25.4 esbuild-wasm: 0.25.4
fast-glob: 3.3.3 fast-glob: 3.3.3
http-proxy-middleware: 3.0.5 http-proxy-middleware: 3.0.5
@ -6216,32 +6219,32 @@ snapshots:
jsonc-parser: 3.3.1 jsonc-parser: 3.3.1
karma-source-map-support: 1.4.0 karma-source-map-support: 1.4.0
less: 4.2.2 less: 4.2.2
less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0(esbuild@0.25.4)) less-loader: 12.2.0(less@4.2.2)(webpack@5.98.0)
license-webpack-plugin: 4.0.2(webpack@5.98.0(esbuild@0.25.4)) license-webpack-plugin: 4.0.2(webpack@5.98.0)
loader-utils: 3.3.1 loader-utils: 3.3.1
mini-css-extract-plugin: 2.9.2(webpack@5.98.0(esbuild@0.25.4)) mini-css-extract-plugin: 2.9.2(webpack@5.98.0)
open: 10.1.0 open: 10.1.0
ora: 5.4.1 ora: 5.4.1
picomatch: 4.0.2 picomatch: 4.0.2
piscina: 4.8.0 piscina: 4.8.0
postcss: 8.5.2 postcss: 8.5.2
postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(esbuild@0.25.4)) postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0)
resolve-url-loader: 5.0.0 resolve-url-loader: 5.0.0
rxjs: 7.8.1 rxjs: 7.8.1
sass: 1.85.0 sass: 1.85.0
sass-loader: 16.0.5(sass@1.85.0)(webpack@5.98.0(esbuild@0.25.4)) sass-loader: 16.0.5(sass@1.85.0)(webpack@5.98.0)
semver: 7.7.1 semver: 7.7.1
source-map-loader: 5.0.0(webpack@5.98.0(esbuild@0.25.4)) source-map-loader: 5.0.0(webpack@5.98.0)
source-map-support: 0.5.21 source-map-support: 0.5.21
terser: 5.39.0 terser: 5.39.0
tree-kill: 1.2.2 tree-kill: 1.2.2
tslib: 2.8.1 tslib: 2.8.1
typescript: 5.5.4 typescript: 5.5.4
webpack: 5.98.0(esbuild@0.25.4) webpack: 5.98.0(esbuild@0.25.4)
webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.4)) webpack-dev-middleware: 7.4.2(webpack@5.98.0)
webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.4)) webpack-dev-server: 5.2.0(webpack@5.98.0)
webpack-merge: 6.0.1 webpack-merge: 6.0.1
webpack-subresource-integrity: 5.1.0(webpack@5.98.0(esbuild@0.25.4)) webpack-subresource-integrity: 5.1.0(webpack@5.98.0)
optionalDependencies: optionalDependencies:
'@angular/localize': 19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(@angular/compiler@19.2.14) '@angular/localize': 19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(@angular/compiler@19.2.14)
esbuild: 0.25.4 esbuild: 0.25.4
@ -6270,12 +6273,12 @@ snapshots:
- webpack-cli - webpack-cli
- yaml - yaml
'@angular-devkit/build-webpack@0.1902.14(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.4)))(webpack@5.98.0(esbuild@0.25.4))': '@angular-devkit/build-webpack@0.1902.14(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0))(webpack@5.98.0)':
dependencies: dependencies:
'@angular-devkit/architect': 0.1902.14(chokidar@4.0.3) '@angular-devkit/architect': 0.1902.14(chokidar@4.0.3)
rxjs: 7.8.1 rxjs: 7.8.1
webpack: 5.98.0(esbuild@0.25.4) webpack: 5.98.0(esbuild@0.25.4)
webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.4)) webpack-dev-server: 5.2.0(webpack@5.98.0)
transitivePeerDependencies: transitivePeerDependencies:
- chokidar - chokidar
@ -8129,7 +8132,7 @@ snapshots:
rxjs: 7.8.2 rxjs: 7.8.2
tslib: 2.8.1 tslib: 2.8.1
'@ngtools/webpack@19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0(esbuild@0.25.4))': '@ngtools/webpack@19.2.14(@angular/compiler-cli@19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4))(typescript@5.5.4)(webpack@5.98.0)':
dependencies: dependencies:
'@angular/compiler-cli': 19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4) '@angular/compiler-cli': 19.2.14(@angular/compiler@19.2.14)(typescript@5.5.4)
typescript: 5.5.4 typescript: 5.5.4
@ -8928,7 +8931,7 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(esbuild@0.25.4)): babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0):
dependencies: dependencies:
'@babel/core': 7.26.10 '@babel/core': 7.26.10
find-cache-dir: 4.0.0 find-cache-dir: 4.0.0
@ -9263,7 +9266,7 @@ snapshots:
dependencies: dependencies:
is-what: 3.14.1 is-what: 3.14.1
copy-webpack-plugin@12.0.2(webpack@5.98.0(esbuild@0.25.4)): copy-webpack-plugin@12.0.2(webpack@5.98.0):
dependencies: dependencies:
fast-glob: 3.3.3 fast-glob: 3.3.3
glob-parent: 6.0.2 glob-parent: 6.0.2
@ -9311,7 +9314,7 @@ snapshots:
shebang-command: 2.0.0 shebang-command: 2.0.0
which: 2.0.2 which: 2.0.2
css-loader@7.1.2(webpack@5.98.0(esbuild@0.25.4)): css-loader@7.1.2(webpack@5.98.0):
dependencies: dependencies:
icss-utils: 5.1.0(postcss@8.5.2) icss-utils: 5.1.0(postcss@8.5.2)
postcss: 8.5.2 postcss: 8.5.2
@ -10768,7 +10771,7 @@ snapshots:
picocolors: 1.1.1 picocolors: 1.1.1
shell-quote: 1.8.3 shell-quote: 1.8.3
less-loader@12.2.0(less@4.2.2)(webpack@5.98.0(esbuild@0.25.4)): less-loader@12.2.0(less@4.2.2)(webpack@5.98.0):
dependencies: dependencies:
less: 4.2.2 less: 4.2.2
optionalDependencies: optionalDependencies:
@ -10795,7 +10798,7 @@ snapshots:
prelude-ls: 1.2.1 prelude-ls: 1.2.1
type-check: 0.4.0 type-check: 0.4.0
license-webpack-plugin@4.0.2(webpack@5.98.0(esbuild@0.25.4)): license-webpack-plugin@4.0.2(webpack@5.98.0):
dependencies: dependencies:
webpack-sources: 3.3.2 webpack-sources: 3.3.2
optionalDependencies: optionalDependencies:
@ -10963,7 +10966,7 @@ snapshots:
mimic-response@3.1.0: mimic-response@3.1.0:
optional: true optional: true
mini-css-extract-plugin@2.9.2(webpack@5.98.0(esbuild@0.25.4)): mini-css-extract-plugin@2.9.2(webpack@5.98.0):
dependencies: dependencies:
schema-utils: 4.3.2 schema-utils: 4.3.2
tapable: 2.2.2 tapable: 2.2.2
@ -11436,7 +11439,7 @@ snapshots:
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0(esbuild@0.25.4)): postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.5.4)(webpack@5.98.0):
dependencies: dependencies:
cosmiconfig: 9.0.0(typescript@5.5.4) cosmiconfig: 9.0.0(typescript@5.5.4)
jiti: 1.21.7 jiti: 1.21.7
@ -11727,7 +11730,7 @@ snapshots:
safer-buffer@2.1.2: {} safer-buffer@2.1.2: {}
sass-loader@16.0.5(sass@1.85.0)(webpack@5.98.0(esbuild@0.25.4)): sass-loader@16.0.5(sass@1.85.0)(webpack@5.98.0):
dependencies: dependencies:
neo-async: 2.6.2 neo-async: 2.6.2
optionalDependencies: optionalDependencies:
@ -11930,7 +11933,7 @@ snapshots:
source-map-js@1.2.1: {} source-map-js@1.2.1: {}
source-map-loader@5.0.0(webpack@5.98.0(esbuild@0.25.4)): source-map-loader@5.0.0(webpack@5.98.0):
dependencies: dependencies:
iconv-lite: 0.6.3 iconv-lite: 0.6.3
source-map-js: 1.2.1 source-map-js: 1.2.1
@ -12102,7 +12105,7 @@ snapshots:
mkdirp: 3.0.1 mkdirp: 3.0.1
yallist: 5.0.0 yallist: 5.0.0
terser-webpack-plugin@5.3.14(esbuild@0.25.4)(webpack@5.98.0(esbuild@0.25.4)): terser-webpack-plugin@5.3.14(esbuild@0.25.4)(webpack@5.98.0):
dependencies: dependencies:
'@jridgewell/trace-mapping': 0.3.25 '@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1 jest-worker: 27.5.1
@ -12399,7 +12402,7 @@ snapshots:
webidl-conversions@7.0.0: {} webidl-conversions@7.0.0: {}
webpack-dev-middleware@7.4.2(webpack@5.98.0(esbuild@0.25.4)): webpack-dev-middleware@7.4.2(webpack@5.98.0):
dependencies: dependencies:
colorette: 2.0.20 colorette: 2.0.20
memfs: 4.17.2 memfs: 4.17.2
@ -12410,7 +12413,7 @@ snapshots:
optionalDependencies: optionalDependencies:
webpack: 5.98.0(esbuild@0.25.4) webpack: 5.98.0(esbuild@0.25.4)
webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.4)): webpack-dev-server@5.2.0(webpack@5.98.0):
dependencies: dependencies:
'@types/bonjour': 3.5.13 '@types/bonjour': 3.5.13
'@types/connect-history-api-fallback': 1.5.4 '@types/connect-history-api-fallback': 1.5.4
@ -12437,7 +12440,7 @@ snapshots:
serve-index: 1.9.1 serve-index: 1.9.1
sockjs: 0.3.24 sockjs: 0.3.24
spdy: 4.0.2 spdy: 4.0.2
webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.4)) webpack-dev-middleware: 7.4.2(webpack@5.98.0)
ws: 8.18.2 ws: 8.18.2
optionalDependencies: optionalDependencies:
webpack: 5.98.0(esbuild@0.25.4) webpack: 5.98.0(esbuild@0.25.4)
@ -12455,7 +12458,7 @@ snapshots:
webpack-sources@3.3.2: {} webpack-sources@3.3.2: {}
webpack-subresource-integrity@5.1.0(webpack@5.98.0(esbuild@0.25.4)): webpack-subresource-integrity@5.1.0(webpack@5.98.0):
dependencies: dependencies:
typed-assert: 1.0.9 typed-assert: 1.0.9
webpack: 5.98.0(esbuild@0.25.4) webpack: 5.98.0(esbuild@0.25.4)
@ -12484,7 +12487,7 @@ snapshots:
neo-async: 2.6.2 neo-async: 2.6.2
schema-utils: 4.3.2 schema-utils: 4.3.2
tapable: 2.2.2 tapable: 2.2.2
terser-webpack-plugin: 5.3.14(esbuild@0.25.4)(webpack@5.98.0(esbuild@0.25.4)) terser-webpack-plugin: 5.3.14(esbuild@0.25.4)(webpack@5.98.0)
watchpack: 2.4.4 watchpack: 2.4.4
webpack-sources: 3.3.2 webpack-sources: 3.3.2
transitivePeerDependencies: transitivePeerDependencies:

View File

@ -5084,7 +5084,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context> <context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context>
<context context-type="linenumber">132</context> <context context-type="linenumber">132</context>
</context-group> </context-group>
<target state="needs-translation">Positive values will trigger after the date, negative values before.</target> <target state="translated">Les valeurs positives se déclencheront après la date et les valeurs négatives avant.</target>
</trans-unit> </trans-unit>
<trans-unit id="3726450101884717309" datatype="html"> <trans-unit id="3726450101884717309" datatype="html">
<source>Relative to</source> <source>Relative to</source>
@ -8335,7 +8335,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context> <context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">91,92</context> <context context-type="linenumber">91,92</context>
</context-group> </context-group>
<target state="needs-translation">Created: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate }}"/></target> <target state="translated">Créé : <x id="INTERPOLATION" equiv-text="{{ document.created | customDate }}"/></target>
</trans-unit> </trans-unit>
<trans-unit id="2030261243264601523" datatype="html"> <trans-unit id="2030261243264601523" datatype="html">
<source>Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate }}"/></source> <source>Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate }}"/></source>
@ -9115,7 +9115,7 @@
<context context-type="sourcefile">src/app/components/file-drop/file-drop.component.ts</context> <context context-type="sourcefile">src/app/components/file-drop/file-drop.component.ts</context>
<context context-type="linenumber">144</context> <context context-type="linenumber">144</context>
</context-group> </context-group>
<target state="needs-translation">Failed to read dropped items: <x id="PH" equiv-text="e.message"/></target> <target state="translated">Impossible de lire les éléments supprimés : <x id="PH" equiv-text="e.message"/></target>
</trans-unit> </trans-unit>
<trans-unit id="6316128875819022658" datatype="html" approved="yes"> <trans-unit id="6316128875819022658" datatype="html" approved="yes">
<source>correspondent</source> <source>correspondent</source>
@ -10264,7 +10264,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">52</context> <context context-type="linenumber">52</context>
</context-group> </context-group>
<target state="needs-translation">Barcode Settings</target> <target state="translated">Paramètres des codes-barres</target>
</trans-unit> </trans-unit>
<trans-unit id="1313137480169642057" datatype="html"> <trans-unit id="1313137480169642057" datatype="html">
<source>Output Type</source> <source>Output Type</source>
@ -10384,7 +10384,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">186</context> <context context-type="linenumber">186</context>
</context-group> </context-group>
<target state="needs-translation">Enable Barcodes</target> <target state="translated">Activer les codes-barres</target>
</trans-unit> </trans-unit>
<trans-unit id="5111693440737450705" datatype="html"> <trans-unit id="5111693440737450705" datatype="html">
<source>Enable TIFF Support</source> <source>Enable TIFF Support</source>
@ -10392,7 +10392,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">193</context> <context context-type="linenumber">193</context>
</context-group> </context-group>
<target state="needs-translation">Enable TIFF Support</target> <target state="translated">Activer la prise en charge TIFF</target>
</trans-unit> </trans-unit>
<trans-unit id="7024102701648099736" datatype="html"> <trans-unit id="7024102701648099736" datatype="html">
<source>Barcode String</source> <source>Barcode String</source>
@ -10408,7 +10408,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">207</context> <context context-type="linenumber">207</context>
</context-group> </context-group>
<target state="needs-translation">Retain Split Pages</target> <target state="translated">Conserver les pages divisées</target>
</trans-unit> </trans-unit>
<trans-unit id="3585266363073659539" datatype="html"> <trans-unit id="3585266363073659539" datatype="html">
<source>Enable ASN</source> <source>Enable ASN</source>
@ -10416,7 +10416,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">214</context> <context context-type="linenumber">214</context>
</context-group> </context-group>
<target state="needs-translation">Enable ASN</target> <target state="translated">Activer ASN</target>
</trans-unit> </trans-unit>
<trans-unit id="2563883192247717052" datatype="html"> <trans-unit id="2563883192247717052" datatype="html">
<source>ASN Prefix</source> <source>ASN Prefix</source>
@ -10424,7 +10424,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">221</context> <context context-type="linenumber">221</context>
</context-group> </context-group>
<target state="needs-translation">ASN Prefix</target> <target state="translated">Préfixe ASN</target>
</trans-unit> </trans-unit>
<trans-unit id="876335624277968161" datatype="html"> <trans-unit id="876335624277968161" datatype="html">
<source>Upscale</source> <source>Upscale</source>
@ -10440,7 +10440,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">235</context> <context context-type="linenumber">235</context>
</context-group> </context-group>
<target state="needs-translation">DPI</target> <target state="translated">DPI</target>
</trans-unit> </trans-unit>
<trans-unit id="2056636654483201493" datatype="html"> <trans-unit id="2056636654483201493" datatype="html">
<source>Max Pages</source> <source>Max Pages</source>
@ -10448,7 +10448,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">242</context> <context context-type="linenumber">242</context>
</context-group> </context-group>
<target state="needs-translation">Max Pages</target> <target state="translated">Pages maximales</target>
</trans-unit> </trans-unit>
<trans-unit id="7410804727457548947" datatype="html"> <trans-unit id="7410804727457548947" datatype="html">
<source>Enable Tag Detection</source> <source>Enable Tag Detection</source>
@ -10456,7 +10456,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
<target state="needs-translation">Enable Tag Detection</target> <target state="translated">Activer la détection des étiquettes</target>
</trans-unit> </trans-unit>
<trans-unit id="3723784143052004117" datatype="html"> <trans-unit id="3723784143052004117" datatype="html">
<source>Tag Mapping</source> <source>Tag Mapping</source>
@ -10464,7 +10464,7 @@
<context context-type="sourcefile">src/app/data/paperless-config.ts</context> <context context-type="sourcefile">src/app/data/paperless-config.ts</context>
<context context-type="linenumber">256</context> <context context-type="linenumber">256</context>
</context-group> </context-group>
<target state="needs-translation">Tag Mapping</target> <target state="translated">Mappage des tags</target>
</trans-unit> </trans-unit>
<trans-unit id="5948496158474272829" datatype="html" approved="yes"> <trans-unit id="5948496158474272829" datatype="html" approved="yes">
<source>Warning: You have unsaved changes to your document(s).</source> <source>Warning: You have unsaved changes to your document(s).</source>
@ -10864,7 +10864,7 @@
<context context-type="sourcefile">src/app/services/settings.service.ts</context> <context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">177</context> <context context-type="linenumber">177</context>
</context-group> </context-group>
<target state="needs-translation">Persian</target> <target state="translated">Persan</target>
</trans-unit> </trans-unit>
<trans-unit id="792060551707690640" datatype="html" approved="yes"> <trans-unit id="792060551707690640" datatype="html" approved="yes">
<source>Polish</source> <source>Polish</source>

View File

@ -5084,7 +5084,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context> <context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context>
<context context-type="linenumber">132</context> <context context-type="linenumber">132</context>
</context-group> </context-group>
<target state="needs-translation">Positive values will trigger after the date, negative values before.</target> <target state="translated">ערכים חיוביים יפעילו את תהליך העבודה לפני התאריך, וערכים שליליים אחריו.</target>
</trans-unit> </trans-unit>
<trans-unit id="3726450101884717309" datatype="html"> <trans-unit id="3726450101884717309" datatype="html">
<source>Relative to</source> <source>Relative to</source>
@ -9156,7 +9156,7 @@
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.html</context> <context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.html</context>
<context context-type="linenumber">4</context> <context context-type="linenumber">4</context>
</context-group> </context-group>
<target state="needs-translation">Customize the data fields that can be attached to documents.</target> <target state="translated">עריכת שדות מיוחדים המשויכים למסמכים.</target>
</trans-unit> </trans-unit>
<trans-unit id="8019331026479399960" datatype="html"> <trans-unit id="8019331026479399960" datatype="html">
<source>Add Field</source> <source>Add Field</source>
@ -9196,7 +9196,7 @@
<context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.html</context> <context context-type="sourcefile">src/app/components/manage/management-list/management-list.component.html</context>
<context context-type="linenumber">86</context> <context context-type="linenumber">86</context>
</context-group> </context-group>
<target state="needs-translation">Filter Documents (<x id="INTERPOLATION" equiv-text="{{ field.document_count }}"/>)</target> <target state="translated">סינון מסמכים (<x id="INTERPOLATION" equiv-text="{{ field.document_count }}"/>)</target>
</trans-unit> </trans-unit>
<trans-unit id="651372623796033489" datatype="html"> <trans-unit id="651372623796033489" datatype="html">
<source>No fields defined.</source> <source>No fields defined.</source>
@ -9228,7 +9228,7 @@
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context> <context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
<context context-type="linenumber">116</context> <context context-type="linenumber">116</context>
</context-group> </context-group>
<target state="needs-translation">Deleted field "<x id="PH" equiv-text="field.name"/>"</target> <target state="translated">מחיקת שדה <x id="PH" equiv-text="field.name"/></target>
</trans-unit> </trans-unit>
<trans-unit id="4704551499967874824" datatype="html"> <trans-unit id="4704551499967874824" datatype="html">
<source>Error deleting field &quot;<x id="PH" equiv-text="field.name"/>&quot;.</source> <source>Error deleting field &quot;<x id="PH" equiv-text="field.name"/>&quot;.</source>
@ -9236,7 +9236,7 @@
<context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context> <context context-type="sourcefile">src/app/components/manage/custom-fields/custom-fields.component.ts</context>
<context context-type="linenumber">125</context> <context context-type="linenumber">125</context>
</context-group> </context-group>
<target state="needs-translation">Error deleting field "<x id="PH" equiv-text="field.name"/>".</target> <target state="translated">שגיאה במחקית שדה <x id="PH" equiv-text="field.name"/>.</target>
</trans-unit> </trans-unit>
<trans-unit id="8084492669582894778" datatype="html"> <trans-unit id="8084492669582894778" datatype="html">
<source>document type</source> <source>document type</source>
@ -9292,7 +9292,7 @@
<context context-type="sourcefile">src/app/components/manage/mail/mail.component.html</context> <context context-type="sourcefile">src/app/components/manage/mail/mail.component.html</context>
<context context-type="linenumber">18</context> <context context-type="linenumber">18</context>
</context-group> </context-group>
<target state="needs-translation">Connect Gmail Account</target> <target state="translated">חיבור חשבון Gmail</target>
</trans-unit> </trans-unit>
<trans-unit id="6630732552154686829" datatype="html"> <trans-unit id="6630732552154686829" datatype="html">
<source>Connect Outlook Account</source> <source>Connect Outlook Account</source>
@ -9300,7 +9300,7 @@
<context context-type="sourcefile">src/app/components/manage/mail/mail.component.html</context> <context context-type="sourcefile">src/app/components/manage/mail/mail.component.html</context>
<context context-type="linenumber">23</context> <context context-type="linenumber">23</context>
</context-group> </context-group>
<target state="needs-translation">Connect Outlook Account</target> <target state="translated">חיבור חשבון Outlook</target>
</trans-unit> </trans-unit>
<trans-unit id="2188854519574316630" datatype="html"> <trans-unit id="2188854519574316630" datatype="html">
<source>Server</source> <source>Server</source>

View File

@ -5084,7 +5084,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context> <context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context>
<context context-type="linenumber">132</context> <context context-type="linenumber">132</context>
</context-group> </context-group>
<target state="needs-translation">Positive values will trigger after the date, negative values before.</target> <target state="translated">Dodatnie wartości spowodują działanie po dacie, a ujemne przed nią.</target>
</trans-unit> </trans-unit>
<trans-unit id="3726450101884717309" datatype="html"> <trans-unit id="3726450101884717309" datatype="html">
<source>Relative to</source> <source>Relative to</source>

View File

@ -5084,7 +5084,7 @@
<context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context> <context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context>
<context context-type="linenumber">132</context> <context context-type="linenumber">132</context>
</context-group> </context-group>
<target state="needs-translation">Positive values will trigger after the date, negative values before.</target> <target state="translated">Pozitivne vrednosti će biti primenjene nakon datuma, a negativne vrednosti pre.</target>
</trans-unit> </trans-unit>
<trans-unit id="3726450101884717309" datatype="html"> <trans-unit id="3726450101884717309" datatype="html">
<source>Relative to</source> <source>Relative to</source>

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n" "Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-19 18:51+0000\n" "POT-Creation-Date: 2025-06-19 18:51+0000\n"
"PO-Revision-Date: 2025-06-19 18:52\n" "PO-Revision-Date: 2025-06-24 00:36\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: French\n" "Language-Team: French\n"
"Language: fr_FR\n" "Language: fr_FR\n"
@ -1584,35 +1584,35 @@ msgstr ""
#: paperless/models.py:217 #: paperless/models.py:217
msgid "Retains split pages" msgid "Retains split pages"
msgstr "" msgstr "Conserve les pages divisées"
#: paperless/models.py:223 #: paperless/models.py:223
msgid "Enables ASN barcode" msgid "Enables ASN barcode"
msgstr "" msgstr "Active le code-barres ASN"
#: paperless/models.py:229 #: paperless/models.py:229
msgid "Sets the ASN barcode prefix" msgid "Sets the ASN barcode prefix"
msgstr "" msgstr "Définit le préfixe du code-barres ASN"
#: paperless/models.py:237 #: paperless/models.py:237
msgid "Sets the barcode upscale factor" msgid "Sets the barcode upscale factor"
msgstr "" msgstr "Définit le facteur de mise à l'échelle du code-barres"
#: paperless/models.py:244 #: paperless/models.py:244
msgid "Sets the barcode DPI" msgid "Sets the barcode DPI"
msgstr "" msgstr "Définit le DPI du code-barres"
#: paperless/models.py:251 #: paperless/models.py:251
msgid "Sets the maximum pages for barcode" msgid "Sets the maximum pages for barcode"
msgstr "" msgstr "Définit le nombre maximum de pages pour le code-barres"
#: paperless/models.py:258 #: paperless/models.py:258
msgid "Enables tag barcode" msgid "Enables tag barcode"
msgstr "" msgstr "Activer les étiquettes pour le code-barres"
#: paperless/models.py:264 #: paperless/models.py:264
msgid "Sets the tag barcode mapping" msgid "Sets the tag barcode mapping"
msgstr "" msgstr "Définit la correspondance des étiquettes de code-barres"
#: paperless/models.py:269 #: paperless/models.py:269
msgid "paperless application settings" msgid "paperless application settings"
@ -1668,7 +1668,7 @@ msgstr "Espagnol"
#: paperless/settings.py:767 #: paperless/settings.py:767
msgid "Persian" msgid "Persian"
msgstr "" msgstr "Persan"
#: paperless/settings.py:768 #: paperless/settings.py:768
msgid "Finnish" msgid "Finnish"

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n" "Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-19 18:51+0000\n" "POT-Creation-Date: 2025-06-19 18:51+0000\n"
"PO-Revision-Date: 2025-06-19 18:52\n" "PO-Revision-Date: 2025-06-24 00:36\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Hebrew\n" "Language-Team: Hebrew\n"
"Language: he_IL\n" "Language: he_IL\n"
@ -1670,7 +1670,7 @@ msgstr "ספרדית"
#: paperless/settings.py:767 #: paperless/settings.py:767
msgid "Persian" msgid "Persian"
msgstr "" msgstr "פרסית"
#: paperless/settings.py:768 #: paperless/settings.py:768
msgid "Finnish" msgid "Finnish"

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n" "Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-19 18:51+0000\n" "POT-Creation-Date: 2025-06-19 18:51+0000\n"
"PO-Revision-Date: 2025-06-19 18:52\n" "PO-Revision-Date: 2025-06-24 12:14\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Luxembourgish\n" "Language-Team: Luxembourgish\n"
"Language: lb_LU\n" "Language: lb_LU\n"
@ -63,7 +63,7 @@ msgstr "Besëtzer"
#: documents/models.py:53 documents/models.py:924 #: documents/models.py:53 documents/models.py:924
msgid "None" msgid "None"
msgstr "" msgstr "Keng"
#: documents/models.py:54 documents/models.py:925 #: documents/models.py:54 documents/models.py:925
msgid "Any word" msgid "Any word"
@ -196,11 +196,11 @@ msgstr "D'Préifzomm vum archivéierten Dokument."
#: documents/models.py:205 #: documents/models.py:205
msgid "page count" msgid "page count"
msgstr "" msgstr "saiten unnzuel"
#: documents/models.py:212 #: documents/models.py:212
msgid "The number of pages of the document." msgid "The number of pages of the document."
msgstr "" msgstr "Weivill Saiten d' Dokument huet."
#: documents/models.py:217 documents/models.py:633 documents/models.py:671 #: documents/models.py:217 documents/models.py:633 documents/models.py:671
#: documents/models.py:742 documents/models.py:800 #: documents/models.py:742 documents/models.py:800

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n" "Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-19 18:51+0000\n" "POT-Creation-Date: 2025-06-19 18:51+0000\n"
"PO-Revision-Date: 2025-06-19 18:52\n" "PO-Revision-Date: 2025-06-23 00:39\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Polish\n" "Language-Team: Polish\n"
"Language: pl_PL\n" "Language: pl_PL\n"

View File

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n" "Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-19 18:51+0000\n" "POT-Creation-Date: 2025-06-19 18:51+0000\n"
"PO-Revision-Date: 2025-06-19 18:52\n" "PO-Revision-Date: 2025-06-23 00:39\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Serbian (Latin)\n" "Language-Team: Serbian (Latin)\n"
"Language: sr_CS\n" "Language: sr_CS\n"

View File

@ -125,3 +125,8 @@ class MailRuleSerializer(OwnedObjectSerializer):
raise serializers.ValidationError("An action parameter is required.") raise serializers.ValidationError("An action parameter is required.")
return attrs return attrs
def validate_maximum_age(self, value):
if value > 36500: # ~100 years
raise serializers.ValidationError("Maximum mail age is unreasonably large.")
return value

View File

@ -680,3 +680,44 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase):
self.assertEqual(response.data["results"][0]["name"], rule1.name) self.assertEqual(response.data["results"][0]["name"], rule1.name)
self.assertEqual(response.data["results"][1]["name"], rule2.name) self.assertEqual(response.data["results"][1]["name"], rule2.name)
self.assertEqual(response.data["results"][2]["name"], rule4.name) self.assertEqual(response.data["results"][2]["name"], rule4.name)
def test_mailrule_maxage_validation(self):
"""
GIVEN:
- An existing mail account
WHEN:
- The user submits a mail rule with an excessively large maximum_age
THEN:
- The API should reject the request
"""
account = MailAccount.objects.create(
name="Email1",
username="username1",
password="password1",
imap_server="server.example.com",
imap_port=443,
imap_security=MailAccount.ImapSecurity.SSL,
character_set="UTF-8",
)
rule_data = {
"name": "Rule1",
"account": account.pk,
"folder": "INBOX",
"filter_from": "from@example.com",
"filter_to": "aperson@aplace.com",
"filter_subject": "subject",
"filter_body": "body",
"filter_attachment_filename_include": "file.pdf",
"maximum_age": 9000000,
"action": MailRule.MailAction.MARK_READ,
"assign_title_from": MailRule.TitleSource.FROM_SUBJECT,
"assign_correspondent_from": MailRule.CorrespondentSource.FROM_NOTHING,
"order": 0,
"attachment_type": MailRule.AttachmentProcessing.ATTACHMENTS_ONLY,
}
response = self.client.post(self.ENDPOINT, data=rule_data, format="json")
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertIn("maximum_age", response.data)