mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	use selected text to apply filtering for add link dialog, closes #1515
This commit is contained in:
		
							
								
								
									
										85
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										85
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -904,18 +904,18 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@webpack-cli/info": { | ||||
|       "version": "1.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.0.tgz", | ||||
|       "integrity": "sha512-+wA8lBKopgKmN76BSGJVJby5ZXDlsrO6p/nm7fUBsHznRNWB/ozotJP7Yfcz8JPfqeG2LxwYlTH2u6D9a/0XAw==", | ||||
|       "version": "1.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.1.tgz", | ||||
|       "integrity": "sha512-fLnDML5HZ5AEKzHul8xLAksoKN2cibu6MgonkUj8R9V7bbeVRkd1XbGEGWrAUNYHbX1jcqCsDEpBviE5StPMzQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "envinfo": "^7.7.3" | ||||
|       } | ||||
|     }, | ||||
|     "@webpack-cli/serve": { | ||||
|       "version": "1.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.2.0.tgz", | ||||
|       "integrity": "sha512-jI3P7jMp/AXDSPkM+ClwRcJZbxnlvNC8bVZBmyRr4scMMZ4p5WQcXkw3Q+Hc7RQekomJlBMN+UQGliT4hhG8Vw==", | ||||
|       "version": "1.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.2.1.tgz", | ||||
|       "integrity": "sha512-Zj1z6AyS+vqV6Hfi7ngCjFGdHV5EwZNIHo6QfFTNe9PyW+zBU1zJ9BiOW1pmUEq950RC4+Dym6flyA/61/vhyw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "@xtuc/ieee754": { | ||||
| @@ -2361,9 +2361,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "dayjs": { | ||||
|       "version": "1.9.8", | ||||
|       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.9.8.tgz", | ||||
|       "integrity": "sha512-F42qBtJRa30FKF7XDnOQyNUTsaxDkuaZRj/i7BejSHC34LlLfPoIU4aeopvWfM+m1dJ6/DHKAWLg2ur+pLgq1w==" | ||||
|       "version": "1.10.1", | ||||
|       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.1.tgz", | ||||
|       "integrity": "sha512-2xg7JrHQeLBQFkvTumLoy62x1siyeocc98QwjtURgvRqOPYmAkMUdmSjrOA+MlmL6QMQn5MUhDf6rNZNuPc1LQ==" | ||||
|     }, | ||||
|     "debug": { | ||||
|       "version": "4.1.1", | ||||
| @@ -3402,19 +3402,19 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "execa": { | ||||
|       "version": "4.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", | ||||
|       "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", | ||||
|       "version": "5.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", | ||||
|       "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "cross-spawn": "^7.0.0", | ||||
|         "get-stream": "^5.0.0", | ||||
|         "human-signals": "^1.1.1", | ||||
|         "cross-spawn": "^7.0.3", | ||||
|         "get-stream": "^6.0.0", | ||||
|         "human-signals": "^2.1.0", | ||||
|         "is-stream": "^2.0.0", | ||||
|         "merge-stream": "^2.0.0", | ||||
|         "npm-run-path": "^4.0.0", | ||||
|         "onetime": "^5.1.0", | ||||
|         "signal-exit": "^3.0.2", | ||||
|         "npm-run-path": "^4.0.1", | ||||
|         "onetime": "^5.1.2", | ||||
|         "signal-exit": "^3.0.3", | ||||
|         "strip-final-newline": "^2.0.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
| @@ -3430,13 +3430,10 @@ | ||||
|           } | ||||
|         }, | ||||
|         "get-stream": { | ||||
|           "version": "5.2.0", | ||||
|           "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", | ||||
|           "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", | ||||
|           "dev": true, | ||||
|           "requires": { | ||||
|             "pump": "^3.0.0" | ||||
|           } | ||||
|           "version": "6.0.0", | ||||
|           "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", | ||||
|           "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", | ||||
|           "dev": true | ||||
|         }, | ||||
|         "shebang-command": { | ||||
|           "version": "2.0.0", | ||||
| @@ -3453,6 +3450,12 @@ | ||||
|           "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", | ||||
|           "dev": true | ||||
|         }, | ||||
|         "signal-exit": { | ||||
|           "version": "3.0.3", | ||||
|           "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", | ||||
|           "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", | ||||
|           "dev": true | ||||
|         }, | ||||
|         "which": { | ||||
|           "version": "2.0.2", | ||||
|           "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", | ||||
| @@ -4266,9 +4269,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "human-signals": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", | ||||
|       "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", | ||||
|       "version": "2.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", | ||||
|       "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "iconv-lite": { | ||||
| @@ -5116,17 +5119,17 @@ | ||||
|       "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" | ||||
|     }, | ||||
|     "mime-types": { | ||||
|       "version": "2.1.27", | ||||
|       "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", | ||||
|       "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", | ||||
|       "version": "2.1.28", | ||||
|       "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", | ||||
|       "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", | ||||
|       "requires": { | ||||
|         "mime-db": "1.44.0" | ||||
|         "mime-db": "1.45.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "mime-db": { | ||||
|           "version": "1.44.0", | ||||
|           "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", | ||||
|           "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" | ||||
|           "version": "1.45.0", | ||||
|           "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", | ||||
|           "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
| @@ -7695,18 +7698,18 @@ | ||||
|       } | ||||
|     }, | ||||
|     "webpack-cli": { | ||||
|       "version": "4.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.3.0.tgz", | ||||
|       "integrity": "sha512-gve+BBKrzMPTOYDjupzV8JchUznhVWMKtWM1hFIQWi6XoeLvGNoQwkrtMWVb+aJ437GgCKdta7sIn10v621pKA==", | ||||
|       "version": "4.3.1", | ||||
|       "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.3.1.tgz", | ||||
|       "integrity": "sha512-/F4+9QNZM/qKzzL9/06Am8NXIkGV+/NqQ62Dx7DSqudxxpAgBqYn6V7+zp+0Y7JuWksKUbczRY3wMTd+7Uj6OA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@discoveryjs/json-ext": "^0.5.0", | ||||
|         "@webpack-cli/info": "^1.2.0", | ||||
|         "@webpack-cli/serve": "^1.2.0", | ||||
|         "@webpack-cli/info": "^1.2.1", | ||||
|         "@webpack-cli/serve": "^1.2.1", | ||||
|         "colorette": "^1.2.1", | ||||
|         "commander": "^6.2.0", | ||||
|         "enquirer": "^2.3.6", | ||||
|         "execa": "^4.1.0", | ||||
|         "execa": "^5.0.0", | ||||
|         "fastest-levenshtein": "^1.0.12", | ||||
|         "import-local": "^3.0.2", | ||||
|         "interpret": "^2.2.0", | ||||
|   | ||||
| @@ -32,7 +32,7 @@ | ||||
|     "commonmark": "0.29.3", | ||||
|     "cookie-parser": "1.4.5", | ||||
|     "csurf": "1.11.0", | ||||
|     "dayjs": "1.9.8", | ||||
|     "dayjs": "1.10.1", | ||||
|     "ejs": "3.1.5", | ||||
|     "electron-debug": "3.2.0", | ||||
|     "electron-dl": "3.0.2", | ||||
| @@ -51,7 +51,7 @@ | ||||
|     "is-svg": "4.2.1", | ||||
|     "jimp": "0.16.1", | ||||
|     "jsdom": "^16.4.0", | ||||
|     "mime-types": "2.1.27", | ||||
|     "mime-types": "2.1.28", | ||||
|     "multer": "1.4.2", | ||||
|     "node-abi": "2.19.3", | ||||
|     "open": "7.3.0", | ||||
| @@ -87,7 +87,7 @@ | ||||
|     "lorem-ipsum": "2.0.3", | ||||
|     "rcedit": "3.0.0", | ||||
|     "webpack": "5.11.1", | ||||
|     "webpack-cli": "4.3.0" | ||||
|     "webpack-cli": "4.3.1" | ||||
|   }, | ||||
|   "optionalDependencies": { | ||||
|     "electron-installer-debian": "2.0.1" | ||||
|   | ||||
| @@ -12,7 +12,7 @@ const $addLinkTitleFormGroup = $("#add-link-title-form-group"); | ||||
| /** @var TextTypeWidget */ | ||||
| let textTypeWidget; | ||||
|  | ||||
| export async function showDialog(widget) { | ||||
| export async function showDialog(widget, text = '') { | ||||
|     textTypeWidget = widget; | ||||
|  | ||||
|     $addLinkTitleSettings.toggle(!textTypeWidget.hasSelection()); | ||||
| @@ -31,7 +31,7 @@ export async function showDialog(widget) { | ||||
|  | ||||
|     utils.openDialog($dialog); | ||||
|  | ||||
|     $autoComplete.val('').trigger('focus'); | ||||
|     $autoComplete.val(''); | ||||
|     $linkTitle.val(''); | ||||
|  | ||||
|     async function setDefaultLinkTitle(noteId) { | ||||
| @@ -62,7 +62,14 @@ export async function showDialog(widget) { | ||||
|         } | ||||
|     }); | ||||
|  | ||||
|     noteAutocompleteService.showRecentNotes($autoComplete); | ||||
|     if (text && text.trim()) { | ||||
|         noteAutocompleteService.setText($autoComplete, text); | ||||
|     } | ||||
|     else { | ||||
|         noteAutocompleteService.showRecentNotes($autoComplete); | ||||
|     } | ||||
|  | ||||
|     $autoComplete.trigger('focus'); | ||||
| } | ||||
|  | ||||
| function getLinkType() { | ||||
|   | ||||
| @@ -55,6 +55,17 @@ function clearText($el) { | ||||
|     $el.autocomplete("val", "").trigger('change'); | ||||
| } | ||||
|  | ||||
| function setText($el, text) { | ||||
|     if (utils.isMobile()) { | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     $el.setSelectedNotePath(""); | ||||
|     $el | ||||
|         .autocomplete("val", text.trim()) | ||||
|         .autocomplete("open"); | ||||
| } | ||||
|  | ||||
| function showRecentNotes($el) { | ||||
|     if (utils.isMobile()) { | ||||
|         return; | ||||
| @@ -200,5 +211,6 @@ export default { | ||||
|     autocompleteSourceForCKEditor, | ||||
|     initNoteAutocomplete, | ||||
|     showRecentNotes, | ||||
|     setText, | ||||
|     init | ||||
| } | ||||
|   | ||||
| @@ -228,7 +228,20 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget { | ||||
|     } | ||||
|  | ||||
|     addLinkToTextCommand() { | ||||
|         import("../../dialogs/add_link.js").then(d => d.showDialog(this)); | ||||
|         const selectedText = this.getSelectedText(); | ||||
|  | ||||
|         import("../../dialogs/add_link.js").then(d => d.showDialog(this, selectedText)); | ||||
|     } | ||||
|  | ||||
|     getSelectedText() { | ||||
|         const range = this.textEditor.model.document.selection.getFirstRange(); | ||||
|         let text = ''; | ||||
|  | ||||
|         for (const item of range.getItems()) { | ||||
|             text += item.data; | ||||
|         } | ||||
|  | ||||
|         return text; | ||||
|     } | ||||
|  | ||||
|     addIncludeNoteToTextCommand() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user