Add more clipboard feature hotkeys.
This commit is contained in:
		
							parent
							
								
									984f6eb3c7
								
							
						
					
					
						commit
						2901fefe65
					
				
					 2 changed files with 85 additions and 28 deletions
				
			
		|  | @ -121,3 +121,15 @@ function html_to_element(html) | |||
|     template.innerHTML = html; | ||||
|     return template.content.firstChild; | ||||
| } | ||||
| 
 | ||||
| function should_prevent_hotkey(event) | ||||
| { | ||||
|     if (event.target.tagName == "INPUT" && event.target.type == "checkbox") | ||||
|     { | ||||
|         return false; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         return INPUT_TYPES.has(event.target.tagName); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -47,7 +47,6 @@ function save_photo_clipboard() | |||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| // Card management /////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| function apply_check(photo_card) | ||||
|  | @ -79,7 +78,7 @@ function apply_check_all() | |||
| 
 | ||||
| var _action_select = function(photo_div){photo_clipboard.add(photo_div.dataset.id)} | ||||
| var _action_unselect = function(photo_div){photo_clipboard.delete(photo_div.dataset.id)} | ||||
| var previous_photo_select; | ||||
| var previous_photo_select = null; | ||||
| function on_photo_select(event) | ||||
| { | ||||
|     /* | ||||
|  | @ -163,32 +162,6 @@ function unselect_all_photos() | |||
|     save_photo_clipboard(); | ||||
| } | ||||
| 
 | ||||
| function set_keybinds() | ||||
| { | ||||
|     window.addEventListener("keydown", function(event) | ||||
|     { | ||||
|         if (INPUT_TYPES.has(event.target.tagName)) | ||||
|         { | ||||
|             return; | ||||
|         } | ||||
|         if (event.key == "a" && event.ctrlKey) | ||||
|         { | ||||
|             select_all_photos(); | ||||
|             event.preventDefault(); | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     window.addEventListener("keydown", function(event) | ||||
|     { | ||||
|         if (event.key == "d" && event.ctrlKey) | ||||
|         { | ||||
|             unselect_all_photos(); | ||||
|             event.preventDefault(); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| // Tray management /////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| function clipboard_tray_collapse() | ||||
|  | @ -208,6 +181,11 @@ function clipboard_tray_collapse_toggle() | |||
|     Show or hide the clipboard. | ||||
|     */ | ||||
|     var tray_body = document.getElementById("clipboard_tray_body"); | ||||
|     if (!tray_body) | ||||
|     { | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     if (tray_body.classList.contains("hidden") && photo_clipboard.size > 0) | ||||
|     { | ||||
|         clipboard_tray_uncollapse(); | ||||
|  | @ -274,6 +252,73 @@ function update_clipboard_tray() | |||
|     } | ||||
| } | ||||
| 
 | ||||
| // Page and event management ///////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| function open_full_clipboard_tab() | ||||
| { | ||||
|     url = "/clipboard"; | ||||
|     window.open(url, "full_clipboard"); | ||||
| } | ||||
| 
 | ||||
| function set_keybinds() | ||||
| { | ||||
|     // HOTKEY: Photoclipboard select all
 | ||||
|     window.addEventListener( | ||||
|         "keydown", | ||||
|         function(event) | ||||
|         { | ||||
|             if (should_prevent_hotkey(event)) { return; } | ||||
|             if (event.key == "a" && event.ctrlKey && !event.shiftKey && !event.altKey) | ||||
|             { | ||||
|                 select_all_photos(); | ||||
|                 event.preventDefault(); | ||||
|             } | ||||
|         } | ||||
|     ); | ||||
| 
 | ||||
|     // HOTKEY: Photoclipboard deselect all
 | ||||
|     window.addEventListener( | ||||
|         "keydown", | ||||
|         function(event) | ||||
|         { | ||||
|             if (should_prevent_hotkey(event)) { return; } | ||||
|             if (event.key == "d" && event.ctrlKey && !event.shiftKey && !event.altKey) | ||||
|             { | ||||
|                 unselect_all_photos(); | ||||
|                 event.preventDefault(); | ||||
|             } | ||||
|         } | ||||
|     ); | ||||
| 
 | ||||
|     // HOTKEY: Photoclipboard toggle
 | ||||
|     window.addEventListener( | ||||
|         "keydown", | ||||
|         function(event) | ||||
|         { | ||||
|             if (should_prevent_hotkey(event)) { return; } | ||||
|             if (event.key == "c" && !event.ctrlKey && !event.shiftKey && !event.altKey) | ||||
|             { | ||||
|                 clipboard_tray_collapse_toggle(); | ||||
|                 event.preventDefault(); | ||||
|             } | ||||
|         } | ||||
|     ); | ||||
| 
 | ||||
|     // HOTKEY: Photoclipboard open full clipboard tab
 | ||||
|     window.addEventListener( | ||||
|         "keydown", | ||||
|         function(event) | ||||
|         { | ||||
|             if (should_prevent_hotkey(event)) { return; } | ||||
|             if (event.key == "x" && event.altKey && !event.ctrlKey && !event.shiftKey) | ||||
|             { | ||||
|                 open_full_clipboard_tab(); | ||||
|                 event.preventDefault(); | ||||
|             } | ||||
|         } | ||||
|     ); | ||||
| } | ||||
| 
 | ||||
| function update_clipboard_count() | ||||
| { | ||||
|     var elements = document.getElementsByClassName("clipboard_count"); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue