upgrade ember to current master, use camelized attributes

This commit is contained in:
Sven Fuchs 2012-06-23 23:57:13 +02:00
parent 7c0ebf4916
commit 1d2e494371
16 changed files with 1249 additions and 377 deletions

View File

@ -33,6 +33,10 @@ input 'assets/javascripts' do
concat 'app/templates.js' concat 'app/templates.js'
end end
match 'mocks.js' do
concat 'mocks.js'
end
match '{app,config,lib}/**/*.js' do match '{app,config,lib}/**/*.js' do
minispade( minispade(
string: true, string: true,

View File

@ -1,37 +1,3 @@
$.mockjax
url: '/repositories',
responseTime: 0,
responseText:
repositories: [
{ id: 1, owner: 'travis-ci', name: 'travis-core', slug: 'travis-ci/travis-core', build_ids: [1, 2], last_build_id: 1, last_build_number: 1, last_build_result: 0 },
{ id: 2, owner: 'travis-ci', name: 'travis-assets', slug: 'travis-ci/travis-assets', build_ids: [3], last_build_id: 3, last_build_number: 3},
{ id: 3, owner: 'travis-ci', name: 'travis-hub', slug: 'travis-ci/travis-hub', build_ids: [4], last_build_id: 4, last_build_number: 4},
],
$.mockjax
url: '/travis-ci/travis-core',
responseTime: 0,
responseText:
repository: { id: 1, owner: 'travis-ci', name: 'travis-core', slug: 'travis-ci/travis-core', build_ids: [1, 2], last_build_id: 1, last_build_number: 1, last_build_result: 0 }
$.mockjax
url: '/travis-ci/travis-assets',
responseTime: 0,
responseText:
repository: { id: 1, owner: 'travis-ci', name: 'travis-core', slug: 'travis-ci/travis-core', build_ids: [1, 2], last_build_id: 1, last_build_number: 1, last_build_result: 0 }
$.mockjax
url: '/builds/1',
resposeTime: 0,
responseText:
build: { id: 1, repository_id: 'travis-ci/travis-core', commit_id: 1, job_ids: [1, 2], number: 1, event_type: 'push', config: { rvm: ['rbx', '1.9.3'] }, finished_at: '2012-06-20T00:21:20Z', duration: 35, result: 0 }
$.mockjax
url: '/builds/2',
resposeTime: 0,
responseText:
build: { id: 1, repository_id: 'travis-ci/travis-assets', commit_id: 1, job_ids: [1, 2], number: 1, event_type: 'push', config: { rvm: ['rbx'] }, finished_at: '2012-06-20T00:21:20Z', duration: 35, result: 0 }
@Travis = Em.Application.create() @Travis = Em.Application.create()
require 'ext/jquery' require 'ext/jquery'

View File

@ -19,8 +19,8 @@ Ember.registerBoundHelper 'formatDuration', (duration, options) ->
safe Travis.Helpers.timeInWords(duration) safe Travis.Helpers.timeInWords(duration)
Ember.registerBoundHelper 'formatCommit', (commit, options) -> Ember.registerBoundHelper 'formatCommit', (commit, options) ->
branch = commit.get('branch') branch = commit.get('branch') || ''
branch = " #{branch}" if branch branch = " (#{branch})" if branch
safe (commit.get('sha') || '').substr(0, 7) + branch safe (commit.get('sha') || '').substr(0, 7) + branch
Ember.registerBoundHelper 'formatSha', (sha, options) -> Ember.registerBoundHelper 'formatSha', (sha, options) ->

View File

@ -22,11 +22,11 @@
Commit: Commit:
urlAuthor: (-> urlAuthor: (->
'mailto:%@'.fmt @getPath('commit.author_email') 'mailto:%@'.fmt @getPath('commit.authorEmail')
).property('commit') ).property('commit')
urlCommitter: (-> urlCommitter: (->
'mailto:%@'.fmt @getPath('commit.committer_email') 'mailto:%@'.fmt @getPath('commit.committerEmail')
).property('commit') ).property('commit')
Build: Build:

View File

@ -1,21 +1,13 @@
require 'travis/model' require 'travis/model'
@Travis.Commit = Travis.Model.extend @Travis.Commit = Travis.Model.extend
sha: DS.attr('string') sha: DS.attr('string')
branch: DS.attr('string') branch: DS.attr('string')
message: DS.attr('string') message: DS.attr('string')
compare_url: DS.attr('string') compareUrl: DS.attr('string')
author_name: DS.attr('string') authorName: DS.attr('string')
author_email: DS.attr('string') authorEmail: DS.attr('string')
committer_name: DS.attr('string') committerName: DS.attr('string')
committer_email: DS.attr('string') committerEmail: DS.attr('string')
build: DS.belongsTo('Travis.Build') build: DS.belongsTo('Travis.Build')
@Travis.Commit.FIXTURES = [
{ id: 1, sha: '123456', branch: 'master', message: 'the commit message', compare_url: 'http://github.com/compare', author_name: 'Author', author_email: 'author@email.org', committer_name: 'Committer', committer_email: 'committer@email.org' }
{ id: 2, sha: '234567', branch: 'feature', message: 'the commit message', compare_url: 'http://github.com/compare', author_name: 'Author', author_email: 'author@email.org', committer_name: 'Committer', committer_email: 'committer@email.org' }
{ id: 3, sha: '345678', branch: 'master', message: 'the commit message', compare_url: 'http://github.com/compare', author_name: 'Author', author_email: 'author@email.org', committer_name: 'Committer', committer_email: 'committer@email.org' }
{ id: 4, sha: '456789', branch: 'master', message: 'the commit message', compare_url: 'http://github.com/compare', author_name: 'Author', author_email: 'author@email.org', committer_name: 'Committer', committer_email: 'committer@email.org' }
]

View File

@ -11,6 +11,8 @@ require 'travis/model'
primaryKey: 'slug' primaryKey: 'slug'
lastBuild: DS.belongsTo('Travis.Build')
builds: (-> builds: (->
Travis.Build.byRepositoryId @get('id'), event_type: 'push' Travis.Build.byRepositoryId @get('id'), event_type: 'push'
).property() ).property()
@ -27,15 +29,6 @@ require 'travis/model'
(@get('slug') || @_id).split('/')[1] (@get('slug') || @_id).split('/')[1]
).property('owner', 'name'), ).property('owner', 'name'),
# TODO this is used in router#serializeObject for the last_build links in the
# repositories list. should be in some item controller i guess, but i'm not
# sure how to use one with #each
lastBuild: (->
owner: @get('owner')
name: @get('name')
id: @get('last_build_id')
).property('last_build_id')
last_build_duration: (-> last_build_duration: (->
duration = @getPath('data.last_build_duration') duration = @getPath('data.last_build_duration')
duration = Travis.Helpers.durationFrom(@get('last_build_started_at'), @get('last_build_finished_at')) unless duration duration = Travis.Helpers.durationFrom(@get('last_build_started_at'), @get('last_build_finished_at')) unless duration

View File

@ -52,36 +52,34 @@ require 'hax0rs'
current: Em.Route.extend current: Em.Route.extend
route: '/' route: '/'
connectOutlets: (router, repository) -> connectOutlets: (router) ->
console.log(repository) repository = router.get('repository')
build = Travis.Build.find(repository.get('last_build_id')) onceLoaded repository, => # TODO should need to wait here, right?
router.connectTabs(repository) build = repository.get('lastBuild')
router.connectCurrent(build) router.connectTabs(repository)
router.connectCurrent(build)
builds: Em.Route.extend builds: Em.Route.extend
route: '/builds' route: '/builds'
connectOutlets: (router, repository) -> connectOutlets: (router) ->
repository = router.get('repository')
router.connectBuilds(repository.get('builds')) router.connectBuilds(repository.get('builds'))
build: Em.Route.extend build: Em.Route.extend
route: '/builds/:build_id' route: '/builds/:build_id'
connectOutlets: (router, build) -> connectOutlets: (router, build) ->
repository = build.get('repository') router.setPath('tabsController.build', build)
onceLoaded repository, => router.connectBuild(build)
router.setPath('tabsController.build', build)
router.connectBuild(build)
job: Em.Route.extend job: Em.Route.extend
route: '/jobs/:job_id' route: '/jobs/:job_id'
connectOutlets: (router, job) -> connectOutlets: (router, job) ->
build = job.get('build') router.setPath('tabsController.build', build)
onceLoaded build, => router.setPath('tabsController.job', job)
router.setPath('tabsController.build', build) router.connectJob(job)
router.setPath('tabsController.job', job)
router.connectJob(job)
connectLeft: (repositories) -> connectLeft: (repositories) ->
@ -108,13 +106,11 @@ require 'hax0rs'
serializeRepository: (object) -> serializeRepository: (object) ->
result = if object instanceof DS.Model if object instanceof DS.Model
slug = object.get('slug') || object._id # wat. slug = object.get('slug') || object._id # wat.
{ owner: slug.split('/')[0], name: slug.split[1] } { owner: slug.split('/')[0], name: slug.split('/')[1] }
else else
object object
console.log(result)
result
deserializeRepository: (params) -> deserializeRepository: (params) ->
Travis.Repository.find("#{params.owner}/#{params.name}") Travis.Repository.find("#{params.owner}/#{params.name}")

View File

@ -13,17 +13,17 @@
<div class="right"> <div class="right">
<dt>{{t builds.commit}}</dt> <dt>{{t builds.commit}}</dt>
<dd class="commit-hash"><a {{bindAttr href="urlGithubCommit"}}>{{formatCommit commit}}</a></dd> <dd class="commit-hash"><a {{bindAttr href="urlGithubCommit"}}>{{formatCommit commit}}</a></dd>
{{#if commit.compare_url}} {{#if commit.compareUrl}}
<dt>{{t builds.compare}}</dt> <dt>{{t builds.compare}}</dt>
<dd class="compare_view"><a {{bindAttr href="commit.compare_url"}}>{{pathFrom commit.compare_url}}</a></dd> <dd class="compare_view"><a {{bindAttr href="commit.compareUrl"}}>{{pathFrom commit.compareUrl}}</a></dd>
{{/if}} {{/if}}
{{#if commit.author_name}} {{#if commit.authorName}}
<dt>{{t builds.author}}</dt> <dt>{{t builds.author}}</dt>
<dd class="author"><a {{bindAttr href="view.urlAuthor"}}>{{commit.author_name}}</a></dd> <dd class="author"><a {{bindAttr href="view.urlAuthor"}}>{{commit.authorName}}</a></dd>
{{/if}} {{/if}}
{{#if commit.committer_name}} {{#if commit.committerName}}
<dt>{{t builds.committer}}</dt> <dt>{{t builds.committer}}</dt>
<dd class="committer"><a {{bindAttr href="urlCommitter"}}>{{commit.committer_name}}</a></dd> <dd class="committer"><a {{bindAttr href="urlCommitter"}}>{{commit.committerName}}</a></dd>
{{/if}} {{/if}}
</div> </div>

View File

@ -1,22 +1,25 @@
{{#if content.lastObject.isLoaded}} {{#if content.lastObject.isLoaded}}
<ul> <ul>
{{#each content}} {{#each repository in content}}
<li> {{#view Travis.RepositoriesItemView contextBinding="repository"}}
<div class="wrapper"> <li {{bindAttr class="view.classes"}}>
<a {{action viewCurrent href=true}} class="slug">{{slug}}</a> <div class="wrapper">
<a {{action viewBuild href=true context="lastBuild"}} class="build">#{{last_build_number}}</a> <a {{action viewCurrent href=true}} class="slug">{{slug}}</a>
</div> <a {{action viewBuild href=true context="view.lastBuild"}} class="build">#{{last_build_number}}</a>
<p class="summary"> </div>
<span class="duration_label">{{t repositories.duration}}:</span>
<abbr class="duration" {{bindAttr title="last_build_started_at"}}>{{formatDuration last_build_duration}}</abbr>, <p class="summary">
<span class="finished_at_label">{{t repositories.finished_at}}:</span> <span class="duration_label">{{t repositories.duration}}:</span>
<abbr class="finished_at timeago" {{bindAttr title="last_build_finished_at"}}>{{formatTime last_build_finished_at}}</abbr> <abbr class="duration" {{bindAttr title="last_build_started_at"}}>{{formatDuration last_build_duration}}</abbr>,
</p> <span class="finished_at_label">{{t repositories.finished_at}}:</span>
{{#if description}} <abbr class="finished_at timeago" {{bindAttr title="last_build_finished_at"}}>{{formatTime last_build_finished_at}}</abbr>
<p class="description">{{description}}</p> </p>
{{/if}} {{#if description}}
<span class="indicator"></span> <p class="description">{{description}}</p>
</li> {{/if}}
<span class="indicator"></span>
</li>
{{/view}}
{{/each}} {{/each}}
<ul> <ul>
{{/if}} {{/if}}

View File

@ -3,11 +3,18 @@ Travis.RepositoriesView = Em.View.extend templateName: 'repositories/list'
Travis.RepositoriesItemView = Em.View.extend Travis.RepositoriesItemView = Em.View.extend
classes: (-> classes: (->
color = Travis.Helpers.colorForResult(@getPath('content.last_build_result')) color = Travis.Helpers.colorForResult(@getPath('context.last_build_result'))
classes = ['repository', color] classes = ['repository', color]
classes.push 'selected' if @getPath('content.selected') classes.push 'selected' if @getPath('context.selected')
classes.join(' ') classes.join(' ')
).property('content.last_build_result', 'content.selected') ).property('context.last_build_result', 'context.selected')
lastBuild: (->
owner: @getPath('context.owner')
name: @getPath('context.name')
id: @getPath('context.last_build_id')
).property('context.last_build_id')
Travis.RepositoryView = Em.View.extend templateName: 'repositories/show' Travis.RepositoryView = Em.View.extend templateName: 'repositories/show'
Travis.TabsView = Em.View.extend templateName: 'repositories/tabs' Travis.TabsView = Em.View.extend templateName: 'repositories/tabs'

File diff suppressed because it is too large Load Diff

View File

@ -96,3 +96,9 @@ dd {
clear: both; clear: both;
padding-top: 20px; padding-top: 20px;
} }
caption {
white-space: nowrap;
font-weight: bold;
padding-top: 20px;
display: block;
}

View File

@ -5,6 +5,7 @@
<title>Travis CI - Distributed Continuous Integration Platform for the Open Source Community</title> <title>Travis CI - Distributed Continuous Integration Platform for the Open Source Community</title>
<link rel="stylesheet" href="stylesheets/application.css"> <link rel="stylesheet" href="stylesheets/application.css">
<script src="javascripts/vendor.js"></script> <script src="javascripts/vendor.js"></script>
<script src="javascripts/mocks.js"></script>
<script src="javascripts/application.js"></script> <script src="javascripts/application.js"></script>
<script> <script>
minispade.require('app') minispade.require('app')

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -96,3 +96,9 @@ dd {
clear: both; clear: both;
padding-top: 20px; padding-top: 20px;
} }
caption {
white-space: nowrap;
font-weight: bold;
padding-top: 20px;
display: block;
}