summaryrefslogtreecommitdiff
path: root/skins/larry/ui.js
diff options
context:
space:
mode:
Diffstat (limited to 'skins/larry/ui.js')
-rw-r--r--skins/larry/ui.js61
1 files changed, 45 insertions, 16 deletions
diff --git a/skins/larry/ui.js b/skins/larry/ui.js
index 675f61bc3..780ce7a62 100644
--- a/skins/larry/ui.js
+++ b/skins/larry/ui.js
@@ -108,7 +108,7 @@ function rcube_mail_ui()
$('#mailthreadmode').addClass(rcmail.env.threading ? 'selected' : '').click(function(e){ switch_view_mode('thread'); return false });
mailviewsplit = new rcube_splitter({ id:'mailviewsplitter', p1:'#mailview-top', p2:'#mailview-bottom',
- orientation:'h', relative:true, start:310, min:150, size:0, offset:-22 });
+ orientation:'h', relative:true, start:310, min:150, size:12, offset:4 });
if (previewframe)
mailviewsplit.init();
@@ -170,23 +170,32 @@ function rcube_mail_ui()
return;
}
- var title = $('option', this).first().text();
+ var select = $(this),
+ height = Math.max(select.height(), 26) - 2,
+ width = select.width() - 22,
+ title = $('option', this).first().text();
+
if ($('option:selected', this).val() != '')
title = $('option:selected', this).text();
- var select = $(this)
- .change(function(){
+ var overlay = $('<a class="menuselector"><span class="handle">' + title + '</span></a>')
+ .css('position', 'absolute')
+ .offset(select.position())
+ .insertAfter(select);
+
+ overlay.children().width(width).height(height).css('line-height', (height - 1) + 'px');
+
+ select.change(function() {
var val = $('option:selected', this).text();
$(this).next().children().html(val);
});
- $('<a class="menuselector dropdownselector"><span class="handle">' + title + '</span></a>')
- .css('position', 'absolute')
- .offset(select.position())
- .insertAfter(select)
- .children().width(select.outerWidth() - 40);
+ var parent = select.parent();
+ if (parent.css('position') != 'absolute')
+ parent.css('position', 'relative');
- select.parent().css('position', 'relative');
+ // re-set original select width to fix click action and options width in some browsers
+ select.width(overlay.width());
});
$(document.body)
@@ -209,6 +218,7 @@ function rcube_mail_ui()
// don't use $(window).resize() due to some unwanted side-effects
window.onresize = resize;
+ resize();
}
/**
@@ -246,6 +256,20 @@ function rcube_mail_ui()
if (rcmail.env.task == 'mail' && rcmail.env.action == 'compose') {
layout_composeview();
}
+
+ // make iframe footer buttons float if scrolling is active
+ $('body.iframe .footerleft').each(function(){
+ var footer = $(this),
+ body = $(document.body),
+ floating = footer.hasClass('floating'),
+ overflow = body.outerHeight(true) > $(window).height();
+ if (overflow != floating) {
+ var action = overflow ? 'addClass' : 'removeClass';
+ footer[action]('floating');
+ body[action]('floatingbuttons');
+ }
+ })
+
}
/**
@@ -254,7 +278,7 @@ function rcube_mail_ui()
function message_displayed(p)
{
// show a popup dialog on errors
- if (p.type == 'error') {
+ if (p.type == 'error' && rcmail.env.task != 'login') {
if (!me.messagedialog) {
me.messagedialog = $('<div>').addClass('popupdialog');
}
@@ -305,8 +329,7 @@ function rcube_mail_ui()
function resize_leftcol(splitter)
{
- if (splitter)
- $('#quicksearchbar input').css('width', (splitter.pos - 70) + 'px');
+ // STUB
}
@@ -334,7 +357,13 @@ function rcube_mail_ui()
function update_quota(p)
{
- var y = p.total ? Math.ceil(p.percent / 100 * 20) * 24 : 0;
+ var step = 24, step_count = 20,
+ y = p.total ? Math.ceil(p.percent / 100 * step_count) * step : 0;
+
+ // never show full-circle if quota is close to 100% but below.
+ if (p.total && y == step * step_count && p.percent < 100)
+ y -= step;
+
$('#quotadisplay').css('background-position', '0 -'+y+'px');
}
@@ -435,7 +464,7 @@ function rcube_mail_ui()
button.removeClass().addClass(visible ? 'enabled' : 'closed');
if (visible) {
- $('#mailview-top').css({ bottom:'auto' });
+ $('#mailview-top').removeClass('fullheight').css({ bottom:'auto' });
$('#mailview-bottom').css({ height:'auto' });
rcmail.env.contentframe = 'messagecontframe';
@@ -454,7 +483,7 @@ function rcube_mail_ui()
rcmail.env.contentframe = null;
rcmail.show_contentframe(false);
- $('#mailview-top').css({ height:'auto', bottom:'28px' });
+ $('#mailview-top').addClass('fullheight').css({ height:'auto', bottom:'28px' });
$('#mailview-bottom').css({ top:'auto', height:'26px' });
if (mailviewsplit.handle)