Repository: cloudstack Updated Branches: refs/heads/master 5811ebeee -> 801a98617
CLOUDSTACK-7483: UI > instance page, template page > hide "Original XS Version is 6.1+" field when OS Type is not Windows since property jsonObj.details.hypervisortoolsversion only applies to Windows. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/801a9861 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/801a9861 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/801a9861 Branch: refs/heads/master Commit: 801a98617c4fbec46c9fab65a9f05608f5574991 Parents: 5811ebe Author: Jessica Wang <[email protected]> Authored: Wed Sep 3 15:11:50 2014 -0700 Committer: Jessica Wang <[email protected]> Committed: Wed Sep 3 15:13:14 2014 -0700 ---------------------------------------------------------------------- ui/scripts/instances.js | 105 ++++++++++------- ui/scripts/templates.js | 265 +++++++++++++++++++++++++++---------------- 2 files changed, 232 insertions(+), 138 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/801a9861/ui/scripts/instances.js ---------------------------------------------------------------------- diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js index 7205999..6870f5b 100644 --- a/ui/scripts/instances.js +++ b/ui/scripts/instances.js @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. (function($, cloudStack) { - var vmMigrationHostObjs; + var vmMigrationHostObjs, ostypeObjs; var vmSnapshotAction = function(args) { var action = { @@ -1175,25 +1175,27 @@ }, osTypeId: { label: 'label.os.type', - select: function(args) { - $.ajax({ - url: createURL("listOsTypes"), - dataType: "json", - async: true, - success: function(json) { - var ostypes = json.listostypesresponse.ostype; - var items = []; - $(ostypes).each(function() { - items.push({ - id: this.id, - description: this.description - }); - }); - args.response.success({ - data: items - }); - } + select: function(args) { + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + var items = []; + $(ostypeObjs).each(function() { + items.push({ + id: this.id, + description: this.description + }); }); + args.response.success({ + data: items + }); } }, isPublic: { @@ -1685,7 +1687,32 @@ } if ('instances' in args.context && args.context.instances[0].hypervisor != 'XenServer') { - hiddenFields.push('xenserverToolsVersion61plus'); + hiddenFields.push('xenserverToolsVersion61plus'); + } + + if ('instances' in args.context && args.context.instances[0].guestosid != undefined) { + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + if (ostypeObjs != undefined) { + var ostypeName; + for (var i = 0; i < ostypeObjs.length; i++) { + if (ostypeObjs[i].id == args.context.instances[0].guestosid) { + ostypeName = ostypeObjs[i].description; + break; + } + } + if (ostypeName == undefined || ostypeName.indexOf("win") == -1) { + hiddenFields.push('xenserverToolsVersion61plus'); + } + } } if (!args.context.instances[0].publicip) { @@ -1743,24 +1770,26 @@ guestosid: { label: 'label.os.type', isEditable: true, - select: function(args) { - $.ajax({ - url: createURL("listOsTypes"), - dataType: "json", - async: true, - success: function(json) { - var ostypes = json.listostypesresponse.ostype; - var items = []; - $(ostypes).each(function() { - items.push({ - id: this.id, - description: this.description - }); - }); - args.response.success({ - data: items - }); - } + select: function(args) { + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + var items = []; + $(ostypeObjs).each(function() { + items.push({ + id: this.id, + description: this.description + }); + }); + args.response.success({ + data: items }); } }, http://git-wip-us.apache.org/repos/asf/cloudstack/blob/801a9861/ui/scripts/templates.js ---------------------------------------------------------------------- diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js index 3e048cc..cef6a2a 100644 --- a/ui/scripts/templates.js +++ b/ui/scripts/templates.js @@ -15,7 +15,8 @@ // specific language governing permissions and limitations // under the License. (function(cloudStack, $) { - + var ostypeObjs; + cloudStack.sections.templates = { title: 'label.menu.templates', id: 'templates', @@ -407,17 +408,19 @@ osTypeId: { label: 'label.os.type', docID: 'helpRegisterTemplateOSType', - select: function(args) { - $.ajax({ - url: createURL("listOsTypes"), - dataType: "json", - async: true, - success: function(json) { - var items = json.listostypesresponse.ostype; - args.response.success({ - data: items - }); - } + select: function(args) { + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + args.response.success({ + data: ostypeObjs }); } }, @@ -624,6 +627,7 @@ name: item.name, description: item.description, hypervisor: item.hypervisor, + ostypeid: item.ostypeid, zones: item.zonename, zoneids: [item.zoneid] }); @@ -844,7 +848,32 @@ if ('templates' in args.context && args.context.templates[0].hypervisor != 'XenServer') { hiddenFields.push('xenserverToolsVersion61plus'); } - + + if ('templates' in args.context && args.context.templates[0].ostypeid != undefined) { + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + if (ostypeObjs != undefined) { + var ostypeName; + for (var i = 0; i < ostypeObjs.length; i++) { + if (ostypeObjs[i].id == args.context.templates[0].ostypeid) { + ostypeName = ostypeObjs[i].description; + break; + } + } + if (ostypeName == undefined || ostypeName.indexOf("win") == -1) { + hiddenFields.push('xenserverToolsVersion61plus'); + } + } + } + return hiddenFields; }, @@ -935,23 +964,25 @@ label: 'label.os.type', isEditable: true, select: function(args) { - $.ajax({ - url: createURL("listOsTypes"), - dataType: "json", - async: true, - success: function(json) { - var ostypes = json.listostypesresponse.ostype; - var items = []; - $(ostypes).each(function() { - items.push({ - id: this.id, - description: this.description - }); - }); - args.response.success({ - data: items - }); - } + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + var items = []; + $(ostypeObjs).each(function() { + items.push({ + id: this.id, + description: this.description + }); + }); + args.response.success({ + data: items }); } }, @@ -1190,6 +1221,31 @@ if ('templates' in args.context && args.context.templates[0].hypervisor != 'XenServer') { hiddenFields.push('xenserverToolsVersion61plus'); } + + if ('templates' in args.context && args.context.templates[0].ostypeid != undefined) { + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + if (ostypeObjs != undefined) { + var ostypeName; + for (var i = 0; i < ostypeObjs.length; i++) { + if (ostypeObjs[i].id == args.context.templates[0].ostypeid) { + ostypeName = ostypeObjs[i].description; + break; + } + } + if (ostypeName == undefined || ostypeName.indexOf("win") == -1) { + hiddenFields.push('xenserverToolsVersion61plus'); + } + } + } return hiddenFields; }, @@ -1297,24 +1353,26 @@ ostypeid: { label: 'label.os.type', isEditable: true, - select: function(args) { - $.ajax({ - url: createURL("listOsTypes"), - dataType: "json", - async: true, - success: function(json) { - var ostypes = json.listostypesresponse.ostype; - var items = []; - $(ostypes).each(function() { - items.push({ - id: this.id, - description: this.description - }); - }); - args.response.success({ - data: items - }); - } + select: function(args) { + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + var items = []; + $(ostypeObjs).each(function() { + items.push({ + id: this.id, + description: this.description + }); + }); + args.response.success({ + data: items }); } }, @@ -1510,24 +1568,26 @@ required: true }, select: function(args) { - $.ajax({ - url: createURL("listOsTypes"), - dataType: "json", - async: true, - success: function(json) { - var osTypeObjs = json.listostypesresponse.ostype; - var items = []; - //items.push({id: "", description: "None"}); //shouldn't have None option when bootable is checked - $(osTypeObjs).each(function() { - items.push({ - id: this.id, - description: this.description - }); - }); - args.response.success({ - data: items - }); - } + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + osTypeObjs = json.listostypesresponse.ostype; + } + }); + } + var items = []; + //items.push({id: "", description: "None"}); //shouldn't have None option when bootable is checked + $(osTypeObjs).each(function() { + items.push({ + id: this.id, + description: this.description + }); + }); + args.response.success({ + data: items }); } }, @@ -1703,6 +1763,7 @@ id: item.id, name: item.name, description: item.description, + ostypeid: item.ostypeid, zones: item.zonename, zoneids: [item.zoneid] }); @@ -1930,23 +1991,25 @@ label: 'label.os.type', isEditable: true, select: function(args) { - $.ajax({ - url: createURL("listOsTypes"), - dataType: "json", - async: true, - success: function(json) { - var ostypes = json.listostypesresponse.ostype; - var items = []; - $(ostypes).each(function() { - items.push({ - id: this.id, - description: this.description - }); - }); - args.response.success({ - data: items - }); - } + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + var items = []; + $(ostypeObjs).each(function() { + items.push({ + id: this.id, + description: this.description + }); + }); + args.response.success({ + data: items }); } }, @@ -2222,24 +2285,26 @@ label: 'label.os.type', isEditable: true, select: function(args) { - $.ajax({ - url: createURL("listOsTypes"), - dataType: "json", - async: true, - success: function(json) { - var ostypes = json.listostypesresponse.ostype; - var items = []; - $(ostypes).each(function() { - items.push({ - id: this.id, - description: this.description - }); - }); - args.response.success({ - data: items - }); - } + if (ostypeObjs == undefined) { + $.ajax({ + url: createURL("listOsTypes"), + dataType: "json", + async: false, + success: function(json) { + ostypeObjs = json.listostypesresponse.ostype; + } + }); + } + var items = []; + $(ostypeObjs).each(function() { + items.push({ + id: this.id, + description: this.description + }); }); + args.response.success({ + data: items + }); } },
