diff options
-rw-r--r-- | template/templates/common/item_meta.html | 1 | ||||
-rw-r--r-- | ui/static/js/app.js | 43 |
2 files changed, 23 insertions, 21 deletions
diff --git a/template/templates/common/item_meta.html b/template/templates/common/item_meta.html index c4f4f4bb..21c802a7 100644 --- a/template/templates/common/item_meta.html +++ b/template/templates/common/item_meta.html @@ -20,6 +20,7 @@ <a href="#" title="{{ t "entry.status.title" }}" data-toggle-status="true" + data-label-loading="{{ t "entry.state.saving" }}" data-label-read="{{ t "entry.status.read" }}" data-label-unread="{{ t "entry.status.unread" }}" data-value="{{ if eq .entry.Status "read" }}read{{ else }}unread{{ end }}" diff --git a/ui/static/js/app.js b/ui/static/js/app.js index a06d2bd0..9063f933 100644 --- a/ui/static/js/app.js +++ b/ui/static/js/app.js @@ -149,31 +149,32 @@ function toggleEntryStatus(element, toasting) { let currentStatus = link.dataset.value; let newStatus = currentStatus === "read" ? "unread" : "read"; - updateEntriesStatus([entryID], newStatus); - - let iconElement, label; + link.querySelector("span").innerHTML = link.dataset.labelLoading; + updateEntriesStatus([entryID], newStatus, () => { + let iconElement, label; - if (currentStatus === "read") { - iconElement = document.querySelector("template#icon-read"); - label = link.dataset.labelRead; - if (toasting) { - showToast(link.dataset.toastUnread, iconElement); - } - } else { - iconElement = document.querySelector("template#icon-unread"); - label = link.dataset.labelUnread; - if (toasting) { - showToast(link.dataset.toastRead, iconElement); + if (currentStatus === "read") { + iconElement = document.querySelector("template#icon-read"); + label = link.dataset.labelRead; + if (toasting) { + showToast(link.dataset.toastUnread, iconElement); + } + } else { + iconElement = document.querySelector("template#icon-unread"); + label = link.dataset.labelUnread; + if (toasting) { + showToast(link.dataset.toastRead, iconElement); + } } - } - link.innerHTML = iconElement.innerHTML + '<span class="icon-label">' + label + '</span>'; - link.dataset.value = newStatus; + link.innerHTML = iconElement.innerHTML + '<span class="icon-label">' + label + '</span>'; + link.dataset.value = newStatus; - if (element.classList.contains("item-status-" + currentStatus)) { - element.classList.remove("item-status-" + currentStatus); - element.classList.add("item-status-" + newStatus); - } + if (element.classList.contains("item-status-" + currentStatus)) { + element.classList.remove("item-status-" + currentStatus); + element.classList.add("item-status-" + newStatus); + } + }); } // Mark a single entry as read. |