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

F #5065 Added group selector in UserSelector (#256)

* F #5065 Added group selector in UserSelector

* F #4913 Optimized ajax

* Added pool_filter
This commit is contained in:
Abel Coronado 2017-04-18 09:59:20 +02:00 committed by Ruben S. Montero
parent ba69ddcdb3
commit 3dd7f49e93
3 changed files with 86 additions and 1 deletions

View File

@ -37,6 +37,7 @@ define(function(require) {
var Notifier = require('utils/notifier');
var Menu = require('utils/menu');
var Locale = require('utils/locale');
var OpenNebulaGroup = require('opennebula/group');
var UserAndZoneTemplate = require('hbs!sunstone/user_and_zone');
@ -97,6 +98,10 @@ define(function(require) {
}
function _insertUserAndZoneSelector() {
this.idGroup = -2; /*All*/
Config.changeFilter(false);
$(".user-zone-info").html(UserAndZoneTemplate({
displayName: config['display_name'],
settingsTabEnabled: Config.isTabEnabled(SETTINGS_TAB_ID),
@ -104,6 +109,8 @@ define(function(require) {
zoneName: config['zone_name']
})).foundation();
groupsRefresh();
$('.quickconf_view[view="' + config['user_config']["default_view"] + '"] i').addClass('fa-check');
$(".user-zone-info a.quickconf_view_header").click(function() {
var context = $(this).closest('ul');
@ -117,6 +124,73 @@ define(function(require) {
Sunstone.runAction("User.append_sunstone_setting_refresh", -1, sunstone_setting);
});
function groupsRefresh() {
OpenNebula.User.show({
timeout: true,
data : {
id: config['user_id']
},
success: function (request, obj_user) {
var groups = obj_user.USER.GROUPS.ID;
var groupsHTML = "<li class='groups' value='-2'> <a href='#' value='-2' id='-2'> \
<i class='fa fa-fw'></i>" + Locale.tr("All") + "</a></li>";
if(this.idGroup == -2){
var groupsHTML = "<li class='groups' value='-2'> <a href='#' value='-2' id='-2'> \
<i class='fa fa-fw fa-check'></i>" + Locale.tr("All") + "</a></li>";
}
if (!$.isArray(groups)){
groups = groups.toString();
groups = [groups];
}
that = this;
OpenNebula.Group.list({
timeout: true,
success: function(request, group_list) {
var group_list_aux = group_list;
$.each(groups, function(key, value){
var id = value;
$.each(group_list_aux, function(key, value){
if(id == value.GROUP.ID){
if(id == that.idGroup){
groupsHTML += "<li class='groups' value='" + id + "'id='" + id + "'> \
<a href='#'><i class='fa fa-fw fa-check'></i>" + value.GROUP.NAME + "\
</a></li>";
} else {
groupsHTML += "<li class='groups' value='" + id + "'id='" + id + "'> \
<a href='#'><i class='fa fa-fw'></i>" + value.GROUP.NAME + "\
</a></li>";
}
return false;
}
});
});
},
error: Notifier.onError
});
$('#userselector').on('click', function(){
$('.groups-menu').empty();
$('.groups-menu').append(groupsHTML);
$('.groups').on('click', function(){
that.idGroup = $(this).attr('value');
$('.groups-menu a i').removeClass('fa-check');
$('a i', this).addClass('fa-check');
groupsRefresh();
if(that.idGroup != -2){
Config.changeFilter(true);
} else {
Config.changeFilter(false);
}
});
});
},
error: Notifier.onError
});
}
function zoneRefresh() {
// Populate Zones dropdown
OpenNebula.Zone.list({

View File

@ -26,6 +26,10 @@ define(function(require) {
return enabled;
},
"changeFilter": function(bool) {
_config['pool_filter'] = bool;
},
"isTabActionEnabled": function(tabName, actionName, panelName) {
var enabled = false;
var configTab = _config['view']['tabs'][tabName];

View File

@ -16,7 +16,7 @@
<ul class="dropdown menu" data-dropdown-menu data-alignment="right">
<li>
<a class="thin-font" href="#">
<a class="thin-font" href="#" id="userselector">
<i class="fa fa-user fa-fw header-icon"></i>
<span class="username">
{{displayName}}
@ -55,6 +55,13 @@
</ul>
</li>
{{/if}}
<li>
<a href="#">
<i class="fa fa-fw fa-users"></i>
{{tr "Groups"}}
</a>
<ul class="menu groups-menu"></ul>
</li>
</ul>
</li>
<li>