PluginProbe
PayPlug for WooCommerce (Official) / 1.2.11
PayPlug for WooCommerce (Official) v1.2.11
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 1.2.6 All 101 releases
payplug / assets / js / payplug-admin.js

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

196 lines 7.6 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 const { can_save_cards } = res.data
107 if (can_save_cards) {
108 payplug_admin.$payplug_oneclick.prop('disabled', false)
109 payplug_admin.$payplug_oneclick_description.hide()
110 } else {
111 payplug_admin.$payplug_oneclick.prop('disabled', true)
112 payplug_admin.$payplug_oneclick.prop('checked', false)
113 payplug_admin.$payplug_oneclick_description.show()
114 }
115 })
116 },
117 checkLivePermissions: (callback) => {
118 payplug_admin.xhr = $
119 .post(
120 payplug_admin_config.ajax_url,
121 {
122 action: 'check_live_permissions',
123 livekey: $('#woocommerce_payplug_payplug_live_key').length ? $('#woocommerce_payplug_payplug_live_key').val() : ''
124 }
125 ).done((res) => { callback(res) })
126 },
127 refreshKeys: function () {
128 payplug_admin._clearMessage();
129 payplug_admin._lockDialog();
130 var form = payplug_admin.$dialog.find('form#payplug-refresh-keys-modal__form').get(0);
131
132 if (payplug_admin.xhr) {
133 payplug_admin.xhr.abort();
134 }
135
136 payplug_admin.xhr = $
137 .post(
138 payplug_admin_config.ajax_url,
139 $(form).serializeArray()
140 ).done(function (res) {
141 form.reset();
142 payplug_admin.xhr = false;
143 payplug_admin._unlockDialog();
144
145 if (false === res.success) {
146 payplug_admin._displayError(res.data.message);
147 } else {
148 payplug_admin._displaySuccess(res.data.message);
149 if (false === res.data.can_use_oney) {
150 payplug_admin.is_oney_refresh = true;
151 payplug_admin.$dialog.dialog('close');
152 payplug_admin.$dialogoney.dialog('open');
153 } else {
154 window.location.reload();
155 }
156 }
157 })
158 .fail(function (res) {
159 form.reset();
160 payplug_admin.xhr = false;
161 payplug_admin._unlockDialog();
162 payplug_admin._displayError(payplug_admin_config.general_error);
163 });
164 },
165 _displaySuccess: function (msg) {
166 payplug_admin._displayMessageHelper(msg, 'success');
167 },
168 _displayError: function (msg) {
169 payplug_admin._displayMessageHelper(msg, 'error');
170 },
171 _clearMessage: function () {
172 payplug_admin.$dialog.find('#dialog-msg').empty();
173 },
174 _lockDialog: function () {
175 var buttons = payplug_admin._disabledHelper(payplug_admin.$dialog.dialog('option', 'buttons'), true);
176 payplug_admin.$dialog.dialog('option', 'buttons', buttons);
177 },
178 _unlockDialog: function () {
179 var buttons = payplug_admin._disabledHelper(payplug_admin.$dialog.dialog('option', 'buttons'), false);
180 payplug_admin.$dialog.dialog('option', 'buttons', buttons);
181 },
182 _disabledHelper(items, disabled) {
183 return $.each(items, function (i, val) {
184 val.disabled = disabled;
185 });
186 },
187 _displayMessageHelper(msg, type) {
188 var msgHtml = payplug_admin.$dialog.find('#dialog-msg');
189 msgHtml.text(msg).addClass(type);
190 }
191 };
192
193 payplug_admin.init();
194
195 })(jQuery);
196