From 09f27d47be6fb9c849d3c31679dd2975de2f5a8e Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Wed, 9 Dec 2015 10:11:00 +0100 Subject: [PATCH] Fix search --- app/controllers/repos.js | 4 +++- app/models/repo.coffee | 19 +++++++++++-------- app/routes/getting-started.coffee | 4 +++- app/routes/main.coffee | 2 +- app/routes/repo.coffee | 1 + 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/app/controllers/repos.js b/app/controllers/repos.js index a94ff617..cd46c791 100644 --- a/app/controllers/repos.js +++ b/app/controllers/repos.js @@ -50,6 +50,8 @@ var sortCallback = function(repo1, repo2) { var Controller = Ember.Controller.extend({ + ajax: Ember.inject.service(), + actions: { activate: function(name) { return this.activate(name); @@ -174,7 +176,7 @@ var Controller = Ember.Controller.extend({ viewSearch(phrase) { this.set('search', phrase); this.set('isLoaded', false); - Repo.search(this.store, phrase).then( (reposRecordArray) => { + Repo.search(this.store, this.get('ajax'), phrase).then( (reposRecordArray) => { this.set('isLoaded', true); this.set('_repos', reposRecordArray); }); diff --git a/app/models/repo.coffee b/app/models/repo.coffee index ced73b63..b57af656 100644 --- a/app/models/repo.coffee +++ b/app/models/repo.coffee @@ -140,17 +140,20 @@ Repo.reopenClass promise - search: (store, query) -> - promise = store.query('repo', search: query, orderBy: 'name') + search: (store, ajax, query) -> + queryString = $.param(search: query, orderBy: 'name', limit: 5) + promise = ajax.ajax("/repos?#{queryString}", 'get') result = Ember.ArrayProxy.create(content: []) - promise.then -> - result.pushObjects(promise.get('content').toArray()) - result.set('isLoaded', true) + promise.then (data, status, xhr) -> + promises = data.repos.map (repoData) -> + store.findRecord('repo', repoData.id).then (record) -> + result.pushObject(record) + result.set('isLoaded', true) + record - result - - promise + Ember.RSVP.allSettled(promises).then -> + result withLastBuild: (store) -> repos = store.filter('repo', {}, (build) -> diff --git a/app/routes/getting-started.coffee b/app/routes/getting-started.coffee index 52b7cc75..929e99f1 100644 --- a/app/routes/getting-started.coffee +++ b/app/routes/getting-started.coffee @@ -1,5 +1,7 @@ `import TravisRoute from 'travis/routes/basic'` -Route = TravisRoute.extend() +Route = TravisRoute.extend + setupController: (controller)-> + @container.lookup('controller:repos').activate('owned') `export default Route` diff --git a/app/routes/main.coffee b/app/routes/main.coffee index bbcc1151..46afa39f 100644 --- a/app/routes/main.coffee +++ b/app/routes/main.coffee @@ -14,6 +14,6 @@ Route = TravisRoute.extend setupController: (controller)-> # TODO: this is redundant with repositories and recent routes - @container.lookup('controller:repos').activate('owned') + #@container.lookup('controller:repos').activate('owned') `export default Route` diff --git a/app/routes/repo.coffee b/app/routes/repo.coffee index eb80dcc4..9bf034dc 100644 --- a/app/routes/repo.coffee +++ b/app/routes/repo.coffee @@ -11,6 +11,7 @@ Route = TravisRoute.extend @render 'repo', into: 'main' setupController: (controller, model) -> + @container.lookup('controller:repos').activate('owned') # TODO: if repo is just a data hash with id and slug load it # as incomplete record model = @get('store').find('repo', model.id) if model && !model.get