remove some plugin JS code out of global context

This commit is contained in:
Andrew Dolgov 2018-12-03 10:51:14 +03:00
parent 84affc7b1d
commit 78cc470193
10 changed files with 57 additions and 64 deletions

View File

@ -907,8 +907,8 @@ class Article extends Handler_Protected {
static function format_article_note($id, $note, $allow_edit = true) {
$str = "<div class='articleNote' onclick=\"editArticleNote($id)\">
<div class='noteEdit' onclick=\"editArticleNote($id)\">".
$str = "<div class='articleNote' onclick=\"Plugins.Note.edit($id)\">
<div class='noteEdit' onclick=\"Plugins.Note.edit($id)\">".
($allow_edit ? __('(edit note)') : "")."</div>$note</div>";
return $str;

View File

@ -7,6 +7,8 @@ let Filters;
let Users;
let Prefs;
const Plugins = {};
require(["dojo/_base/kernel",
"dojo/_base/declare",
"dojo/ready",

View File

@ -10,6 +10,8 @@ let Article;
let ArticleCache;
let PluginHost;
const Plugins = {};
require(["dojo/_base/kernel",
"dojo/_base/declare",
"dojo/ready",

View File

@ -1,6 +1,5 @@
function showTrgmRelated(id) {
try {
Plugins.Psql_Trgm = {
showRelated: function (id) {
const query = "backend.php?op=pluginhandler&plugin=af_psql_trgm&method=showrelated&param=" + encodeURIComponent(id);
if (dijit.byId("trgmRelatedDlg"))
@ -10,16 +9,13 @@ function showTrgmRelated(id) {
id: "trgmRelatedDlg",
title: __("Related articles"),
style: "width: 600px",
execute: function() {
execute: function () {
},
href: query,
});
dialog.show();
} catch (e) {
exception_error("showTrgmRelated", e);
}
}
};

View File

@ -115,7 +115,7 @@ class Af_Psql_Trgm extends Plugin {
function hook_article_button($line) {
return "<img src=\"plugins/af_psql_trgm/button.png\"
style=\"cursor : pointer\" style=\"cursor : pointer\"
onclick=\"showTrgmRelated(".$line["id"].")\"
onclick=\"Plugins.Psql_Trgm.showRelated(".$line["id"].")\"
class='tagsPic' title='".__('Show related articles')."'>";
}

View File

@ -24,7 +24,7 @@ class Note extends Plugin {
function hook_article_button($line) {
return "<img src=\"plugins/note/note.png\"
style=\"cursor : pointer\" style=\"cursor : pointer\"
onclick=\"editArticleNote(".$line["id"].")\"
onclick=\"Plugins.Note.edit(".$line["id"].")\"
class='tagsPic' title='".__('Edit article note')."'>";
}

View File

@ -1,46 +1,41 @@
function editArticleNote(id) {
try {
var query = "backend.php?op=pluginhandler&plugin=note&method=edit&param=" + encodeURIComponent(id);
Plugins.Note = {
edit: function(id) {
const query = "backend.php?op=pluginhandler&plugin=note&method=edit&param=" + encodeURIComponent(id);
if (dijit.byId("editNoteDlg"))
dijit.byId("editNoteDlg").destroyRecursive();
dialog = new dijit.Dialog({
const dialog = new dijit.Dialog({
id: "editNoteDlg",
title: __("Edit article note"),
style: "width: 600px",
execute: function() {
execute: function () {
if (this.validate()) {
Notify.progress("Saving article note...", true);
xhrJson("backend.php", this.attr('value'), (reply) => {
Notify.close();
dialog.hide();
Notify.close();
dialog.hide();
if (reply) {
ArticleCache.del(id);
if (reply) {
ArticleCache.del(id);
var elem = $("POSTNOTE-" + id);
var elem = $("POSTNOTE-" + id);
if (elem) {
Element.hide(elem);
elem.innerHTML = reply.note;
if (elem) {
Element.hide(elem);
elem.innerHTML = reply.note;
if (reply.raw_length != 0)
new Effect.Appear(elem);
}
}
});
if (reply.raw_length != 0)
new Effect.Appear(elem);
}
}
});
}
},
href: query,
});
dialog.show();
} catch (e) {
exception_error("editArticleNote", e);
}
}
};

View File

@ -40,7 +40,7 @@ class Share extends Plugin {
print "<p>" . __("You can disable all articles shared by unique URLs here.") . "</p>";
print "<button class=\"btn-danger\" dojoType=\"dijit.form.Button\" onclick=\"return clearArticleAccessKeys()\">".
print "<button class=\"btn-danger\" dojoType=\"dijit.form.Button\" onclick=\"return Plugins.Share.clearKeys()\">".
__('Unshare all articles')."</button> ";
print "</p>";
@ -74,7 +74,7 @@ class Share extends Plugin {
return "<img id='SHARE-IMG-".$line['int_id']."' src=\"plugins/share/$img\"
class='tagsPic' style=\"cursor : pointer\"
onclick=\"shareArticle(".$line['int_id'].")\"
onclick=\"Plugins.Share.shareArticle(".$line['int_id'].")\"
title='".__('Share by URL')."'>";
}

View File

@ -1,20 +1,20 @@
function shareArticle(id) {
try {
Plugins.Share = {
shareArticle: function(id) {
if (dijit.byId("shareArticleDlg"))
dijit.byId("shareArticleDlg").destroyRecursive();
var query = "backend.php?op=pluginhandler&plugin=share&method=shareArticle&param=" + encodeURIComponent(id);
const query = "backend.php?op=pluginhandler&plugin=share&method=shareArticle&param=" + encodeURIComponent(id);
dialog = new dijit.Dialog({
const dialog = new dijit.Dialog({
id: "shareArticleDlg",
title: __("Share article by URL"),
style: "width: 600px",
newurl: function() {
newurl: function () {
if (confirm(__("Generate new share URL for this article?"))) {
Notify.progress("Trying to change URL...", true);
const query = { op: "pluginhandler", plugin: "share", method: "newkey", id: id };
const query = {op: "pluginhandler", plugin: "share", method: "newkey", id: id};
xhrJson("backend.php", query, (reply) => {
if (reply) {
@ -44,12 +44,12 @@ function shareArticle(id) {
}
},
unshare: function() {
unshare: function () {
if (confirm(__("Remove sharing for this article?"))) {
Notify.progress("Trying to unshare...", true);
const query = { op: "pluginhandler", plugin: "share", method: "unshare", id: id };
const query = {op: "pluginhandler", plugin: "share", method: "unshare", id: id};
xhrPost("backend.php", query, () => {
notify("Article unshared.");
@ -62,16 +62,15 @@ function shareArticle(id) {
}
},
href: query});
href: query
});
dialog.show();
const img = $("SHARE-IMG-" + id);
if (img) img.src = img.src.replace("notshared.png", "share.png");
} catch (e) {
exception_error("shareArticle", e);
}
}
};

View File

@ -1,16 +1,15 @@
function clearArticleAccessKeys() {
if (confirm(__("This will invalidate all previously shared article URLs. Continue?"))) {
Notify.progress("Clearing URLs...");
Plugins.Share = {
clearKeys: function() {
if (confirm(__("This will invalidate all previously shared article URLs. Continue?"))) {
Notify.progress("Clearing URLs...");
const query = { op: "pluginhandler", plugin: "share", method: "clearArticleKeys" };
const query = {op: "pluginhandler", plugin: "share", method: "clearArticleKeys"};
xhrPost("backend.php", query, () => {
Notify.info("Shared URLs cleared.");
});
xhrPost("backend.php", query, () => {
Notify.info("Shared URLs cleared.");
});
}
return false;
}
return false;
}
};