mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Compare commits
	
		
			9 Commits
		
	
	
		
			9a2d7a64ac
			...
			2e593a0022
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 2e593a0022 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3526a4cf23 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f4791cac2d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | fdafd4eefb | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 87a8847a8d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7c31c79bbc | ||
|   | bf2a9b02c6 | ||
|   | 348858780c | ||
|   | eb481ac1c0 | 
| @@ -715,7 +715,7 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <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">59</context> |           <context context-type="linenumber">58</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/permissions-dialog/permissions-dialog.component.html</context> |           <context context-type="sourcefile">src/app/components/common/permissions-dialog/permissions-dialog.component.html</context> | ||||||
| @@ -2541,15 +2541,15 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1325</context> |           <context context-type="linenumber">1323</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1364</context> |           <context context-type="linenumber">1362</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1405</context> |           <context context-type="linenumber">1403</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context> |           <context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context> | ||||||
| @@ -3406,7 +3406,7 @@ | |||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1382</context> |           <context context-type="linenumber">1380</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/guards/dirty-saved-view.guard.ts</context> |           <context context-type="sourcefile">src/app/guards/dirty-saved-view.guard.ts</context> | ||||||
| @@ -5352,18 +5352,18 @@ | |||||||
|         <source>Remove link</source> |         <source>Remove link</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">44</context> |           <context context-type="linenumber">43</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <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">51</context> |           <context context-type="linenumber">50</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="1388712764439031120" datatype="html"> |       <trans-unit id="1388712764439031120" datatype="html"> | ||||||
|         <source>Open link</source> |         <source>Open link</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">47</context> |           <context context-type="linenumber">46</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/common/input/url/url.component.html</context> |           <context context-type="sourcefile">src/app/components/common/input/url/url.component.html</context> | ||||||
| @@ -5374,7 +5374,7 @@ | |||||||
|         <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">52</context> |           <context context-type="linenumber">51</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5676637575587497817" datatype="html"> |       <trans-unit id="5676637575587497817" datatype="html"> | ||||||
| @@ -7022,35 +7022,35 @@ | |||||||
|         <source>Split confirm</source> |         <source>Split confirm</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1323</context> |           <context context-type="linenumber">1321</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2805304563009985503" datatype="html"> |       <trans-unit id="2805304563009985503" datatype="html"> | ||||||
|         <source>This operation will split the selected document(s) into new documents.</source> |         <source>This operation will split the selected document(s) into new documents.</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1324</context> |           <context context-type="linenumber">1322</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="7638681545012641321" datatype="html"> |       <trans-unit id="7638681545012641321" datatype="html"> | ||||||
|         <source>Split operation for "<x id="PH" equiv-text="this.document.title"/>" will begin in the background.</source> |         <source>Split operation for "<x id="PH" equiv-text="this.document.title"/>" will begin in the background.</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1340</context> |           <context context-type="linenumber">1338</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3235014591864339926" datatype="html"> |       <trans-unit id="3235014591864339926" datatype="html"> | ||||||
|         <source>Error executing split operation</source> |         <source>Error executing split operation</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1349</context> |           <context context-type="linenumber">1347</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6555329262222566158" datatype="html"> |       <trans-unit id="6555329262222566158" datatype="html"> | ||||||
|         <source>Rotate confirm</source> |         <source>Rotate confirm</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1362</context> |           <context context-type="linenumber">1360</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context> |           <context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context> | ||||||
| @@ -7061,60 +7061,60 @@ | |||||||
|         <source>This operation will permanently rotate the original version of the current document.</source> |         <source>This operation will permanently rotate the original version of the current document.</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1363</context> |           <context context-type="linenumber">1361</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3802852336439815451" datatype="html"> |       <trans-unit id="3802852336439815451" datatype="html"> | ||||||
|         <source>Rotation of "<x id="PH" equiv-text="this.document.title"/>" will begin in the background. Close and re-open the document after the operation has completed to see the changes.</source> |         <source>Rotation of "<x id="PH" equiv-text="this.document.title"/>" will begin in the background. Close and re-open the document after the operation has completed to see the changes.</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1379</context> |           <context context-type="linenumber">1377</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="2962674215361798818" datatype="html"> |       <trans-unit id="2962674215361798818" datatype="html"> | ||||||
|         <source>Error executing rotate operation</source> |         <source>Error executing rotate operation</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1391</context> |           <context context-type="linenumber">1389</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="3539261415918606512" datatype="html"> |       <trans-unit id="3539261415918606512" datatype="html"> | ||||||
|         <source>Delete pages confirm</source> |         <source>Delete pages confirm</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1403</context> |           <context context-type="linenumber">1401</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="5854352498125813866" datatype="html"> |       <trans-unit id="5854352498125813866" datatype="html"> | ||||||
|         <source>This operation will permanently delete the selected pages from the original document.</source> |         <source>This operation will permanently delete the selected pages from the original document.</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1404</context> |           <context context-type="linenumber">1402</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="1138505464360427037" datatype="html"> |       <trans-unit id="1138505464360427037" datatype="html"> | ||||||
|         <source>Delete pages operation for "<x id="PH" equiv-text="this.document.title"/>" will begin in the background. Close and re-open or reload this document after the operation has completed to see the changes.</source> |         <source>Delete pages operation for "<x id="PH" equiv-text="this.document.title"/>" will begin in the background. Close and re-open or reload this document after the operation has completed to see the changes.</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1419</context> |           <context context-type="linenumber">1417</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="1249139200486584973" datatype="html"> |       <trans-unit id="1249139200486584973" datatype="html"> | ||||||
|         <source>Error executing delete pages operation</source> |         <source>Error executing delete pages operation</source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1428</context> |           <context context-type="linenumber">1426</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="6085793215710522488" datatype="html"> |       <trans-unit id="6085793215710522488" datatype="html"> | ||||||
|         <source>An error occurred loading tiff: <x id="PH" equiv-text="err.toString()"/></source> |         <source>An error occurred loading tiff: <x id="PH" equiv-text="err.toString()"/></source> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1488</context> |           <context context-type="linenumber">1486</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|         <context-group purpose="location"> |         <context-group purpose="location"> | ||||||
|           <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">1492</context> |           <context context-type="linenumber">1490</context> | ||||||
|         </context-group> |         </context-group> | ||||||
|       </trans-unit> |       </trans-unit> | ||||||
|       <trans-unit id="4958946940233632319" datatype="html"> |       <trans-unit id="4958946940233632319" datatype="html"> | ||||||
|   | |||||||
| @@ -12,17 +12,17 @@ | |||||||
|   }, |   }, | ||||||
|   "private": true, |   "private": true, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@angular/cdk": "^19.2.2", |     "@angular/cdk": "^19.2.7", | ||||||
|     "@angular/common": "~19.2.1", |     "@angular/common": "~19.2.4", | ||||||
|     "@angular/compiler": "~19.2.1", |     "@angular/compiler": "~19.2.4", | ||||||
|     "@angular/core": "~19.2.1", |     "@angular/core": "~19.2.4", | ||||||
|     "@angular/forms": "~19.2.1", |     "@angular/forms": "~19.2.4", | ||||||
|     "@angular/localize": "~19.2.1", |     "@angular/localize": "~19.2.4", | ||||||
|     "@angular/platform-browser": "~19.2.1", |     "@angular/platform-browser": "~19.2.4", | ||||||
|     "@angular/platform-browser-dynamic": "~19.2.1", |     "@angular/platform-browser-dynamic": "~19.2.4", | ||||||
|     "@angular/router": "~19.2.1", |     "@angular/router": "~19.2.4", | ||||||
|     "@ng-bootstrap/ng-bootstrap": "^18.0.0", |     "@ng-bootstrap/ng-bootstrap": "^18.0.0", | ||||||
|     "@ng-select/ng-select": "^14.2.3", |     "@ng-select/ng-select": "^14.2.6", | ||||||
|     "@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", | ||||||
| @@ -44,28 +44,28 @@ | |||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@angular-builders/custom-webpack": "^19.0.0", |     "@angular-builders/custom-webpack": "^19.0.0", | ||||||
|     "@angular-builders/jest": "^19.0.0", |     "@angular-builders/jest": "^19.0.0", | ||||||
|     "@angular-devkit/build-angular": "^19.2.1", |     "@angular-devkit/build-angular": "^19.2.5", | ||||||
|     "@angular-devkit/core": "^19.2.1", |     "@angular-devkit/core": "^19.2.5", | ||||||
|     "@angular-devkit/schematics": "^19.2.1", |     "@angular-devkit/schematics": "^19.2.5", | ||||||
|     "@angular-eslint/builder": "19.2.1", |     "@angular-eslint/builder": "19.3.0", | ||||||
|     "@angular-eslint/eslint-plugin": "19.2.1", |     "@angular-eslint/eslint-plugin": "19.3.0", | ||||||
|     "@angular-eslint/eslint-plugin-template": "19.2.1", |     "@angular-eslint/eslint-plugin-template": "19.3.0", | ||||||
|     "@angular-eslint/schematics": "19.2.1", |     "@angular-eslint/schematics": "19.3.0", | ||||||
|     "@angular-eslint/template-parser": "19.2.1", |     "@angular-eslint/template-parser": "19.3.0", | ||||||
|     "@angular/cli": "~19.2.1", |     "@angular/cli": "~19.2.5", | ||||||
|     "@angular/compiler-cli": "~19.2.1", |     "@angular/compiler-cli": "~19.2.4", | ||||||
|     "@codecov/webpack-plugin": "^1.9.0", |     "@codecov/webpack-plugin": "^1.9.0", | ||||||
|     "@playwright/test": "^1.50.1", |     "@playwright/test": "^1.51.1", | ||||||
|     "@types/jest": "^29.5.14", |     "@types/jest": "^29.5.14", | ||||||
|     "@types/node": "^22.13.9", |     "@types/node": "^22.13.17", | ||||||
|     "@typescript-eslint/eslint-plugin": "^8.26.1", |     "@typescript-eslint/eslint-plugin": "^8.29.0", | ||||||
|     "@typescript-eslint/parser": "^8.26.1", |     "@typescript-eslint/parser": "^8.29.0", | ||||||
|     "@typescript-eslint/utils": "^8.26.1", |     "@typescript-eslint/utils": "^8.29.0", | ||||||
|     "eslint": "^9.22.0", |     "eslint": "^9.23.0", | ||||||
|     "jest": "29.7.0", |     "jest": "29.7.0", | ||||||
|     "jest-environment-jsdom": "^29.7.0", |     "jest-environment-jsdom": "^29.7.0", | ||||||
|     "jest-junit": "^16.0.0", |     "jest-junit": "^16.0.0", | ||||||
|     "jest-preset-angular": "^14.5.3", |     "jest-preset-angular": "^14.5.4", | ||||||
|     "jest-websocket-mock": "^2.5.0", |     "jest-websocket-mock": "^2.5.0", | ||||||
|     "patch-package": "^8.0.0", |     "patch-package": "^8.0.0", | ||||||
|     "prettier-plugin-organize-imports": "^4.1.0", |     "prettier-plugin-organize-imports": "^4.1.0", | ||||||
|   | |||||||
							
								
								
									
										2387
									
								
								src-ui/pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2387
									
								
								src-ui/pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -30,25 +30,24 @@ | |||||||
|     [placeholder]="placeholder" |     [placeholder]="placeholder" | ||||||
|     [notFoundText]="notFoundText" |     [notFoundText]="notFoundText" | ||||||
|     [multiple]="true" |     [multiple]="true" | ||||||
|     bindValue="id" |  | ||||||
|     [compareWith]="compareDocuments" |     [compareWith]="compareDocuments" | ||||||
|     [trackByFn]="trackByFn" |     [trackByFn]="trackByFn" | ||||||
|     [minTermLength]="2" |     [minTermLength]="2" | ||||||
|     [loading]="loading" |     [loading]="loading" | ||||||
|     [typeahead]="documentsInput$" |     [typeahead]="documentsInput$" | ||||||
|     (mousedown)="$event.stopImmediatePropagation()" |     (mousedown)="$event.stopImmediatePropagation()" | ||||||
|     (change)="onChange(selectedDocuments)"> |     (change)="onChange(selectedDocumentIDs)"> | ||||||
|     <ng-template ng-label-tmp let-document="item"> |     <ng-template ng-label-tmp let-document="item"> | ||||||
|       <div class="d-flex align-items-center"> |       <div class="d-flex align-items-center"> | ||||||
|         @if (!disabled) { |         @if (!disabled) { | ||||||
|           <button class="btn p-0 lh-1" (click)="unselect(document)" title="Remove link" i18n-title><i-bs name="x"></i-bs></button> |           <button class="btn p-0 lh-1" (click)="unselect(document)" (mousedown)="$event.stopImmediatePropagation()" type="button" title="Remove link" i18n-title><i-bs name="x"></i-bs></button> | ||||||
|         } |         } | ||||||
|         @if (document.title) { |         @if (document.title) { | ||||||
|           <a routerLink="/documents/{{document.id}}" class="badge bg-light text-primary" (mousedown)="$event.stopImmediatePropagation();" title="Open link" i18n-title> |           <a routerLink="/documents/{{document.id}}" class="badge bg-light text-primary" (mousedown)="$event.stopImmediatePropagation();" title="Open link" i18n-title> | ||||||
|             <i-bs width="0.9em" height="0.9em" name="file-text"></i-bs> <span>{{document.title}}</span> |             <i-bs width="0.9em" height="0.9em" name="file-text"></i-bs> <span>{{document.title}}</span> | ||||||
|           </a> |           </a> | ||||||
|         } @else { |         } @else { | ||||||
|           <span class="badge bg-light text-muted" (click)="unselect(document)" title="Remove link" i18n-title> |           <span class="badge bg-light text-muted" (click)="unselect(document)" (mousedown)="$event.stopImmediatePropagation()" type="button" title="Remove link" i18n-title> | ||||||
|             <i-bs width="0.9em" height="0.9em" name="exclamation-triangle-fill"></i-bs> <span i18n>Not found</span> |             <i-bs width="0.9em" height="0.9em" name="exclamation-triangle-fill"></i-bs> <span i18n>Not found</span> | ||||||
|           </span> |           </span> | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -74,6 +74,11 @@ describe('DocumentLinkComponent', () => { | |||||||
|     expect(component.selectedDocuments).toEqual([documents[1], documents[0]]) |     expect(component.selectedDocuments).toEqual([documents[1], documents[0]]) | ||||||
|   }) |   }) | ||||||
|  |  | ||||||
|  |   it('should retrieve document IDs from selected documents', () => { | ||||||
|  |     component.selectedDocuments = documents | ||||||
|  |     expect(component.selectedDocumentIDs).toEqual([1, 12, 16, 23]) | ||||||
|  |   }) | ||||||
|  |  | ||||||
|   it('should search API on select text input', () => { |   it('should search API on select text input', () => { | ||||||
|     const listSpy = jest.spyOn(documentService, 'listFiltered') |     const listSpy = jest.spyOn(documentService, 'listFiltered') | ||||||
|     listSpy.mockImplementation( |     listSpy.mockImplementation( | ||||||
|   | |||||||
| @@ -71,6 +71,10 @@ export class DocumentLinkComponent | |||||||
|   @Input() |   @Input() | ||||||
|   placeholder: string = $localize`Search for documents` |   placeholder: string = $localize`Search for documents` | ||||||
|  |  | ||||||
|  |   get selectedDocumentIDs(): number[] { | ||||||
|  |     return this.selectedDocuments.map((d) => d.id) | ||||||
|  |   } | ||||||
|  |  | ||||||
|   constructor(private documentsService: DocumentService) { |   constructor(private documentsService: DocumentService) { | ||||||
|     super() |     super() | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ | |||||||
|           (change)="onChange(value)"> |           (change)="onChange(value)"> | ||||||
|  |  | ||||||
|           <ng-template ng-label-tmp let-item="item"> |           <ng-template ng-label-tmp let-item="item"> | ||||||
|             <button class="tag-wrap btn p-0 d-flex align-items-center" (click)="removeTag($event, item.id)" title="Remove tag" i18n-title> |             <button class="tag-wrap btn p-0 d-flex align-items-center" (click)="removeTag(item.id)" (mousedown)="$event.stopImmediatePropagation()" type="button" title="Remove tag" i18n-title> | ||||||
|               <i-bs name="x" style="margin-inline-end: 1px;"></i-bs> |               <i-bs name="x" style="margin-inline-end: 1px;"></i-bs> | ||||||
|               @if (item.id && tags) { |               @if (item.id && tags) { | ||||||
|                 <pngx-tag style="background-color: none;" [tag]="getTag(item.id)"></pngx-tag> |                 <pngx-tag style="background-color: none;" [tag]="getTag(item.id)"></pngx-tag> | ||||||
|   | |||||||
| @@ -154,11 +154,11 @@ describe('TagsComponent', () => { | |||||||
|   it('support remove tags', () => { |   it('support remove tags', () => { | ||||||
|     component.tags = tags |     component.tags = tags | ||||||
|     component.value = [1, 2] |     component.value = [1, 2] | ||||||
|     component.removeTag(new PointerEvent('point'), 2) |     component.removeTag(2) | ||||||
|     expect(component.value).toEqual([1]) |     expect(component.value).toEqual([1]) | ||||||
|  |  | ||||||
|     component.disabled = true |     component.disabled = true | ||||||
|     component.removeTag(new PointerEvent('point'), 1) |     component.removeTag(1) | ||||||
|     expect(component.value).toEqual([1]) |     expect(component.value).toEqual([1]) | ||||||
|   }) |   }) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -118,13 +118,10 @@ export class TagsComponent implements OnInit, ControlValueAccessor { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   removeTag(event: PointerEvent, id: number) { |   removeTag(tagID: number) { | ||||||
|     if (this.disabled) return |     if (this.disabled) return | ||||||
|  |  | ||||||
|     // prevent opening dropdown |     let index = this.value.indexOf(tagID) | ||||||
|     event.stopImmediatePropagation() |  | ||||||
|  |  | ||||||
|     let index = this.value.indexOf(id) |  | ||||||
|     if (index > -1) { |     if (index > -1) { | ||||||
|       let oldValue = this.value |       let oldValue = this.value | ||||||
|       oldValue.splice(index, 1) |       oldValue.splice(index, 1) | ||||||
|   | |||||||
| @@ -1286,9 +1286,7 @@ export class DocumentDetailComponent | |||||||
|     this.document.custom_fields?.forEach((fieldInstance) => { |     this.document.custom_fields?.forEach((fieldInstance) => { | ||||||
|       this.customFieldFormFields.push( |       this.customFieldFormFields.push( | ||||||
|         new FormGroup({ |         new FormGroup({ | ||||||
|           field: new FormControl( |           field: new FormControl(fieldInstance.field), | ||||||
|             this.getCustomFieldFromInstance(fieldInstance)?.id |  | ||||||
|           ), |  | ||||||
|           value: new FormControl(fieldInstance.value), |           value: new FormControl(fieldInstance.value), | ||||||
|         }), |         }), | ||||||
|         { emitEvent } |         { emitEvent } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user