diff --git a/assets/javascripts/app/helpers/urls.coffee b/assets/javascripts/app/helpers/urls.coffee
index d38cab63..e5edada9 100644
--- a/assets/javascripts/app/helpers/urls.coffee
+++ b/assets/javascripts/app/helpers/urls.coffee
@@ -1,21 +1,21 @@
@Travis.Urls =
repository: (slug) ->
- "#!/#{slug}"
+ "/#{slug}"
builds: (slug) ->
- "#!/#{slug}/builds"
+ "/#{slug}/builds"
pullRequests: (slug) ->
- "#!/#{slug}/pull_requests"
+ "/#{slug}/pull_requests"
branches: (slug) ->
- "#!/#{slug}/branches"
+ "/#{slug}/branches"
build: (slug, id) ->
- "#!/#{slug}/builds/#{id}"
+ "/#{slug}/builds/#{id}"
job: (slug, id) ->
- "#!/#{slug}/jobs/#{id}"
+ "/#{slug}/jobs/#{id}"
githubCommit: (slug, sha) ->
"http://github.com/#{slug}/commit/#{sha}"
diff --git a/assets/javascripts/app/models/sponsor.coffee b/assets/javascripts/app/models/sponsor.coffee
index 1a0285e8..82b9564b 100644
--- a/assets/javascripts/app/models/sponsor.coffee
+++ b/assets/javascripts/app/models/sponsor.coffee
@@ -6,7 +6,7 @@ require 'travis/model'
link: DS.attr('string')
image: (->
- "images/sponsors/#{@get('data.image')}"
+ "/images/sponsors/#{@get('data.image')}"
).property('data.image')
Travis.Sponsor.reopenClass
diff --git a/assets/javascripts/app/routes.coffee b/assets/javascripts/app/routes.coffee
index 0c6a5073..3115ac38 100644
--- a/assets/javascripts/app/routes.coffee
+++ b/assets/javascripts/app/routes.coffee
@@ -1,25 +1,34 @@
Travis.Routes = Em.Object.extend
+ BASE_URI: 'http://localhost:9292'
+
ROUTES:
- '!/profile': ['profile', 'show']
- '!/stats': ['stats', 'show']
- '!/:owner/:name/jobs/:id/:line': ['home', 'job']
- '!/:owner/:name/jobs/:id': ['home', 'job']
- '!/:owner/:name/builds/:id': ['home', 'build']
- '!/:owner/:name/builds': ['home', 'builds']
- '!/:owner/:name/pull_requests': ['home', 'pullRequests']
- '!/:owner/:name/branches': ['home', 'branches']
- '!/:owner/:name': ['home', 'current']
- '': ['home', 'index']
+ 'profile': ['profile', 'show']
+ 'stats': ['stats', 'show']
+ ':owner/:name/jobs/:id/:line': ['home', 'job']
+ ':owner/:name/jobs/:id': ['home', 'job']
+ ':owner/:name/builds/:id': ['home', 'build']
+ ':owner/:name/builds': ['home', 'builds']
+ ':owner/:name/pull_requests': ['home', 'pullRequests']
+ ':owner/:name/branches': ['home', 'branches']
+ ':owner/:name': ['home', 'current']
+ '': ['home', 'index']
start: ->
unless @started
- @started = true
- @route(route, target[0], target[1]) for route, target of @ROUTES
+ Em.routes.set('usesHistory', true)
+ Em.routes.set('wantsHistory', true)
+ Em.routes.set('baseURI', @BASE_URI)
- route: (route, layout, action) ->
+ @started = true
+ @add(route, target[0], target[1]) for route, target of @ROUTES
+
+ add: (route, layout, action) ->
Em.routes.add route, (params) =>
@action(layout, action, params)
+ route: (event) ->
+ Em.routes.set('location', event.target.href.replace("#{@BASE_URI}/", ''))
+
action: (name, action, params) ->
# this needs to be a global reference because Em.routes is global
layout = Travis.app.connectLayout(name)
diff --git a/assets/javascripts/app/templates/builds/list.hbs b/assets/javascripts/app/templates/builds/list.hbs
index 7319c84b..26d41e20 100644
--- a/assets/javascripts/app/templates/builds/list.hbs
+++ b/assets/javascripts/app/templates/builds/list.hbs
@@ -13,11 +13,25 @@
{{#each build in builds}}
{{#view Travis.BuildsItemView contextBinding="build"}}
- {{number}} |
- {{formatCommit commit}} |
- {{{formatMessage commit.message short="true"}}} |
- {{formatDuration duration}} |
- {{formatTime finishedAt}} |
+
+
+ {{number}}
+
+ |
+
+
+ {{formatCommit commit}}
+
+ |
+
+ {{{formatMessage commit.message short="true"}}}
+ |
+
+ {{formatDuration duration}}
+ |
+
+ {{formatTime finishedAt}}
+ |
{{/view}}
{{/each}}
diff --git a/assets/javascripts/app/templates/builds/show.hbs b/assets/javascripts/app/templates/builds/show.hbs
index 96b54ed4..b6eb0db8 100644
--- a/assets/javascripts/app/templates/builds/show.hbs
+++ b/assets/javascripts/app/templates/builds/show.hbs
@@ -4,7 +4,7 @@
- {{t builds.name}}
-
- {{build.number}}
+
- {{build.number}}
- {{t builds.finished_at}}
- {{formatTime build.finishedAt}}
- {{t builds.duration}}
diff --git a/assets/javascripts/app/templates/jobs/list.hbs b/assets/javascripts/app/templates/jobs/list.hbs
index 08c921e3..495cfbef 100644
--- a/assets/javascripts/app/templates/jobs/list.hbs
+++ b/assets/javascripts/app/templates/jobs/list.hbs
@@ -22,7 +22,7 @@
{{#each job in view.jobs}}
{{#view Travis.JobsItemView contextBinding="job"}}
- {{number}} |
+ {{number}} |
{{formatDuration duration}} |
{{formatTime finishedAt}} |
{{#each value in configValues}}
diff --git a/assets/javascripts/app/templates/jobs/show.hbs b/assets/javascripts/app/templates/jobs/show.hbs
index 058d3b48..2b806815 100644
--- a/assets/javascripts/app/templates/jobs/show.hbs
+++ b/assets/javascripts/app/templates/jobs/show.hbs
@@ -4,7 +4,7 @@
- Job
-
- {{job.number}}
+
- {{job.number}}
- {{t jobs.finished_at}}
- {{formatTime job.finishedAt}}
- {{t jobs.duration}}
diff --git a/assets/javascripts/app/templates/layouts/top.hbs b/assets/javascripts/app/templates/layouts/top.hbs
index c39e8eef..0d17dc7c 100644
--- a/assets/javascripts/app/templates/layouts/top.hbs
+++ b/assets/javascripts/app/templates/layouts/top.hbs
@@ -1,13 +1,13 @@
-
+
Travis
-
- Home
+ Home
-
- Stats
+ Stats
-
Blog
@@ -17,13 +17,13 @@
{{#if user}}
-
-
+
{{user.name}}
-
- {{t layouts.top.profile}}
+ {{t layouts.top.profile}}
-
{{t layouts.top.sign_out}}
diff --git a/assets/javascripts/app/templates/repositories/list.hbs b/assets/javascripts/app/templates/repos/list.hbs
similarity index 73%
rename from assets/javascripts/app/templates/repositories/list.hbs
rename to assets/javascripts/app/templates/repos/list.hbs
index 904d6cf7..40ad8b8e 100644
--- a/assets/javascripts/app/templates/repositories/list.hbs
+++ b/assets/javascripts/app/templates/repos/list.hbs
@@ -4,13 +4,13 @@
@@ -19,8 +19,8 @@
{{#each repository in controller.arrangedContent}}
{{#view Travis.RepositoriesItemView contextBinding="repository"}}
-
- {{slug}}
- #{{lastBuildNumber}}
+ {{slug}}
+ #{{lastBuildNumber}}
{{t repositories.duration}}:
diff --git a/assets/javascripts/app/templates/repos/show.hbs b/assets/javascripts/app/templates/repos/show.hbs
new file mode 100644
index 00000000..cb1cc1ca
--- /dev/null
+++ b/assets/javascripts/app/templates/repos/show.hbs
@@ -0,0 +1,37 @@
+
+ {{#if view.repository.isLoaded}}
+ {{#with view.repository}}
+
+
+
{{description}}
+
+
+
+ {{view Travis.TabsView}}
+ {{/with}}
+
+ {{else}}
+
Loading
+ {{/if}}
+
+
+ {{outlet pane}}
+
+
+
diff --git a/assets/javascripts/app/templates/repositories/tabs.hbs b/assets/javascripts/app/templates/repos/tabs.hbs
similarity index 62%
rename from assets/javascripts/app/templates/repositories/tabs.hbs
rename to assets/javascripts/app/templates/repos/tabs.hbs
index 5265fcda..28f49b6f 100644
--- a/assets/javascripts/app/templates/repositories/tabs.hbs
+++ b/assets/javascripts/app/templates/repos/tabs.hbs
@@ -1,21 +1,45 @@
diff --git a/assets/javascripts/app/templates/repositories/show.hbs b/assets/javascripts/app/templates/repositories/show.hbs
deleted file mode 100644
index 98cd937c..00000000
--- a/assets/javascripts/app/templates/repositories/show.hbs
+++ /dev/null
@@ -1,26 +0,0 @@
-
- {{#if view.repository.isLoaded}}
- {{#with view.repository}}
-
-
-
{{description}}
-
-
-
- {{view Travis.TabsView}}
- {{/with}}
- {{else}}
-
Loading
- {{/if}}
-
-
- {{outlet pane}}
-
-
-
diff --git a/assets/javascripts/app/templates/workers/list.hbs b/assets/javascripts/app/templates/workers/list.hbs
index 5a171d8e..25da56a3 100644
--- a/assets/javascripts/app/templates/workers/list.hbs
+++ b/assets/javascripts/app/templates/workers/list.hbs
@@ -10,7 +10,7 @@
{{#each worker in group}}
-
- {{worker.display}}
+ {{worker.display}}
{{/each}}
diff --git a/assets/javascripts/app/views.coffee b/assets/javascripts/app/views.coffee
index 5a66ad82..972c8ab5 100644
--- a/assets/javascripts/app/views.coffee
+++ b/assets/javascripts/app/views.coffee
@@ -1,29 +1,21 @@
require 'ext/ember/namespace'
@Travis.reopen
- HomeLayout: Em.View.extend(templateName: 'layouts/home')
- ProfileLayout: Em.View.extend(templateName: 'layouts/simple')
- StatsLayout: Em.View.extend(templateName: 'layouts/simple')
+ View: Em.View.extend
+ route: (event) ->
+ Travis.app.routes.route(event)
- StatsView: Em.View.extend(templateName: 'stats/show')
-
- SidebarView: Em.View.extend
- templateName: 'layouts/sidebar'
-
- toggleSidebar: ->
- $('body').toggleClass('maximized')
- element = $('') # TODO gotta force redraw here :/
- $('#repository').append(element)
- Em.run.later (-> element.remove()), 10
-
- WorkersView: Em.View.extend
- toggle: (event) ->
- $(event.target).closest('li').toggleClass('open')
+@Travis.reopen
+ HomeLayout: Travis.View.extend(templateName: 'layouts/home')
+ ProfileLayout: Travis.View.extend(templateName: 'layouts/simple')
+ StatsLayout: Travis.View.extend(templateName: 'layouts/simple')
+ StatsView: Travis.View.extend(templateName: 'stats/show')
require 'views/build'
require 'views/job'
require 'views/repo'
require 'views/profile'
+require 'views/sidebar'
require 'views/tabs'
require 'views/top'
diff --git a/assets/javascripts/app/views/build.coffee b/assets/javascripts/app/views/build.coffee
index f986f44c..edc398e0 100644
--- a/assets/javascripts/app/views/build.coffee
+++ b/assets/javascripts/app/views/build.coffee
@@ -1,9 +1,9 @@
@Travis.reopen
- BuildsView: Em.View.extend
+ BuildsView: Travis.View.extend
templateName: 'builds/list'
buildsBinding: 'controller'
- BuildsItemView: Em.View.extend
+ BuildsItemView: Travis.View.extend
repositoryBinding: 'controller.repository'
buildBinding: 'context'
commitBinding: 'build.commit'
@@ -20,7 +20,7 @@
Travis.Urls.githubCommit(@get('repository.slug'), @get('commit.sha'))
).property('repository.slug', 'commit.sha')
- BuildView: Em.View.extend
+ BuildView: Travis.View.extend
templateName: 'builds/show'
repositoryBinding: 'controller.repository'
diff --git a/assets/javascripts/app/views/job.coffee b/assets/javascripts/app/views/job.coffee
index 1761a49a..15ce4ee3 100644
--- a/assets/javascripts/app/views/job.coffee
+++ b/assets/javascripts/app/views/job.coffee
@@ -1,12 +1,12 @@
@Travis.reopen
- JobsView: Em.View.extend
+ JobsView: Travis.View.extend
templateName: 'jobs/list'
buildBinding: 'controller.build'
toggleHelp: ->
$.facebox(div: '#allow_failure_help')
- JobsItemView: Em.View.extend
+ JobsItemView: Travis.View.extend
repositoryBinding: 'context.repository'
jobBinding: 'context'
@@ -18,7 +18,7 @@
Travis.Urls.job(@get('repository.slug'), @get('job.id'))
).property('repository.slug', 'job.id')
- JobView: Em.View.extend
+ JobView: Travis.View.extend
templateName: 'jobs/show'
repositoryBinding: 'controller.repository'
@@ -45,7 +45,7 @@
Travis.Urls.email(@get('commit.committerEmail'))
).property('commit.committerEmail')
- LogView: Em.View.extend
+ LogView: Travis.View.extend
templateName: 'jobs/log'
click: (event) ->
diff --git a/assets/javascripts/app/views/profile.coffee b/assets/javascripts/app/views/profile.coffee
index 7d44a5ee..4adafe6c 100644
--- a/assets/javascripts/app/views/profile.coffee
+++ b/assets/javascripts/app/views/profile.coffee
@@ -1,5 +1,5 @@
@Travis.reopen
- UserView: Em.View.extend
+ UserView: Travis.View.extend
templateName: 'profile/show'
userBinding: 'controller.user'
@@ -8,7 +8,7 @@
"http://www.gravatar.com/avatar/#{@get('user.gravatar')}?s=48&d=mm"
).property('user.gravatar')
- HooksView: Em.View.extend
+ HooksView: Travis.View.extend
templateName: 'profile/hooks'
urlGithubAdmin: (->
diff --git a/assets/javascripts/app/views/repo.coffee b/assets/javascripts/app/views/repo.coffee
index 40918c6d..9c122e47 100644
--- a/assets/javascripts/app/views/repo.coffee
+++ b/assets/javascripts/app/views/repo.coffee
@@ -1,6 +1,6 @@
@Travis.reopen
- RepositoriesView: Em.View.extend
- templateName: 'repositories/list'
+ RepositoriesView: Travis.View.extend
+ templateName: 'repos/list'
tabBinding: 'controller.tab'
classRecent: (->
@@ -18,7 +18,7 @@
'active' if @get('tab') == 'search'
).property('tab')
- RepositoriesItemView: Em.View.extend
+ RepositoriesItemView: Travis.View.extend
repositoryBinding: 'context'
classes: (->
@@ -41,8 +41,8 @@
Travis.Urls.build(@get('repository.slug'), @get('repository.lastBuildId'))
).property('repository.slug', 'repository.lastBuildId')
- RepositoryView: Em.View.extend
- templateName: 'repositories/show'
+ RepositoryView: Travis.View.extend
+ templateName: 'repos/show'
repositoryBinding: 'controller.repository'
diff --git a/assets/javascripts/app/views/sidebar.coffee b/assets/javascripts/app/views/sidebar.coffee
new file mode 100644
index 00000000..f3528fb6
--- /dev/null
+++ b/assets/javascripts/app/views/sidebar.coffee
@@ -0,0 +1,15 @@
+@Travis.reopen
+ SidebarView: Travis.View.extend
+ templateName: 'layouts/sidebar'
+
+ toggleSidebar: ->
+ $('body').toggleClass('maximized')
+ element = $('') # TODO gotta force redraw here :/
+ $('#repository').append(element)
+ Em.run.later (-> element.remove()), 10
+
+ WorkersView: Travis.View.extend
+ toggle: (event) ->
+ $(event.target).closest('li').toggleClass('open')
+
+
diff --git a/assets/javascripts/app/views/tabs.coffee b/assets/javascripts/app/views/tabs.coffee
index 81b8bce8..4c4db4d1 100644
--- a/assets/javascripts/app/views/tabs.coffee
+++ b/assets/javascripts/app/views/tabs.coffee
@@ -1,6 +1,6 @@
@Travis.reopen
- TabsView: Em.View.extend
- templateName: 'repositories/tabs'
+ TabsView: Travis.View.extend
+ templateName: 'repos/tabs'
repositoryBinding: 'controller.repository'
buildBinding: 'controller.build'
diff --git a/assets/javascripts/app/views/top.coffee b/assets/javascripts/app/views/top.coffee
index 8d662c5e..f94aa7d7 100644
--- a/assets/javascripts/app/views/top.coffee
+++ b/assets/javascripts/app/views/top.coffee
@@ -1,5 +1,5 @@
@Travis.reopen
- TopView: Em.View.extend
+ TopView: Travis.View.extend
templateName: 'layouts/top'
tabBinding: 'controller.tab'
diff --git a/config.ru b/config.ru
index fec8cd2f..10e7fb64 100644
--- a/config.ru
+++ b/config.ru
@@ -12,6 +12,12 @@ class App < Sinatra::Base
set :public_folder, lambda { "#{root}/public" }
set :static_cache_control, :public
+ provides :html
+
+ get '*' do
+ File.new('public/index.html').readlines
+ end
+
not_found do
'Not found.'
end
diff --git a/public/index.html b/public/index.html
index 4d6c738a..8843d7f0 100644
--- a/public/index.html
+++ b/public/index.html
@@ -3,9 +3,9 @@
Travis CI - Distributed Continuous Integration Platform for the Open Source Community
-
-
-
+
+
+
-
-
-
+
+
+
+