diff --git a/assets/javascripts/discourse/initializers/custom-wizard-redirect.js.es6 b/assets/javascripts/discourse/initializers/custom-wizard-redirect.js.es6 index 21dd0e81..e413cd17 100644 --- a/assets/javascripts/discourse/initializers/custom-wizard-redirect.js.es6 +++ b/assets/javascripts/discourse/initializers/custom-wizard-redirect.js.es6 @@ -21,7 +21,7 @@ export default { actions: { willTransition(transition) { const redirectToWizard = this.get("currentUser.redirect_to_wizard"); - const excludedPaths = Discourse.SiteSettings.wizard_redirect_exclude_paths + const excludedPaths = this.siteSettings.wizard_redirect_exclude_paths .split("|") .concat(["loading"]); diff --git a/assets/javascripts/discourse/lib/wizard-schema.js.es6 b/assets/javascripts/discourse/lib/wizard-schema.js.es6 index d196f387..8b8200b0 100644 --- a/assets/javascripts/discourse/lib/wizard-schema.js.es6 +++ b/assets/javascripts/discourse/lib/wizard-schema.js.es6 @@ -1,4 +1,5 @@ import { get, set } from "@ember/object"; +import { getOwner } from "discourse-common/lib/get-owner"; const wizard = { basic: { @@ -222,7 +223,8 @@ export function buildFieldValidations(validations) { wizardSchema.field.validations = validations; } -if (Discourse.SiteSettings.wizard_apis_enabled) { +const siteSettings = getOwner(this).lookup("site-settings:main"); +if (siteSettings.wizard_apis_enabled) { wizardSchema.action.types.send_to_api = { api: null, api_endpoint: null, diff --git a/controllers/custom_wizard/wizard.rb b/controllers/custom_wizard/wizard.rb index 73c1f592..37728ecb 100644 --- a/controllers/custom_wizard/wizard.rb +++ b/controllers/custom_wizard/wizard.rb @@ -11,7 +11,9 @@ class CustomWizard::WizardController < ::ApplicationController helper_method :wizard_theme_translations_lookup def wizard - CustomWizard::Wizard.create(params[:wizard_id].underscore, current_user) + @builder = CustomWizard::Builder.new(params[:wizard_id].underscore, current_user) + @wizard ||= @builder.build + @wizard end def wizard_page_title diff --git a/lib/custom_wizard/field.rb b/lib/custom_wizard/field.rb index 51e3d4de..a8160b4c 100644 --- a/lib/custom_wizard/field.rb +++ b/lib/custom_wizard/field.rb @@ -31,7 +31,7 @@ class CustomWizard::Field @index = attrs[:index] @type = attrs[:type] @required = !!attrs[:required] - @value = attrs[:value] + @value = attrs[:value] || default_value @description = attrs[:description] @image = attrs[:image] @key = attrs[:key] @@ -50,6 +50,12 @@ class CustomWizard::Field @label ||= PrettyText.cook(@raw[:label]) end + def default_value + if @type == 'checkbox' + false + end + end + def self.types @types ||= { text: { diff --git a/serializers/custom_wizard/wizard_field_serializer.rb b/serializers/custom_wizard/wizard_field_serializer.rb index 19025dff..42d5eba0 100644 --- a/serializers/custom_wizard/wizard_field_serializer.rb +++ b/serializers/custom_wizard/wizard_field_serializer.rb @@ -40,10 +40,6 @@ class CustomWizard::FieldSerializer < ::ApplicationSerializer object.value end - def include_value? - object.value.present? - end - def i18n_key @i18n_key ||= "wizard.step.#{object.step.id}.fields.#{object.id}".underscore end