import Route from '@ember/routing/route'; import styleBody from 'ghost-admin/mixins/style-body'; import {inject as service} from '@ember/service'; export default Route.extend(styleBody, { ghostPaths: service(), session: service(), ajax: service(), config: service(), titleToken: 'Setup', classNames: ['ghost-setup'], // use the beforeModel hook to check to see whether or not setup has been // previously completed. If it has, stop the transition into the setup page. beforeModel() { this._super(...arguments); if (this.get('session.isAuthenticated')) { return this.transitionTo('posts'); } let authUrl = this.get('ghostPaths.url').api('authentication', 'setup'); // check the state of the setup process via the API return this.get('ajax').request(authUrl) .then((result) => { let [setup] = result.setup; if (setup.status) { return this.transitionTo('signin'); } else { let controller = this.controllerFor('setup/two'); if (setup.title) { controller.set('blogTitle', setup.title.replace(/'/gim, '\'')); } if (setup.name) { controller.set('name', setup.name.replace(/'/gim, '\'')); } if (setup.email) { controller.set('email', setup.email); } } }); }, deactivate() { this._super(...arguments); this.controllerFor('setup/two').set('password', ''); } });