Fix filtering for queue and running jobs

This commit is contained in:
Piotr Sarnacki 2013-08-27 23:26:04 +02:00
parent 08d17fdf2b
commit 34ae33f087
2 changed files with 22 additions and 6 deletions

View File

@ -104,8 +104,7 @@ require 'travis/model'
@Travis.Job.reopenClass
queued: (queue) ->
@find()
Ember.FilteredRecordArray.create(
filtered = Ember.FilteredRecordArray.create(
modelClass: Travis.Job
filterFunction: (job) ->
queued = ['created', 'queued'].indexOf(job.get('state')) != -1
@ -115,13 +114,24 @@ require 'travis/model'
filterProperties: ['state', 'queue']
)
@fetch(state: 'started').then (array) ->
filtered.updateFilter()
filtered.set('isLoaded', true)
filtered
running: ->
@find(state: 'started')
Ember.FilteredRecordArray.create(
filtered = Ember.FilteredRecordArray.create(
modelClass: Travis.Job
filterFunction: (job) ->
job.get('state') == 'started'
filterProperties: ['state']
)
@fetch(state: 'started').then (array) ->
filtered.updateFilter()
filtered.set('isLoaded', true)
filtered

View File

@ -186,6 +186,8 @@ Ember.FilteredRecordArray = Ember.RecordArray.extend({
get(this, 'modelClass').forEachCachedRecord(function(record) {
if (self.filterFunction(record)) {
results.push(record);
} else {
results.removeObject(record);
}
});
this.set('content', Ember.A(results));
@ -193,8 +195,12 @@ Ember.FilteredRecordArray = Ember.RecordArray.extend({
updateFilterForRecord: function(record) {
var results = get(this, 'content');
if (this.filterFunction(record) && !results.contains(record)) {
results.pushObject(record);
if (this.filterFunction(record)) {
if(!results.contains(record)) {
results.pushObject(record);
}
} else {
results.removeObject(record);
}
},