diff --git a/assets/scripts/app/controllers/repo.coffee b/assets/scripts/app/controllers/repo.coffee index 256ba110..75894468 100644 --- a/assets/scripts/app/controllers/repo.coffee +++ b/assets/scripts/app/controllers/repo.coffee @@ -3,6 +3,10 @@ Travis.RepoController = Travis.Controller.extend needs: ['repos', 'currentUser'] currentUserBinding: 'controllers.currentUser' + isError: (-> @get('content.isError') ).property('content.isError') + slug: (-> @get('content.slug') ).property('content.slug') + isLoading: (-> @get('content.isLoading') ).property('content.isLoading') + init: -> @_super.apply this, arguments Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 5d558962..3de2cdd5 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -140,7 +140,7 @@ Travis.RepoRoute = Ember.Route.extend deserialize: (params) -> slug = "#{params.owner}/#{params.name}" - content = Ember.Object.create slug: slug, isLoaded: false + content = Ember.Object.create slug: slug, isLoaded: false, isLoading: true proxy = Ember.ObjectProxy.create(content: content) repos = Travis.Repo.bySlug(slug) @@ -148,7 +148,14 @@ Travis.RepoRoute = Ember.Route.extend observer = -> if repos.get 'isLoaded' repos.removeObserver 'isLoaded', observer - proxy.set 'content', repos.objectAt(0) + proxy.set 'isLoading', false + + if repos.get('length') == 0 + # isError is also used in DS.Model, but maybe we should use something + # more focused like notFound later + proxy.set 'isError', true + else + proxy.set 'content', repos.objectAt(0) if repos.length proxy.set('content', repos[0]) diff --git a/assets/scripts/app/templates/repos/show.hbs b/assets/scripts/app/templates/repos/show.hbs index 3cda0ced..63ce6e62 100644 --- a/assets/scripts/app/templates/repos/show.hbs +++ b/assets/scripts/app/templates/repos/show.hbs @@ -2,25 +2,28 @@ {{#if view.isEmpty}} {{view Travis.ReposEmptyView}} {{else}} - {{#if repo.isLoaded}} - {{#with repo}} -
{{description}}
- - {{view Travis.RepoShowTabsView}} - {{view Travis.RepoShowToolsView}} - {{/with}} - + {{#if isError}} + The repository at {{slug}} was not found. {{else}} - Loading - {{/if}} + {{#if repo.isLoaded}} + {{#with repo}} +{{description}}
+ + {{view Travis.RepoShowTabsView}} + {{view Travis.RepoShowToolsView}} + {{/with}} + +