diff --git a/xCAT-UI/js/configure/configure.js b/xCAT-UI/js/configure/configure.js index b468084a3..1ccd52642 100644 --- a/xCAT-UI/js/configure/configure.js +++ b/xCAT-UI/js/configure/configure.js @@ -191,7 +191,7 @@ function loadTable(data) { $('#' + tabId).find('img').remove(); // Create info bar - var infoBar = createInfoBar('Click on a cell to edit. Click outside the table to write to the cell.
Once you are satisfied with how the table looks, click on Save.'); + var infoBar = createInfoBar('Click on a cell to edit. ddClick outside the table to write to the cell. Once you are satisfied with how the table looks, click on Save.'); $('#' + tabId).append(infoBar); // Create action bar @@ -287,82 +287,27 @@ function loadTable(data) { }); // Turn table into datatable - dTable = $('#' + id + 'Datatable').dataTable(); - setConfigDatatable(id + 'Datatable', dTable); - - // Create add row button - var addBar = $('
'); - $('#' + tabId).append(addBar); - var addRowBtn = createButton('Add row'); - addBar.append(addRowBtn); - - // Create save and undo buttons - var saveBtn = createButton('Save'); - var undoBtn = createButton('Undo'); - actionBar.append(saveBtn); - actionBar.append(undoBtn); - - /** - * Add row - */ - addRowBtn.bind('click', function(event) { - // Create an empty row - var row = new Array(); - - /** - * Remove button - */ - row.push(''); - for ( var i = 0; i < headers.length; i++) { - row.push(''); + dTable = $('#' + id + 'Datatable').dataTable({ + 'iDisplayLength': 50, + 'bLengthChange': false, + "sScrollX": "100%", + "bAutoWidth": true, + "fnInitComplete": function() { + } - - // Get tab ID - var tabId = $(this).parent().parent().attr('id'); - // Get table name - var tableName = tabId.replace('Tab', ''); - // Get table ID - var tableId = tableName + 'Datatable'; - - // Get datatable - var dTable = getConfigDatatable(tableId); - // Add the row to the data table - dTable.fnAddData(row); - - // Enable editable columns (again) - // Do not make 1st column editable - $('#' + tabId + ' td:not(td:nth-child(1))').editable( - function(value, settings) { - // Get column index - var colPos = this.cellIndex; - // Get row index - var rowPos = dTable.fnGetPosition(this.parentNode); - - // Update datatable - dTable.fnUpdate(value, rowPos, colPos); - - return (value); - }, { - onblur : 'submit', // Clicking outside editable area submits changes - type : 'textarea', - placeholder: ' ', - height : '30px' // The height of the text area - }); }); - /** - * Save changes - */ - saveBtn.bind('click', function(event) { - // Get tab ID - var tabId = $(this).parent().parent().attr('id'); - // Get table name - var tableName = tabId.replace('Tab', ''); - // Get table ID - var tableId = tableName + 'Datatable'; - + // Create action bar + var actionBar = $('
'); + + var saveLnk = $('Save'); + saveLnk.click(function() { + // Get table ID and name + var tableId = $(this).parents('.dataTables_wrapper').attr('id').replace('_wrapper', ''); + var tableName = tableId.replace('Datatable', ''); + // Get datatable - var dTable = getConfigDatatable(tableId); + var dTable = $('#' + tableId).dataTable(); // Get the nodes from the table var dRows = dTable.fnGetNodes(); @@ -390,9 +335,6 @@ function loadTable(data) { } } - // Update datatable - setConfigDatatable(tableId, dTable); - // Update xCAT table $.ajax( { type : 'POST', @@ -407,22 +349,15 @@ function loadTable(data) { } }); }); - - /** - * Undo changes - */ - undoBtn.bind('click', function(event) { - // Get tab ID - var tabId = $(this).parent().parent().attr('id'); - // Get table name - var tableName = tabId.replace('Tab', ''); + + var undoLnk = $('Undo'); + undoLnk.click(function() { // Get table ID - var tableId = tableName + 'Datatable'; - + var tableId = $(this).parents('.dataTables_wrapper').attr('id').replace('_wrapper', ''); + // Get datatable - var dTable = getConfigDatatable(tableId); - // Get the nodes from the table - + var dTable = $('#' + tableId).dataTable(); + // Clear entire datatable dTable.fnClearTable(); @@ -451,6 +386,66 @@ function loadTable(data) { height : '30px' // The height of the text area }); }); + + var addLnk = $('Add row'); + addLnk.click(function() { + // Create an empty row + var row = new Array(); + + /** + * Remove button + */ + row.push(''); + for ( var i = 0; i < headers.length; i++) { + row.push(''); + } + + // Get table ID and name + var tableId = $(this).parents('.dataTables_wrapper').attr('id').replace('_wrapper', ''); + var tableName = tableId.replace('Datatable', ''); + + // Get datatable + var dTable = $('#' + tableId).dataTable(); + + // Add the row to the data table + dTable.fnAddData(row); + + // Enable editable columns (again) + // Do not make 1st column editable + $('#' + tableId + ' td:not(td:nth-child(1))').editable( + function(value, settings) { + // Get column index + var colPos = this.cellIndex; + // Get row index + var rowPos = dTable.fnGetPosition(this.parentNode); + + // Update datatable + dTable.fnUpdate(value, rowPos, colPos); + + return (value); + }, { + onblur : 'submit', // Clicking outside editable area submits changes + type : 'textarea', + placeholder: ' ', + height : '30px' // The height of the text area + }); + }); + + // Actions + var actionsLnk = 'Actions'; + var actsMenu = createMenu([saveLnk, undoLnk, addLnk]); + + // Create an action menu + var actionsMenu = createMenu([ [ actionsLnk, actsMenu ] ]); + actionsMenu.superfish(); + actionsMenu.css('display', 'inline-block'); + actionBar.append(actionsMenu); + + // Create a division to hold actions menu + var menuDiv = $(''); + $('#' + id + 'Datatable_wrapper').prepend(menuDiv); + menuDiv.append(actionBar); + $('#' + id + 'Datatable_filter').appendTo(menuDiv); } /** @@ -462,10 +457,10 @@ function loadTable(data) { */ function deleteRow(obj) { // Get table ID - var tableId = $(obj).parent().parent().parent().parent().attr('id'); + var tableId = $(obj).parents('table').attr('id'); // Get datatable - var dTable = getConfigDatatable(tableId); + var dTable = $('#' + tableId).dataTable(); // Get all nodes within the datatable var rows = dTable.fnGetNodes(); diff --git a/xCAT-UI/js/configure/discover.js b/xCAT-UI/js/configure/discover.js index 18a96f32d..d6a041070 100644 --- a/xCAT-UI/js/configure/discover.js +++ b/xCAT-UI/js/configure/discover.js @@ -43,9 +43,7 @@ var discoverEnv; /** * create the discover page * - * @param - * - * @return + * @return nothing */ function loadDiscoverPage(){ currentStep = 0; @@ -60,9 +58,7 @@ function loadDiscoverPage(){ /** * update the step show are on the left side of discover page * - * @param - * - * @return + * @return nothing */ function updateDiscoverStep(){ $('#discoverStepDiv').empty(); @@ -81,9 +77,7 @@ function updateDiscoverStep(){ /** * create the navigator buttons on the bottom of discover page * - * @param - * - * @return + * @return nothing */ function createDiscoverButtons(){ var buttonDiv = $('
'); @@ -113,9 +107,7 @@ function createDiscoverButtons(){ /** * create the next button base on the currentStep, the last step does not need this button * - * @param - * - * @return + * @return nothing */ function createNextButton(){ var tempFlag = true; @@ -143,9 +135,7 @@ function createNextButton(){ /** * create the next button base on the currentStep, the first step does not need this button * - * @param - * - * @return + * @return nothing */ function createBackButton(){ var tempFlag = true; @@ -174,9 +164,8 @@ function createBackButton(){ /** * get the input value on discover page * - * @param - * envName : value's name(discoverEnv's key) - * + * @param envName + * value's name(discoverEnv's key) * @return * if there is assciate value, return the value. * else return null. @@ -193,10 +182,11 @@ function getDiscoverEnv(envName){ /** * set the input value on discover page * - * @param - * envName : value's name(discoverEnv's key) - * envValue: value - * @return null. + * @param envName + * value's name(discoverEnv's key) + * @param envValue + * value + * @return nothing */ function setDiscoverEnv(envName, envValue){ if (envName){ @@ -207,10 +197,9 @@ function setDiscoverEnv(envName, envValue){ /** * delete the input value on discover page * - * @param - * envName : value's name(discoverEnv's key) - * - * @return null. + * @param envName + * value's name(discoverEnv's key) + * @return nothing */ function removeDiscoverEnv(envName){ if (discoverEnv[envName]){ @@ -221,12 +210,8 @@ function removeDiscoverEnv(envName){ /** * Expand the noderange into node names. * - * @param - * nodeRange : - * - * @return - * node names array. - * + * @param nodeRange + * @return node names array */ function expandNR(nodeRange){ var retArray = new Array(); @@ -294,8 +279,6 @@ function expandNR(nodeRange){ /** * collect all inputs' value from the page * - * @param - * * @return true: this step is correct, can go to the next page * false: this step contains error. */ @@ -318,9 +301,7 @@ function collectInputValue(){ * Step 1: show the wizard's function * platform selector(system P or system X) * - * @param - * - * @return + * @return nothing */ function initSelectPlatform(){ var temp = ''; @@ -351,9 +332,7 @@ function initSelectPlatform(){ /** * Step 1: Get the platform type * - * @param - * - * @return + * @return true */ function getPlatform(){ var radioValue = $('#discoverContentDiv :checked').attr('id'); @@ -367,16 +346,14 @@ function getPlatform(){ * hmcs' name range, number and start ip * frames' name range, number and start ip * drawers' name range, number and start ip - * - * @param - * - * @return + * @return nothing */ function initBasicPattern(){ $('#discoverContentDiv').empty(); $('.tooltip').remove(); var showString = '

' + steps[currentStep] + '

'; showString += ''; + //Frame title showString += ''; //Frame Name @@ -433,9 +410,9 @@ function initBasicPattern(){ /** * Step 2: check basic patterns * when user input the basic patterns, we should check if the input is correct. - * @param - * - * @return + * @param operType + * type of operation + * @return true or false */ function checkBasicPattern(operType){ collectInputValue(); @@ -547,9 +524,7 @@ function checkBasicPattern(operType){ /** * Step 3: allowed the users to edit the super node condigure file * - * @param - * - * @return + * @return nothing */ function initSupernode(){ $('#discoverContentDiv').empty(); @@ -582,9 +557,9 @@ function initSupernode(){ /** * Step 3: check the super node configure file * - * @param - * - * @return + * @param operType + * type of operation + * @return true or false */ function checkSupernode(operType){ collectInputValue(); @@ -662,9 +637,9 @@ function calcCec(spConfigStr){ /** * Step 4: show the field which need to be configured in site table * - * @param - * - * @return + * @param operType + * type of operation + * @return nothing */ function initSiteTable(operType){ $('#discoverContentDiv').empty(); @@ -715,13 +690,12 @@ function initSiteTable(operType){ /** * Step 4: when the values are ready, create the table - * - * @param * - * @return + * @return nothing */ function showSiteArea(){ var showString = '

Frames:

'; + //domain name: showString += ''; @@ -814,9 +788,9 @@ function calcEndIp(ipStart, num){ /** * Step 4: check the input are all filled * - * @param - * - * @return + * @param operType + * type of operation + * @return true or false */ function checkSiteTable(operType){ $('#discoverContentDiv input[name=ipStart]').trigger('change'); @@ -851,10 +825,8 @@ function checkSiteTable(operType){ /** * Step 5: told users to power on machines - * - * @param * - * @return + * @return nothing */ function initPoweronHardware(){ $('#discoverContentDiv').empty(); @@ -872,10 +844,8 @@ function initPoweronHardware(){ /** * Step 6: discover all frames from the cluster and map all mtms with frame name - * - * @param - * - * @return + * + * @return nothing */ function initDiscoverFrames(){ $('#discoverContentDiv').empty(); @@ -901,6 +871,7 @@ function initDiscoverFrames(){ } statBar.find('div').append('Discovering all Frames by lsslp.').append(createLoader()); + //use lsslp to find all bpas in cluster $.ajax({ url : 'lib/cmd.php', @@ -1001,9 +972,9 @@ function deleteMap(obj){ /** * Step 6: write the frame and mtms map file * - * @param - * - * @return + * @param operType + * type of operation + * @return true or false */ function checkFrameMtms(operType){ //check the number of radio button @@ -1051,8 +1022,8 @@ function checkFrameMtms(operType){ * Step 7: create the xcatsetup configure file and run xcatsetup to define all objects * in xcat database. * - * @param - * + * @param operType + * type of operation * @return */ function initConfig(operType){ @@ -1085,9 +1056,7 @@ function initConfig(operType){ /** * Step 7: create the xcat configure file * - * @param - * - * @return + * @return nothing */ function createSetupFile(){ var fileContent = ''; @@ -1150,9 +1119,7 @@ function createSetupFile(){ /** * Step 7: run the xcatsetup command * - * @param - * - * @return + * @return nothing */ function runSetup(){ $('#setupLine').append(createLoader()); @@ -1178,10 +1145,8 @@ function runSetup(){ /** * Step 7: create the dhcp configure file - * - * @param * - * @return + * @return nothing */ function configDHCP(){ $('#dhcpLine').append(createLoader()); @@ -1208,9 +1173,9 @@ function configDHCP(){ /** * Step 8: discover all hmc,cec in cluster and update into xcat database * - * @param - * - * @return + * @param operType + * type of operation + * @return nothing */ function initUpdateDefinition(operType){ $('#discoverContentDiv').empty(); @@ -1236,9 +1201,7 @@ function initUpdateDefinition(operType){ /** * Step 8: write all the lsslp -s FRAME info into database * - * @param - * - * @return + * @return nothing */ function lsslpWriteFrame(){ $('#frameLine').append(createLoader()); @@ -1264,10 +1227,8 @@ function lsslpWriteFrame(){ /** * Step 8: write all the lsslp -s HMC info into database - * - * @param * - * @return + * @return nothing */ function lsslpWriteHMC(){ $('#hmcLine1').append(createLoader()); @@ -1351,10 +1312,8 @@ function lsslpWriteHMC(){ /** * Step 8: write all the lsslp -s cec info into database - * - * @param * - * @return + * @return nothing */ function lsslpWriteCec(){ $('#cecLine').append(createLoader()); @@ -1379,10 +1338,8 @@ function lsslpWriteCec(){ /** * Step 9: create lpars - * - * @param * - * @return + * @return nothing */ function initCreateLpar(){ $('#discoverContentDiv').empty(); @@ -1526,10 +1483,8 @@ function nonihCreateLpar(parentDiv){ /** * Step 10: complete - * - * @param * - * @return + * @return nothing */ function complete(){ $('#discoverContentDiv').empty(); diff --git a/xCAT-UI/js/configure/update.js b/xCAT-UI/js/configure/update.js index f64199516..894fc6f51 100644 --- a/xCAT-UI/js/configure/update.js +++ b/xCAT-UI/js/configure/update.js @@ -65,7 +65,7 @@ function showRepository(data) { // Display the Devel Repository, remember user's last selection show = show + "
  • "; @@ -74,7 +74,7 @@ function showRepository(data) { // Display the Stable Repository, remember user's last selection show = "
  • "; @@ -82,8 +82,8 @@ function showRepository(data) { repoList.append(show); // Display the Input Repository, remember user's last selection - if (($.cookie('xcatrepository')) && (1 != $.cookie('xcatrepository')) - && (2 != $.cookie('xcatrepository'))) { + if (($.cookie('xcatrepository')) && ($.cookie('xcatrepository') != 1) + && ($.cookie('xcatrepository') != 2)) { show = "
  • Other: "; show += ""; @@ -92,6 +92,7 @@ function showRepository(data) { show += ""; } repoList.append(show); + $('#repository fieldset').append(repoList); } @@ -114,6 +115,7 @@ function showRpmInfo(data) { } rpms = data.rsp.split(/\n/); + // No rpm installed, return if (1 > rpms.length) { $('#rpm fieldset').append("No RPMs installed!"); @@ -130,12 +132,12 @@ function showRpmInfo(data) { show += ""; for (temp = 0; temp < rpms.length; temp++) { // Empty line continue - if ("" == rpms[temp]) { + if (!rpms[temp]) { continue; } // The RPM is not installed, continue - if (-1 != rpms[temp].indexOf("not")) { + if (rpms[temp].indexOf("not") != -1) { continue; } @@ -161,7 +163,6 @@ function showRpmInfo(data) { /** * Select all checkboxes * - * @param Nothing * @return Nothing */ function updateSelectAll() { @@ -189,7 +190,7 @@ function updateRpm() { // Select other and we should use the value in the input if ("" == rpmPath) { - // user input the repo, and we must stroe it in the cookie + // Store repo in a cookie rpmPath = $('#repositoryaddr').val(); rpmPathType = rpmPath; } else { diff --git a/xCAT-UI/js/nodes/nodes.js b/xCAT-UI/js/nodes/nodes.js index cad22d1ea..1e5be3d64 100644 --- a/xCAT-UI/js/nodes/nodes.js +++ b/xCAT-UI/js/nodes/nodes.js @@ -923,10 +923,12 @@ function loadNodes(data) { monitorCol.find('span a').click(function() { refreshGangliaStatus(group, nodesTableId); }); - var menuDiv=$('
    '); + + // Create a division to hold actions menu + var menuDiv = $(''); $('#' + nodesTableId + '_wrapper').prepend(menuDiv); menuDiv.append(actionBar); - $('#'+nodesTableId+'_filter').appendTo(menuDiv); + $('#' + nodesTableId + '_filter').appendTo(menuDiv); // Create tooltip for status var tooltipConf = {
  • Domain Name: