diff --git a/assets/scripts/app/controllers.coffee b/assets/scripts/app/controllers.coffee index a8c9be07..1355f8be 100644 --- a/assets/scripts/app/controllers.coffee +++ b/assets/scripts/app/controllers.coffee @@ -49,6 +49,7 @@ Travis.FirstSyncController = Em.Controller.extend isSyncing: Ember.computed.alias('user.isSyncing') Travis.IndexErrorController = Em.Controller.extend() +Travis.BuildsItemController = Em.ObjectController.extend(Travis.GithubUrlProperties) require 'controllers/accounts' require 'controllers/auth' diff --git a/assets/scripts/app/controllers/build.coffee b/assets/scripts/app/controllers/build.coffee index 6e61ab6f..c8763418 100644 --- a/assets/scripts/app/controllers/build.coffee +++ b/assets/scripts/app/controllers/build.coffee @@ -1,4 +1,4 @@ -Travis.BuildController = Ember.Controller.extend +Travis.BuildController = Ember.Controller.extend Travis.GithubUrlProperties, needs: ['repo'] repoBinding: 'controllers.repo.repo' commitBinding: 'build.commit' @@ -10,7 +10,3 @@ Travis.BuildController = Ember.Controller.extend loading: (-> @get('build.isLoading') ).property('build.isLoading') - - urlGithubCommit: (-> - Travis.Urls.githubCommit(@get('repo.slug'), @get('commit.sha')) - ).property('repo.slug', 'commit.sha') diff --git a/assets/scripts/app/controllers/builds.coffee b/assets/scripts/app/controllers/builds.coffee index 7339c3f5..1ebd215e 100644 --- a/assets/scripts/app/controllers/builds.coffee +++ b/assets/scripts/app/controllers/builds.coffee @@ -1,4 +1,6 @@ Travis.BuildsController = Em.ArrayController.extend + isPullRequestsList: false + sortAscending: false sortProperties: ['number'] diff --git a/assets/scripts/app/helpers.coffee b/assets/scripts/app/helpers.coffee index 98608e18..5c5b4f46 100644 --- a/assets/scripts/app/helpers.coffee +++ b/assets/scripts/app/helpers.coffee @@ -2,3 +2,4 @@ require 'helpers/handlebars' require 'helpers/helpers' require 'helpers/urls' require 'helpers/status_image_formatter' +require 'helpers/github_url_properties' diff --git a/assets/scripts/app/helpers/github_url_properties.coffee b/assets/scripts/app/helpers/github_url_properties.coffee new file mode 100644 index 00000000..6a19e21c --- /dev/null +++ b/assets/scripts/app/helpers/github_url_properties.coffee @@ -0,0 +1,8 @@ +Travis.GithubUrlProperties = Ember.Mixin.create + urlGithubCommit: (-> + Travis.Urls.githubCommit(@get('repo.slug'), @get('commit.sha')) + ).property('repo.slug', 'commit.sha') + + urlGithubPullRequest: (-> + Travis.Urls.githubPullRequest(@get('repo.slug'), @get('build.pullRequestNumber')) + ).property('repo.slug', 'build.pullRequestNumber') diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 2ce50a2e..44804e4a 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -195,8 +195,19 @@ Travis.AbstractBuildsRoute = Travis.Route.extend ).property('contentType') Travis.BuildsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'builds') -Travis.PullRequestsRoute = Travis.AbstractBuildsRoute.extend(contentType: 'pull_requests') Travis.BranchesRoute = Travis.AbstractBuildsRoute.extend(contentType: 'branches') +Travis.PullRequestsRoute = Travis.AbstractBuildsRoute.extend( + contentType: 'pull_requests' + + # TODO: it would be better to have separate controller for branches and PRs list + setupController: (controller, model) -> + @_super(controller, model) + + this.controllerFor('builds').set('isPullRequestsList', true) + + deactivate: -> + this.controllerFor('builds').set('isPullRequestsList', false) +) Travis.BuildRoute = Travis.Route.extend serialize: (model, params) -> diff --git a/assets/scripts/app/templates/builds/list.hbs b/assets/scripts/app/templates/builds/list.hbs index ea2a408a..221b16eb 100644 --- a/assets/scripts/app/templates/builds/list.hbs +++ b/assets/scripts/app/templates/builds/list.hbs @@ -10,7 +10,7 @@ Committer - {{#if view.isPullRequestsList}} + {{#if isPullRequestsList}} PR @@ -21,7 +21,7 @@ - {{#each build in controller}} + {{#each build in controller itemController="buildsItem"}} {{#view Travis.BuildsItemView contextBinding="build"}} @@ -35,16 +35,16 @@ {{{formatMessage commit.message short="true" repoBinding=build.repo}}} - + {{formatCommit commit}} {{commit.committerName}} - {{#if view.isPullRequestsList}} + {{#if isPullRequestsList}} - + #{{pullRequestNumber}} diff --git a/assets/scripts/app/views/build.coffee b/assets/scripts/app/views/build.coffee index 6868b48c..58a464c9 100644 --- a/assets/scripts/app/views/build.coffee +++ b/assets/scripts/app/views/build.coffee @@ -3,10 +3,6 @@ Travis.reopen templateName: 'builds/list' buildsBinding: 'controller.builds' - isPullRequestsList: (-> - @get('controller.tab') == 'pull_requests' - ).property('controller.tab') - ShowMoreButton: Em.View.extend tagName: 'button' classNameBindings: ['isLoading', 'showMore'] @@ -37,14 +33,6 @@ Travis.reopen Travis.Helpers.colorForState(@get('build.state')) ).property('build.state') - urlGithubCommit: (-> - Travis.Urls.githubCommit(@get('repo.slug'), @get('commit.sha')) - ).property('repo.slug', 'commit.sha') - - urlGithubPullRequest: (-> - Travis.Urls.githubPullRequest(@get('repo.slug'), @get('build.pullRequestNumber')) - ).property('repo.slug', 'build.pullRequestNumber') - BuildView: Travis.View.extend templateName: 'builds/show' classNameBindings: ['color', 'loading']