diff --git a/src/sunstone/public/app/tabs/clusters-tab/panels/info.js b/src/sunstone/public/app/tabs/clusters-tab/panels/info.js index 533e74a04f..64fc6fc012 100644 --- a/src/sunstone/public/app/tabs/clusters-tab/panels/info.js +++ b/src/sunstone/public/app/tabs/clusters-tab/panels/info.js @@ -19,13 +19,18 @@ define(function(require) { DEPENDENCIES */ - var TemplateHTML = require("hbs!./info/html"); var Locale = require("utils/locale"); var RenameTr = require("utils/panel/rename-tr"); - var TemplateTable = require("utils/panel/template-table"); var Sunstone = require("sunstone"); + var TemplateTable = require("utils/panel/template-table"); var TemplateUtils = require("utils/template-utils"); + /* + TEMPLATES + */ + + var TemplateHTML = require("hbs!./info/html"); + /* CONSTANTS */ @@ -34,34 +39,17 @@ define(function(require) { var PANEL_ID = require("./info/panelId"); var RESOURCE = "Cluster"; var XML_ROOT = "CLUSTER"; - - var OVERCOMMIT_DIALOG_ID = require("utils/dialogs/overcommit/dialogId"); + var REGEX_HIDDEN_ATTRS = /^(HOST|RESERVED_CPU|RESERVED_MEM)$/ /* CONSTRUCTOR */ function Panel(info) { - var that = this; - this.title = Locale.tr("Info"); this.icon = "fa-info-circle"; - this.element = info[XML_ROOT]; - this.percent = false; - - // Hide information in the template table. Unshow values are stored - // in the unshownTemplate object to be used when the element info is updated. - that.unshownTemplate = {}; - that.strippedTemplate = {}; - var unshownKeys = ["HOST", "RESERVED_CPU", "RESERVED_MEM"]; - $.each(that.element.TEMPLATE, function(key, value) { - if ($.inArray(key, unshownKeys) > -1) { - that.unshownTemplate[key] = value; - } else { - that.strippedTemplate[key] = value; - } - }); + this.percent = false; return this; } @@ -77,30 +65,23 @@ define(function(require) { */ function _html() { - var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME); - var templateTableHTML = TemplateTable.html( - this.strippedTemplate, - RESOURCE, - Locale.tr("Attributes")); - var reservedMem; - var reservedMemInput; - if (this.element.TEMPLATE.RESERVED_MEM != "0%" && this.element.TEMPLATE.RESERVED_MEM != ""){ - reservedMem = parseInt(this.element.TEMPLATE.RESERVED_MEM); - reservedMemInput = this.element.TEMPLATE.RESERVED_MEM; - } else { - reservedMem = 0; - reservedMemInput = "0%"; - } + var TEMPLATE = this.element.TEMPLATE - var reservedCPU; - var reservedCPUInput; - if (this.element.TEMPLATE.RESERVED_CPU != "0%" && this.element.TEMPLATE.RESERVED_CPU != ""){ - reservedCPU = parseInt(this.element.TEMPLATE.RESERVED_CPU); - reservedCPUInput = this.element.TEMPLATE.RESERVED_CPU; - } else { - reservedCPU = 0; - reservedCPUInput = "0%"; - } + var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME); + + var attributes = TemplateTable.getTemplatesAttributes(TEMPLATE, { + regexHidden: REGEX_HIDDEN_ATTRS + }) + + var templateTableHTML = TemplateTable.html(attributes.general, RESOURCE, Locale.tr('Attributes')); + + var hasReservedMem = TEMPLATE.RESERVED_MEM !== '0%' && TEMPLATE.RESERVED_MEM !== ''; + var reservedMem = hasReservedMem ? parseInt(TEMPLATE.RESERVED_MEM) : 0; + var reservedMemInput = hasReservedMem ? TEMPLATE.RESERVED_MEM : '0%'; + + var hasReservedCpu = TEMPLATE.RESERVED_CPU !== '0%' && TEMPLATE.RESERVED_CPU !== ''; + var reservedCPU = hasReservedCpu ? parseInt(TEMPLATE.RESERVED_CPU) : 0; + var reservedCPUInput = hasReservedCpu ? TEMPLATE.RESERVED_CPU : '0%'; return TemplateHTML({ "element": this.element, @@ -115,22 +96,20 @@ define(function(require) { function changeBarColorCPU(){ var cpuValue = parseInt($("#change_bar_cpu").val()); - if (cpuValue > 0){ - $("#textInput_reserved_cpu").css("background-color", "rgba(111, 220, 111, 0.5)"); - } - if (cpuValue < 0){ + if (cpuValue > 0) { + $("#textInput_reserved_cpu").css("background-color", "rgba(111, 220, 111, 0.5)"); + } else if (cpuValue < 0) { $("#textInput_reserved_cpu").css("background-color", "rgba(255, 80, 80,0.5)"); } } function changeBarColorMEM(){ var memValue = parseInt($("#change_bar_mem").val()); - if (memValue > 0){ - $("#textInput_reserved_mem").css("background-color", "rgba(111, 220, 111, 0.5)"); - } - if (memValue < 0){ + if (memValue > 0) { + $("#textInput_reserved_mem").css("background-color", "rgba(111, 220, 111, 0.5)"); + } else if (memValue < 0) { $("#textInput_reserved_mem").css("background-color", "rgba(255, 80, 80,0.5)"); } } @@ -160,7 +139,11 @@ define(function(require) { RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context); - TemplateTable.setup(this.strippedTemplate, RESOURCE, this.element.ID, context, this.unshownTemplate); + var attributes = TemplateTable.getTemplatesAttributes(this.element.TEMPLATE, { + regexHidden: REGEX_HIDDEN_ATTRS + }) + + TemplateTable.setup(attributes.general, RESOURCE, this.element.ID, context, attributes.hidden); changeBarColorCPU(); changeBarColorMEM(); @@ -170,7 +153,9 @@ define(function(require) { document.getElementById("change_bar_mem").addEventListener("input", changeBarMEM); document.getElementById("textInput_reserved_mem").addEventListener("input", changeInputMEM); - $(document).off("click", ".update_reserved").on("click", ".update_reserved", function(){ + $(document) + .off("click", ".update_reserved") + .on("click", ".update_reserved", function() { var reservedCPU = document.getElementById("textInput_reserved_cpu").value; var reservedMem = document.getElementById("textInput_reserved_mem").value; diff --git a/src/sunstone/public/app/tabs/datastores-tab/panels/info.js b/src/sunstone/public/app/tabs/datastores-tab/panels/info.js index 2d6d7952d6..4e4bd16d47 100644 --- a/src/sunstone/public/app/tabs/datastores-tab/panels/info.js +++ b/src/sunstone/public/app/tabs/datastores-tab/panels/info.js @@ -19,15 +19,14 @@ define(function(require) { DEPENDENCIES */ - var Locale = require('utils/locale'); + var DatastoreCapacityBar = require('../utils/datastore-capacity-bar'); var Humanize = require('utils/humanize'); + var Locale = require('utils/locale'); + var OpenNebulaDatastore = require('opennebula/datastore'); + var PermissionsTable = require('utils/panel/permissions-table'); var RenameTr = require('utils/panel/rename-tr'); var TemplateTable = require('utils/panel/template-table'); - var TemplateTableVcenter = require('utils/panel/template-table'); - var PermissionsTable = require('utils/panel/permissions-table'); - var OpenNebulaDatastore = require('opennebula/datastore'); - var DatastoreCapacityBar = require('../utils/datastore-capacity-bar'); - + /* TEMPLATES */ @@ -41,6 +40,7 @@ define(function(require) { var TAB_ID = require('../tabId'); var PANEL_ID = require('./info/panelId'); var RESOURCE = "Datastore" + var REGEX_VCENTER_ATTRS = /^VCENTER_(?!(HOST|USER|PASSWORD|DS_IMAGE_DIR|DS_VOLATILE_DIR)$)/ /* CONSTRUCTOR @@ -68,23 +68,12 @@ define(function(require) { function _html() { var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME); - var strippedTemplate = {}; - var strippedTemplateVcenter = {}; - $.each(this.element.TEMPLATE, function(key, value) { - if (!key.match(/^VCENTER_HOST$/) && - !key.match(/^VCENTER_USER$/) && - !key.match(/^VCENTER_PASSWORD$/) && - !key.match(/^VCENTER_DS_IMAGE_DIR$/) && - !key.match(/^VCENTER_DS_VOLATILE_DIR$/) && - key.match(/^VCENTER_*/)){ - strippedTemplateVcenter[key] = value; - } - else { - strippedTemplate[key] = value; - } - }); - var templateTableHTML = TemplateTable.html(strippedTemplate, RESOURCE, Locale.tr("Attributes"), true); - var templateTableVcenterHTML = TemplateTableVcenter.html(strippedTemplateVcenter, RESOURCE, Locale.tr("vCenter information"), false); + var attributes = TemplateTable.getTemplatesAttributes(this.element.TEMPLATE, { + regexVCenter: REGEX_VCENTER_ATTRS + }) + + var templateTableHTML = TemplateTable.html(attributes.general, RESOURCE, Locale.tr("Attributes")); + var templateTableVcenterHTML = TemplateTable.html(attributes.vcenter, RESOURCE, Locale.tr("vCenter information")); var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element); var capacityBar = DatastoreCapacityBar.html(this.element); var stateStr = OpenNebulaDatastore.stateStr(this.element.STATE); @@ -110,29 +99,21 @@ define(function(require) { function _setup(context) { RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context); - var strippedTemplate = {}; - var strippedTemplateVcenter = {}; - $.each(this.element.TEMPLATE, function(key, value) { - if (!key.match(/^VCENTER_HOST$/) && - !key.match(/^VCENTER_USER$/) && - !key.match(/^VCENTER_PASSWORD$/) && - !key.match(/^VCENTER_DS_IMAGE_DIR$/) && - !key.match(/^VCENTER_DS_VOLATILE_DIR$/) && - key.match(/^VCENTER_*/)){ - strippedTemplateVcenter[key] = value; - } - else { - strippedTemplate[key] = value; - } - }); - if($.isEmptyObject(strippedTemplateVcenter)){ + PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context); + + var attributes = TemplateTable.getTemplatesAttributes(this.element.TEMPLATE, { + regexVCenter: REGEX_VCENTER_ATTRS + }) + + if ($.isEmptyObject(attributes.vcenter)) { $('.vcenter', context).hide(); } - TemplateTable.setup(strippedTemplate, RESOURCE, this.element.ID, context, undefined, strippedTemplateVcenter); - TemplateTableVcenter.setup(strippedTemplateVcenter, RESOURCE, this.element.ID, context, undefined, strippedTemplate); + // General Attributes section + TemplateTable.setup(attributes.general, RESOURCE, this.element.ID, context, undefined, attributes.vcenter); + // vCenter Attributes section + TemplateTable.setup(attributes.vcenter, RESOURCE, this.element.ID, context, undefined, attributes.general); - PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context); return false; } }); diff --git a/src/sunstone/public/app/tabs/groups-tab/panels/info.js b/src/sunstone/public/app/tabs/groups-tab/panels/info.js index a8f9124395..62e238aa48 100644 --- a/src/sunstone/public/app/tabs/groups-tab/panels/info.js +++ b/src/sunstone/public/app/tabs/groups-tab/panels/info.js @@ -19,16 +19,16 @@ define(function(require) { DEPENDENCIES */ - var TemplateInfo = require("hbs!./info/html"); var Locale = require("utils/locale"); - var Views = require("../utils/views"); + var TemplateTable = require("utils/panel/template-table"); var Tips = require("utils/tips"); + var Views = require("../utils/views"); /* TEMPLATES */ - var TemplateTable = require("utils/panel/template-table"); + var TemplateInfo = require("hbs!./info/html"); /* CONSTANTS @@ -38,6 +38,7 @@ define(function(require) { var PANEL_ID = require("./info/panelId"); var RESOURCE = "Group"; var XML_ROOT = "GROUP"; + var REGEX_HIDDEN_ATTRS = /^(SUNSTONE|OPENNEBULA|TABLE_DEFAULT_PAGE_LENGTH)$/ /* CONSTRUCTOR @@ -76,14 +77,12 @@ define(function(require) { sunstone_template.DEFAULT_VIEW); } - // TODO: simplify interface? - var strippedTemplate = $.extend({}, this.element.TEMPLATE); - delete strippedTemplate["SUNSTONE"]; - delete strippedTemplate["OPENNEBULA"]; + + var attributes = TemplateTable.getTemplatesAttributes(this.element.TEMPLATE, { + regexHidden: REGEX_HIDDEN_ATTRS + }) - var templateTableHTML = TemplateTable.html(strippedTemplate, RESOURCE, - Locale.tr("Attributes")); - //==== + var templateTableHTML = TemplateTable.html(attributes.general, RESOURCE, Locale.tr("Attributes")); return TemplateInfo({ "element": this.element, @@ -94,33 +93,13 @@ define(function(require) { } function _setup(context) { - var that = this; - Tips.setup(context); - // Template update - // TODO: simplify interface? - var hiddenKeys = [ - "SUNSTONE", - "TABLE_DEFAULT_PAGE_LENGTH", - "OPENNEBULA"]; + var attributes = TemplateTable.getTemplatesAttributes(this.element.TEMPLATE, { + regexHidden: REGEX_HIDDEN_ATTRS + }) - var strippedTemplate = $.extend({}, this.element.TEMPLATE); - - $.each(hiddenKeys, function(i, key){ - delete strippedTemplate[key]; - }); - - var hiddenValues = {}; - - $.each(hiddenKeys, function(i, key){ - if (that.element.TEMPLATE[key] != undefined){ - hiddenValues[key] = that.element.TEMPLATE[key]; - } - }); - - TemplateTable.setup(strippedTemplate, RESOURCE, this.element.ID, context, hiddenValues); - //=== + TemplateTable.setup(attributes.general, RESOURCE, this.element.ID, context, attributes.hidden); return false; } diff --git a/src/sunstone/public/app/tabs/hosts-tab/panels/esx.js b/src/sunstone/public/app/tabs/hosts-tab/panels/esx.js index 4dd3fb5ba7..49416c6837 100644 --- a/src/sunstone/public/app/tabs/hosts-tab/panels/esx.js +++ b/src/sunstone/public/app/tabs/hosts-tab/panels/esx.js @@ -49,7 +49,7 @@ define(function(require) { this.element = info[RESOURCE.toUpperCase()]; // Do not create an instance of this panel if no vcenter hypervisor - if (this.element.TEMPLATE.HYPERVISOR != "vcenter") { + if (this.element.TEMPLATE.HYPERVISOR !== "vcenter") { throw "Panel not available for this element"; } diff --git a/src/sunstone/public/app/tabs/hosts-tab/panels/info.js b/src/sunstone/public/app/tabs/hosts-tab/panels/info.js index 685825b799..5ef35c6d6c 100644 --- a/src/sunstone/public/app/tabs/hosts-tab/panels/info.js +++ b/src/sunstone/public/app/tabs/hosts-tab/panels/info.js @@ -17,26 +17,26 @@ define(function(require) { /* DEPENDENCIES */ + require("foundation"); - var Locale = require("utils/locale"); - var Humanize = require("utils/humanize"); - var RenameTr = require("utils/panel/rename-tr"); - var TemplateTable = require("utils/panel/template-table"); - var TemplateTableVcenter = require("utils/panel/template-table"); - var PermissionsTable = require("utils/panel/permissions-table"); - var ClusterTr = require("utils/panel/cluster-tr"); - var OpenNebulaHost = require("opennebula/host"); - var CPUBars = require("../utils/cpu-bars"); - var MemoryBars = require("../utils/memory-bars"); - var Reserved = require("../utils/reserved"); - var DatastoresCapacityTable = require("../utils/datastores-capacity-table"); var CanImportWilds = require("../utils/can-import-wilds"); - var Sunstone = require("sunstone"); - var TemplateUtils = require("utils/template-utils"); var CapacityTable = require("utils/custom-tags-table"); + var ClusterTr = require("utils/panel/cluster-tr"); + var CPUBars = require("../utils/cpu-bars"); + var DatastoresCapacityTable = require("../utils/datastores-capacity-table"); var EC2Tr = require("utils/panel/ec2-tr"); - var OpenNebulaAction = require("opennebula/action"); + var Humanize = require("utils/humanize"); + var Locale = require("utils/locale"); + var MemoryBars = require("../utils/memory-bars"); var Notifier = require("utils/notifier"); + var OpenNebulaAction = require("opennebula/action"); + var OpenNebulaHost = require("opennebula/host"); + var PermissionsTable = require("utils/panel/permissions-table"); + var RenameTr = require("utils/panel/rename-tr"); + var Reserved = require("../utils/reserved"); + var Sunstone = require("sunstone"); + var TemplateTable = require("utils/panel/template-table"); + var TemplateUtils = require("utils/template-utils"); /* TEMPLATES @@ -52,43 +52,20 @@ define(function(require) { var PANEL_ID = require("./info/panelId"); var RESOURCE = "Host"; var XML_ROOT = "HOST"; - - var OVERCOMMIT_DIALOG_ID = require("utils/dialogs/overcommit/dialogId"); + var REGEX_VCENTER_ATTRS = /^VCENTER_(?!(RESOURCE_POOL)$)/ + var REGEX_NSX_ATTRS = /^NSX_/ + var REGEX_HIDDEN_ATTRS = /^(HOST|VM|WILDS|ZOMBIES|RESERVED_CPU|RESERVER_MEM|EC2_ACCESS|EC2_SECRET|CAPACITY|REGION_NAME)$/ /* CONSTRUCTOR */ function Panel(info) { - var that = this; - that.title = Locale.tr("Info"); - that.icon = "fa-info-circle"; + this.title = Locale.tr("Info"); + this.icon = "fa-info-circle"; - that.element = info[XML_ROOT]; - that.canImportWilds = CanImportWilds(that.element); - - // Hide information of the Wild VMs of the Host and the ESX Hosts - // in the template table. Unshow values are stored in the unshownTemplate - // object to be used when the host info is updated. - that.unshownTemplate = {}; - that.strippedTemplateVcenter = {}; - that.strippedTemplateNSX = {}; - that.strippedTemplate = {}; - var unshownKeys = ["HOST", "VM", "WILDS", "ZOMBIES", "RESERVED_CPU", "RESERVED_MEM", "EC2_ACCESS", "EC2_SECRET", "CAPACITY", "REGION_NAME"]; - $.each(that.element.TEMPLATE, function(key, value) { - if ($.inArray(key, unshownKeys) > -1) { - that.unshownTemplate[key] = value; - } - else if (!key.match(/^VCENTER_RESOURCE_POOL$/) && key.match(/^VCENTER_*/)){ - that.strippedTemplateVcenter[key] = value; - } - else if (key.match(/^NSX_*/)){ - that.strippedTemplateNSX[key] = value; - } - else { - that.strippedTemplate[key] = value; - } - }); + this.element = info[XML_ROOT]; + this.canImportWilds = CanImportWilds(this.element); return this; }; @@ -102,30 +79,35 @@ define(function(require) { /* FUNCTION DEFINITIONS */ + function _html() { var cache = OpenNebulaAction.cache("CLUSTER"); - if (!cache){ + + if (!cache) { Sunstone.runAction("Cluster.list"); cache = OpenNebulaAction.cache("CLUSTER"); } + var elementAux = Reserved.updateHostTemplate(cache, this.element); + var attributes = TemplateTable.getTemplatesAttributes(this.element.TEMPLATE, { + regexVCenter: REGEX_VCENTER_ATTRS, + regexNSX: REGEX_NSX_ATTRS, + regexHidden: REGEX_HIDDEN_ATTRS, + }) + + var templateTableHTML = TemplateTable.html(attributes.general, RESOURCE, Locale.tr("Attributes")); + var templateTableVcenterHTML = TemplateTable.html(attributes.vcenter, RESOURCE, Locale.tr("vCenter information")); - var templateTableHTML = TemplateTable.html( - this.strippedTemplate, - RESOURCE, - Locale.tr("Attributes")); - var templateTableVcenterHTML = TemplateTableVcenter.html( - this.strippedTemplateVcenter, - RESOURCE, - Locale.tr("vCenter information"),false); var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME); var clusterTrHTML = ClusterTr.html(this.element.CLUSTER); var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element); + var cpuBars = CPUBars.html(elementAux); var memoryBars = MemoryBars.html(elementAux); var datastoresCapacityTableHTML = DatastoresCapacityTable.html(this.element); - var realCPU = parseInt(this.element.HOST_SHARE.TOTAL_CPU,10); - var realMEM = parseInt(this.element.HOST_SHARE.TOTAL_MEM,10); + + var realCPU = parseInt(this.element.HOST_SHARE.TOTAL_CPU, 10); + var realMEM = parseInt(this.element.HOST_SHARE.TOTAL_MEM, 10); return TemplateInfo({ "element": this.element, @@ -149,29 +131,31 @@ define(function(require) { } function changeInputCPU(maxCPU){ - if($("#textInput_reserved_cpu_hosts").val() === ""){ + if ($("#textInput_reserved_cpu_hosts").val() === "") { $("#change_bar_cpu_hosts").val(0); $("#textInput_reserved_cpu_hosts").val(""); } else { $("#change_bar_cpu_hosts").val(parseInt($("#textInput_reserved_cpu_hosts").val())); } + changeColorInputCPU(maxCPU); } function changeInputMEM(maxMEM){ - if($("#textInput_reserved_mem_hosts").val() === ""){ + if ($("#textInput_reserved_mem_hosts").val() === "") { $("#change_bar_mem_hosts").val(0); } else { - $("#change_bar_mem_hosts").val(Humanize.sizeToMB($("#textInput_reserved_mem_hosts").val())*1024); + $("#change_bar_mem_hosts").val(Humanize.sizeToMB($("#textInput_reserved_mem_hosts").val()) * 1024); } + changeColorInputMEM(maxMEM); } function changeColorInputCPU(maxCPU){ - if (parseInt($("#change_bar_cpu_hosts").val()) > parseInt(maxCPU)){ + if (parseInt($("#change_bar_cpu_hosts").val()) > parseInt(maxCPU)) { $("#textInput_reserved_cpu_hosts").css("background-color", "rgba(111, 220, 111, 0.5)"); } - else if (parseInt($("#change_bar_cpu_hosts").val()) < parseInt(maxCPU)){ + else if (parseInt($("#change_bar_cpu_hosts").val()) < parseInt(maxCPU)) { $("#textInput_reserved_cpu_hosts").css("background-color", "rgba(255, 80, 80, 0.5)"); } else { $("#textInput_reserved_cpu_hosts").css("background-color", "white"); @@ -179,10 +163,10 @@ define(function(require) { } function changeColorInputMEM(maxMEM){ - if (parseInt($("#change_bar_mem_hosts").val()) > parseInt(maxMEM)){ + if (parseInt($("#change_bar_mem_hosts").val()) > parseInt(maxMEM)) { $("#textInput_reserved_mem_hosts").css("background-color", "rgba(111, 220, 111, 0.5)"); } - else if (parseInt($("#change_bar_mem_hosts").val()) < parseInt(maxMEM)){ + else if (parseInt($("#change_bar_mem_hosts").val()) < parseInt(maxMEM)) { $("#textInput_reserved_mem_hosts").css("background-color", "rgba(255, 80, 80, 0.5)"); } else { $("#textInput_reserved_mem_hosts").css("background-color", "white"); @@ -191,24 +175,35 @@ define(function(require) { function _setup(context) { var that = this; + $(".ec2", context).show(); + RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context); ClusterTr.setup(RESOURCE, this.element.ID, this.element.CLUSTER_ID, context); + PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context); - TemplateTable.setup(this.strippedTemplate, RESOURCE, this.element.ID, context, this.unshownTemplate, this.strippedTemplateVcenter); - TemplateTableVcenter.setup(this.strippedTemplateVcenter, RESOURCE, this.element.ID, context, this.unshownTemplate, this.strippedTemplate); + var attributes = TemplateTable.getTemplatesAttributes(this.element.TEMPLATE, { + regexVCenter: REGEX_VCENTER_ATTRS, + regexNSX: REGEX_NSX_ATTRS, + regexHidden: REGEX_HIDDEN_ATTRS + }); - PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context); - - if($.isEmptyObject(this.strippedTemplateVcenter)){ + if ($.isEmptyObject(attributes.vcenter)) { $(".vcenter", context).hide(); } + // General Attributes section + TemplateTable.setup(attributes.general, RESOURCE, this.element.ID, context, attributes.hidden, attributes.vcenter); + // vCenter Attributes section + TemplateTable.setup(attributes.vcenter, RESOURCE, this.element.ID, context, attributes.hidden, attributes.general); + //.off and .on prevent multiple clicks events - $(context).off("click", "#update_reserved_hosts").on("click", "#update_reserved_hosts", function(){ + $(context).off("click", "#update_reserved_hosts") + $(context).on("click", "#update_reserved_hosts", function() { var CPU = that && that.element && that.element.HOST_SHARE && that.element.HOST_SHARE.TOTAL_CPU; var MEMORY = that && that.element && that.element.HOST_SHARE && that.element.HOST_SHARE.TOTAL_MEM; - if(CPU && MEMORY){ + + if(CPU && MEMORY) { $("#update_reserved_hosts", context).prop("disabled", true); var reservedCPU = parseInt($("#textInput_reserved_cpu_hosts", context).val(),10); var inputNumber = Humanize.sizeToMB($("#textInput_reserved_mem_hosts").val()); @@ -232,13 +227,15 @@ define(function(require) { var slider = $("#change_bar_cpu_hosts", context); var min = slider.attr("min"); var max = slider.attr("max"); - if(parseInt(element.val(),10) >= parseInt(min, 10) && parseInt(element.val(),10) <= parseInt(max, 10)){ + + if (parseInt(element.val(), 10) >= parseInt(min, 10) && parseInt(element.val(), 10) <= parseInt(max, 10)) { slider.prop("disabled", false); slider.attr("value", element.val()); - }else{ - if(parseInt(element.val(),10) <= parseInt(min, 10)){ + } else { + if (parseInt(element.val(), 10) <= parseInt(min, 10)) { Notifier.notifyError(Locale.tr("it must not be a negative number")); } + slider.attr("value", element.attr("mid")); slider.prop("disabled", true); } @@ -255,19 +252,24 @@ define(function(require) { }); $("#update_reserved_hosts", context).prop("disabled", false); + CapacityTable.setup(context, true, RESOURCE, this.element.TEMPLATE, this.element.ID); EC2Tr.setup(RESOURCE, this.element.ID, context); CapacityTable.fill(context, this.element.TEMPLATE.CAPACITY); + $(".change_to_vector_attribute", context).hide(); $(".custom_tag_value", context).focusout(function(){ var key = $(".custom_tag_key", this.parentElement.parentElement).val(); - if (!that.element.TEMPLATE.CAPACITY){ + + if (!that.element.TEMPLATE.CAPACITY) { that.element.TEMPLATE.CAPACITY = {}; } + that.element.TEMPLATE.CAPACITY[key] = this.value; Sunstone.runAction(RESOURCE + ".update_template", that.element.ID, TemplateUtils.templateToString(that.element.TEMPLATE)); }); - if (this.element.TEMPLATE.IM_MAD != "ec2"){ + + if (this.element.TEMPLATE.IM_MAD !== "ec2") { $(".ec2", context).hide(); } } diff --git a/src/sunstone/public/app/tabs/hosts-tab/panels/pool.js b/src/sunstone/public/app/tabs/hosts-tab/panels/pool.js index 143650a007..023f595145 100644 --- a/src/sunstone/public/app/tabs/hosts-tab/panels/pool.js +++ b/src/sunstone/public/app/tabs/hosts-tab/panels/pool.js @@ -17,49 +17,58 @@ define(function(require) { /* DEPENDENCIES */ + var Locale = require('utils/locale'); var ResourcePoolCards = require("../utils/cards"); + /* TEMPLATES */ + var TemplatePool = require('hbs!./pool/html'); + /* CONSTANTS */ + var PANEL_ID = require('./pool/panelId'); - var RESOURCE = "Host" + var RESOURCE = "HOST" + /* CONSTRUCTOR */ + function Panel(info) { - var self = this; this.title = Locale.tr("POOL"); this.icon = "fa-server"; - this.element = info[RESOURCE.toUpperCase()]; + this.element = info[RESOURCE]; + // Do not create an instance of this panel if no vcenter hypervisor - // porque el hypervisor proviene de la monitorizacion de por si no esta en el template - if(this.element && this.element.TEMPLATE && this.element.TEMPLATE.HYPERVISOR){ - if(this.element.TEMPLATE.HYPERVISOR != "vcenter"){ + if (this.element && this.element.TEMPLATE && this.element.TEMPLATE.HYPERVISOR) { + if (this.element.TEMPLATE.HYPERVISOR !== "vcenter") { throw "Panel not available for this element"; } - }else{ + } else { throw "Panel not available for this element"; } return this; }; + Panel.PANEL_ID = PANEL_ID; Panel.prototype.html = _html; Panel.prototype.setup = _setup; return Panel; + /* FUNCTION DEFINITIONS */ + function _html() { return TemplatePool({ "resourcePoolCards": ResourcePoolCards.html(this.element) }); } - function _setup(context) { - } + + function _setup(context) {} }) diff --git a/src/sunstone/public/app/tabs/hosts-tab/utils/resource-pool-cards/html.hbs b/src/sunstone/public/app/tabs/hosts-tab/utils/resource-pool-cards/html.hbs index 6638c2f921..f7d209f964 100644 --- a/src/sunstone/public/app/tabs/hosts-tab/utils/resource-pool-cards/html.hbs +++ b/src/sunstone/public/app/tabs/hosts-tab/utils/resource-pool-cards/html.hbs @@ -16,8 +16,8 @@ {{#each resourcePools}}