Add keybinds CTRL+A and +D to select/deselect all cards.

master
voussoir 2018-03-23 11:58:39 -07:00
parent 27885df64e
commit cfa5d269d1
1 changed files with 60 additions and 12 deletions

View File

@ -77,6 +77,8 @@ function apply_check_all()
photo_divs.forEach(apply_check); photo_divs.forEach(apply_check);
} }
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;
function on_photo_select(event) function on_photo_select(event)
{ {
@ -89,22 +91,14 @@ function on_photo_select(event)
*/ */
if (event.target.checked) if (event.target.checked)
{ {
action = function(photo_div) action = _action_select;
{
photo_div.getElementsByClassName("photo_card_selector_checkbox")[0].checked = true;
photo_clipboard.add(photo_div.dataset.id);
}
} }
else else
{ {
action = function(photo_div) action = _action_unselect;
{
photo_div.getElementsByClassName("photo_card_selector_checkbox")[0].checked = false;
photo_clipboard.delete(photo_div.dataset.id);
}
} }
if (event.shiftKey && previous_photo_select !== undefined) if (event.shiftKey && previous_photo_select)
{ {
var current_photo_div = event.target.parentElement; var current_photo_div = event.target.parentElement;
var previous_photo_div = previous_photo_select.target.parentElement; var previous_photo_div = previous_photo_select.target.parentElement;
@ -138,6 +132,58 @@ function on_photo_select(event)
save_photo_clipboard(); save_photo_clipboard();
} }
function select_photo(photo_div)
{
photo_div.getElementsByClassName("photo_card_selector_checkbox")[0].checked = true;
_action_select(photo_div);
save_photo_clipboard();
}
function unselect_photo(photo_div)
{
photo_div.getElementsByClassName("photo_card_selector_checkbox")[0].checked = false;
_action_unselect(photo_div)
save_photo_clipboard();
}
function select_all_photos()
{
var photo_divs = Array.from(document.getElementsByClassName("photo_card"));
photo_divs.forEach(_action_select);
apply_check_all();
save_photo_clipboard();
}
function unselect_all_photos()
{
var photo_divs = Array.from(document.getElementsByClassName("photo_card"));
photo_divs.forEach(_action_unselect);
apply_check_all()
previous_photo_select = null;
save_photo_clipboard();
}
function set_keybinds()
{
window.addEventListener("keydown", function(event)
{
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 ///////////////////////////////////////////////////////////////////////////////// // Tray management /////////////////////////////////////////////////////////////////////////////////
@ -249,6 +295,8 @@ function update_pagestate()
function on_pageload() function on_pageload()
{ {
window.addEventListener("storage", on_storage, false); window.addEventListener("storage", on_storage, false);
on_storage(); set_keybinds();
load_photo_clipboard();
update_pagestate();
} }
document.addEventListener("DOMContentLoaded", on_pageload); document.addEventListener("DOMContentLoaded", on_pageload);