diff --git a/app/controllers/error.coffee b/app/controllers/error.coffee new file mode 100644 index 00000000..90babea0 --- /dev/null +++ b/app/controllers/error.coffee @@ -0,0 +1,5 @@ +`import Ember from 'ember'` + +Controller = Ember.Controller.extend() + +`export default Controller` diff --git a/app/routes/basic.coffee b/app/routes/basic.coffee index e6c5af54..3449337d 100644 --- a/app/routes/basic.coffee +++ b/app/routes/basic.coffee @@ -2,6 +2,11 @@ `import Ember from 'ember'` Route = Ember.Route.extend + activate: -> + if @routeName != 'error' + @controllerFor('error').set('layoutName', null) + return @_super.apply(this, arguments) + beforeModel: (transition) -> @auth.autoSignIn() unless @signedIn() diff --git a/app/routes/error.js b/app/routes/error.js new file mode 100644 index 00000000..5231b4cc --- /dev/null +++ b/app/routes/error.js @@ -0,0 +1,10 @@ +import TravisRoute from 'travis/routes/basic'; + +export default TravisRoute.extend({ + resetController(controller, isExiting, transition) { + if (isExiting) { + controller.set('message', null); + controller.set('layoutName', null); + } + } +}); diff --git a/app/routes/owner.coffee b/app/routes/owner.coffee index 2ae81837..8e134009 100644 --- a/app/routes/owner.coffee +++ b/app/routes/owner.coffee @@ -4,7 +4,6 @@ `import config from 'travis/config/environment'` Route = TravisRoute.extend - deactivate: -> @controllerFor('loading').set('layoutName', null) @@ -19,4 +18,17 @@ Route = TravisRoute.extend @_super.apply(this, arguments) + actions: + error: (error, transition, originRoute) -> + login = transition.params.owner.owner + message = if error.status == 404 + "Couldn't find an owner with login \"#{login}\"" + else + "There was an error while loading data, please try again." + + @controllerFor('error').set('layoutName', 'simple') + @controllerFor('error').set('message', message) + + return true + `export default Route` diff --git a/app/templates/error.hbs b/app/templates/error.hbs new file mode 100644 index 00000000..9653e44f --- /dev/null +++ b/app/templates/error.hbs @@ -0,0 +1,5 @@ +{{#if message}} + {{message}} +{{else}} + There was an error, please try again. +{{/if}} diff --git a/app/templates/owner/error.hbs b/app/templates/owner/error.hbs new file mode 100644 index 00000000..257cc564 --- /dev/null +++ b/app/templates/owner/error.hbs @@ -0,0 +1 @@ +foo diff --git a/app/views/error.coffee b/app/views/error.coffee new file mode 100644 index 00000000..fd4d7995 --- /dev/null +++ b/app/views/error.coffee @@ -0,0 +1,9 @@ +`import Ember from 'ember'` + +View = Ember.View.extend + layoutName: (-> + if name = @get('controller.layoutName') + 'layouts/' + name + ).property('controller.layoutName') + +`export default View`