|
|
@@ -18,10 +18,17 @@ $(() => {
|
|
|
if (mediaItem.ui)
|
|
|
return mediaItem.ui;
|
|
|
let checkbox = document.createElement("input");
|
|
|
+ let editButton = document.createElement("button");
|
|
|
let img = document.createElement("img");
|
|
|
let container = document.createElement("li");
|
|
|
let loadingImg = document.createElement("div");
|
|
|
checkbox.type = "checkbox";
|
|
|
+ editButton.type = "button";
|
|
|
+ if (!mediaItem.writeAccess)
|
|
|
+ editButton.classList.add("hidden");
|
|
|
+ let editButtonSpan = document.createElement("span");
|
|
|
+ editButtonSpan.className = "bi bi-pen";
|
|
|
+ editButton.appendChild(editButtonSpan);
|
|
|
container.classList.add("pch-image");
|
|
|
container.classList.add("loading");
|
|
|
loadingImg.classList.add("spinner");
|
|
|
@@ -40,6 +47,7 @@ $(() => {
|
|
|
container.appendChild(loadingImg);
|
|
|
container.appendChild(img);
|
|
|
container.appendChild(checkbox);
|
|
|
+ container.appendChild(editButton);
|
|
|
let setSelectionCheckboxValue = function(media, value) {
|
|
|
let checked = media.ui.checkbox.checked;
|
|
|
let indexInSelection = selectedThumbnails.indexOf(media.md5sum);
|
|
|
@@ -71,6 +79,21 @@ $(() => {
|
|
|
}
|
|
|
lastSelection = mediaItem;
|
|
|
}
|
|
|
+ editButton.addEventListener("click", e => {
|
|
|
+ e.stopPropagation();
|
|
|
+ if (!checkbox.checked) {
|
|
|
+ checkbox.checked = true;
|
|
|
+ setSelectionCheckboxValue(mediaItem, true);
|
|
|
+ }
|
|
|
+ let sel = selectedThumbnails.map(x => MediaStorage.Instance.getMediaLocal(x)).filter(x => x.writeAccess);
|
|
|
+ if (sel.length === 1 && sel[0].md5sum === mediaItem.md5sum) {
|
|
|
+ checkbox.checked = false;
|
|
|
+ setSelectionCheckboxValue(mediaItem, false);
|
|
|
+ document.location.hash = mediaItem.md5sum;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ console.log(sel);
|
|
|
+ });
|
|
|
container.addEventListener("click", () => {
|
|
|
if (selectedThumbnails.length || lastKeyboardEvent?.ctrlKey) {
|
|
|
let value = !checkbox.checked;
|
|
|
@@ -152,7 +175,7 @@ $(() => {
|
|
|
function displayMeta(key, value, isRo) {
|
|
|
let li = document.createElement("li");
|
|
|
let type = value?.type || null;
|
|
|
- let val = (value?.value ? value.value : value);
|
|
|
+ let val = (value?.value !== undefined ? value.value : value);
|
|
|
if (!val && val !== '')
|
|
|
return null;
|
|
|
if (type === 'date')
|