diff --git a/src/sunstone/etc/sunstone-views/admin.yaml b/src/sunstone/etc/sunstone-views/admin.yaml index 825d935fee..b4adf55ef6 100644 --- a/src/sunstone/etc/sunstone-views/admin.yaml +++ b/src/sunstone/etc/sunstone-views/admin.yaml @@ -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: diff --git a/src/sunstone/etc/sunstone-views/admin_vcenter.yaml b/src/sunstone/etc/sunstone-views/admin_vcenter.yaml index 5bfb7752cd..4dc760b5b9 100644 --- a/src/sunstone/etc/sunstone-views/admin_vcenter.yaml +++ b/src/sunstone/etc/sunstone-views/admin_vcenter.yaml @@ -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: diff --git a/src/sunstone/etc/sunstone-views/user.yaml b/src/sunstone/etc/sunstone-views/user.yaml index 67e1b570bd..f24dcd6ecd 100644 --- a/src/sunstone/etc/sunstone-views/user.yaml +++ b/src/sunstone/etc/sunstone-views/user.yaml @@ -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: diff --git a/src/sunstone/public/app/tabs/settings-tab.js b/src/sunstone/public/app/tabs/settings-tab.js index 14a56cbd5d..a57b05424b 100644 --- a/src/sunstone/public/app/tabs/settings-tab.js +++ b/src/sunstone/public/app/tabs/settings-tab.js @@ -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) { '' + '' + '', - 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))) } - }) + }); } }); diff --git a/src/sunstone/public/app/tabs/settings-tab/panels/group-quotas.js b/src/sunstone/public/app/tabs/settings-tab/panels/group-quotas.js new file mode 100644 index 0000000000..8f81fbf2ab --- /dev/null +++ b/src/sunstone/public/app/tabs/settings-tab/panels/group-quotas.js @@ -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 '