refactor and add sidebar
This commit is contained in:
parent
ee0a489832
commit
0e361e9a25
|
@ -34,10 +34,6 @@ 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,
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
require 'hax0rs'
|
require 'hax0rs'
|
||||||
|
require 'ext/jquery'
|
||||||
|
|
||||||
# $.mockjaxSettings.log = false
|
# $.mockjaxSettings.log = false
|
||||||
# Ember.LOG_BINDINGS = true
|
# Ember.LOG_BINDINGS = true
|
||||||
|
@ -6,6 +7,19 @@ require 'hax0rs'
|
||||||
@Travis = Em.Namespace.create
|
@Travis = Em.Namespace.create
|
||||||
CONFIG_KEYS: ['rvm', 'gemfile', 'env', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala']
|
CONFIG_KEYS: ['rvm', 'gemfile', 'env', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala']
|
||||||
|
|
||||||
|
# QUEUES: [
|
||||||
|
# { name: 'common', display: 'Common' },
|
||||||
|
# { name: 'php', display: 'PHP, Perl and Python' },
|
||||||
|
# { name: 'node_js', display: 'Node.js' },
|
||||||
|
# { name: 'jvmotp', display: 'JVM and Erlang' },
|
||||||
|
# { name: 'rails', display: 'Rails' },
|
||||||
|
# { name: 'spree', display: 'Spree' },
|
||||||
|
# ],
|
||||||
|
QUEUES: [
|
||||||
|
{ name: 'common', display: 'Common' },
|
||||||
|
{ name: 'jvmotp', display: 'JVM and Erlang' },
|
||||||
|
],
|
||||||
|
|
||||||
run: ->
|
run: ->
|
||||||
@app = Travis.App.create(this)
|
@app = Travis.App.create(this)
|
||||||
@app.initialize()
|
@app.initialize()
|
||||||
|
@ -17,7 +31,6 @@ require 'hax0rs'
|
||||||
@_super(Em.Object.create())
|
@_super(Em.Object.create())
|
||||||
@routes.start()
|
@routes.start()
|
||||||
|
|
||||||
require 'ext/jquery'
|
|
||||||
require 'controllers'
|
require 'controllers'
|
||||||
require 'helpers'
|
require 'helpers'
|
||||||
require 'layout'
|
require 'layout'
|
||||||
|
|
|
@ -1,12 +1,24 @@
|
||||||
require 'helpers'
|
require 'helpers'
|
||||||
|
|
||||||
Travis.Controllers =
|
Travis.Controllers = Em.Namespace.create
|
||||||
ApplicationController: Em.Controller.extend()
|
AppController: Em.Controller.extend()
|
||||||
RepositoriesController: Em.ArrayController.extend()
|
RepositoriesController: Em.ArrayController.extend()
|
||||||
RepositoryController: Em.ObjectController.extend(Travis.Urls.Repository)
|
RepositoryController: Em.ObjectController.extend(Travis.Urls.Repository)
|
||||||
TabsController: Em.Controller.extend()
|
TabsController: Em.Controller.extend()
|
||||||
BuildsController: Em.ArrayController.extend()
|
BuildsController: Em.ArrayController.extend()
|
||||||
BuildController: Em.ObjectController.extend(Travis.Urls.Commit)
|
BuildController: Em.ObjectController.extend(Travis.Urls.Commit)
|
||||||
JobController: Em.ObjectController.extend(Travis.Urls.Commit)
|
JobController: Em.ObjectController.extend(Travis.Urls.Commit)
|
||||||
|
SidebarController: Em.Controller.extend()
|
||||||
|
QueuesController: Em.ArrayController.extend()
|
||||||
|
|
||||||
|
WorkersController: Em.ArrayController.extend
|
||||||
|
groups: (->
|
||||||
|
groups = {}
|
||||||
|
for worker in @get('content').toArray()
|
||||||
|
host = worker.get('host')
|
||||||
|
groups[host] = Em.ArrayProxy.create(content: []) if !(host in groups)
|
||||||
|
groups[host].pushObject(worker)
|
||||||
|
$.values(groups)
|
||||||
|
).property('content.length')
|
||||||
|
|
||||||
|
|
||||||
|
|
11
assets/javascripts/app/layout.coffee
Normal file
11
assets/javascripts/app/layout.coffee
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
Travis.Layout = Em.Namespace.create()
|
||||||
|
Travis.Layout.instance = (name) ->
|
||||||
|
if @layout && @layout.name == name
|
||||||
|
@layout
|
||||||
|
else
|
||||||
|
@layout = Travis.Layout[name].create(name: name)
|
||||||
|
|
||||||
|
require 'layout/default'
|
||||||
|
require 'layout/sidebar'
|
||||||
|
require 'layout/profile'
|
||||||
|
|
20
assets/javascripts/app/layout/base.coffee
Normal file
20
assets/javascripts/app/layout/base.coffee
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Travis.Layout.Base = Em.Object.extend
|
||||||
|
init: ->
|
||||||
|
@setup(arguments)
|
||||||
|
@connect()
|
||||||
|
|
||||||
|
setup: (controllers) ->
|
||||||
|
$.extend this, Travis.Controllers
|
||||||
|
$.extend this, Travis.Views
|
||||||
|
|
||||||
|
for name in controllers
|
||||||
|
key = "#{name}Controller"
|
||||||
|
name = $.camelize(key)
|
||||||
|
this[key] = Travis.Controllers[name].create(namespace: this, controllers: this)
|
||||||
|
|
||||||
|
connect: ->
|
||||||
|
view = Em.View.create(templateName: "layouts/#{@get('name').toLowerCase()}")
|
||||||
|
view.set('controller', @appController)
|
||||||
|
view.appendTo(@get('rootElement') || 'body')
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
Travis.Layout.Default = Travis.Layout.extend
|
require 'layout/base'
|
||||||
|
|
||||||
|
Travis.Layout.Default = Travis.Layout.Base.extend
|
||||||
init: ->
|
init: ->
|
||||||
@_super()
|
@_super('app', 'repositories', 'repository', 'tabs', 'build', 'job')
|
||||||
@connectLeft(Travis.Repository.find())
|
@connectLeft(Travis.Repository.find())
|
||||||
|
Travis.Layout.Sidebar.create(appController: @get('appController'))
|
||||||
|
|
||||||
viewIndex: (params) ->
|
viewIndex: (params) ->
|
||||||
repositories = @get('repositories')
|
onceLoaded @repositories, =>
|
||||||
onceLoaded repositories, =>
|
repository = @repositories.get('firstObject')
|
||||||
repository = repositories.get('firstObject')
|
|
||||||
@connectRepository(repository)
|
@connectRepository(repository)
|
||||||
@connectTabs()
|
@connectTabs()
|
||||||
@connectBuild(repository.get('lastBuild'))
|
@connectBuild(repository.get('lastBuild'))
|
||||||
|
@ -56,26 +58,26 @@ Travis.Layout.Default = Travis.Layout.extend
|
||||||
|
|
||||||
|
|
||||||
connectLeft: (repositories) ->
|
connectLeft: (repositories) ->
|
||||||
@set('repositories', repositories)
|
@repositories = repositories
|
||||||
@get('applicationController').connectOutlet(outletName: 'left', name: 'repositories', context: repositories)
|
@appController.connectOutlet(outletName: 'left', name: 'repositories', context: repositories)
|
||||||
|
|
||||||
connectRepository: (repository) ->
|
connectRepository: (repository) ->
|
||||||
@set('repository', repository)
|
@repository = repository
|
||||||
@get('applicationController').connectOutlet(outletName: 'main', name: 'repository', context: repository)
|
@appController.connectOutlet(outletName: 'main', name: 'repository', context: repository)
|
||||||
|
|
||||||
connectTabs: (build, job) ->
|
connectTabs: (build, job) ->
|
||||||
@setPath('tabsController.repository', @get('repository'))
|
@tabsController.set('repository', @repository)
|
||||||
@setPath('tabsController.build', build)
|
@tabsController.set('build', @build)
|
||||||
@setPath('tabsController.job', job)
|
@tabsController.set('job', @job)
|
||||||
@get('repositoryController').connectOutlet(outletName: 'tabs', name: 'tabs')
|
@repositoryController.connectOutlet(outletName: 'tabs', name: 'tabs')
|
||||||
|
|
||||||
connectBuilds: (builds) ->
|
connectBuilds: (builds) ->
|
||||||
@get('repositoryController').connectOutlet(outletName: 'tab', name: 'history', context: builds)
|
@repositoryController.connectOutlet(outletName: 'tab', name: 'builds', context: builds)
|
||||||
|
|
||||||
connectBuild: (build) ->
|
connectBuild: (build) ->
|
||||||
@get('repositoryController').connectOutlet(outletName: 'tab', name: 'build', context: build)
|
@repositoryController.connectOutlet(outletName: 'tab', name: 'build', context: build)
|
||||||
|
|
||||||
connectJob: (job) ->
|
connectJob: (job) ->
|
||||||
@get('repositoryController').connectOutlet(outletName: 'tab', name: 'job', context: job)
|
@repositoryController.connectOutlet(outletName: 'tab', name: 'job', context: job)
|
||||||
|
|
||||||
|
|
7
assets/javascripts/app/layout/profile.coffee
Normal file
7
assets/javascripts/app/layout/profile.coffee
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
require 'layout/base'
|
||||||
|
|
||||||
|
Travis.Layout.Profile = Travis.Layout.Base.extend
|
||||||
|
name: 'default'
|
||||||
|
|
||||||
|
init: ->
|
||||||
|
|
24
assets/javascripts/app/layout/sidebar.coffee
Normal file
24
assets/javascripts/app/layout/sidebar.coffee
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
require 'layout/base'
|
||||||
|
|
||||||
|
Travis.Layout.Sidebar = Travis.Layout.Base.extend
|
||||||
|
init: ->
|
||||||
|
@_super('sidebar', 'workers', 'queues')
|
||||||
|
@appController = @get('appController')
|
||||||
|
@connectWorkers(Travis.Worker.find())
|
||||||
|
@connectQueues(Travis.QUEUES)
|
||||||
|
|
||||||
|
connect: ->
|
||||||
|
@appController.connectOutlet(outletName: 'right', name: 'sidebar')
|
||||||
|
|
||||||
|
connectWorkers: (workers) ->
|
||||||
|
@workersController.set('content', workers)
|
||||||
|
@appController.set('workers', @workersController)
|
||||||
|
|
||||||
|
connectQueues: (queues) ->
|
||||||
|
queues = for queue in queues
|
||||||
|
Em.ArrayController.create
|
||||||
|
content: Travis.Job.queued(queue.name)
|
||||||
|
name: queue.display
|
||||||
|
@queuesController.set('content', queues)
|
||||||
|
@appController.set('queues', @queuesController)
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
Travis.Layout = Em.Object.extend
|
|
||||||
init: ->
|
|
||||||
@setupControllers()
|
|
||||||
@setupViews()
|
|
||||||
@connectLeft(Travis.Repository.find())
|
|
||||||
|
|
||||||
setupControllers: ->
|
|
||||||
$.extend this, Travis.Controllers
|
|
||||||
for name, controller of Travis.Controllers
|
|
||||||
name = name.charAt(0).toLowerCase() + name.substr(1)
|
|
||||||
this[name] = controller.create(namespace: this, controllers: this)
|
|
||||||
|
|
||||||
setupViews: ->
|
|
||||||
$.extend this, Travis.Views
|
|
||||||
view = Travis.Views.ApplicationView.create()
|
|
||||||
view.set('controller', @applicationController)
|
|
||||||
view.appendTo(@get('rootElement') || 'body')
|
|
||||||
|
|
||||||
Travis.Layout.instance = (name) ->
|
|
||||||
if @layout && @layout.name == name
|
|
||||||
@layout
|
|
||||||
else
|
|
||||||
@layout = Travis.Layout[name].create(name: name)
|
|
||||||
|
|
||||||
require 'layouts/default'
|
|
||||||
require 'layouts/profile'
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
Travis.Layout.Profile = Travis.Layout.extend
|
|
||||||
init: ->
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
require 'models/artifact'
|
||||||
require 'models/build'
|
require 'models/build'
|
||||||
require 'models/repository'
|
|
||||||
require 'models/commit'
|
require 'models/commit'
|
||||||
require 'models/job'
|
require 'models/job'
|
||||||
require 'models/artifact'
|
require 'models/repository'
|
||||||
|
require 'models/worker'
|
||||||
|
|
||||||
|
|
|
@ -48,8 +48,9 @@ require 'travis/model'
|
||||||
|
|
||||||
@Travis.Job.reopenClass
|
@Travis.Job.reopenClass
|
||||||
queued: (queue) ->
|
queued: (queue) ->
|
||||||
@all()
|
@find()
|
||||||
Travis.app.store.filter this, (job) -> job.get('queue') == 'builds.' + queue
|
Travis.app.store.filter this, (job) -> job.get('queue') == 'builds.' + queue
|
||||||
|
|
||||||
findMany: (ids) ->
|
findMany: (ids) ->
|
||||||
Travis.app.store.findMany this, ids
|
Travis.app.store.findMany this, ids
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,5 @@
|
||||||
require 'travis/model'
|
require 'travis/model'
|
||||||
|
|
||||||
@Travis.WorkerGroup = Ember.ArrayProxy.extend
|
|
||||||
init: ->
|
|
||||||
@set('content', [])
|
|
||||||
|
|
||||||
host: (->
|
|
||||||
@getPath 'firstObject.host'
|
|
||||||
).property()
|
|
||||||
|
|
||||||
@Travis.Worker = Travis.Model.extend
|
@Travis.Worker = Travis.Model.extend
|
||||||
state: DS.attr('string')
|
state: DS.attr('string')
|
||||||
name: DS.attr('string')
|
name: DS.attr('string')
|
||||||
|
@ -34,5 +26,5 @@ require 'travis/model'
|
||||||
).property('state')
|
).property('state')
|
||||||
|
|
||||||
urlJob: (->
|
urlJob: (->
|
||||||
'#!/%@/jobs/%@'.fmt @getPath('payload.repository.slug'), @getPath('payload.build.id')
|
"#!/#{@getPath('payload.repository.slug')}/jobs/#{@getPath('payload.build.id')}"
|
||||||
).property('payload', 'state')
|
).property('payload')
|
||||||
|
|
|
@ -10,3 +10,7 @@
|
||||||
<div id="main">
|
<div id="main">
|
||||||
{{outlet main}}
|
{{outlet main}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="right">
|
||||||
|
{{outlet right}}
|
||||||
|
</div>
|
9
assets/javascripts/app/templates/layouts/profile.hbs
Normal file
9
assets/javascripts/app/templates/layouts/profile.hbs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<div id="head">
|
||||||
|
<a href="#">Travis CI</a>
|
||||||
|
<a href="#!/profile">Profile</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
{{outlet main}}
|
||||||
|
</div>
|
||||||
|
|
40
assets/javascripts/app/templates/layouts/sidebar.hbs
Normal file
40
assets/javascripts/app/templates/layouts/sidebar.hbs
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
<div id="right" class="maximized">
|
||||||
|
<div class="slider"><div class='icon'></div> </div>
|
||||||
|
<div class="inner"><div class='wrapper'>
|
||||||
|
<!--
|
||||||
|
<h4>{{t layouts.application.sponsers}}</h4>
|
||||||
|
<div class="sponsors top"></div>
|
||||||
|
<p class="hint"><a href="https://love.travis-ci.org/sponsors">{{{t layouts.application.sponsors_link}}}</a></p>
|
||||||
|
-->
|
||||||
|
|
||||||
|
{{view Travis.Views.WorkersView groupsBinding="controller.workers" id="workers"}}
|
||||||
|
{{view Travis.Views.QueuesView queuesBinding="controller.queues" id="queues"}}
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div class="box">
|
||||||
|
<h4>{{t layouts.application.sponsers}}</h4>
|
||||||
|
<div class="sponsors bottom"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="alpha_warning" class="box">
|
||||||
|
<h4>{{t layouts.about.alpha}}</h4>
|
||||||
|
<p>{{{t layouts.about.messages.alpha}}}</p>
|
||||||
|
</div>
|
||||||
|
<div id="about" class="box">
|
||||||
|
<h4>{{t layouts.about.join}}</h4>
|
||||||
|
<ul>
|
||||||
|
<li>{{t layouts.about.repository}}: <a href="http://github.com/travis-ci">Github</a></li>
|
||||||
|
<li>{{t layouts.about.twitter}}: <a href="http://twitter.com/travisci">@travisci</a></li>
|
||||||
|
<li>{{t layouts.about.mailing_list}}: <a href="http://groups.google.com/group/travis-ci">travis-ci</a></li>
|
||||||
|
<li><a href="irc://irc.freenode.net#travis">irc.freenode.net#travis</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
</div></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<div id="github">
|
||||||
|
<a href="https://github.com/travis-ci" title="Fork me on GitHub">{{t layouts.application.fork_me}}</a>
|
||||||
|
</div>
|
||||||
|
-->
|
15
assets/javascripts/app/templates/queues/list.hbs
Normal file
15
assets/javascripts/app/templates/queues/list.hbs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{{#each queue in queues}}
|
||||||
|
<h4>{{t queue}}: {{queue.name}}</h4>
|
||||||
|
<ul>
|
||||||
|
{{#each queue}}
|
||||||
|
<li>
|
||||||
|
{{repository.slug}}
|
||||||
|
{{#if number}}
|
||||||
|
#{{number}}
|
||||||
|
{{/if}}
|
||||||
|
</li>
|
||||||
|
{{else}}
|
||||||
|
{{t no_job}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{/each}}
|
22
assets/javascripts/app/templates/workers/list.hbs
Normal file
22
assets/javascripts/app/templates/workers/list.hbs
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<h4>{{t workers}}</h4>
|
||||||
|
<ul>
|
||||||
|
{{#each group in workers.groups}}
|
||||||
|
<li class="group">
|
||||||
|
<h5>{{group.firstObject.host}}</h5>
|
||||||
|
<ul>
|
||||||
|
{{#each group}}
|
||||||
|
<li class="worker">
|
||||||
|
{{#if isTesting}}
|
||||||
|
<a {{bindAttr href="urlJob"}} {{bindAttr title="lastSeenAt"}}>{{display}}</a>
|
||||||
|
{{else}}
|
||||||
|
<span {{bindAttr title="lastSeenAt"}}>{{display}}</span>
|
||||||
|
{{/if}}
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
{{else}}
|
||||||
|
No workers
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
require 'ext/ember/namespace'
|
require 'ext/ember/namespace'
|
||||||
|
|
||||||
@Travis.Views = Em.Namespace.create()
|
@Travis.Views = Em.Namespace.create
|
||||||
|
SidebarView: Em.View.extend(templateName: 'layouts/sidebar')
|
||||||
|
QueuesView: Em.View.extend(templateName: 'queues/list')
|
||||||
|
WorkersView: Em.View.extend(templateName: 'workers/list')
|
||||||
|
|
||||||
require 'views/app'
|
|
||||||
require 'views/build'
|
require 'views/build'
|
||||||
require 'views/job'
|
require 'views/job'
|
||||||
require 'views/repo'
|
require 'views/repo'
|
||||||
require 'views/tabs'
|
require 'views/tabs'
|
||||||
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
Travis.Views.reopen
|
|
||||||
ApplicationView: Em.View.extend
|
|
||||||
templateName: 'application'
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
require 'ext/jquery'
|
||||||
|
|
||||||
responseTime = 0
|
responseTime = 0
|
||||||
|
|
||||||
repositories = [
|
repositories = [
|
||||||
|
@ -26,6 +28,8 @@ jobs = [
|
||||||
{ id: 3, repository_id: 1, build_id: 2, commit_id: 2, log_id: 3, number: '2.1', config: { rvm: 'rbx' } }
|
{ id: 3, repository_id: 1, build_id: 2, commit_id: 2, log_id: 3, number: '2.1', config: { rvm: 'rbx' } }
|
||||||
{ id: 4, repository_id: 2, build_id: 3, commit_id: 3, log_id: 4, number: '3.1', config: { rvm: 'rbx' }, finished_at: '2012-06-20T00:21:20Z', duration: 35, result: 0 }
|
{ id: 4, repository_id: 2, build_id: 3, commit_id: 3, log_id: 4, number: '3.1', config: { rvm: 'rbx' }, finished_at: '2012-06-20T00:21:20Z', duration: 35, result: 0 }
|
||||||
{ id: 5, repository_id: 3, build_id: 4, commit_id: 4, log_id: 5, number: '4.1', config: { rvm: 'rbx' } }
|
{ id: 5, repository_id: 3, build_id: 4, commit_id: 4, log_id: 5, number: '4.1', config: { rvm: 'rbx' } }
|
||||||
|
{ id: 6, repository_id: 1, build_id: 5, commit_id: 5, log_id: 5, number: '5.1', config: { rvm: 'rbx' }, state: 'created', queue: 'builds.common' }
|
||||||
|
{ id: 7, repository_id: 1, build_id: 5, commit_id: 5, log_id: 5, number: '5.2', config: { rvm: 'rbx' }, state: 'created', queue: 'builds.common' }
|
||||||
]
|
]
|
||||||
|
|
||||||
artifacts = [
|
artifacts = [
|
||||||
|
@ -36,6 +40,11 @@ artifacts = [
|
||||||
{ id: 5, body: 'log 4' }
|
{ id: 5, body: 'log 4' }
|
||||||
]
|
]
|
||||||
|
|
||||||
|
workers = [
|
||||||
|
{ id: 1, name: 'ruby-1', host: 'worker.travis-ci.org', state: 'ready' }
|
||||||
|
{ id: 2, name: 'ruby-2', host: 'worker.travis-ci.org', state: 'ready' }
|
||||||
|
]
|
||||||
|
|
||||||
$.mockjax
|
$.mockjax
|
||||||
url: '/repositories'
|
url: '/repositories'
|
||||||
responseTime: responseTime
|
responseTime: responseTime
|
||||||
|
@ -80,4 +89,13 @@ for artifact in artifacts
|
||||||
responseText:
|
responseText:
|
||||||
artifact: artifact
|
artifact: artifact
|
||||||
|
|
||||||
|
$.mockjax
|
||||||
|
url: '/workers'
|
||||||
|
responseTime: responseTime
|
||||||
|
responseText: { workers: workers }
|
||||||
|
|
||||||
|
$.mockjax
|
||||||
|
url: '/jobs'
|
||||||
|
responseTime: responseTime
|
||||||
|
responseText:
|
||||||
|
jobs: $.select(jobs, (job) -> job.state == 'created')
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
<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('mocks')
|
||||||
minispade.require('app')
|
minispade.require('app')
|
||||||
Travis.run()
|
Travis.run()
|
||||||
</script>
|
</script>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,299 +0,0 @@
|
||||||
(function() {
|
|
||||||
var artifact, artifacts, build, builds, commits, id, job, jobs, repositories, repository, responseTime, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m;
|
|
||||||
|
|
||||||
responseTime = 0;
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
builds = [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
repository_id: '1',
|
|
||||||
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
|
|
||||||
}, {
|
|
||||||
id: 2,
|
|
||||||
repository_id: '1',
|
|
||||||
commit_id: 2,
|
|
||||||
job_ids: [3],
|
|
||||||
number: 2,
|
|
||||||
event_type: 'push',
|
|
||||||
config: {
|
|
||||||
rvm: ['rbx']
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
id: 3,
|
|
||||||
repository_id: '2',
|
|
||||||
commit_id: 3,
|
|
||||||
job_ids: [4],
|
|
||||||
number: 3,
|
|
||||||
event_type: 'push',
|
|
||||||
config: {
|
|
||||||
rvm: ['rbx']
|
|
||||||
},
|
|
||||||
finished_at: '2012-06-20T00:21:20Z',
|
|
||||||
duration: 35,
|
|
||||||
result: 0
|
|
||||||
}, {
|
|
||||||
id: 4,
|
|
||||||
repository_id: '3',
|
|
||||||
commit_id: 4,
|
|
||||||
job_ids: [5],
|
|
||||||
number: 4,
|
|
||||||
event_type: 'push',
|
|
||||||
config: {
|
|
||||||
rvm: ['rbx']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
commits = [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
sha: '1234567',
|
|
||||||
branch: 'master',
|
|
||||||
message: 'commit message 1',
|
|
||||||
author_name: 'author name',
|
|
||||||
author_email: 'author@email.com',
|
|
||||||
compare_url: 'http://github.com/compare/0123456..1234567'
|
|
||||||
}, {
|
|
||||||
id: 2,
|
|
||||||
sha: '2345678',
|
|
||||||
branch: 'feature',
|
|
||||||
message: 'commit message 2',
|
|
||||||
author_name: 'author name',
|
|
||||||
author_email: 'author@email.com',
|
|
||||||
compare_url: 'http://github.com/compare/0123456..2345678'
|
|
||||||
}, {
|
|
||||||
id: 3,
|
|
||||||
sha: '3456789',
|
|
||||||
branch: 'master',
|
|
||||||
message: 'commit message 3',
|
|
||||||
author_name: 'author name',
|
|
||||||
author_email: 'author@email.com',
|
|
||||||
compare_url: 'http://github.com/compare/0123456..3456789'
|
|
||||||
}, {
|
|
||||||
id: 4,
|
|
||||||
sha: '4567890',
|
|
||||||
branch: 'master',
|
|
||||||
message: 'commit message 4',
|
|
||||||
author_name: 'author name',
|
|
||||||
author_email: 'author@email.com',
|
|
||||||
compare_url: 'http://github.com/compare/0123456..4567890'
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
jobs = [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
repository_id: 1,
|
|
||||||
build_id: 1,
|
|
||||||
commit_id: 1,
|
|
||||||
log_id: 1,
|
|
||||||
number: '1.1',
|
|
||||||
config: {
|
|
||||||
rvm: 'rbx'
|
|
||||||
},
|
|
||||||
finished_at: '2012-06-20T00:21:20Z',
|
|
||||||
duration: 35,
|
|
||||||
result: 0
|
|
||||||
}, {
|
|
||||||
id: 2,
|
|
||||||
repository_id: 1,
|
|
||||||
build_id: 1,
|
|
||||||
commit_id: 1,
|
|
||||||
log_id: 2,
|
|
||||||
number: '1.2',
|
|
||||||
config: {
|
|
||||||
rvm: '1.9.3'
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
id: 3,
|
|
||||||
repository_id: 1,
|
|
||||||
build_id: 2,
|
|
||||||
commit_id: 2,
|
|
||||||
log_id: 3,
|
|
||||||
number: '2.1',
|
|
||||||
config: {
|
|
||||||
rvm: 'rbx'
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
id: 4,
|
|
||||||
repository_id: 2,
|
|
||||||
build_id: 3,
|
|
||||||
commit_id: 3,
|
|
||||||
log_id: 4,
|
|
||||||
number: '3.1',
|
|
||||||
config: {
|
|
||||||
rvm: 'rbx'
|
|
||||||
},
|
|
||||||
finished_at: '2012-06-20T00:21:20Z',
|
|
||||||
duration: 35,
|
|
||||||
result: 0
|
|
||||||
}, {
|
|
||||||
id: 5,
|
|
||||||
repository_id: 3,
|
|
||||||
build_id: 4,
|
|
||||||
commit_id: 4,
|
|
||||||
log_id: 5,
|
|
||||||
number: '4.1',
|
|
||||||
config: {
|
|
||||||
rvm: 'rbx'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
artifacts = [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
body: 'log 1'
|
|
||||||
}, {
|
|
||||||
id: 2,
|
|
||||||
body: 'log 2'
|
|
||||||
}, {
|
|
||||||
id: 3,
|
|
||||||
body: 'log 3'
|
|
||||||
}, {
|
|
||||||
id: 4,
|
|
||||||
body: 'log 4'
|
|
||||||
}, {
|
|
||||||
id: 5,
|
|
||||||
body: 'log 4'
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
$.mockjax({
|
|
||||||
url: '/repositories',
|
|
||||||
responseTime: responseTime,
|
|
||||||
responseText: {
|
|
||||||
repositories: repositories
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
for (_i = 0, _len = repositories.length; _i < _len; _i++) {
|
|
||||||
repository = repositories[_i];
|
|
||||||
$.mockjax({
|
|
||||||
url: '/' + repository.slug,
|
|
||||||
responseTime: responseTime,
|
|
||||||
responseText: {
|
|
||||||
repository: repository
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
for (_j = 0, _len1 = builds.length; _j < _len1; _j++) {
|
|
||||||
build = builds[_j];
|
|
||||||
$.mockjax({
|
|
||||||
url: '/builds/' + build.id,
|
|
||||||
responseTime: responseTime,
|
|
||||||
responseText: {
|
|
||||||
build: build,
|
|
||||||
commit: commits[build.commit_id - 1],
|
|
||||||
jobs: (function() {
|
|
||||||
var _k, _len2, _ref, _results;
|
|
||||||
_ref = build.job_ids;
|
|
||||||
_results = [];
|
|
||||||
for (_k = 0, _len2 = _ref.length; _k < _len2; _k++) {
|
|
||||||
id = _ref[_k];
|
|
||||||
_results.push(jobs[id - 1]);
|
|
||||||
}
|
|
||||||
return _results;
|
|
||||||
})()
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
for (_k = 0, _len2 = repositories.length; _k < _len2; _k++) {
|
|
||||||
repository = repositories[_k];
|
|
||||||
$.mockjax({
|
|
||||||
url: '/builds',
|
|
||||||
data: {
|
|
||||||
repository_id: repository.id,
|
|
||||||
event_type: 'push',
|
|
||||||
orderBy: 'number DESC'
|
|
||||||
},
|
|
||||||
responseTime: responseTime,
|
|
||||||
responseText: {
|
|
||||||
builds: (function() {
|
|
||||||
var _l, _len3, _ref, _results;
|
|
||||||
_ref = repository.build_ids;
|
|
||||||
_results = [];
|
|
||||||
for (_l = 0, _len3 = _ref.length; _l < _len3; _l++) {
|
|
||||||
id = _ref[_l];
|
|
||||||
_results.push(builds[id - 1]);
|
|
||||||
}
|
|
||||||
return _results;
|
|
||||||
})(),
|
|
||||||
commits: (function() {
|
|
||||||
var _l, _len3, _ref, _results;
|
|
||||||
_ref = repository.build_ids;
|
|
||||||
_results = [];
|
|
||||||
for (_l = 0, _len3 = _ref.length; _l < _len3; _l++) {
|
|
||||||
id = _ref[_l];
|
|
||||||
_results.push(commits[builds[id - 1].commit_id - 1]);
|
|
||||||
}
|
|
||||||
return _results;
|
|
||||||
})()
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
for (_l = 0, _len3 = jobs.length; _l < _len3; _l++) {
|
|
||||||
job = jobs[_l];
|
|
||||||
$.mockjax({
|
|
||||||
url: '/jobs/' + job.id,
|
|
||||||
responseTime: responseTime,
|
|
||||||
responseText: {
|
|
||||||
job: job,
|
|
||||||
commit: commits[job.commit_id - 1]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
for (_m = 0, _len4 = artifacts.length; _m < _len4; _m++) {
|
|
||||||
artifact = artifacts[_m];
|
|
||||||
$.mockjax({
|
|
||||||
url: '/artifacts/' + artifact.id,
|
|
||||||
responseTime: responseTime,
|
|
||||||
responseText: {
|
|
||||||
artifact: artifact
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}).call(this);
|
|
Loading…
Reference in New Issue
Block a user