summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2011-12-21 10:58:06 +0400
committerAndrew Dolgov <[email protected]>2011-12-21 10:58:06 +0400
commit55ad22fa5574f65fdd70cea5e3b91398ee18b62a (patch)
tree832a3703c4c608a0bd6d5ae69cccaa21b16be32b
parentd4e35925e0a14a4c746404d6d05cfe61109d7443 (diff)
add note plugin
-rw-r--r--classes/dlg.php26
-rw-r--r--classes/feeds.php5
-rw-r--r--classes/note_button.php55
-rw-r--r--classes/rpc.php13
-rw-r--r--config.php-dist4
-rw-r--r--include/functions.php7
-rw-r--r--index.php2
-rw-r--r--js/note_button.js51
-rw-r--r--js/viewfeed.js50
9 files changed, 109 insertions, 104 deletions
diff --git a/classes/dlg.php b/classes/dlg.php
index 8b088bc4e..b0cfe4451 100644
--- a/classes/dlg.php
+++ b/classes/dlg.php
@@ -883,32 +883,6 @@ class Dlg extends Protected_Handler {
}
- function editArticleNote() {
- $result = db_query($this->link, "SELECT note FROM ttrss_user_entries WHERE
- ref_id = '$this->param' AND owner_uid = " . $_SESSION['uid']);
-
- $note = db_fetch_result($result, 0, "note");
-
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$this->param\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
- print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"setNote\">";
-
- print "<table width='100%'><tr><td>";
- print "<textarea dojoType=\"dijit.form.SimpleTextarea\"
- style='font-size : 12px; width : 100%; height: 100px;'
- placeHolder='body#ttrssMain { font-size : 14px; };'
- name='note'>$note</textarea>";
- print "</td></tr></table>";
-
- print "<div class='dlgButtons'>";
- print "<button dojoType=\"dijit.form.Button\"
- onclick=\"dijit.byId('editNoteDlg').execute()\">".__('Save')."</button> ";
- print "<button dojoType=\"dijit.form.Button\"
- onclick=\"dijit.byId('editNoteDlg').hide()\">".__('Cancel')."</button>";
- print "</div>";
-
- }
-
function addInstance() {
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-instances\">";
print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"add\">";
diff --git a/classes/feeds.php b/classes/feeds.php
index 5d55f2f02..1b2eb70ee 100644
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -706,11 +706,6 @@ class Feeds extends Protected_Handler {
//$note_escaped = htmlspecialchars($line['note'], ENT_QUOTES);
- $reply['content'] .= "<img src=\"images/art-pub-note.png\"
- style=\"cursor : pointer\" style=\"cursor : pointer\"
- onclick=\"editArticleNote($id)\"
- alt='PubNote' title='".__('Edit article note')."'>";
-
foreach ($button_plugins as $p) {
$reply['content'] .= $p->render($id, $line);
}
diff --git a/classes/note_button.php b/classes/note_button.php
new file mode 100644
index 000000000..794f17734
--- /dev/null
+++ b/classes/note_button.php
@@ -0,0 +1,55 @@
+<?php
+class Note_Button extends Plugin_Button {
+ function render($article_id) {
+ return "<img src=\"".theme_image($this->link, "images/art-pub-note.png")."\"
+ style=\"cursor : pointer\" style=\"cursor : pointer\"
+ onclick=\"editArticleNote($article_id)\"
+ class='tagsPic' title='".__('Edit article note')."'>";
+ }
+
+ function edit() {
+ $param = db_escape_string($_REQUEST['param']);
+
+ $result = db_query($this->link, "SELECT note FROM ttrss_user_entries WHERE
+ ref_id = '$param' AND owner_uid = " . $_SESSION['uid']);
+
+ $note = db_fetch_result($result, 0, "note");
+
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$param\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"buttonPlugin\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"plugin\" value=\"note\">";
+ print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"plugin_method\" value=\"setNote\">";
+
+ print "<table width='100%'><tr><td>";
+ print "<textarea dojoType=\"dijit.form.SimpleTextarea\"
+ style='font-size : 12px; width : 100%; height: 100px;'
+ placeHolder='body#ttrssMain { font-size : 14px; };'
+ name='note'>$note</textarea>";
+ print "</td></tr></table>";
+
+ print "<div class='dlgButtons'>";
+ print "<button dojoType=\"dijit.form.Button\"
+ onclick=\"dijit.byId('editNoteDlg').execute()\">".__('Save')."</button> ";
+ print "<button dojoType=\"dijit.form.Button\"
+ onclick=\"dijit.byId('editNoteDlg').hide()\">".__('Cancel')."</button>";
+ print "</div>";
+
+ }
+
+ function setNote() {
+ $id = db_escape_string($_REQUEST["id"]);
+ $note = trim(strip_tags(db_escape_string($_REQUEST["note"])));
+
+ db_query($this->link, "UPDATE ttrss_user_entries SET note = '$note'
+ WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
+
+ $formatted_note = format_article_note($id, $note);
+
+ print json_encode(array("note" => $formatted_note,
+ "raw_length" => mb_strlen($note)));
+ }
+
+
+}
+?>
diff --git a/classes/rpc.php b/classes/rpc.php
index 55ea05da9..8145b0407 100644
--- a/classes/rpc.php
+++ b/classes/rpc.php
@@ -693,19 +693,6 @@ class RPC extends Protected_Handler {
}
}
- function setNote() {
- $id = db_escape_string($_REQUEST["id"]);
- $note = trim(strip_tags(db_escape_string($_REQUEST["note"])));
-
- db_query($this->link, "UPDATE ttrss_user_entries SET note = '$note'
- WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]);
-
- $formatted_note = format_article_note($id, $note);
-
- print json_encode(array("note" => $formatted_note,
- "raw_length" => mb_strlen($note)));
- }
-
function genHash() {
$hash = sha1(uniqid(rand(), true));
diff --git a/config.php-dist b/config.php-dist
index fe691801e..6aaf32476 100644
--- a/config.php-dist
+++ b/config.php-dist
@@ -200,10 +200,10 @@
// Displays an URL for users to provide feedback or comments regarding
// this instance of tt-rss. Can lead to a forum, contact email, etc.
- define('ARTICLE_BUTTON_PLUGINS', 'tweet,share,mail');
+ define('ARTICLE_BUTTON_PLUGINS', 'note,tweet,share,mail');
// Comma-separated list of additional article action button plugins
// to enable, like tweet button, etc.
- // The following plugins are available: tweet, share, mail, readitlater
+ // The following plugins are available: note, tweet, share, mail, readitlater
define('CONFIG_VERSION', 25);
// Expected config version. Please update this option in config.php
diff --git a/include/functions.php b/include/functions.php
index b00817563..90acc103a 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -3277,13 +3277,6 @@
onclick=\"postOpenInNewTab(event, $id)\"
alt='Zoom' title='".__('Open article in new tab')."'>";
- //$note_escaped = htmlspecialchars($line['note'], ENT_QUOTES);
-
- $rv['content'] .= "<img src=\"".theme_image($link, 'images/art-pub-note.png')."\"
- class='tagsPic' style=\"cursor : pointer\"
- onclick=\"editArticleNote($id)\"
- alt='PubNote' title='".__('Edit article note')."'>";
-
$button_plugins = explode(",", ARTICLE_BUTTON_PLUGINS);
foreach ($button_plugins as $p) {
diff --git a/index.php b/index.php
index 2b5548374..dc217d900 100644
--- a/index.php
+++ b/index.php
@@ -42,7 +42,7 @@
<script type="text/javascript">
<?php foreach (explode(",", ARTICLE_BUTTON_PLUGINS) as $p) {
- $jsf = "js/${p}_button.js";
+ $jsf = "js/".trim($p)."_button.js";
if (file_exists($jsf)) {
include $jsf;
}
diff --git a/js/note_button.js b/js/note_button.js
new file mode 100644
index 000000000..c9347ab19
--- /dev/null
+++ b/js/note_button.js
@@ -0,0 +1,51 @@
+function editArticleNote(id) {
+ try {
+
+ var query = "backend.php?op=rpc&method=buttonPlugin&plugin=note&plugin_method=edit&param=" + param_escape(id);
+
+ if (dijit.byId("editNoteDlg"))
+ dijit.byId("editNoteDlg").destroyRecursive();
+
+ dialog = new dijit.Dialog({
+ id: "editNoteDlg",
+ title: __("Edit article note"),
+ style: "width: 600px",
+ execute: function() {
+ if (this.validate()) {
+ var query = dojo.objectToQuery(this.attr('value'));
+
+ notify_progress("Saving article note...", true);
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ notify('');
+ dialog.hide();
+
+ var reply = JSON.parse(transport.responseText);
+
+ cache_delete("article:" + id);
+
+ var elem = $("POSTNOTE-" + id);
+
+ if (elem) {
+ Element.hide(elem);
+ elem.innerHTML = reply.note;
+
+ if (reply.raw_length != 0)
+ new Effect.Appear(elem);
+ }
+
+ }});
+ }
+ },
+ href: query,
+ });
+
+ dialog.show();
+
+ } catch (e) {
+ exception_error("editArticleNote", e);
+ }
+}
+
diff --git a/js/viewfeed.js b/js/viewfeed.js
index ab0d5e55f..880abc6bd 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -1924,56 +1924,6 @@ function initHeadlinesMenu() {
}
}
-function editArticleNote(id) {
- try {
-
- var query = "backend.php?op=dlg&method=editArticleNote&param=" + param_escape(id);
-
- if (dijit.byId("editNoteDlg"))
- dijit.byId("editNoteDlg").destroyRecursive();
-
- dialog = new dijit.Dialog({
- id: "editNoteDlg",
- title: __("Edit article note"),
- style: "width: 600px",
- execute: function() {
- if (this.validate()) {
- var query = dojo.objectToQuery(this.attr('value'));
-
- notify_progress("Saving article note...", true);
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- notify('');
- dialog.hide();
-
- var reply = JSON.parse(transport.responseText);
-
- cache_delete("article:" + id);
-
- var elem = $("POSTNOTE-" + id);
-
- if (elem) {
- Element.hide(elem);
- elem.innerHTML = reply.note;
-
- if (reply.raw_length != 0)
- new Effect.Appear(elem);
- }
-
- }});
- }
- },
- href: query,
- });
-
- dialog.show();
-
- } catch (e) {
- exception_error("editArticleNote", e);
- }
-}
function player(elem) {
var aid = elem.getAttribute("audio-id");