function setLoggedInText(principal){
$("#loggedinas").html( "Logged in as " + principal);
}
function whoamiSuccess(response){
$.cookie("whoami", response.result.summary);
setLoggedInText(response.result.summary);
}
function unimplemented(facet){
showContent();
$('#content').append("
Not yet implemented.
");
}
var parentTabs;
function getParentTabs(){
if (!parentTabs){
parentTabs = {
user : "identity",
group : "identity",
host : "identity",
hostgroup: "identity",
netgroup : "identity",
service : "identity",
policy : "policy",
config : "config"
};
}
return parentTabs;
}
function buildNavigation(){
params= ipa_parse_qs();
var tab = params["tab"];
if (!tab){
tab=$.cookie("lastpage");
}
if ( !tab ) {
tab="user";
}
var facet = params["facet"];
var siteMap = [{name:"IDENTITY",
tab:"identity", //Default subtab
children : [
{name:"Users",tab:"user", setup: setupUser},
{name:"Groups",tab:"group",setup: setupGroup},
{name:"Hosts",tab:"host", setup: setupHost},
{name:"Hostgroups",
tab:"hostgroup",
setup: setupHostgroup},
{name:"Netgroups",tab:"netgroup", setup:setupNetgroup},
{name:"Services",tab:"service", setup:setupService}
]},
{name:"POLICY", tab:"policy", setup: unimplemented},
{name:"CONFIG", tab:"config", setup: unimplemented }];
//TODO autogen this from the site map
var separator = $("");
var currentMain = siteMap[0];
for (var i = 0 ; i < siteMap.length; i++){
current = siteMap[i];
if (i > 0){
$('#main-nav').append(separator.clone());
}
var tabClass = "main-nav-off";
if (tab == current.tab){
currentMain = current;
tabClass = "main-nav-on";
}
var span = $("", {
"class": tabClass,
id: "span-tab-"+current.tab,
});
$("",{
"id": "tab-"+current.tab,
href: "#tab="+current.tab,
text: current.name,
}).appendTo(span);
span.appendTo("#main-nav")
}
if (currentMain.children){
var selectedSub;
for (var i =0; i < currentMain.children.length; i++){
var currentSub = currentMain.children[i];
var tabClass = "sub-nav-off";
if (tab == currentSub.tab){
tabClass = "sub-nav-on";
selectedSub = currentSub;
}
var span = $("", {
"class": tabClass,
id: "span-subtab-"+currentSub.tab
});
$("",{
"id": "subtab-"+currentSub.tab,
href: "#tab="+currentSub.tab,
text: currentSub.name,
//click: setActiveSubtab,
}).appendTo(span);
span.appendTo("#sub-nav");
}
if (selectedSub && selectedSub.setup){
selectedSub.setup(facet);
}
}else if (currentMain && currentMain.setup){
currentMain.setup(facet);
}
var whoami = $.cookie("whoami");
if (whoami == null){
ipa_cmd( 'whoami', [], {}, whoamiSuccess, null,null);
}else{
setLoggedInText(whoami);
}
}
var setupFunctions;
function getSetupFunctions(){
if (!setupFunctions){
setupFunctions = {
user: setupUser,
group: setupGroup,
host: setupHost,
hostgroup:setupHostgroup,
netgroup:setupNetgroup,
service:setupService,
};
}
return setupFunctions;
}
$(window).bind( 'hashchange', function(e) {
var queryParams = ipa_parse_qs();
var tab=queryParams.tab;
if (!tab){
tab = 'user';
}
$(".sub-nav-on").removeClass('sub-nav-on').addClass("sub-nav-off")
var active = "#span-subtab-"+tab;
$(active).removeClass('sub-nav-off').addClass("sub-nav-on")
setActiveTab(getParentTabs()[tab]);
getSetupFunctions()[tab](queryParams.facet );
});
function setActiveTab(tabName){
$(".main-nav-on").removeClass('main-nav-on').addClass("main-nav-off")
var activeTab = "#span-tab-"+tabName;
$(activeTab).removeClass('main-nav-off').addClass("main-nav-on")
}
function buildFacetNavigation(facets){
setupFacetNavigation(qs['tab'], qs['pkey'],qs['facet'], facets);
}
function setupFacetNavigation(tab, pkey,facet,facets){
$('#viewtype').css("display","block");
$("#viewtype").html("");
for (var i =0; i < facets.length; i++){
var li = $('').appendTo($("#viewtype"));
if (facets[i] == facet){
$('');
li.html(facets[i]);
}else{
$('').appendTo(li);
$('',{
href: "#tab="+tab+"&facet="+facets[i]+"&pkey="+pkey,
html: facets[i]
}).appendTo(li);
}
}
}
function clearOld(){
$('h1').html("");
$('#viewtype').css("display","none");
$('#search').css("display","none");
$('#details').css("display","none");
$('#content').css("display","none");
$('#associations').css("display","none");
$('#searchResultsTable thead').html("");
$('#searchResultsTable tfoot').html("");
$('#searchResultsTable tbody').find("tr").remove();
$("#searchButtons").html("");
$('#content').html("");
//remove old details
$('.entryattrs dd').remove();
$('#detail-lists').html("
");
}
function showSearch(){
clearOld();
$('#search').css("display","block");
$("#filter").css("display","block");
}
function showContent(){
clearOld();
$('#viewtype').css("display","block");
$('#content').css("display","block");
}
function showDetails(){
clearOld();
$('#viewtype').css("display","block");
$('#details').css("display","block");
}
function showAssociations(){
clearOld();
$('#associations').css("display","block");
}