add brackets to unread, page and feed items counter via CSS

Unified the page-counters before.

This makes processing of counters in javascript way more easier. The minimum
required browser versions for the needed CSS3 selectors are IE9, Firefox 3.5
and Chrome 5. Confirmed working with IE9, Firefox 24.6, Chrome 36, Mobile Safari
on iOS6.

An unintended side effect of CSS brackets is that theme designers are able to
implement there idea of brackets.
This commit is contained in:
Mathias Kresin 2014-09-16 15:14:49 +02:00
parent fa5bda49db
commit 8424b9bfb1
25 changed files with 163 additions and 34 deletions

View File

@ -317,6 +317,19 @@ a.btn-red:hover,
background: #357ae8; background: #357ae8;
} }
/* counter brackets */
span#nav-counter:not(:empty):before, span#page-counter:not(:empty):before {
content: " (";
}
span[id^="items-count-"]:before {
content: "(";
}
span#nav-counter:not(:empty):after, span#page-counter:not(:empty):after, span[id^="items-count-"]:after {
content: ")";
}
/* header */ /* header */
header { header {
margin-bottom: 50px; margin-bottom: 50px;

14
assets/js/all.min.js vendored
View File

@ -1,14 +1,14 @@
var Miniflux={};Miniflux.App=function(){return{BlinkIcon:function(){var d=document.querySelectorAll(".loading-icon");[].forEach.call(d,function(b){b.classList.toggle("loading-icon-blink")})},Run:function(){Miniflux.Event.ListenKeyboardEvents();Miniflux.Event.ListenMouseEvents()}}}(); var Miniflux={};Miniflux.App=function(){return{BlinkIcon:function(){var d=document.querySelectorAll(".loading-icon");[].forEach.call(d,function(b){b.classList.toggle("loading-icon-blink")})},Run:function(){Miniflux.Event.ListenKeyboardEvents();Miniflux.Event.ListenMouseEvents()}}}();
Miniflux.Feed=function(){function d(a){if(a=document.getElementById("loading-feed-"+a))a.appendChild(document.createTextNode("\u2600")),a.classList.add("loading-icon-blink");f||(f=setInterval(Miniflux.App.BlinkIcon,500))}function b(){for(var b=document.getElementsByTagName("a"),c=0,d=b.length;c<d;c++){var e=b[c].getAttribute("data-feed-id");e&&a.push(parseInt(e))}}var a=[],c=[],f;return{Update:function(a,b){d(a);var c=new XMLHttpRequest;c.onload=function(){var e=document.getElementById("loading-feed-"+ Miniflux.Feed=function(){function d(a){if(a=document.getElementById("loading-feed-"+a))a.appendChild(document.createTextNode("\u2600")),a.classList.add("loading-icon-blink");f||(f=setInterval(Miniflux.App.BlinkIcon,500))}function b(){for(var b=document.getElementsByTagName("a"),c=0,d=b.length;c<d;c++){var e=b[c].getAttribute("data-feed-id");e&&a.push(parseInt(e))}}var a=[],c=[],f;return{Update:function(a,b){d(a);var c=new XMLHttpRequest;c.onload=function(){var e=document.getElementById("loading-feed-"+
a);e&&(e.innerHTML="");if(e=document.getElementById("last-checked-feed-"+a))e.innerHTML=e.getAttribute("data-after-update");try{var h=JSON.parse(this.responseText);if(h.result){var n=h.items_count,c=document.getElementById("items-count-"+a);c&&(c.innerHTML="("+n.items_unread+"/"+n.items_total+")")}b&&b(h)}catch(d){}};c.open("POST","?action=refresh-feed&feed_id="+a,!0);c.send()},UpdateAll:function(){b();var d=setInterval(function(){for(;0<a.length&&5>c.length;){var b=a.shift();c.push(b);Miniflux.Feed.Update(b, a);e&&(e.innerHTML="");if(e=document.getElementById("last-checked-feed-"+a))e.innerHTML=e.getAttribute("data-after-update");try{var k=JSON.parse(this.responseText);if(k.result){var p=k.items_count,c=document.getElementById("items-count-"+a);c&&(c.innerHTML="("+p.items_unread+"/"+p.items_total+")")}b&&b(k)}catch(d){}};c.open("POST","?action=refresh-feed&feed_id="+a,!0);c.send()},UpdateAll:function(){b();var d=setInterval(function(){for(;0<a.length&&5>c.length;){var b=a.shift();c.push(b);Miniflux.Feed.Update(b,
function(b){b=c.indexOf(b.feed_id);0<=b&&c.splice(b,1);0==a.length&&0==c.length&&(clearInterval(d),clearInterval(f),window.location.href="?action=unread")})}},100)}}}(); function(b){b=c.indexOf(b.feed_id);0<=b&&c.splice(b,1);0==a.length&&0==c.length&&(clearInterval(d),clearInterval(f),window.location.href="?action=unread")})}},100)}}}();
Miniflux.Item=function(){function d(e){var a=document.getElementById("item-"+e);a||(a=document.getElementById("current-item"),a.getAttribute("data-item-id")!=e&&(a=!1));return a}function b(e){if(e&&e.getAttribute("data-reverse-label")){var a=e.innerHTML;e.innerHTML=e.getAttribute("data-reverse-label");e.setAttribute("data-reverse-label",a)}}function a(e){e=document.getElementById("bookmark-"+e);b(e)}function c(e){e=document.getElementById("status-"+e);b(e)}function f(e){"mouse"!=Miniflux.Event.lastEventType&& Miniflux.Item=function(){function d(e){var a=document.getElementById("item-"+e);a||(a=document.getElementById("current-item"),a.getAttribute("data-item-id")!=e&&(a=!1));return a}function b(e){if(e&&e.getAttribute("data-reverse-label")){var a=e.innerHTML;e.innerHTML=e.getAttribute("data-reverse-label");e.setAttribute("data-reverse-label",a)}}function a(e){e=document.getElementById("bookmark-"+e);b(e)}function c(e){e=document.getElementById("status-"+e);b(e)}function f(e){"mouse"!=Miniflux.Event.lastEventType&&
Miniflux.Nav.SelectNextItem();e.parentNode.removeChild(e);var a=document.getElementById("page-counter");if(a){e=e.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(e){case "unread":document.title="Miniflux ("+b+")";document.getElementById("nav-counter").textContent="("+b+")";break;case "feed-items":document.title="("+b+") "+a.parentNode.firstChild.nodeValue;break; Miniflux.Nav.SelectNextItem();e.parentNode.removeChild(e);var a=document.getElementById("page-counter");if(a){e=e.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(e){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=
default:document.title=a.parentNode.textContent}}}function g(e){var a=new XMLHttpRequest;a.onload=function(){if(Miniflux.Nav.IsListing()){var a=d(e);if(a)if(a.getAttribute("data-hide"))f(a);else{a.setAttribute("data-item-status","read");c(e);if(a=document.getElementById("show-"+e)){a.className="read";var b=document.createElement("span");b.id="read-icon-"+e;b.appendChild(document.createTextNode("\u2714 "));a.parentNode.insertBefore(b,a)}(a=document.getElementById("status-"+e))&&a.setAttribute("data-action", a.parentNode.firstChild.nodeValue+" ("+b+")"}}}function g(e){var a=new XMLHttpRequest;a.onload=function(){if(Miniflux.Nav.IsListing()){var a=d(e);if(a)if(a.getAttribute("data-hide"))f(a);else{a.setAttribute("data-item-status","read");c(e);if(a=document.getElementById("show-"+e)){a.className="read";var b=document.createElement("span");b.id="read-icon-"+e;b.appendChild(document.createTextNode("\u2714 "));a.parentNode.insertBefore(b,a)}(a=document.getElementById("status-"+e))&&a.setAttribute("data-action",
"mark-unread")}}};a.open("POST","?action=mark-item-read&id="+e,!0);a.send()}function l(a){var b=new XMLHttpRequest;b.onload=function(){if(Miniflux.Nav.IsListing()){var b=d(a);if(b)if(b.getAttribute("data-hide"))f(b);else{b.setAttribute("data-item-status","unread");c(a);if(b=document.getElementById("show-"+a))b.className="";(b=document.getElementById("read-icon-"+a))&&b.parentNode.removeChild(b);(b=document.getElementById("status-"+a))&&b.setAttribute("data-action","mark-read")}}};b.open("POST","?action=mark-item-unread&id="+ "mark-unread")}}};a.open("POST","?action=mark-item-read&id="+e,!0);a.send()}function m(a){var b=new XMLHttpRequest;b.onload=function(){if(Miniflux.Nav.IsListing()){var b=d(a);if(b)if(b.getAttribute("data-hide"))f(b);else{b.setAttribute("data-item-status","unread");c(a);if(b=document.getElementById("show-"+a))b.className="";(b=document.getElementById("read-icon-"+a))&&b.parentNode.removeChild(b);(b=document.getElementById("status-"+a))&&b.setAttribute("data-action","mark-read")}}};b.open("POST","?action=mark-item-unread&id="+
a,!0);b.send()}function m(e,b){var c=e.getAttribute("data-item-id"),d=new XMLHttpRequest;d.onload=function(){try{if(JSON.parse(this.responseText).result)if(e.setAttribute("data-item-bookmark",b),b)if(Miniflux.Nav.IsListing()){if(f=document.getElementById("show-"+c)){var d=document.createElement("span");d.id="bookmark-icon-"+c;d.appendChild(document.createTextNode("\u2605 "));f.parentNode.insertBefore(d,f)}a(c)}else{var f=document.getElementById("bookmark-"+c);f&&(f.innerHTML="\u2605")}else if(Miniflux.Nav.IsListing()){var k= a,!0);b.send()}function n(b,c){var d=b.getAttribute("data-item-id"),h=new XMLHttpRequest;h.onload=function(){try{if(JSON.parse(this.responseText).result)if(b.setAttribute("data-item-bookmark",c),c)if(Miniflux.Nav.IsListing()){if(f=document.getElementById("show-"+d)){var h=document.createElement("span");h.id="bookmark-icon-"+d;h.appendChild(document.createTextNode("\u2605 "));f.parentNode.insertBefore(h,f)}a(d)}else{var f=document.getElementById("bookmark-"+d);f&&(f.innerHTML="\u2605")}else if(Miniflux.Nav.IsListing()){var l=
document.getElementById("bookmark-icon-"+c);k&&k.parentNode.removeChild(k);a(c)}else{var p=document.getElementById("bookmark-"+c);p&&(p.innerHTML="\u2606")}}catch(g){}};d.open("POST","?action=bookmark&id="+c+"&value="+b,!0);d.send()}return{Get:d,MarkAsRead:g,MarkAsUnread:l,MarkAsRemoved:function(a){var b=new XMLHttpRequest;b.onload=function(){Miniflux.Nav.IsListing()&&f(d(a))};b.open("POST","?action=mark-item-removed&id="+a,!0);b.send()},SwitchBookmark:function(a){"1"==a.getAttribute("data-item-bookmark")? document.getElementById("bookmark-icon-"+d);l&&l.parentNode.removeChild(l);a(d)}else{var q=document.getElementById("bookmark-"+d);q&&(q.innerHTML="\u2606")}}catch(g){}};h.open("POST","?action=bookmark&id="+d+"&value="+c,!0);h.send()}return{Get:d,MarkAsRead:g,MarkAsUnread:m,MarkAsRemoved:function(a){var b=new XMLHttpRequest;b.onload=function(){Miniflux.Nav.IsListing()&&f(d(a))};b.open("POST","?action=mark-item-removed&id="+a,!0);b.send()},SwitchBookmark:function(a){"1"==a.getAttribute("data-item-bookmark")?
m(a,0):m(a,1)},SwitchStatus:function(a){var b=a.getAttribute("data-item-id");a=a.getAttribute("data-item-status");"read"==a?l(b):"unread"==a&&g(b)},Show:function(a){(a=document.getElementById("show-"+a))&&a.click()},OpenOriginal:function(a){var b=document.getElementById("original-"+a);b&&("unread"==d(a).getAttribute("data-item-status")&&g(a),b.removeAttribute("data-action"),b.click())},DownloadContent:function(){var a=document.getElementById("download-item");if(a){var b=a.getAttribute("data-item-id"), n(a,0):n(a,1)},SwitchStatus:function(a){var b=a.getAttribute("data-item-id");a=a.getAttribute("data-item-status");"read"==a?m(b):"unread"==a&&g(b)},Show:function(a){(a=document.getElementById("show-"+a))&&a.click()},OpenOriginal:function(a){var b=document.getElementById("original-"+a);b&&("unread"==d(a).getAttribute("data-item-status")&&g(a),b.removeAttribute("data-action"),b.click())},DownloadContent:function(){var a=document.getElementById("download-item");if(a){var b=a.getAttribute("data-item-id"),
c=a.getAttribute("data-before-message"),d=document.createElement("span");d.appendChild(document.createTextNode("\u2600"));d.className="loading-icon";a.innerHTML="";a.className="downloading";a.appendChild(d);a.appendChild(document.createTextNode(" "+c));var f=setInterval(Miniflux.App.BlinkIcon,250),g=new XMLHttpRequest;g.onload=function(){var b=JSON.parse(g.responseText);clearInterval(f);if(b.result){var c=document.getElementById("item-content");c&&(c.innerHTML=b.content);a&&(b=a.getAttribute("data-after-message"), c=a.getAttribute("data-before-message"),d=document.createElement("span");d.appendChild(document.createTextNode("\u2600"));d.className="loading-icon";a.innerHTML="";a.className="downloading";a.appendChild(d);a.appendChild(document.createTextNode(" "+c));var f=setInterval(Miniflux.App.BlinkIcon,250),g=new XMLHttpRequest;g.onload=function(){var b=JSON.parse(g.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)))};g.open("POST","?action=download-item&id="+b,!0);g.send()}},MarkListingAsRead:function(a){for(var b=document.getElementsByTagName("article"),c=[],d=0,f=b.length;d<f;d++)c.push(b[d].getAttribute("data-item-id"));b=new XMLHttpRequest;b.onload=function(){window.location.href=a};b.open("POST","?action=mark-items-as-read",!0);b.send(JSON.stringify(c))}}}(); a.innerHTML="",a.appendChild(document.createTextNode(" "+b)))}else a&&(b=a.getAttribute("data-failure-message"),a.innerHTML="",a.appendChild(document.createTextNode(" "+b)))};g.open("POST","?action=download-item&id="+b,!0);g.send()}},MarkListingAsRead:function(a){for(var b=document.getElementsByTagName("article"),c=[],d=0,f=b.length;d<f;d++)c.push(b[d].getAttribute("data-item-id"));b=new XMLHttpRequest;b.onload=function(){window.location.href=a};b.open("POST","?action=mark-items-as-read",!0);b.send(JSON.stringify(c))}}}();
Miniflux.Event=function(){var d=[];return{lastEventType:"",ListenMouseEvents:function(){document.onclick=function(b){var a=b.target.getAttribute("data-action");if(a)switch(Miniflux.Event.lastEventType="mouse",a){case "refresh-all":b.preventDefault();Miniflux.Feed.UpdateAll();break;case "refresh-feed":b.preventDefault();Miniflux.Feed.Update(b.target.getAttribute("data-feed-id"));break;case "mark-read":b.preventDefault();Miniflux.Item.MarkAsRead(b.target.getAttribute("data-item-id"));break;case "mark-unread":b.preventDefault(); Miniflux.Event=function(){var d=[];return{lastEventType:"",ListenMouseEvents:function(){document.onclick=function(b){var a=b.target.getAttribute("data-action");if(a)switch(Miniflux.Event.lastEventType="mouse",a){case "refresh-all":b.preventDefault();Miniflux.Feed.UpdateAll();break;case "refresh-feed":b.preventDefault();Miniflux.Feed.Update(b.target.getAttribute("data-feed-id"));break;case "mark-read":b.preventDefault();Miniflux.Item.MarkAsRead(b.target.getAttribute("data-item-id"));break;case "mark-unread":b.preventDefault();

View File

@ -153,13 +153,13 @@ Miniflux.Item = (function() {
switch (source) { switch (source) {
case "unread": case "unread":
document.title = "Miniflux (" + counter + ")"; document.title = "Miniflux (" + counter + ")";
document.getElementById("nav-counter").textContent = "(" + counter + ")"; document.getElementById("nav-counter").textContent = counter;
break; break;
case "feed-items": case "feed-items":
document.title = "(" + counter + ") " + pageCounter.parentNode.firstChild.nodeValue; document.title = "(" + counter + ") " + pageCounter.parentNode.firstChild.nodeValue;
break; break;
default: default:
document.title = pageCounter.parentNode.textContent; document.title = pageCounter.parentNode.firstChild.nodeValue + " (" + counter + ")";
} }
} }
} }

View File

@ -86,6 +86,7 @@ return array(
'After %d day' => 'Po %d dni', 'After %d day' => 'Po %d dni',
'After %d days' => 'Po %d dnech', 'After %d days' => 'Po %d dnech',
'unread' => 'nepřečtené', 'unread' => 'nepřečtené',
'Unread' => 'Nepřečtené',
'bookmark' => 'přidat do záložek', 'bookmark' => 'přidat do záložek',
'remove bookmark' => 'odstranit záložku', 'remove bookmark' => 'odstranit záložku',
'bookmarks' => 'záložky', 'bookmarks' => 'záložky',
@ -119,7 +120,6 @@ return array(
'About' => 'O aplikaci', 'About' => 'O aplikaci',
'Miniflux version:' => 'Verze Miniflux:', 'Miniflux version:' => 'Verze Miniflux:',
'Nothing to read' => 'Nic ke čtení', 'Nothing to read' => 'Nic ke čtení',
'unread items' => 'nepřečtené články',
'mark all as read' => 'označit vše jako přečtené', 'mark all as read' => 'označit vše jako přečtené',
'original link' => 'původní odkaz', 'original link' => 'původní odkaz',
'mark as read' => 'označit jako přečtené', 'mark as read' => 'označit jako přečtené',
@ -128,7 +128,6 @@ return array(
'History' => 'Historie', 'History' => 'Historie',
'flush all items' => 'zahodit všechny články', 'flush all items' => 'zahodit všechny články',
'Item not found' => 'Článek nenalezen', 'Item not found' => 'Článek nenalezen',
'Unread items' => 'Nepřečtené články',
'Next' => 'Další', 'Next' => 'Další',
'Previous' => 'Předchozí', 'Previous' => 'Předchozí',
'Sign in' => 'Přihlásit', 'Sign in' => 'Přihlásit',

View File

@ -86,6 +86,7 @@ return array(
'After %d day' => 'Nach %d Tag', 'After %d day' => 'Nach %d Tag',
'After %d days' => 'Nach %d Tagen', 'After %d days' => 'Nach %d Tagen',
'unread' => 'ungelesen', 'unread' => 'ungelesen',
'Unread' => 'Ungelesen',
'bookmark' => 'lesezeichen', 'bookmark' => 'lesezeichen',
'remove bookmark' => 'lesezeichen entfernen', 'remove bookmark' => 'lesezeichen entfernen',
'bookmarks' => 'lesezeichen', 'bookmarks' => 'lesezeichen',
@ -119,7 +120,6 @@ return array(
'About' => 'Über', 'About' => 'Über',
'Miniflux version:' => 'Miniflux-Version:', 'Miniflux version:' => 'Miniflux-Version:',
'Nothing to read' => 'Nichts zu lesen', 'Nothing to read' => 'Nichts zu lesen',
'unread items' => 'ungelesene einträge',
'mark all as read' => 'alle als gelesen markieren', 'mark all as read' => 'alle als gelesen markieren',
'original link' => 'original-link', 'original link' => 'original-link',
'mark as read' => 'als gelesen markieren', 'mark as read' => 'als gelesen markieren',
@ -128,7 +128,6 @@ return array(
'History' => 'Verlauf', 'History' => 'Verlauf',
'flush all items' => 'alle einträge entfernen', 'flush all items' => 'alle einträge entfernen',
'Item not found' => 'Eintrag nicht gefunden', 'Item not found' => 'Eintrag nicht gefunden',
'Unread items' => 'Ungelesene Einträge',
'Next' => 'Nächster', 'Next' => 'Nächster',
'Previous' => 'Vorheriger', 'Previous' => 'Vorheriger',
'Sign in' => 'Anmelden', 'Sign in' => 'Anmelden',

View File

@ -86,6 +86,7 @@ return array(
'After %d day' => 'Después de %d día', 'After %d day' => 'Después de %d día',
'After %d days' => 'Después de %d días', 'After %d days' => 'Después de %d días',
'unread' => 'no leídos', 'unread' => 'no leídos',
'Unread' => 'No leídos',
'bookmark' => 'añadir a marcadores', 'bookmark' => 'añadir a marcadores',
'remove bookmark' => 'borrar marcador', 'remove bookmark' => 'borrar marcador',
'bookmarks' => 'marcadores', 'bookmarks' => 'marcadores',
@ -119,7 +120,6 @@ return array(
'About' => 'Acerca', 'About' => 'Acerca',
'Miniflux version:' => 'Versión de Miniflux:', 'Miniflux version:' => 'Versión de Miniflux:',
'Nothing to read' => 'No hay nada que leer', 'Nothing to read' => 'No hay nada que leer',
'unread items' => 'ítems no leídos',
'mark all as read' => 'marcar todo como leído', 'mark all as read' => 'marcar todo como leído',
'original link' => 'enlace original', 'original link' => 'enlace original',
'mark as read' => 'marcar como leído', 'mark as read' => 'marcar como leído',
@ -128,7 +128,6 @@ return array(
'History' => 'Historial', 'History' => 'Historial',
'flush all items' => 'borrar todos los ítems', 'flush all items' => 'borrar todos los ítems',
'Item not found' => 'No se encuentra el ítem', 'Item not found' => 'No se encuentra el ítem',
'Unread items' => 'Ítems no leídos',
'Next' => 'Siguiente', 'Next' => 'Siguiente',
'Previous' => 'Anterior', 'Previous' => 'Anterior',
'Sign in' => 'Iniciar sesión', 'Sign in' => 'Iniciar sesión',

View File

@ -86,6 +86,7 @@ return array(
'After %d day' => 'Après %d jour', 'After %d day' => 'Après %d jour',
'After %d days' => 'Après %d jours', 'After %d days' => 'Après %d jours',
'unread' => 'non lus', 'unread' => 'non lus',
'Unread' => 'Non lus',
'bookmark' => 'ajouter aux favoris', 'bookmark' => 'ajouter aux favoris',
'remove bookmark' => 'supprimer des favoris', 'remove bookmark' => 'supprimer des favoris',
'bookmarks' => 'favoris', 'bookmarks' => 'favoris',
@ -119,7 +120,6 @@ return array(
'About' => 'A propos', 'About' => 'A propos',
'Miniflux version:' => 'Version de Miniflux :', 'Miniflux version:' => 'Version de Miniflux :',
'Nothing to read' => 'Rien à lire', 'Nothing to read' => 'Rien à lire',
'unread items' => 'éléments non lus',
'mark all as read' => 'tout marquer comme lu', 'mark all as read' => 'tout marquer comme lu',
'original link' => 'lien original', 'original link' => 'lien original',
'mark as read' => 'marquer comme lu', 'mark as read' => 'marquer comme lu',
@ -128,7 +128,6 @@ return array(
'History' => 'Historique', 'History' => 'Historique',
'flush all items' => 'supprimer tous les éléments', 'flush all items' => 'supprimer tous les éléments',
'Item not found' => 'Élément introuvable', 'Item not found' => 'Élément introuvable',
'Unread items' => 'Éléments non lus',
'Next' => 'Suivant', 'Next' => 'Suivant',
'Previous' => 'Précédent', 'Previous' => 'Précédent',
'Sign in' => 'Connexion', 'Sign in' => 'Connexion',

View File

@ -86,6 +86,7 @@ return array(
'After %d day' => 'Dopo %d giorno', 'After %d day' => 'Dopo %d giorno',
'After %d days' => 'Dopo %d giorni', 'After %d days' => 'Dopo %d giorni',
'unread' => 'non letti', 'unread' => 'non letti',
'Unread' => 'Non letti',
'bookmark' => 'bookmark', 'bookmark' => 'bookmark',
'remove bookmark' => 'cancella bookmark', 'remove bookmark' => 'cancella bookmark',
'bookmarks' => 'bookmark', 'bookmarks' => 'bookmark',
@ -119,7 +120,6 @@ return array(
'About' => 'Informazioni sul software', 'About' => 'Informazioni sul software',
'Miniflux version:' => 'Versione Miniflux:', 'Miniflux version:' => 'Versione Miniflux:',
'Nothing to read' => 'Niente da leggere', 'Nothing to read' => 'Niente da leggere',
'unread items' => 'articoli non letti',
'mark all as read' => 'segna tutti come già letti', 'mark all as read' => 'segna tutti come già letti',
'original link' => 'link originale', 'original link' => 'link originale',
'mark as read' => 'segna come già letto', 'mark as read' => 'segna come già letto',
@ -128,7 +128,6 @@ return array(
'History' => 'Cronologia', 'History' => 'Cronologia',
'flush all items' => 'cancella tutti gli articoli', 'flush all items' => 'cancella tutti gli articoli',
'Item not found' => 'Articolo non trovato', 'Item not found' => 'Articolo non trovato',
'Unread items' => 'Articoli non letti',
'Next' => 'Successivo', 'Next' => 'Successivo',
'Previous' => 'Precedente', 'Previous' => 'Precedente',
'Sign in' => 'Accedi', 'Sign in' => 'Accedi',

View File

@ -86,6 +86,7 @@ return array(
'After %d day' => 'Depois %d dias', 'After %d day' => 'Depois %d dias',
'After %d days' => 'Depois %d dias', 'After %d days' => 'Depois %d dias',
'unread' => 'não lido', 'unread' => 'não lido',
'Unread' => 'Não lido',
'bookmark' => 'lesezeichen', 'bookmark' => 'lesezeichen',
'remove bookmark' => 'lesezeichen löschen', 'remove bookmark' => 'lesezeichen löschen',
'bookmarks' => 'bookmarks', 'bookmarks' => 'bookmarks',
@ -119,7 +120,6 @@ return array(
'About' => 'Sobre', 'About' => 'Sobre',
'Miniflux version:' => 'Miniflux versão:', 'Miniflux version:' => 'Miniflux versão:',
'Nothing to read' => 'Nada para ler', 'Nothing to read' => 'Nada para ler',
'unread items' => 'Item não lido',
'mark all as read' => 'Marcar tudo como lido', 'mark all as read' => 'Marcar tudo como lido',
'original link' => ' Link original', 'original link' => ' Link original',
'mark as read' => 'Marcar como lido', 'mark as read' => 'Marcar como lido',
@ -128,7 +128,6 @@ return array(
'History' => 'Histórico', 'History' => 'Histórico',
'flush all items' => 'Remover todos itens', 'flush all items' => 'Remover todos itens',
'Item not found' => 'Item não encontrado', 'Item not found' => 'Item não encontrado',
'Unread items' => 'Itens não lido',
'Next' => 'Proximo', 'Next' => 'Proximo',
'Previous' => 'Anterior', 'Previous' => 'Anterior',
'Sign in' => 'Assinar em', 'Sign in' => 'Assinar em',

View File

@ -86,6 +86,7 @@ return array(
'After %d day' => '%d 天之后', 'After %d day' => '%d 天之后',
'After %d days' => '%d 天之后', 'After %d days' => '%d 天之后',
'unread' => '未读', 'unread' => '未读',
'Unread' => '未读',
'bookmark' => '收藏', 'bookmark' => '收藏',
'remove bookmark' => '取消收藏', 'remove bookmark' => '取消收藏',
'bookmarks' => '收藏', 'bookmarks' => '收藏',
@ -119,7 +120,6 @@ return array(
'About' => '关于', 'About' => '关于',
'Miniflux version:' => 'Miniflux 版本:', 'Miniflux version:' => 'Miniflux 版本:',
'Nothing to read' => '没有未读条目', 'Nothing to read' => '没有未读条目',
'unread items' => '个未读条目',
'mark all as read' => '全部标记为已读', 'mark all as read' => '全部标记为已读',
'original link' => '来源链接', 'original link' => '来源链接',
'mark as read' => '标记为已读', 'mark as read' => '标记为已读',
@ -128,7 +128,6 @@ return array(
'History' => '历史', 'History' => '历史',
'flush all items' => '清空所有项目', 'flush all items' => '清空所有项目',
'Item not found' => '找不到项目', 'Item not found' => '找不到项目',
'Unread items' => '未读条目',
'Next' => '下一个', 'Next' => '下一个',
'Previous' => '前一个', 'Previous' => '前一个',
'Sign in' => '登陆', 'Sign in' => '登陆',

View File

@ -3,7 +3,7 @@
<?php else: ?> <?php else: ?>
<div class="page-header"> <div class="page-header">
<h2><?= t('Bookmarks') ?> (<span id="page-counter"><?= $nb_items ?></span>)</h2> <h2><?= t('Bookmarks') ?><span id="page-counter"><?= isset($nb_items) ? $nb_items : '' ?></span></h2>
</div> </div>
<?php if ($nothing_to_read): ?> <?php if ($nothing_to_read): ?>

View File

@ -5,7 +5,7 @@
<?php else: ?> <?php else: ?>
<div class="page-header"> <div class="page-header">
<h2><?= Helper\escape($feed['title']) ?> (<span id="page-counter"><?= $nb_items ?></span>)</h2> <h2><?= Helper\escape($feed['title']) ?><span id="page-counter"><?= isset($nb_items) ? $nb_items : '' ?></span></h2>
<ul> <ul>
<li> <li>
<a href="?action=feed-items&amp;feed_id=<?= $feed['id'] ?>&amp;order=updated&amp;direction=<?= $direction == 'asc' ? 'desc' : 'asc' ?>"><?= tne('sort by date<span class="hide-mobile"> (%s)</span>', $direction == 'desc' ? t('older first') : t('most recent first')) ?></a> <a href="?action=feed-items&amp;feed_id=<?= $feed['id'] ?>&amp;order=updated&amp;direction=<?= $direction == 'asc' ? 'desc' : 'asc' ?>"><?= tne('sort by date<span class="hide-mobile"> (%s)</span>', $direction == 'desc' ? t('older first') : t('most recent first')) ?></a>

View File

@ -28,7 +28,7 @@
<span id="loading-feed-<?= $feed['id'] ?>" class="loading-icon"></span> <span id="loading-feed-<?= $feed['id'] ?>" class="loading-icon"></span>
<?php endif ?> <?php endif ?>
<span id="items-count-<?= $feed['id'] ?>">(<?= $feed['items_unread'] .'/' . $feed['items_total'] ?>)</span> <span id="items-count-<?= $feed['id'] ?>"><?= $feed['items_unread'] .'/' . $feed['items_total'] ?></span>
<a href="?action=feed-items&amp;feed_id=<?= $feed['id'] ?>" title="<?= t('Show only this subscription') ?>"><?= Helper\escape($feed['title']) ?></a> <a href="?action=feed-items&amp;feed_id=<?= $feed['id'] ?>" title="<?= t('Show only this subscription') ?>"><?= Helper\escape($feed['title']) ?></a>

View File

@ -3,7 +3,7 @@
<?php else: ?> <?php else: ?>
<div class="page-header"> <div class="page-header">
<h2><?= t('History') ?> (<span id="page-counter"><?= $nb_items ?></span>)</h2> <h2><?= t('History') ?><span id="page-counter"><?= isset($nb_items) ? $nb_items : '' ?></span></h2>
<ul> <ul>
<li><a href="?action=confirm-flush-history"><?= t('flush all items') ?></a></li> <li><a href="?action=confirm-flush-history"><?= t('flush all items') ?></a></li>
</ul> </ul>

View File

@ -23,7 +23,7 @@
<a class="logo" href="?"><?= tne('mini<span>flux</span>') ?></a> <a class="logo" href="?"><?= tne('mini<span>flux</span>') ?></a>
<ul> <ul>
<li <?= isset($menu) && $menu === 'unread' ? 'class="active"' : '' ?>> <li <?= isset($menu) && $menu === 'unread' ? 'class="active"' : '' ?>>
<a href="?action=unread"><?= t('unread') ?> <span id="nav-counter"><?= isset($nb_unread_items) ? '('.$nb_unread_items.')' : '' ?></span></a> <a href="?action=unread"><?= t('unread') ?><span id="nav-counter"><?= isset($nb_unread_items) && $nb_unread_items > 0 ? $nb_unread_items : '' ?></span></a>
</li> </li>
<li class="<?= isset($menu) && $menu === 'bookmarks' ? 'active hide-mobile' : 'hide-mobile' ?>"> <li class="<?= isset($menu) && $menu === 'bookmarks' ? 'active hide-mobile' : 'hide-mobile' ?>">
<a href="?action=bookmarks"><?= t('bookmarks') ?></a> <a href="?action=bookmarks"><?= t('bookmarks') ?></a>

View File

@ -3,7 +3,7 @@
<?php else: ?> <?php else: ?>
<div class="page-header"> <div class="page-header">
<h2><span id="page-counter"><?= isset($nb_items) ? $nb_items : '' ?></span> <?= t('unread items') ?></h2> <h2><?= t('Unread') ?><span id="page-counter"><?= isset($nb_items) ? $nb_items : '' ?></span></h2>
<ul> <ul>
<li> <li>
<a href="?action=unread&amp;order=updated&amp;direction=<?= $direction == 'asc' ? 'desc' : 'asc' ?>"><?= tne('sort by date<span class="hide-mobile"> (%s)</span>', $direction == 'desc' ? t('older first') : t('most recent first')) ?></a> <a href="?action=unread&amp;order=updated&amp;direction=<?= $direction == 'asc' ? 'desc' : 'asc' ?>"><?= tne('sort by date<span class="hide-mobile"> (%s)</span>', $direction == 'desc' ? t('older first') : t('most recent first')) ?></a>

View File

@ -5078,6 +5078,20 @@ header > nav > ul li:nth-child(5) a:before {
header > nav > ul li:nth-child(6) a:before { header > nav > ul li:nth-child(6) a:before {
content: "\e017"; content: "\e017";
} }
span#nav-counter:not(:empty):before,
span#page-counter:not(:empty):before {
content: " (";
}
span#nav-counter:not(:empty):after,
span#page-counter:not(:empty):after {
content: ")";
}
span[id^="items-count-"]:before {
content: "(";
}
span[id^="items-count-"]:after {
content: ")";
}
.logo { .logo {
min-width: 100px; min-width: 100px;
min-height: 45px; min-height: 45px;

View File

@ -41,6 +41,32 @@ header > nav > ul li:nth-child(4) a:before {content:"\e012";} // Subscriptions
header > nav > ul li:nth-child(5) a:before {content:"\1f527";} // Préférences header > nav > ul li:nth-child(5) a:before {content:"\1f527";} // Préférences
header > nav > ul li:nth-child(6) a:before {content:"\e017";} // Logout header > nav > ul li:nth-child(6) a:before {content:"\e017";} // Logout
// Counter
span {
&#nav-counter,
&#page-counter {
&:not(:empty) {
&:before {
content: " @{icon-bracket-open}";
}
&:after {
content: "@{icon-bracket-close}";
}
}
}
&[id^="items-count-"] {
&:before {
content: "@{icon-bracket-open}";
}
&:after {
content: "@{icon-bracket-close}";
}
}
}
// Logo // Logo
.logo { .logo {
min-width: 100px; min-width: 100px;

View File

@ -60,7 +60,8 @@
@icon-font-path: "../fonts/"; @icon-font-path: "../fonts/";
@icon-font-name: "glyphicons-halflings-regular"; @icon-font-name: "glyphicons-halflings-regular";
@icon-bracket-open: "(";
@icon-bracket-close: ")";
// Components // Components
// ------------------------- // -------------------------

View File

@ -5078,6 +5078,20 @@ header > nav > ul li:nth-child(5) a:before {
header > nav > ul li:nth-child(6) a:before { header > nav > ul li:nth-child(6) a:before {
content: "\e017"; content: "\e017";
} }
span#nav-counter:not(:empty):before,
span#page-counter:not(:empty):before {
content: " (";
}
span#nav-counter:not(:empty):after,
span#page-counter:not(:empty):after {
content: ")";
}
span[id^="items-count-"]:before {
content: "(";
}
span[id^="items-count-"]:after {
content: ")";
}
.logo { .logo {
min-width: 100px; min-width: 100px;
min-height: 45px; min-height: 45px;

View File

@ -41,6 +41,32 @@ header > nav > ul li:nth-child(4) a:before {content:"\e012";} // Subscriptions
header > nav > ul li:nth-child(5) a:before {content:"\1f527";} // Préférences header > nav > ul li:nth-child(5) a:before {content:"\1f527";} // Préférences
header > nav > ul li:nth-child(6) a:before {content:"\e017";} // Logout header > nav > ul li:nth-child(6) a:before {content:"\e017";} // Logout
// Counter
span {
&#nav-counter,
&#page-counter {
&:not(:empty) {
&:before {
content: " @{icon-bracket-open}";
}
&:after {
content: "@{icon-bracket-close}";
}
}
}
&[id^="items-count-"] {
&:before {
content: "@{icon-bracket-open}";
}
&:after {
content: "@{icon-bracket-close}";
}
}
}
// Logo // Logo
.logo { .logo {
min-width: 100px; min-width: 100px;

View File

@ -60,7 +60,8 @@
@icon-font-path: "../fonts/"; @icon-font-path: "../fonts/";
@icon-font-name: "glyphicons-halflings-regular"; @icon-font-name: "glyphicons-halflings-regular";
@icon-bracket-open: "(";
@icon-bracket-close: ")";
// Components // Components
// ------------------------- // -------------------------

View File

@ -212,6 +212,15 @@ header {
header .logo span { header .logo span {
color: #b3e6cc; } color: #b3e6cc; }
span#nav-counter:not(:empty):before, span#page-counter:not(:empty):before {
content: " ("; }
span#nav-counter:not(:empty):after, span#page-counter:not(:empty):after {
content: ")"; }
span[id^="items-count-"]:before {
content: "("; }
span[id^="items-count-"]:after {
content: ")"; }
section.page { section.page {
right: 0; right: 0;
width: 81.69839%; width: 81.69839%;

View File

@ -31,3 +31,7 @@ $alert-sucess: #72c5a1;
// Logo // Logo
$logo-basecolor: #339966; $logo-basecolor: #339966;
// Icons
$icon-bracket-open: "(";
$icon-bracket-close: ")";

View File

@ -119,6 +119,34 @@ header {
} }
} }
} }
// Counter
span {
&#nav-counter,
&#page-counter {
&:not(:empty) {
&:before {
content: " " + $icon-bracket-open;
}
&:after {
content: $icon-bracket-close;
}
}
}
&[id^="items-count-"] {
&:before {
content: $icon-bracket-open;
}
&:after {
content: $icon-bracket-close;
}
}
}
// Main container // Main container
section { section {
&.page { &.page {