Travis.CachesController = Ember.ArrayController.extend isDeleting: false needs: ['repo'] repo: Ember.computed.alias('controllers.repo.repo') actions: deleteRepoCache: -> return if @get('isDeleting') if confirm('Are you sure?') @set('isDeleting', true) deletingDone = => @set('isDeleting', false) repo = @get('repo') Travis.ajax.ajax("/repos/#{repo.get('id')}/caches", "DELETE").then(deletingDone, deletingDone).then => @clear() Travis.CachesByBranchController = Ember.ObjectController.extend isDeleting: false needs: ['repo', 'caches'] repo: Ember.computed.alias('controllers.repo.repo') actions: delete: -> return if @get('isDeleting') if confirm('Are you sure?') @set('isDeleting', true) data = { branch: @get('branch') } deletingDone = => @set('isDeleting', false) repo = @get('repo') Travis.ajax.ajax("/repos/#{repo.get('id')}/caches", "DELETE", data: data).then(deletingDone, deletingDone).then => model = @get('model') @get('controllers.caches').removeObject(model) Travis.CacheItemController = Ember.ObjectController.extend isDeleting: false needs: ['repo', 'caches'] repo: Ember.computed.alias('controllers.repo.repo') actions: delete: -> return if @get('isDeleting') if confirm('Are you sure?') @set('isDeleting', true) data = { branch: @get('branch'), match: @get('slug') } deletingDone = => @set('isDeleting', false) repo = @get('repo') Travis.ajax.ajax("/repos/#{repo.get('id')}/caches", "DELETE", data: data).then(deletingDone, deletingDone).then => model = @get('model') @get('parent.caches').removeObject(model) if @get('parent.caches.length') == 0 @get('controllers.caches').removeObject(@get('parent'))