From da9a34f06c74721171a559a7589d2fed65eaa675 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Wed, 31 Jul 2013 13:42:06 +0200 Subject: [PATCH] Change ED's filter() calls to FilteredArrays --- assets/scripts/app/models/job.coffee | 21 +++++++++++++++------ assets/scripts/app/models/repo.coffee | 14 +++++++++++--- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/assets/scripts/app/models/job.coffee b/assets/scripts/app/models/job.coffee index f4d85f2d..8508268d 100644 --- a/assets/scripts/app/models/job.coffee +++ b/assets/scripts/app/models/job.coffee @@ -113,15 +113,24 @@ require 'travis/model' @Travis.Job.reopenClass queued: (queue) -> @find() - Travis.store.filter this, (job) -> - queued = ['created', 'queued'].indexOf(job.get('state')) != -1 - # TODO: why queue is sometimes just common instead of build.common? - queued && (!queue || job.get('queue') == "builds.#{queue}" || job.get('queue') == queue) + Ember.FilteredRecordArray.create( + modelClass: Travis.Job + filterFunction: (job) -> + queued = ['created', 'queued'].indexOf(job.get('state')) != -1 + # TODO: why queue is sometimes just common instead of build.common? + queued && (!queue || job.get('queue') == "builds.#{queue}" || job.get('queue') == queue) + + filterProperties: ['state', 'queue'] + ) running: -> @find(state: 'started') - Travis.store.filter this, (job) -> - job.get('state') == 'started' + Ember.FilteredRecordArray.create( + modelClass: Travis.Job + filterFunction: (job) -> + job.get('state') == 'started' + filterProperties: ['state'] + ) findMany: (ids) -> Travis.store.findMany this, ids diff --git a/assets/scripts/app/models/repo.coffee b/assets/scripts/app/models/repo.coffee index fd29cd0a..a38f9420 100644 --- a/assets/scripts/app/models/repo.coffee +++ b/assets/scripts/app/models/repo.coffee @@ -118,7 +118,17 @@ require 'travis/model' @find(search: query, orderBy: 'name') withLastBuild: -> - @filter( (repo) -> (!repo.get('incomplete') || repo.isAttributeLoaded('lastBuildId')) && repo.get('lastBuildId') ) + filtered = Ember.FilteredRecordArray.create( + modelClass: Travis.Repo + filterFunction: (repo) -> repo.get('lastBuildId') + filterProperties: ['lastBuildId'] + ) + + Travis.Repo.fetch().then (array) -> + filtered.updateFilter() + filtered.set('isLoaded', true) + + filtered bySlug: (slug) -> repo = $.select(@find().toArray(), (repo) -> repo.get('slug') == slug) @@ -126,5 +136,3 @@ require 'travis/model' # buildURL: (slug) -> # if slug then slug else 'repos' - -