mirror of
https://github.com/OpenNebula/one.git
synced 2025-02-02 09:47:00 +03:00
feature #1820: Improve configurable views
This commit is contained in:
parent
e6ee8e8741
commit
6c032e1500
@ -502,7 +502,7 @@ INSTALL_SUNSTONE_FILES=(
|
||||
SUNSTONE_PUBLIC_NEW_VENDOR_JDPICKER:$SUNSTONE_LOCATION/public/vendor/4.0/jdpicker_1.1
|
||||
SUNSTONE_PUBLIC_NEW_VENDOR_JDPICKER_IMAGES:$SUNSTONE_LOCATION/public/vendor/4.0/jdpicker_1.1/images
|
||||
SUNSTONE_PUBLIC_NEW_VENDOR_TIMEPICKER:$SUNSTONE_LOCATION/public/vendor/4.0/
|
||||
SUNSTONE_PUBLIC_NEW_VENDOR_DATETIMEPICKER:$SUNSTONE_LOCATION/public/vendor/4.0/datetimepicker
|
||||
SUNSTONE_PUBLIC_NEW_VENDOR_DATETIMEPICKER:$SUNSTONE_LOCATION/public/vendor/4.0/datetimepicker
|
||||
SUNSTONE_PUBLIC_IMAGES_FILES:$SUNSTONE_LOCATION/public/images
|
||||
SUNSTONE_PUBLIC_LOCALE_CA:$SUNSTONE_LOCATION/public/locale/ca
|
||||
SUNSTONE_PUBLIC_LOCALE_CS_CZ:$SUNSTONE_LOCATION/public/locale/cs_CZ
|
||||
@ -1365,7 +1365,8 @@ SUNSTONE_ETC_FILES="src/sunstone/etc/sunstone-server.conf \
|
||||
src/sunstone/etc/sunstone-plugins.yaml\
|
||||
src/sunstone/etc/sunstone-views.yaml"
|
||||
|
||||
SUNSTONE_ETC_VIEW_FILES="src/sunstone/etc/sunstone-views/admin.yaml"
|
||||
SUNSTONE_ETC_VIEW_FILES="src/sunstone/etc/sunstone-views/admin.yaml \
|
||||
src/sunstone/etc/sunstone-views/user.yaml"
|
||||
|
||||
SUNSTONE_MODELS_FILES="src/sunstone/models/OpenNebulaJSON.rb \
|
||||
src/sunstone/models/SunstoneServer.rb \
|
||||
@ -1521,7 +1522,7 @@ SUNSTONE_PUBLIC_NEW_VENDOR_DATETIMEPICKER="\
|
||||
src/sunstone/public/vendor/4.0/datetimepicker/jquery.simple-dtpicker.css \
|
||||
src/sunstone/public/vendor/4.0/datetimepicker/jquery.simple-dtpicker.html \
|
||||
src/sunstone/public/vendor/4.0/datetimepicker/jquery.simple-dtpicker.js \
|
||||
src/sunstone/public/vendor/4.0/datetimepicker/simple-dtpicker.jquery.json"
|
||||
src/sunstone/public/vendor/4.0/datetimepicker/simple-dtpicker.jquery.json"
|
||||
|
||||
SUNSTONE_PUBLIC_IMAGES_FILES="src/sunstone/public/images/ajax-loader.gif \
|
||||
src/sunstone/public/images/favicon.ico \
|
||||
|
@ -1,7 +1,10 @@
|
||||
---
|
||||
users:
|
||||
pepe:
|
||||
- user
|
||||
groups:
|
||||
oneadmin:
|
||||
- admin
|
||||
- user
|
||||
default:
|
||||
- admin
|
@ -1,19 +1,27 @@
|
||||
tabs:
|
||||
dashboard-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
actions:
|
||||
widgets_three_per_row:
|
||||
- storage
|
||||
- users
|
||||
- network
|
||||
widgets_two_per_row:
|
||||
- hosts
|
||||
- vms
|
||||
widgets_one_per_row:
|
||||
dashboard-users-tab:
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
enabled: false
|
||||
actions:
|
||||
system-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
actions:
|
||||
users-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
user_info_panel: true
|
||||
user_quotas_tab: true
|
||||
table_columns:
|
||||
@ -36,7 +44,7 @@ tabs:
|
||||
User.delete: true
|
||||
groups-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
group_quotas_tab: true
|
||||
table_columns:
|
||||
- 0 # ID
|
||||
@ -52,7 +60,7 @@ tabs:
|
||||
Group.delete: true
|
||||
acls-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
table_columns:
|
||||
- 0 # ID
|
||||
- 1 # Applies to
|
||||
@ -66,11 +74,11 @@ tabs:
|
||||
Acl.delete: true
|
||||
vresources-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
actions:
|
||||
vms-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
vm_info_tab: true
|
||||
vm_capacity_tab: true
|
||||
vm_hotplugging_tab: true
|
||||
@ -79,7 +87,7 @@ tabs:
|
||||
vm_placement_tab: true
|
||||
vm_actions_tab: true
|
||||
vm_template_tab: true
|
||||
vm_log_tab:
|
||||
vm_log_tab: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
- 1 # ID
|
||||
@ -98,6 +106,7 @@ tabs:
|
||||
VM.create_dialog: true
|
||||
VM.chown: true
|
||||
VM.chgrp: true
|
||||
VM.chmod: true
|
||||
VM.deploy: true
|
||||
VM.migrate: true
|
||||
VM.livemigrate: true
|
||||
@ -117,9 +126,18 @@ tabs:
|
||||
VM.shutdown_hard: true
|
||||
VM.destroy: true
|
||||
VM.destroy_recreate: true
|
||||
VM.resize: true
|
||||
VM.attachdisk: true
|
||||
VM.detachdisk: true
|
||||
VM.saveas: true
|
||||
VM.attachnic: true
|
||||
VM.detachnic: true
|
||||
VM.snapshot_create: true
|
||||
VM.snapshot_revert: true
|
||||
VM.snapshot_delete: true
|
||||
templates-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
template_info_tab: true
|
||||
template_template_tab: true
|
||||
table_columns:
|
||||
@ -136,11 +154,20 @@ tabs:
|
||||
Template.instantiate_vms: true
|
||||
Template.chown: true
|
||||
Template.chgrp: true
|
||||
Template.chmod: true
|
||||
Template.clone_dialog: true
|
||||
Template.delete: true
|
||||
template_creation_tabs:
|
||||
general: true
|
||||
storage: true
|
||||
network: true
|
||||
os_booting: true
|
||||
input_output: true
|
||||
context: true
|
||||
scheduling: true
|
||||
images-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
image_info_panel: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
@ -161,6 +188,7 @@ tabs:
|
||||
Image.create_dialog: true
|
||||
Image.chown: true
|
||||
Image.chgrp: true
|
||||
Image.chmod: true
|
||||
Image.enable: true
|
||||
Image.disable: true
|
||||
Image.persistent: true
|
||||
@ -169,7 +197,7 @@ tabs:
|
||||
Image.delete: true
|
||||
files-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
file_info_panel: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
@ -190,16 +218,17 @@ tabs:
|
||||
File.create_dialog: true
|
||||
File.chown: true
|
||||
File.chgrp: true
|
||||
File.chmod: true
|
||||
File.enable: true
|
||||
File.disable: true
|
||||
File.delete: true
|
||||
infra-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
actions:
|
||||
clusters-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
cluster_info_tab: true
|
||||
cluster_host_tab: true
|
||||
cluster_vnet_tab: true
|
||||
@ -218,7 +247,7 @@ tabs:
|
||||
Cluster.delete: true
|
||||
hosts-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
host_info_tab: true
|
||||
host_monitoring_tab: true
|
||||
table_columns:
|
||||
@ -244,7 +273,7 @@ tabs:
|
||||
Host.delete: true
|
||||
datastores-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
datastore_info_tab: true
|
||||
datastore_image_tab: true
|
||||
table_columns:
|
||||
@ -264,10 +293,11 @@ tabs:
|
||||
Datastore.addtocluster: true
|
||||
Datastore.chown: true
|
||||
Datastore.chgrp: true
|
||||
Datastore.chmod: true
|
||||
Datastore.delete: true
|
||||
vnets-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
vnet_info_tab: true
|
||||
vnet_leases_tab: true
|
||||
table_columns:
|
||||
@ -286,10 +316,15 @@ tabs:
|
||||
Network.addtocluster: true
|
||||
Network.chown: true
|
||||
Network.chgrp: true
|
||||
Network.chmod: true
|
||||
Network.delete: true
|
||||
Network.addleases: true
|
||||
Network.hold_lease: true
|
||||
Network.remove_lease: true
|
||||
Network.release_lease: true
|
||||
marketplace-tab:
|
||||
enabled: true
|
||||
tabs_panel:
|
||||
panel_tabs:
|
||||
marketplace_info_tab: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
|
@ -1,35 +1,341 @@
|
||||
:tabs:
|
||||
:plugins/dashboard-tab.js:
|
||||
:enabled: false
|
||||
:plugins/dashboard-users-tab.js:
|
||||
:enabled: true
|
||||
:plugins/system-tab.js:
|
||||
:enabled: false
|
||||
:plugins/users-tab.js:
|
||||
:enabled: false
|
||||
:plugins/groups-tab.js:
|
||||
:enabled: false
|
||||
:plugins/acls-tab.js:
|
||||
:enabled: false
|
||||
:plugins/vresources-tab.js:
|
||||
:enabled: true
|
||||
:plugins/vms-tab.js:
|
||||
:enabled: true
|
||||
:plugins/templates-tab.js:
|
||||
:enabled: true
|
||||
:plugins/images-tab.js:
|
||||
:enabled: true
|
||||
:plugins/files-tab.js:
|
||||
:enabled: true
|
||||
:plugins/infra-tab.js:
|
||||
:enabled: false
|
||||
:plugins/clusters-tab.js:
|
||||
:enabled: false
|
||||
:plugins/hosts-tab.js:
|
||||
:enabled: false
|
||||
:plugins/datastores-tab.js:
|
||||
:enabled: false
|
||||
:plugins/vnets-tab.js:
|
||||
:enabled: false
|
||||
:plugins/marketplace-tab.js:
|
||||
:enabled: true
|
||||
tabs:
|
||||
dashboard-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
actions:
|
||||
widgets_three_per_row:
|
||||
#- users
|
||||
widgets_two_per_row:
|
||||
- network
|
||||
- storage
|
||||
#- hosts
|
||||
#- vms
|
||||
widgets_one_per_row:
|
||||
- vms
|
||||
dashboard-users-tab:
|
||||
panel_tabs:
|
||||
enabled: false
|
||||
actions:
|
||||
system-tab:
|
||||
enabled: false
|
||||
panel_tabs:
|
||||
actions:
|
||||
users-tab:
|
||||
enabled: false
|
||||
panel_tabs:
|
||||
user_info_panel: true
|
||||
user_quotas_tab: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
- 1 # ID
|
||||
- 2 # Name
|
||||
- 3 # Group
|
||||
- 4 # Auth driver
|
||||
- 5 # VMs
|
||||
- 6 # Memory
|
||||
- 7 # CPU
|
||||
#- 8 # Group ID
|
||||
actions:
|
||||
User.refresh: true
|
||||
User.create_dialog: true
|
||||
User.update_password: true
|
||||
User.quotas_dialog: true
|
||||
User.chgrp: true
|
||||
User.chauth: true
|
||||
User.delete: true
|
||||
groups-tab:
|
||||
enabled: false
|
||||
panel_tabs:
|
||||
group_quotas_tab: true
|
||||
table_columns:
|
||||
- 0 # ID
|
||||
- 1 # Name
|
||||
- 2 # Users
|
||||
- 3 # VMs
|
||||
- 4 # Memory
|
||||
- 5 # CPU
|
||||
actions:
|
||||
Group.refresh: true
|
||||
Group.create_dialog: true
|
||||
Group.quotas_dialog: true
|
||||
Group.delete: true
|
||||
acls-tab:
|
||||
enabled: false
|
||||
panel_tabs:
|
||||
table_columns:
|
||||
- 0 # ID
|
||||
- 1 # Applies to
|
||||
- 2 # Affected resources
|
||||
- 3 # Resource ID / Owned by
|
||||
- 4 # Allowed operations
|
||||
#- 5 # ACL String
|
||||
actions:
|
||||
Acl.refresh: true
|
||||
Acl.create_dialog: true
|
||||
Acl.delete: true
|
||||
vresources-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
actions:
|
||||
vms-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
vm_info_tab: true
|
||||
vm_capacity_tab: true
|
||||
vm_hotplugging_tab: true
|
||||
vm_network_tab: true
|
||||
vm_snapshot_tab: true
|
||||
vm_placement_tab: false
|
||||
vm_actions_tab: true
|
||||
vm_template_tab: false
|
||||
vm_log_tab: false
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
- 1 # ID
|
||||
- 2 # Owner
|
||||
- 3 # Group
|
||||
- 4 # Name
|
||||
- 5 # Status
|
||||
#- 6 # Used CPU
|
||||
#- 7 # Used Memory
|
||||
- 8 # Host
|
||||
- 9 # IPs
|
||||
#- 10 # Start Time
|
||||
- 11 # VNC
|
||||
actions:
|
||||
VM.refresh: true
|
||||
VM.create_dialog: true
|
||||
VM.chown: false
|
||||
VM.chgrp: false
|
||||
VM.chmod: true
|
||||
VM.deploy: false
|
||||
VM.migrate: false
|
||||
VM.migrate_live: false
|
||||
VM.hold: true
|
||||
VM.release: true
|
||||
VM.suspend: true
|
||||
VM.resume: true
|
||||
VM.stop: true
|
||||
VM.boot: true
|
||||
VM.reboot: true
|
||||
VM.reboot_hard: true
|
||||
VM.poweroff: true
|
||||
VM.poweroff_hard: true
|
||||
VM.undeploy: true
|
||||
VM.undeploy_hard: true
|
||||
VM.shutdown: true
|
||||
VM.shutdown_hard: true
|
||||
VM.destroy: true
|
||||
VM.destroy_recreate: true
|
||||
VM.resize: true
|
||||
VM.attachdisk: true
|
||||
VM.detachdisk: true
|
||||
VM.saveas: true
|
||||
VM.attachnic: true
|
||||
VM.detachnic: true
|
||||
VM.snapshot_create: true
|
||||
VM.snapshot_revert: true
|
||||
VM.snapshot_delete: true
|
||||
templates-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
template_info_tab: true
|
||||
template_template_tab: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
- 0 # ID
|
||||
- 1 # Owner
|
||||
- 2 # Group
|
||||
- 3 # Name
|
||||
- 4 # Registration time
|
||||
actions:
|
||||
Template.refresh: true
|
||||
Template.create_dialog: true
|
||||
Template.update_dialog: true
|
||||
Template.instantiate_vms: true
|
||||
Template.chown: false
|
||||
Template.chgrp: false
|
||||
Template.chmod: true
|
||||
Template.clone_dialog: true
|
||||
Template.delete: true
|
||||
template_creation_tabs:
|
||||
general: true
|
||||
storage: true
|
||||
network: true
|
||||
os_booting: true
|
||||
input_output: true
|
||||
context: true
|
||||
scheduling: false
|
||||
images-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
image_info_panel: true
|
||||
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
|
||||
actions:
|
||||
Image.refresh: true
|
||||
Image.create_dialog: true
|
||||
Image.chown: false
|
||||
Image.chgrp: false
|
||||
Image.chmod: true
|
||||
Image.enable: true
|
||||
Image.disable: true
|
||||
Image.persistent: true
|
||||
Image.nonpersistent: true
|
||||
Image.clone_dialog: true
|
||||
Image.delete: true
|
||||
files-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
file_info_panel: true
|
||||
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
|
||||
actions:
|
||||
File.refresh: true
|
||||
File.create_dialog: true
|
||||
File.chown: false
|
||||
File.chgrp: false
|
||||
File.chmod: true
|
||||
File.enable: true
|
||||
File.disable: true
|
||||
File.delete: true
|
||||
infra-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
actions:
|
||||
clusters-tab:
|
||||
enabled: false
|
||||
panel_tabs:
|
||||
cluster_info_tab: true
|
||||
cluster_host_tab: true
|
||||
cluster_vnet_tab: true
|
||||
cluster_datastore_tab: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
- 1 # ID
|
||||
- 2 # Name
|
||||
- 3 # Hosts
|
||||
- 4 # VNets
|
||||
- 5 # Datastores
|
||||
actions:
|
||||
Cluster.refresh: true
|
||||
Cluster.create_dialog: true
|
||||
Cluster.update_dialog: true
|
||||
Cluster.delete: true
|
||||
hosts-tab:
|
||||
enabled: false
|
||||
panel_tabs:
|
||||
host_info_tab: true
|
||||
host_monitoring_tab: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
- 1 # ID
|
||||
- 2 # Name
|
||||
- 3 # Cluster
|
||||
- 4 # RVMs
|
||||
#- 5 # Real CPU
|
||||
- 6 # Allocated CPU
|
||||
#- 7 # Real MEM
|
||||
- 8 # Allocated MEM
|
||||
- 9 # Status
|
||||
#- 10 # IM MAD
|
||||
#- 11 # VM MAD
|
||||
#- 12 # Last monitored on
|
||||
actions:
|
||||
Host.refresh: true
|
||||
Host.create_dialog: true
|
||||
Host.addtocluster: true
|
||||
Host.enable: true
|
||||
Host.disable: true
|
||||
Host.delete: true
|
||||
datastores-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
datastore_info_tab: true
|
||||
datastore_image_tab: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
- 1 # ID
|
||||
- 2 # Owner
|
||||
- 3 # Group
|
||||
- 4 # Name
|
||||
- 5 # Cluster
|
||||
#- 6 # Basepath
|
||||
#- 7 # TM
|
||||
#- 8 # DS
|
||||
#- 9 # System
|
||||
actions:
|
||||
Datastore.refresh: true
|
||||
Datastore.create_dialog: false
|
||||
Datastore.addtocluster: false
|
||||
Datastore.chown: false
|
||||
Datastore.chgrp: false
|
||||
Datastore.chmod: true
|
||||
Datastore.delete: false
|
||||
vnets-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
vnet_info_tab: true
|
||||
vnet_leases_tab: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
- 1 # ID
|
||||
- 2 # Owner
|
||||
- 3 # Group
|
||||
- 4 # Name
|
||||
- 5 # Cluster
|
||||
- 6 # Type
|
||||
#- 7 # Bridge
|
||||
- 8 # Leases
|
||||
actions:
|
||||
Network.refresh: true
|
||||
Network.create_dialog: false
|
||||
Network.addtocluster: false
|
||||
Network.chown: false
|
||||
Network.chgrp: false
|
||||
Network.chmod: true
|
||||
Network.delete: false
|
||||
Network.addleases: false
|
||||
Network.hold_lease: false
|
||||
Network.remove_lease: false
|
||||
Network.release_lease: false
|
||||
marketplace-tab:
|
||||
enabled: true
|
||||
panel_tabs:
|
||||
marketplace_info_tab: true
|
||||
table_columns:
|
||||
- 0 # Checkbox
|
||||
#- 1 # ID
|
||||
- 2 # Name
|
||||
- 3 # Publisher
|
||||
- 4 # Hypervisor
|
||||
- 5 # Arch
|
||||
- 6 # Format
|
||||
#- 7 # Tags
|
||||
actions:
|
||||
Marketplace.refresh: true
|
||||
Marketplace.import: true
|
||||
|
@ -489,31 +489,6 @@ var OpenNebula = {
|
||||
}
|
||||
},
|
||||
|
||||
"Config": {
|
||||
"resource": "CONFIG",
|
||||
|
||||
"list": function(params)
|
||||
{
|
||||
var callback = params.success;
|
||||
var callback_error = params.error;
|
||||
|
||||
var resource = OpenNebula.Config.resource;
|
||||
var request = OpenNebula.Helper.request(resource,"list");
|
||||
|
||||
$.ajax({
|
||||
url: "config",
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function(response){
|
||||
return callback ? callback(request, response) : null;
|
||||
},
|
||||
error: function(response){
|
||||
return callback_error ?
|
||||
callback_error(request, OpenNebula.Error(response)) : null;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
"Host": {
|
||||
"resource": "HOST",
|
||||
|
@ -611,12 +611,14 @@ function setAclAutorefresh(){
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'acls-tab';
|
||||
|
||||
//if we are not oneadmin, our tab will not even be in the DOM.
|
||||
dataTable_acls = $("#datatable_acls",main_tabs_context).dataTable({
|
||||
"aoColumnDefs": [
|
||||
{ "bSortable": false, "aTargets": ["check"] },
|
||||
{ "sWidth": "35px", "aTargets": [0,1] },
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['acls-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -1807,14 +1807,14 @@ function clusters_sel() {
|
||||
//Here we can basicly init the host datatable, preload it
|
||||
//and add specific listeners
|
||||
$(document).ready(function(){
|
||||
|
||||
var tab_name = "clusters-tab"
|
||||
|
||||
//prepare host datatable
|
||||
dataTable_clusters = $("#datatable_clusters",main_tabs_context).dataTable({
|
||||
"aoColumnDefs": [
|
||||
{ "bSortable": false, "aTargets": ["check"] },
|
||||
{ "sWidth": "35px", "aTargets": [0,1] },
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['clusters-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -14,6 +14,50 @@
|
||||
/* limitations under the License. */
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
Config = {
|
||||
"isTabEnabled": function(tab_name){
|
||||
var enabled = config['view']['tabs'][tab_name]['enabled'];
|
||||
return enabled;
|
||||
},
|
||||
"isTabActionEnabled": function(tab_name, action_name){
|
||||
var enabled = config['view']['tabs'][tab_name]['actions'][action_name];
|
||||
return enabled;
|
||||
},
|
||||
|
||||
"isTabPanelEnabled": function(tab_name, panel_tab_name){
|
||||
var enabled = config['view']['tabs'][tab_name]['panel_tabs'][panel_tab_name];
|
||||
return enabled;
|
||||
},
|
||||
|
||||
"tabTableColumns": function(tab_name){
|
||||
var columns = config['view']['tabs'][tab_name]['table_columns'];
|
||||
|
||||
if (columns) {
|
||||
return columns;
|
||||
}
|
||||
else {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
|
||||
"isTemplateCreationTabEnabled": function(template_tab_name){
|
||||
var enabled = config['view']['tabs']['templates-tab']['template_creation_tabs'][template_tab_name];
|
||||
return enabled;
|
||||
},
|
||||
|
||||
"dashboardWidgets": function(per_row){
|
||||
var widgets = config['view']['tabs']['dashboard-tab'][per_row];
|
||||
|
||||
if (widgets) {
|
||||
return widgets;
|
||||
}
|
||||
else {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var config_response = {};
|
||||
var config_tab_content =
|
||||
'<div class="panel">\
|
||||
|
@ -33,9 +33,17 @@ var dashboard_tab_content = '\
|
||||
</div>\
|
||||
</div>\
|
||||
<br>\
|
||||
<div class="row">\
|
||||
<div class="four columns">\
|
||||
<div class="panel">\
|
||||
<div id="three_per_row" class="row">\
|
||||
</div>\
|
||||
<div id="two_per_row" class="row">\
|
||||
</div>\
|
||||
<div id="one_per_row" class="row">\
|
||||
</div>\
|
||||
</div>\
|
||||
';
|
||||
|
||||
var widgets = {
|
||||
"storage" : '<div class="panel">\
|
||||
<div class="row">\
|
||||
<h5 class="subheader header-dashboard"><span class="span-dashboard"><i class="icon-upload"></i> '+tr("Storage")+'</span></h5>\
|
||||
</div>\
|
||||
@ -49,10 +57,8 @@ var dashboard_tab_content = '\
|
||||
</h3>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="four columns">\
|
||||
<div class="panel">\
|
||||
</div>',
|
||||
"users" : '<div class="panel">\
|
||||
<div class="row">\
|
||||
<h5 class="subheader header-dashboard"><span class="span-dashboard"><i class="icon-user"></i> '+tr("Users")+'</span></h5>\
|
||||
</div>\
|
||||
@ -66,10 +72,8 @@ var dashboard_tab_content = '\
|
||||
</h3>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="four columns">\
|
||||
<div class="panel">\
|
||||
</div>',
|
||||
"network" : '<div class="panel">\
|
||||
<div class="row">\
|
||||
<h5 class="subheader header-dashboard"><span class="span-dashboard"><i class="icon-sitemap"></i> '+tr("Network")+'</span></h5>\
|
||||
</div>\
|
||||
@ -83,13 +87,8 @@ var dashboard_tab_content = '\
|
||||
</h3>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<br>\
|
||||
<div class="row">\
|
||||
<div class="six columns">\
|
||||
<div class="panel dashboard-panel">\
|
||||
</div>',
|
||||
"hosts" : '<div class="panel dashboard-panel">\
|
||||
<div class="row">\
|
||||
<h5 class="subheader header-dashboard"><span class="span-dashboard"><i class="icon-hdd"></i> '+tr("Hosts")+'</span></h5>\
|
||||
</div>\
|
||||
@ -126,10 +125,8 @@ var dashboard_tab_content = '\
|
||||
<span class="label real radius">'+tr("Real")+'</span> \
|
||||
<span class="label total radius">'+tr("Total")+'</span>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
<div class="six columns">\
|
||||
<div class="panel dashboard-panel">\
|
||||
</div>',
|
||||
"vms" : '<div class="panel dashboard-panel">\
|
||||
<div class="row">\
|
||||
<h5 class="subheader header-dashboard"><span class="span-dashboard"><i class="icon-cloud"></i> '+tr("Virtual Machines")+'</span></h5>\
|
||||
</div>\
|
||||
@ -165,11 +162,8 @@ var dashboard_tab_content = '\
|
||||
<div class="ten columns centered graph" id="dash_vm_net_tx_graph" style="height: 100px;">\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
';
|
||||
</div>'
|
||||
}
|
||||
|
||||
var dashboard_tab = {
|
||||
title: '<i class="icon-dashboard"></i>'+tr("Dashboard"),
|
||||
@ -186,5 +180,20 @@ var $dashboard;
|
||||
function dashboardQuotasHTML(){}
|
||||
|
||||
$(document).ready(function(){
|
||||
$dashboard = $('#dashboard-tab', main_tabs_context);
|
||||
$dashboard = $('#dashboard-tab', main_tabs_context);
|
||||
|
||||
$.each(Config.dashboardWidgets('widgets_three_per_row'), function(id, widget){
|
||||
var html = '<div class="four columns">'+widgets[widget]+'</div>';
|
||||
$('#three_per_row', $dashboard).append(html);
|
||||
})
|
||||
|
||||
$.each(Config.dashboardWidgets('widgets_two_per_row'), function(id, widget){
|
||||
var html = '<div class="six columns">'+widgets[widget]+'</div>';
|
||||
$('#two_per_row', $dashboard).append(html);
|
||||
})
|
||||
|
||||
$.each(Config.dashboardWidgets('widgets_one_per_row'), function(id, widget){
|
||||
var html = '<div class="twelve columns">'+widgets[widget]+'</div>';
|
||||
$('#one_per_row', $dashboard).append(html);
|
||||
})
|
||||
});
|
||||
|
@ -682,7 +682,8 @@ function updateDatastoreInfo(request,ds){
|
||||
"Configuration Attributes") +
|
||||
'</div>\
|
||||
<div class="six columns">'
|
||||
+ insert_permissions_table("Datastore",
|
||||
+ insert_permissions_table('datastores-tab',
|
||||
"Datastore",
|
||||
info.ID,
|
||||
info.UNAME,
|
||||
info.GNAME,
|
||||
|
@ -554,7 +554,8 @@ function updateFileInfo(request,img){
|
||||
</table>\
|
||||
</div>\
|
||||
<div class="six columns">'
|
||||
+ insert_permissions_table("File",
|
||||
+ insert_permissions_table('files-tab',
|
||||
"File",
|
||||
img_info.ID,
|
||||
img_info.UNAME,
|
||||
img_info.GNAME,
|
||||
@ -905,18 +906,16 @@ function is_persistent_file(id){
|
||||
|
||||
//The DOM is ready at this point
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'files-tab';
|
||||
|
||||
dataTable_files = $("#datatable_files",main_tabs_context).dataTable({
|
||||
"oColVis": {
|
||||
"aiExclude": [ 0 ]
|
||||
},
|
||||
"aoColumnDefs": [
|
||||
{ "bSortable": false, "aTargets": ["check"] },
|
||||
{ "sWidth": "60px", "aTargets": [0,2,3,9,10] },
|
||||
{ "sWidth": "35px", "aTargets": [1,6,11,12] },
|
||||
{ "sWidth": "100px", "aTargets": [5,7] },
|
||||
{ "sWidth": "150px", "aTargets": [8] },
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['files-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -794,11 +794,13 @@ function setGroupAutorefresh(){
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'groups-tab';
|
||||
|
||||
dataTable_groups = $("#datatable_groups",main_tabs_context).dataTable({
|
||||
"aoColumnDefs": [
|
||||
{ "bSortable": false, "aTargets": ["check"] },
|
||||
{ "sWidth": "35px", "aTargets": [0,1] },
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['groups-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -1034,16 +1034,14 @@ function hostMonitorError(req,error_json){
|
||||
//Here we can basicly init the host datatable, preload it
|
||||
//and add specific listeners
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'hosts-tab';
|
||||
|
||||
//prepare host datatable
|
||||
dataTable_hosts = $("#datatable_hosts",main_tabs_context).dataTable({
|
||||
"oColVis": { //exclude checkbox column
|
||||
"aiExclude": [ 0 ]
|
||||
},
|
||||
"aoColumnDefs": [
|
||||
//{ "bSortable": false, "aTargets": ["check"] },
|
||||
{ "sWidth": "35px", "aTargets": [0,1,4,9] }, //check, ID, RVMS, Status,
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['hosts-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -716,7 +716,8 @@ function updateImageInfo(request,img){
|
||||
</table>\
|
||||
</div>\
|
||||
<div class="six columns">'
|
||||
+ insert_permissions_table("Image",
|
||||
+ insert_permissions_table('images-tab',
|
||||
"Image",
|
||||
img_info.ID,
|
||||
img_info.UNAME,
|
||||
img_info.GNAME,
|
||||
@ -1251,18 +1252,16 @@ function popUpImageCloneDialog(){
|
||||
|
||||
//The DOM is ready at this point
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'images-tab';
|
||||
|
||||
dataTable_images = $("#datatable_images",main_tabs_context).dataTable({
|
||||
"oColVis": {
|
||||
"aiExclude": [ 0 ]
|
||||
},
|
||||
"aoColumnDefs": [
|
||||
{ "bSortable": false, "aTargets": ["check"] },
|
||||
{ "sWidth": "60px", "aTargets": [0,2,3,9,10] },
|
||||
{ "sWidth": "35px", "aTargets": [1,6,11,12] },
|
||||
{ "sWidth": "100px", "aTargets": [5,7] },
|
||||
{ "sWidth": "150px", "aTargets": [8] },
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['images-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -283,6 +283,8 @@ function onlyOneCheckboxListener(dataTable) {
|
||||
*/
|
||||
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'marketplace-tab';
|
||||
|
||||
dataTable_marketplace = $("#datatable_marketplace", main_tabs_context).dataTable({
|
||||
"bSortClasses": true,
|
||||
"aoColumns": [
|
||||
@ -305,7 +307,7 @@ $(document).ready(function(){
|
||||
{ "mDataProp": "tags"}
|
||||
],
|
||||
"aoColumnDefs": [
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['marketplace-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -1370,7 +1370,8 @@ function updateTemplateInfo(request,template){
|
||||
</tr>\
|
||||
</table>\
|
||||
</div>\
|
||||
<div class="six columns">' + insert_permissions_table("Template",
|
||||
<div class="six columns">' + insert_permissions_table('templates-tab',
|
||||
"Template",
|
||||
template_info.ID,
|
||||
template_info.UNAME,
|
||||
template_info.GNAME,
|
||||
@ -2250,7 +2251,7 @@ function setupCreateTemplateDialog(){
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'<hr>'+
|
||||
'<div class="row">'+
|
||||
'<div class="">'+
|
||||
'<table id="input_table" class="twelve">'+
|
||||
'<thead>'+
|
||||
'<tr>'+
|
||||
@ -2332,7 +2333,7 @@ function setupCreateTemplateDialog(){
|
||||
'<div class="six columns">'+
|
||||
'<fieldset>'+
|
||||
'<legend>'+tr("SSH")+'</legend>'+
|
||||
'<div class="row">'+
|
||||
'<div class="">'+
|
||||
'<div class="columns one">'+
|
||||
'<input type="checkbox" name="ssh_context" id="ssh_context" checked>'+
|
||||
'</div>'+
|
||||
@ -2343,20 +2344,22 @@ function setupCreateTemplateDialog(){
|
||||
'<div class="tip">'+tr("Add an ssh public key to the context. If the Public Key textarea is empty then the user variable SSH_PUBLIC_KEY will be used.")+'</div>'+
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'<div class="row">'+
|
||||
'<div class="ten columns">'+
|
||||
'<div class="">'+
|
||||
'<div class="twelve columns">'+
|
||||
'<label for="ssh_puclic_key"> '+tr("Public Key")+':</label>'+
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'<div class="row">'+
|
||||
'<div class="">'+
|
||||
'<div class="twelve columns">'+
|
||||
'<textarea rows="4" type="text" id="ssh_puclic_key" name="ssh_puclic_key" />'+
|
||||
'</div>'+
|
||||
'</div>'+
|
||||
'</fieldset>'+
|
||||
'</div>'+
|
||||
'<div class="six columns">'+
|
||||
'<fieldset>'+
|
||||
'<legend>'+tr("Network")+'</legend>'+
|
||||
'<div class="row">'+
|
||||
'<div class="">'+
|
||||
'<div class="columns one">'+
|
||||
'<input type="checkbox" name="network_context" id="network_context" checked>'+
|
||||
'</div>'+
|
||||
@ -3041,13 +3044,33 @@ function setupCreateTemplateDialog(){
|
||||
$('#update_template_header', $create_template_dialog).show();
|
||||
});
|
||||
|
||||
add_capacityTab();
|
||||
add_disks_tab();
|
||||
add_nics_tab();
|
||||
add_osTab();
|
||||
add_ioTab();
|
||||
add_contextTab();
|
||||
add_schedulingTab();
|
||||
if (Config.isTemplateCreationTabEnabled('general')){
|
||||
add_capacityTab();
|
||||
}
|
||||
|
||||
if (Config.isTemplateCreationTabEnabled('storage')){
|
||||
add_disks_tab();
|
||||
}
|
||||
|
||||
if (Config.isTemplateCreationTabEnabled('network')){
|
||||
add_nics_tab();
|
||||
}
|
||||
|
||||
if (Config.isTemplateCreationTabEnabled('os_booting')){
|
||||
add_osTab();
|
||||
}
|
||||
|
||||
if (Config.isTemplateCreationTabEnabled('input_output')){
|
||||
add_ioTab();
|
||||
}
|
||||
|
||||
if (Config.isTemplateCreationTabEnabled('context')){
|
||||
add_contextTab();
|
||||
}
|
||||
|
||||
if (Config.isTemplateCreationTabEnabled('scheduling')){
|
||||
add_schedulingTab();
|
||||
}
|
||||
|
||||
//tabs.tabs("option", "active", 0);
|
||||
$(".ui-tabs-vertical .ui-tabs-nav", dialog).first().removeClass("ui-tabs-nav").addClass("ui-tabs-nav-vert")
|
||||
@ -4148,15 +4171,13 @@ function popUpInstantiateVMTemplateDialog(){
|
||||
|
||||
//The DOM is ready at this point
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'templates-tab';
|
||||
|
||||
dataTable_templates = $("#datatable_templates",main_tabs_context).dataTable({
|
||||
"oColVis": {
|
||||
"aiExclude": [ 0 ]
|
||||
},
|
||||
"aoColumnDefs": [
|
||||
{ "bSortable": false, "aTargets": ["check"] },
|
||||
{ "sWidth": "35px", "aTargets": [0,1] },
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['templates-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -1153,15 +1153,14 @@ function setUserAutorefresh(){
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'users-tab';
|
||||
|
||||
//if we are not oneadmin, our tab will not even be in the DOM.
|
||||
dataTable_users = $("#datatable_users",main_tabs_context).dataTable({
|
||||
"oColVis": {
|
||||
"aiExclude": [ 0 ]
|
||||
},
|
||||
"aoColumnDefs": [
|
||||
{ "bSortable": false, "aTargets": ["check"] },
|
||||
{ "sWidth": "35px", "aTargets": [0,1] },
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['users-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -1309,7 +1309,8 @@ function updateVMInfo(request,vm){
|
||||
</table>\
|
||||
</div>\
|
||||
<div class="six columns">' +
|
||||
insert_permissions_table("VM",
|
||||
insert_permissions_table('vms-tab',
|
||||
"VM",
|
||||
vm_info.ID,
|
||||
vm_info.UNAME,
|
||||
vm_info.GNAME,
|
||||
@ -1773,13 +1774,15 @@ function printDisks(vm_info){
|
||||
<div class="twelve columns">\
|
||||
<div id="refresh_disk" class="button small secondary radius" ><i class="icon-refresh"/></div>'
|
||||
|
||||
// If VM is not RUNNING, then we forget about the attach disk form.
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3"){
|
||||
html += '\
|
||||
<div id="attach_disk" class="button small secondary radius" >' + tr("Attach new disk") +'</div>'
|
||||
} else {
|
||||
html += '\
|
||||
<div id="attach_disk" class="button small secondary radius" disabled="disabled">' + tr("Attach new disk") +'</div>'
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.attachdisk")) {
|
||||
// If VM is not RUNNING, then we forget about the attach disk form.
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3"){
|
||||
html += '\
|
||||
<div id="attach_disk" class="button small secondary radius" >' + tr("Attach new disk") +'</div>'
|
||||
} else {
|
||||
html += '\
|
||||
<div id="attach_disk" class="button small secondary radius" disabled="disabled">' + tr("Attach new disk") +'</div>'
|
||||
}
|
||||
}
|
||||
|
||||
html += '\
|
||||
@ -1862,12 +1865,16 @@ function printDisks(vm_info){
|
||||
|
||||
actions = '';
|
||||
|
||||
if ((vm_info.STATE == "3" && vm_info.LCM_STATE == "3") || vm_info.STATE == "5" || vm_info.STATE == "8") {
|
||||
actions += '<a href="VM.saveas" class="saveas" ><i class="icon-save"/>'+tr("Snapshot")+'</a>  '
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.saveas")) {
|
||||
if ((vm_info.STATE == "3" && vm_info.LCM_STATE == "3") || vm_info.STATE == "5" || vm_info.STATE == "8") {
|
||||
actions += '<a href="VM.saveas" class="saveas" ><i class="icon-save"/>'+tr("Snapshot")+'</a>  '
|
||||
}
|
||||
}
|
||||
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3") {
|
||||
actions += '<a href="VM.detachdisk" class="detachdisk" ><i class="icon-remove"/>'+tr("Detach")+'</a>'
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.detachdisk")) {
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3") {
|
||||
actions += '<a href="VM.detachdisk" class="detachdisk" ><i class="icon-remove"/>'+tr("Detach")+'</a>'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2057,40 +2064,47 @@ function popUpAttachDiskDialog(vm_id){
|
||||
|
||||
// Listeners to the disks operations (detach, saveas, attach)
|
||||
function hotpluggingOps(){
|
||||
setupSaveAsDialog();
|
||||
setupAttachDiskDialog();
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.saveas")) {
|
||||
setupSaveAsDialog();
|
||||
|
||||
$('a.detachdisk').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var disk_id = b.parents('tr').attr('disk_id');
|
||||
$('a.saveas').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var disk_id = b.parents('tr').attr('disk_id');
|
||||
|
||||
Sunstone.runAction('VM.detachdisk', vm_id, disk_id);
|
||||
popUpSaveAsDialog(vm_id, disk_id);
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$('a.saveas').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var disk_id = b.parents('tr').attr('disk_id');
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.attachdisk")) {
|
||||
setupAttachDiskDialog();
|
||||
|
||||
popUpSaveAsDialog(vm_id, disk_id);
|
||||
$('#attach_disk').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
popUpAttachDiskDialog(vm_id);
|
||||
|
||||
$('#attach_disk').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
popUpAttachDiskDialog(vm_id);
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.detachdisk")) {
|
||||
$('a.detachdisk').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var disk_id = b.parents('tr').attr('disk_id');
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
Sunstone.runAction('VM.detachdisk', vm_id, disk_id);
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$('#refresh_disk').live('click', function(){
|
||||
var b = $(this);
|
||||
@ -2116,13 +2130,15 @@ function printNics(vm_info){
|
||||
<div class="twelve columns">\
|
||||
<div id="refresh_nic" class="button small secondary radius" ><i class="icon-refresh"/></div>'
|
||||
|
||||
// If VM is not RUNNING, then we forget about the attach nic form.
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3"){
|
||||
html += '\
|
||||
<div id="attach_nic" class="button small secondary radius" >' + tr("Attach new nic") +'</div>'
|
||||
} else {
|
||||
html += '\
|
||||
<div id="attach_nic" class="button small secondary radius" disabled="disabled">' + tr("Attach new nic") +'</div>'
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.attachnic")) {
|
||||
// If VM is not RUNNING, then we forget about the attach nic form.
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3"){
|
||||
html += '\
|
||||
<div id="attach_nic" class="button small secondary radius" >' + tr("Attach new nic") +'</div>'
|
||||
} else {
|
||||
html += '\
|
||||
<div id="attach_nic" class="button small secondary radius" disabled="disabled">' + tr("Attach new nic") +'</div>'
|
||||
}
|
||||
}
|
||||
|
||||
html += '\
|
||||
@ -2179,8 +2195,10 @@ function printNics(vm_info){
|
||||
else {
|
||||
actions = '';
|
||||
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3") {
|
||||
actions += '<a href="VM.detachnic" class="detachnic" ><i class="icon-remove"/>'+tr("Detach")+'</a>'
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.detachnic")) {
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3") {
|
||||
actions += '<a href="VM.detachnic" class="detachnic" ><i class="icon-remove"/>'+tr("Detach")+'</a>'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2321,29 +2339,32 @@ function popUpAttachNicDialog(vm_id){
|
||||
|
||||
// Listeners to the nics operations (detach, saveas, attach)
|
||||
function setup_vm_network_tab(){
|
||||
//setupSaveAsDialog();
|
||||
setupAttachNicDialog();
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.attachnic")) {
|
||||
setupAttachNicDialog();
|
||||
|
||||
$('a.detachnic').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var nic_id = b.parents('tr').attr('nic_id');
|
||||
$('#attach_nic').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
|
||||
Sunstone.runAction('VM.detachnic', vm_id, nic_id);
|
||||
popUpAttachNicDialog(vm_id);
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$('#attach_nic').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.detachnic")) {
|
||||
$('a.detachnic').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var nic_id = b.parents('tr').attr('nic_id');
|
||||
|
||||
popUpAttachNicDialog(vm_id);
|
||||
Sunstone.runAction('VM.detachnic', vm_id, nic_id);
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$('#refresh_nic').live('click', function(){
|
||||
var b = $(this);
|
||||
@ -2370,13 +2391,15 @@ function printCapacity(vm_info){
|
||||
<div class="twelve columns">\
|
||||
<div id="refresh_capacity" class="button small secondary radius" ><i class="icon-refresh"/></div>'
|
||||
|
||||
// If VM is not RUNNING, then we forget about the attach nic form.
|
||||
if (vm_info.STATE == "0" || vm_info.STATE == "1" || vm_info.STATE == "2" || vm_info.STATE == "7" || vm_info.STATE == "8"){
|
||||
html += '\
|
||||
<button id="resize_capacity" class="button small secondary radius" >' + tr("Resize VM capacity") +'</button>'
|
||||
} else {
|
||||
html += '\
|
||||
<button id="resize_capacity" class="button small secondary radius" disabled="disabled">' + tr("Resize VM capacity") +'</button>'
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.resize")) {
|
||||
// If VM is not RUNNING, then we forget about the attach nic form.
|
||||
if (vm_info.STATE == "0" || vm_info.STATE == "1" || vm_info.STATE == "2" || vm_info.STATE == "7" || vm_info.STATE == "8"){
|
||||
html += '\
|
||||
<button id="resize_capacity" class="button small secondary radius" >' + tr("Resize VM capacity") +'</button>'
|
||||
} else {
|
||||
html += '\
|
||||
<button id="resize_capacity" class="button small secondary radius" disabled="disabled">' + tr("Resize VM capacity") +'</button>'
|
||||
}
|
||||
}
|
||||
|
||||
html += '\
|
||||
@ -2521,18 +2544,20 @@ function popUpResizeCapacityDialog(vm_id){
|
||||
// Listeners to the nics operations (detach, saveas, attach)
|
||||
function setup_vm_capacity_tab(){
|
||||
//setupSaveAsDialog();
|
||||
setupResizeCapacityDialog();
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.resize")) {
|
||||
setupResizeCapacityDialog();
|
||||
|
||||
|
||||
$('#resize_capacity').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
$('#resize_capacity').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
|
||||
popUpResizeCapacityDialog(vm_id);
|
||||
popUpResizeCapacityDialog(vm_id);
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$('#refresh_capacity').live('click', function(){
|
||||
var b = $(this);
|
||||
@ -2559,13 +2584,15 @@ function printSnapshots(vm_info){
|
||||
<div class="twelve columns">\
|
||||
<div id="refresh_disk" class="button small secondary radius" ><i class="icon-refresh"/></div>'
|
||||
|
||||
// If VM is not RUNNING, then we forget about the attach disk form.
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3"){
|
||||
html += '\
|
||||
<div id="take_snapshot" class="button small secondary radius" >' + tr("Take snapshot") +'</div>'
|
||||
} else {
|
||||
html += '\
|
||||
<div id="take_snapshot" class="button small secondary radius" disabled="disabled">' + tr("Take snapshot") +'</div>'
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.snapshot_create")) {
|
||||
// If VM is not RUNNING, then we forget about the attach disk form.
|
||||
if (vm_info.STATE == "3" && vm_info.LCM_STATE == "3"){
|
||||
html += '\
|
||||
<div id="take_snapshot" class="button small secondary radius" >' + tr("Take snapshot") +'</div>'
|
||||
} else {
|
||||
html += '\
|
||||
<div id="take_snapshot" class="button small secondary radius" disabled="disabled">' + tr("Take snapshot") +'</div>'
|
||||
}
|
||||
}
|
||||
|
||||
html += '\
|
||||
@ -2615,8 +2642,13 @@ function printSnapshots(vm_info){
|
||||
actions = '';
|
||||
|
||||
if ((vm_info.STATE == "3" && vm_info.LCM_STATE == "3")) {
|
||||
actions += '<a href="VM.snapshot_revert" class="snapshot_revert" ><i class="icon-reply"/>'+tr("Revert")+'</a>  '
|
||||
actions += '<a href="VM.snapshot_delete" class="snapshot_delete" ><i class="icon-remove"/>'+tr("Delete")+'</a>'
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.snapshot_revert")) {
|
||||
actions += '<a href="VM.snapshot_revert" class="snapshot_revert" ><i class="icon-reply"/>'+tr("Revert")+'</a>  '
|
||||
}
|
||||
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.snapshot_delete")) {
|
||||
actions += '<a href="VM.snapshot_delete" class="snapshot_delete" ><i class="icon-remove"/>'+tr("Delete")+'</a>'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2708,39 +2740,46 @@ function popUpSnapshotDialog(vm_id){
|
||||
|
||||
// Listeners to the disks operations (detach, saveas, attach)
|
||||
function setup_vm_snapshot_tab(){
|
||||
setupSnapshotDialog();
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.snapshot_create")) {
|
||||
setupSnapshotDialog();
|
||||
|
||||
$('a.snapshot_revert').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var snapshot_id = b.parents('tr').attr('snapshot_id');
|
||||
$('#take_snapshot').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
|
||||
Sunstone.runAction('VM.snapshot_revert', vm_id, {"snapshot_id": snapshot_id});
|
||||
popUpSnapshotDialog(vm_id);
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$('a.snapshot_delete').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var snapshot_id = b.parents('tr').attr('snapshot_id');
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.snapshot_revert")) {
|
||||
$('a.snapshot_revert').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var snapshot_id = b.parents('tr').attr('snapshot_id');
|
||||
|
||||
Sunstone.runAction('VM.snapshot_delete', vm_id, {"snapshot_id": snapshot_id});
|
||||
Sunstone.runAction('VM.snapshot_revert', vm_id, {"snapshot_id": snapshot_id});
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$('#take_snapshot').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
|
||||
popUpSnapshotDialog(vm_id);
|
||||
if (Config.isTabActionEnabled("vms-tab", "VM.snapshot_delete")) {
|
||||
$('a.snapshot_delete').live('click', function(){
|
||||
var b = $(this);
|
||||
var vm_id = b.parents('form').attr('vmid');
|
||||
var snapshot_id = b.parents('tr').attr('snapshot_id');
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
Sunstone.runAction('VM.snapshot_delete', vm_id, {"snapshot_id": snapshot_id});
|
||||
|
||||
//b.html(spinner);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
$('#refresh_snapshot').live('click', function(){
|
||||
var b = $(this);
|
||||
@ -2969,15 +3008,13 @@ function vmMonitorError(req,error_json){
|
||||
|
||||
// At this point the DOM is ready and the sunstone.js ready() has been run.
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'vms-tab';
|
||||
|
||||
dataTable_vMachines = $("#datatable_vmachines",main_tabs_context).dataTable({
|
||||
"oColVis": {
|
||||
"aiExclude": [ 0 ]
|
||||
},
|
||||
"aoColumnDefs": [
|
||||
{ "bSortable": false, "aTargets": ["check"] },
|
||||
{ "sWidth": "35px", "aTargets": [0,1] },
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['vms-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -792,7 +792,8 @@ function updateVNetworkInfo(request,vn){
|
||||
</table>\
|
||||
</div>\
|
||||
<div class="six columns">'
|
||||
+ insert_permissions_table("Network",
|
||||
+ insert_permissions_table('vnets-tab',
|
||||
"Network",
|
||||
vn_info.ID,
|
||||
vn_info.UNAME,
|
||||
vn_info.GNAME,
|
||||
@ -866,25 +867,29 @@ function printLeases(vn_info){
|
||||
<td class="value_td">'+vn_info.RANGE.IP_END+'</td>\
|
||||
<td></td>\
|
||||
<td></td>\
|
||||
</tr\>\
|
||||
</tr>\
|
||||
<tr>\
|
||||
<td colspan="2" class="key_td">'+tr("Network mask")+'</td>\
|
||||
<td class="value_td">'+( vn_info.TEMPLATE.NETWORK_MASK ? vn_info.TEMPLATE.NETWORK_MASK : "--" )+'</td>\
|
||||
<td></td>\
|
||||
<td></td>\
|
||||
</tr\>\
|
||||
<tr>\
|
||||
</tr>';
|
||||
if (Config.isTabActionEnabled("vnets-tab", "Network.hold_lease")) {
|
||||
html += '<tr>\
|
||||
<td></td>\
|
||||
<td class="value_td"><input type="text" id="panel_hold_lease" style="width:9em;"/></td>\
|
||||
<td colspan="3"><button class="button small secondary radius" id="panel_hold_lease_button">'+tr("Hold lease")+'</button></td>\
|
||||
</tr>';
|
||||
<td colspan="3"><button class="button small secondary radius" id="panel_hold_lease_button">'+tr("Hold IP")+'</button></td>\
|
||||
</tr>';
|
||||
}
|
||||
} else {
|
||||
if (Config.isTabActionEnabled("vnets-tab", "Network.addleases")) {
|
||||
html += '<tr>\
|
||||
<td></td>\
|
||||
<td class="value_td"><input type="text" id="panel_add_lease"/></td>\
|
||||
<td colspan="2"><button id="panel_add_lease_button" class="button small secondary radius">'+tr("Add")+'</button></td>\
|
||||
<td colspan="2"><button id="panel_add_lease_button" class="button small secondary radius">'+tr("Add IP")+'</button></td>\
|
||||
<td></td>\
|
||||
</tr>';
|
||||
}
|
||||
};
|
||||
|
||||
var leases = vn_info.LEASES.LEASE;
|
||||
@ -938,13 +943,26 @@ function printLeases(vn_info){
|
||||
|
||||
switch (state){
|
||||
case 0:
|
||||
html += '<td><a class="hold_lease" href="#"><i class="icon-pause"/></a></td><td><a class="delete_lease" href="#"><i class="icon-trash"/></a>';
|
||||
html += '<td>';
|
||||
if (Config.isTabActionEnabled("vnets-tab", "Network.hold_lease")) {
|
||||
html += '<a class="hold_lease" href="#"><i class="icon-pause"/></a>';
|
||||
}
|
||||
html += '</td>'
|
||||
html += '<td>'
|
||||
if (Config.isTabActionEnabled("vnets-tab", "Network.remove_lease")) {
|
||||
html += '<a class="delete_lease" href="#"><i class="icon-trash"/></a>';
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
html += '<td colspan="2">' + tr("VM:") + lease.VID+''
|
||||
break;
|
||||
case 2:
|
||||
html += '<td><a class="release_lease" href="#"><i class="icon-play"/></a></td><td>';
|
||||
html += '<td>';
|
||||
if (Config.isTabActionEnabled("vnets-tab", "Network.release_lease")) {
|
||||
html += '<a class="release_lease" href="#"><i class="icon-play"/></a>';
|
||||
}
|
||||
html += '</td>'
|
||||
html += '<td>'
|
||||
break;
|
||||
};
|
||||
html += '</td>'
|
||||
@ -1250,6 +1268,7 @@ function popUpCreateVnetDialog() {
|
||||
// Listeners to the add, hold, release, delete leases operations in the
|
||||
// extended information panel.
|
||||
function setupLeasesOps(){
|
||||
if (Config.isTabActionEnabled("vnets-tab", "Network.addleases")) {
|
||||
$('button#panel_add_lease_button').live("click",function(){
|
||||
var lease = $('input#panel_add_lease', dialog).val();
|
||||
//var mac = $(this).previous().val();
|
||||
@ -1260,7 +1279,9 @@ function setupLeasesOps(){
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
if (Config.isTabActionEnabled("vnets-tab", "Network.hold_lease")) {
|
||||
//ranged networks hold lease
|
||||
$('button#panel_hold_lease_button').live("click",function(){
|
||||
var lease = $('input#panel_hold_lease', dialog).val();
|
||||
@ -1273,16 +1294,6 @@ function setupLeasesOps(){
|
||||
return false;
|
||||
});
|
||||
|
||||
$('form#leases_form a.delete_lease').live("click",function(){
|
||||
var lease = $(this).parents('tr').attr('ip');
|
||||
var id = $(this).parents('form').attr('vnid');
|
||||
var obj = { ip: lease};
|
||||
Sunstone.runAction('Network.rmleases',id,obj);
|
||||
//Set spinner
|
||||
$(this).parents('tr').html('<td class="key_td">'+spinner+'</td><td class="value_td"></td>');
|
||||
return false;
|
||||
});
|
||||
|
||||
//fixed networks hold lease
|
||||
$('a.hold_lease').live("click",function(){
|
||||
var lease = $(this).parents('tr').attr('ip');
|
||||
@ -1293,7 +1304,23 @@ function setupLeasesOps(){
|
||||
$(this).parents('tr').html('<td class="key_td">'+spinner+'</td><td class="value_td"></td>');
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
if (Config.isTabActionEnabled("vnets-tab", "Network.remove_lease")) {
|
||||
$('form#leases_form a.delete_lease').live("click",function(){
|
||||
var lease = $(this).parents('tr').attr('ip');
|
||||
var id = $(this).parents('form').attr('vnid');
|
||||
var obj = { ip: lease};
|
||||
Sunstone.runAction('Network.rmleases',id,obj);
|
||||
//Set spinner
|
||||
$(this).parents('tr').html('<td class="key_td">'+spinner+'</td><td class="value_td"></td>');
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (Config.isTabActionEnabled("vnets-tab", "Network.release_lease")) {
|
||||
$('a.release_lease').live("click",function(){
|
||||
var lease = $(this).parents('tr').attr('ip');
|
||||
var id = $(this).parents('form').attr('vnid');
|
||||
@ -1303,6 +1330,7 @@ function setupLeasesOps(){
|
||||
$(this).parents('tr').html('<td class="key_td">'+spinner+'</td><td class="value_td"></td>');
|
||||
return false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function setVNetAutorefresh() {
|
||||
@ -1318,14 +1346,12 @@ function setVNetAutorefresh() {
|
||||
//The DOM is ready and the ready() from sunstone.js
|
||||
//has been executed at this point.
|
||||
$(document).ready(function(){
|
||||
var tab_name = 'vnets-tab';
|
||||
|
||||
dataTable_vNetworks = $("#datatable_vnetworks",main_tabs_context).dataTable({
|
||||
"oColVis": {
|
||||
"aiExclude": [ 0 ]
|
||||
},
|
||||
"aoColumnDefs": [
|
||||
{ "sWidth": "35px", "aTargets": [0,1] },
|
||||
{ "bVisible": true, "aTargets": config['view']['tabs']['vnets-tab']['table_columns']},
|
||||
{ "bVisible": true, "aTargets": Config.tabTableColumns(tab_name)},
|
||||
{ "bVisible": false, "aTargets": ['_all']}
|
||||
]
|
||||
});
|
||||
|
@ -1926,116 +1926,124 @@ function buildOctet(permTable){
|
||||
|
||||
|
||||
// Returns HTML with listeners to control permissions
|
||||
function insert_permissions_table(resource_type,resource_id, owner, group, vm_uid, vm_gid){
|
||||
var str ='<table class="'+resource_type.toLowerCase()+'_permissions_table twelve datatable extended_table">\
|
||||
<thead><tr>\
|
||||
<th style="width:130px">'+tr("Permissions")+':</th>\
|
||||
<th style="width:40px;text-align:center;">'+tr("Use")+'</th>\
|
||||
<th style="width:40px;text-align:center;">'+tr("Manage")+'</th>\
|
||||
<th style="width:40px;text-align:center;">'+tr("Admin")+'</th></tr></thead>\
|
||||
<tr>\
|
||||
<td>'+tr("Owner")+'</td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check owner_u" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check owner_m" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check owner_a" /></td>\
|
||||
</tr>\
|
||||
<tr>\
|
||||
<td>'+tr("Group")+'</td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check group_u" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check group_m" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check group_a" /></td>\
|
||||
</tr>\
|
||||
<tr>\
|
||||
<td>'+tr("Other")+'</td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check other_u" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check other_m" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check other_a" /></td>\
|
||||
</tr>'
|
||||
function insert_permissions_table(tab_name, resource_type, resource_id, owner, group, vm_uid, vm_gid){
|
||||
var str ='<table class="'+resource_type.toLowerCase()+'_permissions_table twelve datatable extended_table">'
|
||||
|
||||
if (mustBeAdmin())
|
||||
{
|
||||
str += '<thead><tr><th colspan="4" style="width:130px">'+tr("Ownership")+'</th>\</tr></thead>\
|
||||
<tr>\
|
||||
<td>'+tr("Owner")+'</td>\
|
||||
<td colspan="2" id="value_td_owner">'+owner+'</td>\
|
||||
<td><div id="div_edit_chg_owner">\
|
||||
<a id="div_edit_chg_owner_link" class="edit_e" href="#"><i class="icon-edit right"/></a>\
|
||||
</div>\
|
||||
</td>\
|
||||
</tr>\
|
||||
<tr>\
|
||||
<td>'+tr("Group")+'</td>\
|
||||
<td colspan="2" id="value_td_group">'+group+'</td>\
|
||||
<td><div id="div_edit_chg_group">\
|
||||
<a id="div_edit_chg_group_link" class="edit_e" href="#"><i class="icon-edit right"/></a>\
|
||||
</div>\
|
||||
</td>\
|
||||
</tr>\
|
||||
</table>'
|
||||
if (Config.isTabActionEnabled(tab_name, resource_type+'.chmod')) {
|
||||
str += '<thead><tr>\
|
||||
<th style="width:130px">'+tr("Permissions")+':</th>\
|
||||
<th style="width:40px;text-align:center;">'+tr("Use")+'</th>\
|
||||
<th style="width:40px;text-align:center;">'+tr("Manage")+'</th>\
|
||||
<th style="width:40px;text-align:center;">'+tr("Admin")+'</th></tr></thead>\
|
||||
<tr>\
|
||||
<td>'+tr("Owner")+'</td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check owner_u" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check owner_m" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check owner_a" /></td>\
|
||||
</tr>\
|
||||
<tr>\
|
||||
<td>'+tr("Group")+'</td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check group_u" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check group_m" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check group_a" /></td>\
|
||||
</tr>\
|
||||
<tr>\
|
||||
<td>'+tr("Other")+'</td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check other_u" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check other_m" /></td>\
|
||||
<td style="text-align:center"><input type="checkbox" class="permission_check other_a" /></td>\
|
||||
</tr>'
|
||||
|
||||
// Handlers for chown
|
||||
$("#div_edit_chg_owner_link").die();
|
||||
$("#user_confirm_select").die();
|
||||
$(".permission_check").die();
|
||||
$(".permission_check").live('change',function(){
|
||||
var permissions_table = $("."+resource_type.toLowerCase()+"_permissions_table");
|
||||
var permissions_octect = { octet : buildOctet(permissions_table) };
|
||||
|
||||
// Listener for key,value pair edit action
|
||||
$("#div_edit_chg_owner_link").live("click", function() {
|
||||
var value_str = $("#value_td_owner").text();
|
||||
var select_str='<select id="user_confirm_select">';
|
||||
select_str += makeSelectOptions(dataTable_users,1,2,[],[],true);
|
||||
select_str+="</select>";
|
||||
$("#value_td_owner").html(select_str);
|
||||
$("select#user_confirm_select").val(vm_uid);
|
||||
});
|
||||
|
||||
$("#user_confirm_select").live("change", function() {
|
||||
var value_str = $('select#user_confirm_select').val();
|
||||
if(value_str!="")
|
||||
{
|
||||
// Let OpenNebula know
|
||||
var resource_struct = new Array();
|
||||
resource_struct[0] = resource_id;
|
||||
Sunstone.runAction(resource_type+".chown",resource_struct,value_str);
|
||||
Sunstone.runAction(resource_type+".showinfo",resource_id);
|
||||
}
|
||||
});
|
||||
|
||||
// Handlers for chgrp
|
||||
$("#div_edit_chg_group_link").die();
|
||||
$("#group_confirm_select").die();
|
||||
|
||||
// Listener for key,value pair edit action
|
||||
$("#div_edit_chg_group_link").live("click", function() {
|
||||
var value_str = $("#value_td_group").text();
|
||||
var select_str='<select id="group_confirm_select">';
|
||||
select_str += makeSelectOptions(dataTable_groups,1,2,[],[],true);
|
||||
select_str+="</select>";
|
||||
$("#value_td_group").html(select_str);
|
||||
$("select#group_confirm_select").val(vm_gid);
|
||||
});
|
||||
|
||||
$("#group_confirm_select").live("change", function() {
|
||||
var value_str = $('select#group_confirm_select').val();
|
||||
if(value_str!="")
|
||||
{
|
||||
// Let OpenNebula know
|
||||
var resource_struct = new Array();
|
||||
resource_struct[0] = resource_id;
|
||||
Sunstone.runAction(resource_type+".chgrp",resource_struct,value_str);
|
||||
Sunstone.runAction(resource_type+".showinfo",resource_id);
|
||||
}
|
||||
Sunstone.runAction(resource_type+".chmod",resource_id,permissions_octect);
|
||||
});
|
||||
}
|
||||
|
||||
$(".permission_check").die();
|
||||
$(".permission_check").live('change',function(){
|
||||
var permissions_table = $("."+resource_type.toLowerCase()+"_permissions_table");
|
||||
var permissions_octect = { octet : buildOctet(permissions_table) };
|
||||
if (Config.isTabActionEnabled(tab_name, resource_type+'.chgrp') || Config.isTabActionEnabled(tab_name, resource_type+'.chown')) {
|
||||
str += '<thead><tr><th colspan="4" style="width:130px">'+tr("Ownership")+'</th>\</tr></thead>'
|
||||
|
||||
Sunstone.runAction(resource_type+".chmod",resource_id,permissions_octect);
|
||||
});
|
||||
if (Config.isTabActionEnabled(tab_name, resource_type+'.chown')) {
|
||||
str += '<tr>\
|
||||
<td>'+tr("Owner")+'</td>\
|
||||
<td colspan="2" id="value_td_owner">'+owner+'</td>\
|
||||
<td><div id="div_edit_chg_owner">\
|
||||
<a id="div_edit_chg_owner_link" class="edit_e" href="#"><i class="icon-edit right"/></a>\
|
||||
</div>\
|
||||
</td>\
|
||||
</tr>'
|
||||
|
||||
// Handlers for chown
|
||||
$("#div_edit_chg_owner_link").die();
|
||||
$("#user_confirm_select").die();
|
||||
|
||||
// Listener for key,value pair edit action
|
||||
$("#div_edit_chg_owner_link").live("click", function() {
|
||||
var value_str = $("#value_td_owner").text();
|
||||
var select_str='<select id="user_confirm_select">';
|
||||
select_str += makeSelectOptions(dataTable_users,1,2,[],[],true);
|
||||
select_str+="</select>";
|
||||
$("#value_td_owner").html(select_str);
|
||||
$("select#user_confirm_select").val(vm_uid);
|
||||
});
|
||||
|
||||
$("#user_confirm_select").live("change", function() {
|
||||
var value_str = $('select#user_confirm_select').val();
|
||||
if(value_str!="")
|
||||
{
|
||||
// Let OpenNebula know
|
||||
var resource_struct = new Array();
|
||||
resource_struct[0] = resource_id;
|
||||
Sunstone.runAction(resource_type+".chown",resource_struct,value_str);
|
||||
Sunstone.runAction(resource_type+".showinfo",resource_id);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (Config.isTabActionEnabled(tab_name, resource_type+'.chgrp')) {
|
||||
str += '<tr>\
|
||||
<td>'+tr("Group")+'</td>\
|
||||
<td colspan="2" id="value_td_group">'+group+'</td>\
|
||||
<td><div id="div_edit_chg_group">\
|
||||
<a id="div_edit_chg_group_link" class="edit_e" href="#"><i class="icon-edit right"/></a>\
|
||||
</div>\
|
||||
</td>\
|
||||
</tr>'
|
||||
|
||||
// Handlers for chgrp
|
||||
$("#div_edit_chg_group_link").die();
|
||||
$("#group_confirm_select").die();
|
||||
|
||||
// Listener for key,value pair edit action
|
||||
$("#div_edit_chg_group_link").live("click", function() {
|
||||
var value_str = $("#value_td_group").text();
|
||||
var select_str='<select id="group_confirm_select">';
|
||||
select_str += makeSelectOptions(dataTable_groups,1,2,[],[],true);
|
||||
select_str+="</select>";
|
||||
$("#value_td_group").html(select_str);
|
||||
$("select#group_confirm_select").val(vm_gid);
|
||||
});
|
||||
|
||||
$("#group_confirm_select").live("change", function() {
|
||||
var value_str = $('select#group_confirm_select').val();
|
||||
if(value_str!="")
|
||||
{
|
||||
// Let OpenNebula know
|
||||
var resource_struct = new Array();
|
||||
resource_struct[0] = resource_id;
|
||||
Sunstone.runAction(resource_type+".chgrp",resource_struct,value_str);
|
||||
Sunstone.runAction(resource_type+".showinfo",resource_id);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
str += '</table>'
|
||||
|
||||
return str;
|
||||
|
||||
}
|
||||
|
||||
function insert_cluster_dropdown(resource_type, resource_id, cluster_value, cluster_id){
|
||||
|
@ -125,15 +125,15 @@ var Sunstone = {
|
||||
var tab=null;
|
||||
var active=false;
|
||||
console.log(selected_tab)
|
||||
for (tab_name in tabs){
|
||||
if (config['view']['tabs'][selected_tab]['tabs_panel'][tab_name] == false) {
|
||||
for (panel_tab_name in tabs){
|
||||
if (Config.isTabPanelEnabled(selected_tab, panel_tab_name) == false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
tab=tabs[tab_name];
|
||||
var dd = $('<dd><a href="#'+tab_name+'">'+tab.title+'</a></dd>').appendTo($('dl',dl_tabs));
|
||||
//$('ul', dl_tabs).append('<div id="'+tab_name+'"><li id="'+tab_name+'Tab">'+tab.content+'</li></div>');
|
||||
var li = $('<li id="'+tab_name+'Tab">'+tab.content+'</li>').appendTo($('ul', dl_tabs));
|
||||
tab=tabs[panel_tab_name];
|
||||
var dd = $('<dd><a href="#'+panel_tab_name+'">'+tab.title+'</a></dd>').appendTo($('dl',dl_tabs));
|
||||
//$('ul', dl_tabs).append('<div id="'+panel_tab_name+'"><li id="'+panel_tab_name+'Tab">'+tab.content+'</li></div>');
|
||||
var li = $('<li id="'+panel_tab_name+'Tab">'+tab.content+'</li>').appendTo($('ul', dl_tabs));
|
||||
|
||||
if (!active) {
|
||||
dd.addClass('active');
|
||||
@ -686,7 +686,7 @@ function insertButtonsInTab(tab_name){
|
||||
button = buttons[button_name];
|
||||
|
||||
//if we meet the condition we proceed. Otherwise we skip it.
|
||||
if (config['view']['tabs'][tab_name]['actions'][button_name] == false) {
|
||||
if (Config.isTabActionEnabled(tab_name, button_name) == false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@
|
||||
%script{:type=>"text/javascript", :src=>"js/sunstone-util.js"}
|
||||
%script{:type=>"text/javascript", :src=>"js/monitoring.js"}
|
||||
|
||||
- view = $views_config.view(session['user'], session['user_gname'], session['view_name'])
|
||||
- view = $views_config.view(session['user'], session['user_gname'], session['default_view'])
|
||||
|
||||
:javascript
|
||||
var view = JSON.parse('#{view.to_json}')
|
||||
|
Loading…
x
Reference in New Issue
Block a user