{{#if showUndo}}
  {{d-button
    action="undoChanges"
    icon=undoIcon
    label=undoKey
    class="undo-changes"}}
{{/if}}

<div class="setting">
  <div class="setting-label">
    <label>{{i18n "admin.wizard.type"}}</label>
  </div>
  
  <div class="setting-value">
    {{combo-box
      value=action.type
      content=actionTypes
      onChange=(action "changeType")
      options=(hash
        none="admin.wizard.select_type"
      )}}
  </div>
</div>

<div class="setting">
  <div class="setting-label">
    <label>{{i18n "admin.wizard.action.run_after.label"}}</label>
  </div>
  
  <div class="setting-value">
    {{combo-box
      value=action.run_after
      content=runAfterContent
      onChange=(action (mut action.run_after))}}
  </div>
</div>

{{wizard-message
  key=messageKey
  url=messageUrl
  component='action'}}

{{#if basicTopicFields}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.title"}}</label>
    </div>
    
    <div class="setting-value">
      {{wizard-mapper
        inputs=action.title
        property='title'
        onUpdate=(action 'mappedFieldUpdated')
        options=(hash
          wizardFieldSelection=true
          userFieldSelection='key,value'
          context='action'
        )}}
    </div>
  </div>

  <div class="setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.post"}}</label>
    </div>
    
    <div class="setting-value">
      {{combo-box
        value=action.post
        content=wizardFields
        nameProperty='label'
        onChange=(action (mut action.post))
        options=(hash
          none='admin.wizard.selector.placeholder.wizard_field'
          isDisabled=showPostBuilder
        )}}
      
      <div class="setting-gutter">
        {{input type='checkbox' checked=action.post_builder}}
        <span>{{i18n 'admin.wizard.action.post_builder.checkbox'}}</span>
      </div>
    </div>
  </div>

  {{#if action.post_builder}}
    <div class="setting full">
      <div class="setting-label">
        <label>{{i18n 'admin.wizard.action.post_builder.label'}}</label>
      </div>
      
      <div class="setting-value editor">
        {{wizard-text-editor
          value=action.post_template
          wizardFields=wizardFields}}
      </div>
    </div>
  {{/if}}
{{/if}}

{{#if publicTopicFields}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_topic.category"}}</label>
    </div>
    
    <div class="setting-value">
      {{wizard-mapper
        inputs=action.category
        property='category'
        onUpdate=(action 'mappedFieldUpdated')
        options=(hash
          textSelection='key,value'
          wizardFieldSelection=true
          userFieldSelection='key,value'
          categorySelection='output'
          outputDefaultSelection='category'
          context='action'
        )}}
    </div>
  </div>
  
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.create_topic.tags"}}</label>
    </div>
    
    <div class="setting-value">
      {{wizard-mapper
        inputs=action.tags
        property='tags'
        onUpdate=(action 'mappedFieldUpdated')
        options=(hash
          tagSelection='output'
          outputDefaultSelection='tag'
          listSelection='output'
          wizardFieldSelection=true
          userFieldSelection='key,value'
          context='action'
        )}}
    </div>
  </div>
{{/if}}

{{#if sendMessage}}  
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.send_message.recipient"}}</label>
    </div>
    
    <div class="setting-value">
      {{wizard-mapper
        inputs=action.recipient
        property='recipient'
        onUpdate=(action 'mappedFieldUpdated')
        options=(hash
          textSelection='value,output'
          wizardFieldSelection=true
          userFieldSelection='key,value'
          groupSelection='key,value'
          userSelection='output'
          outputDefaultSelection='user'
          context='action'
        )}}
    </div>
  </div>
{{/if}}

{{#if updateProfile}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n 'admin.wizard.action.update_profile.setting'}}</label>
    </div>
    
    {{wizard-mapper 
      inputs=action.profile_updates
      property='profile_updates'
      onUpdate=(action 'mappedFieldUpdated')
      options=(hash
        inputTypes='association'
        textSelection='value'
        userFieldSelection='key'
        wizardFieldSelection='value'
        keyDefaultSelection='userField'
        context='action'
      )}}
  </div>
{{/if}}

{{#if sendToApi}}
  <div class="setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.send_to_api.api"}}</label>
    </div>
    
    <div class="setting-value">
      {{combo-box
        value=action.api
        content=availableApis
        onChange=(action (mut action.api))
        options=(hash
          isDisabled=action.custom_title_enabled
          none='admin.wizard.action.send_to_api.select_an_api'
        )}}
    </div>
  </div>

  <div class="setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.send_to_api.endpoint"}}</label>
    </div>
    
    <div class="setting-value">
      {{combo-box
        value=action.api_endpoint
        content=availableEndpoints
        onChange=(action (mut action.api_endpoint))
        options=(hash
          isDisabled=apiEmpty
          none='admin.wizard.action.send_to_api.select_an_endpoint'
        )}}
    </div>
  </div>

  <div class="setting full">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.send_to_api.body"}}</label>
    </div>
    
    <div class="setting-value">
      {{wizard-text-editor
        value=action.api_body
        previewEnabled=false
        barEnabled=false
        wizardFields=wizardFields
        placeholder='admin.wizard.action.send_to_api.body_placeholder'}}
    </div>
  </div>
{{/if}}

{{#if addToGroup}}
  <div class="setting full field-mapper-setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.group"}}</label>
    </div>
    
    <div class="setting-value">
      {{wizard-mapper
        inputs=action.group
        property='group'
        onUpdate=(action 'mappedFieldUpdated')
        options=(hash
          textSelection='value,output'
          wizardFieldSelection='key,value,assignment'
          userFieldSelection='key,value,assignment'
          groupSelection='value,output'
          outputDefaultSelection='group'
          context='action'
        )}}
    </div>
  </div>
{{/if}}

{{#if routeTo}}
  <div class="setting">
    <div class="setting-label">
      <label>{{i18n "admin.wizard.action.route_to.url"}}</label>
    </div>
    
    <div class="setting-value">
      {{input value=action.url}}
    </div>
  </div>
{{/if}}

{{#if showAdvanced}}
  {{wizard-advanced-toggle showAdvanced=action.showAdvanced}}

  {{#if action.showAdvanced}}
    <div class="advanced-settings">
      
      {{#if hasCustomFields}}
        <div class="setting full field-mapper-setting">
          <div class="setting-label">
            <label>{{i18n 'admin.wizard.action.custom_fields.label'}}</label>
          </div>
          
          <div class="setting-value">
            {{wizard-mapper
              inputs=action.custom_fields
              property='custom_fields'
              onUpdate=(action 'mappedFieldUpdated')
              options=(hash
                inputTypes='association'
                wizardFieldSelection='value'
                userFieldSelection='value'
                keyPlaceholder='admin.wizard.action.custom_fields.key'
                context='action'
              )}}
          </div>
        </div>
      {{/if}}
      
      {{#if sendMessage}}
        <div class="setting full field-mapper-setting">
          <div class="setting-label">
            <label>{{i18n 'admin.wizard.required'}}</label>
          </div>
          
          <div class="setting-value">
            {{wizard-mapper
              inputs=action.required
              property='required'
              onUpdate=(action 'mappedFieldUpdated')
              options=(hash
                textSelection='value'
                wizardFieldSelection=true
                userFieldSelection=true
                groupSelection=true
                context='action'
              )}}
          </div>
        </div>
      {{/if}}
      
      {{#if showSkipRedirect}}
        <div class="setting full">
          <div class="setting-label">
            <label>{{i18n "admin.wizard.action.skip_redirect.label"}}</label>
          </div>
          
          <div class="setting-value">
            {{input type='checkbox' checked=action.skip_redirect}}
            
            <span>
              {{i18n 'admin.wizard.action.skip_redirect.description' type='topic'}}
            </span>
          </div>
        </div>
      {{/if}}
      
      {{#if routeTo}}
        <div class="setting">
          <div class="setting-label">
            <label>{{i18n "admin.wizard.action.route_to.code"}}</label>
          </div>
          
          <div class="setting-value">
            {{input value=action.code}}
          </div>
        </div>
      {{/if}}
    </div>
  {{/if}}
{{/if}}