diff --git a/app/components/orgs-filter.coffee b/app/components/orgs-filter.coffee index 53f39177..037e4c64 100644 --- a/app/components/orgs-filter.coffee +++ b/app/components/orgs-filter.coffee @@ -2,9 +2,12 @@ Component = Ember.Component.extend - actions: { + actions: + toggleOrgFilter: () -> + @toggleProperty('showFilter') + false select: (org) -> + @toggleProperty('showFilter') @sendAction('action', org) - } `export default Component` diff --git a/app/controllers/branches.coffee b/app/controllers/branches.coffee index ae8144e8..00fc8a80 100644 --- a/app/controllers/branches.coffee +++ b/app/controllers/branches.coffee @@ -7,15 +7,16 @@ BranchesController = Ember.Controller.extend defaultBranch: (-> repos = @get('model') output = repos.filter (item, index) -> - item if item.repository.default_branch['@href'] == item['@href'] - output[0] + item if item.default_branch == true + if output.length + output[0] ).property('model') activeBranches: (-> repos = @get('model') repos = repos.filter (item, index) -> - item if item.exists_on_github == true && item.repository.default_branch['@href'] != item['@href'] - .sortBy('last_build.finished_at') + item if item.exists_on_github == true && item.default_branch == false + .sortBy('default_branch.last_build.finished_at') .reverse() ).property('model') diff --git a/app/controllers/dashboard/repositories.coffee b/app/controllers/dashboard/repositories.coffee index cdeae39b..0f06dbe6 100644 --- a/app/controllers/dashboard/repositories.coffee +++ b/app/controllers/dashboard/repositories.coffee @@ -12,7 +12,8 @@ Controller = Ember.Controller.extend org = @get('org') repos = repos.filter (item, index) -> - item.get('default_branch.last_build') != null + if item.get('default_branch') + item.get('default_branch.last_build') != null .sortBy('default_branch.last_build.finished_at') .reverse() diff --git a/app/controllers/owner/repositories.coffee b/app/controllers/owner/repositories.coffee index 7a3d4664..b047b089 100644 --- a/app/controllers/owner/repositories.coffee +++ b/app/controllers/owner/repositories.coffee @@ -8,7 +8,8 @@ Controller = Ember.Controller.extend data = @get('model') repos = data.repositories.filter (item, index) -> - if item.default_branch.last_build + if item.active + console.log(item) item repos.sortBy('default_branch.last_build.finished_at').reverse() diff --git a/app/routes/branches.coffee b/app/routes/branches.coffee index 45c75b41..bfd60170 100644 --- a/app/routes/branches.coffee +++ b/app/routes/branches.coffee @@ -8,12 +8,15 @@ Route = TravisRoute.extend apiEndpoint = config.apiEndpoint repoId = @modelFor('repo').get('id') + allTheBranches = Ember.ArrayProxy.create() + options = {} if @get('auth.signedIn') options.headers = { Authorization: "token #{@auth.token()}" } $.ajax("#{apiEndpoint}/v3/repo/#{repoId}/branches?include=build.commit&limit=100", options).then (response) -> - response.branches + allTheBranches = response.branches + allTheBranches activate: () -> $('.tab.tabs--main li').removeClass('active') diff --git a/app/routes/dashboard.coffee b/app/routes/dashboard.coffee index 8ca483cf..e49e7838 100644 --- a/app/routes/dashboard.coffee +++ b/app/routes/dashboard.coffee @@ -2,12 +2,5 @@ Route = TravisRoute.extend needsAuth: true - # activate: -> - # @get('stylesheetsManager').disable('main') - # @get('stylesheetsManager').enable('dashboard') - - # deactivate: -> - # @get('stylesheetsManager').enable('main') - # @get('stylesheetsManager').disable('dashboard') `export default Route` diff --git a/app/routes/dashboard/repositories.coffee b/app/routes/dashboard/repositories.coffee index 93976fd5..36ec9c4a 100644 --- a/app/routes/dashboard/repositories.coffee +++ b/app/routes/dashboard/repositories.coffee @@ -7,22 +7,16 @@ Route = TravisRoute.extend filter: { replace: true } model: -> apiEndpoint = config.apiEndpoint - $.ajax(apiEndpoint + '/v3/repos?repository.active=true&include=build.commit', { + $.ajax(apiEndpoint + '/v3/repos?repository.active=true&include=repository.default_branch,build.commit', { headers: { Authorization: 'token ' + @auth.token() } }).then (response) -> - response.repositories.sortBy('last_build.finished_at').filter( (repo) -> - repo.last_build - ).sort( (a, b) -> - if !a.last_build.finished_at || a.last_build.finished_at > b.last_build.finished_at - return -1 - else if !b.last_build.finished_at || b.last_build.finished_at > a.last_build.finished_at - return 1 - else - return 0 + response.repositories.filter( (repo) -> + if repo.default_branch + repo.default_branch.last_build ).map( (repo) -> Ember.Object.create(repo) - ) + ).sortBy('default_branch.last_build.finished_at') `export default Route` diff --git a/app/routes/owner.coffee b/app/routes/owner.coffee index fe78bb4f..926a6de7 100644 --- a/app/routes/owner.coffee +++ b/app/routes/owner.coffee @@ -11,7 +11,7 @@ Route = TravisRoute.extend options = {} if @get('auth.signedIn') options.headers = { Authorization: "token #{@auth.token()}" } - $.ajax(config.apiEndpoint + "/v3/owner/#{params.owner}", options) + $.ajax(config.apiEndpoint + "/v3/owner/#{params.owner}?include=organization.repositories,repository.default_branch,build.commit", options) beforeModel: -> @controllerFor('loading').set('layoutName', 'simple') diff --git a/app/routes/owner/repositories.coffee b/app/routes/owner/repositories.coffee index 404c2574..80ede5f4 100644 --- a/app/routes/owner/repositories.coffee +++ b/app/routes/owner/repositories.coffee @@ -13,6 +13,7 @@ Route = TravisRoute.extend options = {} if @get('auth.signedIn') options.headers = { Authorization: "token #{@auth.token()}" } - $.ajax(config.apiEndpoint + "/v3/owner/#{transition.params.owner.owner}?include=user.repositories,organization.repositories,build.commit,repository.active", options) + $.ajax(config.apiEndpoint + "/v3/owner/#{transition.params.owner.owner}?include=organization.repositories,repository.default_branch,build.commit", options).then (response) -> + response `export default Route` diff --git a/app/styles/app/modules/dropdown.sass b/app/styles/app/modules/dropdown.sass index ee34d863..6afc0633 100644 --- a/app/styles/app/modules/dropdown.sass +++ b/app/styles/app/modules/dropdown.sass @@ -83,9 +83,8 @@ $dropdown-border: #C3D9DB a font-weight: 600 -.filter-current:hover ~ .filter-dropdown, -.filter-dropdown:hover - display: block + &.is-open + display: block diff --git a/app/templates/components/dashboard-row.hbs b/app/templates/components/dashboard-row.hbs index 035f9d26..c26b3e7a 100644 --- a/app/templates/components/dashboard-row.hbs +++ b/app/templates/components/dashboard-row.hbs @@ -9,7 +9,7 @@
- {{#link-to "build" repo.owner.login repo.name repo.last_build.id}} + {{#link-to "build" repo.owner.login repo.name repo.default_branch.last_build.id}} {{request-icon build=repo.default_branch.last_build}} #{{repo.default_branch.last_build.number}} {{repo.default_branch.last_build.state}} on {{repo.default_branch.name}} {{/link-to}} diff --git a/app/templates/components/orgs-filter.hbs b/app/templates/components/orgs-filter.hbs index 5323e841..b929ac85 100644 --- a/app/templates/components/orgs-filter.hbs +++ b/app/templates/components/orgs-filter.hbs @@ -3,7 +3,7 @@ {{#if orgs.isLoading}} {{loading-indicator}} {{else}} - + {{#if selected }} {{org.login}} {{#if selected.name}} @@ -17,7 +17,7 @@ {{/if}}
-
{{else}} -

there is no build

+

There is no build on the default branch yet.

{{/if}} diff --git a/app/templates/dashboard/repositories.hbs b/app/templates/dashboard/repositories.hbs index 24f7008a..5285f34f 100644 --- a/app/templates/dashboard/repositories.hbs +++ b/app/templates/dashboard/repositories.hbs @@ -19,6 +19,8 @@ {{!--
--}} diff --git a/tests/acceptance/dashboard-test.coffee b/tests/acceptance/dashboard-test.coffee index 94844ce5..33211dd5 100644 --- a/tests/acceptance/dashboard-test.coffee +++ b/tests/acceptance/dashboard-test.coffee @@ -13,44 +13,72 @@ module 'Acceptance: Dashboard', server = new Pretender -> @get('/v3/repos', (request) -> data = { - "@type": "repositories", - "repositories": [{ + "repositories": [ "@type": "repository", - "active": true, - "id": 1, - "name": "travis-web", - "slug": "travis-ci/travis-web", - "description": "The Ember web client for Travis CI", - "github_language": "CoffeeScript", - "private": false, - "owner": { - "@type": "organization", - "id": 1, - "login": "travis-ci" + "@href": "/v3/repo/4289199", + "@representation": "standard", + "@permissions": { + "read": true, + "enable": true, + "disable": true, + "create_request": true }, - "last_build": { - "@type": "build", - "id": 1, - "number": "1", - "state": "passed", - "duration": 20, - "started_at": "2015-02-05T09:58:31Z", - "finished_at": "2015-02-05T10:09:10Z" - } - }, { - "@type": "repository", + "id": 4289199, + "name": "jupiter-brain", + "slug": "travis-ci/jupiter-brain", + "description": "Jupiter Brain manages servers", + "github_language": "Go", "active": true, - "id": 2, - "name": "travis-test", - "slug": "travis-ci/travis-test", "private": false, "owner": { "@type": "organization", "id": 87, - "login": "travis-ci" + "login": "travis-ci", + "@href": "/v3/org/87" }, - "last_build": null - }] + "default_branch": { + "@type": "branch", + "@href": "/v3/repo/4289199/branch/master", + "@representation": "standard", + "name": "master", + "repository": { + "@href": "/v3/repo/4289199" + }, + "default_branch": true, + "exists_on_github": true, + "last_build": { + "@type": "build", + "@href": "/v3/build/81667484", + "@representation": "minimal", + "id": 81667484, + "number": "77", + "state": "passed", + "duration": 107, + "event_type": "push", + "previous_state": "passed", + "started_at": "2015-09-22T20:56:03Z", + "finished_at": "2015-09-22T20:57:50Z", + "commit": { + "@type": "commit", + "@representation": "standard", + "id": 23259185, + "sha": "39f658654f2d458af074b600d11e47547988ee56", + "ref": "refs/heads/master", + "message": "Merge pull request #6 from travis-ci/hh-circuit-breaker\n\nvsphere: add circuit breaker between Jupiter Brain and vSphere", + "compare_url": "https://github.com/travis-ci/jupiter-brain/compare/923f220a494f...39f658654f2d", + "committed_at": "2015-09-22T20:55:43Z", + "committer": { + "name": "emma trimble", + "avatar_url": "https://0.gravatar.com/avatar/e3058e8bba1f2b87defccd5695070782" + }, + "author": { + "name": "emma trimble", + "avatar_url": "https://0.gravatar.com/avatar/e3058e8bba1f2b87defccd5695070782" + } + } + } + } + ] } return [200, { "Content-Type": "application/json" }, JSON.stringify(data)] ) @@ -64,4 +92,4 @@ test 'visiting /dashboard', -> andThen -> equal find('.dashboard-active .dashboard-row').length, 1, 'there should be one repo displayed on dashboard' - equal find('.dashboard-active .dashboard-row h2').text(), 'travis-web', 'travis-web repository should be displayed' + equal find('.dashboard-active .dashboard-row h2').text(), 'jupiter-brain', 'jupiter-brain repository should be displayed'