PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.25
Advanced Ads – Ad Manager & AdSense v2.0.25
2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / src / admin / screen-groups / form-submission.js
advanced-ads / src / admin / screen-groups Last commit date
delete-group.js 3 months ago edit-group.js 1 month ago form-submission.js 3 months ago forms.css 3 months ago icons.css 3 months ago listShowMore.js 3 months ago listing.css 3 months ago listing.js 3 months ago sort-ads.js 3 months ago table.css 3 months ago
form-submission.js
170 lines
1 import jQuery from 'jquery';
2 import apiFetch from '@wordpress/api-fetch';
3
4 /**
5 * Disable inputs on a form
6 *
7 * @param {Node} form the form.
8 * @param {boolean} disabled disable inputs if `true`.
9 */
10 function disable(form, disabled) {
11 if ('undefined' === typeof disabled) {
12 disabled = true;
13 }
14
15 if (!form.useableInputs) {
16 form.useableInputs = jQuery(form)
17 .closest('dialog')
18 .find('select,input,textarea,button,a.button')
19 .not(':disabled');
20 }
21
22 form.useableInputs.prop('disabled', disabled);
23 }
24
25 /**
26 * Edit group form
27 *
28 * @param {Node} form the form node.
29 */
30 function submitUpdateGroup(form) {
31 const $form = jQuery(form),
32 formData = $form.serialize();
33
34 disable(form);
35 apiFetch({
36 path: '/advanced-ads/v1/group',
37 method: 'PUT',
38 data: {
39 fields: formData,
40 },
41 }).then(function (response) {
42 if (response.error) {
43 // Show an error message if there is an "error" field in the response
44 disable(form, false);
45 form.closest('dialog').close();
46 window.advancedAds.notifications.addError(response.error);
47 return;
48 }
49
50 const dialog = form.closest('dialog');
51 dialog.advadsTermination.resetInitialValues();
52
53 if (response.reload) {
54 // Reload the page if needed.
55 localStorage.setItem(
56 'advadsUpdateMessage',
57 JSON.stringify({
58 type: 'success',
59 message: window.advancedAds.i18n.groups.updated,
60 })
61 );
62 window.location.reload();
63 return;
64 }
65
66 window.advancedAds.notifications.addSuccess(
67 window.advancedAds.i18n.groups.updated
68 );
69
70 dialog.close();
71 });
72 }
73
74 /**
75 * Create new group
76 *
77 * @param {Node} form the form.
78 */
79 function submitNewGroup(form) {
80 const $form = jQuery(form),
81 formData = $form.serialize();
82 disable(form);
83 apiFetch({
84 path: '/advanced-ads/v1/group',
85 method: 'POST',
86 data: {
87 fields: formData,
88 },
89 }).then(function (response) {
90 if (response.error) {
91 // Show an error message if there is an "error" field in the response
92 disable(form, false);
93 form.closest('dialog').close();
94 window.advancedAds.notifications.addError(response.error);
95 return;
96 }
97
98 const dialog = form.closest('dialog');
99 dialog.advadsTermination.resetInitialValues();
100 document.location.href = `#modal-group-edit-${response.group_data.id}`;
101 localStorage.setItem(
102 'advadsUpdateMessage',
103 JSON.stringify({
104 type: 'success',
105 message: window.advancedAds.i18n.groups.saveNew,
106 })
107 );
108 document.location.reload();
109 });
110 }
111
112 export default function () {
113 // Stop create group form submission.
114 wp.hooks.addFilter(
115 'advanced-ads-submit-modal-form',
116 'advancedAds',
117 function (send, form) {
118 if ('advads-group-new-form' === form.id) {
119 submitNewGroup(form);
120 return false;
121 }
122 return send;
123 }
124 );
125
126 // Stop edit group form submission.
127 wp.hooks.addFilter(
128 'advanced-ads-submit-modal-form',
129 'advancedAds',
130 function (send, form) {
131 if ('update-group' === form.name) {
132 submitUpdateGroup(form);
133 return false;
134 }
135 return send;
136 }
137 );
138
139 // Add custom submit button for each edit group form.
140 jQuery('[id^="modal-group-edit-"]').each(function () {
141 jQuery(this)
142 .find('.advads-modal-footer')
143 .html(
144 `<button class="button button-primary submit-edit-group">${window.advancedAds.i18n.groups.save}</button>`
145 );
146 });
147
148 // Add custom submit button for the create group form.
149 jQuery('#modal-group-new')
150 .find('.advads-modal-footer')
151 .html(
152 `<button class="button button-primary" id="submit-new-group">${window.advancedAds.i18n.groups.saveNew}</button>`
153 );
154
155 // Click on custom submit button of an edit group form.
156 jQuery(document).on('click', '.submit-edit-group', function () {
157 submitUpdateGroup(jQuery(this).closest('dialog').find('form')[0]);
158 });
159
160 // Click on the submit button for the create group form.
161 jQuery(document).on('click', '#submit-new-group', function () {
162 const $form = jQuery('#advads-group-new-form'),
163 validation = $form.closest('dialog')[0].closeValidation;
164 if (!window[validation.function](validation.modal_id)) {
165 return;
166 }
167 submitNewGroup($form[0]);
168 });
169 }
170