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:
parent
9b7a1120d5
commit
cd3e690f91
@ -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){
|
||||
|
Loading…
x
Reference in New Issue
Block a user