64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
/**
|
|
* Horde sidebar javascript.
|
|
*
|
|
* @copyright 2014-2015 Horde LLC
|
|
* @license LGPL-2 (http://www.horde.org/licenses/lgpl)
|
|
*/
|
|
|
|
var HordeSidebar = {
|
|
|
|
// Vars set in Horde_Sidebar
|
|
// opts, text
|
|
|
|
refreshEvents: function()
|
|
{
|
|
$('horde-sidebar').select('div.horde-resources div').each(function(s) {
|
|
s.observe('mouseover', s.addClassName.curry('horde-resource-over'));
|
|
s.observe('mouseout', s.removeClassName.curry('horde-resource-over'));
|
|
});
|
|
},
|
|
|
|
clickHandler: function(e)
|
|
{
|
|
if (e.isRightClick() || typeof e.element != 'function') {
|
|
return;
|
|
}
|
|
|
|
var elt = e.element(),
|
|
params = ';DOMAIN=' + this.opts.cookieDomain
|
|
+ ';PATH=' + this.opts.cookiePath + ';';
|
|
|
|
while (Object.isElement(elt)) {
|
|
switch (elt.className) {
|
|
case 'horde-collapse':
|
|
elt.up().next().blindUp({ duration: 0.5, queue: 'end' });
|
|
elt.title = this.text.expand;
|
|
elt.removeClassName('horde-collapse');
|
|
elt.addClassName('horde-expand');
|
|
document.cookie = 'horde_sidebar_c_' + elt.identify() + '=1' + params;
|
|
return;
|
|
|
|
case 'horde-expand':
|
|
elt.up().next().blindDown({ duration: 0.5, queue: 'end' });
|
|
elt.title = this.text.collapse;
|
|
elt.removeClassName('horde-expand');
|
|
elt.addClassName('horde-collapse');
|
|
document.cookie = 'horde_sidebar_c_' + elt.identify() + '=0' + params;
|
|
return;
|
|
}
|
|
|
|
elt = elt.up();
|
|
}
|
|
// Workaround Firebug bug.
|
|
Prototype.emptyFunction();
|
|
},
|
|
|
|
onDomLoad: function()
|
|
{
|
|
this.refreshEvents();
|
|
}
|
|
};
|
|
|
|
document.observe('dom:loaded', HordeSidebar.onDomLoad.bind(HordeSidebar));
|
|
document.observe('click', HordeSidebar.clickHandler.bindAsEventListener(HordeSidebar));
|