From a4e71c5c389336852bcca8bc729f67f5ce13cdd0 Mon Sep 17 00:00:00 2001 From: thomascube Date: Wed, 1 Feb 2012 07:40:30 +0000 Subject: [PATCH] Improve tabs and splitter functionality --- skins/larry/ui.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/skins/larry/ui.js b/skins/larry/ui.js index d69e7faf9..1b03166c4 100644 --- a/skins/larry/ui.js +++ b/skins/larry/ui.js @@ -712,8 +712,8 @@ function rcube_mail_ui() */ function init_tabs(elem, current) { - var id = elem.id, - content = $(elem), + var content = $(elem), + id = content.get(0).id, fs = content.children('fieldset'); if (!fs.length) @@ -721,7 +721,7 @@ function rcube_mail_ui() if (!id) { id = 'rcmtabcontainer'; - elem.attr('id', id); + content.attr('id', id); } // first hide not selected tabs @@ -798,7 +798,7 @@ function rcube_mail_ui() /** - * Roundcube splitter GUI class + * Roundcube UI splitter class * * @constructor */ @@ -823,6 +823,10 @@ function rcube_splitter(p) this.p1 = $(this.p.p1); this.p2 = $(this.p.p2); + // check if referenced elements exist, otherwise abort + if (!this.p1.length || !this.p2.length) + return; + // create and position the handle for this splitter this.p1pos = this.relative ? this.p1.position() : this.p1.offset(); this.p2pos = this.relative ? this.p2.position() : this.p2.offset(); @@ -842,11 +846,9 @@ function rcube_splitter(p) this.handle.css({ left:left+'px', top:'0px' }); } - this.elm = this.handle.get(0); - // listen to window resize on IE if (bw.ie) - $(window).resize(function(e){ onResize(e) }); + $(window).resize(onResize); // read saved position from cookie var cookie = bw.get_cookie(this.id);