From 834e45ceb5da85fa74fae5477df180f79fdbcb2a Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Tue, 27 Nov 2012 22:36:13 +0100 Subject: [PATCH] Don't require loading repos when dislaying queues and workers --- assets/scripts/app/models/job.coffee | 10 ++++++++++ assets/scripts/app/models/repo.coffee | 11 ++++++----- assets/scripts/app/models/worker.coffee | 8 ++++++++ assets/scripts/app/routes.coffee | 7 ++++++- assets/scripts/app/templates/queues/list.hbs | 7 +++---- assets/scripts/app/templates/workers/list.hbs | 2 +- 6 files changed, 34 insertions(+), 11 deletions(-) diff --git a/assets/scripts/app/models/job.coffee b/assets/scripts/app/models/job.coffee index f6398bde..13d6c2e8 100644 --- a/assets/scripts/app/models/job.coffee +++ b/assets/scripts/app/models/job.coffee @@ -14,11 +14,21 @@ require 'travis/model' finishedAt: DS.attr('string') allowFailure: DS.attr('boolean', key: 'allow_failure') + repositorySlug: DS.attr('string') + repo: DS.belongsTo('Travis.Repo', key: 'repository_id') build: DS.belongsTo('Travis.Build', key: 'build_id') commit: DS.belongsTo('Travis.Commit', key: 'commit_id') log: DS.belongsTo('Travis.Artifact', key: 'log_id') + repoSlug: (-> + @get('repositorySlug') + ).property('repositorySlug') + + repoData: (-> + { id: @get('repoId'), slug: @get('repoSlug') } + ).property('repoSlug', 'repoId') + config: (-> Travis.Helpers.compact(@get('data.config')) ).property('data.config') diff --git a/assets/scripts/app/models/repo.coffee b/assets/scripts/app/models/repo.coffee index 5120ae4d..bb706ac2 100644 --- a/assets/scripts/app/models/repo.coffee +++ b/assets/scripts/app/models/repo.coffee @@ -84,11 +84,12 @@ require 'travis/model' ).property('lastBuildFinishedAt', 'lastBuildId') stats: (-> - @get('_stats') || $.get("https://api.github.com/repos/#{@get('slug')}", (data) => - @set('_stats', data) - @notifyPropertyChange 'stats' - ) && {} - ).property() + if @get('slug') + @get('_stats') || $.get("https://api.github.com/repos/#{@get('slug')}", (data) => + @set('_stats', data) + @notifyPropertyChange 'stats' + ) && {} + ).property('slug') updateTimes: -> @notifyPropertyChange 'lastBuildDuration' diff --git a/assets/scripts/app/models/worker.coffee b/assets/scripts/app/models/worker.coffee index afb105cb..66c3bdaa 100644 --- a/assets/scripts/app/models/worker.coffee +++ b/assets/scripts/app/models/worker.coffee @@ -26,6 +26,10 @@ require 'travis/model' Travis.Job.find @get('job_id') ).property('jobId') + repoData: (-> + { id: @get('repoId'), slug: @get('repoSlug') } + ).property('repoSlug', 'repoId') + repo: (-> Travis.Repo.find(@get('payload.repository.id') || @get('payload.repo.id')) ).property('payload.repository.id', 'payload.repo.id') @@ -34,6 +38,10 @@ require 'travis/model' @get('payload.repo.slug') || @get('payload.repository.slug') ).property('payload.repo.slug', 'payload.repository.slug') + repoId: (-> + @get('payload.repo.id') || @get('payload.repository.id') + ).property('payload.repo.id', 'payload.repository.id') + nameForSort: (-> if name = @get('name') match = name.match /(.*?)-(\d+)/ diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index f7c9ff5c..2e56825b 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -202,6 +202,8 @@ Travis.Router = Ember.Router.extend dynamicSegmentPattern: "([^/#]+)" connectOutlets: (router, repo) -> + unless repo.constructor == Travis.Repo + repo = Travis.Repo.find(repo.id) router.get('repoController').set 'repo', repo deserialize: (router, params) -> @@ -225,8 +227,11 @@ Travis.Router = Ember.Router.extend if typeof repo == 'string' [owner, name] = repo.split '/' { owner: owner, name: name } - else if repo + else if repo && repo.constructor == Travis.Repo { owner: repo.get('owner'), name: repo.get('name') } + else if repo && repo.id && repo.slug + [owner, name] = repo.slug.split '/' + { owner: owner, name: name } else # TODO: it would be nice to handle 404 somehow {} diff --git a/assets/scripts/app/templates/queues/list.hbs b/assets/scripts/app/templates/queues/list.hbs index 156e0810..04559c0a 100644 --- a/assets/scripts/app/templates/queues/list.hbs +++ b/assets/scripts/app/templates/queues/list.hbs @@ -5,11 +5,10 @@