diff --git a/src/sunstone/etc/sunstone-views/cloud.yaml b/src/sunstone/etc/sunstone-views/cloud.yaml index 298a12b6a2..85fb5b4e8c 100644 --- a/src/sunstone/etc/sunstone-views/cloud.yaml +++ b/src/sunstone/etc/sunstone-views/cloud.yaml @@ -8,12 +8,43 @@ features: tabs: provision-tab: panel_tabs: + vm_info_tab: false + vm_capacity_tab: false + vm_hotplugging_tab: false + vm_network_tab: false + vm_snapshot_tab: false + vm_placement_tab: false + vm_actions_tab: false + vm_template_tab: false + vm_log_tab: false + provision_tabs: users: false flows: true templates: true - actions: + actions: &provisionactions Template.chmod: false Template.delete: true + VM.resume: true + VM.reboot: true + VM.reboot_hard: true + VM.poweroff: true + VM.poweroff_hard: true + VM.undeploy: false + VM.undeploy_hard: false + VM.shutdown_hard: true + VM.delete: true + VM.resize: false + VM.attachdisk: false + VM.detachdisk: false + VM.disk_saveas: false + VM.attachnic: false + VM.detachnic: false + VM.snapshot_create: false + VM.snapshot_revert: false + VM.snapshot_delete: false + VM.disk_snapshot_create: false + VM.disk_snapshot_revert: false + VM.disk_snapshot_delete: false dashboard: quotas: true vms: true @@ -33,3 +64,32 @@ tabs: user_showback_tab: true actions: User.quotas_dialog: false + vms-tab: + actions: *provisionactions + images-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + - 11 # #VMs + #- 12 # Target + vnets-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Reservation + - 6 # Cluster + #- 7 # Bridge + - 8 # Leases + #- 9 # VLAN ID diff --git a/src/sunstone/etc/sunstone-views/cloud_vcenter.yaml b/src/sunstone/etc/sunstone-views/cloud_vcenter.yaml index 55ab8eb8a7..9495e19cef 100644 --- a/src/sunstone/etc/sunstone-views/cloud_vcenter.yaml +++ b/src/sunstone/etc/sunstone-views/cloud_vcenter.yaml @@ -8,12 +8,43 @@ features: tabs: provision-tab: panel_tabs: + vm_info_tab: false + vm_capacity_tab: false + vm_hotplugging_tab: false + vm_network_tab: false + vm_snapshot_tab: false + vm_placement_tab: false + vm_actions_tab: false + vm_template_tab: false + vm_log_tab: false + provision_tabs: users: false flows: true templates: false - actions: + actions: &provisionactions Template.chmod: false Template.delete: true + VM.resume: true + VM.reboot: true + VM.reboot_hard: true + VM.poweroff: true + VM.poweroff_hard: true + VM.undeploy: false + VM.undeploy_hard: false + VM.shutdown_hard: true + VM.delete: true + VM.resize: false + VM.attachdisk: false + VM.detachdisk: false + VM.disk_saveas: false + VM.attachnic: false + VM.detachnic: false + VM.snapshot_create: false + VM.snapshot_revert: false + VM.snapshot_delete: false + VM.disk_snapshot_create: false + VM.disk_snapshot_revert: false + VM.disk_snapshot_delete: false dashboard: quotas: true vms: true @@ -31,4 +62,33 @@ tabs: user_accounting_tab: true user_showback_tab: true actions: - User.quotas_dialog: false \ No newline at end of file + User.quotas_dialog: false + vms-tab: + actions: *provisionactions + images-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + - 11 # #VMs + #- 12 # Target + vnets-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Reservation + - 6 # Cluster + #- 7 # Bridge + - 8 # Leases + #- 9 # VLAN ID diff --git a/src/sunstone/etc/sunstone-views/groupadmin.yaml b/src/sunstone/etc/sunstone-views/groupadmin.yaml index 992fb3bf69..fc82168c55 100644 --- a/src/sunstone/etc/sunstone-views/groupadmin.yaml +++ b/src/sunstone/etc/sunstone-views/groupadmin.yaml @@ -8,12 +8,43 @@ features: tabs: provision-tab: panel_tabs: + vm_info_tab: false + vm_capacity_tab: false + vm_hotplugging_tab: false + vm_network_tab: false + vm_snapshot_tab: false + vm_placement_tab: false + vm_actions_tab: false + vm_template_tab: false + vm_log_tab: false + provision_tabs: users: true flows: true templates: true - actions: + actions: &provisionactions Template.chmod: true Template.delete: true + VM.resume: true + VM.reboot: true + VM.reboot_hard: true + VM.poweroff: true + VM.poweroff_hard: true + VM.undeploy: false + VM.undeploy_hard: false + VM.shutdown_hard: true + VM.delete: true + VM.resize: false + VM.attachdisk: false + VM.detachdisk: false + VM.disk_saveas: false + VM.attachnic: false + VM.detachnic: false + VM.snapshot_create: false + VM.snapshot_revert: false + VM.snapshot_delete: false + VM.disk_snapshot_create: false + VM.disk_snapshot_revert: false + VM.disk_snapshot_delete: false dashboard: quotas: false vms: false @@ -33,3 +64,33 @@ tabs: user_showback_tab: true actions: User.quotas_dialog: false + vms-tab: + actions: *provisionactions + images-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + - 11 # #VMs + #- 12 # Target + vnets-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Reservation + - 6 # Cluster + #- 7 # Bridge + - 8 # Leases + #- 9 # VLAN ID + diff --git a/src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml b/src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml index f9aa865470..2f2b78d2d9 100644 --- a/src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml +++ b/src/sunstone/etc/sunstone-views/groupadmin_vcenter.yaml @@ -8,12 +8,43 @@ features: tabs: provision-tab: panel_tabs: + vm_info_tab: false + vm_capacity_tab: false + vm_hotplugging_tab: false + vm_network_tab: false + vm_snapshot_tab: false + vm_placement_tab: false + vm_actions_tab: false + vm_template_tab: false + vm_log_tab: false + provision_tabs: users: true flows: true templates: false - actions: - Template.chmod: true + actions: &provisionactions + Template.chmod: false Template.delete: true + VM.resume: true + VM.reboot: true + VM.reboot_hard: true + VM.poweroff: true + VM.poweroff_hard: true + VM.undeploy: false + VM.undeploy_hard: false + VM.shutdown_hard: true + VM.delete: true + VM.resize: false + VM.attachdisk: false + VM.detachdisk: false + VM.disk_saveas: false + VM.attachnic: false + VM.detachnic: false + VM.snapshot_create: false + VM.snapshot_revert: false + VM.snapshot_delete: false + VM.disk_snapshot_create: false + VM.disk_snapshot_revert: false + VM.disk_snapshot_delete: false dashboard: quotas: false vms: false @@ -32,3 +63,33 @@ tabs: user_showback_tab: true actions: User.quotas_dialog: false + vms-tab: + actions: *provisionactions + images-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Datastore + #- 6 # Size + - 7 # Type + #- 8 # Registration time + #- 9 # Persistent + - 10 # Status + - 11 # #VMs + #- 12 # Target + vnets-tab: + table_columns: + - 0 # Checkbox + - 1 # ID + - 2 # Owner + - 3 # Group + - 4 # Name + - 5 # Reservation + - 6 # Cluster + #- 7 # Bridge + - 8 # Leases + #- 9 # VLAN ID + diff --git a/src/sunstone/public/app/sunstone-config.js b/src/sunstone/public/app/sunstone-config.js index fb869f105e..32baec5510 100644 --- a/src/sunstone/public/app/sunstone-config.js +++ b/src/sunstone/public/app/sunstone-config.js @@ -50,6 +50,15 @@ define(function(require) { } }, + "isProvisionTabEnabled": function(tabName, panelTabName) { + if (_config['view']['tabs'][tabName]) { + var enabled = _config['view']['tabs'][tabName]['provision_tabs'][panelTabName]; + return enabled; + } else { + return false; + } + }, + "isFeatureEnabled": function(featureName) { if (_config['view']['features'] && _config['view']['features'][featureName]) { return true; diff --git a/src/sunstone/public/app/tabs/provision-tab.js b/src/sunstone/public/app/tabs/provision-tab.js index c4b375341a..c25ca51f9f 100644 --- a/src/sunstone/public/app/tabs/provision-tab.js +++ b/src/sunstone/public/app/tabs/provision-tab.js @@ -841,7 +841,7 @@ define(function(require) { provision_vdc_templates_datatable.fnFilter("^(?!\-$)", 2, true, false); provision_vdc_templates_datatable.fnFilter("^1$", 3, true, false); - if (Config.isTabPanelEnabled("provision-tab", "templates")) { + if (Config.isProvisionTabEnabled("provision-tab", "templates")) { ProvisionTemplatesList.updateDatatable(provision_saved_templates_datatable); provision_saved_templates_datatable.fnFilter("^(?!\-$)", 2, true, false); provision_saved_templates_datatable.fnFilter("^0$", 3, true, false); @@ -969,12 +969,43 @@ define(function(require) { $(".alert-box-error", context).html(""); } + var _panels = [ + require('./vms-tab/panels/info'), + require('./vms-tab/panels/capacity'), + require('./vms-tab/panels/storage'), + require('./vms-tab/panels/network'), + require('./vms-tab/panels/snapshots'), + require('./vms-tab/panels/placement'), + require('./vms-tab/panels/actions'), + require('./vms-tab/panels/template'), + require('./vms-tab/panels/log') + ]; + + + var _dialogs = [ + //require('./vms-tab/dialogs/deploy'), + //require('./vms-tab/dialogs/migrate'), + require('./vms-tab/dialogs/resize'), + require('./vms-tab/dialogs/attach-disk'), + require('./vms-tab/dialogs/disk-snapshot'), + require('./vms-tab/dialogs/disk-saveas'), + require('./vms-tab/dialogs/attach-nic'), + require('./vms-tab/dialogs/snapshot'), + //require('./vms-tab/dialogs/vnc'), + //require('./vms-tab/dialogs/spice'), + //require('./vms-tab/dialogs/saveas-template') + ]; + + var Actions = require('./vms-tab/actions'); + var Tab = { tabId: TAB_ID, list_header: "", - actions: povision_actions, + actions: $.extend(povision_actions, Actions), content: TemplateContent(), - setup: _setup + setup: _setup, + panels: _panels, + dialogs: _dialogs }; return Tab; @@ -993,7 +1024,7 @@ define(function(require) { ProvisionVmsList.generate($(".provision_vms_list_section"), {active: true}); - if (Config.isTabPanelEnabled("provision-tab", "templates")) { + if (Config.isProvisionTabEnabled("provision-tab", "templates")) { ProvisionTemplatesList.generate($(".provision_templates_list_section"), {active: true}); } diff --git a/src/sunstone/public/app/tabs/provision-tab/content.hbs b/src/sunstone/public/app/tabs/provision-tab/content.hbs index c20d7c2455..8b29b59cb9 100644 --- a/src/sunstone/public/app/tabs/provision-tab/content.hbs +++ b/src/sunstone/public/app/tabs/provision-tab/content.hbs @@ -20,17 +20,17 @@ {{> tabs/provision-tab/vms/create}}
-{{#isTabPanelEnabled "provision-tab" "templates"}} +{{#isProvisionTabEnabled "provision-tab" "templates"}} -{{/isTabPanelEnabled}} +{{/isProvisionTabEnabled}} -{{#isTabPanelEnabled "provision-tab" "users"}} +{{#isProvisionTabEnabled "provision-tab" "users"}} {{> tabs/provision-tab/group/info}} {{> tabs/provision-tab/users/create}} -{{/isTabPanelEnabled}} +{{/isProvisionTabEnabled}} -{{#isTabPanelEnabled "provision-tab" "flows"}} +{{#isProvisionTabEnabled "provision-tab" "flows"}} {{> tabs/provision-tab/flows/create}} -{{/isTabPanelEnabled}} +{{/isProvisionTabEnabled}} diff --git a/src/sunstone/public/app/tabs/provision-tab/header.hbs b/src/sunstone/public/app/tabs/provision-tab/header.hbs index c2b321e0a7..1ccdc4a385 100644 --- a/src/sunstone/public/app/tabs/provision-tab/header.hbs +++ b/src/sunstone/public/app/tabs/provision-tab/header.hbs @@ -18,7 +18,7 @@