summaryrefslogtreecommitdiff
path: root/js/Article.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2018-12-11 10:00:54 +0300
committerAndrew Dolgov <[email protected]>2018-12-11 10:00:54 +0300
commit25ca144bb775f29dfc152a87c975f1fcdb367174 (patch)
tree67e194550840c9d815d34f74194a3bfd1177af6b /js/Article.js
parentfd6f3e7f073beb648ee25e08263ea9b1e6149947 (diff)
score: get correct classes for rows/score icons on the client
Diffstat (limited to 'js/Article.js')
-rw-r--r--js/Article.js61
1 files changed, 40 insertions, 21 deletions
diff --git a/js/Article.js b/js/Article.js
index 3f595ff29..cfba3804b 100644
--- a/js/Article.js
+++ b/js/Article.js
@@ -2,6 +2,30 @@
/* global __, ngettext */
define(["dojo/_base/declare"], function (declare) {
Article = {
+ getScoreClass: function (score) {
+ if (score > 500) {
+ return "score-high";
+ } else if (score > 0) {
+ return "score-half-high";
+ } else if (score < -100) {
+ return "score-low";
+ } else if (score < 0) {
+ return "score-half-low";
+ } else {
+ return "score-neutral";
+ }
+ },
+ getScorePic: function (score) {
+ if (score > 500) {
+ return "trending_up";
+ } else if (score > 0) {
+ return "trending_up";
+ } else if (score < 0) {
+ return "trending_down";
+ } else {
+ return "trending_neutral";
+ }
+ },
selectionSetScore: function () {
const ids = Headlines.getSelected();
@@ -21,23 +45,20 @@ 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"]);
+ ["score-low", "score-high", "score-half-low", "score-half-high", "score-neutral"]
+ .each(function(scl) {
+ row.removeClassName(scl);
+ });
+ row.addClassName(Article.getScoreClass(reply['score']));
if (row) {
+ row.setAttribute("data-score", reply["score"]);
+
const pic = row.select(".icon-score")[0];
- if (pic) {
- pic.innerHTML = reply["score_pic"];
- pic.setAttribute("data-score", reply["score"]);
- pic.setAttribute("title", reply["score"]);
- }
+ pic.innerHTML = reply["score_pic"];
+ pic.setAttribute("title", reply["score"]);
}
});
}
@@ -50,7 +71,7 @@ define(["dojo/_base/declare"], function (declare) {
},
setScore: function (id, pic) {
const row = pic.up("div[id*=RROW]");
- const score = pic.getAttribute("data-score");
+ const score = row.getAttribute("data-score");
const new_score = prompt(__("Please enter new score for this article:"), score);
@@ -60,16 +81,14 @@ define(["dojo/_base/declare"], function (declare) {
xhrJson("backend.php", query, (reply) => {
if (reply) {
pic.innerHTML = reply["score_pic"];
- pic.setAttribute("data-score", new_score);
- pic.setAttribute("title", new_score);
+ row.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");
+ ["score-low", "score-high", "score-half-low", "score-half-high", "score-neutral"]
+ .each(function(scl) {
+ row.removeClassName(scl);
+ });
- row.addClassName(reply["score_class"]);
+ row.addClassName(Article.getScoreClass(reply['score']));
}
});
}