mirror of
https://github.com/nasa/openmct.git
synced 2024-12-20 21:53:08 +00:00
[Search] Tree selection syncs
Selecting something in the search results now also makes it selected in the filetree. It remains selected even when the search results are cleared. (The filetree does not automatically expand to that position though.)
This commit is contained in:
parent
29d5535e7c
commit
2680e466fa
@ -707,6 +707,9 @@ mct-container {
|
||||
/* line 42, ../sass/search/_layout.scss */
|
||||
.pane.treeview.left .tree-holder {
|
||||
top: 0; }
|
||||
/* line 47, ../sass/search/_layout.scss */
|
||||
.pane.treeview.left .tree-holder.search-in-use {
|
||||
display: none; }
|
||||
|
||||
/*****************************************************************************
|
||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
||||
|
@ -42,6 +42,11 @@
|
||||
.tree-holder {
|
||||
// Want tree holder to start right below the search bar
|
||||
top: 0;
|
||||
|
||||
// Make tree invisible when there are things in search results
|
||||
&.search-in-use {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -165,7 +165,18 @@ define(
|
||||
* @returns true if this should be highlighted
|
||||
*/
|
||||
isSelected: function () {
|
||||
//return isSelected;
|
||||
|
||||
// Modification for compatibility with search.
|
||||
// If this object is the same as the model's selected object
|
||||
// Same being them having the same ID (this allows different
|
||||
// instances of the same thing to be recognized as the same)
|
||||
if ($scope.ngModel.selectedObject.getId() === $scope.domainObject.getId()) {
|
||||
setSelection($scope.domainObject);
|
||||
}
|
||||
return isSelected;
|
||||
|
||||
// TODO: Check to make sure this change doesn't break anything.
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
"name": "Search View",
|
||||
"description": "Allows the user to search through the file tree.",
|
||||
"extensions": {
|
||||
"controllers": [
|
||||
"controllers": [
|
||||
{
|
||||
"key": "SearchController",
|
||||
"implementation": "controllers/SearchController.js",
|
||||
|
@ -47,7 +47,7 @@
|
||||
<span class="title-label">Loading...</span>
|
||||
</div>
|
||||
|
||||
<!-- Load more -->
|
||||
<!-- Load more button -->
|
||||
<div ng-if="controller.areMore()">
|
||||
<button class="load-more-button btn very-subtle"
|
||||
ng-click="controller.loadMore()">
|
||||
|
@ -28,56 +28,8 @@ define(function () {
|
||||
"use strict";
|
||||
|
||||
function SearchItemController($scope) {
|
||||
var selectedObject = ($scope.ngModel || {}).selectedObject;//,
|
||||
//isSelected = false;
|
||||
var selectedObject = ($scope.ngModel || {}).selectedObject;
|
||||
|
||||
/*
|
||||
// Consider the currently-navigated object and update
|
||||
// parameters which support display.
|
||||
function checkSelection() {
|
||||
var nodeObject = $scope.domainObject,
|
||||
navObject = selectedObject,
|
||||
nodeContext = nodeObject &&
|
||||
nodeObject.getCapability('context'),
|
||||
navContext = navObject &&
|
||||
navObject.getCapability('context'),
|
||||
nodePath,
|
||||
navPath;
|
||||
|
||||
// Deselect; we will reselect below, iff we are
|
||||
// exactly at the end of the path.
|
||||
isSelected = false;
|
||||
|
||||
// Expand if necessary (if the navigated object will
|
||||
// be in this node's subtree)
|
||||
if (nodeContext && navContext) {
|
||||
// Get the paths as arrays of identifiers
|
||||
nodePath = nodeContext.getPath().map(getId);
|
||||
navPath = navContext.getPath().map(getId);
|
||||
|
||||
// Check to see if the node's path lies entirely
|
||||
// within the navigation path; otherwise, navigation
|
||||
// has happened in some other subtree.
|
||||
if (navPath.length >= nodePath.length &&
|
||||
checkPath(nodePath, navPath)) {
|
||||
|
||||
// nodePath is along the navPath; if it's
|
||||
// at the end of the path, highlight;
|
||||
// otherwise, expand.
|
||||
if (nodePath.length === navPath.length) {
|
||||
isSelected = true;
|
||||
} else { // node path is shorter: Expand!
|
||||
if ($scope.toggle) {
|
||||
$scope.toggle.setState(true);
|
||||
}
|
||||
trackExpansion();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// Callback for the selection updates; track the currently
|
||||
// navigated object and update display parameters as needed.
|
||||
function setSelection(object) {
|
||||
@ -86,14 +38,14 @@ define(function () {
|
||||
|
||||
// Listen for changes which will effect display parameters
|
||||
$scope.$watch("ngModel.selectedObject", setSelection);
|
||||
//$scope.$watch("domainObject", checkSelection);
|
||||
|
||||
return {
|
||||
/**
|
||||
* Check whether or not the domain object represented by
|
||||
* this tree node should be highlighted.
|
||||
* An object will be highlighted if it matches
|
||||
* ngModel.selectedObject
|
||||
* this search item should be highlighted.
|
||||
* An object will be highlighted if its ID matches
|
||||
* ngModel.selectedObject
|
||||
*
|
||||
* @returns true if this should be highlighted
|
||||
*/
|
||||
isSelected: function () {
|
||||
|
Loading…
Reference in New Issue
Block a user