+ {{step.element}}
+
+
+
+
+Content type:
+
+
+
+
+{{param.description}}
+
+ body
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/Font-Awesome/css/font-awesome.css
--
diff --git a/console/bower_components/Font-Awesome/css/font-awesome.css
b/console/bower_components/Font-Awesome/css/font-awesome.css
new file mode 100644
index 000..30a96b2
--- /dev/null
+++ b/console/bower_components/Font-Awesome/css/font-awesome.css
@@ -0,0 +1,1479 @@
+/*!
+ * Font Awesome 3.2.1
+ * the iconic font designed for Bootstrap
+ *
--
+ * The full suite of pictographic icons, examples, and documentation can be
+ * found at http://fontawesome.io. Stay up to date on Twitter at
+ * http://twitter.com/fontawesome.
+ *
+ * License
+ *
--
+ * - The Font Awesome font is licensed under SIL OFL 1.1 -
+ *http://scripts.sil.org/OFL
+ * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License -
+ *http://opensource.org/licenses/mit-license.html
+ * - Font Awesome documentation licensed under CC BY 3.0 -
+ *http://creativecommons.org/licenses/by/3.0/
+ * - Attribution is no longer required in Font Awesome 3.0, but much
appreciated:
+ *"Font Awesome by Dave Gandy - http://fontawesome.io";
+ *
+ * Author - Dave Gandy
+ *
--
+ * Email: d...@fontawesome.io
+ * Twitter: http://twitter.com/byscuits
+ * Work: Lead Product Designer @ Kyruus - http://kyruus.com
+ */
+/* FONT PATH
+ * -- */
+@font-face {
+ font-family: 'FontAwesome';
+ src: url('../font/fontawesome-webfont.eot?v=3.2.1');
+ src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1')
format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1')
format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1')
format('truetype'),
url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+/* FONT AWESOME CORE
+ * -- */
+[class^="icon-"],
+[class*=" icon-"] {
+ font-family: FontAwesome;
+ font-weight: normal;
+ font-style: normal;
+ text-decoration: inherit;
+ -webkit-font-smoothing: antialiased;
+ *margin-right: .3em;
+}
+[class^="icon-"]:before,
+[class*=" icon-"]:before {
+ text-decoration: inherit;
+ display: inline-block;
+ speak: none;
+}
+/* makes the font 33% larger relative to the icon container */
+.icon-large:before {
+ vertical-align: -10%;
+ font-size: 1.em;
+}
+/* makes sure icons active on rollover in links */
+a [class^="icon-"],
+a [class*=" icon-"] {
+ display: inline;
+}
+/* increased font size for icon-large */
+[class^="icon-"].icon-fixed-width,
+[class*=" icon-"].icon-fixed-width {
+ display: inline-block;
+ width: 1.1428571428571428em;
+ text-align: right;
+ padding-right: 0.2857142857142857em;
+}
+[class^="icon-"].icon-fixed-width.icon-large,
+[class*=" icon-"].icon-fixed-width.icon-large {
+ width: 1.4285714285714286em;
+}
+.icons-ul {
+ margin-left: 2.142857142857143em;
+ list-style-type: none;
+}
+.icons-ul > li {
+ position: relative;
+}
+.icons-ul .icon-li {
+ position: absolute;
+ left: -2.142857142857143em;
+ width: 2.142857142857143em;
+ text-align: center;
+ line-height: inherit;
+}
+[class^="icon-"].hide,
+[class*=" icon-"].hide {
+ display: none;
+}
+.icon-muted {
+ color: #ee;
+}
+.icon-light {
+ color: #ff;
+}
+.icon-dark {
+ color: #33;
+}
+.icon-border {
+ border: solid 1px #ee;
+ padding: .2em .25em .15em;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+.icon-2x {
+ font-size: 2em;
+}
+.icon-2x.icon-border {
+ border-width: 2px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.icon-3x {
+ font-size: 3em;
+}
+.icon-3x.icon-border {
+ border-width: 3px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+.icon-4x {
+ font-size: 4em;
+}
+.icon-4x.icon-border {
+ border-width: 4px;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+}
+.icon-5x {
+ font-size: 5em;
+}
+.icon-5x.icon-border {
+ border-width: 5px;
+ -webkit-border-radius: 7px;
+ -moz-border-radius: 7px;
+ border-radius: 7px;
+}
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+[class^="icon-"].pull-left,
+[class*=" icon-"].pull-left {
+ margin-right: .3em;
+}
+[class^="icon-"].pull-right,
+[class*=" icon-"].pull-right {
+ margin-left: .3em;
+}
+/* BOOTSTRAP SPECIFIC CLASSES
+ * -- */
+/* Bootstrap 2.0 sprites.less reset */
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline;
+ width: auto;
+ height: auto;
+ line-height: normal;
+ vertical-align: baseline;
+ background-image: none
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/jquery/jquery.js
--
diff --git a/console/bower_components/jquery/jquery.js
b/console/bower_components/jquery/jquery.js
new file mode 100644
index 000..7893ca9
--- /dev/null
+++ b/console/bower_components/jquery/jquery.js
@@ -0,0 +1,9440 @@
+/*!
+ * jQuery JavaScript Library v1.8.2
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2012 jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: Thu Sep 20 2012 21:13:05 GMT-0400 (Eastern Daylight Time)
+ */
+(function( window, undefined ) {
+var
+ // A central reference to the root jQuery(document)
+ rootjQuery,
+
+ // The deferred used on DOM ready
+ readyList,
+
+ // Use the correct document accordingly with window argument (sandbox)
+ document = window.document,
+ location = window.location,
+ navigator = window.navigator,
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ // Save a reference to some core methods
+ core_push = Array.prototype.push,
+ core_slice = Array.prototype.slice,
+ core_indexOf = Array.prototype.indexOf,
+ core_toString = Object.prototype.toString,
+ core_hasOwn = Object.prototype.hasOwnProperty,
+ core_trim = String.prototype.trim,
+
+ // Define a local copy of jQuery
+ jQuery = function( selector, context ) {
+ // The jQuery object is actually just the init constructor
'enhanced'
+ return new jQuery.fn.init( selector, context, rootjQuery );
+ },
+
+ // Used for matching numbers
+ core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,
+
+ // Used for detecting and trimming whitespace
+ core_rnotwhite = /\S/,
+ core_rspace = /\s+/,
+
+ // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0
and IE)
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+ // A simple way to check for HTML strings
+ // Prioritize #id over to avoid XSS via location.hash (#9521)
+ rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+
+ // Match a standalone tag
+ rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
+
+ // JSON RegExp
+ rvalidchars = /^[\],:{}\s]*$/,
+ rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+ rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
+ rvalidtokens =
/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,
+
+ // Matches dashed string for camelizing
+ rmsPrefix = /^-ms-/,
+ rdashAlpha = /-([\da-z])/gi,
+
+ // Used by jQuery.camelCase as callback to replace()
+ fcamelCase = function( all, letter ) {
+ return ( letter + "" ).toUpperCase();
+ },
+
+ // The ready event handler and self cleanup method
+ DOMContentLoaded = function() {
+ if ( document.addEventListener ) {
+ document.removeEventListener( "DOMContentLoaded",
DOMContentLoaded, false );
+ jQuery.ready();
+ } else if ( document.readyState === "complete" ) {
+ // we're here because readyState === "complete" in oldIE
+ // which is good enough for us to call the dom ready!
+ document.detachEvent( "onreadystatechange",
DOMContentLoaded );
+ jQuery.ready();
+ }
+ },
+
+ // [[Class]] -> type pairs
+ class2type = {};
+
+jQuery.fn = jQuery.prototype = {
+ constructor: jQuery,
+ init: function( selector, context, rootjQuery ) {
+ var match, elem, ret, doc;
+
+ // Handle $(""), $(null), $(undefined), $(false)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Handle $(DOMElement)
+ if ( selector.nodeType ) {
+ this.context = this[0] = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ if ( selector.charAt(0) === "<" && selector.charAt(
selector.length - 1 ) === ">" && selector.length >= 3 ) {
+ // Assume that strings that start and end with
<> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = rquickExpr.exec( selector );
+ }
+
+ // Match html or make sure no context is specified for
#id
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/Font-Awesome/font/fontawesome-webfont.ttf
--
diff --git a/console/bower_components/Font-Awesome/font/fontawesome-webfont.ttf
b/console/bower_components/Font-Awesome/font/fontawesome-webfont.ttf
new file mode 100644
index 000..d365924
Binary files /dev/null and
b/console/bower_components/Font-Awesome/font/fontawesome-webfont.ttf differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/Font-Awesome/font/fontawesome-webfont.woff
--
diff --git
a/console/bower_components/Font-Awesome/font/fontawesome-webfont.woff
b/console/bower_components/Font-Awesome/font/fontawesome-webfont.woff
new file mode 100644
index 000..b9bd17e
Binary files /dev/null and
b/console/bower_components/Font-Awesome/font/fontawesome-webfont.woff differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/Font-Awesome/package.json
--
diff --git a/console/bower_components/Font-Awesome/package.json
b/console/bower_components/Font-Awesome/package.json
new file mode 100644
index 000..99b1851
--- /dev/null
+++ b/console/bower_components/Font-Awesome/package.json
@@ -0,0 +1,44 @@
+{
+ "name": "font-awesome",
+ "description": "The iconic font designed for Bootstrap",
+ "version": "3.2.1",
+ "keywords": ["font", "awesome", "fontawesome", "icon", "font", "bootstrap"],
+ "homepage": "http://fontawesome.io/";,
+ "author": {
+"name": "Dave Gandy",
+"email": "d...@fontawesome.io",
+"web": "http://twitter.com/byscuits";
+ },
+ "repository": {
+"type": "git",
+"url": "https://github.com/FortAwesome/Font-Awesome.git";
+ },
+ "contributors": [
+{
+ "name": "Rob Madole",
+ "web": "http://twitter.com/robmadole";
+},
+{
+ "name": "Geremia Taglialatela",
+ "web": "http://twitter.com/gtagliala";
+},
+{
+ "name": "Travis Chase",
+ "web": "http://twitter.com/supercodepoet";
+}
+ ],
+ "licenses": [
+{
+ "type": "SIL OFL 1.1",
+ "url": "http://scripts.sil.org/OFL";
+},
+{
+ "type": "MIT License",
+ "url": "http://opensource.org/licenses/mit-license.html";
+}
+ ],
+ "dependencies": {
+"jekyll": "1.0.2",
+"lessc": "1.3.3"
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/.bower.json
--
diff --git a/console/bower_components/bootstrap/.bower.json
b/console/bower_components/bootstrap/.bower.json
new file mode 100644
index 000..5d9a7c6
--- /dev/null
+++ b/console/bower_components/bootstrap/.bower.json
@@ -0,0 +1,21 @@
+{
+ "name": "bootstrap",
+ "version": "2.2.1",
+ "main": [
+"./docs/assets/js/bootstrap.js",
+"./docs/assets/css/bootstrap.css"
+ ],
+ "dependencies": {
+"jquery": "~1.8.0"
+ },
+ "homepage": "https://github.com/twbs/bootstrap";,
+ "_release": "2.2.1",
+ "_resolution": {
+"type": "version",
+"tag": "v2.2.1",
+"commit": "08a4e19fdcf5105312b9056e73e30d49ecc85913"
+ },
+ "_source": "git://github.com/twbs/bootstrap.git",
+ "_target": "2.2.1",
+ "_originalSource": "bootstrap"
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/.travis.yml
--
diff --git a/console/bower_components/bootstrap/.travis.yml
b/console/bower_components/bootstrap/.travis.yml
new file mode 100644
index 000..b8e1f17
--- /dev/null
+++ b/console/bower_components/bootstrap/.travis.yml
@@ -0,0 +1,3 @@
+language: node_js
+node_js:
+ - 0.6
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/CONTRIBUTING.md
--
diff --git a/console/bower_components/bootstrap/CONTRIBUTING.md
b/console/bower_components/bootstrap/CONTRIBUTING.md
new file mode 100644
index 000..c97e8b8
--- /dev/null
+++ b/console/bower_components/bootstrap/CONTRIBUTING.md
@@ -0,0 +1,75 @@
+# Contributing to Bootstrap
+
+Looking to contribute something to Bootstrap? **Here's how you can help.**
+
+
+
+## Reporting issues
+
+We only accept issues that are bug reports or feature requests. Bugs must be
isolated and reproducible problems that we can fix within the Bootstrap core.
Please read the following guidelines before opening any issue.
+
+1. **Search for existing issues.** We get a lot of duplicate issues, and you'd
help us out a lot by first checking if someone else has reported the same
issue. Moreover, the issue may have already been resolv
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/docs/assets/js/bootstrap-tooltip.js
--
diff --git
a/console/bower_components/bootstrap/docs/assets/js/bootstrap-tooltip.js
b/console/bower_components/bootstrap/docs/assets/js/bootstrap-tooltip.js
new file mode 100644
index 000..de923f7
--- /dev/null
+++ b/console/bower_components/bootstrap/docs/assets/js/bootstrap-tooltip.js
@@ -0,0 +1,276 @@
+/* ===
+ * bootstrap-tooltip.js v2.2.1
+ * http://twitter.github.com/bootstrap/javascript.html#tooltips
+ * Inspired by the original jQuery.tipsy by Jason Frame
+ * ===
+ * Copyright 2012 Twitter, Inc.
+ *
+ * Licensed 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.
+ * == */
+
+
+!function ($) {
+
+ "use strict"; // jshint ;_;
+
+
+ /* TOOLTIP PUBLIC CLASS DEFINITION
+ * === */
+
+ var Tooltip = function (element, options) {
+this.init('tooltip', element, options)
+ }
+
+ Tooltip.prototype = {
+
+constructor: Tooltip
+
+ , init: function (type, element, options) {
+ var eventIn
+, eventOut
+
+ this.type = type
+ this.$element = $(element)
+ this.options = this.getOptions(options)
+ this.enabled = true
+
+ if (this.options.trigger == 'click') {
+this.$element.on('click.' + this.type, this.options.selector,
$.proxy(this.toggle, this))
+ } else if (this.options.trigger != 'manual') {
+eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
+eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
+this.$element.on(eventIn + '.' + this.type, this.options.selector,
$.proxy(this.enter, this))
+this.$element.on(eventOut + '.' + this.type, this.options.selector,
$.proxy(this.leave, this))
+ }
+
+ this.options.selector ?
+(this._options = $.extend({}, this.options, { trigger: 'manual',
selector: '' })) :
+this.fixTitle()
+}
+
+ , getOptions: function (options) {
+ options = $.extend({}, $.fn[this.type].defaults, options,
this.$element.data())
+
+ if (options.delay && typeof options.delay == 'number') {
+options.delay = {
+ show: options.delay
+, hide: options.delay
+}
+ }
+
+ return options
+}
+
+ , enter: function (e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type)
+
+ if (!self.options.delay || !self.options.delay.show) return self.show()
+
+ clearTimeout(this.timeout)
+ self.hoverState = 'in'
+ this.timeout = setTimeout(function() {
+if (self.hoverState == 'in') self.show()
+ }, self.options.delay.show)
+}
+
+ , leave: function (e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type)
+
+ if (this.timeout) clearTimeout(this.timeout)
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
+
+ self.hoverState = 'out'
+ this.timeout = setTimeout(function() {
+if (self.hoverState == 'out') self.hide()
+ }, self.options.delay.hide)
+}
+
+ , show: function () {
+ var $tip
+, inside
+, pos
+, actualWidth
+, actualHeight
+, placement
+, tp
+
+ if (this.hasContent() && this.enabled) {
+$tip = this.tip()
+this.setContent()
+
+if (this.options.animation) {
+ $tip.addClass('fade')
+}
+
+placement = typeof this.options.placement == 'function' ?
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
+ this.options.placement
+
+inside = /in/.test(placement)
+
+$tip
+ .detach()
+ .css({ top: 0, left: 0, display: 'block' })
+ .insertAfter(this.$element)
+
+pos = this.getPosition(inside)
+
+actualWidth = $tip[0].offsetWidth
+actualHeight = $tip[0].offsetHeight
+
+switch (inside ? placement.split(' ')[1] : placement) {
+ case 'bottom':
+tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 -
actualWidth / 2}
+break
+ case 'top':
+tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2
- actualWi
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/camel/transform24.png
--
diff --git a/console/img/icons/camel/transform24.png
b/console/img/icons/camel/transform24.png
new file mode 100644
index 000..6e8817f
Binary files /dev/null and b/console/img/icons/camel/transform24.png differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/camel/unmarshal24.png
--
diff --git a/console/img/icons/camel/unmarshal24.png
b/console/img/icons/camel/unmarshal24.png
new file mode 100644
index 000..6e8817f
Binary files /dev/null and b/console/img/icons/camel/unmarshal24.png differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/camel/wireTap24.png
--
diff --git a/console/img/icons/camel/wireTap24.png
b/console/img/icons/camel/wireTap24.png
new file mode 100644
index 000..141fdad
Binary files /dev/null and b/console/img/icons/camel/wireTap24.png differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/cassandra.svg
--
diff --git a/console/img/icons/cassandra.svg b/console/img/icons/cassandra.svg
new file mode 100644
index 000..e02e3cf
--- /dev/null
+++ b/console/img/icons/cassandra.svg
@@ -0,0 +1,4 @@
+
+
+http://purl.org/dc/elements/1.1/";
xmlns:cc="http://creativecommons.org/ns#";
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
xmlns:svg="http://www.w3.org/2000/svg"; xmlns="http://www.w3.org/2000/svg";
version="1.1" width="279.18411" height="187.47701" id="svg2816"
xml:space="preserve">Apache Cassandraimage/svg+xmlhttp://purl.org/dc/dcmitype/StillImage"/>Apache
CassandraApache Software
Foundationhttps://svn.apache.org/repos/asf/cassandra/logo/cassandra.svg
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/dozer/attribute.gif
--
diff --git a/console/img/icons/dozer/attribute.gif
b/console/img/icons/dozer/attribute.gif
new file mode 100644
index 000..51a3ada
Binary files /dev/null and b/console/img/icons/dozer/attribute.gif differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/dozer/byref.gif
--
diff --git a/console/img/icons/dozer/byref.gif
b/console/img/icons/dozer/byref.gif
new file mode 100644
index 000..19da1e1
Binary files /dev/null and b/console/img/icons/dozer/byref.gif differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/dozer/cc.gif
--
diff --git a/console/img/icons/dozer/cc.gif b/console/img/icons/dozer/cc.gif
new file mode 100644
index 000..0213bf2
Binary files /dev/null and b/console/img/icons/dozer/cc.gif differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/dozer/class.gif
--
diff --git a/console/img/icons/dozer/class.gif
b/console/img/icons/dozer/class.gif
new file mode 100644
index 000..b9f9aaa
Binary files /dev/null and b/console/img/icons/dozer/class.gif differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/dozer/dozer.gif
--
diff --git a/console/img/icons/dozer/dozer.gif
b/console/img/icons/dozer/dozer.gif
new file mode 100644
index 000..a9a9a9d
Binary files /dev/null and b/console/img/icons/dozer/dozer.gif differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/dozer/exclude.gif
--
diff --git a/console/img/icons/dozer/exclude.gif
b/console/img/icons/dozer/exclude.gif
new file mode 100644
index 000..0bc6068
Binary files /dev/null and b/console/img/icons/dozer/exclude.gif differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/dozer/interface.gif
--
diff --git a/console/img/icons/dozer/interface.gif
b/console/img/icons/dozer/interface.gif
new file mode 100644
index 000..589402a
Binary files /dev/null and b/console/img/icons/dozer/interface.gif differ
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/dozer/oneway.gif
--
diff --git a/console/img/icons/dozer/oneway.gif
b/console/img/icons/dozer/oneway.gif
new file mode 100644
index 000..74071dd
Binary files /dev/nul
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/docs/templates/pages/scaffolding.mustache
--
diff --git
a/console/bower_components/bootstrap/docs/templates/pages/scaffolding.mustache
b/console/bower_components/bootstrap/docs/templates/pages/scaffolding.mustache
new file mode 100644
index 000..85ae5ea
--- /dev/null
+++
b/console/bower_components/bootstrap/docs/templates/pages/scaffolding.mustache
@@ -0,0 +1,471 @@
+
+
+
+{{_i}}Scaffolding{{/i}}
+{{_i}}Bootstrap is built on responsive 12-column grids,
layouts, and components.{{/i}}
+
+
+
+
+
+
+
+
+
+
{{_i}}Global styles{{/i}}
+
{{_i}}Grid system{{/i}}
+
{{_i}}Fluid grid system{{/i}}
+
{{_i}}Layouts{{/i}}
+
{{_i}}Responsive design{{/i}}
+
+
+
+
+
+
+
+
+
+{{_i}}Global settings{{/i}}
+
+
+ {{_i}}Requires HTML5 doctype{{/i}}
+ {{_i}}Bootstrap makes use of certain HTML elements and CSS
properties that require the use of the HTML5 doctype. Include it at the
beginning of all your projects.{{/i}}
+
+
+
+ ...
+
+
+
+ {{_i}}Typography and links{{/i}}
+ {{_i}}Bootstrap sets basic global display, typography, and link
styles. Specifically, we:{{/i}}
+
+{{_i}}Remove margin on the body{{/i}}
+{{_i}}Set background-color: white; on the
body{{/i}}
+{{_i}}Use the @baseFontFamily,
@baseFontSize, and @baseLineHeight attributes as our
typographic base{{/i}}
+{{_i}}Set the global link color via @linkColor
and apply link underlines only on :hover{{/i}}
+
+ {{_i}}These styles can be found within
scaffolding.less.{{/i}}
+
+ {{_i}}Reset via Normalize{{/i}}
+ {{_i}}With Bootstrap 2, the old reset block has been dropped in
favor of http://necolas.github.com/normalize.css/";
target="_blank">Normalize.css, a project by http://twitter.com/necolas"; target="_blank">Nicolas Gallagher that
also powers the http://html5boilerplate.com"; target="_blank">HTML5
Boilerplate. While we use much of Normalize within our
reset.less, we have removed some elements specifically for
Bootstrap.{{/i}}
+
+
+
+
+
+
+
+
+
+{{_i}}Default grid system{{/i}}
+
+
+ {{_i}}Live grid example{{/i}}
+ {{_i}}The default Bootstrap grid system utilizes 12
columns, making for a 940px wide container without responsive features enabled. With the
responsive CSS file added, the grid adapts to be 724px and 1170px wide
depending on your viewport. Below 767px viewports, the columns become fluid and
stack vertically.{{/i}}
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+ 2
+ 3
+ 4
+
+
+ 4
+ 5
+
+
+ 9
+
+
+
+ {{_i}}Basic grid HTML{{/i}}
+ {{_i}}For a simple two column layout, create a .row
and add the appropriate number of .span* columns. As this is a
12-column grid, each .span* spans a number of those 12 columns,
and should always add up to 12 for each row (or the number of columns in the
parent).{{/i}}
+
+
+
+ {{_i}}Given this example, we have .span4 and
.span8, making for 12 total columns and a complete row.{{/i}}
+
+ {{_i}}Offsetting columns{{/i}}
+ {{_i}}Move columns to the right using .offset*
classes. Each class increases the left margin of a column by a whole column.
For example, .offset4 moves .span4 over four
columns.{{/i}}
+
+
+ 4
+ 3 offset 2
+
+
+ 3 offset 1
+ 3 offset 2
+
+
+ 6 offset 3
+
+
+
+
+
+
+ {{_i}}Nesting columns{{/i}}
+ {{_i}}To nest your content with the default grid, add a new
.row and set of .span* columns within an existing
.span* column. Nested rows should include a set of columns that
add up to the number of columns of its parent.{{/i}}
+
+
+ {{_i}}Level 1 column{{/i}}
+
+
+ {{_i}}Level 2{{/i}}
+
+
+ {{_i}}Level 2{{/i}}
+
+
+
+
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/site/doc/ReleaseGuide.md
--
diff --git a/console/app/site/doc/ReleaseGuide.md
b/console/app/site/doc/ReleaseGuide.md
new file mode 100644
index 000..9a81bfe
--- /dev/null
+++ b/console/app/site/doc/ReleaseGuide.md
@@ -0,0 +1,60 @@
+## hawtio release guide
+
+The following walks through how we make a release.
+
+* Pop onto [IRC](http://hawt.io/community/index.html) and let folks know
you're about to cut a release
+* Now pull and make sure things build locally fine first :)
+
+ mvn release:prepare -P release,grunt
+
+If the build fails then rollback via
+
+mvn release:rollback -P release,grunt
+
+The tag should get auto-defaulted to something like **hawtio-1.2**
+
+ mvn release:perform -P release,grunt
+
+when the release is done:
+
+ git push --tags
+
+Now go to the [OSS Nonatype
Nexus](https://oss.sonatype.org/index.html#stagingRepositories) and Close then
Release the staging repo
+
+Now, go into github issues and create a new milestone (if not already created)
for the release number that you just released. Close this milestone. Now go
through each open milestonee and move all closed issues to your new milestone.
Also move issues that are closed but have no milestone to the new milestone.
This will ensure that all fixed issues in the last development period will be
correctly associated with the release that the fix was introduced in.
+
+Update the changelog with links to your milestone which will list all the
fixes/enhancements that made it into the release. Also mention any major
changes in the changelog.
+
+### Update the new version number:
+
+Now update the new dev version the following files so the new dev build
doens't barf
+
+ *
[SpecRunner.html](https://github.com/hawtio/hawtio/blob/master/hawtio-web/src/test/specs/SpecRunner.html#L88)
+
+Now update the following files for the new release version:
+
+ * **/*.md - *apart* from changes.md!
+ * website/pom.xml
+ * website/src/chrome/extension.xml
+ * chrome-extension/src/resources/manifest.json
+
+
+### Chrome Extension
+
+One the release has sync'd to [maven
central](http://central.maven.org/maven2/io/hawt/hawtio-web/) and the new
website is up with the new extension.xml (see above), you'll need to:
+
+* go to the chrome-extension directory
+* check the manifest has the correct new view (see above on version number
changes)
+* run
+
+mvn install
+
+* now go to the [Chrome Web
Store](https://chrome.google.com/webstore/developer/dashboard/ua69cc79bd081162fca3bb58f3e36b3b4)
and upload the **target/extension.zip** file and hit publish
+
+### Now its beer o'clock!
+
+Now drink a beer! Then another! There, thats better now isn't it!
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/site/doc/Services.md
--
diff --git a/console/app/site/doc/Services.md b/console/app/site/doc/Services.md
new file mode 100644
index 000..3b9f0aa
--- /dev/null
+++ b/console/app/site/doc/Services.md
@@ -0,0 +1,22 @@
+## Services
+
+When using hawtio with different back end services such as micro services
there is a need to link to other web applications.
+
+If hawtio is connected to a JVM then we tend to use
[jolokia](http://jolokia.org/) to poll the available MBeans inside the JVM and
show/hide plugins dynamically.
+
+When using hawtio with [Kubernetes](http://kubernetes.io/) such as with
[OpenShift V3](http://github.com/openshift/origin/),
[Fabric8](http://fabric8.io/), RHEL Atomic or Google Container Engine (GKE)
then we can discover services using the standard Kubernetes Service REST API.
By default this is mapped to **/hawtio/service** inside the hawtio web
application.
+
+So you can view Kubernetes resources via:
+
+* **/hawtio/service** views all services
+* **/hawtio/pod** views all pods
+* **/hawtio/service/cheese/foo.html** will view the **/foo.html** resource
within the **cheese** service
+* **/hawtio/pod/cheese/123/foo.html** will view the **/foo.html** resource
within the **cheese** pod on port **123**
+
+### Enabling/disabling tabs/buttons/menus
+
+A common feature of hawtio is for the UI to update in real time based on the
services running. When using Kubernetes this relates to services running in the
entire Kubernetes cluster; not just whats inside the JVM which served up hawtio.
+
+To do this we have a [few helper
functions](https://github.com/hawtio/hawtio/blob/master/hawtio-web/src/main/webapp/app/service/js/serviceHelpers.ts#L11)
in the Services plugin to be able to enable/disable nav bars, buttons and
menus based on the presence of a service.
+
+e.g. [here's how we can add the Kibana and Grafana
links](https://github.com/hawtio/hawtio/blob/master/hawtio-web/src/main/webapp/app/kubernetes/js/kubernetesPlugin.ts#
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/Font-Awesome/font/fontawesome-webfont.svg
--
diff --git a/console/bower_components/Font-Awesome/font/fontawesome-webfont.svg
b/console/bower_components/Font-Awesome/font/fontawesome-webfont.svg
new file mode 100644
index 000..2edb4ec
--- /dev/null
+++ b/console/bower_components/Font-Awesome/font/fontawesome-webfont.svg
@@ -0,0 +1,399 @@
+
+http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"; >
+http://www.w3.org/2000/svg";>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/css/jquery.gridster.css
--
diff --git a/console/css/jquery.gridster.css b/console/css/jquery.gridster.css
new file mode 100644
index 000..c36d418
--- /dev/null
+++ b/console/css/jquery.gridster.css
@@ -0,0 +1,64 @@
+/*! gridster.js - v0.1.0 - 2012-10-20
+* http://gridster.net/
+* Copyright (c) 2012 ducksboard; Licensed MIT */
+
+.gridster {
+position:relative;
+}
+
+.gridster > * {
+margin: 0 auto;
+-webkit-transition: height .4s;
+-moz-transition: height .4s;
+-o-transition: height .4s;
+-ms-transition: height .4s;
+transition: height .4s;
+}
+
+.gridster .gs_w{
+z-index: 2;
+position: absolute;
+}
+
+.ready .gs_w:not(.preview-holder) {
+-webkit-transition: opacity .3s, left .3s, top .3s;
+-moz-transition: opacity .3s, left .3s, top .3s;
+-o-transition: opacity .3s, left .3s, top .3s;
+transition: opacity .3s, left .3s, top .3s;
+}
+
+.ready .gs_w:not(.preview-holder) {
+-webkit-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
+-moz-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
+-o-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
+transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
+}
+
+.gridster .preview-holder {
+z-index: 1;
+position: absolute;
+background-color: #fff;
+border-color: #fff;
+opacity: 0.3;
+}
+
+.gridster .player-revert {
+z-index: 10!important;
+-webkit-transition: left .3s, top .3s!important;
+-moz-transition: left .3s, top .3s!important;
+-o-transition: left .3s, top .3s!important;
+transition: left .3s, top .3s!important;
+}
+
+.gridster .dragging {
+z-index: 10!important;
+-webkit-transition: all 0s !important;
+-moz-transition: all 0s !important;
+-o-transition: all 0s !important;
+transition: all 0s !important;
+}
+
+/* Uncomment this if you set helper : "clone" in draggable options */
+/*.gridster .player {
+ opacity:0;
+}*/
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/css/metrics-watcher-style.css
--
diff --git a/console/css/metrics-watcher-style.css
b/console/css/metrics-watcher-style.css
new file mode 100644
index 000..72bf848
--- /dev/null
+++ b/console/css/metrics-watcher-style.css
@@ -0,0 +1,163 @@
+.metricsWatcher .heading1 {
+ font-size: 24px;
+ line-height: 30px;
+margin: 0;
+}
+.metricsWatcher .heading3 {
+ font-size: 18px;
+ line-height: 27px;
+ margin: 0;
+}
+.metricsWatcher .heading4 {
+ font-size: 14px;
+ line-height: 18px;
+ margin: 0;
+}
+.metricsWatcher .heading5 {
+ font-size: 18px;
+ line-height: 18px;
+ margin: 0;
+}
+.metricsWatcher p {
+ font-size: 13px;
+ line-height: 18px;
+}
+.metricsWatcher fieldset legend {
+ margin-bottom: 5px;
+ border-bottom: none;
+ color: inherit;
+}
+.metricsWatcher .activeRequestsGraph {
+ vertical-align: top;
+}
+.metricsWatcher .activeRequestsGraph .counter .histogram {
+ width: 95%;
+}
+
+.metricsWatcher .nested {
+ margin: 0 10px 10px 0;
+}
+.metricsWatcher .nested h1 {
+ font-size: 24px;
+}
+
+.metricsWatcher .progressLabel {
+ text-align: right;
+ color: #666;
+}
+
+.metricsWatcher.histogram .histogramContainer td,
+.metricsWatcher.timer .timerContainer td,
+.metricsWatcher .progressLabel,
+.metricsWatcher .progressValue {
+ vertical-align: top;
+ padding: 0 5px;
+}
+.metricsWatcher .progressValue {
+ font-size: 13px;
+ line-height: 18px;
+ color: #666;
+}
+.metricsWatcher .progress {
+ height: 18px;
+ margin-bottom: 17px;
+}
+
+.metricsWatcher.timer table,
+.metricsWatcher.histogram table,
+.metricsWatcher.web table,
+.metricsWatcher.log4j table,
+.metricsWatcher.cache table,
+.metricsWatcher.jvm table,
+.metricsWatcher .progressBar,
+.metricsWatcher .progressBar,
+.metricsWatcher .progressTable {
+ width: 100%;
+ font-size: 13px;
+}
+
+.metricsWatcher.histogram .histogramContainer,
+.metricsWatcher.jvm .jvmContainer,
+.metricsWatcher.web .webContainer,
+.metricsWatcher.log4j .log4jContainer,
+.metricsWatcher.cache .cacheContainer,
+.metricsWatcher.timer .timerContainer,
+.metricsWatcher.cache .gaugeTableContainer {
+ border-style: none;
+ border-width: 1px;
+ padding: 10px 0;
+ margin-left: 0;
+ padding: 10px;
+}
+
+.metricsWatcher.cache table.gaugeTable td h5,
+.metricsWatcher.jvm table.jvmTable td h5 {
+ font-size: 15px;
+ font-weight: normal;
+ text-align: left;
+}
+.metricsWatcher table.gaugeTable td,
+.metricsWatcher table.jvmTable td {
+ font-size: 14px;
+ text-align: right;
+}
+
+caption{
+ font-weight: bold;
+}
+
+/**
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/js/tests/index.html
--
diff --git a/console/bower_components/bootstrap/js/tests/index.html
b/console/bower_components/bootstrap/js/tests/index.html
new file mode 100644
index 000..976ca16
--- /dev/null
+++ b/console/bower_components/bootstrap/js/tests/index.html
@@ -0,0 +1,56 @@
+
+
+
+ Bootstrap Plugin Test Suite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bootstrap Plugin Test Suite
+
+
+
+
+
+
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/js/tests/phantom.js
--
diff --git a/console/bower_components/bootstrap/js/tests/phantom.js
b/console/bower_components/bootstrap/js/tests/phantom.js
new file mode 100644
index 000..4105bf5
--- /dev/null
+++ b/console/bower_components/bootstrap/js/tests/phantom.js
@@ -0,0 +1,63 @@
+// Simple phantom.js integration script
+// Adapted from Modernizr
+
+function waitFor(testFx, onReady, timeOutMillis) {
+ var maxtimeOutMillis = timeOutMillis ? timeOutMillis : 5001 //< Default Max
Timout is 5s
+, start = new Date().getTime()
+, condition = false
+, interval = setInterval(function () {
+if ((new Date().getTime() - start < maxtimeOutMillis) && !condition) {
+ // If not time-out yet and condition not yet fulfilled
+ condition = (typeof(testFx) === "string" ? eval(testFx) : testFx())
//< defensive code
+} else {
+ if (!condition) {
+// If condition still not fulfilled (timeout but condition is
'false')
+console.log("'waitFor()' timeout")
+phantom.exit(1)
+ } else {
+// Condition fulfilled (timeout and/or condition is 'true')
+typeof(onReady) === "string" ? eval(onReady) : onReady() //< Do
what it's supposed to do once the condition is fulfilled
+clearInterval(interval) //< Stop this interval
+ }
+}
+}, 100) //< repeat check every 100ms
+}
+
+
+if (phantom.args.length === 0 || phantom.args.length > 2) {
+ console.log('Usage: phantom.js URL')
+ phantom.exit()
+}
+
+var page = new WebPage()
+
+// Route "console.log()" calls from within the Page context to the main
Phantom context (i.e. current "this")
+page.onConsoleMessage = function(msg) {
+ console.log(msg)
+};
+
+page.open(phantom.args[0], function(status){
+ if (status !== "success") {
+console.log("Unable to access network")
+phantom.exit()
+ } else {
+waitFor(function(){
+ return page.evaluate(function(){
+var el = document.getElementById('qunit-testresult')
+if (el && el.innerText.match('completed')) {
+ return true
+}
+return false
+ })
+}, function(){
+ var failedNum = page.evaluate(function(){
+var el = document.getElementById('qunit-testresult')
+try {
+ return el.getElementsByClassName('failed')[0].innerHTML
+} catch (e) { }
+return 1
+ });
+ phantom.exit((parseInt(failedNum, 10) > 0) ? 1 : 0)
+})
+ }
+})
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/js/tests/server.js
--
diff --git a/console/bower_components/bootstrap/js/tests/server.js
b/console/bower_components/bootstrap/js/tests/server.js
new file mode 100644
index 000..7c8445f
--- /dev/null
+++ b/console/bower_components/bootstrap/js/tests/server.js
@@ -0,0 +1,14 @@
+/*
+ * Simple connect server for phantom.js
+ * Adapted from Modernizr
+ */
+
+var connect = require('connect')
+ , http = require('http')
+ , fs = require('fs')
+ , app = connect()
+ .use(connect.static(__dirname + '/../../'));
+
+http.createServer(app).listen(3000);
+
+fs.writeFileSync(__dirname + '/pid.txt', process.pid, 'utf-8')
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/js/tests/unit/bootstrap-affix.js
--
diff --git
a/console/bower_components/bootstrap/js/tests/unit/bootstrap-affix.js
b/console/bower_components/bootstrap/js/tests/unit/bootstrap-affix.js
new file mode 100644
index 000..bc25df9
--- /dev/null
+++ b/console/bower_components/bootstrap/js/tests/unit/bootstrap-affix.js
@@ -0,0 +1,19 @@
+$(function () {
+
+module("bootstrap-affix")
+
+ test("should be defined on jquery object", function () {
+ok($(document.body).affix, 'affix method is defined')
+ })
+
+ test("should return
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/css/site-narrow.css
--
diff --git a/console/css/site-narrow.css b/console/css/site-narrow.css
new file mode 100644
index 000..030
--- /dev/null
+++ b/console/css/site-narrow.css
@@ -0,0 +1,110 @@
+#main {
+ margin-top: 0px;
+}
+.navbar-fixed-top {
+ margin-bottom: 0px;
+}
+div#main div ul.nav {
+ margin-bottom: 5px;
+ border-radius: 0 0 4px 4px;
+ border: none;
+ min-width: 120px;
+ border: 1px solid #D4D4D4;
+ border-top: 1px transparent;
+ background-color: #FAFAFA;
+ background-image: linear-gradient(to bottom, #ff, #f2f2f2);
+ background-repeat: repeat-x;
+ box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+}
+div#main div ul.nav li {
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+.navbar .btn-navbar span {
+ color: #77;
+ text-shadow: 0 1px 0 #FF;
+}
+.navbar .btn-navbar span:after {
+ content: "\f0de";
+ margin-left: 7px;
+}
+.navbar .btn-navbar.collapsed span:after {
+ content: "\f0dd";
+ margin-left: 7px;
+}
+div#main div ul.nav {
+ padding-left: 3px;
+ padding-right: 3px;
+}
+.nav-tabs > li > a,
+.nav-pills > li > a {
+ margin-right: 0px;
+}
+div#main div ul.nav li.active a {
+ border: 1px;
+ border-radius: 2px;
+ background-color: #E5E5E5;
+ box-shadow: 0 3px 8px rgba(0, 0, 0, 0.125) inset;
+ text-shadow: 0 1px 0 #FF;
+}
+div#main div ul.nav li.active a:hover {
+ border: 1px;
+ border-radius: 2px;
+ background-color: #E5E5E5;
+ box-shadow: 0 3px 8px rgba(0, 0, 0, 0.125) inset;
+ text-shadow: 0 1px 0 #FF;
+}
+div#main div ul.nav li a {
+ border: 1px;
+ border-radius: 2px;
+ background: inherit;
+ padding-bottom: 2px;
+ padding-top: 2px;
+ color: #77;
+ text-shadow: 0 1px 0 #FF;
+}
+div#main div ul.nav li a:hover {
+ border: 1px;
+ border-radius: 2px;
+ background: inherit;
+ padding-bottom: 2px;
+ padding-top: 2px;
+ color: #33;
+ text-shadow: 0 1px 0 #FF;
+}
+div#main div.row-fluid div.span3 ul#tree-ctrl li {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ text-align: center;
+}
+ul#tree-ctrl li a {
+ text-align: center;
+}
+ul#tree-ctrl li a span:after {
+ content: "\f0de";
+ margin-left: 7px;
+}
+ul#tree-ctrl li a.collapsed span:after {
+ content: "\f0dd";
+ margin-left: 7px;
+}
+#tree-container {
+ border-bottom: 1px solid #D4D4D4;
+}
+.logbar {
+ padding-left: 5px;
+ padding-right: 5px;
+ top: 52px;
+ border-radius: 5px;
+ border: 1px solid #d4d4d4;
+ width: 95%;
+ left: 1%;
+}
+#main div div div .nav.nav-tabs {
+ margin-top: 5px;
+ border-radius: 4px;
+ border: 1px solid #d4d4d4;
+}
+.help-spacer {
+ display: none !important;
+}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/css/site-wide.css
--
diff --git a/console/css/site-wide.css b/console/css/site-wide.css
new file mode 100644
index 000..173b080
--- /dev/null
+++ b/console/css/site-wide.css
@@ -0,0 +1,6 @@
+#main {
+ margin-top: 41px;
+}
+#tree-ctrl {
+ display: none;
+}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/css/toastr.css
--
diff --git a/console/css/toastr.css b/console/css/toastr.css
new file mode 100644
index 000..f080de4
--- /dev/null
+++ b/console/css/toastr.css
@@ -0,0 +1,183 @@
+/*
+ * Toastr
+ * Version 2.0.0
+ * Copyright 2012 John Papa and Hans Fjällemark.
+ * All Rights Reserved.
+ * Use, reproduction, distribution, and modification of this code is subject
to the terms and
+ * conditions of the MIT license, available at
http://www.opensource.org/licenses/mit-license.php
+ *
+ * Author: John Papa and Hans Fjällemark
+ * Project: https://github.com/CodeSeven/toastr
+ */
+.toast-title {
+ font-weight: bold;
+}
+.toast-message {
+ -ms-word-wrap: break-word;
+ word-wrap: break-word;
+}
+.toast-message a,
+.toast-message label {
+ color: #ff;
+}
+.toast-message a:hover {
+ color: #cc;
+ text-decoration: none;
+}
+
+.toast-close-button {
+ position: relative;
+ right: -0.3em;
+ top: -0.3em;
+ float: right;
+ font-size: 20px;
+ font-weight: bold;
+ color: #ff;
+ -webkit-text-shadow: 0 1px 0 #ff;
+ text-shadow: 0 1px 0 #ff;
+ opacity: 0.8;
+ -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
+ filter: alpha(opacity=80);
+}
+.toast-close-button:hover,
+.toast-close-button:focus {
+ color: #00;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.4;
+ -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
+ filter: alpha(opacity=40);
+}
+
+/*Additional properties for button version
+ iOS requires the button element instead of an anchor tag.
+ If you want the anchor version, it requires `href="#"`.*/
+button.toast-close-button {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/tree/doc/developer.md
--
diff --git a/console/app/tree/doc/developer.md
b/console/app/tree/doc/developer.md
new file mode 100644
index 000..d594032
--- /dev/null
+++ b/console/app/tree/doc/developer.md
@@ -0,0 +1,38 @@
+### Tree
+
+This plugin provides a simple HTML directive for working with [jQuery DynaTree
widgets](http://wwwendt.de/tech/dynatree/doc/dynatree-doc.html) from AngularJS
+
+To use the directive, in your $scope create a tree model (e.g. using the
Folder class) and assign it to some scope value...
+
+$scope.foo = new Folder("cheese");
+// populate the folders
+
+$scope.onFooSelected = function (selection) {
+ // do something...
+};
+
+Then in your HTML use
+
+
+
+To invoke a function on your $scope when a node is selected add the
**onSelect** attribute:
+
+
+
+If you want to hide the root tree node you can add a hideRoot flag:
+
+
+
+You can add support for drag and drop by adding one of the drag and drop
functions on your scope and them mentioning its name on the **onDragStart**,
**onDragEnter**, **onDrop**,
+
+If you wish to be called back with the root node after population of the tree
add the **onRoot** attribute
+
+
+
+Then add:
+
+ $scope.onMyRootThingy = (rootNode) => {
+// process the rootNode
+ };
+
+If you wish to activate/select a number of nodes on startup then use the
**activateNodes** attribute to map to a $scope variable which is an id or a
list of IDs to activate on startup.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/ui/doc/developerPage1.md
--
diff --git a/console/app/ui/doc/developerPage1.md
b/console/app/ui/doc/developerPage1.md
new file mode 100644
index 000..11959e1
--- /dev/null
+++ b/console/app/ui/doc/developerPage1.md
@@ -0,0 +1,11 @@
+### UI
+
+The **UI** plugin provides a number of [AngularJS](http://angularjs.org/)
directives for creating a number of UI widgets. The following examples can be
edited and are re-compiled on the fly.
+
+For details on form widgets take a look at the [Form
documentation](index.html#/help/forms/developer)
+
+## General UI widgets
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/ui/doc/developerPage2.md
--
diff --git a/console/app/ui/doc/developerPage2.md
b/console/app/ui/doc/developerPage2.md
new file mode 100644
index 000..eb06f4b
--- /dev/null
+++ b/console/app/ui/doc/developerPage2.md
@@ -0,0 +1,11 @@
+### UI
+
+The **UI** plugin provides a number of [AngularJS](http://angularjs.org/)
directives for creating a number of UI widgets. The following examples can be
edited and are re-compiled on the fly.
+
+For details on form widgets take a look at the [Form
documentation](index.html#/help/forms/developer)
+
+## General UI widgets (Page 2)
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/ui/html/breadcrumbs.html
--
diff --git a/console/app/ui/html/breadcrumbs.html
b/console/app/ui/html/breadcrumbs.html
new file mode 100644
index 000..3a7dde6
--- /dev/null
+++ b/console/app/ui/html/breadcrumbs.html
@@ -0,0 +1,5 @@
+
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/ui/html/colorPicker.html
--
diff --git a/console/app/ui/html/colorPicker.html
b/console/app/ui/html/colorPicker.html
new file mode 100644
index 000..e22bab1
--- /dev/null
+++ b/console/app/ui/html/colorPicker.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/ui/html/confirmDialog.html
--
diff --git a/console/app/ui/html/confirmDialog.html
b/console/app/ui/html/confirmDialog.html
new file mode 100644
index 000..bdf0ca0
--- /dev/null
+++ b/console/app/ui/html/confirmDialog.html
@@ -0,0 +1,11 @@
+
+
+{{title}}
+
+
+
+
+ {{cancelButtonText}}
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/ui/html/developerPage.html
--
diff --git a/console/app/ui/html/developerPage.html
b/console/app/ui/html/developerPage.html
new file mode 100644
index 000..f5caccf
--- /dev/null
+++ b/console/app/ui/html/developerPage.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ icons
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/css/codemirror/themes/ambiance.css
--
diff --git a/console/css/codemirror/themes/ambiance.css
b/console/css/codemirror/themes/ambiance.css
new file mode 100644
index 000..beec553
--- /dev/null
+++ b/console/css/codemirror/themes/ambiance.css
@@ -0,0 +1,76 @@
+/* ambiance theme for codemirror */
+
+/* Color scheme */
+
+.cm-s-ambiance .cm-keyword { color: #cda869; }
+.cm-s-ambiance .cm-atom { color: #CF7EA9; }
+.cm-s-ambiance .cm-number { color: #78CF8A; }
+.cm-s-ambiance .cm-def { color: #aac6e3; }
+.cm-s-ambiance .cm-variable { color: #ffb795; }
+.cm-s-ambiance .cm-variable-2 { color: #eed1b3; }
+.cm-s-ambiance .cm-variable-3 { color: #faded3; }
+.cm-s-ambiance .cm-property { color: #eed1b3; }
+.cm-s-ambiance .cm-operator {color: #fa8d6a;}
+.cm-s-ambiance .cm-comment { color: #555; font-style:italic; }
+.cm-s-ambiance .cm-string { color: #8f9d6a; }
+.cm-s-ambiance .cm-string-2 { color: #9d937c; }
+.cm-s-ambiance .cm-meta { color: #D2A8A1; }
+.cm-s-ambiance .cm-error { color: #AF2018; }
+.cm-s-ambiance .cm-qualifier { color: yellow; }
+.cm-s-ambiance .cm-builtin { color: #cc; }
+.cm-s-ambiance .cm-bracket { color: #24C2C7; }
+.cm-s-ambiance .cm-tag { color: #fee4ff }
+.cm-s-ambiance .cm-attribute { color: #9B859D; }
+.cm-s-ambiance .cm-header {color: blue;}
+.cm-s-ambiance .cm-quote { color: #24C2C7; }
+.cm-s-ambiance .cm-hr { color: pink; }
+.cm-s-ambiance .cm-link { color: #F4C20B; }
+.cm-s-ambiance .cm-special { color: #FF9D00; }
+
+.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }
+.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }
+
+.cm-s-ambiance .CodeMirror-selected {
+ background: rgba(255, 255, 255, 0.15);
+}
+.cm-s-ambiance .CodeMirror-focused .CodeMirror-selected {
+ background: rgba(255, 255, 255, 0.10);
+}
+
+/* Editor styling */
+
+.cm-s-ambiance.CodeMirror {
+ line-height: 1.40em;
+ font-family: Monaco, Menlo,"Andale Mono","lucida console","Courier
New",monospace !important;
+ color: #E6E1DC;
+ background-color: #202020;
+ -webkit-box-shadow: inset 0 0 10px black;
+ -moz-box-shadow: inset 0 0 10px black;
+ -o-box-shadow: inset 0 0 10px black;
+ box-shadow: inset 0 0 10px black;
+}
+
+.cm-s-ambiance .CodeMirror-gutters {
+ background: #3D3D3D;
+ border-right: 1px solid #4D4D4D;
+ box-shadow: 0 10px 20px black;
+}
+
+.cm-s-ambiance .CodeMirror-linenumber {
+ text-shadow: 0px 1px 1px #4d4d4d;
+ color: #222;
+ padding: 0 5px;
+}
+
+.cm-s-ambiance .CodeMirror-lines .CodeMirror-cursor {
+ border-left: 1px solid #7991E8;
+}
+
+.cm-s-ambiance .activeline {
+ background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);
+}
+
+.cm-s-ambiance.CodeMirror,
+.cm-s-ambiance .CodeMirror-gutters {
+ background-image:
url("data:image/png;base64,iVBORw0KGgoNSUhEUgAAAMgAAADICAQHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybS
wN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyH
vOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLj
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/img/icons/java.svg
--
diff --git a/console/img/icons/java.svg b/console/img/icons/java.svg
new file mode 100644
index 000..f34df8a
--- /dev/null
+++ b/console/img/icons/java.svg
@@ -0,0 +1,16388 @@
+
+http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
+http://www.w3.org/2000/svg";
xmlns:xlink="http://www.w3.org/1999/xlink"; x="0px" y="0px" width="128px"
height="128px">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/d3/index.js
--
diff --git a/console/bower_components/d3/index.js
b/console/bower_components/d3/index.js
new file mode 100644
index 000..09a7325
--- /dev/null
+++ b/console/bower_components/d3/index.js
@@ -0,0 +1,23 @@
+var self = this,
+globals = ["document", "window", "navigator", "CSSStyleDeclaration", "d3",
"Sizzle"],
+globalValues = {};
+
+globals.forEach(function(global) {
+ if (global in self) globalValues[global] = self[global];
+});
+
+document = require("jsdom").jsdom("");
+window = document.createWindow();
+navigator = window.navigator;
+CSSStyleDeclaration = window.CSSStyleDeclaration;
+
+Sizzle = require("sizzle");
+
+require("./d3");
+
+module.exports = d3;
+
+globals.forEach(function(global) {
+ if (global in globalValues) self[global] = globalValues[global];
+ else delete self[global];
+});
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/elastic.js/.bower.json
--
diff --git a/console/bower_components/elastic.js/.bower.json
b/console/bower_components/elastic.js/.bower.json
new file mode 100644
index 000..5b5631e
--- /dev/null
+++ b/console/bower_components/elastic.js/.bower.json
@@ -0,0 +1,32 @@
+{
+ "name": "elastic.js",
+ "version": "1.1.1",
+ "description": "Javascript API for ElasticSearch",
+ "license": "MIT",
+ "keywords": [
+"elasticsearch",
+"search",
+"elasticjs",
+"elastic",
+"elastic search",
+"es",
+"ejs"
+ ],
+ "main": "dist/elastic.js",
+ "ignore": [
+"**/.*",
+"node_modules",
+"components",
+"docs"
+ ],
+ "homepage": "https://github.com/fullscale/elastic.js";,
+ "_release": "1.1.1",
+ "_resolution": {
+"type": "version",
+"tag": "1.1.1",
+"commit": "f4d4092287c2c3c56434aa12fd3af43eb186ae73"
+ },
+ "_source": "git://github.com/fullscale/elastic.js.git",
+ "_target": "1.1.1",
+ "_originalSource": "elastic.js"
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/elastic.js/AUTHORS
--
diff --git a/console/bower_components/elastic.js/AUTHORS
b/console/bower_components/elastic.js/AUTHORS
new file mode 100644
index 000..b918b0f
--- /dev/null
+++ b/console/bower_components/elastic.js/AUTHORS
@@ -0,0 +1,2 @@
+Matt Weber
+Eric Gaumer
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/elastic.js/Gruntfile.js
--
diff --git a/console/bower_components/elastic.js/Gruntfile.js
b/console/bower_components/elastic.js/Gruntfile.js
new file mode 100644
index 000..c9094db
--- /dev/null
+++ b/console/bower_components/elastic.js/Gruntfile.js
@@ -0,0 +1,122 @@
+'use strict';
+
+module.exports = function (grunt) {
+
+ // Project configuration.
+ grunt.initConfig({
+pkg: grunt.file.readJSON('package.json'),
+meta: {
+ banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
+'<%= grunt.template.today("-mm-dd") %>\n' +
+'<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' +
+' * Copyright (c) <%= grunt.template.today("") %> <%=
pkg.author.name %>;' +
+' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */\n\n'
+},
+concat: {
+ options: {
+banner: '<%= meta.banner %>'
+ },
+ dist: {
+src: [
+ 'src/pre.js',
+ 'src/util.js',
+ 'src/facet/*.js',
+ 'src/filter/*.js',
+ 'src/index/*.js',
+ 'src/query/*.js',
+ 'src/admin/*.js',
+ 'src/search/**/*.js',
+ 'src/utils.js',
+ 'src/post.js'
+],
+dest: 'dist/elastic.js'
+ },
+ client_node: {
+src: [
+ 'src/clients/elastic-node-client.js'
+],
+dest: 'dist/elastic-node-client.js'
+ },
+ client_jquery: {
+src: [
+ 'src/clients/elastic-jquery-client.js'
+],
+dest: 'dist/elastic-jquery-client.js'
+ },
+ client_extjs: {
+src: [
+ 'src/clients/elastic-extjs-client.js'
+],
+dest: 'dist/elastic-extjs-client.js'
+ },
+ client_angular: {
+src: [
+ 'src/clients/elastic-angular-client.js'
+],
+dest: 'dist/elastic-angular-client.js'
+ }
+},
+uglify: {
+ options: {
+banner: '<%= meta.banner %>',
+ascii_only: true
+ },
+ dist: {
+src: ['<%= concat.dist.dest %>'],
+dest: 'dist/elastic.min.js'
+ },
+ client_jquery: {
+src: ['src/clients/elastic-jquery-client.js'],
+dest: 'dist/elastic-jquery-client.min.js'
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/docs/components.html
--
diff --git a/console/bower_components/bootstrap/docs/components.html
b/console/bower_components/bootstrap/docs/components.html
new file mode 100644
index 000..8725400
--- /dev/null
+++ b/console/bower_components/bootstrap/docs/components.html
@@ -0,0 +1,2601 @@
+
+
+
+
+Components · Bootstrap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bootstrap
+
+
+
+Home
+
+
+Get started
+
+
+Scaffolding
+
+
+Base CSS
+
+
+Components
+
+
+JavaScript
+
+
+Customize
+
+
+
+
+
+
+
+
+
+
+Components
+Dozens of reusable components built to provide navigation,
alerts, popovers, and more.
+
+
+
+
+
+
+
+
+
+
+
Dropdowns
+
Button groups
+
Button dropdowns
+ Navs
+
Navbar
+
Breadcrumbs
+
Pagination
+
Labels and badges
+
Typography
+
Thumbnails
+
Alerts
+ Progress
bars
+ Media
object
+ Misc
+
+
+
+
+
+
+
+
+
+Dropdown menus
+
+
+ Example
+ Toggleable, contextual menu for displaying lists of links. Made
interactive with the dropdown JavaScript
plugin.
+
+
+
+Action
+Another action
+Something else here
+
+Separated link
+
+
+
+
+
+
+
+ Markup
+ Looking at just the dropdown menu, here's the required HTML. You
need to wrap the dropdown's trigger and the dropdown menu within
.dropdown, or another element that declares position:
relative;. Then just create the menu.
+
+
+
+
+
+
+
+
+ Options
+ Align menus to the right and add include additional levels of
dropdowns.
+
+ Aligning the menus
+ Add .pull-right to a .dropdown-menu to
right align the dropdown menu.
+
+
+
+
+ Sub menus on dropdowns
+ Add an extra level of dropdown menus, appearing on hover like
those of OS X, with some simple markup additions. Add
.dropdown-submenu to any li in an existing dropdown
menu for automatic styling.
+
+
+
+ Default
+
+
+ Action
+ Another action
+ Something else here
+
+
+More options
+
+ Second level link
+ Second level link
+ Second level link
+ Second level link
+ Second level link
+
+
+
+
+
+
+
+ Dropup
+
+
+ Action
+ Another action
+ Something else here
+
+
+More options
+
+ Second level link
+ Second level link
+ Second level link
+ Second level link
+ Second level link
+
+
+
+
+
+
+
+ Left submenu
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/js/tests/vendor/qunit.css
--
diff --git a/console/bower_components/bootstrap/js/tests/vendor/qunit.css
b/console/bower_components/bootstrap/js/tests/vendor/qunit.css
new file mode 100644
index 000..b3e3d00
--- /dev/null
+++ b/console/bower_components/bootstrap/js/tests/vendor/qunit.css
@@ -0,0 +1,232 @@
+/**
+ * QUnit - A JavaScript Unit Testing Framework
+ *
+ * http://docs.jquery.com/QUnit
+ *
+ * Copyright (c) 2012 John Resig, Jörn Zaefferer
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * or GPL (GPL-LICENSE.txt) licenses.
+ */
+
+/** Font Family and Sizes */
+
+#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar,
#qunit-userAgent, #qunit-testresult {
+ font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica
Neue", Calibri, Helvetica, Arial, sans-serif;
+}
+
+#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests
li { font-size: small; }
+#qunit-tests { font-size: smaller; }
+
+
+/** Resets */
+
+#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent,
#qunit-testresult {
+ margin: 0;
+ padding: 0;
+}
+
+
+/** Header */
+
+#qunit-header {
+ padding: 0.5em 0 0.5em 1em;
+
+ color: #8699a4;
+ background-color: #0d3349;
+
+ font-size: 1.5em;
+ line-height: 1em;
+ font-weight: normal;
+
+ border-radius: 15px 15px 0 0;
+ -moz-border-radius: 15px 15px 0 0;
+ -webkit-border-top-right-radius: 15px;
+ -webkit-border-top-left-radius: 15px;
+}
+
+#qunit-header a {
+ text-decoration: none;
+ color: #c2ccd1;
+}
+
+#qunit-header a:hover,
+#qunit-header a:focus {
+ color: #fff;
+}
+
+#qunit-banner {
+ height: 5px;
+}
+
+#qunit-testrunner-toolbar {
+ padding: 0.5em 0 0.5em 2em;
+ color: #5E740B;
+ background-color: #eee;
+}
+
+#qunit-userAgent {
+ padding: 0.5em 0 0.5em 2.5em;
+ background-color: #2b81af;
+ color: #fff;
+ text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
+}
+
+
+/** Tests: Pass/Fail */
+
+#qunit-tests {
+ list-style-position: inside;
+}
+
+#qunit-tests li {
+ padding: 0.4em 0.5em 0.4em 2.5em;
+ border-bottom: 1px solid #fff;
+ list-style-position: inside;
+}
+
+#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
+ display: none;
+}
+
+#qunit-tests li strong {
+ cursor: pointer;
+}
+
+#qunit-tests li a {
+ padding: 0.5em;
+ color: #c2ccd1;
+ text-decoration: none;
+}
+#qunit-tests li a:hover,
+#qunit-tests li a:focus {
+ color: #000;
+}
+
+#qunit-tests ol {
+ margin-top: 0.5em;
+ padding: 0.5em;
+
+ background-color: #fff;
+
+ border-radius: 15px;
+ -moz-border-radius: 15px;
+ -webkit-border-radius: 15px;
+
+ box-shadow: inset 0px 2px 13px #999;
+ -moz-box-shadow: inset 0px 2px 13px #999;
+ -webkit-box-shadow: inset 0px 2px 13px #999;
+}
+
+#qunit-tests table {
+ border-collapse: collapse;
+ margin-top: .2em;
+}
+
+#qunit-tests th {
+ text-align: right;
+ vertical-align: top;
+ padding: 0 .5em 0 0;
+}
+
+#qunit-tests td {
+ vertical-align: top;
+}
+
+#qunit-tests pre {
+ margin: 0;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+#qunit-tests del {
+ background-color: #e0f2be;
+ color: #374e0c;
+ text-decoration: none;
+}
+
+#qunit-tests ins {
+ background-color: #ffcaca;
+ color: #500;
+ text-decoration: none;
+}
+
+/*** Test Counts */
+
+#qunit-tests b.counts { color: black; }
+#qunit-tests b.passed { color: #5E740B; }
+#qunit-tests b.failed { color: #710909; }
+
+#qunit-tests li li {
+ margin: 0.5em;
+ padding: 0.4em 0.5em 0.4em 0.5em;
+ background-color: #fff;
+ border-bottom: none;
+ list-style-position: inside;
+}
+
+/*** Passing Styles */
+
+#qunit-tests li li.pass {
+ color: #5E740B;
+ background-color: #fff;
+ border-left: 26px solid #C6E746;
+}
+
+#qunit-tests .pass { color: #528CE0;
background-color: #D2E0E6; }
+#qunit-tests .pass .test-name { color: #366097; }
+
+#qunit-tests .pass .test-actual,
+#qunit-tests .pass .test-expected { color: #99; }
+
+#qunit-banner.qunit-pass{ background-color: #C6E746; }
+
+/*** Failing Styles */
+
+#qunit-tests li li.fail {
+ color: #710909;
+ background-color: #fff;
+ border-left: 26px solid #EE5757;
+ white-space: pre;
+}
+
+#qunit-tests > li:last-child {
+ border-radius: 0 0 15px 15px;
+ -moz-border-radius: 0 0 15px 15px;
+ -webkit-border-bottom-right-radius: 15px;
+ -webkit-border-bottom-left-radius: 15px;
+}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/app/app.js
--
diff --git a/console/app/app.js b/console/app/app.js
new file mode 100644
index 000..c63998d
--- /dev/null
+++ b/console/app/app.js
@@ -0,0 +1,48339 @@
+/*
+var ActiveMQ;
+(function (ActiveMQ) {
+ActiveMQ.log = Logger.get("activemq");
+ActiveMQ.jmxDomain = 'org.apache.activemq';
+function getSelectionQueuesFolder(workspace) {
+function findQueuesFolder(node) {
+if (node) {
+if (node.title === "Queues" || node.title === "Queue") {
+return node;
+}
+var parent = node.parent;
+if (parent) {
+return findQueuesFolder(parent);
+}
+}
+return null;
+}
+var selection = workspace.selection;
+if (selection) {
+return findQueuesFolder(selection);
+}
+return null;
+}
+ActiveMQ.getSelectionQueuesFolder = getSelectionQueuesFolder;
+function getSelectionTopicsFolder(workspace) {
+function findTopicsFolder(node) {
+var answer = null;
+if (node) {
+if (node.title === "Topics" || node.title === "Topic") {
+answer = node;
+}
+if (answer === null) {
+angular.forEach(node.children, function (child) {
+if (child.title === "Topics" || child.title ===
"Topic") {
+answer = child;
+}
+});
+}
+}
+return answer;
+}
+var selection = workspace.selection;
+if (selection) {
+return findTopicsFolder(selection);
+}
+return null;
+}
+ActiveMQ.getSelectionTopicsFolder = getSelectionTopicsFolder;
+function selectCurrentMessage(message, key, $scope) {
+$scope.gridOptions.selectAll(false);
+var idx = Core.pathGet(message, ["rowIndex"]);
+var jmsMessageID = Core.pathGet(message, ["entity", key]);
+$scope.rowIndex = idx;
+var selected = $scope.gridOptions.selectedItems;
+selected.splice(0, selected.length);
+if (idx >= 0 && idx < $scope.messages.length) {
+$scope.row = $scope.messages.find(function (msg) { return msg[key]
=== jmsMessageID; });
+if ($scope.row) {
+selected.push($scope.row);
+}
+}
+else {
+$scope.row = null;
+}
+}
+ActiveMQ.selectCurrentMessage = selectCurrentMessage;
+function decorate($scope) {
+$scope.selectRowIndex = function (idx) {
+$scope.rowIndex = idx;
+var selected = $scope.gridOptions.selectedItems;
+selected.splice(0, selected.length);
+if (idx >= 0 && idx < $scope.messages.length) {
+$scope.row = $scope.messages[idx];
+if ($scope.row) {
+selected.push($scope.row);
+}
+}
+else {
+$scope.row = null;
+}
+};
+$scope.$watch("showMessageDetails", function () {
+if (!$scope.showMessageDetails) {
+$scope.row = null;
+$scope.gridOptions.selectedItems.splice(0,
$scope.gridOptions.selectedItems.length);
+}
+});
+}
+ActiveMQ.decorate = decorate;
+})(ActiveMQ || (ActiveMQ = {}));
+*/
+var StringHelpers;
+(function (StringHelpers) {
+var dateRegex = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:/i;
+function isDate(str) {
+if (!angular.isString(str)) {
+return false;
+}
+return dateRegex.test(str);
+}
+StringHelpers.isDate = isDate;
+function obfusicate(str) {
+if (!angular.isString(str)) {
+return null;
+}
+return str.chars().map(function (c) {
+return '*';
+}).join('');
+}
+StringHelpers.obfusicate = obfusicate;
+function toString(obj) {
+if (!obj) {
+return '{ null }';
+}
+var answer = [];
+angular.forEach(obj, function (value, key) {
+var val = value;
+if (('' + key).toLowerCase() === 'password') {
+val = StringHelpers.obfusicate(value);
+}
+else if (angular.isObject(val)) {
+val = toString(val);
+}
+answer.push(key + ': ' + val);
+});
+return '{ ' + answer.join(', ') + ' }';
+}
+StringHelpers.toString = toString;
+})(StringHelpers || (StringHelpers = {}));
+var Core;
+(function (Core) {
+function createConnectToServerOptions(options) {
+var defaults = {
+scheme: 'http',
+host: null,
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/3c9a22b4/console/bower_components/bootstrap/docs/assets/js/jquery.js
--
diff --git a/console/bower_components/bootstrap/docs/assets/js/jquery.js
b/console/bower_components/bootstrap/docs/assets/js/jquery.js
new file mode 100644
index 000..3b8d15d
--- /dev/null
+++ b/console/bower_components/bootstrap/docs/assets/js/jquery.js
@@ -0,0 +1,2 @@
+/*! jQuery v@1.8.1 jquery.com | jquery.org/license */
+(function(a,b){function G(a){var b=F[a]={};return
p.each(a.split(s),function(a,c){b[c]=!0}),b}function
J(a,c,d){if(d===b&&a.nodeType===1){var
e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof
d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else
d=b}return d}function K(a){var b;for(b in
a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function
ba(){return!1}function bb(){return!0}function
bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do
a=a[b];while(a&&a.nodeType!==1);return a}function
bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var
e=!!b.call(a,d,a);return e===c});if(b.nodeType)return
p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var
d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return
p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(
a,b)>=0===c})}function bk(a){var
b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return
c}function bC(a,b){return
a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function
bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var
c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete
g.handle,g.events={};for(c in
h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.
createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return
bS[a]=c,c}function ci(a,b,c,d){var
e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof
e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in
b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return
function(b,c){typeof b!="string"&&(c=b,b="*");var
d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init
:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return
this.context=this[0]=a,this.length=1,this;if(typeof
a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return
c=c instanceof
p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return
d.find(a);this.length=1,this[0]=g}return
this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return
p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.1",length:0,size:function(){return
this.length},toArray:function(){return k.call(this)},get:function(a){return
a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var
d=p.merge(this.constructor(),a);ret
urn
d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?"
":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return
p.each(this,a,b)},ready:function(a){return
p.ready.promise().done(a),this},eq:function(a){return
a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return
this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return
this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return
this.pushStack(p.map(this,function(b,c){return
a.call(b,c,b)}))},end:function(){return
this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var
a,c,d,e,f,g,h=arguments[0]||{
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/js/qdrOverview.js
--
diff --git a/console/hawtio/src/main/webapp/plugin/js/qdrOverview.js
b/console/hawtio/src/main/webapp/plugin/js/qdrOverview.js
deleted file mode 100644
index aad0cdf..000
--- a/console/hawtio/src/main/webapp/plugin/js/qdrOverview.js
+++ /dev/null
@@ -1,1426 +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',
'QDRService', '$location', 'localStorage', '$timeout', function($scope,
QDRService, $location, localStorage, $timeout) {
-
- console.log("QDR.OverviewControll started with location of " +
$location.path() + " and connection of " + QDRService.connected);
- var columnStateKey = 'QDRColumnKey.';
- var OverviewExpandedKey = "QDROverviewExpanded"
- var OverviewActivatedKey = "QDROverviewActivated"
-
- // we want attributes to be listed first, so add it at index 0
- $scope.subLevelTabs = [{
- content: ' Attributes',
- title: "View the attribute values on your selection",
- isValid: function (workspace) { return true; },
- href: function () { return "#/" + QDR.pluginName +
"/attributes"; },
- index: 0
- },
- {
- content: ' Operations',
- title: "Execute operations on your selection",
- isValid: function (workspace) { return true; },
- href: function () { return "#/" + QDR.pluginName +
"/operations"; },
- index: 1
- }]
- $scope.activeTab = $scope.subLevelTabs[0];
- $scope.setActive = function (nav) {
- $scope.activeTab = nav;
- }
- $scope.isValid = function (nav) {
- return nav.isValid()
- }
- $scope.isActive = function (nav) {
- return nav == $scope.activeTab;
- }
- $scope.linkFields = []
- $scope.link = null;
- var refreshInterval = 5000
- $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: 'Links', url: 'links.html'},
- { name: 'Link', url: 'link.html'},
- { name: 'Connections', url: 'connections.html'},
- { name: 'Connection', url: 'connection.html'},
- { name: 'Logs', url: 'logs.html'},
- { name: 'Log', url: 'log.html'}
-];
- var topLevelChildren = [];
-
- $scope.allRouterSelected = function (row ) {
- console.log("row selected" + row)
- }
- function afterSelectionChange(rowItem, checkAll) {
- var nodeId = rowItem.entity.nodeId;
- $("#overtree").dynatree("getTree").activateKey(nodeId);
-}
-
- $scope.allRouterFields = [];
- $scope.allRouterSelections = [];
- $scope.allRouters = {
- saveKey: 'allRouters',
- data: 'allRouterFields',
- columnDefs: [
- {
- field: 'routerId',
- saveKey: 'allRouters',
- displayName: 'Router'
- },
- {
-
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/plugin/js/qdrOverview.js
--
diff --git a/console/stand-alone/plugin/js/qdrOverview.js
b/console/stand-alone/plugin/js/qdrOverview.js
index d787a5e..d16b8e2 100644
--- a/console/stand-alone/plugin/js/qdrOverview.js
+++ b/console/stand-alone/plugin/js/qdrOverview.js
@@ -34,99 +34,118 @@ var QDR = (function (QDR) {
*
* Controller that handles the QDR overview page
*/
- QDR.module.controller("QDR.OverviewController", ['$scope',
'uiGridConstants', 'QDRService', function($scope, uiGridConstants, QDRService) {
+ QDR.module.controller("QDR.OverviewController", ['$scope',
'QDRService', '$location', '$timeout', function($scope, QDRService, $location,
$timeout) {
+ console.log("QDR.OverviewControll started with location of " +
$location.path() + " and connection of " + QDRService.connected);
+ var columnStateKey = 'QDRColumnKey.';
+ var OverviewExpandedKey = "QDROverviewExpanded"
+ var OverviewActivatedKey = "QDROverviewActivated"
+ var treeRoot; // the dynatree root node. initialized once log
data is received
- if (!angular.isDefined(QDRService.schema))
- return;
-
- var nodeIds = QDRService.nodeIdList();
- var currentTimer;
+ // we want attributes to be listed first, so add it at index 0
+ $scope.subLevelTabs = [{
+ content: ' Attributes',
+ title: "View the attribute values on your selection",
+ isValid: function (workspace) { return true; },
+ href: function () { return "#/" + QDR.pluginName +
"/attributes"; },
+ index: 0
+ },
+ {
+ content: ' Operations',
+ title: "Execute operations on your selection",
+ isValid: function (workspace) { return true; },
+ href: function () { return "#/" + QDR.pluginName +
"/operations"; },
+ index: 1
+ }]
+ $scope.activeTab = $scope.subLevelTabs[0];
+ $scope.setActive = function (nav) {
+ $scope.activeTab = nav;
+ }
+ $scope.isValid = function (nav) {
+ return nav.isValid()
+ }
+ $scope.isActive = function (nav) {
+ return nav == $scope.activeTab;
+ }
+ $scope.linkFields = []
+ $scope.link = null;
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.tmplOverviewTree = QDR.templatePath +
'tmplOverviewTree.html';
$scope.templates =
- [ { name: 'Routers', url: 'routers.html'},
+ [ { name: 'Routers', url: 'routers.html'},
{ name: 'Router', url: 'router.html'},
{ name: 'Addresses', url: 'addresses.html'},
{ name: 'Address', url: 'address.html'},
+ { name: 'Links', url: 'links.html'},
+ { name: 'Link', url: 'link.html'},
{ name: 'Connections', url: 'connections.html'},
{ name: 'Connection', url: 'connection.html'},
{ name: 'Logs', url: 'logs.html'},
- { name: 'Log', url: 'log.html'} ];
+ { name: 'Log', url: 'log.html'}
+];
+ var topLevelChildren = [];
- $scope.getGridHeight = function (data) {
- // add 1 for the header row
- return {height: (($scope[data.data].length + 1) * 30) + "px"};
+ $scope.allRouterSelected = function (row ) {
+ console.log("row selected" + row)
}
- $scope.overview = new Folder("Overview");
+ function afterSelectionChange(rowItem, checkAll) {
+ var nodeId = rowItem.entity.nodeId;
+ $("#overtree").dynatree("getTree").activateKey(nodeId);
+}
$scope.allRouterFields = [];
- var allRouterCols = [
-{
-field: 'routerId',
-
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/plugin/js/qdrSettings.js
--
diff --git a/console/stand-alone/plugin/js/qdrSettings.js
b/console/stand-alone/plugin/js/qdrSettings.js
index 950e1c5..e81463a 100644
--- a/console/stand-alone/plugin/js/qdrSettings.js
+++ b/console/stand-alone/plugin/js/qdrSettings.js
@@ -28,7 +28,8 @@ var QDR = (function (QDR) {
*
* Controller that handles the QDR settings page
*/
- QDR.module.controller("QDR.SettingsController", ['$scope', 'QDRService',
'$location', function($scope, QDRService, $location) {
+
+ QDR.module.controller("QDR.SettingsController", ['$scope', 'QDRService',
'$timeout', '$location', function($scope, QDRService, $timeout, $location) {
$scope.connecting = false;
$scope.connectionError = false;
@@ -36,38 +37,6 @@ var QDR = (function (QDR) {
$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) {
@@ -77,39 +46,106 @@ var QDR = (function (QDR) {
$scope.buttonText = function() {
if (QDRService.isConnected()) {
-return "Reconnect";
+return "Disconnect";
} 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();
-});
+ if (QDRService.connected) {
+ QDRService.disconnect();
+ return;
+ }
+
+ if ($scope.settings.$valid) {
+ $scope.connectionError = false;
+ $scope.connecting = true;
+ $timeout( doConnect ) // timeout so connecting
animation can display
+ }
+ }
+
+ var doConnect = function () {
+if (!$scope.formEntity.address)
+$scope.formEntity.address = "localhost"
+
+console.log("attempting to connect to " + $scope.formEntity.address +
':' + $scope.formEntity.port);
+ QDRService.addDisconnectAction(function () {
+ $timeout( function () {
+ QDR.log.debug("disconnect action called");
+$scope.connecting = false;
+$scope.connectionErrorText = QDRService.errorText;
+$scope.connectionError = true;
+ })
+ });
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();
+ $timeout( function () {
+ $scope.connecting = false;
+ })
});
QDRService.connect($scope.formEntity);
}
-};
}]);
+
+QDR.module.directive('posint', function (){
+ return {
+ require: 'ngModel',
+
+ link: function(scope, elem, attr, ctrl) {
+ // input type number allows + and - but we don't want them so
filter them out
+ elem.bind('keypress', function (event) {
+ var nkey = !event.charCode ? event.which :
event.charCode;
+ var skey = String.fromCha
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/index.html
--
diff --git a/console/stand-alone/index.html b/console/stand-alone/index.html
index 166d89a..be03d62 100644
--- a/console/stand-alone/index.html
+++ b/console/stand-alone/index.html
@@ -1,4 +1,4 @@
-
+http://www.w3.org/TR/html4/strict.dtd";>
-
+http://angularjs.org";>
@@ -25,21 +25,18 @@ under the License.
Qpid Dispatch Console
+
https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css";>
https://cdnjs.cloudflare.com/ajax/libs/jquery.tipsy/1.0.2/jquery.tipsy.css";
type="text/css"/>
-
-https://cdnjs.cloudflare.com/ajax/libs/angular-ui-grid/3.0.7/ui-grid.css";
type="text/css"/>
+https://cdnjs.cloudflare.com/ajax/libs/ng-grid/2.0.11/ng-grid.min.css";
type="text/css"/>
https://cdnjs.cloudflare.com/ajax/libs/jquery.fancytree/2.15.0/skin-win8/ui.fancytree.css";
type="text/css">
-
-https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css";
integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
crossorigin="anonymous">
-https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css";
integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r"
crossorigin="anonymous">
-
+https://cdn.rawgit.com/mar10/dynatree/master/dist/skin/ui.dynatree.css";
type="text/css">
+https://maxcdn.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap-combined.min.css";
type="text/css">
https://maxcdn.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css";>
-
-
-
+
+
https://cdn.rawgit.com/mohsen1/json-formatter/master/dist/json-formatter.min.css";
type="text/css"/>
@@ -69,16 +66,7 @@ under the License.
-
-
-
-
-
-
-
-
-
-
+
@@ -87,27 +75,27 @@ under the License.
http://d3js.org/queue.v1.min.js";>
http://d3js.org/topojson.v0.min.js";>
-http://code.jquery.com/jquery-1.12.0.min.js";>
+http://code.jquery.com/jquery-1.8.3.min.js";>
+
+https://maxcdn.bootstrapcdn.com/twitter-bootstrap/2.2.1/js/bootstrap.min.js";>
-https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js";
integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
crossorigin="anonymous">
+https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.5/angular.min.js";>
+https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.5/angular-sanitize.min.js";>
+https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.5/angular-resource.min.js";>
+
+https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.4.0/ui-bootstrap-tpls.min.js";>
-https://code.angularjs.org/1.4.8/angular.js";>
-https://code.angularjs.org/1.4.8/angular-resource.js";>
-https://code.angularjs.org/1.4.8/angular-route.js";>
-https://code.angularjs.org/1.4.8/angular-animate.js";>
-https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/1.1.0/ui-bootstrap-tpls.min.js";>
https://cdn.rawgit.com/jaz303/tipsy/master/src/javascripts/jquery.tipsy.js";>
https://cdn.rawgit.com/briancray/tooltipsy/master/tooltipsy.min.js";>
https://cdn.rawgit.com/angular-ui/ui-slider/master/src/slider.js";>
-https://cdn.rawgit.com/mohsen1/json-formatter/master/dist/json-formatter.min.js";>
-
https://code.jquery.com/ui/1.11.4/jquery-ui.min.js";>
-https://cdnjs.cloudflare.com/ajax/libs/angular-ui-grid/3.0.7/ui-grid.js";>
+https://cdnjs.cloudflare.com/ajax/libs/ng-grid/2.0.11/ng-grid.min.js";>
-
+
+
@@ -117,7 +105,7 @@ under the License.
-https://cdnjs.cloudflare.com/ajax/libs/jquery.fancytree/2.15.0/jquery.fancytree.js";
type="text/javascript">
+https://cdn.rawgit.com/mar10/dynatree/master/dist/jquery.dynatree.min.js";>
angular.element(document.getElementsByTagName('head')).append(angular.element(' '));
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/plugin/css/dispatch.css
--
diff --git a/console/stand-alone/plugin/css/dispatch.css
b/console/stand-alone/plugin/css/dispatch.css
new file mode 100644
index 000..e59fa36
--- /dev/null
+++ b/console/stand-alone/plugin/css/dispatch.css
@@ -0,0 +1,640 @@
+/*
+Licensed to the Apache Software Foundation (ASF) u
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/js/qdrSettings.js
--
diff --git a/console/hawtio/src/main/webapp/plugin/js/qdrSettings.js
b/console/hawtio/src/main/webapp/plugin/js/qdrSettings.js
deleted file mode 100644
index e81463a..000
--- a/console/hawtio/src/main/webapp/plugin/js/qdrSettings.js
+++ /dev/null
@@ -1,151 +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',
'$timeout', '$location', function($scope, QDRService, $timeout, $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.$watch('formEntity', function(newValue, oldValue) {
- if (newValue !== oldValue) {
-localStorage[QDR.SETTINGS_KEY] = angular.toJson(newValue);
- }
-}, true);
-
-$scope.buttonText = function() {
- if (QDRService.isConnected()) {
-return "Disconnect";
- } else {
-return "Connect";
- }
-};
-
-$scope.connect = function() {
- if (QDRService.connected) {
- QDRService.disconnect();
- return;
- }
-
- if ($scope.settings.$valid) {
- $scope.connectionError = false;
- $scope.connecting = true;
- $timeout( doConnect ) // timeout so connecting
animation can display
- }
- }
-
- var doConnect = function () {
-if (!$scope.formEntity.address)
-$scope.formEntity.address = "localhost"
-
-console.log("attempting to connect to " + $scope.formEntity.address +
':' + $scope.formEntity.port);
- QDRService.addDisconnectAction(function () {
- $timeout( function () {
- QDR.log.debug("disconnect action called");
-$scope.connecting = false;
-$scope.connectionErrorText = QDRService.errorText;
-$scope.connectionError = true;
- })
- });
-QDRService.addConnectAction(function() {
- //QDR.log.debug("got connection notification");
- $timeout( function () {
- $scope.connecting = false;
- })
-});
-QDRService.connect($scope.formEntity);
- }
-
- }]);
-
-
-QDR.module.directive('posint', function (){
- return {
- require: 'ngModel',
-
- link: function(scope, elem, attr, ctrl) {
- // input type number allows + and - but we don't want them so
filter them out
- elem.bind('keypress', function (event) {
- var nkey = !event.charCode ? event.which :
event.charCode;
- var skey = String.fromCharCode(nkey);
- var nono = "-+.,"
- if (nono.indexOf(skey) >= 0) {
- event.preventDefault();
- return false;
- }
- // firefox doesn't filter out non-numeric input. it
just sets the ctrl to invalid
- if (/[\!\@\#\$\%^&*\(\)]/.test(skey) && event.shiftKey
|| // prevent shift numbers
- !( //
prevent all but the following
- nkey <= 0 ||
// arrows
- nkey == 8 ||
// delete|backspace
- nkey == 13 ||
// enter
- (nkey >= 37 && nkey <=40) ||
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/lib/rhea-min.js
--
diff --git a/console/hawtio/src/main/webapp/plugin/lib/rhea-min.js
b/console/hawtio/src/main/webapp/plugin/lib/rhea-min.js
deleted file mode 100644
index 4841569..000
--- a/console/hawtio/src/main/webapp/plugin/lib/rhea-min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof
require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var
f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var
l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return
s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof
require=="function"&&require;for(var o=0;o
"+socket.remoteAddress+":"+socket.remotePort}function
session_per_connection(conn){var
ssn=null;return{get_session:function(){if(!ssn){ssn=conn.create_session();ssn.begin()}return
ssn}}}function restrict(count,f){if(count){var current=count;var reset;return
function(successful_attempts){if(reset!==successful_attempts){current=count;reset=successful_attempts}if(current--)return
f(successful_attempts);else return-1}}else{return f}}function
backoff(initial,max){var delay=initial;var reset;return
function(successful_attempts){if(reset!==successful_attempts){delay=initial;reset=successful_attempts}var
current=delay;var next=delay*2;delay=max>next?next
:max;return current}}function
get_connect_fn(options){if(options.transport===undefined||options.transport==="tcp"){return
net.connect}else
if(options.transport==="tls"||options.transport==="ssl"){return
tls.connect}else{throw Error("Unrecognised transport:
"+options.transport)}}function connection_details(options){var
details={};details.connect=options.connect?options.connect:get_connect_fn(options);details.host=options.host?options.host:"localhost";details.port=options.port?options.port:5672;details.options=options;return
details}var
aliases=["container_id","hostname","max_frame_size","channel_max","idle_time_out","outgoing_locales","incoming_locales","offered_capabilities","desired_capabilities","properties"];function
remote_property_shortcut(name){return function(){return
this.remote.open?this.remote.open[name]:undefined}}var conn_counter=1;var
Connection=function(options,container){this.options={};if(options){for(var k in
options){this.options[k]=options[k]}}this.container=conta
iner;if(!this.options.id){this.options.id="connection-"+conn_counter++}if(!this.options.container_id){this.options.container_id=container?container.id:util.generate_uuid()}if(!this.options.connection_details){var
self=this;this.options.connection_details=function(){return
connection_details(self.options)}}var
reconnect=this.get_option("reconnect",true);if(typeof
reconnect==="boolean"&&reconnect){var
initial=this.get_option("initial_reconnect_delay",100);var
max=this.get_option("max_reconnect_delay",6e4);this.options.reconnect=restrict(this.get_option("reconnect_limit"),backoff(initial,max))}else
if(typeof reconnect==="number"){var
fixed=this.options.reconnect;this.options.reconnect=restrict(this.get_option("reconnect_limit"),function(){return
fixed})}this.registered=false;this.state=new
EndpointState;this.local_channel_map={};this.remote_channel_map={};this.local={};this.remote={};this.local.open=frames.open(this.options);this.local.close=frames.close({});this.session_policy=session
_per_connection(this);this.amqp_transport=new
Transport(this.options.id,AMQP_PROTOCOL_ID,frames.TYPE_AMQP,this);this.sasl_transport=undefined;this.transport=this.amqp_transport;this.conn_established_counter=0;this.heartbeat_out=undefined;this.heartbeat_in=undefined;this.abort_idle=false;this.socket_ready=false;this.scheduled_reconnect=undefined;this.default_sender=undefined;for(var
i in aliases){var
f=aliases[i];Object.defineProperty(this,f,{get:remote_property_shortcut(f)})}Object.defineProperty(this,"error",{get:function(){return
this.remote.close?this.remote.close.error:undefined}})};Connection.prototype=Object.create(EventEmitter.prototype);Connection.prototype.constructor=Connection;Connection.prototype.dispatch=function(name,context){log.events("Connection
got event:
"+name);if(this.listeners(name).length){EventEmitter.prototype.emit.apply(this,arguments);return
true}else if(this.container){return
this.container.dispatch.apply(this.container,arguments)}};Connection.prototype.r
eset=function(){if(this.abort_idle){this.abort_idle=false;this.local.close.error=undefined;this.state=new
EndpointState;this.state.open()}this.amqp_transport=new
Transport(this.options.id,AMQP_PROTOCOL_ID,frames.TYPE_AMQP,this);this.sasl_transport=undefined;this.transport=this.amqp_transport;this.state.disconnected();this.remote={};this.remote_channel_map={};for(var
k in
this.local_channel_map){this.local_channel_map[k
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/hawtio/src/main/webapp/plugin/js/qdrChartService.js
--
diff --git a/console/hawtio/src/main/webapp/plugin/js/qdrChartService.js
b/console/hawtio/src/main/webapp/plugin/js/qdrChartService.js
deleted file mode 100644
index 47cb47d..000
--- a/console/hawtio/src/main/webapp/plugin/js/qdrChartService.js
+++ /dev/null
@@ -1, +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 chart service handles periodic gathering data for charts and
displaying the charts
-QDR.module.factory("QDRChartService", ['$rootScope', 'QDRService',
'$http', '$resource', '$location',
-function($rootScope, QDRService, $http, $resource, $location) {
-
-var instance = 0; // counter for chart instances
-var bases = [];
-var findBase = function (name, attr, request) {
-for (var i=0; i -1) {
- attrs.forEach( function (attr) {
- var data = request.data(name, attr) //
get a reference to the data array
- if (data) {
- var attrIndex =
response.attributeNames.indexOf(attr)
- if (request.aggregate) {
- data.push([now,
response.aggregates[i][attrIndex].sum,
response.aggregates[i][attrIndex].detail])
- } else {
-
data.push([now, records[i][attrIndex]])
- }
- // expire the old data
- while (data[0][0] < cutOff) {
- data.shift();
- }
- }
- })
- }
- }
- }
- if (request.aggregate) {
- var nodeList = QDRService.nodeIdList()
-
QDRService.getMultipleNodeInfo(nodeList, request.entity, attrs, saveResponse,
request.nodeId);
- } else {
-QDRService.getNodeInfo(request.nodeId, request.entity,
attrs, saveResponse);
- }
-// it is now safe to schedule another request
-if (once)
-return;
-request.setTimeoutHandle = setTimeout(self.sendChartRequest,
request.interval, request)
-},
-
-numCharts: function () {
-return self.charts.filter( function (chart) { return
chart.dashboard }).length;
-//return self.charts.length;
-},
-
-isAttrCharted: function (nodeId, entity, name, attr) {
-var charts = self.findCharts({
-name: name,
-attr: attr,
-nodeId: nodeId,
-entity: entity
-})
-// if any of the matching charts are on the dashboard page,
return true
-return charts.some(function (chart) {
-return (chart.dashboard) });
-},
-
- addHDash: function (chart) {
- chart.hdash = true;
- self.saveCharts();
- /*
- if (!chart.hdash) {
-var dashChart = self.registerChart(chart.nodeId(),
chart.entity(),
-chart.name(), chart.attr(), chart.interval(),
true, chart.aggregate(), true);
- dashChart.dashboard = true;
- dashChart.hdash = false;
- chart
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/plugin/html/tmplListChart.html
--
diff --git a/console/stand-alone/plugin/html/tmplListChart.html
b/console/stand-alone/plugin/html/tmplListChart.html
new file mode 100644
index 000..e52a39a
--- /dev/null
+++ b/console/stand-alone/plugin/html/tmplListChart.html
@@ -0,0 +1,18 @@
+
+
+Chart {{chart.attr() | humanify}}
+
+
+
+
+
+
+ Add this
chart to the Charts page.
+
+
+Remove this chart from the Charts page.
+
+Close
+
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/plugin/html/tmplListTree.html
--
diff --git a/console/stand-alone/plugin/html/tmplListTree.html
b/console/stand-alone/plugin/html/tmplListTree.html
new file mode 100644
index 000..9aa8be5
--- /dev/null
+++ b/console/stand-alone/plugin/html/tmplListTree.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/plugin/html/tmplOverviewTree.html
--
diff --git a/console/stand-alone/plugin/html/tmplOverviewTree.html
b/console/stand-alone/plugin/html/tmplOverviewTree.html
new file mode 100644
index 000..4346b9c
--- /dev/null
+++ b/console/stand-alone/plugin/html/tmplOverviewTree.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/plugin/js/dispatchPlugin.js
--
diff --git a/console/stand-alone/plugin/js/dispatchPlugin.js
b/console/stand-alone/plugin/js/dispatchPlugin.js
new file mode 100644
index 000..e8078e9
--- /dev/null
+++ b/console/stand-alone/plugin/js/dispatchPlugin.js
@@ -0,0 +1,254 @@
+/*
+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 entry point for the QDR module
+ *
+ */
+var QDR = (function(QDR) {
+
+ /**
+ * @property pluginName
+ * @type {string}
+ *
+ * The name of this plugin
+ */
+ QDR.pluginName = "QDR";
+ QDR.pluginRoot = "";
+ QDR.isStandalone = true;
+
+ /**
+ * @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 = "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, ['ngResource', 'ngGrid',
'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', {
+ templa
Repository: qpid-dispatch
Updated Branches:
refs/heads/master c9d14137d -> d98ae37ef
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/plugin/lib/rhea-min.js
--
diff --git a/console/stand-alone/plugin/lib/rhea-min.js
b/console/stand-alone/plugin/lib/rhea-min.js
index f61579a..42ca130 100644
--- a/console/stand-alone/plugin/lib/rhea-min.js
+++ b/console/stand-alone/plugin/lib/rhea-min.js
@@ -1,93 +1,6 @@
-require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof
require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var
f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var
l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return
s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof
require=="function"&&require;for(var o=0;o
"+t.remoteAddress+":"+t.remotePort}function session_per_connection(t){var
e=null;return{get_session:function(){return
e||(e=t.create_session(),e.begin()),e}}}function restrict(t,e){if(t){var
o,n=t;return function(i){return o!==i&&(n=t,o=i),n--?e(i):-1}}return e}function
backoff(t,e){var o,n=t;return function(i){o!==i&&(n=t,o=i);var s=n,r=2*n;return
n=e>r?r:e,s}}function get_connect_fn(t){if(void
0===t.transport||"tcp"===t.transport)return
net.connect;if("tls"===t.transport||"ssl"===t.transport)return
tls.connect;throw Error("Unrecognised transport: "+t.transport)}function
connection_details(t){var e={};return
e.connect=t.connect?t.connect:get_connect_fn(t),e.host=t.host?t.host:"localhost",e.port=t.port?t.port:5672,e.options=t,e}function
delegate_to_session(t){Connection.prototype["on_"+t]=function(e){var
o=this.remote_channel_map[e.channel];if(!o)throw Error(t+" receiv
ed on invalid channel "+e.channel);o["on_"+t](e)}}var
frames=require("./frames.js"),log=require("./log.js"),sasl=require("./sasl.js"),types=require("./types.js"),util=require("./util.js"),EndpointState=require("./endpoint.js"),Session=require("./session.js"),Transport=require("./transport.js"),net=require("net"),tls=require("tls"),EventEmitter=require("events").EventEmitter,AMQP_PROTOCOL_ID=0,TLS_PROTOCOL_ID=2,conn_counter=1,Connection=function(t,e){if(this.options={},t)for(var
o in
t)this.options[o]=t[o];if(this.container=e,this.options.id||(this.options.id="connection-"+conn_counter++),this.options.container_id||(this.options.container_id=e?e.id:util.generate_uuid()),!this.options.connection_details){var
n=this;this.options.connection_details=function(){return
connection_details(n.options)}}var
i=this.get_option("reconnect",!0);if("boolean"==typeof i&&i){var
s=this.get_option("initial_reconnect_delay",100),r=this.get_option("max_reconnect_delay",6e4);this.options.reconnect=restric
t(this.get_option("reconnect_limit"),backoff(s,r))}else if("number"==typeof
i){var
c=this.options.reconnect;this.options.reconnect=restrict(this.get_option("reconnect_limit"),function(){return
c})}this.registered=!1,this.state=new
EndpointState,this.local_channel_map={},this.remote_channel_map={},this.local={},this.remote={},this.local.open=frames.open(this.options),this.local.close=frames.close({}),this.session_policy=session_per_connection(this),this.amqp_transport=new
Transport(this.options.id,AMQP_PROTOCOL_ID,frames.TYPE_AMQP,this),this.sasl_transport=void
0,this.transport=this.amqp_transport,this.conn_established_counter=0,this.heartbeat_out=void
0,this.heartbeat_in=void
0,this.abort_idle=!1,this.socket_ready=!1,this.scheduled_reconnect=void
0};Connection.prototype=Object.create(EventEmitter.prototype),Connection.prototype.constructor=Connection,Connection.prototype.dispatch=function(t,e){return
log.events("Connection got event:
"+t),this.listeners(t).length?(EventEmitter.proto
type.emit.apply(this,arguments),!0):this.container?this.container.dispatch.apply(this.container,arguments):void
0},Connection.prototype.reset=function(){this.abort_idle&&(this.abort_idle=!1,this.local.close.error=void
0,this.state=new EndpointState,this.state.open()),this.amqp_transport=new
Transport(this.options.id,AMQP_PROTOCOL_ID,frames.TYPE_AMQP,this),this.sasl_transport=void
0,this.transport=this.amqp_transport,this.state.disconnected(),this.remote={},this.remote_channel_map={};for(var
t in
this.local_channel_map)this.local_channel_map[t].reset();this.socket_ready=!1},Connection.prototype.connect=function(){return
this.is_server=!1,this._connect(this.options.connection_details(this.conn_established_counter)),this.open(),this},Connection.prototype.reconnect=function(){return
this.scheduled_reconnect=void
0,log.reconnect("reconnecting..."),this.reset(),this._connect(this.options.connection_details(this.conn_established_counter)),process.nextTick(this._process.bind(this)),this},Co
nnection.prototype._connect=function(t){return
t.connect?this.init(t.connect(t.port,t.host,t.options,this.connected.bind(this))):t
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
Authored: Fri Aug 19 12:57:59 2016 -0400
Committer: Ernest Allen
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..000
--- 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 WARRA
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/d98ae37e/console/stand-alone/plugin/js/qdrList.js
--
diff --git a/console/stand-alone/plugin/js/qdrList.js
b/console/stand-alone/plugin/js/qdrList.js
index 7352d82..c752a8f 100644
--- a/console/stand-alone/plugin/js/qdrList.js
+++ b/console/stand-alone/plugin/js/qdrList.js
@@ -28,36 +28,105 @@ var QDR = (function(QDR) {
*
* Controller for the main interface
*/
- QDR.module.controller("QDR.ListController", ['$scope', '$location',
'uiGridConstants', 'QDRService', 'QDRChartService', '$uibModal',
- function ($scope, $location, uiGridConstants, QDRService,
QDRChartService, $uibModal) {
+ QDR.module.controller("QDR.ListController", ['$scope', '$location',
'$dialog', '$filter', 'QDRService', 'QDRChartService',
+ function ($scope, $location, $dialog, $filter, QDRService,
QDRChartService) {
- //QDR.log.debug("started List controller");
- if (!angular.isDefined(QDRService.schema))
- return;
- $scope.selectedAction = localStorage['QDRSelectedAction'];
+ var updateIntervalHandle = undefined;
+ var updateInterval = 5000;
+ var ListExpandedKey = "QDRListExpanded";
+ $scope.details = {};
+
+ $scope.tmplListTree = QDR.templatePath + 'tmplListTree.html';
+ $scope.selectedEntity = localStorage['QDRSelectedEntity'] ||
"address";
$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}
-);
+ $scope.nodes = []
+ $scope.currentNode = undefined;
+ $scope.modes = [{
+ content: ' Attributes',
+ id: 'attributes',
+ op: 'READ',
+ title: "View router attributes",
+ isValid: function () { return true; }
+ },
+ {
+ content: ' Update',
+ id: 'operations',
+ op: 'UPDATE',
+ title: "Update this attribute",
+ isValid: function () { return
$scope.operations.indexOf(this.op) > -1 }
+ },
+ {
+ content: ' Create',
+ id: 'operations',
+ op: 'CREATE',
+ title: "Create a new attribute",
+ isValid: function () { return
$scope.operations.indexOf(this.op) > -1 }
+ },
+ {
+ content: ' Delete',
+ id: 'delete',
+ op: 'DELETE',
+ title: "Delete",
+ isValid: function () { return
$scope.operations.indexOf(this.op) > -1 }
+ },
+ {
+ content: ' Fetch',
+ id: 'log',
+ op: 'GET-LOG',
+ title: "Fetch recent log entries",
+ isValid: function () { return ($scope.selectedEntity === 'log')
}
+ }
+ ];
+ $scope.operations = []
+$scope.currentMode = $scope.modes[0];
+ $scope.isModeSelected = function (mode) {
+ return mode === $scope.currentMode;
+ }
+ $scope.selectMode = function (mode) {
+ $scope.currentMode = mode;
+ if (mode.id === 'log') {
+ $scope.logResults = "getting recent log
entries...";
+ QDRService.sendMethod($scope.currentNode.id,
$scope.selectedEntity, {}, $scope.currentMode.op, function (nodeName, entity,
response, context) {
+ $scope.logResults = response.filter(
function (entry) {
+ return entry[0] ===
$scope.detailsObject.module
+ }).sort( function (a, b) {
+ return b[5] - a[5]
+
Repository: qpid-dispatch
Updated Branches:
refs/heads/master ae1223b2a -> 62703d543
DISPATCH-350 Allow quiesce of links in console's overview and topology pages
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/c07648cc
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/c07648cc
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/c07648cc
Branch: refs/heads/master
Commit: c07648cc4694bf678df05bc95fca6156851249f2
Parents: ae1223b
Author: Ernest Allen
Authored: Wed Aug 24 13:59:44 2016 -0400
Committer: Ernest Allen
Committed: Wed Aug 24 13:59:44 2016 -0400
--
.../webapp/plugin/html/tmplOverviewTree.html| 3 +-
console/stand-alone/index.html | 1 -
console/stand-alone/plugin/css/dispatch.css | 12 +-
.../stand-alone/plugin/html/qdrOverview.html| 22 +-
.../stand-alone/plugin/html/qdrTopology.html| 25 -
.../plugin/html/tmplOverviewTree.html | 1 +
console/stand-alone/plugin/js/qdrList.js| 2 +-
console/stand-alone/plugin/js/qdrOverview.js| 539 ---
console/stand-alone/plugin/js/qdrService.js | 30 +-
console/stand-alone/plugin/js/qdrTopology.js| 50 +-
10 files changed, 297 insertions(+), 388 deletions(-)
--
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c07648cc/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
index 48f9cbc..2fb5929 100644
--- a/console/hawtio/src/main/webapp/plugin/html/tmplOverviewTree.html
+++ b/console/hawtio/src/main/webapp/plugin/html/tmplOverviewTree.html
@@ -3,4 +3,5 @@
-
\ No newline at end of file
+
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c07648cc/console/stand-alone/index.html
--
diff --git a/console/stand-alone/index.html b/console/stand-alone/index.html
index be03d62..36845e7 100644
--- a/console/stand-alone/index.html
+++ b/console/stand-alone/index.html
@@ -29,7 +29,6 @@ under the License.
https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css";>
https://cdnjs.cloudflare.com/ajax/libs/jquery.tipsy/1.0.2/jquery.tipsy.css";
type="text/css"/>
https://cdnjs.cloudflare.com/ajax/libs/ng-grid/2.0.11/ng-grid.min.css";
type="text/css"/>
-https://cdnjs.cloudflare.com/ajax/libs/jquery.fancytree/2.15.0/skin-win8/ui.fancytree.css";
type="text/css">
https://cdn.rawgit.com/mar10/dynatree/master/dist/skin/ui.dynatree.css";
type="text/css">
https://maxcdn.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap-combined.min.css";
type="text/css">
https://maxcdn.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css";>
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c07648cc/console/stand-alone/plugin/css/dispatch.css
--
diff --git a/console/stand-alone/plugin/css/dispatch.css
b/console/stand-alone/plugin/css/dispatch.css
index e59fa36..68847f8 100644
--- a/console/stand-alone/plugin/css/dispatch.css
+++ b/console/stand-alone/plugin/css/dispatch.css
@@ -179,7 +179,7 @@ div#topologyForm .ngViewport, div#topologyForm .gridStyle {
div#multiple_details, div#link_details {
height: 300px;
- width: 600px;
+ width: 700px;
display: none;
padding: 0.5em;
border: 1px solid;
@@ -580,6 +580,12 @@ circle.subcircle {
border: 1px solid grey;
background-color: #F0F0F0;
position: absolute;
+ z-index: 100;
+ right: 1em;
+}
+div.formLine label, div.formLine input {
+ display: inline-block;
+ padding: 0 8px;
}
span.filter-icon {
@@ -596,7 +602,7 @@ button.filter-close {
}
div.filter-title h6 {
- margin: 0;
+ margin: 0 0 0.5em 0;
}
.links button.btn-filter {
@@ -606,7 +612,7 @@ div.filter-title h6 {
}
button.btn-filter {
- visibility: hidden;
+ float: right;
}
span.dynatree-expanded button.btn-filter,
a.dynatree-title:hover button.btn-filter {
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/c07648cc/console/stand-alone/plugin/html/qdrOverview.html
--
diff --git a/console/stand-alone/plugin/html/qdrOverview.html
b/console/stand-alone/plugin/html/qdrOverview.html
index e3876ee..1282cab 100644
--- a/console/stand-alone/plugin/html/qdrOverview.html
+++ b/console/stand-alone/plugin/html/qdrOverview.html
@@ -20,16 +20,6 @@ under the License.
[2/2] qpid-dispatch git commit: DISPATCH-481 Update UI for connection grid and link grid
DISPATCH-481 Update UI for connection grid and link grid
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/62703d54
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/62703d54
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/62703d54
Branch: refs/heads/master
Commit: 62703d5436f6c181b4fdf0ec14c2aaff97959c2f
Parents: c07648c
Author: Ernest Allen
Authored: Wed Aug 24 16:44:05 2016 -0400
Committer: Ernest Allen
Committed: Wed Aug 24 16:44:05 2016 -0400
--
console/stand-alone/plugin/css/dispatch.css | 17 +
console/stand-alone/plugin/html/qdrTopology.html | 2 ++
console/stand-alone/plugin/js/qdrOverview.js | 13 +++--
console/stand-alone/plugin/js/qdrService.js | 13 +
console/stand-alone/plugin/js/qdrTopology.js | 17 +++--
5 files changed, 38 insertions(+), 24 deletions(-)
--
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/62703d54/console/stand-alone/plugin/css/dispatch.css
--
diff --git a/console/stand-alone/plugin/css/dispatch.css
b/console/stand-alone/plugin/css/dispatch.css
index 68847f8..6b253a1 100644
--- a/console/stand-alone/plugin/css/dispatch.css
+++ b/console/stand-alone/plugin/css/dispatch.css
@@ -643,4 +643,21 @@ div.topoGrid .ui-grid-viewport {
.ui-fancytree.fancytree-container {
font-size: 14px;
+}
+
+.grid-title {
+background-color: #FAFAFA;
+background-image: -moz-linear-gradient(top, #ff, #f2f2f2);
+background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ff),
to(#f2f2f2));
+background-image: -webkit-linear-gradient(top, #ff, #f2f2f2);
+background-image: -o-linear-gradient(top, #ff, #f2f2f2);
+background-image: linear-gradient(to bottom, #ff, #f2f2f2);
+background-repeat: repeat-x;
+filter:
progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF',
endColorstr='#F2F2F2', GradientType=0);
+border-bottom: 1px solid #d4d4d4;
+text-shadow: 0 1px 0 #FF;
+border-top-left-radius: 5px;
+border-top-right-radius: 5px;
+ margin: 0 0 10px 0;
+padding-bottom: 4px;
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/62703d54/console/stand-alone/plugin/html/qdrTopology.html
--
diff --git a/console/stand-alone/plugin/html/qdrTopology.html
b/console/stand-alone/plugin/html/qdrTopology.html
index 2c75262..b3046ce 100644
--- a/console/stand-alone/plugin/html/qdrTopology.html
+++ b/console/stand-alone/plugin/html/qdrTopology.html
@@ -73,9 +73,11 @@ under the License.
+Connections
+Links
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/62703d54/console/stand-alone/plugin/js/qdrOverview.js
--
diff --git a/console/stand-alone/plugin/js/qdrOverview.js
b/console/stand-alone/plugin/js/qdrOverview.js
index 2c75544..0ccc6e8 100644
--- a/console/stand-alone/plugin/js/qdrOverview.js
+++ b/console/stand-alone/plugin/js/qdrOverview.js
@@ -834,19 +834,12 @@ var QDR = (function (QDR) {
}
return stateClassMap[row.entity.adminStatus]
}
+
$scope.quiesceLink = function (row, $event) {
- function gotMethodResponse (nodeName, entity, response,
context) {
- var statusCode =
context.message.application_properties.statusCode;
- if (statusCode < 200 || statusCode >= 300) {
- Core.notification('error',
context.message.application_properties.statusDescription);
- }
- }
- var nodeId = row.entity.nodeId;
- var entity = row.entity.type;
- var attributes = {adminStatus: 'disabled', name:
row.entity.name, identity: row.entity.identity};
- QDRService.sendMethod(nodeId, entity, attributes,
"UPDATE", gotMethodResponse)
+ QDRService.quiesceLink(row.entity.nodeId,
row.entity.name);
$event.stopPropagation()
}
+
$scope.quiesceLinkDisabled = function (row) {
return (row.entity.operStatus !== 'up' &&
row.entity.operStatus !== 'down')
}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/62703d54/console/stand-alone/plugin/js/qdrService.js
---
Repository: qpid-dispatch
Updated Branches:
refs/heads/master d26d48645 -> 5a632dac1
DISPATCH-483 Dispage links per address/connection on console overview page
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/5a632dac
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/5a632dac
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/5a632dac
Branch: refs/heads/master
Commit: 5a632dac1561ceffdb61575473729c6b49fe7bf8
Parents: d26d486
Author: Ernest Allen
Authored: Sat Aug 27 11:48:25 2016 -0400
Committer: Ernest Allen
Committed: Sat Aug 27 11:48:25 2016 -0400
--
console/stand-alone/plugin/css/plugin.css | 4 +
console/stand-alone/plugin/css/site-base.css| 1 +
.../stand-alone/plugin/html/qdrOverview.html| 29 +-
console/stand-alone/plugin/js/qdrOverview.js| 416 +--
4 files changed, 234 insertions(+), 216 deletions(-)
--
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/5a632dac/console/stand-alone/plugin/css/plugin.css
--
diff --git a/console/stand-alone/plugin/css/plugin.css
b/console/stand-alone/plugin/css/plugin.css
index db318cf..8baac19 100644
--- a/console/stand-alone/plugin/css/plugin.css
+++ b/console/stand-alone/plugin/css/plugin.css
@@ -673,6 +673,10 @@ span:not(.dynatree-has-children).router\.address
.dynatree-icon:before {
content: "\f0ac";
}
+span.address-link .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";
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/5a632dac/console/stand-alone/plugin/css/site-base.css
--
diff --git a/console/stand-alone/plugin/css/site-base.css
b/console/stand-alone/plugin/css/site-base.css
index 7c7ebf6..81619a6 100644
--- a/console/stand-alone/plugin/css/site-base.css
+++ b/console/stand-alone/plugin/css/site-base.css
@@ -4707,6 +4707,7 @@ div#overview-controller, div#list-controller {
.ngViewport.ng-scope{
height: auto !important;
+ width: auto !important;
overflow-y: hidden;
}
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/5a632dac/console/stand-alone/plugin/html/qdrOverview.html
--
diff --git a/console/stand-alone/plugin/html/qdrOverview.html
b/console/stand-alone/plugin/html/qdrOverview.html
index 1282cab..f9ba6a5 100644
--- a/console/stand-alone/plugin/html/qdrOverview.html
+++ b/console/stand-alone/plugin/html/qdrOverview.html
@@ -21,6 +21,8 @@ under the License.
+
+
@@ -30,7 +32,6 @@ under the License.
-
Router {{router.data.title}} attributes
@@ -48,10 +49,20 @@ under the License.
-
Address {{address.data.title}}
-
+
+
+
Address {{address.data.title}}
+
+
+
+
Links for address {{address.data.title}}
+
+
+
Links Filter
@@ -73,6 +84,7 @@ under the License.
+
Connections
@@ -84,18 +96,19 @@ under the License.