From 0a99882d332afd336c4f6c3f859bd6e84cef73f9 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Mon, 23 Aug 2010 14:56:13 -0600 Subject: [PATCH] Move some more RTL code out of tree renderer --- framework/Core/lib/Horde/Core/Tree/Javascript.php | 2 -- horde/js/hordetree.js | 18 ++++++++---------- horde/js/sidebar.js | 17 +++++++++++------ horde/services/sidebar.php | 1 - horde/templates/sidebar/sidebar.inc | 2 +- horde/themes/rtl.css | 3 +++ horde/themes/screen.css | 7 +++++-- 7 files changed, 28 insertions(+), 22 deletions(-) diff --git a/framework/Core/lib/Horde/Core/Tree/Javascript.php b/framework/Core/lib/Horde/Core/Tree/Javascript.php index 933550942..c743ba7d2 100644 --- a/framework/Core/lib/Horde/Core/Tree/Javascript.php +++ b/framework/Core/lib/Horde/Core/Tree/Javascript.php @@ -96,8 +96,6 @@ class Horde_Core_Tree_Javascript extends Horde_Core_Tree_Html 'imgNullOnly' => $this->_images['null_only'], 'imgLeaf' => $this->_images['leaf'], - 'floatDir' => (empty($GLOBALS['registry']->nlsconfig['rtl'][$GLOBALS['language']]) ? 'left' : 'right'), - 'initTree' => $this->renderNodeDefinitions() ); diff --git a/horde/js/hordetree.js b/horde/js/hordetree.js index cc4be0fee..320c1c9b1 100644 --- a/horde/js/hordetree.js +++ b/horde/js/hordetree.js @@ -36,10 +36,6 @@ var Horde_Tree = Class.create({ this.node_pos = []; this.output = document.createDocumentFragment(); - if (!this.div_temp) { - this.div_temp = new Element('DIV').setStyle({ cssFloat: this.opts.floatDir }); - } - this._buildHeader(); this.rootNodes.each(function(r) { @@ -71,7 +67,7 @@ var Horde_Tree = Class.create({ var div = new Element('DIV'); this.opts.header.each(function(h) { - var tmp = this.div_temp.clone().insert(h.html ? h.html : ' '); + var tmp = new Element('DIV').insert(h.html ? h.html : ' '); if (h['class']) { tmp.addClassName(h['class']); @@ -84,6 +80,8 @@ var Horde_Tree = Class.create({ if (h.align) { tmp.setStyle({ textAlign: h.align }); } + + div.appendChild(tmp); }, this); this.output.appendChild(div); @@ -127,15 +125,15 @@ var Horde_Tree = Class.create({ // any given cell of content. if (node.extra && node.extra[0]) { node.extra[0].each(function(n) { - div.insert(this._divWidth(this.div_temp.clone().update(n), column++)); + div.insert(this._divWidth(new Element('DIV').update(n), column++)); }, this); } for (; column < this.opts.extraColsLeft; ++column) { - div.insert(this._divWidth(this.div_temp.clone().update(' '), column)); + div.insert(this._divWidth(new Element('DIV').update(' '), column)); } - div.insert(this._divWidth(this.div_temp.clone(), column)); + div.insert(this._divWidth(new Element('DIV'), column)); tmp = document.createDocumentFragment(); for (i = Number(this.renderStatic); i < node.indent; ++i) { @@ -201,12 +199,12 @@ var Horde_Tree = Class.create({ if (node.extra && node.extra[1]) { node.extra[1].each(function(n) { - div.insert(this._divWidth(this.div_temp.clone().update(n), column++)); + div.insert(this._divWidth(new Element('DIV').update(n), column++)); }, this); } for (; column < this.opts.extraColsRight; ++column) { - div.insert(this._divWidth(this.div_temp.clone().update(' '), column)); + div.insert(this._divWidth(new Element('DIV').update(' '), column)); } p.appendChild(div); diff --git a/horde/js/sidebar.js b/horde/js/sidebar.js index ef9ff5806..8a0938cf7 100644 --- a/horde/js/sidebar.js +++ b/horde/js/sidebar.js @@ -7,7 +7,7 @@ var HordeSidebar = { // Variables set in services/sidebar.php: - // domain, path, refresh, rtl, tree, url, width + // domain, path, refresh, tree, url, width toggleSidebar: function() { @@ -49,14 +49,19 @@ var HordeSidebar = { setMargin: function(expanded) { - var margin = expanded + var hb = $('horde_body'), + margin = expanded ? this.width : $('hiddenSidebar').down().getWidth(); - if (this.rtl) { - $('horde_body').setStyle({ marginRight: margin + 'px' }); - } else { - $('horde_body').setStyle({ marginLeft: margin + 'px' }); + switch ($(document.body).getStyle('direction')) { + case 'ltr': + hb.setStyle({ marginLeft: margin + 'px' }); + break; + + case 'rtl': + hb.setStyle({ marginRight: margin + 'px' }); + break; } }, diff --git a/horde/services/sidebar.php b/horde/services/sidebar.php index 8268df805..0fb0489ca 100644 --- a/horde/services/sidebar.php +++ b/horde/services/sidebar.php @@ -42,7 +42,6 @@ if (!Horde_Util::getFormData('ajaxui') && 'HordeSidebar.domain = ' . Horde_Serialize::serialize($conf['cookie']['domain'], Horde_Serialize::JSON, $charset), 'HordeSidebar.path = ' . Horde_Serialize::serialize($conf['cookie']['path'], Horde_Serialize::JSON, $charset), 'HordeSidebar.refresh = ' . intval($prefs->getValue('menu_refresh_time')), - 'HordeSidebar.rtl = ' . $rtl, 'HordeSidebar.url = ' . Horde_Serialize::serialize(strval($ajax_url), Horde_Serialize::JSON, $charset), 'HordeSidebar.width = ' . $width )); diff --git a/horde/templates/sidebar/sidebar.inc b/horde/templates/sidebar/sidebar.inc index 099426862..5f7b04499 100644 --- a/horde/templates/sidebar/sidebar.inc +++ b/horde/templates/sidebar/sidebar.inc @@ -1,6 +1,6 @@