diff --git a/app/routes/create.js b/app/routes/create.js index ae4ee97..16050eb 100644 --- a/app/routes/create.js +++ b/app/routes/create.js @@ -12,7 +12,12 @@ export default Ember.Route.extend({ } }, - beforeModel() { + beforeModel(transition) { + // enforce that wizzard is started at create.index + if (transition.targetName !== 'create.index') { + this.transitionTo('create.index'); + } + // set encryption key this.get('encryption').generateKey(); }, diff --git a/app/routes/create/meta.js b/app/routes/create/meta.js index 97c8693..b403811 100644 --- a/app/routes/create/meta.js +++ b/app/routes/create/meta.js @@ -3,12 +3,5 @@ import Ember from 'ember'; export default Ember.Route.extend({ model() { return this.modelFor('create'); - }, - - // redirect to create/index if poll type is not set - afterModel(create) { - if (create.get('pollType') === null) { - this.transitionTo('create.index'); - } } }); diff --git a/app/routes/create/options-datetime.js b/app/routes/create/options-datetime.js index 7f8946e..b403811 100644 --- a/app/routes/create/options-datetime.js +++ b/app/routes/create/options-datetime.js @@ -3,15 +3,5 @@ import Ember from 'ember'; export default Ember.Route.extend({ model() { return this.modelFor('create'); - }, - - // redirect to create/meta if title is not set - afterModel(create) { - if ( - !Ember.isArray(create.get('options')) || - create.get('options.length') < 1 - ) { - this.transitionTo('create.options'); - } } }); diff --git a/app/routes/create/options.js b/app/routes/create/options.js index a804e3e..b403811 100644 --- a/app/routes/create/options.js +++ b/app/routes/create/options.js @@ -3,12 +3,5 @@ import Ember from 'ember'; export default Ember.Route.extend({ model() { return this.modelFor('create'); - }, - - // redirect to create/meta if title is not set - afterModel(create) { - if (Ember.isEmpty(create.get('title'))) { - this.transitionTo('create.meta'); - } } }); diff --git a/app/routes/create/settings.js b/app/routes/create/settings.js index b6fe090..b403811 100644 --- a/app/routes/create/settings.js +++ b/app/routes/create/settings.js @@ -3,21 +3,5 @@ import Ember from 'ember'; export default Ember.Route.extend({ model() { return this.modelFor('create'); - }, - - // redirect to create/options if not enough options are defined - afterModel(create) { - // check if only default options are defined - if (create.get('options.length') === 2) { - create.get('options').forEach((option) => { - if (option.title === '') { - this.transitionTo('create.options'); - } - }); - } - // check if less then two options are defined - else if (create.get('options.length') < 1) { - this.transitionTo('create.options'); - } } }); diff --git a/tests/acceptance/create-a-poll-test.js b/tests/acceptance/create-a-poll-test.js index 6b0951d..46adf62 100644 --- a/tests/acceptance/create-a-poll-test.js +++ b/tests/acceptance/create-a-poll-test.js @@ -900,3 +900,10 @@ test('create a poll and using back button (find a date)', function(assert) { }); }); }); + +test('Start at first step is enforced', function(assert) { + visit('create/settings'); + andThen(() => { + assert.equal(currentPath(), 'create.index'); + }); +});