mirror of
https://github.com/nasa/openmct.git
synced 2025-02-20 17:33:23 +00:00
[Search] Menu checkboxes and labels
Added checkboxes with styling to the menu. Set up a types list for the menu.
This commit is contained in:
parent
a9c85d5241
commit
c51856522c
@ -342,13 +342,23 @@ ul.tree {
|
||||
float: right;
|
||||
margin-top: 17px;
|
||||
left: -25px; }
|
||||
/* line 140, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-bar .search-menu-holder .search-menu ul li {
|
||||
padding: 0;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
font-size: 0.9em; }
|
||||
/* line 151, ../sass/search/_search.scss */
|
||||
/* line 138, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-bar .search-menu-holder .search-menu {
|
||||
border-top: 0; }
|
||||
/* line 141, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item {
|
||||
padding: 0px 4px;
|
||||
font-size: 0.8em; }
|
||||
/* line 146, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item .search-menu-checkbox {
|
||||
margin-top: 4px;
|
||||
padding-left: 0;
|
||||
margin-right: 0; }
|
||||
/* line 156, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item .search-menu-icon {
|
||||
color: white;
|
||||
padding-left: 2px; }
|
||||
/* line 165, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-bar .search-menu-holder:after {
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
@ -358,18 +368,18 @@ ul.tree {
|
||||
border-bottom: 6px solid #5e5e5e;
|
||||
border-left: 6px solid transparent;
|
||||
content: ''; }
|
||||
/* line 164, ../sass/search/_search.scss */
|
||||
/* line 178, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-bar .menu-icon:hover + div.search-menu-holder {
|
||||
visibility: visible; }
|
||||
/* line 167, ../sass/search/_search.scss */
|
||||
/* line 181, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-bar div.search-menu-holder:hover {
|
||||
visibility: visible; }
|
||||
/* line 172, ../sass/search/_search.scss */
|
||||
/* line 186, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll {
|
||||
top: 25px;
|
||||
overflow-y: auto;
|
||||
padding-right: 5px; }
|
||||
/* line 180, ../sass/search/_search.scss */
|
||||
/* line 194, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .results .search-result-item {
|
||||
-moz-transition: background-color 0.25s;
|
||||
-o-transition: background-color 0.25s;
|
||||
@ -379,10 +389,10 @@ ul.tree {
|
||||
border-radius: 2px;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 2px; }
|
||||
/* line 194, ../sass/search/_search.scss */
|
||||
/* line 208, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .results .search-result-item .label {
|
||||
margin-left: 6px; }
|
||||
/* line 198, ../sass/search/_search.scss */
|
||||
/* line 212, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .results .search-result-item .label .title-label {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
@ -394,47 +404,47 @@ ul.tree {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap; }
|
||||
/* line 220, ../sass/search/_search.scss */
|
||||
/* line 234, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .results .search-result-item.selected {
|
||||
background: #005177;
|
||||
color: #fff; }
|
||||
/* line 224, ../sass/search/_search.scss */
|
||||
/* line 238, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .results .search-result-item.selected .view-control {
|
||||
color: #0099cc; }
|
||||
/* line 227, ../sass/search/_search.scss */
|
||||
/* line 241, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .results .search-result-item.selected .label .type-icon {
|
||||
color: #fff; }
|
||||
/* line 234, ../sass/search/_search.scss */
|
||||
/* line 248, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .results .search-result-item:not(.selected):hover {
|
||||
background: #404040;
|
||||
color: #cccccc; }
|
||||
/* line 237, ../sass/search/_search.scss */
|
||||
/* line 251, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .results .search-result-item:not(.selected):hover .context-trigger {
|
||||
display: block; }
|
||||
/* line 240, ../sass/search/_search.scss */
|
||||
/* line 254, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .results .search-result-item:not(.selected):hover .icon {
|
||||
color: #33ccff; }
|
||||
/* line 248, ../sass/search/_search.scss */
|
||||
/* line 262, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .load-icon {
|
||||
position: relative; }
|
||||
/* line 250, ../sass/search/_search.scss */
|
||||
/* line 264, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .load-icon.loading {
|
||||
pointer-events: none;
|
||||
margin-left: 6px; }
|
||||
/* line 254, ../sass/search/_search.scss */
|
||||
/* line 268, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .load-icon.loading .title-label {
|
||||
font-style: italic;
|
||||
font-size: .9em;
|
||||
opacity: 0.5;
|
||||
margin-left: 26px;
|
||||
line-height: 24px; }
|
||||
/* line 264, ../sass/search/_search.scss */
|
||||
/* line 278, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .load-icon.loading .wait-spinner {
|
||||
margin-left: 6px; }
|
||||
/* line 269, ../sass/search/_search.scss */
|
||||
/* line 283, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .load-icon:not(.loading) {
|
||||
cursor: pointer; }
|
||||
/* line 274, ../sass/search/_search.scss */
|
||||
/* line 288, ../sass/search/_search.scss */
|
||||
.search-holder .search .search-scroll .load-more-button {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
|
@ -136,13 +136,27 @@
|
||||
left: -25px;
|
||||
|
||||
.search-menu {
|
||||
border-top: 0;
|
||||
|
||||
ul li {
|
||||
padding: 0;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
.search-menu-item {
|
||||
// Padding only on sides
|
||||
padding: 0px 4px;
|
||||
font-size: 0.8em;
|
||||
|
||||
font-size: 0.9em;
|
||||
.search-menu-checkbox {
|
||||
// Vertically center
|
||||
margin-top: 4px;
|
||||
|
||||
// Get rid of weird checkbox positioning
|
||||
// from label.checkbox.custom
|
||||
padding-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.search-menu-icon {
|
||||
color: white;
|
||||
padding-left: 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@
|
||||
{
|
||||
"key": "SearchController",
|
||||
"implementation": "controllers/SearchController.js",
|
||||
"depends": [ "$scope", "searchService" ]
|
||||
"depends": [ "$scope", "searchService", "types[]" ]
|
||||
},
|
||||
{
|
||||
"key": "SearchItemController",
|
||||
|
@ -56,9 +56,23 @@
|
||||
<div class="menu-element search-menu-holder">
|
||||
<div class="menu dropdown search-menu">
|
||||
<ul>
|
||||
<li>Contents 1</li>
|
||||
<li>Contents 2</li>
|
||||
<li>Contents 3</li>
|
||||
<li class="search-menu-item"
|
||||
ng-repeat="type in types">
|
||||
|
||||
<label class="checkbox custom search-menu-checkbox">
|
||||
<input type="checkbox"
|
||||
class="checkbox"
|
||||
checked="true"/>
|
||||
<em></em>
|
||||
</label>
|
||||
|
||||
<span class="ui-symbol search-menu-icon">
|
||||
{{ type.glyph }}
|
||||
</span>
|
||||
|
||||
{{ type.name }}
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -30,12 +30,14 @@ define(function () {
|
||||
var INITIAL_LOAD_NUMBER = 20,
|
||||
LOAD_INCREMENT = 20;
|
||||
|
||||
function SearchController($scope, searchService) {
|
||||
function SearchController($scope, searchService, types) {
|
||||
// Starting amount of results to load. Will get increased.
|
||||
var numResults = INITIAL_LOAD_NUMBER,
|
||||
loading = false,
|
||||
fullResults = {hits: []};
|
||||
|
||||
console.log('types', types);
|
||||
|
||||
function search(maxResults) {
|
||||
var inputText = $scope.ngModel.input;
|
||||
|
||||
@ -71,6 +73,31 @@ define(function () {
|
||||
});
|
||||
}
|
||||
|
||||
function filter(types) {
|
||||
var newResults = [],
|
||||
i = 0;
|
||||
|
||||
while (newResults.length < numResults && newResults.length < fullResults.hits.length) {
|
||||
// If this is of an acceptable type, add it to the list
|
||||
if (types.indexOf(fullResults.hits[i].getModel().type) !== -1) {
|
||||
newResults.push(fullResults.hits[i]);
|
||||
}
|
||||
i += 1;
|
||||
}
|
||||
|
||||
$scope.results = newResults;
|
||||
}
|
||||
|
||||
$scope.types = [];
|
||||
// On initialization, fill the scope's types with type keys
|
||||
types.forEach(function (type) {
|
||||
// We only want some types: the ones that have keys and
|
||||
// descriptions are probably human user usable types
|
||||
if (type.key && type.description) {
|
||||
$scope.types.push(type);
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
/**
|
||||
* Search the filetree.
|
||||
|
Loading…
x
Reference in New Issue
Block a user