houdini/app/javascript/legacy/common/confirmation.js

47 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

2019-11-06 20:36:28 +00:00
// License: LGPL-3.0-or-later
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