diff options
-rw-r--r-- | classes/dlg.php | 26 | ||||
-rw-r--r-- | classes/feeds.php | 5 | ||||
-rw-r--r-- | classes/note_button.php | 55 | ||||
-rw-r--r-- | classes/rpc.php | 13 | ||||
-rw-r--r-- | config.php-dist | 4 | ||||
-rw-r--r-- | include/functions.php | 7 | ||||
-rw-r--r-- | index.php | 2 | ||||
-rw-r--r-- | js/note_button.js | 51 | ||||
-rw-r--r-- | js/viewfeed.js | 50 |
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) { @@ -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¶m=" + 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¶m=" + 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"); |