Initial commit
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
/*!
|
||||
* jquery.confirm
|
||||
*
|
||||
* @version 2.3.1
|
||||
*
|
||||
* @author My C-Labs
|
||||
* @author Matthieu Napoli <matthieu@mnapoli.fr>
|
||||
* @author Russel Vela
|
||||
* @author Marcus Schwarz <msspamfang@gmx.de>
|
||||
*
|
||||
* @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 = $('<form method="post" class="hide" action="' + url + '"></form>');
|
||||
$("body").append(form);
|
||||
form.submit();
|
||||
} else {
|
||||
window.location = url;
|
||||
}
|
||||
}
|
||||
},
|
||||
cancel: function (o) {
|
||||
},
|
||||
button: null
|
||||
}, dataOptions, options);
|
||||
|
||||
// Modal
|
||||
var modalHeader = '';
|
||||
if (settings.title !== '') {
|
||||
modalHeader =
|
||||
'<div class=modal-header>' +
|
||||
'<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>' +
|
||||
'<h4 class="modal-title">' + settings.title+'</h4>' +
|
||||
'</div>';
|
||||
}
|
||||
var modalHTML =
|
||||
'<div class="confirmation-modal modal fade" tabindex="-1" role="dialog">' +
|
||||
'<div class="modal-dialog">' +
|
||||
'<div class="modal-content">' +
|
||||
modalHeader +
|
||||
'<div class="modal-body">' + settings.text + '</div>' +
|
||||
'<div class="modal-footer">' +
|
||||
'<button class="confirm btn ' + settings.confirmButtonClass + '" type="button" data-dismiss="modal">' +
|
||||
settings.confirmButton +
|
||||
'</button>' +
|
||||
'<button class="cancel btn btn-default" type="button" data-dismiss="modal">' +
|
||||
settings.cancelButton +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
|
||||
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);
|
||||
Reference in New Issue
Block a user