qpid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From eal...@apache.org
Subject [11/11] qpid-dispatch git commit: DISPATCH-316 Hawtio and stand-alone consoles now use common code
Date Fri, 19 Aug 2016 16:59:18 GMT
DISPATCH-316 Hawtio and stand-alone consoles now use common code


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/d98ae37e
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/d98ae37e
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/d98ae37e

Branch: refs/heads/master
Commit: d98ae37ef5bed5080ea50b53eef737e914dd9be6
Parents: c9d1413
Author: Ernest Allen <eallen@redhat.com>
Authored: Fri Aug 19 12:57:59 2016 -0400
Committer: Ernest Allen <eallen@redhat.com>
Committed: Fri Aug 19 12:57:59 2016 -0400

----------------------------------------------------------------------
 .../src/main/webapp/plugin/css/dispatch.css     |  626 +----
 .../src/main/webapp/plugin/css/plugin.css       |  870 +------
 .../src/main/webapp/plugin/html/qdrCharts.html  |    4 +-
 .../src/main/webapp/plugin/html/qdrConnect.html |   81 +-
 .../src/main/webapp/plugin/html/qdrLayout.html  |   27 +-
 .../src/main/webapp/plugin/html/qdrList.html    |  112 +-
 .../main/webapp/plugin/html/qdrOverview.html    |  154 +-
 .../src/main/webapp/plugin/html/qdrSchema.html  |   22 +-
 .../main/webapp/plugin/html/qdrTopology.html    |  220 +-
 .../main/webapp/plugin/html/tmplListChart.html  |   12 +
 .../main/webapp/plugin/html/tmplListTree.html   |    8 +
 .../webapp/plugin/html/tmplOverviewTree.html    |    6 +
 .../src/main/webapp/plugin/js/dispatchPlugin.js |   58 +-
 .../hawtio/src/main/webapp/plugin/js/navbar.js  |  124 +-
 .../main/webapp/plugin/js/qdrChartService.js    | 1112 +--------
 .../src/main/webapp/plugin/js/qdrCharts.js      |   38 +-
 .../hawtio/src/main/webapp/plugin/js/qdrList.js |  812 +------
 .../src/main/webapp/plugin/js/qdrListChart.js   |    1 +
 .../src/main/webapp/plugin/js/qdrOverview.js    | 1427 +-----------
 .../src/main/webapp/plugin/js/qdrSchema.js      |   73 +-
 .../src/main/webapp/plugin/js/qdrService.js     |  889 +-------
 .../src/main/webapp/plugin/js/qdrSettings.js    |  152 +-
 .../src/main/webapp/plugin/js/qdrTopology.js    | 2133 +-----------------
 .../src/main/webapp/plugin/lib/rhea-min.js      |    8 +-
 console/stand-alone/index.html                  |   54 +-
 console/stand-alone/plugin/css/dispatch.css     |  640 ++++++
 console/stand-alone/plugin/css/plugin.css       |  439 +++-
 console/stand-alone/plugin/css/qdrTopology.css  |  562 -----
 console/stand-alone/plugin/css/site-base.css    |  229 +-
 console/stand-alone/plugin/html/qdrCharts.html  |  114 +-
 console/stand-alone/plugin/html/qdrConnect.html |   90 +-
 console/stand-alone/plugin/html/qdrLayout.html  |    8 +-
 console/stand-alone/plugin/html/qdrList.html    |   96 +-
 .../stand-alone/plugin/html/qdrOverview.html    |   96 +-
 console/stand-alone/plugin/html/qdrSchema.html  |    4 +-
 .../stand-alone/plugin/html/qdrTopology.html    |  121 +-
 .../stand-alone/plugin/html/tmplListChart.html  |   18 +
 .../stand-alone/plugin/html/tmplListTree.html   |   17 +
 .../plugin/html/tmplOverviewTree.html           |   15 +
 console/stand-alone/plugin/js/dispatchPlugin.js |  254 +++
 console/stand-alone/plugin/js/navbar.js         |   65 +-
 .../stand-alone/plugin/js/qdrChartService.js    |  304 ++-
 console/stand-alone/plugin/js/qdrCharts.js      |  212 +-
 console/stand-alone/plugin/js/qdrList.js        |  879 +++++---
 console/stand-alone/plugin/js/qdrListChart.js   |  109 +
 console/stand-alone/plugin/js/qdrOverview.js    | 1559 +++++++++----
 console/stand-alone/plugin/js/qdrPlugin.js      |  197 --
 console/stand-alone/plugin/js/qdrSchema.js      |   45 +-
 console/stand-alone/plugin/js/qdrService.js     |  267 ++-
 console/stand-alone/plugin/js/qdrSettings.js    |  142 +-
 console/stand-alone/plugin/js/qdrTopology.js    |  827 ++++---
 console/stand-alone/plugin/lib/rhea-min.js      |   99 +-
 52 files changed, 4852 insertions(+), 11579 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/css/dispatch.css
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/css/dispatch.css b/console/hawtio/src/main/webapp/plugin/css/dispatch.css
deleted file mode 100644
index cb050e6..0000000
--- a/console/hawtio/src/main/webapp/plugin/css/dispatch.css
+++ /dev/null
@@ -1,625 +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.
-*/
-
-svg {
-  background-color: transparent;
-  cursor: default;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  -o-user-select: none;
-  user-select: none;
-}
-
-svg:not(.active):not(.ctrl) {
-  cursor: crosshair;
-}
-#end-arrow-selected, #start-arrow-selected {
-	stroke: #00F;
-	fill: #00F;
-}
-
-path.link {
-  fill: none;
-  stroke: #000;
-  stroke-width: 4px;
-  cursor: default;
-}
-
-svg:not(.active):not(.ctrl) path.link {
-  cursor: pointer;
-}
-
-path.link.selected {
-  stroke-dasharray: 10,2;
-  stroke: #00F  !important;
-}
-
-
-path.link.highlighted {
-    stroke: #0F0 !important;
-
-}
-
-path.link.temp {
-  opacity: 0.3;
-}
-path.link.temp.over {
-  opacity: 0.8;
-  stroke-dasharray: 10,2;
-}
-
-path.link.dragline {
-  pointer-events: none;
-}
-
-path.link.hidden {
-  stroke-width: 0;
-}
-
-
-circle.node {
-    stroke-width: 1.5px;
-    cursor: pointer;
-    stroke: darkgray;
-    fill: lightgray;
-}
-
-circle.node.reflexive {
-    stroke: #F00 !important;
-    stroke-width: 2.5px;
-}
-circle.node.selected {
-    stroke: #F00 !important;
-    stroke-width: 2px;
-    fill: #e0e0ff !important;
-}
-circle.node.inter-router {
-    fill: #EAEAEA;
-}
-circle.node.normal {
-    fill: #F0F000;
-}
-circle.node.on-demand {
-    fill: #C0FFC0;
-}
-circle.node.on-demand.artemis {
-	fill: #FCC;
-	/*opacity: 0.2; */
-}
-
-circle.node.fixed {
-    stroke-dasharray: 10,2;
-}
-circle.node.temp {
-    stroke: #f80;
-    fill: #f0f0ff;
-}
-
-text {
-  font: 12px sans-serif;
-  pointer-events: none;
-  /*font-family: monospace;*/
-
-}
-
-.tooltipsy
-{
-    padding: 10px;
-/*    max-width: 320px;*/
-    color: #303030;
-    background-color: #fcfcfe;
-    border: 1px solid #deca7e;
-    border-radius: 5px;
-}
-
-.tiptable {
-
-}
-.tiptable tr {
-	border-bottom: 1px solid #ccc;
-}
-
-.tiptable tr:last-child {
-	border-bottom: 0px;
-}
-
-.tiptable tr:nth-child(even) {
-	background: #fcfcfe;
-}
-.tiptable tr:nth-child(odd) {
-	background: #FFF
-}
-
-text.id {
-  text-anchor: middle;
-  font-weight: bold;
-}
-
-text.label {
-  text-anchor: start;
-  font-weight: bold;
-}
-
-.row-fluid.tertiary {
-  position: relative;
-  left: 20px;
-}
-
-.row-fluid.tertiary.left {
-  float: left;
-}
-
-.row-fluid.tertiary.panel {
-  width: 410px;
-  /*height: 100%; */
-}
-
-div#topologyForm .ngViewport, div#topologyForm .gridStyle {
-    height: inherit !important;
-	min-height: initial !important;
-	overflow: initial;
-}
-
-div#multiple_details, div#link_details {
-	height: 300px;
-	width: 600px;
-	display: none;
-	padding: 0.5em;
-    border: 1px solid;
-	position: absolute;
-	background-color: white;
-	max-height: 330px !important;
-    overflow: hidden;
-}
-div#multiple_details div.ngRow.selected {
-	background-color: #c9dde1 !important;
-}
-
-div.grid-values {
-	text-align: right;
-}
-
-div.grid-values.ngCellText span {
-	padding-right: 4px;
-}
-
-.panel-adjacent {
-  margin-left: 430px;
-}
-
-#topologyForm.selected {
-  border: 1px solid red;
-}
-#topologyForm {
-    border: 1px solid white;
-    padding: 2px;
-    /* position: relative; */
-    /* top: -8px; */
-}
-div.qdr-topology.pane.left .ngViewport {
-    /* border: 1px solid lightgray; */
-}
-
-#topologyForm > div {
-  width:396px;
-  /*height: 100vh;*/
-}
-
-/* globe */
-.land {
-  fill: #999;
-  stroke-opacity: 1;
-}
-
-.graticule {
-  fill: none;
-  stroke: black;
-  stroke-width:.5;
-  opacity:.1;
-}
-
-.labels {
-    font: 18px sans-serif;
-    fill: black;
-    opacity: .85;
-	text-anchor: middle;
-}
-
-.noclicks { pointer-events:none; }
-
-.point {  opacity:.6; }
-
-.arcs {
-  opacity:.7;
-  stroke: darkgreen;
-  stroke-width: 3;
-}
-.flyers {
-  stroke-width:1;
-  opacity: 0;
-  stroke: darkred;
-}
-.arc, .flyer {
-  stroke-linejoin: round;
-  fill:none;
-}
-.arc { }
-.arc:hover {
-  stroke: darkred;
-}
-.flyer { }
-.flyer:hover {
-  stroke: darkgreen;
-}
-.arc.inter-router {
-  stroke: darkblue;
-}
-
-#addNodeForm {
-  padding: 1em;
-}
-
-
-li.currentStep {
-  font-weight: bold;
-}
-
-.qdrTopology div.panel {
-  position: absolute;
-}
-/*
-.ui-dialog-titlebar {
-    border: 0;
-    background: transparent;
-}
-*/
-
-/*
-.ui-tabs.ui-tabs-vertical {
-    padding: 0;
-    width: 48em;
-}
-.ui-tabs.ui-tabs-vertical .ui-widget-header {
-    border: none;
-}
-.ui-tabs.ui-tabs-vertical .ui-tabs-nav {
-    float: left;
-    width: 10em;
-    background: #CCC;
-    border-radius: 4px 0 0 4px;
-    border-right: 1px solid gray;
-}
-.ui-tabs.ui-tabs-vertical .ui-tabs-nav li {
-    clear: left;
-    width: 100%;
-    margin: 0.1em 0;
-    border: 1px solid gray;
-    border-width: 1px 0 1px 1px;
-    border-radius: 4px 0 0 4px;
-    overflow: hidden;
-    position: relative;
-    right: -2px;
-    z-index: 2;
-}
-.ui-tabs.ui-tabs-vertical .ui-tabs-nav li a {
-    display: block;
-    width: 100%;
-    padding: 0.1em 1em;
-}
-.ui-tabs.ui-tabs-vertical .ui-tabs-nav li a:hover {
-    cursor: pointer;
-}
-.ui-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active {
-    margin-bottom: 0.2em;
-    padding-bottom: 0;
-    border-right: 1px solid white;
-}
-.ui-tabs.ui-tabs-vertical .ui-tabs-nav li:last-child {
-    margin-bottom: 10px;
-}
-.ui-tabs.ui-tabs-vertical .ui-tabs-panel {
-    float: left;
-    width: 34em;
-    border-left: 1px solid gray;
-    border-radius: 0;
-    position: relative;
-    left: -1px;
-}
-
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
-    right: -3px !important;
-}
-
-.ui-tabs li i.ui-icon {
-    display: inline-block;
-}
-*/
-.ui-tabs .ui-tabs-panel {
-    /* padding-top: 0 !important; */
-}
-
-.ui-widget-content fieldset {
-  float: left;
-  padding: 0 1em 0 0;
-}
-
-.entity-description {
-  color: #960;
-  font-size: 90%;
-}
-
-.attr-description {
-  padding-top: 1.5em;
-  float: right;
-  width: 17em;
-}
-.attr-annotations {
-    padding-top: 2.5em;
-    clear: both;
-}
-.attr-annotations > span {
-    padding-top: 0.5em;
-    border-top: 1px dashed darkgray;
-    display: block;
-}
-
-.attr-type {
-    color: #990;
-    font-size: 85%;
-}
-.attr-required {
-    color: red;
-    font-size: 85%;
-}
-.attr-unique {
-    color: green;
-    font-size: 85%;
-}
-
-#tabs.nodeEntities {
-  border: 0;
-}
-
-#tabs ul.nodeTabs {
-  background: #fff;
-}
-
-#tabs #Container {
-  border-left: 1px solid #aaa;
-}
-
-#tabs.ui-tabs .ui-tabs-nav li {
-  border-bottom: 1px solid #aaa !important;
-}
-
-.entity-fields {
-  /* height: 400px; */
-  overflow-y: scroll;
-  overflow-x: hidden;
-}
-
-div.boolean label:first-child {
-    float: left;
-    margin-right: 1em;
-}
-div.boolean {
-    padding-bottom: 1em;
-}
-
-.entity-fields label {
-    font-weight: 600;
-    margin-top: 0.5em;
-	display: inline;
-}
-
-.aggregate {
-	text-align: right;
-}
-
-.aggregate i {
-	float: right;
-    margin: 3px 3px 3px 8px;
-}
-
-.aggregate .hastip {
-	padding: 5px;
-}
-
-.subTip .tipsy-inner {
-	background-color: white;
-	color: black;
-	font-size: 1.3em;
-	border: 1px solid black;
-}
-
-.subTip .tipsy-arrow-n { border-bottom-color: black; }
-.subTip .tipsy-arrow-s { border-top-color: black; }
-.subTip .tipsy-arrow-e { border-left-color: black; }
-.subTip .tipsy-arrow-w { border-right-color: black; }
-
-
-.contextMenu {
-    display:none;
-	position:absolute;
-	left:30px;
-	top:-30px;
-	z-index:999;
-	/* width:300px; */
-}
-.contextMenu ul {
-	width:300px;
-	margin:0;
-	/* padding:10px; */
-	list-style:none;
-	background:#fff;
-	color:#333;
-    font-weight: 600;
-	/* -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; */
-	-moz-box-shadow:5px 5px 5px #ddd; -webkit-box-shadow:5px 5px 5px #999; box-shadow:5px 5px 5px #ddd;
-	border: 1px solid #aaa;
-}
-.contextMenu ul li {
-	padding:5px 10px;
-	/* border-bottom: solid 1px #ccc; */
-}
-.contextMenu ul li:hover {
-	background:#4a90d9; color:#fff;
-}
-.contextMenu ul li:last-child {
-    border:none;
-}
-
-.na {
-    display: none;
-}
-.contextMenu ul li.new {
-    display: block;
-}
-.contextMenu ul li.adding, .contextMenu ul li.adding + li {
-    display: block;
-}
-.contextMenu ul li.force-display {
-    display: block;
-}
-.contextMenu ul li.context-separator {
-    background-color: lightgray;
-    height: 1px;
-    padding: 0;
-}
-
-#crosssection {
-    display: none;
-    position: absolute;
-    top: 200px;
-    left: 600px;
-}
-
-.node circle {
-/*  fill: rgb(31, 119, 180);
-  fill-opacity: .25; */
-  fill: #cfe2f3;
-  fill-opacity: .98;
-  stroke: black;
-  stroke-width: 3px;
-}
-
-circle.subcircle {
-    stroke-width: 1px;
-    /* stroke-dasharray: 2; */
-    fill-opacity: 0;
-    stroke: darkgray;
-}
-
-.leaf circle {
-  fill: #6fa8dc;
-  fill-opacity: 0.95;
-  stroke-width: 3px;
-}
-
-.leaf circle[title] {
-    font-family: monospace;
-
-}
-
-#svg_legend {
-    position: absolute;
-    top: 110px;
-    right: 0;
-    border: 1px solid #ccc;
-    border-radius: 5px;
-    background-color: #fcfcfc;
-    margin-right: 1.3em;
-	padding: 1em;
-}
-
-#svg_legend svg {
-    height: 235px;
-    width: 180px;
-}
-
-#multiple_details div.gridStyle {
-/*	height: 50em; */
-	min-height: 70px !important;
-	height: auto !important;
-}
-
-#multiple_details .ngViewport {
-    height: auto !important;
-}
-
-#multiple_details .gridCellButton button, #link_details .gridCellButton button {
-    margin: .25em .4em;
-    font-size: 12px;
-    height: 2em;
-	padding-top: .1em;
-}
-
-#linkFilter {
-	display: none;
-	padding: 0.5em;
-	border: 1px solid grey;
-	background-color: #F0F0F0;
-	position: absolute;
-}
-
-span.filter-icon {
-	padding-left: 1em;
-}
-
-button.filter-close {
-    width: 15px;
-    height: 20px;
-    padding: 0;
-    position: absolute;
-    right: 4px;
-    top: 4px;
-}
-
-div.filter-title h6 {
-	margin: 0;
-}
-
-.links button.btn-filter {
-	padding: 0 1em 0 0;
-    margin-left: 1em;
-    font-size: 1em;
-}
-
-button.btn-filter {
-	visibility: hidden;
-}
-span.dynatree-expanded button.btn-filter,
-a.dynatree-title:hover button.btn-filter {
- 	visibility: visible;
-}
-
-div.hdash-button a {
-	color: white;
-}
-
-.linkDirIn {
-	color: red;
-	background-color: #f3f3f3;
-}
-
-.linkDirOut {
-	color: blue;
-	background-color: white;
-}
\ No newline at end of file
diff --git a/console/hawtio/src/main/webapp/plugin/css/dispatch.css b/console/hawtio/src/main/webapp/plugin/css/dispatch.css
new file mode 120000
index 0000000..f3dbfa0
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/css/dispatch.css
@@ -0,0 +1 @@
+../../../../../../stand-alone/plugin/css/dispatch.css
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/css/plugin.css
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/css/plugin.css b/console/hawtio/src/main/webapp/plugin/css/plugin.css
deleted file mode 100644
index eeeb558..0000000
--- a/console/hawtio/src/main/webapp/plugin/css/plugin.css
+++ /dev/null
@@ -1,869 +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.
-*/
-main-display > .span8 {
-  height: 100%;
-  position: relative;
-}
-
-ul.qdrListNodes > li > span {
-  padding: 6px 20px; 6px; 6px;
-  display: block;
-}
-
-.qdrList .gridStyle {
-    width: 20em;
-    margin-right: 0;
-    float: left;
-}
-
-
-.qdrList div.gridDetails {
-
-    width: auto;
-}
-
-.selectedItems {
-/*    margin-left: 21em; */
-}
-
-.qdrListPane {
-    top: 110px;
-}
-
-.qdrListActions {
-    width: auto;
-}
-
-div.listAttrName {
-    padding-top: 5px;
-}
-
-div.listAttrName i.icon-bar-chart {
-    float: right;
-    margin: 3px 5px;
-}
-
-div.listAttrName i.icon-bar-chart.active, div.hastip i.icon-bar-chart.active, li.haschart i {
-    background-color: #AAFFAA;
-}
-
-div#main div ul.nav li a:not(.btn) {
-    background: initial !important;
-}
-
-div#main div ul.nav li.active a {
-    background-color: #f0f0ff !important;
-}
-
-div#main.qdr {
-    margin-top: 44px !important;
-}
-
-div.charts-header {
-  font-size: 1.2em;
-  color: #666666;
-  margin: 1em 0;
-}
-
-.selectedNode, .selectedAction, .selectedEntity {
-    font-weight: 600;
-    color: #606066;
-}
-
-.okButton {
-    text-align: center;
-    margin: 1em;
-}
-
-span.showChartsLink {
-    border: 1px solid blue;
-    padding: 1px 2px;
-}
-
-div.listGraphs p {
-    margin: 1em 0 2em 2em;
-    text-align: center;
-}
-
-div.centered {
-    text-align: center;
-    margin: 4em;
-}
-
-.modal-body.centered {
-	margin: 0;
-}
-
-/* dialog */
-div.aChart {
-    height: 200px;
-    width:  400px;
-    margin: 1em;
-}
-
-/* dashboard */
-div.aChart.hDash {
-	/* width: 21em; */
-	/* height: 17em; */
-	width: 100%;
-	height: 87%;
-	margin: 0;
-	padding: 0;
-
-}
-div.chartContainer {
-    float: left;
-	width: 100%;
-	height: 100%;
-	overflow: hidden;
-}
-
-/* the x and y axis lines */
-.d3Chart g.axis path.domain {
-    stroke-width: 1;
-    stroke: black;
-}
-
-/* the line surrounding the area chart */
-div.d3Chart path {
-/*    stroke: black; */
-    stroke-width: 0;
-/*	opacity: 0.5; */
-}
-
-/* the line above the area chart */
-/* the color gets overridden */
-div.d3Chart path.line {
-    stroke: steelblue;
-    stroke-width: 1.5;
-    fill: none;
-    opacity: 1;
-}
-
-.mo-rect {
-    fill: #ffffdd;
-    stroke: #f0f0f0;
-    stroke-width: 1;
-}
-
-.mo-guide {
-    fill: none;
-    stroke: #d0d0d0;
-    stroke-width: 2;
-    stroke-dasharray: 3,3;
-}
-
-div.d3Chart .title {
-    text-decoration: underline;
-}
-
-
-.axis line, .axis path {
-  fill: none;
-  shape-rendering: crispEdges;
-  stroke-width: 1;
-  stroke: #000000;
-}
-
-.axis line {
-  stroke: #C0C0C0;
-  stroke-dasharray: 1,1;
-  opacity: 0.5;
-}
-
-.y.axis text, .x.axis text, .focus text, div.d3Chart .title {
-    font-size: 12px;
-}
-
-.y.axis path {
-   stroke: #000;
- }
-
-.overlay {
-   fill: none;
-   pointer-events: all;
- }
-
-.focus circle {
-   fill: none;
-   stroke: steelblue;
- }
-.focus .fo-table {
-	/* box-shadow: 2px 2px 3px #EEE; */
-}
-
-div.d3Chart {
-    padding: 1em 0;
-    border: 1px solid #C0C0C0;
-}
-div.d3Chart.hDash {
-    border: 0px;
-}
-
-div.d3Chart .axis path {
-	display: inherit;
-}
-.c3-circle {
-	display: none;
-}
-
-.fo-table {
-	border: 1px solid darkgray;
-	background-color: white;
-	font-size: .85em;
-}
-
-.fo-table td {
-	padding: 4px;
-	border-left: 1px solid darkgray;
-}
-.fo-table tr.detail td {
-	padding: 1px 4px;
-}
-.fo-title {
-	color: white;
-	background-color: darkgray;
-}
-
-.fo-table-legend {
-	width: 8px;
-	height: 8px;
-	border: 1px solid black;
-	margin: 0 4px;
-	display: inline-block;
-}
-
-svg .legend {
-	dominant-baseline: central;
-}
-
-div.chartContainer div.aChart {
-    margin-top: 0.5em;
-}
-
-div.qdr-attributes .tree-header select {
-	width: 100%;
-}
-
-div#main.qdr div ul.nav li.active a {
-  background-color: #e0e0ff !important;
-  color: #000000;
-}
-
-div#main.qdr .selected, .box.selected {
-  color: #000000;
-  text-shadow: none;
-}
-
-/* the selected node on the list page */
-div.qdrList li.active, ul.qdrListNodes li.active {
-    background-color: #e0e0ff;
-}
-
-div.qdr-attributes span.dynatree-selected a {
-    background-color: #e0e0ff;
-}
-div.qdr-attributes.pane, div.qdr-topology.pane {
-	position: absolute;
-	margin-left: 10px;
-}
-div.qdr-topology.pane.left {
-	width: auto;
-}
-
-/* the selected row in the name table */
-div#main.qdr div.qdrList div.selected {
-  background-color: #e0e0ff !important;
-}
-
-#dialogChart {
-    height: 200px;
-}
-
-div.qdrCharts p.chartLabels button {
-    float: right;
-}
-
-div.qdrCharts p.chartLabels {
-     padding-right: 1em;;
- }
-
-p.dialogHeader {
-    text-align: center;
-}
-
-p.dialogHeader input {
-    margin-top: 10px;
-    width: 480px;
-}
-
-.ui-slider-tick {
-  position: absolute;
-  background-color: #666;
-  width: 2px;
-  height: 8px;
-  top: 12px;
-  z-index: -1;
-}
-
-label.rateGroup {
-    float: left;
-}
-
-div.chartOptions div.dlg-slider {
-    float: left;
-    margin-left: 2em;
-    width: 28em;
-    font-size: 14px;
-}
-
-div.chartOptions div.duration {
-  width: 35em !important;
-}
-
-div.chartOptions .slider {
-    margin-top: 1em;
-    margin-bottom: 1em;
-}
-
-input[type="radio"] {
-    margin-top: 0 !important;
-}
-
-div.chartOptions legend {
-    font-size: 1.2em;
-    margin-bottom: 10px;
-}
-
-div.chartOptions span.minicolors-swatch {
-    width: 14px;
-    height: 14px;
-}
-
-.minicolors-input {
-    width: 4em;
-    padding: 0 0 0 24px !important;
-}
-
-div.colorPicker div.colorText {
-	display: inline-block;
-	width: 10em;
-}
-
-div.chartOptions p.sep {
-    height: 1em;
-}
-
-ul.nav-tabs {
-    border-bottom: 1px solid #ddd !important;
-}
-
-.chartOptions ul.nav-tabs {
-    margin-bottom: 0px !important;
-}
-
-div.tabbable div.tab-content {
-    overflow: visible;
-}
-
-div.tabbable ul.nav-tabs > .active > a {
-  background-color: #f8f8f8;
-  border: 1px solid #ddd;
-  border-bottom-color: transparent;
-}
-
-div.tabbable .tab-pane {
-    background-color: #f8f8f8;
-    padding: 12px;
-    border-right: 1px solid #ddd;
-    border-left: 1px solid #ddd;
-    border-bottom: 1px solid #ddd;
-}
-div.dlg-large div.tabbable .tab-pane {
-	margin-left: 11em;
-}
-
-div.tabbable ul.nav-tabs {
-  margin-bottom: 0;
-}
-
-ul.qdrTopoModes {
-    position: relative;
-    top: -10px;
-}
-.overview.section {
-	/* width: 35em; */
-}
-.overview.section .ngGrid {
-	height: 12em !important;
-	min-height: 12em !important;
-}
-
-.overview.routers.section .ngGrid {
- 	height: 16em !important;
- 	min-height: 16em !important;
-}
-.overview.routers.section {
- 	/*width: 15em; */
- }
-
-.grid-align-value {
-	text-align: right;
-}
-
-.grid-align-value .ngCellText {
-	padding-right: 10px;
-}
-
-.overview .ngRow:hover {
-	background:#e0e0ff;
-}
-
-.qdr-overview.pane.left, .qdr-attributes.pane.left {
-	top: 100px;
-}
-.qdr-topology.pane.left {
-	top: 104px;
-}
-.qdr-overview.pane.left {
-	left: 10px;
-}
-
-.treeContainer {
-	/*width: 250px;
-	float: left;
-	overflow-y: auto;
-	border-right: 1px solid lightgrey;
-	height: 100vh;
-*/
-}
-
-#entityNames {
-    width: 20em;
-    float: left;
-}
-
-.treeDetails {
-	/* margin-left: 300px; */
-}
-
-.gridStyle:not(.noHighlight) .ui-grid-row:hover .ui-grid-cell-contents {
-	background-color: #e0e0ff;
-}
-
-.ngCellText {
-	padding: 4px 0 0 4px;
-}
-
-.overview {
-	border-bottom: 1px solid #d4d4d4;
-}
-
-.ui-grid-row.ui-grid-row-selected > [ui-grid-row] > .ui-grid-cell {
-  background-color: #e0e0ff;
-}
-
-.tab-content .tab-pane {
-    background-color: #f8f8f8;
-    padding: 12px;
-    border-right: 1px solid #ddd;
-    border-left: 1px solid #ddd;
-    border-bottom: 1px solid #ddd;
-}
-
-div.chartOptions ul.nav-tabs > .active > a {
-  background-color: #f8f8f8;
-  border: 1px solid #ddd;
-  border-bottom-color: transparent;
-}
-
-div.chartOptions label:nth-of-type(2) {
-    margin-left: 1em;
-}
-div.chartOptions label {
-	font-weight: normal;
-	display: inline-block;
-}
-
-/*
-.form-horizontal .control-label {
-    float: left;
-    width: 160px;
-    padding-top: 5px;
-    text-align: right;
-}
-
-.form-horizontal .controls {
-    margin-left: 180px;
-}
-
-.form-horizontal input,  {
-    display: inline-block;
-    margin-bottom: 0;
-    vertical-align: middle;
-}
-
-input[type="text"], input[type="number"], input[type="password"] {
-    background-color: #ffffff;
-    border: 1px solid #cccccc;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-    -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-    -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-    -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
-    -o-transition: border linear 0.2s, box-shadow linear 0.2s;
-    transition: border linear 0.2s, box-shadow linear 0.2s;
-}
-
-input[type="text"], input[type="number"], input[type="password"] {
-    display: inline-block;
-    width: 200px;
-    padding: 4px 6px;
-    margin-bottom: 10px;
-    font-size: 14px;
-    line-height: 20px;
-    color: #555555;
-    vertical-align: middle;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-}
-
-.login input[type="checkbox"] {
-	margin-top: 0.75em;
-}
-*/
-
-#dispatch-login-container {
-	/* width: 18.5em; */
-	margin-top: 2em;
-}
-/*
-div.login.container {
-	width: 550px;
-}
-*/
-
-
-#overtree .fancytree-container {
-/*	border: 0px; */
-}
-
-#overtree span.fancytree-alert-icon.ui-icon-refresh {
-	/*background-position: -64px -80px; */
-}
-#overtree span.fancytree-alert-icon.ui-icon-transfer-e-w {
-	/*background-position: -112px -80px;*/
-}
-
-#alerts {
-	position: fixed;
-	right: 0;
-	top: 0;
-	z-index: 100;
-}
-
-.alert-enter,
-.alert-leave,
-.alert-move {
-  -webkit-transition: 1s linear all;
-  -moz-transition: 1s linear all;
-  -o-transition: 1s linear all;
-  transition: 1s linear all;
-  position:relative;
-}
-
-.alert-enter {
-  left:-10px;
-  opacity:0;
-}
-.alert-enter.alert-enter-active {
-  left:0;
-  opacity:1;
-}
-
-.alert-leave {
-  left:0;
-  opacity:1;
-}
-.alert-leave.alert-leave-active {
-  left:-10px;
-  opacity:0;
-}
-
-.alert-move {
-  opacity:0.5;
-}
-.alert-move.alert-move-active {
-  opacity:1;
-}
-
-.overview .table-striped tr:hover  td {
-	background-color: #e0e0ff !important;
-}
-
-#entityNames div.ngViewport {
-	overflow-x: hidden;
-}
-
-.connect-column.connect-form {
-	width: 20em;
-}
-
-.chartLabels button a {
-	text-decoration: none;
-}
-
-.fancytree-ico-c.router .fancytree-icon {
-
-}
-
-.tabs-left .nav-tabs {
-	float: left;
-}
-.tabs-left .nav-tabs > li {
-/*	float: initial; */
-}
-
-div.modal.dlg-large {
-	width: 53em;
-}
-
-button.hdash-button a {
-	text-decoration: none;
-	color: #fff;
-}
-
-div.widget-body > div {
-	height: 100%;
-}
-
-div.qdrCharts {
-	height: 100%;
-}
-
-ul.dispatch-view {
-	margin-bottom: 0 !important;
-}
-
-.qdr-overview.pane.left span:not(.dynatree-has-children) .dynatree-icon:before,
-.qdr-attributes.pane.left span:not(.dynatree-has-children) .dynatree-icon:before {
-    color: green;
-}
-
-span:not(.dynatree-has-children).address .dynatree-icon:before,
-span:not(.dynatree-has-children).router\.address .dynatree-icon:before {
-    content: "\f0ac";
-}
-
-span:not(.dynatree-has-children).connection.external .dynatree-icon:before,
-span:not(.dynatree-has-children).connection.normal .dynatree-icon:before {
-    content: "\f08e";
-}
-span:not(.dynatree-has-children).connection.external.quiesced .dynatree-icon:before {
-	content: "\f14c";
-	color: red;
-}
-
-span:not(.dynatree-has-children).connection.inter-router .dynatree-icon:before {
-     content: "\f152";
-}
-span:not(.dynatree-has-children).no-data .dynatree-icon:before {
-     content: "\f05e";
-     color: red !important;
-}
-span:not(.dynatree-has-children).loading .dynatree-icon:before {
-     content: "\f254";
-}
-span:not(.dynatree-has-children).router\.node .dynatree-icon:before {
-     content: "\f013";
-}
-span:not(.dynatree-has-children).connector .dynatree-icon:before {
-     content: "\f126";
-}
-span:not(.dynatree-has-children).container .dynatree-icon:before {
-     content: "\f16c";
-}
-span:not(.dynatree-has-children).log .dynatree-icon:before {
-     content: "\f0f6";
-}
-span:not(.dynatree-has-children).router\.link.inter-router .dynatree-icon:before {
-     content: "\f04e";
-}
-span:not(.dynatree-has-children).router\.link.endpoint .dynatree-icon:before {
-     content: "\f051";
-}
-span:not(.dynatree-has-children).listener .dynatree-icon:before {
-     content: "\f025";
-}
-span:not(.dynatree-has-children).connection .dynatree-icon:before {
-     content: "\f07e";
-}
-span:not(.dynatree-has-children).waypoint .dynatree-icon:before {
-     content: "\f0ec";
-}
-span:not(.dynatree-has-children).router .dynatree-icon:before {
-     content: "\f047";
-}
-span:not(.dynatree-has-children).fixedAddress .dynatree-icon:before {
-     content: "\f015";
-}
-span:not(.dynatree-has-children).linkRoutePattern .dynatree-icon:before {
-     content: "\f039";
-}
-span:not(.dynatree-has-children).allocator .dynatree-icon:before {
-     content: "\f170";
-}
-
-.ngCellText {
-/*    color: #333333; */
-}
-
-.changed {
-    color: #339933;
-}
-
-div.dispatch-router div.help {
-    width: auto;
-    padding: 1em;
-    background-color: lavender;
-    border-radius: 6px;
-    margin-top: 1em;
-    text-align: center;
-}
-
-div.operations tr:nth-child(even) {
-	background: #f3f3f3;
-}
-div.operations tr:nth-child(odd), div.operations tr:last-child {
-	background: #fff;
-}
-
-div.operations tr input {
-	margin: 0;
-	padding: 3px 6px;
-}
-div.operations table {
-    width: 100%;
-}
-div.operations th {
-    width: 50%;
-    border-bottom: 1px solid #cccccc;
-    text-align: left;
-}
-div.operations td:nth-child(odd), div.operations th:nth-child(odd) {
-	border-right: 1px solid #cccccc;
-}
-div.operations td:nth-child(odd) {
-	padding-left: 0;
-}
-div.operations td:nth-child(even), div.operations th:nth-child(even) {
-	padding-left: 5px;
-}
-div.operations th {
-	padding: 5px;
-}
-div.operations .tab-pane.active {
-    padding: 12px 12px 12px 0;
-}
-div.operations label {
-    padding-top: 4px;
-    margin-bottom: 4px;
-}
-.qdrListActions .ngGrid {
-	/*min-height: 40em;
-	height: 100%; */
-}
-div.qdrListActions .ngViewport {
-    height: initial !important;
-}
-
-div.operations .boolean {
-    padding-bottom: 0;
-}
-
-table.log-entry {
-    margin-bottom: 1em;
-    border-top: 1px solid black;
-}
-
-table.log-entry pre {
-    background-color: #f5f5f5;
-    color: inherit;
-    margin: 0;
-}
-
-circle.node.normal.console {
-    fill: lightcyan;
-}
-
-text.console, text.on-demand, text.normal {
-	font-family: FontAwesome;
-	font-weight: normal;
-	font-size: 16px;
-}
-
-@font-face {
-    font-family:"Brokers";
-    src: url("brokers.ttf") /* TTF file for CSS3 browsers */
-}
-
-text.artemis.on-demand {
-    font-family: Brokers;
-    font-size: 20px;
-    font-weight: bold;
-}
-
-text.qpid-cpp.on-demand {
-    font-family: Brokers;
-    font-size: 18px;
-    font-weight: bold;
-}
-
-i.red {
-	color: red;
-}
-
-.qdrListActions div.delete {
-    width: 20em;
-    margin: auto;
-    border: 1px solid #eaeaea;
-    height: 5em;
-    padding: 4em;
-    background-color: #fcfcfc;
-}
-
-.btn:focus {
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
-}
-
-select:focus, input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus {
-	outline:3px solid rgba(82, 168, 236, 0.6);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
-    outline: 5px auto -webkit-focus-ring-color;
-    outline-offset: -2px;
-}
-
-btn.disabled, .btn[disabled] {
-    opacity: 0.35;
-}
-
-#dispatch-login-container .ng-invalid-range {
-	border-color: #e9322d !important;
-}
\ No newline at end of file
diff --git a/console/hawtio/src/main/webapp/plugin/css/plugin.css b/console/hawtio/src/main/webapp/plugin/css/plugin.css
new file mode 120000
index 0000000..b94a926
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/css/plugin.css
@@ -0,0 +1 @@
+../../../../../../stand-alone/plugin/css/plugin.css
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/qdrCharts.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrCharts.html b/console/hawtio/src/main/webapp/plugin/html/qdrCharts.html
index 3267a9d..cb4f338 100644
--- a/console/hawtio/src/main/webapp/plugin/html/qdrCharts.html
+++ b/console/hawtio/src/main/webapp/plugin/html/qdrCharts.html
@@ -55,10 +55,10 @@ under the License.
             <tab ng-hide="$parent.chart.aggregate()" heading="Colors">
                 <legend>Chart colors</legend>
                 <div class="colorPicker">
-                    <div class="colorText">Area ({{dialogChart.areaColor}}):</div><div hawtio-color-picker="dialogChart.areaColor"></div>
+                    <label>Line: <input id="lineColor" name="lineColor" type="color" /></label>
                 </div>
                 <div class="colorPicker">
-                    <div class="colorText">Line ({{dialogChart.lineColor}}):</div><div hawtio-color-picker="dialogChart.lineColor"></div>
+                    <label>Area: <input id="areaColor" name="areaColor" type="color" /></label>
                 </div>
                 <div style="clear:both;"> </div>
             </tab>

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/qdrConnect.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrConnect.html b/console/hawtio/src/main/webapp/plugin/html/qdrConnect.html
deleted file mode 100644
index 54687fb..0000000
--- a/console/hawtio/src/main/webapp/plugin/html/qdrConnect.html
+++ /dev/null
@@ -1,80 +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.
--->
-<div class="row-fluid" ng-controller="QDR.SettingsController">
-      <div class="login container" ng-hide="connecting">
-          <div class="row" id="dispatch-login-container">
-              <div class="connect-column">
-                  <div class="alert alert-success">
-                      <p>
-                          Enter the address and port of a <strong><a href="http://qpid.apache.org/components/dispatch-router/" target="_blank">Qpid Dispatch Router</a></strong> to connect..
-                      </p>
-
-                      <p>
-                          The port should be a websockets <==> tcp proxy.
-                      </p>
-
-                      <p>
-                          When Autostart is checked, you will be automatically logged in to the router the next time you start the console.
-                      </p>
-
-                  </div>
-              </div>
-              <div class="connect-column connect-form">
-                  <form class="hawtio-form form-horizontal no-bottom-margin" novalidate ng-submit="connect()" name="settings">
-                      <fieldset>
-                          <div class="spacer"></div>
-                          <div class="control-group" ng-show="true">
-                              <label class="strong control-label">Address: </label>
-                              <div class="controls">
-                                  <input tabindex="1" type="text" ng-model="formEntity.address" placeholder="localhost" name="address" autofocus="autofocus" class="ng-pristine ng-valid ng-valid-required"></div>
-                          </div>
-                          <div class="control-group" ng-show="true">
-                              <label tabindex="-1" class="control-label" title="Ports to connect to, by default 5673">Port: </label>
-                              <div class="controls">
-                                  <input tabindex="2" posint type="number" placeholder="5673" tooltip="Ports to connect to, by default 5673" ng-model="formEntity.port" name="port" title="Ports to connect to, by default 5673">
-                                  <span ng-show="settings.port.$error.range">Must be 1 through 65535</span>
-                              </div>
-                          </div>
-                          <div class="control-group" ng-show="true">
-                              <label tabindex="-1" class="control-label" title="Whether or not the connection should be started as soon as you log into hawtio">Autostart: </label>
-                              <div class="controls">
-                                  <input tabindex="3" type="checkbox" tooltip="Whether or not the connection should be started as soon as you log into hawtio" ng-model="formEntity.autostart" name="autostart" title="Whether or not the connection should be started as soon as you log into hawtio"
-                                         class="ng-scope ng-pristine ng-valid"></div>
-                          </div>
-                          <input tabindex="-1" type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;">
-                          <p></p>
-                          <div>
-                              <button type="submit" tabindex="4" class="btn btn-primary pull-right" ng-disabled="settings.$invalid">{{buttonText()}}</button>
-                              <!-- <button tabindex="-1" class="btn btn-secondary pull-right" ng-click="connect1()">Debug</button> -->
-                          </div>
-                      </fieldset>
-                  </form>
-              </div>
-          </div>
-      </div>
-
-      <div class="centered" ng-show="connecting">
-        <i class="icon-spin icon-spinner icon-4x"></i>
-        <p>Please wait, connecting now...</p>
-      </div>
-      <div class="centered" ng-show="connectionError">
-        <p>There was a connection error: {{connectionErrorText}}</p>
-      </div>
-
-</div>
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrConnect.html b/console/hawtio/src/main/webapp/plugin/html/qdrConnect.html
new file mode 120000
index 0000000..2eb3530
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/html/qdrConnect.html
@@ -0,0 +1 @@
+../../../../../../stand-alone/plugin/html/qdrConnect.html
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/qdrLayout.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrLayout.html b/console/hawtio/src/main/webapp/plugin/html/qdrLayout.html
deleted file mode 100644
index 80cd5ea..0000000
--- a/console/hawtio/src/main/webapp/plugin/html/qdrLayout.html
+++ /dev/null
@@ -1,26 +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.
--->
-<ul class="nav nav-tabs connected dispatch-view" ng-controller="QDR.NavBarController">
-  <li ng-repeat="link in breadcrumbs" title="{{link.title}}" ng-show="isValid(link)" ng-class='{active : isActive(link.href), "pull-right" : isRight(link)}'>
-    <a ng-href="{{link.href}}" ng-bind-html-unsafe="link.content"></a>
-  </li>
-</ul>
-<div class="row-fluid dispatch-router">
-  <div ng-view></div>
-</div>
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrLayout.html b/console/hawtio/src/main/webapp/plugin/html/qdrLayout.html
new file mode 120000
index 0000000..f4caaf6
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/html/qdrLayout.html
@@ -0,0 +1 @@
+../../../../../../stand-alone/plugin/html/qdrLayout.html
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/qdrList.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrList.html b/console/hawtio/src/main/webapp/plugin/html/qdrList.html
deleted file mode 100644
index e259e64..0000000
--- a/console/hawtio/src/main/webapp/plugin/html/qdrList.html
+++ /dev/null
@@ -1,111 +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.
--->
-
-<div ng-controller="QDR.ListController">
-    <hawtio-pane class="qdr-attributes" position="left" width="200">
-        <div class="treeContainer">
-            <div class="tree-header"><select ng-options="node as node.name for node in nodes" ng-model="currentNode" ng-change="selectNode(currentNode)"></select></div>
-            <div id="entityTree" onSelect="onTreeSelected" onRoot="onRootReady" hideRoot="true"></div>
-            <div ng-init="treeReady()"></div>
-        </div>
-    </hawtio-pane>
-    <div class="row-fluid qdrListActions">
-        <ul class="nav nav-tabs">
-            <li ng-repeat="mode in modes" ng-show="isValid(mode)" ng-click="selectMode(mode)" ng-class="{active : isModeSelected(mode)}" title="{{mode.title}}" ng-bind-html-unsafe="mode.content"> </li>
-        </ul>
-        <h4>{{selectedRecordName}}</h4>
-        <div ng-show="currentMode.id === 'attributes'" class="selectedItems">
-            <div ng-show="selectedRecordName === selectedEntity" class="no-content">There are no {{selectedEntity | safePlural}}</div>
-            <div ng-hide="selectedRecordName === selectedEntity" ng-grid="details"></div>
-        </div>
-        <div ng-show="currentMode.id === 'delete'">
-            <div class="delete" ng-show="selectedRecordName !== selectedEntity">
-                <button class="btn btn-primary" ng-click="remove()">Delete</button> {{selectedRecordName}}
-            </div>
-            <div ng-hide="selectedRecordName !== selectedEntity">
-                There are no {{selectedEntity}}s
-            </div>
-        </div>
-        <div class="operations" ng-show="currentMode.id === 'operations'">
-            <fieldset ng-show="operation != ''">
-                <table>
-                    <tr>
-                        <th>Attribute</th>
-                        <th>Value</th>
-                    </tr>
-                <tr title="{{attribute.title}}" ng-repeat="attribute in detailFields">
-                    <td><label for="{{attribute.name}}">{{attribute.name | humanify}}</label></td>
-                    <!-- we can't do <input type="{angular expression}"> because... jquery throws an exception because... -->
-                    <td>
-                    <div ng-if="attribute.input == 'input'">
-                        <!-- ng-pattern="testPattern(attribute)" -->
-                        <input ng-if="attribute.type == 'number'" type="number" name="{{attribute.name}}" id="{{attribute.name}}" ng-model="attribute.rawValue" ng-required="attribute.required" class="ui-widget-content ui-corner-all"/>
-                        <input ng-if="attribute.type == 'text'" type="text" name="{{attribute.name}}" id="{{attribute.name}}" ng-model="attribute.attributeValue" ng-required="attribute.required" class="ui-widget-content ui-corner-all"/>
-                        <textarea ng-if="attribute.type == 'textarea'" name="{{attribute.name}}" id="{{attribute.name}}" ng-model="attribute.attributeValue" ng-required="attribute.required" class="ui-widget-content ui-corner-all"></textarea>
-                        <span ng-if="attribute.type == 'disabled'" >{{getAttributeValue(attribute)}}</span>
-                    </div>
-                    <div ng-if="attribute.input == 'select'">
-                        <select id="{{attribute.name}}" ng-model="attribute.selected" ng-options="item for item in attribute.rawtype track by item"></select>
-                    </div>
-                    <div ng-if="attribute.input == 'boolean'" class="boolean">
-                        <label><input type="radio" ng-model="attribute.rawValue" ng-value="true"> True</label>
-                        <label><input type="radio" ng-model="attribute.rawValue" ng-value="false"> False</label>
-                    </div>
-                    </td>
-                </tr>
-                <tr><td></td><td><button class="btn btn-primary" type="button" ng-click="ok()">{{operation | Pascalcase}}</button></td></tr>
-                </table>
-            </fieldset>
-        </div>
-        <div ng-show="currentMode.id === 'log'">
-            <table class="log-entry" ng-repeat="entry in logResults track by $index">
-                <tr>
-                    <td align="left" colspan="2">{{entry.time}}</td>
-                </tr>
-                <tr>
-                    <td>Type</td><td>{{entry.type}}</td>
-                </tr>
-                <tr>
-                    <td>Source</td><td>{{entry.source}}:{{entry.line}}</td>
-                </tr>
-                <tr>
-                    <td valign="middle">Message</td><td valign="middle"><pre>{{entry.message}}</pre></td>
-                </tr>
-            </table>
-        </div>
-    </div>
-</div>
-
-<!--
-    This is the template for the graph dialog that is displayed.
--->
-<script type="text/ng-template" id="template-from-script.html">
-    <div class="modal-header">
-        <h3 class="modal-title">Chart {{chart.attr() | humanify}}</h3>
-    </div>
-    <div class="modal-body">
-            <div id="{{svgDivId}}" class="d3Chart"></div>
-    </div>
-    <div class="modal-footer">
-        <span>
-            <div class="btn btn-success hdash-button" ng-click="addHChart()" title="Add this chart to a dashboard"><a ng-href="{{addToDashboardLink()}}"><i class="icon-share"></i> Add this chart to a dashboard</a></div>
-        </span>
-        <button class="btn btn-primary" type="button" ng-click="ok()">Close</button>
-    </div>
-</script>
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrList.html b/console/hawtio/src/main/webapp/plugin/html/qdrList.html
new file mode 120000
index 0000000..843a1ef
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/html/qdrList.html
@@ -0,0 +1 @@
+../../../../../../stand-alone/plugin/html/qdrList.html
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/qdrOverview.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrOverview.html b/console/hawtio/src/main/webapp/plugin/html/qdrOverview.html
deleted file mode 100644
index 14653b1..0000000
--- a/console/hawtio/src/main/webapp/plugin/html/qdrOverview.html
+++ /dev/null
@@ -1,153 +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.
--->
-<!--
-<div ng-controller="QDR.OverviewController">
-
-    <div class="treeContainer">
-        <div id="overtree"></div>
-    </div>
-
-    <div class="treeDetails" ng-include="template.url"></div>
-</div>
--->
-<div ng-controller="QDR.OverviewController">
-    <hawtio-pane class="qdr-overview" position="left" width="300">
-        <div class="treeContainer">
-            <div id="overtree"></div>
-        </div>
-    </hawtio-pane>
-    <div class="treeDetails" ng-include="template.url"></div>
-    <div id="linkFilter">
-        <div class="filter-title">
-            <h6>Filter by link type</h6>
-            <button ng-click="filterClose()" type="button" class="btn btn-primary filter-close">x</button>
-        </div>
-        <select ng-init="currentLinkFilter = 'endpoint'" ng-model="currentLinkFilter" ng-change="setLinkFilter(currentLinkFilter)">
-            <option value="">All link types</option>
-            <option value="endpoint" selected>Endpoints only</option>
-        </select>
-    </div>
-</div>
-
-<!-- the following scripts are content that gets loaded into the above div that has the temple.url -->
-<script type="text/ng-template" id="routers.html">
-    <div class="row-fluid">
-        <h3>Routers</h3>
-        <div class="overview">
-            <div class="gridStyle" ng-grid="allRouters"></div>
-        </div>
-    </div>
-</script>
-
-<script type="text/ng-template" id="router.html">
-    <div class="row-fluid">
-        <h3>Router {{router.data.title}} attributes</h3>
-        <div class="gridStyle noHighlight" ng-grid="routerGrid"></div>
-    </div>
-</script>
-
-<script type="text/ng-template" id="addresses.html">
-    <div class="row-fluid">
-        <h3>Addresses</h3>
-        <div class="overview">
-            <div class="gridStyle" ng-grid="addressesGrid"></div>
-        </div>
-    </div>
-</script>
-<script type="text/ng-template" id="address.html">
-    <div class="row-fluid">
-        <h3>Address {{address.data.title}}</h3>
-        <div class="gridStyle noHighlight" ng-grid="addressGrid"></div>
-    </div>
-</script>
-<script type="text/ng-template" id="links.html">
-    <div class="row-fluid">
-        <h3>Links</h3>
-        <div class="gridStyle" ng-grid="linksGrid"></div>
-    </div>
-</script>
-<script type="text/ng-template" id="link.html">
-    <div class="row-fluid">
-        <h3>Link {{link.data.title}}</h3>
-        <div class="gridStyle noHighlight" ng-grid="linkGrid"></div>
-    </div>
-</script>
-<script type="text/ng-template" id="connections.html">
-    <div class="row-fluid">
-    <h3>Connections</h3>
-    <div class="overview">
-        <div class="gridStyle" ng-grid="allConnectionGrid"></div>
-    </div>
-    </div>
-</script>
-<script type="text/ng-template" id="connection.html">
-    <div class="row-fluid">
-        <ul class="nav nav-tabs">
-            <li ng-repeat="mode in connectionModes" ng-show="isValid(mode)" ng-click="selectMode(mode)" ng-class="{active : isModeSelected(mode)}" title="{{mode.title}}" ng-bind-html-unsafe="mode.content"> </li>
-        </ul>
-        <div ng-show="currentMode.id === 'attributes'" class="selectedItems">
-            <h3>Connection {{connection.data.title}}</h3>
-            <div class="gridStyle noHighlight" ng-grid="connectionGrid"></div>
-        </div>
-        <div ng-show="currentMode.id === 'links'" class="selectedItems">
-            <h3>External links for connection {{connection.data.title}}</h3>
-            <!-- <button title="{{quiesceState.buttonText}} links" type="button" ng-hide="quiesceHide()" ng-class="quiesceClass()" class="btn" ng-click="quiesceAllClicked()" ng-disabled="quiesceState.buttonDisabled">{{quiesceState.buttonText}}</button> -->
-            <div class="gridStyle noHighlight" ng-grid="connectionLinksGrid"></div>
-        </div>
-    </div>
-</script>
-<script type="text/ng-template" id="titleHeaderCellTemplate.html">
-    <div title="{{col.displayName}}" class="ngHeaderSortColumn {{col.headerClass}}" ng-style="{'cursor': col.cursor}" ng-class="{ 'ngSorted': !noSortVisible }">
-        <div ng-click="col.sort($event)" ng-class="'colt' + col.index" class="ngHeaderText">{{col.displayName}}</div>
-        <div class="ngSortButtonDown" ng-show="col.showSortButtonDown()"></div>
-        <div class="ngSortButtonUp" ng-show="col.showSortButtonUp()"></div>
-        <div class="ngSortPriority">{{col.sortPriority}}</div>
-    </div>
-</script>
-<script type="text/ng-template" id="titleCellTemplate.html">
-    <div title="{{row.entity[col.field]}}" class="ngCellText">{{row.entity[col.field]}}</div>
-</script>
-<script type="text/ng-template" id="logs.html">
-    <div class="row-fluid">
-    <h3>Logs</h3>
-    </div>
-</script>
-<script type="text/ng-template" id="log.html">
-    <div class="row-fluid">
-    <h3>Log {{log.data.title}}</h3>
-    </div>
-</script>
-
-<script type="text/ng-template" id="linkRowTemplate.html">
-    <div ng-class="{linkDirIn: row.getProperty('linkDir') == 'in', linkDirOut: row.getProperty('linkDir') == 'out'}">
-        <div ng-style="{ 'cursor': row.cursor }" ng-repeat="col in renderedColumns" ng-class="col.colIndex()" class="ngCell {{col.cellClass}}">
-            <div class="ngVerticalBar" ng-style="{height: rowHeight}" ng-class="{ ngVerticalBarVisible: !$last }">&nbsp;</div>
-            <div ng-cell></div>
-        </div>
-    </div>
-</script>
-
-<script type="text/ng-template" id="linkAggTemplate.html">
-    <div ng-click='row.toggleExpand(); saveGroupState()' ng-style='rowStyle(row)' class='ngAggregate ng-scope' style='top: 0px; height: 48px; left: 0px;'>
-    <span class='ngAggregateText ng-binding'>
-            {{row.label CUSTOM_FILTERS}} ({{row.totalChildren()}} {{AggItemsLabel}})
-        </span>
-    <div ng-class="{true: 'ngAggArrowCollapsed', false: 'ngAggArrowExpanded'}[row.collapsed]"></div>
-    </div>
-</script>
\ No newline at end of file
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrOverview.html b/console/hawtio/src/main/webapp/plugin/html/qdrOverview.html
new file mode 120000
index 0000000..3c33d8a
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/html/qdrOverview.html
@@ -0,0 +1 @@
+../../../../../../stand-alone/plugin/html/qdrOverview.html
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/qdrSchema.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrSchema.html b/console/hawtio/src/main/webapp/plugin/html/qdrSchema.html
deleted file mode 100644
index 6661baf..0000000
--- a/console/hawtio/src/main/webapp/plugin/html/qdrSchema.html
+++ /dev/null
@@ -1,21 +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.
--->
-<div class="main-display row-fluid" ng-controller="QDR.SchemaController">
-    <div id="schema"></div>
-</div>
\ No newline at end of file
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrSchema.html b/console/hawtio/src/main/webapp/plugin/html/qdrSchema.html
new file mode 120000
index 0000000..7f9422e
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/html/qdrSchema.html
@@ -0,0 +1 @@
+../../../../../../stand-alone/plugin/html/qdrSchema.html
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/qdrTopology.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrTopology.html b/console/hawtio/src/main/webapp/plugin/html/qdrTopology.html
deleted file mode 100644
index 864441f..0000000
--- a/console/hawtio/src/main/webapp/plugin/html/qdrTopology.html
+++ /dev/null
@@ -1,219 +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.
--->
-<div class="qdrTopology row-fluid" ng-controller="QDR.TopologyController">
-    <div class="qdr-topology pane left" ng-controller="QDR.TopologyFormController">
-        <div id="topologyForm" ng-class="{selected : isSelected()}">
-            <!-- <div ng-repeat="form in forms" ng-show="isVisible(form)" ng-class='{selected : isSelected(form)}'> -->
-            <div ng-show="form == 'router'">
-                <h4>Router Info</h4>
-                <div class="gridStyle" ng-grid="topoGridOptions"></div>
-            </div>
-            <div ng-show="form == 'connection'">
-                <h4>Connection Info</h4>
-                <div class="gridStyle" ng-grid="topoGridOptions"></div>
-            </div>
-            <div id="addNodeForm" ng-show="form == 'add'">
-                <h4>Add a new router</h4>
-                <ul>
-                    <li>Click on an existing router to create a connection to the new router</li>
-                    <li>Double-click on the new router to <button ng-click="editNewRouter()">edit</button> its properties</li>
-                    <li ng-show="addingNode.hasLink" >Right-click on a new connection to edit its properties</li>
-                </ul>
-                <button ng-click="cancel()">Cancel</button>
-            </div>
-        </div>
-    </div>
-    <div class="panel-adjacent">
-
-<!--
-        <ul class="nav nav-tabs ng-scope qdrTopoModes">
-            <li ng-repeat="mode in modes" ng-class="{active : isModeActive(mode.name), 'pull-right' : isRight(mode)}" ng-click="selectMode('{{mode.name}}')" >
-                <a data-placement="bottom" class="ng-binding"> {{mode.name}} </a></li>
-        </ul>
--->
-        <div id="topology" ng-show="mode == 'Diagram'"><!-- d3 toplogy here --></div>
-        <div id="crosssection"><!-- d3 pack here --></div>
-        <div id="node_context_menu" class="contextMenu">
-            <ul>
-                <li class="na" ng-class="{new: contextNode.cls == 'temp'}" ng-click="addingNode.trigger = 'editNode'">Edit...</li>
-                <li class="na" ng-class="{adding: addingNode.step > 0}" ng-click="addingNode.step = 0">Cancel add</li>
-                <li class="context-separator"></li>
-                <li class="na" ng-class="{'force-display': !isFixed()}" ng-click="setFixed(true)">Freeze in place</li>
-                <li class="na" ng-class="{'force-display': isFixed()}" ng-click="setFixed(false)">Unfreeze</li>
-            </ul>
-        </div>
-        <div id="svg_context_menu" class="contextMenu">
-            <ul>
-                <li ng-click="addingNode.step = 2">Add a new router</li>
-            </ul>
-        </div>
-        <div id="link_context_menu" class="contextMenu">
-            <ul>
-                <li ng-click="reverseLink()">Reverse connection direction</li>
-                <li ng-click="removeLink()">Remove connection</li>
-            </ul>
-        </div>
-        <div id="svg_legend"></div>
-        <div id="multiple_details">
-            <div class="gridStyle" ng-grid="multiDetails"></div>
-         </div>
-        <div id="link_details">
-            <div class="gridStyle" ng-grid="linkDetails"></div>
-        </div>
-    </div>
-</div>
-
-
-<script type="text/ng-template" id="titleHeaderCellTemplate.html">
-    <div title="{{col.displayName}}" class="ngHeaderSortColumn {{col.headerClass}}" ng-style="{'cursor': col.cursor}" ng-class="{ 'ngSorted': !noSortVisible }">
-        <div ng-click="col.sort($event)" ng-class="'colt' + col.index" class="ngHeaderText">{{col.displayName}}</div>
-        <div class="ngSortButtonDown" ng-show="col.showSortButtonDown()"></div>
-        <div class="ngSortButtonUp" ng-show="col.showSortButtonUp()"></div>
-        <div class="ngSortPriority">{{col.sortPriority}}</div>
-    </div>
-</script>
-<script type="text/ng-template" id="titleCellTemplate.html">
-    <div title="{{row.entity[col.field]}}" class="ngCellText">{{row.entity[col.field]}}</div>
-</script>
-
-<!--
-    This is the template for the node edit dialog that is displayed.
--->
-<script type="text/ng-template" id="node-config-template.html">
-    <div class="modal-header">
-        <h3 class="modal-title">Configure new router</h3>
-    </div>
-    <div class="modal-body">
-        <form novalidate name="editForm">
-
-            <tabset vertical="true" class="tabs-left">
-                <tab ng-repeat="entity in entities"> <!-- ng-class="{separated: entity.tabName == 'listener0'}" -->
-                    <tab-heading>
-                        <i ng-if="entity.icon !== ''" ng-class="entity.icon ? 'ui-icon-arrowthick-1-w' : 'ui-icon-arrowthick-1-e'" class="ui-icon"></i>{{entity.humanName}}
-                    </tab-heading>
-                    <div class="entity-description">{{entity.description}}</div>
-                    <fieldset>
-                        <div ng-mouseenter="showDescription(attribute, $event)" ng-repeat="attribute in entity.attributes">
-                            <label for="{{attribute.name}}">{{attribute.humanName}}</label>
-<!-- we can't do <input type="{angular expression}"> because... jquery throws an exception because... -->
-                            <div ng-if="attribute.input == 'input'">
-                                <!-- ng-pattern="testPattern(attribute)" -->
-                                <input ng-if="attribute.type == 'number'" type="number" name="{{attribute.name}}" id="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required" class="ui-widget-content ui-corner-all"/>
-                                <input ng-if="attribute.type == 'text'" type="text" name="{{attribute.name}}" id="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required" class="ui-widget-content ui-corner-all"/>
-                            </div>
-                            <div ng-if="attribute.input == 'select'">
-                                <select id="{{attribute.name}}" ng-model="attribute.selected" ng-options="item for item in attribute.rawtype"></select>
-                            </div>
-                            <div ng-if="attribute.input == 'boolean'" class="boolean">
-                                <label><input type="radio" ng-model="attribute.value" value="true"> True</label>
-                                <label><input type="radio" ng-model="attribute.value" value="false"> False</label>
-                            </div>
-                        </div>
-                    </fieldset>
-                    <div class="attr-description">{{attributeDescription}}
-                        <div class="attr-type">{{attributeType}}</div>
-                        <div class="attr-required">{{attributeRequired}}</div>
-                        <div class="attr-unique">{{attributeUnique}}</div>
-                    </div>
-                    <div class="attr-annotations" ng-repeat="annotation in entity.annotatedBy">
-                        <span>You can also enter the <button ng-click="selectAnnotationTab(annotation)">{{annotation}}</button> values.</span>
-                    </div>
-                </tab>
-            </tabset>
-
-
-        </form>
-    </div>
-    <div class="modal-footer">
-        <button class="btn btn-primary" type="button" ng-click="download()">Download</button>
-        <button class="btn btn-warning" type="button" ng-click="cancel()">Cancel</button>
-    </div>
-</script>
-
-<script type="text/ng-template" id="config-file-header.html">##
-## 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
-##
-</script>
-
-<script type="text/ng-template" id="download-dialog-template.html">
-    <div class="modal-header">
-        <h3 class="modal-title">Configure new router</h3>
-    </div>
-    <div class="modal-body">
-
-        <label title="Show descriptions and default values in confile files"><input type="checkbox" ng-model="verbose"> Verbose output</label>
-        <div>
-            <button ng-click="download()">Download</button>
-            <button class="btn" zero-clipboard data-clipboard-text="{{output}}" title="Copy to clipboard">
-                <i class="icon-copy"></i>
-            </button> configuration file for {{newRouterName}}
-        </div>
-        <div ng-repeat="part in parts">
-            <button ng-click="downloadPart(part)">Download</button>
-            <button class="btn" zero-clipboard data-clipboard-text="{{part.output}}" title="Copy to clipboard">
-                <i class="icon-copy"></i>
-            </button> connector section for {{part.name}}
-        </div>
-
-    </div>
-    <div class="modal-footer">
-        <button class="btn btn-primary" type="button" ng-click="done()">Done</button>
-    </div>
-
-<!--
-
-    <div title="Configure new router">
-
-        <label title="Show descriptions and default values in confile files"><input type="checkbox" ng-model="verbose"> Verbose output</label>
-        <div>
-            <button ng-click="download()">Download</button>
-            <button class="btn" zero-clipboard data-clipboard-text="{{output}}" title="Copy to clipboard">
-                <i class="icon-copy"></i>
-            </button> configuration file for {{newRouterName}}
-        </div>
-        <div ng-repeat="part in parts">
-            <button ng-click="downloadPart(part)">Download</button>
-            <button class="btn" zero-clipboard data-clipboard-text="{{part.output}}" title="Copy to clipboard">
-                <i class="icon-copy"></i>
-            </button> connector section for {{part.name}}
-        </div>
-
-        <div class="okButton">
-            <button ng-click="done()">Done</button>
-        </div>
-
-    </div>
--->
-</script>
-
diff --git a/console/hawtio/src/main/webapp/plugin/html/qdrTopology.html b/console/hawtio/src/main/webapp/plugin/html/qdrTopology.html
new file mode 120000
index 0000000..9dc2f21
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/html/qdrTopology.html
@@ -0,0 +1 @@
+../../../../../../stand-alone/plugin/html/qdrTopology.html
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/tmplListChart.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/tmplListChart.html b/console/hawtio/src/main/webapp/plugin/html/tmplListChart.html
new file mode 100644
index 0000000..4a4811e
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/html/tmplListChart.html
@@ -0,0 +1,12 @@
+<div class="modal-header">
+    <h3 class="modal-title">Chart {{chart.attr() | humanify}}</h3>
+</div>
+<div class="modal-body">
+    <div id="{{svgDivId}}" class="d3Chart"></div>
+</div>
+<div class="modal-footer">
+        <span>
+            <div class="btn btn-success hdash-button" ng-click="addHChart()" title="Add this chart to a dashboard"><a ng-href="{{addToDashboardLink()}}"><i class="icon-share"></i> Add this chart to a dashboard</a></div>
+        </span>
+    <button class="btn btn-primary" type="button" ng-click="ok()">Close</button>
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/tmplListTree.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/tmplListTree.html b/console/hawtio/src/main/webapp/plugin/html/tmplListTree.html
new file mode 100644
index 0000000..b523efe
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/html/tmplListTree.html
@@ -0,0 +1,8 @@
+<hawtio-pane class="qdr-attributes" position="left" width="200">
+    <div class="treeContainer">
+        <div class="tree-header"><select ng-options="node as node.name for node in nodes" ng-model="currentNode" ng-change="selectNode(currentNode)"></select></div>
+        <div id="entityTree" onSelect="onTreeSelected" onRoot="onRootReady" hideRoot="true"></div>
+        <div ng-init="treeReady()"></div>
+    </div>
+</hawtio-pane>
+<ng-include src="'listGrid.html'"></ng-include>

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/html/tmplOverviewTree.html
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/html/tmplOverviewTree.html b/console/hawtio/src/main/webapp/plugin/html/tmplOverviewTree.html
new file mode 100644
index 0000000..48f9cbc
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/html/tmplOverviewTree.html
@@ -0,0 +1,6 @@
+<hawtio-pane class="qdr-overview" position="left" width="300">
+    <div class="treeContainer">
+        <div id="overtree"></div>
+    </div>
+</hawtio-pane>
+<ng-include src="'overviewGrid.html'"></ng-include>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/js/dispatchPlugin.js
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/js/dispatchPlugin.js b/console/hawtio/src/main/webapp/plugin/js/dispatchPlugin.js
index 80c2c9d..9383f06 100644
--- a/console/hawtio/src/main/webapp/plugin/js/dispatchPlugin.js
+++ b/console/hawtio/src/main/webapp/plugin/js/dispatchPlugin.js
@@ -82,6 +82,12 @@ var QDR = (function(QDR) {
 			.when(QDR.pluginRoot, {
 				templateUrl: QDR.templatePath + 'qdrConnect.html'
 			})
+			.when(QDR.pluginRoot + '/', {
+				templateUrl: QDR.templatePath + 'qdrConnect.html'
+			})
+			.when(QDR.pluginRoot + '/connect', {
+				templateUrl: QDR.templatePath + 'qdrConnect.html'
+			})
 			.when(QDR.pluginRoot + '/overview', {
 				templateUrl: QDR.templatePath + 'qdrOverview.html'
 			})
@@ -97,9 +103,6 @@ var QDR = (function(QDR) {
 			.when(QDR.pluginRoot + '/charts', {
 				templateUrl: QDR.templatePath + 'qdrCharts.html'
 			})
-			.when(QDR.pluginRoot + '/connect', {
-				templateUrl: QDR.templatePath + 'qdrConnect.html'
-			})
       })
 	  .config(function ($compileProvider) {
 			var cur = $compileProvider.urlSanitizationWhitelist();
@@ -111,6 +114,7 @@ var QDR = (function(QDR) {
 	  })
 	  .filter('to_trusted', function($sce){
 			return function(text) {
+			debugger;
 				return $sce.trustAsHtml(text);
 			};
       })
@@ -165,18 +169,22 @@ var QDR = (function(QDR) {
    *     plugin.  This is just a matter of adding to the workspace's
    *     topLevelTabs array.
    */
-  QDR.module.run(function(workspace, viewRegistry, layoutFull, $rootScope, $location, localStorage, QDRService, QDRChartService) {
+  QDR.module.run(function(workspace, viewRegistry, layoutFull, $route, $rootScope, $location, localStorage, QDRService, QDRChartService) {
 		QDR.log.info("*************creating Dispatch Console************");
 		var curPath = $location.path()
-		var lastLocation = localStorage[QDR.LAST_LOCATION];
-		if (!angular.isDefined(lastLocation)) {
-			lastLocation = "connect";
-		}
+		QDR.log.info("curPath is " + curPath)
+		var lastLocation = localStorage[QDR.LAST_LOCATION] || "connect"
 		if (lastLocation.startsWith(QDR.pluginRoot)) {
 			lastLocation = lastLocation.substr(QDR.pluginRoot.length+1)
+			if (lastLocation === '')
+				lastLocation = "overview"
 		}
+		$location.path(QDR.pluginRoot + "/connect");
 		if (curPath.startsWith(QDR.pluginRoot)) {
 			var org = curPath.substr(QDR.pluginRoot.length + 1)
+			if (org === '') {
+				org = lastLocation
+			}
 			if (curPath === QDR.pluginRoot && (!org || org.length===0 || org !== 'connect')) {
 				org = lastLocation
 			}
@@ -228,8 +236,9 @@ var QDR = (function(QDR) {
         $rootScope.$on('$routeChangeSuccess', function() {
             var path = $location.path();
 			if (path.startsWith(QDR.pluginRoot)) {
-				if (path != QDR.pluginRoot && path != QDR.pluginRoot + "/connect") {
-		            localStorage[QDR.LAST_LOCATION] = $location.path();
+				if (path !== QDR.pluginRoot && path !== (QDR.pluginRoot + "/") && path !== (QDR.pluginRoot + "/connect")) {
+		            localStorage[QDR.LAST_LOCATION] = path;
+QDR.log.info("saving page changed to " + path)
 				}
 			}
         });
@@ -237,40 +246,17 @@ var QDR = (function(QDR) {
 		$rootScope.$on( "$routeChangeStart", function(event, next, current) {
 			if (next && next.templateUrl == QDR.templatePath + "qdrConnect.html" && QDRService.connected) {
 				// clicked connect from another dispatch page
-				if (current && current.loadedTemplateUrl.startsWith(QDR.contextPath)) {
+				if (current && current.loadedTemplateUrl && current.loadedTemplateUrl.startsWith(QDR.contextPath)) {
 					return;
 				}
 				// clicked the Dispatch Router top level tab from a different plugin
-				var lastLocation = localStorage[QDR.LAST_LOCATION];
-				if (!angular.isDefined(lastLocation)) {
-					lastLocation = QDR.pluginRoot + "/overview";
-				}
+				var lastLocation = localStorage[QDR.LAST_LOCATION] || (QDR.pluginRoot + "/overview");
 				// show the last page visited
+QDR.log.info("showing dispatch tab: going to page " + lastLocation)
 				$location.path(lastLocation)
 			}
 	    });
-    /* Set up top-level link to our plugin.  Requires an object
-       with the following attributes:
 
-         id - the ID of this plugin, used by the perspective plugin
-              and by the preferences page
-         content - The text or HTML that should be shown in the tab
-         title - This will be the tab's tooltip
-         isValid - A function that returns whether or not this
-                   plugin has functionality that can be used for
-                   the current JVM.  The workspace object is passed
-                   in by hawtio's navbar controller which lets
-                   you inspect the JMX tree, however you can do
-                   any checking necessary and return a boolean
-         href - a function that returns a link, normally you'd
-                return a hash link like #/foo/bar but you can
-                also return a full URL to some other site
-         isActive - Called by hawtio's navbar to see if the current
-                    $location.url() matches up with this plugin.
-                    Here we use a helper from workspace that
-                    checks if $location.url() starts with our
-                    route.
-     */
     workspace.topLevelTabs.push({
       id: "dispatch",
       content: "Dispatch Router",

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/js/navbar.js
----------------------------------------------------------------------
diff --git a/console/hawtio/src/main/webapp/plugin/js/navbar.js b/console/hawtio/src/main/webapp/plugin/js/navbar.js
deleted file mode 100644
index 74cc5a6..0000000
--- a/console/hawtio/src/main/webapp/plugin/js/navbar.js
+++ /dev/null
@@ -1,123 +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) {
-
-  /**
-   * @property breadcrumbs
-   * @type {{content: string, title: string, isValid: isValid, href: string}[]}
-   *
-   * Data structure that defines the sub-level tabs for
-   * our plugin, used by the navbar controller to show
-   * or hide tabs based on some criteria
-   */
-  QDR.breadcrumbs = [
-    {
-        content: '<i class="icon-cogs"></i> Connect',
-        title: "Connect to a router",
-        isValid: function () { return true; },
-        href: "#/" + QDR.pluginName + "/connect"
-    },
-    {
-        content: '<i class="fa fa-home"></i> Overview',
-        title: "View router overview",
-        isValid: function (QDRService) { return QDRService.isConnected(); },
-        href: "#/" + QDR.pluginName + "/overview"
-      },
-    {
-        content: '<i class="icon-list "></i> Entities',
-        title: "View the attributes of the router entities",
-        isValid: function (QDRService) { return QDRService.isConnected(); },
-        href: "#/" + QDR.pluginName + "/list"
-      },
-    {
-        content: '<i class="icon-star-empty"></i> Topology',
-        title: "View router network topology",
-        isValid: function (QDRService) { return QDRService.isConnected(); },
-        href: "#/" + QDR.pluginName + "/topology"
-      },
-    {
-        content: '<i class="icon-align-left"></i> Schema',
-        title: "View dispatch schema",
-        isValid: function (QDRService) { return QDRService.isConnected(); },
-        href: "#/" + QDR.pluginName + "/schema",
-        right: true
-
-      }
-  ];
-  /**
-   * @function NavBarController
-   *
-   * @param $scope
-   * @param workspace
-   *
-   * The controller for this plugin's navigation bar
-   *
-   */
-QDR.NavBarController = function($scope, QDRService, QDRChartService, $location, $routeParams) {
-    $scope.breadcrumbs = QDR.breadcrumbs;
-    $scope.isValid = function(link) {
-      return link.isValid(QDRService, $location);
-    };
-
-    $scope.isActive = function(href) {
-		// highlight the connect tab if we are on the root page
-		if (($location.path() === QDR.pluginRoot) && (href.split("#")[1] === QDR.pluginRoot + "/connect"))
-			return true
-        return href.split("#")[1] == $location.path();
-    };
-
-    $scope.isRight = function (link) {
-        return angular.isDefined(link.right);
-    };
-
-    $scope.hasChart = function (link) {
-        if (link.href == "#/" + QDR.pluginName + "/charts") {
-            return QDRChartService.charts.some(function (c) { return c.dashboard });
-        }
-    }
-
-	$scope.isDashboardable = function () {
-		return  ($location.path().indexOf("schema") < 0 && $location.path().indexOf("connect") < 0);
-	}
-
-	$scope.addToDashboardLink = function () {
-		var href = "#" + $location.path();
-		var size = angular.toJson({
-                size_x: 2,
-                size_y: 2
-              });
-
-        var routeParams = angular.toJson($routeParams);
-        var title = "Dispatch Router";
-	    return "/hawtio/#/dashboard/add?tab=dashboard" +
-	          "&href=" + encodeURIComponent(href) +
-	          "&routeParams=" + encodeURIComponent(routeParams) +
-	          "&title=" + encodeURIComponent(title) +
-	          "&size=" + encodeURIComponent(size);
-    };
-
-  };
-
-
-  return QDR;
-
-} (QDR || {}));
diff --git a/console/hawtio/src/main/webapp/plugin/js/navbar.js b/console/hawtio/src/main/webapp/plugin/js/navbar.js
new file mode 120000
index 0000000..e88b618
--- /dev/null
+++ b/console/hawtio/src/main/webapp/plugin/js/navbar.js
@@ -0,0 +1 @@
+../../../../../../stand-alone/plugin/js/navbar.js
\ No newline at end of file


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


Mime
View raw message