travis-web/app/controllers/repo.coffee
Lisa P 1ba9548ad0 first iteration build header styles
build header styles 2nd iteration

make job header use component too

cleanup templates and markup for repo page

styles for the repo header

rewrite styles for repo header, cleanup tabs
2015-12-02 16:11:14 +01:00

99 lines
2.2 KiB
CoffeeScript

`import Ember from 'ember'`
`import { githubRepo } from 'travis/utils/urls'`
Controller = Ember.Controller.extend
needs: ['repos', 'currentUser', 'build', 'job']
currentUserBinding: 'controllers.currentUser.model'
classNames: ['repo']
build: Ember.computed.alias('controllers.build.build')
job: Ember.computed.alias('controllers.job.job')
slug: (-> @get('repo.slug') ).property('repo.slug')
isLoading: (-> @get('repo.isLoading') ).property('repo.isLoading')
init: ->
@_super.apply this, arguments
if !Ember.testing
Visibility.every @config.intervals.updateTimes, @updateTimes.bind(this)
updateTimes: ->
Ember.run this, ->
if builds = @get('builds')
builds.forEach (b) -> b.updateTimes()
if build = @get('build')
build.updateTimes()
if build && jobs = build.get('jobs')
jobs.forEach (j) -> j.updateTimes()
deactivate: ->
@stopObservingLastBuild()
activate: (action) ->
@stopObservingLastBuild()
this["view_#{action}".camelize()]()
viewIndex: ->
@observeLastBuild()
@connectTab('current')
viewCurrent: ->
@observeLastBuild()
@connectTab('current')
viewBuilds: ->
@connectTab('builds')
viewPullRequests: ->
@connectTab('pull_requests')
viewBranches: ->
@connectTab('branches')
viewBuild: ->
@connectTab('build')
viewJob: ->
@connectTab('job')
viewRequests: ->
@connectTab('requests')
viewCaches: ->
@connectTab('caches')
viewRequest: ->
@connectTab('request')
viewSettings: ->
@connectTab('settings')
lastBuildDidChange: ->
Ember.run.scheduleOnce('actions', this, @_lastBuildDidChange);
_lastBuildDidChange: ->
build = @get('repo.lastBuild')
@set('build', build)
stopObservingLastBuild: ->
@removeObserver('repo.lastBuild', this, 'lastBuildDidChange')
observeLastBuild: ->
@lastBuildDidChange()
@addObserver('repo.lastBuild', this, 'lastBuildDidChange')
connectTab: (tab) ->
# TODO: such implementation seems weird now, because we render
# in the renderTemplate function in routes
name = if tab == 'current' then 'build' else tab
@set('tab', tab)
urlGithub: (->
githubRepo(@get('repo.slug'))
).property('repo.slug')
`export default Controller`