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

Feature #3748: Group quotas in settings

This commit is contained in:
Carlos Martín 2015-06-17 18:54:33 +02:00
parent 0333830a2e
commit c3e6d81d88
6 changed files with 134 additions and 6 deletions

View File

@ -534,6 +534,7 @@ tabs:
panel_tabs:
user_info_tab: true
user_quotas_tab: true
group_quotas_tab: true
user_accounting_tab: true
user_showback_tab: true
actions:

View File

@ -534,6 +534,7 @@ tabs:
panel_tabs:
user_info_tab: true
user_quotas_tab: true
group_quotas_tab: true
user_accounting_tab: true
user_showback_tab: true
actions:

View File

@ -535,6 +535,7 @@ tabs:
panel_tabs:
user_info_tab: true
user_quotas_tab: true
group_quotas_tab: true
user_accounting_tab: true
user_showback_tab: true
actions:

View File

@ -1,6 +1,6 @@
define(function(require) {
var Locale = require('utils/locale');
var OpenNebulaUser = require('opennebula/user')
var OpenNebulaUser = require('opennebula/user');
var Sunstone = require('sunstone');
var TAB_ID = require('./settings-tab/tabId');
@ -19,14 +19,15 @@ define(function(require) {
type: "custom",
call: _onShow
},
}
};
var _dialogs = [
];
var _userPanels = [
var _panels = [
require('tabs/users-tab/panels/info'),
require('tabs/users-tab/panels/quotas'),
require('tabs/settings-tab/panels/group-quotas'),
require('tabs/users-tab/panels/accounting'),
require('tabs/users-tab/panels/showback')
];
@ -45,7 +46,8 @@ define(function(require) {
'<i class="fa fa-cloud fa-stack-2x"></i>' +
'<i class="fa fa-spinner fa-spin fa-stack-1x fa-inverse"></i>' +
'</span>',
dialogs: _dialogs
dialogs: _dialogs,
panels: _panels,
};
return Tab;
@ -56,8 +58,8 @@ define(function(require) {
id: -1
},
success: function(request, user_json) {
Sunstone.insertPanels(USERS_TAB_ID, user_json, TAB_ID, $(".right-list", $("#" + TAB_ID)))
Sunstone.insertPanels(TAB_ID, user_json, TAB_ID, $(".right-list", $("#" + TAB_ID)))
}
})
});
}
});

View File

@ -0,0 +1,120 @@
define(function(require) {
/*
DEPENDENCIES
*/
var Locale = require('utils/locale');
var Config = require('sunstone-config');
var QuotaDefaults = require('utils/quotas/quota-defaults');
var QuotaWidgets = require('utils/quotas/quota-widgets');
var OpenNebulaGroup = require('opennebula/group');
var Sunstone = require('sunstone');
/*
CONSTANTS
*/
var TAB_ID = require('../tabId');
var PANEL_ID = require('./group-quotas/panelId');
var RESOURCE = "User";
var XML_ROOT = "USER";
var GROUP_TAB_ID = require('tabs/groups-tab/tabId');
/*
CONSTRUCTOR
*/
function Panel(info, tabId) {
this.tabId = tabId || TAB_ID;
this.title = Locale.tr("Group Quotas");
this.icon = "fa-align-left";
this.element = info[XML_ROOT];
return this;
}
Panel.PANEL_ID = PANEL_ID;
Panel.prototype.html = _html;
Panel.prototype.setup = _setup;
return Panel;
/*
FUNCTION DEFINITIONS
*/
function _html() {
return '<div class="row">\
<div class="large-6 columns">\
<label>' + Locale.tr("Select group") + ':\
<select id="quota_group_sel">\
</select>\
</label>\
</div>\
</div>\
<div id="group_quotasTabBody" class="row">\
</div>';
}
function _setup(context) {
var groups = this.element.GROUPS.ID;
if (!$.isArray(groups)){
groups = [groups];
}
var groupDropdownOptions = "";
$.each(groups, function(){
groupDropdownOptions +=
'<option elem_id="'+this+
'" value="'+this+'">'+
Sunstone.getDataTable(GROUP_TAB_ID).getName(this)+' (id:'+this+')</option>';
});
// TODO bug Sunstone.getDataTable(GROUP_TAB_ID) fails for user.yaml, groups-tab does not exist
$('select#quota_group_sel', context).html(groupDropdownOptions);
$("#quota_group_sel", context).off("change");
$("#quota_group_sel", context).on("change", function() {
var value_str = $('select#quota_group_sel').val();
if(value_str!="")
{
fillGroupQuotas(value_str, context);
}
});
fillGroupQuotas('-1', context);
return false;
}
function fillGroupQuotas(group_id, context){
OpenNebulaGroup.show({
data : {
id: group_id
},
success: function(request,group_json){
var info = group_json.GROUP;
var quotas_tab_html = QuotaWidgets.initQuotasPanel(
info,
QuotaDefaults.getDefaultQuotas("Group"),
false);
$("#group_quotasTabBody", context).html(quotas_tab_html);
QuotaWidgets.setupQuotasPanel(
info,
$("#group_quotasTabBody", context),
false,
"Group");
$("select#quota_group_sel", context).val(info.ID);
}
});
}
});

View File

@ -0,0 +1,3 @@
define(function(require){
return 'group_quotas_tab';
});