From e901f948f25db35a2639130a4d95df34dba58db2 Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Tue, 21 Nov 2006 07:34:28 -0500
Subject: [PATCH] Updated Russian localization

---
 program/js/app.js |   76 +++++++++++++++++++++++++++++--------
 1 files changed, 59 insertions(+), 17 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index 52050a9..8157159 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -141,9 +141,15 @@
           {
           this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', 'viewsource', 'print', 'load-attachment', true);
           if (this.env.next_uid)
+            {
             this.enable_command('nextmessage', true);
+            this.enable_command('lastmessage', true);
+            }
           if (this.env.prev_uid)
+            {
             this.enable_command('previousmessage', true);
+            this.enable_command('firstmessage', true);
+            }
           }
 
         if (this.env.action=='show' && this.env.blockedobjects)
@@ -478,8 +484,16 @@
         this.list_page('next');
         break;
 
+      case 'lastpage':
+        this.list_page('last');
+        break;
+
       case 'previouspage':
         this.list_page('prev');
+        break;
+
+      case 'firstpage':
+        this.list_page('first');
         break;
 
       case 'expunge':
@@ -656,9 +670,19 @@
           this.show_message(this.env.next_uid);
         break;
 
+	  case 'lastmessage':
+        if (this.env.last_uid)
+          this.show_message(this.env.last_uid);
+        break;
+
       case 'previousmessage':
         if (this.env.prev_uid)
           this.show_message(this.env.prev_uid);
+        break;
+
+      case 'firstmessage':
+        if (this.env.first_uid)
+          this.show_message(this.env.first_uid);
         break;
       
       case 'checkmail':
@@ -709,7 +733,6 @@
             url += '&_to='+a_cids.join(',');
           else
             break;
-            
           }
         else if (props)
            url += '&_to='+urlencode(props);
@@ -717,8 +740,6 @@
         // don't know if this is necessary...
         url = url.replace(/&_framed=1/, "");
         this.set_busy(true);
-        
-        alert(url)
 
         // need parent in case we are coming from the contact frame
         if (this.env.framed)
@@ -1098,8 +1119,12 @@
     {
     if (page=='next')
       page = this.env.current_page+1;
+    if (page=='last')
+      page = this.env.pagecount;
     if (page=='prev' && this.env.current_page>1)
       page = this.env.current_page-1;
+    if (page=='first' && this.env.current_page>1)
+      page = 1;
       
     if (page > 0 && page <= this.env.pagecount)
       {
@@ -1235,17 +1260,20 @@
   // move selected messages to the specified mailbox
   this.move_messages = function(mbox)
     {
-    // exit if no mailbox specified or if selection is empty
-    var selection = this.message_list.get_selection();
-    if (!mbox || !(selection.length || this.env.uid) || mbox==this.env.mailbox)
-      return;
-    
+    // exit if current or no mailbox specified or if selection is empty
+    if (!mbox || !this.env.uid || mbox==this.env.mailbox)
+      {
+      if (!this.message_list || !this.message_list.get_selection().length)
+        return;
+      }
+
     var a_uids = new Array();
 
     if (this.env.uid)
       a_uids[a_uids.length] = this.env.uid;
     else
       {
+      var selection = this.message_list.get_selection();
       var id;
       for (var n=0; n<selection.length; n++)
         {
@@ -1273,16 +1301,19 @@
   this.permanently_remove_messages = function()
     {
     // exit if no mailbox specified or if selection is empty
-    var selection = this.message_list.get_selection();
-    if (!(selection.length || this.env.uid))
-      return;
-    
+    if (!this.env.uid)
+      {
+      if (!this.message_list || !this.message_list.get_selection().length)
+        return;
+      }
+
     var a_uids = new Array();
 
     if (this.env.uid)
       a_uids[a_uids.length] = this.env.uid;
     else
       {
+      var selection = this.message_list.get_selection();
       var id;
       for (var n=0; n<selection.length; n++)
         {
@@ -1303,13 +1334,22 @@
   this.delete_messages = function()
     {
     // exit if no mailbox specified or if selection is empty
-    var selection = this.message_list.get_selection();
-    if (!(selection.length || this.env.uid))
-      return;
+    if (!this.env.uid)
+      {
+      if (!this.message_list || !this.message_list.get_selection().length)
+        return;
+      }
 
     // 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();
@@ -2629,7 +2669,9 @@
   this.set_page_buttons = function()
     {
     this.enable_command('nextpage', (this.env.pagecount > this.env.current_page));
+    this.enable_command('lastpage', (this.env.pagecount > this.env.current_page));
     this.enable_command('previouspage', (this.env.current_page > 1));
+    this.enable_command('firstpage', (this.env.current_page > 1));
     }
 
 
@@ -3113,7 +3155,7 @@
 
       case 'list':
         if (this.env.messagecount)
-          this.enable_command('purge', (this.env.mailbox==this.env.trash_mailbox));
+          this.enable_command('purge', (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox));
 
       case 'expunge':
         this.enable_command('select-all', 'select-none', 'expunge', this.env.messagecount ? true : false);

--
Gitblit v1.9.1