summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2015-06-17 21:40:44 +0300
committerAndrew Dolgov <[email protected]>2015-06-17 21:40:44 +0300
commit308c55c0f1671525c804291bad7d0d853e0eb998 (patch)
tree6fb4d5f246e672da1ec746b6a9e62f065c5ebcbf
parent47cd0bd5511e0447a8f5e2bf857411fe02ed72a8 (diff)
bayes: better prefs ui/stats
-rw-r--r--plugins/af_sort_bayes/init.js17
-rw-r--r--plugins/af_sort_bayes/init.php35
2 files changed, 46 insertions, 6 deletions
diff --git a/plugins/af_sort_bayes/init.js b/plugins/af_sort_bayes/init.js
index e6523bc4f..8043ee277 100644
--- a/plugins/af_sort_bayes/init.js
+++ b/plugins/af_sort_bayes/init.js
@@ -26,6 +26,7 @@ function bayesClearDatabase() {
parameters: query,
onComplete: function (transport) {
notify(transport.responseText);
+ bayesUpdateUI();
}
});
}
@@ -35,3 +36,19 @@ function bayesClearDatabase() {
}
}
+function bayesUpdateUI() {
+ try {
+
+ var query = "backend.php?op=pluginhandler&plugin=af_sort_bayes&method=renderPrefsUI";
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function (transport) {
+ dijit.byId("af_sort_bayes_prefs").attr("content", transport.responseText);
+ }
+ });
+
+ } catch (e) {
+ exception_error("showTrgmRelated", e);
+ }
+}
diff --git a/plugins/af_sort_bayes/init.php b/plugins/af_sort_bayes/init.php
index f0a910092..7e34ceac4 100644
--- a/plugins/af_sort_bayes/init.php
+++ b/plugins/af_sort_bayes/init.php
@@ -201,18 +201,16 @@ class Af_Sort_Bayes extends Plugin {
$this->dbh->query("COMMIT");
}
- function hook_prefs_tab($args) {
- if ($args != "prefPrefs") return;
-
- print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Bayesian classifier (af_sort_bayes)')."\">";
-
+ function renderPrefsUI() {
$result = $this->dbh->query("SELECT category, probability, word_count,
(SELECT COUNT(id) FROM {$this->sql_prefix}_references WHERE
category_id = {$this->sql_prefix}_categories.id) as doc_count
FROM {$this->sql_prefix}_categories WHERE owner_uid = " . $_SESSION["uid"]);
+ print "<h3>" . __("Statistics") . "</h3>";
+
print "<table>";
- print "<tr><th>Category</th><th>Probability</th><th>Word count</th><th>Article count</th></tr>";
+ print "<tr><th>Category</th><th>Probability</th><th>Words</th><th>Articles</th></tr>";
while ($line = $this->dbh->fetch_assoc($result)) {
print "<tr>";
@@ -226,10 +224,35 @@ class Af_Sort_Bayes extends Plugin {
print "</table>";
+ print "<h3>" . __("Last matched articles") . "</h3>";
+
+ $result = $this->dbh->query("SELECT te.title, category, tf.title AS feed_title
+ FROM ttrss_entries AS te, ttrss_user_entries AS tu, ttrss_feeds AS tf, {$this->sql_prefix}_references AS tr, {$this->sql_prefix}_categories AS tc
+ WHERE tf.id = tu.feed_id AND tu.ref_id = te.id AND tc.id = tr.category_id AND tr.document_id = te.guid ORDER BY te.id DESC LIMIT 20");
+
+ print "<ul class=\"browseFeedList\" style=\"border-width : 1px\">";
+
+ while ($line = $this->dbh->fetch_assoc($result)) {
+ print "<li>" . $line["category"] . ": " . $line["title"] . " (" . $line["feed_title"] . ")</li>";
+ }
+
+ print "</ul>";
+
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"return bayesUpdateUI()\">".
+ __('Refresh')."</button> ";
+
print "<button dojoType=\"dijit.form.Button\" onclick=\"return bayesClearDatabase()\">".
__('Clear database')."</button> ";
//
+ }
+
+ function hook_prefs_tab($args) {
+ if ($args != "prefPrefs") return;
+
+ print "<div id=\"af_sort_bayes_prefs\" dojoType=\"dijit.layout.AccordionPane\" title=\"".__('Bayesian classifier (af_sort_bayes)')."\">";
+
+ $this->renderPrefsUI();
print "</div>";
}