From 5d6c695bb9d4e72aad3fe03a9c1b468cc53831c5 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Fri, 31 May 2019 14:56:34 +0530 Subject: [PATCH 1/2] ui: added missing hypervisor options for upload template Upload template form was missing some hypervisor specific options which can be seen on Register template form. For XenServer, XenServer tool version added For VMware, Root disk controller, NIC adapter type, Keyboard type added and HVM is hidden For KVM, Root disk controller added Signed-off-by: Abhishek Kumar --- ui/scripts/templates.js | 227 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 227 insertions(+) diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js index f3bed8b69a05..edd2536b9a17 100755 --- a/ui/scripts/templates.js +++ b/ui/scripts/templates.js @@ -311,6 +311,7 @@ }, // Direct Download - End + //XenServer only (starts here) xenserverToolsVersion61plus: { label: 'label.xenserver.tools.version.61.plus', isBoolean: true, @@ -334,6 +335,7 @@ }, isHidden: true }, + //XenServer only (ends here) //fields for hypervisor == "KVM" (starts here) rootDiskControllerTypeKVM: { @@ -366,6 +368,7 @@ }); } }, + //fields for hypervisor == "KVM" (ends here) //fields for hypervisor == "VMware" (starts here) rootDiskControllerType: { @@ -732,6 +735,40 @@ hypervisor: args.data.hypervisor }; + //XenServer only (starts here) + if (args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').css("display") != "none") { + $.extend(data, { + 'details[0].hypervisortoolsversion': (args.data.xenserverToolsVersion61plus == "on") ? "xenserver61" : "xenserver56" + }); + } + //XenServer only (ends here) + + // KVM only (starts here) + if (args.$form.find('.form-item[rel=rootDiskControllerTypeKVM]').css("display") != "none" && args.data.rootDiskControllerTypeKVM != "") { + $.extend(data, { + 'details[0].rootDiskController': args.data.rootDiskControllerTypeKVM + }); + } + // KVM only (ends here) + + //VMware only (starts here) + if (args.$form.find('.form-item[rel=rootDiskControllerType]').css("display") != "none" && args.data.rootDiskControllerType != "") { + $.extend(data, { + 'details[0].rootDiskController': args.data.rootDiskControllerType + }); + } + if (args.$form.find('.form-item[rel=nicAdapterType]').css("display") != "none" && args.data.nicAdapterType != "") { + $.extend(data, { + 'details[0].nicAdapter': args.data.nicAdapterType + }); + } + if (args.$form.find('.form-item[rel=keyboardType]').css("display") != "none" && args.data.keyboardType != "") { + $.extend(data, { + 'details[0].keyboard': args.data.keyboardType + }); + } + //VMware only (ends here) + if (args.$form.find('.form-item[rel=isPublic]').css("display") != "none") { $.extend(data, { ispublic: (args.data.isPublic == "on") @@ -865,9 +902,199 @@ }); } }); + args.$select.change(function() { + var $form = $(this).closest('form'); + if ($(this).val() == "VMware") { + $form.find('.form-item[rel=rootDiskControllerType]').css('display', 'inline-block'); + $form.find('.form-item[rel=nicAdapterType]').css('display', 'inline-block'); + $form.find('.form-item[rel=keyboardType]').css('display', 'inline-block'); + $form.find('.form-item[rel=xenserverToolsVersion61plus]').hide(); + $form.find('.form-item[rel=rootDiskControllerTypeKVM]').hide(); + $form.find('.form-item[rel=requireshvm]').hide(); + } else if ($(this).val() == "XenServer") { + $form.find('.form-item[rel=rootDiskControllerType]').hide(); + $form.find('.form-item[rel=nicAdapterType]').hide(); + $form.find('.form-item[rel=keyboardType]').hide(); + $form.find('.form-item[rel=rootDiskControllerTypeKVM]').hide(); + $form.find('.form-item[rel=requireshvm]').css('display', 'inline-block'); + if (isAdmin()) { + $form.find('.form-item[rel=xenserverToolsVersion61plus]').css('display', 'inline-block'); + } + } else if ($(this).val() == "KVM") { + $form.find('.form-item[rel=rootDiskControllerType]').hide(); + $form.find('.form-item[rel=nicAdapterType]').hide(); + $form.find('.form-item[rel=keyboardType]').hide(); + $form.find('.form-item[rel=xenserverToolsVersion61plus]').hide(); + $form.find('.form-item[rel=rootDiskControllerTypeKVM]').css('display', 'inline-block'); + $('#label_root_disk_controller').prop('selectedIndex', 2); + $form.find('.form-item[rel=requireshvm]').css('display', 'inline-block'); + } else { + $form.find('.form-item[rel=rootDiskControllerType]').hide(); + $form.find('.form-item[rel=nicAdapterType]').hide(); + $form.find('.form-item[rel=keyboardType]').hide(); + $form.find('.form-item[rel=xenserverToolsVersion61plus]').hide(); + $form.find('.form-item[rel=rootDiskControllerTypeKVM]').hide(); + $form.find('.form-item[rel=requireshvm]').css('display', 'inline-block'); + } + }); + args.$select.trigger('change'); } }, + //XenServer only (starts here) + xenserverToolsVersion61plus: { + label: 'label.xenserver.tools.version.61.plus', + isBoolean: true, + isChecked: function (args) { + var b = true; + if (isAdmin()) { + $.ajax({ + url: createURL('listConfigurations'), + data: { + name: 'xenserver.pvdriver.version' + }, + async: false, + success: function (json) { + if (json.listconfigurationsresponse.configuration != null && json.listconfigurationsresponse.configuration[0].value != 'xenserver61') { + b = false; + } + } + }); + } + return b; + }, + isHidden: true + }, + //XenServer only (ends here) + + //fields for hypervisor == "KVM" (starts here) + rootDiskControllerTypeKVM: { + label: 'label.root.disk.controller', + isHidden: true, + select: function(args) { + var items = [] + items.push({ + id: "", + description: "" + }); + items.push({ + id: "ide", + description: "ide" + }); + items.push({ + id: "osdefault", + description: "osdefault" + }); + items.push({ + id: "scsi", + description: "virtio-scsi" + }); + items.push({ + id: "virtio", + description: "virtio" + }); + args.response.success({ + data: items + }); + } + }, + //fields for hypervisor == "KVM" (ends here) + + //fields for hypervisor == "VMware" (starts here) + rootDiskControllerType: { + label: 'label.root.disk.controller', + isHidden: true, + select: function(args) { + var items = [] + items.push({ + id: "", + description: "" + }); + items.push({ + id: "scsi", + description: "scsi" + }); + items.push({ + id: "ide", + description: "ide" + }); + items.push({ + id: "osdefault", + description: "osdefault" + }); + items.push({ + id: "pvscsi", + description: "pvscsi" + }); + items.push({ + id: "lsilogic", + description: "lsilogic" + }); + items.push({ + id: "lsisas1068", + description: "lsilogicsas" + }); + items.push({ + id: "buslogic", + description: "buslogic" + }); + args.response.success({ + data: items + }); + } + }, + nicAdapterType: { + label: 'label.nic.adapter.type', + isHidden: true, + select: function(args) { + var items = [] + items.push({ + id: "", + description: "" + }); + items.push({ + id: "E1000", + description: "E1000" + }); + items.push({ + id: "PCNet32", + description: "PCNet32" + }); + items.push({ + id: "Vmxnet2", + description: "Vmxnet2" + }); + items.push({ + id: "Vmxnet3", + description: "Vmxnet3" + }); + args.response.success({ + data: items + }); + } + }, + keyboardType: { + label: 'label.keyboard.type', + isHidden: true, + select: function(args) { + var items = [] + items.push({ + id: "", + description: "" + }); + for (var key in cloudStackOptions.keyboardOptions) { + items.push({ + id: key, + description: _l(cloudStackOptions.keyboardOptions[key]) + }); + } + args.response.success({ + data: items + }); + } + }, + //fields for hypervisor == "VMware" (ends here) + format: { label: 'label.format', docID: 'helpRegisterTemplateFormat', From 773dcabef0ad3a21211e2c8ba0e216bbab7e15ba Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Tue, 4 Jun 2019 11:47:50 +0530 Subject: [PATCH 2/2] refactoring: changed appropriate comments Signed-off-by: Abhishek Kumar --- ui/scripts/templates.js | 76 ++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js index edd2536b9a17..43b83b2216ca 100755 --- a/ui/scripts/templates.js +++ b/ui/scripts/templates.js @@ -296,22 +296,8 @@ } }, - // For KVM only: Direct Download - directdownload : { - label: 'label.direct.download', - docID: 'helpRegisterTemplateDirectDownload', - isBoolean: true, - dependsOn: 'hypervisor', - isHidden: true - }, - checksum: { - label: 'label.checksum', - dependsOn: 'directdownload', - isHidden: true - }, - // Direct Download - End - //XenServer only (starts here) + // fields for hypervisor == XenServer (starts here) xenserverToolsVersion61plus: { label: 'label.xenserver.tools.version.61.plus', isBoolean: true, @@ -335,9 +321,23 @@ }, isHidden: true }, - //XenServer only (ends here) + // fields for hypervisor == XenServer (ends here) - //fields for hypervisor == "KVM" (starts here) + // fields for hypervisor == "KVM" (starts here) + // Direct Download + directdownload : { + label: 'label.direct.download', + docID: 'helpRegisterTemplateDirectDownload', + isBoolean: true, + dependsOn: 'hypervisor', + isHidden: true + }, + checksum: { + label: 'label.checksum', + dependsOn: 'directdownload', + isHidden: true + }, + // Direct Download - End rootDiskControllerTypeKVM: { label: 'label.root.disk.controller', isHidden: true, @@ -368,9 +368,9 @@ }); } }, - //fields for hypervisor == "KVM" (ends here) + // fields for hypervisor == "KVM" (ends here) - //fields for hypervisor == "VMware" (starts here) + // fields for hypervisor == "VMware" (starts here) rootDiskControllerType: { label: 'label.root.disk.controller', isHidden: true, @@ -463,7 +463,7 @@ }); } }, - //fields for hypervisor == "VMware" (ends here) + // fields for hypervisor == "VMware" (ends here) format: { label: 'label.format', @@ -644,15 +644,15 @@ }); } - //XenServer only (starts here) + // for hypervisor == XenServer (starts here) if (args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').css("display") != "none") { $.extend(data, { 'details[0].hypervisortoolsversion': (args.data.xenserverToolsVersion61plus == "on") ? "xenserver61" : "xenserver56" }); } - //XenServer only (ends here) + // for hypervisor == XenServer (ends here) - // KVM only (starts here) + // for hypervisor == KVM (starts here) if (args.$form.find('.form-item[rel=rootDiskControllerTypeKVM]').css("display") != "none" && args.data.rootDiskControllerTypeKVM != "") { $.extend(data, { 'details[0].rootDiskController': args.data.rootDiskControllerTypeKVM @@ -665,9 +665,9 @@ 'checksum': args.data.checksum }); } - // KVM only (ends here) + // for hypervisor == KVM (ends here) - //VMware only (starts here) + // for hypervisor == VMware (starts here) if (args.$form.find('.form-item[rel=rootDiskControllerType]').css("display") != "none" && args.data.rootDiskControllerType != "") { $.extend(data, { 'details[0].rootDiskController': args.data.rootDiskControllerType @@ -683,7 +683,7 @@ 'details[0].keyboard': args.data.keyboardType }); } - //VMware only (ends here) + // for hypervisor == VMware (ends here) $.ajax({ url: createURL('registerTemplate'), @@ -735,23 +735,23 @@ hypervisor: args.data.hypervisor }; - //XenServer only (starts here) + // for hypervisor == XenServer (starts here) if (args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').css("display") != "none") { $.extend(data, { 'details[0].hypervisortoolsversion': (args.data.xenserverToolsVersion61plus == "on") ? "xenserver61" : "xenserver56" }); } - //XenServer only (ends here) + // for hypervisor == XenServer (ends here) - // KVM only (starts here) + // for hypervisor == KVM (starts here) if (args.$form.find('.form-item[rel=rootDiskControllerTypeKVM]').css("display") != "none" && args.data.rootDiskControllerTypeKVM != "") { $.extend(data, { 'details[0].rootDiskController': args.data.rootDiskControllerTypeKVM }); } - // KVM only (ends here) + // for hypervisor == KVM (ends here) - //VMware only (starts here) + // for hypervisor == VMware (starts here) if (args.$form.find('.form-item[rel=rootDiskControllerType]').css("display") != "none" && args.data.rootDiskControllerType != "") { $.extend(data, { 'details[0].rootDiskController': args.data.rootDiskControllerType @@ -767,7 +767,7 @@ 'details[0].keyboard': args.data.keyboardType }); } - //VMware only (ends here) + // for hypervisor == VMware (ends here) if (args.$form.find('.form-item[rel=isPublic]').css("display") != "none") { $.extend(data, { @@ -941,7 +941,7 @@ } }, - //XenServer only (starts here) + // fields for hypervisor == XenServer (starts here) xenserverToolsVersion61plus: { label: 'label.xenserver.tools.version.61.plus', isBoolean: true, @@ -965,9 +965,9 @@ }, isHidden: true }, - //XenServer only (ends here) + // fields for hypervisor == XenServer (ends here) - //fields for hypervisor == "KVM" (starts here) + // fields for hypervisor == "KVM" (starts here) rootDiskControllerTypeKVM: { label: 'label.root.disk.controller', isHidden: true, @@ -998,9 +998,9 @@ }); } }, - //fields for hypervisor == "KVM" (ends here) + // fields for hypervisor == "KVM" (ends here) - //fields for hypervisor == "VMware" (starts here) + // fields for hypervisor == "VMware" (starts here) rootDiskControllerType: { label: 'label.root.disk.controller', isHidden: true, @@ -1093,7 +1093,7 @@ }); } }, - //fields for hypervisor == "VMware" (ends here) + // fields for hypervisor == "VMware" (ends here) format: { label: 'label.format',