<div tal:replace="nothing">
<!--

camcops_server/templates/deform/horizontal_form.pt

===============================================================================

    Copyright (C) 2012, University of Cambridge, Department of Psychiatry.
    Created by Rudolf Cardinal (rnc1001@cam.ac.uk).

    This file is part of CamCOPS.

    CamCOPS is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    CamCOPS is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with CamCOPS. If not, see <https://www.gnu.org/licenses/>.

===============================================================================

A Zope page template, used by Deform.
Mostly original Deform code but with some modifications.

-->
</div>
<form
  tal:define="style style|field.widget.style;
              css_class css_class|string:${field.widget.css_class or field.css_class or ''};
              item_template item_template|field.widget.item_template;
              autocomplete autocomplete|field.autocomplete;
              title title|field.title;
              errormsg errormsg|field.errormsg;
              description description|field.description;
              buttons buttons|field.buttons;
              use_ajax use_ajax|field.use_ajax;
              ajax_options ajax_options|field.ajax_options;
              formid formid|field.formid;
              action action|field.action or None;
              method method|field.method;"
  tal:attributes="autocomplete autocomplete;
                  style style;
                  class css_class;
                  action action;"
  id="${formid}"
  method="${method}"
  enctype="multipart/form-data"
  accept-charset="utf-8"
  i18n:domain="deform"
  class="deform ${field.bootstrap_form_style | 'form-horizontal'}"
  >
  <!-- added class="..." above -->
  <fieldset class="deform-form-fieldset">

    <legend tal:condition="title">${title}</legend>

    <input type="hidden" name="_charset_" />
    <input type="hidden" name="__formid__" value="${formid}"/>

    <div class="alert alert-danger" tal:condition="field.error">
      <div class="error-msg-lbl" i18n:translate=""
        >There was a problem with your submission</div>
      <div class="error-msg-detail" i18n:translate=""
        >Errors have been highlighted below</div>
      <p class="error-msg">${field.errormsg}</p>
    </div>

    <p class="section first" tal:condition="description">
      ${description}
    </p>

    <div tal:repeat="child field"
         tal:replace="structure child.render_template(item_template)"/>

    <div class="form-group deform-form-buttons">
      <tal:loop tal:repeat="button buttons">
        <button
              tal:define="btn_disposition repeat.button.start and 'btn-primary' or 'btn-default';"
              tal:attributes="disabled button.disabled if button.disabled else None"
              id="${formid+button.name}"
              name="${button.name}"
              type="${button.type}"
              class="btn ${button.css_class or btn_disposition}"
              value="${button.value}"
              tal:condition="button.type != 'link'">
          <span tal:condition="button.icon" class="glyphicon glyphicon-${button.icon}"></span>
          ${button.title}
        </button>
        <a
              tal:define="btn_disposition repeat.button.start and 'btn-primary' or 'btn-default';
              btn_href button.value|''"
              class="btn ${button.css_class or btn_disposition}"
              id="${field.formid + button.name}"
              href="${btn_href}"
              tal:condition="button.type == 'link'">
          <span tal:condition="button.icon" class="glyphicon glyphicon-${button.icon}"></span>
          ${button.title}
        </a>
      </tal:loop>
    </div>

  </fieldset>

  <!--suppress JSUnnecessarySemicolon -->
  <script type="text/javascript" tal:condition="use_ajax">
   deform.addCallback(
     '${formid}',
     function(oid) {
       var target = '#' + oid;
       var options = {
         target: target,
         replaceTarget: true,
         success: function() {
           deform.processCallbacks();
           deform.focusFirstInput(target);
         },
         beforeSerialize: function() {
           // See http://bit.ly/1agBs9Z (hack to fix tinymce-related ajax bug)
           if ('tinymce' in window) {
             $(tinymce.get()).each(
               function(i, el) {
                 var content = el.getContent();
                 var editor_input = document.getElementById(el.id);
                 editor_input.value = content;
             });
           }
         }
       };
       var extra_options = ${ajax_options} || {};
       $('#' + oid).ajaxForm($.extend(options, extra_options));
     }
   );
  </script>

</form>
