mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 04:51:31 +08:00 
			
		
		
		
	Merge remote-tracking branch 'origin/stable'
This commit is contained in:
		
						commit
						ac4e6077bd
					
				
							
								
								
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -3345,9 +3345,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "electron": { | ||||
|       "version": "9.0.0-beta.22", | ||||
|       "resolved": "https://registry.npmjs.org/electron/-/electron-9.0.0-beta.22.tgz", | ||||
|       "integrity": "sha512-dfqAf+CXXTKcNDj7DU7mYsmx+oZQcXOvJnZ8ZsgAHjrE9Tv8zsYUgCP3JlO4Z8CIazgleKXYmgh6H2stdK7fEA==", | ||||
|       "version": "9.0.0-beta.24", | ||||
|       "resolved": "https://registry.npmjs.org/electron/-/electron-9.0.0-beta.24.tgz", | ||||
|       "integrity": "sha512-25L3XMqm/1CCaV5CgU5ZkhKXw9830WeipJrTW0+VC5XTKp/3xHwhxyQ5G1kQnOTJd7IGwOamvw237D6e1YKnng==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@electron/get": "^1.0.1", | ||||
|  | ||||
| @ -78,7 +78,7 @@ | ||||
|     "yazl": "^2.5.1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "electron": "9.0.0-beta.22", | ||||
|     "electron": "9.0.0-beta.24", | ||||
|     "electron-builder": "22.6.0", | ||||
|     "electron-packager": "14.2.1", | ||||
|     "electron-rebuild": "1.10.1", | ||||
|  | ||||
| @ -8,6 +8,7 @@ import contextMenu from "./services/context_menu.js"; | ||||
| import DesktopMainWindowLayout from "./layouts/desktop_main_window_layout.js"; | ||||
| import glob from "./services/glob.js"; | ||||
| import DesktopExtraWindowLayout from "./layouts/desktop_extra_window_layout.js"; | ||||
| import zoomService from './services/zoom.js'; | ||||
| 
 | ||||
| glob.setupGlobs(); | ||||
| 
 | ||||
| @ -133,9 +134,11 @@ if (utils.isElectron()) { | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         const zoomLevel = zoomService.getCurrentZoom(); | ||||
| 
 | ||||
|         contextMenu.show({ | ||||
|             x: params.x, | ||||
|             y: params.y, | ||||
|             x: params.x / zoomLevel, | ||||
|             y: params.y / zoomLevel, | ||||
|             items, | ||||
|             selectMenuItemHandler: ({command, spellingSuggestion}) => { | ||||
|                 if (command === 'replaceMisspelling') { | ||||
| @ -144,4 +147,4 @@ if (utils.isElectron()) { | ||||
|             } | ||||
|         }); | ||||
|     }); | ||||
| } | ||||
| } | ||||
|  | ||||
| @ -4,7 +4,7 @@ import DialogCommandExecutor from "./dialog_command_executor.js"; | ||||
| import Entrypoints from "./entrypoints.js"; | ||||
| import options from "./options.js"; | ||||
| import utils from "./utils.js"; | ||||
| import ZoomService from "./zoom.js"; | ||||
| import zoomService from "./zoom.js"; | ||||
| import TabManager from "./tab_manager.js"; | ||||
| import treeService from "./tree.js"; | ||||
| import Component from "../widgets/component.js"; | ||||
| @ -73,7 +73,7 @@ class AppContext extends Component { | ||||
|         } | ||||
| 
 | ||||
|         if (utils.isElectron()) { | ||||
|             this.child(new ZoomService()); | ||||
|             this.child(zoomService); | ||||
|         } | ||||
| 
 | ||||
|         this.triggerEvent('initialRenderComplete'); | ||||
| @ -134,4 +134,4 @@ $(window).on('hashchange', function() { | ||||
|     } | ||||
| }); | ||||
| 
 | ||||
| export default appContext; | ||||
| export default appContext; | ||||
|  | ||||
| @ -81,24 +81,29 @@ function goToLink(e) { | ||||
|         } | ||||
|         else if (e.which === 1) { | ||||
|             const activeTabContext = appContext.tabManager.getActiveTabContext(); | ||||
|             activeTabContext.setNote(notePath) | ||||
|             activeTabContext.setNote(notePath); | ||||
|         } | ||||
|         else { | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|     else { | ||||
|         const address = $link.attr('href'); | ||||
|         if (e.which === 1) { | ||||
|             const address = $link.attr('href'); | ||||
| 
 | ||||
|         if (address && address.startsWith('http')) { | ||||
|             window.open(address, '_blank'); | ||||
|             if (address && address.startsWith('http')) { | ||||
|                 window.open(address, '_blank'); | ||||
|             } | ||||
|         } | ||||
|         else { | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| function newTabContextMenu(e) { | ||||
| function linkContextMenu(e) { | ||||
|     const $link = $(e.target).closest("a"); | ||||
| 
 | ||||
|     const notePath = getNotePathFromLink($link); | ||||
| @ -113,7 +118,7 @@ function newTabContextMenu(e) { | ||||
|         x: e.pageX, | ||||
|         y: e.pageY, | ||||
|         items: [ | ||||
|             {title: "Open note in new tab", command: "openNoteInNewTab", uiIcon: "arrow-up-right"}, | ||||
|             {title: "Open note in new tab", command: "openNoteInNewTab", uiIcon: "empty"}, | ||||
|             {title: "Open note in new window", command: "openNoteInNewWindow", uiIcon: "window-open"} | ||||
|         ], | ||||
|         selectMenuItemHandler: ({command}) => { | ||||
| @ -155,21 +160,23 @@ $(document).on('mousedown', '.note-detail-text a', function (e) { | ||||
| 
 | ||||
| $(document).on('mousedown', '.note-detail-book a', goToLink); | ||||
| $(document).on('mousedown', '.note-detail-render a', goToLink); | ||||
| $(document).on('mousedown', '.note-detail-text.ck-read-only a,.note-detail-text a.reference-link', goToLink); | ||||
| $(document).on('mousedown', '.note-detail-text a.reference-link', goToLink); | ||||
| $(document).on('mousedown', '.note-detail-readonly-text a', goToLink); | ||||
| $(document).on('mousedown', 'a.ck-link-actions__preview', goToLink); | ||||
| $(document).on('click', 'a.ck-link-actions__preview', e => { | ||||
|     e.preventDefault(); | ||||
|     e.stopPropagation(); | ||||
| }); | ||||
| 
 | ||||
| $(document).on('contextmenu', 'a.ck-link-actions__preview', newTabContextMenu); | ||||
| $(document).on('contextmenu', '.note-detail-text a', newTabContextMenu); | ||||
| $(document).on('contextmenu', "a[data-action='note']", newTabContextMenu); | ||||
| $(document).on('contextmenu', ".note-detail-render a", newTabContextMenu); | ||||
| $(document).on('contextmenu', ".note-paths-widget a", newTabContextMenu); | ||||
| $(document).on('contextmenu', 'a.ck-link-actions__preview', linkContextMenu); | ||||
| $(document).on('contextmenu', '.note-detail-text a', linkContextMenu); | ||||
| $(document).on('contextmenu', '.note-detail-readonly-text a', linkContextMenu); | ||||
| $(document).on('contextmenu', "a[data-action='note']", linkContextMenu); | ||||
| $(document).on('contextmenu', ".note-detail-render a", linkContextMenu); | ||||
| $(document).on('contextmenu', ".note-paths-widget a", linkContextMenu); | ||||
| 
 | ||||
| export default { | ||||
|     getNotePathFromUrl, | ||||
|     createNoteLink, | ||||
|     goToLink | ||||
| }; | ||||
| }; | ||||
|  | ||||
| @ -170,7 +170,7 @@ function connectWebSocket() { | ||||
| 
 | ||||
| async function sendPing() { | ||||
|     if (Date.now() - lastPingTs > 30000) { | ||||
|         console.log(utils.now(), "Lost websocket connection to the backend"); | ||||
|         console.log(utils.now(), "Lost websocket connection to the backend. If you keep having this issue repeatedly, you might want to check your reverse proxy (nginx, apache) configuration and allow/unblock WebSocket."); | ||||
|     } | ||||
| 
 | ||||
|     if (ws.readyState === ws.OPEN) { | ||||
| @ -374,4 +374,4 @@ export default { | ||||
|     subscribeToMessages, | ||||
|     waitForSyncId, | ||||
|     waitForMaxKnownSyncId | ||||
| }; | ||||
| }; | ||||
|  | ||||
| @ -5,31 +5,33 @@ import utils from "../services/utils.js"; | ||||
| const MIN_ZOOM = 0.5; | ||||
| const MAX_ZOOM = 2.0; | ||||
| 
 | ||||
| export default class ZoomService extends Component { | ||||
| class ZoomService extends Component { | ||||
|     constructor() { | ||||
|         super(); | ||||
| 
 | ||||
|         this.setZoomFactor(options.getFloat('zoomFactor')); | ||||
|         options.initializedPromise.then(() => { | ||||
|             this.setZoomFactor(options.getFloat('zoomFactor')); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     setZoomFactor(zoomFactor) { | ||||
|         zoomFactor = parseFloat(zoomFactor); | ||||
|      | ||||
| 
 | ||||
|         const webFrame = utils.dynamicRequire('electron').webFrame; | ||||
|         webFrame.setZoomFactor(zoomFactor); | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     async setZoomFactorAndSave(zoomFactor) { | ||||
|         if (zoomFactor >= MIN_ZOOM && zoomFactor <= MAX_ZOOM) { | ||||
|             this.setZoomFactor(zoomFactor); | ||||
|      | ||||
| 
 | ||||
|             await options.save('zoomFactor', zoomFactor); | ||||
|         } | ||||
|         else { | ||||
|             console.log(`Zoom factor ${zoomFactor} outside of the range, ignored.`); | ||||
|         } | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     getCurrentZoom() { | ||||
|         return utils.dynamicRequire('electron').webFrame.getZoomFactor(); | ||||
|     } | ||||
| @ -45,4 +47,8 @@ export default class ZoomService extends Component { | ||||
|     setZoomFactorAndSaveEvent({zoomFactor}) { | ||||
|         this.setZoomFactorAndSave(zoomFactor); | ||||
|     } | ||||
| } | ||||
| } | ||||
| 
 | ||||
| const zoomService = new ZoomService(); | ||||
| 
 | ||||
| export default zoomService; | ||||
|  | ||||
| @ -5,7 +5,7 @@ | ||||
|     <link rel="shortcut icon" href="favicon.ico"> | ||||
|     <title>Trilium Notes</title> | ||||
| </head> | ||||
| <body class="desktop theme-<%= theme %>" style="display: none; --main-font-size: <%= mainFontSize %>%; --tree-font-size: <%= treeFontSize %>%; --detail-font-size: <%= detailFontSize %>%;"> | ||||
| <body class="desktop theme-<%= theme %>" style="--main-font-size: <%= mainFontSize %>%; --tree-font-size: <%= treeFontSize %>%; --detail-font-size: <%= detailFontSize %>%;"> | ||||
| <noscript>Trilium requires JavaScript to be enabled.</noscript> | ||||
| 
 | ||||
| <div id="toast-container" class="d-flex flex-column justify-content-center align-items-center"></div> | ||||
| @ -82,9 +82,5 @@ | ||||
| 
 | ||||
| <link rel="stylesheet" type="text/css" href="libraries/boxicons/css/boxicons.min.css"> | ||||
| 
 | ||||
| <script> | ||||
|     $("body").show(); | ||||
| </script> | ||||
| 
 | ||||
| </body> | ||||
| </html> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 zadam
						zadam