PluginProbe
PayPlug for WooCommerce (Official) / 1.1.0
PayPlug for WooCommerce (Official) v1.1.0
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.1.0, at assets/js/payplug-admin.js

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