textinput_btn.pt 2.83 KB
<span
  tal:define="name name|field.name;
                  css_class css_class|field.widget.css_class;
                  oid oid|field.oid;
                  mask mask|field.widget.mask;
                  button button|field.widget.button;
                  mask_placeholder mask_placeholder|field.widget.mask_placeholder;
                  style style|field.widget.style;
                  js js|field.widget.js;
        "
  tal:omit-tag=""
>
  <input
    type="text"
    tal:attributes="
                           attributes|field.widget.attributes|{};"
    id="${oid}"
    name="${name}"
    value="${cstruct}"
    tal:condition="not button"
    class="peer p-2.5 block w-full border-gray-200 rounded-md text-sm placeholder:text-transparent focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-transparent dark:border-gray-700 dark:text-gray-400 dark:focus:ring-gray-600 focus:pt-6 focus:pb-2 [&:not(:placeholder-shown)]:pt-6 [&:not(:placeholder-shown)]:pb-2 autofill:pt-6 autofill:pb-2"
  />

  <div class="input-group" tal:condition="button">
    <input
      type="text"
      name="${name}"
      value="${cstruct}"
      tal:attributes="class string: form-control ${css_class or ''};
                       style style;
                       attributes|field.widget.attributes|{};"
      id="${oid}"
    />
    <span class="input-group-btn">
      <button
        tal:define="btn_disposition 'btn-default';"
        tal:attributes="disabled button.disabled if button.disabled else None;
                                attributes|button.attributes|{};"
        id="${oid+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 'btn-default';
                btn_href button.value|''"
        class="btn ${button.css_class or btn_disposition}"
        id="${oid + button.name}"
        href="${btn_href}"
        tal:condition="button.type == 'link'"
      >
        <span
          tal:condition="button.icon"
          class="glyphicon glyphicon-${button.icon}"
        ></span>
        ${button.title}
      </a>
    </span>
    <script tal:condition="js" type="text/javascript">
      deform.addCallback(
          '${oid+button.name}',
          function (oid) {
              ${structure:js}
          });
    </script>
  </div>
  <!-- /input-group -->

  <script tal:condition="mask" type="text/javascript">
    deform.addCallback("${oid}", function (oid) {
      $("#" + oid).mask("${mask}", { placeholder: "${mask_placeholder}" });
    });
  </script>
</span>