diff options
author | Andrew Dolgov <[email protected]> | 2015-06-17 21:40:44 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2015-06-17 21:40:44 +0300 |
commit | 308c55c0f1671525c804291bad7d0d853e0eb998 (patch) | |
tree | 6fb4d5f246e672da1ec746b6a9e62f065c5ebcbf | |
parent | 47cd0bd5511e0447a8f5e2bf857411fe02ed72a8 (diff) |
bayes: better prefs ui/stats
-rw-r--r-- | plugins/af_sort_bayes/init.js | 17 | ||||
-rw-r--r-- | plugins/af_sort_bayes/init.php | 35 |
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>"; } |