diff --git a/example/profiling/bundle.json b/example/profiling/bundle.json index b6090717d2..25c1b10749 100644 --- a/example/profiling/bundle.json +++ b/example/profiling/bundle.json @@ -4,7 +4,11 @@ { "implementation": "WatchIndicator.js", "depends": ["$interval", "$rootScope"] + }, + { + "implementation": "DigestIndicator.js", + "depends": ["$interval", "$rootScope"] } ] } -} \ No newline at end of file +} diff --git a/example/profiling/src/DigestIndicator.js b/example/profiling/src/DigestIndicator.js new file mode 100644 index 0000000000..02fbc7a08b --- /dev/null +++ b/example/profiling/src/DigestIndicator.js @@ -0,0 +1,77 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is 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. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +/*global define*/ + +define( + [], + function () { + "use strict"; + + /** + * Displays the number of digests that have occurred since the + * indicator was first instantiated. + * @constructor + * @param $interval Angular's $interval + * @implements {Indicator} + */ + function DigestIndicator($interval, $rootScope) { + var digests = 0, + displayed = 0, + start = Date.now(); + + function update() { + var secs = (Date.now() - start) / 1000; + displayed = Math.round(digests / secs); + } + + function increment() { + digests += 1; + } + + $rootScope.$watch(increment); + + // Update state every second + $interval(update, 1000); + + // Provide initial state, too + update(); + + return { + getGlyph: function () { + return "."; + }, + getGlyphClass: function () { + return undefined; + }, + getText: function () { + return displayed + " digests/sec"; + }, + getDescription: function () { + return ""; + } + }; + } + + return DigestIndicator; + + } +); diff --git a/platform/commonUI/browse/res/templates/browse-object.html b/platform/commonUI/browse/res/templates/browse-object.html index ebe53b368f..3bd6138da6 100644 --- a/platform/commonUI/browse/res/templates/browse-object.html +++ b/platform/commonUI/browse/res/templates/browse-object.html @@ -42,9 +42,8 @@ -
- - -
+ + diff --git a/platform/commonUI/edit/res/templates/edit-object.html b/platform/commonUI/edit/res/templates/edit-object.html index c2089781a4..71dc233a82 100644 --- a/platform/commonUI/edit/res/templates/edit-object.html +++ b/platform/commonUI/edit/res/templates/edit-object.html @@ -30,12 +30,11 @@ structure="toolbar.structure" ng-model="toolbar.state"> -
- - -
+ +
3 { - // $knobCr: $sliderKnobW / 2; - //} - $timeRangeSliderLROffset: 130px + $sliderKnobW; - $r1H: 33px; - $r2H: 20px; - $r3H: 20px; + $knobHOffset: 0px; + $knobM: ($sliderKnobW + $knobHOffset) * -1; + $rangeValPad: $interiorMargin; + $rangeValOffset: $sliderKnobW; + //$knobCr: $sliderKnobW; + $timeRangeSliderLROffset: 130px + $sliderKnobW + $rangeValOffset; + $r1H: nth($ueTimeControlH,1); + $r2H: nth($ueTimeControlH,2); + $r3H: nth($ueTimeControlH,3); + + //height: $r1H + $r2H + $r3H + ($interiorMargin * 2); .l-time-range-inputs-holder, .l-time-range-slider { @@ -30,6 +43,7 @@ .l-time-range-ticks { //@include test(red, 0.1); @include absPosDefault(0, visible); + left: $timeRangeSliderLROffset; right: $timeRangeSliderLROffset; } .l-time-range-inputs-holder { @@ -54,12 +68,6 @@ } } - .l-time-range-slider, - .l-time-range-ticks { - left: $timeRangeSliderLROffset; right: $timeRangeSliderLROffset; - - } - .l-time-range-slider-holder { //@include test(green); height: $r2H; bottom: $r3H + ($interiorMarginSm * 1); @@ -67,6 +75,51 @@ @include box-shadow(none); background: none; border: none; + .range { + .toi-line { + $myC: $timeControllerToiLineColor; + $myW: 8px; + @include transform(translateX(50%)); + position: absolute; + //@include test(); + top: 0; right: 0; bottom: 0px; left: auto; + width: $myW; + height: auto; + z-index: 2; + &:before, + &:after { + background-color: $myC; + content: ""; + position: absolute; + } + &:before { + // Vert line + top: 0; right: auto; bottom: -10px; left: floor($myW/2) - 1; + width: 2px; + //top: 0; right: 3px; bottom: 0; left: 3px; + } + &:after { + // Circle element + @include border-radius($myW); + @include transform(translateY(-50%)); + top: 50%; right: 0; bottom: auto; left: 0; + width: auto; + height: $myW; + } + } + &:hover .toi-line { + @include toiLineHovEffects; + } + } + } + &:not(:active) { + //@include test(#ff00cc); + .knob, + .range { + @include transition-property(left, right); + @include transition-duration(500ms); + @include transition-timing-function(ease-in-out); + } } } @@ -99,10 +152,11 @@ } .knob { - width: $sliderKnobW; + z-index: 2; .range-value { //@include test($sliderColorRange); @include trans-prop-nice-fade(.25s); + padding: 0 $rangeValOffset; position: absolute; height: $r2H; line-height: $r2H; @@ -112,7 +166,7 @@ color: $sliderColorKnobHov; } &.knob-l { - @include border-bottom-left-radius($knobCr); + //@include border-bottom-left-radius($knobCr); // MOVED TO _CONTROLS.SCSS margin-left: $knobM; .range-value { text-align: right; @@ -120,11 +174,14 @@ } } &.knob-r { - @include border-bottom-right-radius($knobCr); + //@include border-bottom-right-radius($knobCr); margin-right: $knobM; .range-value { left: $rangeValOffset; } + &:hover + .range-holder .range .toi-line { + @include toiLineHovEffects; + } } } } diff --git a/platform/commonUI/general/res/sass/user-environ/_layout.scss b/platform/commonUI/general/res/sass/user-environ/_layout.scss index 025a87e627..bdfe716be3 100644 --- a/platform/commonUI/general/res/sass/user-environ/_layout.scss +++ b/platform/commonUI/general/res/sass/user-environ/_layout.scss @@ -30,21 +30,21 @@ } .holder-all { - $myM: 0; // $interiorMarginSm; - top: $myM; - right: $myM; - bottom: $myM; - left: $myM; + $myM: 0; // $interiorMarginSm; + top: $myM; + right: $myM; + bottom: $myM; + left: $myM; } .browse-area, .edit-area, .editor { - position: absolute; + position: absolute; } .editor { - @include border-radius($basicCr * 1.5); + @include border-radius($basicCr * 1.5); } .contents { @@ -68,8 +68,8 @@ margin-right: $interiorMargin; } &.abs { - text-wrap: none; - white-space: nowrap; + text-wrap: none; + white-space: nowrap; &.left, .left { width: 45%; @@ -95,51 +95,51 @@ } .user-environ { - .browse-area, - .edit-area, - .editor { - top: $bodyMargin + $ueTopBarH + ($interiorMargin); - right: $bodyMargin; - bottom: $ueFooterH + $bodyMargin; - left: $bodyMargin; - } + .browse-area, + .edit-area, + .editor { + top: $bodyMargin + $ueTopBarH + ($interiorMargin); + right: $bodyMargin; + bottom: $ueFooterH + $bodyMargin; + left: $bodyMargin; + } - .browse-area, - .edit-area { - > .contents { - left: 0; - right: 0; - } - } + .browse-area, + .edit-area { + > .contents { + left: 0; + right: 0; + } + } - .edit-area { - $tbH: $btnToolbarH + $interiorMargin; - top: $bodyMargin + $ueTopBarEditH + ($interiorMargin); - .tool-bar { - bottom: auto; - height: $tbH; - line-height: $btnToolbarH; - } - .work-area { - top: $tbH + $interiorMargin * 2; - } - } + .edit-area { + $tbH: $btnToolbarH + $interiorMargin; + top: $bodyMargin + $ueTopBarEditH + ($interiorMargin); + .tool-bar { + bottom: auto; + height: $tbH; + line-height: $btnToolbarH; + } + .work-area { + top: $tbH + $interiorMargin * 2; + } + } - .ue-bottom-bar { + .ue-bottom-bar { //@include absPosDefault($bodyMargin); - @include absPosDefault(0);// New status bar design - top: auto; - height: $ueFooterH; - .status-holder { - //right: $ueAppLogoW + $bodyMargin; New status bar design - z-index: 1; - } - .app-logo { - left: auto; - width: $ueAppLogoW; - z-index: 2; - } - } + @include absPosDefault(0); // New status bar design + top: auto; + height: $ueFooterH; + .status-holder { + //right: $ueAppLogoW + $bodyMargin; New status bar design + z-index: 1; + } + .app-logo { + left: auto; + width: $ueAppLogoW; + z-index: 2; + } + } } .cols { @@ -225,78 +225,80 @@ } } - - .pane { position: absolute; &.treeview.left { - .create-btn-holder { - bottom: auto; top: 0; - height: $ueTopBarH; - .wrapper.menu-element { - position: absolute; - bottom: $interiorMargin; - } - } - .search-holder { - top: $ueTopBarH + $interiorMarginLg; - } - .tree-holder { - overflow: auto; - top: $ueTopBarH + $interiorMarginLg + $treeSearchInputBarH + $interiorMargin; - } + .create-btn-holder { + bottom: auto; + top: 0; + height: $ueTopBarH; + .wrapper.menu-element { + position: absolute; + bottom: $interiorMargin; + } + } + .search-holder { + top: $ueTopBarH + $interiorMarginLg; + } + .tree-holder { + overflow: auto; + top: $ueTopBarH + $interiorMarginLg + $treeSearchInputBarH + $interiorMargin; + } } &.items { .object-browse-bar { - .left.abs, - .right.abs { - top: auto; - } - //.left.abs { - // @include tmpBorder(green); - //} - //.right.abs { - // @include tmpBorder(red); - //} - } - .object-holder { - top: $ueTopBarH + $interiorMarginLg; + .left.abs, + .right.abs { + top: auto; + } } } - .object-holder { - overflow: auto; - } } .split-layout { - &.horizontal { - // Slides up and down - >.pane { -// @include test(); - margin-top: $interiorMargin; - &:first-child { - margin-top: 0; - } - } - } - &.vertical { - // Slides left and right - >.pane { -// @include test(); - margin-left: $interiorMargin; - >.holder { - left: 0; - right: 0; - } - &:first-child { - margin-left: 0; - .holder { - right: $interiorMarginSm; - } - } - } + &.horizontal { + // Slides up and down + > .pane { + // @include test(); + margin-top: $interiorMargin; + &:first-child { + margin-top: 0; + } + } + } + &.vertical { + // Slides left and right + > .pane { + // @include test(); + margin-left: $interiorMargin; + > .holder { + left: 0; + right: 0; + } + &:first-child { + margin-left: 0; + .holder { + right: $interiorMarginSm; + } + } + } - } + } +} + +.object-holder { + overflow: hidden; // Contained objects need to handle their own overflow now + top: $ueTopBarH + $interiorMarginLg; + > ng-include { + @include absPosDefault(0, auto); + } + &.l-controls-visible { + &.l-time-controller-visible { + > ng-include { + bottom: nth($ueTimeControlH,1) + nth($ueTimeControlH,2) +nth($ueTimeControlH,3) + ($interiorMargin * 3); + } + } + } } .object-browse-bar .s-btn, @@ -304,10 +306,10 @@ .top-bar .s-menu-btn, .tool-bar .s-btn, .tool-bar .s-menu-btn { - $h: $btnToolbarH; - height: $h; - line-height: $h; - vertical-align: top; + $h: $btnToolbarH; + height: $h; + line-height: $h; + vertical-align: top; } .object-browse-bar, @@ -318,33 +320,29 @@ } .object-browse-bar { - //@include test(blue); - @include absPosDefault(0, visible); - @include box-sizing(border-box); - height: $ueTopBarH; - line-height: $ueTopBarH; - white-space: nowrap; + //@include test(blue); + @include absPosDefault(0, visible); + @include box-sizing(border-box); + height: $ueTopBarH; + line-height: $ueTopBarH; + white-space: nowrap; - .left { - padding-right: $interiorMarginLg * 2; - .l-back { - display: inline-block; - float: left; - margin-right: $interiorMarginLg; - } - } + .left { + padding-right: $interiorMarginLg * 2; + .l-back { + display: inline-block; + float: left; + margin-right: $interiorMarginLg; + } + } } .l-flex { - @include webkitVal('display', 'flex'); - @include webkitProp('flex-flow', 'row nowrap'); - .left { - //@include test(red); - @include webkitProp(flex, '1 1 0'); - padding-right: $interiorMarginLg; - } -} - -.vscroll { - overflow-y: auto; -} + @include webkitVal('display', 'flex'); + @include webkitProp('flex-flow', 'row nowrap'); + .left { + //@include test(red); + @include webkitProp(flex, '1 1 0'); + padding-right: $interiorMarginLg; + } +} \ No newline at end of file diff --git a/platform/commonUI/general/res/templates/controls/time-controller.html b/platform/commonUI/general/res/templates/controls/time-controller.html index dce85a3bf0..61a4feedb8 100644 --- a/platform/commonUI/general/res/templates/controls/time-controller.html +++ b/platform/commonUI/general/res/templates/controls/time-controller.html @@ -48,7 +48,7 @@ {{endOuterText}} -
+
-
-
-
-
{{endInnerText}}
+
+
+
+
+
diff --git a/platform/commonUI/general/src/controllers/DateTimePickerController.js b/platform/commonUI/general/src/controllers/DateTimePickerController.js index 6d4734e767..ac07d77553 100644 --- a/platform/commonUI/general/src/controllers/DateTimePickerController.js +++ b/platform/commonUI/general/src/controllers/DateTimePickerController.js @@ -139,8 +139,8 @@ define( } $scope.isInCurrentMonth = function (cell) { - return cell.month === month; - } + return cell.month === month; + }; $scope.isSelected = function (cell) { var date = $scope.date || {}; diff --git a/platform/commonUI/themes/espresso/res/css/theme-espresso.css b/platform/commonUI/themes/espresso/res/css/theme-espresso.css index d90027c9aa..4950c5b6c2 100644 --- a/platform/commonUI/themes/espresso/res/css/theme-espresso.css +++ b/platform/commonUI/themes/espresso/res/css/theme-espresso.css @@ -20,7 +20,7 @@ * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ -/* line 5, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 5, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, @@ -41,38 +41,38 @@ time, mark, audio, video { font-size: 100%; vertical-align: baseline; } -/* line 22, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 22, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ html { line-height: 1; } -/* line 24, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 24, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ ol, ul { list-style: none; } -/* line 26, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 26, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ table { border-collapse: collapse; border-spacing: 0; } -/* line 28, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 28, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ caption, th, td { text-align: left; font-weight: normal; vertical-align: middle; } -/* line 30, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 30, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ q, blockquote { quotes: none; } - /* line 103, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ + /* line 103, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ q:before, q:after, blockquote:before, blockquote:after { content: ""; content: none; } -/* line 32, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 32, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ a img { border: none; } -/* line 116, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 116, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } @@ -404,21 +404,29 @@ mct-container { text-align: center; } /* line 128, ../../../../general/res/sass/_global.scss */ +.scrolling { + overflow: auto; } + +/* line 132, ../../../../general/res/sass/_global.scss */ +.vscroll { + overflow-y: auto; } + +/* line 136, ../../../../general/res/sass/_global.scss */ .no-margin { margin: 0; } -/* line 132, ../../../../general/res/sass/_global.scss */ +/* line 140, ../../../../general/res/sass/_global.scss */ .ds { -moz-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; -webkit-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; } -/* line 136, ../../../../general/res/sass/_global.scss */ +/* line 144, ../../../../general/res/sass/_global.scss */ .hide, .hidden { display: none !important; } -/* line 141, ../../../../general/res/sass/_global.scss */ +/* line 149, ../../../../general/res/sass/_global.scss */ .sep { color: rgba(255, 255, 255, 0.2); } @@ -1321,7 +1329,7 @@ mct-container { -o-transition: background, 0.25s; -webkit-transition: background, 0.25s; transition: background, 0.25s; - text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; } + text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; } /* line 272, ../../../../general/res/sass/_mixins.scss */ .s-btn.major .icon, .major.s-menu-btn .icon { color: #fff; } @@ -1360,7 +1368,7 @@ mct-container { -o-transition: background, 0.25s; -webkit-transition: background, 0.25s; transition: background, 0.25s; - text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; } + text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; } /* line 272, ../../../../general/res/sass/_mixins.scss */ .s-btn:not(.major) .icon, .s-menu-btn:not(.major) .icon { color: #0099cc; } @@ -1402,7 +1410,7 @@ mct-container { -o-transition: background, 0.25s; -webkit-transition: background, 0.25s; transition: background, 0.25s; - text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; } + text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; } /* line 272, ../../../../general/res/sass/_mixins.scss */ .s-btn.pause-play.paused .icon, .pause-play.paused.s-menu-btn .icon { color: #fff; } @@ -1840,7 +1848,7 @@ label.checkbox.custom { opacity: 1; } } /******************************************************** SLIDERS */ -/* line 300, ../../../../general/res/sass/controls/_controls.scss */ +/* line 298, ../../../../general/res/sass/controls/_controls.scss */ .slider .slot { width: auto; position: absolute; @@ -1848,7 +1856,7 @@ label.checkbox.custom { right: 0; bottom: 0; left: 0; } -/* line 312, ../../../../general/res/sass/controls/_controls.scss */ +/* line 308, ../../../../general/res/sass/controls/_controls.scss */ .slider .knob { -moz-transition-property: visibility, opacity, background-color, border-color; -o-transition-property: visibility, opacity, background-color, border-color; @@ -1862,19 +1870,36 @@ label.checkbox.custom { -o-transition-timing-function: ease-in-out; -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; - background-color: rgba(0, 153, 204, 0.3); - cursor: ew-resize; + background-color: rgba(0, 153, 204, 0.6); position: absolute; height: 100%; - width: 12px; + width: 10px; top: 0; auto: 0; bottom: auto; left: auto; } - /* line 317, ../../../../general/res/sass/controls/_controls.scss */ + /* line 313, ../../../../general/res/sass/controls/_controls.scss */ .slider .knob:hover { background-color: #0099cc; } -/* line 335, ../../../../general/res/sass/controls/_controls.scss */ +/* line 324, ../../../../general/res/sass/controls/_controls.scss */ +.slider .knob-l { + -moz-border-radius-topleft: 10px; + -webkit-border-top-left-radius: 10px; + border-top-left-radius: 10px; + -moz-border-radius-bottomleft: 10px; + -webkit-border-bottom-left-radius: 10px; + border-bottom-left-radius: 10px; + cursor: w-resize; } +/* line 328, ../../../../general/res/sass/controls/_controls.scss */ +.slider .knob-r { + -moz-border-radius-topright: 10px; + -webkit-border-top-right-radius: 10px; + border-top-right-radius: 10px; + -moz-border-radius-bottomright: 10px; + -webkit-border-bottom-right-radius: 10px; + border-bottom-right-radius: 10px; + cursor: e-resize; } +/* line 332, ../../../../general/res/sass/controls/_controls.scss */ .slider .range { -moz-transition-property: visibility, opacity, background-color, border-color; -o-transition-property: visibility, opacity, background-color, border-color; @@ -1897,12 +1922,12 @@ label.checkbox.custom { left: auto; height: auto; width: auto; } - /* line 346, ../../../../general/res/sass/controls/_controls.scss */ + /* line 343, ../../../../general/res/sass/controls/_controls.scss */ .slider .range:hover { background-color: rgba(0, 153, 204, 0.5); } /******************************************************** DATETIME PICKER */ -/* line 353, ../../../../general/res/sass/controls/_controls.scss */ +/* line 350, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker { -moz-user-select: -moz-none; -ms-user-select: none; @@ -1911,59 +1936,66 @@ label.checkbox.custom { font-size: 0.8rem; padding: 10px !important; width: 230px; } - /* line 359, ../../../../general/res/sass/controls/_controls.scss */ + /* line 356, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager { font-size: 0.8rem; height: 15px; margin-bottom: 5px; position: relative; } - /* line 371, ../../../../general/res/sass/controls/_controls.scss */ + /* line 368, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager { width: 20px; } - /* line 374, ../../../../general/res/sass/controls/_controls.scss */ + /* line 371, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager.prev { right: auto; } - /* line 376, ../../../../general/res/sass/controls/_controls.scss */ + /* line 373, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager.prev:before { content: "\3c"; } - /* line 380, ../../../../general/res/sass/controls/_controls.scss */ + /* line 377, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager.next { left: auto; text-align: right; } - /* line 383, ../../../../general/res/sass/controls/_controls.scss */ + /* line 380, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager.next:before { content: "\3e"; } - /* line 388, ../../../../general/res/sass/controls/_controls.scss */ + /* line 385, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .val { text-align: center; left: 25px; right: 25px; } + /* line 391, ../../../../general/res/sass/controls/_controls.scss */ + .l-datetime-picker .l-calendar, + .l-datetime-picker .l-time-selects { + border-top: 1px solid rgba(153, 153, 153, 0.1); } + /* line 395, ../../../../general/res/sass/controls/_controls.scss */ + .l-datetime-picker .l-time-selects { + line-height: 22px; } /******************************************************** CALENDAR */ -/* line 399, ../../../../general/res/sass/controls/_controls.scss */ +/* line 403, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row { display: -webkit-flex; display: flex; -webkit-flex-flow: row nowrap; flex-flow: row nowrap; margin-top: 1px; } - /* line 403, ../../../../general/res/sass/controls/_controls.scss */ + /* line 407, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row:first-child { margin-top: 0; } - /* line 406, ../../../../general/res/sass/controls/_controls.scss */ + /* line 410, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row li { -webkit-flex: 1 0; flex: 1 0; margin-left: 1px; padding: 5px; text-align: center; } - /* line 412, ../../../../general/res/sass/controls/_controls.scss */ + /* line 416, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row li:first-child { margin-left: 0; } - /* line 416, ../../../../general/res/sass/controls/_controls.scss */ + /* line 420, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-header li { color: #b3b3b3; } - /* line 419, ../../../../general/res/sass/controls/_controls.scss */ + /* line 423, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li { -moz-transition-property: background-color; -o-transition-property: background-color; @@ -1978,31 +2010,31 @@ label.checkbox.custom { -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; cursor: pointer; } - /* line 422, ../../../../general/res/sass/controls/_controls.scss */ + /* line 426, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li.in-month { background-color: #616161; } - /* line 425, ../../../../general/res/sass/controls/_controls.scss */ + /* line 429, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li .sub { color: #b3b3b3; font-size: 0.8em; } - /* line 429, ../../../../general/res/sass/controls/_controls.scss */ + /* line 433, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li.selected { background: #006080; color: #cccccc; } - /* line 432, ../../../../general/res/sass/controls/_controls.scss */ + /* line 436, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li.selected .sub { color: inherit; } - /* line 436, ../../../../general/res/sass/controls/_controls.scss */ + /* line 440, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li:hover { background-color: #0099cc; color: #fff; } - /* line 439, ../../../../general/res/sass/controls/_controls.scss */ + /* line 443, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li:hover .sub { color: inherit; } /******************************************************** BROWSER ELEMENTS */ @media screen and (min-device-width: 800px) and (min-device-height: 1025px), screen and (min-device-width: 1025px) and (min-device-height: 800px) { - /* line 450, ../../../../general/res/sass/controls/_controls.scss */ + /* line 454, ../../../../general/res/sass/controls/_controls.scss */ ::-webkit-scrollbar { -moz-border-radius: 2px; -webkit-border-radius: 2px; @@ -2017,7 +2049,7 @@ label.checkbox.custom { height: 10px; width: 10px; } - /* line 459, ../../../../general/res/sass/controls/_controls.scss */ + /* line 463, ../../../../general/res/sass/controls/_controls.scss */ ::-webkit-scrollbar-thumb { background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzU5NTk1OSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzRkNGQ0ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; @@ -2031,7 +2063,7 @@ label.checkbox.custom { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } - /* line 468, ../../../../general/res/sass/controls/_controls.scss */ + /* line 472, ../../../../general/res/sass/controls/_controls.scss */ ::-webkit-scrollbar-thumb:hover { background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzVlNWU1ZSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzUyNTI1MiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; @@ -2040,7 +2072,7 @@ label.checkbox.custom { background-image: -webkit-linear-gradient(#5e5e5e, #525252 20px); background-image: linear-gradient(#5e5e5e, #525252 20px); } - /* line 473, ../../../../general/res/sass/controls/_controls.scss */ + /* line 477, ../../../../general/res/sass/controls/_controls.scss */ ::-webkit-scrollbar-corner { background: rgba(0, 0, 0, 0.4); } } /***************************************************************************** @@ -2346,130 +2378,206 @@ label.checkbox.custom { right: 0; width: auto; } -/* line 1, ../../../../general/res/sass/controls/_time-controller.scss */ -.l-time-controller { - min-width: 400px; } - /* line 9, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder, - .l-time-controller .l-time-range-slider { - font-size: 0.8em; } - /* line 14, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder, - .l-time-controller .l-time-range-slider-holder, - .l-time-controller .l-time-range-ticks-holder { - overflow: visible; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: auto; - height: auto; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - top: auto; } - /* line 23, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-slider, - .l-time-controller .l-time-range-ticks { - overflow: visible; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: auto; - height: auto; } - /* line 29, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder { - height: 33px; - bottom: 46px; - padding-top: 5px; - border-top: 1px solid rgba(153, 153, 153, 0.1); } - /* line 34, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder .type-icon { - font-size: 120%; - vertical-align: middle; } - /* line 38, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder .l-time-range-input, - .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem { - margin-right: 5px; } - /* line 41, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder .l-time-range-input .lbl, - .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .lbl { - color: #666666; } - /* line 44, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder .l-time-range-input .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .l-datetime-picker .l-month-year-pager .icon.pager, .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-input .icon.pager, - .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .ui-symbol.icon, - .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .l-datetime-picker .l-month-year-pager .icon.pager, - .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .icon.pager { - font-size: 11px; - width: 11px; } - /* line 51, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-slider, - .l-time-controller .l-time-range-ticks { - left: 125px; - right: 125px; } - /* line 57, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-slider-holder { - height: 20px; - bottom: 23px; } - /* line 60, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-slider-holder .range-holder { - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background: none; - border: none; } - /* line 67, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder { - height: 20px; } - /* line 69, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks { - border-top: 1px solid rgba(255, 255, 255, 0.2); } - /* line 71, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick { - background-color: rgba(255, 255, 255, 0.2); - border: none; - height: 5px; - width: 1px; - margin-left: -1px; - position: absolute; } - /* line 78, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick:first-child { - margin-left: 0; } - /* line 81, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick .l-time-range-tick-label { - transform: translateX(-50%); - -webkit-transform: translateX(-50%); - color: #666666; - display: inline-block; - font-size: 0.7em; - position: absolute; - top: 8px; - white-space: nowrap; - z-index: 2; } - /* line 95, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .knob { - width: 5px; } - /* line 97, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .knob .range-value { +/* line 27, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-inputs-holder, +.l-time-controller .l-time-range-slider { + font-size: 0.8em; } +/* line 32, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-inputs-holder, +.l-time-controller .l-time-range-slider-holder, +.l-time-controller .l-time-range-ticks-holder { + overflow: visible; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: auto; + height: auto; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-width: 400px; + top: auto; } +/* line 42, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-slider, +.l-time-controller .l-time-range-ticks { + overflow: visible; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: auto; + height: auto; + left: 150px; + right: 150px; } +/* line 49, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-inputs-holder { + height: 33px; + bottom: 46px; + padding-top: 5px; + border-top: 1px solid rgba(153, 153, 153, 0.1); } + /* line 54, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-inputs-holder .type-icon { + font-size: 120%; + vertical-align: middle; } + /* line 58, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-inputs-holder .l-time-range-input, + .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem { + margin-right: 5px; } + /* line 61, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-inputs-holder .l-time-range-input .lbl, + .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .lbl { + color: #666666; } + /* line 64, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-inputs-holder .l-time-range-input .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .l-datetime-picker .l-month-year-pager .icon.pager, .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-input .icon.pager, + .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .ui-symbol.icon, + .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .l-datetime-picker .l-month-year-pager .icon.pager, + .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .icon.pager { + font-size: 11px; + width: 11px; } +/* line 71, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-slider-holder { + height: 20px; + bottom: 23px; } + /* line 74, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder { + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + background: none; + border: none; } + /* line 79, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line { + -moz-transform: translateX(50%); + -ms-transform: translateX(50%); + -webkit-transform: translateX(50%); + transform: translateX(50%); position: absolute; - height: 20px; - line-height: 20px; - white-space: nowrap; } - /* line 103, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .knob:hover .range-value { - color: #0099cc; } - /* line 108, ../../../../general/res/sass/controls/_time-controller.scss */ + top: 0; + right: 0; + bottom: 0px; + left: auto; + width: 8px; + height: auto; + z-index: 2; } + /* line 89, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:before, .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:after { + background-color: #00c2ff; + content: ""; + position: absolute; } + /* line 95, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:before { + top: 0; + right: auto; + bottom: -10px; + left: 3px; + width: 2px; } + /* line 101, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:after { + -moz-border-radius: 8px; + -webkit-border-radius: 8px; + border-radius: 8px; + -moz-transform: translateY(-50%); + -ms-transform: translateY(-50%); + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + top: 50%; + right: 0; + bottom: auto; + left: 0; + width: auto; + height: 8px; } + /* line 3, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range:hover .toi-line:before, .l-time-controller .l-time-range-slider-holder .range-holder .range:hover .toi-line:after { + background-color: #fff; } + /* line 117, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder:not(:active) .knob, + .l-time-controller .l-time-range-slider-holder:not(:active) .range { + -moz-transition-property: left, right; + -o-transition-property: left, right; + -webkit-transition-property: left, right; + transition-property: left, right; + -moz-transition-duration: 500ms; + -o-transition-duration: 500ms; + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -moz-transition-timing-function: ease-in-out; + -o-transition-timing-function: ease-in-out; + -webkit-transition-timing-function: ease-in-out; + transition-timing-function: ease-in-out; } +/* line 126, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-ticks-holder { + height: 20px; } + /* line 128, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks { + border-top: 1px solid rgba(255, 255, 255, 0.2); } + /* line 130, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick { + background-color: rgba(255, 255, 255, 0.2); + border: none; + height: 5px; + width: 1px; + margin-left: -1px; + position: absolute; } + /* line 137, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick:first-child { + margin-left: 0; } + /* line 140, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick .l-time-range-tick-label { + transform: translateX(-50%); + -webkit-transform: translateX(-50%); + color: #666666; + display: inline-block; + font-size: 0.7em; + position: absolute; + top: 8px; + white-space: nowrap; + z-index: 2; } +/* line 154, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .knob { + z-index: 2; } + /* line 156, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob .range-value { + -moz-transition-property: visibility, opacity, background-color, border-color; + -o-transition-property: visibility, opacity, background-color, border-color; + -webkit-transition-property: visibility, opacity, background-color, border-color; + transition-property: visibility, opacity, background-color, border-color; + -moz-transition-duration: 0.25s; + -o-transition-duration: 0.25s; + -webkit-transition-duration: 0.25s; + transition-duration: 0.25s; + -moz-transition-timing-function: ease-in-out; + -o-transition-timing-function: ease-in-out; + -webkit-transition-timing-function: ease-in-out; + transition-timing-function: ease-in-out; + padding: 0 10px; + position: absolute; + height: 20px; + line-height: 20px; + white-space: nowrap; } + /* line 165, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob:hover .range-value { + color: #0099cc; } + /* line 168, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob.knob-l { + margin-left: -10px; } + /* line 171, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .knob.knob-l .range-value { text-align: right; right: 10px; } - /* line 115, ../../../../general/res/sass/controls/_time-controller.scss */ + /* line 176, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob.knob-r { + margin-right: -10px; } + /* line 179, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .knob.knob-r .range-value { left: 10px; } + /* line 3, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob.knob-r:hover + .range-holder .range .toi-line:before, .l-time-controller .knob.knob-r:hover + .range-holder .range .toi-line:after { + background-color: #fff; } -/* line 126, ../../../../general/res/sass/controls/_time-controller.scss */ +/* line 193, ../../../../general/res/sass/controls/_time-controller.scss */ .s-time-range-val { -moz-border-radius: 3px; -webkit-border-radius: 3px; @@ -2769,11 +2877,12 @@ textarea { -o-transition: background, 0.25s; -webkit-transition: background, 0.25s; transition: background, 0.25s; - text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; - margin: 0 0 2px 2px; + text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; + margin: 0 0 2px 0; padding: 0 5px; overflow: hidden; - position: relative; } + position: relative; + line-height: 22px; } /* line 272, ../../../../general/res/sass/_mixins.scss */ .select .icon { color: #0099cc; } @@ -2784,7 +2893,7 @@ textarea { /* line 279, ../../../../general/res/sass/_mixins.scss */ .select:not(.disabled):hover > .icon { color: #33ccff; } } - /* line 28, ../../../../general/res/sass/forms/_selects.scss */ + /* line 31, ../../../../general/res/sass/forms/_selects.scss */ .select select { -moz-appearance: none; -webkit-appearance: none; @@ -2797,10 +2906,10 @@ textarea { border: none !important; padding: 4px 25px 2px 0px; width: 120%; } - /* line 37, ../../../../general/res/sass/forms/_selects.scss */ + /* line 40, ../../../../general/res/sass/forms/_selects.scss */ .select select option { margin: 5px 0; } - /* line 41, ../../../../general/res/sass/forms/_selects.scss */ + /* line 44, ../../../../general/res/sass/forms/_selects.scss */ .select:after { text-shadow: none; content: '\76'; @@ -2896,26 +3005,44 @@ textarea { * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ -/* line 23, ../../../../general/res/sass/forms/_datetime.scss */ -.complex.datetime span { - display: inline-block; - margin-right: 5px; } -/* line 36, ../../../../general/res/sass/forms/_datetime.scss */ -.complex.datetime .fields { - margin-top: 3px 0; - padding: 3px 0; } -/* line 41, ../../../../general/res/sass/forms/_datetime.scss */ -.complex.datetime .date { - width: 85px; } - /* line 44, ../../../../general/res/sass/forms/_datetime.scss */ - .complex.datetime .date input { - width: 80px; } -/* line 50, ../../../../general/res/sass/forms/_datetime.scss */ -.complex.datetime .time.sm { - width: 45px; } - /* line 53, ../../../../general/res/sass/forms/_datetime.scss */ - .complex.datetime .time.sm input { - width: 40px; } +/* line 29, ../../../../general/res/sass/forms/_datetime.scss */ +.complex.datetime { + /* + .field-hints, + .fields { + } + + + .field-hints { + + } + */ } + /* line 30, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime span { + display: inline-block; + margin-right: 5px; } + /* line 46, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .fields { + margin-top: 3px 0; + padding: 3px 0; } + /* line 51, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .date { + width: 85px; } + /* line 24, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .date input[type="text"] { + width: 80px; } + /* line 55, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .time.md { + width: 65px; } + /* line 24, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .time.md input[type="text"] { + width: 60px; } + /* line 59, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .time.sm { + width: 45px; } + /* line 24, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .time.sm input[type="text"] { + width: 40px; } /***************************************************************************** * Open MCT Web, Copyright (c) 2014-2015, United States Government @@ -3319,26 +3446,26 @@ span.req { min-height: 50px; height: 30%; } -/* line 230, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 228, ../../../../general/res/sass/user-environ/_layout.scss */ .pane { position: absolute; } - /* line 233, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 231, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.treeview.left .create-btn-holder { bottom: auto; top: 0; height: 24px; } - /* line 236, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 235, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.treeview.left .create-btn-holder .wrapper.menu-element { position: absolute; bottom: 5px; } - /* line 241, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 240, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.treeview.left .search-holder { top: 34px; } - /* line 244, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 243, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.treeview.left .tree-holder { overflow: auto; top: 64px; } - /* line 251, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 250, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.items .object-browse-bar .left.abs, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.pager, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.pager, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.val, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.val, .pane.items .object-browse-bar .s-menu-btn span.left.l-click-area, .s-menu-btn .pane.items .object-browse-bar span.left.l-click-area, @@ -3350,34 +3477,46 @@ span.req { .pane.items .object-browse-bar .s-menu-btn span.right.l-click-area, .s-menu-btn .pane.items .object-browse-bar span.right.l-click-area { top: auto; } - /* line 262, ../../../../general/res/sass/user-environ/_layout.scss */ - .pane.items .object-holder { - top: 34px; } - /* line 266, ../../../../general/res/sass/user-environ/_layout.scss */ - .pane .object-holder { - overflow: auto; } -/* line 274, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 261, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.horizontal > .pane { margin-top: 5px; } - /* line 277, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 264, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.horizontal > .pane:first-child { margin-top: 0; } -/* line 284, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 271, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.vertical > .pane { margin-left: 5px; } - /* line 287, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 274, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.vertical > .pane > .holder { left: 0; right: 0; } - /* line 291, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 278, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.vertical > .pane:first-child { margin-left: 0; } - /* line 293, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 280, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.vertical > .pane:first-child .holder { right: 3px; } -/* line 302, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 289, ../../../../general/res/sass/user-environ/_layout.scss */ +.object-holder { + overflow: hidden; + top: 34px; } + /* line 292, ../../../../general/res/sass/user-environ/_layout.scss */ + .object-holder > ng-include { + overflow: auto; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: auto; + height: auto; } + /* line 297, ../../../../general/res/sass/user-environ/_layout.scss */ + .object-holder.l-controls-visible.l-time-controller-visible > ng-include { + bottom: 88px; } + +/* line 304, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar .s-btn, .object-browse-bar .s-menu-btn, .top-bar .buttons-main .s-btn, .top-bar .buttons-main .s-menu-btn, @@ -3389,12 +3528,12 @@ span.req { line-height: 25px; vertical-align: top; } -/* line 315, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 317, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar .view-switcher, .top-bar .view-switcher { margin-right: 20px; } -/* line 320, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 322, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar { overflow: visible; position: absolute; @@ -3410,31 +3549,27 @@ span.req { height: 24px; line-height: 24px; white-space: nowrap; } - /* line 328, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 330, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar .left { padding-right: 20px; } - /* line 330, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 332, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar .left .l-back { display: inline-block; float: left; margin-right: 10px; } -/* line 338, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 340, ../../../../general/res/sass/user-environ/_layout.scss */ .l-flex { display: flex; display: -webkit-flex; flex-flow: row nowrap; -webkit-flex-flow: row nowrap; } - /* line 341, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 343, ../../../../general/res/sass/user-environ/_layout.scss */ .l-flex .left { flex: 1 1 0; -webkit-flex: 1 1 0; padding-right: 10px; } -/* line 348, ../../../../general/res/sass/user-environ/_layout.scss */ -.vscroll { - overflow-y: auto; } - /***************************************************************************** * Open MCT Web, Copyright (c) 2014-2015, United States Government * as represented by the Administrator of the National Aeronautics and Space @@ -4093,7 +4228,7 @@ span.req { -o-transition: background, 0.25s; -webkit-transition: background, 0.25s; transition: background, 0.25s; - text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; } + text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; } /* line 272, ../../../../general/res/sass/_mixins.scss */ .overlay .bottom-bar .s-btn:not(.major) .icon, .overlay .bottom-bar .s-menu-btn:not(.major) .icon { color: #fff; } @@ -5399,9 +5534,6 @@ table { .l-view-section.fixed { font-size: 0.8em; } /* line 13, ../../../../general/res/sass/_views.scss */ - .l-view-section.scrolling { - overflow: auto; } - /* line 16, ../../../../general/res/sass/_views.scss */ .l-view-section .controls, .l-view-section label, .l-view-section .inline-block { @@ -5464,7 +5596,7 @@ table { -o-transition: background, 0.25s; -webkit-transition: background, 0.25s; transition: background, 0.25s; - text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; + text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; box-sizing: border-box; cursor: pointer; float: left; @@ -5613,7 +5745,7 @@ table { -o-transition: background, 0.25s; -webkit-transition: background, 0.25s; transition: background, 0.25s; - text-shadow: rgba(0, 0, 0, 0.3) 0 1px 1px; + text-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px; color: #80dfff; } /* line 272, ../../../../general/res/sass/_mixins.scss */ .items-holder .item.grid-item.selected .icon { diff --git a/platform/commonUI/themes/espresso/res/sass/_constants.scss b/platform/commonUI/themes/espresso/res/sass/_constants.scss index 5d6d33ab5c..e6106d049c 100644 --- a/platform/commonUI/themes/espresso/res/sass/_constants.scss +++ b/platform/commonUI/themes/espresso/res/sass/_constants.scss @@ -31,7 +31,9 @@ $sliderColorKnob: rgba($sliderColorBase, 0.6); $sliderColorKnobHov: $sliderColorBase; $sliderColorRangeValHovBg: rgba($sliderColorBase, 0.1); $sliderColorRangeValHovFg: $colorKeyFg; -$sliderKnobW: 4px; +$sliderKnobW: nth($ueTimeControlH,2)/2; +$timeControllerToiLineColor: #00c2ff; +$timeControllerToiLineColorHov: #fff; // General Colors $colorAlt1: #ffc700; diff --git a/platform/commonUI/themes/snow/res/css/theme-snow.css b/platform/commonUI/themes/snow/res/css/theme-snow.css index 171b6b0ce5..2650b2b90b 100644 --- a/platform/commonUI/themes/snow/res/css/theme-snow.css +++ b/platform/commonUI/themes/snow/res/css/theme-snow.css @@ -20,7 +20,7 @@ * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ -/* line 5, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 5, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, @@ -41,38 +41,38 @@ time, mark, audio, video { font-size: 100%; vertical-align: baseline; } -/* line 22, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 22, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ html { line-height: 1; } -/* line 24, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 24, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ ol, ul { list-style: none; } -/* line 26, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 26, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ table { border-collapse: collapse; border-spacing: 0; } -/* line 28, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 28, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ caption, th, td { text-align: left; font-weight: normal; vertical-align: middle; } -/* line 30, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 30, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ q, blockquote { quotes: none; } - /* line 103, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ + /* line 103, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ q:before, q:after, blockquote:before, blockquote:after { content: ""; content: none; } -/* line 32, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 32, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ a img { border: none; } -/* line 116, ../../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ +/* line 116, ../../../../../../../../../../Library/Ruby/Gems/2.0.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss */ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } @@ -404,21 +404,29 @@ mct-container { text-align: center; } /* line 128, ../../../../general/res/sass/_global.scss */ +.scrolling { + overflow: auto; } + +/* line 132, ../../../../general/res/sass/_global.scss */ +.vscroll { + overflow-y: auto; } + +/* line 136, ../../../../general/res/sass/_global.scss */ .no-margin { margin: 0; } -/* line 132, ../../../../general/res/sass/_global.scss */ +/* line 140, ../../../../general/res/sass/_global.scss */ .ds { -moz-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; -webkit-box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; box-shadow: rgba(0, 0, 0, 0.7) 0 4px 10px 2px; } -/* line 136, ../../../../general/res/sass/_global.scss */ +/* line 144, ../../../../general/res/sass/_global.scss */ .hide, .hidden { display: none !important; } -/* line 141, ../../../../general/res/sass/_global.scss */ +/* line 149, ../../../../general/res/sass/_global.scss */ .sep { color: rgba(255, 255, 255, 0.2); } @@ -1810,7 +1818,7 @@ label.checkbox.custom { opacity: 1; } } /******************************************************** SLIDERS */ -/* line 300, ../../../../general/res/sass/controls/_controls.scss */ +/* line 298, ../../../../general/res/sass/controls/_controls.scss */ .slider .slot { width: auto; position: absolute; @@ -1818,7 +1826,7 @@ label.checkbox.custom { right: 0; bottom: 0; left: 0; } -/* line 312, ../../../../general/res/sass/controls/_controls.scss */ +/* line 308, ../../../../general/res/sass/controls/_controls.scss */ .slider .knob { -moz-transition-property: visibility, opacity, background-color, border-color; -o-transition-property: visibility, opacity, background-color, border-color; @@ -1832,19 +1840,36 @@ label.checkbox.custom { -o-transition-timing-function: ease-in-out; -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; - background-color: rgba(0, 153, 204, 0.3); - cursor: ew-resize; + background-color: rgba(0, 153, 204, 0.5); position: absolute; height: 100%; - width: 12px; + width: 10px; top: 0; auto: 0; bottom: auto; left: auto; } - /* line 317, ../../../../general/res/sass/controls/_controls.scss */ + /* line 313, ../../../../general/res/sass/controls/_controls.scss */ .slider .knob:hover { - background-color: #0099cc; } -/* line 335, ../../../../general/res/sass/controls/_controls.scss */ + background-color: rgba(0, 153, 204, 0.7); } +/* line 324, ../../../../general/res/sass/controls/_controls.scss */ +.slider .knob-l { + -moz-border-radius-topleft: 10px; + -webkit-border-top-left-radius: 10px; + border-top-left-radius: 10px; + -moz-border-radius-bottomleft: 10px; + -webkit-border-bottom-left-radius: 10px; + border-bottom-left-radius: 10px; + cursor: w-resize; } +/* line 328, ../../../../general/res/sass/controls/_controls.scss */ +.slider .knob-r { + -moz-border-radius-topright: 10px; + -webkit-border-top-right-radius: 10px; + border-top-right-radius: 10px; + -moz-border-radius-bottomright: 10px; + -webkit-border-bottom-right-radius: 10px; + border-bottom-right-radius: 10px; + cursor: e-resize; } +/* line 332, ../../../../general/res/sass/controls/_controls.scss */ .slider .range { -moz-transition-property: visibility, opacity, background-color, border-color; -o-transition-property: visibility, opacity, background-color, border-color; @@ -1858,7 +1883,7 @@ label.checkbox.custom { -o-transition-timing-function: ease-in-out; -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; - background-color: rgba(0, 153, 204, 0.3); + background-color: rgba(0, 153, 204, 0.2); cursor: ew-resize; position: absolute; top: 0; @@ -1867,12 +1892,12 @@ label.checkbox.custom { left: auto; height: auto; width: auto; } - /* line 346, ../../../../general/res/sass/controls/_controls.scss */ + /* line 343, ../../../../general/res/sass/controls/_controls.scss */ .slider .range:hover { - background-color: rgba(0, 153, 204, 0.5); } + background-color: rgba(0, 153, 204, 0.4); } /******************************************************** DATETIME PICKER */ -/* line 353, ../../../../general/res/sass/controls/_controls.scss */ +/* line 350, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker { -moz-user-select: -moz-none; -ms-user-select: none; @@ -1881,59 +1906,66 @@ label.checkbox.custom { font-size: 0.8rem; padding: 10px !important; width: 230px; } - /* line 359, ../../../../general/res/sass/controls/_controls.scss */ + /* line 356, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager { font-size: 0.8rem; height: 15px; margin-bottom: 5px; position: relative; } - /* line 371, ../../../../general/res/sass/controls/_controls.scss */ + /* line 368, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager { width: 20px; } - /* line 374, ../../../../general/res/sass/controls/_controls.scss */ + /* line 371, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager.prev { right: auto; } - /* line 376, ../../../../general/res/sass/controls/_controls.scss */ + /* line 373, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager.prev:before { content: "\3c"; } - /* line 380, ../../../../general/res/sass/controls/_controls.scss */ + /* line 377, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager.next { left: auto; text-align: right; } - /* line 383, ../../../../general/res/sass/controls/_controls.scss */ + /* line 380, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .pager.next:before { content: "\3e"; } - /* line 388, ../../../../general/res/sass/controls/_controls.scss */ + /* line 385, ../../../../general/res/sass/controls/_controls.scss */ .l-datetime-picker .l-month-year-pager .val { text-align: center; left: 25px; right: 25px; } + /* line 391, ../../../../general/res/sass/controls/_controls.scss */ + .l-datetime-picker .l-calendar, + .l-datetime-picker .l-time-selects { + border-top: 1px solid rgba(102, 102, 102, 0.2); } + /* line 395, ../../../../general/res/sass/controls/_controls.scss */ + .l-datetime-picker .l-time-selects { + line-height: 22px; } /******************************************************** CALENDAR */ -/* line 399, ../../../../general/res/sass/controls/_controls.scss */ +/* line 403, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row { display: -webkit-flex; display: flex; -webkit-flex-flow: row nowrap; flex-flow: row nowrap; margin-top: 1px; } - /* line 403, ../../../../general/res/sass/controls/_controls.scss */ + /* line 407, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row:first-child { margin-top: 0; } - /* line 406, ../../../../general/res/sass/controls/_controls.scss */ + /* line 410, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row li { -webkit-flex: 1 0; flex: 1 0; margin-left: 1px; padding: 5px; text-align: center; } - /* line 412, ../../../../general/res/sass/controls/_controls.scss */ + /* line 416, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row li:first-child { margin-left: 0; } - /* line 416, ../../../../general/res/sass/controls/_controls.scss */ + /* line 420, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-header li { color: #999999; } - /* line 419, ../../../../general/res/sass/controls/_controls.scss */ + /* line 423, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li { -moz-transition-property: background-color; -o-transition-property: background-color; @@ -1948,31 +1980,31 @@ label.checkbox.custom { -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; cursor: pointer; } - /* line 422, ../../../../general/res/sass/controls/_controls.scss */ + /* line 426, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li.in-month { background-color: #f2f2f2; } - /* line 425, ../../../../general/res/sass/controls/_controls.scss */ + /* line 429, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li .sub { color: #999999; font-size: 0.8em; } - /* line 429, ../../../../general/res/sass/controls/_controls.scss */ + /* line 433, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li.selected { background: #1ac6ff; color: #fcfcfc; } - /* line 432, ../../../../general/res/sass/controls/_controls.scss */ + /* line 436, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li.selected .sub { color: inherit; } - /* line 436, ../../../../general/res/sass/controls/_controls.scss */ + /* line 440, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li:hover { background-color: #0099cc; color: #fff; } - /* line 439, ../../../../general/res/sass/controls/_controls.scss */ + /* line 443, ../../../../general/res/sass/controls/_controls.scss */ .l-calendar ul.l-cal-row.l-body li:hover .sub { color: inherit; } /******************************************************** BROWSER ELEMENTS */ @media screen and (min-device-width: 800px) and (min-device-height: 1025px), screen and (min-device-width: 1025px) and (min-device-height: 800px) { - /* line 450, ../../../../general/res/sass/controls/_controls.scss */ + /* line 454, ../../../../general/res/sass/controls/_controls.scss */ ::-webkit-scrollbar { -moz-border-radius: 2px; -webkit-border-radius: 2px; @@ -1987,7 +2019,7 @@ label.checkbox.custom { height: 10px; width: 10px; } - /* line 459, ../../../../general/res/sass/controls/_controls.scss */ + /* line 463, ../../../../general/res/sass/controls/_controls.scss */ ::-webkit-scrollbar-thumb { background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzg5ODk4OSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdkN2Q3ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; @@ -2001,7 +2033,7 @@ label.checkbox.custom { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } - /* line 468, ../../../../general/res/sass/controls/_controls.scss */ + /* line 472, ../../../../general/res/sass/controls/_controls.scss */ ::-webkit-scrollbar-thumb:hover { background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwYWNlNiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzAwOTljYyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; @@ -2010,7 +2042,7 @@ label.checkbox.custom { background-image: -webkit-linear-gradient(#00ace6, #0099cc 20px); background-image: linear-gradient(#00ace6, #0099cc 20px); } - /* line 473, ../../../../general/res/sass/controls/_controls.scss */ + /* line 477, ../../../../general/res/sass/controls/_controls.scss */ ::-webkit-scrollbar-corner { background: rgba(0, 0, 0, 0.1); } } /***************************************************************************** @@ -2310,130 +2342,206 @@ label.checkbox.custom { right: 0; width: auto; } -/* line 1, ../../../../general/res/sass/controls/_time-controller.scss */ -.l-time-controller { - min-width: 400px; } - /* line 9, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder, - .l-time-controller .l-time-range-slider { - font-size: 0.8em; } - /* line 14, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder, - .l-time-controller .l-time-range-slider-holder, - .l-time-controller .l-time-range-ticks-holder { - overflow: visible; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: auto; - height: auto; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - top: auto; } - /* line 23, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-slider, - .l-time-controller .l-time-range-ticks { - overflow: visible; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: auto; - height: auto; } - /* line 29, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder { - height: 33px; - bottom: 46px; - padding-top: 5px; - border-top: 1px solid rgba(102, 102, 102, 0.2); } - /* line 34, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder .type-icon { - font-size: 120%; - vertical-align: middle; } - /* line 38, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder .l-time-range-input, - .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem { - margin-right: 5px; } - /* line 41, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder .l-time-range-input .lbl, - .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .lbl { - color: #999999; } - /* line 44, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-inputs-holder .l-time-range-input .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .l-datetime-picker .l-month-year-pager .icon.pager, .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-input .icon.pager, - .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .ui-symbol.icon, - .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .l-datetime-picker .l-month-year-pager .icon.pager, - .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .icon.pager { - font-size: 11px; - width: 11px; } - /* line 51, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-slider, - .l-time-controller .l-time-range-ticks { - left: 125px; - right: 125px; } - /* line 57, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-slider-holder { - height: 20px; - bottom: 23px; } - /* line 60, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-slider-holder .range-holder { - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background: none; - border: none; } - /* line 67, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder { - height: 20px; } - /* line 69, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks { - border-top: 1px solid rgba(0, 0, 0, 0.2); } - /* line 71, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick { - background-color: rgba(0, 0, 0, 0.2); - border: none; - height: 5px; - width: 1px; - margin-left: -1px; - position: absolute; } - /* line 78, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick:first-child { - margin-left: 0; } - /* line 81, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick .l-time-range-tick-label { - transform: translateX(-50%); - -webkit-transform: translateX(-50%); - color: #999999; - display: inline-block; - font-size: 0.7em; - position: absolute; - top: 8px; - white-space: nowrap; - z-index: 2; } - /* line 95, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .knob { - width: 5px; } - /* line 97, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .knob .range-value { +/* line 27, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-inputs-holder, +.l-time-controller .l-time-range-slider { + font-size: 0.8em; } +/* line 32, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-inputs-holder, +.l-time-controller .l-time-range-slider-holder, +.l-time-controller .l-time-range-ticks-holder { + overflow: visible; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: auto; + height: auto; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-width: 400px; + top: auto; } +/* line 42, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-slider, +.l-time-controller .l-time-range-ticks { + overflow: visible; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: auto; + height: auto; + left: 150px; + right: 150px; } +/* line 49, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-inputs-holder { + height: 33px; + bottom: 46px; + padding-top: 5px; + border-top: 1px solid rgba(102, 102, 102, 0.2); } + /* line 54, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-inputs-holder .type-icon { + font-size: 120%; + vertical-align: middle; } + /* line 58, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-inputs-holder .l-time-range-input, + .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem { + margin-right: 5px; } + /* line 61, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-inputs-holder .l-time-range-input .lbl, + .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .lbl { + color: #999999; } + /* line 64, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-inputs-holder .l-time-range-input .ui-symbol.icon, .l-time-controller .l-time-range-inputs-holder .l-time-range-input .l-datetime-picker .l-month-year-pager .icon.pager, .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-input .icon.pager, + .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .ui-symbol.icon, + .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .l-datetime-picker .l-month-year-pager .icon.pager, + .l-datetime-picker .l-month-year-pager .l-time-controller .l-time-range-inputs-holder .l-time-range-inputs-elem .icon.pager { + font-size: 11px; + width: 11px; } +/* line 71, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-slider-holder { + height: 20px; + bottom: 23px; } + /* line 74, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder { + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + background: none; + border: none; } + /* line 79, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line { + -moz-transform: translateX(50%); + -ms-transform: translateX(50%); + -webkit-transform: translateX(50%); + transform: translateX(50%); position: absolute; - height: 20px; - line-height: 20px; - white-space: nowrap; } - /* line 103, ../../../../general/res/sass/controls/_time-controller.scss */ - .l-time-controller .knob:hover .range-value { - color: #0099cc; } - /* line 108, ../../../../general/res/sass/controls/_time-controller.scss */ + top: 0; + right: 0; + bottom: 0px; + left: auto; + width: 8px; + height: auto; + z-index: 2; } + /* line 89, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:before, .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:after { + background-color: #666; + content: ""; + position: absolute; } + /* line 95, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:before { + top: 0; + right: auto; + bottom: -10px; + left: 3px; + width: 2px; } + /* line 101, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range .toi-line:after { + -moz-border-radius: 8px; + -webkit-border-radius: 8px; + border-radius: 8px; + -moz-transform: translateY(-50%); + -ms-transform: translateY(-50%); + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + top: 50%; + right: 0; + bottom: auto; + left: 0; + width: auto; + height: 8px; } + /* line 3, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder .range-holder .range:hover .toi-line:before, .l-time-controller .l-time-range-slider-holder .range-holder .range:hover .toi-line:after { + background-color: #0052b5; } + /* line 117, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-slider-holder:not(:active) .knob, + .l-time-controller .l-time-range-slider-holder:not(:active) .range { + -moz-transition-property: left, right; + -o-transition-property: left, right; + -webkit-transition-property: left, right; + transition-property: left, right; + -moz-transition-duration: 500ms; + -o-transition-duration: 500ms; + -webkit-transition-duration: 500ms; + transition-duration: 500ms; + -moz-transition-timing-function: ease-in-out; + -o-transition-timing-function: ease-in-out; + -webkit-transition-timing-function: ease-in-out; + transition-timing-function: ease-in-out; } +/* line 126, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .l-time-range-ticks-holder { + height: 20px; } + /* line 128, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks { + border-top: 1px solid rgba(0, 0, 0, 0.2); } + /* line 130, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick { + background-color: rgba(0, 0, 0, 0.2); + border: none; + height: 5px; + width: 1px; + margin-left: -1px; + position: absolute; } + /* line 137, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick:first-child { + margin-left: 0; } + /* line 140, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .l-time-range-ticks-holder .l-time-range-ticks .tick .l-time-range-tick-label { + transform: translateX(-50%); + -webkit-transform: translateX(-50%); + color: #999999; + display: inline-block; + font-size: 0.7em; + position: absolute; + top: 8px; + white-space: nowrap; + z-index: 2; } +/* line 154, ../../../../general/res/sass/controls/_time-controller.scss */ +.l-time-controller .knob { + z-index: 2; } + /* line 156, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob .range-value { + -moz-transition-property: visibility, opacity, background-color, border-color; + -o-transition-property: visibility, opacity, background-color, border-color; + -webkit-transition-property: visibility, opacity, background-color, border-color; + transition-property: visibility, opacity, background-color, border-color; + -moz-transition-duration: 0.25s; + -o-transition-duration: 0.25s; + -webkit-transition-duration: 0.25s; + transition-duration: 0.25s; + -moz-transition-timing-function: ease-in-out; + -o-transition-timing-function: ease-in-out; + -webkit-transition-timing-function: ease-in-out; + transition-timing-function: ease-in-out; + padding: 0 10px; + position: absolute; + height: 20px; + line-height: 20px; + white-space: nowrap; } + /* line 165, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob:hover .range-value { + color: rgba(0, 153, 204, 0.7); } + /* line 168, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob.knob-l { + margin-left: -10px; } + /* line 171, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .knob.knob-l .range-value { text-align: right; right: 10px; } - /* line 115, ../../../../general/res/sass/controls/_time-controller.scss */ + /* line 176, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob.knob-r { + margin-right: -10px; } + /* line 179, ../../../../general/res/sass/controls/_time-controller.scss */ .l-time-controller .knob.knob-r .range-value { left: 10px; } + /* line 3, ../../../../general/res/sass/controls/_time-controller.scss */ + .l-time-controller .knob.knob-r:hover + .range-holder .range .toi-line:before, .l-time-controller .knob.knob-r:hover + .range-holder .range .toi-line:after { + background-color: #0052b5; } -/* line 126, ../../../../general/res/sass/controls/_time-controller.scss */ +/* line 193, ../../../../general/res/sass/controls/_time-controller.scss */ .s-time-range-val { -moz-border-radius: 4px; -webkit-border-radius: 4px; @@ -2725,14 +2833,14 @@ textarea { -webkit-transition: background, 0.25s; transition: background, 0.25s; text-shadow: none; - margin: 0 0 2px 2px; padding: 0 5px; overflow: hidden; - position: relative; } + position: relative; + line-height: 22px; } /* line 272, ../../../../general/res/sass/_mixins.scss */ .select .icon { color: #eee; } - /* line 28, ../../../../general/res/sass/forms/_selects.scss */ + /* line 31, ../../../../general/res/sass/forms/_selects.scss */ .select select { -moz-appearance: none; -webkit-appearance: none; @@ -2745,10 +2853,10 @@ textarea { border: none !important; padding: 4px 25px 2px 0px; width: 120%; } - /* line 37, ../../../../general/res/sass/forms/_selects.scss */ + /* line 40, ../../../../general/res/sass/forms/_selects.scss */ .select select option { margin: 5px 0; } - /* line 41, ../../../../general/res/sass/forms/_selects.scss */ + /* line 44, ../../../../general/res/sass/forms/_selects.scss */ .select:after { text-shadow: none; content: '\76'; @@ -2844,26 +2952,44 @@ textarea { * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ -/* line 23, ../../../../general/res/sass/forms/_datetime.scss */ -.complex.datetime span { - display: inline-block; - margin-right: 5px; } -/* line 36, ../../../../general/res/sass/forms/_datetime.scss */ -.complex.datetime .fields { - margin-top: 3px 0; - padding: 3px 0; } -/* line 41, ../../../../general/res/sass/forms/_datetime.scss */ -.complex.datetime .date { - width: 85px; } - /* line 44, ../../../../general/res/sass/forms/_datetime.scss */ - .complex.datetime .date input { - width: 80px; } -/* line 50, ../../../../general/res/sass/forms/_datetime.scss */ -.complex.datetime .time.sm { - width: 45px; } - /* line 53, ../../../../general/res/sass/forms/_datetime.scss */ - .complex.datetime .time.sm input { - width: 40px; } +/* line 29, ../../../../general/res/sass/forms/_datetime.scss */ +.complex.datetime { + /* + .field-hints, + .fields { + } + + + .field-hints { + + } + */ } + /* line 30, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime span { + display: inline-block; + margin-right: 5px; } + /* line 46, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .fields { + margin-top: 3px 0; + padding: 3px 0; } + /* line 51, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .date { + width: 85px; } + /* line 24, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .date input[type="text"] { + width: 80px; } + /* line 55, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .time.md { + width: 65px; } + /* line 24, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .time.md input[type="text"] { + width: 60px; } + /* line 59, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .time.sm { + width: 45px; } + /* line 24, ../../../../general/res/sass/forms/_datetime.scss */ + .complex.datetime .time.sm input[type="text"] { + width: 40px; } /***************************************************************************** * Open MCT Web, Copyright (c) 2014-2015, United States Government @@ -3267,26 +3393,26 @@ span.req { min-height: 50px; height: 30%; } -/* line 230, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 228, ../../../../general/res/sass/user-environ/_layout.scss */ .pane { position: absolute; } - /* line 233, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 231, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.treeview.left .create-btn-holder { bottom: auto; top: 0; height: 24px; } - /* line 236, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 235, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.treeview.left .create-btn-holder .wrapper.menu-element { position: absolute; bottom: 5px; } - /* line 241, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 240, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.treeview.left .search-holder { top: 34px; } - /* line 244, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 243, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.treeview.left .tree-holder { overflow: auto; top: 64px; } - /* line 251, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 250, ../../../../general/res/sass/user-environ/_layout.scss */ .pane.items .object-browse-bar .left.abs, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.pager, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.pager, .pane.items .object-browse-bar .l-datetime-picker .l-month-year-pager .left.val, .l-datetime-picker .l-month-year-pager .pane.items .object-browse-bar .left.val, .pane.items .object-browse-bar .s-menu-btn span.left.l-click-area, .s-menu-btn .pane.items .object-browse-bar span.left.l-click-area, @@ -3298,34 +3424,46 @@ span.req { .pane.items .object-browse-bar .s-menu-btn span.right.l-click-area, .s-menu-btn .pane.items .object-browse-bar span.right.l-click-area { top: auto; } - /* line 262, ../../../../general/res/sass/user-environ/_layout.scss */ - .pane.items .object-holder { - top: 34px; } - /* line 266, ../../../../general/res/sass/user-environ/_layout.scss */ - .pane .object-holder { - overflow: auto; } -/* line 274, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 261, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.horizontal > .pane { margin-top: 5px; } - /* line 277, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 264, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.horizontal > .pane:first-child { margin-top: 0; } -/* line 284, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 271, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.vertical > .pane { margin-left: 5px; } - /* line 287, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 274, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.vertical > .pane > .holder { left: 0; right: 0; } - /* line 291, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 278, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.vertical > .pane:first-child { margin-left: 0; } - /* line 293, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 280, ../../../../general/res/sass/user-environ/_layout.scss */ .split-layout.vertical > .pane:first-child .holder { right: 3px; } -/* line 302, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 289, ../../../../general/res/sass/user-environ/_layout.scss */ +.object-holder { + overflow: hidden; + top: 34px; } + /* line 292, ../../../../general/res/sass/user-environ/_layout.scss */ + .object-holder > ng-include { + overflow: auto; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: auto; + height: auto; } + /* line 297, ../../../../general/res/sass/user-environ/_layout.scss */ + .object-holder.l-controls-visible.l-time-controller-visible > ng-include { + bottom: 88px; } + +/* line 304, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar .s-btn, .object-browse-bar .s-menu-btn, .top-bar .buttons-main .s-btn, .top-bar .buttons-main .s-menu-btn, @@ -3337,12 +3475,12 @@ span.req { line-height: 25px; vertical-align: top; } -/* line 315, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 317, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar .view-switcher, .top-bar .view-switcher { margin-right: 20px; } -/* line 320, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 322, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar { overflow: visible; position: absolute; @@ -3358,31 +3496,27 @@ span.req { height: 24px; line-height: 24px; white-space: nowrap; } - /* line 328, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 330, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar .left { padding-right: 20px; } - /* line 330, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 332, ../../../../general/res/sass/user-environ/_layout.scss */ .object-browse-bar .left .l-back { display: inline-block; float: left; margin-right: 10px; } -/* line 338, ../../../../general/res/sass/user-environ/_layout.scss */ +/* line 340, ../../../../general/res/sass/user-environ/_layout.scss */ .l-flex { display: flex; display: -webkit-flex; flex-flow: row nowrap; -webkit-flex-flow: row nowrap; } - /* line 341, ../../../../general/res/sass/user-environ/_layout.scss */ + /* line 343, ../../../../general/res/sass/user-environ/_layout.scss */ .l-flex .left { flex: 1 1 0; -webkit-flex: 1 1 0; padding-right: 10px; } -/* line 348, ../../../../general/res/sass/user-environ/_layout.scss */ -.vscroll { - overflow-y: auto; } - /***************************************************************************** * Open MCT Web, Copyright (c) 2014-2015, United States Government * as represented by the Administrator of the National Aeronautics and Space @@ -5328,9 +5462,6 @@ table { .l-view-section.fixed { font-size: 0.8em; } /* line 13, ../../../../general/res/sass/_views.scss */ - .l-view-section.scrolling { - overflow: auto; } - /* line 16, ../../../../general/res/sass/_views.scss */ .l-view-section .controls, .l-view-section label, .l-view-section .inline-block { diff --git a/platform/commonUI/themes/snow/res/sass/_constants.scss b/platform/commonUI/themes/snow/res/sass/_constants.scss index fc08201622..e24d0d8b5a 100644 --- a/platform/commonUI/themes/snow/res/sass/_constants.scss +++ b/platform/commonUI/themes/snow/res/sass/_constants.scss @@ -25,13 +25,15 @@ $contrastInvokeMenuPercent: 40%; $shdwBtns: none; $sliderColorBase: $colorKey; $sliderColorRangeHolder: rgba(black, 0.07); -$sliderColorRange: rgba($sliderColorBase, 0.3); -$sliderColorRangeHov: rgba($sliderColorBase, 0.5); -$sliderColorKnob: rgba($sliderColorBase, 0.6); -$sliderColorKnobHov: $sliderColorBase; +$sliderColorRange: rgba($sliderColorBase, 0.2); +$sliderColorRangeHov: rgba($sliderColorBase, 0.4); +$sliderColorKnob: rgba($sliderColorBase, 0.5); +$sliderColorKnobHov: rgba($sliderColorBase, 0.7); $sliderColorRangeValHovBg: $sliderColorRange; //rgba($sliderColorBase, 0.1); $sliderColorRangeValHovFg: $colorBodyFg; -$sliderKnobW: 4px; +$sliderKnobW: nth($ueTimeControlH,2)/2; +$timeControllerToiLineColor: $colorBodyFg; +$timeControllerToiLineColorHov: #0052b5; // General Colors $colorAlt1: #ff6600; diff --git a/platform/core/src/capabilities/MutationCapability.js b/platform/core/src/capabilities/MutationCapability.js index b9f49ca969..1f08abda6b 100644 --- a/platform/core/src/capabilities/MutationCapability.js +++ b/platform/core/src/capabilities/MutationCapability.js @@ -29,7 +29,8 @@ define( function () { "use strict"; - var TOPIC_PREFIX = "mutation:"; + var GENERAL_TOPIC = "mutation", + TOPIC_PREFIX = "mutation:"; // Utility function to overwrite a destination object // with the contents of a source object. @@ -78,7 +79,11 @@ define( * @implements {Capability} */ function MutationCapability(topic, now, domainObject) { - this.mutationTopic = topic(TOPIC_PREFIX + domainObject.getId()); + this.generalMutationTopic = + topic(GENERAL_TOPIC); + this.specificMutationTopic = + topic(TOPIC_PREFIX + domainObject.getId()); + this.now = now; this.domainObject = domainObject; } @@ -115,11 +120,17 @@ define( // mutator function has a temporary copy to work with. var domainObject = this.domainObject, now = this.now, - t = this.mutationTopic, + generalTopic = this.generalMutationTopic, + specificTopic = this.specificMutationTopic, model = domainObject.getModel(), clone = JSON.parse(JSON.stringify(model)), useTimestamp = arguments.length > 1; + function notifyListeners(model) { + generalTopic.notify(domainObject); + specificTopic.notify(model); + } + // Function to handle copying values to the actual function handleMutation(mutationResult) { // If mutation result was undefined, just use @@ -136,7 +147,7 @@ define( copyValues(model, result); } model.modified = useTimestamp ? timestamp : now(); - t.notify(model); + notifyListeners(model); } // Report the result of the mutation @@ -158,7 +169,7 @@ define( * @memberof platform/core.MutationCapability# */ MutationCapability.prototype.listen = function (listener) { - return this.mutationTopic.listen(listener); + return this.specificMutationTopic.listen(listener); }; /** diff --git a/platform/core/src/services/Throttle.js b/platform/core/src/services/Throttle.js index 60444ad6c4..4b1ad32530 100644 --- a/platform/core/src/services/Throttle.js +++ b/platform/core/src/services/Throttle.js @@ -61,7 +61,7 @@ define( * @memberof platform/core.Throttle# */ return function (fn, delay, apply) { - var promise, // Promise for the result of throttled function + var promise, args = []; function invoke() { diff --git a/platform/features/conductor/src/ConductorRepresenter.js b/platform/features/conductor/src/ConductorRepresenter.js index 7af2ab5c90..bce7f8841e 100644 --- a/platform/features/conductor/src/ConductorRepresenter.js +++ b/platform/features/conductor/src/ConductorRepresenter.js @@ -28,13 +28,8 @@ define( var CONDUCTOR_HEIGHT = "100px", TEMPLATE = [ - '
', - "", - "", - '
' + "", + "" ].join(''), THROTTLE_MS = 200, GLOBAL_SHOWING = false; @@ -166,8 +161,7 @@ define( this.conductorElement = this.$compile(TEMPLATE)(this.conductorScope()); this.element.after(this.conductorElement[0]); - this.element.addClass('abs'); - this.element.css('bottom', CONDUCTOR_HEIGHT); + this.element.addClass('l-controls-visible l-time-controller-visible'); GLOBAL_SHOWING = true; } }; diff --git a/platform/features/layout/res/templates/layout.html b/platform/features/layout/res/templates/layout.html index ca3a359dba..1811f35236 100644 --- a/platform/features/layout/res/templates/layout.html +++ b/platform/features/layout/res/templates/layout.html @@ -19,7 +19,7 @@ this source code distribution or the Licensing information page available at runtime from the About dialog for additional information. --> -
-
+
diff --git a/platform/search/bundle.json b/platform/search/bundle.json index 7ea1536556..67dc058ed9 100644 --- a/platform/search/bundle.json +++ b/platform/search/bundle.json @@ -45,7 +45,15 @@ "provides": "searchService", "type": "provider", "implementation": "services/GenericSearchProvider.js", - "depends": [ "$q", "$timeout", "objectService", "workerService", "GENERIC_SEARCH_ROOTS" ] + "depends": [ + "$q", + "$log", + "throttle", + "objectService", + "workerService", + "topic", + "GENERIC_SEARCH_ROOTS" + ] }, { "provides": "searchService", @@ -61,4 +69,4 @@ } ] } -} \ No newline at end of file +} diff --git a/platform/search/src/services/GenericSearchProvider.js b/platform/search/src/services/GenericSearchProvider.js index 014d8d7fda..9574d156fb 100644 --- a/platform/search/src/services/GenericSearchProvider.js +++ b/platform/search/src/services/GenericSearchProvider.js @@ -28,61 +28,78 @@ define( [], function () { "use strict"; - + var DEFAULT_MAX_RESULTS = 100, DEFAULT_TIMEOUT = 1000, + MAX_CONCURRENT_REQUESTS = 100, + FLUSH_INTERVAL = 0, stopTime; - + /** - * A search service which searches through domain objects in + * A search service which searches through domain objects in * the filetree without using external search implementations. * * @constructor * @param $q Angular's $q, for promise consolidation. - * @param $timeout Angular's $timeout, for delayed function execution. + * @param $log Anglar's $log, for logging. + * @param {Function} throttle a function to throttle function invocations * @param {ObjectService} objectService The service from which * domain objects can be gotten. * @param {WorkerService} workerService The service which allows * more easy creation of web workers. - * @param {GENERIC_SEARCH_ROOTS} ROOTS An array of the root + * @param {GENERIC_SEARCH_ROOTS} ROOTS An array of the root * domain objects' IDs. */ - function GenericSearchProvider($q, $timeout, objectService, workerService, ROOTS) { + function GenericSearchProvider($q, $log, throttle, objectService, workerService, topic, ROOTS) { var indexed = {}, + pendingIndex = {}, pendingQueries = {}, - worker = workerService.run('genericSearchWorker'); + toRequest = [], + worker = workerService.run('genericSearchWorker'), + mutationTopic = topic("mutation"), + indexingStarted = Date.now(), + pendingRequests = 0, + scheduleFlush; this.worker = worker; this.pendingQueries = pendingQueries; this.$q = $q; // pendingQueries is a dictionary with the key value pairs st // the key is the timestamp and the value is the promise - + + function scheduleIdsForIndexing(ids) { + ids.forEach(function (id) { + if (!indexed[id] && !pendingIndex[id]) { + indexed[id] = true; + pendingIndex[id] = true; + toRequest.push(id); + } + }); + scheduleFlush(); + } + // Tell the web worker to add a domain object's model to its list of items. function indexItem(domainObject) { - var message; - - // undefined check - if (domainObject && domainObject.getModel) { - // Using model instead of whole domain object because - // it's a JSON object. - message = { - request: 'index', - model: domainObject.getModel(), - id: domainObject.getId() - }; - worker.postMessage(message); + var model = domainObject.getModel(); + + worker.postMessage({ + request: 'index', + model: model, + id: domainObject.getId() + }); + + if (Array.isArray(model.composition)) { + scheduleIdsForIndexing(model.composition); } } - - // Handles responses from the web worker. Namely, the results of - // a search request. + // Handles responses from the web worker. Namely, the results of + // a search request. function handleResponse(event) { var ids = [], id; - - // If we have the results from a search + + // If we have the results from a search if (event.data.request === 'search') { // Convert the ids given from the web worker into domain objects for (id in event.data.results) { @@ -91,7 +108,7 @@ define( objectService.getObjects(ids).then(function (objects) { var searchResults = [], id; - + // Create searchResult objects for (id in objects) { searchResults.push({ @@ -100,8 +117,8 @@ define( score: event.data.results[id] }); } - - // Resove the promise corresponding to this + + // Resove the promise corresponding to this pendingQueries[event.data.timestamp].resolve({ hits: searchResults, total: event.data.total, @@ -110,83 +127,49 @@ define( }); } } - - // Helper function for getItems(). Indexes the tree. - function indexItems(nodes) { - nodes.forEach(function (node) { - var id = node && node.getId && node.getId(); - - // If we have already indexed this item, stop here - if (indexed[id]) { - return; - } - - // Index each item with the web worker - indexItem(node); - indexed[id] = true; - - - // If this node has children, index those - if (node && node.hasCapability && node.hasCapability('composition')) { - // Make sure that this is async, so doesn't block up page - $timeout(function () { - // Get the children... - node.useCapability('composition').then(function (children) { - $timeout(function () { - // ... then index the children - if (children.constructor === Array) { - indexItems(children); - } else { - indexItems([children]); - } - }, 0); - }); - }, 0); - } - - // Watch for changes to this item, in case it gets new children - if (node && node.hasCapability && node.hasCapability('mutation')) { - node.getCapability('mutation').listen(function (listener) { - if (listener && listener.composition) { - // If the node was mutated to have children, get the child domain objects - objectService.getObjects(listener.composition).then(function (objectsById) { - var objects = [], - id; - // Get each of the domain objects in objectsById - for (id in objectsById) { - objects.push(objectsById[id]); - } - - indexItems(objects); - }); - } - }); + function requestAndIndex(id) { + pendingRequests += 1; + objectService.getObjects([id]).then(function (objects) { + delete pendingIndex[id]; + if (objects[id]) { + indexItem(objects[id]); } + }, function () { + $log.warn("Failed to index domain object " + id); + }).then(function () { + pendingRequests -= 1; + scheduleFlush(); }); } - - // Converts the filetree into a list - function getItems() { - // Aquire root objects - objectService.getObjects(ROOTS).then(function (objectsById) { - var objects = [], - id; - - // Get each of the domain objects in objectsById - for (id in objectsById) { - objects.push(objectsById[id]); - } - - // Index all of the roots' descendents - indexItems(objects); - }); - } + + scheduleFlush = throttle(function flush() { + var batchSize = + Math.max(MAX_CONCURRENT_REQUESTS - pendingRequests, 0); + + if (toRequest.length + pendingRequests < 1) { + $log.info([ + 'GenericSearch finished indexing after ', + ((Date.now() - indexingStarted) / 1000).toFixed(2), + ' seconds.' + ].join('')); + } else { + toRequest.splice(-batchSize, batchSize) + .forEach(requestAndIndex); + } + }, FLUSH_INTERVAL); worker.onmessage = handleResponse; - // Index the tree's contents once at the beginning - getItems(); + // Index the tree's contents once at the beginning + scheduleIdsForIndexing(ROOTS); + + // Re-index items when they are mutated + mutationTopic.listen(function (domainObject) { + var id = domainObject.getId(); + indexed[id] = false; + scheduleIdsForIndexing([id]); + }); } /** @@ -266,4 +249,4 @@ define( return GenericSearchProvider; } -); \ No newline at end of file +); diff --git a/platform/search/test/services/GenericSearchProviderSpec.js b/platform/search/test/services/GenericSearchProviderSpec.js index 2da7cd343b..e3ee0a97ba 100644 --- a/platform/search/test/services/GenericSearchProviderSpec.js +++ b/platform/search/test/services/GenericSearchProviderSpec.js @@ -31,35 +31,67 @@ define( describe("The generic search provider ", function () { var mockQ, - mockTimeout, + mockLog, + mockThrottle, mockDeferred, mockObjectService, mockObjectPromise, + mockChainedPromise, mockDomainObjects, mockCapability, mockCapabilityPromise, mockWorkerService, mockWorker, + mockTopic, + mockMutationTopic, mockRoots = ['root1', 'root2'], + mockThrottledFn, + throttledCallCount, provider, mockProviderResults; - beforeEach(function () { + function resolveObjectPromises() { var i; - + for (i = 0; i < mockObjectPromise.then.calls.length; i += 1) { + mockChainedPromise.then.calls[i].args[0]( + mockObjectPromise.then.calls[i] + .args[0](mockDomainObjects) + ); + } + } + + function resolveThrottledFn() { + if (mockThrottledFn.calls.length > throttledCallCount) { + mockThrottle.mostRecentCall.args[0](); + throttledCallCount = mockThrottledFn.calls.length; + } + } + + function resolveAsyncTasks() { + resolveThrottledFn(); + resolveObjectPromises(); + } + + beforeEach(function () { mockQ = jasmine.createSpyObj( "$q", [ "defer" ] ); + mockLog = jasmine.createSpyObj( + "$log", + [ "error", "warn", "info", "debug" ] + ); mockDeferred = jasmine.createSpyObj( "deferred", [ "resolve", "reject"] ); mockDeferred.promise = "mock promise"; mockQ.defer.andReturn(mockDeferred); - - mockTimeout = jasmine.createSpy("$timeout"); - + + mockThrottle = jasmine.createSpy("throttle"); + mockThrottledFn = jasmine.createSpy("throttledFn"); + throttledCallCount = 0; + mockObjectService = jasmine.createSpyObj( "objectService", [ "getObjects" ] @@ -68,9 +100,14 @@ define( "promise", [ "then", "catch" ] ); + mockChainedPromise = jasmine.createSpyObj( + "chainedPromise", + [ "then" ] + ); mockObjectService.getObjects.andReturn(mockObjectPromise); - - + + mockTopic = jasmine.createSpy('topic'); + mockWorkerService = jasmine.createSpyObj( "workerService", [ "run" ] @@ -80,68 +117,109 @@ define( [ "postMessage" ] ); mockWorkerService.run.andReturn(mockWorker); - + mockCapabilityPromise = jasmine.createSpyObj( "promise", [ "then", "catch" ] ); - + mockDomainObjects = {}; - for (i = 0; i < 4; i += 1) { - mockDomainObjects[i] = ( + ['a', 'root1', 'root2'].forEach(function (id) { + mockDomainObjects[id] = ( jasmine.createSpyObj( "domainObject", - [ "getId", "getModel", "hasCapability", "getCapability", "useCapability" ] + [ + "getId", + "getModel", + "hasCapability", + "getCapability", + "useCapability" + ] ) ); - mockDomainObjects[i].getId.andReturn(i); - mockDomainObjects[i].getCapability.andReturn(mockCapability); - mockDomainObjects[i].useCapability.andReturn(mockCapabilityPromise); - } - // Give the first object children - mockDomainObjects[0].hasCapability.andReturn(true); + mockDomainObjects[id].getId.andReturn(id); + mockDomainObjects[id].getCapability.andReturn(mockCapability); + mockDomainObjects[id].useCapability.andReturn(mockCapabilityPromise); + mockDomainObjects[id].getModel.andReturn({}); + }); + mockCapability = jasmine.createSpyObj( "capability", [ "invoke", "listen" ] ); mockCapability.invoke.andReturn(mockCapabilityPromise); - mockDomainObjects[0].getCapability.andReturn(mockCapability); - - provider = new GenericSearchProvider(mockQ, mockTimeout, mockObjectService, mockWorkerService, mockRoots); + mockDomainObjects.a.getCapability.andReturn(mockCapability); + mockMutationTopic = jasmine.createSpyObj( + 'mutationTopic', + [ 'listen' ] + ); + mockTopic.andCallFake(function (key) { + return key === 'mutation' && mockMutationTopic; + }); + mockThrottle.andReturn(mockThrottledFn); + mockObjectPromise.then.andReturn(mockChainedPromise); + + provider = new GenericSearchProvider( + mockQ, + mockLog, + mockThrottle, + mockObjectService, + mockWorkerService, + mockTopic, + mockRoots + ); }); - + it("indexes tree on initialization", function () { + var i; + + resolveThrottledFn(); + expect(mockObjectService.getObjects).toHaveBeenCalled(); expect(mockObjectPromise.then).toHaveBeenCalled(); - - // Call through the root-getting part - mockObjectPromise.then.mostRecentCall.args[0](mockDomainObjects); - - // Call through the children-getting part - mockTimeout.mostRecentCall.args[0](); - // Array argument indicates multiple children - mockCapabilityPromise.then.mostRecentCall.args[0]([]); - mockTimeout.mostRecentCall.args[0](); - // Call again, but for single child - mockCapabilityPromise.then.mostRecentCall.args[0]({}); - mockTimeout.mostRecentCall.args[0](); - - expect(mockWorker.postMessage).toHaveBeenCalled(); + + // Call through the root-getting part + resolveObjectPromises(); + + mockRoots.forEach(function (id) { + expect(mockWorker.postMessage).toHaveBeenCalledWith({ + request: 'index', + model: mockDomainObjects[id].getModel(), + id: id + }); + }); }); - - it("when indexing, listens for composition changes", function () { - var mockListener = {composition: {}}; - - // Call indexItems - mockObjectPromise.then.mostRecentCall.args[0](mockDomainObjects); - - // Call through listening for changes - expect(mockCapability.listen).toHaveBeenCalled(); - mockCapability.listen.mostRecentCall.args[0](mockListener); - expect(mockObjectService.getObjects).toHaveBeenCalled(); - mockObjectPromise.then.mostRecentCall.args[0](mockDomainObjects); + + it("indexes members of composition", function () { + mockDomainObjects.root1.getModel.andReturn({ + composition: ['a'] + }); + + resolveAsyncTasks(); + resolveAsyncTasks(); + + expect(mockWorker.postMessage).toHaveBeenCalledWith({ + request: 'index', + model: mockDomainObjects.a.getModel(), + id: 'a' + }); }); - + + it("listens for changes to mutation", function () { + expect(mockMutationTopic.listen) + .toHaveBeenCalledWith(jasmine.any(Function)); + mockMutationTopic.listen.mostRecentCall + .args[0](mockDomainObjects.a); + + resolveAsyncTasks(); + + expect(mockWorker.postMessage).toHaveBeenCalledWith({ + request: 'index', + model: mockDomainObjects.a.getModel(), + id: mockDomainObjects.a.getId() + }); + }); + it("sends search queries to the worker", function () { var timestamp = Date.now(); provider.query(' test "query" ', timestamp, 1, 2); @@ -153,20 +231,20 @@ define( timeout: 2 }); }); - + it("gives an empty result for an empty query", function () { var timestamp = Date.now(), queryOutput; - + queryOutput = provider.query('', timestamp, 1, 2); expect(queryOutput.hits).toEqual([]); expect(queryOutput.total).toEqual(0); - + queryOutput = provider.query(); expect(queryOutput.hits).toEqual([]); expect(queryOutput.total).toEqual(0); }); - + it("handles responses from the worker", function () { var timestamp = Date.now(), event = { @@ -181,13 +259,35 @@ define( timestamp: timestamp } }; - + provider.query(' test "query" ', timestamp); mockWorker.onmessage(event); mockObjectPromise.then.mostRecentCall.args[0](mockDomainObjects); expect(mockDeferred.resolve).toHaveBeenCalled(); }); - + + it("warns when objects are unavailable", function () { + resolveAsyncTasks(); + expect(mockLog.warn).not.toHaveBeenCalled(); + mockChainedPromise.then.mostRecentCall.args[0]( + mockObjectPromise.then.mostRecentCall.args[1]() + ); + expect(mockLog.warn).toHaveBeenCalled(); + }); + + it("throttles the loading of objects to index", function () { + expect(mockObjectService.getObjects).not.toHaveBeenCalled(); + resolveThrottledFn(); + expect(mockObjectService.getObjects).toHaveBeenCalled(); + }); + + it("logs when all objects have been processed", function () { + expect(mockLog.info).not.toHaveBeenCalled(); + resolveAsyncTasks(); + resolveThrottledFn(); + expect(mockLog.info).toHaveBeenCalled(); + }); + }); } -); \ No newline at end of file +);