From ba121aef4a19636e841e187cf8daf3880c838cf2 Mon Sep 17 00:00:00 2001 From: phamt Date: Mon, 11 Feb 2013 00:22:33 +0000 Subject: [PATCH] Added tooltips. Fixed add/remove VLAN/vSwitch. Updated networks table. git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15132 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- xCAT-UI/js/configure/service.js | 146 ++++-- xCAT-UI/js/configure/users.js | 43 +- xCAT-UI/js/custom/zvm.js | 55 +- xCAT-UI/js/custom/zvmUtils.js | 866 ++++++++++++++++++++++++------- xCAT-UI/js/nodes/nodes.js | 12 +- xCAT-UI/js/nodes/nodeset.js | 6 +- xCAT-UI/js/provision/images.js | 152 +++--- xCAT-UI/js/service/service.js | 2 +- xCAT-UI/js/ui.js | 2 +- xCAT-client/pods/man1/mkvm.1.pod | 4 +- 10 files changed, 955 insertions(+), 333 deletions(-) diff --git a/xCAT-UI/js/configure/service.js b/xCAT-UI/js/configure/service.js index c1e8b2ab9..376ed0148 100644 --- a/xCAT-UI/js/configure/service.js +++ b/xCAT-UI/js/configure/service.js @@ -60,7 +60,7 @@ function loadServicePage(tabId) { title = 'z/VM'; // Get zVM host names - if (!$.cookie('srv_zvm')){ + if (!$.cookie('zvms')){ $.ajax( { url : 'lib/srv_cmd.php', dataType : 'json', @@ -349,24 +349,45 @@ function imageDialog() { var info = createInfoBar('Provide the following attributes for the image. The image name will be generated based on the attributes you will give.'); imageForm.append(info); - var imageName = $('
'); - var selectable = $('
'); - var imageType = $('
'); - var architecture = $('
'); - var osName = $('
'); - var osVersion = $('
'); - var profile = $('
'); + var imageName = $('
'); + var selectable = $('
'); + var imageType = $('
'); + var architecture = $('
'); + var osName = $('
'); + var osVersion = $('
'); + var profile = $('
'); var provisionMethod = $('
'); - var provisionSelect = $('' + '' + '' + '' + '' + ''); provisionMethod.append(provisionSelect); - var comments = $('
'); + var comments = $('
'); imageForm.append(imageName, selectable, imageType, architecture, osName, osVersion, profile, provisionMethod, comments); + // Generate tooltips + imageForm.find('div input[title],textarea[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add image imageForm.dialog({ title:'Create image', @@ -474,22 +495,22 @@ function editImageDialog(iName, iSelectable, iOsVersion, iOsArch, iOsName, iType var info = createInfoBar('Provide the following attributes for the image. The image name will be generated based on the attributes you will give.'); imageForm.append(info); - var imageName = $('
'); - var selectable = $('
'); - var imageType = $('
'); - var architecture = $('
'); - var osName = $('
'); - var osVersion = $('
'); - var profile = $('
'); + var imageName = $('
'); + var selectable = $('
'); + var imageType = $('
'); + var architecture = $('
'); + var osName = $('
'); + var osVersion = $('
'); + var profile = $('
'); var provisionMethod = $('
'); - var provisionSelect = $('' + '' + '' + '' + '' + ''); provisionMethod.append(provisionSelect); - var comments = $('
'); + var comments = $('
'); imageForm.append(imageName, selectable, imageType, architecture, osName, osVersion, profile, provisionMethod, comments); // Fill in image attributes @@ -504,6 +525,27 @@ function editImageDialog(iName, iSelectable, iOsVersion, iOsArch, iOsName, iType if (iSelectable == "yes") imageForm.find('input[name="selectable"]').attr('checked', 'checked'); + // Generate tooltips + imageForm.find('div input[title],textarea[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add image imageForm.dialog({ title:'Edit image', @@ -860,14 +902,35 @@ function groupDialog() { var info = createInfoBar('Provide the following attributes for the group.'); groupForm.append(info); - var group = $('
'); - var selectable = $('
'); - var ip = $('
'); - var hostnames = $('
'); - var network = $('
'); - var comments = $('
'); + var group = $('
'); + var selectable = $('
'); + var ip = $('
'); + var hostnames = $('
'); + var network = $('
'); + var comments = $('
'); groupForm.append(group, selectable, ip, hostnames, network, comments); + // Generate tooltips + groupForm.find('div input[title],textarea[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add image groupForm.dialog({ title:'Create group', @@ -963,12 +1026,12 @@ function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iNetwork, iCommen var info = createInfoBar('Provide the following attributes for the group.'); groupForm.append(info); - var group = $('
'); - var selectable = $('
'); - var ip = $('
'); - var hostnames = $('
'); - var network = $('
'); - var comments = $('
'); + var group = $('
'); + var selectable = $('
'); + var ip = $('
'); + var hostnames = $('
'); + var network = $('
'); + var comments = $('
'); groupForm.append(group, selectable, ip, hostnames, network, comments); // Fill in group attributes @@ -980,6 +1043,27 @@ function editGroupDialog(iGroup, iSelectable, iIp, iHostnames, iNetwork, iCommen if (iSelectable == "yes") groupForm.find('input[name="selectable"]').attr('checked', 'checked'); + // Generate tooltips + groupForm.find('div input[title],textarea[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add image groupForm.dialog({ title:'Edit group', diff --git a/xCAT-UI/js/configure/users.js b/xCAT-UI/js/configure/users.js index dda52524a..9f5ce132b 100644 --- a/xCAT-UI/js/configure/users.js +++ b/xCAT-UI/js/configure/users.js @@ -224,15 +224,15 @@ function openCreateUserDialog(data) { createUserForm.append(info, userFS, optionFS); - userAttr.append($('
')); - userAttr.append($('
')); - userAttr.append($('
')); - userAttr.append($('
')); - optionAttr.append($('
')); - optionAttr.append($('
')); - optionAttr.append($('
')); - optionAttr.append($('
')); - optionAttr.append($('
')); + userAttr.append($('
')); + userAttr.append($('
')); + userAttr.append($('
')); + optionAttr.append($('
')); + optionAttr.append($('
')); + optionAttr.append($('
')); + optionAttr.append($('
')); + optionAttr.append($('
')); - optionAttr.append($('
')); + optionAttr.append($('
')); + // Generate tooltips + createUserForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add disk createUserForm.dialog({ title:'Configure user', diff --git a/xCAT-UI/js/custom/zvm.js b/xCAT-UI/js/custom/zvm.js index 7ef7030d4..5145fd1c1 100644 --- a/xCAT-UI/js/custom/zvm.js +++ b/xCAT-UI/js/custom/zvm.js @@ -149,7 +149,7 @@ zvmPlugin.prototype.loadServiceProvisionPage = function(tabId) { loadOSImages(imageCol); // Get zVM host names - if (!$.cookie('zvm')){ + if (!$.cookie('zvms')){ $.ajax( { url : 'lib/srv_cmd.php', dataType : 'json', @@ -1866,20 +1866,20 @@ zvmPlugin.prototype.addNode = function() { // Create provision type drop down var type = $('
'); var typeLabel = $(''); - var typeSelect = $(''); + var typeSelect = $(''); typeSelect.append(''); typeSelect.append(''); type.append(typeLabel); type.append(typeSelect); addNodeForm.append(type); - addNodeForm.append('
'); - addNodeForm.append('
'); - addNodeForm.append('
'); - addNodeForm.append('
'); - addNodeForm.append('
'); - addNodeForm.append('
'); - addNodeForm.append('
'); + addNodeForm.append('
'); + addNodeForm.append('
'); + addNodeForm.append('
'); + addNodeForm.append('
'); + addNodeForm.append('
'); + addNodeForm.append('
'); + addNodeForm.append('
'); addNodeForm.append('
'); // OS field only required for hosts @@ -1897,6 +1897,27 @@ zvmPlugin.prototype.addNode = function() { } }); + // Generate tooltips + addNodeForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open form as a dialog addNodeForm.dialog({ title: 'Add node', @@ -2213,7 +2234,7 @@ zvmPlugin.prototype.loadMigratePage = function(tgtNode) { var hcp = new Object(); // Create a drop-down for z/VM destinations - var destSelect = $('') + var destSelect = $('') destSelect.append($('')); for (var i in hosts) { args = hosts[i].split(':'); @@ -2281,7 +2302,12 @@ zvmPlugin.prototype.loadMigratePage = function(tgtNode) { vmAttr.append(dest); // Action Parameter - var actionparam = $('
'); + var actionparam = $('
'); vmAttr.append(actionparam); // Parameters label @@ -2293,7 +2319,10 @@ zvmPlugin.prototype.loadMigratePage = function(tgtNode) { optionalFS.append(optAttr); // Immediate Parameter - var immediateparam = $('
'); + var immediateparam = $('
'); optAttr.append(immediateparam); immediateparam.change(function() { if ($('#' + newTabId + ' select[name=immediate]').val() == 'yes') { @@ -2316,7 +2345,7 @@ zvmPlugin.prototype.loadMigratePage = function(tgtNode) { optAttr.append(forceParam); // Generate tooltips - migrateForm.find('div input[title]').tooltip({ + migrateForm.find('div input[title],select[title]').tooltip({ position: "center right", offset: [-2, 10], effect: "fade", diff --git a/xCAT-UI/js/custom/zvmUtils.js b/xCAT-UI/js/custom/zvmUtils.js index 259819919..c1adc9652 100644 --- a/xCAT-UI/js/custom/zvmUtils.js +++ b/xCAT-UI/js/custom/zvmUtils.js @@ -1035,7 +1035,7 @@ function getZResources(data) { success : getZfcpPool }); } - }); + }); // Create accordion panel for network var networkSection = $('
'); @@ -1078,7 +1078,7 @@ function getZResources(data) { // Append accordion to tab $('#' + tabId).append(resourcesAccordion); resourcesAccordion.accordion(); - diskLnk.trigger('click'); + networkLnk.trigger('click'); } } @@ -1144,13 +1144,13 @@ function openAddProcDialog(node) { // Create info bar var info = createInfoBar('Add a temporary processor to this virtual server.'); addProcForm.append(info); - addProcForm.append('
'); - addProcForm.append('
'); + addProcForm.append('
'); + addProcForm.append('
'); // Create drop down for processor type var procType = $('
'); procType.append(''); - var typeSelect = $(''); + var typeSelect = $(''); typeSelect.append('' + '' + '' @@ -1159,6 +1159,27 @@ function openAddProcDialog(node) { procType.append(typeSelect); addProcForm.append(procType); + // Generate tooltips + addProcForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add processor addProcForm.dialog({ title:'Add processor', @@ -1232,15 +1253,15 @@ function openAddDiskDialog(node, hcp) { // Create info bar var info = createInfoBar('Add a ECKD|3390 or FBA|9336 disk to this virtual server.'); addDiskForm.append(info); - addDiskForm.append('
'); - addDiskForm.append('
'); - addDiskForm.append('
'); - addDiskForm.append('
'); + addDiskForm.append('
'); + addDiskForm.append('
'); + addDiskForm.append('
'); + addDiskForm.append('
'); // Create drop down for disk pool var diskPool = $('
'); diskPool.append(''); - var poolSelect = $(''); + var poolSelect = $(''); for ( var i = 0; i < pools.length; i++) { poolSelect.append(''); } @@ -1250,7 +1271,7 @@ function openAddDiskDialog(node, hcp) { // Create drop down for disk mode var diskMode = $('
'); diskMode.append(''); - var modeSelect = $(''); + var modeSelect = $(''); modeSelect.append('' + '' + '' @@ -1262,8 +1283,29 @@ function openAddDiskDialog(node, hcp) { diskMode.append(modeSelect); addDiskForm.append(diskMode); - addDiskForm.append('
'); + addDiskForm.append('
'); + // Generate tooltips + addDiskForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add disk addDiskForm.dialog({ title:'Add disk', @@ -1371,15 +1413,15 @@ function openAddZfcpDialog(node, hcp, zvm) { // Create info bar var info = createInfoBar('Add a SCSI|FCP disk to this virtual server.'); addZfcpForm.append(info); - addZfcpForm.append('
'); - addZfcpForm.append('
'); - addZfcpForm.append('
'); - addZfcpForm.append('
'); + addZfcpForm.append('
'); + addZfcpForm.append('
'); + addZfcpForm.append('
'); + addZfcpForm.append('
'); // Create drop down for disk pool var diskPool = $('
'); diskPool.append(''); - var poolSelect = $(''); + var poolSelect = $(''); for ( var i = 0; i < pools.length; i++) { poolSelect.append(''); } @@ -1387,7 +1429,7 @@ function openAddZfcpDialog(node, hcp, zvm) { addZfcpForm.append(diskPool); // Tag to identify where device will be used - addZfcpForm.append('
'); + addZfcpForm.append('
'); // Create advanced link to set advanced zFCP properties var advancedLnk = $('
'); @@ -1395,8 +1437,8 @@ function openAddZfcpDialog(node, hcp, zvm) { var advanced = $('
').hide(); addZfcpForm.append(advanced); - var portName = $('
'); - var unitNo = $('
'); + var portName = $('
'); + var unitNo = $('
'); advanced.append(portName, unitNo); var wwpns = $.cookie(zvm + 'wwpns'); @@ -1412,6 +1454,27 @@ function openAddZfcpDialog(node, hcp, zvm) { advanced.toggle(); }); + // Generate tooltips + addZfcpForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add disk addZfcpForm.dialog({ title:'Add zFCP device', @@ -1503,13 +1566,34 @@ function openDedicateDeviceDialog(node, hcp) { var info = createInfoBar('Add a dedicated device to the configuration'); dedicateForm.append(info); - dedicateForm.append('
'); - dedicateForm.append('
'); - dedicateForm.append('
'); - dedicateForm.append('
'); + dedicateForm.append('
'); + dedicateForm.append('
'); + dedicateForm.append('
'); + + // Generate tooltips + dedicateForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); // Open dialog to add dedicated device dedicateForm.dialog({ @@ -1585,8 +1669,29 @@ function openAddEckd2SystemDialog(hcp) { // Create info bar var info = createInfoBar('Dynamically add an ECKD disk to a running z/VM system.'); addE2SForm.append(info); - addE2SForm.append('
'); + addE2SForm.append('
'); + // Generate tooltips + addE2SForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add disk addE2SForm.dialog({ title:'Add ECKD to system', @@ -1656,21 +1761,30 @@ function openAddPageSpoolDialog(hcp) { diskFS.append($('
')); diskFS.append(diskAttr); - diskAttr.append('
'); - diskAttr.append('
'); - diskAttr.append('
'); + diskAttr.append('
'); + diskAttr.append('
'); + diskAttr.append('
'); - var optionFS = $('
Optional
') - addPageSpoolForm.append(optionFS); - var optionAttr = $('
'); - optionFS.append($('
')); - optionFS.append(optionAttr); - - optionAttr.append('
'); - optionAttr.append('
'); - optionAttr.append('
'); - optionAttr.append('
'); - optionAttr.append('
'); + // Generate tooltips + addPageSpoolForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); // Open dialog to add disk addPageSpoolForm.dialog({ @@ -1688,11 +1802,6 @@ function openAddPageSpoolDialog(hcp) { var volAddr = $(this).find('input[name=volAddr]').val(); var volLabel = $(this).find('input[name=volLabel]').val(); var volUse = $(this).find('select[name=volUse]').val(); - var systemConfigName = $(this).find('input[name=systemConfigName]').val(); - var systemConfigType = $(this).find('input[name=systemConfigType]').val(); - var parmDiskOwner = $(this).find('input[name=parmDiskOwner]').val(); - var parmDiskNumber = $(this).find('input[name=parmDiskNumber]').val(); - var parmDiskPass = $(this).find('input[name=parmDiskPass]').val(); // If inputs are not complete, show warning message if (!volAddr || !volLabel || !volUse) { @@ -1705,18 +1814,7 @@ function openAddPageSpoolDialog(hcp) { }); var pageSpoolArgs = volAddr + ";" + volLabel + ";" + volUse + ";"; - if (systemConfigName) { - pageSpoolArgs += systemConfigName + ";"; - } if (systemConfigType) { - pageSpoolArgs += systemConfigType + ";"; - } if (parmDiskOwner) { - pageSpoolArgs += parmDiskOwner + ";"; - } if (parmDiskNumber) { - pageSpoolArgs += parmDiskNumber + ";"; - } if (parmDiskPass) { - pageSpoolArgs += parmDiskPass + ";"; - } - + $.ajax( { url : 'lib/cmd.php', dataType : 'json', @@ -1754,11 +1852,11 @@ function openShareDiskDialog(disks2share) { shareDiskForm.append(info); var hcp = $('
'); - var hcpSelect = $(''); + var hcpSelect = $(''); hcp.append(hcpSelect); // Set region input based on those selected on table (if any) - var volAddr = $('
'); - var shareEnable = $('
'); + var volAddr = $('
'); + var shareEnable = $('
'); shareDiskForm.append(hcp, volAddr, shareEnable); // Create a array for hardware control points @@ -1772,6 +1870,27 @@ function openShareDiskDialog(disks2share) { for (var i in hcps) { hcpSelect.append($('')); } + + // Generate tooltips + shareDiskForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); // Open dialog to delete disk shareDiskForm.dialog({ @@ -1838,7 +1957,7 @@ function openAddScsi2SystemDialog(hcp) { var info = createInfoBar('Dynamically add an SCSI disk to a running z/VM system.'); addS2SForm.append(info); - var devNum = $('
'); + var devNum = $('
'); var devPathLabel = $(''); var devPathCount = 1; var pathDiv = $('
'); @@ -1894,7 +2013,7 @@ function openAddScsi2SystemDialog(hcp) { devPathBody.append(devPathRow); - var addDevPathLink = $('Add path'); + var addDevPathLink = $('+ Add path'); addDevPathLink.bind('click', function(event){ devPathCount = devPathCount + 1; // Create a row @@ -1916,17 +2035,38 @@ function openAddScsi2SystemDialog(hcp) { devPathRow.append(fcpDevNum); // Create FCP WWPN input - var fcpWwpn = $(''); + var fcpWwpn = $(''); devPathRow.append(fcpWwpn); fcpWwpn.find('input').autocomplete({ source: wwpns.split(',') }); // Create FCP LUN input - var fcpLun = $(''); + var fcpLun = $(''); devPathRow.append(fcpLun); devPathBody.append(devPathRow); + + // Generate tooltips + addS2SForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); }); devPathFooter.append(addDevPathLink); devPathTable.append(devPathHeader); @@ -1935,10 +2075,38 @@ function openAddScsi2SystemDialog(hcp) { devPathDiv.append(devPathLabel); devPathDiv.append(devPathTable); - var option = $('
'); - var persist = $('
'); + var option = $('
'); + var persist = $('
'); addS2SForm.append(devNum, devPathDiv, option, persist); + // Generate tooltips + addS2SForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + addS2SForm.find('div input[title]').tooltip({ position: "center right", offset: [-2, 10], @@ -2021,8 +2189,32 @@ function openRemoveScsiDialog(hcp) { // Create info bar var info = createInfoBar('Delete a real SCSI disk'); removeScsiForm.append(info); - removeScsiForm.append('
'); - removeScsiForm.append('
' + + '' + + '
'); - addNicForm.append('
'); + addNicForm.append('
'); + addNicForm.append('
'); // Create drop down for NIC types var nicType = $('
'); nicType.append(''); - var nicTypeSelect = $(''); + var nicTypeSelect = $(''); nicTypeSelect.append('' + '' + '' @@ -2105,7 +2297,7 @@ function openAddNicDialog(node, hcp) { // Create drop down for network types var networkType = $('
'); networkType.append(''); - var networkTypeSelect = $(''); + var networkTypeSelect = $(''); networkTypeSelect.append('' + '' + '' @@ -2114,9 +2306,9 @@ function openAddNicDialog(node, hcp) { addNicForm.append(networkType); // Create drop down for network names - var gLansQdioSelect = $(''); - var gLansHipersSelect = $(''); - var vswitchSelect = $(''); + var gLansQdioSelect = $(''); + var gLansHipersSelect = $(''); + var vswitchSelect = $(''); for ( var i = 0; i < networks.length; i++) { var network = networks[i].split(' '); var networkOption = $(''); @@ -2214,6 +2406,27 @@ function openAddNicDialog(node, hcp) { } }); + // Generate tooltips + addNicForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add NIC addNicForm.dialog({ title:'Add NIC', @@ -2354,10 +2567,10 @@ function openAddVswitchVlanDialog(hcp) { networkTypeDiv.append(networkType) netAttr.append(networkTypeDiv); - var hcp = $('
'); - var hcpSelect = $(''); - hcp.append(hcpSelect); - netAttr.append(hcp); + var system = $('
'); + var systemSelect = $(''); + system.append(systemSelect); + netAttr.append(system); var typeAttr = $('
'); typeFS.append($('
')); @@ -2365,79 +2578,108 @@ function openAddVswitchVlanDialog(hcp) { // Create vSwitch parameters var vswitchOptions = $('
').hide(); - vswitchOptions.append($('
')); - vswitchOptions.append($('
')); - vswitchOptions.append($('
')); - vswitchOptions.append($('
')); - vswitchOptions.append($('
')); + vswitchOptions.append($('
')); + vswitchOptions.append($('
')); + vswitchOptions.append($('
')); + vswitchOptions.append($('
')); - vswitchOptions.append($('
')); - vswitchOptions.append($('
')); + vswitchOptions.append($('
')); - vswitchOptions.append($('
' + '' + '' + '' + '' + '
')); - vswitchOptions.append($('
')); - vswitchOptions.append($('
')); + vswitchOptions.append($('
')); - vswitchOptions.append($('
' + '' + '' + '' + '' + '' + '
')); - vswitchOptions.append($('
' + '' + '' + '' + '' + '
')); - vswitchOptions.append($('
')); + vswitchOptions.append($('
')); // Create VLAN parameters var vlanOptions = $('
').hide(); - vlanOptions.append($('
')); - vlanOptions.append($('
')); - vlanOptions.append($('
')); + vlanOptions.append($('
')); + vlanOptions.append($('
')); - vlanOptions.append($('
' + '' + '' + '' + '
')); typeAttr.append(vswitchOptions, vlanOptions); - - // Create a array for hardware control points - var hcps = new Array(); - if ($.cookie('hcp').indexOf(',') > -1) - hcps = $.cookie('hcp').split(','); - else - hcps.push($.cookie('hcp')); - // Append options for hardware control points - for (var i in hcps) { - hcpSelect.append($('')); + // Get zVM host names + if (!$.cookie('zvms')) { + $.ajax({ + url : 'lib/cmd.php', + dataType : 'json', + async: false, + data : { + cmd : 'webportal', + tgt : '', + args : 'lszvm', + msg : '' + }, + + success : function(data) { + setzVMCookies(data); + } + }); + } + + var zvms = $.cookie('zvms').split(','); + var hcp2zvm = new Object(); + var args, zvm, iHcp, tmp; + for (var i in zvms) { + args = zvms[i].split(':'); + zvm = args[0].toLowerCase(); + + if (args[1].indexOf('.') != -1) { + tmp = args[1].split('.'); + iHcp = tmp[0]; + } else { + iHcp = args[1]; + } + + hcp2zvm[iHcp] = zvm; + } + + // Append options for z/VM system + for (var hcp in hcp2zvm) { + systemSelect.append($('')); } networkType.change(function() { @@ -2458,6 +2700,27 @@ function openAddVswitchVlanDialog(hcp) { } }); + // Generate tooltips + addVswitchForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add vSwitch or VLAN addVswitchForm.dialog({ title:'Add vSwitch or VLAN', @@ -2490,38 +2753,39 @@ function openAddVswitchVlanDialog(hcp) { var nativeVlanId = $(this).find('input[name=nativeVlanId]').val(); if (switchName) - networkArgs += ";" + switchName; + networkArgs += switchName + ";"; if (deviceAddress) - networkArgs += ";" + deviceAddress; + networkArgs += deviceAddress + ";"; if (portName) - networkArgs += ";" + portName; + networkArgs += portName + ";"; if (controllerName) - networkArgs += ";" + controllerName; + networkArgs += controllerName + ";"; if (connection) - networkArgs += ";" + connection; + networkArgs += connection + ";"; if (queueMemoryLimit) - networkArgs += ";" + queueMemoryLimit; + networkArgs += queueMemoryLimit + ";"; if (routingValue) - networkArgs += ";" + routingValue; + networkArgs += routingValue + ";"; if (transportType) - networkArgs += ";" + transportType; + networkArgs += transportType + ";"; if (vlanId) - networkArgs += ";" + vlanId; + networkArgs += vlanId + ";"; if (portType) - networkArgs += ";" + portType; + networkArgs += portType + ";"; if (updateSysConfig) - networkArgs += ";" + updateSysConfig; + networkArgs += updateSysConfig + ";"; if (gvrp) - networkArgs += ";" + gvrpValue; + networkArgs += gvrpValue + ";"; if (nativeVlanId) - networkArgs += ";" + nativeVlanId; + networkArgs += nativeVlanId + ";"; + networkArgs = networkArgs.substring(0, networkArgs.length - 1); // Change dialog buttons $(this).dialog('option', 'buttons', { 'Close': function() {$(this).dialog("close");} }); - $.ajax( { + $.ajax({ url : 'lib/cmd.php', dataType : 'json', data : { @@ -2545,16 +2809,16 @@ function openAddVswitchVlanDialog(hcp) { var warn = createWarnBar('Please provide a value for each missing field.'); warn.prependTo($(this)); } else { - networkArgs += ";" + vlanName; - networkArgs += ";" + vlanOwner; - networkArgs += ";" + vlanType; - networkArgs += ";" + vlanTransport; + networkArgs += vlanName + ";"; + networkArgs += vlanOwner + ";"; + networkArgs += vlanType + ";"; + networkArgs += vlanTransport; // Change dialog buttons $(this).dialog('option', 'buttons', { 'Close': function() {$(this).dialog("close");} }); - $.ajax( { + $.ajax({ url : 'lib/cmd.php', dataType : 'json', data : { @@ -2602,9 +2866,10 @@ function openRemoveVswitchVlanDialog(networkList) { var node = networkArgs[0]; var type = networkArgs[1]; var name = jQuery.trim(networkArgs[2]); + var owner = networkArgs[3]; - if (type.toLowerCase() == "vswitch") { - $.ajax( { + if (type.indexOf("VSWITCH") != -1) { + $.ajax({ url : 'lib/cmd.php', dataType : 'json', data : { @@ -2612,10 +2877,26 @@ function openRemoveVswitchVlanDialog(networkList) { tgt : node, args : '--removevswitch;' + name, msg : '' + }, + + success: function(data) { + var infoMsg; + + // Create info message + if (jQuery.isArray(data.rsp)) { + infoMsg = ''; + for (var i in data.rsp) { + infoMsg += data.rsp[i] + '
'; + } + } else { + infoMsg = data.rsp; + } + + openDialog("info", infoMsg); } }); - } else if (type.toLowerCase() == "vlan") { - $.ajax( { + } else if (type.indexOf("LAN") != -1) { + $.ajax({ url : 'lib/cmd.php', dataType : 'json', data : { @@ -2623,6 +2904,22 @@ function openRemoveVswitchVlanDialog(networkList) { tgt : node, args : '--removevlan;' + name + ';' + owner, msg : '' + }, + + success: function(data) { + var infoMsg; + + // Create info message + if (jQuery.isArray(data.rsp)) { + infoMsg = ''; + for (var i in data.rsp) { + infoMsg += data.rsp[i] + '
'; + } + } else { + infoMsg = data.rsp; + } + + openDialog("info", infoMsg); } }); } @@ -2828,7 +3125,7 @@ function getZfcpPool(data) { var pools = data.rsp[0].split(hcp + ': '); // Get contents of each disk pool - for ( var i in pools) { + for (var i in pools) { if (pools[i]) { pools[i] = jQuery.trim(pools[i]); @@ -2923,7 +3220,7 @@ function loadDiskPoolTable(data) { // Create a datatable var table = new DataTable(tableId); // Resource headers: volume ID, device type, start address, and size - table.init( [ '', 'zHCP', 'Pool', 'Status', 'Region', 'Device type', 'Starting address', 'Size' ]); + table.init( [ '', 'zHCP', 'Pool', 'Status', 'Volume', 'Device type', 'Starting address', 'Size' ]); // Append datatable to panel $('#' + panelId).append(table.object()); @@ -2946,14 +3243,14 @@ function loadDiskPoolTable(data) { } // Skip index 0 and 1 because it contains nothing - for ( var i = 2; i < tmp.length; i++) { + for (var i = 2; i < tmp.length; i++) { tmp[i] = jQuery.trim(tmp[i]); var diskAttrs = tmp[i].split(' '); dTable.fnAddData( [ '', hcp, pool, stat, diskAttrs[0], diskAttrs[1], diskAttrs[2], diskAttrs[3] ]); } // Create actions menu - if (!$('#zvmResourceActions').length) { + if (!$('#zvmDiskResourceActions').length) { // Empty filter area $('#' + tableId + '_length').empty(); @@ -3024,7 +3321,7 @@ function loadDiskPoolTable(data) { var advancedMenu = createMenu([addEckdLnk, addPageSpoolLnk, shareLnk]); // Create action bar - var actionBar = $('
').css("width", "450px"); + var actionBar = $('
').css("width", "450px"); // Create an action menu var actionsMenu = createMenu([addLnk, removeLnk, refreshLnk, [advancedLnk, advancedMenu]]); @@ -3232,7 +3529,7 @@ function openRemoveDiskFromPoolDialog(disks2remove) { var info = createInfoBar('Remove a disk from a disk pool defined in the EXTENT CONTROL.'); deleteDiskForm.append(info); var action = $('
'); - var actionSelect = $('' + '' + '' + '' @@ -3242,12 +3539,12 @@ function openRemoveDiskFromPoolDialog(disks2remove) { action.append(actionSelect); var hcp = $('
'); - var hcpSelect = $(''); + var hcpSelect = $(''); hcp.append(hcpSelect); // Set region input based on those selected on table (if any) - var region = $('
'); - var group = $('
'); + var region = $('
'); + var group = $('
'); deleteDiskForm.append(action, hcp, region, group); // Create a array for hardware control points @@ -3275,6 +3572,27 @@ function openRemoveDiskFromPoolDialog(disks2remove) { group.show(); } }); + + // Generate tooltips + deleteDiskForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); // Open dialog to delete disk deleteDiskForm.dialog({ @@ -3344,7 +3662,7 @@ function openAddDisk2PoolDialog() { var info = createInfoBar('Add a disk to a disk pool defined in the EXTENT CONTROL. The disk has to already be attached to SYSTEM.'); addDiskForm.append(info); var action = $('
'); - var actionSelect = $('' + '' + '' + '' @@ -3352,12 +3670,11 @@ function openAddDisk2PoolDialog() { action.append(actionSelect); var hcp = $('
'); - var hcpSelect = $(''); + var hcpSelect = $(''); hcp.append(hcpSelect); - var region = $('
'); - var volume = $('
'); - var group = $('
'); - addDiskForm.append(action, hcp, region, volume, group); + var volume = $('
'); + var group = $('
'); + addDiskForm.append(action, hcp, volume, group); // Create a array for hardware control points var hcps = new Array(); @@ -3378,6 +3695,27 @@ function openAddDisk2PoolDialog() { volume.hide(); } }); + + // Generate tooltips + addDiskForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); // Open dialog to add disk addDiskForm.dialog({ @@ -3395,12 +3733,11 @@ function openAddDisk2PoolDialog() { // Get inputs var action = $(this).find('select[name=action]').val(); var hcp = $(this).find('select[name=hcp]').val(); - var region = $(this).find('input[name=region]').val(); var volume = $(this).find('input[name=volume]').val(); var group = $(this).find('input[name=group]').val(); // If inputs are not complete, show warning message - if (!action || !hcp || !region || !group) { + if (!action || !hcp || !group) { var warn = createWarnBar('Please provide a value for each missing field.'); warn.prependTo($(this)); } else { @@ -3411,9 +3748,9 @@ function openAddDisk2PoolDialog() { var args; if (action == '4') - args = region + ';' + volume + ';' + group; + args = volume + ';' + volume + ';' + group; else - args = region + ';' + group; + args = volume + ';' + group; // Add disk to pool $.ajax( { @@ -3473,12 +3810,13 @@ function openRemoveZfcpFromPoolDialog(devices2remove) { deleteDiskForm.append(info); var hcp = $('
'); - var hcpSelect = $(''); + var hcpSelect = $(''); hcp.append(hcpSelect); - var pool = $('
'); - var unitNo = $('
'); - deleteDiskForm.append(hcp, pool, unitNo); + var pool = $('
'); + var unitNo = $('
'); + var portName = $('
'); + deleteDiskForm.append(hcp, pool, unitNo, portName); // Create a array for hardware control points var hcps = new Array(); @@ -3494,6 +3832,27 @@ function openRemoveZfcpFromPoolDialog(devices2remove) { } hcpSelect.val(tgtHcp); + // Generate tooltips + deleteDiskForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to delete device deleteDiskForm.dialog({ title:'Delete device from pool', @@ -3509,7 +3868,8 @@ function openRemoveZfcpFromPoolDialog(devices2remove) { var hcp = $(this).find('select[name=hcp]').val(); var pool = $(this).find('input[name=zfcpPool]').val(); - var unitNo = $(this).find('input[name=unitNo]').val(); + var unitNo = $(this).find('input[name=zfcpUnitNo]').val(); + var portName = $(this).find('input[name=zfcpPortName]').val(); // If inputs are not complete, show warning message if (!hcp || !pool || !unitNo) { @@ -3521,13 +3881,17 @@ function openRemoveZfcpFromPoolDialog(devices2remove) { 'Close': function() {$(this).dialog("close");} }); - $.ajax( { + var args = '--removezfcpfrompool;' + pool + ';' + unitNo; + if (portName) { + args += ';' + portName; + } + $.ajax({ url : 'lib/cmd.php', dataType : 'json', data : { cmd : 'chvm', tgt : hcp, - args : '--removezfcpfrompool;' + pool + ';' + unitNo, + args : args, msg : dialogId }, @@ -3553,19 +3917,19 @@ function openAddZfcp2PoolDialog() { addDiskForm.append(info); var hcp = $('
'); - var hcpSelect = $(''); + var hcpSelect = $(''); hcp.append(hcpSelect); - var pool = $('
'); - var status = $('
'); + var status = $('
'); - var portName = $('
'); - var unitNo = $('
'); - var size = $('
'); - var range = $('
'); - var owner = $('
'); + var portName = $('
'); + var unitNo = $('
'); + var size = $('
'); + var range = $('
'); + var owner = $('
'); addDiskForm.append(hcp, pool, status, portName, unitNo, size, range, owner); // Create a array for hardware control points @@ -3581,6 +3945,27 @@ function openAddZfcp2PoolDialog() { hcpSelect.append($('')); } + // Generate tooltips + addDiskForm.find('div input[title],select[title]').tooltip({ + position: "center right", + offset: [-2, 10], + effect: "fade", + opacity: 0.8, + delay: 0, + predelay: 800, + events: { + def: "mouseover,mouseout", + input: "mouseover,mouseout", + widget: "focus mouseover,blur mouseout", + tooltip: "mouseover,mouseout" + }, + + // Change z index to show tooltip in front + onBeforeShow: function() { + this.getTip().css('z-index', $.topZIndex()); + } + }); + // Open dialog to add disk addDiskForm.dialog({ title:'Add device to pool', @@ -3713,12 +4098,48 @@ function loadNetworkTable(data) { var panelId = 'zvmNetworkResource'; $('#' + panelId).find('img[src="images/loader.gif"]').remove(); + // Get zVM host names + if (!$.cookie('zvms')) { + $.ajax({ + url : 'lib/cmd.php', + dataType : 'json', + async: false, + data : { + cmd : 'webportal', + tgt : '', + args : 'lszvm', + msg : '' + }, + + success : function(data) { + setzVMCookies(data); + } + }); + } + + var zvms = $.cookie('zvms').split(','); + var hcp2zvm = new Object(); + var args, zvm, iHcp, tmp; + for (var i in zvms) { + args = zvms[i].split(':'); + zvm = args[0].toLowerCase(); + + if (args[1].indexOf('.') != -1) { + tmp = args[1].split('.'); + iHcp = tmp[0]; + } else { + iHcp = args[1]; + } + + hcp2zvm[iHcp] = zvm; + } + var args = data.msg.split(';'); var hcp = args[0].replace('hcp=', ''); var type = args[1].replace('type=', ''); - var name = args[2].replace('network=', ''); - var tmp = data.rsp[0].split(hcp + ': '); - + var name = jQuery.trim(args[2].replace('network=', '')); + tmp = data.rsp[0].split(hcp + ': '); + // Resource tab ID var info = $('#' + panelId).find('.ui-state-highlight'); // If there is no info bar @@ -3734,7 +4155,7 @@ function loadNetworkTable(data) { // Create table var tableId = 'zNetworkDataTable'; var table = new DataTable(tableId); - table.init( [ '', 'HCP', 'Type', 'Name', 'Details' ]); + table.init( [ '', 'z/VM', 'Type', 'Name', 'Layer', 'Owner', 'Controller', 'Details' ]); // Append datatable to tab $('#' + panelId).append(table.object()); @@ -3770,7 +4191,28 @@ function loadNetworkTable(data) { } details += ''; - dTable.fnAddData([ '', '
' + hcp + '
', '
' + type + '
', '
' + name + '
', details ]); + // Determine the OSI layer + var layer = "3"; + if (details.indexOf("ETHERNET") != -1) { + layer = "2"; + } + + // Find the vSwitch/VLAN owner + var regex = /(LAN|VSWITCH) (.*?)(?:\s|$)/g; + var owner = ""; + var match = ""; + owner = regex.exec(details)[2]; + + // Find the vSwitch controller + regex = /(?:^|\s)Controller: (.*?)(?:\s|$)/g; + var controllers = ""; + match = ""; + while (match = regex.exec(details)) { + controllers += match[1] + ","; + } + controllers = controllers.substring(0, controllers.length - 1); // Delete last two characters + + dTable.fnAddData(['', '
' + hcp2zvm[hcp] + '
', '
' + type + '
', '
' + name + '
', '
' + layer + '
', '
' + owner + '
', '
' + controllers + '
', details]); // Create actions menu if (!$('#networkResourceActions').length) { @@ -3957,7 +4399,7 @@ function createZProvisionExisting(inst) { var tmp = groupNames.split(','); // Create drop down for groups - var groupSelect = $(''); + var groupSelect = $(''); groupSelect.append(''); for (var i in tmp) { // Add group into drop down @@ -3993,7 +4435,7 @@ function createZProvisionExisting(inst) { // Create operating system image input var os = $('
'); var osLabel = $(''); - var osSelect = $(''); + var osSelect = $(''); osSelect.append($('')); var imageNames = $.cookie('imagenames').split(','); @@ -4010,7 +4452,7 @@ function createZProvisionExisting(inst) { // Create boot method drop down var bootMethod = $('
'); var methoddLabel = $(''); - var methodSelect = $(''); + var methodSelect = $(''); methodSelect.append('' + '' + '' @@ -4022,7 +4464,7 @@ function createZProvisionExisting(inst) { osAttr.append(bootMethod); // Generate tooltips - provExisting.find('div input[title]').tooltip({ + provExisting.find('div input[title],select[title]').tooltip({ position: "center right", offset: [-2, 10], effect: "fade", @@ -4255,7 +4697,7 @@ function createZProvisionNew(inst) { // Create operating system image input var os = $('
'); var osLabel = $(''); - var osSelect = $(''); + var osSelect = $(''); osSelect.append($('')); var imageNames = $.cookie('imagenames').split(','); @@ -4333,7 +4775,7 @@ function createZProvisionNew(inst) { }); } }); - var userEntry = $('
'); + var userEntry = $('
'); userEntry.append($('').append(defaultChkbox, 'Use default')); hwAttr.append(userEntry); @@ -4380,7 +4822,7 @@ function createZProvisionNew(inst) { // Create disk type drop down var diskType = $(''); - var diskTypeSelect = $(''); + var diskTypeSelect = $(''); diskTypeSelect.append('' + '' ); @@ -4397,7 +4839,7 @@ function createZProvisionNew(inst) { // Create disk mode input var diskMode = $(''); - var diskModeSelect = $(''); + var diskModeSelect = $(''); diskModeSelect.append('' + '' + '' @@ -4411,7 +4853,7 @@ function createZProvisionNew(inst) { // Create disk pool drop down var diskPool = $(''); - var diskPoolSelect = $(''); + var diskPoolSelect = $(''); for (var i in definedPools) { diskPoolSelect.append(''); } @@ -4419,13 +4861,13 @@ function createZProvisionNew(inst) { diskRow.append(diskPool); // Create disk password input - var diskPw = $(''); + var diskPw = $(''); diskRow.append(diskPw); diskBody.append(diskRow); // Generate tooltips - diskBody.find('td input[title]').tooltip({ + diskBody.find('td input[title],select[title]').tooltip({ position: "top right", offset: [-4, 4], effect: "fade", @@ -4501,7 +4943,7 @@ function createZProvisionNew(inst) { // Create zFCP pool drop down var zfcpPool = $(''); - var zfcpPoolSelect = $(''); + var zfcpPoolSelect = $(''); for (var i in definedPools) { zfcpPoolSelect.append(''); } @@ -4521,13 +4963,13 @@ function createZProvisionNew(inst) { zfcpRow.append(zfcpUnitNo); // Create LOADDEV checkbox - var zfcpLoaddev = $(''); + var zfcpLoaddev = $(''); zfcpRow.append(zfcpLoaddev); zfcpBody.append(zfcpRow); // Generate tooltips - zfcpBody.find('td input[title]').tooltip({ + zfcpBody.find('td input[title],select[title]').tooltip({ position: "top right", offset: [-4, 4], effect: "fade", @@ -4552,7 +4994,7 @@ function createZProvisionNew(inst) { hwAttr.append(zfcpDiv); // Generate tooltips - provNew.find('div input[title]').tooltip({ + provNew.find('div input[title],select[title],textarea[title]').tooltip({ position: "center right", offset: [-2, 10], effect: "fade", @@ -5368,7 +5810,7 @@ function profileDialog() { profileForm.append(info); // Insert profiles into select - var profileSelect = $(''); + var profileSelect = $(''); var profiles = $.cookie('profiles').split(','); profiles.push('default'); // Add default profile for (var i in profiles) { @@ -5378,10 +5820,31 @@ function profileDialog() { } profileForm.append($('
').append(profileSelect)); - profileForm.append('
'); - profileForm.append('
'); - profileForm.append('