diff --git a/app/components/requests-item.coffee b/app/components/requests-item.coffee new file mode 100644 index 00000000..a80b0d74 --- /dev/null +++ b/app/components/requests-item.coffee @@ -0,0 +1,41 @@ +`import Ember from 'ember'` +`import config from 'travis/config/environment'` + +RequestsItemComponent = Ember.Component.extend + classNames: ['tile', 'tile--jobs', 'row'] + classNameBindings: ['requestClass'] + tagName: 'li' + + requestClass: (-> + if @get('request.isAccepted') + 'accepted' + else + 'rejected' + ).property('content.isAccepted') + + type: (-> + if @get('request.isPullRequest') + 'pull_request' + else + 'push' + ).property('request.isPullRequest') + + status: (-> + if @get('request.isAccepted') + 'Accepted' + else + 'Rejected' + ).property('request.isAccepted') + + message: (-> + message = @get('request.message') + if config.pro && message == "private repository" + '' + else if !message + 'Build created successfully ' + else + message + ).property('request.message') + + +`export default RequestsItemComponent` diff --git a/app/controllers/repo.coffee b/app/controllers/repo.coffee index dd8ed09f..6ae60aa3 100644 --- a/app/controllers/repo.coffee +++ b/app/controllers/repo.coffee @@ -2,12 +2,11 @@ `import { githubRepo } from 'travis/utils/urls'` Controller = Ember.Controller.extend - needs: ['repos', 'currentUser', 'build', 'request', 'job'] + needs: ['repos', 'currentUser', 'build', 'job'] currentUserBinding: 'controllers.currentUser.model' build: Ember.computed.alias('controllers.build.build') job: Ember.computed.alias('controllers.job.job') - request: Ember.computed.alias('controllers.request.model') slug: (-> @get('repo.slug') ).property('repo.slug') isLoading: (-> @get('repo.isLoading') ).property('repo.isLoading') diff --git a/app/controllers/request.coffee b/app/controllers/request.coffee deleted file mode 100644 index 59173b06..00000000 --- a/app/controllers/request.coffee +++ /dev/null @@ -1,35 +0,0 @@ -`import Ember from 'ember'` - -Controller = Ember.ObjectController.extend - requestClass: (-> - if @get('content.isAccepted') - 'accepted' - else - 'rejected' - ).property('content.isAccepted') - - type: (-> - if @get('isPullRequest') - 'pull_request' - else - 'push' - ).property('isPullRequest') - - status: (-> - if @get('isAccepted') - 'Accepted' - else - 'Rejected' - ).property('isAccepted') - - message: (-> - message = @get('model.message') - if @config.pro && message == "private repository" - '' - else if !message - 'Build created successfully ' - else - message - ).property('model.message') - -`export default Controller` diff --git a/app/templates/components/requests-item.hbs b/app/templates/components/requests-item.hbs new file mode 100644 index 00000000..a931f716 --- /dev/null +++ b/app/templates/components/requests-item.hbs @@ -0,0 +1,30 @@ +
+ +
+ +

{{format-time request.created_at}}

+ +

+ + {{#if request.isPullRequest}} + #{{request.pullRequestNumber}} + {{else}} + {{request.branchName}} + {{/if}} + {{github-commit-link request.repo.slug request.commit.sha}} +

+ +

+ {{{format-message request.commit.message short="true" repoBinding=request.build.repo}}} +

+ +

+ {{#if request.build}} + + {{#link-to "build" request.build}} + {{request.build.number}}{{/link-to}} + {{else}} + - + {{/if}} +

+

{{message}}

diff --git a/app/templates/requests.hbs b/app/templates/requests.hbs index d0050a7c..14a0bce2 100644 --- a/app/templates/requests.hbs +++ b/app/templates/requests.hbs @@ -7,38 +7,7 @@ {{/if}} diff --git a/tests/unit/components/requests-item-test.coffee b/tests/unit/components/requests-item-test.coffee new file mode 100644 index 00000000..7b8f38a9 --- /dev/null +++ b/tests/unit/components/requests-item-test.coffee @@ -0,0 +1,17 @@ +`import { test, moduleForComponent } from 'ember-qunit'` + +moduleForComponent 'requests-item', { + # specify the other units that are required for this test + # needs: ['component:foo', 'helper:bar'] +} + +test 'it renders', (assert) -> + assert.expect 2 + + # creates the component instance + component = @subject() + assert.equal component._state, 'preRender' + + # renders the component to the page + @render() + assert.equal component._state, 'inDOM'