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:
parent
b6213869c8
commit
80f4caaefd
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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")+
|
||||
' <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');
|
||||
|
Loading…
x
Reference in New Issue
Block a user