]> git.agnieray.net Git - galette.git/blob - galette/templates/default/elements/js/removal.js.twig
Display all messages the same way
[galette.git] / galette / templates / default / elements / js / removal.js.twig
1 {% if selector is not defined %}
2 {% set selector = '.delete' %}
3 {% endif %}
4 {% if loader is not defined %}
5 {% set loader = 'action' %}
6 {% endif %}
7 {% if loader_selector is not defined %}
8 {% set loader_selector = '.loader_selector' %}
9 {% endif %}
10
11 //handle removals
12 {% if single_action is defined %}
13 var _removeItems = function() {
14 $('{{ selector }}').off('click').on('click', function(event) {
15 event.preventDefault();
16 var _this = $(this);
17 {% endif %}
18 {% if extra_check is defined %}
19 {{ extra_check }}
20 {% endif %}
21 {% if method is not defined %}
22 {% set method = 'GET' %}
23 {% endif %}
24 $.ajax({
25 url: {% if deleteurl is not defined %}_this.attr('href'){% else %}'{{ deleteurl|raw }}'{% endif %},
26 type: "{{ method }}",
27 data: {
28 ajax: true,
29 {% if extra_data is defined %}
30 {{ extra_data|raw }}
31 {% endif %}
32 },
33 datatype: 'json',
34 {% include 'elements/js/loader.js.twig' with {
35 loader: loader,
36 selector: loader_selector
37 } %},
38 success: function(res){
39 var _res = $(res);
40 _res.find('form').on('submit', function(e) {
41 e.preventDefault();
42 var _form = $(this);
43 var _data = _form.serialize();
44 $.ajax({
45 url: _form.attr('action'),
46 type: "POST",
47 data: _data,
48 datatype: 'json',
49 {% include 'elements/js/loader.js.twig' with {
50 loader: loader,
51 selector: loader_selector
52 } %},
53 success: function(res){
54 if (res.success) {
55 window.location.href = _form.find('input[name=redirect_uri]').val();
56 } else {
57 $.ajax({
58 url: '{{ url_for("ajaxMessages") }}',
59 method: "GET",
60 success: function (values) {
61 for (var type in values) {
62 var dtime = 0;
63 if (type == 'success') {
64 dtime = 'auto';
65 }
66 $('body')
67 .toast({
68 displayTime: dtime,
69 minDisplayTime: 5000,
70 wordsPerMinute: 80,
71 position: 'top right',
72 title: values[type]['title'],
73 message: values[type]['messages'].join('<br/>'),
74 showIcon: values[type]['icon'],
75 class: type
76 })
77 ;
78 }
79 }
80 });
81 }
82 },
83 error: function() {
84 {% include "elements/js/modal.js.twig" with {
85 modal_title_twig: _T("An error occurred :(")|e("js"),
86 modal_without_content: true,
87 modal_class: "mini",
88 modal_deny_only: true,
89 modal_cancel_text: _T("Close")|e("js"),
90 modal_classname: "redalert",
91 } %}
92 }
93 });
94 });
95
96 var _title = _res.find('.header');
97
98 {% include "elements/js/modal.js.twig" with {
99 modal_title: "_title",
100 modal_class: "tiny",
101 modal_content: "_res",
102 modal_onapprove: "$('#confirm_removal form').submit();",
103 modal_approve_text: _T("Remove")|e('js'),
104 modal_approve_icon: 'trash',
105 modal_approve_color: 'red',
106 modal_classname: "redalert"
107 } %}
108 },
109 error: function() {
110 {% include "elements/js/modal.js.twig" with {
111 modal_title_twig: _T("An error occurred :(")|e("js"),
112 modal_without_content: true,
113 modal_class: "mini",
114 modal_deny_only: true,
115 modal_cancel_text: _T("Close")|e("js"),
116 modal_classname: "redalert",
117 } %}
118 }
119 });
120 {% if single_action is defined %}
121 });
122 }
123 _removeItems();
124 {% endif %}