define(["focusManager", "searchFields", "searchResults", "events"], function(focusManager, SearchFields, SearchResults, events) { "use strict"; return function(view, params) { function onSearch(e, value) { self.searchResults.search(value) } var self = this; view.addEventListener("viewshow", function() { self.searchFields || (self.searchFields = new SearchFields({ element: view.querySelector(".searchFields") }), self.searchResults = new SearchResults({ element: view.querySelector(".searchResults"), serverId: params.serverId || ApiClient.serverId(), parentId: params.parentId, collectionType: params.collectionType }), events.on(self.searchFields, "search", onSearch)) }), view.addEventListener("viewdestroy", function() { self.searchFields && (self.searchFields.destroy(), self.searchFields = null), self.searchResults && (self.searchResults.destroy(), self.searchResults = null) }) } });