Changeset 4663 in subversion
- Timestamp:
- Apr 15, 2011 12:21:23 PM (2 years ago)
- Location:
- trunk/roundcubemail/skins/default
- Files:
-
- 3 edited
-
functions.js (modified) (2 diffs)
-
splitter.js (modified) (2 diffs)
-
templates/mail.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/roundcubemail/skins/default/functions.js
r4566 r4663 498 498 rcmail.gui_object('message_dragmenu', 'dragmessagemenu'); 499 499 500 if (rcmail.gui_objects.mailboxlist) { 501 rcmail.addEventListener('responseaftermark', rcube_render_mailboxlist); 502 rcmail.addEventListener('responseaftergetunread', rcube_render_mailboxlist); 503 rcmail.addEventListener('responseaftercheck-recent', rcube_render_mailboxlist); 504 rcmail.addEventListener('aftercollapse-folder', rcube_render_mailboxlist); 505 rcube_render_mailboxlist(); 506 } 507 500 508 if (rcmail.env.action == 'compose') 501 509 rcmail_ui.init_compose_form(); … … 514 522 } 515 523 524 // Abbreviate mailbox names to fit width of the container 525 function rcube_render_mailboxlist() 526 { 527 if (bw.ie6) // doesn't work well on IE6 528 return; 529 530 $('#mailboxlist > li a, #mailboxlist ul:visible > li a').each(function(){ 531 var elem = $(this); 532 var text = elem.data('text'); 533 if (!text) { 534 text = elem.text().replace(/\s+\(.+$/, ''); 535 elem.data('text', text); 536 } 537 if (text.length < 6) 538 return; 539 540 var abbrev = fit_string_to_size(text, elem, elem.width() - elem.children('span.unreadcount').width()); 541 if (abbrev != text) 542 elem.attr('title', text); 543 elem.contents().filter(function(){ return (this.nodeType == 3); }).get(0).data = abbrev; 544 }); 545 } 546 547 // inspired by https://gist.github.com/24261/7fdb113f1e26111bd78c0c6fe515f6c0bf418af5 548 function fit_string_to_size(str, elem, len) 549 { 550 var result = str; 551 var ellip = '...'; 552 var span = $('<b>').css({ visibility:'hidden', padding:'0px' }).appendTo(elem).get(0); 553 554 // on first run, check if string fits into the length already. 555 span.innerHTML = result; 556 if (span.offsetWidth > len) { 557 var cut = Math.max(1, Math.floor(str.length * ((span.offsetWidth - len) / span.offsetWidth) / 2)), 558 mid = Math.floor(str.length / 2); 559 var offLeft = mid, offRight = mid; 560 while (true) { 561 offLeft = mid - cut; 562 offRight = mid + cut; 563 span.innerHTML = str.substring(0,offLeft) + ellip + str.substring(offRight); 564 565 // break loop if string fits size 566 if (span.offsetWidth <= len || offLeft < 3) 567 break; 568 569 cut++; 570 } 571 572 // build resulting string 573 result = str.substring(0,offLeft) + ellip + str.substring(offRight); 574 } 575 576 span.parentNode.removeChild(span); 577 return result; 578 } -
trunk/roundcubemail/skins/default/splitter.js
r4335 r4663 16 16 this.relative = attrib.relative ? true : false; 17 17 this.drag_active = false; 18 this.callback = attrib.callback; 18 19 19 20 this.init = function() … … 169 170 this.set_cookie(); 170 171 172 if (typeof this.callback == 'function') 173 this.callback(this); 174 171 175 return bw.safari ? true : rcube_event.cancel(e); 172 176 }; -
trunk/roundcubemail/skins/default/templates/mail.html
r4617 r4663 29 29 <div id="mailboxlist-title" class="boxtitle"><roundcube:label name="mailboxlist" /></div> 30 30 <div class="boxlistcontent"> 31 <roundcube:object name="mailboxlist" id="mailboxlist" maxlength="25"/>31 <roundcube:object name="mailboxlist" id="mailboxlist" /> 32 32 </div> 33 33 <div class="boxfooter"> … … 44 44 45 45 <script type="text/javascript"> 46 var mailviewsplitv = new rcube_splitter({id:'mailviewsplitterv', p1: 'mailleftcontainer', p2: 'mailrightcontainer', orientation: 'v', relative: true, start: 165 });46 var mailviewsplitv = new rcube_splitter({id:'mailviewsplitterv', p1: 'mailleftcontainer', p2: 'mailrightcontainer', orientation: 'v', relative: true, start: 165, callback: rcube_render_mailboxlist }); 47 47 rcmail.add_onload('mailviewsplitv.init()'); 48 48 </script>
Note: See TracChangeset
for help on using the changeset viewer.
