{# # This file is part of MedShakeEHR. # # Copyright (c) 2017 # Bertrand Boutillier # http://www.medshake.net # # MedShakeEHR 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 # any later version. # # MedShakeEHR 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 MedShakeEHR. If not, see . #/ /## # Template > macro de construction des formulaires # # @author Bertrand Boutillier # @contrib fr33z00 #} {# input #} {% macro input(v) %} {% if v.input.type in ['checkbox', 'switch'] %} {% if v.input.before is not empty %} {{ v.input.before }} {% endif %}
{% if v.input.after %} {{ v.input.after }} {% endif %} {% elseif v.input.type == 'submit' %} {% if v.input.before is not empty %} {{ v.input.before }} {% endif %} {% if v.input.after %} {{ v.input.after }} {% endif %} {% else %} {# si un label existe #} {% if v.label.label != '' %} {% endif %} {# insertion avant le input #} {% if v.input.before %} {{ v.input.before }} {% if v.input.plusg %}
{{ v.input.plusg }}
{% endif %} {% elseif v.input.plus or v.input.plusg %}
{% if v.input.plusg %}
{{ v.input.plusg }}
{% endif %} {% endif %} {# input #} {# insertion après le input #} {% if v.input.after %} {{ v.input.after }} {% elseif v.input.plus %}
{{ v.input.plus }}
{% endif %} {% if v.input.before %} {% elseif v.input.plus or v.input.plusg %}
{% endif %} {% if v.label.helpTxt is not empty %} {{ v.label.helpTxt }} {% endif %} {% endif %} {% endmacro %} {# hidden #} {% macro hidden(v) %} {% endmacro %} {# select #} {% macro select(v) %} {# si un label existe #} {% if v.label.label != '' %} {% endif %} {# insertion avant le select #} {% if v.select.before %} {{ v.select.before }} {% if v.select.plusg %}
{{ v.select.plusg }}
{% endif %} {% elseif v.select.plus or v.select.plusg %}
{% if v.select.plusg %}
{{ v.select.plusg }}
{% endif %} {% endif %} {% if v.select.plus %}
{{ v.select.plus }}
{% endif %} {% if v.select.plus or v.select.plusg %}
{% endif %} {% if v.select.after %} {{ v.select.after }} {% endif %} {% if v.label.helpTxt is not empty %} {{ v.label.helpTxt }} {% endif %} {% endmacro %} {# radio #} {% macro radio(v) %}
{% if 'notInline' in v.radio.class %} {# si un label existe #} {% if v.label.label != '' %}
{{ v.label.label|e }}
{% endif %} {% for key,value in v.radio.values %}
{% endfor %} {% else %} {% if v.label.label != '' and 'brAfter' in v.label.class %}
{{ v.label.label|e }}
{% endif %}
{# si un label existe #} {% if v.label.label != '' and 'brAfter' not in v.label.class %}
{{ v.label.label|e }}
{% endif %} {% for key,value in v.radio.values %}
{% endfor %}
{% endif %}
{% endmacro %} {# selectMultiple #} {% macro selectMultiple(v) %} {# si un label existe #} {% if v.label.label != '' %} {% endif %} {% if v.select.before %} {{ v.select.before }} {% endif %} {% if v.select.after %} {{ v.select.after }} {% endif %} {% if v.label.helpTxt is not empty %} {{ v.label.helpTxt }} {% endif %} {% endmacro %} {# select avec optgroup #} {% macro selectOptgroup(v) %} {# si un label existe #} {% if v.label.label != '' %} {% endif %} {% if v.select.before %} {{ v.select.before }} {% endif %} {% if v.select.after %} {{ v.select.after }} {% endif %} {% if v.label.helpTxt is not empty %} {{ v.label.helpTxt }} {% endif %} {% endmacro %} {# textarea #} {% macro textarea(v) %} {% if v.label.label != '' %} {% endif %} {% if v.textarea.before %} {{ v.textarea.before }} {% endif %} {% if v.textarea.after %} {{ v.textarea.after }} {% endif %} {% if v.label.helpTxt is not empty %} {{ v.label.helpTxt }} {% endif %} {% endmacro %} {# formBuilder #} {% macro formbuilder(t , formIN, prevalue ) %} {% import _self as f %} {% if t.global.formCss is defined and t.global.formCss is not empty %} {% endif %} {% if t.global.noFormTags is not defined %}
{% endif %} {# form autoTitle : name du data_type dont la valeur déterminera le titre de l'objet créé #} {% if t.global.autoTitle %} {{ f.input ({ 'input' : { 'type' : 'hidden', 'name' : 'autoTitle', 'value' : t.global.autoTitle } }) }} {% endif %} {# form autoDate : name du data_type dont la valeur déterminera la date effective (creationDate) de l'objet créé #} {% if t.global.autoDate %} {{ f.input ({ 'input' : { 'type' : 'hidden', 'name' : 'autoDate', 'value' : t.global.autoDate } }) }} {% endif %} {# form name #} {{ f.input ({ 'input' : { 'type' : 'hidden', 'name' : 'formIN', 'value' : formIN } }) }} {# champ cachés #} {% for khc,hc in t.addHidden %} {{ f.input ({ 'input' : { 'type' : 'hidden', 'name' : khc, 'value' : hc } }) }} {% endfor %} {% for keyrow, row in t.structure %}
{% for keycol, col in row %} {% if keycol == "elements" %} {% if col.value is defined %}

{{ col.value }}

{% endif %} {% else %}
{% for el in col.elements %} {% if el.type == "head" %}

{{ el.value }}

{% elseif el.type == "label" %} {{ el.value }}

{% elseif el.type == "template" %} {% include el.value ~ '.html.twig' %} {% else %} {% if el.value.formType in ['text','email','tel','password', 'number', 'range','reset'] %}
{{ f.input ({ 'input' : { 'type' : el.value.formType, 'name' : el.value.name, 'id' : 'id_' ~ el.value.internalName ~ '_id', 'placeholder' : el.value.placeholder, 'class' : 'form-control-sm ' ~ el.value.autocompleteclass ~ el.value.class, 'value' : el.value.preValue, 'defaut' : el.value.formValues, 'required' : el.value.required, 'tabindex' : el.value.tabindex, 'maxlength' : el.value.maxlength, 'disabled' : el.value.disabled, 'readonly' : el.value.readonly, 'datatypeid' : el.value.id, 'autocomplete' : 'off', 'dataAcTypeID' : el.value.dataAcTypeID, 'min' : el.value.min, 'max' : el.value.max, 'step' : el.value.step, 'plus' : el.value.plus, 'plusg' : el.value.plusg, 'internalName' : el.value.internalName, 'before' : t['before'][el.value.internalName] }, 'label' : { 'label' : el.value.label, 'class' : el.value.classLabel, 'helpTxt': el.value.helpTxt, } }) }}
{% elseif el.value.formType == 'hidden' %} {{ f.hidden ({ 'hidden' : { 'type' : 'hidden', 'name' : el.value.name, 'id' : 'id_' ~ el.value.internalName ~ '_id', 'value' : el.value.preValue, 'defaut' : el.value.formValues, 'datatypeid' : el.value.id, 'placeholder' : el.value.placeholder, 'autocomplete' : 'off', 'dataAcTypeID' : el.value.dataAcTypeID, 'internalName' : el.value.internalName, }, }) }} {% elseif el.value.formType in ['checkbox', 'switch'] %}
{{ f.input ({ 'input' : { 'type' : el.value.formType, 'name' : el.value.name, 'id' : 'id_' ~ el.value.internalName ~ '_id', 'class' : el.value.autocompleteclass ~ el.value.class, 'value' : el.value.preValue, 'defaut' : el.value.formValues, 'required' : el.value.required, 'tabindex' : el.value.tabindex, 'disabled' : el.value.disabled, 'readonly' : el.value.readonly, 'datatypeid' : el.value.id, 'internalName' : el.value.internalName, 'before' : t['before'][el.value.internalName] }, 'label' : { 'label' : el.value.label, 'class' : el.value.classLabel, } }) }}
{% elseif el.value.formType == "textarea" %}
{{ f.textarea ({ 'textarea' : { 'name' : el.value.name, 'id' : 'id_' ~ el.value.internalName ~ '_id', 'class' : 'form-control form-control-sm' ~ el.value.class, 'value' : el.value.preValue, 'defaut' : el.value.formValues, 'tabindex' : el.value.tabindex, 'disabled' : el.value.disabled, 'datatypeid' : el.value.id, 'autocomplete' : 'off', 'placeholder' : el.value.placeholder, 'readonly' : el.value.readonly, 'rows' : el.value.rows, 'internalName' : el.value.internalName, 'before' : t['before'][el.value.internalName] }, 'label' : { 'label' : el.value.label, 'class' : el.value.classLabel, 'helpTxt': el.value.helpTxt, } }) }}
{% elseif el.value.formType == "select" %}
{{ f.select ({ 'select' : { 'name' : el.value.name, 'id' : 'id_' ~ el.value.internalName ~ '_id', 'class' : 'custom-select-sm' ~ el.value.class, 'values' : el.value.formValues, 'valueDefaut' : el.value.preValue, 'readonly' : el.value.readonly, 'required' : el.value.required, 'placeholder' : el.value.placeholder, 'tabindex' : el.value.tabindex, 'disabled' : el.value.disabled, 'datatypeid' : el.value.id, 'autocomplete' : 'off', 'internalName' : el.value.internalName, 'before' : t['before'][el.value.internalName], 'plus' : el.value.plus, 'plusg' : el.value.plusg }, 'label' : { 'label' : el.value.label, 'class' : el.value.classLabel, 'helpTxt': el.value.helpTxt, } }) }}
{% elseif el.value.formType == "radio" %}
{{ f.radio ({ 'radio' : { 'name' : el.value.name, 'id' : 'id_' ~ el.value.internalName ~ '_id', 'class' : 'form-control form-control-sm' ~ el.value.class, 'values' : el.value.formValues, 'valueDefaut' : el.value.preValue, 'readonly' : el.value.readonly, 'required' : el.value.required, 'tabindex' : el.value.tabindex, 'disabled' : el.value.disabled, 'datatypeid' : el.value.id, 'autocomplete' : 'off', 'internalName' : el.value.internalName, 'before' : t['before'][el.value.internalName] }, 'label' : { 'label' : el.value.label, 'class' : el.value.classLabel, } }) }}
{% elseif el.value.formType == "date" %}
{{ f.input ({ 'input' : { 'type' : 'text', 'name' : el.value.name, 'id' : 'id_' ~ el.value.internalName ~ '_id', 'placeholder' : el.value.placeholder, 'datatypeid' : el.value.id, 'autocomplete' : 'off', 'min' : el.value.min, 'max' : el.value.max, 'step' : el.value.step, 'tabindex' : el.value.tabindex, 'disabled' : el.value.disabled, 'readonly' : el.value.readonly, 'required' : el.value.required, 'class' : 'form-control-sm datepic ' ~ el.value.class, 'before' : '
', 'after' : '
', 'value' : el.value.preValue, 'defaut' : el.value.formValues, 'plusg' : el.value.plusg, 'internalName' : el.value.internalName }, 'label' : { 'label' : el.value.label, 'class' : el.value.classLabel, 'helpTxt': el.value.helpTxt, } }) }}
{% elseif el.value.formType == "submit" %} {{ f.input ({ 'input' : { 'type' : 'submit', 'value' : el.value.label, 'tabindex' : el.value.tabindex, 'disabled' : el.value.disabled, 'class' : el.value.class } }) }} {% endif %} {% endif %} {% endfor %}
{% endif %} {% endfor %}
{% endfor %} {% if t.global.noFormTags is not defined %}
{% endif %} {% endmacro %} {# form errors bloc #} {% macro errorFormDiv( validationErrorsMsg, display='', dismiss=true ) %} {% if validationErrorsMsg %} {% endif %} {% endmacro %} {# simple ajax form errors bloc #} {% macro errorsBloc(dismiss=true) %} {% endmacro %}