Remember compose-options collapse status and display them by default; Use abstracted functions to read and set UI settings. To be replaced with local storage...

pull/156/head
Thomas Bruederli 11 years ago
parent 21f10c7ad1
commit 6d67255a5d

@ -44,11 +44,13 @@ function rcube_mail_ui()
this.show_header_row = show_header_row;
this.hide_header_row = hide_header_row;
this.update_quota = update_quota;
this.get_pref = get_pref;
this.save_pref = save_pref;
// set minimal mode on small screens (don't wait for document.ready)
if (window.$ && document.body) {
var minmode = rcmail.get_cookie('minimalmode');
var minmode = get_pref('minimalmode');
if (parseInt(minmode) || (minmode === null && $(window).height() < 850)) {
$(document.body).addClass('minimal');
}
@ -67,6 +69,24 @@ function rcube_mail_ui()
env[key] = val;
}
/**
* Get preference stored in browser
*/
function get_pref(key)
{
return rcmail.get_cookie(key);
}
/**
* Saves preference value to browser storage
*/
function save_pref(key, val)
{
var exp = new Date();
exp.setYear(exp.getFullYear() + 1);
rcmail.set_cookie(key, val, exp);
}
/**
* Initialize UI
* Called on document.ready
@ -82,7 +102,7 @@ function rcube_mail_ui()
$('#taskbar .minmodetoggle').click(function(e){
var ismin = $(document.body).toggleClass('minimal').hasClass('minimal');
rcmail.set_cookie('minimalmode', ismin?1:0);
save_pref('minimalmode', ismin?1:0);
$(window).resize();
});
@ -133,9 +153,14 @@ function rcube_mail_ui()
$('#composeoptionstoggle').toggleClass('remove');
$('#composeoptions').toggle();
layout_composeview();
save_pref('composeoptions', $('#composeoptions').is(':visible') ? '1' : '0');
return false;
}).css('cursor', 'pointer');
if (get_pref('composeoptions') !== '0') {
$('#composeoptionstoggle').click();
}
// adjust hight when textarea starts to scroll
$("textarea[name='_to'], textarea[name='_cc'], textarea[name='_bcc']").change(function(e){ adjust_compose_editfields(this); }).change();
rcmail.addEventListener('autocomplete_insert', function(p){ adjust_compose_editfields(p.field); });
@ -605,7 +630,7 @@ function rcube_mail_ui()
var button = $(e.target),
frame = $('#mailpreviewframe'),
visible = !frame.is(':visible'),
splitter = mailviewsplit.pos || parseInt(rcmail.get_cookie('mailviewsplitter') || 320),
splitter = mailviewsplit.pos || parseInt(get_pref('mailviewsplitter') || 320),
topstyles, bottomstyles, uid;
frame.toggle();
@ -1178,7 +1203,7 @@ function rcube_splitter(p)
$(window).resize(onResize);
// read saved position from cookie
var cookie = rcmail.get_cookie(this.id);
var cookie = this.get_cookie();
if (cookie && !isNaN(cookie)) {
this.pos = parseFloat(cookie);
this.resize();
@ -1332,14 +1357,21 @@ function rcube_splitter(p)
}
};
/**
* Get saved splitter position from cookie
*/
this.get_cookie = function()
{
return window.UI ? UI.get_pref(this.id) : null;
};
/**
* Saves splitter position in cookie
*/
this.set_cookie = function()
{
var exp = new Date();
exp.setYear(exp.getFullYear() + 1);
rcmail.set_cookie(this.id, this.pos, exp);
if (window.UI)
UI.save_pref(this.id, this.pos);
};
} // end class rcube_splitter

Loading…
Cancel
Save