diff --git a/src/sunstone/public/js/plugins/hosts-tab.js b/src/sunstone/public/js/plugins/hosts-tab.js index 031b43cc28..7f9d4b6fa6 100644 --- a/src/sunstone/public/js/plugins/hosts-tab.js +++ b/src/sunstone/public/js/plugins/hosts-tab.js @@ -398,7 +398,6 @@ function hostInfoListener(){ //do nothing if we are clicking a checkbox! if ($(e.target).is('input')) {return true;} - popDialogLoading(); var aData = dataTable_hosts.fnGetData(this); var id = $(aData[0]).val(); diff --git a/src/sunstone/public/js/plugins/images-tab.js b/src/sunstone/public/js/plugins/images-tab.js index de4ab5a5cd..66ca593647 100644 --- a/src/sunstone/public/js/plugins/images-tab.js +++ b/src/sunstone/public/js/plugins/images-tab.js @@ -433,9 +433,10 @@ Sunstone.addActions(image_actions); Sunstone.addMainTab('images_tab',images_tab); Sunstone.addInfoPanel('image_info_panel',image_info_panel); - +// Returns an array containing the values of the image_json and ready +// to be inserted in the dataTable function imageElementArray(image_json){ - image = image_json.IMAGE; + var image = image_json.IMAGE; return [ '', image.ID, @@ -450,65 +451,77 @@ function imageElementArray(image_json){ ]; } -function imageInfoListener(target){ +// Set up the listener on the table TDs to show the info panel +function imageInfoListener(){ $('#tbodyimages tr').live("click",function(e){ if ($(e.target).is('input')) {return true;} - aData = dataTable_images.fnGetData(this); - id = $(aData[0]).val(); + popDialogLoading(); + var aData = dataTable_images.fnGetData(this); + var id = $(aData[0]).val(); Sunstone.runAction("Image.showinfo",id); return false; }); } +//Updates the select input field with an option for each image function updateImageSelect(image_list){ images_select=""; images_select += ""; $.each(image_list, function(){ + //Only add if the state says the image is usable if ((this.IMAGE.STATE < 3) && (this.IMAGE.STATE > 0)){ images_select += ''; } }); - //update static selectors + //update static selectors: + //in the VM section $('div.vm_section#disks select#IMAGE').html(images_select); } +// Callback to update an element in the dataTable function updateImageElement(request, image_json){ - id = image_json.IMAGE.ID; - element = imageElementArray(image_json); + var id = image_json.IMAGE.ID; + var element = imageElementArray(image_json); updateSingleElement(element,dataTable_images,'#image_'+id); + //Update the image select but only if the image is enabled... if ((image_json.IMAGE.STATE < 3) && (image_json.IMAGE.STATE > 0) && ($('#img_sel_'+id,images_select).length == 0)){ images_select += ''; } - else { - tag = 'option#img_sel_'+id; - select = $(''); + else { //delete the element if it is in the list + var tag = 'option#img_sel_'+id; + var select = $(''); $(tag,select).remove(); images_select = $(select).html(); } $('div.vm_section#disks select#IMAGE').html(images_select); } +// Callback to remove an element from the dataTable function deleteImageElement(req){ deleteElement(dataTable_images,'#image_'+req.request.data); - tag = 'option#img_sel_'+req.request.data; - select = $(''); + var tag = 'option#img_sel_'+req.request.data; + var select = $(''); $(tag,select).remove(); images_select = $(select).html(); $('div.vm_section#disks select#IMAGE').html(images_select); } +// Callback to add an image element function addImageElement(request, image_json){ - element = imageElementArray(image_json); + var element = imageElementArray(image_json); addElement(element,dataTable_images); + //NOTE that the select is not updated because newly added images + //are disabled by default } +// Callback to refresh the list of images function updateImagesView(request, images_list){ image_list_json = images_list; - image_list_array = []; + var image_list_array = []; $.each(image_list_json,function(){ image_list_array.push(imageElementArray(this)); }); @@ -519,9 +532,13 @@ function updateImagesView(request, images_list){ } +// Prepare the dialog to add/remove/update image attributes function setupImageAttributesDialogs(){ + + //Append to DOM $('div#dialogs').append('
'); + //Put HTML in place $('#image_attributes_dialog').html( '