Fix Shift + delete button does not permanently delete messages (#1488243)

pull/13/head
Aleksander Machniak 12 years ago
parent 6237c94758
commit c281619b96

@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Fix Shift + delete button does not permanently delete messages (#1488243)
- Add Content-Length for attachments where possible (#1485478)
- Fix attachment sizes in message print page and attachment preview page (#1488515)
- Fix XSS vulnerability in message subject handling using Larry skin (#1488519)

@ -933,7 +933,7 @@ class rcube_output_html extends rcube_output
// make valid href to specific buttons
if (in_array($attrib['command'], rcmail::$main_tasks)) {
$attrib['href'] = $this->app->url(array('task' => $attrib['command']));
$attrib['onclick'] = sprintf("%s.command('switch-task','%s');return false", rcmail::JS_OBJECT_NAME, $attrib['command']);
$attrib['onclick'] = sprintf("%s.command('switch-task','%s',null,event); return false", rcmail::JS_OBJECT_NAME, $attrib['command']);
}
else if ($attrib['task'] && in_array($attrib['task'], rcmail::$main_tasks)) {
$attrib['href'] = $this->app->url(array('action' => $attrib['command'], 'task' => $attrib['task']));
@ -956,7 +956,7 @@ class rcube_output_html extends rcube_output
}
else if ($command && !$attrib['onclick']) {
$attrib['onclick'] = sprintf(
"return %s.command('%s','%s',this)",
"return %s.command('%s','%s',this,event)",
rcmail::JS_OBJECT_NAME,
$command,
$attrib['prop']
@ -1485,7 +1485,7 @@ class rcube_output_html extends rcube_output
if (empty($attrib['form'])) {
$out = $this->form_tag(array(
'name' => "rcmqsearchform",
'onsubmit' => rcmail::JS_OBJECT_NAME . ".command('search');return false;",
'onsubmit' => rcmail::JS_OBJECT_NAME . ".command('search'); return false",
'style' => "display:inline"),
$out);
}

@ -493,7 +493,7 @@ function rcube_webmail()
/*********************************************************/
// execute a specific command on the web client
this.command = function(command, props, obj)
this.command = function(command, props, obj, event)
{
var ret, uid, cid, url, flag;
@ -713,7 +713,7 @@ function rcube_webmail()
case 'delete':
// mail task
if (this.task == 'mail')
this.delete_messages();
this.delete_messages(event);
// addressbook task
else if (this.task == 'addressbook')
this.delete_contacts();
@ -2555,7 +2555,7 @@ function rcube_webmail()
};
// delete selected messages from the current mailbox
this.delete_messages = function()
this.delete_messages = function(event)
{
var uid, i, len, trash = this.env.trash_mailbox,
list = this.message_list,
@ -2587,7 +2587,7 @@ function rcube_webmail()
// if there is a trash mailbox defined and we're not currently in it
else {
// if shift was pressed delete it immediately
if (list && list.modkey == SHIFT_KEY) {
if ((list && list.modkey == SHIFT_KEY) || (event && rcube_event.get_modifier(event) == SHIFT_KEY)) {
if (confirm(this.get_label('deletemessagesconfirm')))
this.permanently_remove_messages();
}

Loading…
Cancel
Save