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:
parent
0333830a2e
commit
c3e6d81d88
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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)))
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
|
120
src/sunstone/public/app/tabs/settings-tab/panels/group-quotas.js
Normal file
120
src/sunstone/public/app/tabs/settings-tab/panels/group-quotas.js
Normal 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);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
@ -0,0 +1,3 @@
|
||||
define(function(require){
|
||||
return 'group_quotas_tab';
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user