|
|
|
@ -796,10 +796,10 @@ function iframe_events()
|
|
|
|
|
// Abbreviate mailbox names to fit width of the container
|
|
|
|
|
function rcube_render_mailboxlist()
|
|
|
|
|
{
|
|
|
|
|
var list = $('#mailboxlist > li a, #mailboxlist ul:visible > li a');
|
|
|
|
|
var list = $('#mailboxlist > li > a, #mailboxlist ul:visible > li > a');
|
|
|
|
|
|
|
|
|
|
// it's too slow with really big number of folders, especially on IE
|
|
|
|
|
if (list.length > (bw.ie ? 25 : 100))
|
|
|
|
|
if (list.length > (bw.ie && bw.vendver < 9 ? 40 : 100))
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
list.each(function() {
|
|
|
|
@ -807,13 +807,14 @@ function rcube_render_mailboxlist()
|
|
|
|
|
text = elem.data('text');
|
|
|
|
|
|
|
|
|
|
if (!text) {
|
|
|
|
|
text = elem.text().replace(/\s+\(.+$/, '');
|
|
|
|
|
text = elem.text().replace(/\s+\([0-9]+\)$/, '');
|
|
|
|
|
elem.data('text', text);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (text.length < 6)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
var abbrev = fit_string_to_size(text, elem, elem.width() - elem.children('span.unreadcount').width());
|
|
|
|
|
var abbrev = fit_string_to_size(text, elem, elem.width() - elem.children('span.unreadcount').width() - 16);
|
|
|
|
|
if (abbrev != text)
|
|
|
|
|
elem.attr('title', text);
|
|
|
|
|
elem.contents().filter(function(){ return (this.nodeType == 3); }).get(0).data = abbrev;
|
|
|
|
@ -823,19 +824,23 @@ function rcube_render_mailboxlist()
|
|
|
|
|
// inspired by https://gist.github.com/24261/7fdb113f1e26111bd78c0c6fe515f6c0bf418af5
|
|
|
|
|
function fit_string_to_size(str, elem, len)
|
|
|
|
|
{
|
|
|
|
|
var w, span, result = str, ellip = '...';
|
|
|
|
|
var w, span, $span, result = str, ellip = '...';
|
|
|
|
|
|
|
|
|
|
if (!rcmail.env.tmp_span) {
|
|
|
|
|
// it should be appended to elem to use the same css style
|
|
|
|
|
// but for performance reasons we'll append it to body (once)
|
|
|
|
|
span = $('<b>').css({visibility: 'hidden', padding: '0px'})
|
|
|
|
|
span = $('<b>').css({visibility: 'hidden', padding: '0px',
|
|
|
|
|
'font-family': elem.css('font-family'),
|
|
|
|
|
'font-size': elem.css('font-size')})
|
|
|
|
|
.appendTo($('body', document)).get(0);
|
|
|
|
|
rcmail.env.tmp_span = span;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
span = rcmail.env.tmp_span;
|
|
|
|
|
}
|
|
|
|
|
span.innerHTML = result;
|
|
|
|
|
|
|
|
|
|
$span = $(span);
|
|
|
|
|
$span.text(result);
|
|
|
|
|
|
|
|
|
|
// on first run, check if string fits into the length already.
|
|
|
|
|
w = span.offsetWidth;
|
|
|
|
@ -848,7 +853,7 @@ function fit_string_to_size(str, elem, len)
|
|
|
|
|
while (true) {
|
|
|
|
|
offLeft = mid - cut;
|
|
|
|
|
offRight = mid + cut;
|
|
|
|
|
span.innerHTML = str.substring(0,offLeft) + ellip + str.substring(offRight);
|
|
|
|
|
$span.text(str.substring(0,offLeft) + ellip + str.substring(offRight));
|
|
|
|
|
|
|
|
|
|
// break loop if string fits size
|
|
|
|
|
if (offLeft < 3 || span.offsetWidth)
|
|
|
|
@ -947,6 +952,7 @@ function rcube_init_mail_ui()
|
|
|
|
|
rcube_event.add_listener({ object:rcmail_ui, method:'body_mouseup', event:'mouseup' });
|
|
|
|
|
rcube_event.add_listener({ object:rcmail_ui, method:'body_keydown', event:'keydown' });
|
|
|
|
|
|
|
|
|
|
rcmail.addEventListener('init', function() {
|
|
|
|
|
if (rcmail.env.quota_content)
|
|
|
|
|
update_quota(rcmail.env.quota_content);
|
|
|
|
|
rcmail.addEventListener('setquota', update_quota);
|
|
|
|
@ -963,10 +969,11 @@ function rcube_init_mail_ui()
|
|
|
|
|
rcmail.gui_object('dragmenu', 'dragmenu');
|
|
|
|
|
|
|
|
|
|
if (rcmail.gui_objects.mailboxlist) {
|
|
|
|
|
rcmail.treelist.addEventListener('expand', rcube_render_mailboxlist);
|
|
|
|
|
rcmail.addEventListener('responseaftermark', rcube_render_mailboxlist);
|
|
|
|
|
rcmail.addEventListener('responseaftergetunread', rcube_render_mailboxlist);
|
|
|
|
|
rcmail.addEventListener('responseaftercheck-recent', rcube_render_mailboxlist);
|
|
|
|
|
rcmail.addEventListener('aftercollapse-folder', rcube_render_mailboxlist);
|
|
|
|
|
rcmail.addEventListener('responseafterrefresh', rcube_render_mailboxlist);
|
|
|
|
|
rcmail.addEventListener('afterimport-messages', function(){ rcmail_ui.show_popup('uploadform', false); });
|
|
|
|
|
|
|
|
|
|
new rcmail_scroller('#mailboxlist-content', '#mailboxlist-title', '#mailboxlist-footer');
|
|
|
|
@ -992,4 +999,5 @@ function rcube_init_mail_ui()
|
|
|
|
|
if (rcmail.gui_objects.subscriptionlist)
|
|
|
|
|
new rcmail_scroller('#folderlist-content', '#folderlist-title', '#folderlist-footer');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|