themes/admin/js/menu.js
author Dan
Mon, 11 Aug 2008 21:34:37 -0400
changeset 682 9523cc7d767c
parent 86 c162ca39db8f
child 699 c7d737202d59
permissions -rw-r--r--
Fixed System pages not being createable even with proper admin rights. This is hackish, it probably needs to have something implemented at the ACL level.

/*
 * IE doesn't like display: table.
 */

var TBL_SHOW = ( IE ) ? 'block' : 'table';

function admin_expand()
{
  var expander = document.getElementById('sidebar-hide');
  var content  = document.getElementById('sidebar-show');
  var holder  = document.getElementById('td-sidebar');
  if ( content.style.display == TBL_SHOW )
  {
    admin_collapse_real(expander, content, holder);
    createCookie('theme_admin_sidebar', 'collapsed', 3650);
  }
  else
  {
    admin_expand_real(expander, content, holder);
    createCookie('theme_admin_sidebar', 'expanded', 3650);
  }
}

function admin_collapse_real(expander, content, holder)
{
  expander.className = 'collapsed';
  content.style.display = 'none';
  holder.style.width = '0px';
  holder.style.paddingRight = '12px';
  holder.style.paddingLeft = '0px';
}

function admin_expand_real(expander, content, holder)
{
  expander.className = 'expanded';
  content.style.display = TBL_SHOW;
  holder.style.width = '230px';
  holder.style.paddingLeft = '12px';
  holder.style.paddingRight = '0px';
}

function expander_set_height()
{
  var expander = document.getElementById('sidebar-hide');
  var magic = $('header').Height() + $('pagebar_main').Height();
  var height = getHeight();
  var exheight = height - magic;
  expander.style.height = exheight + 'px';
  expander.style.top = magic + 'px';
  expander_set_pos();
}

function expander_onload()
{
  var expander = document.getElementById('sidebar-hide');
  var content  = document.getElementById('sidebar-show');
  var holder  = document.getElementById('td-sidebar');
  if ( readCookie('theme_admin_sidebar') == 'collapsed' )
  {
    admin_collapse_real(expander, content, holder);
  }
  else if ( readCookie('theme_admin_sidebar') == 'expanded' )
  {
    admin_expand_real(expander, content, holder);
  }
}

function expander_set_pos()
{
  var winheight = getHeight();
  var magic = $('header').Height() + $('pagebar_main').Height();
  var top = getScrollOffset();
  if ( typeof(top) != 'number' )
  {
    return null;
  }
  magic = magic - top;
  if ( magic < 0 )
    magic = 0;
  var bartop = magic + top;
  var barheight = winheight - magic;
  var expander = document.getElementById('sidebar-hide');
  expander.style.top = bartop + 'px';
  expander.style.height = barheight + 'px';
}

addOnloadHook(expander_set_height);
addOnloadHook(expander_onload);
window.onresize = expander_set_height;
window.onscroll = expander_set_pos;