]> git.agnieray.net Git - galette.git/blob - galette/templates/default/elements/js/loader.js.twig
Restore prev/next pagination on search dropdowns
[galette.git] / galette / templates / default / elements / js / loader.js.twig
1 {#
2 /**
3 * @file
4 * Show and hide loaders on ajax requests.
5 *
6 * Copyright © 2009-2023 The Galette Team
7 *
8 * This file is part of Galette (https://galette.eu).
9 *
10 * Galette is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 3 of the License, or
13 * (at your option) any later version.
14 *
15 * Galette is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with Galette. If not, see <https://www.gnu.org/licenses/>.
22 *
23 * @category Authentication
24 * @package Galette
25 *
26 * @author Johan Cwiklinski <johan@x-tnd.be>
27 * @copyright 2009-2023 The Galette Team
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or later
29 * @link https://galette.eu
30 * @since Available since 1.0dev - 2022-06-08
31 *
32 * Available variables:
33 *
34 * - selector: element on which to apply the loader.
35 * - loader: loader's variation to use (on button, action's list or page dimmer).
36 * - loader_text: text to display in the loader.
37 *
38 */
39 #}
40
41 {% if (loader is not defined) %}
42 {% set loader = (selector is not defined) ? 'dimmer' : 'inverted dimmer' %}
43 {% set loader_parent = (selector is not defined) ? 'body' : selector %}
44 {% set loader_text = (loader_text is defined) ? loader_text : _T('Loading...') %}
45 {% elseif (loader == 'button') %}
46 {% set loader = loader %}
47 {% set loader_parent = (selector is defined) ? selector %}
48 {% elseif (loader == 'action') %}
49 {% set loader = 'inverted dimmer' %}
50 {% set loader_parent = (selector is defined) ? selector %}
51 {% set loader_text = (loader_text is defined) ? loader_text : _T('Loading...') %}
52 {% else %}
53 {% set loader = loader ~ ' loader' %}
54 {% set loader_parent = (selector is defined) ? selector %}
55 {% endif %}
56
57 beforeSend: function() {
58 var _loader = $('<div class="ui active {{ loader }}"><div class="ui{% if (loader_text is defined) %} text{% endif %} loader">{% if (loader_text is defined) %}{{ loader_text|e('js') }}{% endif %}</div></div>');
59
60 {% if (loader == 'button') %}
61 $('{{ loader_parent }}').addClass('loading');
62 {% else %}
63 {% if (loader == 'action' or loader ends with 'dimmer') %}
64 $('{{ loader_parent }} .dimmer:not(.modals)').remove();
65 {% elseif (loader ends with 'loader') %}
66 $('{{ loader_parent }} .loader').remove();
67 {% endif %}
68 $('{{ loader_parent }}').append(_loader);
69 {% endif %}
70
71 {% if extra_beforesend is defined %}
72 {{ extra_beforesend|raw }}
73 {% endif %}
74
75 },
76 complete: function() {
77
78 {% if (loader == 'button') %}
79 $('{{ loader_parent }}').removeClass('loading');
80 {% else %}
81 {% if (loader ends with 'dimmer') %}
82 $('{{ loader_parent }} .dimmer:not(.modals)').remove();
83 {% elseif (loader ends with 'loader') %}
84 $('{{ loader_parent }} .loader').remove();
85 {% endif %}
86 {% endif %}
87
88 {% if extra_complete is defined %}
89 {{ extra_complete|raw }}
90 {% endif %}
91
92 }