PluginProbe
PayPlug for WooCommerce (Official) / 1.10.1
PayPlug for WooCommerce (Official) v1.10.1
3.1.0 3.0.0 2.18.0 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.1.0 1.10.0 1.10.1 1.2.1 1.2.10 1.2.11 1.2.2 1.2.3 1.2.4 1.2.5 All 102 releases
payplug / assets / js / payplug-admin.js

payplug-admin.js in PayPlug for WooCommerce (Official) 1.10.1, at assets/js/payplug-admin.js

200 lines 7.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* global jQuery */
2 (function ($, undefined) {
3
4 if (undefined === payplug_admin_config) {
5 return;
6 }
7
8 var payplug_admin = {
9 init: function () {
10 $("#payplug-login, #payplug-logout").on('click', function(e) {
11 window.onbeforeunload = null;
12 })
13
14 var email_input = $("#payplug_email")
15 if (email_input.length) {
16 email_input.focus()
17 $("html").animate({
18 scrollTop: email_input.offset().top
19 }, 800)
20 }
21
22 payplug_admin.xhr = false;
23
24 // setup modal
25 payplug_admin.$dialog = $('#payplug-refresh-keys-modal').dialog({
26 autoOpen: false,
27 modal: true,
28 draggable: false,
29 buttons: [
30 {
31 class: "ui-dialog-submit",
32 text: payplug_admin_config.btn_ok,
33 click: payplug_admin.refreshKeys
34 },
35 {
36 class: "ui-dialog-cancel",
37 text: payplug_admin_config.btn_label,
38 click: payplug_admin.onCancelClick
39 }
40 ],
41 show: true,
42 hide: 100,
43 close: payplug_admin.onDialogClose
44 });
45
46 // handle modal form submit
47 payplug_admin.$dialog.find('form#payplug-refresh-keys-modal__form').on('submit', function (e) {
48 e.preventDefault();
49 payplug_admin.refreshKeys();
50 });
51
52 // open modal when user try to select live mode
53 if ($('input[name=woocommerce_payplug_mode]').length) {
54 this.$payplug_mode = $('input[name=woocommerce_payplug_mode]');
55 this.$payplug_mode.on(
56 'click',
57 this.onClick
58 )
59 }
60
61 if ($('#woocommerce_payplug_oneclick').length) {
62 payplug_admin.$payplug_oneclick = $('#woocommerce_payplug_oneclick')
63 payplug_admin.$payplug_oneclick_description = $('#woocommerce_payplug_title_advanced_settings').next()
64 if (!payplug_admin.$payplug_oneclick.prop('disabled') || "0" === $('input[name=woocommerce_payplug_mode]:checked').val()) {
65 payplug_admin.$payplug_oneclick_description.hide()
66 }
67 }
68 },
69 onClick: function (event) {
70 payplug_admin.$payplug_oneclick.prop('disabled', true)
71 payplug_admin.oneclickPermissionsCheck()
72
73 if ('0' === event.currentTarget.value || payplug_admin_config.has_live_key) {
74 // ignore event if user choose TEST mode or already has LIVE keys
75 return;
76 }
77 payplug_admin.$dialog.dialog('open');
78 },
79 onCancelClick: function () {
80 payplug_admin.$dialog.dialog('close');
81 },
82 onDialogClose: function () {
83 if (payplug_admin.xhr) {
84 payplug_admin.xhr.abort();
85 payplug_admin.xhr = false;
86 }
87
88 payplug_admin._clearMessage();
89
90 payplug_admin.$dialog.find('form#payplug-refresh-keys-modal__form').get(0).reset();
91
92 var live = payplug_admin.$payplug_mode.filter('#woocommerce_payplug_mode-yes');
93 var test = payplug_admin.$payplug_mode.filter('#woocommerce_payplug_mode-no');
94 if (payplug_admin_config.has_live_key && live.prop('checked') && !payplug_admin.is_oney_refresh) {
95 test.prop('checked', 'checked');
96 }
97 },
98 oneclickPermissionsCheck: () => {
99 if ('0' === $('input[name=woocommerce_payplug_mode]:checked').val()) {
100 payplug_admin.$payplug_oneclick.prop('disabled', false)
101 payplug_admin.$payplug_oneclick_description.hide()
102 return
103 }
104
105 payplug_admin.checkLivePermissions((res) => {
106 if(false === res.success){
107 alert(res.data.error)
108 payplug_admin.$payplug_oneclick.prop('disabled', true)
109 }
110 const { can_save_cards } = res.data
111 if (can_save_cards) {
112 payplug_admin.$payplug_oneclick.prop('disabled', false)
113 payplug_admin.$payplug_oneclick_description.hide()
114 } else {
115 payplug_admin.$payplug_oneclick.prop('disabled', true)
116 payplug_admin.$payplug_oneclick.prop('checked', false)
117 payplug_admin.$payplug_oneclick_description.show()
118 }
119 })
120 },
121 checkLivePermissions: (callback) => {
122 payplug_admin.xhr = $
123 .post(
124 payplug_admin_config.ajax_url,
125 {
126 action: 'check_live_permissions',
127 livekey: $('#woocommerce_payplug_payplug_live_key').length ? $('#woocommerce_payplug_payplug_live_key').val() : ''
128 }
129 ).done((res) => { callback(res) })
130 },
131 refreshKeys: function () {
132 payplug_admin._clearMessage();
133 payplug_admin._lockDialog();
134 var form = payplug_admin.$dialog.find('form#payplug-refresh-keys-modal__form').get(0);
135
136 if (payplug_admin.xhr) {
137 payplug_admin.xhr.abort();
138 }
139
140 payplug_admin.xhr = $
141 .post(
142 payplug_admin_config.ajax_url,
143 $(form).serializeArray()
144 ).done(function (res) {
145 form.reset();
146 payplug_admin.xhr = false;
147 payplug_admin._unlockDialog();
148
149 if (false === res.success) {
150 payplug_admin._displayError(res.data.message);
151 } else {
152 payplug_admin._displaySuccess(res.data.message);
153 if (false === res.data.can_use_oney) {
154 payplug_admin.is_oney_refresh = true;
155 payplug_admin.$dialog.dialog('close');
156 payplug_admin.$dialogoney.dialog('open');
157 } else {
158 window.location.reload();
159 }
160 }
161 })
162 .fail(function (res) {
163 form.reset();
164 payplug_admin.xhr = false;
165 payplug_admin._unlockDialog();
166 payplug_admin._displayError(payplug_admin_config.general_error);
167 });
168 },
169 _displaySuccess: function (msg) {
170 payplug_admin._displayMessageHelper(msg, 'success');
171 },
172 _displayError: function (msg) {
173 payplug_admin._displayMessageHelper(msg, 'error');
174 },
175 _clearMessage: function () {
176 payplug_admin.$dialog.find('#dialog-msg').empty();
177 },
178 _lockDialog: function () {
179 var buttons = payplug_admin._disabledHelper(payplug_admin.$dialog.dialog('option', 'buttons'), true);
180 payplug_admin.$dialog.dialog('option', 'buttons', buttons);
181 },
182 _unlockDialog: function () {
183 var buttons = payplug_admin._disabledHelper(payplug_admin.$dialog.dialog('option', 'buttons'), false);
184 payplug_admin.$dialog.dialog('option', 'buttons', buttons);
185 },
186 _disabledHelper(items, disabled) {
187 return $.each(items, function (i, val) {
188 val.disabled = disabled;
189 });
190 },
191 _displayMessageHelper(msg, type) {
192 var msgHtml = payplug_admin.$dialog.find('#dialog-msg');
193 msgHtml.text(msg).addClass(type);
194 }
195 };
196
197 payplug_admin.init();
198
199 })(jQuery);
200