On 04/08/2014 03:31 PM, Aline Manera wrote:
On 04/08/2014 12:24 PM, Rodrigo Trujillo wrote:
> This patch changes edit template window to fix consistence:
> - Show storagepool + volume name correctly in storagepool field after
> saving
> - Show disk size according to storagepool or storagepool/volume selected
> - Block disk size input box when disk is type volume (iscsi/scsi volumes
> cannot be changed)
>
> Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo(a)linux.vnet.ibm.com>
> ---
> ui/js/src/kimchi.template_edit_main.js | 35
> ++++++++++++++++++++++++++++++++--
> 1 file changed, 33 insertions(+), 2 deletions(-)
>
> diff --git a/ui/js/src/kimchi.template_edit_main.js
> b/ui/js/src/kimchi.template_edit_main.js
> index 386095b..db9a984 100644
> --- a/ui/js/src/kimchi.template_edit_main.js
> +++ b/ui/js/src/kimchi.template_edit_main.js
> @@ -30,6 +30,11 @@ kimchi.template_edit_main = function() {
> }
> var disks = template.disks;
> $('input[name="disks"]').val(disks[0].size);
> + if (disks[0].volume) {
> + var spool_value = $('#form-template-edit
> [name="storagepool"]').val();
> + $('input[name="storagepool"]',
> templateEditForm).val(spool_value + '/' + disks[0].volume);
> + $('input[name="disks"]',
> templateEditForm).attr('disabled','disabled');
> + }
>
> var options = [{label: 'VNC', value: 'vnc'}];
> kimchi.getCapabilities(function(result) {
> @@ -37,7 +42,7 @@ kimchi.template_edit_main = function() {
> options.push({label: 'Spice', value: 'spice'})
> }
> }, function() {
> - }, function(){
> + }, function() {
> kimchi.select('template-edit-graphics-list', options);
> });
>
> @@ -101,6 +106,31 @@ kimchi.template_edit_main = function() {
> kimchi.window.close();
> });
>
> + $('input[name="storagepool"]',
> templateEditForm).change(function() {
> + var storagepool = $('#form-template-edit
> [name="storagepool"]').val();
> + var storageArray = storagepool.split("/");
> + if (storageArray.length > 3) {
> + volumeName = storageArray.pop();
> + storageName = storageArray.pop();
> + kimchi.listStorageVolumes(storageName, function(result) {
> + $.each(result, function(index, storageVolume) {
> + if (storageVolume.name == volumeName) {
> + $('input[name="disks"]',
> templateEditForm).val(storageVolume.allocation / Math.pow(1024,3));
> + $('input[name="disks"]',
> templateEditForm).attr('disabled','disabled');
> + return false;
> + }
Indeed. Thanks Aline
You can only retrieve the information for a single storage volume
GET /storagepools/<pool>/storagevolumes/<volume>
That way you don't need to parse all the storage volumes to get the
info you want (and also improve performance)
> + });
> + });
> + } else if (origDisks[0].volume) {
> + // Set default value when original disk was a volume
> + $('input[name="disks"]', templateEditForm).val(10);
> + $('input[name="disks"]',
> templateEditForm).removeAttr('disabled');
> + } else {
> + $('input[name="disks"]',
> templateEditForm).val(origDisks[0].size);
> + $('input[name="disks"]',
> templateEditForm).removeAttr('disabled');
> + }
> + });
> +
> $('#tmpl-edit-button-save').on('click', function() {
> var editableFields = [ 'name', 'cpus', 'memory',
> 'storagepool', 'disks', 'graphics'];
> var data = {};
> @@ -124,9 +154,10 @@ kimchi.template_edit_main = function() {
> storageArray = storagepool.split("/");
> if (storageArray.length > 3){
> /* Support only 1 disk at this moment */
> - delete data["disks"][0].size;
> data["disks"][0].volume = storageArray.pop();
> data['storagepool'] = storageArray.join("/");
> + } else if (data["disks"][0].volume) {
> + delete data["disks"][0].volume;
> }
> var networks = templateEditForm.serializeObject().networks;
> if (networks instanceof Array) {
_______________________________________________
Kimchi-devel mailing list
Kimchi-devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel