}
- 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\">";
\r
//$note_escaped = htmlspecialchars($line['note'], ENT_QUOTES);\r
\r
- $reply['content'] .= "<img src=\"images/art-pub-note.png\"\r
- style=\"cursor : pointer\" style=\"cursor : pointer\"\r
- onclick=\"editArticleNote($id)\"\r
- alt='PubNote' title='".__('Edit article note')."'>";\r
-\r
foreach ($button_plugins as $p) {\r
$reply['content'] .= $p->render($id, $line);\r
}\r
--- /dev/null
+<?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)));
+ }
+
+
+}
+?>
}
}
- 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));
// 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
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) {
<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;
}
--- /dev/null
+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);
+ }
+}
+
}
}
-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");