mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-26 00:02:35 -04:00 
			
		
		
		
	Merge branch 'dev'
This commit is contained in:
		
						commit
						cc35b321c5
					
				
							
								
								
									
										2
									
								
								.github/ISSUE_TEMPLATE/bug-report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/ISSUE_TEMPLATE/bug-report.yml
									
									
									
									
										vendored
									
									
								
							| @ -98,7 +98,7 @@ body: | |||||||
|       label: Browser |       label: Browser | ||||||
|       description: Which browser you are using, if relevant. |       description: Which browser you are using, if relevant. | ||||||
|       placeholder: e.g. Chrome, Safari |       placeholder: e.g. Chrome, Safari | ||||||
|   - type: input |   - type: textarea | ||||||
|     id: config-changes |     id: config-changes | ||||||
|     attributes: |     attributes: | ||||||
|       label: Configuration changes |       label: Configuration changes | ||||||
|  | |||||||
							
								
								
									
										4081
									
								
								src-ui/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4081
									
								
								src-ui/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -11,54 +11,54 @@ | |||||||
|   }, |   }, | ||||||
|   "private": true, |   "private": true, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@angular/cdk": "^18.2.6", |     "@angular/cdk": "^18.2.11", | ||||||
|     "@angular/common": "~18.2.6", |     "@angular/common": "~18.2.10", | ||||||
|     "@angular/compiler": "~18.2.6", |     "@angular/compiler": "~18.2.10", | ||||||
|     "@angular/core": "~18.2.6", |     "@angular/core": "~18.2.10", | ||||||
|     "@angular/forms": "~18.2.6", |     "@angular/forms": "~18.2.10", | ||||||
|     "@angular/localize": "~18.2.6", |     "@angular/localize": "~18.2.10", | ||||||
|     "@angular/platform-browser": "~18.2.6", |     "@angular/platform-browser": "~18.2.10", | ||||||
|     "@angular/platform-browser-dynamic": "~18.2.6", |     "@angular/platform-browser-dynamic": "~18.2.10", | ||||||
|     "@angular/router": "~18.2.6", |     "@angular/router": "~18.2.10", | ||||||
|     "@ng-bootstrap/ng-bootstrap": "^17.0.1", |     "@ng-bootstrap/ng-bootstrap": "^17.0.1", | ||||||
|     "@ng-select/ng-select": "^13.9.0", |     "@ng-select/ng-select": "^13.9.1", | ||||||
|     "@ngneat/dirty-check-forms": "^3.0.3", |     "@ngneat/dirty-check-forms": "^3.0.3", | ||||||
|     "@popperjs/core": "^2.11.8", |     "@popperjs/core": "^2.11.8", | ||||||
|     "bootstrap": "^5.3.3", |     "bootstrap": "^5.3.3", | ||||||
|     "file-saver": "^2.0.5", |     "file-saver": "^2.0.5", | ||||||
|     "mime-names": "^1.0.0", |     "mime-names": "^1.0.0", | ||||||
|     "ng2-pdf-viewer": "^10.3.1", |     "ng2-pdf-viewer": "^10.3.4", | ||||||
|     "ngx-bootstrap-icons": "^1.9.3", |     "ngx-bootstrap-icons": "^1.9.3", | ||||||
|     "ngx-color": "^9.0.0", |     "ngx-color": "^9.0.0", | ||||||
|     "ngx-cookie-service": "^18.0.0", |     "ngx-cookie-service": "^18.0.0", | ||||||
|     "ngx-file-drop": "^16.0.0", |     "ngx-file-drop": "^16.0.0", | ||||||
|     "ngx-ui-tour-ng-bootstrap": "^15.0.0", |     "ngx-ui-tour-ng-bootstrap": "^15.0.0", | ||||||
|     "rxjs": "^7.8.1", |     "rxjs": "^7.8.1", | ||||||
|     "tslib": "^2.7.0", |     "tslib": "^2.8.1", | ||||||
|     "uuid": "^10.0.0", |     "uuid": "^11.0.2", | ||||||
|     "zone.js": "^0.14.8" |     "zone.js": "^0.14.8" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@angular-builders/custom-webpack": "^18.0.0", |     "@angular-builders/custom-webpack": "^18.0.0", | ||||||
|     "@angular-builders/jest": "^18.0.0", |     "@angular-builders/jest": "^18.0.0", | ||||||
|     "@angular-devkit/build-angular": "^18.2.2", |     "@angular-devkit/build-angular": "^18.2.2", | ||||||
|     "@angular-devkit/core": "^18.2.6", |     "@angular-devkit/core": "^18.2.11", | ||||||
|     "@angular-devkit/schematics": "^18.2.6", |     "@angular-devkit/schematics": "^18.2.11", | ||||||
|     "@angular-eslint/builder": "18.3.1", |     "@angular-eslint/builder": "18.4.0", | ||||||
|     "@angular-eslint/eslint-plugin": "18.3.1", |     "@angular-eslint/eslint-plugin": "18.4.0", | ||||||
|     "@angular-eslint/eslint-plugin-template": "18.3.1", |     "@angular-eslint/eslint-plugin-template": "18.4.0", | ||||||
|     "@angular-eslint/schematics": "18.3.1", |     "@angular-eslint/schematics": "18.4.0", | ||||||
|     "@angular-eslint/template-parser": "18.3.1", |     "@angular-eslint/template-parser": "18.4.0", | ||||||
|     "@angular/cli": "~18.2.6", |     "@angular/cli": "~18.2.11", | ||||||
|     "@angular/compiler-cli": "~18.2.2", |     "@angular/compiler-cli": "~18.2.2", | ||||||
|     "@codecov/webpack-plugin": "^1.2.0", |     "@codecov/webpack-plugin": "^1.2.1", | ||||||
|     "@playwright/test": "^1.47.2", |     "@playwright/test": "^1.48.2", | ||||||
|     "@types/jest": "^29.5.13", |     "@types/jest": "^29.5.14", | ||||||
|     "@types/node": "^22.7.4", |     "@types/node": "^22.8.6", | ||||||
|     "@typescript-eslint/eslint-plugin": "^8.8.0", |     "@typescript-eslint/eslint-plugin": "^8.12.2", | ||||||
|     "@typescript-eslint/parser": "^8.8.0", |     "@typescript-eslint/parser": "^8.12.2", | ||||||
|     "@typescript-eslint/utils": "^8.0.0", |     "@typescript-eslint/utils": "^8.0.0", | ||||||
|     "eslint": "^9.11.1", |     "eslint": "^9.14.0", | ||||||
|     "jest": "29.7.0", |     "jest": "29.7.0", | ||||||
|     "jest-environment-jsdom": "^29.7.0", |     "jest-environment-jsdom": "^29.7.0", | ||||||
|     "jest-preset-angular": "^14.2.4", |     "jest-preset-angular": "^14.2.4", | ||||||
|  | |||||||
| @ -38,7 +38,7 @@ | |||||||
|           @for (item of selectionModel.itemsSorted | filter: filterText:'name'; track item; let i = $index) { |           @for (item of selectionModel.itemsSorted | filter: filterText:'name'; track item; let i = $index) { | ||||||
|             @if (allowSelectNone || item.id) { |             @if (allowSelectNone || item.id) { | ||||||
|               <pngx-toggleable-dropdown-button |               <pngx-toggleable-dropdown-button | ||||||
|                 [item]="item" [hideCount]="hideCount(item)" [state]="selectionModel.get(item.id)" [count]="getUpdatedDocumentCount(item.id)" (toggle)="selectionModel.toggle(item.id)" (exclude)="excludeClicked(item.id)" (click)="setButtonItemIndex(i - 1)" [disabled]="disabled"> |                 [item]="item" [hideCount]="hideCount(item)" [state]="selectionModel.get(item.id)" [count]="getUpdatedDocumentCount(item.id)" (toggled)="selectionModel.toggle(item.id)" (exclude)="excludeClicked(item.id)" (click)="setButtonItemIndex(i - 1)" [disabled]="disabled"> | ||||||
|               </pngx-toggleable-dropdown-button> |               </pngx-toggleable-dropdown-button> | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|  | |||||||
| @ -58,7 +58,7 @@ describe('ToggleableDropdownButtonComponent', () => { | |||||||
|     let toggleResult |     let toggleResult | ||||||
|     component.state = ToggleableItemState.Selected |     component.state = ToggleableItemState.Selected | ||||||
|     component.exclude.subscribe(() => (excludeResult = true)) |     component.exclude.subscribe(() => (excludeResult = true)) | ||||||
|     component.toggle.subscribe(() => (toggleResult = true)) |     component.toggled.subscribe(() => (toggleResult = true)) | ||||||
|     const button = fixture.nativeElement.querySelector('button') |     const button = fixture.nativeElement.querySelector('button') | ||||||
|     button.dispatchEvent(new MouseEvent('click')) |     button.dispatchEvent(new MouseEvent('click')) | ||||||
|     expect(excludeResult).toBeTruthy() |     expect(excludeResult).toBeTruthy() | ||||||
| @ -70,7 +70,7 @@ describe('ToggleableDropdownButtonComponent', () => { | |||||||
|     let toggleResult |     let toggleResult | ||||||
|     component.state = ToggleableItemState.Excluded |     component.state = ToggleableItemState.Excluded | ||||||
|     component.exclude.subscribe(() => (excludeResult = true)) |     component.exclude.subscribe(() => (excludeResult = true)) | ||||||
|     component.toggle.subscribe(() => (toggleResult = true)) |     component.toggled.subscribe(() => (toggleResult = true)) | ||||||
|     const button = fixture.nativeElement.querySelector('button') |     const button = fixture.nativeElement.querySelector('button') | ||||||
|     button.dispatchEvent(new MouseEvent('click')) |     button.dispatchEvent(new MouseEvent('click')) | ||||||
|     expect(excludeResult).toBeFalsy() |     expect(excludeResult).toBeFalsy() | ||||||
|  | |||||||
| @ -30,7 +30,7 @@ export class ToggleableDropdownButtonComponent { | |||||||
|   hideCount: boolean = false |   hideCount: boolean = false | ||||||
| 
 | 
 | ||||||
|   @Output() |   @Output() | ||||||
|   toggle = new EventEmitter() |   toggled = new EventEmitter() | ||||||
| 
 | 
 | ||||||
|   @Output() |   @Output() | ||||||
|   exclude = new EventEmitter() |   exclude = new EventEmitter() | ||||||
| @ -43,7 +43,7 @@ export class ToggleableDropdownButtonComponent { | |||||||
|     if (this.state == ToggleableItemState.Selected) { |     if (this.state == ToggleableItemState.Selected) { | ||||||
|       this.exclude.emit() |       this.exclude.emit() | ||||||
|     } else { |     } else { | ||||||
|       this.toggle.emit() |       this.toggled.emit() | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
|     </div> |     </div> | ||||||
|   } @else { |   } @else { | ||||||
|     @if (renderAsObject) { |     @if (renderAsObject) { | ||||||
|       <object [data]="previewURL | safeUrl" width="100%" class="bg-light" [class.p-2]="!isPdf"></object> |       <object [data]="previewURL | safeUrl" width="100%" class="bg-light" [class.p-2]="!isPdf" [class.pdf]="isPdf"></object> | ||||||
|     } @else { |     } @else { | ||||||
|       @if (requiresPassword) { |       @if (requiresPassword) { | ||||||
|         <div class="w-100 h-100 position-relative"> |         <div class="w-100 h-100 position-relative"> | ||||||
|  | |||||||
| @ -17,7 +17,7 @@ | |||||||
|     background-color: #e7e7e7; |     background-color: #e7e7e7; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   object { |   object:not(.pdf) { | ||||||
|     mix-blend-mode: difference; |     mix-blend-mode: difference; | ||||||
|     &.p-2 { |     &.p-2 { | ||||||
|       padding: 0 !important; |       padding: 0 !important; | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| <div class="card mb-3 shadow-sm bg-light" [class.card-selected]="selected" [class.document-card]="selectable" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()"> | <div class="card mb-3 shadow-sm bg-light" [class.card-selected]="selected" [class.document-card]="selectable" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()"> | ||||||
|   <div class="row g-0"> |   <div class="row g-0"> | ||||||
|     <div class="col-md-2 doc-img-background rounded-start" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)" (dblclick)="dblClickDocument.emit()"> |     <div class="col-md-2 doc-img-container rounded-start" (click)="this.toggleSelected.emit($event)" (dblclick)="dblClickDocument.emit()"> | ||||||
|       <img [src]="getThumbUrl()" class="card-img doc-img border-end rounded-start" [class.inverted]="getIsThumbInverted()"> |       <img [src]="getThumbUrl()" class="card-img doc-img border-end rounded-start" [class.inverted]="getIsThumbInverted()"> | ||||||
| 
 | 
 | ||||||
|       <div class="border-end border-bottom bg-light document-card-check"> |       <div class="border-end border-bottom bg-light document-card-check"> | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ | |||||||
|   overflow-wrap: anywhere; |   overflow-wrap: anywhere; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .doc-img-background { | .doc-img-container { | ||||||
|   position: relative; |   position: relative; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -49,18 +49,6 @@ | |||||||
|   display: block; |   display: block; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .card-selected { |  | ||||||
|   border-color: var(--bs-primary); |  | ||||||
| 
 |  | ||||||
|   .document-card-check { |  | ||||||
|     display: block; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .doc-img-background-selected { |  | ||||||
|   background-color: var(--pngx-primary-faded); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .card-info { | .card-info { | ||||||
|   line-height: 1; |   line-height: 1; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| <div class="col p-2 h-100"> | <div class="col p-2 h-100"> | ||||||
|   <div class="card h-100 shadow-sm document-card" [class.card-selected]="selected" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()"> |   <div class="card h-100 shadow-sm document-card" [class.card-selected]="selected" [class.popover-hidden]="popoverHidden" (mouseleave)="mouseLeaveCard()"> | ||||||
|     <div class="border-bottom doc-img-container" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)" (dblclick)="dblClickDocument.emit(this)"> |     <div class="border-bottom doc-img-container" (click)="this.toggleSelected.emit($event)" (dblclick)="dblClickDocument.emit(this)"> | ||||||
|       <img class="card-img doc-img rounded-top" [class.inverted]="getIsThumbInverted()" [src]="getThumbUrl()"> |       <img class="card-img doc-img" [class.inverted]="getIsThumbInverted()" [src]="getThumbUrl()"> | ||||||
| 
 | 
 | ||||||
|       <div class="border-end border-bottom bg-light py-1 px-2 document-card-check"> |       <div class="border-end border-bottom bg-light py-1 px-2 document-card-check"> | ||||||
|         <div class="form-check"> |         <div class="form-check"> | ||||||
|  | |||||||
| @ -40,18 +40,6 @@ | |||||||
|   top: 142px; |   top: 142px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .card-selected { |  | ||||||
|   border-color:var(--bs-primary); |  | ||||||
| 
 |  | ||||||
|   .document-card-check { |  | ||||||
|     display: block; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .doc-img-background-selected { |  | ||||||
|   background-color: var(--pngx-primary-faded); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .card-info { | .card-info { | ||||||
|   line-height: 1; |   line-height: 1; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1204,7 +1204,7 @@ describe('FilterEditorComponent', () => { | |||||||
|     const tagButton = tagsFilterableDropdown.queryAll( |     const tagButton = tagsFilterableDropdown.queryAll( | ||||||
|       By.directive(ToggleableDropdownButtonComponent) |       By.directive(ToggleableDropdownButtonComponent) | ||||||
|     )[0] |     )[0] | ||||||
|     tagButton.triggerEventHandler('toggle') |     tagButton.triggerEventHandler('toggled') | ||||||
|     fixture.detectChanges() |     fixture.detectChanges() | ||||||
|     expect(component.filterRules).toEqual([ |     expect(component.filterRules).toEqual([ | ||||||
|       { |       { | ||||||
| @ -1222,8 +1222,8 @@ describe('FilterEditorComponent', () => { | |||||||
|     const tagButtons = tagsFilterableDropdown.queryAll( |     const tagButtons = tagsFilterableDropdown.queryAll( | ||||||
|       By.directive(ToggleableDropdownButtonComponent) |       By.directive(ToggleableDropdownButtonComponent) | ||||||
|     ) |     ) | ||||||
|     tagButtons[1].triggerEventHandler('toggle') |     tagButtons[1].triggerEventHandler('toggled') | ||||||
|     tagButtons[2].triggerEventHandler('toggle') |     tagButtons[2].triggerEventHandler('toggled') | ||||||
|     fixture.detectChanges() |     fixture.detectChanges() | ||||||
|     expect(component.filterRules).toEqual([ |     expect(component.filterRules).toEqual([ | ||||||
|       { |       { | ||||||
| @ -1273,8 +1273,8 @@ describe('FilterEditorComponent', () => { | |||||||
|     const correspondentButtons = correspondentsFilterableDropdown.queryAll( |     const correspondentButtons = correspondentsFilterableDropdown.queryAll( | ||||||
|       By.directive(ToggleableDropdownButtonComponent) |       By.directive(ToggleableDropdownButtonComponent) | ||||||
|     ) |     ) | ||||||
|     correspondentButtons[1].triggerEventHandler('toggle') |     correspondentButtons[1].triggerEventHandler('toggled') | ||||||
|     correspondentButtons[2].triggerEventHandler('toggle') |     correspondentButtons[2].triggerEventHandler('toggled') | ||||||
|     fixture.detectChanges() |     fixture.detectChanges() | ||||||
|     expect(component.filterRules).toEqual([ |     expect(component.filterRules).toEqual([ | ||||||
|       { |       { | ||||||
| @ -1312,7 +1312,7 @@ describe('FilterEditorComponent', () => { | |||||||
|     const notAssignedButton = correspondentsFilterableDropdown.queryAll( |     const notAssignedButton = correspondentsFilterableDropdown.queryAll( | ||||||
|       By.directive(ToggleableDropdownButtonComponent) |       By.directive(ToggleableDropdownButtonComponent) | ||||||
|     )[0] |     )[0] | ||||||
|     notAssignedButton.triggerEventHandler('toggle') |     notAssignedButton.triggerEventHandler('toggled') | ||||||
|     fixture.detectChanges() |     fixture.detectChanges() | ||||||
|     expect(component.filterRules).toEqual([ |     expect(component.filterRules).toEqual([ | ||||||
|       { |       { | ||||||
| @ -1330,8 +1330,8 @@ describe('FilterEditorComponent', () => { | |||||||
|     const documentTypeButtons = documentTypesFilterableDropdown.queryAll( |     const documentTypeButtons = documentTypesFilterableDropdown.queryAll( | ||||||
|       By.directive(ToggleableDropdownButtonComponent) |       By.directive(ToggleableDropdownButtonComponent) | ||||||
|     ) |     ) | ||||||
|     documentTypeButtons[1].triggerEventHandler('toggle') |     documentTypeButtons[1].triggerEventHandler('toggled') | ||||||
|     documentTypeButtons[2].triggerEventHandler('toggle') |     documentTypeButtons[2].triggerEventHandler('toggled') | ||||||
|     fixture.detectChanges() |     fixture.detectChanges() | ||||||
|     expect(component.filterRules).toEqual([ |     expect(component.filterRules).toEqual([ | ||||||
|       { |       { | ||||||
| @ -1369,7 +1369,7 @@ describe('FilterEditorComponent', () => { | |||||||
|     const notAssignedButton = docTypesFilterableDropdown.queryAll( |     const notAssignedButton = docTypesFilterableDropdown.queryAll( | ||||||
|       By.directive(ToggleableDropdownButtonComponent) |       By.directive(ToggleableDropdownButtonComponent) | ||||||
|     )[0] |     )[0] | ||||||
|     notAssignedButton.triggerEventHandler('toggle') |     notAssignedButton.triggerEventHandler('toggled') | ||||||
|     fixture.detectChanges() |     fixture.detectChanges() | ||||||
|     expect(component.filterRules).toEqual([ |     expect(component.filterRules).toEqual([ | ||||||
|       { |       { | ||||||
| @ -1387,8 +1387,8 @@ describe('FilterEditorComponent', () => { | |||||||
|     const storagePathButtons = storagePathFilterableDropdown.queryAll( |     const storagePathButtons = storagePathFilterableDropdown.queryAll( | ||||||
|       By.directive(ToggleableDropdownButtonComponent) |       By.directive(ToggleableDropdownButtonComponent) | ||||||
|     ) |     ) | ||||||
|     storagePathButtons[1].triggerEventHandler('toggle') |     storagePathButtons[1].triggerEventHandler('toggled') | ||||||
|     storagePathButtons[2].triggerEventHandler('toggle') |     storagePathButtons[2].triggerEventHandler('toggled') | ||||||
|     fixture.detectChanges() |     fixture.detectChanges() | ||||||
|     expect(component.filterRules).toEqual([ |     expect(component.filterRules).toEqual([ | ||||||
|       { |       { | ||||||
| @ -1426,7 +1426,7 @@ describe('FilterEditorComponent', () => { | |||||||
|     const notAssignedButton = storagePathsFilterableDropdown.queryAll( |     const notAssignedButton = storagePathsFilterableDropdown.queryAll( | ||||||
|       By.directive(ToggleableDropdownButtonComponent) |       By.directive(ToggleableDropdownButtonComponent) | ||||||
|     )[0] |     )[0] | ||||||
|     notAssignedButton.triggerEventHandler('toggle') |     notAssignedButton.triggerEventHandler('toggled') | ||||||
|     fixture.detectChanges() |     fixture.detectChanges() | ||||||
|     expect(component.filterRules).toEqual([ |     expect(component.filterRules).toEqual([ | ||||||
|       { |       { | ||||||
|  | |||||||
| @ -599,14 +599,17 @@ describe('DocumentListViewService', () => { | |||||||
|   it('should not filter out custom fields if settings not initialized', () => { |   it('should not filter out custom fields if settings not initialized', () => { | ||||||
|     const customFields = ['custom_field_1', 'custom_field_2'] |     const customFields = ['custom_field_1', 'custom_field_2'] | ||||||
|     documentListViewService.displayFields = customFields as any |     documentListViewService.displayFields = customFields as any | ||||||
|     settingsService.displayFieldsInitialized = false |  | ||||||
|     expect(documentListViewService.displayFields).toEqual(customFields) |     expect(documentListViewService.displayFields).toEqual(customFields) | ||||||
|     jest.spyOn(settingsService, 'allDisplayFields', 'get').mockReturnValue([ |     jest.spyOn(settingsService, 'allDisplayFields', 'get').mockReturnValue([ | ||||||
|       { id: DisplayField.ADDED, name: 'Added' }, |       { id: DisplayField.ADDED, name: 'Added' }, | ||||||
|       { id: DisplayField.TITLE, name: 'Title' }, |       { id: DisplayField.TITLE, name: 'Title' }, | ||||||
|       { id: 'custom_field_1', name: 'Custom Field 1' }, |       { id: 'custom_field_1', name: 'Custom Field 1' }, | ||||||
|     ] as any) |     ] as any) | ||||||
|     settingsService.displayFieldsInitialized = true |     settingsService.displayFieldsInit.emit(true) | ||||||
|  |     expect(documentListViewService.displayFields).toEqual(['custom_field_1']) | ||||||
|  | 
 | ||||||
|  |     // will now filter on set
 | ||||||
|  |     documentListViewService.displayFields = customFields as any | ||||||
|     expect(documentListViewService.displayFields).toEqual(['custom_field_1']) |     expect(documentListViewService.displayFields).toEqual(['custom_field_1']) | ||||||
|   }) |   }) | ||||||
| }) | }) | ||||||
|  | |||||||
| @ -20,6 +20,10 @@ import { paramsFromViewState, paramsToViewState } from '../utils/query-params' | |||||||
| import { DocumentService, SelectionData } from './rest/document.service' | import { DocumentService, SelectionData } from './rest/document.service' | ||||||
| import { SettingsService } from './settings.service' | import { SettingsService } from './settings.service' | ||||||
| 
 | 
 | ||||||
|  | const LIST_DEFAULT_DISPLAY_FIELDS: DisplayField[] = DEFAULT_DISPLAY_FIELDS.map( | ||||||
|  |   (f) => f.id | ||||||
|  | ).filter((f) => f !== DisplayField.ADDED) | ||||||
|  | 
 | ||||||
| /** | /** | ||||||
|  * Captures the current state of the list view. |  * Captures the current state of the list view. | ||||||
|  */ |  */ | ||||||
| @ -102,6 +106,8 @@ export class DocumentListViewService { | |||||||
| 
 | 
 | ||||||
|   private _activeSavedViewId: number = null |   private _activeSavedViewId: number = null | ||||||
| 
 | 
 | ||||||
|  |   private displayFieldsInitialized: boolean = false | ||||||
|  | 
 | ||||||
|   get activeSavedViewId() { |   get activeSavedViewId() { | ||||||
|     return this._activeSavedViewId |     return this._activeSavedViewId | ||||||
|   } |   } | ||||||
| @ -134,6 +140,19 @@ export class DocumentListViewService { | |||||||
|         localStorage.removeItem(DOCUMENT_LIST_SERVICE.CURRENT_VIEW_CONFIG) |         localStorage.removeItem(DOCUMENT_LIST_SERVICE.CURRENT_VIEW_CONFIG) | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     this.settings.displayFieldsInit.subscribe(() => { | ||||||
|  |       this.displayFieldsInitialized = true | ||||||
|  |       if (this.activeListViewState.displayFields) { | ||||||
|  |         this.activeListViewState.displayFields = | ||||||
|  |           this.activeListViewState.displayFields.filter( | ||||||
|  |             (field) => | ||||||
|  |               this.settings.allDisplayFields.find((f) => f.id === field) !== | ||||||
|  |               undefined | ||||||
|  |           ) | ||||||
|  |         this.saveDocumentListView() | ||||||
|  |       } | ||||||
|  |     }) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   private defaultListViewState(): ListViewState { |   private defaultListViewState(): ListViewState { | ||||||
| @ -415,23 +434,17 @@ export class DocumentListViewService { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   get displayFields(): DisplayField[] { |   get displayFields(): DisplayField[] { | ||||||
|     let fields = |     return this.activeListViewState.displayFields ?? LIST_DEFAULT_DISPLAY_FIELDS | ||||||
|       this.activeListViewState.displayFields ?? |  | ||||||
|       DEFAULT_DISPLAY_FIELDS.map((f) => f.id) |  | ||||||
|     if (!this.activeListViewState.displayFields) { |  | ||||||
|       fields = fields.filter((f) => f !== DisplayField.ADDED) |  | ||||||
|   } |   } | ||||||
|     return this.settings.displayFieldsInitialized | 
 | ||||||
|       ? fields.filter( |   set displayFields(fields: DisplayField[]) { | ||||||
|  |     this.activeListViewState.displayFields = this.displayFieldsInitialized | ||||||
|  |       ? fields?.filter( | ||||||
|           (field) => |           (field) => | ||||||
|             this.settings.allDisplayFields.find((f) => f.id === field) !== |             this.settings.allDisplayFields.find((f) => f.id === field) !== | ||||||
|             undefined |             undefined | ||||||
|         ) |         ) | ||||||
|       : fields |       : fields | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   set displayFields(fields: DisplayField[]) { |  | ||||||
|     this.activeListViewState.displayFields = fields |  | ||||||
|     this.saveDocumentListView() |     this.saveDocumentListView() | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -274,7 +274,7 @@ export class SettingsService { | |||||||
|   public get allDisplayFields(): Array<{ id: DisplayField; name: string }> { |   public get allDisplayFields(): Array<{ id: DisplayField; name: string }> { | ||||||
|     return this._allDisplayFields |     return this._allDisplayFields | ||||||
|   } |   } | ||||||
|   public displayFieldsInitialized: boolean = false |   public displayFieldsInit: EventEmitter<boolean> = new EventEmitter() | ||||||
| 
 | 
 | ||||||
|   constructor( |   constructor( | ||||||
|     rendererFactory: RendererFactory2, |     rendererFactory: RendererFactory2, | ||||||
| @ -382,10 +382,10 @@ export class SettingsService { | |||||||
|             } |             } | ||||||
|           }) |           }) | ||||||
|         ) |         ) | ||||||
|         this.displayFieldsInitialized = true |         this.displayFieldsInit.emit(true) | ||||||
|       }) |       }) | ||||||
|     } else { |     } else { | ||||||
|       this.displayFieldsInitialized = true |       this.displayFieldsInit.emit(true) | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3605,7 +3605,7 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Fehler beim Speichern des Feldes.</target> |         <target state="final">Fehler beim Speichern des Feldes.</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="4465085913683915434" datatype="html"> |       <trans-unit id="4465085913683915434" datatype="html" approved="yes"> | ||||||
|         <source>True</source> |         <source>True</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
| @ -3619,9 +3619,9 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">79</context> |           <context context-type="linenumber">79</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Wahr</target> |         <target state="final">Wahr</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3800326155195149498" datatype="html"> |       <trans-unit id="3800326155195149498" datatype="html" approved="yes"> | ||||||
|         <source>False</source> |         <source>False</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
| @ -3635,15 +3635,15 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">80</context> |           <context context-type="linenumber">80</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Falsch</target> |         <target state="final">Falsch</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7551700625201096185" datatype="html"> |       <trans-unit id="7551700625201096185" datatype="html" approved="yes"> | ||||||
|         <source>Search docs...</source> |         <source>Search docs...</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">96</context> |           <context context-type="linenumber">96</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Suche Dokumente...</target> |         <target state="final">Suche Dokumente...</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3184700926171002527" datatype="html" approved="yes"> |       <trans-unit id="3184700926171002527" datatype="html" approved="yes"> | ||||||
|         <source>Any</source> |         <source>Any</source> | ||||||
| @ -3685,29 +3685,29 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Alle</target> |         <target state="final">Alle</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="1496549861742963591" datatype="html"> |       <trans-unit id="1496549861742963591" datatype="html" approved="yes"> | ||||||
|         <source>Not</source> |         <source>Not</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">131</context> |           <context context-type="linenumber">131</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Nicht</target> |         <target state="final">Nicht</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6548676277933116532" datatype="html"> |       <trans-unit id="6548676277933116532" datatype="html" approved="yes"> | ||||||
|         <source>Add query</source> |         <source>Add query</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">150</context> |           <context context-type="linenumber">150</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Abfrage hinzufügen</target> |         <target state="final">Abfrage hinzufügen</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5599577087865387184" datatype="html"> |       <trans-unit id="5599577087865387184" datatype="html" approved="yes"> | ||||||
|         <source>Add expression</source> |         <source>Add expression</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">153</context> |           <context context-type="linenumber">153</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Ausdruck hinzufügen</target> |         <target state="final">Ausdruck hinzufügen</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6052766076365105714" datatype="html" approved="yes"> |       <trans-unit id="6052766076365105714" datatype="html" approved="yes"> | ||||||
|         <source>now</source> |         <source>now</source> | ||||||
| @ -4513,13 +4513,13 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Pfad</target> |         <target state="final">Pfad</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2816147949408898105" datatype="html"> |       <trans-unit id="2816147949408898105" datatype="html" approved="yes"> | ||||||
|         <source>See <a target='_blank' href='https://docs.paperless-ngx.com/advanced_usage/#file-name-handling'>the documentation</a>.</source> |         <source>See <a target='_blank' href='https://docs.paperless-ngx.com/advanced_usage/#file-name-handling'>the documentation</a>.</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Siehe <a target='_blank' href='https://docs.paperless-ngx.com/advanced_usage/#file-name-handling'>Dokumentation</a>.</target> |         <target state="final">Siehe <a target='_blank' href='https://docs.paperless-ngx.com/advanced_usage/#file-name-handling'>Dokumentation</a>.</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="1295614462098694869" datatype="html" approved="yes"> |       <trans-unit id="1295614462098694869" datatype="html" approved="yes"> | ||||||
|         <source>Preview</source> |         <source>Preview</source> | ||||||
| @ -4533,29 +4533,29 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Vorschau</target> |         <target state="final">Vorschau</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="8057014866157903311" datatype="html"> |       <trans-unit id="8057014866157903311" datatype="html" approved="yes"> | ||||||
|         <source>Path test failed</source> |         <source>Path test failed</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">30</context> |           <context context-type="linenumber">30</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Pfadüberprüfung fehlgeschlagen</target> |         <target state="final">Pfadüberprüfung fehlgeschlagen</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="9116034231465034307" datatype="html"> |       <trans-unit id="9116034231465034307" datatype="html" approved="yes"> | ||||||
|         <source>No document selected</source> |         <source>No document selected</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">32</context> |           <context context-type="linenumber">32</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Kein Dokument ausgewählt</target> |         <target state="final">Kein Dokument ausgewählt</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2083498114116917092" datatype="html"> |       <trans-unit id="2083498114116917092" datatype="html" approved="yes"> | ||||||
|         <source>Search for a document</source> |         <source>Search for a document</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">38</context> |           <context context-type="linenumber">38</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Ein Dokument suchen</target> |         <target state="final">Ein Dokument suchen</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6423278459497515329" datatype="html" approved="yes"> |       <trans-unit id="6423278459497515329" datatype="html" approved="yes"> | ||||||
|         <source>No documents found</source> |         <source>No documents found</source> | ||||||
| @ -5342,21 +5342,21 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Link öffnen</target> |         <target state="final">Link öffnen</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6595008830732269870" datatype="html"> |       <trans-unit id="6595008830732269870" datatype="html" approved="yes"> | ||||||
|         <source>Not found</source> |         <source>Not found</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/input/document-link/document-link.component.html</context> |           <context context-type="sourcefile">src/app/components/common/input/document-link/document-link.component.html</context> | ||||||
|           <context context-type="linenumber">50</context> |           <context context-type="linenumber">50</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Not found</target> |         <target state="final">Nicht gefunden</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5676637575587497817" datatype="html"> |       <trans-unit id="5676637575587497817" datatype="html" approved="yes"> | ||||||
|         <source>Search for documents</source> |         <source>Search for documents</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/input/document-link/document-link.component.ts</context> |           <context context-type="sourcefile">src/app/components/common/input/document-link/document-link.component.ts</context> | ||||||
|           <context context-type="linenumber">53</context> |           <context context-type="linenumber">53</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Nach Dokumenten suchen</target> |         <target state="final">Nach Dokumenten suchen</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="8627133593113147800" datatype="html" approved="yes"> |       <trans-unit id="8627133593113147800" datatype="html" approved="yes"> | ||||||
|         <source>Selected items</source> |         <source>Selected items</source> | ||||||
| @ -8100,13 +8100,13 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Ohne Tag</target> |         <target state="final">Ohne Tag</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="8644099678903817943" datatype="html"> |       <trans-unit id="8644099678903817943" datatype="html" approved="yes"> | ||||||
|         <source>Custom fields query</source> |         <source>Custom fields query</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context> |           <context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context> | ||||||
|           <context context-type="linenumber">238</context> |           <context context-type="linenumber">238</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Benutzerdefinierte Feldabfrage</target> |         <target state="final">Benutzerdefinierte Feldabfrage</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6523384805359286307" datatype="html" approved="yes"> |       <trans-unit id="6523384805359286307" datatype="html" approved="yes"> | ||||||
|         <source>Title: <x id="PH" equiv-text="rule.value"/></source> |         <source>Title: <x id="PH" equiv-text="rule.value"/></source> | ||||||
| @ -8296,7 +8296,7 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Datentyp</target> |         <target state="final">Datentyp</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6209318295562170730" datatype="html"> |       <trans-unit id="6209318295562170730" datatype="html" approved="yes"> | ||||||
|         <source>Filter Documents (<x id="INTERPOLATION" equiv-text="{{ field.document_count }}"/>)</source> |         <source>Filter Documents (<x id="INTERPOLATION" equiv-text="{{ field.document_count }}"/>)</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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> | ||||||
| @ -8318,7 +8318,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">85</context> |           <context context-type="linenumber">85</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Dokumente filtern (<x id="INTERPOLATION" equiv-text="{{ field.document_count }}"/>)</target> |         <target state="final">Dokumente filtern (<x id="INTERPOLATION" equiv-text="{{ field.document_count }}"/>)</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="651372623796033489" datatype="html" approved="yes"> |       <trans-unit id="651372623796033489" datatype="html" approved="yes"> | ||||||
|         <source>No fields defined.</source> |         <source>No fields defined.</source> | ||||||
| @ -8408,21 +8408,21 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Konto hinzufügen</target> |         <target state="final">Konto hinzufügen</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5088684330574277786" datatype="html"> |       <trans-unit id="5088684330574277786" datatype="html" approved="yes"> | ||||||
|         <source>Connect Gmail Account</source> |         <source>Connect Gmail Account</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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="translated">Gmail-Konto verbinden</target> |         <target state="final">Gmail-Konto verbinden</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6630732552154686829" datatype="html"> |       <trans-unit id="6630732552154686829" datatype="html" approved="yes"> | ||||||
|         <source>Connect Outlook Account</source> |         <source>Connect Outlook Account</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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="translated">Outlook-Konto verbinden</target> |         <target state="final">Outlook-Konto verbinden</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2188854519574316630" datatype="html" approved="yes"> |       <trans-unit id="2188854519574316630" datatype="html" approved="yes"> | ||||||
|         <source>Server</source> |         <source>Server</source> | ||||||
| @ -8500,21 +8500,21 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Fehler beim Abrufen der E-Mail-Regeln</target> |         <target state="final">Fehler beim Abrufen der E-Mail-Regeln</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="763945516325093575" datatype="html"> |       <trans-unit id="763945516325093575" datatype="html" approved="yes"> | ||||||
|         <source>OAuth2 authentication success</source> |         <source>OAuth2 authentication success</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/manage/mail/mail.component.ts</context> |           <context context-type="sourcefile">src/app/components/manage/mail/mail.component.ts</context> | ||||||
|           <context context-type="linenumber">101</context> |           <context context-type="linenumber">101</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">OAuth2-Authentifizierung erfolgreich</target> |         <target state="final">OAuth2-Authentifizierung erfolgreich</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="9022978370268070156" datatype="html"> |       <trans-unit id="9022978370268070156" datatype="html" approved="yes"> | ||||||
|         <source>OAuth2 authentication failed, see logs for details</source> |         <source>OAuth2 authentication failed, see logs for details</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/manage/mail/mail.component.ts</context> |           <context context-type="sourcefile">src/app/components/manage/mail/mail.component.ts</context> | ||||||
|           <context context-type="linenumber">112</context> |           <context context-type="linenumber">112</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">OAuth2-Authentifizierung fehlgeschlagen, siehe Protokolle für Details</target> |         <target state="final">OAuth2-Authentifizierung fehlgeschlagen, siehe Protokolle für Details</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6327501535846658797" datatype="html" approved="yes"> |       <trans-unit id="6327501535846658797" datatype="html" approved="yes"> | ||||||
|         <source>Saved account "<x id="PH" equiv-text="newMailAccount.name"/>".</source> |         <source>Saved account "<x id="PH" equiv-text="newMailAccount.name"/>".</source> | ||||||
| @ -9000,93 +9000,93 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="final">Zur Startseite</target> |         <target state="final">Zur Startseite</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7088714514100361567" datatype="html"> |       <trans-unit id="7088714514100361567" datatype="html" approved="yes"> | ||||||
|         <source>Equal to</source> |         <source>Equal to</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">24</context> |           <context context-type="linenumber">24</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Ist gleich</target> |         <target state="final">Ist gleich</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2841739558138901231" datatype="html"> |       <trans-unit id="2841739558138901231" datatype="html" approved="yes"> | ||||||
|         <source>In</source> |         <source>In</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">25</context> |           <context context-type="linenumber">25</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">In</target> |         <target state="final">In</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6504828068656625171" datatype="html"> |       <trans-unit id="6504828068656625171" datatype="html" approved="yes"> | ||||||
|         <source>Is null</source> |         <source>Is null</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">26</context> |           <context context-type="linenumber">26</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Ist null</target> |         <target state="final">Ist null</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="4112599358351148632" datatype="html"> |       <trans-unit id="4112599358351148632" datatype="html" approved="yes"> | ||||||
|         <source>Exists</source> |         <source>Exists</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">27</context> |           <context context-type="linenumber">27</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Existiert</target> |         <target state="final">Existiert</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6238291467288576076" datatype="html"> |       <trans-unit id="6238291467288576076" datatype="html" approved="yes"> | ||||||
|         <source>Contains</source> |         <source>Contains</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">28</context> |           <context context-type="linenumber">28</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Enthält</target> |         <target state="final">Enthält</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="870133374397538941" datatype="html"> |       <trans-unit id="870133374397538941" datatype="html" approved="yes"> | ||||||
|         <source>Contains (case-insensitive)</source> |         <source>Contains (case-insensitive)</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">29</context> |           <context context-type="linenumber">29</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Enthält (beachte Groß- und Kleinschreibung)</target> |         <target state="final">Enthält (beachte Groß- und Kleinschreibung)</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7732309408488818531" datatype="html"> |       <trans-unit id="7732309408488818531" datatype="html" approved="yes"> | ||||||
|         <source>Greater than</source> |         <source>Greater than</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">30</context> |           <context context-type="linenumber">30</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Größer als</target> |         <target state="final">Größer als</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="9087788064443057357" datatype="html"> |       <trans-unit id="9087788064443057357" datatype="html" approved="yes"> | ||||||
|         <source>Greater than or equal to</source> |         <source>Greater than or equal to</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">31</context> |           <context context-type="linenumber">31</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Größer oder gleich</target> |         <target state="final">Größer oder gleich</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5995604223909447366" datatype="html"> |       <trans-unit id="5995604223909447366" datatype="html" approved="yes"> | ||||||
|         <source>Less than</source> |         <source>Less than</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">32</context> |           <context context-type="linenumber">32</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Kleiner als</target> |         <target state="final">Kleiner als</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6989379963430864867" datatype="html"> |       <trans-unit id="6989379963430864867" datatype="html" approved="yes"> | ||||||
|         <source>Less than or equal to</source> |         <source>Less than or equal to</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">33</context> |           <context context-type="linenumber">33</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Kleiner oder gleich</target> |         <target state="final">Kleiner oder gleich</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2348971518300945764" datatype="html"> |       <trans-unit id="2348971518300945764" datatype="html" approved="yes"> | ||||||
|         <source>Range</source> |         <source>Range</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field-query.ts</context> | ||||||
|           <context context-type="linenumber">34</context> |           <context context-type="linenumber">34</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="translated">Bereich</target> |         <target state="final">Bereich</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="969459137986754249" datatype="html" approved="yes"> |       <trans-unit id="969459137986754249" datatype="html" approved="yes"> | ||||||
|         <source>Boolean</source> |         <source>Boolean</source> | ||||||
|  | |||||||
| @ -1743,7 +1743,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context> |           <context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context> | ||||||
|           <context context-type="linenumber">385</context> |           <context context-type="linenumber">385</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Table</target> |         <target state="translated">Tabell</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="4236040382842528005" datatype="html"> |       <trans-unit id="4236040382842528005" datatype="html"> | ||||||
|         <source>Small Cards</source> |         <source>Small Cards</source> | ||||||
| @ -1771,7 +1771,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context> |           <context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context> | ||||||
|           <context context-type="linenumber">17</context> |           <context context-type="linenumber">17</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Show</target> |         <target state="translated">Visa</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5607669932062416162" datatype="html"> |       <trans-unit id="5607669932062416162" datatype="html"> | ||||||
|         <source>Default</source> |         <source>Default</source> | ||||||
| @ -2303,7 +2303,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context> |           <context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context> | ||||||
|           <context context-type="linenumber">223</context> |           <context context-type="linenumber">223</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Trash</target> |         <target state="translated">Papperskorg</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3818027200170621545" datatype="html"> |       <trans-unit id="3818027200170621545" datatype="html"> | ||||||
|         <source>Manage trashed documents that are pending deletion.</source> |         <source>Manage trashed documents that are pending deletion.</source> | ||||||
| @ -3307,7 +3307,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/app-frame/global-search/global-search.component.html</context> |           <context context-type="sourcefile">src/app/components/app-frame/global-search/global-search.component.html</context> | ||||||
|           <context context-type="linenumber">131</context> |           <context context-type="linenumber">131</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Users</target> |         <target state="translated">Användare</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="searchResults.groups" datatype="html"> |       <trans-unit id="searchResults.groups" datatype="html"> | ||||||
|         <source>Groups</source> |         <source>Groups</source> | ||||||
| @ -3315,7 +3315,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/app-frame/global-search/global-search.component.html</context> |           <context context-type="sourcefile">src/app/components/app-frame/global-search/global-search.component.html</context> | ||||||
|           <context context-type="linenumber">138</context> |           <context context-type="linenumber">138</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Groups</target> |         <target state="translated">Grupper</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="searchResults.customFields" datatype="html"> |       <trans-unit id="searchResults.customFields" datatype="html"> | ||||||
|         <source>Custom fields</source> |         <source>Custom fields</source> | ||||||
| @ -3471,7 +3471,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context> |           <context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context> | ||||||
|           <context context-type="linenumber">7,8</context> |           <context context-type="linenumber">7,8</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">of <x id="INTERPOLATION" equiv-text="{{totalPages}}"/></target> |         <target state="translated">av <x id="INTERPOLATION" equiv-text="{{totalPages}}"/></target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6903610408081711391" datatype="html"> |       <trans-unit id="6903610408081711391" datatype="html"> | ||||||
|         <source>Pages to remove</source> |         <source>Pages to remove</source> | ||||||
| @ -3487,7 +3487,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">9</context> |           <context context-type="linenumber">9</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Documents:</target> |         <target state="translated">Dokument:</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7508164375697837821" datatype="html"> |       <trans-unit id="7508164375697837821" datatype="html"> | ||||||
|         <source>Use metadata from:</source> |         <source>Use metadata from:</source> | ||||||
| @ -3579,7 +3579,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-dropdown/custom-fields-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-dropdown/custom-fields-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">21</context> |           <context context-type="linenumber">21</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Create new field</target> |         <target state="translated">Skapa nytt fält</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6973528734330066202" datatype="html"> |       <trans-unit id="6973528734330066202" datatype="html"> | ||||||
|         <source>Saved field "<x id="PH" equiv-text="newField.name"/>".</source> |         <source>Saved field "<x id="PH" equiv-text="newField.name"/>".</source> | ||||||
| @ -3939,7 +3939,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts</context> | ||||||
|           <context context-type="linenumber">84</context> |           <context context-type="linenumber">84</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Edit custom field</target> |         <target state="translated">Redigera anpassat fält</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6672809941092516947" datatype="html" approved="yes"> |       <trans-unit id="6672809941092516947" datatype="html" approved="yes"> | ||||||
|         <source>Create new document type</source> |         <source>Create new document type</source> | ||||||
| @ -5356,7 +5356,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/input/document-link/document-link.component.ts</context> |           <context context-type="sourcefile">src/app/components/common/input/document-link/document-link.component.ts</context> | ||||||
|           <context context-type="linenumber">53</context> |           <context context-type="linenumber">53</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Search for documents</target> |         <target state="translated">Sök efter dokument</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="8627133593113147800" datatype="html"> |       <trans-unit id="8627133593113147800" datatype="html"> | ||||||
|         <source>Selected items</source> |         <source>Selected items</source> | ||||||
| @ -5653,7 +5653,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/profile-edit-dialog/profile-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/profile-edit-dialog/profile-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">23</context> |           <context context-type="linenumber">23</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Confirm Password</target> |         <target state="translated">Bekräfta lösenord</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7554924397178347823" datatype="html"> |       <trans-unit id="7554924397178347823" datatype="html"> | ||||||
|         <source>API Auth Token</source> |         <source>API Auth Token</source> | ||||||
| @ -5905,7 +5905,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/share-links-dropdown/share-links-dropdown.component.ts</context> |           <context context-type="sourcefile">src/app/components/common/share-links-dropdown/share-links-dropdown.component.ts</context> | ||||||
|           <context context-type="linenumber">94</context> |           <context context-type="linenumber">94</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">1 day</target> |         <target state="translated">1 dag</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="8542568275115626925" datatype="html"> |       <trans-unit id="8542568275115626925" datatype="html"> | ||||||
|         <source>7 days</source> |         <source>7 days</source> | ||||||
| @ -5945,7 +5945,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/share-links-dropdown/share-links-dropdown.component.ts</context> |           <context context-type="sourcefile">src/app/components/common/share-links-dropdown/share-links-dropdown.component.ts</context> | ||||||
|           <context context-type="linenumber">94</context> |           <context context-type="linenumber">94</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation"><x id="PH" equiv-text="days"/> days</target> |         <target state="translated"><x id="PH" equiv-text="days"/> dagar</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2897042887615940599" datatype="html"> |       <trans-unit id="2897042887615940599" datatype="html"> | ||||||
|         <source>Error deleting link</source> |         <source>Error deleting link</source> | ||||||
| @ -6025,7 +6025,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">41</context> |           <context context-type="linenumber">41</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Database</target> |         <target state="translated">Databas</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5611592591303869712" datatype="html"> |       <trans-unit id="5611592591303869712" datatype="html"> | ||||||
|         <source>Status</source> |         <source>Status</source> | ||||||
| @ -6045,7 +6045,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.html</context> |           <context context-type="sourcefile">src/app/components/manage/workflows/workflows.component.html</context> | ||||||
|           <context context-type="linenumber">19</context> |           <context context-type="linenumber">19</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Status</target> |         <target state="translated">Status</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2256165083739630668" datatype="html"> |       <trans-unit id="2256165083739630668" datatype="html"> | ||||||
|         <source>Migration Status</source> |         <source>Migration Status</source> | ||||||
| @ -6085,7 +6085,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">83</context> |           <context context-type="linenumber">83</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Tasks</target> |         <target state="translated">Uppgifter</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6911698235105017958" datatype="html"> |       <trans-unit id="6911698235105017958" datatype="html"> | ||||||
|         <source>Redis Status</source> |         <source>Redis Status</source> | ||||||
| @ -6157,7 +6157,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/dashboard/dashboard.component.ts</context> |           <context context-type="sourcefile">src/app/components/dashboard/dashboard.component.ts</context> | ||||||
|           <context context-type="linenumber">40</context> |           <context context-type="linenumber">40</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Welcome to <x id="PH" equiv-text="environment.appTitle"/></target> |         <target state="translated">Välkommen till <x id="PH" equiv-text="environment.appTitle"/></target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="1325877348738783391" datatype="html"> |       <trans-unit id="1325877348738783391" datatype="html"> | ||||||
|         <source>Dashboard updated</source> |         <source>Dashboard updated</source> | ||||||
| @ -6892,7 +6892,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context> |           <context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context> | ||||||
|           <context context-type="linenumber">502</context> |           <context context-type="linenumber">502</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Save document</target> |         <target state="translated">Spara dokument</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5758784066858623886" datatype="html"> |       <trans-unit id="5758784066858623886" datatype="html"> | ||||||
|         <source>Error retrieving metadata</source> |         <source>Error retrieving metadata</source> | ||||||
| @ -9142,7 +9142,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/data/custom-field.ts</context> |           <context context-type="sourcefile">src/app/data/custom-field.ts</context> | ||||||
|           <context context-type="linenumber">42</context> |           <context context-type="linenumber">42</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Url</target> |         <target state="translated">URL</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3650316326183661476" datatype="html"> |       <trans-unit id="3650316326183661476" datatype="html"> | ||||||
|         <source>Document Link</source> |         <source>Document Link</source> | ||||||
| @ -9295,7 +9295,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">83</context> |           <context context-type="linenumber">83</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Language</target> |         <target state="translated">Språk</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="1713271461473302108" datatype="html"> |       <trans-unit id="1713271461473302108" datatype="html"> | ||||||
|         <source>Mode</source> |         <source>Mode</source> | ||||||
| @ -9487,7 +9487,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">14</context> |           <context context-type="linenumber">14</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s year ago</target> |         <target state="translated">%s år sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3393387677918927062" datatype="html"> |       <trans-unit id="3393387677918927062" datatype="html"> | ||||||
|         <source>%s years ago</source> |         <source>%s years ago</source> | ||||||
| @ -9495,7 +9495,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">15</context> |           <context context-type="linenumber">15</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s years ago</target> |         <target state="translated">%s år sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3053246523831285824" datatype="html"> |       <trans-unit id="3053246523831285824" datatype="html"> | ||||||
|         <source>%s month ago</source> |         <source>%s month ago</source> | ||||||
| @ -9503,7 +9503,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">19</context> |           <context context-type="linenumber">19</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s month ago</target> |         <target state="translated">%s månad sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="1158628882375251480" datatype="html"> |       <trans-unit id="1158628882375251480" datatype="html"> | ||||||
|         <source>%s months ago</source> |         <source>%s months ago</source> | ||||||
| @ -9511,7 +9511,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">20</context> |           <context context-type="linenumber">20</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s months ago</target> |         <target state="translated">%s månader sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7039133412826927309" datatype="html"> |       <trans-unit id="7039133412826927309" datatype="html"> | ||||||
|         <source>%s week ago</source> |         <source>%s week ago</source> | ||||||
| @ -9519,7 +9519,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">24</context> |           <context context-type="linenumber">24</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s week ago</target> |         <target state="translated">%s vecka sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2896962543647781653" datatype="html"> |       <trans-unit id="2896962543647781653" datatype="html"> | ||||||
|         <source>%s weeks ago</source> |         <source>%s weeks ago</source> | ||||||
| @ -9527,7 +9527,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">25</context> |           <context context-type="linenumber">25</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s weeks ago</target> |         <target state="translated">%s veckor sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="91416192007234700" datatype="html"> |       <trans-unit id="91416192007234700" datatype="html"> | ||||||
|         <source>%s day ago</source> |         <source>%s day ago</source> | ||||||
| @ -9535,7 +9535,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">29</context> |           <context context-type="linenumber">29</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s day ago</target> |         <target state="translated">%s dag sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5601594741748068208" datatype="html"> |       <trans-unit id="5601594741748068208" datatype="html"> | ||||||
|         <source>%s days ago</source> |         <source>%s days ago</source> | ||||||
| @ -9543,7 +9543,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">30</context> |           <context context-type="linenumber">30</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s days ago</target> |         <target state="translated">%s dagar sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="8387405724402999437" datatype="html"> |       <trans-unit id="8387405724402999437" datatype="html"> | ||||||
|         <source>%s hour ago</source> |         <source>%s hour ago</source> | ||||||
| @ -9551,7 +9551,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">34</context> |           <context context-type="linenumber">34</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s hour ago</target> |         <target state="translated">%s timme sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2008395012733474465" datatype="html"> |       <trans-unit id="2008395012733474465" datatype="html"> | ||||||
|         <source>%s hours ago</source> |         <source>%s hours ago</source> | ||||||
| @ -9559,7 +9559,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">35</context> |           <context context-type="linenumber">35</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s hours ago</target> |         <target state="translated">%s timmar sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5782387980670840884" datatype="html"> |       <trans-unit id="5782387980670840884" datatype="html"> | ||||||
|         <source>%s minute ago</source> |         <source>%s minute ago</source> | ||||||
| @ -9567,7 +9567,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">39</context> |           <context context-type="linenumber">39</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s minute ago</target> |         <target state="translated">%s minut sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7573942914011074807" datatype="html"> |       <trans-unit id="7573942914011074807" datatype="html"> | ||||||
|         <source>%s minutes ago</source> |         <source>%s minutes ago</source> | ||||||
| @ -9575,7 +9575,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">40</context> |           <context context-type="linenumber">40</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">%s minutes ago</target> |         <target state="translated">%s minuter sedan</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="4272436583644511364" datatype="html"> |       <trans-unit id="4272436583644511364" datatype="html"> | ||||||
|         <source>Just now</source> |         <source>Just now</source> | ||||||
| @ -9583,7 +9583,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> |           <context context-type="sourcefile">src/app/pipes/custom-date.pipe.ts</context> | ||||||
|           <context context-type="linenumber">72</context> |           <context context-type="linenumber">72</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Just now</target> |         <target state="translated">Just nu</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7536524521722799066" datatype="html" approved="yes"> |       <trans-unit id="7536524521722799066" datatype="html" approved="yes"> | ||||||
|         <source>(no title)</source> |         <source>(no title)</source> | ||||||
| @ -9923,7 +9923,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">166</context> |           <context context-type="linenumber">166</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Norwegian</target> |         <target state="translated">Norska</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> | ||||||
|  | |||||||
| @ -1743,7 +1743,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context> |           <context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context> | ||||||
|           <context context-type="linenumber">385</context> |           <context context-type="linenumber">385</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Table</target> |         <target state="translated">表格</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="4236040382842528005" datatype="html"> |       <trans-unit id="4236040382842528005" datatype="html"> | ||||||
|         <source>Small Cards</source> |         <source>Small Cards</source> | ||||||
| @ -2371,7 +2371,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context> |           <context context-type="sourcefile">src/app/components/admin/trash/trash.component.html</context> | ||||||
|           <context context-type="linenumber">89</context> |           <context context-type="linenumber">89</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">{VAR_PLURAL, plural, =1 {One document in trash} other {<x id="INTERPOLATION"/> total documents in trash}}</target> |         <target state="translated">{VAR_PLURAL, plural, =1 {垃圾桶中有一份文件} other {垃圾桶中共有 <x id="INTERPOLATION"/> 份文件}}</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="9021887951960049161" datatype="html"> |       <trans-unit id="9021887951960049161" datatype="html"> | ||||||
|         <source>Confirm delete</source> |         <source>Confirm delete</source> | ||||||
| @ -3619,7 +3619,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">79</context> |           <context context-type="linenumber">79</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">True</target> |         <target state="translated">真</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3800326155195149498" datatype="html"> |       <trans-unit id="3800326155195149498" datatype="html"> | ||||||
|         <source>False</source> |         <source>False</source> | ||||||
| @ -3635,7 +3635,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">80</context> |           <context context-type="linenumber">80</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">False</target> |         <target state="translated">假</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7551700625201096185" datatype="html"> |       <trans-unit id="7551700625201096185" datatype="html"> | ||||||
|         <source>Search docs...</source> |         <source>Search docs...</source> | ||||||
| @ -3643,7 +3643,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">96</context> |           <context context-type="linenumber">96</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Search docs...</target> |         <target state="translated">搜索文档...</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3184700926171002527" datatype="html"> |       <trans-unit id="3184700926171002527" datatype="html"> | ||||||
|         <source>Any</source> |         <source>Any</source> | ||||||
| @ -3691,7 +3691,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">131</context> |           <context context-type="linenumber">131</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Not</target> |         <target state="translated">否</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6548676277933116532" datatype="html"> |       <trans-unit id="6548676277933116532" datatype="html"> | ||||||
|         <source>Add query</source> |         <source>Add query</source> | ||||||
| @ -3699,7 +3699,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">150</context> |           <context context-type="linenumber">150</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Add query</target> |         <target state="translated">添加查询</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5599577087865387184" datatype="html"> |       <trans-unit id="5599577087865387184" datatype="html"> | ||||||
|         <source>Add expression</source> |         <source>Add expression</source> | ||||||
| @ -3707,7 +3707,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> |           <context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context> | ||||||
|           <context context-type="linenumber">153</context> |           <context context-type="linenumber">153</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Add expression</target> |         <target state="translated">添加表达式</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6052766076365105714" datatype="html"> |       <trans-unit id="6052766076365105714" datatype="html"> | ||||||
|         <source>now</source> |         <source>now</source> | ||||||
| @ -4135,7 +4135,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">19</context> |           <context context-type="linenumber">19</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Order</target> |         <target state="translated">顺序</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="4816216590591222133" datatype="html"> |       <trans-unit id="4816216590591222133" datatype="html"> | ||||||
|         <source>Enabled</source> |         <source>Enabled</source> | ||||||
| @ -4519,7 +4519,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">See <a target='_blank' href='https://docs.paperless-ngx.com/advanced_usage/#file-name-handling'>the documentation</a>.</target> |         <target state="translated">请参阅 <a target='_blank' href='https://docs.paperless-ngx.com/advanced_usage/#file-name-handling'>文档</a>。</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="1295614462098694869" datatype="html"> |       <trans-unit id="1295614462098694869" datatype="html"> | ||||||
|         <source>Preview</source> |         <source>Preview</source> | ||||||
| @ -4539,7 +4539,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">30</context> |           <context context-type="linenumber">30</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Path test failed</target> |         <target state="translated">路径测试失败</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="9116034231465034307" datatype="html"> |       <trans-unit id="9116034231465034307" datatype="html"> | ||||||
|         <source>No document selected</source> |         <source>No document selected</source> | ||||||
| @ -4547,7 +4547,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">32</context> |           <context context-type="linenumber">32</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">No document selected</target> |         <target state="translated">没有选择文档</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2083498114116917092" datatype="html"> |       <trans-unit id="2083498114116917092" datatype="html"> | ||||||
|         <source>Search for a document</source> |         <source>Search for a document</source> | ||||||
| @ -4555,7 +4555,7 @@ | |||||||
|           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html</context> | ||||||
|           <context context-type="linenumber">38</context> |           <context context-type="linenumber">38</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Search for a document</target> |         <target state="translated">搜索文档</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6423278459497515329" datatype="html"> |       <trans-unit id="6423278459497515329" datatype="html"> | ||||||
|         <source>No documents found</source> |         <source>No documents found</source> | ||||||
| @ -4759,7 +4759,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">33</context> |           <context context-type="linenumber">33</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Add Trigger</target> |         <target state="translated">添加触发器</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6882912390704300247" datatype="html"> |       <trans-unit id="6882912390704300247" datatype="html"> | ||||||
|         <source>Apply Actions:</source> |         <source>Apply Actions:</source> | ||||||
| @ -4767,7 +4767,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">73</context> |           <context context-type="linenumber">73</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Apply Actions:</target> |         <target state="translated">应用操作:</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="51883444329775670" datatype="html"> |       <trans-unit id="51883444329775670" datatype="html"> | ||||||
|         <source>Add Action</source> |         <source>Add Action</source> | ||||||
| @ -4775,7 +4775,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">75</context> |           <context context-type="linenumber">75</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Add Action</target> |         <target state="translated">添加动作</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3288318211116868972" datatype="html"> |       <trans-unit id="3288318211116868972" datatype="html"> | ||||||
|         <source>Trigger type</source> |         <source>Trigger type</source> | ||||||
| @ -4783,7 +4783,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">121</context> |           <context context-type="linenumber">121</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Trigger type</target> |         <target state="translated">触发类型</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="8727727835543352574" datatype="html"> |       <trans-unit id="8727727835543352574" datatype="html"> | ||||||
|         <source>Trigger for documents that match <x id="START_EMPHASISED_TEXT" ctype="x-em" equiv-text="<em>"/>all<x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="</em>"/> filters specified below.</source> |         <source>Trigger for documents that match <x id="START_EMPHASISED_TEXT" ctype="x-em" equiv-text="<em>"/>all<x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="</em>"/> filters specified below.</source> | ||||||
| @ -4791,7 +4791,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">122</context> |           <context context-type="linenumber">122</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Trigger for documents that match <x id="START_EMPHASISED_TEXT" ctype="x-em" equiv-text="<em>"/>all<x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="</em>"/> filters specified below.</target> |         <target state="translated">触发匹配下面指定的 <x id="START_EMPHASISED_TEXT" ctype="x-em" equiv-text="<em>"/>所有<x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="</em>"/> 过滤器的文档。</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7467799586957602479" datatype="html"> |       <trans-unit id="7467799586957602479" datatype="html"> | ||||||
|         <source>Filter filename</source> |         <source>Filter filename</source> | ||||||
| @ -4831,7 +4831,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">128</context> |           <context context-type="linenumber">128</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Apply to documents that match this path. Wildcards specified as * are allowed. Case-normalized.</a></target> |         <target state="translated">应用于匹配此路径的文档。允许指定为*的通配符。不区分大小写。</a></target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7468453896129193641" datatype="html"> |       <trans-unit id="7468453896129193641" datatype="html"> | ||||||
|         <source>Filter mail rule</source> |         <source>Filter mail rule</source> | ||||||
| @ -4847,7 +4847,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">129</context> |           <context context-type="linenumber">129</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Apply to documents consumed via this mail rule.</target> |         <target state="translated">应用于通过此邮件规则消费的文档。</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6840369584127435743" datatype="html"> |       <trans-unit id="6840369584127435743" datatype="html"> | ||||||
|         <source>Content matching algorithm</source> |         <source>Content matching algorithm</source> | ||||||
| @ -4855,7 +4855,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">Content matching algorithm</target> |         <target state="translated">内容匹配算法</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="510635115034690805" datatype="html"> |       <trans-unit id="510635115034690805" datatype="html"> | ||||||
|         <source>Content matching pattern</source> |         <source>Content matching pattern</source> | ||||||
| @ -4863,7 +4863,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">134</context> |           <context context-type="linenumber">134</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Content matching pattern</target> |         <target state="translated">内容匹配模式</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3484236514968690689" datatype="html"> |       <trans-unit id="3484236514968690689" datatype="html"> | ||||||
|         <source>Has any of tags</source> |         <source>Has any of tags</source> | ||||||
| @ -4871,7 +4871,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">143</context> |           <context context-type="linenumber">143</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Has any of tags</target> |         <target state="translated">有任何标签</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5281365940563983618" datatype="html"> |       <trans-unit id="5281365940563983618" datatype="html"> | ||||||
|         <source>Has correspondent</source> |         <source>Has correspondent</source> | ||||||
| @ -4879,7 +4879,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">144</context> |           <context context-type="linenumber">144</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Has correspondent</target> |         <target state="translated">已有联系人</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="4806713133917046341" datatype="html"> |       <trans-unit id="4806713133917046341" datatype="html"> | ||||||
|         <source>Has document type</source> |         <source>Has document type</source> | ||||||
| @ -4887,7 +4887,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">145</context> |           <context context-type="linenumber">145</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Has document type</target> |         <target state="translated">有文档类型</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6417103744331194518" datatype="html"> |       <trans-unit id="6417103744331194518" datatype="html"> | ||||||
|         <source>Action type</source> |         <source>Action type</source> | ||||||
| @ -4895,7 +4895,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">155</context> |           <context context-type="linenumber">155</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Action type</target> |         <target state="translated">操作类型</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6019822389883736115" datatype="html"> |       <trans-unit id="6019822389883736115" datatype="html"> | ||||||
|         <source>Assign title</source> |         <source>Assign title</source> | ||||||
| @ -4911,7 +4911,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">160</context> |           <context context-type="linenumber">160</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Can include some placeholders, see <a target='_blank' href='https://docs.paperless-ngx.com/usage/#workflows'>documentation</a>.</target> |         <target state="translated">可以包含一些占位符,请参阅 <a target='_blank' href='https://docs.paperless-ngx.com/usage/#workflows'>文档</a>。</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6528897010417701530" datatype="html"> |       <trans-unit id="6528897010417701530" datatype="html"> | ||||||
|         <source>Assign tags</source> |         <source>Assign tags</source> | ||||||
| @ -4967,7 +4967,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">216</context> |           <context context-type="linenumber">216</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Remove tags</target> |         <target state="translated">移除标签</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7890599006071681081" datatype="html"> |       <trans-unit id="7890599006071681081" datatype="html"> | ||||||
|         <source>Remove all</source> |         <source>Remove all</source> | ||||||
| @ -4999,7 +4999,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">254</context> |           <context context-type="linenumber">254</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Remove all</target> |         <target state="translated">移除全部</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="8636414563726517994" datatype="html"> |       <trans-unit id="8636414563726517994" datatype="html"> | ||||||
|         <source>Remove correspondents</source> |         <source>Remove correspondents</source> | ||||||
| @ -5007,7 +5007,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">222</context> |           <context context-type="linenumber">222</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Remove correspondents</target> |         <target state="translated">移除所有通讯员</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5305293055593064952" datatype="html"> |       <trans-unit id="5305293055593064952" datatype="html"> | ||||||
|         <source>Remove document types</source> |         <source>Remove document types</source> | ||||||
| @ -5015,7 +5015,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">228</context> |           <context context-type="linenumber">228</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Remove document types</target> |         <target state="translated">移除所有文档类型</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2400388879708187" datatype="html"> |       <trans-unit id="2400388879708187" datatype="html"> | ||||||
|         <source>Remove storage paths</source> |         <source>Remove storage paths</source> | ||||||
|  | |||||||
| @ -8,7 +8,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Close</target> |         <target state="translated">關閉</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.timepicker.HH" datatype="html"> |       <trans-unit id="ngb.timepicker.HH" datatype="html"> | ||||||
|         <source>HH</source> |         <source>HH</source> | ||||||
| @ -16,7 +16,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">HH</target> |         <target state="translated">HH</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.toast.close-aria" datatype="html"> |       <trans-unit id="ngb.toast.close-aria" datatype="html"> | ||||||
|         <source>Close</source> |         <source>Close</source> | ||||||
| @ -24,7 +24,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Close</target> |         <target state="translated">關閉</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.datepicker.select-month" datatype="html"> |       <trans-unit id="ngb.datepicker.select-month" datatype="html"> | ||||||
|         <source>Select month</source> |         <source>Select month</source> | ||||||
| @ -36,7 +36,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Select month</target> |         <target state="translated">選取月份</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.pagination.first" datatype="html"> |       <trans-unit id="ngb.pagination.first" datatype="html"> | ||||||
|         <source>««</source> |         <source>««</source> | ||||||
| @ -56,7 +56,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Previous month</target> |         <target state="translated">上個月</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.progressbar.value" datatype="html"> |       <trans-unit id="ngb.progressbar.value" datatype="html"> | ||||||
|         <source> |         <source> | ||||||
| @ -82,7 +82,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Hours</target> |         <target state="translated">小時</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.pagination.previous" datatype="html"> |       <trans-unit id="ngb.pagination.previous" datatype="html"> | ||||||
|         <source>«</source> |         <source>«</source> | ||||||
| @ -98,7 +98,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Previous</target> |         <target state="translated">上一個</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.timepicker.MM" datatype="html"> |       <trans-unit id="ngb.timepicker.MM" datatype="html"> | ||||||
|         <source>MM</source> |         <source>MM</source> | ||||||
| @ -106,7 +106,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">MM</target> |         <target state="translated">MM</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.pagination.next" datatype="html"> |       <trans-unit id="ngb.pagination.next" datatype="html"> | ||||||
|         <source>»</source> |         <source>»</source> | ||||||
| @ -126,7 +126,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Select year</target> |         <target state="translated">選擇年份</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.datepicker.next-month" datatype="html"> |       <trans-unit id="ngb.datepicker.next-month" datatype="html"> | ||||||
|         <source>Next month</source> |         <source>Next month</source> | ||||||
| @ -138,7 +138,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Next month</target> |         <target state="translated">下一個月</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.carousel.next" datatype="html"> |       <trans-unit id="ngb.carousel.next" datatype="html"> | ||||||
|         <source>Next</source> |         <source>Next</source> | ||||||
| @ -146,7 +146,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Next</target> |         <target state="translated">下一個</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.timepicker.minutes" datatype="html"> |       <trans-unit id="ngb.timepicker.minutes" datatype="html"> | ||||||
|         <source>Minutes</source> |         <source>Minutes</source> | ||||||
| @ -154,7 +154,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Minutes</target> |         <target state="translated">分鐘</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.pagination.last" datatype="html"> |       <trans-unit id="ngb.pagination.last" datatype="html"> | ||||||
|         <source>»»</source> |         <source>»»</source> | ||||||
| @ -170,7 +170,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">First</target> |         <target state="translated">第一頁</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.timepicker.increment-hours" datatype="html"> |       <trans-unit id="ngb.timepicker.increment-hours" datatype="html"> | ||||||
|         <source>Increment hours</source> |         <source>Increment hours</source> | ||||||
| @ -186,7 +186,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Previous</target> |         <target state="translated">上一頁</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.timepicker.decrement-hours" datatype="html"> |       <trans-unit id="ngb.timepicker.decrement-hours" datatype="html"> | ||||||
|         <source>Decrement hours</source> |         <source>Decrement hours</source> | ||||||
| @ -202,7 +202,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Next</target> |         <target state="translated">下一頁</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.timepicker.increment-minutes" datatype="html"> |       <trans-unit id="ngb.timepicker.increment-minutes" datatype="html"> | ||||||
|         <source>Increment minutes</source> |         <source>Increment minutes</source> | ||||||
| @ -218,7 +218,7 @@ | |||||||
|           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> |           <context context-type="sourcefile">node_modules/src/ngb-config.ts</context> | ||||||
|           <context context-type="linenumber">13</context> |           <context context-type="linenumber">13</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <target state="needs-translation">Last</target> |         <target state="translated">最後一頁</target> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="ngb.timepicker.decrement-minutes" datatype="html"> |       <trans-unit id="ngb.timepicker.decrement-minutes" datatype="html"> | ||||||
|         <source>Decrement minutes</source> |         <source>Decrement minutes</source> | ||||||
|  | |||||||
| @ -490,9 +490,23 @@ ul.pagination { | |||||||
| 
 | 
 | ||||||
| .doc-img-container { | .doc-img-container { | ||||||
|   border: none !important; |   border: none !important; | ||||||
|   border-top-left-radius: .25rem; |  | ||||||
|   border-top-right-radius: .25rem; |  | ||||||
|   overflow: hidden; |   overflow: hidden; | ||||||
|  | 
 | ||||||
|  |   .doc-img { | ||||||
|  |     overflow: visible; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .card-selected { | ||||||
|  |   border-color:var(--bs-primary); | ||||||
|  | 
 | ||||||
|  |   .document-card-check { | ||||||
|  |     display: block; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   .doc-img-container { | ||||||
|  |     background-color: var(--pngx-primary-faded); | ||||||
|  |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| table.table { | table.table { | ||||||
| @ -705,6 +719,10 @@ i-bs svg { | |||||||
|   vertical-align: text-bottom; |   vertical-align: text-bottom; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .document-card .card-footer i-bs svg { | .document-card { | ||||||
|  |   overflow: hidden; | ||||||
|  | 
 | ||||||
|  |   .card-footer i-bs svg { | ||||||
|     vertical-align: middle; |     vertical-align: middle; | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -183,7 +183,7 @@ $form-check-radio-checked-bg-image-dark: url("data:image/svg+xml,<svg xmlns='htt | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   .doc-img { |   .doc-img { | ||||||
|     mix-blend-mode: normal !important; |     mix-blend-mode: normal; | ||||||
|     border-radius: 0; |     border-radius: 0; | ||||||
|     border-color: var(--bs-border-color); |     border-color: var(--bs-border-color); | ||||||
|     filter: invert(10%); |     filter: invert(10%); | ||||||
| @ -201,6 +201,24 @@ $form-check-radio-checked-bg-image-dark: url("data:image/svg+xml,<svg xmlns='htt | |||||||
|     mix-blend-mode: luminosity; |     mix-blend-mode: luminosity; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   @supports (hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none) { | ||||||
|  |     // Safari does not like the filters on the image, see https://github.com/paperless-ngx/paperless-ngx/pull/8121 | ||||||
|  |     .doc-img-container { | ||||||
|  |       background-color: #ffffff; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .doc-img { | ||||||
|  |       filter: none !important; | ||||||
|  |       box-shadow: inset 0px 0px 0px 10px rgba(0,0,0,1); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .doc-img.inverted { | ||||||
|  |       filter: none !important; | ||||||
|  |       mix-blend-mode: difference; | ||||||
|  |       opacity: 0.95; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   .paperless-input-select .ng-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option:not(.ng-option-selected):hover, |   .paperless-input-select .ng-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option:not(.ng-option-selected):hover, | ||||||
|   .paperless-input-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked { |   .paperless-input-select .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked { | ||||||
|     background-color: var(--bs-light) !important; |     background-color: var(--bs-light) !important; | ||||||
|  | |||||||
| @ -411,6 +411,7 @@ class ConsumerPlugin( | |||||||
|                     self.unmodified_original = ( |                     self.unmodified_original = ( | ||||||
|                         Path(tempdir.name) / Path("uo") / Path(self.filename) |                         Path(tempdir.name) / Path("uo") / Path(self.filename) | ||||||
|                     ) |                     ) | ||||||
|  |                     self.unmodified_original.parent.mkdir(exist_ok=True) | ||||||
|                     copy_file_with_basic_stats( |                     copy_file_with_basic_stats( | ||||||
|                         self.input_doc.original_file, |                         self.input_doc.original_file, | ||||||
|                         self.unmodified_original, |                         self.unmodified_original, | ||||||
|  | |||||||
| @ -424,20 +424,28 @@ class CustomFieldQueryParser: | |||||||
|             value_field_name = "value_monetary_amount" |             value_field_name = "value_monetary_amount" | ||||||
|         has_field = Q(custom_fields__field=custom_field) |         has_field = Q(custom_fields__field=custom_field) | ||||||
| 
 | 
 | ||||||
|         # Our special exists operator. |  | ||||||
|         if op == "exists": |  | ||||||
|             field_filter = has_field if value else ~has_field |  | ||||||
|         else: |  | ||||||
|             field_filter = has_field & Q( |  | ||||||
|                 **{f"custom_fields__{value_field_name}__{op}": value}, |  | ||||||
|             ) |  | ||||||
| 
 |  | ||||||
|         # We need to use an annotation here because different atoms |         # We need to use an annotation here because different atoms | ||||||
|         # might be referring to different instances of custom fields. |         # might be referring to different instances of custom fields. | ||||||
|         annotation_name = f"_custom_field_filter_{len(self._annotations)}" |         annotation_name = f"_custom_field_filter_{len(self._annotations)}" | ||||||
|         self._annotations[annotation_name] = Count("custom_fields", filter=field_filter) |  | ||||||
| 
 | 
 | ||||||
|         return Q(**{f"{annotation_name}__gt": 0}) |         # Our special exists operator. | ||||||
|  |         if op == "exists": | ||||||
|  |             annotation = Count("custom_fields", filter=has_field) | ||||||
|  |             # A Document should have > 0 match if it has this field, or 0 if doesn't. | ||||||
|  |             query_op = "gt" if value else "exact" | ||||||
|  |             query = Q(**{f"{annotation_name}__{query_op}": 0}) | ||||||
|  |         else: | ||||||
|  |             # Check if 1) custom field name matches, and 2) value satisfies condition | ||||||
|  |             field_filter = has_field & Q( | ||||||
|  |                 **{f"custom_fields__{value_field_name}__{op}": value}, | ||||||
|  |             ) | ||||||
|  |             # Annotate how many matching custom fields each document has | ||||||
|  |             annotation = Count("custom_fields", filter=field_filter) | ||||||
|  |             # Filter document by count | ||||||
|  |             query = Q(**{f"{annotation_name}__gt": 0}) | ||||||
|  | 
 | ||||||
|  |         self._annotations[annotation_name] = annotation | ||||||
|  |         return query | ||||||
| 
 | 
 | ||||||
|     @handle_validation_prefix |     @handle_validation_prefix | ||||||
|     def _get_custom_field(self, id_or_name): |     def _get_custom_field(self, id_or_name): | ||||||
|  | |||||||
| @ -289,6 +289,12 @@ class TestCustomFieldsSearch(DirectoriesMixin, APITestCase): | |||||||
|             lambda document: "string_field" in document, |             lambda document: "string_field" in document, | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|  |     def test_exists_false(self): | ||||||
|  |         self._assert_query_match_predicate( | ||||||
|  |             ["string_field", "exists", False], | ||||||
|  |             lambda document: "string_field" not in document, | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|     def test_select(self): |     def test_select(self): | ||||||
|         # For select fields, you can either specify the index |         # For select fields, you can either specify the index | ||||||
|         # or the name of the option. They function exactly the same. |         # or the name of the option. They function exactly the same. | ||||||
|  | |||||||
| @ -8,7 +8,7 @@ class TestMigrateWorkflow(TestMigrations): | |||||||
|     dependencies = ( |     dependencies = ( | ||||||
|         ( |         ( | ||||||
|             "paperless_mail", |             "paperless_mail", | ||||||
|             "0027_mailaccount_expiration_mailaccount_account_type_and_more", |             "0028_alter_mailaccount_password_and_more", | ||||||
|         ), |         ), | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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: 2024-10-19 22:56-0700\n" | "POT-Creation-Date: 2024-10-19 22:56-0700\n" | ||||||
| "PO-Revision-Date: 2024-10-20 12:11\n" | "PO-Revision-Date: 2024-11-02 00:29\n" | ||||||
| "Last-Translator: \n" | "Last-Translator: \n" | ||||||
| "Language-Team: German\n" | "Language-Team: German\n" | ||||||
| "Language: de_DE\n" | "Language: de_DE\n" | ||||||
| @ -47,7 +47,7 @@ msgstr "{name!r} ist kein gültiges benutzerdefiniertes Feld." | |||||||
| 
 | 
 | ||||||
| #: documents/filters.py:492 | #: documents/filters.py:492 | ||||||
| msgid "{data_type} does not support query expr {expr!r}." | msgid "{data_type} does not support query expr {expr!r}." | ||||||
| msgstr "{data_type} unterstützt Abfrage expr {expr!r} nicht." | msgstr "{data_type} unterstützt den Abfrageausdruck {expr!r} nicht." | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:600 | #: documents/filters.py:600 | ||||||
| msgid "Maximum nesting depth exceeded." | msgid "Maximum nesting depth exceeded." | ||||||
| @ -1547,11 +1547,11 @@ msgstr "IMAP" | |||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:20 | #: paperless_mail/models.py:20 | ||||||
| msgid "Gmail OAuth" | msgid "Gmail OAuth" | ||||||
| msgstr "Gmail OAuth" | msgstr "Gmail-OAuth" | ||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:21 | #: paperless_mail/models.py:21 | ||||||
| msgid "Outlook OAuth" | msgid "Outlook OAuth" | ||||||
| msgstr "Outlook OAuh" | msgstr "Outlook-OAuth" | ||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:25 | #: paperless_mail/models.py:25 | ||||||
| msgid "IMAP server" | msgid "IMAP server" | ||||||
| @ -1599,7 +1599,7 @@ msgstr "Aktualisierungstoken" | |||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:71 | #: paperless_mail/models.py:71 | ||||||
| msgid "The refresh token to use for token authentication e.g. with oauth2." | msgid "The refresh token to use for token authentication e.g. with oauth2." | ||||||
| msgstr "Das Aktualisierungstoken für die Tokenauthentifizierung z.B. mit OAuth2." | msgstr "Das Aktualisierungstoken, das für die Tokenauthentifizierung (z.B. mit OAuth2) verwendet werden soll." | ||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:80 | #: paperless_mail/models.py:80 | ||||||
| msgid "The expiration date of the refresh token. " | msgid "The expiration date of the refresh token. " | ||||||
|  | |||||||
| @ -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: 2024-10-19 22:56-0700\n" | "POT-Creation-Date: 2024-10-19 22:56-0700\n" | ||||||
| "PO-Revision-Date: 2024-10-20 05:58\n" | "PO-Revision-Date: 2024-11-03 04:57\n" | ||||||
| "Last-Translator: \n" | "Last-Translator: \n" | ||||||
| "Language-Team: Spanish\n" | "Language-Team: Spanish\n" | ||||||
| "Language: es_ES\n" | "Language: es_ES\n" | ||||||
| @ -23,35 +23,35 @@ msgstr "Documentos" | |||||||
| 
 | 
 | ||||||
| #: documents/filters.py:334 | #: documents/filters.py:334 | ||||||
| msgid "Value must be valid JSON." | msgid "Value must be valid JSON." | ||||||
| msgstr "" | msgstr "El valor debe ser JSON válido." | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:353 | #: documents/filters.py:353 | ||||||
| msgid "Invalid custom field query expression" | msgid "Invalid custom field query expression" | ||||||
| msgstr "" | msgstr "Expresión de consulta de campo personalizado no válida" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:363 | #: documents/filters.py:363 | ||||||
| msgid "Invalid expression list. Must be nonempty." | msgid "Invalid expression list. Must be nonempty." | ||||||
| msgstr "" | msgstr "Lista de expresiones no válida. Debe ser no vacía." | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:384 | #: documents/filters.py:384 | ||||||
| msgid "Invalid logical operator {op!r}" | msgid "Invalid logical operator {op!r}" | ||||||
| msgstr "" | msgstr "Operador lógico inválido {op!r}" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:398 | #: documents/filters.py:398 | ||||||
| msgid "Maximum number of query conditions exceeded." | msgid "Maximum number of query conditions exceeded." | ||||||
| msgstr "" | msgstr "Se ha superado el número máximo de condiciones de consulta." | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:455 | #: documents/filters.py:455 | ||||||
| msgid "{name!r} is not a valid custom field." | msgid "{name!r} is not a valid custom field." | ||||||
| msgstr "" | msgstr "{nombre!r} no es un campo personalizado válido." | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:492 | #: documents/filters.py:492 | ||||||
| msgid "{data_type} does not support query expr {expr!r}." | msgid "{data_type} does not support query expr {expr!r}." | ||||||
| msgstr "" | msgstr "{data_type} no admite la consulta expr {expr!r}." | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:600 | #: documents/filters.py:600 | ||||||
| msgid "Maximum nesting depth exceeded." | msgid "Maximum nesting depth exceeded." | ||||||
| msgstr "" | msgstr "Profundidad máxima de nidificación superada." | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:41 documents/models.py:802 | #: documents/models.py:41 documents/models.py:802 | ||||||
| msgid "owner" | msgid "owner" | ||||||
| @ -192,11 +192,11 @@ msgstr "La cadena de verificación del documento archivado." | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:211 | #: documents/models.py:211 | ||||||
| msgid "page count" | msgid "page count" | ||||||
| msgstr "" | msgstr "número de páginas" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:218 | #: documents/models.py:218 | ||||||
| msgid "The number of pages of the document." | msgid "The number of pages of the document." | ||||||
| msgstr "" | msgstr "El número de páginas del documento." | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:222 documents/models.py:402 documents/models.py:722 | #: documents/models.py:222 documents/models.py:402 documents/models.py:722 | ||||||
| #: documents/models.py:760 documents/models.py:831 documents/models.py:889 | #: documents/models.py:760 documents/models.py:831 documents/models.py:889 | ||||||
| @ -353,7 +353,7 @@ msgstr "ASN" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:431 | #: documents/models.py:431 | ||||||
| msgid "Pages" | msgid "Pages" | ||||||
| msgstr "" | msgstr "Páginas" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:437 | #: documents/models.py:437 | ||||||
| msgid "show on dashboard" | msgid "show on dashboard" | ||||||
| @ -561,7 +561,7 @@ msgstr "no tiene campo personalizado" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:525 | #: documents/models.py:525 | ||||||
| msgid "custom fields query" | msgid "custom fields query" | ||||||
| msgstr "" | msgstr "consulta de campos personalizados" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:535 | #: documents/models.py:535 | ||||||
| msgid "rule type" | msgid "rule type" | ||||||
| @ -1543,7 +1543,7 @@ msgstr "Usar STARTTLS" | |||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:19 | #: paperless_mail/models.py:19 | ||||||
| msgid "IMAP" | msgid "IMAP" | ||||||
| msgstr "" | msgstr "IMAP" | ||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:20 | #: paperless_mail/models.py:20 | ||||||
| msgid "Gmail OAuth" | msgid "Gmail OAuth" | ||||||
|  | |||||||
| @ -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: 2024-10-19 22:56-0700\n" | "POT-Creation-Date: 2024-10-19 22:56-0700\n" | ||||||
| "PO-Revision-Date: 2024-10-29 18:05\n" | "PO-Revision-Date: 2024-11-03 00:33\n" | ||||||
| "Last-Translator: \n" | "Last-Translator: \n" | ||||||
| "Language-Team: Italian\n" | "Language-Team: Italian\n" | ||||||
| "Language: it_IT\n" | "Language: it_IT\n" | ||||||
| @ -23,11 +23,11 @@ msgstr "Documenti" | |||||||
| 
 | 
 | ||||||
| #: documents/filters.py:334 | #: documents/filters.py:334 | ||||||
| msgid "Value must be valid JSON." | msgid "Value must be valid JSON." | ||||||
| msgstr "" | msgstr "Il valore deve essere un JSON valido." | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:353 | #: documents/filters.py:353 | ||||||
| msgid "Invalid custom field query expression" | msgid "Invalid custom field query expression" | ||||||
| msgstr "" | msgstr "Espressione della query del campo personalizzato non valida" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:363 | #: documents/filters.py:363 | ||||||
| msgid "Invalid expression list. Must be nonempty." | msgid "Invalid expression list. Must be nonempty." | ||||||
| @ -35,7 +35,7 @@ msgstr "" | |||||||
| 
 | 
 | ||||||
| #: documents/filters.py:384 | #: documents/filters.py:384 | ||||||
| msgid "Invalid logical operator {op!r}" | msgid "Invalid logical operator {op!r}" | ||||||
| msgstr "" | msgstr "Operatore logico non valido {op!r}" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:398 | #: documents/filters.py:398 | ||||||
| msgid "Maximum number of query conditions exceeded." | msgid "Maximum number of query conditions exceeded." | ||||||
| @ -43,7 +43,7 @@ msgstr "" | |||||||
| 
 | 
 | ||||||
| #: documents/filters.py:455 | #: documents/filters.py:455 | ||||||
| msgid "{name!r} is not a valid custom field." | msgid "{name!r} is not a valid custom field." | ||||||
| msgstr "" | msgstr "{name!r} non è un campo personalizzato valido." | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:492 | #: documents/filters.py:492 | ||||||
| msgid "{data_type} does not support query expr {expr!r}." | msgid "{data_type} does not support query expr {expr!r}." | ||||||
|  | |||||||
| @ -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: 2024-10-19 22:56-0700\n" | "POT-Creation-Date: 2024-10-19 22:56-0700\n" | ||||||
| "PO-Revision-Date: 2024-10-25 12:12\n" | "PO-Revision-Date: 2024-11-02 00:29\n" | ||||||
| "Last-Translator: \n" | "Last-Translator: \n" | ||||||
| "Language-Team: Swedish\n" | "Language-Team: Swedish\n" | ||||||
| "Language: sv_SE\n" | "Language: sv_SE\n" | ||||||
| @ -1015,7 +1015,7 @@ msgstr "Vänligen logga in." | |||||||
| #: documents/templates/account/login.html:12 | #: documents/templates/account/login.html:12 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Don't have an account yet? <a href=\"%(signup_url)s\">Sign up</a>" | msgid "Don't have an account yet? <a href=\"%(signup_url)s\">Sign up</a>" | ||||||
| msgstr "" | msgstr "Har du inget konto än? <a href=\"%(signup_url)s\">Registrera dig</a>" | ||||||
| 
 | 
 | ||||||
| #: documents/templates/account/login.html:19 | #: documents/templates/account/login.html:19 | ||||||
| #: documents/templates/account/signup.html:15 | #: documents/templates/account/signup.html:15 | ||||||
| @ -1117,7 +1117,7 @@ msgstr "" | |||||||
| #: documents/templates/account/signup.html:10 | #: documents/templates/account/signup.html:10 | ||||||
| #, python-format | #, python-format | ||||||
| msgid "Already have an account? <a href=\"%(login_url)s\">Sign in</a>" | msgid "Already have an account? <a href=\"%(login_url)s\">Sign in</a>" | ||||||
| msgstr "" | msgstr "Har du redan ett konto? <a href=\"%(login_url)s\">Logga in</a>" | ||||||
| 
 | 
 | ||||||
| #: documents/templates/account/signup.html:16 | #: documents/templates/account/signup.html:16 | ||||||
| #: documents/templates/socialaccount/signup.html:14 | #: documents/templates/socialaccount/signup.html:14 | ||||||
| @ -1131,7 +1131,7 @@ msgstr "" | |||||||
| #: documents/templates/account/signup.html:36 | #: documents/templates/account/signup.html:36 | ||||||
| #: documents/templates/socialaccount/signup.html:27 | #: documents/templates/socialaccount/signup.html:27 | ||||||
| msgid "Sign up" | msgid "Sign up" | ||||||
| msgstr "" | msgstr "Registrera dig" | ||||||
| 
 | 
 | ||||||
| #: documents/templates/index.html:61 | #: documents/templates/index.html:61 | ||||||
| msgid "Paperless-ngx is loading..." | msgid "Paperless-ngx is loading..." | ||||||
| @ -1170,7 +1170,7 @@ msgstr "" | |||||||
| 
 | 
 | ||||||
| #: documents/templates/socialaccount/login.html:13 | #: documents/templates/socialaccount/login.html:13 | ||||||
| msgid "Continue" | msgid "Continue" | ||||||
| msgstr "" | msgstr "Fortsätt" | ||||||
| 
 | 
 | ||||||
| #: documents/templates/socialaccount/signup.html:5 | #: documents/templates/socialaccount/signup.html:5 | ||||||
| msgid "Paperless-ngx social account sign up" | msgid "Paperless-ngx social account sign up" | ||||||
| @ -1366,7 +1366,7 @@ msgstr "Belarusiska" | |||||||
| 
 | 
 | ||||||
| #: paperless/settings.py:688 | #: paperless/settings.py:688 | ||||||
| msgid "Bulgarian" | msgid "Bulgarian" | ||||||
| msgstr "" | msgstr "Bulgariska" | ||||||
| 
 | 
 | ||||||
| #: paperless/settings.py:689 | #: paperless/settings.py:689 | ||||||
| msgid "Catalan" | msgid "Catalan" | ||||||
| @ -1386,7 +1386,7 @@ msgstr "Tyska" | |||||||
| 
 | 
 | ||||||
| #: paperless/settings.py:693 | #: paperless/settings.py:693 | ||||||
| msgid "Greek" | msgid "Greek" | ||||||
| msgstr "" | msgstr "Grekiska" | ||||||
| 
 | 
 | ||||||
| #: paperless/settings.py:694 | #: paperless/settings.py:694 | ||||||
| msgid "English (GB)" | msgid "English (GB)" | ||||||
| @ -1414,7 +1414,7 @@ msgstr "Italienska" | |||||||
| 
 | 
 | ||||||
| #: paperless/settings.py:700 | #: paperless/settings.py:700 | ||||||
| msgid "Japanese" | msgid "Japanese" | ||||||
| msgstr "" | msgstr "Japanska" | ||||||
| 
 | 
 | ||||||
| #: paperless/settings.py:701 | #: paperless/settings.py:701 | ||||||
| msgid "Korean" | msgid "Korean" | ||||||
| @ -1426,7 +1426,7 @@ msgstr "Luxemburgiska" | |||||||
| 
 | 
 | ||||||
| #: paperless/settings.py:703 | #: paperless/settings.py:703 | ||||||
| msgid "Norwegian" | msgid "Norwegian" | ||||||
| msgstr "" | msgstr "Norska" | ||||||
| 
 | 
 | ||||||
| #: paperless/settings.py:704 | #: paperless/settings.py:704 | ||||||
| msgid "Dutch" | msgid "Dutch" | ||||||
| @ -1542,7 +1542,7 @@ msgstr "Använd STARTTLS" | |||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:19 | #: paperless_mail/models.py:19 | ||||||
| msgid "IMAP" | msgid "IMAP" | ||||||
| msgstr "" | msgstr "IMAP" | ||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:20 | #: paperless_mail/models.py:20 | ||||||
| msgid "Gmail OAuth" | msgid "Gmail OAuth" | ||||||
|  | |||||||
| @ -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: 2024-10-19 22:56-0700\n" | "POT-Creation-Date: 2024-10-19 22:56-0700\n" | ||||||
| "PO-Revision-Date: 2024-10-20 05:58\n" | "PO-Revision-Date: 2024-10-31 12:12\n" | ||||||
| "Last-Translator: \n" | "Last-Translator: \n" | ||||||
| "Language-Team: Thai\n" | "Language-Team: Thai\n" | ||||||
| "Language: th_TH\n" | "Language: th_TH\n" | ||||||
| @ -23,35 +23,35 @@ msgstr "เอกสาร" | |||||||
| 
 | 
 | ||||||
| #: documents/filters.py:334 | #: documents/filters.py:334 | ||||||
| msgid "Value must be valid JSON." | msgid "Value must be valid JSON." | ||||||
| msgstr "" | msgstr "ค่า ต้องอยู่ในรูปแบบ JSON ที่ถูกต้อง" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:353 | #: documents/filters.py:353 | ||||||
| msgid "Invalid custom field query expression" | msgid "Invalid custom field query expression" | ||||||
| msgstr "" | msgstr "รูปแบบการค้นหาฟิลด์ที่กำหนดเองไม่ถูกต้อง" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:363 | #: documents/filters.py:363 | ||||||
| msgid "Invalid expression list. Must be nonempty." | msgid "Invalid expression list. Must be nonempty." | ||||||
| msgstr "" | msgstr "รายการคำสั่งไม่ถูกต้อง ต้องไม่เว้นว่าง" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:384 | #: documents/filters.py:384 | ||||||
| msgid "Invalid logical operator {op!r}" | msgid "Invalid logical operator {op!r}" | ||||||
| msgstr "" | msgstr "ตัวดำเนินการเชิงตรรกะ {op!r} ไม่ถูกต้อง" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:398 | #: documents/filters.py:398 | ||||||
| msgid "Maximum number of query conditions exceeded." | msgid "Maximum number of query conditions exceeded." | ||||||
| msgstr "" | msgstr "จำนวนเงื่อนไขในการค้นหาเกินกำหนด" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:455 | #: documents/filters.py:455 | ||||||
| msgid "{name!r} is not a valid custom field." | msgid "{name!r} is not a valid custom field." | ||||||
| msgstr "" | msgstr "{name!r} ไม่ใช่ฟิลด์ที่กำหนดเองที่ถูกต้อง" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:492 | #: documents/filters.py:492 | ||||||
| msgid "{data_type} does not support query expr {expr!r}." | msgid "{data_type} does not support query expr {expr!r}." | ||||||
| msgstr "" | msgstr "{data_type} ไม่รองรับรูปแบบการค้นหา {expr!r}" | ||||||
| 
 | 
 | ||||||
| #: documents/filters.py:600 | #: documents/filters.py:600 | ||||||
| msgid "Maximum nesting depth exceeded." | msgid "Maximum nesting depth exceeded." | ||||||
| msgstr "" | msgstr "จำนวนการซ้อนเงื่อนไขสูงสุดเกินขีดจำกัด" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:41 documents/models.py:802 | #: documents/models.py:41 documents/models.py:802 | ||||||
| msgid "owner" | msgid "owner" | ||||||
| @ -192,11 +192,11 @@ msgstr "ค่า checksum ของเอกสารประเภทเก | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:211 | #: documents/models.py:211 | ||||||
| msgid "page count" | msgid "page count" | ||||||
| msgstr "" | msgstr "จำนวนหน้า" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:218 | #: documents/models.py:218 | ||||||
| msgid "The number of pages of the document." | msgid "The number of pages of the document." | ||||||
| msgstr "" | msgstr "จำนวนหน้าทั้งหมดของเอกสาร" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:222 documents/models.py:402 documents/models.py:722 | #: documents/models.py:222 documents/models.py:402 documents/models.py:722 | ||||||
| #: documents/models.py:760 documents/models.py:831 documents/models.py:889 | #: documents/models.py:760 documents/models.py:831 documents/models.py:889 | ||||||
| @ -301,11 +301,11 @@ msgstr "ตาราง" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:416 | #: documents/models.py:416 | ||||||
| msgid "Small Cards" | msgid "Small Cards" | ||||||
| msgstr "" | msgstr "การ์ดขนาดเล็ก" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:417 | #: documents/models.py:417 | ||||||
| msgid "Large Cards" | msgid "Large Cards" | ||||||
| msgstr "" | msgstr "การ์ดขนาดใหญ่" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:420 | #: documents/models.py:420 | ||||||
| msgid "Title" | msgid "Title" | ||||||
| @ -313,11 +313,11 @@ msgstr "" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:421 | #: documents/models.py:421 | ||||||
| msgid "Created" | msgid "Created" | ||||||
| msgstr "" | msgstr "วันที่สร้าง" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:422 | #: documents/models.py:422 | ||||||
| msgid "Added" | msgid "Added" | ||||||
| msgstr "" | msgstr "วันที่เพิ่ม" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:423 | #: documents/models.py:423 | ||||||
| msgid "Tags" | msgid "Tags" | ||||||
| @ -333,7 +333,7 @@ msgstr "ประเภทเอกสาร" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:426 | #: documents/models.py:426 | ||||||
| msgid "Storage Path" | msgid "Storage Path" | ||||||
| msgstr "" | msgstr "ตำแหน่งจัดเก็บ" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:427 | #: documents/models.py:427 | ||||||
| msgid "Note" | msgid "Note" | ||||||
| @ -345,7 +345,7 @@ msgstr "เจ้าของ" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:429 | #: documents/models.py:429 | ||||||
| msgid "Shared" | msgid "Shared" | ||||||
| msgstr "" | msgstr "แชร์แล้ว" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:430 | #: documents/models.py:430 | ||||||
| msgid "ASN" | msgid "ASN" | ||||||
| @ -353,7 +353,7 @@ msgstr "" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:431 | #: documents/models.py:431 | ||||||
| msgid "Pages" | msgid "Pages" | ||||||
| msgstr "" | msgstr "หน้า" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:437 | #: documents/models.py:437 | ||||||
| msgid "show on dashboard" | msgid "show on dashboard" | ||||||
| @ -373,15 +373,15 @@ msgstr "เรียงย้อนกลับ" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:452 | #: documents/models.py:452 | ||||||
| msgid "View page size" | msgid "View page size" | ||||||
| msgstr "" | msgstr "ขนาดการแสดงผลหน้า" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:460 | #: documents/models.py:460 | ||||||
| msgid "View display mode" | msgid "View display mode" | ||||||
| msgstr "" | msgstr "โหมดการแสดงผล" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:467 | #: documents/models.py:467 | ||||||
| msgid "Document display fields" | msgid "Document display fields" | ||||||
| msgstr "" | msgstr "ฟิลด์การแสดงผลของเอกสาร" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:474 documents/models.py:532 | #: documents/models.py:474 documents/models.py:532 | ||||||
| msgid "saved view" | msgid "saved view" | ||||||
| @ -537,31 +537,31 @@ msgstr "ไม่มีเจ้าของเป็น" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:519 | #: documents/models.py:519 | ||||||
| msgid "has custom field value" | msgid "has custom field value" | ||||||
| msgstr "" | msgstr "มีค่าฟิลด์ที่กำหนดเอง" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:520 | #: documents/models.py:520 | ||||||
| msgid "is shared by me" | msgid "is shared by me" | ||||||
| msgstr "" | msgstr "แชร์โดยฉัน" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:521 | #: documents/models.py:521 | ||||||
| msgid "has custom fields" | msgid "has custom fields" | ||||||
| msgstr "" | msgstr "มีฟิลด์ที่กำหนดเอง" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:522 | #: documents/models.py:522 | ||||||
| msgid "has custom field in" | msgid "has custom field in" | ||||||
| msgstr "" | msgstr "มีฟิลด์ที่กำหนดเองใน" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:523 | #: documents/models.py:523 | ||||||
| msgid "does not have custom field in" | msgid "does not have custom field in" | ||||||
| msgstr "" | msgstr "ไม่มีฟิลด์ที่กำหนดเอง" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:524 | #: documents/models.py:524 | ||||||
| msgid "does not have custom field" | msgid "does not have custom field" | ||||||
| msgstr "" | msgstr "ไม่มีฟิลด์ที่กำหนดเองใน" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:525 | #: documents/models.py:525 | ||||||
| msgid "custom fields query" | msgid "custom fields query" | ||||||
| msgstr "" | msgstr "การค้นหาฟิลด์ที่กำหนดเอง" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:535 | #: documents/models.py:535 | ||||||
| msgid "rule type" | msgid "rule type" | ||||||
| @ -717,11 +717,11 @@ msgstr "Float" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:826 | #: documents/models.py:826 | ||||||
| msgid "Monetary" | msgid "Monetary" | ||||||
| msgstr "" | msgstr "จำนวนเงิน" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:827 | #: documents/models.py:827 | ||||||
| msgid "Document Link" | msgid "Document Link" | ||||||
| msgstr "" | msgstr "ลิงก์ของเอกสาร" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:828 | #: documents/models.py:828 | ||||||
| msgid "Select" | msgid "Select" | ||||||
| @ -733,23 +733,23 @@ msgstr "ชนิดข้อมูล" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:847 | #: documents/models.py:847 | ||||||
| msgid "extra data" | msgid "extra data" | ||||||
| msgstr "" | msgstr "ข้อมูลเพิ่มเติม" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:851 | #: documents/models.py:851 | ||||||
| msgid "Extra data for the custom field, such as select options" | msgid "Extra data for the custom field, such as select options" | ||||||
| msgstr "" | msgstr "ข้อมูลเพิ่มเติมสำหรับฟิลด์ที่กำหนดเอง เช่น ตัวเลือก" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:857 | #: documents/models.py:857 | ||||||
| msgid "custom field" | msgid "custom field" | ||||||
| msgstr "" | msgstr "ฟิลด์ที่กำหนดเอง" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:858 | #: documents/models.py:858 | ||||||
| msgid "custom fields" | msgid "custom fields" | ||||||
| msgstr "" | msgstr "ฟิลด์ที่กำหนดเอง" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:955 | #: documents/models.py:955 | ||||||
| msgid "custom field instance" | msgid "custom field instance" | ||||||
| msgstr "" | msgstr "ชุดข้อมูลฟิลด์ที่กำหนดเอง" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:956 | #: documents/models.py:956 | ||||||
| msgid "custom field instances" | msgid "custom field instances" | ||||||
| @ -757,7 +757,7 @@ msgstr "" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:1017 | #: documents/models.py:1017 | ||||||
| msgid "Consumption Started" | msgid "Consumption Started" | ||||||
| msgstr "" | msgstr "เริ่มใช้งาน" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:1018 | #: documents/models.py:1018 | ||||||
| msgid "Document Added" | msgid "Document Added" | ||||||
| @ -769,7 +769,7 @@ msgstr "ปรับปรุงเอกสารแล้ว" | |||||||
| 
 | 
 | ||||||
| #: documents/models.py:1022 | #: documents/models.py:1022 | ||||||
| msgid "Consume Folder" | msgid "Consume Folder" | ||||||
| msgstr "" | msgstr "โฟลเดอร์ใช้งาน" | ||||||
| 
 | 
 | ||||||
| #: documents/models.py:1023 | #: documents/models.py:1023 | ||||||
| msgid "Api Upload" | msgid "Api Upload" | ||||||
|  | |||||||
| @ -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: 2024-10-19 22:56-0700\n" | "POT-Creation-Date: 2024-10-19 22:56-0700\n" | ||||||
| "PO-Revision-Date: 2024-10-29 12:12\n" | "PO-Revision-Date: 2024-11-03 04:57\n" | ||||||
| "Last-Translator: \n" | "Last-Translator: \n" | ||||||
| "Language-Team: Chinese Simplified\n" | "Language-Team: Chinese Simplified\n" | ||||||
| "Language: zh_CN\n" | "Language: zh_CN\n" | ||||||
| @ -1603,7 +1603,7 @@ msgstr "" | |||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:80 | #: paperless_mail/models.py:80 | ||||||
| msgid "The expiration date of the refresh token. " | msgid "The expiration date of the refresh token. " | ||||||
| msgstr "" | msgstr "刷新令牌的到期日期。 " | ||||||
| 
 | 
 | ||||||
| #: paperless_mail/models.py:90 | #: paperless_mail/models.py:90 | ||||||
| msgid "mail rule" | msgid "mail rule" | ||||||
|  | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -0,0 +1,31 @@ | |||||||
|  | # Generated by Django 5.1.1 on 2024-10-30 04:31 | ||||||
|  | 
 | ||||||
|  | from django.db import migrations | ||||||
|  | from django.db import models | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  |     dependencies = [ | ||||||
|  |         ( | ||||||
|  |             "paperless_mail", | ||||||
|  |             "0027_mailaccount_expiration_mailaccount_account_type_and_more", | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name="mailaccount", | ||||||
|  |             name="password", | ||||||
|  |             field=models.TextField(verbose_name="password"), | ||||||
|  |         ), | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name="mailaccount", | ||||||
|  |             name="refresh_token", | ||||||
|  |             field=models.TextField( | ||||||
|  |                 blank=True, | ||||||
|  |                 help_text="The refresh token to use for token authentication e.g. with oauth2.", | ||||||
|  |                 null=True, | ||||||
|  |                 verbose_name="refresh token", | ||||||
|  |             ), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
| @ -42,7 +42,7 @@ class MailAccount(document_models.ModelWithOwner): | |||||||
| 
 | 
 | ||||||
|     username = models.CharField(_("username"), max_length=256) |     username = models.CharField(_("username"), max_length=256) | ||||||
| 
 | 
 | ||||||
|     password = models.CharField(_("password"), max_length=3072) |     password = models.TextField(_("password")) | ||||||
| 
 | 
 | ||||||
|     is_token = models.BooleanField(_("Is token authentication"), default=False) |     is_token = models.BooleanField(_("Is token authentication"), default=False) | ||||||
| 
 | 
 | ||||||
| @ -62,9 +62,8 @@ class MailAccount(document_models.ModelWithOwner): | |||||||
|         default=MailAccountType.IMAP, |         default=MailAccountType.IMAP, | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
|     refresh_token = models.CharField( |     refresh_token = models.TextField( | ||||||
|         _("refresh token"), |         _("refresh token"), | ||||||
|         max_length=3072, |  | ||||||
|         blank=True, |         blank=True, | ||||||
|         null=True, |         null=True, | ||||||
|         help_text=_( |         help_text=_( | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user