Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js?rev=1741993&r1=1741992&r2=1741993&view=diff ============================================================================== --- qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js (original) +++ qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Broker.js Mon May 2 15:57:52 2016 @@ -52,1037 +52,935 @@ define(["dojo/parser", "dijit/Menu", "dijit/MenuItem", "dojo/domReady!"], - function (parser, query, json, connect, memory, properties, updater, util, UpdatableStore, EnhancedGrid, registry, entities, addAuthenticationProvider, addVirtualHostNodeAndVirtualHost, addPort, addStore, addGroupProvider, addAccessControlProvider, editBroker, addLogger, template) - { - - var brokerAttributeNames = ["name", - "operatingSystem", - "platform", - "productVersion", - "modelVersion", - "statisticsReportingPeriod", - "statisticsReportingResetEnabled", - "confidentialConfigurationEncryptionProvider", - "connection.sessionCountLimit", - "connection.heartBeatDelay"]; - - function Broker(name, parent, controller) - { - this.name = name; - this.controller = controller; - this.management = controller.management; - this.modelObj = { - type: "broker", - name: name - }; - } - - Broker.prototype.getTitle = function () - { - return "Broker"; - }; - - Broker.prototype.open = function (contentPane) - { - var that = this; - this.contentPane = contentPane; - { - contentPane.containerNode.innerHTML = template; - parser.parse(contentPane.containerNode).then(function (instances) - { - that.brokerUpdater = - new BrokerUpdater(contentPane.containerNode, that.modelObj, that.controller); - - var addProviderButton = query( - ".addAuthenticationProvider", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(addProviderButton), - "onClick", - function (evt) - { - addAuthenticationProvider.show( - that.management, - that.modelObj); - }); - - var deleteProviderButton = query( - ".deleteAuthenticationProvider", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(deleteProviderButton), - "onClick", - function (evt) - { - var warning = ""; - var data = that.brokerUpdater.authenticationProvidersGrid.grid.selection.getSelected(); - if (data.length && data.length - > 0) - { - for (var i = 0; - i < data.length; - i++) - { - if (data[i].type.indexOf( - "File") != -1) - { - warning = - "NOTE: provider deletion will also remove the password file on disk.\n\n" - break; - } - } - } - - util.deleteSelectedObjects(that.brokerUpdater.authenticationProvidersGrid.grid, - warning - + "Are you sure you want to delete authentication provider", - that.management, - { - type: "authenticationprovider", - parent: that.modelObj - }, - that.brokerUpdater); - }); - - var addVHNAndVHButton = query( - ".addVirtualHostNodeAndVirtualHostButton", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(addVHNAndVHButton), - "onClick", - function (evt) - { - addVirtualHostNodeAndVirtualHost.show( - that.controller.management); - }); - - var addPortButton = query(".addPort", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(addPortButton), - "onClick", - function (evt) - { - addPort.show(that.management, - that.modelObj, - "AMQP", - that.brokerUpdater.brokerData.authenticationproviders, - that.brokerUpdater.brokerData.keystores, - that.brokerUpdater.brokerData.truststores); - }); - - var deletePort = query(".deletePort", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(deletePort), - "onClick", - function (evt) - { - util.deleteSelectedObjects(that.brokerUpdater.portsGrid.grid, - "Are you sure you want to delete port", - that.management, - { - type: "port", - parent: that.modelObj - }, - that.brokerUpdater); - - }); - - var editButton = query(".editBroker", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(editButton), - "onClick", - function (evt) - { - editBroker.show(that.management, - that.brokerUpdater.brokerData); - }); - - var addKeystoreButton = query(".addKeystore", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(addKeystoreButton), - "onClick", - function (evt) - { - addStore.setupTypeStore(that.management, - "KeyStore", - that.modelObj); - addStore.show(); - }); - - var deleteKeystore = query(".deleteKeystore", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(deleteKeystore), - "onClick", - function (evt) - { - util.deleteSelectedObjects(that.brokerUpdater.keyStoresGrid.grid, - "Are you sure you want to delete key store", - that.management, - { - type: "keystore", - parent: that.modelObj - }, - that.brokerUpdater); - }); - - var addTruststoreButton = query(".addTruststore", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(addTruststoreButton), - "onClick", - function (evt) - { - addStore.setupTypeStore(that.management, - "TrustStore", - that.modelObj); - addStore.show(); - }); - - var deleteTruststore = query(".deleteTruststore", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(deleteTruststore), - "onClick", - function (evt) - { - util.deleteSelectedObjects(that.brokerUpdater.trustStoresGrid.grid, - "Are you sure you want to delete trust store", - that.management, - { - type: "truststore", - parent: that.modelObj - }, - that.brokerUpdater); - }); - - var addGroupProviderButton = query( - ".addGroupProvider", - contentPane.containerNode)[0]; - connect.connect(registry.byNode( - addGroupProviderButton), - "onClick", - function (evt) - { - addGroupProvider.show(that.controller.management, - that.modelObj); - }); - - var deleteGroupProvider = query( - ".deleteGroupProvider", - contentPane.containerNode)[0]; - connect.connect(registry.byNode(deleteGroupProvider), - "onClick", - function (evt) - { - var warning = ""; - var data = that.brokerUpdater.groupProvidersGrid.grid.selection.getSelected(); - if (data.length && data.length - > 0) - { - for (var i = 0; - i < data.length; - i++) - { - if (data[i].type.indexOf( - "File") != -1) - { - warning = - "NOTE: provider deletion will also remove the group file on disk.\n\n" - break; - } - } - } - - util.deleteSelectedObjects(that.brokerUpdater.groupProvidersGrid.grid, - warning - + "Are you sure you want to delete group provider", - that.management, - { - type: "groupprovider", - parent: that.modelObj - }, - that.brokerUpdater); - }); - - var addAccessControlButton = query( - ".addAccessControlProvider", - contentPane.containerNode)[0]; - connect.connect(registry.byNode( - addAccessControlButton), - "onClick", - function (evt) - { - addAccessControlProvider.show( - that.management, - that.modelObj); - }); - - var deleteAccessControlProviderButton = query( - ".deleteAccessControlProvider", - contentPane.containerNode)[0]; - connect.connect(registry.byNode( - deleteAccessControlProviderButton), - "onClick", - function (evt) - { - util.deleteSelectedObjects(that.brokerUpdater.accessControlProvidersGrid.grid, - "Are you sure you want to delete access control provider", - that.management, - { - type: "accesscontrolprovider", - parent: that.modelObj - }, - that.brokerUpdater); - }); - - var addLoggerButtonNode = query(".addBrokerLogger", - contentPane.containerNode)[0]; - var addLoggerButton = registry.byNode( - addLoggerButtonNode); - addLoggerButton.on("click", function (evt) - { - addLogger.show(that.management, - that.modelObj, - "BrokerLogger"); - }); - - var deleteLoggerButtonNode = query( - ".deleteBrokerLogger", - contentPane.containerNode)[0]; - var deleteLoggerButton = registry.byNode( - deleteLoggerButtonNode); - deleteLoggerButton.on("click", function (evt) - { - util.deleteSelectedObjects(that.brokerUpdater.brokerLoggersGrid.grid, - "Are you sure you want to delete broker logger", - that.management, - { - type: "brokerlogger", - parent: that.modelObj - }, - that.brokerUpdater); - }); - - }); - } - }; - - Broker.prototype.close = function () - { - updater.remove(this.brokerUpdater); - }; - - function BrokerUpdater(node, brokerObj, controller) - { - this.controller = controller; - this.accessControlProvidersWarn = query(".broker-access-control-providers-warning", node)[0]; - this.management = controller.management; - this.brokerObj = brokerObj; - var that = this; - - this.management.load(brokerObj, {depth: 2}) - .then(function (data) - { - that.brokerData = data[0]; - - util.flattenStatistics(that.brokerData); - - that.updateHeader(); - - var gridProperties = { - height: 400, - selectionMode: "single", - plugins: { - pagination: { - pageSizes: [10, 25, 50, 100], - description: true, - sizeSwitch: true, - pageStepper: true, - gotoButton: true, - maxPageStep: 4, - position: "bottom" - } - } - }; - - function isActiveVH(item) - { - return item && item.virtualhosts && item.virtualhosts[0].state == "ACTIVE"; - } - - that.vhostsGrid = - new UpdatableStore(that.brokerData.virtualhostnodes, query(".broker-virtualhosts")[0], [{ - name: "Node Name", - field: "name", - width: "8%" - }, - { - name: "Node State", - field: "state", - width: "8%" - }, - { - name: "Node Type", - field: "type", - width: "8%" - }, - { - name: "Default", - field: "defaultVirtualHostNode", - width: "8%", - formatter: function (item) - { - return "<input type='checkbox' disabled='disabled' " + (item - ? "checked='checked'" - : "") + " />"; - } - }, - { - name: "Host Name", - field: "_item", - width: "8%", - formatter: function (item) - { - return item && item.virtualhosts ? item.virtualhosts[0].name : "N/A"; - } - }, - { - name: "Host State", - field: "_item", - width: "15%", - formatter: function (item) - { - return item && item.virtualhosts ? item.virtualhosts[0].state : "N/A"; - } - }, - { - name: "Host Type", - field: "_item", - width: "15%", - formatter: function (item) - { - return item && item.virtualhosts ? item.virtualhosts[0].type : "N/A"; - } - }, - { - name: "Connections", - field: "_item", - width: "8%", - formatter: function (item) - { - return isActiveVH(item) - ? item.virtualhosts[0].statistics.connectionCount - : "N/A"; - } - }, - { - name: "Queues", - field: "_item", - width: "8%", - formatter: function (item) - { - return isActiveVH(item) - ? item.virtualhosts[0].statistics.queueCount - : "N/A"; - } - }, - { - name: "Exchanges", - field: "_item", - width: "8%", - formatter: function (item) - { - return isActiveVH(item) - ? item.virtualhosts[0].statistics.exchangeCount - : "N/A"; - } - }], function (obj) - { - connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt) - { - var idx = evt.rowIndex, theItem = this.getItem(idx); - if (theItem.virtualhosts) - { - that.showVirtualHost(theItem, brokerObj); - } - }); - }, gridProperties, EnhancedGrid, true); - - that.virtualHostNodeMenuButton = - registry.byNode(query(".virtualHostNodeMenuButton", node)[0]); - that.virtualHostMenuButton = registry.byNode(query(".virtualHostMenuButton", node)[0]); - - var hostMenuItems = that.virtualHostMenuButton.dropDown.getChildren(); - var viewVirtualHostItem = hostMenuItems[0]; - var startVirtualHostItem = hostMenuItems[1]; - var stopVirtualHostItem = hostMenuItems[2]; - - var nodeMenuItems = that.virtualHostNodeMenuButton.dropDown.getChildren(); - var viewNodeItem = nodeMenuItems[0]; - var deleteNodeItem = nodeMenuItems[1]; - var startNodeItem = nodeMenuItems[2]; - var stopNodeItem = nodeMenuItems[3]; - - var toggler = function (index) - { - that.toggleVirtualHostNodeNodeMenus(index); - } - connect.connect(that.vhostsGrid.grid.selection, 'onSelected', toggler); - connect.connect(that.vhostsGrid.grid.selection, 'onDeselected', toggler); - - viewVirtualHostItem.on("click", function () - { - var data = that.vhostsGrid.grid.selection.getSelected(); - if (data.length == 1) - { - that.showVirtualHost(data[0], brokerObj); - that.vhostsGrid.grid.selection.clear(); - } - }); - - viewNodeItem.on("click", function (evt) - { - var data = that.vhostsGrid.grid.selection.getSelected(); - if (data.length == 1) - { - var item = data[0]; - that.controller.show("virtualhostnode", item.name, brokerObj, item.id); - that.vhostsGrid.grid.selection.clear(); - } - }); - - deleteNodeItem.on("click", function (evt) - { - util.deleteSelectedObjects(that.vhostsGrid.grid, - "Deletion of virtual host node will delete both configuration and message data.\n\n Are you sure you want to delete virtual host node", - that.management, - { - type: "virtualhostnode", - parent: that.modelObj - }, - that.brokerUpdater); - }); - - startNodeItem.on("click", function (event) - { - var data = that.vhostsGrid.grid.selection.getSelected(); - if (data.length == 1) - { - var item = data[0]; - that.management.update({ - type: "virtualhostnode", - name: item.name, - parent: that.modelObj - }, {desiredState: "ACTIVE"}).then(function (data) - { - that.vhostsGrid.grid.selection.clear(); - }); - } - }); - - stopNodeItem.on("click", function (event) - { - var data = that.vhostsGrid.grid.selection.getSelected(); - if (data.length == 1) - { - var item = data[0]; - if (confirm("Stopping the node will also shutdown the virtual host. " - + "Are you sure you want to stop virtual host node '" - + entities.encode(String(item.name)) + "'?")) - { - that.management.update({ - type: "virtualhostnode", - name: item.name, - parent: that.modelObj - }, {desiredState: "STOPPED"}).then(function (data) - { - that.vhostsGrid.grid.selection.clear(); - }); - } - } - }); - - startVirtualHostItem.on("click", function (event) - { - var data = that.vhostsGrid.grid.selection.getSelected(); - if (data.length == 1 && data[0].virtualhosts) - { - var item = data[0]; - var host = item.virtualhosts[0]; - that.management.update({ - type: "virtualhost", - name: item.name, - parent: { - type: "virtualhostnode", - name: host.name, - parent: that.modelObj - } - }, {desiredState: "ACTIVE"}).then(function (data) - { - that.vhostsGrid.grid.selection.clear(); - }); - } - }); - - stopVirtualHostItem.on("click", function (event) - { - var data = that.vhostsGrid.grid.selection.getSelected(); - if (data.length == 1 && data[0].virtualhosts) - { - var item = data[0]; - var host = item.virtualhosts[0]; - if (confirm("Are you sure you want to stop virtual host '" - + entities.encode(String(host.name)) + "'?")) - { - that.management.update({ - type: "virtualhost", - name: item.name, - parent: { - type: "virtualhostnode", - name: host.name, - parent: that.modelObj - } - }, {desiredState: "STOPPED"}).then(function (data) - { - that.vhostsGrid.grid.selection.clear(); - }); - } - } - }); - gridProperties.selectionMode = "extended"; - gridProperties.plugins.indirectSelection = true; - - that.portsGrid = new UpdatableStore(that.brokerData.ports, query(".broker-ports")[0], [{ - name: "Name", - field: "name", - width: "15%" - }, - { - name: "State", - field: "state", - width: "15%" - }, - { - name: "Auth Provider", - field: "authenticationProvider", - width: "15%" - }, - { - name: "Address", - field: "bindingAddress", - width: "15%" - }, - { - name: "Port", - field: "port", - width: "10%" - }, - { - name: "Transports", - field: "transports", - width: "15%" - }, - { - name: "Protocols", - field: "protocols", - width: "15%" - }], function (obj) - { - connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt) - { - var idx = evt.rowIndex, theItem = this.getItem(idx); - var name = obj.dataStore.getValue(theItem, "name"); - that.controller.show("port", name, brokerObj, theItem.id); - }); - }, gridProperties, EnhancedGrid); - - gridProperties = { - keepSelection: true, - plugins: { - indirectSelection: true - } - }; - - that.authenticationProvidersGrid = - new UpdatableStore(that.brokerData.authenticationproviders, query( - ".broker-authentication-providers")[0], [{ - name: "Name", - field: "name", - width: "40%" - }, - { - name: "State", - field: "state", - width: "20%" - }, - { - name: "Type", - field: "type", - width: "20%" - }, - { - name: "User Management", - field: "type", - width: "20%", - formatter: function (val) - { - var isProviderManagingUsers = false; - try - { - isProviderManagingUsers = - that.management.metadata.implementsManagedInterface( - "AuthenticationProvider", - val, - "PasswordCredentialManagingAuthenticationProvider"); - } - catch (e) - { - console.error(e); - } - return "<input type='radio' disabled='disabled' " - + (isProviderManagingUsers ? "checked='checked'" : "") + " />"; - } - }], function (obj) - { - connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt) - { - var idx = evt.rowIndex, theItem = this.getItem(idx); - var name = obj.dataStore.getValue(theItem, "name"); - that.controller.show("authenticationprovider", name, brokerObj, theItem.id); - }); - }, gridProperties, EnhancedGrid); - - that.keyStoresGrid = - new UpdatableStore(that.brokerData.keystores, query(".broker-key-stores")[0], [{ - name: "Name", - field: "name", - width: "20%" - }, - { - name: "State", - field: "state", - width: "10%" - }, - { - name: "Type", - field: "type", - width: "10%" - }, - { - name: "Path", - field: "path", - width: "60%" - }], function (obj) - { - connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt) - { - var idx = evt.rowIndex, theItem = this.getItem(idx); - var name = obj.dataStore.getValue(theItem, "name"); - that.controller.show("keystore", name, brokerObj, theItem.id); - }); - }, gridProperties, EnhancedGrid); - - that.trustStoresGrid = - new UpdatableStore(that.brokerData.truststores, query(".broker-trust-stores")[0], [{ - name: "Name", - field: "name", - width: "20%" - }, - { - name: "State", - field: "state", - width: "10%" - }, - { - name: "Type", - field: "type", - width: "10%" - }, - { - name: "Path", - field: "path", - width: "50%" - }, - { - name: "Peers only", - field: "peersOnly", - width: "10%", - formatter: function (val) - { - return "<input type='radio' disabled='disabled' " + (val - ? "checked='checked'" - : "") + " />"; - } - }], function (obj) - { - connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt) - { - var idx = evt.rowIndex, theItem = this.getItem(idx); - var name = obj.dataStore.getValue(theItem, "name"); - that.controller.show("truststore", name, brokerObj, theItem.id); - }); - }, gridProperties, EnhancedGrid); - that.groupProvidersGrid = - new UpdatableStore(that.brokerData.groupproviders, query(".broker-group-providers")[0], [{ - name: "Name", - field: "name", - width: "40%" - }, - { - name: "State", - field: "state", - width: "30%" - }, - { - name: "Type", - field: "type", - width: "30%" - }], function (obj) - { - connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt) - { - var idx = evt.rowIndex, theItem = this.getItem(idx); - var name = obj.dataStore.getValue(theItem, "name"); - that.controller.show("groupprovider", name, brokerObj, theItem.id); - }); - }, gridProperties, EnhancedGrid); - var aclData = that.brokerData.accesscontrolproviders - ? that.brokerData.accesscontrolproviders - : []; - that.accessControlProvidersGrid = - new UpdatableStore(aclData, query(".broker-access-control-providers")[0], [{ - name: "Name", - field: "name", - width: "40%" - }, - { - name: "State", - field: "state", - width: "30%" - }, - { - name: "Type", - field: "type", - width: "30%" - }], function (obj) - { - connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt) - { - var idx = evt.rowIndex, theItem = this.getItem(idx); - var name = obj.dataStore.getValue(theItem, "name"); - that.controller.show("accesscontrolprovider", name, brokerObj, theItem.id); - }); - }, gridProperties, EnhancedGrid); - that.displayACLWarnMessage(aclData); - - var brokerLoggerData = that.brokerData.brokerloggers || []; - that.brokerLoggersGrid = - new UpdatableStore(brokerLoggerData, query(".broker-loggers")[0], [{ - name: "Name", - field: "name", - width: "40%" - }, - { - name: "State", - field: "state", - width: "15%" - }, - { - name: "Type", - field: "type", - width: "15%" - }, - { - name: "Exclude Virtual Host Logs", - field: "virtualHostLogEventExcluded", - width: "20%", - formatter: function (val) - { - return util.buildCheckboxMarkup(val); - } - }, - { - name: "Errors", - field: "errorCount", - width: "5%" - }, - { - name: "Warnings", - field: "warnCount", - width: "5%" - }], function (obj) - { - connect.connect(obj.grid, "onRowDblClick", obj.grid, function (evt) - { - var idx = evt.rowIndex, theItem = this.getItem(idx); - var name = obj.dataStore.getValue(theItem, "name"); - that.controller.show("brokerlogger", name, brokerObj, theItem.id); - }); - }, gridProperties, EnhancedGrid); - updater.add(that); - - }); - } - - BrokerUpdater.prototype.showVirtualHost = function (item, brokerObj) - { - var nodeName = item.name; - var host = item.virtualhosts ? item.virtualhosts[0] : null; - var nodeObject = { - type: "virtualhostnode", - name: nodeName, - parent: brokerObj - }; - this.controller.show("virtualhost", host ? host.name : nodeName, nodeObject, host ? host.id : null); - } - - BrokerUpdater.prototype.updateHeader = function () - { - var brokerData = this.brokerData; - window.document.title = "Qpid: " + brokerData.name + " Management"; - - for (var i in brokerAttributeNames) - { - var propertyName = brokerAttributeNames[i]; - var element = dojo.byId("brokerAttribute." + propertyName); - if (element) - { - if (brokerData.hasOwnProperty(propertyName)) - { - var container = dojo.byId("brokerAttribute." + propertyName + ".container"); - if (container) - { - container.style.display = "block"; - } - element.innerHTML = entities.encode(String(brokerData [propertyName])); - } - else - { - element.innerHTML = ""; - } - } - } - }; - - BrokerUpdater.prototype.displayACLWarnMessage = function (aclProviderData) - { - var message = ""; - if (aclProviderData.length > 1) - { - var aclProviders = {}; - var theSameTypeFound = false; - for (var d = 0; d < aclProviderData.length; d++) - { - var acl = aclProviderData[d]; - var aclType = acl.type; - if (aclProviders[aclType]) - { - aclProviders[aclType].push(acl.name); - theSameTypeFound = true; - } - else - { - aclProviders[aclType] = [acl.name]; - } - } - - if (theSameTypeFound) - { - message = - "Only one instance of a given type will be used. Please remove an instance of type(s):"; - for (var aclType in aclProviders) - { - if (aclProviders[aclType].length > 1) - { - message += " " + aclType; - } - } - } - } - this.accessControlProvidersWarn.innerHTML = message; - } - - BrokerUpdater.prototype.update = function () - { - - var that = this; - - this.management.load(this.brokerObj, {depth: 2}).then(function (data) - { - that.brokerData = data[0]; - util.flattenStatistics(that.brokerData); - - that.updateHeader(); - - if (that.vhostsGrid.update(that.brokerData.virtualhostnodes)) - { - that.vhostsGrid.grid._refresh(); - that.toggleVirtualHostNodeNodeMenus(); - } - - that.portsGrid.update(that.brokerData.ports); - - that.authenticationProvidersGrid.update(that.brokerData.authenticationproviders); - - if (that.keyStoresGrid) - { - that.keyStoresGrid.update(that.brokerData.keystores); - } - if (that.trustStoresGrid) - { - that.trustStoresGrid.update(that.brokerData.truststores); - } - if (that.groupProvidersGrid) - { - that.groupProvidersGrid.update(that.brokerData.groupproviders); - } - if (that.accessControlProvidersGrid) - { - var data = that.brokerData.accesscontrolproviders - ? that.brokerData.accesscontrolproviders - : []; - that.accessControlProvidersGrid.update(data); - that.displayACLWarnMessage(data); - } - if (that.brokerLoggersGrid) - { - that.brokerLoggersGrid.update(that.brokerData.brokerloggers); - } - }); - }; - - BrokerUpdater.prototype.toggleVirtualHostNodeNodeMenus = function (rowIndex) - { - var data = this.vhostsGrid.grid.selection.getSelected(); - var selected = data.length == 1; - this.virtualHostNodeMenuButton.set("disabled", !selected); - this.virtualHostMenuButton.set("disabled", !selected || !data[0].virtualhosts); - if (selected) - { - var nodeMenuItems = this.virtualHostNodeMenuButton.dropDown.getChildren(); - var hostMenuItems = this.virtualHostMenuButton.dropDown.getChildren(); - - var startNodeItem = nodeMenuItems[2]; - var stopNodeItem = nodeMenuItems[3]; - - var viewVirtualHostItem = hostMenuItems[0]; - var startVirtualHostItem = hostMenuItems[1]; - var stopVirtualHostItem = hostMenuItems[2]; - - var node = data[0]; - startNodeItem.set("disabled", node.state != "STOPPED"); - stopNodeItem.set("disabled", node.state != "ACTIVE"); - - if (node.virtualhosts) - { - viewVirtualHostItem.set("disabled", false); - - var host = node.virtualhosts[0]; - startVirtualHostItem.set("disabled", host.state != "STOPPED"); - stopVirtualHostItem.set("disabled", host.state != "ACTIVE"); - } - else - { - viewVirtualHostItem.set("disabled", true); - startVirtualHostItem.set("disabled", true); - stopVirtualHostItem.set("disabled", true); - } - } - }; - return Broker; - }); + function (parser, + query, + json, + connect, + memory, + properties, + updater, + util, + UpdatableStore, + EnhancedGrid, + registry, + entities, + addAuthenticationProvider, + addVirtualHostNodeAndVirtualHost, + addPort, + addStore, + addGroupProvider, + addAccessControlProvider, + editBroker, + addLogger, + template) + { + + var brokerAttributeNames = ["name", + "operatingSystem", + "platform", + "productVersion", + "modelVersion", + "statisticsReportingPeriod", + "statisticsReportingResetEnabled", + "confidentialConfigurationEncryptionProvider", + "connection.sessionCountLimit", + "connection.heartBeatDelay"]; + + function Broker(name, parent, controller) + { + this.name = name; + this.controller = controller; + this.management = controller.management; + this.modelObj = { + type: "broker", + name: name + }; + } + + Broker.prototype.getTitle = function () + { + return "Broker"; + }; + + Broker.prototype.open = function (contentPane) + { + var that = this; + this.contentPane = contentPane; + { + contentPane.containerNode.innerHTML = template; + parser.parse(contentPane.containerNode) + .then(function (instances) + { + that.brokerUpdater = + new BrokerUpdater(contentPane.containerNode, that.modelObj, that.controller); + + var addProviderButton = query(".addAuthenticationProvider", contentPane.containerNode)[0]; + connect.connect(registry.byNode(addProviderButton), "onClick", function (evt) + { + addAuthenticationProvider.show(that.management, that.modelObj); + }); + + var deleteProviderButton = query(".deleteAuthenticationProvider", contentPane.containerNode)[0]; + connect.connect(registry.byNode(deleteProviderButton), "onClick", function (evt) + { + var warning = ""; + var data = that.brokerUpdater.authenticationProvidersGrid.grid.selection.getSelected(); + if (data.length && data.length > 0) + { + for (var i = 0; i < data.length; i++) + { + if (data[i].type.indexOf("File") != -1) + { + warning = + "NOTE: provider deletion will also remove the password file on disk.\n\n" + break; + } + } + } + + util.deleteSelectedObjects(that.brokerUpdater.authenticationProvidersGrid.grid, + warning + "Are you sure you want to delete authentication provider", + that.management, + { + type: "authenticationprovider", + parent: that.modelObj + }, + that.brokerUpdater); + }); + + var addVHNAndVHButton = query(".addVirtualHostNodeAndVirtualHostButton", + contentPane.containerNode)[0]; + connect.connect(registry.byNode(addVHNAndVHButton), "onClick", function (evt) + { + addVirtualHostNodeAndVirtualHost.show(that.controller.management); + }); + + var addPortButton = query(".addPort", contentPane.containerNode)[0]; + connect.connect(registry.byNode(addPortButton), "onClick", function (evt) + { + addPort.show(that.management, + that.modelObj, + "AMQP", + that.brokerUpdater.brokerData.authenticationproviders, + that.brokerUpdater.brokerData.keystores, + that.brokerUpdater.brokerData.truststores); + }); + + var deletePort = query(".deletePort", contentPane.containerNode)[0]; + connect.connect(registry.byNode(deletePort), "onClick", function (evt) + { + util.deleteSelectedObjects(that.brokerUpdater.portsGrid.grid, + "Are you sure you want to delete port", + that.management, + { + type: "port", + parent: that.modelObj + }, + that.brokerUpdater); + + }); + + var editButton = query(".editBroker", contentPane.containerNode)[0]; + connect.connect(registry.byNode(editButton), "onClick", function (evt) + { + editBroker.show(that.management, that.brokerUpdater.brokerData); + }); + + var addKeystoreButton = query(".addKeystore", contentPane.containerNode)[0]; + connect.connect(registry.byNode(addKeystoreButton), "onClick", function (evt) + { + addStore.setupTypeStore(that.management, "KeyStore", that.modelObj); + addStore.show(); + }); + + var deleteKeystore = query(".deleteKeystore", contentPane.containerNode)[0]; + connect.connect(registry.byNode(deleteKeystore), "onClick", function (evt) + { + util.deleteSelectedObjects(that.brokerUpdater.keyStoresGrid.grid, + "Are you sure you want to delete key store", + that.management, + { + type: "keystore", + parent: that.modelObj + }, + that.brokerUpdater); + }); + + var addTruststoreButton = query(".addTruststore", contentPane.containerNode)[0]; + connect.connect(registry.byNode(addTruststoreButton), "onClick", function (evt) + { + addStore.setupTypeStore(that.management, "TrustStore", that.modelObj); + addStore.show(); + }); + + var deleteTruststore = query(".deleteTruststore", contentPane.containerNode)[0]; + connect.connect(registry.byNode(deleteTruststore), "onClick", function (evt) + { + util.deleteSelectedObjects(that.brokerUpdater.trustStoresGrid.grid, + "Are you sure you want to delete trust store", + that.management, + { + type: "truststore", + parent: that.modelObj + }, + that.brokerUpdater); + }); + + var addGroupProviderButton = query(".addGroupProvider", contentPane.containerNode)[0]; + connect.connect(registry.byNode(addGroupProviderButton), "onClick", function (evt) + { + addGroupProvider.show(that.controller.management, that.modelObj); + }); + + var deleteGroupProvider = query(".deleteGroupProvider", contentPane.containerNode)[0]; + connect.connect(registry.byNode(deleteGroupProvider), "onClick", function (evt) + { + var warning = ""; + var data = that.brokerUpdater.groupProvidersGrid.grid.selection.getSelected(); + if (data.length && data.length > 0) + { + for (var i = 0; i < data.length; i++) + { + if (data[i].type.indexOf("File") != -1) + { + warning = "NOTE: provider deletion will also remove the group file on disk.\n\n" + break; + } + } + } + + util.deleteSelectedObjects(that.brokerUpdater.groupProvidersGrid.grid, + warning + "Are you sure you want to delete group provider", + that.management, + { + type: "groupprovider", + parent: that.modelObj + }, + that.brokerUpdater); + }); + + var addAccessControlButton = query(".addAccessControlProvider", contentPane.containerNode)[0]; + connect.connect(registry.byNode(addAccessControlButton), "onClick", function (evt) + { + addAccessControlProvider.show(that.management, that.modelObj); + }); + + var deleteAccessControlProviderButton = query(".deleteAccessControlProvider", + contentPane.containerNode)[0]; + connect.connect(registry.byNode(deleteAccessControlProviderButton), "onClick", function (evt) + { + util.deleteSelectedObjects(that.brokerUpdater.accessControlProvidersGrid.grid, + "Are you sure you want to delete access control provider", + that.management, + { + type: "accesscontrolprovider", + parent: that.modelObj + }, + that.brokerUpdater); + }); + + var addLoggerButtonNode = query(".addBrokerLogger", contentPane.containerNode)[0]; + var addLoggerButton = registry.byNode(addLoggerButtonNode); + addLoggerButton.on("click", function (evt) + { + addLogger.show(that.management, that.modelObj, "BrokerLogger"); + }); + + var deleteLoggerButtonNode = query(".deleteBrokerLogger", contentPane.containerNode)[0]; + var deleteLoggerButton = registry.byNode(deleteLoggerButtonNode); + deleteLoggerButton.on("click", function (evt) + { + util.deleteSelectedObjects(that.brokerUpdater.brokerLoggersGrid.grid, + "Are you sure you want to delete broker logger", + that.management, + { + type: "brokerlogger", + parent: that.modelObj + }, + that.brokerUpdater); + }); + + }); + } + }; + + Broker.prototype.close = function () + { + updater.remove(this.brokerUpdater); + }; + + function BrokerUpdater(node, brokerObj, controller) + { + this.controller = controller; + this.accessControlProvidersWarn = query(".broker-access-control-providers-warning", node)[0]; + this.management = controller.management; + this.brokerObj = brokerObj; + var that = this; + + this.management.load(brokerObj, {depth: 2}) + .then(function (data) + { + that.brokerData = data[0]; + + util.flattenStatistics(that.brokerData); + + that.updateHeader(); + + var gridProperties = { + height: 400, + selectionMode: "single", + plugins: { + pagination: { + pageSizes: [10, 25, 50, 100], + description: true, + sizeSwitch: true, + pageStepper: true, + gotoButton: true, + maxPageStep: 4, + position: "bottom" + } + } + }; + + function isActiveVH(item) + { + return item && item.virtualhosts && item.virtualhosts[0].state == "ACTIVE"; + } + + that.vhostsGrid = + new UpdatableStore(that.brokerData.virtualhostnodes, query(".broker-virtualhosts")[0], [{ + name: "Node Name", + field: "name", + width: "8%" + }, { + name: "Node State", + field: "state", + width: "8%" + }, { + name: "Node Type", + field: "type", + width: "8%" + }, { + name: "Default", + field: "defaultVirtualHostNode", + width: "8%", + formatter: function (item) + { + return "<input type='checkbox' disabled='disabled' " + (item ? "checked='checked'" : "") + + " />"; + } + }, { + name: "Host Name", + field: "_item", + width: "8%", + formatter: function (item) + { + return item && item.virtualhosts ? item.virtualhosts[0].name : "N/A"; + } + }, { + name: "Host State", + field: "_item", + width: "15%", + formatter: function (item) + { + return item && item.virtualhosts ? item.virtualhosts[0].state : "N/A"; + } + }, { + name: "Host Type", + field: "_item", + width: "15%", + formatter: function (item) + { + return item && item.virtualhosts ? item.virtualhosts[0].type : "N/A"; + } + }, { + name: "Connections", + field: "_item", + width: "8%", + formatter: function (item)
[... 587 lines stripped ...] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
