From a72cd54ce142425e6dd36bf7c6c0badb61b96a3f Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 17 Jun 2015 22:04:32 +0300 Subject: [PATCH] bayes: properly reset score when going good -> ugly article: add helper to refresh article score pic, properly set scorepic title --- classes/article.php | 12 ++++++++++++ js/viewfeed.js | 29 +++++++++++++++++++++++++++++ plugins/af_sort_bayes/init.js | 3 ++- plugins/af_sort_bayes/init.php | 4 ++-- 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; } }