summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--admin_users.php2
-rw-r--r--app/Module/UserMessagesModule.php18
-rw-r--r--assets/js-2.0.0/webtrees.js5
-rw-r--r--message.php7
4 files changed, 18 insertions, 14 deletions
diff --git a/admin_users.php b/admin_users.php
index abfc100ee7..7eeaeda0cd 100644
--- a/admin_users.php
+++ b/admin_users.php
@@ -227,7 +227,7 @@ case 'load_json':
$datum[3] = '<span dir="auto">' . Html::escape($datum[3]) . '</span>';
// $datum[4] is the email address
if ($user_id != Auth::id()) {
- $datum[4] = '<a href="#" onclick="return message(\'' . Html::escape($datum[2]) . '\', \'\', \'\');">' . Html::escape($datum[4]) . '</i></a>';
+ $datum[4] = '<a href="' . Html::escape(Html::url('message.php', ['to' => $datum[2], 'url' => 'admin_users.php'])) . '">' . Html::escape($datum[4]) . '</a>';
}
// $datum[2] is the username
$datum[2] = '<span dir="auto">' . Html::escape($datum[2]) . '</span>';
diff --git a/app/Module/UserMessagesModule.php b/app/Module/UserMessagesModule.php
index ee30bf65bd..c819e5be29 100644
--- a/app/Module/UserMessagesModule.php
+++ b/app/Module/UserMessagesModule.php
@@ -84,19 +84,25 @@ class UserMessagesModule extends AbstractModule implements ModuleBlockInterface
return $user->getUserId() !== Auth::id() && $user->getPreference('verified_by_admin') && $user->getPreference('contactmethod') !== 'none';
});
- $content = '<form id="messageform" name="messageform" method="post" action="module.php?mod=user_messages&mod_action=delete" onsubmit="return confirm(\'' . I18N::translate('Are you sure you want to delete this message? It cannot be retrieved later.') . '\');">';
- $content .= '<input type="hidden" name="ged" value="' . $ctype . '">';
- $content .= '<input type="hidden" name="ctype" value="' . $WT_TREE->getNameHtml() . '">';
+ $content = '';
if ($users) {
- $content .= '<label for="touser">' . I18N::translate('Send a message') . '</label>';
- $content .= '<select id="touser" name="touser">';
+ $url = route('user-page', ['ged' => $WT_TREE->getName()]);
+ $content .= '<form action="message.php" onsubmit="return $(&quot;#to&quot;).val() !== &quot;&quot;">';
+ $content .= '<input type="hidden" name="ged" value="' . Html::escape($WT_TREE->getName()) . '">';
+ $content .= '<input type="hidden" name="url" value="' . Html::escape($url) . '">';
+ $content .= '<label for="to">' . I18N::translate('Send a message') . '</label>';
+ $content .= '<select id="to" name="to">';
$content .= '<option value="">' . I18N::translate('&lt;select&gt;') . '</option>';
foreach ($users as $user) {
$content .= sprintf('<option value="%1$s">%2$s - %1$s</option>', Html::escape($user->getUserName()), Html::escape($user->getRealName()));
}
$content .= '</select>';
- $content .= '<input type="button" value="' . I18N::translate('Send') . '" onclick="return message(document.messageform.touser.options[document.messageform.touser.selectedIndex].value, \'messaging2\', \'\');"><br><br>';
+ $content .= '<button type="submit">' . I18N::translate('Send') . '</button><br><br>';
+ $content .= '</form>';
}
+ $content .= '<form id="messageform" name="messageform" method="post" action="module.php?mod=user_messages&mod_action=delete" onsubmit="return confirm(\'' . I18N::translate('Are you sure you want to delete this message? It cannot be retrieved later.') . '\');">';
+ $content .= '<input type="hidden" name="ged" value="' . $ctype . '">';
+ $content .= '<input type="hidden" name="ctype" value="' . $WT_TREE->getNameHtml() . '">';
if ($messages) {
$content .= '<table class="list_table"><tr>';
$content .= '<th class="list_label">' . I18N::translate('Delete') . '<br><a href="#" onclick="$(\'#block-' . $block_id . ' :checkbox\').prop(\'checked\', true); return false;">' . I18N::translate('All') . '</a></th>';
diff --git a/assets/js-2.0.0/webtrees.js b/assets/js-2.0.0/webtrees.js
index bac8abb5d5..1c585db51e 100644
--- a/assets/js-2.0.0/webtrees.js
+++ b/assets/js-2.0.0/webtrees.js
@@ -638,11 +638,6 @@ function ilinkitem (mediaid, type, ged) {
return false;
}
-function message (username, method, url) {
- window.open('message.php?to=' + encodeURIComponent(username) + '&method=' + encodeURIComponent(method) + '&url=' + encodeURIComponent(url), '_blank', mesg_window_specs);
- return false;
-}
-
/**
* Persistant checkbox options to hide/show extra data.
diff --git a/message.php b/message.php
index d4aa718b2f..f10d14b064 100644
--- a/message.php
+++ b/message.php
@@ -33,7 +33,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$from_email = Filter::post('from_email');
$subject = Filter::post('subject', null, '');
$body = Filter::post('body', null, '');
- $url = Filter::postUrl('url', 'index.php');
+ $url = Filter::post('url', null, 'index.php');
// Only an administration can use the distribution lists.
$controller->restrictAccess(!in_array($to, ['all', 'never_logged', 'last_6mo']) || Auth::isAdmin());
@@ -90,7 +90,7 @@ $from_name = Filter::get('from_name', null, '');
$from_email = Filter::get('from_email', '');
$subject = Filter::get('subject', null, '');
$body = Filter::get('body', null, '');
-$url = Filter::getUrl('url', 'index.php');
+$url = Filter::get('url', null, 'index.php');
// Only an administration can use the distribution lists.
$controller->restrictAccess(!in_array($to, ['all', 'never_logged', 'last_6mo']) || Auth::isAdmin());
@@ -168,6 +168,9 @@ $to_names = implode(I18N::$list_separator, array_map(function(User $user) {
<button type="submit" class="btn btn-primary">
<?= I18N::translate('Send') ?>
</button>
+ <a class="btn btn-link" href="<?= Html::escape($url) ?>">
+ <?= I18N::translate('cancel') ?>
+ </a>
</div>
</div>
</form>