| 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 |
|