diff options
Diffstat (limited to 'js')
| -rw-r--r-- | js/AppBase.js | 25 | ||||
| -rw-r--r-- | js/Article.js | 34 | ||||
| -rw-r--r-- | js/CommonFilters.js | 18 | ||||
| -rwxr-xr-x | js/FeedTree.js | 16 | ||||
| -rw-r--r-- | js/Feeds.js | 4 | ||||
| -rwxr-xr-x | js/Headlines.js | 2 | ||||
| -rw-r--r-- | js/PrefFilterTree.js | 18 | ||||
| -rw-r--r-- | js/PrefLabelTree.js | 26 | ||||
| -rwxr-xr-x | js/common.js | 38 |
9 files changed, 93 insertions, 88 deletions
diff --git a/js/AppBase.js b/js/AppBase.js index 9ab2f507e..9c05179c1 100644 --- a/js/AppBase.js +++ b/js/AppBase.js @@ -184,10 +184,7 @@ define(["dojo/_base/declare"], function (declare) { }, handleRpcJson: function(transport) { - const netalert_dijit = dijit.byId("net-alert"); - let netalert = false; - - if (netalert_dijit) netalert = netalert_dijit.domNode; + const netalert = $$("#toolbar .net-alert")[0]; try { const reply = JSON.parse(transport.responseText); @@ -239,17 +236,15 @@ define(["dojo/_base/declare"], function (declare) { return reply; } else { - if (netalert) - netalert.show(); - else - Notify.error("Communication problem with server."); + if (netalert) netalert.show(); + + Notify.error("Communication problem with server."); } } catch (e) { - if (netalert) - netalert.show(); - else - Notify.error("Communication problem with server."); + if (netalert) netalert.show(); + + Notify.error("Communication problem with server."); console.error(e); } @@ -269,12 +264,10 @@ define(["dojo/_base/declare"], function (declare) { } if (k == "update_result") { - const updatesIcon = dijit.byId("updatesIcon").domNode; - if (v) { - Element.show(updatesIcon); + Element.show("updates-available"); } else { - Element.hide(updatesIcon); + Element.hide("updates-available"); } } diff --git a/js/Article.js b/js/Article.js index 507560ee4..46769223e 100644 --- a/js/Article.js +++ b/js/Article.js @@ -22,13 +22,22 @@ define(["dojo/_base/declare"], function (declare) { reply.id.each((id) => { const row = $("RROW-" + id); + row.removeClassName("score-low"); + row.removeClassName("score-high"); + row.removeClassName("score-half-low"); + row.removeClassName("score-half-high"); + row.removeClassName("score-neutral"); + + row.addClassName(reply["score_class"]); + + if (row) { - const pic = row.getElementsByClassName("score-pic")[0]; + const pic = row.select(".icon-score")[0]; if (pic) { - pic.src = pic.src.replace(/score_.*?\.png/, - reply["score_pic"]); - pic.setAttribute("score", reply["score"]); + pic.innerHTML = reply["score_pic"]; + pic.setAttribute("data-score", reply["score"]); + pic.setAttribute("title", reply["score"]); } } }); @@ -41,18 +50,27 @@ define(["dojo/_base/declare"], function (declare) { } }, setScore: function (id, pic) { - const score = pic.getAttribute("score"); + const row = pic.up("div[id*=RROW]"); + const score = pic.getAttribute("data-score"); const new_score = prompt(__("Please enter new score for this article:"), score); - if (new_score != undefined) { + if (row && new_score != undefined) { const query = {op: "article", method: "setScore", id: id, score: new_score}; xhrJson("backend.php", query, (reply) => { if (reply) { - pic.src = pic.src.replace(/score_.*?\.png/, reply["score_pic"]); - pic.setAttribute("score", new_score); + pic.innerHTML = reply["score_pic"]; + pic.setAttribute("data-score", new_score); pic.setAttribute("title", new_score); + + row.removeClassName("score-low"); + row.removeClassName("score-high"); + row.removeClassName("score-half-low"); + row.removeClassName("score-half-high"); + row.removeClassName("score-neutral"); + + row.addClassName(reply["score_class"]); } }); } diff --git a/js/CommonFilters.js b/js/CommonFilters.js index 97a676c98..fb2061ea3 100644 --- a/js/CommonFilters.js +++ b/js/CommonFilters.js @@ -282,24 +282,10 @@ define(["dojo/_base/declare"], function (declare) { Filters.editFilterTest(query); }, selectRules: function (select) { - $$("#filterDlg_Matches input[type=checkbox]").each(function (e) { - e.checked = select; - if (select) - e.parentNode.addClassName("Selected"); - else - e.parentNode.removeClassName("Selected"); - }); + Lists.select("filterDlg_Matches", select); }, selectActions: function (select) { - $$("#filterDlg_Actions input[type=checkbox]").each(function (e) { - e.checked = select; - - if (select) - e.parentNode.addClassName("Selected"); - else - e.parentNode.removeClassName("Selected"); - - }); + Lists.select("filterDlg_Actions", select); }, editRule: function (e) { const li = e.parentNode; diff --git a/js/FeedTree.js b/js/FeedTree.js index 812b9dd08..9344d70eb 100755 --- a/js/FeedTree.js +++ b/js/FeedTree.js @@ -34,17 +34,17 @@ define(["dojo/_base/declare", "dojo/dom-construct", "dijit/Tree", "dijit/Menu"], const bare_id = parseInt(id.substr(id.indexOf(':')+1)); if (bare_id < _label_base_index) { - const span = dojo.doc.createElement('span'); - const fg_color = args.item.fg_color[0]; + const label = dojo.doc.createElement('i'); + //const fg_color = args.item.fg_color[0]; const bg_color = args.item.bg_color[0]; - span.innerHTML = "α"; - span.className = 'labelColorIndicator'; - span.setStyle({ - color: fg_color, - backgroundColor: bg_color}); + label.className = "material-icons icon icon-label"; + label.innerHTML = "label"; + label.setStyle({ + color: bg_color, + }); - domConstruct.place(span, tnode.iconNode, 'only'); + domConstruct.place(label, tnode.iconNode, 'only'); } if (id.match("FEED:")) { diff --git a/js/Feeds.js b/js/Feeds.js index 70b5176f4..5f7765119 100644 --- a/js/Feeds.js +++ b/js/Feeds.js @@ -213,6 +213,8 @@ define(["dojo/_base/declare"], function (declare) { App.setLoadingProgress(50); document.onkeydown = (event) => { return App.hotkeyHandler(event) }; + window.onresize = () => { Headlines.scrollHandler(); } + window.setInterval(() => { Headlines.catchupBatched() }, 10 * 1000); if (!this.getActive()) { @@ -627,7 +629,7 @@ define(["dojo/_base/declare"], function (declare) { updateRandom: function() { console.log("in update_random_feed"); - xhrPost("backend.php", {op: "rpc", method: "updateRandom"}, (transport) => { + xhrPost("backend.php", {op: "rpc", method: "updaterandomfeed"}, (transport) => { App.handleRpcJson(transport, true); }); }, diff --git a/js/Headlines.js b/js/Headlines.js index e0caddc2a..891b6f409 100755 --- a/js/Headlines.js +++ b/js/Headlines.js @@ -438,8 +438,6 @@ define(["dojo/_base/declare"], function (declare) { cmode: cmode, ids: ids.toString() }; - Notify.progress("Loading, please wait..."); - xhrPost("backend.php", query, (transport) => { App.handleRpcJson(transport); if (callback) callback(transport); diff --git a/js/PrefFilterTree.js b/js/PrefFilterTree.js index f4fc8ecf2..4d4ee52ca 100644 --- a/js/PrefFilterTree.js +++ b/js/PrefFilterTree.js @@ -153,24 +153,10 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio Filters.editFilterTest(query); }, selectRules: function (select) { - $$("#filterDlg_Matches input[type=checkbox]").each(function (e) { - e.checked = select; - if (select) - e.parentNode.addClassName("Selected"); - else - e.parentNode.removeClassName("Selected"); - }); + Lists.select("filterDlg_Matches", select); }, selectActions: function (select) { - $$("#filterDlg_Actions input[type=checkbox]").each(function (e) { - e.checked = select; - - if (select) - e.parentNode.addClassName("Selected"); - else - e.parentNode.removeClassName("Selected"); - - }); + Lists.select("filterDlg_Actions", select); }, editRule: function (e) { const li = e.parentNode; diff --git a/js/PrefLabelTree.js b/js/PrefLabelTree.js index 45c96af16..8de08d30b 100644 --- a/js/PrefLabelTree.js +++ b/js/PrefLabelTree.js @@ -18,18 +18,21 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f const bare_id = this.model.store.getValue(args.item, 'bare_id'); if (type == 'label') { - const span = dojo.doc.createElement('span'); - span.innerHTML = 'α'; - span.className = 'labelColorIndicator'; - span.id = 'LICID-' + bare_id; + const label = dojo.doc.createElement('i'); + //const fg_color = args.item.fg_color[0]; + const bg_color = String(args.item.bg_color); - span.setStyle({ - color: fg_color, - backgroundColor: bg_color}); + label.className = "material-icons icon-label"; + label.id = 'icon-label-' + String(args.item.bare_id); + label.innerHTML = "label"; + label.setStyle({ + color: bg_color, + }); - tnode._labelIconNode = span; + domConstruct.place(label, tnode.iconNode, 'before'); - domConstruct.place(tnode._labelIconNode, tnode.labelNode, 'before'); + //tnode._labelIconNode = span; + //domConstruct.place(tnode._labelIconNode, tnode.labelNode, 'before'); } return tnode; @@ -80,11 +83,10 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f color = bg; } - const e = $("LICID-" + id); + const e = $("icon-label-" + id); if (e) { - if (fg) e.style.color = fg; - if (bg) e.style.backgroundColor = bg; + if (fg) e.style.color = bg; } const query = { diff --git a/js/common.js b/js/common.js index 427e3034c..5b2812be6 100755 --- a/js/common.js +++ b/js/common.js @@ -56,7 +56,23 @@ const Lists = { if (row) checked ? row.addClassName("Selected") : row.removeClassName("Selected"); - } + }, + select: function(elemId, selected) { + $(elemId).select("li").each((row) => { + const checkNode = row.select(".dijitCheckBox,input[type=checkbox]")[0]; + if (checkNode) { + const widget = dijit.getEnclosingWidget(checkNode); + + if (widget) { + widget.attr("checked", selected); + } else { + checkNode.checked = selected; + } + + this.onRowChecked(widget); + } + }); + }, }; // noinspection JSUnusedGlobalSymbols @@ -154,8 +170,7 @@ const Notify = { } let msgfmt = "<span class=\"msg\">%s</span>".replace("%s", __(msg)); - let icon = false; - + let icon = ""; notify.className = "notify"; @@ -164,23 +179,28 @@ const Notify = { switch (kind) { case this.KIND_INFO: notify.addClassName("notify_info") - icon = App.getInitParam("icon_information"); + icon = "notifications"; break; case this.KIND_ERROR: notify.addClassName("notify_error"); - icon = App.getInitParam("icon_alert"); + icon = "error"; break; case this.KIND_PROGRESS: notify.addClassName("notify_progress"); icon = App.getInitParam("icon_indicator_white") break; + default: + icon = "notifications"; } - if (icon) msgfmt = "<span><img src=\"%s\"></span>".replace("%s", icon) + msgfmt; + if (icon) + if (icon.indexOf("data:image") != -1) + msgfmt = "<img src=\"%s\">".replace("%s", icon) + msgfmt; + else + msgfmt = "<i class='material-icons icon-notify'>%s</i>".replace("%s", icon) + msgfmt; - msgfmt += (" <span><img src=\"%s\" class='close' title=\"" + - __("Click to close") + "\" onclick=\"Notify.close()\"></span>") - .replace("%s", App.getInitParam("icon_cross")); + msgfmt += "<i class='material-icons icon-close' title=\"" + + __("Click to close") + "\" onclick=\"Notify.close()\">close</i>"; notify.innerHTML = msgfmt; notify.addClassName("visible"); |