/*! * jquery.confirm * * @version 2.3.1 * * @author My C-Labs * @author Matthieu Napoli * @author Russel Vela * @author Marcus Schwarz * * @license MIT * @url http://myclabs.github.io/jquery.confirm/ */ (function ($) { /** * Confirm a link or a button * @param [options] {{title, text, confirm, cancel, confirmButton, cancelButton, post, confirmButtonClass}} */ $.fn.confirm = function (options) { if (typeof options === 'undefined') { options = {}; } this.click(function (e) { e.preventDefault(); var newOptions = $.extend({ button: $(this) }, options); $.confirm(newOptions, e); }); return this; }; /** * Show a confirmation dialog * @param [options] {{title, text, confirm, cancel, confirmButton, cancelButton, post, confirmButtonClass}} * @param [e] {Event} */ $.confirm = function (options, e) { // Do nothing when active confirm modal. if ($('.confirmation-modal').length > 0) return; // Parse options defined with "data-" attributes var dataOptions = {}; if (options.button) { var dataOptionsMapping = { 'title': 'title', 'text': 'text', 'confirm-button': 'confirmButton', 'cancel-button': 'cancelButton', 'confirm-button-class': 'confirmButtonClass' }; $.each(dataOptionsMapping, function(attributeName, optionName) { var value = options.button.data(attributeName); if (value) { dataOptions[optionName] = value; } }); } // Default options var settings = $.extend({}, $.confirm.options, { confirm: function () { var url = e && (('string' === typeof e && e) || (e.currentTarget && e.currentTarget.attributes['href'].value)); if (url) { if (options.post) { var form = $('
'); $("body").append(form); form.submit(); } else { window.location = url; } } }, cancel: function (o) { }, button: null }, dataOptions, options); // Modal var modalHeader = ''; if (settings.title !== '') { modalHeader = ''; } var modalHTML = '' + ''; var modal = $(modalHTML); modal.on('shown.bs.modal', function () { modal.find(".btn-primary:first").focus(); }); modal.on('hidden.bs.modal', function () { modal.remove(); }); modal.find(".confirm").click(function () { settings.confirm(settings.button); }); modal.find(".cancel").click(function () { settings.cancel(settings.button); }); // Show the modal $("body").append(modal); modal.modal('show'); }; /** * Globally definable rules */ $.confirm.options = { text: "Are you sure?", title: "", confirmButton: "Yes", cancelButton: "Cancel", post: false, confirmButtonClass: "btn-primary" } })(jQuery);