import CustomWizard from "../models/custom-wizard"; import { ajax } from "discourse/lib/ajax"; import DiscourseRoute from "discourse/routes/discourse"; import I18n from "I18n"; import { selectKitContent } from "../lib/wizard"; export default DiscourseRoute.extend({ model(params) { if (params.wizardId === "create") { return { create: true }; } else { return ajax(`/admin/wizards/wizard/${params.wizardId}`); } }, afterModel(model) { if (model.none) { return this.transitionTo("adminWizardsWizard"); } }, setupController(controller, model) { const parentModel = this.modelFor("adminWizardsWizard"); const wizard = CustomWizard.create(!model || model.create ? {} : model); const fieldTypes = Object.keys(parentModel.field_types).map((type) => { return { id: type, name: I18n.t(`admin.wizard.field.type.${type}`), }; }); let props = { wizardList: parentModel.wizard_list, fieldTypes, userFields: parentModel.userFields, customFields: selectKitContent( parentModel.custom_fields.map((f) => f.name) ), apis: parentModel.apis, themes: parentModel.themes, wizard, currentStep: wizard.steps[0], currentAction: wizard.actions[0], creating: model.create, }; controller.setProperties(props); }, });