-
Notifications
You must be signed in to change notification settings - Fork 113
/
ModalRemote.min.js
1 lines (1 loc) · 3.82 KB
/
ModalRemote.min.js
1
function ModalRemote(t){function i(t,i,n){var s=this;$.ajax({url:t,method:i,data:n,beforeSend:function(){o.call(s)},error:function(t){e.call(s,t)},success:function(t){a.call(s,t)}})}function o(){this.show(),this.displayLoading()}function e(t){this.setTitle(t.status+t.statusText),this.setContent(t.responseText),this.addButton("Close","btn btn-default",function(t,i){this.hide()})}function a(t){if(void 0!==t.forceReload&&t.forceReload&&("true"==t.forceReload?$.pjax.reload({container:"#crud-datatable-pjax"}):$.pjax.reload({container:t.forceReload})),void 0!==t.forceClose&&t.forceClose)return void this.hide();if(void 0!==t.size&&this.setSize(t.size),void 0!==t.title&&this.setTitle(t.title),void 0!==t.content&&this.setContent(t.content),void 0!==t.footer&&this.setFooter(t.footer),void 0!==$(this.content).find("form")[0]){var i=$(this.content).find("form")[0],n=$(this.footer).find('[type="submit"]')[0];if(void 0===n)console.warn("Modal have form but have not any submit button");else{var s=this;$(n).click(function(t){var n=$(i).attr("action"),l=$(i).hasAttr("method")?$(i).attr("method"):"GET",d=$(i).serializeArray();$.ajax({url:n,method:l,data:d,beforeSend:function(){o.call(s)},error:function(t){e.call(s,t)},success:function(t){a.call(s,t)}})})}}}this.defaults={okLabel:"OK",cancelLabel:"Cancel",loadingTitle:"Loading"},this.modal=$(t),this.dialog=$(t).find(".modal-dialog"),this.header=$(t).find(".modal-header"),this.content=$(t).find(".modal-body"),this.footer=$(t).find(".modal-footer"),this.loadingContent='<div class="progress progress-striped active" style="margin-bottom:0;"><div class="progress-bar" style="width: 100%"></div></div>',this.show=function(){this.clear(),$(this.modal).modal("show")},this.hide=function(){$(this.modal).modal("hide")},this.toggle=function(){$(this.modal).modal("toggle")},this.clear=function(){$(this.modal).find(".modal-title").remove(),$(this.content).html(""),$(this.footer).html("")},this.setHeader=function(t){$(this.header).html(t)},this.setContent=function(t){$(this.content).html(t)},this.setFooter=function(t){$(this.footer).html(t)},this.setTitle=function(t){$(this.header).find("h4.modal-title").remove(),$(this.header).append('<h4 class="modal-title">'+t+"</h4>")},this.hidenCloseButton=function(){$(this.header).find("button.close").hide()},this.showCloseButton=function(){$(this.header).find("button.close").show()},this.addButton=function(t,i,o){buttonElm=document.createElement("button"),buttonElm.setAttribute("class",null===i?"btn btn-primary":i),buttonElm.innerHTML=t;var e=this;$(this.footer).append(buttonElm),null!==o&&$(buttonElm).click(function(t){o.call(e,this,t)})},this.displayLoading=function(){this.setContent(this.loadingContent),this.setTitle(this.defaults.loadingTitle)},this.confirm=function(t,i,o,e,a,n){void 0!==t&&this.setTitle(t),void 0!==i&&this.setContent(i),this.addButton(void 0===o?this.defaults.okLabel:o,"btn btn-primary",a),this.addButton(void 0===e?this.defaults.cancelLabel:e,"btn btn-default pull-left",n)},this.setSize=function(t){$(this.dialog).removeClass("modal-lg"),$(this.dialog).removeClass("modal-sm"),"large"==t?$(this.dialog).addClass("modal-lg"):"small"==t?$(this.dialog).addClass("modal-sm"):"normal"!==t&&console.warn("Not define size"+t)},this.remote=function(t,o){var e=$(t).hasAttr("href")?$(t).attr("href"):$(t).attr("data-url"),a=$(t).hasAttr("data-request-method")?$(t).attr("data-request-method"):"GET",n=$(t).hasAttr("data-modal-size")?$(t).attr("data-modal-size"):"normal";if($(t).hasAttr("data-confirm-title")||$(t).hasAttr("data-confirm-message")){this.show(),this.setSize(n);var s=this;this.confirm($(t).attr("data-confirm-title"),$(t).attr("data-confirm-message"),$(t).attr("data-confirm-ok"),$(t).attr("data-confirm-cancel"),function(t){i.call(s,e,a,o)},function(t){this.hide()})}else i.call(this,e,a,o)}}!function(t){t.fn.hasAttr=function(t){return void 0!==this.attr(t)}}(jQuery);