summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/AppBase.js25
-rw-r--r--js/Article.js34
-rw-r--r--js/CommonFilters.js18
-rwxr-xr-xjs/FeedTree.js16
-rw-r--r--js/Feeds.js4
-rwxr-xr-xjs/Headlines.js2
-rw-r--r--js/PrefFilterTree.js18
-rw-r--r--js/PrefLabelTree.js26
-rwxr-xr-xjs/common.js38
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 = "&alpha;";
- 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 = '&alpha;';
- 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");