Changeset 5634 in subversion
- Timestamp:
- Dec 20, 2011 5:21:12 AM (18 months ago)
- Location:
- trunk/roundcubemail
- Files:
-
- 3 added
- 8 edited
-
program/steps/addressbook/edit.inc (modified) (2 diffs)
-
skins/larry/addressbook.css (modified) (1 diff)
-
skins/larry/images/buttons.png (modified) (previous)
-
skins/larry/images/listicons.png (modified) (previous)
-
skins/larry/mail.css (modified) (5 diffs)
-
skins/larry/styles.css (modified) (13 diffs)
-
skins/larry/templates/addressbook.html (added)
-
skins/larry/templates/compose.html (modified) (1 diff)
-
skins/larry/templates/contact.html (added)
-
skins/larry/templates/contactedit.html (added)
-
skins/larry/ui.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/roundcubemail/program/steps/addressbook/edit.inc
r5041 r5634 177 177 global $OUTPUT; 178 178 179 // add ID if not given 180 if (!$attrib['id']) 181 $attrib['id'] = 'rcmUploadbox'; 179 // set defaults 180 $attrib += array('id' => 'rcmUploadbox', 'buttons' => 'yes'); 182 181 183 182 // find max filesize value … … 197 196 html::div(null, $input->show()) . 198 197 html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) . 199 html::div('buttons',198 (get_boolean($attrib['buttons']) ? html::div('buttons', 200 199 $button->show(rcube_label('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' . 201 200 $button->show(rcube_label('upload'), array('class' => 'button mainaction', 'onclick' => JS_OBJECT_NAME . ".command('upload-photo', this.form)")) 202 ) 201 ) : '') 203 202 ) 204 203 ); -
trunk/roundcubemail/skins/larry/addressbook.css
r5474 r5634 12 12 * $Id$ 13 13 */ 14 15 #addressview-left { 16 position: absolute; 17 top: 0; 18 left: 0; 19 width: 220px; 20 bottom: 0; 21 } 22 23 #addressview-right { 24 position: absolute; 25 top: 0; 26 left: 232px; 27 right: 0; 28 bottom: 0; 29 } 30 31 #addressbooktoolbar { 32 position: absolute; 33 top: -6px; 34 left: 0; 35 right: 0; 36 height: 40px; 37 white-space: nowrap; 38 } 39 40 #directorylistbox { 41 position: absolute; 42 top: 42px; 43 left: 0; 44 width: 100%; 45 bottom: 0; 46 } 47 48 #addresslist { 49 position: absolute; 50 top: 42px; 51 left: 0; 52 width: 280px; 53 bottom: 0; 54 } 55 56 #contacts-box { 57 position: absolute; 58 top: 42px; 59 left: 292px; 60 right: 0; 61 bottom: 0; 62 } 63 64 #addressview-left #quicksearchbar input { 65 width: 156px; 66 } 67 68 #directorylist li a, 69 #contacts-table .contact td.name { 70 background: url(images/listicons.png) -100px 0 no-repeat; 71 overflow: hidden; 72 padding-left: 36px; 73 text-overflow: ellipsis; 74 } 75 76 #directorylist li.addressbook a { 77 background-position: 6px -766px; 78 } 79 80 #directorylist li.addressbook.selected a { 81 background-position: 6px -791px; 82 } 83 84 #directorylist li.contactgroup a { 85 padding-left: 62px; 86 background-position: 32px -1555px; 87 } 88 89 #directorylist li.contactgroup.selected a { 90 background-position: 32px -1579px; 91 } 92 93 #contacts-table .contact td.name { 94 background-position: 6px -1603px; 95 } 96 97 #contacts-table .contact.selected td.name, 98 #contacts-table .contact.unfocused td.name { 99 background-position: 6px -1627px; 100 font-weight: bold; 101 } 102 103 #contact-frame { 104 position: absolute; 105 top: 0; 106 left: 0; 107 right: 0; 108 bottom: 28px; 109 border: 0; 110 } 111 112 #headerbuttons { 113 position: absolute; 114 top: 48px; 115 right: 10px; 116 width: auto; 117 z-index: 10; 118 } 119 120 #sourcename { 121 color: #999; 122 font-size: 10px; 123 margin: -5px 0 8px 2px; 124 } 125 126 #contactphoto { 127 float: left; 128 margin: 0 18px 20px 0; 129 width: 112px; 130 } 131 132 #contactpic { 133 width: 112px; 134 min-height: 112px; 135 background: white; 136 } 137 138 #contactpic img { 139 width: 112px; 140 } 141 142 #contacthead { 143 border: 0; 144 margin: 0 20em 1em 0; 145 padding: 0; 146 line-height: 1.5em; 147 font-size: 12px; 148 } 149 150 #contacthead .names span.namefield, 151 #contacthead .names input { 152 font-size: 140%; 153 font-weight: bold; 154 } 155 156 #contacthead .displayname span.namefield { 157 font-size: 120%; 158 font-weight: bold; 159 } 160 161 #contacthead span.nickname:before, 162 #contacthead span.nickname:after, 163 #contacthead input.ff_nickname:before, 164 #contacthead input.ff_nickname:after { 165 content: '"'; 166 } 167 168 #contacthead input { 169 margin-right: 6px; 170 margin-bottom: 0.2em; 171 } 172 173 #contacthead .names input, 174 #contacthead .addnames input { 175 width: 180px; 176 } 177 178 #contacthead input.ff_prefix, 179 #contacthead input.ff_suffix { 180 width: 90px; 181 } 182 183 a.deletebutton { 184 position: relative; 185 left: 5px; 186 top: -3px; 187 display: inline-block; 188 width: 24px; 189 height: 18px; 190 text-decoration: none; 191 text-indent: -1000px; 192 background: url(images/buttons.png) -7px -337px no-repeat; 193 } -
trunk/roundcubemail/skins/larry/mail.css
r5632 r5634 542 542 } 543 543 544 #messagelist tr td.flag span.unflagged:hover { 544 #messagelist tr td.flag span.unflagged:hover, 545 #messagelist tr td.status span.msgicon:hover { 545 546 background-position: 0 -1056px; 546 547 } … … 549 550 #messagelist tr td.subject span.unreadchildren { 550 551 background-position: 0 -1056px; 551 margin: 0 4px 0 0; 552 margin: 0 1px 0 0; 553 width: 24px; 552 554 } 553 555 … … 581 583 #messagelist tr td.status span.status, 582 584 #messagelist tr td.status span.unread, 583 #messagelist tr td.subject span.unread { 585 #messagelist tr td.subject span.unread, 586 #messagelist tr td.status span.unread:hover { 584 587 background-position: 0 -1016px; 588 } 589 590 #messagelist thead tr td.status span.status { 591 background-position: -24px -1016px; 585 592 } 586 593 … … 1133 1140 position: absolute; 1134 1141 right: 0; 1135 top: 0;1142 top: 1px; 1136 1143 bottom: 0; 1137 1144 width: 240px; 1138 1145 background: #f0f0f0; 1146 border-left: 1px solid #ddd; 1139 1147 padding: 8px; 1140 1148 overflow: auto; … … 1172 1180 } 1173 1181 1182 #composebody_toolbargroup { 1183 border-bottom: 1px solid #ddd; 1184 } 1185 1186 1187 -
trunk/roundcubemail/skins/larry/styles.css
r5632 r5634 36 36 input[type="password"], 37 37 textarea { 38 margin: 0; /* Safari by default adds a margin */ 38 39 padding: 4px; 39 40 border: 1px solid #b2b2b2; … … 83 84 -moz-box-shadow: 0 1px 1px 0 #ccc; 84 85 text-decoration: none; 86 outline: none; 85 87 } 86 88 … … 104 106 } 105 107 106 .formbuttons input.button:hover { 108 .formbuttons input.button:hover, 109 .formbuttons input.button:focus { 107 110 color: #f2f2f2; 108 111 border-color: #465864; … … 177 180 178 181 a.button:hover, 179 input.button:hover { 182 input.button:hover, 183 input.button:focus { 180 184 border-color: #4fadd5; 181 185 box-shadow: 0 0 2px 1px rgba(71,135,177, 0.6); … … 343 347 background-position: -7px -397px; 344 348 } 349 350 a.iconlink.delete { 351 background-position: -7px -337px; 352 } 353 345 354 346 355 /*** message bar ***/ … … 699 708 } 700 709 710 .boxfooter .listbutton.disabled { 711 opacity: 0.4; 712 } 713 701 714 .boxfooter .listbutton .inner { 702 715 display: inline-block; … … 708 721 709 722 .boxfooter .listbutton.add .inner { 710 background-position: 10px -1210px; 723 background-position: 10px -1211px; 724 } 725 726 .boxfooter .listbutton.delete .inner { 727 background-position: 10px -1252px; 711 728 } 712 729 … … 759 776 left: 0; 760 777 width: 100%; 778 z-index: 100; 761 779 } 762 780 … … 893 911 } 894 912 895 #login-form input.button:hover { 896 box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #fff; 897 -moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #fff; 898 -webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #fff; 899 -o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.6), inset 0 1px 0 0 #fff; 913 #login-form input.button:hover, 914 #login-form input.button:focus { 915 box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9), inset 0 1px 0 0 #fff; 916 -moz-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9), inset 0 1px 0 0 #fff; 917 -webkit-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9), inset 0 1px 0 0 #fff; 918 -o-box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9), inset 0 1px 0 0 #fff; 900 919 } 901 920 … … 983 1002 text-overflow: ellipsis; 984 1003 white-space: nowrap; 985 padding: 28px 2px 2px2px;1004 padding: 28px 2px 0 2px; 986 1005 text-shadow: 0px 1px 1px #eee; 987 1006 box-shadow: none; … … 1068 1087 .toolbar a.button.spellcheck { 1069 1088 background-position: center -930px; 1089 } 1090 1091 .toolbar a.button.search { 1092 background-position: center -970px; 1093 } 1094 1095 .toolbar a.button.import { 1096 background-position: center -1010px; 1097 } 1098 1099 .toolbar a.button.export { 1100 background-position: center -1050px; 1070 1101 } 1071 1102 … … 1227 1258 .popupdialog .formbuttons { 1228 1259 margin: 20px 0 4px 0; 1260 } 1261 1262 .ui-dialog .prompt input { 1263 display: block; 1264 margin: 8px 0; 1229 1265 } 1230 1266 … … 1301 1337 } 1302 1338 1339 1340 /*** fieldset tabs ***/ 1341 1342 .tabsbar { 1343 margin-bottom: 10px; 1344 padding-top: 15px; 1345 height: 27px; 1346 } 1347 1348 .tabsbar .tablink { 1349 padding: 15px 1px 15px 0; 1350 background: #f8f8f8; 1351 background: -moz-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); 1352 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(50%,#d3d3d3), color-stop(100%,#f8f8f8)); 1353 background: -webkit-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); 1354 background: -o-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); 1355 background: -ms-linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); 1356 background: linear-gradient(top, #f8f8f8 0%, #d3d3d3 50%, #f8f8f8 100%); 1357 } 1358 1359 .tabsbar .tablink:last-child { 1360 background: none; 1361 } 1362 1363 .tabsbar .tablink:last-child a { 1364 border-right: 0; 1365 } 1366 1367 .tabsbar .tablink a { 1368 padding: 15px; 1369 color: #999; 1370 font-size: 12px; 1371 font-weight: bold; 1372 text-decoration: none; 1373 background: #fff; 1374 border-right: 1px solid #fafafa; 1375 } 1376 1377 .tabsbar .tablink.selected a { 1378 color: #004458; 1379 background: #fff; 1380 background: -moz-linear-gradient(top, #fff 40%, #efefef 100%); 1381 background: -webkit-gradient(linear, left top, left bottom, color-stop(40%,#fff), color-stop(100%,#efefef)); 1382 background: -o-linear-gradient(top, #fff 40%, #efefef 100%); 1383 background: -ms-linear-gradient(top, #fff 40%, #efefef 100%); 1384 background: linear-gradient(top, #fff 40%, #efefef 100%); 1385 } 1386 1387 fieldset.tab { 1388 border: 0; 1389 padding: 0; 1390 } 1391 1392 -
trunk/roundcubemail/skins/larry/templates/compose.html
r5632 r5634 105 105 <div id="composeoptionsbox"> 106 106 <span class="composeoption"> 107 <label><roundcube:label name="options" /> </label>108 <a href="#options" id="composeoptionstoggle"> </a>107 <label><roundcube:label name="options" /> 108 <a href="#options" id="composeoptionstoggle"> </a></label> 109 109 </span> 110 110 -
trunk/roundcubemail/skins/larry/ui.js
r5632 r5634 35 35 // export public methods 36 36 this.init = init; 37 this.init_tabs = init_tabs; 37 38 this.show_popup = show_popup; 38 39 this.set_searchmod = set_searchmod; … … 69 70 layout_composeview(); 70 71 71 $('#composeoptionstoggle'). click(function(){72 $( this).toggleClass('enabled');72 $('#composeoptionstoggle').parent().click(function(){ 73 $('#composeoptionstoggle').toggleClass('enabled'); 73 74 $('#composeoptions').toggle(); 74 75 layout_composeview(); 75 76 return false; 76 }) ;77 }).css('cursor', 'pointer'); 77 78 78 79 new rcube_splitter({ id:'composesplitterv', p1:'#composeview-left', p2:'#composeview-right', … … 108 109 } 109 110 } 111 else if (rcmail.env.task == 'addressbook') { 112 113 } 114 115 // turn a group of fieldsets into tabs 116 $('.tabbed').each(function(idx, elem){ init_tabs(elem); }) 110 117 111 118 $(document.body).bind('mouseup', function(e){ … … 190 197 191 198 if (window.tinyMCE && tinyMCE.get('composebody')) { 192 $('#composebody_tbl').width((w+1 1)+'px').height('').css('margin-top', '1px');193 $('#composebody_ifr').width((w+1 1)+'px').height((h-24)+'px');199 $('#composebody_tbl').width((w+12)+'px').height('').css('margin-top', '1px'); 200 $('#composebody_ifr').width((w+12)+'px').height((h-22)+'px'); 194 201 } 195 202 else { … … 540 547 $('#' + which + '-link').show(); 541 548 this.resize_compose_body(); 549 } 550 551 552 /** 553 * Fieldsets-to-tabs converter 554 */ 555 function init_tabs(elem, current) 556 { 557 var id = elem.id, 558 content = $(elem), 559 fs = content.children('fieldset'); 560 561 if (!fs.length) 562 return; 563 564 if (!id) { 565 id = 'rcmtabcontainer'; 566 elem.attr('id', id); 567 } 568 569 // first hide not selected tabs 570 current = current || 0; 571 fs.each(function(idx) { if (idx != current) $(this).hide(); }); 572 573 // create tabs container 574 var tabs = $('<div>').addClass('tabsbar').prependTo(content); 575 576 // convert fildsets into tabs 577 fs.each(function(idx) { 578 var tab, a, elm = $(this), legend = elm.children('legend'); 579 580 // create a tab 581 a = $('<a>').text(legend.text()).attr('href', '#'); 582 tab = $('<span>').attr({'id': 'tab'+idx, 'class': 'tablink'}) 583 .click(function() { show_tab(id, idx); return false }) 584 585 // remove legend 586 legend.remove(); 587 // style fieldset 588 elm.addClass('tab'); 589 // style selected tab 590 if (idx == current) 591 tab.addClass('selected'); 592 593 // add the tab to container 594 tab.append(a).appendTo(tabs); 595 }); 596 } 597 598 function show_tab(id, index) 599 { 600 var fs = $('#'+id).children('fieldset'); 601 602 fs.each(function(idx) { 603 // Show/hide fieldset (tab content) 604 $(this)[index==idx ? 'show' : 'hide'](); 605 // Select/unselect tab 606 $('#tab'+idx).toggleClass('selected', idx==index); 607 }); 542 608 } 543 609 }
Note: See TracChangeset
for help on using the changeset viewer.
