| 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 |
onClick: function (event) { |
| 51 |
if ('0' === event.currentTarget.value || payplug_admin_config.has_live_key) { |
| 52 |
// ignore event if user choose TEST mode or already has LIVE keys |
| 53 |
return; |
| 54 |
} |
| 55 |
|
| 56 |
payplug_admin.$dialog.dialog('open'); |
| 57 |
}, |
| 58 |
onCancelClick: function () { |
| 59 |
payplug_admin.$dialog.dialog('close'); |
| 60 |
}, |
| 61 |
onDialogClose: function () { |
| 62 |
if (payplug_admin.xhr) { |
| 63 |
payplug_admin.xhr.abort(); |
| 64 |
payplug_admin.xhr = false; |
| 65 |
} |
| 66 |
|
| 67 |
payplug_admin._clearMessage(); |
| 68 |
|
| 69 |
payplug_admin.$dialog.find('form#payplug-refresh-keys-modal__form').get(0).reset(); |
| 70 |
|
| 71 |
var live = payplug_admin.$payplug_mode.filter('#woocommerce_payplug_mode-yes'); |
| 72 |
var test = payplug_admin.$payplug_mode.filter('#woocommerce_payplug_mode-no'); |
| 73 |
|
| 74 |
if (!payplug_admin_config.has_live_key && live.prop('checked')) { |
| 75 |
test.prop('checked', 'checked'); |
| 76 |
} |
| 77 |
}, |
| 78 |
refreshKeys: function () { |
| 79 |
payplug_admin._clearMessage(); |
| 80 |
payplug_admin._lockDialog(); |
| 81 |
var form = payplug_admin.$dialog.find('form#payplug-refresh-keys-modal__form').get(0); |
| 82 |
|
| 83 |
if (payplug_admin.xhr) { |
| 84 |
payplug_admin.xhr.abort(); |
| 85 |
} |
| 86 |
|
| 87 |
payplug_admin.xhr = $ |
| 88 |
.post( |
| 89 |
payplug_admin_config.ajax_url, |
| 90 |
$(form).serializeArray() |
| 91 |
).done(function (res) { |
| 92 |
form.reset(); |
| 93 |
payplug_admin.xhr = false; |
| 94 |
payplug_admin._unlockDialog(); |
| 95 |
|
| 96 |
if (false === res.success) { |
| 97 |
payplug_admin._displayError(res.data.message); |
| 98 |
} else { |
| 99 |
payplug_admin._displaySuccess(res.data.message); |
| 100 |
window.location.reload(); |
| 101 |
} |
| 102 |
}) |
| 103 |
.fail(function (res) { |
| 104 |
form.reset(); |
| 105 |
payplug_admin.xhr = false; |
| 106 |
payplug_admin._unlockDialog(); |
| 107 |
payplug_admin._displayError(payplug_admin_config.general_error); |
| 108 |
}); |
| 109 |
}, |
| 110 |
_displaySuccess: function (msg) { |
| 111 |
payplug_admin._displayMessageHelper(msg, 'success'); |
| 112 |
}, |
| 113 |
_displayError: function (msg) { |
| 114 |
payplug_admin._displayMessageHelper(msg, 'error'); |
| 115 |
}, |
| 116 |
_clearMessage: function () { |
| 117 |
payplug_admin.$dialog.find('#dialog-msg').empty(); |
| 118 |
}, |
| 119 |
_lockDialog: function () { |
| 120 |
var buttons = payplug_admin._disabledHelper(payplug_admin.$dialog.dialog('option', 'buttons'), true); |
| 121 |
payplug_admin.$dialog.dialog('option', 'buttons', buttons); |
| 122 |
}, |
| 123 |
_unlockDialog: function () { |
| 124 |
var buttons = payplug_admin._disabledHelper(payplug_admin.$dialog.dialog('option', 'buttons'), false); |
| 125 |
payplug_admin.$dialog.dialog('option', 'buttons', buttons); |
| 126 |
}, |
| 127 |
_disabledHelper(items, disabled) { |
| 128 |
return $.each(items, function (i, val) { |
| 129 |
val.disabled = disabled; |
| 130 |
}); |
| 131 |
}, |
| 132 |
_displayMessageHelper(msg, type) { |
| 133 |
var msgHtml = payplug_admin.$dialog.find('#dialog-msg'); |
| 134 |
msgHtml.text(msg).addClass(type); |
| 135 |
} |
| 136 |
}; |
| 137 |
|
| 138 |
payplug_admin.init(); |
| 139 |
})(jQuery); |
| 140 |
|