From 7363a1d7efd0537bc92b96c193704a8a5348ca93 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Thu, 13 Jun 2013 16:08:06 +0200 Subject: [PATCH 1/2] Render builds/not_found and repo/not_found in the next runloop run This is done to make sure that if something else render just after not_found, not_found will still be rendered. --- assets/scripts/app/routes.coffee | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index b1dac327..3215cbcf 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -124,7 +124,8 @@ Travis.SetupLastBuild = Ember.Mixin.create # TODO: it would be nicer to do it with promises repo = @controllerFor('repo').get('repo') if repo && repo.get('isLoaded') && !repo.get('lastBuild') - @render('builds/not_found', outlet: 'pane', into: 'repo') + Ember.run.next => + @render('builds/not_found', outlet: 'pane', into: 'repo') Travis.GettingStartedRoute = Ember.Route.extend setupController: -> @@ -281,7 +282,8 @@ Travis.RepoRoute = Ember.Route.extend proxy.set 'isLoading', false if repos.get('length') == 0 - self.render('repos/not_found', outlet: 'main') + Ember.run.next -> + self.render('repos/not_found', outlet: 'main') else proxy.set 'content', repos.objectAt(0) From fbed80f1666730d7c99df3f01c819af019acc342 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Thu, 13 Jun 2013 16:21:08 +0200 Subject: [PATCH 2/2] Display repos with no builds, but which are active in 'My repositories' When user activates a repository in the profile page, we now will display this repository on the 'My Repositories' list. When user chooses this repository, she will see an explenation why there is no builds and what could be done to fix this. Conflicts: assets/scripts/app/controllers.coffee assets/scripts/app/models/repo.coffee assets/scripts/app/templates/repos/list.hbs --- assets/scripts/app/controllers.coffee | 8 ++++++++ assets/scripts/app/models/repo.coffee | 3 ++- assets/scripts/app/routes.coffee | 2 +- assets/scripts/app/templates/builds/not_found.hbs | 6 +++++- assets/scripts/app/templates/repos/list.hbs | 13 ++++++++----- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/assets/scripts/app/controllers.coffee b/assets/scripts/app/controllers.coffee index f1b4f520..960e2024 100644 --- a/assets/scripts/app/controllers.coffee +++ b/assets/scripts/app/controllers.coffee @@ -48,6 +48,14 @@ Travis.FirstSyncController = Em.Controller.extend isSyncing: Ember.computed.alias('user.isSyncing') +Travis.BuildNotFoundController = Em.Controller.extend + needs: ['repo', 'currentUser'] + ownedAndActive: (-> + if permissions = @get('controllers.currentUser.permissions') + if repo = @get('controllers.repo.repo') + repo.get('active') && permissions.contains(parseInt(repo.get('id'))) + ).property('controllers.repo.repo', 'controllers.currentUser.permissions') + require 'controllers/accounts' require 'controllers/build' require 'controllers/builds' diff --git a/assets/scripts/app/models/repo.coffee b/assets/scripts/app/models/repo.coffee index 790b3f67..54fbdb42 100644 --- a/assets/scripts/app/models/repo.coffee +++ b/assets/scripts/app/models/repo.coffee @@ -12,6 +12,7 @@ require 'travis/model' lastBuildFinishedAt: Ember.attr('string') githubLanguage: Ember.attr('string') _lastBuildDuration: Ember.attr(Number, key: 'last_build_duration') + active: Ember.attr('boolean') lastBuild: Ember.belongsTo('Travis.Build', key: 'last_build_id') @@ -113,7 +114,7 @@ require 'travis/model' @find(owner_name: login, orderBy: 'name') accessibleBy: (login) -> - @find(member: login, orderBy: 'name') + @find(member: login, active: true) search: (query) -> @find(search: query, orderBy: 'name') diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 3215cbcf..1c296e1f 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -125,7 +125,7 @@ Travis.SetupLastBuild = Ember.Mixin.create repo = @controllerFor('repo').get('repo') if repo && repo.get('isLoaded') && !repo.get('lastBuild') Ember.run.next => - @render('builds/not_found', outlet: 'pane', into: 'repo') + @render('builds/not_found', outlet: 'pane', into: 'repo', controller: 'buildNotFound') Travis.GettingStartedRoute = Ember.Route.extend setupController: -> diff --git a/assets/scripts/app/templates/builds/not_found.hbs b/assets/scripts/app/templates/builds/not_found.hbs index 7fbeea2e..1226b546 100644 --- a/assets/scripts/app/templates/builds/not_found.hbs +++ b/assets/scripts/app/templates/builds/not_found.hbs @@ -1 +1,5 @@ -There are no builds for this repository. +{{#if ownedAndActive}} + This repository is active, but there are no builds yet. Builds will appear here after you push new commits to the repository. +{{else}} + There are no builds for this repository. +{{/if}} diff --git a/assets/scripts/app/templates/repos/list.hbs b/assets/scripts/app/templates/repos/list.hbs index 378891fc..60ffe6a4 100644 --- a/assets/scripts/app/templates/repos/list.hbs +++ b/assets/scripts/app/templates/repos/list.hbs @@ -14,11 +14,14 @@ {{#linkTo "repo" this class="slug"}}{{slug}}{{/linkTo}} {{/if}} - {{#with lastBuildHash}} - {{#if repo.slug}} - {{#linkTo "build" repo id class="last_build"}}{{number}}{{/linkTo}} - {{/if}} - {{/with}} + + {{#if lastBuild}} + {{#with lastBuildHash}} + {{#if repo.slug}} + {{#linkTo "build" repo id class="last_build"}}{{number}}{{/linkTo}} + {{/if}} + {{/with}} + {{/if}}

{{t repositories.duration}}: