PluginProbe
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More / 0.0.2
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More v0.0.2
2.4.1 2.4.0 2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.2 2.2.1 2.2.0 2.1.2 2.1.1 trunk 0.0.1 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 All 68 releases
better-payment / admin / asset / js / admin.js

admin.js in Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More 0.0.2, at admin/asset/js/admin.js

319 lines 13.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 ; (function ($) {
2 $(document).ready(function () {
3 'use strict'
4
5 //Settings Page Starts
6 $('.bp-tabs .tab__link').on('click', function (e) {
7 e.preventDefault();
8 $('.bp-tabs .tab__link').removeClass('active');
9 $(this).addClass('active');
10
11 var dataId = $(this).data('id');
12
13 $('.bp-tabs .tab__content__item').removeClass('show').fadeOut();
14 $('#' + dataId).addClass('show').fadeIn();
15
16 });
17
18 $(document).on('click', '.sidebar__menu a', function (e) {
19 e.preventDefault();
20
21 let sidebar_link_class = 'sidebar__link';
22 if ($(this).hasClass('sidebar__link_submenu')) {
23 sidebar_link_class = 'sidebar__link_submenu';
24 }
25
26 $('.sidebar__menu .' + sidebar_link_class).removeClass('active');
27 $(this).addClass('active');
28
29 var dataId = $(this).data('id');
30 $('.content__area__body .sidebar__tab__content').removeClass('show').fadeOut();
31 $('#' + dataId).addClass('show').fadeIn();
32
33 //Auto active first submenu item
34 if ($(this).hasClass('sidebar__link') && (dataId === 'admin-email' || dataId === 'paypal')) {
35 $(this).siblings('ul').find('li a').removeClass('active')
36 $(this).siblings('ul').find('li:first-child a').addClass('active');
37 }
38 });
39
40 $(document).on('click', ".sidebar__item .sidebar__link, .email-additional-headers", function (e) {
41 e.preventDefault();
42 let $this = $(this);
43 let bpTargetSelector = $(this).hasClass('email-additional-headers') ? '.email-additional-headers-content' : '.sub__menu';
44
45 if ($this.siblings(bpTargetSelector).hasClass('show')) {
46 $this.siblings(bpTargetSelector).removeClass('show').slideUp();
47 } else {
48 $(bpTargetSelector + '.show').slideUp().removeClass('show');
49 $this.siblings(bpTargetSelector).addClass('show').slideDown();
50 }
51 });
52
53 //Stripe toggle button
54 $(document).on('change', '.better-payment-settings-payment-stripe input[name="better_payment_settings_payment_stripe_live_mode"]', function (e) {
55 e.preventDefault();
56 let bpAdminSettingsPaymentStripe = $(this).attr('data-targettest');
57
58 if ($(this).is(':checked')) {
59 bpAdminSettingsPaymentStripe = $(this).attr('data-targetlive');
60 }
61
62 $('.bp-stripe-key').removeClass('bp-d-block').addClass('bp-d-none');
63 $(`.${bpAdminSettingsPaymentStripe}`).removeClass('bp-d-none').addClass('bp-d-block');
64 });
65
66 //PayPal toggle button
67 $(document).on('change', '.better-payment-settings-payment-paypal input[name="better_payment_settings_payment_paypal_live_mode"]', function (e) {
68 e.preventDefault();
69 let bpAdminSettingsPaymentPayPal = $(this).attr('data-targettest');
70
71 if ($(this).is(':checked')) {
72 bpAdminSettingsPaymentPayPal = $(this).attr('data-targetlive');
73 }
74
75 $('.bp-paypal-key').removeClass('bp-d-block').addClass('bp-d-none');
76 $(`.${bpAdminSettingsPaymentPayPal}`).removeClass('bp-d-none').addClass('bp-d-block');
77 });
78
79 //Settings Save
80 $(document).on("click", ".better-payment-admin-settings-button", function (e) {
81 e.preventDefault();
82 let bpAdminSettingsForm = $(this).parents("#better-payment-admin-settings-form");
83 bpAdminSettingsSave(this, bpAdminSettingsForm);
84 });
85
86 function bpAdminSettingsSave(button, form) {
87 let bpAdminSettingsSaveBtn = $(button),
88 nonce = betterPaymentObj.nonce,
89 formData = $(form).serializeArray();
90
91 let bpIsFormValidated = bpValidateFormFields(formData);
92
93 //Reset button
94 $('.better-payment-settings-reset').val(0);
95 if ($(button).hasClass('better-payment-reset-button')) {
96 $('.better-payment-settings-reset').val(1);
97 }
98
99 if (!bpIsFormValidated) {
100 return false;
101 }
102
103 let bpIsResetButton = $(button).hasClass('better-payment-reset-button');
104
105 $.ajax({
106 type: "POST",
107 url: ajaxurl,
108 data: {
109 action: "better_payment_settings_action",
110 nonce: nonce,
111 form_data: formData,
112 reset_button: bpIsResetButton,
113 },
114 beforeSend: function () {
115 bpAdminSettingsSaveBtn.addClass("is-loading");
116 },
117 success: function (res) {
118 bpAdminSettingsSaveBtn.removeClass("is-loading");
119 if (res.data === "success") {
120 toastr.success('Changes saved successfully!');
121 } else {
122 toastr.error('Opps! something went wrong!');
123 }
124 },
125 });
126 }
127
128 function bpValidateFormFields(formFields, emailFields = []) {
129 $(`#better-payment-admin-settings-form input`).removeClass('is-danger');
130 if (!(emailFields.length)) {
131 emailFields = [
132 'better_payment_settings_general_email_to',
133 'better_payment_settings_general_email_from_email',
134 'better_payment_settings_general_email_reply_to',
135 'better_payment_settings_general_email_cc',
136 'better_payment_settings_general_email_bcc',
137 'better_payment_settings_general_email_to_customer',
138 'better_payment_settings_general_email_from_email_customer',
139 'better_payment_settings_general_email_reply_to_customer',
140 'better_payment_settings_general_email_cc_customer',
141 'better_payment_settings_general_email_bcc_customer',
142 'better_payment_settings_payment_paypal_email'
143 ];
144 }
145
146 let formFieldName = '',
147 formFieldValue = '',
148 formField = '',
149 isFormFieldValidated = false,
150 errorMessageStr = ''
151 ;
152 for (const property in formFields) {
153 formField = formFields[property];
154 formFieldName = formField.name;
155 formFieldValue = formField.value;
156
157 if ((emailFields.indexOf(formFieldName) >= 0) && formFieldValue != '') {
158
159 isFormFieldValidated = admin_better_email_validation(formFieldValue);
160
161 if (!isFormFieldValidated) {
162 if (formFieldName == 'better_payment_settings_general_email_to') {
163 errorMessageStr = 'Admin Email: To Email';
164 } else if (formFieldName == 'better_payment_settings_general_email_from_email') {
165 errorMessageStr = 'Admin Email: From Email';
166 } else if (formFieldName == 'better_payment_settings_general_email_reply_to') {
167 errorMessageStr = 'Admin Email: Reply-To';
168 } else if (formFieldName == 'better_payment_settings_general_email_cc') {
169 errorMessageStr = 'Admin Email: Cc';
170 } else if (formFieldName == 'better_payment_settings_general_email_bcc') {
171 errorMessageStr = 'Admin Email: Bcc';
172 } if (formFieldName == 'better_payment_settings_general_email_to_customer') {
173 errorMessageStr = 'Customer Email: To Email';
174 } else if (formFieldName == 'better_payment_settings_general_email_from_email_customer') {
175 errorMessageStr = 'Customer Email: From Email';
176 } else if (formFieldName == 'better_payment_settings_general_email_reply_to_customer') {
177 errorMessageStr = 'Customer Email: Reply-To';
178 } else if (formFieldName == 'better_payment_settings_general_email_cc_customer') {
179 errorMessageStr = 'Customer Email: Cc';
180 } else if (formFieldName == 'better_payment_settings_general_email_bcc_customer') {
181 errorMessageStr = 'Customer Email: Bcc';
182 } else if (formFieldName == 'better_payment_settings_payment_paypal_email') {
183 errorMessageStr = 'PayPal Business Email';
184 }
185
186 toastr.error(`Invalid email address on ${errorMessageStr} field!`);
187 $(`#better-payment-admin-settings-form input[name="${formFieldName}"]`).addClass('is-danger');
188 return false;
189 }
190 }
191 }
192
193 return true;
194 }
195
196 function admin_better_email_validation(email) {
197 return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)
198 }
199 //Settings Page Ends
200
201 //Transaction Page Starts
202 $(document).on("change", ".better-payment .header__show_entries select", function (e) {
203 e.preventDefault();
204 let perPageVal = $(this).val();
205 location = location.origin + location.pathname + location.search + '&paged=1&per_page=' + perPageVal + location.hash;
206 });
207
208 $(document).on("click", ".better-payment-transaction-edit, .better-payment-transaction-email-resend", function (e) {
209 e.preventDefault();
210 toastr.warning('Coming REAL Soon!');
211 });
212 //Pagination
213
214 //Filter transactions
215 $(document).on("click", ".better-payment-transaction-filter", function (e) {
216 e.preventDefault();
217 let paymentFromDate = $('.better-payment .payment_date_from').val();
218 let paymentToDate = $('.better-payment .payment_date_to').val();
219 if(paymentFromDate != '' && paymentToDate != ''){
220 if(paymentFromDate > paymentToDate){
221 toastr.error('From Date must be smaller than To Date!');
222 return false;
223 }
224 }
225 let tableSelector = $('.better-payment-admin-transactions-page .transaction__table');
226
227 let filterFormData = {};
228 filterFormData.search_text = $('.better-payment .serch-text').val();
229
230 filterFormData.payment_date_from = $('.better-payment .payment_date_from').val();
231 filterFormData.payment_date_to = $('.better-payment .payment_date_to').val();
232 filterFormData.order_by = $('.better-payment .order-by').val();
233 filterFormData.order = $('.better-payment .order').val();
234 filterFormData.source = $('.better-payment .source').val();
235
236 filterFormData.paged = $('.better-payment .paged').val();
237 filterFormData.per_page = $('.better-payment .per-page').val();
238 filterFormData.total_entry = $('.better-payment .total-entry').val();
239
240 bpTransactionFilter(tableSelector, filterFormData);
241 });
242
243 let elements = document.getElementsByClassName("bp-copy-clipboard");
244 Array.from(elements).forEach(function(element) {
245 element.addEventListener('click', bpTransactionIdCopy);
246 });
247
248 function bpTransactionIdCopy() {
249 let bpTxnCounter = $(this).attr('data-bp_txn_counter');
250 let node = 'bp_copy_clipboard_input_'+bpTxnCounter;
251
252 node = document.getElementById(node);
253
254 if (document.body.createTextRange) {
255 const range = document.body.createTextRange();
256 range.moveToElementText(node);
257 range.select();
258
259 document.execCommand("copy");
260
261 } else if (window.getSelection) {
262
263 const selection = window.getSelection();
264 const range = document.createRange();
265 range.selectNodeContents(node);
266 selection.removeAllRanges();
267 selection.addRange(range);
268
269 document.execCommand("copy");
270 selection.removeAllRanges();
271
272 } else {
273 console.warn("Could not select text in node: Unsupported browser.");
274 }
275 $('.bp-copy-clipboard').attr('title', 'Copy').css('color', '#2a3256');
276 $(this).attr('title', 'Copied!').css('color', '#6e58f7');
277 }
278
279 function bpTransactionFilter(tableSelector, filterFormData){
280 $.ajax({
281 type: "POST",
282 url: ajaxurl,
283 data: {
284 action: "better-payment-filter-transaction",
285 nonce: betterPaymentObj.nonce,
286 filterFormData: filterFormData,
287 },
288 dataType: "html",
289 beforeSend: function () {
290 tableSelector.css('opacity', '.5');
291 },
292 success: function (resultHtml) {
293 $('.better-payment .transaction-table-wrapper').replaceWith(resultHtml);
294 tableSelector.css('opacity', '1');
295 },
296 });
297 }
298 //Transaction Page Ends
299
300 //Helper Functions Starts
301 function toasterOptions() {
302 toastr.options = {
303 "timeOut": "2000",
304 "toastClass": "font-size-md",
305 "positionClass": 'toast-top-center',
306 "showMethod": "slideDown",
307 "hideMethod": "slideUp",
308
309 };
310 };
311 toasterOptions();
312
313 $(".bp-datepicker").datepicker({
314 dateFormat : "dd-mm-yy"
315 });
316 //Helper Functions Ends
317
318 });
319 })(jQuery);