]> git.agnieray.net Git - galette.git/blob - galette/templates/default/elements/js/choose_adh.js.twig
b27b188bdcb15ad29d8c0e32f65c33379e9a8b65
[galette.git] / galette / templates / default / elements / js / choose_adh.js.twig
1 {% if js_chosen_id is not defined %}
2 {% set js_chosen_id = "#id_adh" %}
3 {% endif %}
4 var _current_page = 1;
5
6 var _chosenPages = function() {
7 // Hide or enable pagination buttons.
8 {% if members.filters.pages is defined and members.filters.pages > 1 %}
9 $('.next-results').removeClass('disabled');
10 $('.next-results, .prev-results').removeClass('displaynone');
11 {% else %}
12 $('.next-results, .prev-results').addClass('displaynone');
13 {% endif %}
14
15 // Next results
16 $('{{ js_chosen_id }} .next-results').off().on('click', function() {
17 var _data = {
18 page: _current_page + 1,
19 };
20 var _selected_value = $('{{ js_chosen_id }}').dropdown('get value');
21 var _selected_text = $('{{ js_chosen_id }}').dropdown('get text');
22 {% if members.filters.pages is defined %}
23 var _pages = {{ members.filters.pages }};
24 {% endif %}
25
26 $.ajax({
27 url: '{{ url_for("contributionMembers") }}',
28 method: 'post',
29 data: _data,
30 {% include "elements/js/loader.js.twig" with {
31 loader: "action",
32 loader_text: "",
33 selector: ".menu.visible",
34 extra_beforesend: "$('.next-results').addClass('disabled');",
35 extra_complete: "if (_pages > _current_page) {$('.next-results').removeClass('disabled');}"
36 } %},
37 success: function(res) {
38 // Reload dropdown's items with new results.
39 var _values = Object.values(res)[0];
40 $('{{ js_chosen_id }}').dropdown('change values', _values);
41
42 // Restore selected item.
43 if (_selected_value != '') {
44 $('{{ js_chosen_id }}').dropdown('set value', _selected_value);
45 $('{{ js_chosen_id }}').dropdown('set text', _selected_text);
46 }
47
48 // New current page number.
49 _current_page += 1;
50
51 // Disable/Enable required pagination buttons.
52 if (_pages == _current_page) {
53 $('.next-results').addClass('disabled');
54 }
55 if (_current_page > 1) {
56 $('.prev-results').removeClass('disabled');
57 }
58 },
59 error: function() {
60 {% include "elements/js/modal.js.twig" with {
61 modal_title_twig: _T("An error occurred retrieving members :(")|e("js"),
62 modal_without_content: true,
63 modal_class: "mini",
64 modal_deny_only: true,
65 modal_cancel_text: _T("Close")|e("js"),
66 modal_classname: "redalert",
67 } %}
68 }
69 });
70 });
71
72 // Previous results
73 $('{{ js_chosen_id }} .prev-results').off().on('click', function() {
74 var _data = {
75 page: _current_page - 1,
76 };
77 var _selected_value = $('{{ js_chosen_id }}').dropdown('get value');
78 var _selected_text = $('{{ js_chosen_id }}').dropdown('get text');
79 {% if members.filters.pages is defined %}
80 var _pages = {{ members.filters.pages }};
81 {% endif %}
82
83 $.ajax({
84 url: '{{ url_for("contributionMembers") }}',
85 method: 'post',
86 data: _data,
87 {% include "elements/js/loader.js.twig" with {
88 loader: "action",
89 loader_text: "",
90 selector: ".menu.visible",
91 extra_beforesend: "$('.prev-results').addClass('disabled');",
92 extra_complete: "if (_current_page > 1) {$('.prev-results').removeClass('disabled');}"
93 } %},
94 success: function(res) {
95 // Reload dropdown's items with new results.
96 var _values = Object.values(res)[0];
97 $('{{ js_chosen_id }}').dropdown('change values', _values);
98
99 // Restore selected item.
100 if (_selected_value != '') {
101 $('{{ js_chosen_id }}').dropdown('set value', _selected_value);
102 $('{{ js_chosen_id }}').dropdown('set text', _selected_text);
103 }
104
105 // New current page number.
106 _current_page -= 1;
107
108 // Disable/Enable required pagination buttons.
109 if (_pages > _current_page) {
110 $('.next-results').removeClass('disabled');
111 }
112 if (_current_page == 1) {
113 $('.prev-results').addClass('disabled');
114 }
115 },
116 error: function() {
117 {% include "elements/js/modal.js.twig" with {
118 modal_title_twig: _T("An error occurred retrieving members :(")|e("js"),
119 modal_without_content: true,
120 modal_class: "mini",
121 modal_deny_only: true,
122 modal_cancel_text: _T("Close")|e("js"),
123 modal_classname: "redalert",
124 } %}
125 }
126 });
127 });
128 }
129
130 var _adhselect = function() {
131 $('{{ js_chosen_id }}').dropdown({
132 match: 'text',
133 apiSettings: {
134 url: '{{ url_for("contributionMembers", {"page": 1, "search": "{query}"}) }}',
135 method: 'post',
136 onFailure: function(response, element, xhr) {
137 console.log(response);
138 },
139 onError: function(errorMessage, element, xhr) {
140 {% include "elements/js/modal.js.twig" with {
141 modal_title_twig: _T("An error occurred :(")|e("js"),
142 modal_content: "errorMessage",
143 modal_class: "tiny",
144 modal_content_class: "scrolling",
145 modal_deny_only: true,
146 modal_cancel_text: _T("Close")|e("js"),
147 modal_classname: "redalert",
148 } %}
149 }
150 },
151 onShow: function() {
152 _chosenPages();
153 },
154 onChange: function() {
155 _chosenPages();
156 },
157 onHide: function() {
158 // Reset to defaults.
159 _current_page = 1;
160 $('.next-results, .prev-results').addClass('disabled');
161 },
162 });
163 }
164
165 $(function() {
166 _adhselect();
167 });