
      
      Above is my 1G iSCSI test from my machine. The function is
      realized by the code below:
      
      +                $('select',
      '#form-template-storage').change(function() { 
      +                    var selectedItem = $(this).parent().parent();
      
      +                    var tempStorageName = $(this).val(); 
      +                    tempStorageName
      =tempStorageName.split('/')[0]; 
      +                    var scsiCap; 
      +                    $.each(result, function(index,
      storageEntities) { 
      +                        if (tempStorageName ===
      storageEntities.name) { 
      +                           
      selectedItem.find('.template-storage-type').val(storageEntities.type);
      
      +                            scsiCap = storageEntities.capacity /
      Math.pow(1024, 3); 
                                } 
      +                    }) 
      +                    if (tempStorageName === 'iscsi' ||
      tempStorageName === 'scsi') { 
      +                        $('.template-storage-disk',
      selectedItem).attr('readonly', true).val(scsiCap); 
      +                    } else { 
      +                        $('.template-storage-disk',
      selectedItem).attr('readonly', false).val('10'); 
                            } 
                        }); 
      
      Best Regards
      
      Wang Wen
      
      On 11/10/2014 11:54 PM, Aline Manera
        wrote:
      
       
        Just one comment; 
        
        When a SCSI/iSCSI pool/volume is selected the the "Disk size"
        must be set with the volume size and the input box must be
        disabled. 
        
        It was done by the following code: 
        
        -    $('#template-edit-storagePool').change(function() { 
        -        storagepool = $(this).val(); 
        -        var storageArray = storagepool.split("/"); 
        -        if (storageArray.length > 3) { 
        -            volumeName = storageArray.pop(); 
        -            poolName = storageArray.pop(); 
        -            kimchi.getStoragePoolVolume(poolName, volumeName,
        function(result) { 
        -                $('input[name="disks"]',
        templateEditForm).val(result.capacity / Math.pow(1024,3)); 
        -                $('input[name="disks"]',
        templateEditForm).attr('disabled','disabled'); 
        -                return false; 
        -            }, function (err) { 
        -                kimchi.message.error(err.responseJSON.reason);
        
        
        
        
        On 11/05/2014 08:17 AM, Wen Wang wrote: 
        From: Wen Wang <wenwang@linux.vnet.ibm.com>
          
          
          V1 -> V2: 
          
          1) Enable "iSCSI" and "SCSI" for storage. 
          2) Changed the storage tab from "storage" to "Storage". 
          3) Fix the defect that when editing/adding "Storage" or
          "Interface" line 
          went down issue. 
          4) "Storage" and "Interface" content can display properly on
          Remote and 
          Image created template. 
          5) Fix the defect that "Image" didn't show properly when using
          a Image 
          created template. 
          
          This patch redesigned "Edit Template" diaguage in "Templates".
          New "Edit 
          Template" will display all the related information into tabs
          of 
          "General", "Storage" and "Interface". Due to unfinished
          back-end work, 
          functions are not fully supported, which will be finished in
          the future 
          work. 
          
          Temporary disabled functions: 
          1) Multiple disk operation with multiple storage pools edit in
          template 
          for which reason the add button in "Storage" tab is disabled.
          
          2) iSCSI and SCSI storage pool add is removed since we are
          going to 
          allow this kind of operation in the process of creating a VM.
          
          
          Signed-off-by: Wen Wang <wenwang@linux.vnet.ibm.com>
          
          --- 
            ui/css/theme-default/template-edit.css |  116 +++++++---- 
            ui/js/src/kimchi.template_edit_main.js |  364
          +++++++++++++++++++++++--------- 
            ui/pages/template-edit.html.tmpl       |  168
          ++++++++------- 
            3 files changed, 432 insertions(+), 216 deletions(-) 
          
          diff --git a/ui/css/theme-default/template-edit.css
          b/ui/css/theme-default/template-edit.css 
          index 4975f1b..094e909 100644 
          --- a/ui/css/theme-default/template-edit.css 
          +++ b/ui/css/theme-default/template-edit.css 
          @@ -17,24 +17,33 @@ 
             */ 
            #template-edit-window { 
                font-size: 13px; 
          -    height: 600px; 
          -    width: 1000px; 
          +    height: 500px; 
          +    width: 800px; 
            } 
          
          -.template-edit-fieldset { 
          -    float: left; 
          -    padding: 1em; 
          +#edit-template-tabs { 
          +    background: none repeat scroll 0 0 transparent; 
          +    border: medium none; 
          +    height: 100%; 
          +    padding: 0; 
            } 
          
          -.template-edit-wrapper-label, .template-edit-wrapper-controls
          { 
          +#edit-template-tabs .form-template-inline-wrapper { 
          +    display: inline-block; 
                vertical-align: top; 
          -    width: 470px; 
            } 
          
            .template-edit-wrapper-label { 
          -    height: 18px; 
          -    line-height: 18px; 
          -    margin-top: 8px; 
          +    vertical-align: top; 
          +    min-width: 100px; 
          +    height: 35px; 
          +    line-height: 35px; 
          +    margin: 7px 0 8px; 
          +} 
          + 
          +.template-edit-wrapper-controls { 
          +    vertical-align: top; 
          +    width: 400px; 
            } 
          
            .template-edit-wrapper-controls input[type="text"] { 
          @@ -56,7 +65,7 @@ 
          
            .template-edit-wrapper-controls > .dropdown { 
                margin: 5px 0 0 1px; 
          -    width: 440px; 
          +    width: 372px; 
            } 
          
            .template-edit-wrapper-controls input[type="text"][disabled]
          { 
          @@ -65,41 +74,72 @@ 
                cursor: not-allowed; 
            } 
          
          -.hidden-area { 
          -    display: none; 
          +#edit-template-tabs .template-tab-header { 
          +    margin-bottom: 8px; 
          +    padding-bottom: 2px; 
          +    font-weight: bold; 
          +    border-bottom: 1px solid #999999; 
          +    overflow: hidden; 
            } 
          
          -.template-edit-wrapper-controls .select-list-box { 
          -    width: 464px; 
          -    max-height: 168px; 
          -    overflow: auto; 
          -    margin-top: 5px; 
          -    border: 1px solid #ccc; 
          +#edit-template-tabs .template-tab-header .action-area { 
          +    float: right; 
          +    height: 20px; 
          +    width: 20px; 
            } 
          
          -.template-edit-wrapper-controls
          .select-list-box>li>label { 
          -    display: block; 
          +#edit-template-tabs .template-interface-cell { 
          +    display: inline-block; 
          +    width: 250px; 
            } 
          
          -.template-edit-wrapper-controls
          .select-list-box>li>label> 
          -input[type="checkbox"] { 
          -    display: none; 
          +#edit-template-tabs .template-storage-cell{ 
          +    display: inline-block; 
          +    width: 230px; 
          +} 
          + 
          +#edit-template-tabs .template-storage-cell label { 
          +    height: 25px; 
          +    padding: 2px; 
          +    border: 1px; 
            } 
          
          -.template-edit-wrapper-controls
          .select-list-box>li>label>.item { 
          -    display: block; 
          -    height: 41px; 
          -    line-height: 41px; 
          -    padding: 0 20px 0 40px; 
          -    border-bottom: 1px solid #ccc; 
          -    box-shadow: 0px 1px 1px #fff; 
          -    text-shadow: -1px -1px 1px #ddd, 1px 1px 1px #fff; 
          -    color: #222; 
          -    font-size: 12px; 
          +#form-template-storage .template-tab-body select { 
          +    width: 140px; 
            } 
          
          -.template-edit-wrapper-controls
          .select-list-box>li>label> 
          -input[type="checkbox"]:CHECKED+.item { 
          -    background: #f8f8f8
          url(../images/theme-default/check-green.png) no-repeat 
          -                10px center; 
          +#form-template-storage .template-tab-body input { 
          +    width: 56px; 
          +    height: 17px; 
            } 
          + 
          +#form-template-storage .template-tab-body
          .template-storage-name { 
          +    width: 220px; 
          +} 
          + 
          +#edit-template-tabs .template-tab-body input[readonly] { 
          +    background: none repeat scroll 0 0 rgba(0, 0, 0, 0); 
          +    border-color: transparent; 
          +    text-overflow: ellipsis; 
          +} 
          + 
          +#edit-template-tabs .template-tab-body .item { 
          +    height: 25px; 
          +} 
          + 
          +#form-template-interface .template-tab-body select { 
          +    width: 180px; 
          +} 
          + 
          +#edit-template-tabs .template-tab-body .action-area { 
          +    float: right; 
          +} 
          + 
          +#edit-template-tabs .template-tab-body .action-area button {
          
          +    width: 20px; 
          +    height: 20px; 
          +} 
          + 
          +#edit-template-tabs .hide { 
          +    display: none; 
          +} 
          \ No newline at end of file 
          diff --git a/ui/js/src/kimchi.template_edit_main.js
          b/ui/js/src/kimchi.template_edit_main.js 
          index 2f4cc9a..12a9f20 100644 
          --- a/ui/js/src/kimchi.template_edit_main.js 
          +++ b/ui/js/src/kimchi.template_edit_main.js 
          @@ -16,19 +16,23 @@ 
             * limitations under the License. 
             */ 
            kimchi.template_edit_main = function() { 
          -    var templateEditForm = $('#form-template-edit'); 
          +    var templateEditMain = $('#edit-template-tabs'); 
                var origDisks; 
                var origPool; 
          +    var origNetworks; 
                var templateDiskSize; 
          -    $('#template-name',
          templateEditForm).val(kimchi.selectedTemplate); 
          -    kimchi.retrieveTemplate(kimchi.selectedTemplate,
          function(template) { 
          +    $('#template-name',
          templateEditMain).val(kimchi.selectedTemplate); 
          +    templateEditMain.tabs(); 
          + 
          +    var initTemplate = function(template) { 
                    origDisks =  template.disks; 
                    origPool = template.storagepool; 
          +        origNetworks = template.networks; 
                    for(var i=0;i<template.disks.length;i++){ 
                        if(template.disks[i].base){ 
                            template["vm-image"] =
          template.disks[i].base; 
          -               
          $('#templ-edit-cdrom').addClass('hide-content'); 
          -               
          $('#templ-edit-vm-image').removeClass('hide-content'); 
          +                $('.templ-edit-cdrom').addClass('hide'); 
          +               
          $('.templ-edit-vm-image').removeClass('hide'); 
                            break; 
                        } 
                    } 
          @@ -37,18 +41,12 @@ kimchi.template_edit_main = function() { 
                        if (prop == 'graphics') { 
                           value = value["type"]; 
                        } 
          -            $('input[name="' + prop + '"]',
          templateEditForm).val(value); 
          -        } 
          -        var disks = template.disks; 
          -        $('input[name="disks"]').val(disks[0].size); 
          -        templateDiskSize = $('input[name="disks"]').val(); 
          -        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'); 
          +            $('input[name="' + prop + '"]',
          templateEditMain).val(value); 
                    } 
          
                    var vncOpt = [{label: 'VNC', value: 'vnc'}]; 
          +        $('#template-edit-graphics').append('<option
          selected>VNC</option>'); 
          +       
$('#template-edit-graphics').append('<option>Spice</option>');
                    kimchi.select('template-edit-graphics-list',
          vncOpt); 
                    var enableSpice = function() { 
                        if (kimchi.capabilities == undefined) { 
          @@ -61,119 +59,281 @@ kimchi.template_edit_main = function() {
          
                        } 
                    }; 
                    enableSpice(); 
          - 
          -        var scsipools = {}; 
          -        kimchi.listStoragePools(function(result) { 
          -            var options = []; 
          -            if (result && result.length) { 
          -                $.each(result, function(index, storagePool) {
          
          -                    if ((storagePool.state=="active")
          && (storagePool.type !== 'kimchi-iso')) { 
          -                        if ((storagePool.type == 'iscsi') ||
          (storagePool.type == 'scsi')){ 
          -                            scsipools[storagePool.name] = [];
          
          -                           
          kimchi.listStorageVolumes(storagePool.name, function(result) {
          
          -                                if (result &&
          result.length) { 
          -                                    $.each(result,
          function(index, storageVolume) { 
          -                                        options.push({ 
          -                                            label:
          storagePool.name + '/' + storageVolume.name, 
          -                                            value:
          '/storagepools/' + storagePool.name + '/' + storageVolume.name
          
          -                                        }); 
          -                                       
          scsipools[storagePool.name].push(storageVolume) 
          -                                    }); 
          -                                } 
          -                               
          kimchi.select('template-edit-storagePool-list', options); 
          -                            }); 
          +        var initStorage = function(result) { 
          +            var scsipools = {}; 
          +            var addStorageItem = function(storageData) { 
          +                var thisName; 
          +                var thisType; 
          +                var thisDisk; 
          +                var nodeStorage =
          $.parseHTML(kimchi.substitute($('#template-storage-pool-tmpl').html(),
          storageData)); 
          +                $('.template-tab-body',
          '#form-template-storage').append(nodeStorage); 
          +                $('.edit', '#form-template-storage').button({
          
          +                    icons : {primary : 'ui-icon-pencil'}, 
          +                    text : false 
          +                }).click(function(evt) { 
          +                    evt.preventDefault(); 
          +                    var storageItem =
          $(this).parent().parent(); 
          +                    thisName = $('.template-storage-name',
          storageItem).val(); 
          +                    thisType = $('.template-storage-type',
          storageItem).val(); 
          +                    thisDisk = $('.template-storage-disk',
          storageItem).val(); 
          +                    $('.template-storage-name',
          storageItem).hide(); 
          +                    $('.template-storage-disk',
          storageItem).attr('readonly', false); 
          +                    if (thisType === 'iscsi' || thisType ===
          'scsi') { 
          +                        $('.template-storage-disk',
          storageItem).attr('readonly', true); 
          +                    } else { 
          +                        $('.template-storage-disk',
          storageItem).attr('readonly', false); 
          +                    } 
          +                    $('.save', storageItem).parent().show();
          
          +                    $('.delete',
          storageItem).parent().hide(); 
          +                    var selectedStorage = $('select',
          storageItem).val(); 
          +                    $('.template-storage-name',
          storageItem).val(selectedStorage).hide(); 
          +                    $('select',
          storageItem).val(thisName).show(); 
          +                }); 
          +                $('.delete',
          '#form-template-storage').button({ 
          +                    icons : {primary : 'ui-icon-trash'}, 
          +                    text : false 
          +                }).click(function(evt) { 
          +                    evt.preventDefault(); 
          +                    $(this).parent().parent().remove(); 
          +                }); 
          +                $('.cancel',
          '#form-template-storage').button({ 
          +                    icons : {primary :
          'ui-icon-arrowreturnthick-1-w'}, 
          +                    text : false 
          +                }).click(function(evt) { 
          +                    evt.preventDefault(); 
          +                    var cancelEntity =
          $(this).parent().parent(); 
          +                    if ($('.template-storage-name',
          cancelEntity).val() === 'null') { 
          +                        cancelEntity.remove(); 
          +                    } else { 
          +                        $('select', cancelEntity).hide(); 
          +                        $('.template-storage-name',
          cancelEntity).val(thisName).attr('readonly', true).show(); 
          +                        $('.template-storage-type',
          cancelEntity).val(thisType).attr('readonly', true); 
          +                        $('.template-storage-disk',
          cancelEntity).val(thisDisk).attr('readonly', true); 
          +                        $('.save',
          cancelEntity).parent().hide(); 
          +                        $('.edit',
          cancelEntity).parent().show(); 
          +                    } 
          +                }); 
          +                $('.save', '#form-template-storage').button({
          
          +                    icons : {primary : 'ui-icon-disk'}, 
          +                    text : false 
          +                }).click(function(evt) { 
          +                    evt.preventDefault(); 
          +                    var storageItem =
          $(this).parent().parent(); 
          +                    $('.save', storageItem).parent().hide();
          
          +                    $('.delete',
          storageItem).parent().show(); 
          +                    var selectedStorage = $('select',
          storageItem).val(); 
          +                    $('.template-storage-name',
          storageItem).val(selectedStorage).attr('readonly',
          true).show(); 
          +                    $('.template-storage-disk',
          storageItem).attr('readonly', true); 
          +                    $('.template-storage-type',
          storageItem).attr('readonly', true); 
          +                    $('select', storageItem).hide(); 
          +                }); 
          +                var storageOptions = ''; 
          +                var scsiOptions = ''; 
          +                $('select',
          '#form-template-storage').find('option').remove(); 
          +                $.each(result, function(index,
          storageEntities) { 
          +                    if((storageEntities.state === 'active')
          && (storageEntities.type != 'kimchi-iso')) { 
          +                        if(storageEntities.type === 'iscsi'
          || storageEntities.type === 'scsi') { 
          +                           
          kimchi.listStorageVolumes(storageEntities.name,
          function(currentVolume) { 
          +                                $.each(currentVolume,
          function(indexSCSI, scsiEntities) { 
          +                                    scsiOptions +=
          '<option>' + storageEntities.name + '/' +
          scsiEntities.name + '</option>'; 
          +                                }); 
          +                                $('select',
          '#form-template-storage').append(scsiOptions); 
          +                            }, function() {}); 
          +                        } else { 
          +                            var isSlected =
          storageEntities.name === 'default' ? ' selected' : ''; 
          +                            storageOptions += '<option' +
          isSlected + '>' + storageEntities.name + '</option>';
          
                                    } 
          -                        else { 
          -                            options.push({ 
          -                                label: storagePool.name, 
          -                                value: '/storagepools/' +
          storagePool.name 
          -                            }); 
          +                    } 
          +                }); 
          +                $('select',
          '#form-template-storage').append(storageOptions); 
          +                $('select',
          '#form-template-storage').change(function() { 
          +                    var selectedItem =
          $(this).parent().parent(); 
          +                    var tempStorageName = $(this).val(); 
          +                    tempStorageName
          =tempStorageName.split('/')[0]; 
          +                    var scsiCap; 
          +                    $.each(result, function(index,
          storageEntities) { 
          +                        if (tempStorageName ===
          storageEntities.name) { 
          +                           
          selectedItem.find('.template-storage-type').val(storageEntities.type);
          
          +                            scsiCap =
          storageEntities.capacity / Math.pow(1024, 3); 
                                    } 
          +                    }) 
          +                    if (tempStorageName === 'iscsi' ||
          tempStorageName === 'scsi') { 
          +                        $('.template-storage-disk',
          selectedItem).attr('readonly', true).val(scsiCap); 
          +                    } else { 
          +                        $('.template-storage-disk',
          selectedItem).attr('readonly', false).val('10'); 
                                } 
                            }); 
          -            } 
          -            if ($.isEmptyObject(scsipools)) { 
          -               
          kimchi.select('template-edit-storagePool-list', options); 
          -            } 
          -        }); 
          -        kimchi.listNetworks(function(result) { 
          -            if(result && result.length > 0) { 
          -                var html = ''; 
          -                var tmpl = $('#tmpl-network').html(); 
          -                $.each(result, function(index, network) { 
          -                    if (result[index].state === 'active') 
          -                        html += kimchi.substitute(tmpl,
          network); 
          +            }; 
          + 
          +            if ((origDisks && origDisks.length)
          && (origPool && origPool.length)) { 
          +                splitPool = origPool.split('/'); 
          +                var defaultPool; 
          +                var defaultType; 
          +                $.each(result, function(index, poolEntities)
          { 
          +                    if (poolEntities.name ===
          splitPool[splitPool.length-1]) { 
          +                        defaultType = poolEntities.type; 
          +                        defaultPool =
          splitPool[splitPool.length-1] 
          +                    } 
                            }); 
          -               
          $('#template-edit-network-list').html(html).show(); 
          -                if(template.networks &&
          template.networks.length > 0) { 
          -                    $('input[name="networks"]',
          templateEditForm).each(function(index, element) { 
          -                        var value = $(element).val(); 
          -                        if(template.networks.indexOf(value)
          >= 0) { 
          -                            $(element).prop('checked', true);
          
          -                        } 
          -                    }); 
          +                if (origDisks[0]['volume']) { 
          +                    defaultPool = defaultPool + '/' +
          origDisks[0]['volume']; 
                            } 
          -            } else { 
          -                $('#template-edit-network-list').hide(); 
          +                $.each(origDisks, function(index,
          diskEntities) { 
          +                    var storageNodeData = { 
          +                        viewMode : '', 
          +                        editMode : 'hide', 
          +                        storageName : defaultPool, 
          +                        storageType : defaultType, 
          +                        storageDisk : diskEntities.size 
          +                    } 
          +                    addStorageItem(storageNodeData); 
          +                }); 
          +                $('.template-storage-disk').attr('readonly',
          true); 
                        } 
          -        }); 
          -    }); 
          
          -    $('#template-edit-storagePool').change(function() { 
          -        storagepool = $(this).val(); 
          -        var storageArray = storagepool.split("/"); 
          -        if (storageArray.length > 3) { 
          -            volumeName = storageArray.pop(); 
          -            poolName = storageArray.pop(); 
          -            kimchi.getStoragePoolVolume(poolName, volumeName,
          function(result) { 
          -                $('input[name="disks"]',
          templateEditForm).val(result.capacity / Math.pow(1024,3)); 
          -                $('input[name="disks"]',
          templateEditForm).attr('disabled','disabled'); 
          -                return false; 
          -            }, function (err) { 
          -               
          kimchi.message.error(err.responseJSON.reason); 
          +            $('#template-edit-storage-add-button').button({ 
          +                icons: { 
          +                    primary: "ui-icon-plusthick" 
          +                }, 
          +                text: false, 
          +                disabled: true 
          +            }).click(function(event) { 
          +                event.preventDefault(); 
          +                var storageNodeData = { 
          +                    viewMode : 'hide', 
          +                    editMode : '', 
          +                    storageName : 'null', 
          +                    storageType : 'dir', 
          +                    storageDisk : '10' 
          +                } 
          +                addStorageItem(storageNodeData); 
                        }); 
          -        } else { 
          -            $('input[name="disks"]',
          templateEditForm).removeAttr('disabled'); 
          -            $('input[name="disks"]',
          templateEditForm).val(templateDiskSize); 
          -        } 
          -    }); 
          -    $('input[name="disks"]',
          templateEditForm).keyup(function() { 
          -        templateDiskSize = $('input[name="disks"]',
          templateEditForm).val(); 
          -    }); 
          +        }; 
          +        var initInterface = function(result) { 
          +            var addInterfaceItem = function(networkData) { 
          +                var nodeInterface =
          $.parseHTML(kimchi.substitute($('#template-interface-tmpl').html(),
          networkData)); 
          +                $('.template-tab-body',
          '#form-template-interface').append(nodeInterface); 
          +                $('.edit',
          '#form-template-interface').button({ 
          +                    icons : {primary : 'ui-icon-pencil'}, 
          +                    text : false, 
          +                    disabled : true 
          +                }); 
          +                $('.delete',
          '#form-template-interface').button({ 
          +                    icons : {primary : 'ui-icon-trash'}, 
          +                    text : false 
          +                }).click(function(evt) { 
          +                    evt.preventDefault(); 
          +                    $(this).parent().parent().remove(); 
          +                }); 
          +                $('.cancel',
          '#form-template-interface').button({ 
          +                    icons : {primary :
          'ui-icon-arrowreturnthick-1-w'}, 
          +                    text : false 
          +                }).click(function(evt) { 
          +                    evt.preventDefault(); 
          +                    $(this).parent().parent().remove(); 
          +                }); 
          +                $('.save',
          '#form-template-interface').button({ 
          +                    icons : {primary : 'ui-icon-disk'}, 
          +                    text : false 
          +                }).click(function(evt) { 
          +                    evt.preventDefault(); 
          +                    var interItem =
          $(this).parent().parent(); 
          +                    $('.save', interItem).parent().hide(); 
          +                    $('.delete', interItem).parent().show();
          
          +                    var selectedInterface = $('select',
          interItem).val(); 
          +                    $('.template-interface-name',
          interItem).val(selectedInterface).show(); 
          +                    $('select', interItem).hide(); 
          +                }); 
          +                var networkOptions = ''; 
          +                for(var i=0;i<result.length;i++){ 
          +                    if(result[i].state === "active") { 
          +                        var isSlected = i==0 ? ' selected' :
          ''; 
          +                        networkOptions += '<option' +
          isSlected + '>' + result[i].name + '</option>'; 
          +                    } 
          +                } 
          +                $('select',
          '#form-template-interface').find('option').remove(); 
          +                $('select',
          '#form-template-interface').append(networkOptions); 
          +            }; 
          +            if(result && result.length > 0) { 
          +                $.each(result, function(index, data) { 
          +                    if($.inArray(data.name, origNetworks)
          > -1) { 
          +                        addInterfaceItem({ 
          +                            mac : '', 
          +                            network : data.name, 
          +                            type : 'network', 
          +                            viewMode : '', 
          +                            editMode : 'hide' 
          +                        }); 
          +                    } 
          +                }); 
          +            } 
          +            $('#template-edit-interface-add-button').button({
          
          +                icons: { 
          +                    primary: 'ui-icon-plusthick' 
          +                }, 
          +                text: false 
          +            }).click(function(evt) { 
          +                evt.preventDefault(); 
          +                addInterfaceItem({ 
          +                    mac : '', 
          +                    network : '', 
          +                    type : 'network', 
          +                    viewMode : 'hide', 
          +                    editMode : '' 
          +                }); 
          +            }); 
          +        }; 
          +        kimchi.listNetworks(initInterface); 
          +        kimchi.listStoragePools(initStorage); 
          +    }; 
          +    kimchi.retrieveTemplate(kimchi.selectedTemplate,
          initTemplate); 
          + 
          
                $('#tmpl-edit-button-save').on('click', function() { 
          -        var editableFields = [ 'name', 'cpus', 'memory',
          'storagepool', 'disks', 'graphics']; 
          +        var editableFields = [ 'name', 'cpus', 'memory',
          'disks', 'graphics']; 
                    var data = {}; 
          +        //Fix me: Only support one storage pool now 
          +        var storages = $('.template-tab-body .item',
          '#form-template-storage'); 
          +        var tempName = $('.template-storage-name',
          storages).val(); 
          +        tempName = tempName.split('/'); 
          +        var tempNameHead =tempName[0]; 
          +        var tempNameTail = tempNameHead; 
          +        if(tempNameHead === 'iscsi' || tempNameHead =='scsi')
          { 
          +            tempNameTail = tempName[tempName.length-1]; 
          +        } 
          +        tempName = '/storagepools/' + tempNameHead; 
          +        data['storagepool'] = tempName; 
                    $.each(editableFields, function(i, field) { 
                        /* Support only 1 disk at this moment */ 
                        if (field == 'disks') { 
          -               origDisks[0].size =
          Number($('#form-template-edit [name="' + field + '"]').val());
          
          +                var tmpItem = $('#form-template-storage
          .item'); 
          +                origDisks[0].size =
          Number($('.template-storage-disk', tmpItem).val()); 
          +                if($('.template-storage-type', tmpItem).val()
          === 'iscsi' || $('.template-storage-type', tmpItem).val()
          =='scsi') { 
          +                    origDisks[0]['volume'] = tempNameTail; 
          +                } else { 
          +                    origDisks[0]['volume'] && delete
          origDisks[0]['volume']; 
          +                } 
                           data[field] = origDisks; 
                        } 
                        else if (field == 'graphics') { 
          -               var type = $('#form-template-edit [name="' +
          field + '"]').val(); 
          +               var type = $('#form-template-general [name="'
          + field + '"]').val(); 
                           data[field] = {'type': type}; 
                        } 
                        else { 
          -               data[field] = $('#form-template-edit [name="'
          + field + '"]').val(); 
          +               data[field] = $('#form-template-general
          [name="' + field + '"]').val(); 
                        } 
                    }); 
                    data['memory'] = Number(data['memory']); 
                    data['cpus']   = Number(data['cpus']); 
          -        storagepool = data['storagepool']; 
          -        storageArray = storagepool.split("/"); 
          -        if (storageArray.length > 3){ 
          -            /* Support only 1 disk at this moment */ 
          -            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) { 
          -            data.networks = networks; 
          -        } else if (networks != null) { 
          -            data.networks = [networks]; 
          +        var networks = $('.template-tab-body .item',
          '#form-template-interface'); 
          +        var networkForUpdate = new Array(); 
          +        $.each(networks, function(index, networkEntities) { 
          +           
          networkForUpdate.push($('.template-interface-name',
          networkEntities).val()); 
          +        }); 
          +        if (networkForUpdate instanceof Array) { 
          +            data.networks = networkForUpdate; 
          +        } else if (networkForUpdate != null) { 
          +            data.networks = [networkForUpdate]; 
                    } else { 
                        data.networks = []; 
                    } 
          diff --git a/ui/pages/template-edit.html.tmpl
          b/ui/pages/template-edit.html.tmpl 
          index 5a71d91..018ac10 100644 
          --- a/ui/pages/template-edit.html.tmpl 
          +++ b/ui/pages/template-edit.html.tmpl 
          @@ -28,74 +28,67 @@ 
                    <div class="close">X</div> 
                </header> 
                <div class="content"> 
          -        <form id="form-template-edit"> 
          +        <div id="edit-template-tabs"> 
                        <input type="hidden" id="template-name"
          name="templateName" /> 
          -            <fieldset class="template-edit-fieldset"> 
          -                <div> 
          +            <ul> 
          +                <li> 
          +                    <a
          href="#form-template-general">$_("General")</a> 
          +                </li> 
          +                <li> 
          +                    <a
          href="#form-template-storage">$_("Storage")</a> 
          +                </li> 
          +                <li> 
          +                    <a
          href="#form-template-interface">$_("Interface")</a> 
          +                </li> 
          +            </ul> 
          +            <form id="form-template-general"> 
          +                <div
          class="form-template-inline-wrapper"> 
                                <div
          class="template-edit-wrapper-label"> 
                                    <label
          for="template-edit-id-textbox">$_("Name")</label> 
                                </div> 
          -                    <div
          class="template-edit-wrapper-controls"> 
          -                        <input
          id="template-edit-id-textbox" name="name" type="text" /> 
          -                    </div> 
          -                </div> 
          -                <div> 
                                <div
          class="template-edit-wrapper-label"> 
                                    <label
          for="template-edit-vendor-textbox">$_("Vendor")</label>
          
                                </div> 
          -                    <div
          class="template-edit-wrapper-controls"> 
          -                        <input
          id="template-edit-vendor-textbox" name="os_distro" type="text"
          disabled="disabled" /> 
          -                    </div> 
          -                </div> 
          -                <div> 
                                <div
          class="template-edit-wrapper-label"> 
                                    <label
          for="template-edit-version-textbox">$_("Version")</label>
          
                                </div> 
          -                    <div
          class="template-edit-wrapper-controls"> 
          -                        <input
          id="template-edit-version-textbox" name="os_version"
          type="text" disabled="disabled" /> 
          -                    </div> 
          -                </div> 
          -                <div> 
                                <div
          class="template-edit-wrapper-label"> 
                                    <label
          for="template-edit-cpu-textbox">$_("CPU
          Number")</label> 
                                </div> 
          -                    <div
          class="template-edit-wrapper-controls"> 
          -                        <input
          id="template-edit-cpu-textbox" name="cpus" type="text" /> 
          -                    </div> 
          -                </div> 
          -                <div> 
                                <div
          class="template-edit-wrapper-label"> 
                                    <label
          for="template-edit-memory-textbox">$_("Memory
          (MB)")</label> 
                                </div> 
          -                    <div
          class="template-edit-wrapper-controls"> 
          -                        <input
          id="template-edit-memory-textbox" name="memory" type="text"
          /> 
          +                    <div
          class="template-edit-wrapper-label templ-edit-cdrom"> 
          +                        <label
          for="template-edit-cdrom-textbox">$_("CDROM")</label>
          
          +                    </div> 
          +                    <div
          class="template-edit-wrapper-label templ-edit-vm-image
          hide"> 
          +                        <label
          for="template-edit-vmimage-textbox">$_("Image
          File")</label> 
                                </div> 
          -                </div> 
          -                <div> 
                                <div
          class="template-edit-wrapper-label"> 
          -                        <label
          for="template-edit-disk-textbox">$_("Disk
          (GB)")</label> 
          +                       
          <label>$_("Graphics")</label> 
                                </div> 
          +                </div> 
          +                <div
          class="form-template-inline-wrapper"> 
                                <div
          class="template-edit-wrapper-controls"> 
          -                        <input
          id="template-edit-disk-textbox" name="disks" type="text" />
          
          +                        <input
          id="template-edit-id-textbox" name="name" type="text" /> 
                                </div> 
          -                </div> 
          -            </fieldset> 
          -            <fieldset class="template-edit-fieldset"> 
          -                <div id="templ-edit-cdrom"> 
          -                    <div
          class="template-edit-wrapper-label"> 
          -                        <label
          for="template-edit-cdrom-textbox">$_("CDROM")</label>
          
          +                    <div
          class="template-edit-wrapper-controls"> 
          +                        <input
          id="template-edit-vendor-textbox" name="os_distro" type="text"
          disabled="disabled" /> 
                                </div> 
                                <div
          class="template-edit-wrapper-controls"> 
          -                        <input
          id="template-edit-cdrom-textbox" name="cdrom" type="text"
          disabled="disabled"/> 
          +                        <input
          id="template-edit-version-textbox" name="os_version"
          type="text" disabled="disabled" /> 
                                </div> 
          -                </div> 
          -                <div id="templ-edit-vm-image"
          class="hide-content"> 
          -                    <div
          class="template-edit-wrapper-label">$_("Image
          File")</div> 
          -                    <div
          class="template-edit-wrapper-controls"><input
          name="vm-image" type="text" disabled/></div> 
          -                </div> 
          -                <div> 
          -                    <div
          class="template-edit-wrapper-label"> 
          -                       
          <label>$_("Graphics")</label> 
          +                    <div
          class="template-edit-wrapper-controls"> 
          +                        <input
          id="template-edit-cpu-textbox" name="cpus" type="text" /> 
          +                    </div> 
          +                    <div
          class="template-edit-wrapper-controls"> 
          +                        <input
          id="template-edit-memory-textbox" name="memory" type="text"
          /> 
          +                    </div> 
          +                    <div
          class="template-edit-wrapper-controls templ-edit-cdrom"> 
          +                        <input
          id="template-edit-cdrom-textbox" name="cdrom" type="text"
          disabled="disabled" /> 
          +                    </div> 
          +                    <div
          class="template-edit-wrapper-controls templ-edit-vm-image
          hide"> 
          +                        <input
          id="template-edit-vmimage-textbox" name="vm-image" type="text"
          disabled="disabled" /> 
                                </div> 
                                <div
          class="template-edit-wrapper-controls"> 
                                    <div class="btn dropdown
          popable"> 
          @@ -108,40 +101,26 @@ 
                                    </div> 
                                </div> 
                            </div> 
          -                <div> 
          -                    <div
          class="template-edit-wrapper-label"> 
          -                        <label>$_("Storage
          Pool")</label> 
          -                    </div> 
          -                    <div
          class="template-edit-wrapper-controls"> 
          -                        <div class="btn dropdown
          popable"> 
          -                            <input
          id="template-edit-storagePool" name="storagepool"
          type="hidden" /> 
          -                            <span class="text"
          id="template-edit-storage-label"></span><span
          class="arrow"></span> 
          -                            <div class="popover"
          style="width: 100%"> 
          -                                <ul class="select-list"
          id="template-edit-storagePool-list"
          data-target="template-edit-storagePool"
          data-label="template-edit-storage-label"> 
          -                                </ul> 
          -                            </div> 
          -                        </div> 
          -                    </div> 
          +            </form> 
          +            <form id="form-template-storage"> 
          +                <div class="template-tab-header"> 
          +                    <span
          class="template-storage-cell">$_("Storage
          Pool")</span> 
          +                    <span
          class="template-storage-cell">$_("Type")</span> 
          +                    <span
          class="template-storage-cell">$_("Disk(GB)")</span> 
          +                    <button type="button"
          id="template-edit-storage-add-button"
          class="action-area"></button> 
                            </div> 
          -                <div> 
          -                    <div
          class="template-edit-wrapper-label"> 
          -                       
          <label>$_("Network")</label> 
          -                    </div> 
          -                    <div
          class="template-edit-wrapper-controls"> 
          -                        <ul class="select-list-box"
          id="template-edit-network-list"> 
          -                        </ul> 
          -                        <script id="tmpl-network"
          type="text/html"> 
          -                            <li> 
          -                                <label> 
          -                                    <input name="networks"
          type="checkbox" value="{name}" /> 
          -                                    <span
          class="item">{name}</span> 
          -                                </label> 
          -                            </li> 
          -                        </script> 
          -                    </div> 
          +                <div class="template-tab-body"> 
                            </div> 
          -            </fieldset> 
          -        </form> 
          +            </form> 
          +            <form id="form-template-interface"> 
          +                <div class="template-tab-header"> 
          +                    <span
          class="template-interface-cell">$_("Network")</span>
          
          +                    <span
          class="template-interface-cell">$_("Type")</span> 
          +                    <button type="button"
          id="template-edit-interface-add-button"
          class="action-area"></button> 
          +                </div> 
          +                <div
          class="template-tab-body"></div> 
          +            </form> 
          +        </div> 
                </div> 
                <footer> 
                    <div class="btn-group"> 
          @@ -152,3 +131,40 @@ 
            <script> 
                kimchi.template_edit_main(); 
            </script> 
          +<script id="template-storage-pool-tmpl"
          type="text/html"> 
          +    <div class='item'> 
          +        <span class="template-storage-cell"> 
          +            <input class="template-storage-name
          {viewMode}" value={storageName} readonly=true type="text"/>
          
          +            <select class="{editMode}"></select>
          
          +        </span> 
          +        <span class="template-storage-cell"> 
          +            <input class="template-storage-type"
          value={storageType} readonly=true type="text" /> 
          +        </span> 
          +        <span class="template-storage-cell"> 
          +            <input class="template-storage-disk"
          value={storageDisk} type="text" /> 
          +        </span> 
          +        <span class="action-area {editMode}"> 
          +            <button
          class="save"></button><button
          class="cancel"></button> 
          +        </span> 
          +        <span class="action-area {viewMode}"> 
          +            <button
          class="edit"></button><button
          class="delete"></button> 
          +        </span> 
          +    </div> 
          +</script> 
          +<script id="template-interface-tmpl" type="text/html">
          
          +    <div class="item"> 
          +        <span class="template-interface-cell"> 
          +            <input class="template-interface-name
          {viewMode}" readonly="true" type="text"  value={network} />
          
          +            <select class="{editMode}"></select>
          
          +        </span> 
          +        <span class="template-interface-cell"> 
          +            <input value={type} readonly=true type="text"
          /> 
          +        </span> 
          +        <span class="action-area {editMode}"> 
          +            <button
          class="save"></button><button
          class="cancel"></button> 
          +        </span> 
          +        <span class="action-area {viewMode}"> 
          +            <button
          class="edit"></button><button
          class="delete"></button> 
          +        </span> 
          +    </div> 
          +</script> 
          \ No newline at end of file