You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ea...@apache.org on 2016/02/18 19:04:58 UTC

[13/19] qpid-dispatch git commit: moved standalone to a subdir

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/console/plugin/js/qdrCharts.js
----------------------------------------------------------------------
diff --git a/console/plugin/js/qdrCharts.js b/console/plugin/js/qdrCharts.js
deleted file mode 100644
index e484b07..0000000
--- a/console/plugin/js/qdrCharts.js
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-/**
- * @module QDR
- */
-/**
- * @module QDR
- */
-var QDR = (function (QDR) {
-
-  /**
-   * @method ChartsController
-   * @param $scope
-   * @param QDRServer
-   * @param QDRChartServer
-   *
-   * Controller that handles the QDR charts page
-   */
-  QDR.module.controller("QDR.ChartsController", ['$scope', 'QDRService', 'QDRChartService', '$uibModal', '$location',
-  function($scope, QDRService, QDRChartService, $uibModal, $location) {
-    var updateTimer = null;
-
-    QDR.log.debug("started Charts controller");
-    if (!angular.isDefined(QDRService.schema))
-        return;
-
-    $scope.svgCharts = [];
-    // create an svg object for each chart
-    QDRChartService.charts.filter(function (chart) {return chart.dashboard}).forEach(function (chart) {
-        var svgChart = new QDRChartService.AreaChart(chart, $location.$$path)
-        svgChart.zoomed = false;
-        $scope.svgCharts.push(svgChart);
-    })
-
-    // redraw the charts every second
-    var updateCharts = function () {
-        $scope.svgCharts.forEach(function (svgChart) {
-            svgChart.tick(svgChart.chart.id()); // on this page we are using the chart.id() as the div id in which to render the chart
-        })
-        updateHandle = setTimeout(updateCharts, 1100);
-    }
-	$scope.chartsLoaded = function () {
-		setTimeout(updateCharts, 0);
-	}
-
-	$scope.zoomChart = function (chart) {
-		chart.zoomed = !chart.zoomed;
-		chart.zoom(chart.chart.id(), chart.zoomed);
-	}
-    $scope.showListPage = function () {
-        $location.path("/list");
-    };
-
-    $scope.hasCharts = function () {
-        return QDRChartService.numCharts() > 0;
-    };
-
-    $scope.editChart = function (chart) {
-        doDialog("chart-config-template.html", chart.chart);
-    };
-
-    $scope.delChart = function (chart) {
-        QDRChartService.unRegisterChart(chart.chart);
-        // remove from svgCharts
-        $scope.svgCharts.forEach(function (svgChart, i) {
-            if (svgChart === chart) {
-                delete $scope.svgCharts.splice(i, 1);
-            }
-        })
-    };
-
-    // called from dialog when we want to clone the dialog chart
-    // the chart argument here is a QDRChartService chart
-    $scope.addChart = function (chart) {
-        $scope.svgCharts.push(new QDRChartService.AreaChart(chart, $location.$$path));
-    };
-
-    $scope.$on("$destroy", function( event ) {
-        if (updateTimer) {
-            cancelTimer(updateTimer);
-            updateTimer = null;
-        }
-        for (var i=$scope.svgCharts.length-1; i>=0; --i) {
-            delete $scope.svgCharts.splice(i, 1);
-        }
-    });
-
-    function doDialog(template, chart) {
-
-	    var modalInstance = $uibModal.open({
-	      animation: true,
-	      templateUrl: template,
-	      controller: 'QDR.ChartDialogController',
-	      resolve: {
-	        chart: function () {
-	          return chart;
-	        },
-	        dashboard: function () {
-	            return $scope;
-	        }
-	      }
-	    });
-    };
-
-  }]);
-
-  QDR.module.controller("QDR.ChartDialogController", function($scope, QDRChartService, $location, $uibModalInstance, $rootScope, chart, dashboard) {
-        var dialogSvgChart = null;
-        $scope.svgDivId = "dialogChart";    // the div id for the svg chart
-
-		$scope.updateTimer = null;
-        $scope.chart = chart;  // the underlying chart object from the dashboard
-        $scope.dialogChart = $scope.chart.copy(); // the chart object for this dialog
-        $scope.userTitle = $scope.chart.title();
-
-        $scope.$watch('userTitle', function(newValue, oldValue) {
-            if (newValue !== oldValue) {
-                $scope.dialogChart.title(newValue);
-            }
-        })
-        // the stored rateWindow is in milliseconds, but the slider is in seconds
-        $scope.rateWindow = $scope.chart.rateWindow / 1000;
-
-		var cleanup = function () {
-			if ($scope.updateTimer) {
-				clearTimeout($scope.updateTimer);
-				$scope.updateTimer = null;
-			}
-			QDRChartService.unRegisterChart($scope.dialogChart);     // remove the chart
-		}
-		$scope.okClick = function () {
-			cleanup();
-	        $uibModalInstance.close();
-	    };
-
-        // initialize the rateWindow slider
-        $scope.slider = {
-            'options': {
-                min: 1,
-                max: 10,
-                step: 1,
-                tick: true,
-                stop: function (event, ui) {
-                    $scope.dialogChart.rateWindow = ui.value * 1000;
-                    if (dialogSvgChart)
-                        dialogSvgChart.tick($scope.svgDivId);
-                }
-            }
-		};
-
-        $scope.visibleDuration =
-        $scope.duration = {
-            'options': {
-                min: 1,
-                max: 10,
-                step: 1,
-                tick: true,
-                stop: function (event, ui) {
-                    if (dialogSvgChart)
-                        dialogSvgChart.tick($scope.svgDivId);
-                }
-            }
-		};
-
-        // handle the Apply button click
-        // update the dashboard chart's properties
-        $scope.apply = function () {
-            $scope.chart.areaColor = $scope.dialogChart.areaColor;
-            $scope.chart.lineColor = $scope.dialogChart.lineColor;
-            $scope.chart.type = $scope.dialogChart.type;
-            $scope.chart.rateWindow = $scope.dialogChart.rateWindow;
-            $scope.chart.title($scope.dialogChart.title());
-            $scope.chart.visibleDuration = $scope.dialogChart.visibleDuration;
-            QDRChartService.saveCharts();
-        }
-
-        // add a new chart to the dashboard based on the current dialog settings
-        $scope.copyToDashboard = function () {
-            var chart = $scope.dialogChart.copy();
-            // set the new chart's dashboard state
-            QDRChartService.addDashboard(chart);
-            // notify the chart controller that it needs to display a new chart
-            dashboard.addChart(chart);
-        }
-
-        // update the chart on the popup dialog
-        var updateDialogChart = function () {
-            // draw the chart using the current data
-            if (dialogSvgChart)
-                dialogSvgChart.tick($scope.svgDivId);
-
-            // draw the chart again in 1 second
-            $scope.updateTimer = setTimeout(updateDialogChart, 1000);
-        }
-
-        var showChart = function () {
-            // ensure the div for our chart is loaded in the dom
-            var div = angular.element("#dialogChart");
-            if (!div.width()) {
-                setTimeout(showChart, 100);
-                return;
-            }
-            dialogSvgChart = new QDRChartService.AreaChart($scope.dialogChart, $location.$$path);
-            updateDialogChart();
-        }
-        showChart();
-
-
-  });
-
-  return QDR;
-
-}(QDR || {}));
-

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/console/plugin/js/qdrList.js
----------------------------------------------------------------------
diff --git a/console/plugin/js/qdrList.js b/console/plugin/js/qdrList.js
deleted file mode 100644
index 7352d82..0000000
--- a/console/plugin/js/qdrList.js
+++ /dev/null
@@ -1,474 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-/**
- * @module QDR
- */
-var QDR = (function(QDR) {
-
-  /**
-   * @method ListController
-   * @param $scope
-   * @param QDRService
-   *
-   * Controller for the main interface
-   */
-	QDR.module.controller("QDR.ListController", ['$scope', '$location', 'uiGridConstants', 'QDRService', 'QDRChartService', '$uibModal',
-		function ($scope, $location, uiGridConstants, QDRService, QDRChartService, $uibModal) {
-
-		//QDR.log.debug("started List controller");
-		if (!angular.isDefined(QDRService.schema))
-			return;
-		$scope.selectedAction = localStorage['QDRSelectedAction'];
-		$scope.selectedNode = localStorage['QDRSelectedNode'];
-		$scope.selectedNodeId = localStorage['QDRSelectedNodeId'];
-		$scope.selectedRecordName = localStorage['QDRSelectedRecordName'];
-
-		var excludedEntities = ["management", "org.amqp.management", "operationalEntity", "entity", "configurationEntity", "dummy", "console"];
-		var aggregateEntities = ["router.address"];
-
-		$scope.entities = [];
-		for (var entity in QDRService.schema.entityTypes) {
-			if (excludedEntities.indexOf(entity) == -1) {
-				$scope.entities.push( {
-					title: angular.isDefined(QDRService.schema.entityTypes[entity].description) ? QDRService.schema.entityTypes[entity].description : '',
-					humanName: QDRService.humanify(entity),
-					name: entity}
-				 );
-			}
-		}
-		if (!angular.isDefined($scope.selectedAction)) {
-			$scope.selectedAction = $scope.entities[0].name;
-			//QDR.log.debug("defaulted selectedAction to " + $scope.selectedAction);
-		}
-
-		$scope.nodes = QDRService.nodeList().sort(function (a, b) { return a.name.toLowerCase() > b.name.toLowerCase()});
-		if (!angular.isDefined($scope.selectedNode)) {
-			//QDR.log.debug("selectedNode was " + $scope.selectedNode);
-			if ($scope.nodes.length > 0) {
-				$scope.selectedNode = $scope.nodes[0].name;
-				$scope.selectedNodeId = $scope.nodes[0].id;
-				//QDR.log.debug("forcing selectedNode to " + $scope.selectedNode);
-			}
-		}
-
-		$scope.isActionActive = function(name) {
-			//QDR.log.debug("isActionActive(" + name + ")  selectedAction is " + $scope.selectedAction);
-			return $scope.selectedAction === name;
-		};
-		$scope.isNodeSelected = function (id) {
-			return $scope.selectedNodeId === id;
-		};
-
-		$scope.selectNode = function(node) {
-			//QDR.log.debug("setting selectedNode to " + node.name);
-			$scope.selectedNode = node.name;
-			$scope.selectedNodeId = node.id;
-			//QDR.log.debug("location is " + $location.url());
-			$location.search('n', node.name);
-		};
-		$scope.selectAction = function(action) {
-			$scope.selectedAction = action;
-			$location.search('a', action);
-			//QDR.log.debug("selectAction called with " + action + "  location is now " + $location.url());
-		};
-
-		$scope.$watch('selectedAction', function(newValue, oldValue) {
-			if (newValue !== oldValue) {
-				localStorage['QDRSelectedAction'] = $scope.selectedAction;
-				//QDR.log.debug("saving selectedAction as " + $scope.selectedAction + " newValue is " + newValue);
-			}
-		})
-		$scope.$watch('selectedNode', function(newValue, oldValue) {
-		    if (newValue !== oldValue) {
-				localStorage['QDRSelectedNode'] = $scope.selectedNode;
-				localStorage['QDRSelectedNodeId'] = $scope.selectedNodeId;
-				//QDR.log.debug("saving selectedNode as " + $scope.selectedNode + " newValue is " + newValue);
-			}
-		})
-		$scope.$watch('selectedRecordName', function(newValue, oldValue) {
-			if (newValue != oldValue) {
-				localStorage['QDRSelectedRecordName'] = $scope.selectedRecordName;
-				//QDR.log.debug("saving selectedRecordName as " + $scope.selectedRecordName);
-			}
-		})
-
-		$scope.tableRows = [];
-		var selectedRowIndex = 0;
-		var updateTableData = function (entity) {
-			var gotNodeInfo = function (nodeName, dotentity, response) {
-				//QDR.log.debug("got results for  " + nodeName);
-				//console.dump(response);
-
-				var records = response.results;
-				var aggregates = response.aggregates;
-				var attributeNames = response.attributeNames;
-				var nameIndex = attributeNames.indexOf("name");
-				var ent = QDRService.schema.entityTypes[entity];
-				var tableRows = [];
-				for (var i=0; i<records.length; ++i) {
-					var record = records[i];
-					var aggregate = aggregates ? aggregates[i] : undefined;
-					var row = {};
-					var rowName;
-					if (nameIndex > -1) {
-						rowName = record[nameIndex];
-					} else {
-						QDR.log.error("response attributeNames did not contain a name field");
-						console.dump(response.attributeNames);
-						return;
-					}
-					if (rowName == $scope.selectedRecordName)
-						selectedRowIndex = i;
-					for (var j=0; j<attributeNames.length; ++j) {
-						var col = attributeNames[j];
-						row[col] = {value: record[j], type: undefined, graph: false, title: '', aggregate: '', aggregateTip: ''};
-						if (ent) {
-							var att = ent.attributes[col];
-							if (att) {
-								row[col].type = att.type;
-								row[col].graph = att.graph;
-								row[col].title = att.description;
-
-								if (aggregate) {
-									if (att.graph) {
-										row[col].aggregate = att.graph ? aggregate[j].sum : '';
-										var tip = [];
-										aggregate[j].detail.forEach( function (line) {
-											tip.push(line);
-										})
-										row[col].aggregateTip = angular.toJson(tip);
-									}
-								}
-							}
-						}
-					}
-					tableRows.push(row);
-				}
-				setTimeout(selectRow, 0, tableRows);
-			}
-
-			// if this entity should show an aggregate column, send the request to get the info for this entity from all the nedes
-			if (aggregateEntities.indexOf(entity) > -1) {
-				var nodeInfo = QDRService.topology.nodeInfo();
-				QDRService.getMultipleNodeInfo(Object.keys(nodeInfo), entity, [], gotNodeInfo, $scope.selectedNodeId);
-			} else {
-				QDRService.getNodeInfo($scope.selectedNodeId, '.' + entity, [], gotNodeInfo);
-			}
-		};
-
-		// tableRows are the records that were returned, this populates the left hand table on the page
-		var selectRow = function (tableRows) {
-			$scope.tableRows = tableRows;
-			// must apply scope here to update the tableRows before selecting the row
-			$scope.$apply();
-            $scope.gridApi.selection.selectRow($scope.tableRows[selectedRowIndex]);
-			fixTooltips();
-		}
-
-		$scope.getTableHeight = function() {
-	       return {height: ($scope.tableRows.length * 30) + "px"};
-	    };
-	    var titleFromAlt = function (alt) {
-			if (alt && alt.length) {
-				var data = angular.fromJson(alt);
-				var table = "<table class='tiptable'><tbody>";
-				data.forEach (function (row) {
-					table += "<tr>";
-					table += "<td>" + row.node + "</td><td align='right'>" + QDRService.pretty(row.val) + "</td>";
-					table += "</tr>"
-				})
-				table += "</tbody></table>"
-				return table;
-			}
-			return '';
-	    }
-		var fixTooltips = function () {
-			if ($('.hastip').length == 0) {
-				setTimeout(fixTooltips, 100);
-				return;
-			}
-			$('.hastip').each( function (i, tip) {
-				var tipset = tip.getAttribute('tipset')
-				if (!tipset) {
-					$(tip).tipsy({html: true, className: 'subTip', opacity: 1, title: function () {
-						return titleFromAlt(this.getAttribute('alt'))
-					} });
-					tip.setAttribute('tipset', true)
-				} else {
-					var title = titleFromAlt(tip.getAttribute('alt'))
-					tip.setAttribute('original-title', title)
-				}
-/*
-				$(tip).tipsy({html: true, className: 'subTip', opacity: 1, title: function () {
-					var alt = this.getAttribute('alt');
-					if (alt && alt.length) {
-						var data = angular.fromJson(alt);
-						var table = "<table class='tiptable'><tbody>";
-						data.forEach (function (row) {
-							table += "<tr>";
-							table += "<td>" + row.node + "</td><td align='right'>" + QDRService.pretty(row.val) + "</td>";
-							table += "</tr>"
-						})
-						table += "</tbody></table>"
-						return table;
-					}
-					return '';
-				} });
-				*/
-			})
-		}
-		$scope.selectedEntity = undefined;
-		for (var i=0; i<$scope.entities.length; ++i) {
-			if ($scope.selectedAction === $scope.entities[i].name) {
-				$scope.selectedEntity = $scope.entities[i].name;
-				break;
-			}
-		}
-		if (!angular.isDefined($scope.selectedEntity)) {
-			$scope.selectedAction = $scope.entities[0].name;
-			$scope.selectedEntity = $scope.entities[0].name;
-		}
-		var savedCharts = angular.fromJson(localStorage['QDRListCharts']);
-		var getCurrentSavedCharts = function () {
-			if (angular.isDefined(savedCharts)) {
-				if (angular.isDefined(savedCharts[$scope.selectedEntity])) {
-					//graphFields = savedCharts[$scope.selectedEntity];
-				}
-			} else {
-				savedCharts = {};
-			}
-		}
-		getCurrentSavedCharts();
-
-		//QDR.log.debug("using entity of " + $scope.selectedEntity);
-		var stop = undefined;
-
-		// The left-hand table that lists the names
-		var gridCols = [
-			{ field: 'name',
-			  displayName: '',
-			  cellTemplate: '<div class="ngCellText"><span ng-cell-text>{{row.entity.name.value}}</span></div>'
-			}
-		];
-		// the table on the left of the page contains the name field for each record that was returned
-		$scope.gridDef = {
-			data: 'tableRows',
-			hideHeader: true,
-			showHeader: false,
-			enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
-			enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
-			columnDefs: gridCols,
-			enableColumnResize: true,
-			multiSelect: false,
-			enableRowHeaderSelection: false,
-			noUnselect: true,
-			enableSelectAll: false,
-			enableRowSelection: true,
-			onRegisterApi: function (gridApi) {
-				$scope.gridApi = gridApi;
-				gridApi.selection.on.rowSelectionChanged($scope, function(row) {
-					if (row.isSelected)  {
-						selectedRowIndex = row.rowIndex;
-						$scope.selectedRecordName = row.entity.name.value;
-						var details = [];
-						// for each field in the new row, add a row in the details grid
-						for (var name in row.entity) {
-							details.push( { attributeName: QDRService.humanify(name),
-											attributeValue: QDRService.pretty(row.entity[name].value),
-											type: row.entity[name].type,
-											name: name,
-											rawValue: row.entity[name].value,
-											graph: row.entity[name].graph,
-											title: row.entity[name].title,
-											aggregateValue: QDRService.pretty(row.entity[name].aggregate),
-											aggregateTip: row.entity[name].aggregateTip})
-						}
-						setTimeout(updateDetails, 10, details);
-					}
-				});
-		    }
-		};
-
-		$scope.detailFields = [];
-		updateDetails = function (details) {
-			$scope.detailFields = details;
-			$scope.$apply();
-		}
-
-		$scope.isFieldGraphed = function(rowEntity, aggregate) {
-			var dot = !aggregate ? '.' : '';
-			return QDRChartService.isAttrCharted($scope.selectedNodeId, dot + $scope.selectedEntity, $scope.selectedRecordName, rowEntity.name);
-		}
-
-		$scope.addToGraph = function(rowEntity) {
-			var chart = QDRChartService.registerChart($scope.selectedNodeId, "." + $scope.selectedEntity, $scope.selectedRecordName, rowEntity.name, 1000);
-			doDialog("template-from-script.html", chart);
-			reset();
-		}
-
-		$scope.addAllToGraph = function(rowEntity) {
-			var chart = QDRChartService.registerChart($scope.selectedNodeId,
-						$scope.selectedEntity,
-						$scope.selectedRecordName,
-						rowEntity.name,
-						1000,
-						false,
-						true);
-			doDialog("template-from-script.html", chart);
-			reset();
-		}
-
-		var detailCols = [
-			 {
-				 field: 'attributeName',
-				 cellTemplate: '<div title="{{row.entity.title}}" class="listAttrName">{{row.entity.name}}<i ng-if="row.entity.graph" ng-click="grid.appScope.addToGraph(row.entity)" ng-class="{\'active\': grid.appScope.isFieldGraphed(row.entity, false), \'icon-bar-chart\': row.entity.graph == true }"></i></div>',
-				 displayName: 'Attribute'
-			 },
-			 {
-				 field: 'attributeValue',
-				 displayName: 'Value'
-			 }
-		];
-		if (aggregateEntities.indexOf($scope.selectedEntity) > -1) {
-			detailCols.push(
-			 {
-				 width: '10%',
-				 field: 'aggregateValue',
-				 displayName: 'Aggregate',
-				 cellTemplate: '<div class="hastip" alt="{{row.entity.aggregateTip}}">{{row.entity.aggregateValue}}<i ng-if="row.entity.graph" ng-click="grid.appScope.addAllToGraph(row.entity)" ng-class="{\'active\': grid.appScope.isFieldGraphed(row.entity, true), \'icon-bar-chart\': row.entity.graph == true }"></i></div>',
-				 cellClass: 'aggregate'
-			 }
-			)
-		}
-
-		// the table on the right of the page contains a row for each field in the selected record in the table on the left
-		$scope.details = {
-			data: 'detailFields',
-			columnDefs: detailCols,
-			enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
-			enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
-			enableColumnResize: true,
-			multiSelect: false,
-			enableRowHeaderSelection: false,
-			noUnselect: true,
-			enableSelectAll: false,
-			enableRowSelection: true
-		};
-
-		updateTableData($scope.selectedEntity);
-		stop = setInterval(updateTableData, 5000, $scope.selectedEntity);
-		$scope.getDetailsTableHeight = function() {
-	       return {height: ($scope.detailFields.length * 30) + "px"};
-	    };
-
-		$scope.$on("$destroy", function( event ) {
-			//QDR.log.debug("scope destroyed for qdrList");
-			reset();
-			if (angular.isDefined(stop)) {
-				clearInterval(stop);
-				stop = undefined;
-			};
-		});
-
-		var reset = function () {
-			if ($scope.context) {
-				$scope.context.stop();
-				$scope.context = null;
-			}
-		};
-
-		function doDialog(template, chart) {
-
-		    var modalInstance = $uibModal.open({
-		      animation: true,
-		      templateUrl: template,
-		      controller: 'QDR.ListChartController',
-		      resolve: {
-		        chart: function () {
-		          return chart;
-		        }
-		      }
-		    });
-		};
-
-	}]);
-
-
-	QDR.module.controller('QDR.ListChartController', function ($scope, $uibModalInstance, $location, QDRChartService, chart) {
-
-	    $scope.chart = chart;
-		$scope.dialogSvgChart = null;
-		$scope.updateTimer = null;
-		$scope.svgDivId = "dialogChart";    // the div id for the svg chart
-
-		$scope.showChartsPage = function () {
-			cleanup();
-		    $uibModalInstance.close();
-			$location.path("/charts");
-		};
-
-		$scope.addChartsPage = function () {
-			QDRChartService.addDashboard($scope.chart);
-		};
-
-		$scope.delChartsPage = function () {
-			QDRChartService.delDashboard($scope.chart);
-		};
-
-		$scope.isOnChartsPage = function () {
-			return $scope.chart.dashboard;
-		}
-
-		var showChart = function () {
-			// the chart divs are generated by angular and aren't available immediately
-			var div = angular.element("#" + $scope.svgDivId);
-			if (!div.width()) {
-				setTimeout(showChart, 100);
-				return;
-			}
-			dialogSvgChart = new QDRChartService.AreaChart($scope.chart, $location.$$path);
-			$scope.dialogSvgChart = dialogSvgChart;
-			updateDialogChart();
-		}
-		showChart();
-
-		var updateDialogChart = function () {
-			if ($scope.dialogSvgChart)
-				$scope.dialogSvgChart.tick($scope.svgDivId);
-			$scope.updateTimer = setTimeout(updateDialogChart, 1000);
-		}
-
-		var cleanup = function () {
-			if ($scope.updateTimer) {
-				clearTimeout($scope.updateTimer);
-				$scope.updateTimer = null;
-			}
-			if (!$scope.chart.dashboard)
-				QDRChartService.unRegisterChart(chart);     // remove the chart
-
-		}
-		$scope.ok = function () {
-			cleanup();
-	        $uibModalInstance.close();
-	    };
-
-	});
-    return QDR;
-
-} (QDR || {}));

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/console/plugin/js/qdrOverview.js
----------------------------------------------------------------------
diff --git a/console/plugin/js/qdrOverview.js b/console/plugin/js/qdrOverview.js
deleted file mode 100644
index d787a5e..0000000
--- a/console/plugin/js/qdrOverview.js
+++ /dev/null
@@ -1,696 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-/**
- * @module QDR
- */
-/**
- * @module QDR
- */
-var QDR = (function (QDR) {
-
-  /**
-   * @method OverviewController
-   * @param $scope
-   * @param QDRService
-   * @param QDRChartServer
-   * dialogServer
-   * $location
-   *
-   * Controller that handles the QDR overview page
-   */
-	QDR.module.controller("QDR.OverviewController", ['$scope', 'uiGridConstants', 'QDRService', function($scope, uiGridConstants, QDRService) {
-
-
-		if (!angular.isDefined(QDRService.schema))
-		    return;
-
-		var nodeIds = QDRService.nodeIdList();
-		var currentTimer;
-		var refreshInterval = 5000
-		var Folder = (function () {
-            function Folder(title) {
-                this.title = title;
-				this.children = [];
-				this.folder = true;
-            }
-            return Folder;
-        })();
-		var Leaf = (function () {
-            function Leaf(title) {
-                this.title = title;
-            }
-            return Leaf;
-        })();
-	    $scope.modes = [
-	    	{title: 'Overview', name: 'Overview', right: false}
-	    	];
-
-		$scope.templates =
-		    [ { name: 'Routers', url: 'routers.html'},
-		      { name: 'Router', url: 'router.html'},
-              { name: 'Addresses', url: 'addresses.html'},
-		      { name: 'Address', url: 'address.html'},
-              { name: 'Connections', url: 'connections.html'},
-		      { name: 'Connection', url: 'connection.html'},
-              { name: 'Logs', url: 'logs.html'},
-              { name: 'Log', url: 'log.html'} ];
-
-		$scope.getGridHeight = function (data) {
-	       // add 1 for the header row
-	       return {height: (($scope[data.data].length + 1) * 30) + "px"};
-		}
-		$scope.overview = new Folder("Overview");
-
-		$scope.allRouterFields = [];
-		var allRouterCols = [
-			 {
-				 field: 'routerId',
-				 displayName: 'Router'
-			 },
-			 {
-				 field: 'area',
-				 displayName: 'Area'
-			 },
-			 {
-				 field: 'mode',
-				 displayName: 'Mode'
-			 },
-			 {
-				 field: 'connections',
-				 displayName: 'External connections'
-			 },
-             {
-                 field: 'addrCount',
-                 displayName: 'Address count'
-             },
-             {
-                 field: 'linkCount',
-                 displayName: 'Link count'
-             }
-		];
-		$scope.allRouters = {
-			data: 'allRouterFields',
-			columnDefs: allRouterCols,
-			enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
-            enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
-			enableColumnResize: true,
-			multiSelect: false,
-			enableRowHeaderSelection: false,
-			noUnselect: true,
-			enableSelectAll: false,
-			enableRowSelection: true,
-			onRegisterApi: function (gridApi) {
-				gridApi.selection.on.rowSelectionChanged($scope, function(row) {
-					if (row.isSelected) {
-						var nodeId = row.entity.nodeId;
-						$("#overtree").fancytree("getTree").activateKey(nodeId);
-					}
-				});
-		    }
-		};
-		// get info for all routers
-		var allRouterInfo = function () {
-			nodeIds = QDRService.nodeIdList()
-			var expected = Object.keys(nodeIds).length
-			var received = 0;
-			var allRouterFields = [];
-			var gotNodeInfo = function (nodeName, entity, response) {
-				var results = response.results;
-				var name = QDRService.nameFromId(nodeName)
-				var connections = 0;
-				results.forEach( function (result) {
-					var role = QDRService.valFor(response.attributeNames, result, "role")
-					if (role != 'inter-router') {
-						++connections
-					}
-				})
-				allRouterFields.push({routerId: name, connections: connections, nodeId: nodeName})
-				++received
-				if (expected == received) {
-					allRouterFields.sort ( function (a,b) { return a.routerId < b.routerId ? -1 : a.routerId > b.routerId ? 1 : 0})
-					// now get each router's node info
-					QDRService.getMultipleNodeInfo(nodeIds, "router", [], function (nodeIds, entity, response) {
-						var results = response.aggregates
-						results.forEach ( function (result) {
-
-							var routerId = QDRService.valFor(response.attributeNames, result, "routerId").sum
-							allRouterFields.some( function (connField) {
-								if (routerId === connField.routerId) {
-									response.attributeNames.forEach ( function (attrName) {
-										connField[attrName] = QDRService.valFor(response.attributeNames, result, attrName).sum
-									})
-									return true
-								}
-								return false
-							})
-						})
-						$scope.allRouterFields = allRouterFields
-						$scope.$apply()
-						if (currentTimer) {
-							clearTimeout(currentTimer)
-						}
-						currentTimer = setTimeout(allRouterInfo, refreshInterval);
-					}, nodeIds[0])
-				}
-			}
-			nodeIds.forEach ( function (nodeId) {
-				QDRService.getNodeInfo(nodeId, ".connection", ["role"], gotNodeInfo)
-			})
-
-		}
-
-		// get info for a single router
-		var routerInfo = function (node) {
-			$scope.router = node
-			$scope.routerFields = []
-			var cols = [
-				 {
-					 field: 'attribute',
-					 displayName: 'Attribute',
-					 width: '40%'
-				 },
-				 {
-					 field: 'value',
-					 displayName: 'Value',
-					 width: '40%'
-				 }
-			]
-			$scope.routerGrid = {
-				data: 'routerFields',
-				columnDefs: cols,
-				enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
-	            enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
-				enableColumnResize: true,
-				multiSelect: false
-			}
-
-			$scope.allRouterFields.some( function (field) {
-				if (field.routerId === node.title) {
-					Object.keys(field).forEach ( function (key) {
-						if (key !== '$$hashKey')
-							$scope.routerFields.push({attribute: key, value: field[key]})
-					})
-					return true
-				}
-			})
-
-			$scope.$apply()
-			if (currentTimer) {
-				clearTimeout(currentTimer)
-				currentTimer = null
-			}
-		}
-
-		// get info for a all addresses
-		var allAddressInfo = function () {
-			$scope.addressFields = []
-			var addressCols = [
-				 {
-					 field: 'address',
-					 displayName: 'address'
-				 },
-				 {
-					 field: 'class',
-					 displayName: 'class'
-				 },
-				 {
-					 field: 'phase',
-					 displayName: 'phase',
-					 cellClass: 'grid-align-value'
-				 },
-				 {
-					 field: 'inproc',
-					 displayName: 'in-proc'
-				 },
-				 {
-					 field: 'local',
-					 displayName: 'local',
-					 cellClass: 'grid-align-value'
-				 },
-				 {
-					 field: 'remote',
-					 displayName: 'remote',
-					 cellClass: 'grid-align-value'
-				 },
-				 {
-					 field: 'in',
-					 displayName: 'in',
-					 cellClass: 'grid-align-value'
-				 },
-				 {
-					 field: 'out',
-					 displayName: 'out',
-					 cellClass: 'grid-align-value'
-				 }
-			]
-			$scope.selectedAddresses = []
-			$scope.addressGrid = {
-				data: 'addressFields',
-				columnDefs: addressCols,
-				enableColumnResize: true,
-				enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
-	            enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
-				multiSelect: false,
-				enableRowHeaderSelection: false,
-				noUnselect: true,
-				enableSelectAll: false,
-				enableRowSelection: true,
-				onRegisterApi: function (gridApi) {
-					gridApi.selection.on.rowSelectionChanged($scope, function(row) {
-						if (row.isSelected) {
-							var key = row.entity.uid;
-							$("#overtree").fancytree("getTree").activateKey(key);
-						}
-					});
-			    }
-			}
-
-			var gotAllAddressFields = function ( addressFields ) {
-				$scope.addressFields = 	addressFields
-				$scope.$apply()
-				if (currentTimer) {
-					clearTimeout(currentTimer)
-				}
-				currentTimer = setTimeout(allAddressInfo, refreshInterval);
-			}
-			getAllAddressFields(gotAllAddressFields)
-		}
-
-		var getAllAddressFields = function (callback) {
-			var addr_class = function (addr) {
-				if (!addr) return "-"
-		        if (addr[0] == 'M')  return "mobile"
-		        if (addr[0] == 'R')  return "router"
-		        if (addr[0] == 'A')  return "area"
-		        if (addr[0] == 'L')  return "local"
-		        if (addr[0] == 'C')  return "link-incoming"
-		        if (addr[0] == 'D')  return "link-outgoing"
-		        return "unknown: " + addr[0]
-			}
-
-			var addr_text = function (addr) {
-		        if (!addr)
-		            return "-"
-		        if (addr[0] == 'M')
-		            return addr.substring(2)
-		        else
-		            return addr.substring(1)
-			}
-
-			var addr_phase = function (addr) {
-		        if (!addr)
-		            return "-"
-		        if (addr[0] == 'M')
-		            return addr[1]
-		        return ''
-			}
-
-			var identity_clean = function (identity) {
-		        if (!identity)
-		            return "-"
-		        var pos = identity.indexOf('/')
-		        if (pos >= 0)
-		            return identity.substring(pos + 1)
-		        return identity
-			}
-
-			var addressFields = []
-			nodeIds = QDRService.nodeIdList()
-			QDRService.getMultipleNodeInfo(nodeIds, "router.address", [], function (nodeIds, entity, response) {
-				response.aggregates.forEach( function (result) {
-					var prettySum = function (field) {
-						var fieldIndex = response.attributeNames.indexOf(field)
-						if (fieldIndex < 0) {
-							return "-"
-						}
-						var val = result[fieldIndex].sum
-						return QDRService.pretty(val)
-					}
-
-					var uid = QDRService.valFor(response.attributeNames, result, "identity").sum
-					var identity = identity_clean(uid)
-
-					addressFields.push({
-						address: addr_text(identity),
-						'class': addr_class(identity),
-						phase:   addr_phase(identity),
-						inproc:  prettySum("inProcess"),
-						local:   prettySum("subscriberCount"),
-						remote:  prettySum("remoteCount"),
-						'in':    prettySum("deliveriesIngress"),
-						out:     prettySum("deliveriesEgress"),
-						thru:    prettySum("deliveriesTransit"),
-						toproc:  prettySum("deliveriesToContainer"),
-						fromproc:prettySum("deliveriesFromContainer"),
-						uid:     uid
-					})
-				})
-				callback(addressFields)
-			}, nodeIds[0])
-		}
-
-
-		// get info for a all connections
-		var allConnectionInfo = function () {
-			$scope.allConnectionFields = []
-			var allConnectionCols = [
-				 {
-					 field: 'host',
-					 displayName: 'host'
-				 },
-				 {
-					 field: 'container',
-					 displayName: 'container'
-				 },
-				 {
-					 field: 'role',
-					 displayName: 'role'
-				 },
-				 {
-					 field: 'dir',
-					 displayName: 'dir'
-				 },
-				 {
-					 field: 'security',
-					 displayName: 'security'
-				 },
-				 {
-					 field: 'authentication',
-					 displayName: 'authentication'
-				 }
-			]
-			$scope.allConnectionGrid = {
-				data: 'allConnectionFields',
-				columnDefs: allConnectionCols,
-				enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
-	            enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
-				enableColumnResize: true,
-				multiSelect: false,
-				enableRowHeaderSelection: false,
-				noUnselect: true,
-				enableSelectAll: false,
-				enableRowSelection: true,
-				onRegisterApi: function (gridApi) {
-					gridApi.selection.on.rowSelectionChanged($scope, function(row) {
-						if (row.isSelected) {
-							var host = row.entity.host;
-							$("#overtree").fancytree("getTree").activateKey(host);
-						}
-					});
-			    }
-			}
-			connections.children.forEach( function (connection) {
-				$scope.allConnectionFields.push(connection.fields)
-			})
-			$scope.$apply()
-			if (currentTimer) {
-				clearTimeout(currentTimer)
-				currentTimer = null
-			}
-		}
-
-		// get info for a single address
-		var addressInfo = function (address) {
-			$scope.address = address
-			$scope.addressFields = []
-			var cols = [
-				 {
-					 field: 'attribute',
-					 displayName: 'Attribute',
-					 width: '40%'
-				 },
-				 {
-					 field: 'value',
-					 displayName: 'Value',
-					 width: '40%'
-				 }
-			]
-			$scope.addressGrid = {
-				data: 'addressFields',
-				columnDefs: cols,
-				enableColumnResize: true,
-				enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
-	            enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
-				multiSelect: false
-			}
-
-			var fields = Object.keys(address.data.fields)
-			fields.forEach( function (field) {
-				if (field != "title" && field != "uid")
-					$scope.addressFields.push({attribute: field, value: address.data.fields[field]})
-			})
-
-			$scope.$apply()
-			if (currentTimer) {
-				clearTimeout(currentTimer)
-				currentTimer = null
-			}
-		}
-
-		// get info for a single connection
-		var connectionInfo = function (connection) {
-			$scope.connection = connection
-			$scope.connectionFields = []
-			var cols = [
-				 {
-					 field: 'attribute',
-					 displayName: 'Attribute',
-					 width: '40%'
-				 },
-				 {
-					 field: 'value',
-					 displayName: 'Value',
-					 width: '40%'
-				 }
-			]
-			$scope.connectionGrid = {
-				data: 'connectionFields',
-				columnDefs: cols,
-				enableColumnResize: true,
-				enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
-	            enableVerticalScrollbar: uiGridConstants.scrollbars.NEVER,
-				multiSelect: false
-			}
-
-			var fields = Object.keys(connection.data.fields)
-			fields.forEach( function (field) {
-				$scope.connectionFields.push({attribute: field, value: connection.data.fields[field]})
-			})
-
-			$scope.$apply()
-			if (currentTimer) {
-				clearTimeout(currentTimer)
-				currentTimer = null
-			}
-		}
-
-		// get info for a all logs
-		var allLogInfo = function () {
-		}
-
-		// get info for a single log
-		var logInfo = function (node) {
-			$scope.log = node
-		}
-
-		var activated = function (event, node) {
-			//QDR.log.debug("node activated: " + node.data.title)
-			node = node.node;
-			var type = node.data.type;
-			var template = $scope.templates.filter( function (tpl) {
-				return tpl.name == type;
-			})
-			$scope.template = template[0];
-			// Call the function associated with this type passing in the node that was selected
-			// In dynatree I could save the function to call in the node, but not in FancyTree
-			if (treeTypeMap[type])
-				treeTypeMap[type](node);
-
-			/*if (node.data.info)
-				node.data.info(node)
-			*/
-			$scope.$apply();
-		}
-        $scope.template = $scope.templates[0];
-
-		var routers = new Folder("Routers")
-		routers.type = "Routers"
-		//routers.info = allRouterInfo
-		routers.focus = true
-		routers.expanded = true
-		routers.key = "Routers"
-		$scope.overview.children.push(routers)
-		nodeIds.forEach( function (node) {
-			var name = QDRService.nameFromId(node)
-			var router = new Leaf(name)
-			router.type = "Router"
-			//router.info = routerInfo
-			router.nodeId = node
-			router.key = node
-			routers.children.push(router)
-		})
-
-		var expected = nodeIds.length;
-		var addresses = new Folder("Addresses")
-		addresses.type = "Addresses"
-		//addresses.info = allAddressInfo
-		addresses.key = "Addresses"
-		$scope.overview.children.push(addresses)
-
-		var gotAddressFields = function (addressFields) {
-			addressFields.sort ( function (a,b) { return a.address < b.address ? -1 : a.address > b.address ? 1 : 0})
-			addressFields[0].title = addressFields[0].address
-			for (var i=1; i<addressFields.length; ++i) {
-				if (addressFields[i].address === addressFields[i-1].address) {
-					addressFields[i-1].title = addressFields[i-1].address + " (" + addressFields[i-1]['class'] + ")"
-					addressFields[i].title = addressFields[i].address + " (" + addressFields[i]['class'] + ")"
-				} else
-					addressFields[i].title = addressFields[i].address
-			}
-			addressFields.forEach( function (address) {
-				var a = new Leaf(address.title)
-				//a.info = addressInfo
-				a.key = address.uid
-				a.fields = address
-				a.type = "Address"
-				addresses.children.push(a)
-			} )
-		}
-		getAllAddressFields(gotAddressFields)
-
-
-		var connreceived = 0;
-		var connectionsObj = {}
-		var connections = new Folder("Connections")
-		connections.type = "Connections"
-		//connections.info = allConnectionInfo
-		connections.key = "Connections"
-		$scope.overview.children.push(connections)
-		nodeIds.forEach( function (nodeId) {
-
-			QDRService.getNodeInfo(nodeId, ".connection", [], function (nodeName, entity, response) {
-				response.results.forEach( function (result) {
-
-					var auth = "no_auth"
-					var sasl = QDRService.valFor(response.attributeNames, result, "sasl")
-					if (QDRService.valFor(response.attributeNames, result, "isAuthenticated")) {
-						auth = sasl
-						if (sasl === "ANONYMOUS")
-							auth = "anonymous-user"
-						else {
-							if (sasl === "GSSAPI")
-								sasl = "Kerberos"
-							if (sasl === "EXTERNAL")
-								sasl = "x.509"
-							auth = QDRService.valFor(response.attributeNames, result, "user") + "(" +
-									QDRService.valFor(response.attributeNames, result, "sslCipher") + ")"
-							}
-					}
-
-					var sec = "no-security"
-					if (QDRService.valFor(response.attributeNames, result, "isEncrypted")) {
-						if (sasl === "GSSAPI")
-							sec = "Kerberos"
-						else
-							sec = QDRService.valFor(response.attributeNames, result, "sslProto") + "(" +
-									QDRService.valFor(response.attributeNames, result, "sslCipher") + ")"
-					}
-
-					var host = QDRService.valFor(response.attributeNames, result, "host")
-					connectionsObj[host] = {}
-					response.attributeNames.forEach( function (attribute, i) {
-						connectionsObj[host][attribute] = result[i]
-					})
-					connectionsObj[host].security = sec
-					connectionsObj[host].authentication = auth
-				})
-				++connreceived;
-				if (connreceived == expected) {
-					var allConnections = Object.keys(connectionsObj).sort()
-					allConnections.forEach(function (connection) {
-						var c = new Leaf(connection)
-						c.type = "Connection"
-						c.icon = "ui-icon "
-						c.icon += connectionsObj[connection].role === "inter-router" ? "ui-icon-refresh" : "ui-icon-transfer-e-w"
-						//c.info = connectionInfo
-						c.key = connection
-						c.fields = connectionsObj[connection]
-						c.tooltip = connectionsObj[connection].role === "inter-router" ? "inter-router connection" : "external connection"
-						connections.children.push(c)
-					})
-				}
-			})
-		})
-
-		var logsreceived = 0;
-		var logObj = {}
-		var logs = new Folder("Logs")
-		logs.type = "Logs"
-		//logs.info = allLogInfo
-		logs.key = "Logs"
-		//$scope.overview.children.push(logs)
-		nodeIds.forEach( function (nodeId) {
-			QDRService.getNodeInfo(nodeId, ".log", ["name"], function (nodeName, entity, response) {
-				response.results.forEach( function (result) {
-					logObj[result[0]] = 1    // use object to collapse duplicates
-				})
-				++logsreceived;
-				if (logsreceived == expected) {
-					var allLogs = Object.keys(logObj).sort()
-					allLogs.forEach(function (log) {
-						var l = new Leaf(log)
-						l.type = "Log"
-						//l.info = logInfo
-						l.key = log
-						logs.children.push(l)
-					})
-					//console.log("---------------")
-					//console.dump($scope.overview.children)
-					//console.log("---------------")
-					$("#overtree").fancytree({
-						activate: activated,
-						clickFolderMode: 1,
-						source: $scope.overview.children
-						})
-					allRouterInfo();
-				}
-			})
-		})
-
-        $scope.$on("$destroy", function( event ) {
-			if (currentTimer) {
-				clearTimeout(currentTimer)
-				currentTimer = null;
-			}
-        });
-		var treeTypeMap = {
-			Routers:     allRouterInfo,
-			Router:      routerInfo,
-			Addresses:   allAddressInfo,
-			Address:     addressInfo,
-			Connections: allConnectionInfo,
-			Connection:  connectionInfo
-		}
-
-    }]);
-
-  return QDR;
-
-}(QDR || {}));
-

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/console/plugin/js/qdrPlugin.js
----------------------------------------------------------------------
diff --git a/console/plugin/js/qdrPlugin.js b/console/plugin/js/qdrPlugin.js
deleted file mode 100644
index 3d14f72..0000000
--- a/console/plugin/js/qdrPlugin.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-/**
- * @module QDR
- * @main QDR
- *
- * The main entrypoint for the QDR module
- *
- */
-var QDR = (function(QDR) {
-
-  /**
-   * @property pluginName
-   * @type {string}
-   *
-   * The name of this plugin
-   */
-  QDR.pluginName = "QDR";
-
-  /**
-   * @property log
-   * @type {Logging.Logger}
-   *
-   * This plugin's logger instance
-   */
-  //HIO QDR.log = Logger.get(QDR.pluginName);
-  /**
-   * @property templatePath
-   * @type {string}
-   *
-   * The top level path to this plugin's partials
-   */
-  QDR.srcBase = "../dispatch/plugin/";
-  QDR.templatePath = QDR.srcBase + "html/";
-  QDR.cssPath = QDR.srcBase + "css/";
-
-  /**
-   * @property SETTINGS_KEY
-   * @type {string}
-   *
-   * The key used to fetch our settings from local storage
-   */
-  QDR.SETTINGS_KEY = 'QDRSettings';
-  QDR.LAST_LOCATION = "QDRLastLocation";
-
-  /**
-   * @property module
-   * @type {object}
-   *
-   * This plugin's angularjs module instance
-   */
-  QDR.module = angular.module(QDR.pluginName, ['ngAnimate', 'ngResource', 'ngRoute', 'ui.grid', 'ui.grid.selection',
-    'ui.grid.autoResize', 'jsonFormatter', 'ui.bootstrap', 'ui.slider'/*, 'minicolors' */]);
-
-  // set up the routing for this plugin
-  QDR.module.config(function($routeProvider) {
-    $routeProvider
-      .when('/', {
-        templateUrl: QDR.templatePath + 'qdrConnect.html'
-        })
-      .when('/overview', {
-          templateUrl: QDR.templatePath + 'qdrOverview.html'
-        })
-      .when('/topology', {
-          templateUrl: QDR.templatePath + 'qdrTopology.html'
-        })
-      .when('/list', {
-          templateUrl: QDR.templatePath + 'qdrList.html'
-        })
-      .when('/schema', {
-          templateUrl: QDR.templatePath + 'qdrSchema.html'
-        })
-      .when('/charts', {
-          templateUrl: QDR.templatePath + 'qdrCharts.html'
-        })
-      .when('/connect', {
-          templateUrl: QDR.templatePath + 'qdrConnect.html'
-        })
-  });
-
-  QDR.module.config(['$compileProvider', function ($compileProvider) {
-	var cur = $compileProvider.aHrefSanitizationWhitelist();
-    $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|blob):/);
-	cur = $compileProvider.aHrefSanitizationWhitelist();
-  }]);
-
-	QDR.module.config(function (JSONFormatterConfigProvider) {
-		// Enable the hover preview feature
-        JSONFormatterConfigProvider.hoverPreviewEnabled = true;
-	});
-
-	QDR.module.filter('to_trusted', ['$sce', function($sce){
-          return function(text) {
-              return $sce.trustAsHtml(text);
-          };
-    }]);
-
-	QDR.module.filter('humanify', function (QDRService) {
-		return function (input) {
-			return QDRService.humanify(input);
-		};
-	});
-
-	QDR.logger = function ($log) {
-		var log = $log;
-
-		this.debug = function (msg) { msg = "QDR: " + msg; log.debug(msg)};
-		this.error = function (msg) {msg = "QDR: " + msg; log.error(msg)}
-		this.info = function (msg) {msg = "QDR: " + msg; log.info(msg)}
-		this.warn = function (msg) {msg = "QDR: " + msg; log.warn(msg)}
-
-		return this;
-	}
-    // one-time initialization happens in the run function
-    // of our module
-	QDR.module.run( ["$rootScope", "$location", "$log", "QDRService", "QDRChartService",  function ($rootScope, $location, $log, QDRService, QDRChartService) {
-		QDR.log = new QDR.logger($log);
-		QDR.log.debug("QDR.module.run()")
-
-		QDRService.initProton();
-		var settings = angular.fromJson(localStorage[QDR.SETTINGS_KEY]);
-		var lastLocation = localStorage[QDR.LAST_LOCATION];
-		if (!angular.isDefined(lastLocation))
-			lastLocation = "/overview";
-
-		QDRService.addConnectAction(function() {
-			QDRChartService.init(); // initialize charting service after we are connected
-		});
-		if (settings && settings.autostart) {
-			QDRService.addConnectAction(function() {
-				$location.path(lastLocation);
-				$location.replace();
-				$rootScope.$apply();
-			});
-			QDRService.connect(settings);
-        } else {
-			setTimeout(function () {
-	            $location.url('/connect')
-				$location.replace();
-			}, 100)
-        }
-
-        $rootScope.$on('$routeChangeSuccess', function() {
-            localStorage[QDR.LAST_LOCATION] = $location.$$path;
-        });
-
-
-	}]);
-
-	QDR.module.controller ("QDR.MainController", ['$scope', '$location', function ($scope, $location) {
-		QDR.log.debug("started QDR.MainController with location.url: " + $location.url());
-		QDR.log.debug("started QDR.MainController with window.location.pathname : " + window.location.pathname);
-		$scope.topLevelTabs = [];
-		$scope.topLevelTabs.push({
-			id: "qdr",
-			content: "Qpid Dispatch Router Console",
-			title: "Dispatch Router Console",
-			isValid: function() { return true; },
-			href: function() { return "#connect"; },
-			isActive: function() { return true; }
-		});
-	}])
-
-	QDR.module.controller ("QDR.Core", function ($scope, $rootScope) {
-		$scope.alerts = [];
-		$scope.closeAlert = function(index) {
-            $scope.alerts.splice(index, 1);
-        };
-		$scope.$on('newAlert', function(event, data) {
-			$scope.alerts.push(data);
-			$scope.$apply();
-		});
-		$scope.$on("clearAlerts", function () {
-			$scope.alerts = [];
-			$scope.$apply();
-		})
-
-	})
-
-  return QDR;
-}(QDR || {}));

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/console/plugin/js/qdrSchema.js
----------------------------------------------------------------------
diff --git a/console/plugin/js/qdrSchema.js b/console/plugin/js/qdrSchema.js
deleted file mode 100644
index 0e94351..0000000
--- a/console/plugin/js/qdrSchema.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-/**
- * @module QDR
- */
-var QDR = (function (QDR) {
-
-    QDR.module.controller("QDR.SchemaController", ['$scope', 'QDRService', function($scope, QDRService) {
-
-        $scope.schema = QDRService.schema;
-
-    }]);
-
-    return QDR;
-}(QDR || {}));

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/console/plugin/js/qdrService.js
----------------------------------------------------------------------
diff --git a/console/plugin/js/qdrService.js b/console/plugin/js/qdrService.js
deleted file mode 100644
index 47029d7..0000000
--- a/console/plugin/js/qdrService.js
+++ /dev/null
@@ -1,742 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-*/
-/**
- * @module QDR
- */
-var QDR = (function(QDR) {
-
-  // The QDR service handles the connection to
-  // the server in the background
-  QDR.module.factory("QDRService", ['$rootScope', '$http', '$resource', '$location', function($rootScope, $http, $resource, $location) {
-    var self = {
-
-	  rhea: require("rhea"),
-
-      timeout: 10,
-      connectActions: [],
-      disconnectActions: [],
-      updatedActions: {},
-      stop: undefined,  // update interval handle
-
-      addConnectAction: function(action) {
-        if (angular.isFunction(action)) {
-          self.connectActions.push(action);
-        }
-      },
-      addDisconnectAction: function(action) {
-        if (angular.isFunction(action)) {
-          self.disconnectActions.push(action);
-        }
-      },
-      addUpdatedAction: function(key, action) {
-        if (angular.isFunction(action)) {
-            self.updatedActions[key] = action;
-        }
-      },
-      delUpdatedAction: function(key) {
-        if (key in self.updatedActions)
-            delete self.updatedActions[key];
-      },
-
-      executeConnectActions: function() {
-        self.connectActions.forEach(function(action) {
-          //QDR.log.debug("executing connect action " + action);
-          action.apply();
-        });
-        self.connectActions = [];
-      },
-      executeDisconnectActions: function() {
-        self.disconnectActions.forEach(function(action) {
-          action.apply();
-        });
-        self.disconnectActions = [];
-      },
-      executeUpdatedActions: function() {
-        for (action in self.updatedActions) {
-            self.updatedActions[action].apply();
-        }
-      },
-
-      notifyTopologyDone: function() {
-        //QDR.log.debug("got Toplogy done notice");
-
-        if (!angular.isDefined(self.schema))
-            return;
-        else if (self.topology._gettingTopo)
-            return;
-        if (!self.gotTopology) {
-            QDR.log.debug("topology was just initialized");
-            self.gotTopology = true;
-            self.executeConnectActions();
-            $rootScope.$apply();
-        } else {
-            QDR.log.debug("topology model was just updated");
-            self.executeUpdatedActions();
-        }
-
-      },
-      /**
-       * @property options
-       * Holds a reference to the connection options when
-       * a connection is started
-       */
-      options: undefined,
-
-      /*
-       * @property message
-       * The proton message that is used to send commands
-       * and receive responses
-       */
-		sender: undefined,
-		receiver: undefined,
-		sendable: false,
-
-      schema: undefined,
-
-      toAddress: undefined,
-      connected: false,
-      gotTopology: false,
-      errorText: undefined,
-	  connectionError: undefined,
-
-      isConnected: function() {
-        return self.gotTopology;
-      },
-
-    correlator: {
-        _objects: {},
-        _corremationID: 0,
-
-        corr: function () {
-            var id = ++this._corremationID + "";
-			this._objects[id] = {resolver: null}
-            return id;
-        },
-        request: function() {
-            //QDR.log.debug("correlator:request");
-            return this;
-        },
-        then: function(id, resolver, error) {
-            //QDR.log.debug("registered then resolver for correlationID: " + id);
-			if (error) {
-	            delete this._objects[id];
-				return;
-			}
-            this._objects[id].resolver = resolver;
-        },
-        // called by receiver's on('message') handler when a response arrives
-        resolve: function(context) {
-			var correlationID = context.message.properties.correlation_id;
-            this._objects[correlationID].resolver(context.message.body);
-            delete this._objects[correlationID];
-        }
-    },
-    
-    onSubscription: function() {
-        self.getSchema();
-        self.topology.get();
-     },
-
-    startUpdating: function () {
-        QDR.log.info("startUpdating called")
-        self.stopUpdating();
-        self.topology.get();
-        self.stop = setInterval(function() {
-            self.topology.get();
-        }, 2000);
-    },
-    stopUpdating: function () {
-        if (angular.isDefined(self.stop)) {
-            QDR.log.info("stoptUpdating called")
-            clearInterval(self.stop);
-            self.stop = undefined;
-        }
-    },
-
-      initProton: function() {
-        //QDR.log.debug("*************QDR init proton called ************");
-      },
-      cleanUp: function() {
-      },
-      error: function(line) {
-        if (line.num) {
-          QDR.log.debug("error - num: ", line.num, " message: ", line.message);
-        } else {
-          QDR.log.debug("error - message: ", line.message);
-        }
-      },
-      disconnected: function(line) {
-        QDR.log.debug("Disconnected from QDR server");
-        self.executeDisconnectActions();
-      },
-
-      nameFromId: function (id) {
-		return id.split('/')[3];
-      },
-
-      humanify: function (s) {
-          var t = s.charAt(0).toUpperCase() + s.substr(1).replace(/[A-Z]/g, ' $&');
-          return t.replace(".", " ");
-      },
-	  pretty: function(v) {
-    	var formatComma = d3.format(",");
-		if (!isNaN(parseFloat(v)) && isFinite(v))
-			return formatComma(v);
-		return v;
-	  },
-
-      nodeNameList: function() {
-        var nl = [];
-        // if we are in the middel of updating the topology
-        // then use the last known node info
-        var ni = self.topology._nodeInfo;
-        if (self.topology._gettingTopo)
-            ni = self.topology._lastNodeInfo;
-		for (var id in ni) {
-            nl.push(self.nameFromId(id));
-        }
-        return nl.sort();
-      },
-
-      nodeIdList: function() {
-        var nl = [];
-        // if we are in the middel of updating the topology
-        // then use the last known node info
-        var ni = self.topology._nodeInfo;
-        if (self.topology._gettingTopo)
-            ni = self.topology._lastNodeInfo;
-		for (var id in ni) {
-            nl.push(id);
-        }
-        return nl.sort();
-      },
-
-      nodeList: function () {
-        var nl = [];
-        var ni = self.topology._nodeInfo;
-        if (self.topology._gettingTopo)
-            ni = self.topology._lastNodeInfo;
-		for (var id in ni) {
-            nl.push({name: self.nameFromId(id), id: id});
-        }
-        return nl;
-      },
-
-      // given an attribute name array, find the value at the same index in the values array
-      valFor: function (aAr, vAr, key) {
-          var idx = aAr.indexOf(key);
-          if ((idx > -1) && (idx < vAr.length)) {
-              return vAr[idx];
-          }
-          return null;
-      },
-
-      /*
-       * send the management messages that build up the topology
-       *
-       *
-       */
-      topology: {
-        _gettingTopo: false,
-        _nodeInfo: {},
-        _lastNodeInfo: {},
-        _expected: {},
-        _timerHandle: null,
-
-        nodeInfo: function () {
-            return this._gettingTopo ? this._lastNodeInfo : this._nodeInfo;
-        },
-
-        get: function () {
-            if (this._gettingTopo)
-                return;
-            if (!self.connected) {
-				QDR.log.debug("topology get failed because !self.connected")
-                return;
-            }
-            this._lastNodeInfo = angular.copy(this._nodeInfo);
-            this._gettingTopo = true;
-
-            self.errorText = undefined;
-            this.cleanUp(this._nodeInfo);
-            this._nodeInfo = {};
-            this._expected = {};
-
-            // get the list of nodes to query.
-            // once this completes, we will get the info for each node returned
-            self.getRemoteNodeInfo( function (response) {
-                //QDR.log.debug("got remote node list of ");
-                //console.dump(response);
-                if( Object.prototype.toString.call( response ) === '[object Array]' ) {
-                    // we expect a response for each of these nodes
-                    self.topology.wait(self.timeout);
-                    for (var i=0; i<response.length; ++i) {
-                        self.makeMgmtCalls(response[i]);
-                    }
-                };
-            });
-        },
-
-        cleanUp: function (obj) {
-/*
-            for (var o in obj) {
-                QDR.log.debug("cleaning up");
-                console.dump(obj[o]);
-                if (isNaN(parseInt(o)))
-                    this.cleanUp(obj[o]);
-            }
-*/
-            if (obj)
-                delete obj;
-        },
-        wait: function (timeout) {
-            this.timerHandle = setTimeout(this.timedOut, timeout * 1000);
-         },
-        timedOut: function () {
-        // a node dropped out. this happens when the get-mgmt-nodex
-        // results contains more nodes than actually respond within
-        // the timeout. However, if the responses we get don't contain
-        // the missing node, assume we are done.
-            QDR.log.debug("timed out waiting for management responses");
-            // note: can't use 'this' in a timeout handler
-            self.topology.dump("state at timeout");
-            // check if _nodeInfo is consistent
-            if (self.topology.isConsistent()) {
-                //TODO: notify controllers which node was dropped
-                // so they can keep an event log
-                self.topology.ondone();
-                return;
-            }
-            self.topology.onerror(Error("Timed out waiting for management responses"));
-        },
-        isConsistent: function () {
-            // see if the responses we have so far reference any nodes
-            // for which we don't have a response
-            var gotKeys = {};
-            for (var id in this._nodeInfo) {
-                var onode = this._nodeInfo[id];
-                var conn = onode['.connection'];
-                // get list of node names in the connection data
-                if (conn) {
-                    var containerIndex = conn.attributeNames.indexOf('container');
-                    var connectionResults = conn.results;
-                    if (containerIndex >= 0)
-                        for (var j=0; j < connectionResults.length; ++j) {
-                            // inter-router connection to a valid dispatch connection name
-                            gotKeys[connectionResults[j][containerIndex]] = ""; // just add the key
-                        }
-                }
-            }
-            // gotKeys now contains all the container names that we have received
-            // Are any of the keys that are still expected in the gotKeys list?
-            var keys = Object.keys(gotKeys);
-            for (var id in this._expected) {
-                var key = self.nameFromId(id);
-                if (key in keys)
-                    return false;
-            }
-            return true;
-        },
-            
-        addNodeInfo: function (id, entity, values) {
-            // save the results in the nodeInfo object
-            if (id) {
-                if (!(id in self.topology._nodeInfo)) {
-                    self.topology._nodeInfo[id] = {};
-                }
-                self.topology._nodeInfo[id][entity] = values;
-            }
-  
-            // remove the id / entity from _expected
-            if (id in self.topology._expected) {
-                var entities = self.topology._expected[id];
-                var idx = entities.indexOf(entity);
-                if (idx > -1) {
-                    entities.splice(idx, 1);
-                    if (entities.length == 0)
-                        delete self.topology._expected[id];
-                }
-            }
-            // see if the expected obj is empty
-            if (Object.getOwnPropertyNames(self.topology._expected).length == 0)
-                self.topology.ondone();
-            self.topology.cleanUp(values);
-        },
-        expect: function (id, key) {
-            if (!key || !id)
-                return;
-            if (!(id in this._expected))
-                this._expected[id] = [];
-            if (this._expected[id].indexOf(key) == -1)
-                this._expected[id].push(key);
-        },
-/*
-The response looks like:
-{
-    ".router": {
-        "results": [
-            [4, "router/QDR.X", 1, "0", 3, 60, 60, 11, "QDR.X", 30, "interior", "org.apache.qpid.dispatch.router", 5, 12, "router/QDR.X"]
-        ],
-        "attributeNames": ["raIntervalFlux", "name", "helloInterval", "area", "helloMaxAge", "mobileAddrMaxAge", "remoteLsMaxAge", "addrCount", "routerId", "raInterval", "mode", "type", "nodeCount", "linkCount", "identity"]
-    },
-    ".connection": {
-        "results": [
-            ["QDR.B", "connection/0.0.0.0:20002", "operational", "0.0.0.0:20002", "inter-router", "connection/0.0.0.0:20002", "ANONYMOUS", "org.apache.qpid.dispatch.connection", "out"],
-            ["QDR.A", "connection/0.0.0.0:20001", "operational", "0.0.0.0:20001", "inter-router", "connection/0.0.0.0:20001", "ANONYMOUS", "org.apache.qpid.dispatch.connection", "out"],
-            ["b2de2f8c-ef4a-4415-9a23-000c2f86e85d", "connection/localhost:33669", "operational", "localhost:33669", "normal", "connection/localhost:33669", "ANONYMOUS", "org.apache.qpid.dispatch.connection", "in"]
-        ],
-        "attributeNames": ["container", "name", "state", "host", "role", "identity", "sasl", "type", "dir"]
-    },
-    ".router.node": {
-        "results": [
-            ["QDR.A", null],
-            ["QDR.B", null],
-            ["QDR.C", "QDR.A"],
-            ["QDR.D", "QDR.A"],
-            ["QDR.Y", "QDR.A"]
-        ],
-        "attributeNames": ["routerId", "nextHop"]
-    }
-}*/
-        ondone: function () {
-            clearTimeout(this.timerHandle);
-            this._gettingTopo = false;
-            //this.miniDump();
-            //this.dump();
-            self.notifyTopologyDone();
-
-         },
-         dump: function (prefix) {
-            if (prefix)
-                QDR.log.debug(prefix);
-            QDR.log.debug("---");
-            for (var key in this._nodeInfo) {
-                QDR.log.debug(key);
-                console.dump(this._nodeInfo[key]);
-                QDR.log.debug("---");
-            }
-            QDR.log.debug("was still expecting:");
-            console.dump(this._expected);
-        },
-         miniDump: function (prefix) {
-            if (prefix)
-                QDR.log.debug(prefix);
-            QDR.log.debug("---");
-            console.dump(Object.keys(this._nodeInfo));
-            QDR.log.debug("---");
-        },
-        onerror: function (err) {
-            this._gettingTopo = false;
-            QDR.log.debug("Err:" + err);
-            self.executeDisconnectActions();
-
-        }
-
-      },
-
-      getRemoteNodeInfo: function (callback) {
-	 	//QDR.log.debug("getRemoteNodeInfo called");
-        var ret;
-        // first get the list of remote node names
-	 	self.correlator.request(
-                ret = self.sendMgmtQuery('GET-MGMT-NODES')
-            ).then(ret.id, function(response) {
-                callback(response);
-                self.topology.cleanUp(response);
-            }, ret.error);
-      },
-
-      makeMgmtCalls: function (id) {
-            var keys = [".router", ".connection", ".container", ".router.node", ".listener", ".router.link"];
-            $.each(keys, function (i, key) {
-                self.topology.expect(id, key);
-                self.getNodeInfo(id, key, [], self.topology.addNodeInfo);
-            });
-      },
-
-      getNodeInfo: function (nodeName, entity, attrs, callback) {
-        //QDR.log.debug("getNodeInfo called with nodeName: " + nodeName + " and entity " + entity);
-        var ret;
-        self.correlator.request(
-            ret = self.sendQuery(nodeName, entity, attrs)
-        ).then(ret.id, function(response) {
-            // TODO: file a bug against rhea - large numbers are coming back as Uint8Array
-			response.results.forEach( function (result) {
-				result.forEach( function (val, i) {
-					if (val instanceof Uint8Array) {
-						var ua2num = function(ua) {
-	                        var n = 0;
-	                        for (var i = 0; i<ua.length; i++) {
-	                            n *= 256;
-	                            n += ua[i];
-	                        }
-	                        return n;
-	                    }
-	                    result[i] = ua2num(val);
-					}
-				})
-			})
-            callback(nodeName, entity, response);
-            //self.topology.addNodeInfo(nodeName, entity, response);
-            //self.topology.cleanUp(response);
-        }, ret.error);
-      },
-
-		getMultipleNodeInfo: function (nodeNames, entity, attrs, callback, selectedNodeId) {
-			var responses = {};
-			var gotNodesResult = function (nodeName, dotentity, response) {
-				responses[nodeName] = response;
-				if (Object.keys(responses).length == nodeNames.length) {
-					aggregateNodeInfo(nodeNames, entity, responses, callback);
-				}
-			}
-
-			var aggregateNodeInfo = function (nodeNames, entity, responses, callback) {
-				//QDR.log.debug("got all results for  " + entity);
-				// aggregate the responses
-				var newResponse = {};
-				var thisNode = responses[selectedNodeId];
-				newResponse['attributeNames'] = thisNode.attributeNames;
-				newResponse['results'] = thisNode.results;
-				newResponse['aggregates'] = [];
-				for (var i=0; i<thisNode.results.length; ++i) {
-					var result = thisNode.results[i];
-					var vals = [];
-					result.forEach( function (val) {
-						vals.push({sum: val, detail: []})
-					})
-					newResponse.aggregates.push(vals);
-				}
-				var nameIndex = thisNode.attributeNames.indexOf("name");
-				var ent = self.schema.entityTypes[entity];
-				var ids = Object.keys(responses);
-				ids.sort();
-				ids.forEach( function (id) {
-					var response = responses[id];
-					var results = response.results;
-					results.forEach( function (result) {
-						// find the matching result in the aggregates
-						var found = newResponse.aggregates.some( function (aggregate, j) {
-							if (aggregate[nameIndex].sum === result[nameIndex]) {
-								// result and aggregate are now the same record, add the graphable values
-								newResponse.attributeNames.forEach( function (key, i) {
-									if (ent.attributes[key] && ent.attributes[key].graph) {
-										if (id != selectedNodeId)
-											aggregate[i].sum += result[i];
-										aggregate[i].detail.push({node: self.nameFromId(id)+':', val: result[i]})
-									}
-								})
-								return true; // stop looping
-							}
-							return false; // continute looking for the aggregate record
-						})
-						if (!found) {
-							// this attribute was not found in the aggregates yet
-							// because it was not in the selectedNodeId's results
-							var vals = [];
-							result.forEach( function (val) {
-								vals.push({sum: val, detail: []})
-							})
-							newResponse.aggregates.push(vals)
-						}
-					})
-				})
-				callback(nodeNames, entity, newResponse);
-			}
-
-			nodeNames.forEach( function (id) {
-	            self.getNodeInfo(id, '.'+entity, attrs, gotNodesResult);
-	        })
-			//TODO: implement a timeout in case not all requests complete
-		},
-
-      getSchema: function () {
-        //QDR.log.debug("getting schema");
-        var ret;
-        self.correlator.request(
-            ret = self.sendMgmtQuery('GET-SCHEMA')
-        ).then(ret.id, function(response) {
-            //QDR.log.debug("Got schema response");
-			self.schema = response;
-            //self.schema = angular.copy(response);
-            //self.topology.cleanUp(response);
-            self.notifyTopologyDone();
-        }, ret.error);
-      },
-
-    sendQuery: function(toAddr, entity, attrs) {
-        var toAddrParts = toAddr.split('/');
-        if (toAddrParts.shift() != "amqp:") {
-            self.topology.error(Error("unexpected format for router address: " + toAddr));
-            return;
-        }
-        var fullAddr =  self.toAddress + "/" + toAddrParts.join('/');
-
-		var body;
-        if (attrs)
-            body = {
-                    "attributeNames": attrs,
-            }
-        else
-            body = {
-                "attributeNames": [],
-            }
-
-		return self._send(body, fullAddr, "QUERY", "org.apache.qpid.dispatch" + entity);
-    },
-
-    sendMgmtQuery: function (operation) {
-		// TODO: file bug against dispatch - We should be able to just pass body: [], but that generates an 'invalid body'
-		return self._send([' '], self.toAddress + "/$management", operation);
-    },
-
-	_send: function (body, to, operation, entityType) {
-		var ret = {id: self.correlator.corr()};
-		if (!self.sender || !self.sendable) {
-			ret.error = "no sender"
-			return ret;
-		}
-		try {
-			var application_properties = {
-				operation:  operation,
-                type:       "org.amqp.management",
-                name:       "self"
-            };
-			if (entityType)
-                application_properties.entityType = entityType;
-
-	        self.sender.send({
-	                body: body,
-	                properties: {
-	                    to:                     to,
-                        reply_to:               self.receiver.remote.attach.source.address,
-	                    correlation_id:         ret.id
-	                },
-	                application_properties: application_properties
-            })
-		}
-		catch (e) {
-			error = "error sending: " + e;
-			QDR.log.error(error)
-			ret.error = error;
-		}
-		return ret;
-	},
-
-      disconnect: function() {
-        self.connection.close();
-      },
-
-      connect: function(options) {
-        self.options = options;
-        self.topologyInitialized = false;
-		if (!self.connected) {
-			var okay = {connection: false, sender: false, receiver: false}
-            var port = options.port || 5673;
-            var baseAddress = options.address + ':' + port;
-			var ws = self.rhea.websocket_connect(WebSocket);
-			self.toAddress = "amqp://" + baseAddress;
-			self.connectionError = undefined;
-
-			var stop = function (context) {
-				//self.stopUpdating();
-				if (self.connected) {
-				    $rootScope.$broadcast('newAlert', { type: 'danger', msg: 'Connection to ' + baseAddress + " was lost. Retrying..." });
-				}
-				okay.sender = false;
-				okay.receiver = false;
-				okay.connected = false;
-				self.connected = false;
-				self.sender = null;
-				self.receiver = null;
-				self.sendable = false;
-			}
-
-			var maybeStart = function () {
-				if (okay.connection && okay.sender && okay.receiver && self.sendable && !self.connected) {
-					QDR.log.info("okay to start")
-					self.connected = true;
-					self.connection = connection;
-					self.sender = sender;
-					self.receiver = receiver;
-					self.onSubscription();
-					$rootScope.$broadcast("clearAlerts");
-				}
-			}
-
-			QDR.log.debug("****** calling rhea.connect ********")
-            var connection = self.rhea.connect({
-                    connection_details:ws('ws://' + baseAddress),
-                    reconnect:true,
-                    properties: {console_identifier: 'Dispatch console'}
-            });
-			connection.on('connection_open', function (context) {
-				QDR.log.debug("connection_opened")
-				okay.connection = true;
-				okay.receiver = false;
-				okay.sender = false;
-			})
-			connection.on('disconnected', function (context) {
-				QDR.log.warn("disconnected");
-				stop();
-				self.errorText = "Error: Connection failed."
-				self.executeDisconnectActions();
-				self.connectionError = true;
-			})
-			connection.on('connection_close', function (context) { QDR.log.warn("connection_close"); stop()})
-
-			var sender = connection.open_sender("/$management");
-			sender.on('sender_open', function (context) {
-				QDR.log.debug("sender_opened")
-				okay.sender = true
-				maybeStart()
-			})
-			sender.on('sendable', function (context) {
-				//QDR.log.debug("sendable")
-				self.sendable = true;
-				maybeStart();
-			})
-
-			var receiver = connection.open_receiver({source: {dynamic: true}});
-			receiver.on('receiver_open', function (context) {
-				QDR.log.debug("receiver_opened")
-				okay.receiver = true;
-				maybeStart()
-			})
-			receiver.on("message", function (context) {
-				self.correlator.resolve(context);
-			});
-
-		}
-      }
-    }
-      return self;
-  }]);
-
-  return QDR;
-}(QDR || {}));
-
-(function() {
-    console.dump = function(object) {
-        if (window.JSON && window.JSON.stringify)
-            console.log(JSON.stringify(object));
-        else
-            console.log(object);
-    };
-})();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/console/plugin/js/qdrSettings.js
----------------------------------------------------------------------
diff --git a/console/plugin/js/qdrSettings.js b/console/plugin/js/qdrSettings.js
deleted file mode 100644
index 950e1c5..0000000
--- a/console/plugin/js/qdrSettings.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-/**
- * @module QDR
- */
-var QDR = (function (QDR) {
-
-  /**
-   * @method SettingsController
-   * @param $scope
-   * @param QDRServer
-   *
-   * Controller that handles the QDR settings page
-   */
-  QDR.module.controller("QDR.SettingsController", ['$scope', 'QDRService', '$location', function($scope, QDRService, $location) {
-
-    $scope.connecting = false;
-    $scope.connectionError = false;
-    $scope.connectionErrorText = undefined;
-    $scope.forms = {};
-
-    $scope.formEntity = angular.fromJson(localStorage[QDR.SETTINGS_KEY]) || {address: '', port: '', username: '', password: '', autostart: false};
-    $scope.formConfig = {
-      properties: {
-        address: {
-          description: "Router address",
-          'type': 'java.lang.String',
-          required: true
-        },
-        port: {
-          description: 'Router port',
-          'type': 'Integer',
-          tooltip: 'Ports to connect to, by default 5672'
-        },
-        username: {
-          description: 'User Name',
-          'type': 'java.lang.String'
-        },
-        password: {
-          description: 'Password',
-          'type': 'password'
-        },
-        /*
-        useSSL: {
-          description: 'SSL',
-          'type': 'boolean'
-        },*/
-        autostart: {
-          description: 'Connect at startup',
-          'type': 'boolean',
-          tooltip: 'Whether or not the connection should be started as soon as you log into hawtio'
-        }
-      }
-    };
-
-    $scope.$watch('formEntity', function(newValue, oldValue) {
-      if (newValue !== oldValue) {
-        localStorage[QDR.SETTINGS_KEY] = angular.toJson(newValue);
-      }
-    }, true);
-
-    $scope.buttonText = function() {
-      if (QDRService.isConnected()) {
-        return "Reconnect";
-      } else {
-        return "Connect";
-      }
-    };
-
-    
-    $scope.connect = function() {
-      if ($scope.settings.$valid) {
-        $scope.connectionError = false;
-        $scope.connecting = true;
-        console.log("attempting to connect");
-        QDRService.addDisconnectAction(function() {
-          //QDR.log.debug("disconnect action called");
-          $scope.connecting = false;
-          $scope.connectionErrorText = QDRService.errorText;
-          $scope.connectionError = true;
-          $scope.$apply();
-        });
-        QDRService.addConnectAction(function() {
-          //QDR.log.debug("got connection notification");
-          $scope.connecting = false;
-          //console.log("we were on connect page. let's switch to topo now that we are connected");
-          //QDR.log.debug("location before the connect " + $location.path());
-          $location.path("/overview");
-          //QDR.log.debug("location after the connect " + $location.path());
-          $scope.$apply();
-        });
-        QDRService.connect($scope.formEntity);
-      }
-    };
-
-  }]);
-
-  return QDR;
-}(QDR || {}));


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org