From 6d67255a5d604217a7f8e4ef3783b8fb199f6946 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Fri, 22 Nov 2013 11:15:37 +0100 Subject: 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... --- skins/larry/ui.js | 46 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) (limited to 'skins') diff --git a/skins/larry/ui.js b/skins/larry/ui.js index 75dcba8ec..7cc795432 100644 --- a/skins/larry/ui.js +++ b/skins/larry/ui.js @@ -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 -- cgit v1.2.3