You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2016/05/02 17:57:54 UTC

svn commit: r1741993 [8/29] - in /qpid/java/trunk: bdbstore/src/main/java/resources/js/qpid/management/virtualhost/bdb/ bdbstore/src/main/java/resources/js/qpid/management/virtualhost/bdb_ha/ bdbstore/src/main/java/resources/js/qpid/management/virtualh...

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: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org