1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-16 18:01:37 +00:00

Add mark as read/unread link on list items

This commit is contained in:
Frédéric Guillot 2018-01-18 20:23:26 -08:00
parent 68508ff800
commit 6302c3b219
14 changed files with 174 additions and 351 deletions

View file

@ -35,6 +35,16 @@ class DomHelper {
return result;
}
static findParent(element, selector) {
for (; element && element !== document; element = element.parentNode) {
if (element.classList.contains(selector)) {
return element;
}
}
return null;
}
}
class TouchHandler {
@ -68,13 +78,7 @@ class TouchHandler {
return element;
}
for (; element && element !== document; element = element.parentNode) {
if (element.classList.contains("touch-item")) {
return element;
}
}
return null;
return DomHelper.findParent(element, "touch-item");
}
onTouchStart(event) {
@ -324,11 +328,26 @@ class EntryHandler {
UnreadCounterHandler.increment(1);
}
let link = element.querySelector("a[data-toggle-status]");
if (link) {
this.toggleLinkStatus(link);
}
break;
}
}
}
static toggleLinkStatus(link) {
if (link.dataset.value === "read") {
link.innerHTML = link.dataset.labelRead;
link.dataset.value = "unread";
} else {
link.innerHTML = link.dataset.labelUnread;
link.dataset.value = "read";
}
}
static toggleBookmark(element) {
element.innerHTML = element.dataset.labelLoading;
@ -728,6 +747,15 @@ document.addEventListener("DOMContentLoaded", function() {
EntryHandler.toggleBookmark(event.target);
});
mouseHandler.onClick("a[data-toggle-status]", (event) => {
event.preventDefault();
let currentItem = DomHelper.findParent(event.target, "item");
if (currentItem) {
EntryHandler.toggleEntryStatus(currentItem);
}
});
mouseHandler.onClick("a[data-fetch-content-entry]", (event) => {
event.preventDefault();
EntryHandler.fetchOriginalContent(event.target);