1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import CustomWizard from '../models/custom-wizard';
- import { ajax } from 'discourse/lib/ajax';
- export default Discourse.Route.extend({
- beforeModel() {
- const param = this.paramsFor('adminWizard').wizard_id;
- const wizards = this.modelFor('admin-wizards-custom');
- if (wizards.length && (param === 'first' || param === 'last')) {
- const wizard = wizards.get(`${param}Object`);
- if (wizard) {
- this.transitionTo('adminWizard', wizard.id.dasherize());
- }
- }
- },
- model(params) {
- const wizardId = params.wizard_id;
- if (wizardId === 'new') {
- this.set('newWizard', true);
- return CustomWizard.create();
- };
- this.set('newWizard', false);
- const wizard = this.modelFor('admin-wizards-custom').findBy('id', wizardId.underscore());
- if (!wizard) return this.transitionTo('adminWizard', 'new');
- return wizard;
- },
- afterModel(model) {
- return ajax('/admin/wizards/field-types')
- .then((result) => model.set('fieldTypes', result.types));
- },
- setupController(controller, model) {
- const newWizard = this.get('newWizard');
- const steps = model.get('steps') || [];
- controller.setProperties({
- newWizard,
- model,
- currentStep: steps[0]
- });
- },
- actions: {
- refreshWizard() {
- this.refresh();
- }
- }
- });
|