mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 04:51:31 +08:00 
			
		
		
		
	fix bulk/search action delete
This commit is contained in:
		
							parent
							
								
									15f8173add
								
							
						
					
					
						commit
						2d33f570f4
					
				
							
								
								
									
										46
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										46
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,12 +1,12 @@ | ||||
| { | ||||
|   "name": "trilium", | ||||
|   "version": "0.51.2", | ||||
|   "version": "0.52.1-beta", | ||||
|   "lockfileVersion": 2, | ||||
|   "requires": true, | ||||
|   "packages": { | ||||
|     "": { | ||||
|       "name": "trilium", | ||||
|       "version": "0.51.2", | ||||
|       "version": "0.52.1-beta", | ||||
|       "hasInstallScript": true, | ||||
|       "license": "AGPL-3.0-only", | ||||
|       "dependencies": { | ||||
| @ -21,7 +21,7 @@ | ||||
|         "commonmark": "0.30.0", | ||||
|         "cookie-parser": "1.4.6", | ||||
|         "csurf": "1.11.0", | ||||
|         "dayjs": "1.11.2", | ||||
|         "dayjs": "1.11.3", | ||||
|         "ejs": "3.1.8", | ||||
|         "electron-debug": "3.2.0", | ||||
|         "electron-dl": "3.3.1", | ||||
| @ -65,7 +65,7 @@ | ||||
|         "tmp": "0.2.1", | ||||
|         "turndown": "7.1.1", | ||||
|         "unescape": "1.0.1", | ||||
|         "ws": "8.6.0", | ||||
|         "ws": "8.7.0", | ||||
|         "yauzl": "2.10.0" | ||||
|       }, | ||||
|       "bin": { | ||||
| @ -82,7 +82,7 @@ | ||||
|         "jsdoc": "3.6.10", | ||||
|         "lorem-ipsum": "2.0.4", | ||||
|         "rcedit": "3.0.1", | ||||
|         "webpack": "5.72.1", | ||||
|         "webpack": "5.73.0", | ||||
|         "webpack-cli": "4.9.2" | ||||
|       }, | ||||
|       "optionalDependencies": { | ||||
| @ -3115,9 +3115,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/dayjs": { | ||||
|       "version": "1.11.2", | ||||
|       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.2.tgz", | ||||
|       "integrity": "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw==" | ||||
|       "version": "1.11.3", | ||||
|       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", | ||||
|       "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==" | ||||
|     }, | ||||
|     "node_modules/debug": { | ||||
|       "version": "4.3.4", | ||||
| @ -10252,9 +10252,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/webpack": { | ||||
|       "version": "5.72.1", | ||||
|       "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.1.tgz", | ||||
|       "integrity": "sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung==", | ||||
|       "version": "5.73.0", | ||||
|       "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", | ||||
|       "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "@types/eslint-scope": "^3.7.3", | ||||
| @ -10594,9 +10594,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/ws": { | ||||
|       "version": "8.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", | ||||
|       "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", | ||||
|       "version": "8.7.0", | ||||
|       "resolved": "https://registry.npmjs.org/ws/-/ws-8.7.0.tgz", | ||||
|       "integrity": "sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==", | ||||
|       "engines": { | ||||
|         "node": ">=10.0.0" | ||||
|       }, | ||||
| @ -13271,9 +13271,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "dayjs": { | ||||
|       "version": "1.11.2", | ||||
|       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.2.tgz", | ||||
|       "integrity": "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw==" | ||||
|       "version": "1.11.3", | ||||
|       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", | ||||
|       "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==" | ||||
|     }, | ||||
|     "debug": { | ||||
|       "version": "4.3.4", | ||||
| @ -18776,9 +18776,9 @@ | ||||
|       "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" | ||||
|     }, | ||||
|     "webpack": { | ||||
|       "version": "5.72.1", | ||||
|       "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.1.tgz", | ||||
|       "integrity": "sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung==", | ||||
|       "version": "5.73.0", | ||||
|       "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", | ||||
|       "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/eslint-scope": "^3.7.3", | ||||
| @ -19028,9 +19028,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "ws": { | ||||
|       "version": "8.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", | ||||
|       "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", | ||||
|       "version": "8.7.0", | ||||
|       "resolved": "https://registry.npmjs.org/ws/-/ws-8.7.0.tgz", | ||||
|       "integrity": "sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==", | ||||
|       "requires": {} | ||||
|     }, | ||||
|     "xdg-basedir": { | ||||
|  | ||||
| @ -36,7 +36,7 @@ | ||||
|     "commonmark": "0.30.0", | ||||
|     "cookie-parser": "1.4.6", | ||||
|     "csurf": "1.11.0", | ||||
|     "dayjs": "1.11.2", | ||||
|     "dayjs": "1.11.3", | ||||
|     "ejs": "3.1.8", | ||||
|     "electron-debug": "3.2.0", | ||||
|     "electron-dl": "3.3.1", | ||||
| @ -80,7 +80,7 @@ | ||||
|     "tmp": "0.2.1", | ||||
|     "turndown": "7.1.1", | ||||
|     "unescape": "1.0.1", | ||||
|     "ws": "8.6.0", | ||||
|     "ws": "8.7.0", | ||||
|     "yauzl": "2.10.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
| @ -94,7 +94,7 @@ | ||||
|     "jsdoc": "3.6.10", | ||||
|     "lorem-ipsum": "2.0.4", | ||||
|     "rcedit": "3.0.1", | ||||
|     "webpack": "5.72.1", | ||||
|     "webpack": "5.73.0", | ||||
|     "webpack-cli": "4.9.2" | ||||
|   }, | ||||
|   "optionalDependencies": { | ||||
|  | ||||
| @ -1133,6 +1133,10 @@ class Note extends AbstractEntity { | ||||
|      * @param {TaskContext} [taskContext] | ||||
|      */ | ||||
|     deleteNote(deleteId, taskContext) { | ||||
|         if (this.isDeleted) { | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         if (!deleteId) { | ||||
|             deleteId = utils.randomString(10); | ||||
|         } | ||||
|  | ||||
| @ -9,15 +9,16 @@ const noteRevisionService = require("../../services/note_revisions"); | ||||
| const branchService = require("../../services/branches"); | ||||
| const cloningService = require("../../services/cloning"); | ||||
| const {formatAttrForSearch} = require("../../services/attribute_formatter"); | ||||
| const utils = require("../../services/utils.js"); | ||||
| 
 | ||||
| async function searchFromNoteInt(note) { | ||||
| function searchFromNoteInt(note) { | ||||
|     let searchResultNoteIds; | ||||
| 
 | ||||
|     const searchScript = note.getRelationValue('searchScript'); | ||||
|     const searchString = note.getLabelValue('searchString'); | ||||
| 
 | ||||
|     if (searchScript) { | ||||
|         searchResultNoteIds = await searchFromRelation(note, 'searchScript'); | ||||
|         searchResultNoteIds = searchFromRelation(note, 'searchScript'); | ||||
|     } else { | ||||
|         const searchContext = new SearchContext({ | ||||
|             fastSearch: note.hasLabel('fastSearch'), | ||||
| @ -61,7 +62,9 @@ async function searchFromNote(req) { | ||||
| 
 | ||||
| const ACTION_HANDLERS = { | ||||
|     deleteNote: (action, note) => { | ||||
|         note.markAsDeleted(); | ||||
|         const deleteId = 'searchbulkaction-' + utils.randomString(10); | ||||
| 
 | ||||
|         note.deleteNote(deleteId); | ||||
|     }, | ||||
|     deleteNoteRevisions: (action, note) => { | ||||
|         noteRevisionService.eraseNoteRevisions(note.getNoteRevisions().map(rev => rev.noteRevisionId)); | ||||
| @ -149,7 +152,7 @@ function getActions(note) { | ||||
|         .filter(a => !!a); | ||||
| } | ||||
| 
 | ||||
| async function searchAndExecute(req) { | ||||
| function searchAndExecute(req) { | ||||
|     const note = becca.getNote(req.params.noteId); | ||||
| 
 | ||||
|     if (!note) { | ||||
| @ -165,7 +168,7 @@ async function searchAndExecute(req) { | ||||
|         return [400, `Note ${req.params.noteId} is not a search note.`] | ||||
|     } | ||||
| 
 | ||||
|     const searchResultNoteIds = await searchFromNoteInt(note); | ||||
|     const searchResultNoteIds = searchFromNoteInt(note); | ||||
| 
 | ||||
|     const actions = getActions(note); | ||||
| 
 | ||||
|  | ||||
| @ -78,6 +78,10 @@ function findResultsWithExpression(expression, searchContext) { | ||||
| 
 | ||||
|     const searchResults = noteSet.notes | ||||
|         .map(note => { | ||||
|             if (note.isDeleted) { | ||||
|                 return null; | ||||
|             } | ||||
| 
 | ||||
|             const notePathArray = executionContext.noteIdToNotePath[note.noteId] || beccaService.getSomePath(note); | ||||
| 
 | ||||
|             if (!notePathArray) { | ||||
| @ -85,7 +89,8 @@ function findResultsWithExpression(expression, searchContext) { | ||||
|             } | ||||
| 
 | ||||
|             return new SearchResult(notePathArray); | ||||
|         }); | ||||
|         }) | ||||
|         .filter(note => !!note); | ||||
| 
 | ||||
|     for (const res of searchResults) { | ||||
|         res.computeScore(searchContext.highlightedTokens); | ||||
|  | ||||
| @ -242,9 +242,9 @@ function transactional(func) { | ||||
|         return ret; | ||||
|     } | ||||
|     catch (e) { | ||||
|         const entityChanges = cls.getAndClearEntityChangeIds(); | ||||
|         const entityChangeIds = cls.getAndClearEntityChangeIds(); | ||||
| 
 | ||||
|         if (entityChanges.length > 0) { | ||||
|         if (entityChangeIds.length > 0) { | ||||
|             log.info("Transaction rollback dirtied the becca, forcing reload."); | ||||
| 
 | ||||
|             require('../becca/becca_loader').load(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 zadam
						zadam