/** * Global variables */ var provisionTabs; // Provision tabs /** * Set the provision tab * * @param obj Tab object */ function setProvisionTab(obj) { provisionTabs = obj; } /** * Get the provision tab * * @param Nothing * @return Tab object */ function getProvisionTab() { return provisionTabs; } /** * Load provision page */ function loadProvisionPage() { // If the page is loaded if ($('#content').children().length) { // Do not load again return; } // Get OS image names if (!$.cookie('imagenames')){ $.ajax( { url : 'lib/cmd.php', dataType : 'json', data : { cmd : 'tabdump', tgt : '', args : 'osimage', msg : '' }, success : setOSImageCookies }); } // Get groups if (!$.cookie('groups')){ $.ajax( { url : 'lib/cmd.php', dataType : 'json', data : { cmd : 'extnoderange', tgt : '/.*', args : 'subgroups', msg : '' }, success : setGroupsCookies }); } // Create info bar var infoBar = createInfoBar('Select a platform to provision or re-provision a node on, then click Ok.'); // Create provision page var provPg = $('
'); provPg.append(infoBar); // Create provision tab var tab = new Tab('provisionPageTabs'); setProvisionTab(tab); tab.init(); $('#content').append(tab.object()); // Create radio buttons for platforms var hwList = $('
    Platforms available:
'); var esx = $('
  • ESX
  • '); var kvm = $('
  • KVM
  • '); var zvm = $('
  • z\/VM
  • '); var ipmi = $('
  • iDataPlex
  • '); var blade = $('
  • BladeCenter
  • '); var hmc = $('
  • System p
  • '); hwList.append(esx); hwList.append(kvm); hwList.append(zvm); hwList.append(blade); hwList.append(ipmi); hwList.append(hmc); provPg.append(hwList); /** * Ok */ var okBtn = createButton('Ok'); okBtn.bind('click', function(event) { // Get hardware that was selected var hw = $(this).parent().find('input[name="hw"]:checked').val(); var inst = 0; var newTabId = hw + 'ProvisionTab' + inst; while ($('#' + newTabId).length) { // If one already exists, generate another one inst = inst + 1; newTabId = hw + 'ProvisionTab' + inst; } // Create an instance of the plugin var title = ''; var plugin; switch (hw) { case "kvm": plugin = new kvmPlugin(); title = 'KVM'; break; case "esx": plugin = new esxPlugin(); title = 'ESX'; break; case "blade": plugin = new bladePlugin(); title = 'BladeCenter'; break; case "hmc": plugin = new hmcPlugin(); title = 'System p'; break; case "ipmi": plugin = new ipmiPlugin(); title = 'iDataPlex'; break; case "zvm": plugin = new zvmPlugin(); title = 'z/VM'; break; } // Select tab tab.add(newTabId, title, '', true); tab.select(newTabId); plugin.loadProvisionPage(newTabId); }); provPg.append(okBtn); // Add provision tab tab.add('provisionTab', 'Provision', provPg, false); // Add image tab tab.add('imagesTab', 'Images', '', false); // Load tabs onselect $('#provisionPageTabs').bind('tabsselect', function(event, ui){ // Load image page if (!$('#imagesTab').children().length && ui.index == 1) { $('#imagesTab').append($('
    ').append(createLoader(''))); loadImagesPage(); } }); // Open the quick provision tab if (window.location.search) { tab.add('quickProvisionTab', 'Quick Provision', '', true); tab.select('quickProvisionTab'); var provForm = $('
    '); $('#quickProvisionTab').append(provForm); appendProvisionSection('quick', provForm); } }