diff options
| -rw-r--r-- | admin_users.php | 2 | ||||
| -rw-r--r-- | app/Module/UserMessagesModule.php | 18 | ||||
| -rw-r--r-- | assets/js-2.0.0/webtrees.js | 5 | ||||
| -rw-r--r-- | message.php | 7 |
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 $("#to").val() !== """>'; + $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('<select>') . '</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> |
