From 6547093937cd4ee33adb7f9e55ce6851e25a6a8f Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Tue, 02 Oct 2012 14:28:02 -0400
Subject: [PATCH] Backported commit 10467e8a5957 and other improvements

---
 program/include/html.php                  |    2 
 skins/larry/templates/message.html        |    5 +-
 skins/larry/ie7hacks.css                  |    6 +-
 skins/larry/svggradients.css              |    2 
 skins/larry/iehacks.css                   |    2 
 skins/larry/mail.css                      |   56 ++++++++++++++++++---------
 skins/larry/templates/messagepreview.html |    5 +-
 skins/larry/ui.js                         |    3 -
 8 files changed, 49 insertions(+), 32 deletions(-)

diff --git a/program/include/html.php b/program/include/html.php
index c15ef45..dc93b33 100644
--- a/program/include/html.php
+++ b/program/include/html.php
@@ -301,7 +301,7 @@
                 $attrib_arr[] = $key . '="' . Q($value, 'strict', false) . '"';
             }
             else {
-                $attrib_arr[] = $key . '="' . Q($value) . '"';
+                $attrib_arr[] = $key . '="' . htmlspecialchars($value, ENT_COMPAT, RCMAIL_CHARSET) . '"';
             }
         }
         return count($attrib_arr) ? ' '.implode(' ', $attrib_arr) : '';
diff --git a/skins/larry/ie7hacks.css b/skins/larry/ie7hacks.css
index 024c35b..80fa5c7 100644
--- a/skins/larry/ie7hacks.css
+++ b/skins/larry/ie7hacks.css
@@ -29,7 +29,7 @@
 .boxfooter .listbutton .inner,
 .attachmentslist li a.delete,
 .attachmentslist li a.cancelupload,
-#messagepreviewheader .iconlink {
+.previewheader .iconlink {
 	/* workaround for text-indent which also offsets the background image */
 	text-indent: 0;
 	font-size: 0;
@@ -45,7 +45,7 @@
 
 .pagenav a.button,
 .pagenav a.button span.inner,
-#messagepreviewheader .iconlink,
+.previewheader .iconlink,
 #uploadform a.iconlink {
 	display: inline;
 }
@@ -67,7 +67,7 @@
 	text-align: left;
 }
 
-#messagepreviewheader .iconlink {
+#messageheader.previewheader .iconlink {
 	color: #fff;
 	height: 14px;
 }
diff --git a/skins/larry/iehacks.css b/skins/larry/iehacks.css
index 2882021..93f483c 100644
--- a/skins/larry/iehacks.css
+++ b/skins/larry/iehacks.css
@@ -144,7 +144,7 @@
 }
 
 #messageheader, #partheader, #composeheaders {
-	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e9e9e9', GradientType=0);
+	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f0f0f0', GradientType=0);
 }
 
 #previewheaderstoggle {
diff --git a/skins/larry/mail.css b/skins/larry/mail.css
index 8297fde..e5c0ae0 100644
--- a/skins/larry/mail.css
+++ b/skins/larry/mail.css
@@ -676,10 +676,10 @@
 
 #messagecontent {
 	position: absolute;
-	top: 140px;
+	top: 110px;
 	left: 0;
 	width: 100%;
-	bottom: 0;
+	bottom: 27px;
 	overflow: auto;
 	border-radius: 4px 4px 0 0;
 }
@@ -690,16 +690,20 @@
 	position: relative;
 	padding: 3px 0;
 	background: #f9f9f9;
-	background: -moz-linear-gradient(top, #fff 0%, #e9e9e9 100%);
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fff), color-stop(100%,#e9e9e9));
-	background: -o-linear-gradient(top, #fff 0%, #e9e9e9 100%);
-	background: -ms-linear-gradient(top, #fff 0%, #e9e9e9 100%);
-	background: linear-gradient(top, #fff 0%, #e9e9e9 100%);
+	background: -moz-linear-gradient(top, #fff 0%, #f0f0f0 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fff), color-stop(100%,#f0f0f0));
+	background: -o-linear-gradient(top, #fff 0%, #f0f0f0 100%);
+	background: -ms-linear-gradient(top, #fff 0%, #f0f0f0 100%);
+	background: linear-gradient(top, #fff 0%, #f0f0f0 100%);
+	border-bottom: 1px solid #dfdfdf;
 }
 
 #mailview-right #messageheader {
 	border-radius: 4px 4px 0 0;
-	border-bottom: 2px solid #e6e6e6;
+	padding-left: 26px;
+	/* avoid headers eating up all the vertical space */
+	max-height: 50%;
+	overflow: auto;
 }
 
 h2.subject {
@@ -725,16 +729,23 @@
 	padding: 2px 8px;
 }
 
-.headers-table td.header {
+.headers-table td.header,
+.ui-dialog-content.popup span.adr {
 	font-weight: bold;
 }
 
-.headers-table td.header a {
+.headers-table td.header-title {
+	white-space: nowrap;
+}
+
+.headers-table td.header a,
+.ui-dialog-content.popup span.adr a {
 	color: #666;
 	text-decoration: none;
 }
 
-.headers-table td.header a:hover {
+.headers-table td.header a:hover,
+.ui-dialog-content.popup span.adr a:hover {
 	text-decoration: underline;
 }
 
@@ -744,8 +755,15 @@
 	font-weight: bold;
 }
 
-.headers-table td.header span {
+.headers-table td.header span,
+.ui-dialog-content.popup span.adr {
 	white-space: nowrap;
+}
+
+.headers-table td.header a.morelink {
+	color: #0069a6;
+	white-space: nowrap;
+	font-weight: normal;
 }
 
 .rcmaddcontact {
@@ -788,6 +806,7 @@
 	background: -ms-linear-gradient(left, #fbfbfb 0, #e9e9e9 100%);
 	background: linear-gradient(left, #fbfbfb 0, #e9e9e9 100%);
 	border-right: 1px solid #dfdfdf;
+	border-radius: 3px 0 0 0; /* for Opera */
 }
 
 #previewheaderstoggle .iconlink {
@@ -847,23 +866,21 @@
 	color: #333;
 }
 
-#messagepreviewheader #all-headers {
+#messageheader.previewheader #all-headers {
 	margin-left: 0;
 }
 
-#messagepreviewheader {
+#messageheader.previewheader {
 	position: relative;
 	height: auto;
-	margin: 0 8px 0 0;
-	padding: 0 0 6px 26px;
-	border-bottom: 2px solid #f0f0f0;
+	min-height: 52px;
+	padding: 0 0 3px 26px;
 }
 
-#messagepreviewheader h3.subject {
+#messageheader.previewheader h3.subject {
 	padding: 8px 8px 2px 0;
 }
 
-#messagepreviewheader #countcontrols,
 #messageheader #countcontrols {
 	position: absolute;
 	top: 8px;
@@ -1097,6 +1114,7 @@
 	-webkit-box-shadow: 0 2px 3px 0 #999;
 	-moz-box-shadow: 0 2px 3px 0 #999;
 	box-shadow: 0 2px 3px 0 #999;
+	border-bottom: 0;
 }
 
 #composebuttons {
diff --git a/skins/larry/svggradients.css b/skins/larry/svggradients.css
index 143fb37..5b3fedb 100644
--- a/skins/larry/svggradients.css
+++ b/skins/larry/svggradients.css
@@ -134,7 +134,7 @@
 }
 
 #messageheader, #partheader, #composeheaders {
-	background-image: url(svggradient.php?c=ffffff;e9e9e9);
+	background-image: url(svggradient.php?c=ffffff;f0f0f0);
 }
 
 #previewheaderstoggle {
diff --git a/skins/larry/templates/message.html b/skins/larry/templates/message.html
index 50ac844..141d66e 100644
--- a/skins/larry/templates/message.html
+++ b/skins/larry/templates/message.html
@@ -34,8 +34,10 @@
 <div id="mailview-right" class="offset uibox">
 
 <div id="messageheader">
+<span id="previewheaderstoggle"></span>
+
 <h2 class="subject"><roundcube:object name="messageHeaders" valueOf="subject" /></h2>
-<roundcube:object name="messageHeaders" class="headers-table" addicon="/images/addcontact.png" exclude="subject" />
+<roundcube:object name="messageHeaders" class="headers-table" addicon="/images/addcontact.png" exclude="subject" max="20" />
 <roundcube:object name="messageFullHeaders" id="full-headers" />
 
 <!-- record navigation -->
@@ -45,7 +47,6 @@
 	<roundcube:button command="nextmessage" type="link" class="button nextpage disabled" classAct="button nextpage" classSel="button nextpage pressed" innerClass="inner" title="nextmessage" content="&amp;gt;" />
 </div>
 
-<div id="contactphoto"><roundcube:object name="contactphoto" /></div>
 </div>
 
 <div id="messagecontent">
diff --git a/skins/larry/templates/messagepreview.html b/skins/larry/templates/messagepreview.html
index 792c1bd..62e90ad 100644
--- a/skins/larry/templates/messagepreview.html
+++ b/skins/larry/templates/messagepreview.html
@@ -6,11 +6,10 @@
 </head>
 <body class="iframe fullheight">
 
-<div id="messagepreviewheader">
+<div id="messageheader" class="previewheader">
 <h3 class="subject"><roundcube:object name="messageHeaders" valueOf="subject" /></h3>
 
 <a href="#details" id="previewheaderstoggle"><span class="iconlink"></span></a>
-<div id="contactphoto"><roundcube:object name="contactphoto" /></div>
 
 <table class="headers-table" id="preview-shortheaders"><tbody><tr>
 <roundcube:if condition="env:mailbox == config:drafts_mbox || env:mailbox == config:sent_mbox">
@@ -24,7 +23,7 @@
 	<td class="header date"><span><roundcube:object name="messageHeaders" valueOf="date" /></span></td>
 </tr></tbody></table>
 
-<roundcube:object name="messageHeaders" id="preview-allheaders" class="headers-table" addicon="/images/addcontact.png" exclude="subject,replyto" />
+<roundcube:object name="messageHeaders" id="preview-allheaders" class="headers-table" addicon="/images/addcontact.png" max="10" exclude="subject,replyto" />
 
 <roundcube:object name="messageFullHeaders" id="full-headers" />
 
diff --git a/skins/larry/ui.js b/skins/larry/ui.js
index fe449fd..0d6ee9e 100644
--- a/skins/larry/ui.js
+++ b/skins/larry/ui.js
@@ -75,7 +75,6 @@
       }
 
       if (rcmail.env.action == 'show' || rcmail.env.action == 'preview') {
-        layout_messageview();
         rcmail.addEventListener('aftershow-headers', function() { layout_messageview(); });
         rcmail.addEventListener('afterhide-headers', function() { layout_messageview(); });
         $('#previewheaderstoggle').click(function(e){ toggle_preview_headers(this); return false });
@@ -317,7 +316,7 @@
    */
   function layout_messageview()
   {
-    $('#messagecontent').css('top', ($('#messageheader').outerHeight() + 10) + 'px');
+    $('#messagecontent').css('top', ($('#messageheader').outerHeight() + 1) + 'px');
     $('#message-objects div a').addClass('button');
 
     if (!$('#attachment-list li').length) {

--
Gitblit v1.9.1