diff options
Diffstat (limited to 'skins/larry')
-rw-r--r-- | skins/larry/addressbook.css | 6 | ||||
-rw-r--r-- | skins/larry/ie7hacks.css | 213 | ||||
-rw-r--r-- | skins/larry/iehacks.css | 170 | ||||
-rw-r--r-- | skins/larry/images/buttons.gif | bin | 14997 -> 0 bytes | |||
-rw-r--r-- | skins/larry/includes/footer.html | 13 | ||||
-rw-r--r-- | skins/larry/includes/links.html | 2 | ||||
-rw-r--r-- | skins/larry/mail.css | 20 | ||||
-rw-r--r-- | skins/larry/styles.css | 23 | ||||
-rw-r--r-- | skins/larry/templates/addressbook.html | 19 | ||||
-rw-r--r-- | skins/larry/templates/compose.html | 4 | ||||
-rw-r--r-- | skins/larry/templates/mail.html | 55 | ||||
-rw-r--r-- | skins/larry/templates/message.html | 8 | ||||
-rw-r--r-- | skins/larry/templates/messageerror.html | 4 | ||||
-rw-r--r-- | skins/larry/templates/messagepart.html | 3 | ||||
-rw-r--r-- | skins/larry/ui.js | 93 |
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 Binary files differdeleted file mode 100644 index 8a4a78ee4..000000000 --- a/skins/larry/images/buttons.gif +++ /dev/null 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'); } }; |