Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-22 17:30:29 +01:00
308 Zeilen
Kein EOL
7,4 KiB
Handlebars
308 Zeilen
Kein EOL
7,4 KiB
Handlebars
{{#if showUndo}}
|
|
{{d-button
|
|
action=(action "undoChanges")
|
|
icon=undoIcon
|
|
label=undoKey
|
|
class="undo-changes"
|
|
}}
|
|
{{/if}}
|
|
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.label"}}</label>
|
|
</div>
|
|
<div class="setting-value">
|
|
<Input name="label" @value={{this.field.label}} />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.required"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<span>{{i18n "admin.wizard.field.required_label"}}</span>
|
|
<Input @type="checkbox" @checked={{this.field.required}} />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.description"}}</label>
|
|
</div>
|
|
<div class="setting-value">
|
|
<Textarea name="description" @value={{this.field.description}} />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.image"}}</label>
|
|
</div>
|
|
<div class="setting-value">
|
|
{{uppy-image-uploader
|
|
imageUrl=field.image
|
|
onUploadDone=(action "imageUploadDone")
|
|
onUploadDeleted=(action "imageUploadDeleted")
|
|
type="wizard-field-image"
|
|
class="no-repeat contain-image"
|
|
id=(concat "wizard-field-" field.id "-image-upload")
|
|
}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.type"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
{{wizard-subscription-selector
|
|
value=field.type
|
|
feature="field"
|
|
attribute="type"
|
|
onChange=(action "changeType")
|
|
wizard=wizard
|
|
options=(hash none="admin.wizard.select_type")
|
|
}}
|
|
</div>
|
|
</div>
|
|
|
|
{{wizard-message key=messageKey url=messageUrl component="field"}}
|
|
|
|
{{#if isTextType}}
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.min_length"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<Input
|
|
@type="number"
|
|
name="min_length"
|
|
@value={{this.field.min_length}}
|
|
class="small"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="setting full">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.max_length"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<Input
|
|
@type="number"
|
|
name="max_length"
|
|
@value={{this.field.max_length}}
|
|
class="small"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.char_counter"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<span>{{i18n "admin.wizard.field.char_counter_placeholder"}}</span>
|
|
<Input @type="checkbox" @checked={{this.field.char_counter}} />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="setting full">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.field_placeholder"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<Textarea
|
|
name="field_placeholder"
|
|
class="medium"
|
|
@value={{this.field.placeholder}}
|
|
/>
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isComposerPreview}}
|
|
<div class="setting full">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.preview_template"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<Textarea
|
|
name="preview-template"
|
|
class="preview-template"
|
|
@value={{this.field.preview_template}}
|
|
/>
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isUpload}}
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.file_types"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<Input @value={{this.field.file_types}} class="medium" />
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if showLimit}}
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.limit"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<Input @type="number" @value={{this.field.limit}} class="small" />
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isDateTime}}
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{html-safe
|
|
(i18n "admin.wizard.field.date_time_format.label")
|
|
}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<Input @value={{this.field.format}} class="medium" />
|
|
<label>{{html-safe
|
|
(i18n "admin.wizard.field.date_time_format.instructions")
|
|
}}</label>
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if showPrefill}}
|
|
<div class="setting full field-mapper-setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.prefill"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
{{wizard-mapper
|
|
inputs=field.prefill
|
|
property="prefill"
|
|
onUpdate=(action "mappedFieldUpdated")
|
|
options=prefillOptions
|
|
}}
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if showContent}}
|
|
<div class="setting full field-mapper-setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.content"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
{{wizard-mapper
|
|
inputs=field.content
|
|
property="content"
|
|
onUpdate=(action "mappedFieldUpdated")
|
|
options=contentOptions
|
|
}}
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isTag}}
|
|
<div class="setting full field-mapper-setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.tag_groups"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
{{tag-group-chooser
|
|
id=(concat field.id "-tag-groups")
|
|
tagGroups=field.tag_groups
|
|
onChange=(action (mut field.tag_groups))
|
|
}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.can_create_tag"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<Input @type="checkbox" @checked={{this.field.can_create_tag}} />
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isTopic}}
|
|
<div class="setting full field-mapper-setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.category.label"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
<CategoryChooser
|
|
@value={{this.field.category}}
|
|
@onChangeCategory={{action "changeCategory"}}
|
|
@options={{hash
|
|
none="admin.wizard.field.category.none"
|
|
autoInsertNoneItem=true
|
|
}}
|
|
/>
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#wizard-subscription-container}}
|
|
<div class="setting full field-mapper-setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.condition"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
{{wizard-mapper inputs=field.condition options=fieldConditionOptions}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="setting full field-mapper-setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.index"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
{{wizard-mapper inputs=field.index options=fieldIndexOptions}}
|
|
</div>
|
|
</div>
|
|
|
|
{{#if isCategory}}
|
|
<div class="setting">
|
|
<div class="setting-label">
|
|
<label>{{i18n "admin.wizard.field.property"}}</label>
|
|
</div>
|
|
|
|
<div class="setting-value">
|
|
{{combo-box
|
|
value=field.property
|
|
content=categoryPropertyTypes
|
|
onChange=(action (mut field.property))
|
|
options=(hash none="admin.wizard.selector.placeholder.property")
|
|
}}
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if validations}}
|
|
{{wizard-realtime-validations field=field validations=validations}}
|
|
{{/if}}
|
|
{{/wizard-subscription-container}} |