diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js index f3bed8b69a05..43b83b2216ca 100755 --- a/ui/scripts/templates.js +++ b/ui/scripts/templates.js @@ -296,21 +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 + // fields for hypervisor == XenServer (starts here) xenserverToolsVersion61plus: { label: 'label.xenserver.tools.version.61.plus', isBoolean: true, @@ -334,8 +321,23 @@ }, isHidden: true }, + // 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, @@ -366,8 +368,9 @@ }); } }, + // 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, @@ -460,7 +463,7 @@ }); } }, - //fields for hypervisor == "VMware" (ends here) + // fields for hypervisor == "VMware" (ends here) format: { label: 'label.format', @@ -641,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 @@ -662,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 @@ -680,7 +683,7 @@ 'details[0].keyboard': args.data.keyboardType }); } - //VMware only (ends here) + // for hypervisor == VMware (ends here) $.ajax({ url: createURL('registerTemplate'), @@ -732,6 +735,40 @@ hypervisor: args.data.hypervisor }; + // 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" + }); + } + // for hypervisor == XenServer (ends 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 + }); + } + // for hypervisor == KVM (ends 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 + }); + } + 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 + }); + } + // for hypervisor == VMware (ends here) + if (args.$form.find('.form-item[rel=isPublic]').css("display") != "none") { $.extend(data, { ispublic: (args.data.isPublic == "on") @@ -865,8 +902,198 @@ }); } }); + 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'); + } + }, + + // fields for hypervisor == XenServer (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 + }, + // fields for hypervisor == XenServer (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',