Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-09 20:02:54 +01:00
Fix start step && add dropdown none
Dieser Commit ist enthalten in:
Ursprung
8c173a7b17
Commit
75d4fcaab5
8 geänderte Dateien mit 42 neuen und 4 gelöschten Zeilen
|
@ -96,5 +96,10 @@
|
|||
</div>
|
||||
{{wizard-custom-input inputs=field.choices}}
|
||||
{{/if}}
|
||||
|
||||
<div class="wizard-header small">
|
||||
{{i18n 'admin.wizard.field.dropdown_none'}}
|
||||
</div>
|
||||
{{input name="dropdown_none" value=field.dropdown_none placeholder=(i18n 'admin.wizard.field.dropdown_none_placeholder')}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{{combo-box elementId=field.id
|
||||
class=fieldClass
|
||||
value=field.value
|
||||
content=field.choices
|
||||
none=field.dropdown_none
|
||||
nameProperty="label"
|
||||
tabindex="9"}}
|
|
@ -38,14 +38,22 @@
|
|||
|
||||
{{#if showNextButton}}
|
||||
<button class='wizard-btn next primary' {{action "nextStep"}} disabled={{saving}} tabindex="10">
|
||||
{{#if saving}}
|
||||
{{loading-spinner size='small'}}
|
||||
{{else}}
|
||||
{{i18n "wizard.next"}}
|
||||
{{d-icon "chevron-right"}}
|
||||
{{/if}}
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
{{#if showDoneButton}}
|
||||
<button class='wizard-btn done' {{action "done"}} disabled={{saving}} tabindex="10">
|
||||
{{#if saving}}
|
||||
{{loading-spinner size='small'}}
|
||||
{{else}}
|
||||
{{i18n "wizard.done"}}
|
||||
{{/if}}
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
|
@ -68,6 +68,11 @@
|
|||
.combo-box ul {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.wizard-buttons > a, .wizard-buttons > button {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
.step-message {
|
||||
|
|
|
@ -60,6 +60,8 @@ en:
|
|||
header: "Fields"
|
||||
label: "Label"
|
||||
description: "Description"
|
||||
dropdown_none: "None"
|
||||
dropdown_none_placeholder: "Translation Key"
|
||||
choices_label: "Dropdown Choices"
|
||||
choices_type: "Choose a type"
|
||||
choices_translation: "Translation"
|
||||
|
|
|
@ -80,6 +80,8 @@ class CustomWizard::Builder
|
|||
field = step.add_field(params)
|
||||
|
||||
if f['type'] === 'dropdown'
|
||||
field.dropdown_none = f['dropdown_none'] if f['dropdown_none']
|
||||
|
||||
if f['choices'] && f['choices'].length > 0
|
||||
f['choices'].each do |c|
|
||||
field.add_choice(c['value'], label: c['label'])
|
||||
|
|
|
@ -58,7 +58,8 @@ class CustomWizard::Wizard
|
|||
context: @id,
|
||||
subject: @steps.map(&:id)
|
||||
).order("created_at").last.subject
|
||||
@steps.find { |s| s.id == step_id }
|
||||
last_index = @steps.index { |s| s.id == step_id }
|
||||
@steps[last_index + 1]
|
||||
else
|
||||
@first_step
|
||||
end
|
||||
|
|
|
@ -25,6 +25,7 @@ end
|
|||
|
||||
::Wizard::Field.class_eval do
|
||||
attr_reader :label, :description, :key, :min_length
|
||||
attr_accessor :dropdown_none
|
||||
|
||||
def initialize(attrs)
|
||||
attrs = attrs || {}
|
||||
|
@ -38,6 +39,7 @@ end
|
|||
@min_length = attrs[:min_length]
|
||||
@value = attrs[:value]
|
||||
@choices = []
|
||||
@dropdown_none = attrs[:dropdown_none]
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -102,6 +104,8 @@ end
|
|||
end
|
||||
|
||||
::WizardFieldSerializer.class_eval do
|
||||
attributes :dropdown_none
|
||||
|
||||
def label
|
||||
return object.label if object.label
|
||||
I18n.t("#{object.key || i18n_key}.label", default: '')
|
||||
|
@ -115,4 +119,8 @@ end
|
|||
def placeholder
|
||||
I18n.t("#{object.key || i18n_key}.placeholder", default: '')
|
||||
end
|
||||
|
||||
def dropdown_none
|
||||
object.dropdown_none
|
||||
end
|
||||
end
|
||||
|
|
Laden …
In neuem Issue referenzieren