{% extends 'edit.twig' %}

{% block inner_content %}
{% if result %}
<h4>{{ lang.mailbox.recipient_map }}: {{ result.recipient_map_old }}</h4>
<br>
<form class="form-horizontal" data-id="edit_recipient_map" role="form" method="post">
  <input type="hidden" value="0" name="active">
  <div class="form-group">
    <label class="control-label col-sm-2" for="recipient_map_new">{{ lang.mailbox.recipient_map_old }}</label>
    <div class="col-sm-10">
      <input value="{{ result.recipient_map_old }}" type="text" class="form-control" name="recipient_map_old" id="recipient_map_old">
      <small>{{ lang.mailbox.recipient_map_old_info }}</small>
    </div>
  </div>
  <div class="form-group">
    <label class="control-label col-sm-2" for="recipient_map_new">{{ lang.mailbox.recipient_map_new }}</label>
    <div class="col-sm-10">
      <input value="{{ result.recipient_map_new }}" type="text" class="form-control" name="recipient_map_new" id="recipient_map_new">
      <small>{{ lang.mailbox.recipient_map_new_info }}</small>
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <div class="checkbox">
        <label><input type="checkbox" value="1" name="active"{% if result.active == '1' %} checked{% endif %}> {{ lang.edit.active }}</label>
      </div>
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="edit_recipient_map" data-item="{{ map }}" data-api-url='edit/recipient_map' data-api-attr='{}' href="#">{{ lang.edit.save }}</button>
    </div>
  </div>
</form>
{% else %}
  {{ parent() }}
{% endif %}
{% endblock %}
