Current File : /home/escuelai/public_html/it/templates/components/form/modals_macros.html.twig |
{#
# ---------------------------------------------------------------------
#
# GLPI - Gestionnaire Libre de Parc Informatique
#
# http://glpi-project.org
#
# @copyright 2015-2022 Teclib' and contributors.
# @copyright 2003-2014 by the INDEPNET Development Team.
# @licence https://www.gnu.org/licenses/gpl-3.0.html
#
# ---------------------------------------------------------------------
#
# LICENSE
#
# This file is part of GLPI.
#
# This program 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.
#
# This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
#
# ---------------------------------------------------------------------
#}
{% macro confirm(modal_title = '', modal_body = '', options = {}) %}
{% set options = {
'buttons': {
'cancel': {
'label': options['cancel_label']|default(_x('button', 'Cancel')),
'event': options['cancel_event']|default('')
},
'confirm': {
'label': options['confirm_label']|default(_x('button', 'Ok')),
'event': options['confirm_event']|default(''),
'class': 'ms-auto'
}
},
}|merge(options) %}
{{ _self.modal(modal_title, modal_body, options) }}
{% endmacro %}
{% macro modal(modal_title, modal_body, options = {}) %}
{% set rand = random() %}
{% set options = {
'id': 'modal' ~ rand,
'rand': rand,
'buttons': [],
'modal_classes': ''
}|merge(options) %}
<div class="modal fade {{ options.modal_classes }}" id="{{ options.id }}" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{{ modal_title }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{ _x('button', 'Close') }}"></button>
</div>
<div class="modal-body overflow-auto">
{{ modal_body|raw }}
</div>
<div class="modal-footer">
{% for button in options['buttons'] %}
<button type="button" class="btn {{ options['primary'] ? 'btn-primary' : 'btn-outline-secondary' }} {{ button['class']|default('') }}"
id="{{ button['id']|default(options.id ~ '_btn_' ~ (loop.index0)) }}" data-bs-dismiss="modal">
{{ button['label']|default('')|raw }}
</button>
{% endfor %}
</div>
</div>
</div>
</div>
<script>
$(function () {
{% for button in options['buttons'] %}
$('#{{ options.id }}').on('click', '#{{ button['id']|default(options.id ~ '_btn_' ~ (loop.index0)) }}', function (event) {
{{ (button['event']|default('return true;'))|raw }}
});
{% endfor %}
});
</script>
{% endmacro %}