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

feature #4038: Require tabs dynamically

TODO: Fix minify process
This commit is contained in:
Daniel Molina 2015-10-09 17:31:18 +02:00
parent a59904b659
commit 415f5110e5
9 changed files with 98 additions and 112 deletions

View File

@ -1,30 +1,5 @@
---
logo: images/opennebula-sunstone-v4.0.png
available_tabs:
- dashboard-tab
- system-tab
- users-tab
- groups-tab
- vdcs-tab
- acls-tab
- vresources-tab
- vms-tab
- templates-tab
- images-tab
- files-tab
- infra-tab
- clusters-tab
- hosts-tab
- datastores-tab
- vnets-tab
- secgroups-tab
- zones-tab
- marketplace-tab
- oneflow-dashboard
- oneflow-services
- oneflow-templates
- provision-tab
- support-tab
groups:
oneadmin:
- admin

View File

@ -18,16 +18,13 @@ enabled_tabs:
datastores-tab: true
vnets-tab: true
secgroups-tab: true
zones-tab: true
marketplace-tab: true
oneflow-dashboard: true
oneflow-services: true
oneflow-templates: true
support-tab: true
doc-tab: true
community-tab: true
enterprise-tab: true
zones-tab: true
oneflow-services-tab: true
oneflow-templates-tab: true
settings-tab: true
support-tab: true
autorefresh: true
features:
showback: true

View File

@ -18,16 +18,13 @@ enabled_tabs:
datastores-tab: false
vnets-tab: true
secgroups-tab: false
zones-tab: true
marketplace-tab: false
oneflow-dashboard: true
oneflow-services: true
oneflow-templates: true
support-tab: true
doc-tab: true
community-tab: true
enterprise-tab: true
zones-tab: true
oneflow-services-tab: true
oneflow-templates-tab: true
settings-tab: true
support-tab: true
autorefresh: true
features:
showback: true

View File

@ -18,16 +18,13 @@ enabled_tabs:
datastores-tab: true
vnets-tab: true
secgroups-tab: true
zones-tab: false
marketplace-tab: true
oneflow-dashboard: true
oneflow-services: true
oneflow-templates: true
support-tab: false
doc-tab: false
community-tab: false
enterprise-tab: false
zones-tab: false
oneflow-services-tab: true
oneflow-templates-tab: true
settings-tab: true
support-tab: false
autorefresh: true
features:
showback: true

View File

@ -121,10 +121,6 @@ class SunstoneViews
@views.keys
end
def available_tabs
@views_config['available_tabs']
end
def logo
@views_config['logo']
end

View File

@ -17,6 +17,7 @@
define(function(require) {
require('jquery');
require('foundation.dropdown');
//require('tabs');
var DASHBOARD_TAB_ID = require('tabs/dashboard-tab/tabId');
var SETTINGS_TAB_ID = require('tabs/settings-tab/tabId');
@ -27,42 +28,6 @@ define(function(require) {
var Notifier = require('utils/notifier');
var Menu = require('utils/menu');
var _tabs;
if (Config.isTabEnabled(PROVISION_TAB_ID)) {
_tabs = [
require('tabs/provision-tab'),
require('tabs/users-tab'),
require('tabs/settings-tab')
];
} else {
_tabs = [
require('tabs/dashboard-tab'),
require('tabs/system-tab'),
require('tabs/users-tab'),
require('tabs/groups-tab'),
require('tabs/vdcs-tab'),
require('tabs/acls-tab'),
require('tabs/vresources-tab'),
require('tabs/vms-tab'),
require('tabs/templates-tab'),
require('tabs/images-tab'),
require('tabs/files-tab'),
require('tabs/infra-tab'),
require('tabs/clusters-tab'),
require('tabs/hosts-tab'),
require('tabs/datastores-tab'),
require('tabs/vnets-tab'),
require('tabs/secgroups-tab'),
require('tabs/zones-tab'),
require('tabs/marketplace-tab'),
require('tabs/oneflow-dashboard'),
require('tabs/oneflow-services-tab'),
require('tabs/oneflow-templates-tab'),
require('tabs/settings-tab'),
require('tabs/support-tab')
];
}
var _commonDialogs = [
require('utils/dialogs/confirm'),
require('utils/dialogs/confirm-with-select'),
@ -70,10 +35,7 @@ define(function(require) {
]
Sunstone.addDialogs(_commonDialogs);
$.each(_tabs, function(index, tab) {
Sunstone.addMainTab(tab);
});
Sunstone.addMainTabs();
//$(window).load(function() {
// $('#loading').hide();

View File

@ -16,6 +16,33 @@
require.config({
paths: {
/* Tabs */
'provision-tab': './tabs/provision-tab',
'dashboard-tab': './tabs/dashboard-tab',
'system-tab': './tabs/system-tab',
'users-tab': './tabs/users-tab',
'groups-tab': './tabs/groups-tab',
'vdcs-tab': './tabs/vdcs-tab',
'acls-tab': './tabs/acls-tab',
'vresources-tab': './tabs/vresources-tab',
'vms-tab': './tabs/vms-tab',
'templates-tab': './tabs/templates-tab',
'images-tab': './tabs/images-tab',
'files-tab': './tabs/files-tab',
'infra-tab': './tabs/infra-tab',
'clusters-tab': './tabs/clusters-tab',
'hosts-tab': './tabs/hosts-tab',
'datastores-tab': './tabs/datastores-tab',
'vnets-tab': './tabs/vnets-tab',
'secgroups-tab': './tabs/secgroups-tab',
'zones-tab': './tabs/zones-tab',
'marketplace-tab': './tabs/marketplace-tab',
'oneflow-dashboard': './tabs/oneflow-dashboard',
'oneflow-services-tab': './tabs/oneflow-services-tab',
'oneflow-templates-tab': './tabs/oneflow-templates-tab',
'settings-tab': './tabs/settings-tab',
'support-tab': './tabs/support-tab',
/* Almond */
'almond': '../bower_components/almond/almond',
@ -112,6 +139,37 @@ require.config({
'spice-filexfer': '../bower_components/spice-html5/filexfer'
},
shim: {
/* Tabs */
'app': {
deps: [
'provision-tab',
'dashboard-tab',
'system-tab',
'users-tab',
'groups-tab',
'vdcs-tab',
'acls-tab',
'vresources-tab',
'vms-tab',
'templates-tab',
'images-tab',
'files-tab',
'infra-tab',
'clusters-tab',
'hosts-tab',
'datastores-tab',
'vnets-tab',
'secgroups-tab',
'zones-tab',
'marketplace-tab',
'oneflow-dashboard',
'oneflow-services-tab',
'oneflow-templates-tab',
'settings-tab',
'support-tab'
]
},
/* jQuery */
'jquery': {
exports: '$'

View File

@ -126,7 +126,8 @@ define(function(require) {
'tableOrder': _config['user_config']['table_order'],
'vncProxyPort': _config['system_config']['vnc_proxy_port'],
'vncWSS': _config['user_config']['vnc_wss'],
'logo': (_config['view']["small_logo"] || "images/one_small_logo.png")
'logo': (_config['view']["small_logo"] || "images/one_small_logo.png"),
'enabledTabs': _config['view']['enabled_tabs']
}
return Config;

View File

@ -36,31 +36,34 @@ define(function(require) {
"tabs" : {}
};
var _addMainTab = function(tabObj) {
var _tabId = tabObj.tabId;
if (Config.isTabEnabled(_tabId)) {
SunstoneCfg["tabs"][_tabId] = tabObj;
var _addMainTabs = function() {
$.each(Config.enabledTabs, function(tabName, enabled){
if (enabled) {
var tabObj = require(tabName);
var _tabId = tabObj.tabId;
SunstoneCfg["tabs"][_tabId] = tabObj;
var actions = tabObj.actions;
if (actions) {
_addActions(actions)
}
var actions = tabObj.actions;
if (actions) {
_addActions(actions)
}
var panels = tabObj.panels;
if (panels) {
_addPanels(_tabId, panels)
}
var panels = tabObj.panels;
if (panels) {
_addPanels(_tabId, panels)
}
var dialogs = tabObj.dialogs;
if (dialogs) {
_addDialogs(dialogs)
}
var dialogs = tabObj.dialogs;
if (dialogs) {
_addDialogs(dialogs)
}
var formPanels = tabObj.formPanels;
if (formPanels) {
_addFormPanels(_tabId, formPanels)
var formPanels = tabObj.formPanels;
if (formPanels) {
_addFormPanels(_tabId, formPanels)
}
}
}
});
}
var _addActions = function(actions) {
@ -945,7 +948,7 @@ define(function(require) {
}
var Sunstone = {
"addMainTab": _addMainTab,
"addMainTabs": _addMainTabs,
"addDialogs": _addDialogs,
"insertTabs": _insertTabs,