summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2015-06-17 22:04:32 +0300
committerAndrew Dolgov <[email protected]>2015-06-17 22:04:32 +0300
commita72cd54ce142425e6dd36bf7c6c0badb61b96a3f (patch)
treeaa1bb26ed763ac858b1eb42443611cff3ef27dff
parent308c55c0f1671525c804291bad7d0d853e0eb998 (diff)
bayes: properly reset score when going good -> ugly
article: add helper to refresh article score pic, properly set scorepic title
-rw-r--r--classes/article.php12
-rw-r--r--js/viewfeed.js29
-rw-r--r--plugins/af_sort_bayes/init.js3
-rw-r--r--plugins/af_sort_bayes/init.php4
4 files changed, 45 insertions, 3 deletions
diff --git a/classes/article.php b/classes/article.php
index 9aef107ec..d43c04f24 100644
--- a/classes/article.php
+++ b/classes/article.php
@@ -215,6 +215,18 @@ class Article extends Handler_Protected {
score = '$score' WHERE ref_id IN ($ids) AND owner_uid = " . $_SESSION["uid"]);
print json_encode(array("id" => $ids,
+ "score" => (int)$score,
+ "score_pic" => get_score_pic($score)));
+ }
+
+ function getScore() {
+ $id = $this->dbh->escape_string($_REQUEST['id']);
+
+ $result = $this->dbh->query("SELECT score FROM ttrss_user_entries WHERE ref_id = $id AND owner_uid = " . $_SESSION["uid"]);
+ $score = $this->dbh->fetch_result($result, 0, "score");
+
+ print json_encode(array("id" => $id,
+ "score" => (int)$score,
"score_pic" => get_score_pic($score)));
}
diff --git a/js/viewfeed.js b/js/viewfeed.js
index f236e1f7c..ea8150070 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -2293,6 +2293,34 @@ function setSelectionScore() {
}
}
+function updateScore(id) {
+ try {
+ var pic = $$("#RROW-" + id + " .hlScorePic")[0];
+
+ if (pic) {
+
+ var query = "op=article&method=getScore&id=" + param_escape(id);
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ console.log(transport.responseText);
+
+ var reply = JSON.parse(transport.responseText);
+
+ if (reply) {
+ pic.src = pic.src.replace(/score_.*?\.png/, reply["score_pic"]);
+ pic.setAttribute("score", reply["score"]);
+ pic.setAttribute("title", reply["score"]);
+ }
+ } });
+ }
+
+ } catch (e) {
+ exception_error("updateScore", e);
+ }
+}
+
function changeScore(id, pic) {
try {
var score = pic.getAttribute("score");
@@ -2312,6 +2340,7 @@ function changeScore(id, pic) {
if (reply) {
pic.src = pic.src.replace(/score_.*?\.png/, reply["score_pic"]);
pic.setAttribute("score", new_score);
+ pic.setAttribute("title", new_score);
}
} });
}
diff --git a/plugins/af_sort_bayes/init.js b/plugins/af_sort_bayes/init.js
index 8043ee277..6ea8f6c11 100644
--- a/plugins/af_sort_bayes/init.js
+++ b/plugins/af_sort_bayes/init.js
@@ -2,12 +2,13 @@ function bayesTrain(id, train_up) {
try {
var query = "backend.php?op=pluginhandler&plugin=af_sort_bayes&method=trainArticle&article_id=" + param_escape(id) +
- "&train_up=" + train_up;
+ "&train_up=" + param_escape(train_up);
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
notify(transport.responseText);
+ updateScore(id);
} });
} catch (e) {
diff --git a/plugins/af_sort_bayes/init.php b/plugins/af_sort_bayes/init.php
index 7e34ceac4..51a6f38bb 100644
--- a/plugins/af_sort_bayes/init.php
+++ b/plugins/af_sort_bayes/init.php
@@ -79,14 +79,14 @@ class Af_Sort_Bayes extends Plugin {
switch ($current_category) {
case "UGLY":
$dst_category = "BAD";
- $score = -$this->score_modifier;
+ $score = $this->score_modifier;
break;
case "BAD":
$dst_category = "BAD";
break;
case "GOOD":
$dst_category = "UGLY";
- $score = -$this->score_modifier;
+ $score = 0;
break;
}
}