Fix photo_clipboard.select_all on /photo, where no photo_card exists.
This commit is contained in:
parent
737fa5652f
commit
83f1443a86
1 changed files with 30 additions and 16 deletions
|
@ -219,17 +219,24 @@ function on_photo_select(event)
|
||||||
photo_clipboard.select_all_photos =
|
photo_clipboard.select_all_photos =
|
||||||
function select_all_photos()
|
function select_all_photos()
|
||||||
{
|
{
|
||||||
const photo_divs = Array.from(document.getElementsByClassName("photo_card"));
|
const checkboxes = Array.from(document.getElementsByClassName("photo_clipboard_selector_checkbox"));
|
||||||
for (const photo_div of photo_divs)
|
for (const checkbox of checkboxes)
|
||||||
{
|
{
|
||||||
photo_clipboard.clipboard.add(photo_div.dataset.id);
|
/*
|
||||||
photo_div.classList.remove("photo_card_unselected");
|
On pages where the checkbox appears outside of a photo card, like
|
||||||
photo_div.classList.add("photo_card_selected");
|
/photo/id, the checkbox will have data-photo-id. But when it is in a
|
||||||
const checkbox = photo_div.getElementsByClassName("photo_clipboard_selector_checkbox")[0];
|
card, we are sure that the photo_card's data-id will be reliable.
|
||||||
if (checkbox)
|
*/
|
||||||
|
let photo_id = checkbox.dataset.photoId;
|
||||||
|
const photo_card = checkbox.closest(".photo_card");
|
||||||
|
if (photo_card)
|
||||||
{
|
{
|
||||||
checkbox.checked = true;
|
photo_card.classList.remove("photo_card_unselected");
|
||||||
|
photo_card.classList.add("photo_card_selected");
|
||||||
|
photo_id = photo_card.dataset.id;
|
||||||
}
|
}
|
||||||
|
photo_clipboard.clipboard.add(photo_id);
|
||||||
|
checkbox.checked = true;
|
||||||
}
|
}
|
||||||
photo_clipboard.previous_photo_select = null;
|
photo_clipboard.previous_photo_select = null;
|
||||||
setTimeout(() => photo_clipboard.save_clipboard(), 0);
|
setTimeout(() => photo_clipboard.save_clipboard(), 0);
|
||||||
|
@ -238,17 +245,24 @@ function select_all_photos()
|
||||||
photo_clipboard.unselect_all_photos =
|
photo_clipboard.unselect_all_photos =
|
||||||
function unselect_all_photos()
|
function unselect_all_photos()
|
||||||
{
|
{
|
||||||
const photo_divs = Array.from(document.getElementsByClassName("photo_card"));
|
const checkboxes = Array.from(document.getElementsByClassName("photo_clipboard_selector_checkbox"));
|
||||||
for (const photo_div of photo_divs)
|
for (const checkbox of checkboxes)
|
||||||
{
|
{
|
||||||
photo_clipboard.clipboard.delete(photo_div.dataset.id);
|
/*
|
||||||
photo_div.classList.remove("photo_card_selected");
|
On pages where the checkbox appears outside of a photo card, like
|
||||||
photo_div.classList.add("photo_card_unselected");
|
/photo/id, the checkbox will have data-photo-id. But when it is in a
|
||||||
const checkbox = photo_div.getElementsByClassName("photo_clipboard_selector_checkbox")[0];
|
card, we are sure that the photo_card's data-id will be reliable.
|
||||||
if (checkbox)
|
*/
|
||||||
|
let photo_id = checkbox.dataset.photoId;
|
||||||
|
const photo_card = checkbox.closest(".photo_card");
|
||||||
|
if (photo_card)
|
||||||
{
|
{
|
||||||
checkbox.checked = false;
|
photo_card.classList.remove("photo_card_selected");
|
||||||
|
photo_card.classList.add("photo_card_unselected");
|
||||||
|
photo_id = photo_card.dataset.id;
|
||||||
}
|
}
|
||||||
|
photo_clipboard.clipboard.delete(photo_id);
|
||||||
|
checkbox.checked = false;
|
||||||
}
|
}
|
||||||
photo_clipboard.previous_photo_select = null;
|
photo_clipboard.previous_photo_select = null;
|
||||||
setTimeout(() => photo_clipboard.save_clipboard(), 0);
|
setTimeout(() => photo_clipboard.save_clipboard(), 0);
|
||||||
|
|
Loading…
Reference in a new issue