diff options
Diffstat (limited to 'ui/static/js/entry_handler.js')
-rw-r--r-- | ui/static/js/entry_handler.js | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/ui/static/js/entry_handler.js b/ui/static/js/entry_handler.js index 25d45c7..6392aef 100644 --- a/ui/static/js/entry_handler.js +++ b/ui/static/js/entry_handler.js @@ -15,35 +15,25 @@ class EntryHandler { static toggleEntryStatus(element) { let entryID = parseInt(element.dataset.id, 10); - let statuses = {read: "unread", unread: "read"}; + let link = element.querySelector("a[data-toggle-status]"); - for (let currentStatus in statuses) { - let newStatus = statuses[currentStatus]; + let currentStatus = link.dataset.value; + let newStatus = currentStatus === "read" ? "unread" : "read"; - if (element.classList.contains("item-status-" + currentStatus)) { - element.classList.remove("item-status-" + currentStatus); - element.classList.add("item-status-" + newStatus); + this.updateEntriesStatus([entryID], newStatus); - this.updateEntriesStatus([entryID], newStatus); - - let link = element.querySelector("a[data-toggle-status]"); - if (link) { - this.toggleLinkStatus(link); - } - - break; - } - } - } - - static toggleLinkStatus(link) { - if (link.dataset.value === "read") { + if (currentStatus === "read") { link.innerHTML = link.dataset.labelRead; link.dataset.value = "unread"; } else { link.innerHTML = link.dataset.labelUnread; link.dataset.value = "read"; } + + if (element.classList.contains("item-status-" + currentStatus)) { + element.classList.remove("item-status-" + currentStatus); + element.classList.add("item-status-" + newStatus); + } } static toggleBookmark(element) { |