1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-04-02 10:50:07 +03:00

Feature #2696: Add Group create dialog views options

This commit is contained in:
Tino Vazquez 2014-03-07 18:11:16 +01:00
parent b6213869c8
commit 80f4caaefd
4 changed files with 45 additions and 6 deletions

View File

@ -201,11 +201,17 @@ module OpenNebula
if OpenNebula.is_error?(rc)
user.delete
admin_group.delete
admin_group.delete
self.delete
return -1, "Error creating acl rules"
end
end
# Create admin group
if group_hash[:views]
self.update("SUNSTONE_VIEWS=\""+group_hash[:views].join(",")+"\"\n")
end
return rc_alloc
end

View File

@ -37,7 +37,7 @@ module OpenNebulaJSON
rc = case action_hash['perform']
when "chown" then self.chown(action_hash['params'])
when "update" then self.update(action_hash['params'])
when "update" then self.update_json(action_hash['params'])
when "set_quota" then self.set_quota(action_hash['params'])
when "add_provider" then
self.add_provider_json(action_hash['params'])
@ -54,7 +54,7 @@ module OpenNebulaJSON
super(params['owner_id'].to_i)
end
def update(params=Hash.new)
def update_json(params=Hash.new)
super(params['template_raw'])
end

View File

@ -68,7 +68,7 @@ class SunstoneViews
available_views.reject!{|v| !@views.has_key?(v)} #sanitize array views
return available_views.uniq! if !available_views.empty?
return available_views.uniq if !available_views.empty?
available_views << @views_config['users'][user_name] if @views_config['users']
available_views << @views_config['groups'][group_name] if @views_config['groups']
@ -78,7 +78,7 @@ class SunstoneViews
available_views.reject!{|v| !@views.has_key?(v)} #sanitize array views
return available_views.uniq!
return available_views.uniq
end
def available_tabs

View File

@ -54,6 +54,7 @@ var create_group_tmpl =
<dl class="tabs right-info-tabs text-center" data-tab>\
<dd class="active"><a href="#resource_providers"><i class="fa fa-cloud"></i><br>'+tr("Resources")+'</a></dd>\
<dd><a href="#administrators"><i class="fa fa-upload"></i><br>'+tr("Admin")+'</a></dd>\
<dd><a href="#resource_views"><i class="fa fa-eye"></i><br>'+tr("Views")+'</a></dd>\
<dd><a href="#resource_creation"><i class="fa fa-folder-open"></i><br>'+tr("Permissions")+'</a></dd>\
</dl>\
</div>\
@ -105,6 +106,21 @@ var create_group_tmpl =
user_creation_div + // from users-tab.js
'</div>\
</div>\
<div id="resource_views" class="row content">\
<div class="row">\
<div class="large-6 columns">\
<p class="subheader">'
+tr("Allow users in this group to use the following views")+
'&emsp;<span class="tip">'+tr("This will add to the group template the selected views so users beloing to the group are able to use them")+'</span>\
</p>\
</div>\
</div>\
<div class="row">\
<div class="large-6 columns">'+
insert_views()
+'</div>\
</div>\
</div>\
<div id="resource_creation" class="content">\
<div class="row">\
<div class="large-12 columns">\
@ -427,6 +443,17 @@ Sunstone.addActions(group_actions);
Sunstone.addMainTab('groups-tab',groups_tab);
Sunstone.addInfoPanel("group_info_panel",group_info_panel);
function insert_views(){
views_checks_str = ""
var views_array = config['available_views'];
for (var i = 0; i < views_array.length; i++)
{
views_checks_str = views_checks_str +
'<input type="checkbox" id="group_view_'+views_array[i]+'" value="'+views_array[i]+'"> '+views_array[i]+'<br>'
}
return views_checks_str;
}
function groupElements(){
return getSelectedNodes(dataTable_groups);
}
@ -1154,7 +1181,7 @@ function setupCreateGroupDialog(){
var name = $('#name',this).val();
var admin_group_name = null;
var user_json = null;
var user_json = null;
if ( $('#admin_group', this).prop('checked') ){
admin_group_name = $('#admin_group_name', this).val();
@ -1238,6 +1265,12 @@ function setupCreateGroupDialog(){
}
}
group_json['group']['views'] = [];
$.each($('[id^="group_view"]:checked', dialog), function(){
group_json['group']['views'].push($(this).val());
});
Sunstone.runAction("Group.create",group_json);
$create_group_dialog.foundation('reveal', 'close');