From f4698cbfa1b6c7d3c1b5b88555f85c949c3adbef Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 27 Apr 2012 03:13:19 -0400
Subject: [PATCH] - Applied fixes from trunk up to r6129

---
 index.php                    |    4 ++
 skins/default/mail.css       |    4 +-
 program/steps/mail/func.inc  |    4 +-
 skins/larry/svggradients.css |    8 ----
 program/js/app.js            |   21 +++++-----
 skins/larry/iehacks.css      |   10 -----
 skins/larry/mail.css         |   41 +++-----------------
 skins/larry/ui.js            |    7 ++-
 8 files changed, 29 insertions(+), 70 deletions(-)

diff --git a/index.php b/index.php
index 41f62bb..3f4aebb 100644
--- a/index.php
+++ b/index.php
@@ -129,6 +129,10 @@
       // prevent endless looping on login page
       if ($query['_task'] == 'login')
         unset($query['_task']);
+
+      // prevent redirect to compose with specified ID (#1488226)
+      if ($query['_action'] == 'compose' && !empty($query['_id']))
+        $query = array();
     }
 
     // allow plugins to control the redirect url after login success
diff --git a/program/js/app.js b/program/js/app.js
index d7bdfbf..4fa8eff 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -224,7 +224,7 @@
 
         this.env.message_commands = ['show', 'reply', 'reply-all', 'reply-list', 'forward',
           'moveto', 'copy', 'delete', 'open', 'mark', 'edit', 'viewsource', 'download',
-          'print', 'load-attachment', 'load-headers', 'forward-attachment'];
+          'print', 'load-attachment', 'show-headers', 'hide-headers', 'forward-attachment'];
 
         if (this.env.action == 'show' || this.env.action == 'preview') {
           this.enable_command(this.env.message_commands, this.env.uid);
@@ -577,10 +577,6 @@
         }
         else if (this.task == 'addressbook')
           this.list_contacts(props);
-        break;
-
-      case 'load-headers':
-        this.load_headers(obj);
         break;
 
       case 'sort':
@@ -1108,7 +1104,7 @@
       default:
         var func = command.replace(/-/g, '_');
         if (this[func] && typeof this[func] === 'function') {
-          ret = this[func](props);
+          ret = this[func](props, obj);
         }
         break;
     }
@@ -1856,8 +1852,11 @@
       else if (c == 'threads')
         html = expando;
       else if (c == 'subject') {
-        if (bw.ie)
+        if (bw.ie) {
           col.onmouseover = function() { rcube_webmail.long_subject_title_ie(this, message.depth+1); };
+          if (bw.ie8)
+            tree = '<span></span>' + tree; // #1487821
+        }
         html = tree + cols[c];
       }
       else if (c == 'priority') {
@@ -5829,14 +5828,14 @@
   };
 
   // display all-headers row and fetch raw message headers
-  this.load_headers = function(elem)
+  this.show_headers = function(props, elem)
   {
     if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box || !this.env.uid)
       return;
 
     $(elem).removeClass('show-headers').addClass('hide-headers');
     $(this.gui_objects.all_headers_row).show();
-    elem.onclick = function() { rcmail.hide_headers(elem); };
+    elem.onclick = function() { rcmail.command('hide-headers', '', elem); };
 
     // fetch headers only once
     if (!this.gui_objects.all_headers_box.innerHTML) {
@@ -5846,14 +5845,14 @@
   };
 
   // hide all-headers row
-  this.hide_headers = function(elem)
+  this.hide_headers = function(props, elem)
   {
     if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box)
       return;
 
     $(elem).removeClass('hide-headers').addClass('show-headers');
     $(this.gui_objects.all_headers_row).hide();
-    elem.onclick = function() { rcmail.load_headers(elem); };
+    elem.onclick = function() { rcmail.command('show-headers', '', elem); };
   };
 
 
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 8dcd37b..aeb917b 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -986,8 +986,8 @@
 {
   global $OUTPUT;
 
-  $html = html::div(array('class' => "more-headers show-headers", 'onclick' => "return ".JS_OBJECT_NAME.".command('load-headers','',this)"), '');
-  $html .= html::div(array('id' => "all-headers", 'class' => "all", 'style' => 'display:none'), html::div(array('id' => 'headers-source'), ''));
+  $html = html::div(array('id' => "all-headers", 'class' => "all", 'style' => 'display:none'), html::div(array('id' => 'headers-source'), ''));
+  $html .= html::div(array('class' => "more-headers show-headers", 'onclick' => "return ".JS_OBJECT_NAME.".command('show-headers','',this)"), '');
 
   $OUTPUT->add_gui_object('all_headers_row', 'all-headers');
   $OUTPUT->add_gui_object('all_headers_box', 'headers-source');
diff --git a/skins/default/mail.css b/skins/default/mail.css
index 2661afd..95b4c99 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -1286,13 +1286,13 @@
 
 #headers-source
 {
-  margin: 0 0 2px 0;
+  margin: 2px 0;
   padding: 0.5em;
   height: 145px;
   background: white;
   overflow: auto;
   font-size: 11px;
-  border: 1px solid #999999;
+  border: 1px solid #CCC;
   display: none;
   text-align: left;
   color: #333;
diff --git a/skins/larry/iehacks.css b/skins/larry/iehacks.css
index 8eb1100..38d68ac 100644
--- a/skins/larry/iehacks.css
+++ b/skins/larry/iehacks.css
@@ -143,14 +143,6 @@
 	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e9e9e9', GradientType=0);
 }
 
-#full-headers {
-	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eaeaea', endColorstr='#e9e9e9', GradientType=0);
-}
-
-#all-headers {
-	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3f3f3', endColorstr='#ffffff', GradientType=0);
-}
-
 #composeoptionsbox {
 	border-top: 1px solid #999;
 }
@@ -159,5 +151,3 @@
 	float: left;
 	height: 18px;
 }
-
-
diff --git a/skins/larry/mail.css b/skins/larry/mail.css
index ba6f770..94e210a 100644
--- a/skins/larry/mail.css
+++ b/skins/larry/mail.css
@@ -734,18 +734,6 @@
 	background-position: -32px -242px;
 }
 
-#full-headers {
-	position: relative;
-	color: #666;
-	text-align: center;
-	background-color: #f9f9f9;
-	background: -moz-linear-gradient(top, #eaeaea 0%, #e9e9e9 100%);
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eaeaea), color-stop(100%,#e9e9e9));
-	background: -o-linear-gradient(top, #eaeaea 0%, #e9e9e9 100%);
-	background: -ms-linear-gradient(top, #eaeaea 0%, #e9e9e9 100%);
-	background: linear-gradient(top, #eaeaea 0%, #e9e9e9 100%);
-}
-
 div.more-headers {
 	cursor: pointer;
 	height: 10px;
@@ -757,38 +745,23 @@
 }
 
 #all-headers {
-	position: absolute;
-	top: 11px;
-	left: 10px;
-	right: 10px;
+    position: relative;
+	margin: 0 10px;
+	padding: 0;
 	height: 180px;
-	z-index: 500;
 	border: 1px solid #bbb;
-	border-top: 0;
-	border-radius: 0 0 4px 4px;
-	-webkit-box-shadow: 0px 3px 4px 0px rgba(80, 80, 80, 0.6);
-	-moz-box-shadow: 0px 3px 4px 0px rgba(80, 80, 80, 0.6);
-	box-shadow: 0px 3px 4px 0px rgba(80, 80, 80, 0.6);
+	border-radius: 4px;
 	background: #fff;
-	background: -moz-linear-gradient(top, #f0f0f0 0%, #fff 8%, #fff 100%);
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f0f0f0), color-stop(8%,#fff), color-stop(100%,#fff));
-	background: -o-linear-gradient(top, #f0f0f0 0%, #fff 8%, #fff 100%);
-	background: -ms-linear-gradient(top, #f0f0f0 0%, #fff 8%, #fff 100%);
-	background: linear-gradient(top,  #f0f0f0 0%, #fff 8%, #fff 100%);
-}
-
-#all-headers .ui-resizable-s {
-	bottom: -2px;
 }
 
 #headers-source {
 	display: none;
 	position: absolute;
-	top: 8px;
+	top: 0;
 	left: 0;
 	right: 0;
-	bottom: 8px;
-	padding: 0 10px;
+	bottom: 0;
+	padding: 2px 5px;
 	overflow: auto;
 	text-align: left;
 	color: #333;
diff --git a/skins/larry/svggradients.css b/skins/larry/svggradients.css
index 91192d7..ba596e3 100644
--- a/skins/larry/svggradients.css
+++ b/skins/larry/svggradients.css
@@ -137,14 +137,6 @@
 	background-image: url(svggradient.php?c=ffffff;e9e9e9);
 }
 
-#full-headers {
-	background-image: url(svggradient.php?c=eaeaea;e9e9e9);
-}
-
-#all-headers {
-	background-image: url(svggradient.php?c=f3f3f3;ffffff);
-}
-
 
 /*** jqueryui theme ***/
 
diff --git a/skins/larry/ui.js b/skins/larry/ui.js
index cf7ff55..ab56910 100644
--- a/skins/larry/ui.js
+++ b/skins/larry/ui.js
@@ -76,7 +76,8 @@
 
       if (rcmail.env.action == 'show' || rcmail.env.action == 'preview') {
         layout_messageview();
-        $("#all-headers").resizable({ handles: 's', minHeight: 50 });
+        rcmail.addEventListener('aftershow-headers', function() { layout_messageview(); });
+        rcmail.addEventListener('afterhide-headers', function() { layout_messageview(); });
         $('#previewheaderstoggle').click(function(e){ toggle_preview_headers(this); return false });
       }
       else if (rcmail.env.action == 'compose') {
@@ -291,7 +292,7 @@
   {
     $('#messagecontent').css('top', ($('#messageheader').outerHeight() + 10) + 'px');
     $('#message-objects div a').addClass('button');
-    
+
     if (!$('#attachment-list li').length) {
       $('div.rightcol').hide();
       $('div.leftcol').css('margin-right', '0');
@@ -549,7 +550,7 @@
 
       for (i in rcmail.env.spell_langs) {
         li = $('<li>');
-        link = $('<a href="#">').text(rcmail.env.spell_langs[i])
+        link = $('<a href="#"></a>').text(rcmail.env.spell_langs[i])
           .addClass('active').data('lang', i)
           .click(function() {
             rcmail.spellcheck_lang_set($(this).data('lang'));

--
Gitblit v1.9.1