Release 0.1.0.029a

This commit is contained in:
Ray 2023-08-03 11:56:40 +01:00
parent f33b751090
commit 901975ded3
2 changed files with 168 additions and 97 deletions

View File

@ -1,112 +1,186 @@
/**
* BSDialog
* @version v0.1.0.024 (2019/07/05 2210)
* @version v0.1.0.029a (2019/11/09 2239)
*/
var BSDialog = {
Create: function(id, title, url, is_big, update_body) {
var a = this;
var isBig = ((typeof(is_big) == "undefined") ? false : (is_big == true) ? true : false);
var updateBody = ((typeof(update_body) == "undefined") ? false : (update_body == true) ? true : false);
Create: function (id, title, url, is_big, update_body, show_size) {
var a = this;
if (!a.hasDialog(id)) {
var html = a.generateModalHtml(id, title, null, isBig);
a.id = id;
a.title = title;
a.url = url;
a.isBig = ((typeof (is_big) == "undefined") ? false : (is_big == true) ? true : false);
a.showSize = ((typeof (show_size) == "undefined") ? true : (show_size == true) ? true : false);
$("body").append(html);
}
var updateBody = ((typeof (update_body) == "undefined") ? true : (update_body == true) ? true : false);
$.ajax({
url: url,
cache: false,
timeout: 10000,
success: function(result, status, xhr){
if ((xhr.status == 200) || (xhr.status == 302) || (xhr.status == 301))
{
if (updateBody)
{
a.updateContentBody(id, result);
} else {
$("#dlg" + id).find(".modal-content").html(result);
}
} else {
a.updateContentBody(id, xhr.statusText + " (" + xhr.status + ")");
}
},
error: function(xhr){
a.updateContentBody(id, xhr.statusText + " (" + xhr.status + ")");
},
complete: function(xhr, status){
// do nothing yet
}
});
if (!a.Exists(id)) {
a.renderContent(null);
}
a.show(id);
},
Close: function(id) {
if (!this.hasDialog(id)) return;
if (url != null) {
$.ajax({
url: url,
cache: false,
xhrFields: {
withCredentials:true
},
timeout: 60000,
success: function (result, status, xhr) {
if ((xhr.status == 200) || (xhr.status == 302) || (xhr.status == 301)) {
if (updateBody) {
a.updateContentBody(id, result);
} else {
$("#dlg" + id).find(".modal-content").html(result);
}
} else {
a.updateContentBody(id, xhr.statusText + " (" + xhr.status + ")");
}
},
error: function (xhr) {
a.updateContentBody(id, xhr.statusText + " (" + xhr.status + ")");
},
complete: function (xhr, status) {
// do nothing yet
}
});
}
$("#dlg" + id).modal('hide');
},
Clear: function() {
$("body > div[class~='modal'][role='dialog']").remove();
$("body > div[class~='modal-backdrop']").remove();
$("body").removeClass("modal-open");
},
ShowToast: function(id, title, message, is_big) {
if (this.hasDialog(id)) return;
a.initialiseComponents();
},
Close: function (id) {
$("#dlg" + id).modal('hide');
},
Clear: function () {
$("body > div[class~='modal'][role='dialog']").remove();
$("body > div[class~='modal-backdrop']").remove();
$("body").removeClass("modal-open");
},
ShowToast: function (id, title, message, is_big) {
var a = this;
var html = this.generateModalHtml(id, title, message, is_big);
$("body").append(html);
if (a.Exists(id)) {
return;
}
this.show(id);
},
hasDialog: function(id) {
return ($("body > div[id='dlg" + id + "']").length > 0);
},
generateModalHtml: function(id, title, message, is_big) {
var size = ((typeof(is_big) == "undefined") ? "sm" : (is_big == true ? "lg" : "sm"));
a.id = id;
a.title = title;
a.url = null;
a.isBig = ((typeof (is_big) == "undefined") ? false : (is_big == true) ? true : false);
var html = "";
html += "<div class=\"modal fade\" id=\"dlg" + id + "\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"dlg" + id + "Label\" aria-hidden=\"true\">";
html += " <div class=\"modal-dialog modal-" + size + "\">";
html += " <div class=\"modal-content\">";
html += " <div class=\"modal-header\">";
html += " <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">&times;</button>";
html += " <strong class=\"modal-title\">" + title + "</strong>";
html += " </div>";
a.renderContent(message);
a.initialiseComponents();
},
Exists: function (id) {
return ($("body > div[id='dlg" + id + "']").length > 0);
},
generateModalHtml: function (message) {
var a = this;
var size = (a.isBig == true ? "lg" : "md");
if ($.trim(message).length <= 0)
{
html += " <div class=\"modal-body custom-loading\"></div>";
} else {
html += " <div class=\"modal-body\">" + message + "</div>";
}
var html = "";
html += "<div class=\"modal fade\" id=\"dlg" + a.id + "\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"dlg" + a.id + "Label\" aria-hidden=\"true\">";
html += " <div class=\"modal-dialog modal-" + size + "\">";
html += " <div class=\"modal-content\">";
html += " <div class=\"modal-header\">";
html += " <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">&times;</button>";
html += " <div class=\"modal-footer\">";
html += " <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>";
html += " </div>";
html += " </div>";
html += " </div>";
html += "</div>";
if (a.showSize)
{
html += " <span class=\"close\">&nbsp;</span>";
html += " <button type=\"button\" class=\"close\" data-modal-action=\"restore\" aria-hidden=\"true\">&#8722;</button>";
}
return html;
},
show: function(id) {
$("#dlg" + id).modal('show');
$("#dlg" + id).off('hide.bs.modal');
$("#dlg" + id).on('hide.bs.modal', function() {
if ($("body > div[id='dlg" + id + "']").next().is("div[class~='modal-backdrop']")) {
$("body > div[id='dlg" + id + "']").next().remove();
}
html += " <strong class=\"modal-title\" style=\"cursor:default; \">" + a.title + "</strong>";
html += " </div>";
$("body > div[id='dlg" + id + "']").remove();
if ($.trim(message).length <= 0) {
html += " <div class=\"modal-body custom-loading\" style=\"background-position: center center; background-repeat: no-repeat;\"></div>";
} else {
html += " <div class=\"modal-body\">" + message + "</div>";
}
});
},
updateContentBody: function(id, text) {
var body = $("#dlg" + id).find(".modal-body");
html += " <div class=\"modal-footer\">";
html += " <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>";
html += " </div>";
html += " </div>";
html += " </div>";
html += "</div>";
if ($(body).hasClass("custom-loading")) $(body).removeClass("custom-loading");
return html;
},
renderContent: function (content) {
$("body").append(this.generateModalHtml(content));
},
initialiseComponents: function () {
var a = this;
var dialog = a.getElement();
$(body).html(text);
}
if (a.showSize)
{
var btnToggleSize = $(dialog).find("button[data-modal-action='restore']");
if ($(btnToggleSize).length > 0) {
$(btnToggleSize).off('click');
$(btnToggleSize).on('click', function () {
a.toggleSize();
});
}
}
$(dialog).modal('show');
$(dialog).off('hide.bs.modal');
$(dialog).on('hide.bs.modal', function () {
if ($(dialog).next().is("div[class~='modal-backdrop']")) {
$(dialog).next().remove();
}
$(dialog).remove();
});
$(dialog).find(".modal-header").off("mousedown");
$(dialog).find(".modal-header").on("mousedown", function(e) {
var posX = e.pageX - $(this).offset().left;
var posY = e.pageY - $(this).offset().top;
$("body").off("mousemove.draggable");
$("body").on("mousemove.draggable", function(e2) {
$(dialog).children(".modal-dialog").offset({ "left": (e2.pageX - posX), "top": (e2.pageY - posY) });
});
$("body").off("mouseup");
$("body").on("mouseup", function() {
$("body").off("mousemove.draggable");
});
$(dialog).off("bs.modal.hide");
$(dialog).on("bs.modal.hide", function() {
$("body").off("mousemove.draggable");
});
});
},
updateContentBody: function (id, text) {
var body = $("#dlg" + id).find(".modal-body");
if ($(body).hasClass("custom-loading")) $(body).removeClass("custom-loading");
$(body).html(text);
},
getElement: function () {
return $("#dlg" + this.id);
},
toggleSize: function () {
var div = $(this.getElement()).find("div[class^='modal-dialog']");
if ($(div).length <= 0) {
return;
}
if ($(div).hasClass("modal-md")) {
$(div).removeClass("modal-md");
$(div).addClass("modal-lg");
} else if ($(div).hasClass("modal-lg")) {
$(div).removeClass("modal-lg");
$(div).addClass("modal-md");
}
}
};

7
bsdialog.min.js vendored
View File

@ -1,8 +1,5 @@
/**
* BSDialog
* @version v0.1.0.024 (2019/07/05 2210)
* @version v0.1.0.029a (2019/11/09 2239)
*/
var BSDialog={Create:function(id,title,url,is_big,update_body){var a=this;var isBig=((typeof(is_big)=="undefined")?!1:(is_big==!0)?!0:!1);var updateBody=((typeof(update_body)=="undefined")?!1:(update_body==!0)?!0:!1);if(!a.hasDialog(id)){var html=a.generateModalHtml(id,title,null,isBig);$("body").append(html)}
$.ajax({url:url,cache:!1,timeout:10000,success:function(result,status,xhr){if((xhr.status==200)||(xhr.status==302)||(xhr.status==301)){if(updateBody){a.updateContentBody(id,result)}else{$("#dlg"+id).find(".modal-content").html(result)}}else{a.updateContentBody(id,xhr.statusText+" ("+xhr.status+")")}},error:function(xhr){a.updateContentBody(id,xhr.statusText+" ("+xhr.status+")")},complete:function(xhr,status){}});a.show(id)},Close:function(id){if(!this.hasDialog(id))return;$("#dlg"+id).modal('hide')},Clear:function(){$("body > div[class~='modal'][role='dialog']").remove();$("body > div[class~='modal-backdrop']").remove();$("body").removeClass("modal-open")},ShowToast:function(id,title,message,is_big){if(this.hasDialog(id))return;var html=this.generateModalHtml(id,title,message,is_big);$("body").append(html);this.show(id)},hasDialog:function(id){return($("body > div[id='dlg"+id+"']").length>0)},generateModalHtml:function(id,title,message,is_big){var size=((typeof(is_big)=="undefined")?"sm":(is_big==!0?"lg":"sm"));var html="";html+="<div class=\"modal fade\" id=\"dlg"+id+"\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"dlg"+id+"Label\" aria-hidden=\"true\">";html+=" <div class=\"modal-dialog modal-"+size+"\">";html+=" <div class=\"modal-content\">";html+=" <div class=\"modal-header\">";html+=" <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">&times;</button>";html+=" <strong class=\"modal-title\">"+title+"</strong>";html+=" </div>";if($.trim(message).length<=0){html+=" <div class=\"modal-body custom-loading\"></div>"}else{html+=" <div class=\"modal-body\">"+message+"</div>"}
html+=" <div class=\"modal-footer\">";html+=" <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>";html+=" </div>";html+=" </div>";html+=" </div>";html+="</div>";return html},show:function(id){$("#dlg"+id).modal('show');$("#dlg"+id).off('hide.bs.modal');$("#dlg"+id).on('hide.bs.modal',function(){if($("body > div[id='dlg"+id+"']").next().is("div[class~='modal-backdrop']")){$("body > div[id='dlg"+id+"']").next().remove()}
$("body > div[id='dlg"+id+"']").remove()})},updateContentBody:function(id,text){var body=$("#dlg"+id).find(".modal-body");if($(body).hasClass("custom-loading"))$(body).removeClass("custom-loading");$(body).html(text)}}
var BSDialog={Create:function(o,t,e,d,a,s){var l=this;l.id=o,l.title=t,l.url=e,l.isBig=void 0!==d&&1==d,l.showSize=void 0===s||1==s;var n=void 0===a||1==a;l.Exists(o)||l.renderContent(null),null!=e&&$.ajax({url:e,cache:!1,xhrFields:{withCredentials:!0},timeout:6e4,success:function(t,e,d){200==d.status||302==d.status||301==d.status?n?l.updateContentBody(o,t):$("#dlg"+o).find(".modal-content").html(t):l.updateContentBody(o,d.statusText+" ("+d.status+")")},error:function(t){l.updateContentBody(o,t.statusText+" ("+t.status+")")},complete:function(o,t){}}),l.initialiseComponents()},Close:function(o){$("#dlg"+o).modal("hide")},Clear:function(){$("body > div[class~='modal'][role='dialog']").remove(),$("body > div[class~='modal-backdrop']").remove(),$("body").removeClass("modal-open")},ShowToast:function(o,t,e,d){var a=this;a.Exists(o)||(a.id=o,a.title=t,a.url=null,a.isBig=void 0!==d&&1==d,a.renderContent(e),a.initialiseComponents())},Exists:function(o){return $("body > div[id='dlg"+o+"']").length>0},generateModalHtml:function(o){var t=this,e=1==t.isBig?"lg":"md",d="";return d+='<div class="modal fade" id="dlg'+t.id+'" tabindex="-1" role="dialog" aria-labelledby="dlg'+t.id+'Label" aria-hidden="true">',d+=' <div class="modal-dialog modal-'+e+'">',d+=' <div class="modal-content">',d+=' <div class="modal-header">',d+=' <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>',t.showSize&&(d+=' <span class="close">&nbsp;</span>',d+=' <button type="button" class="close" data-modal-action="restore" aria-hidden="true">&#8722;</button>'),d+=' <strong class="modal-title" style="cursor:default; ">'+t.title+"</strong>",d+=" </div>",$.trim(o).length<=0?d+=' <div class="modal-body custom-loading" style="background-position: center center; background-repeat: no-repeat;"></div>':d+=' <div class="modal-body">'+o+"</div>",d+=' <div class="modal-footer">',d+=' <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>',d+=" </div>",d+=" </div>",d+=" </div>",d+="</div>"},renderContent:function(o){$("body").append(this.generateModalHtml(o))},initialiseComponents:function(){var o=this,t=o.getElement();if(o.showSize){var e=$(t).find("button[data-modal-action='restore']");$(e).length>0&&($(e).off("click"),$(e).on("click",function(){o.toggleSize()}))}$(t).modal("show"),$(t).off("hide.bs.modal"),$(t).on("hide.bs.modal",function(){$(t).next().is("div[class~='modal-backdrop']")&&$(t).next().remove(),$(t).remove()}),$(t).find(".modal-header").off("mousedown"),$(t).find(".modal-header").on("mousedown",function(o){var e=o.pageX-$(this).offset().left,d=o.pageY-$(this).offset().top;$("body").off("mousemove.draggable"),$("body").on("mousemove.draggable",function(o){$(t).children(".modal-dialog").offset({left:o.pageX-e,top:o.pageY-d})}),$("body").off("mouseup"),$("body").on("mouseup",function(){$("body").off("mousemove.draggable")}),$(t).off("bs.modal.hide"),$(t).on("bs.modal.hide",function(){$("body").off("mousemove.draggable")})})},updateContentBody:function(o,t){var e=$("#dlg"+o).find(".modal-body");$(e).hasClass("custom-loading")&&$(e).removeClass("custom-loading"),$(e).html(t)},getElement:function(){return $("#dlg"+this.id)},toggleSize:function(){var o=$(this.getElement()).find("div[class^='modal-dialog']");$(o).length<=0||($(o).hasClass("modal-md")?($(o).removeClass("modal-md"),$(o).addClass("modal-lg")):$(o).hasClass("modal-lg")&&($(o).removeClass("modal-lg"),$(o).addClass("modal-md")))}};