summaryrefslogtreecommitdiff
path: root/skins/larry
diff options
context:
space:
mode:
Diffstat (limited to 'skins/larry')
-rw-r--r--skins/larry/addressbook.css6
-rw-r--r--skins/larry/ie7hacks.css213
-rw-r--r--skins/larry/iehacks.css170
-rw-r--r--skins/larry/images/buttons.gifbin14997 -> 0 bytes
-rw-r--r--skins/larry/includes/footer.html13
-rw-r--r--skins/larry/includes/links.html2
-rw-r--r--skins/larry/mail.css20
-rw-r--r--skins/larry/styles.css23
-rw-r--r--skins/larry/templates/addressbook.html19
-rw-r--r--skins/larry/templates/compose.html4
-rw-r--r--skins/larry/templates/mail.html55
-rw-r--r--skins/larry/templates/message.html8
-rw-r--r--skins/larry/templates/messageerror.html4
-rw-r--r--skins/larry/templates/messagepart.html3
-rw-r--r--skins/larry/ui.js93
15 files changed, 137 insertions, 496 deletions
diff --git a/skins/larry/addressbook.css b/skins/larry/addressbook.css
index 8e17d77f7..bfdd68127 100644
--- a/skins/larry/addressbook.css
+++ b/skins/larry/addressbook.css
@@ -39,7 +39,7 @@
#directorylistbox {
position: absolute;
- top: 42px;
+ top: 0;
left: 0;
width: 100%;
bottom: 0;
@@ -47,7 +47,7 @@
#addresslist {
position: absolute;
- top: 42px;
+ top: 0;
left: 0;
width: 280px;
bottom: 0;
@@ -55,7 +55,7 @@
#contacts-box {
position: absolute;
- top: 42px;
+ top: 0;
left: 292px;
right: 0;
bottom: 0;
diff --git a/skins/larry/ie7hacks.css b/skins/larry/ie7hacks.css
deleted file mode 100644
index 60adff7a1..000000000
--- a/skins/larry/ie7hacks.css
+++ /dev/null
@@ -1,213 +0,0 @@
-/**
- * Roundcube webmail CSS hacks for IE 7
- *
- * Copyright (c) 2012, The Roundcube Dev Team
- *
- * The contents are subject to the Creative Commons Attribution-ShareAlike
- * License. It is allowed to copy, distribute, transmit and to adapt the work
- * by keeping credits to the original autors in the README file.
- * See http://creativecommons.org/licenses/by-sa/3.0/ for details.
- */
-
-/* #1488618 */
-#mainscreen {
- height: expression((parseInt(document.documentElement.clientHeight)-108)+'px');
-}
-#mainscreen.offset {
- height: expression((parseInt(document.documentElement.clientHeight)-150)+'px');
-}
-
-.minimal #mainscreen {
- height: expression((parseInt(document.documentElement.clientHeight)-82)+'px');
-}
-
-.minimal #mainscreen.offset {
- height: expression((parseInt(document.documentElement.clientHeight)-120)+'px');
-}
-
-#messagepartframe {
- height: expression((parseInt(this.parentNode.offsetHeight)-1)+'px');
-}
-
-input.button {
- display: inline;
- font-size: 90%;
-}
-
-a.iconbutton,
-a.deletebutton,
-.boxpagenav a.icon,
-.pagenav a.button span.inner,
-.boxfooter .listbutton .inner,
-.attachmentslist li a.delete,
-.attachmentslist li a.cancelupload,
-#contacts-table td.action a,
-.previewheader .iconlink,
-.minimal #taskbar .button-inner,
-#preferences-details fieldset.advanced .advanced-toggle {
- /* workaround for text-indent which also offsets the background image */
- text-indent: 0;
- font-size: 0;
- line-height: 0;
- overflow: hidden;
- text-align: right;
- text-decoration: none;
-}
-
-.boxpagenav a.icon {
- color: #bbd3da;
-}
-
-.pagenav a.button,
-.pagenav a.button span.inner,
-.previewheader .iconlink,
-#uploadform a.iconlink {
- display: inline;
-}
-
-.pagenavbuttons {
- top: 4px;
-}
-
-.dropbutton .dropbuttontip {
- right: -2px;
-}
-
-#login-form .box-inner form {
- margin: 0;
-}
-
-#login-form #message div {
- float: left;
- display: block;
- width: 200px;
- margin-left: 130px;
- white-space: nowrap;
- text-align: left;
-}
-
-#messageheader.previewheader .iconlink {
- color: #fff;
- height: 14px;
-}
-
-#uploadform a.iconlink {
- text-indent: 0px;
-}
-
-.boxfooter .countdisplay {
- top: -12px;
-}
-
-ul.toolbarmenu li a {
- width: 140px;
-}
-
-#threadselectmenu li a {
- width: 160px;
-}
-
-#messagemenu li a {
- width: 170px;
-}
-
-#rcmKSearchpane {
- width: 400px;
-}
-#rcmKSearchpane ul li {
- width: 380px;
- text-overflow: ellipsis;
-}
-
-
-table.listing,
-table.records-table {
- display: block;
- width: auto;
- border-collapse: expression('separate', cellSpacing = '0');
-}
-
-.records-table tbody td span {
- white-space: nowrap;
-}
-
-table.listing {
- width: 100%;
-}
-
-ul.toolbarmenu li label {
- margin: 0;
- padding: 3px 8px;
-}
-
-.searchbox input {
- padding-top: 4px;
- padding-bottom: 2px;
-}
-
-#messagelistfooter #listcontrols,
-#messagelistfooter #listselectors,
-#messagelistfooter #countcontrols,
-.pagenav .countdisplay {
- display: inline;
-}
-
-#messagelistfooter #countcontrols {
- position: relative;
- top: -4px;
-}
-
-#messagecontframe,
-#preferences-frame {
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
-}
-
-#composeoptionstoggle {
- display: inline;
- top: 3px;
-}
-
-.propform {
- margin: 0;
-}
-
-.propform fieldset legend {
- color: #333;
- margin-left: -5px;
- padding-left: 0;
-}
-
-.contactfieldgroup legend {
- margin-left: -14px;
-}
-
-.contactfieldcontent .contactfieldbutton {
- top: -6px;
-}
-
-.tabsbar {
- height: 15px;
- padding-bottom: 15px;
-}
-
-.tabsbar .tablink {
- padding: 0 1px 0 0;
-}
-
-.minimal #topline {
- width: 100%;
- height: 18px;
- box-sizing: border-box;
-}
-
-
-.minimal #taskbar a:hover .tooltip {
- right: 34px;
- top: 1px;
-}
-
-
diff --git a/skins/larry/iehacks.css b/skins/larry/iehacks.css
deleted file mode 100644
index 7c1585107..000000000
--- a/skins/larry/iehacks.css
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- * Roundcube webmail CSS hacks for IE < 9
- *
- * Copyright (c) 2012, The Roundcube Dev Team
- *
- * The contents are subject to the Creative Commons Attribution-ShareAlike
- * License. It is allowed to copy, distribute, transmit and to adapt the work
- * by keeping credits to the original autors in the README file.
- * See http://creativecommons.org/licenses/by-sa/3.0/ for details.
- */
-
-input.button {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e6e6e6', GradientType=0);
-}
-
-.formbuttons input.button {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7b7b7b', endColorstr='#606060', GradientType=0);
-}
-
-.formbuttons input.button:active {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5c5c5c', endColorstr='#7b7b7b', GradientType=0);
-}
-
-input.button.mainaction {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#505050', endColorstr='#2a2e31', GradientType=0);
-}
-
-input.button.mainaction:active {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2a2e31', endColorstr='#505050', GradientType=0);
-}
-
-a.button,
-.buttongroup {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e6e6e6', GradientType=0);
-}
-
-a.button.pressed,
-a.button:active,
-input.button:active {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e6e6e6', endColorstr='#f9f9f9', GradientType=0);
-}
-
-.pagenav.dark a.button {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d8d8d8', endColorstr='#bababa', GradientType=0);
-}
-
-.pagenav.dark a.button.pressed {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bababa', endColorstr='#d8d8d8', GradientType=0);
-}
-
-.buttongroup a.button.selected {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#909090', endColorstr='#858585', GradientType=0);
-}
-
-#message.statusbar {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eaeaea', endColorstr='#c8c8c8', GradientType=0);
-}
-
-#messagestack div {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e0404040', endColorstr='#e0303030', GradientType=0);
-}
-
-.ui-dialog.popupmessage .ui-dialog-titlebar {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e3e3e3', endColorstr='#cfcfcf', GradientType=0);
-}
-
-.ui-dialog.popupmessage .ui-widget-content {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dcdcdc', GradientType=0);
-}
-
-#topnav {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#404040', endColorstr='#060606', GradientType=0);
-}
-
-#toplogo {
- position: absolute;
- top: 0px;
- left: 10px;
-}
-
-.records-table tr.selected td {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#019bc6', endColorstr='#017cb4', GradientType=0);
-}
-
-.contentbox .boxtitle,
-body.iframe .boxtitle {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dfdfdf', GradientType=0);
-}
-
-#login-form input.button {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e2e2e2', GradientType=0);
-}
-
-#login-form input.button:active {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc', endColorstr='#f9f9f9', GradientType=0);
-}
-
-.toolbar a.button {
- filter: none;
-}
-
-a.menuselector {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#dddddd', GradientType=0);
-}
-
-a.menuselector:active {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dddddd', endColorstr='#f8f8f8', GradientType=0);
-}
-
-.googie_list td.googie_list_onhover,
-ul.toolbarmenu li a.active:hover,
-#rcmKSearchpane ul li.selected {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00aad6', endColorstr='#008fc9', GradientType=0);
-}
-
-.tabsbar .tablink {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#d3d3d3 50%, #f8f8f8', GradientType=0);
-}
-
-.tabsbar .selected a {
- background-color: #fff;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#efefef', GradientType=0);
-}
-
-.toolbar a.button.disabled,
-.boxpagenav a.icon.disabled,
-.pagenav a.button.disabled span.inner,
-.boxfooter .listbutton.disabled .inner,
-.dropbutton a.button.disabled + .dropbuttontip {
- background-image: url(images/buttons.gif);
-}
-
-/*** addressbook.css ***/
-
-.contactfieldgroup {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7', endColorstr='#eeeeee', GradientType=0);
-}
-
-.contactfieldgroup legend {
- margin: -8px -8px 8px -8px;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f0f0f0', endColorstr='#d6d6d6', GradientType=0);
-}
-
-
-/*** mail.css ***/
-
-#messagelistfooter {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb', endColorstr='#c6c6c6', GradientType=0);
-}
-
-#mailboxlist li.mailbox .unreadcount {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#82acb5', endColorstr='#6a939f', GradientType=0);
-}
-
-#mailboxlist li.mailbox.selected > a .unreadcount {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#005d76', endColorstr='#004558', GradientType=0);
-}
-
-#messageheader, #partheader, #composeheaders {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f0f0f0', GradientType=0);
-}
-
-.moreheaderstoggle {
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbfbfb', endColorstr='#e9e9e9', GradientType=1);
-}
-
-#messagelist tbody tr td span.branch div {
- float: left;
- height: 18px;
-}
diff --git a/skins/larry/images/buttons.gif b/skins/larry/images/buttons.gif
deleted file mode 100644
index 8a4a78ee4..000000000
--- a/skins/larry/images/buttons.gif
+++ /dev/null
Binary files differ
diff --git a/skins/larry/includes/footer.html b/skins/larry/includes/footer.html
index 5cf9d1ec5..f421ec5b0 100644
--- a/skins/larry/includes/footer.html
+++ b/skins/larry/includes/footer.html
@@ -10,16 +10,3 @@ $(document).ready(function(){
});
</script>
-<!--[if lte IE 8]>
-<script type="text/javascript">
-
-// fix missing :last-child selectors
-$(document).ready(function(){
- $('ul.treelist ul').each(function(i,ul){
- $('li:last-child', ul).css('border-bottom', 0);
- });
-});
-
-</script>
-<![endif]-->
-
diff --git a/skins/larry/includes/links.html b/skins/larry/includes/links.html
index 69e477c2d..ce9863a6c 100644
--- a/skins/larry/includes/links.html
+++ b/skins/larry/includes/links.html
@@ -6,6 +6,4 @@
<link rel="stylesheet" type="text/css" href="/<roundcube:var name="env:task" />.css" />
<roundcube:endif />
<!--[if IE 9]><link rel="stylesheet" type="text/css" href="/svggradients.css" /><![endif]-->
-<!--[if lte IE 8]><link rel="stylesheet" type="text/css" href="/iehacks.css" /><![endif]-->
-<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="/ie7hacks.css" /><![endif]-->
<script type="text/javascript" src="/ui.js"></script> \ No newline at end of file
diff --git a/skins/larry/mail.css b/skins/larry/mail.css
index 6cfbcaac3..b9f24b8d0 100644
--- a/skins/larry/mail.css
+++ b/skins/larry/mail.css
@@ -34,7 +34,7 @@
#mailview-top {
position: absolute;
- top: 42px;
+ top: 0;
left: 0;
right: 0;
bottom: 0px;
@@ -59,7 +59,7 @@
#mailboxcontainer,
#messagelistcontainer {
position: absolute;
- top: 42px;
+ top: 0;
left: 0;
width: 100%;
bottom: 0;
@@ -514,6 +514,14 @@ table.messagelist.fixedcopy {
width: 155px;
}
+.messagelist tr td.folder {
+ width: 135px;
+}
+
+.messagelist tr td.hidden {
+ display: none;
+}
+
.messagelist tr.message {
/* background-color: #fff; */
}
@@ -1203,7 +1211,7 @@ div.message-partheaders .headers-table td.header {
#messagepartcontainer {
position: absolute;
- top: 42px;
+ top: 0;
left: 232px;
right: 0;
bottom: 0;
@@ -1217,7 +1225,7 @@ div.message-partheaders .headers-table td.header {
#messagepartheader {
position: absolute;
- top: 42px;
+ top: 0;
left: 0;
width: 220px;
bottom: 0;
@@ -1259,7 +1267,7 @@ div.message-partheaders .headers-table td.header {
#compose-contacts {
position: absolute;
- top: 42px;
+ top: 0;
left: 0;
width: 100%;
bottom: 0;
@@ -1362,7 +1370,7 @@ div.message-partheaders .headers-table td.header {
#compose-content {
position: absolute;
- top: 42px;
+ top: 0;
left: 0;
right: 0;
bottom: 0px;
diff --git a/skins/larry/styles.css b/skins/larry/styles.css
index 10e648970..6ec1572db 100644
--- a/skins/larry/styles.css
+++ b/skins/larry/styles.css
@@ -861,15 +861,11 @@ a.iconlink.upload {
border-width: 0 4px 4px;
border-color: #888 transparent;
/* reduce the damage in FF3.0 */
- display: block;
+ display: block;
width: 0;
z-index: 251;
}
-.ie8 .minimal #taskbar .tooltip:after {
- top: -6px;
-}
-
.minimal #taskbar a:hover .tooltip {
display: block;
top: 39px;
@@ -964,6 +960,14 @@ a.iconlink.upload {
bottom: 20px;
}
+#mainscreencontent {
+ position: absolute;
+ top: 42px;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
.minimal #mainscreen {
top: 62px;
}
@@ -996,11 +1000,6 @@ a.iconlink.upload {
}
.minwidth {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- width: 100%;
min-width: 1024px;
}
@@ -1199,10 +1198,6 @@ ul.treelist ul ul li a {
padding-left: 54px;
}
-ul.treelist ul ul ul li {
- margin-left: 16px;
-}
-
ul.treelist.iconized li a {
padding-left: 36px;
}
diff --git a/skins/larry/templates/addressbook.html b/skins/larry/templates/addressbook.html
index ebdce51be..97efdc6f3 100644
--- a/skins/larry/templates/addressbook.html
+++ b/skins/larry/templates/addressbook.html
@@ -24,6 +24,15 @@
<roundcube:container name="toolbar" id="addressbooktoolbar" />
</div>
+<!-- search box -->
+<div id="quicksearchbar" class="searchbox">
+<roundcube:object name="searchform" id="quicksearchbox" />
+<roundcube:button name="searchmenulink" id="searchmenulink" class="iconbutton searchoptions" onclick="UI.show_popup('searchmenu');return false" title="searchmod" content=" " />
+<roundcube:button command="reset-search" id="searchreset" class="iconbutton reset" title="resetsearch" content=" " />
+</div>
+
+<div id="mainscreencontent">
+
<div id="addressview-left">
<!-- sources/groups list -->
@@ -41,13 +50,6 @@
<div id="addressview-right">
-<!-- search box -->
-<div id="quicksearchbar" class="searchbox">
-<roundcube:object name="searchform" id="quicksearchbox" />
-<roundcube:button name="searchmenulink" id="searchmenulink" class="iconbutton searchoptions" onclick="UI.show_popup('searchmenu');return false" title="searchmod" content=" " />
-<roundcube:button command="reset-search" id="searchreset" class="iconbutton reset" title="resetsearch" content=" " />
-</div>
-
<!-- contacts list -->
<div id="addresslist" class="uibox listbox">
<roundcube:object name="addresslisttitle" label="contacts" tag="h2" class="boxtitle" />
@@ -73,9 +75,10 @@
</div>
</div>
-
</div><!-- end addressview-right -->
+</div><!-- end mainscreencontent -->
+
</div><!-- end mainscreen -->
<div id="exportmenu" class="popupmenu">
diff --git a/skins/larry/templates/compose.html b/skins/larry/templates/compose.html
index 11662d185..a7f2e7e2f 100644
--- a/skins/larry/templates/compose.html
+++ b/skins/larry/templates/compose.html
@@ -35,6 +35,8 @@
</div>
</div>
+<div id="mainscreencontent">
+
<div id="composeview-left">
<!-- inline address book -->
@@ -181,6 +183,8 @@
</div><!-- end mailview-right -->
+</div><!-- end mainscreencontent -->
+
</div><!-- end mainscreen -->
<div id="upload-dialog" class="propform popupdialog" title="<roundcube:label name='addattachment' />">
diff --git a/skins/larry/templates/mail.html b/skins/larry/templates/mail.html
index ff5f7549c..1e4a3ce8c 100644
--- a/skins/larry/templates/mail.html
+++ b/skins/larry/templates/mail.html
@@ -11,9 +11,8 @@
<roundcube:endif />
</style>
</head>
-<body>
+<body class="minwidth">
-<div class="minwidth">
<roundcube:include file="/includes/header.html" />
<div id="mainscreen">
@@ -24,6 +23,23 @@
<roundcube:include file="/includes/mailtoolbar.html" />
</div>
+<div id="messagesearchtools">
+
+<!-- search filter -->
+<div id="searchfilter">
+ <roundcube:object name="searchfilter" class="searchfilter decorated" />
+</div>
+
+<!-- search box -->
+<div id="quicksearchbar" class="searchbox">
+<roundcube:object name="searchform" id="quicksearchbox" />
+<roundcube:button name="searchmenulink" id="searchmenulink" class="iconbutton searchoptions" onclick="UI.show_popup('searchmenu');return false" title="searchmod" content=" " />
+<roundcube:button command="reset-search" id="searchreset" class="iconbutton reset" title="resetsearch" content=" " />
+</div>
+
+</div>
+
+<div id="mainscreencontent">
<div id="mailview-left">
<!-- folders list -->
@@ -43,22 +59,6 @@
<div id="mailview-right">
-<div id="messagesearchtools">
-
-<!-- search filter -->
-<div id="searchfilter">
- <roundcube:object name="searchfilter" class="searchfilter decorated" />
-</div>
-
-<!-- search box -->
-<div id="quicksearchbar" class="searchbox">
-<roundcube:object name="searchform" id="quicksearchbox" />
-<roundcube:button name="searchmenulink" id="searchmenulink" class="iconbutton searchoptions" onclick="UI.show_popup('searchmenu');return false" title="searchmod" content=" " />
-<roundcube:button command="reset-search" id="searchreset" class="iconbutton reset" title="resetsearch" content=" " />
-</div>
-
-</div>
-
<roundcube:if condition="config:preview_pane == true" />
<div id="mailview-top" class="uibox">
<roundcube:else />
@@ -76,13 +76,8 @@
<!-- list footer -->
<div id="messagelistfooter">
<div id="listcontrols">
- <roundcube:if condition="env:threads" />
- <a href="#list" class="iconbutton listmode" id="maillistmode" title="<roundcube:label name='list' />">List</a>
- <a href="#threads" class="iconbutton threadmode" id="mailthreadmode" title="<roundcube:label name='threads' />">Threads</a>
- <roundcube:else />
- <a href="#list" class="iconbutton listmode selected" title="<roundcube:label name='list' />" onclick="return false">List</a>
- <a href="#threads" class="iconbutton threadmode disabled" title="<roundcube:label name='threads' />" onclick="return false">Threads</a>
- <roundcube:endif />
+ <roundcube:button href="#list" command="set-listmode" prop="list" class="iconbutton listmode disabled" classAct="iconbutton listmode" id="maillistmode" title="list" content="List" />
+ <roundcube:button href="#threads" command="set-listmode" prop="threads" class="iconbutton threadmode disabled" classAct="iconbutton threadmode" id="mailthreadmode" title="threads" content="Threads" />
</div>
<div id="listselectors">
@@ -119,9 +114,9 @@
</div><!-- end mailview-right -->
-</div><!-- end mainscreen -->
+</div><!-- end mainscreencontent -->
-</div><!-- end minwidth -->
+</div><!-- end mainscreen -->
<div id="searchmenu" class="popupmenu">
<ul class="toolbarmenu">
@@ -132,6 +127,10 @@
<li><label><input type="checkbox" name="s_mods[]" value="bcc" id="s_mod_bcc" onclick="UI.set_searchmod(this)" /> <span><roundcube:label name="bcc" /></span></label></li>
<li><label><input type="checkbox" name="s_mods[]" value="body" id="s_mod_body" onclick="UI.set_searchmod(this)" /> <span><roundcube:label name="body" /></span></label></li>
<li><label><input type="checkbox" name="s_mods[]" value="text" id="s_mod_text" onclick="UI.set_searchmod(this)" /> <span><roundcube:label name="msgtext" /></span></label></li>
+ <li class="separator"><label><roundcube:label name="searchscope" /></label></li>
+ <li><label><input type="radio" name="s_scope" value="base" id="s_scope_base" onclick="UI.set_searchscope(this)" /> <span><roundcube:label name="currentfolder" /></span></label></li>
+ <li><label><input type="radio" name="s_scope" value="sub" id="s_scope_sub" onclick="UI.set_searchscope(this)" /> <span><roundcube:label name="subfolders" /></span></label></li>
+ <li><label><input type="radio" name="s_scope" value="all" id="s_scope_all" onclick="UI.set_searchscope(this)" /> <span><roundcube:label name="allfolders" /></span></label></li>
</ul>
</div>
@@ -146,7 +145,7 @@
<ul class="toolbarmenu" id="mailboxoptionsmenu">
<li><roundcube:button command="expunge" type="link" label="compact" classAct="active" /></li>
<li><roundcube:button command="purge" type="link" label="empty" classAct="active" /></li>
- <li><roundcube:button name="messageimport" type="link" class="active" label="importmessages" onclick="UI.show_uploadform()" /></li>
+ <li><roundcube:button command="import-messages" name="messageimport" type="link" classAct="active" label="importmessages" onclick="if(rcmail.command_enabled('import-messages'))UI.show_uploadform();return false" /></li>
<li><roundcube:button command="folders" task="settings" type="link" label="managefolders" classAct="active" /></li>
<roundcube:container name="mailboxoptions" id="mailboxoptionsmenu" />
</ul>
diff --git a/skins/larry/templates/message.html b/skins/larry/templates/message.html
index df92b7511..0343004f6 100644
--- a/skins/larry/templates/message.html
+++ b/skins/larry/templates/message.html
@@ -20,6 +20,8 @@
<roundcube:if condition="!env:extwin" />
+<div id="mainscreencontent">
+
<div id="mailview-left">
<!-- folders list -->
@@ -31,7 +33,7 @@
</div>
-<div id="mailview-right" class="offset uibox">
+<div id="mailview-right" class="uibox">
<roundcube:else />
<roundcube:object name="mailboxlist" folder_filter="mail" type="js" />
@@ -84,6 +86,10 @@
</div><!-- end mailview-right -->
+<roundcube:if condition="!env:extwin" />
+</div><!-- end mainscreencontent -->
+<roundcube:endif />
+
</div><!-- end mainscreen -->
<div id="attachmentmenu" class="popupmenu">
diff --git a/skins/larry/templates/messageerror.html b/skins/larry/templates/messageerror.html
index dbe373a12..d509ce804 100644
--- a/skins/larry/templates/messageerror.html
+++ b/skins/larry/templates/messageerror.html
@@ -23,6 +23,8 @@
</div>
</div>
+<div id="mainscreencontent">
+
<div id="mailview-left">
<!-- folders list -->
@@ -40,6 +42,8 @@
</div><!-- end mailview-right -->
+</div><!-- end mainscreencontent -->
+
</div><!-- end mainscreen -->
<roundcube:include file="/includes/footer.html" />
diff --git a/skins/larry/templates/messagepart.html b/skins/larry/templates/messagepart.html
index 0ec935873..3b878c9d7 100644
--- a/skins/larry/templates/messagepart.html
+++ b/skins/larry/templates/messagepart.html
@@ -16,6 +16,8 @@
<roundcube:container name="toolbar" id="messagetoolbar" />
</div>
+<div id="mainscreencontent">
+
<div id="messagepartheader" class="uibox listbox">
<h2 class="boxtitle"><roundcube:label name="properties" /></h2>
<div class="scroller">
@@ -30,6 +32,7 @@
</div>
</div>
+</div>
<roundcube:include file="/includes/footer.html" />
diff --git a/skins/larry/ui.js b/skins/larry/ui.js
index 44fc727f6..1cd75acaf 100644
--- a/skins/larry/ui.js
+++ b/skins/larry/ui.js
@@ -41,6 +41,7 @@ function rcube_mail_ui()
this.show_popup = show_popup;
this.add_popup = add_popup;
this.set_searchmod = set_searchmod;
+ this.set_searchscope = set_searchscope;
this.show_uploadform = show_uploadform;
this.show_header_row = show_header_row;
this.hide_header_row = hide_header_row;
@@ -138,7 +139,8 @@ function rcube_mail_ui()
if (rcmail.env.task == 'mail') {
rcmail.addEventListener('menu-open', menu_open)
.addEventListener('menu-save', menu_save)
- .addEventListener('responseafterlist', function(e){ switch_view_mode(rcmail.env.threading ? 'thread' : 'list') });
+ .addEventListener('responseafterlist', function(e){ switch_view_mode(rcmail.env.threading ? 'thread' : 'list', true) })
+ .addEventListener('responseaftersearch', function(e){ switch_view_mode(rcmail.env.threading ? 'thread' : 'list', true) });
var dragmenu = $('#dragmessagemenu');
if (dragmenu.length) {
@@ -329,7 +331,7 @@ function rcube_mail_ui()
});
// set min-width to show all toolbar buttons
- var screen = $('body > div.minwidth');
+ var screen = $('body.minwidth');
if (screen.length) {
screen.css('min-width', $('.toolbar').width() + $('#quicksearchbar').width() + $('#searchfilter').width() + 30);
}
@@ -378,6 +380,7 @@ function rcube_mail_ui()
config = popupconfig[id];
if (obj.is(':visible')
&& target.id != id+'link'
+ && target != obj.get(0) // check if scroll bar was clicked (#1489832)
&& !config.toggle
&& (!config.editable || !target_overlaps(target, obj.get(0)))
&& (!config.sticky || !rcube_mouse_is_over(e, obj.get(0)))
@@ -633,12 +636,6 @@ function rcube_mail_ui()
obj[show?'show':'hide']();
- // hide drop-down elements on buggy browsers
- if (bw.ie6 && config.overlap) {
- $('select').css('visibility', show?'hidden':'inherit');
- $('select', obj).css('visibility', 'inherit');
- }
-
return show;
}
@@ -729,13 +726,12 @@ function rcube_mail_ui()
/**
*
*/
- function switch_view_mode(mode)
+ function switch_view_mode(mode, force)
{
- if (rcmail.env.threading != (mode == 'thread'))
- rcmail.set_list_options(null, undefined, undefined, mode == 'thread' ? 1 : 0);
-
- $('#maillistmode, #mailthreadmode').removeClass('selected');
- $('#mail'+mode+'mode').addClass('selected');
+ if (force || !$('#mail'+mode+'mode').hasClass('disabled')) {
+ $('#maillistmode, #mailthreadmode').removeClass('selected');
+ $('#mail'+mode+'mode').addClass('selected');
+ }
}
@@ -761,11 +757,15 @@ function rcube_mail_ui()
obj = popups['searchmenu'],
list = $('input:checkbox[name="s_mods[]"]', obj),
mbox = rcmail.env.mailbox,
- mods = rcmail.env.search_mods;
+ mods = rcmail.env.search_mods,
+ scope = rcmail.env.search_scope || 'base';
if (rcmail.env.task == 'mail') {
+ if (scope == 'all')
+ mbox = '*';
mods = mods[mbox] ? mods[mbox] : mods['*'];
all = 'text';
+ $('input:radio[name="s_scope"]').prop('checked', false).filter('#s_scope_'+scope).prop('checked', true);
}
else {
all = '*';
@@ -856,7 +856,7 @@ function rcube_mail_ui()
// set checkboxes
$('input[name="list_col[]"]').each(function() {
- $(this).prop('checked', $.inArray(this.value, rcmail.env.coltypes) != -1);
+ $(this).prop('checked', $.inArray(this.value, rcmail.env.listcols) != -1);
});
$dialog.dialog({
@@ -896,7 +896,11 @@ function rcube_mail_ui()
{
var all, m, task = rcmail.env.task,
mods = rcmail.env.search_mods,
- mbox = rcmail.env.mailbox;
+ mbox = rcmail.env.mailbox,
+ scope = $('input[name="s_scope"]:checked').val();
+
+ if (scope == 'all')
+ mbox = '*';
if (!mods)
mods = {};
@@ -918,23 +922,29 @@ function rcube_mail_ui()
m[elem.value] = 1;
// mark all fields
- if (elem.value != all)
- return;
+ if (elem.value == all) {
+ $('input:checkbox[name="s_mods[]"]').map(function() {
+ if (this == elem)
+ return;
+
+ this.checked = true;
+ if (elem.checked) {
+ this.disabled = true;
+ delete m[this.value];
+ }
+ else {
+ this.disabled = false;
+ m[this.value] = 1;
+ }
+ });
+ }
- $('input:checkbox[name="s_mods[]"]').map(function() {
- if (this == elem)
- return;
+ rcmail.set_searchmods(m);
+ }
- this.checked = true;
- if (elem.checked) {
- this.disabled = true;
- delete m[this.value];
- }
- else {
- this.disabled = false;
- m[this.value] = 1;
- }
- });
+ function set_searchscope(elem)
+ {
+ rcmail.set_searchscope(elem.value);
}
function push_contactgroup(p)
@@ -1210,6 +1220,7 @@ function rcube_splitter(p)
{
this.p1 = $(this.p.p1);
this.p2 = $(this.p.p2);
+ this.parent = this.p1.parent();
// check if referenced elements exist, otherwise abort
if (!this.p1.length || !this.p2.length)
@@ -1222,7 +1233,7 @@ function rcube_splitter(p)
.attr('id', this.id)
.attr('unselectable', 'on')
.addClass('splitter ' + (this.horizontal ? 'splitter-h' : 'splitter-v'))
- .appendTo(this.p1.parent())
+ .appendTo(this.parent)
.bind('mousedown', onDragStart);
if (this.horizontal) {
@@ -1261,7 +1272,7 @@ function rcube_splitter(p)
this.p2.css('top', Math.ceil(this.pos + this.halfsize + 2) + 'px');
this.handle.css('top', Math.round(this.pos - this.halfsize + this.offset)+'px');
if (bw.ie) {
- var new_height = parseInt(this.p2.parent().outerHeight(), 10) - parseInt(this.p2.css('top'), 10) - (bw.ie8 ? 2 : 0);
+ var new_height = parseInt(this.parent.outerHeight(), 10) - parseInt(this.p2.css('top'), 10) - (bw.ie8 ? 2 : 0);
this.p2.css('height', (new_height > 0 ? new_height : 0) + 'px');
}
}
@@ -1270,7 +1281,7 @@ function rcube_splitter(p)
this.p2.css('left', Math.ceil(this.pos + this.halfsize) + 'px');
this.handle.css('left', Math.round(this.pos - this.halfsize + this.offset + 3)+'px');
if (bw.ie) {
- var new_width = parseInt(this.p2.parent().outerWidth(), 10) - parseInt(this.p2.css('left'), 10) ;
+ var new_width = parseInt(this.parent.outerWidth(), 10) - parseInt(this.p2.css('left'), 10) ;
this.p2.css('width', (new_width > 0 ? new_width : 0) + 'px');
}
}
@@ -1343,7 +1354,7 @@ function rcube_splitter(p)
var pos = rcube_event.get_mouse_pos(e);
if (me.relative) {
- var parent = me.p1.parent().offset();
+ var parent = me.parent.offset();
pos.x -= parent.left;
pos.y -= parent.top;
}
@@ -1351,12 +1362,18 @@ function rcube_splitter(p)
if (me.horizontal) {
if (((pos.y - me.halfsize) > me.p1pos.top) && ((pos.y + me.halfsize) < (me.p2pos.top + me.p2.outerHeight()))) {
me.pos = Math.max(me.min, pos.y - me.offset);
+ if (me.pos > me.min)
+ me.pos = Math.min(me.pos, me.parent.height() - me.min);
+
me.resize();
}
}
else {
if (((pos.x - me.halfsize) > me.p1pos.left) && ((pos.x + me.halfsize) < (me.p2pos.left + me.p2.outerWidth()))) {
me.pos = Math.max(me.min, pos.x - me.offset);
+ if (me.pos > me.min)
+ me.pos = Math.min(me.pos, me.parent.width() - me.min);
+
me.resize();
}
}
@@ -1395,11 +1412,11 @@ function rcube_splitter(p)
function onResize(e)
{
if (me.horizontal) {
- var new_height = parseInt(me.p2.parent().outerHeight(), 10) - parseInt(me.p2[0].style.top, 10) - (bw.ie8 ? 2 : 0);
+ var new_height = parseInt(me.parent.outerHeight(), 10) - parseInt(me.p2[0].style.top, 10) - (bw.ie8 ? 2 : 0);
me.p2.css('height', (new_height > 0 ? new_height : 0) +'px');
}
else {
- var new_width = parseInt(me.p2.parent().outerWidth(), 10) - parseInt(me.p2[0].style.left, 10);
+ var new_width = parseInt(me.parent.outerWidth(), 10) - parseInt(me.p2[0].style.left, 10);
me.p2.css('width', (new_width > 0 ? new_width : 0) + 'px');
}
};