aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/app/templates/form
diff options
context:
space:
mode:
Diffstat (limited to 'services/app/templates/form')
-rw-r--r--services/app/templates/form/_form.html.twig24
-rw-r--r--services/app/templates/form/_form_item.html.twig20
-rw-r--r--services/app/templates/form/_form_item_checkbox.html.twig21
-rw-r--r--services/app/templates/form/_form_item_textarea.html.twig20
4 files changed, 85 insertions, 0 deletions
diff --git a/services/app/templates/form/_form.html.twig b/services/app/templates/form/_form.html.twig
new file mode 100644
index 0000000..b6a9d1d
--- /dev/null
+++ b/services/app/templates/form/_form.html.twig
@@ -0,0 +1,24 @@
+<form method=POST{% if form.action %} action="{{ form.action }}"{% endif %} novalidate>
+ {% if form.errors.general %}
+ <div class="alert alert-danger">
+ {{ form.errors.general }}
+ </div>
+ {% endif %}
+
+ {% for item in form.items %}
+ {% if item.type == 'checkbox' %}
+ {{ include('form/_form_item_checkbox.html.twig') }}
+ {% elseif item.type == 'textarea' %}
+ {{ include('form/_form_item_textarea.html.twig') }}
+ {% else %}
+ {{ include('form/_form_item.html.twig') }}
+ {% endif %}
+ {% endfor %}
+
+ <div class="mb-3">
+ <input type="submit" class="btn btn-primary" value="{{ form.submit_label }}">
+ </div>
+
+ <input type="hidden" name="{{ csrf.name_key }}" value="{{ csrf.name }}">
+ <input type="hidden" name="{{ csrf.value_key }}" value="{{ csrf.value }}">
+</form>
diff --git a/services/app/templates/form/_form_item.html.twig b/services/app/templates/form/_form_item.html.twig
new file mode 100644
index 0000000..6e6a36b
--- /dev/null
+++ b/services/app/templates/form/_form_item.html.twig
@@ -0,0 +1,20 @@
+{% set value = form.state[item.name] %}
+{% set error = form.errors[item.name] %}
+{% set classes = 'form-control' %}
+{% if error %}
+ {% set classes = classes ~ ' is-invalid' %}
+{% endif %}
+{% set required = item.isRequired ? ' required' : '' %}
+{% set disabled = item.isDisabled ? ' disabled' : '' %}
+{% set extra = item.extra ? item.extra : '' %}
+<div class="mb-3">
+ {% if item.label %}
+ <label for="form-{{ item.name }}" class="form-label">{{ item.label }}</label>
+ {% endif %}
+
+ <input type="{{ item.type }}" class="{{ classes }}" id="form-{{ item.name }}" name="{{ item.name }}"{% if value %} value="{{ value }}"{% endif %}{{ required }}{{ disabled }} {{ extra }}>
+
+ {% if error %}
+ <div class="invalid-feedback">{{ error }}</div>
+ {% endif %}
+</div>
diff --git a/services/app/templates/form/_form_item_checkbox.html.twig b/services/app/templates/form/_form_item_checkbox.html.twig
new file mode 100644
index 0000000..e51cc0c
--- /dev/null
+++ b/services/app/templates/form/_form_item_checkbox.html.twig
@@ -0,0 +1,21 @@
+{% set value = form.state[item.name] %}
+{% set error = form.errors[item.name] %}
+{% set classes = 'form-check-input' %}
+{% if error %}
+ {% set classes = classes ~ ' is-invalid' %}
+{% endif %}
+{% set required = item.isRequired ? ' required' : '' %}
+{% set disabled = item.isDisabled ? ' disabled' : '' %}
+{% set extra = item.extra ? item.extra : '' %}
+{% set extra = extra ~ (value == 'on' ? ' checked' : '') %}
+<div class="mb-3 form-check">
+ <input type="checkbox" class="{{ classes }}" id="form-{{ item.name }}" name="{{ item.name }}"{% if value %} value="{{ value }}"{% endif %}{{ required }}{{ disabled }} {{ extra }}>
+
+ {% if item.label %}
+ <label for="form-{{ item.name }}" class="form-check-label">{{ item.label }}</label>
+ {% endif %}
+
+ {% if error %}
+ <div class="invalid-feedback">{{ error }}</div>
+ {% endif %}
+</div>
diff --git a/services/app/templates/form/_form_item_textarea.html.twig b/services/app/templates/form/_form_item_textarea.html.twig
new file mode 100644
index 0000000..bf5cc8c
--- /dev/null
+++ b/services/app/templates/form/_form_item_textarea.html.twig
@@ -0,0 +1,20 @@
+{% set value = form.state[item.name] %}
+{% set error = form.errors[item.name] %}
+{% set classes = 'form-control' %}
+{% if error %}
+ {% set classes = classes ~ ' is-invalid' %}
+{% endif %}
+{% set required = item.isRequired ? ' required' : '' %}
+{% set disabled = item.isDisabled ? ' disabled' : '' %}
+{% set extra = item.extra ? item.extra : '' %}
+<div class="mb-3">
+ {% if item.label %}
+ <label for="form-{{ item.name }}" class="form-label">{{ item.label }}</label>
+ {% endif %}
+
+ <textarea class="{{ classes }}" id="form-{{ item.name }}" name="{{ item.name }}"{{ required }}{{ disabled }} {{ extra }}>{{ value }}</textarea>
+
+ {% if error %}
+ <div class="invalid-feedback">{{ error }}</div>
+ {% endif %}
+</div>