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:
Ursprung
a904d14e70
Commit
098c16cd47
2 geänderte Dateien mit 58 neuen und 29 gelöschten Zeilen
|
@ -82,17 +82,10 @@ class CustomWizard::AdminWizardController < CustomWizard::AdminController
|
|||
:theme_id,
|
||||
permitted: mapped_params,
|
||||
steps: [
|
||||
:id,
|
||||
:index,
|
||||
:title,
|
||||
:key,
|
||||
:banner,
|
||||
:raw_description,
|
||||
:required_data_message,
|
||||
:force_final,
|
||||
required_data: mapped_params,
|
||||
permitted_params: mapped_params,
|
||||
condition: mapped_params,
|
||||
*CustomWizard::Step.type_attributes(:permitted),
|
||||
CustomWizard::Step.type_attributes(:mapped).map do |attribute|
|
||||
[attribute, mapped_params]
|
||||
end.to_h ,
|
||||
fields: [
|
||||
*CustomWizard::Field.type_attributes(:permitted),
|
||||
CustomWizard::Field.type_attributes(:mapped).map do |attribute|
|
||||
|
|
|
@ -3,25 +3,61 @@
|
|||
class CustomWizard::Step
|
||||
include ActiveModel::SerializerSupport
|
||||
|
||||
attr_reader :id,
|
||||
:updater
|
||||
def self.attribute_map
|
||||
{
|
||||
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,
|
||||
:title,
|
||||
:description,
|
||||
:key,
|
||||
:permitted,
|
||||
:permitted_message,
|
||||
:fields,
|
||||
:next,
|
||||
:previous,
|
||||
:banner,
|
||||
:disabled,
|
||||
:description_vars,
|
||||
:last_step,
|
||||
:force_final,
|
||||
:conditional_final_step,
|
||||
:wizard
|
||||
def self.type_attributes(type)
|
||||
attribute_map.map { |attribute, props| props.include?(type.to_sym) ? attribute : nil }.compact
|
||||
end
|
||||
|
||||
def self.all_attributes
|
||||
attribute_map.keys
|
||||
end
|
||||
|
||||
def self.accessible_attributes
|
||||
type_attributes(:accessible)
|
||||
end
|
||||
|
||||
def self.included_attributes
|
||||
all_attributes - excluded_attributes
|
||||
end
|
||||
|
||||
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)
|
||||
@id = id
|
||||
|
|
Laden …
In neuem Issue referenzieren