plugins: mail, mailto: remove code from global context

This commit is contained in:
Andrew Dolgov 2018-12-03 14:21:50 +03:00
parent 71fc6d45bd
commit e76d1fb995
6 changed files with 80 additions and 71 deletions

View File

@ -124,12 +124,12 @@ class Feeds extends Handler_Protected {
}
if (PluginHost::getInstance()->get_plugin("mail")) {
$reply .= "<option value=\"emailArticle(false)\">".__('Forward by email').
$reply .= "<option value=\"Plugins.Mail.send()\">".__('Forward by email').
"</option>";
}
if (PluginHost::getInstance()->get_plugin("mailto")) {
$reply .= "<option value=\"mailtoArticle(false)\">".__('Forward by email').
$reply .= "<option value=\"Plugins.Mailto.send()\">".__('Forward by email').
"</option>";
}

View File

@ -302,12 +302,10 @@ require(["dojo/_base/kernel",
}
};
this.hotkey_actions["email_article"] = function () {
if (typeof emailArticle != "undefined") {
emailArticle();
} else if (typeof mailtoArticle != "undefined") {
mailtoArticle();
if (typeof Plugins.Mail != "undefined") {
Plugins.Mail.onHotkey(Headlines.getSelected());
} else {
alert(__("Please enable mail plugin first."));
alert(__("Please enable mail or mailto plugin first."));
}
};
this.hotkey_actions["select_all"] = function () {

View File

@ -72,7 +72,7 @@ class Mail extends Plugin {
function hook_article_button($line) {
return "<img src=\"plugins/mail/mail.png\"
class='tagsPic' style=\"cursor : pointer\"
onclick=\"emailArticle(".$line["id"].")\"
onclick=\"Plugins.Mail.send(".$line["id"].")\"
alt='Zoom' title='".__('Forward by email')."'>";
}

View File

@ -1,52 +1,56 @@
function emailArticle(id) {
if (!id) {
let ids = Headlines.getSelected();
Plugins.Mail = {
send: function(id) {
if (!id) {
let ids = Headlines.getSelected();
if (ids.length == 0) {
alert(__("No articles selected."));
return;
if (ids.length == 0) {
alert(__("No articles selected."));
return;
}
id = ids.toString();
}
id = ids.toString();
}
if (dijit.byId("emailArticleDlg"))
dijit.byId("emailArticleDlg").destroyRecursive();
if (dijit.byId("emailArticleDlg"))
dijit.byId("emailArticleDlg").destroyRecursive();
const query = "backend.php?op=pluginhandler&plugin=mail&method=emailArticle&param=" + encodeURIComponent(id);
const query = "backend.php?op=pluginhandler&plugin=mail&method=emailArticle&param=" + encodeURIComponent(id);
const dialog = new dijit.Dialog({
id: "emailArticleDlg",
title: __("Forward article by email"),
style: "width: 600px",
execute: function () {
if (this.validate()) {
xhrJson("backend.php", this.attr('value'), (reply) => {
if (reply) {
const error = reply['error'];
const dialog = new dijit.Dialog({
id: "emailArticleDlg",
title: __("Forward article by email"),
style: "width: 600px",
execute: function() {
if (this.validate()) {
xhrJson("backend.php", this.attr('value'), (reply) => {
if (reply) {
const error = reply['error'];
if (error) {
alert(__('Error sending email:') + ' ' + error);
} else {
Notify.info('Your message has been sent.');
dialog.hide();
}
if (error) {
alert(__('Error sending email:') + ' ' + error);
} else {
Notify.info('Your message has been sent.');
dialog.hide();
}
});
}
},
href: query
});
}
});
}
},
href: query});
/* var tmph = dojo.connect(dialog, 'onLoad', function() {
dojo.disconnect(tmph);
new Ajax.Autocompleter('emailArticleDlg_destination', 'emailArticleDlg_dst_choices',
"backend.php?op=pluginhandler&plugin=mail&method=completeEmails",
{ tokens: '', paramName: "search" });
}); */
dialog.show();
}
/* var tmph = dojo.connect(dialog, 'onLoad', function() {
dojo.disconnect(tmph);
new Ajax.Autocompleter('emailArticleDlg_destination', 'emailArticleDlg_dst_choices',
"backend.php?op=pluginhandler&plugin=mail&method=completeEmails",
{ tokens: '', paramName: "search" });
}); */
dialog.show();
},
onHotkey: function(id) {
Plugins.Mail.send(id);
}
};

View File

@ -1,27 +1,34 @@
function mailtoArticle(id) {
if (!id) {
const ids = Headlines.getSelected();
Plugins.Mailto = {
send: function (id) {
if (!id) {
const ids = Headlines.getSelected();
if (ids.length == 0) {
alert(__("No articles selected."));
return;
if (ids.length == 0) {
alert(__("No articles selected."));
return;
}
id = ids.toString();
}
id = ids.toString();
if (dijit.byId("emailArticleDlg"))
dijit.byId("emailArticleDlg").destroyRecursive();
const query = "backend.php?op=pluginhandler&plugin=mailto&method=emailArticle&param=" + encodeURIComponent(id);
const dialog = new dijit.Dialog({
id: "emailArticleDlg",
title: __("Forward article by email"),
style: "width: 600px",
href: query});
dialog.show();
}
};
if (dijit.byId("emailArticleDlg"))
dijit.byId("emailArticleDlg").destroyRecursive();
const query = "backend.php?op=pluginhandler&plugin=mailto&method=emailArticle&param=" + encodeURIComponent(id);
const dialog = new dijit.Dialog({
id: "emailArticleDlg",
title: __("Forward article by email"),
style: "width: 600px",
href: query});
dialog.show();
}
// override default hotkey action if enabled
Plugins.Mail = Plugins.Mail || {};
Plugins.Mail.onHotkey = function(id) {
Plugins.Mailto.send(id);
};

View File

@ -21,7 +21,7 @@ class MailTo extends Plugin {
function hook_article_button($line) {
return "<img src=\"plugins/mailto/mail.png\"
class='tagsPic' style=\"cursor : pointer\"
onclick=\"mailtoArticle(".$line["id"].")\"
onclick=\"Plugins.Mailto.send(".$line["id"].")\"
alt='Zoom' title='".__('Forward by email')."'>";
}