From 31c171846ec7c387fb7fc3e979a63330420002b0 Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Tue, 21 Nov 2006 03:18:29 -0500
Subject: [PATCH] Bypass Trash folder if Shift-Del was pressed.

---
 program/js/list.js                      |    4 ++++
 program/localization/en_US/messages.inc |    2 ++
 program/steps/mail/func.inc             |    1 +
 program/js/app.js                       |    9 ++++++++-
 4 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index 6485a98..1f0e3ee 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1342,7 +1342,14 @@
 
     // if there is a trash mailbox defined and we're not currently in it:
     if (this.env.trash_mailbox && String(this.env.mailbox).toLowerCase()!=String(this.env.trash_mailbox).toLowerCase())
-      this.move_messages(this.env.trash_mailbox);
+      // if shift was pressed delete it immediately
+      if (this.message_list.shiftkey)
+        {
+        if (confirm(this.get_label('deletemessagesconfirm')))
+          this.permanently_remove_messages();
+        }
+      else
+        this.move_messages(this.env.trash_mailbox);
     // if there is a trash mailbox defined but we *are* in it:
     else if (this.env.trash_mailbox && String(this.env.mailbox).toLowerCase() == String(this.env.trash_mailbox).toLowerCase())
       this.permanently_remove_messages();
diff --git a/program/js/list.js b/program/js/list.js
index 8871904..eac19bb 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -32,6 +32,8 @@
   this.rows = [];
   this.selection = [];
   
+  this.shiftkey = false;
+
   this.multiselect = false;
   this.draggable = false;
   this.keyboard = false;
@@ -504,6 +506,8 @@
   if (this.focused != true) 
     return true;
 
+  this.shiftkey = e.shiftKey;
+
   var keyCode = document.layers ? e.which : document.all ? event.keyCode : document.getElementById ? e.keyCode : 0;
   var mod_key = rcube_event.get_modifier(e);
   switch (keyCode)
diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc
index 2856db8..1a49a8e 100644
--- a/program/localization/en_US/messages.inc
+++ b/program/localization/en_US/messages.inc
@@ -68,6 +68,8 @@
 
 $messages['deletecontactconfirm']  = 'Do you really want to delete the selected contact(s)?';
 
+$messages['deletemessagesconfirm'] = 'Do you really want to delete the selected message(s)?';
+
 $messages['deletefolderconfirm']  = 'Do you really want to delete this folder?';
 
 $messages['purgefolderconfirm']  = 'Do you really want to delete all messages in this folder?';
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index fb7b14c..76bb9b7 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -79,6 +79,7 @@
 
   // add some labels to client
   rcube_add_label('purgefolderconfirm');
+  rcube_add_label('deletemessagesconfirm');
   
 // $mboxlist_start = rcube_timer();
   

--
Gitblit v1.9.1