Commit Graph

181 Commits

Author SHA1 Message Date
Charles Hacskaylo
063e97fcb5 [Frontend] Cleanups and enhancements to search
open #250
Fixed margin/spacing problems with results element;
Added transition to results display;
Begin adding # results found / no results messaging;
Moved class .off to _globals.scss;
2015-11-05 17:04:19 -08:00
Charles Hacskaylo
c0ac3a0f96 [Frontend] Convert main left pane elements to flex layout
open #250
Significant changes to flex classes, markup in
browse.html and search.html to support better
flex layout;
Search results now scrolls properly;
Significant refactoring and cleanups in search and _search.scss;
2015-11-05 15:44:55 -08:00
Victor Woeltjen
0dccaab9cb [Search] Declare UI components as templates
Declare Search UI components as templates instead of
representations so that they are not removed from the
DOM when no domain object is supplied. Fixes
nasa/openmctweb#234
2015-11-02 14:07:22 -08:00
Victor Woeltjen
bf24ac7c93 [Search] Update field name
Update field name in GenericSearchProvider to reflect changes
from nasa/openmctweb#193. Avoids exceptions on mutation.

Additionally, add test case exercising relevant code and verifying
that reindexing is scheduled upon mutation as expected.
2015-10-23 12:23:01 -07:00
Pete Richards
496cf85b7e [JSDoc] Correct mistake 2015-10-21 09:46:32 -07:00
Pete Richards
833f57e284 [Search] Don't block UI between requests
Timeout subsequent calls to keepIndexing at the end of a
indexRequest, so that UI operations are not blocked.
2015-10-21 07:51:53 -07:00
Pete Richards
77d81f899b [Style] JSLint compliance 2015-10-20 15:33:56 -07:00
Pete Richards
fe3263fdfe [Search] Remove invalid specs 2015-10-20 15:27:46 -07:00
Pete Richards
ce42429fbd [Search] expose constants, add fudge factor
The SearchAggregator exposes it's constants to add stability to
tests.

It also has a fudge factor which increaases the number of results
it requests from providers to better support pagination when using
client side filtering.
2015-10-20 15:17:15 -07:00
Pete Richards
76151d09a0 [Search] use service for filters, add spec
Add a spec for the SearchController, and use the SearchService to
execute filters by supplying a filterPredicate.
2015-10-20 15:17:15 -07:00
Pete Richards
ec7e6cc5b4 [Search] Update spec for Generic Search Worker 2015-10-20 15:17:14 -07:00
Pete Richards
1ddce48f7e [Search] Specs for GenericSearchProvider
Write specs for GenericSearchProvider and resolve some implementation
bugs they uncovered.
2015-10-20 15:17:14 -07:00
Pete Richards
98b5ff3c77 [Search] Decrement number of pending requests 2015-10-20 15:17:14 -07:00
Pete Richards
14094a48fc [Search] Remove old specs in prep for rewrite
Remove old specs in prep for rewrite.
2015-10-20 15:16:54 -07:00
Pete Richards
0f63e4dde9 [Tests] Rewrite search aggregator specs 2015-10-16 17:06:23 -07:00
Pete Richards
12efb47be7 [Search] Remove timeouts and timestamps
Remove timeouts and timestamps which were not effectively doing anything.
2015-10-16 16:09:51 -07:00
Pete Richards
78e5c0143b [Search] Overhaul generic search provider
Rewrite the generic search provider to use prototypes.  Increase performance
by utilizing the model service instead of the object service, and use a
simplified method of request queueing.
2015-10-16 15:30:14 -07:00
Pete Richards
099591ad2e [Search] Aggregator returns objects, providers return models
Search providers return search results as models for domain objects, as the
actual number of max results is enforced by the aggregator, and because the
individual providers store and return the models for their objects already.

This lowers the amount of resources consumed instantiating domain objects, and
also allows the individual search providers to implement function-based
filtering on domain object models, which is beneficial as it allows the search
filtering in the search controller to be done before paginating of results.
2015-10-16 15:26:04 -07:00
Pete Richards
b5505f372f [Search] Generic Worker Performance Tweaks
The generic search worker now does indexing work during the index operation,
ensuring that queries do not have to do extraneous or repeat calculations.

Change the return format slightly and fixed a bug in the GenericSearchProvider
which caused more objects than intended to be returned from the provider.
2015-10-16 12:39:41 -07:00
Pete Richards
9ad860babd [Search] Rewrite search controller, tidy
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.
2015-10-16 12:34:47 -07:00
Victor Woeltjen
134b749bbf [Generic Search] Track pending indexes
Track domain objects which have indexing operations pending,
to avoid redundantly indexing in cases where a broader
indexed check is insufficient.
2015-10-05 10:11:38 -07:00
Victor Woeltjen
36d06e8b54 [Generic Search] Reduce flush interval
Per discussion from nasa/openmctweb#141, minimize the
interval at which new objects get indexed, instead of
presuming requirements for CPU utilization.
2015-10-05 10:06:55 -07:00
Victor Woeltjen
77b0086d18 [Generic Search] Use appropriate data structure
Per code review, nasa/openmctweb#165
2015-10-05 09:54:57 -07:00
Victor Woeltjen
bea5002752 [Search] Add test cases
Add test cases related to throttled loading of domain
objects to index, nasa/openmctweb#141.
2015-09-30 17:23:52 -07:00
Victor Woeltjen
d04c5e6858 [Search] Update GenericSearch spec
nasa/openmctweb#141.
2015-09-30 17:08:47 -07:00
Victor Woeltjen
78f3f8367e [Search] Vary batch size
When indexing for generic search, issue new batches of
requests as individual requests finish (instead of waiting
for whole batches to finish) varying size to keep the
number of outstanding requests below some maximum.

nasa/openmctweb#141
2015-09-29 18:37:44 -07:00
Victor Woeltjen
85ac4a9a32 [Search] Log indexing time
...to aid in tuning of generic search parameters.
2015-09-29 18:37:44 -07:00
Victor Woeltjen
77c66053f3 [Search] Change indexing approach
Change indexing approach to more carefully control the
rate at which objects are loaded to be indexed, to improve
performance. nasa/openmctweb#141.
2015-09-29 18:37:44 -07:00
Victor Woeltjen
2979ee90a3 Revert "[Search] Don't trigger digest cycles while indexing"
This reverts commit 4b8a5ac0b257737ee33effc966816afca6c11b94.
Performance measurements indicates this is harmful for performance,
although this is not well-explained.
2015-09-29 18:37:44 -07:00
Victor Woeltjen
77c399f2a2 [Search] Don't trigger digest cycles while indexing
Avoid triggering digest cycles while indexing;
remove extra call to $timeout
2015-09-29 18:37:44 -07:00
Victor Woeltjen
fe8543158e [Search] Fix reindexing
Flag domain objects as non-indexed on mutation to ensure
reindexing. Done in the context of nasa/openmctweb#141.
2015-09-29 18:37:44 -07:00
Victor Woeltjen
866c8882ca [Search] Listen on a global mutation topic
Listen on a global mutation topic to remove the need to retain
listeners per domain object.
2015-09-29 11:50:30 -07:00
Victor Woeltjen
ad7d3d642e [Search] Move reindex function
Move function used to listen for mutation changes (to trigger
reindexing) up in scope, to avoid retaining references to
domain objects via closure. nasa/openmctweb#141

Also, includes misc. whitespace normalization (provided by
code editor.)
2015-09-29 10:54:20 -07:00
Charles Hacskaylo
bb1a02c8bd [Frontend] Significant re-factoring of CSS and markup
open #95
IN-PROGRESS!;
Mostly buttons and menus classes (s-btn and s-menu);
Removed unused templates and .css files;
Normalized some button containers;
2015-09-02 18:02:58 -07:00
slhale
c81e2dbb4a Merge branch 'master' of https://github.com/nasa/openmctweb into search
Conflicts:
	platform/commonUI/general/src/controllers/TreeNodeController.js
	platform/persistence/elastic/src/ElasticSearchProvider.js
2015-08-24 13:14:43 -07:00
slhale
432ec519b6 Merge branch 'search' into open70
Conflicts:
	platform/commonUI/browse/res/templates/browse.html
2015-08-19 10:05:38 -07:00
Charles Hacskaylo
7f65ba236c [Frontend] Tweaks to Load More results button
#70
2015-08-19 09:44:23 -07:00
Charles Hacskaylo
3a86f5e746 [Frontend] Tweak to Load More button label
#70
2015-08-18 19:54:50 -07:00
Charles Hacskaylo
4e3e3653a3 [Frontend] Styling for search elements
#70
Significant .scss and markup changes across search;
New symbols font (v2.2) char for clear icon;
To-do: style "load more" element;
2015-08-18 19:51:47 -07:00
slhale
d3ea67fbd9 [Search] Templates vs representations
Made the search and search-menu templates into
representations, to be more consistent.
2015-08-18 16:54:36 -07:00
slhale
9ebc04ef14 [Search] Cleanup and documentation 2015-08-18 16:08:16 -07:00
slhale
3d1e1659c2 [Search] Update tests
for 100% coverage.
2015-08-18 12:37:47 -07:00
slhale
17f2bb966b [Search] Update tests and remove redundancy
Updated the generic provider test. Removed index
checking from the generic search worker, because
that checking is already done (more efficiently)
in the generic search provider.
2015-08-18 12:27:04 -07:00
slhale
a98b65286f [Search] Update tests
Updated the SearchController tests for more coverage,
due to additions to the controller. Fixed a small
logic error in controller.areMore()
2015-08-18 11:28:12 -07:00
slhale
17aa666519 [Search] Remove unnecsissary controller
Removed the SearchItemController, as the logic was simple
enough to be done in one line in the search item
representation html.
2015-08-18 10:19:20 -07:00
slhale
3a932f5443 [Search] No searching root
Removed the root type from the search menu
types, so searches through the current UI
will not reutrn root objects.
2015-08-17 14:32:25 -07:00
slhale
ce58aff18a [Search] Remove unused code 2015-08-17 14:31:43 -07:00
slhale
24ee8ec063 [Search] Remove old files
Remove old search view files from before
the left tree bar search.
2015-08-17 13:53:37 -07:00
slhale
eee8790682 [Search] Add tests
Added tests for SearchMenuController.
2015-08-17 13:46:28 -07:00
slhale
083932e902 [Search] Moved search menu to a template
Created a search-menu template and corresponding controller.
Moved functions out of SearchController to SearchMenuController.
The two controllers share information through ngModel.
2015-08-17 12:34:50 -07:00
slhale
e159b7a15d [Search] mct-control textfield breaks focus
Set up bundle.json so that the search bar could
be a mct-control, but left the control itself
commented out because then CSS styling would not
work due to lack of access to parent elements.
2015-08-17 11:47:40 -07:00
Victor Woeltjen
4481c44c4b [Code Style] Refactor search to use prototypes
WTD-1482.
2015-08-17 11:20:23 -07:00
slhale
6d660d48ca [Search] Change default search menu
The search menu now opens to having none of the types
checked, but 'ALL' checked. Checking anything besides
'ALL' unchecks 'ALL' and begins filtering search by
type.
2015-08-17 11:17:02 -07:00
Victor Woeltjen
83fce6ad77 [Search] Remove unused dependency
Remove unused dependency from generic search worker,
avoids WTD-1511.
2015-08-17 10:45:02 -07:00
slhale
2ef0c2a8cb [Search] Documentation
More specific descriptions of angular scope
variables in searchcontroller.
2015-08-17 10:33:10 -07:00
slhale
cb0f72052f [Search] Update tests
Changed references to isLoading to
mockScope.loading
2015-08-14 16:46:22 -07:00
slhale
1030eff943 [Search] Documentation 2015-08-14 16:44:34 -07:00
slhale
aa67489404 [Search] Remove unnecissary funtions
Removed isLoading, hasInput, and clear
functions in favor of having the logic
within the search template.
2015-08-14 16:33:23 -07:00
slhale
0cfd881510 [Search] Menu transition and highlights
The search menu fades in and out when open
and closed. Hovering over 'ALL' in the
menu now highlights it.
2015-08-14 15:05:54 -07:00
slhale
adbb3486c5 [Search] Added ClickAwayController test
Added a test for the click away controller. Because
the controller was copied from
platform/commonUI/general, so was the test.
2015-08-14 13:56:27 -07:00
slhale
ced1609e51 [Search] Update tests
Updated SearchController test for the addition of the
controller's dependency on types[].
2015-08-14 13:52:57 -07:00
slhale
7bc9b83aac [Search] Remove unused watch 2015-08-14 13:35:49 -07:00
slhale
bcea3832ed [Search] Search menu & display tweaks
Clicking on names of options in the search
menu will now toggle the checkboxes. The
filter options display now says when no
filters are selected. Slightly moved the
search menu to the left.
2015-08-14 11:06:40 -07:00
slhale
f38b89a582 [Search] style 2015-08-13 16:56:58 -07:00
slhale
c17ec19f97 [Search] Filter options display styling 2015-08-13 16:54:15 -07:00
slhale
371b690072 [Search] Fix filter display names
Changed form type keys to names
2015-08-13 16:23:13 -07:00
slhale
c62e73f863 [Search] Checkbox style
Changed the checkboxes to be not blue.
2015-08-13 16:06:10 -07:00
slhale
5726dd0e0c [Search] Filter display
Added display below the search bar of what
search filters are currently active.
Not yet correctly aligned wrt search
results list.
2015-08-13 15:11:22 -07:00
slhale
c8694f182a [Search] Menu opening
Menu opens when icon is pressed. Closes when
cliked away from, but not when clicked on.
2015-08-13 13:59:56 -07:00
slhale
2e767c94c4 [Search] Update load-more, add check-all
Make the 'Load more' button work with the
new filtered results. Added 'ALL' to the top
of the search menu which allows the user to
toggle all of the filtering options easily.
2015-08-13 13:19:25 -07:00
slhale
b26aa3cab7 [Search] Filter search
Filtering search using the search menu works.
Load more does not work with this yet.
2015-08-13 11:45:46 -07:00
slhale
c51856522c [Search] Menu checkboxes and labels
Added checkboxes with styling to the menu. Set
up a types list for the menu.
2015-08-13 10:59:12 -07:00
slhale
edf52f32ad [Search] Search menu
Creating a search menu which will allow for
more specific search options.
So far have started top-down with styling.
In progress.
2015-08-12 16:13:36 -07:00
slhale
41ddb76385 [Search] Remove unnecissary line 2015-08-12 13:24:39 -07:00
slhale
dd993c81a7 [Search] Clear icon working
Clicking on the clear icon now clears
the input text in the search bar.
2015-08-12 12:46:01 -07:00
slhale
a76e54483a [Search] Clear icon tweaks
Comments and CSS. Still not clickable.
2015-08-12 11:20:02 -07:00
slhale
515470fa6a [Search] Timeout length & indexed check
Changed timeout to 0 ms. Changed check for
already indexed to an empty return.
2015-08-12 11:03:10 -07:00
slhale
cab675c8ca [Search] Timeout length & indexed check
Changed timeout to 0 ms. Changed check for
already indexed to an empty return.
2015-08-12 10:57:37 -07:00
slhale
3555f41f3e [Search] Adding clear text button
It is in place, but clicking on it does nothing yet.
2015-08-12 10:27:34 -07:00
slhale
9dd520f17b [Search] Break up item indexing
Use timeouts to make the generic search's item
indexing not block up the page.
Updated tests accordingly.
2015-08-12 10:06:27 -07:00
slhale
0520f1c70c [Search] Update tests
Test creation of the generic search provider
provides mock timeout argument. Slight change to
tree indexing test due to use of useCapability
function.
2015-08-12 09:53:23 -07:00
slhale
3b62f1a979 [Search] Break up item indexing
Use timeouts to make the generic search's item
indexing not block up the page.
2015-08-12 09:42:21 -07:00
slhale
48693df51f [Search] Input checks
More checks to see if the input is empty
before doing search computations.
2015-08-11 13:52:23 -07:00
slhale
23bc246a48 [Search] Search icon
Search icon now is not visible when text is
entered in the search bar, even when the bar
is not in focus.
2015-08-11 13:18:05 -07:00
slhale
11a45e4db0 [Search] Input checks
More checks to see if the input is empty
before doing search computations.
2015-08-11 13:08:58 -07:00
slhale
109d933945 [Search] Fix test file path 2015-08-11 10:42:10 -07:00
slhale
7b471e5379 [Search] Search icon
Moved the search icon to appear within the
text input area, and dissapears when the
input area is focused.
2015-08-11 10:35:08 -07:00
slhale
7141c2818a [Search] Search icon near input
Added a search icon next to the search bar
input.
2015-08-06 16:59:09 -07:00
slhale
1d2cd4745c [Search] Update tests
Updated generic provider test for more general
mock capability object.
2015-08-06 15:01:45 -07:00
slhale
ee2d7efae2 [Search] Index checks for changes
When indexing items initially, the generic
provider listens for mutations in case an
item's composition changes, so it can then
index the new children.
2015-08-06 15:01:17 -07:00
slhale
7cad3ba0bc [Search] Update tests
Updated generic provider test for more general
mock capability object.
2015-08-06 14:52:54 -07:00
slhale
168a805e8e [Search] Index checks for changes
When indexing items initially, the generic
provider listens for mutations in case an
item's composition changes, so it can then
index the new children.
2015-08-06 14:41:47 -07:00
slhale
e0a0d293fa [Search] Update test
Fully calls through the controller's search().
2015-08-06 10:35:57 -07:00
slhale
1a4d7618c1 [Search] Infinite cycle check
in indexItems in the generic provider.
2015-08-06 10:33:17 -07:00
slhale
a2eabc1b08 [Search] Infinite cycle check
in indexItems in the generic provider.
2015-08-06 10:25:02 -07:00
slhale
f76f6548a5 [Search] Type checking
Added type checking for arrays to indexItems.
2015-08-06 10:13:32 -07:00
slhale
44dce05ec5 [Search] Correct test file paths 2015-08-06 10:12:44 -07:00
slhale
e729a966c7 [Search] Type checking
Added type checking for arrays to indexItems.
2015-08-06 10:12:34 -07:00
slhale
836c508698 [Search] Style compliance 2015-08-06 09:55:08 -07:00
slhale
1fe492cc3d [Search] New item indexer
This one (hopefully) doesn't fill up the
call stack when there are lots of items.
2015-08-06 09:51:09 -07:00