Add spec coverage for ElasticSearchProvider. Also remove
unneeded guards for max number of results, as the aggregator
will always provide a max number of results.
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.
Rewrite the elasticsearch provider to use prototypes and clean up the implementation.
Now returns a modelResults object to keep it in line with the general 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.
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.
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.
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.
Merge in latest from master into topic branch for
nasa/openmctweb#115
Conflicts:
platform/features/conductor/src/ConductorRepresenter.js
platform/features/conductor/src/ConductorTelemetrySeries.js
platform/features/conductor/src/TimeConductor.js
platform/features/conductor/test/ConductorRepresenterSpec.js
platform/features/conductor/test/ConductorTelemetrySeriesSpec.js