From 8ccd95e0b04f4c5804a746e8a178d6f43c4e7c51 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Tue, 19 Feb 2013 06:12:35 +0100 Subject: [PATCH] Fix build view and links on left sidebar --- assets/scripts/app/controllers/repo.coffee | 5 -- assets/scripts/app/routes.coffee | 73 ++++++++++++++++++++- assets/scripts/app/templates/repos/list.hbs | 8 +-- assets/scripts/app/views/build.coffee | 1 - 4 files changed, 72 insertions(+), 15 deletions(-) diff --git a/assets/scripts/app/controllers/repo.coffee b/assets/scripts/app/controllers/repo.coffee index 144ba3e8..176fdf1b 100644 --- a/assets/scripts/app/controllers/repo.coffee +++ b/assets/scripts/app/controllers/repo.coffee @@ -65,11 +65,6 @@ Travis.RepoController = Travis.Controller.extend @_bind('build', 'job.build') @connectTab('job') - repoObserver: (-> - repo = @get('repo') - repo.select() if repo - ).observes('repo.id') - connectTab: (tab) -> name = if tab == 'current' then 'build' else tab viewClass = if name in ['builds', 'branches', 'pull_requests'] diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 9882c66e..03122fc4 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -377,6 +377,76 @@ Ember.Router.reopen location: Ember.HistoryLocation.create() Travis.Router.map -> + @resource 'index', path: '/', -> + @route 'current', path: '/' + @resource 'repo', path: '/:owner/:name', -> + @route 'index', path: '/' + @resource 'build', path: '/builds/:build_id' + +Travis.IndexCurrentRoute = Ember.Route.extend + renderTemplate: -> + @render 'repo' + @render 'build', outlet: 'pane', into: 'repo' + + setupController: -> + @container.lookup('controller:repo').activate('index') + +Travis.BuildRoute = Ember.Route.extend + renderTemplate: (->) + + + deserialize: (params) -> + Travis.Build.find(params.build_id) + + serialize: (model, params) -> + id = if model.get + model.get('id') + else + model + + { build_id: id } + + setupController: (controller, model) -> + model = Travis.Build.find(model) if model && !model.get + + repo = @container.lookup('controller:repo') + repo.activate('build') + repo.set('build', model) + +Travis.RepoIndexRoute = Ember.Route.extend + setupController: (controller, model) -> + @container.lookup('controller:repo').activate('current') + +Travis.RepoRoute = Ember.Route.extend + renderTemplate: -> + @render 'repo' + @render 'build', outlet: 'pane', into: 'repo' + + setupController: (controller, model) -> + controller.set('repo', model) + + serialize: (repo) -> + [owner, name] = repo.get('slug').split('/') + { owner: owner, name: name } + + deserialize: (params) -> + slug = "#{params.owner}/#{params.name}" + proxy = Ember.ObjectProxy.create(content: Ember.Object.create()) + proxy.setProperties slug: slug, isLoaded: false + + repos = Travis.Repo.bySlug(slug) + + observer = -> + if repos.get 'isLoaded' + repos.removeObserver 'isLoaded', observer + proxy.set 'content', repos.objectAt(0) + + if repos.length + proxy.set('content', repos[0]) + else + repos.addObserver 'isLoaded', observer + + proxy Travis.IndexRoute = Ember.Route.extend renderTemplate: -> @@ -386,10 +456,7 @@ Travis.IndexRoute = Ember.Route.extend @render 'sidebar', outlet: 'right' @render 'top', outlet: 'top' @render 'flash', outlet: 'flash' - @render 'repo' - @render 'build', outlet: 'pane', into: 'repo' setupController: (controller)-> @container.lookup('controller:repos').activate() @container.lookup('view:application').connectLayout 'home' - @container.lookup('controller:repo').activate('index') diff --git a/assets/scripts/app/templates/repos/list.hbs b/assets/scripts/app/templates/repos/list.hbs index 03fb08ab..93d276cc 100644 --- a/assets/scripts/app/templates/repos/list.hbs +++ b/assets/scripts/app/templates/repos/list.hbs @@ -9,14 +9,10 @@ {{#with view.repo}}
- {{#if slug}} - {{slug}} - {{/if}} + {{#linkTo repo this class="slug"}}{{slug}}{{/linkTo}}
{{#with lastBuildHash}} - {{#if id}} - {{number}} - {{/if}} + {{#linkTo build repo id class="last_build"}}{{number}}{{/linkTo}} {{/with}}

diff --git a/assets/scripts/app/views/build.coffee b/assets/scripts/app/views/build.coffee index 1d6f77bc..ee21d836 100644 --- a/assets/scripts/app/views/build.coffee +++ b/assets/scripts/app/views/build.coffee @@ -50,7 +50,6 @@ BuildView: Travis.View.extend templateName: 'builds/show' - elementId: 'build' classNameBindings: ['color', 'loading'] loadingBinding: 'controller.loading'