summaryrefslogtreecommitdiff
path: root/plugins/mailto
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-02-17 14:56:36 +0300
committerAndrew Dolgov <[email protected]>2021-02-17 14:56:36 +0300
commit2b2833bb4fa6f958b89a83adea89d9e7c73daee7 (patch)
tree8e57050458d81dfe6841150c82b8013af5d14eb2 /plugins/mailto
parent4632d6cf558774cfcb17b3b4cf10399c3626096b (diff)
plugins: load dialogs via xhr instead of http
Diffstat (limited to 'plugins/mailto')
-rw-r--r--plugins/mailto/init.js17
-rw-r--r--plugins/mailto/init.php6
2 files changed, 15 insertions, 8 deletions
diff --git a/plugins/mailto/init.js b/plugins/mailto/init.js
index ae68bf49b..4bf672a88 100644
--- a/plugins/mailto/init.js
+++ b/plugins/mailto/init.js
@@ -1,4 +1,4 @@
-/* global Plugins, Headlines, fox, __ */
+/* global Plugins, Headlines, xhrPost, dojo, fox, __ */
Plugins.Mailto = {
send: function (id) {
@@ -13,12 +13,19 @@ Plugins.Mailto = {
id = ids.toString();
}
- const query = "backend.php?op=pluginhandler&plugin=mailto&method=emailArticle&param=" + encodeURIComponent(id);
-
const dialog = new fox.SingleUseDialog({
- id: "emailArticleDlg",
title: __("Forward article by email"),
- href: query});
+ content: __("Loading, please wait...")
+ });
+
+ const tmph = dojo.connect(dialog, 'onShow', function () {
+ dojo.disconnect(tmph);
+
+ xhrPost("backend.php", {op: "pluginhandler", plugin: "mailto", method: "emailArticle", ids: id}, (transport) => {
+ dialog.attr('content', transport.responseText);
+ });
+ });
+
dialog.show();
}
diff --git a/plugins/mailto/init.php b/plugins/mailto/init.php
index 3e24dcf29..4b858eae6 100644
--- a/plugins/mailto/init.php
+++ b/plugins/mailto/init.php
@@ -20,7 +20,7 @@ class MailTo extends Plugin {
}
function get_js() {
- return file_get_contents(dirname(__FILE__) . "/init.js");
+ return file_get_contents(__DIR__ . "/init.js");
}
function hook_article_button($line) {
@@ -31,7 +31,7 @@ class MailTo extends Plugin {
function emailArticle() {
- $ids = explode(",", $_REQUEST['param']);
+ $ids = explode(",", clean($_REQUEST['ids']));
$ids_qmarks = arr_qmarks($ids);
$tpl = new Templator();
@@ -85,7 +85,7 @@ class MailTo extends Plugin {
print "<p>";
print "<footer class='text-center'>";
- print "<button dojoType='dijit.form.Button' onclick=\"dijit.byId('emailArticleDlg').hide()\">".__('Close this dialog')."</button>";
+ print \Controls\submit_tag(__('Close this dialog'));
print "</footer>";
//return;