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: [email protected] For additional commands, e-mail: [email protected]
