decide.nolog.cz/app/routes/create.js
Jeldrik Hanschke 174b6d493c refactor create/settings to avoid observer
This also fix a bug if user creates more than one croodle without reloading window
in between. In that case a data fragment is reused which throws.

It's also the first step in dropping {{simple-select}} which is very outdated.
2018-12-31 12:09:17 +01:00

46 lines
1.2 KiB
JavaScript

import { alias } from '@ember/object/computed';
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import config from 'croodle/config/environment';
import answersForAnswerType from 'croodle/utils/answers-for-answer-type';
/* global moment */
export default Route.extend({
actions: {
transitionToPoll(poll) {
this.transitionTo('poll', poll, {
queryParams: {
encryptionKey: this.encryptionKey
}
});
}
},
beforeModel(transition) {
// enforce that wizzard is started at create.index
if (transition.targetName !== 'create.index') {
this.transitionTo('create.index');
}
// set encryption key
this.encryption.generateKey();
},
encryption: service(),
encryptionKey: alias('encryption.key'),
model() {
// create empty poll
return this.store.createRecord('poll', {
answerType: 'YesNo',
answers: answersForAnswerType('YesNo'),
creationDate: new Date(),
forceAnswer: true,
anonymousUser: false,
pollType: 'FindADate',
timezone: null,
expirationDate: moment().add(3, 'month').toISOString(),
version: config.APP.version,
});
}
});