c3b3d51365
As i can't imagine any other site than the bookmarks page where an article needs to be hidden based on the bookmark status, I've hardwired it into the javascript function.
20 lines
8.7 KiB
JavaScript
20 lines
8.7 KiB
JavaScript
var Miniflux={};Miniflux.App=function(){return{BlinkIcon:function(){var e=document.querySelectorAll(".loading-icon");[].forEach.call(e,function(c){c.classList.toggle("loading-icon-blink")})},Run:function(){Miniflux.Event.ListenKeyboardEvents();Miniflux.Event.ListenMouseEvents()}}}();
|
|
Miniflux.Feed=function(){function e(d){if(d=document.getElementById("loading-feed-"+d))d.appendChild(document.createTextNode("\u2600")),d.classList.add("loading-icon-blink");f||(f=setInterval(Miniflux.App.BlinkIcon,500))}function c(){for(var d=document.getElementsByTagName("a"),g=0,b=d.length;g<b;g++){var c=d[g].getAttribute("data-feed-id");c&&a.push(parseInt(c))}}var a=[],b=[],f;return{Update:function(d,a){e(d);var b=new XMLHttpRequest;b.onload=function(){var b=document.getElementById("loading-feed-"+
|
|
d);b&&(b.innerHTML="");if(b=document.getElementById("last-checked-feed-"+d))b.innerHTML=b.getAttribute("data-after-update");try{var c=JSON.parse(this.responseText);if(c.result){var h=c.items_count,e=document.getElementById("items-count-"+d);e&&(e.innerHTML="("+h.items_unread+"/"+h.items_total+")")}a&&a(c)}catch(f){}};b.open("POST","?action=refresh-feed&feed_id="+d,!0);b.send()},UpdateAll:function(){c();var d=setInterval(function(){for(;0<a.length&&5>b.length;){var g=a.shift();b.push(g);Miniflux.Feed.Update(g,
|
|
function(g){g=b.indexOf(g.feed_id);0<=g&&b.splice(g,1);0==a.length&&0==b.length&&(clearInterval(d),clearInterval(f),window.location.href="?action=unread")})}},100)}}}();
|
|
Miniflux.Item=function(){function e(d){return item_id=d.getAttribute("data-item-id")}function c(d){if(d&&d.hasAttribute("data-reverse-label")){var a=d.innerHTML;d.innerHTML=d.getAttribute("data-reverse-label");d.setAttribute("data-reverse-label",a)}}function a(d){"mouse"!==Miniflux.Event.lastEventType&&Miniflux.Nav.SelectNextItem();d.parentNode.removeChild(d);var a=document.getElementById("page-counter");if(a){d=d.getAttribute("data-item-page");var b=parseInt(a.textContent,10)-1,c=document.getElementsByTagName("article");
|
|
if(0===b||0===c.length)window.location=location.href;a.textContent=b;switch(d){case "unread":document.title="Miniflux ("+b+")";document.getElementById("nav-counter").textContent=b;break;case "feed-items":document.title="("+b+") "+a.parentNode.firstChild.nodeValue;break;default:document.title=a.parentNode.firstChild.nodeValue+" ("+b+")"}}}function b(d){var b=e(d),h=new XMLHttpRequest;h.onload=function(){if(Miniflux.Nav.IsListing())if(d.getAttribute("data-hide"))a(d);else{d.setAttribute("data-item-status",
|
|
"read");var b=d.querySelector("a.mark");c(b);(b=d.querySelector("a.mark"))&&b.setAttribute("data-action","mark-unread")}};h.open("POST","?action=mark-item-read&id="+b,!0);h.send()}function f(d){var b=e(d),h=new XMLHttpRequest;h.onload=function(){if(Miniflux.Nav.IsListing())if(d.getAttribute("data-hide"))a(d);else{d.setAttribute("data-item-status","unread");var b=d.querySelector("a.mark");c(b);(b=d.querySelector("a.mark"))&&b.setAttribute("data-action","mark-read")}};h.open("POST","?action=mark-item-unread&id="+
|
|
b,!0);h.send()}return{MarkAsRead:b,MarkAsUnread:f,MarkAsRemoved:function(d){var b=e(d),c=new XMLHttpRequest;c.onload=function(){Miniflux.Nav.IsListing()&&a(d)};c.open("POST","?action=mark-item-removed&id="+b,!0);c.send()},SwitchBookmark:function(b){var g=e(b),h="1"===b.getAttribute("data-item-bookmark")?"0":"1",k=new XMLHttpRequest;k.onload=function(){if(Miniflux.Nav.IsListing()&&"bookmarks"===b.getAttribute("data-item-page"))a(b);else if(b.setAttribute("data-item-bookmark",h),Miniflux.Nav.IsListing()){var g=
|
|
b.querySelector("a.bookmark");c(g)}};k.open("POST","?action=bookmark&id="+g+"&value="+h,!0);k.send()},SwitchStatus:function(a){var c=a.getAttribute("data-item-status");"read"===c?f(a):"unread"===c&&b(a)},Show:function(b){(b=b.querySelector("a.show"))&&b.click()},OpenOriginal:function(a){var c=a.querySelector("a.original");c&&("unread"===a.getAttribute("data-item-status")&&b(a),c.removeAttribute("data-action"),c.click())},DownloadContent:function(b){var a=document.getElementById("download-item");if(a){b=
|
|
e(b);var c=a.getAttribute("data-before-message"),k=document.createElement("span");k.appendChild(document.createTextNode("\u2600"));k.className="loading-icon";a.innerHTML="";a.className="downloading";a.appendChild(k);a.appendChild(document.createTextNode(" "+c));var f=setInterval(Miniflux.App.BlinkIcon,250),l=new XMLHttpRequest;l.onload=function(){var b=JSON.parse(l.responseText);clearInterval(f);if(b.result){var c=document.getElementById("item-content");c&&(c.innerHTML=b.content);a&&(b=a.getAttribute("data-after-message"),
|
|
a.innerHTML="",a.appendChild(document.createTextNode(" "+b)))}else a&&(b=a.getAttribute("data-failure-message"),a.innerHTML="",a.appendChild(document.createTextNode(" "+b)))};l.open("POST","?action=download-item&id="+b,!0);l.send()}},MarkListingAsRead:function(b){for(var a=document.getElementsByTagName("article"),c=[],f=0,m=a.length;f<m;f++)c.push(e(a[f]));a=new XMLHttpRequest;a.onload=function(){window.location.href=b};a.open("POST","?action=mark-items-as-read",!0);a.send(JSON.stringify(c))}}}();
|
|
Miniflux.Event=function(){var e=[];return{lastEventType:"",ListenMouseEvents:function(){document.onclick=function(c){var a=c.target.getAttribute("data-action");if(a){Miniflux.Event.lastEventType="mouse";var b;a:{for(element=c.target;element&&element.parentNode;)if(element=element.parentNode,element.tagName&&"article"===element.tagName.toLowerCase()){b=element;break a}b=null}switch(a){case "refresh-all":c.preventDefault();Miniflux.Feed.UpdateAll();break;case "refresh-feed":c.preventDefault();Miniflux.Feed.Update(c.target.getAttribute("data-feed-id"));
|
|
break;case "mark-read":c.preventDefault();Miniflux.Item.MarkAsRead(b);break;case "mark-unread":c.preventDefault();Miniflux.Item.MarkAsUnread(b);break;case "mark-removed":c.preventDefault();Miniflux.Item.MarkAsRemoved(b);break;case "bookmark":c.preventDefault();Miniflux.Item.SwitchBookmark(b);break;case "download-item":c.preventDefault();Miniflux.Item.DownloadContent(b);break;case "original-link":c.preventDefault();Miniflux.Item.OpenOriginal(b);break;case "mark-all-read":c.preventDefault();Miniflux.Item.MarkListingAsRead("?action=unread");
|
|
break;case "mark-feed-read":c.preventDefault(),Miniflux.Item.MarkListingAsRead("?action=feed-items&feed_id="+c.target.getAttribute("data-feed-id"))}}}},ListenKeyboardEvents:function(){document.onkeypress=function(c){if(!(c.ctrlKey||c.shiftKey||c.altKey||c.metaKey)){var a=c.target||c.srcElement;if("INPUT"!=a.tagName&&"TEXTAREA"!=a.tagName)if(Miniflux.Event.lastEventType="keyboard",e.push(c.keyCode||c.which),103===e[0])switch(e[1]){case void 0:break;case 117:window.location.href="?action=unread";e=
|
|
[];break;case 98:window.location.href="?action=bookmarks";e=[];break;case 104:window.location.href="?action=history";e=[];break;case 115:window.location.href="?action=feeds";e=[];break;case 112:window.location.href="?action=config";e=[];break;default:e=[]}else switch(e=[],a=document.getElementById("current-item"),c.keyCode||c.which){case 100:Miniflux.Item.DownloadContent(a);break;case 112:case 107:Miniflux.Nav.SelectPreviousItem();break;case 110:case 106:Miniflux.Nav.SelectNextItem();break;case 118:Miniflux.Item.OpenOriginal(a);
|
|
break;case 111:Miniflux.Item.Show(a);break;case 109:Miniflux.Item.SwitchStatus(a);break;case 102:Miniflux.Item.SwitchBookmark(a);break;case 104:Miniflux.Nav.OpenPreviousPage();break;case 108:Miniflux.Nav.OpenNextPage();break;case 114:Miniflux.Feed.UpdateAll();break;case 63:Miniflux.Nav.ShowHelp()}}}}}}();
|
|
Miniflux.Nav=function(){function e(a){var b=pageYOffset+document.documentElement.clientHeight;(0>b-(a.offsetTop+a.offsetHeight)||b-a.offsetTop>document.documentElement.clientHeight)&&window.scrollTo(0,a.offsetTop-10)}function c(){return document.getElementById("listing")?!0:!1}return{OpenNextPage:function(){var a=document.getElementById("next-page");a&&a.click()},OpenPreviousPage:function(){var a=document.getElementById("previous-page");a&&a.click()},SelectNextItem:function(){var a=document.getElementById("next-item");
|
|
if(a)a.click();else if(c())if(a=document.getElementsByTagName("article"),document.getElementById("current-item"))for(var b=0,f=a.length;b<f;b++){if("current-item"===a[b].id){b+1<f&&(a[b].id="item-"+a[b].getAttribute("data-item-id"),a[b+1].id="current-item",e(a[b+1]));break}}else a[0].id="current-item",e(a[0])},SelectPreviousItem:function(){var a=document.getElementById("previous-item");if(a)a.click();else if(c())if(a=document.getElementsByTagName("article"),document.getElementById("current-item"))for(var b=
|
|
a.length-1;0<=b;b--){if("current-item"===a[b].id){0<=b-1&&(a[b].id="item-"+a[b].getAttribute("data-item-id"),a[b-1].id="current-item",e(a[b-1]));break}}else a[a.length-1].id="current-item",e(a[a.length-1])},ShowHelp:function(){open("?action=show-help","Help","width=320,height=450,location=no,scrollbars=no,status=no,toolbar=no")},IsListing:c}}();Miniflux.App.Run();
|