0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-15 14:22:53 +01:00

built step attributes dynamically

Dieser Commit ist enthalten in:
Faizaan Gagan 2021-07-20 19:37:46 +05:30
Ursprung a904d14e70
Commit 098c16cd47
2 geänderte Dateien mit 58 neuen und 29 gelöschten Zeilen

Datei anzeigen

@ -82,17 +82,10 @@ class CustomWizard::AdminWizardController < CustomWizard::AdminController
:theme_id, :theme_id,
permitted: mapped_params, permitted: mapped_params,
steps: [ steps: [
:id, *CustomWizard::Step.type_attributes(:permitted),
:index, CustomWizard::Step.type_attributes(:mapped).map do |attribute|
:title, [attribute, mapped_params]
:key, end.to_h ,
:banner,
:raw_description,
:required_data_message,
:force_final,
required_data: mapped_params,
permitted_params: mapped_params,
condition: mapped_params,
fields: [ fields: [
*CustomWizard::Field.type_attributes(:permitted), *CustomWizard::Field.type_attributes(:permitted),
CustomWizard::Field.type_attributes(:mapped).map do |attribute| CustomWizard::Field.type_attributes(:mapped).map do |attribute|

Datei anzeigen

@ -3,25 +3,61 @@
class CustomWizard::Step class CustomWizard::Step
include ActiveModel::SerializerSupport include ActiveModel::SerializerSupport
attr_reader :id, def self.attribute_map
:updater {
id: [:serializable, :permitted],
updater: [],
index: [:accessible, :serializable, :permitted],
title: [:accessible, :serializable, :permitted],
description: [:accessible, :serializable],
key: [:accessible, :permitted],
permitted: [:accessible, :serializable],
permitted_message: [:accessible, :serializable],
fields: [:accessible],
next: [:accessible, :serializable],
previous: [:accessible, :serializable],
banner: [:accessible, :serializable, :permitted],
disabled: [:accessible],
description_vars: [:accessible],
last_step: [:accessible],
force_final: [:accessible],
conditional_final_step: [:accessible],
wizard: [:accessible],
raw_description: [:permitted],
required_data_message: [:permitted],
required_data: [:permitted, :mapped],
permitted_params: [:permitted, :mapped],
condition: [:permitted, :mapped],
final: [:serializable]
}
end
attr_accessor :index, def self.type_attributes(type)
:title, attribute_map.map { |attribute, props| props.include?(type.to_sym) ? attribute : nil }.compact
:description, end
:key,
:permitted, def self.all_attributes
:permitted_message, attribute_map.keys
:fields, end
:next,
:previous, def self.accessible_attributes
:banner, type_attributes(:accessible)
:disabled, end
:description_vars,
:last_step, def self.included_attributes
:force_final, all_attributes - excluded_attributes
:conditional_final_step, end
:wizard
def self.readonly_attributes
included_attributes - accessible_attributes
end
def self.excluded_attributes
type_attributes(:excluded)
end
attr_reader *readonly_attributes
attr_accessor *accessible_attributes
def initialize(id) def initialize(id)
@id = id @id = id