fieldset.html.twig 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. {% extends "forms/field.html.twig" %}
  2. {% block field %}
  3. <div class="form-fieldset{% if vertical %} vertical{% endif %}{% if field.classes is defined %} {{ field.classes }}{% endif %}">
  4. {% block contents %}
  5. <input type="checkbox" class="hidden" id="fieldset_collapsible_{{ field.name }}"{% if not field.collapsible or not field.collapsed %} checked="checked"{% endif %} />
  6. <div class="form-label form-fieldset--label">
  7. <h2>
  8. <label{% if field.collapsible %} for="fieldset_collapsible_{{ field.name }}" class="form-fieldset--cursor"{% endif %}>
  9. {% if field.help %}
  10. <span class="hint--bottom" data-hint="{{ field.help|e|tu }}">
  11. {% endif %}
  12. {% block label %}
  13. {% if field.icon %}
  14. <i class="fa fa-fw fa-{{ field.icon }}"></i>
  15. {% endif %}
  16. {{ field.title|tu }}
  17. {{ field.validate.required in ['on', 'true', 1] ? '<span class="required">*</span>' }}
  18. {% if field.info %}
  19. <span class="form-fieldset--info">{{ field.info|tu }}</span>
  20. {% endif %}
  21. {% endblock %}
  22. {% if field.help %}
  23. </span>
  24. {% endif %}
  25. {# Actions panel #}
  26. <span class="actions">
  27. {% block actions %}
  28. {% if field.collapsible %}
  29. <span class="form-fieldset--collapsible">
  30. <i class="fa fa-chevron-down open"></i>
  31. <i class="fa fa-chevron-up close"></i>
  32. </span>
  33. {% endif %}
  34. {% endblock %}
  35. </span>
  36. </label>
  37. </h2>
  38. </div>
  39. <div class="form-data"
  40. {#{% block global_attributes %}
  41. data-grav-field="{{ field.type }}"
  42. data-grav-disabled="{{ originalValue is null ? 'true' : 'false' }}"
  43. data-grav-default="{{ field.default|json_encode()|e('html_attr') }}"
  44. {% endblock %}#}
  45. >
  46. {% block group %}
  47. {% if field.text %}
  48. {% if grav.twig.twig.filters['tu'] is defined %}
  49. {{ field.markdown ? field.text|tu|markdown : '<p>' ~ field.text|tu ~ '</p>' }}
  50. {% else %}
  51. {{ field.markdown ? field.text|t|markdown : '<p>' ~ field.t ~ '</p>' }}
  52. {% endif %}
  53. {% endif %}
  54. {% if field.fields %}
  55. {% for childName, child in field.fields %}
  56. {%- if childName == 'value' -%}
  57. {% set childKey = '' %}
  58. {% set childName = itemName -%}
  59. {%- elseif childName starts with '.' -%}
  60. {% set childKey = childName|trim('.') %}
  61. {% set childName = itemName ~ childName %}
  62. {% else %}
  63. {% set childKey = childName %}
  64. {% set childName = childName|replace({'*': key}) %}
  65. {% endif %}
  66. {% set child = child|merge({ name: childName }) %}
  67. {% if child.type == 'key' %}
  68. {%
  69. include 'forms/fields/key/key.html.twig'
  70. with { field: child, value: key }
  71. %}
  72. {% elseif child.key == true %}
  73. {% include [
  74. "forms/fields/#{child.type}/#{child.type}.html.twig",
  75. 'forms/fields/key/key.html.twig'
  76. ] with { field: child, value: key }
  77. %}
  78. {% elseif child.type %}
  79. {% set originalValue = data.value(child.name) %}
  80. {%
  81. include [
  82. "forms/fields/#{child.type}/#{child.type}.html.twig",
  83. 'forms/fields/text/text.html.twig'
  84. ] with { field: child, value: data.value(child.name) }
  85. %}
  86. {% endif %}
  87. {% endfor %}
  88. {% endif %}
  89. {% endblock %}
  90. </div>
  91. {% endblock %}
  92. </div>
  93. {% endblock %}