vmware-nsx/doc/source/docbkx/quantum-api-1.0/js/trc/schema/layoutManager.js
Brad Hall 2c59ecdc82 Merge from launchpad quantum/diablo branch:
merge salv's fix to remove keystone middleware: lp855151
  one more 202->200 from tyler
  merge tylers additional 202 -> 200 changes
  merge additions to OVS readme describing running with multiple hosts
  merge brad's changes to make create API calls return 200, not 202
  merge unit test for showing unset attachment
  merging API docs branch
  Merge: lp:~yinliu2/quantum/bug856564
  Merge: lp:~bgh/quantum/bug850261

Change-Id: I56fe24c59f918737e57b562343c33ec6dcceac60
2011-09-23 20:17:44 -07:00

138 lines
4.2 KiB
JavaScript

/**
layoutManager.js
(C) 2009 Rackspace Hosting, All Rights Reserved
This file contains code that adjusts the layout of a schema
document after a dom has been loaded. It does not modify the
global scope.
**/
(function()
{
//
// Make sure dependecies are defined in the global scope, throw
// an error if they are not.
//
if ((!window.trc) ||
(!trc.util))
{
throw new Error("Require trc/util.js to be loaded.");
}
//
// This function should be called when the DOM is loaded so we
// can get to work adjusting things.
//
function InitLayoutManager()
{
layoutManager._init();
}
trc.util.browser.addInitFunction (InitLayoutManager);
var layoutManager={
//
// Initialization function...
//
_init : function()
{
this._adjustMain();
this._adjustSubElements();
},
//
// Applies appropriate styles to body and other main content
// tags.
//
_adjustMain : function()
{
//
// Change the class name for the correct YUI skin name.
//
var bodyTags = document.getElementsByTagName("body");
if (bodyTags.length == 0)
{
throw new Error ("Couldn't find body element, bad DOM?");
}
else
{
trc.util.dom.setClassName(bodyTags[0], "yui-skin-sam");
}
//
// Setout the layout...
//
var docDiv = document.getElementById("doc");
var mainDiv = document.getElementById("Main");
trc.util.dom.setClassName (docDiv, "yui-t1");
docDiv.setAttribute ("id", "doc3");
mainDiv.setAttribute ("id", "yui-main");
//
// Old IE browser hacks...
//
switch (trc.util.browser.detectIEVersion())
{
//
// IE 6 does not support fixed positioning. The
// following is a little hack to get it to work.
//
//
case 6:
var controllerDiv = document.getElementById("Controller");
controllerDiv.style.position="absolute";
window.setInterval((function(){
/* avoid leak by constantly querying for the
* controller. */
var ctrlDiv = document.getElementById("Controller");
ctrlDiv.style.top = document.documentElement.scrollTop+10;
}), 1000);
break;
//
// The controler doesn't work **at all** in IE 7
// don't even show it.
//
case 7:
var controllerDiv = document.getElementById("Controller");
controllerDiv.style.display = "none";
break;
}
},
//
// Adds appropriate classes for subElements...
//
_adjustSubElements : function()
{
var divs = document.getElementsByTagName("div");
for (var i=0;i<divs.length;i++)
{
var currentClass = divs[i].getAttribute ("class");
var newClassName = currentClass;
switch (currentClass)
{
case "SubItem" :
newClassName += " yui-gd";
break;
case "SubItemProps" :
newClassName += " yui-gd first";
break;
case "SubName" :
newClassName += " yui-u first";
break;
case "SubAttributes" :
case "SubDocumentation" :
newClassName += " yui-u";
break;
}
if (currentClass != newClassName)
{
trc.util.dom.setClassName (divs[i], newClassName);
}
}
}
};
})();