You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ea...@apache.org on 2016/02/18 19:04:54 UTC
[09/19] qpid-dispatch git commit: moved standalone to a subdir
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/console/plugin/lib/slider.js
----------------------------------------------------------------------
diff --git a/console/plugin/lib/slider.js b/console/plugin/lib/slider.js
deleted file mode 100644
index 1f0dd1d..0000000
--- a/console/plugin/lib/slider.js
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- jQuery UI Slider plugin wrapper
-
- Source: https://github.com/angular-ui/ui-slider/blob/master/src/slider.js
- License: MIT
-
-*/
-angular.module('ui.slider', []).value('uiSliderConfig',{}).directive('uiSlider', ['uiSliderConfig', '$timeout', function(uiSliderConfig, $timeout) {
- uiSliderConfig = uiSliderConfig || {};
- return {
- require: 'ngModel',
- compile: function() {
- var preLink = function (scope, elm, attrs, ngModel) {
-
- function parseNumber(n, decimals) {
- return (decimals) ? parseFloat(n) : parseInt(n, 10);
- }
-
- var options = angular.extend(scope.$eval(attrs.uiSlider) || {}, uiSliderConfig);
- // Object holding range values
- var prevRangeValues = {
- min: null,
- max: null
- };
-
- // convenience properties
- var properties = ['min', 'max', 'step'];
- var useDecimals = (!angular.isUndefined(attrs.useDecimals)) ? true : false;
-
- var init = function() {
- // When ngModel is assigned an array of values then range is expected to be true.
- // Warn user and change range to true else an error occurs when trying to drag handle
- if (angular.isArray(ngModel.$viewValue) && options.range !== true) {
- console.warn('Change your range option of ui-slider. When assigning ngModel an array of values then the range option should be set to true.');
- options.range = true;
- }
-
- // Ensure the convenience properties are passed as options if they're defined
- // This avoids init ordering issues where the slider's initial state (eg handle
- // position) is calculated using widget defaults
- // Note the properties take precedence over any duplicates in options
- angular.forEach(properties, function(property) {
- if (angular.isDefined(attrs[property])) {
- options[property] = parseNumber(attrs[property], useDecimals);
- }
- });
-
- elm.slider(options);
- init = angular.noop;
- };
-
- // Find out if decimals are to be used for slider
- angular.forEach(properties, function(property) {
- // support {{}} and watch for updates
- attrs.$observe(property, function(newVal) {
- if (!!newVal) {
- init();
- options[property] = parseNumber(newVal, useDecimals);
- elm.slider('option', property, parseNumber(newVal, useDecimals));
- ngModel.$render();
- }
- });
- });
- attrs.$observe('disabled', function(newVal) {
- init();
- elm.slider('option', 'disabled', !!newVal);
- });
-
- // Watch ui-slider (byVal) for changes and update
- scope.$watch(attrs.uiSlider, function(newVal) {
- init();
- if(newVal !== undefined) {
- elm.slider('option', newVal);
- }
- }, true);
-
- // Late-bind to prevent compiler clobbering
- $timeout(init, 0, true);
-
- // Update model value from slider
- elm.bind('slide', function(event, ui) {
- ngModel.$setViewValue(ui.values || ui.value);
- scope.$apply();
- });
-
- // Update slider from model value
- ngModel.$render = function() {
- init();
- var method = options.range === true ? 'values' : 'value';
-
- if (!options.range && isNaN(ngModel.$viewValue) && !(ngModel.$viewValue instanceof Array)) {
- ngModel.$viewValue = 0;
- }
- else if (options.range && !angular.isDefined(ngModel.$viewValue)) {
- ngModel.$viewValue = [0,0];
- }
-
- // Do some sanity check of range values
- if (options.range === true) {
-
- // Check outer bounds for min and max values
- if (angular.isDefined(options.min) && options.min > ngModel.$viewValue[0]) {
- ngModel.$viewValue[0] = options.min;
- }
- if (angular.isDefined(options.max) && options.max < ngModel.$viewValue[1]) {
- ngModel.$viewValue[1] = options.max;
- }
-
- // Check min and max range values
- if (ngModel.$viewValue[0] > ngModel.$viewValue[1]) {
- // Min value should be less to equal to max value
- if (prevRangeValues.min >= ngModel.$viewValue[1]) {
- ngModel.$viewValue[0] = prevRangeValues.min;
- }
- // Max value should be less to equal to min value
- if (prevRangeValues.max <= ngModel.$viewValue[0]) {
- ngModel.$viewValue[1] = prevRangeValues.max;
- }
- }
-
- // Store values for later user
- prevRangeValues.min = ngModel.$viewValue[0];
- prevRangeValues.max = ngModel.$viewValue[1];
-
- }
- elm.slider(method, ngModel.$viewValue);
- };
-
- scope.$watch(attrs.ngModel, function() {
- if (options.range === true) {
- ngModel.$render();
- }
- }, true);
-
- function destroy() {
- elm.slider('destroy');
- }
- scope.$on("$destroy", function() {
- destroy();
- });
- };
-
- var postLink = function (scope, element, attrs, ngModel) {
- // Add tick marks if 'tick' and 'step' attributes have been setted on element.
- // Support horizontal slider bar so far. 'tick' and 'step' attributes are required.
- var options = angular.extend({}, scope.$eval(attrs.uiSlider));
- var properties = ['max', 'step', 'tick'];
- angular.forEach(properties, function(property) {
- if (angular.isDefined(attrs[property])) {
- options[property] = attrs[property];
- }
- });
- if (angular.isDefined(options['tick']) && angular.isDefined(options['step'])) {
- var gaps = parseInt(parseInt(options['max'])/parseInt(options['step'])) - 1;
- if (gaps > 0) {
- for (var i = 0; i<= gaps; ++i) {
- var left = ((i / gaps) * 100) + '%';
- $("<div/>").addClass("ui-slider-tick").appendTo(element).css({left: left});
- };
- }
- }
- }
-
- return {
- pre: preLink,
- post: postLink
- };
- }
- };
-}]);
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/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
new file mode 100644
index 0000000..5097d64
--- /dev/null
+++ b/console/stand-alone/plugin/css/plugin.css
@@ -0,0 +1,658 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+main-display > .span8 {
+ height: 100%;
+ position: relative;
+}
+
+.nickname-window,
+.channel-window,
+.main-window {
+ position: absolute;
+ top: 2px;
+ bottom: 2px;
+ left: 4px;
+ right: 4px;
+ /* border: 1px solid #d4d4d4;
+ border-radius: 4px;*/
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+
+.nickname-window > .nickname-window-inner,
+.channel-window > .channel-window-inner,
+.main-window > .main-window-inner {
+ position: static;
+}
+
+.channel-window-inner > ul > li {
+ cursor: pointer;
+ padding: 0;
+ border-bottom: 1px solid #EEEEEE;
+}
+
+
+.channel-window-inner > ul > li > span:hover {
+ background-color: #EAEAEA;
+}
+
+ul.qdrListNodes > li > span {
+ padding: 6px 20px; 6px; 6px;
+ display: block;
+}
+
+.qdrList .gridStyle {
+ width: 20em;
+ margin-right: 0;
+ float: left;
+}
+
+
+.qdrList div.gridDetails {
+
+ width: auto;
+}
+
+.selectedItems {
+ margin-left: 21em;
+}
+
+.qdrListPane {
+ top: 110px;
+}
+
+.qdrListActions {
+ width: auto;
+}
+
+.nickname-window-inner > ul > li {
+ cursor: pointer;
+}
+
+.channel-window {
+ bottom: 40px;
+}
+
+.main-window {
+ border: none;
+ top: 46px;
+ bottom: 46px;
+}
+
+.main-window.no-topic {
+ top: 2px;
+}
+
+.topic-window {
+ position: absolute;
+ left: 10px;
+ right: 10px;
+ top: 2px;
+ height: 20px;
+ overflow: hidden;
+ z-index: 50;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-left: 1px solid #d4d4d4;
+ border-right: 1px solid #d4d4d4;
+ border-bottom: 1px solid #d4d4d4;
+ background: white;
+ padding: 10px;
+}
+
+.input-widget {
+ background: white;
+ position: absolute;
+ bottom: 2px;
+ left: 2px;
+ right: 2px;
+ height: 40px;
+ z-index: 50;
+}
+
+.input-widget > form {
+ position: relative;
+}
+
+.input-widget > form > div {
+ position: absolute;
+ left: 2px;
+ top: 2px;
+ bottom: 2px;
+ right: 84px;
+}
+
+.input-widget > form > div > input[type="text"] {
+ width: 100%;
+}
+
+.input-widget > form > input[type="submit"] {
+ position: absolute;
+ right: 2px;
+ top: 3px;
+}
+
+.input-widget > form > input {
+ margin-bottom: 0;
+}
+
+.channel-control-buttons {
+ position: absolute;
+ background: white;
+ bottom: 2px;
+ left: 2px;
+ right: 2px;
+ z-index: 50;
+}
+
+div.listAttrName {
+ padding-top: 5px;
+}
+
+div.listAttrName i.icon-bar-chart {
+ float: right;
+ margin: 5px;
+}
+
+div.listAttrName i.icon-bar-chart.active, div.hastip i.icon-bar-chart.active, li.haschart i {
+ background-color: #AAFFAA;
+}
+
+div#main div ul.nav li a:not(.btn) {
+ background: initial !important;
+}
+
+div#main div ul.nav li.active a {
+ background-color: #f0f0ff !important;
+}
+
+div#main.qdr {
+ margin-top: 44px !important;
+}
+
+div.charts-header {
+ font-size: 1.2em;
+ color: #666666;
+ margin: 1em 0;
+}
+
+.selectedNode, .selectedAction, .selectedEntity {
+ font-weight: 600;
+ color: #606066;
+}
+
+.okButton {
+ text-align: center;
+ margin: 1em;
+}
+
+span.showChartsLink {
+ border: 1px solid blue;
+ padding: 1px 2px;
+}
+
+div.listGraphs p {
+ margin: 1em 0 2em 2em;
+ text-align: center;
+}
+
+div.centered {
+ text-align: center;
+ margin: 4em;
+}
+
+.modal-body.centered {
+ margin: 0;
+}
+
+div.aChart {
+ height: 200px;
+ width: 400px;
+ margin: 1em;
+}
+
+div.chartContainer {
+ float: left;
+}
+
+div.d3Chart path {
+ stroke: black;
+ stroke-width: 1;
+ opacity: 0.5;
+}
+
+div.d3Chart path.line {
+ stroke: steelblue;
+ stroke-width: 1;
+ fill: none;
+ opacity: 1;
+}
+
+.mo-rect {
+ fill: #ffffdd;
+ stroke: #f0f0f0;
+ stroke-width: 1;
+}
+
+.mo-guide {
+ fill: none;
+ stroke: #d0d0d0;
+ stroke-width: 2;
+ stroke-dasharray: 3,3;
+}
+
+div.d3Chart .title {
+ text-decoration: underline;
+}
+
+
+.axis line, .axis path {
+ fill: none;
+ shape-rendering: crispEdges;
+ stroke-width: 1;
+ stroke: #000000;
+}
+
+.axis line {
+ stroke: #C0C0C0;
+ stroke-dasharray: 1,1;
+ opacity: 0.5;
+}
+
+.y.axis text, .x.axis text, .focus text, div.d3Chart .title {
+ font-size: 12px;
+}
+
+.y.axis path {
+ stroke: #000;
+ }
+
+.overlay {
+ fill: none;
+ pointer-events: all;
+ }
+
+.focus circle {
+ fill: none;
+ stroke: steelblue;
+ }
+.focus .fo-table {
+ /* box-shadow: 2px 2px 3px #EEE; */
+}
+
+div.d3Chart {
+ padding: 1em 0;
+ border: 1px solid #C0C0C0;
+}
+
+div.d3Chart .axis path {
+ display: inherit;
+}
+.c3-circle {
+ display: none;
+}
+
+.fo-table {
+ border: 1px solid darkgray;
+ background-color: white;
+ font-size: .85em;
+}
+
+.fo-table td {
+ padding: 4px;
+ border-left: 1px solid darkgray;
+}
+.fo-table tr.detail td {
+ padding: 1px 4px;
+}
+.fo-title {
+ color: white;
+ background-color: darkgray;
+}
+
+.fo-table-legend {
+ width: 8px;
+ height: 8px;
+ border: 1px solid black;
+ margin: 0 4px;
+ display: inline-block;
+}
+
+svg .legend {
+ dominant-baseline: central;
+}
+
+div.chartContainer div.aChart {
+ margin-top: 0.5em;
+}
+
+div#main.qdr div ul.nav li.active a {
+ background-color: #e0e0ff !important;
+ color: #000000;
+}
+
+div#main.qdr .selected, .box.selected {
+ color: #000000;
+ text-shadow: none;
+}
+
+/* the selected node on the list page */
+div.qdrList li.active {
+ background-color: #e0e0ff;
+}
+
+/* the selected row in the name table */
+div#main.qdr div.qdrList div.selected {
+ background-color: #e0e0ff !important;
+}
+
+#dialogChart {
+ height: 200px;
+}
+
+div.qdrCharts p.chartLabels button {
+ float: right;
+}
+
+div.qdrCharts p.chartLabels {
+ padding-right: 1em;;
+ }
+
+p.dialogHeader {
+ text-align: center;
+}
+
+p.dialogHeader input {
+ margin-top: 10px;
+ width: 480px;
+}
+
+.ui-slider-tick {
+ position: absolute;
+ background-color: #666;
+ width: 2px;
+ height: 8px;
+ top: 12px;
+ z-index: -1;
+}
+
+label.rateGroup {
+ float: left;
+}
+
+div.chartOptions div.dlg-slider {
+ float: left;
+ margin-left: 2em;
+ width: 28em;
+ font-size: 14px;
+}
+
+div.chartOptions div.duration {
+ width: 35em !important;
+}
+
+div.chartOptions .slider {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+input[type="radio"] {
+ margin-top: 0 !important;
+}
+
+div.chartOptions legend {
+ font-size: 1.2em;
+ margin-bottom: 10px;
+}
+
+div.chartOptions span.minicolors-swatch {
+ width: 14px;
+ height: 14px;
+}
+
+.minicolors-input {
+ width: 4em;
+ padding: 0 0 0 24px !important;
+}
+
+
+div.colorPicker div:nth-of-type(1), /* first span under div.colorPicker */
+ div.minicolors{
+ float:left;
+ margin-right: 0.5em;
+}
+
+div.chartOptions p.sep {
+ height: 1em;
+}
+
+ul.nav-tabs {
+ border-bottom: 1px solid #ddd !important;
+}
+
+.chartOptions ul.nav-tabs {
+ margin-bottom: 0px !important;
+}
+
+div.tabbable div.tab-content {
+ overflow: visible;
+}
+
+div.tabbable ul.nav-tabs > .active > a {
+ background-color: #f8f8f8;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+}
+
+
+div.tabbable .tab-pane {
+ background-color: #f8f8f8;
+ padding: 12px;
+ border-right: 1px solid #ddd;
+ border-left: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+}
+
+div.tabbable ul.nav-tabs {
+ margin-bottom: 0;
+}
+
+ul.qdrTopoModes {
+ position: relative;
+ top: -10px;
+}
+.overview.section {
+ /* width: 35em; */
+}
+.overview.section .ngGrid {
+ height: 12em !important;
+ min-height: 12em !important;
+}
+
+.overview.routers.section .ngGrid {
+ height: 16em !important;
+ min-height: 16em !important;
+}
+.overview.routers.section {
+ /*width: 15em; */
+ }
+
+.grid-align-value {
+ text-align: right;
+}
+
+.overview .ngRow:hover {
+ background:#e0e0ff;
+}
+
+.treeContainer {
+ width: 250px;
+ float: left;
+}
+
+.treeDetails {
+ margin-left: 260px;
+}
+
+.gridStyle:not(.noHighlight) .ui-grid-row:hover .ui-grid-cell-contents {
+ background-color: #e0e0ff;
+}
+
+.ngCellText {
+ padding: 4px 0 0 4px;
+}
+
+.overview {
+ border-bottom: 1px solid #d4d4d4;
+}
+
+.ui-grid-row.ui-grid-row-selected > [ui-grid-row] > .ui-grid-cell {
+ background-color: #e0e0ff;
+}
+
+.tab-content .tab-pane {
+ background-color: #f8f8f8;
+ padding: 12px;
+ border-right: 1px solid #ddd;
+ border-left: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+}
+
+div.chartOptions ul.nav-tabs > .active > a {
+ background-color: #f8f8f8;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+}
+
+div.chartOptions label:nth-of-type(2) {
+ margin-left: 1em;
+}
+div.chartOptions label {
+ font-weight: normal;
+}
+
+.form-horizontal .control-label {
+ float: left;
+ width: 160px;
+ padding-top: 5px;
+ text-align: right;
+}
+
+.form-horizontal .controls {
+ margin-left: 180px;
+}
+
+.form-horizontal input, {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+
+input[type="text"], input[type="number"], input[type="password"] {
+ background-color: #ffffff;
+ border: 1px solid #cccccc;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
+ -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
+ -o-transition: border linear 0.2s, box-shadow linear 0.2s;
+ transition: border linear 0.2s, box-shadow linear 0.2s;
+}
+
+input[type="text"], input[type="number"], input[type="password"] {
+ display: inline-block;
+ width: 200px;
+ padding: 4px 6px;
+ margin-bottom: 10px;
+ font-size: 14px;
+ line-height: 20px;
+ color: #555555;
+ vertical-align: middle;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.login input[type="checkbox"] {
+ margin-top: 0.75em;
+}
+
+#login-container {
+ width: 18.5em;
+ margin-top: 2em;
+}
+
+div.login.container {
+ width: 550px;
+}
+
+#overtree .fancytree-container {
+ border: 0px;
+}
+
+#overtree span.fancytree-alert-icon.ui-icon-refresh {
+ background-position: -64px -80px;
+}
+#overtree span.fancytree-alert-icon.ui-icon-transfer-e-w {
+ background-position: -112px -80px;
+}
+
+#alerts {
+ position: fixed;
+ right: 0;
+ top: 0;
+ z-index: 100;
+}
+
+.alert-enter,
+.alert-leave,
+.alert-move {
+ -webkit-transition: 1s linear all;
+ -moz-transition: 1s linear all;
+ -o-transition: 1s linear all;
+ transition: 1s linear all;
+ position:relative;
+}
+
+.alert-enter {
+ left:-10px;
+ opacity:0;
+}
+.alert-enter.alert-enter-active {
+ left:0;
+ opacity:1;
+}
+
+.alert-leave {
+ left:0;
+ opacity:1;
+}
+.alert-leave.alert-leave-active {
+ left:-10px;
+ opacity:0;
+}
+
+.alert-move {
+ opacity:0.5;
+}
+.alert-move.alert-move-active {
+ opacity:1;
+}
+
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/4940e63d/console/stand-alone/plugin/css/qdrTopology.css
----------------------------------------------------------------------
diff --git a/console/stand-alone/plugin/css/qdrTopology.css b/console/stand-alone/plugin/css/qdrTopology.css
new file mode 100644
index 0000000..e1cf239
--- /dev/null
+++ b/console/stand-alone/plugin/css/qdrTopology.css
@@ -0,0 +1,498 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+svg {
+ background-color: transparent;
+ cursor: default;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+}
+
+svg:not(.active):not(.ctrl) {
+ cursor: crosshair;
+}
+#end-arrow-selected, #start-arrow-selected {
+ stroke: #00F;
+ fill: #00F;
+}
+
+path.link {
+ fill: none;
+ stroke: #000;
+ stroke-width: 4px;
+ cursor: default;
+}
+
+svg:not(.active):not(.ctrl) path.link {
+ cursor: pointer;
+}
+
+path.link.selected {
+ stroke-dasharray: 10,2;
+ stroke: #00F !important;
+}
+
+
+path.link.highlighted {
+ stroke: #0F0 !important;
+
+}
+
+path.link.temp {
+ opacity: 0.3;
+}
+path.link.temp.over {
+ opacity: 0.8;
+ stroke-dasharray: 10,2;
+}
+
+path.link.dragline {
+ pointer-events: none;
+}
+
+path.link.hidden {
+ stroke-width: 0;
+}
+
+
+circle.node {
+ stroke-width: 1.5px;
+ cursor: pointer;
+ stroke: darkgray;
+ fill: lightgray;
+}
+
+circle.node.reflexive {
+ stroke: #F00 !important;
+ stroke-width: 2.5px;
+}
+circle.node.selected {
+ stroke: #F00 !important;
+ stroke-width: 2px;
+ fill: #e0e0ff !important;
+}
+circle.node.inter-router {
+ fill: #EAEAEA;
+}
+circle.node.normal {
+ fill: #F0F000;
+}
+circle.node.on-demand {
+ fill: #00F000;
+}
+
+circle.node.fixed {
+ stroke-dasharray: 10,2;
+}
+circle.node.temp {
+ stroke: #f80;
+ fill: #f0f0ff;
+}
+
+text {
+ font: 12px sans-serif;
+ pointer-events: none;
+ /*font-family: monospace;*/
+
+}
+
+.tooltipsy
+{
+ padding: 10px;
+/* max-width: 320px;*/
+ color: #303030;
+ background-color: #fcfcfe;
+ border: 1px solid #deca7e;
+ border-radius: 5px;
+}
+
+.tiptable {
+
+}
+.tiptable tr {
+ border-bottom: 1px solid #ccc;
+}
+
+.tiptable tr:last-child {
+ border-bottom: 0px;
+}
+
+.tiptable tr:nth-child(even) {
+ background: #fcfcfe;
+}
+.tiptable tr:nth-child(odd) {
+ background: #FFF
+}
+
+text.id {
+ text-anchor: middle;
+ font-weight: bold;
+}
+
+.row-fluid.tertiary {
+ position: relative;
+ left: 20px;
+}
+
+.row-fluid.tertiary.left {
+ float: left;
+}
+
+.row-fluid.tertiary.panel {
+ width: 410px;
+ height: 100%;
+}
+
+.panel-adjacent {
+ margin-left: 430px;
+}
+
+#topologyForm.selected {
+ border: 1px solid red;
+}
+#topologyForm {
+ border: 1px solid white;
+ padding: 2px;
+ position: relative;
+ top: -8px;
+}
+
+#topologyForm > div {
+ width:396px;
+}
+
+/* globe */
+.land {
+ fill: #999;
+ stroke-opacity: 1;
+}
+
+.graticule {
+ fill: none;
+ stroke: black;
+ stroke-width:.5;
+ opacity:.1;
+}
+
+.labels {
+ font: 18px sans-serif;
+ fill: black;
+ opacity: .85;
+ text-anchor: middle;
+}
+
+.noclicks { pointer-events:none; }
+
+.point { opacity:.6; }
+
+.arcs {
+ opacity:.7;
+ stroke: darkgreen;
+ stroke-width: 3;
+}
+.flyers {
+ stroke-width:1;
+ opacity: 0;
+ stroke: darkred;
+}
+.arc, .flyer {
+ stroke-linejoin: round;
+ fill:none;
+}
+.arc { }
+.arc:hover {
+ stroke: darkred;
+}
+.flyer { }
+.flyer:hover {
+ stroke: darkgreen;
+}
+.arc.inter-router {
+ stroke: darkblue;
+}
+
+#addNodeForm {
+ padding: 1em;
+}
+
+
+li.currentStep {
+ font-weight: bold;
+}
+
+.qdrTopology div.panel {
+ position: absolute;
+}
+/*
+.ui-dialog-titlebar {
+ border: 0;
+ background: transparent;
+}
+*/
+
+.ui-tabs.ui-tabs-vertical {
+ padding: 0;
+ width: 48em;
+}
+.ui-tabs.ui-tabs-vertical .ui-widget-header {
+ border: none;
+}
+.ui-tabs.ui-tabs-vertical .ui-tabs-nav {
+ float: left;
+ width: 10em;
+ background: #CCC;
+ border-radius: 4px 0 0 4px;
+ border-right: 1px solid gray;
+}
+.ui-tabs.ui-tabs-vertical .ui-tabs-nav li {
+ clear: left;
+ width: 100%;
+ margin: 0.1em 0;
+ border: 1px solid gray;
+ border-width: 1px 0 1px 1px;
+ border-radius: 4px 0 0 4px;
+ overflow: hidden;
+ position: relative;
+ right: -2px;
+ z-index: 2;
+}
+.ui-tabs.ui-tabs-vertical .ui-tabs-nav li a {
+ display: block;
+ width: 100%;
+ padding: 0.1em 1em;
+}
+.ui-tabs.ui-tabs-vertical .ui-tabs-nav li a:hover {
+ cursor: pointer;
+}
+.ui-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active {
+ margin-bottom: 0.2em;
+ padding-bottom: 0;
+ border-right: 1px solid white;
+}
+.ui-tabs.ui-tabs-vertical .ui-tabs-nav li:last-child {
+ margin-bottom: 10px;
+}
+.ui-tabs.ui-tabs-vertical .ui-tabs-panel {
+ float: left;
+ width: 34em;
+ border-left: 1px solid gray;
+ border-radius: 0;
+ position: relative;
+ left: -1px;
+}
+
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
+ right: -3px !important;
+}
+
+.ui-tabs li i.ui-icon {
+ display: inline-block;
+}
+.ui-tabs .ui-tabs-panel {
+ /* padding-top: 0 !important; */
+}
+
+.ui-widget-content fieldset {
+ float: left;
+ padding: 0 1em 0 0;
+}
+
+.entity-description {
+ color: #960;
+ font-size: 90%;
+}
+
+.attr-description {
+ padding-top: 1.5em;
+ float: right;
+ width: 17em;
+}
+.attr-annotations {
+ padding-top: 2.5em;
+ clear: both;
+}
+.attr-annotations > span {
+ padding-top: 0.5em;
+ border-top: 1px dashed darkgray;
+ display: block;
+}
+
+.attr-type {
+ color: #990;
+ font-size: 85%;
+}
+.attr-required {
+ color: red;
+ font-size: 85%;
+}
+.attr-unique {
+ color: green;
+ font-size: 85%;
+}
+
+#tabs.nodeEntities {
+ border: 0;
+}
+
+#tabs ul.nodeTabs {
+ background: #fff;
+}
+
+#tabs #Container {
+ border-left: 1px solid #aaa;
+}
+
+#tabs.ui-tabs .ui-tabs-nav li {
+ border-bottom: 1px solid #aaa !important;
+}
+
+.entity-fields {
+ /* height: 400px; */
+ overflow-y: scroll;
+ overflow-x: hidden;
+}
+
+.entity-fields div.boolean label:first-child {
+ float: left;
+ margin-right: 1em;
+}
+.entity-fields div.boolean {
+ padding-bottom: 1em;
+}
+
+.entity-fields label.ng-binding {
+ font-weight: 600;
+ margin-top: 0.5em;
+}
+
+.aggregate {
+ text-align: right;
+}
+
+.aggregate i {
+ float: right;
+ margin: 3px 3px 3px 8px;
+}
+
+.aggregate .hastip {
+ padding: 5px;
+}
+
+.subTip .tipsy-inner {
+ background-color: white;
+ color: black;
+ font-size: 1.3em;
+ border: 1px solid black;
+}
+
+.subTip .tipsy-arrow-n { border-bottom-color: black; }
+.subTip .tipsy-arrow-s { border-top-color: black; }
+.subTip .tipsy-arrow-e { border-left-color: black; }
+.subTip .tipsy-arrow-w { border-right-color: black; }
+
+
+.contextMenu {
+ display:none;
+ position:absolute;
+ left:30px;
+ top:-30px;
+ z-index:999;
+ /* width:300px; */
+}
+.contextMenu ul {
+ width:300px;
+ margin:0;
+ /* padding:10px; */
+ list-style:none;
+ background:#fff;
+ color:#333;
+ font-weight: 600;
+ /* -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; */
+ -moz-box-shadow:5px 5px 5px #ddd; -webkit-box-shadow:5px 5px 5px #999; box-shadow:5px 5px 5px #ddd;
+ border: 1px solid #aaa;
+}
+.contextMenu ul li {
+ padding:5px 10px;
+ /* border-bottom: solid 1px #ccc; */
+}
+.contextMenu ul li:hover {
+ background:#4a90d9; color:#fff;
+}
+.contextMenu ul li:last-child {
+ border:none;
+}
+
+.na {
+ display: none;
+}
+.contextMenu ul li.new {
+ display: block;
+}
+.contextMenu ul li.adding, .contextMenu ul li.adding + li {
+ display: block;
+}
+.contextMenu ul li.force-display {
+ display: block;
+}
+.contextMenu ul li.context-separator {
+ background-color: lightgray;
+ height: 1px;
+ padding: 0;
+}
+
+.ui-tabs.ui-tabs-vertical .ui-tabs-nav li.separated {
+ margin-top: 1em;
+}
+
+#crosssection {
+ display: none;
+ position: absolute;
+ top: 200px;
+ left: 600px;
+}
+
+.node circle {
+/* fill: rgb(31, 119, 180);
+ fill-opacity: .25; */
+ fill: #cfe2f3;
+ fill-opacity: .98;
+ stroke: black;
+ stroke-width: 3px;
+}
+
+.leaf circle {
+ fill: #6fa8dc;
+ fill-opacity: 0.95;
+ stroke-width: 3px;
+}
+
+.leaf circle[title] {
+ font-family: monospace;
+
+}
+
+.tabs-left .nav-tabs {
+ float: left;
+}
+.tabs-left .nav-tabs > li {
+ float: initial;
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org