Skip to content

Instantly share code, notes, and snippets.

@martin-braun
Created February 25, 2022 17:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save martin-braun/f4ed0fe9b0152de3dee49a202bc49d40 to your computer and use it in GitHub Desktop.
Save martin-braun/f4ed0fe9b0152de3dee49a202bc49d40 to your computer and use it in GitHub Desktop.
bootstrap.model.wrapper.js
window.showBSModal = function self(options) {
var options = $.extend({
title : '',
body : '',
remote : false,
backdrop : 'static',
size : false,
onShow : false,
onHide : false,
actions : false
}, options);
self.onShow = typeof options.onShow == 'function' ? options.onShow : function () {};
self.onHide = typeof options.onHide == 'function' ? options.onHide : function () {};
if (self.$modal == undefined) {
self.$modal = $('<div class="modal fade"><div class="modal-dialog"><div class="modal-content"></div></div></div>').appendTo('body');
self.$modal.on('shown.bs.modal', function (e) {
self.onShow.call(this, e);
});
self.$modal.on('hidden.bs.modal', function (e) {
self.onHide.call(this, e);
});
}
var modalClass = {
small : "modal-sm",
large : "modal-lg"
};
self.$modal.data('bs.modal', false);
self.$modal.find('.modal-dialog').removeClass().addClass('modal-dialog ' + (modalClass[options.size] || ''));
self.$modal.find('.modal-content').html('<div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button><h4 class="modal-title">${title}</h4></div><div class="modal-body">${body}</div><div class="modal-footer"></div>'.replace('${title}', options.title).replace('${body}', options.body));
var footer = self.$modal.find('.modal-footer');
if (Object.prototype.toString.call(options.actions) == "[object Array]") {
for (var i = 0, l = options.actions.length; i < l; i++) {
options.actions[i].onClick = typeof options.actions[i].onClick == 'function' ? options.actions[i].onClick : function () {};
$('<button type="button" class="btn ' + (options.actions[i].cssClass || '') + '">' + (options.actions[i].label || '{Label Missing!}') + '</button>').appendTo(footer).on('click', options.actions[i].onClick);
}
} else {
$('<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>').appendTo(footer);
}
self.$modal.modal(options);
}
@martin-braun
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment