45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
var confirmation = function(msg, success_cb) {
|
|
var $confirm_modal = $('#confirmation-modal')
|
|
var $msg = $confirm_modal.find('.msg')
|
|
if(msg && msg.length > 15) $msg.css('font-size', '16px')
|
|
var cb = {
|
|
confirmed: function() {},
|
|
denied: function() {}
|
|
}
|
|
var $previousModal = $('.modal.inView')
|
|
$('.modal').removeClass('inView')
|
|
var $body = $('body')
|
|
$body.addClass('is-showingModal')
|
|
|
|
function hide_confirmation_and_show_previous(){
|
|
$('#confirmation-modal').removeClass('inView')
|
|
if ($previousModal.length){
|
|
$previousModal.addClass('inView')
|
|
$body.addClass('is-showingModal')
|
|
}
|
|
else
|
|
$body.removeClass('is-showingModal')
|
|
}
|
|
|
|
$confirm_modal.addClass('inView')
|
|
.off('click', '.yes')
|
|
.off('click', '.no')
|
|
|
|
.on('click', '.yes', function(e) {
|
|
hide_confirmation_and_show_previous()
|
|
if(success_cb) {
|
|
success_cb()
|
|
} else {
|
|
cb.confirmed(e)
|
|
}
|
|
})
|
|
.on('click', '.no', function(e) {
|
|
$('#confirmation-modal').removeClass('inView')
|
|
hide_confirmation_and_show_previous()
|
|
cb.denied(e)
|
|
})
|
|
$msg.text(msg || 'Are you sure?')
|
|
return cb
|
|
}
|
|
|
|
module.exports = confirmation
|