diff --git a/src/sunstone/public/app/tabs/acls-tab/datatable.js b/src/sunstone/public/app/tabs/acls-tab/datatable.js index cd05b40374..635da4db68 100644 --- a/src/sunstone/public/app/tabs/acls-tab/datatable.js +++ b/src/sunstone/public/app/tabs/acls-tab/datatable.js @@ -22,6 +22,7 @@ define(function(require) { var TabDataTable = require('utils/tab-datatable'); var SunstoneConfig = require('sunstone-config'); var Locale = require('utils/locale'); + var Status = require('utils/status'); var OpenNebulaUser = require('opennebula/user'); var OpenNebulaGroup = require('opennebula/group'); @@ -103,10 +104,13 @@ define(function(require) { this.totalACLs++; + var color_html = Status.state_lock_to_color("ACL",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + element.ID + '"/>'+color_html, element.ID, acl_array[0], acl_array[1], diff --git a/src/sunstone/public/app/tabs/clusters-tab/datatable.js b/src/sunstone/public/app/tabs/clusters-tab/datatable.js index e93945007e..a866c920de 100644 --- a/src/sunstone/public/app/tabs/clusters-tab/datatable.js +++ b/src/sunstone/public/app/tabs/clusters-tab/datatable.js @@ -23,6 +23,7 @@ define(function(require) { var SunstoneConfig = require('sunstone-config'); var Locale = require('utils/locale'); var LabelsUtils = require('utils/labels/utils'); + var Status = require('utils/status'); /* CONSTANTS @@ -98,10 +99,13 @@ define(function(require) { var element = element_json[XML_ROOT]; this.totalClusters++; + var color_html = Status.state_lock_to_color("CLUSTER",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + element.ID + '"/>'+color_html, element.ID, element.NAME, _lengthOf(element.HOSTS.ID), diff --git a/src/sunstone/public/app/tabs/datastores-tab/datatable.js b/src/sunstone/public/app/tabs/datastores-tab/datatable.js index 671bc045f6..3c8456c648 100644 --- a/src/sunstone/public/app/tabs/datastores-tab/datatable.js +++ b/src/sunstone/public/app/tabs/datastores-tab/datatable.js @@ -26,6 +26,7 @@ define(function(require) { var DatastoreCapacityBar = require('./utils/datastore-capacity-bar'); var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -152,10 +153,13 @@ define(function(require) { DS_MAD: element.DS_MAD } + var color_html = Status.state_lock_to_color("DATASTORE",state, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/groups-tab/datatable.js b/src/sunstone/public/app/tabs/groups-tab/datatable.js index b3572a723e..e59fccaa5c 100644 --- a/src/sunstone/public/app/tabs/groups-tab/datatable.js +++ b/src/sunstone/public/app/tabs/groups-tab/datatable.js @@ -26,6 +26,7 @@ define(function(require) { var QuotaWidgets = require('utils/quotas/quota-widgets'); var LabelsUtils = require('utils/labels/utils'); var DashboardUtils = require('utils/dashboard'); + var Status = require('utils/status'); /* CONSTANTS @@ -139,10 +140,13 @@ define(function(require) { default_group_quotas.VM_QUOTA.VM.CPU); } + var color_html = Status.state_lock_to_color("GROUP",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + element.ID + '"/>'+color_html, element.ID, element.NAME, users_str, diff --git a/src/sunstone/public/app/tabs/hosts-tab/datatable.js b/src/sunstone/public/app/tabs/hosts-tab/datatable.js index 34572b18e1..f411929902 100644 --- a/src/sunstone/public/app/tabs/hosts-tab/datatable.js +++ b/src/sunstone/public/app/tabs/hosts-tab/datatable.js @@ -31,6 +31,7 @@ define(function(require) { var SearchDropdown = require("hbs!./datatable/search"); var OpenNebulaAction = require("opennebula/action"); var Sunstone = require("sunstone"); + var Status = require('utils/status'); /* @@ -175,10 +176,13 @@ define(function(require) { VM_MAD: element.VM_MAD } + var color_html = Status.state_lock_to_color("HOST",state, element_json[XML_ROOT]["LOCK"]); + return [ - "", + ''+color_html, element.ID, element.NAME, element.CLUSTER.length ? element.CLUSTER : "-", diff --git a/src/sunstone/public/app/tabs/images-tab/actions.js b/src/sunstone/public/app/tabs/images-tab/actions.js index 40d2033cab..a687989faf 100644 --- a/src/sunstone/public/app/tabs/images-tab/actions.js +++ b/src/sunstone/public/app/tabs/images-tab/actions.js @@ -64,10 +64,10 @@ define(function(require) { "Image.snapshot_flatten": _commonActions.singleAction("snapshot_flatten"), "Image.snapshot_revert": _commonActions.singleAction("snapshot_revert"), "Image.snapshot_delete": _commonActions.singleAction("snapshot_delete"), - "Image.lockM": _commonActions.multipleAction('lock'), - "Image.lockU": _commonActions.multipleAction('lock'), - "Image.lockA": _commonActions.multipleAction('lock'), - "Image.unlock": _commonActions.multipleAction('unlock'), + "Image.lockM": _commonActions.multipleAction('lock', false), + "Image.lockU": _commonActions.multipleAction('lock', false), + "Image.lockA": _commonActions.multipleAction('lock', false), + "Image.unlock": _commonActions.multipleAction('unlock', false), "Image.upload_marketplace_dialog" : { type: "custom", call: function(params) { diff --git a/src/sunstone/public/app/tabs/images-tab/datatable-common.js b/src/sunstone/public/app/tabs/images-tab/datatable-common.js index 4b23d61c66..c9b87d6f82 100644 --- a/src/sunstone/public/app/tabs/images-tab/datatable-common.js +++ b/src/sunstone/public/app/tabs/images-tab/datatable-common.js @@ -26,6 +26,7 @@ define(function(require) { var OpenNebulaImage = require('opennebula/image'); var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -111,11 +112,13 @@ define(function(require) { REGTIME_AFTER: element.REGTIME, REGTIME_BEFORE: element.REGTIME } + var color_html = Status.state_lock_to_color("IMAGES",state, element_json[XML_ROOT]["LOCK"]); return [ - '', + element.ID + '"/>'+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/marketplaceapps-tab/actions.js b/src/sunstone/public/app/tabs/marketplaceapps-tab/actions.js index d65572d5e0..9582e688c8 100644 --- a/src/sunstone/public/app/tabs/marketplaceapps-tab/actions.js +++ b/src/sunstone/public/app/tabs/marketplaceapps-tab/actions.js @@ -37,10 +37,10 @@ define(function(require) { var _actions = { "MarketPlaceApp.create" : _commonActions.create(CREATE_DIALOG_ID), "MarketPlaceApp.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID), - "MarketPlaceApp.lockM": _commonActions.multipleAction('lock'), - "MarketPlaceApp.lockU": _commonActions.multipleAction('lock'), - "MarketPlaceApp.lockA": _commonActions.multipleAction('lock'), - "MarketPlaceApp.unlock": _commonActions.multipleAction('unlock'), + "MarketPlaceApp.lockM": _commonActions.multipleAction('lock', false), + "MarketPlaceApp.lockU": _commonActions.multipleAction('lock', false), + "MarketPlaceApp.lockA": _commonActions.multipleAction('lock', false), + "MarketPlaceApp.unlock": _commonActions.multipleAction('unlock', false), "MarketPlaceApp.download_opennebula_dialog" : { type: "custom", call: function() { diff --git a/src/sunstone/public/app/tabs/marketplaceapps-tab/datatable.js b/src/sunstone/public/app/tabs/marketplaceapps-tab/datatable.js index 3a713778af..b5468c88fc 100644 --- a/src/sunstone/public/app/tabs/marketplaceapps-tab/datatable.js +++ b/src/sunstone/public/app/tabs/marketplaceapps-tab/datatable.js @@ -28,6 +28,7 @@ define(function(require) { var LabelsUtils = require('utils/labels/utils'); var Humanize = require('utils/humanize'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -146,10 +147,13 @@ define(function(require) { REGTIME_BEFORE: element.REGTIME } + var color_html = Status.state_lock_to_color("MARKETPLACEAPP",state, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/marketplaces-tab/datatable.js b/src/sunstone/public/app/tabs/marketplaces-tab/datatable.js index b13df90099..8d87774e78 100644 --- a/src/sunstone/public/app/tabs/marketplaces-tab/datatable.js +++ b/src/sunstone/public/app/tabs/marketplaces-tab/datatable.js @@ -27,6 +27,7 @@ define(function(require) { var DatastoreCapacityBar = require('../datastores-tab/utils/datastore-capacity-bar'); var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -136,10 +137,13 @@ define(function(require) { ZONE: zone } + var color_html = Status.state_lock_to_color("MARKETPLACE",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/oneflow-services-tab/datatable.js b/src/sunstone/public/app/tabs/oneflow-services-tab/datatable.js index c75961cd02..24ec3b8885 100644 --- a/src/sunstone/public/app/tabs/oneflow-services-tab/datatable.js +++ b/src/sunstone/public/app/tabs/oneflow-services-tab/datatable.js @@ -25,6 +25,7 @@ define(function(require) { var OpenNebulaService = require('opennebula/service'); var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -109,10 +110,13 @@ define(function(require) { STATE: state } + var color_html = Status.state_lock_to_color("SERVICE",state, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.UNAME, element.GNAME, diff --git a/src/sunstone/public/app/tabs/oneflow-templates-tab/datatable.js b/src/sunstone/public/app/tabs/oneflow-templates-tab/datatable.js index eac58de43a..411c7131fe 100644 --- a/src/sunstone/public/app/tabs/oneflow-templates-tab/datatable.js +++ b/src/sunstone/public/app/tabs/oneflow-templates-tab/datatable.js @@ -24,6 +24,7 @@ define(function(require) { var Locale = require('utils/locale'); var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -104,10 +105,13 @@ define(function(require) { GNAME: element.GNAME } + var color_html = Status.state_lock_to_color("SERVICE_TEMPLATE",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/secgroups-tab/datatable.js b/src/sunstone/public/app/tabs/secgroups-tab/datatable.js index 6483759400..d962f62bb7 100644 --- a/src/sunstone/public/app/tabs/secgroups-tab/datatable.js +++ b/src/sunstone/public/app/tabs/secgroups-tab/datatable.js @@ -24,6 +24,7 @@ define(function(require) { var Locale = require('utils/locale'); var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -109,10 +110,13 @@ define(function(require) { GNAME: element.GNAME } + var color_html = Status.state_lock_to_color("SECGROUP",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/templates-tab/datatable-common.js b/src/sunstone/public/app/tabs/templates-tab/datatable-common.js index 2b0aea9fb2..54889d911c 100644 --- a/src/sunstone/public/app/tabs/templates-tab/datatable-common.js +++ b/src/sunstone/public/app/tabs/templates-tab/datatable-common.js @@ -28,6 +28,7 @@ define(function(require) { var Notifier = require('utils/notifier'); var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -112,10 +113,13 @@ define(function(require) { REGTIME_BEFORE: element.REGTIME } + var color_html = Status.state_lock_to_color("TEMPLATE",false, element_json[this.xmlRoot.toUpperCase()]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/users-tab/datatable.js b/src/sunstone/public/app/tabs/users-tab/datatable.js index 05b079e04b..81d2b00ec8 100644 --- a/src/sunstone/public/app/tabs/users-tab/datatable.js +++ b/src/sunstone/public/app/tabs/users-tab/datatable.js @@ -28,6 +28,7 @@ define(function(require) { var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); var DashboardUtils = require('utils/dashboard'); + var Status = require('utils/status'); /* CONSTANTS @@ -150,10 +151,13 @@ define(function(require) { AUTH_DRIVER: element.AUTH_DRIVER } + var color_html = Status.state_lock_to_color("USER",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html,, element.ID, element.NAME, element.GNAME, diff --git a/src/sunstone/public/app/tabs/vdcs-tab/datatable.js b/src/sunstone/public/app/tabs/vdcs-tab/datatable.js index 93c7185edb..35a17c956d 100644 --- a/src/sunstone/public/app/tabs/vdcs-tab/datatable.js +++ b/src/sunstone/public/app/tabs/vdcs-tab/datatable.js @@ -23,6 +23,7 @@ define(function(require) { var Config = require('sunstone-config'); var Locale = require('utils/locale'); var LabelsUtils = require('utils/labels/utils'); + var Status = require('utils/status'); /* CONSTANTS @@ -113,10 +114,13 @@ define(function(require) { groupColumn = 1; } + var color_html = Status.state_lock_to_color("VDC",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + element.ID + '"/>'+color_html, element.ID, element.NAME, groupColumn, diff --git a/src/sunstone/public/app/tabs/vmgroup-tab/actions.js b/src/sunstone/public/app/tabs/vmgroup-tab/actions.js index e004e6e366..614d889edd 100644 --- a/src/sunstone/public/app/tabs/vmgroup-tab/actions.js +++ b/src/sunstone/public/app/tabs/vmgroup-tab/actions.js @@ -47,10 +47,10 @@ define(function(require) { "VMGroup.chown": _commonActions.multipleAction('chown'), "VMGroup.chgrp": _commonActions.multipleAction('chgrp'), "VMGroup.chmod": _commonActions.singleAction('chmod'), - "VMGroup.lockM": _commonActions.multipleAction('lock'), - "VMGroup.lockU": _commonActions.multipleAction('lock'), - "VMGroup.lockA": _commonActions.multipleAction('lock'), - "VMGroup.unlock": _commonActions.multipleAction('unlock') + "VMGroup.lockM": _commonActions.multipleAction('lock', false), + "VMGroup.lockU": _commonActions.multipleAction('lock', false), + "VMGroup.lockA": _commonActions.multipleAction('lock', false), + "VMGroup.unlock": _commonActions.multipleAction('unlock', false) }; return _actions; diff --git a/src/sunstone/public/app/tabs/vmgroup-tab/datatable.js b/src/sunstone/public/app/tabs/vmgroup-tab/datatable.js index 60ad96b82d..0fc1a6ef41 100644 --- a/src/sunstone/public/app/tabs/vmgroup-tab/datatable.js +++ b/src/sunstone/public/app/tabs/vmgroup-tab/datatable.js @@ -25,6 +25,7 @@ define(function(require) { var TemplateUtils = require('utils/template-utils'); var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -122,10 +123,13 @@ define(function(require) { GNAME: element.GNAME } + var color_html = Status.state_lock_to_color("VMGROUP",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/vms-tab/actions.js b/src/sunstone/public/app/tabs/vms-tab/actions.js index b0763043a3..049554064f 100644 --- a/src/sunstone/public/app/tabs/vms-tab/actions.js +++ b/src/sunstone/public/app/tabs/vms-tab/actions.js @@ -75,10 +75,10 @@ define(function(require) { "VM.recover": _commonActions.multipleAction('recover'), "VM.resched": _commonActions.multipleAction('resched'), "VM.unresched": _commonActions.multipleAction('unresched'), - "VM.lockM": _commonActions.multipleAction('lock'), - "VM.lockU": _commonActions.multipleAction('lock'), - "VM.lockA": _commonActions.multipleAction('lock'), - "VM.unlock": _commonActions.multipleAction('unlock'), + "VM.lockM": _commonActions.multipleAction('lock', false), + "VM.lockU": _commonActions.multipleAction('lock', false), + "VM.lockA": _commonActions.multipleAction('lock', false), + "VM.unlock": _commonActions.multipleAction('unlock', false), "VM.chmod": _commonActions.singleAction('chmod'), "VM.rename": _commonActions.singleAction('rename'), diff --git a/src/sunstone/public/app/tabs/vms-tab/utils/datatable-common.js b/src/sunstone/public/app/tabs/vms-tab/utils/datatable-common.js index 9a8c3905e6..23bc2e684d 100644 --- a/src/sunstone/public/app/tabs/vms-tab/utils/datatable-common.js +++ b/src/sunstone/public/app/tabs/vms-tab/utils/datatable-common.js @@ -21,6 +21,7 @@ define(function(require) { var Humanize = require('utils/humanize'); var TemplateUtils = require('utils/template-utils'); var LabelsUtils = require('utils/labels/utils'); + var Status = require('utils/status'); var RESOURCE = "VM"; var XML_ROOT = "VM"; @@ -108,14 +109,21 @@ define(function(require) { STIME_AFTER: element.STIME, STIME_BEFORE: element.STIME } + if (OpenNebulaVM.isFailureState(element.LCM_STATE)){ + value_state = "FAILED" + } else { + value_state = OpenNebulaVM.stateStr(element.STATE) + } + var color_html = Status.state_lock_to_color("VM", value_state, element_json[RESOURCE.toUpperCase()]["LOCK"]); return [ '', + 'state="'+element.STATE+'" lcm_state="'+element.LCM_STATE+'"/>'+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/vnets-tab/actions.js b/src/sunstone/public/app/tabs/vnets-tab/actions.js index 795662d1f0..7bffb6badb 100644 --- a/src/sunstone/public/app/tabs/vnets-tab/actions.js +++ b/src/sunstone/public/app/tabs/vnets-tab/actions.js @@ -55,10 +55,10 @@ define(function(require) { "Network.append_template" : _commonActions.appendTemplate(), "Network.update_dialog" : _commonActions.checkAndShowUpdate(), "Network.show_to_update" : _commonActions.showUpdate(CREATE_DIALOG_ID), - "Network.lockM": _commonActions.multipleAction('lock'), - "Network.lockU": _commonActions.multipleAction('lock'), - "Network.lockA": _commonActions.multipleAction('lock'), - "Network.unlock": _commonActions.multipleAction('unlock'), + "Network.lockM": _commonActions.multipleAction('lock', false), + "Network.lockU": _commonActions.multipleAction('lock', false), + "Network.lockA": _commonActions.multipleAction('lock', false), + "Network.unlock": _commonActions.multipleAction('unlock', false), "Network.import_dialog" : { type: "custom", diff --git a/src/sunstone/public/app/tabs/vnets-tab/datatable.js b/src/sunstone/public/app/tabs/vnets-tab/datatable.js index e3964677fc..ee9fc1859a 100644 --- a/src/sunstone/public/app/tabs/vnets-tab/datatable.js +++ b/src/sunstone/public/app/tabs/vnets-tab/datatable.js @@ -28,6 +28,7 @@ define(function(require) { var SearchDropdown = require('hbs!./datatable/search'); var OpenNebulaNetwork = require('opennebula/network'); var DashboardUtils = require('utils/dashboard'); + var Status = require('utils/status'); /* CONSTANTS @@ -143,10 +144,13 @@ define(function(require) { PARENT_NETWORK: parent_net } + var color_html = Status.state_lock_to_color("VNET",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + element.ID + '"/>'+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/vrouters-tab/actions.js b/src/sunstone/public/app/tabs/vrouters-tab/actions.js index 838371b9c3..a95591020e 100644 --- a/src/sunstone/public/app/tabs/vrouters-tab/actions.js +++ b/src/sunstone/public/app/tabs/vrouters-tab/actions.js @@ -34,10 +34,10 @@ define(function(require) { var _actions = { "VirtualRouter.create" : _commonActions.create(CREATE_DIALOG_ID), "VirtualRouter.create_dialog" : _commonActions.showCreate(CREATE_DIALOG_ID), - "VirtualRouter.lockM": _commonActions.multipleAction('lock'), - "VirtualRouter.lockU": _commonActions.multipleAction('lock'), - "VirtualRouter.lockA": _commonActions.multipleAction('lock'), - "VirtualRouter.unlock": _commonActions.multipleAction('unlock'), + "VirtualRouter.lockM": _commonActions.multipleAction('lock', false), + "VirtualRouter.lockU": _commonActions.multipleAction('lock', false), + "VirtualRouter.lockA": _commonActions.multipleAction('lock', false), + "VirtualRouter.unlock": _commonActions.multipleAction('unlock', false), "VirtualRouter.instantiate_vms" : { type: "custom", call: function() { diff --git a/src/sunstone/public/app/tabs/vrouters-tab/datatable.js b/src/sunstone/public/app/tabs/vrouters-tab/datatable.js index 4f5bafa0b4..71acd1e091 100644 --- a/src/sunstone/public/app/tabs/vrouters-tab/datatable.js +++ b/src/sunstone/public/app/tabs/vrouters-tab/datatable.js @@ -24,6 +24,7 @@ define(function(require) { var Locale = require('utils/locale'); var LabelsUtils = require('utils/labels/utils'); var SearchDropdown = require('hbs!./datatable/search'); + var Status = require('utils/status'); /* CONSTANTS @@ -109,10 +110,13 @@ define(function(require) { GNAME: element.GNAME } + var color_html = Status.state_lock_to_color("VROUTER",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.NAME, element.UNAME, diff --git a/src/sunstone/public/app/tabs/zones-tab/datatable.js b/src/sunstone/public/app/tabs/zones-tab/datatable.js index 028a364171..8aa5d2fa64 100644 --- a/src/sunstone/public/app/tabs/zones-tab/datatable.js +++ b/src/sunstone/public/app/tabs/zones-tab/datatable.js @@ -23,6 +23,7 @@ define(function(require) { var SunstoneConfig = require('sunstone-config'); var Locale = require('utils/locale'); var LabelsUtils = require('utils/labels/utils'); + var Status = require('utils/status'); /* CONSTANTS @@ -96,10 +97,13 @@ define(function(require) { var element = element_json.ZONE; this.totalZones++; + var color_html = Status.state_lock_to_color("ZONE",false, element_json[XML_ROOT]["LOCK"]); + return [ - '', + ''+color_html, element.ID, element.NAME, element.TEMPLATE.ENDPOINT, diff --git a/src/sunstone/public/app/utils/common-actions.js b/src/sunstone/public/app/utils/common-actions.js index a5c35b3fee..328e4a72a2 100644 --- a/src/sunstone/public/app/utils/common-actions.js +++ b/src/sunstone/public/app/utils/common-actions.js @@ -116,7 +116,11 @@ define(function(require) { } } - function _multipleAction(actionStr) { + function _multipleAction(actionStr, notify) { + notify_bool = true; + if(notify != undefined){ + notify_bool = notify; + } var that = this; return { type: "multiple", @@ -128,7 +132,7 @@ define(function(require) { return Sunstone.getDataTable(that.tabId).elements(opts); }, error: Notifier.onError, - notify: true + notify: notify_bool } } diff --git a/src/sunstone/public/app/utils/humanize.js b/src/sunstone/public/app/utils/humanize.js index cd045ccc34..b63fe548a1 100644 --- a/src/sunstone/public/app/utils/humanize.js +++ b/src/sunstone/public/app/utils/humanize.js @@ -17,6 +17,50 @@ define(function(require) { var Locale = require('utils/locale'); var TemplateUtils = require('utils/template-utils'); + var resource_states = { + IMAGES:{ + CLONE:"#4DBBD3", + INIT:"#4DBBD3", + READY:"#3adb76", + USED:"#3adb76", + ERROR:"#ec5840", + DELETE:"#ec5840", + LOCKED:"lightsalmon", + DISABLED:"lightsalmon" + }, + HOST:{ + INIT:"#4DBBD3", + ON:"#3adb76", + OFF:"#ec5840", + DISABLED:"lightsalmon" + }, + DATASTORE:{ + INIT:"#4DBBD3", + READY:"#3adb76", + DISABLED:"lightsalmon" + }, + MARKETPLACEAPP:{ + INIT:"#4DBBD3", + READY:"#3adb76", + LOCKED:"lightsalmon", + ERROR:"#ec5840", + DISABLED:"lightsalmon" + }, + VM:{ + INIT:"#4DBBD3", + PENDING:"#4DBBD3", + HOLD:"lightsalmon", + ACTIVE:"#3adb76", + STOPPED:"lightsalmon", + SUSPENDED:"lightsalmon", + DONE:"#ec5840", + FAILED:"#ec5840", + POWEROFF:"lightsalmon", + UNDEPLOYED:"lightsalmon", + CLONING:"#4DBBD3", + CLONING_FAILURE:"#ec5840" + } + }; /* CONSTRUCTOR @@ -35,7 +79,8 @@ define(function(require) { 'prettyPrintJSON': _prettyPrintJSON, 'prettyTimeAgo': _format_date, 'prettyTimeDatatable': _prettyTimeDatatable, - 'lock_to_str': _lock_to_str + 'lock_to_str': _lock_to_str, + 'state_lock_to_color': _state_lock_to_color } /* @@ -329,4 +374,22 @@ define(function(require) { } return level_str; } + + function _state_lock_to_color(resource,state,lock){ + var color = "transparent"; + var show_lock = ""; + + if (state && resource in resource_states){ + var available_states = resource_states[resource]; + if (state in available_states){ + color = available_states[state]; + } + } + + if (lock){ + show_lock = "border-left: 3px solid #373537;"; + } + + return '' + } }) diff --git a/src/sunstone/public/app/utils/status.js b/src/sunstone/public/app/utils/status.js new file mode 100644 index 0000000000..d6534b8496 --- /dev/null +++ b/src/sunstone/public/app/utils/status.js @@ -0,0 +1,105 @@ +/* -------------------------------------------------------------------------- */ +/* Copyright 2002-2018, OpenNebula Project, OpenNebula Systems */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); you may */ +/* not use this file except in compliance with the License. You may obtain */ +/* a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ +/* See the License for the specific language governing permissions and */ +/* limitations under the License. */ +/* -------------------------------------------------------------------------- */ + +define(function(require) { + var resource_states = { + IMAGES:{ + CLONE:"#4DBBD3", + INIT:"#4DBBD3", + READY:"#3adb76", + USED:"#3adb76", + ERROR:"#ec5840", + DELETE:"#ec5840", + LOCKED:"lightsalmon", + DISABLED:"lightsalmon" + }, + HOST:{ + INIT:"#4DBBD3", + ON:"#3adb76", + OFF:"#ec5840", + DISABLED:"lightsalmon" + }, + DATASTORE:{ + INIT:"#4DBBD3", + READY:"#3adb76", + DISABLED:"lightsalmon" + }, + MARKETPLACEAPP:{ + INIT:"#4DBBD3", + READY:"#3adb76", + LOCKED:"lightsalmon", + ERROR:"#ec5840", + DISABLED:"lightsalmon" + }, + VM:{ + INIT:"#4DBBD3", + PENDING:"#4DBBD3", + HOLD:"lightsalmon", + ACTIVE:"#3adb76", + STOPPED:"lightsalmon", + SUSPENDED:"lightsalmon", + DONE:"#ec5840", + FAILED:"#ec5840", + POWEROFF:"lightsalmon", + UNDEPLOYED:"lightsalmon", + CLONING:"#4DBBD3", + CLONING_FAILURE:"#ec5840" + }, + DOCUMENT:{ + PENDING:"#4DBBD3", + DEPLOYING:"#4DBBD3", + RUNNING:"#3adb76", + UNDEPLOYING:"#4DBBD3", + WARNING:"lightsalmon", + DONE:"#ec5840", + FAILED_UNDEPLOYING:"#ec5840", + FAILED_DEPLOYING:"#ec5840", + SCALING:"#4DBBD3", + FAILED_SCALING:"#ec5840", + COOLDOWN:"#4DBBD3" + } + }; + + /* + CONSTRUCTOR + */ + + return { + 'state_lock_to_color': _state_lock_to_color + } + + /* + FUNCTION DEFINITIONS + */ + + function _state_lock_to_color(resource,state,lock){ + var color = "transparent"; + var show_lock = ""; + + if (state && resource in resource_states){ + var available_states = resource_states[resource]; + if (state in available_states){ + color = available_states[state]; + } + } + + if (lock){ + show_lock = "border-left: 3px solid #373537;"; + } + + return '' + } + }) \ No newline at end of file diff --git a/src/sunstone/public/app/utils/tab-datatable/table.hbs b/src/sunstone/public/app/utils/tab-datatable/table.hbs index bf2de03079..ba76dcd75b 100644 --- a/src/sunstone/public/app/utils/tab-datatable/table.hbs +++ b/src/sunstone/public/app/utils/tab-datatable/table.hbs @@ -38,7 +38,8 @@ - + + {{#each columns}} {{this}}