mirror of
https://github.com/nasa/openmct.git
synced 2024-12-21 14:07:50 +00:00
9ad860babd
Rewrite the search controller, making numerous changes and using prototypical style. First, the search controller immediately hides previous results when a new search is started. Secondly, the search controller ensures that search results displayed match the currently entered query, preventing race conditions. Finally, the search controller uses a poor filtering option that means it may not display all results.
109 lines
3.7 KiB
HTML
109 lines
3.7 KiB
HTML
<!--
|
|
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.
|
|
-->
|
|
<div class="search"
|
|
ng-controller="SearchController as controller">
|
|
|
|
<!-- Search bar -->
|
|
<div class="search-bar"
|
|
ng-controller="ClickAwayController as toggle">
|
|
|
|
<!-- Input field -->
|
|
<input class="search-input"
|
|
type="text"
|
|
ng-model="ngModel.input"
|
|
ng-keyup="controller.search()" />
|
|
|
|
<!-- Search icon -->
|
|
<!-- ui symbols for search are 'd' and 'M' -->
|
|
<div class="ui-symbol search-icon"
|
|
ng-class="{content: !(ngModel.input === '' || ngModel.input === undefined)}">
|
|
M
|
|
</div>
|
|
|
|
<!-- Clear icon/button 'x' -->
|
|
<a class="ui-symbol clear-icon"
|
|
ng-class="{content: !(ngModel.input === '' || ngModel.input === undefined)}"
|
|
ng-click="ngModel.input = ''; controller.search()">
|
|

|
|
</a>
|
|
|
|
<!-- Menu icon/button 'v' -->
|
|
<a class="ui-symbol menu-icon"
|
|
ng-click="toggle.toggle()">
|
|
v
|
|
</a>
|
|
|
|
<!-- Menu -->
|
|
<mct-representation key="'search-menu'"
|
|
class="menu-element search-menu-holder"
|
|
ng-class="{off: !toggle.isActive()}"
|
|
ng-model="ngModel"
|
|
ng-click="toggle.setState(true)">
|
|
</mct-representation>
|
|
</div>
|
|
|
|
<!-- Active filter display -->
|
|
<div class="active-filter-display"
|
|
ng-class="{off: ngModel.filtersString === '' || ngModel.filtersString === undefined || !ngModel.search}"
|
|
ng-controller="SearchMenuController as menuController">
|
|
|
|
<a class="ui-symbol clear-filters-icon"
|
|
ng-click="ngModel.checkAll = true; menuController.checkAll()">
|
|

|
|
</a>
|
|
|
|
Filtered by: {{ ngModel.filtersString }}
|
|
|
|
</div>
|
|
|
|
<!-- This div exists to determine scroll bar location -->
|
|
<div class="search-scroll abs">
|
|
|
|
<!-- Results list -->
|
|
<div class="results">
|
|
<mct-representation key="'search-item'"
|
|
ng-repeat="result in results"
|
|
mct-object="result.object"
|
|
ng-model="ngModel">
|
|
</mct-representation>
|
|
</div>
|
|
|
|
<!-- Loading icon -->
|
|
<div class="load-icon"
|
|
ng-class="{loading: loading}"
|
|
ng-if="loading">
|
|
<span class="icon wait-spinner"></span>
|
|
<span class="title-label">Loading...</span>
|
|
</div>
|
|
|
|
<!-- Load more button -->
|
|
<div ng-if="controller.areMore()">
|
|
<a class="load-more-button s-btn vsm"
|
|
ng-click="controller.loadMore()">
|
|
More Results
|
|
</a>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|