1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

Bug #2682: fill in already present clustes automatically

This commit is contained in:
Tino Vazquez 2014-02-06 11:30:14 +01:00
parent 9b7a1120d5
commit cd3e690f91

View File

@ -826,7 +826,7 @@ function updateGroupInfo(request,group){
$("#add_rp_button", $("#group_info_panel")).click(function(){
setup_add_rp_dialog(info.ID);
setup_add_rp_dialog(info);
$('#add_rp_dialog',dialogs_context).addClass("reveal-modal large max-height");
$('#add_rp_dialog',dialogs_context).reveal();
@ -835,7 +835,7 @@ function updateGroupInfo(request,group){
}
function setup_add_rp_dialog(group_id){
function setup_add_rp_dialog(group){
dialogs_context.append('<div id="add_rp_dialog"></div>');
var dialog = $('#add_rp_dialog',dialogs_context);
@ -863,6 +863,7 @@ function setup_add_rp_dialog(group_id){
<hr>\
<div class="form_buttons">\
<button class="button radius right success" id="add_rp_submit">'+tr("Add")+'</button>\
<button class="button secondary radius" id="add_rp_reset_button" type="reset" value="reset">'+tr("Refresh")+'</button>\
<button class="close-reveal-modal button secondary radius" type="button" id="add_rp_close" value="close">' + tr("Close") + '</button>\
</div>\
</div>\
@ -874,6 +875,15 @@ function setup_add_rp_dialog(group_id){
$.each(selected_group_clusters, function(zone_id, zone_clusters) {
var str_zone_tab_id = 'zone' + zone_id + "_add_rp";
providers_array=group.RESOURCE_PROVIDER
if (!$.isArray(providers_array))
{
var tmp_array = new Array();
tmp_array[0] = providers_array;
providers_array = tmp_array;
}
var resource_selection = $("input[name='"+str_zone_tab_id+"']:checked", dialog).val();
switch (resource_selection){
case "all":
@ -883,21 +893,46 @@ function setup_add_rp_dialog(group_id){
"cluster_id" : 10
}
Sunstone.runAction("Group.add_provider_action",
group_id,
extra_param);
add_it = true;
$.each(providers_array, function(index, provider){
if (provider.ZONE_ID==zone_id && provider.CLUSTER_ID == key)
{
add_it = false;
}
});
if (add_it)
{
Sunstone.runAction("Group.add_provider_action",
group.ID,
extra_param);
}
break;
case "cluster":
$.each(selected_group_clusters[zone_id], function(key, value) {
extra_param = {
extra_param =
{
"zone_id" : zone_id,
"cluster_id" : key
}
Sunstone.runAction("Group.add_provider_action",
group_id,
add_it = true;
$.each(providers_array, function(index, provider){
if (provider.ZONE_ID==zone_id && provider.CLUSTER_ID == key)
{
add_it = false;
}
});
if (add_it)
{
Sunstone.runAction("Group.add_provider_action",
group.ID,
extra_param);
}
});
break;
@ -911,24 +946,32 @@ function setup_add_rp_dialog(group_id){
});
$("#add_rp_reset_button", dialog).die();
$("#add_rp_reset_button", dialog).live("click", function(){
$('#add_rp_dialog',dialog).remove();
setup_add_rp_dialog(group);
$('#add_rp_dialog').addClass("reveal-modal large max-height");
$('#add_rp_dialog').reveal();
});
$('#add_rp_close',dialog).die();
$('#add_rp_close',dialog).live( "click", function() {
dialog.trigger('reveal:close');
dialog.remove();
dialog.trigger('reveal:close');
dialog.remove();
});
OpenNebula.Zone.list({
timeout: true,
success: function (request, obj_list){
$.each(obj_list,function(){
add_resource_tab(this.ZONE.ID, this.ZONE.NAME, dialog, "add_rp");
add_resource_tab(this.ZONE.ID, this.ZONE.NAME, dialog, "add_rp", group);
});
},
error: onError
});
}
function setup_group_resource_tab_content(zone_id, zone_section, str_zone_tab_id, str_datatable_id, id_suffix) {
function setup_group_resource_tab_content(zone_id, zone_section, str_zone_tab_id, str_datatable_id, id_suffix, group) {
// Show the clusters dataTable when the radio button is selected
$("input[name='"+str_zone_tab_id+"']", zone_section).change(function(){
if ($("input[name='"+str_zone_tab_id+"']:checked", zone_section).val() == "cluster") {
@ -959,7 +1002,7 @@ function setup_group_resource_tab_content(zone_id, zone_section, str_zone_tab_id
});
// Retrieve the clusters to fill the datatable
update_datatable_group_clusters(dataTable_group_clusters, zone_id);
update_datatable_group_clusters(dataTable_group_clusters, zone_id, group);
$('#'+str_zone_tab_id+'_search', zone_section).keyup(function(){
dataTable_group_clusters.fnFilter( $(this).val() );
@ -1027,7 +1070,7 @@ function setup_group_resource_tab_content(zone_id, zone_section, str_zone_tab_id
setupTips(zone_section);
}
function generate_group_resource_tab_content(str_zone_tab_id, str_datatable_id, zone_id){
function generate_group_resource_tab_content(str_zone_tab_id, str_datatable_id, zone_id, group){
var html =
'<div class="row">\
<div class="four columns">\
@ -1079,14 +1122,14 @@ function generate_group_resource_tab_content(str_zone_tab_id, str_datatable_id,
$("#refresh_group_clusters_table_button_class"+str_zone_tab_id).die();
$("#refresh_group_clusters_table_button_class"+str_zone_tab_id).live('click', function(){
update_datatable_group_clusters($('table[id='+str_datatable_id+']').dataTable(), zone_id);
update_datatable_group_clusters($('table[id='+str_datatable_id+']').dataTable(), zone_id, group);
});
return html;
}
// TODO: Refactor? same function in templates-tab.js
function update_datatable_group_clusters(datatable, zone_id) {
function update_datatable_group_clusters(datatable, zone_id, group) {
OpenNebula.Cluster.list_in_zone({
data:{zone_id:zone_id},
@ -1100,6 +1143,33 @@ function update_datatable_group_clusters(datatable, zone_id) {
});
updateView(obj_list_array, datatable);
if (group && group.RESOURCE_PROVIDER)
{
var rows = datatable.fnGetNodes();
providers_array=group.RESOURCE_PROVIDER
if (!$.isArray(providers_array))
{
var tmp_array = new Array();
tmp_array[0] = providers_array;
providers_array = tmp_array;
}
$.each(providers_array, function(index, provider){
if (provider.ZONE_ID==zone_id)
for(var j=0;j<rows.length;j++)
{
var current_row = $(rows[j]);
var row_cluster_id = $(rows[j]).find("td:eq(1)").html();
if (provider.CLUSTER_ID == row_cluster_id)
{
current_row.click();
}
}
});
}
}
});
};
@ -1108,7 +1178,7 @@ function update_datatable_group_clusters(datatable, zone_id) {
var selected_group_clusters = {};
var group_clusters_row_hash = {};
var add_resource_tab = function(zone_id, zone_name, dialog, id_suffix) {
var add_resource_tab = function(zone_id, zone_name, dialog, id_suffix, group) {
var str_zone_tab_id = 'zone' + zone_id;
var str_datatable_id = 'datatable_group_clusters_zone' + zone_id;
@ -1123,7 +1193,7 @@ var add_resource_tab = function(zone_id, zone_name, dialog, id_suffix) {
// Append the new div containing the tab and add the tab to the list
var html_tab_content = '<li id="'+str_zone_tab_id+'Tab" style="display: block;">'+
generate_group_resource_tab_content(str_zone_tab_id, str_datatable_id, zone_id) +
generate_group_resource_tab_content(str_zone_tab_id, str_datatable_id, zone_id, group) +
'</li>'
$(html_tab_content).appendTo($("ul#group_zones_tabs_content", dialog));
@ -1134,7 +1204,7 @@ var add_resource_tab = function(zone_id, zone_name, dialog, id_suffix) {
$(document).foundationTabs("set_tab", a);
var zone_section = $('li#' +str_zone_tab_id+'Tab', dialog);
setup_group_resource_tab_content(zone_id, zone_section, str_zone_tab_id, str_datatable_id, id_suffix);
setup_group_resource_tab_content(zone_id, zone_section, str_zone_tab_id, str_datatable_id, id_suffix, group);
};
function disableAdminUser(dialog){