diff --git a/js/jquery.bootstrap.js b/js/jquery.bootstrap.js
index c374ffd..3a9cee8 100644
--- a/js/jquery.bootstrap.js
+++ b/js/jquery.bootstrap.js
@@ -185,7 +185,7 @@ require:
$.messager = (function() {
- var alert = function(title, message) {
+ var alert = function(title, message, okCallback, closeCallback) {
var model = $.messager.model;
if (arguments.length < 2) {
@@ -198,18 +198,20 @@ $.messager = (function() {
// override destroy methods;
, onClose: function() {
$(this).dialog("destroy");
+ closeCallback && closeCallback();
}
, buttons: [{
text: model.ok.text
, classed: model.ok.classed || "btn-success"
, click: function() {
$(this).dialog("destroy");
+ okCallback && okCallback();
}
}]
});
};
- var confirm = function(title, message, callback) {
+ var confirm = function(title, message, okCallback, cancelCallback) {
var model = $.messager.model;
$("
" + message + "
").dialog({
@@ -217,13 +219,14 @@ $.messager = (function() {
// override destroy methods;
, onClose: function() {
$(this).dialog("destroy");
+ cancelCallback && cancelCallback();
}
, buttons: [{
text: model.ok.text
, classed: model.ok.classed || "btn-success"
, click: function() {
$(this).dialog("destroy");
- callback && callback();
+ okCallback && okCallback();
}
},
{
@@ -231,6 +234,7 @@ $.messager = (function() {
, classed : model.cancel.classed || "btn-danger"
, click: function() {
$(this).dialog("destroy");
+ cancelCallback && cancelCallback();
}
}]
});
diff --git a/js/jquery.bootstrap.min.js b/js/jquery.bootstrap.min.js
index 3f348cc..d80863e 100644
--- a/js/jquery.bootstrap.min.js
+++ b/js/jquery.bootstrap.min.js
@@ -3,4 +3,4 @@
Copyright (c) Kris Zhang
License: MIT (https://github.com/newghost/bootstrap-jquery-plugin/blob/master/LICENSE)
*/
-String.prototype.format||(String.prototype.format=function(){var e=arguments;return this.replace(/{(\d+)}/g,function(t,n){return typeof e[n]!="undefined"?e[n]:t})}),function(e){e.fn.dialog=function(t){var n=this,r=e(n),i=e(document.body),s=r.closest(".dialog"),o="dialog-parent",u=arguments[1],a=arguments[2],f=function(){var t='';s=e(t),e(document.body).append(s),s.find(".modal-body").append(r)},l=function(r){var i=(r||t||{}).buttons||{},o=s.find(".modal-footer");o.empty();var u=i.constructor==Array;for(var a in i){var f=i[a],l="",c="",h="btn-default",p="";if(f.constructor==Object)l=f.id,c=f.text,h=f["class"]||f.classed||h,p=f.click;else{if(!!u||f.constructor!=Function)continue;c=a,p=f}$button=e('').addClass(h).html(c),l&&$button.attr("id",l),p&&function(e){$button.click(function(){e.call(n)})}(p),o.append($button)}o.data("buttons",i)},c=function(){s.modal("show")},h=function(e){s.modal("hide").one("hidden.bs.modal",function(){e&&(r.data(o).append(r),s.remove())})};if(t.constructor==Object){!r.data(o)&&r.data(o,r.parent()),s.size()<1&&f(),l(),e(".modal-title",s).html(t.title||"");var p=e(".modal-dialog",s).addClass(t.dialogClass||"");e(".modal-header .close",s).click(function(){var e=t.onClose||h;e.call(n)}),(t["class"]||t.classed)&&s.addClass(t["class"]||t.classed),t.autoOpen===!1&&(t.show=!1),t.width&&p.width(t.width),t.height&&p.height(t.height),s.modal(t)}t=="destroy"&&h(!0),t=="close"&&h(),t=="open"&&c();if(t=="option"&&u=="buttons"){if(!a)return s.find(".modal-footer").data("buttons");l({buttons:a}),c()}return n}}(jQuery),$.messager=function(){var e=function(e,t){var n=$.messager.model;arguments.length<2&&(t=e||"",e=" "),$(""+t+"
").dialog({title:e,onClose:function(){$(this).dialog("destroy")},buttons:[{text:n.ok.text,classed:n.ok.classed||"btn-success",click:function(){$(this).dialog("destroy")}}]})},t=function(e,t,n){var r=$.messager.model;$(""+t+"
").dialog({title:e,onClose:function(){$(this).dialog("destroy")},buttons:[{text:r.ok.text,classed:r.ok.classed||"btn-success",click:function(){$(this).dialog("destroy"),n&&n()}},{text:r.cancel.text,classed:r.cancel.classed||"btn-danger",click:function(){$(this).dialog("destroy")}}]})},n='',r,i=function(e){r||(r=$(n),$("body").append(r)),r.find(".modal-body").html(e),r.modal({show:!0,backdrop:!1}),setTimeout(function(){r.modal("hide")},1500)};return{alert:e,popup:i,confirm:t}}(),$.messager.model={ok:{text:"OK",classed:"btn-success"},cancel:{text:"Cancel",classed:"btn-danger"}},function(e){e.fn.datagrid=function(t,n){var r=this,i=e(r),s=i.data("config")||{},o=i.data("rows")||[],u=s.selectedClass||"success",a=s.singleSelect,f=function(t){var n=s.selectChange,r=s.edit,f=function(t){var r=e(this),s=r.hasClass(u),f=e("tbody tr",i).index(r),l=o[f]||{};a&&e("tbody tr",i).removeClass(u),r.toggleClass(u),n&&n(!s,f,l,r)};(n||typeof a!="undefined")&&t.click(f);var l=function(t){var n=e(this),r=n.closest("tr"),s=e("tbody tr",i).index(r),u=o[s]||{},a=n.attr("name");a&&(u[a]=n.val())};r&&t.find("input").keyup(l)},l=function(e,t){var n="";for(var r=0,i=e[0].length;r '.format(o.field,l,c,h)),l=u?u(t[a],t):l,n=n+""+l+" "}return n+=" ",n},c=function(t){if(!n)return;var r=s.columns,o=n.rows||n;if(!r)return;var u="";if(o)for(var a=0,c=o.length;a",e("tbody",i).remove(),i.data("rows",o).append(u),s.edit&&i.addClass("edit"),f(e("tbody tr",i))},h=function(){if(n&&typeof n.index!="undefined")return[n.index];var t=[];return i.find("tbody tr").each(function(n){var r=e(this);r.hasClass(u)&&t.push(n)}),t};if(t&&t.constructor==Object){var p=t.columns;if(p){e("thead",i).size()<1&&i.append(" ");var d="";for(var v=0,m=p[0].length;v"+(g.title||"")+""}d+=" ",i.data("config",t),e("thead",i).html(d)}}t=="loadData"&&c();if(t=="getData")return o;if(t=="getConfig")return s;if(t=="getColumns")return s.columns;if(t=="selectRow"){if(typeof a=="undefined")return;typeof n=="number"?(a&&i.datagrid("unselectRow"),e("tbody tr",i).eq(n).addClass(u)):a||e("tbody tr",i).addClass(u)}t=="unselectRow"&&(typeof n!="undefined"?e("tbody tr",i).eq(n).removeClass(u):e("tbody tr",i).removeClass(u));if(t=="updateRow"){var y=h(),b=n.row,p=s.columns;for(var v=0,m=y.length;v-1;v--){var x=y[v];e("tbody tr",i).eq(x).remove(),o.splice(x,1)}}return r}}(jQuery),function(e){e.fn.tree=function(t,n){var r=this,i=e(r),s=Array.prototype.push,o="glyphicon-file",u="glyphicon-folder-open",a="glyphicon-folder-close",f=function(e,t,n){var r=[];!t&&r.push(''.format(n=="close"?"none":"block"));for(var i=0,l=e.length;i");var m=typeof h=="undefined"?o:d=="close"?a:u;r.push(' '.format(m)),r.push("{0} ".format(c.text,h?" class='tree-node'":"",p?" data-id='{0}'".format(p):"",v?" data-attr='{0}'".format(JSON.stringify(v)):"")),h&&s.apply(r,f(h,!1,d)),r.push("")}return!t&&r.push(" "),r},l=function(){e("span.glyphicon-folder-open, span.glyphicon-folder-close",i).click(function(t){var n=e(this),r=n.closest("li").children("ul");n.hasClass(a)?(n.removeClass(a).addClass(u),r.show()):(n.removeClass(u).addClass(a),r.hide())})};if(t&&t.constructor==Object){var c=t.data;if(c&&c.constructor==Array){var h=f(c,!0);i.html(h.join("")),i.data("config",t),l()}var p=t.onClick;p&&e("li>a",i).click(function(){var t=e(this);attrs=t.attr("data-attr"),p.call(r,{id:t.attr("data-id"),attributes:attrs?JSON.parse(attrs):{},text:t.text()},t)})}return r}}(jQuery)
\ No newline at end of file
+String.prototype.format || (String.prototype.format = function () { var t = arguments; return this.replace(/{(\d+)}/g, function (e, o) { return "undefined" != typeof t[o] ? t[o] : e }) }), function (t) { t.fn.dialog = function (e) { var o = this, a = t(o), n = (t(document.body), a.closest(".dialog")), d = "dialog-parent", s = arguments[1], i = arguments[2], r = function () { var e = ''; n = t(e), t(document.body).append(n), n.find(".modal-body").append(a) }, l = function (a) { var d = (a || e || {}).buttons || {}, s = n.find(".modal-footer"); s.empty(); var i = d.constructor == Array; for (var r in d) { var l = d[r], c = "", u = "", f = "btn-default", h = ""; if (l.constructor == Object) c = l.id, u = l.text, f = l["class"] || l.classed || f, h = l.click; else { if (i || l.constructor != Function) continue; u = r, h = l } $button = t('').addClass(f).html(u), c && $button.attr("id", c), h && !function (t) { $button.click(function () { t.call(o) }) }(h), s.append($button) } s.data("buttons", d) }, c = function () { n.modal("show") }, u = function (t) { n.modal("hide").one("hidden.bs.modal", function () { t && (a.data(d).append(a), n.remove()) }) }; if (e.constructor == Object) { !a.data(d) && a.data(d, a.parent()), n.size() < 1 && r(), l(), t(".modal-title", n).html(e.title || ""); var f = t(".modal-dialog", n).addClass(e.dialogClass || ""); t(".modal-header .close", n).click(function () { var t = e.onClose || u; t.call(o) }), (e["class"] || e.classed) && n.addClass(e["class"] || e.classed), e.autoOpen === !1 && (e.show = !1), e.width && f.width(e.width), e.height && f.height(e.height), n.modal(e) } if ("destroy" == e && u(!0), "close" == e && u(), "open" == e && c(), "option" == e && "buttons" == s) { if (!i) return n.find(".modal-footer").data("buttons"); l({ buttons: i }), c() } return o } }(jQuery), $.messager = function () { var t, e = function (t, e, o, a) { var n = $.messager.model; arguments.length < 2 && (e = t || "", t = " "), $("" + e + "
").dialog({ title: t, onClose: function () { $(this).dialog("destroy"), a && a() }, buttons: [{ text: n.ok.text, classed: n.ok.classed || "btn-success", click: function () { $(this).dialog("destroy"), o && o() } }] }) }, o = function (t, e, o, a) { var n = $.messager.model; $("" + e + "
").dialog({ title: t, onClose: function () { $(this).dialog("destroy"), a && a() }, buttons: [{ text: n.ok.text, classed: n.ok.classed || "btn-success", click: function () { $(this).dialog("destroy"), o && o() } }, { text: n.cancel.text, classed: n.cancel.classed || "btn-danger", click: function () { $(this).dialog("destroy"), a && a() } }] }) }, a = '', n = function (e) { t || (t = $(a), $("body").append(t)), t.find(".modal-body").html(e), t.modal({ show: !0, backdrop: !1 }), setTimeout(function () { t.modal("hide") }, 1500) }; return { alert: e, popup: n, confirm: o } }(), $.messager.model = { ok: { text: "OK", classed: "btn-success" }, cancel: { text: "Cancel", classed: "btn-danger" } }, function (t) { t.fn.datagrid = function (e, o) { var a = this, n = t(a), d = n.data("config") || {}, s = n.data("rows") || [], i = d.selectedClass || "success", r = d.singleSelect, l = function (e) { var o = d.selectChange, a = d.edit, l = function (e) { var a = t(this), d = a.hasClass(i), l = t("tbody tr", n).index(a), c = s[l] || {}; r && t("tbody tr", n).removeClass(i), a.toggleClass(i), o && o(!d, l, c, a) }; (o || "undefined" != typeof r) && e.click(l); var c = function (e) { var o = t(this), a = o.closest("tr"), d = t("tbody tr", n).index(a), i = s[d] || {}, r = o.attr("name"); r && (i[r] = o.val()) }; a && e.find("input").keyup(c) }, c = function (t, e) { for (var o = "", a = 0, n = t[0].length; n > a; a++) { var s = t[0][a], i = s.formatter, r = s.field, l = (s.tip, e[r]), c = s.maxlength, u = s.readonly; "undefined" == typeof l && (l = ""), d.edit && (c = c ? ' maxlength="{0}"'.format(s.maxlength) : "", u = u ? ' readonly="readonly"' : "", l = ' '.format(s.field, l, c, u)), l = i ? i(e[r], e) : l, o = o + "" + l + " " } return o += " " }, u = function (e) { if (o) { var a = d.columns, s = o.rows || o; if (a) { var i = ""; if (s) for (var r = 0, u = s.length; u > r; r++)i += c(a, s[r]); i += " ", t("tbody", n).remove(), n.data("rows", s).append(i), d.edit && n.addClass("edit"), l(t("tbody tr", n)) } } }, f = function () { if (o && "undefined" != typeof o.index) return [o.index]; var e = []; return n.find("tbody tr").each(function (o) { var a = t(this); a.hasClass(i) && e.push(o) }), e }; if (e && e.constructor == Object) { var h = e.columns; if (h) { t("thead", n).size() < 1 && n.append(" "); for (var m = "", p = 0, v = h[0].length; v > p; p++) { var y = h[0][p]; m += "" + (y.title || "") + " " } m += " ", n.data("config", e), t("thead", n).html(m) } } if ("loadData" == e && u(), "getData" == e) return s; if ("getConfig" == e) return d; if ("getColumns" == e) return d.columns; if ("selectRow" == e) { if ("undefined" == typeof r) return; "number" == typeof o ? (r && n.datagrid("unselectRow"), t("tbody tr", n).eq(o).addClass(i)) : r || t("tbody tr", n).addClass(i) } if ("unselectRow" == e && ("undefined" != typeof o ? t("tbody tr", n).eq(o).removeClass(i) : t("tbody tr", n).removeClass(i)), "updateRow" == e) for (var g = f(), b = o.row, h = d.columns, p = 0, v = g.length; v > p; p++) { var C = g[p]; s && (b = t.extend(s[C], b)); var x = t(c(h, b, d)); "undefined" == typeof o.index && x.addClass(i), t("tbody tr", n).eq(C).after(x).remove(), l(x) } if ("getSelections" == e) { var k = []; return t("tbody tr", n).each(function (e) { t(this).hasClass(i) && k.push(s[e]) }), k } if ("getSelectedIndex" == e) return f(); if ("insertRow" == e) { var w = f()[0], b = o.row; if (("undefined" == typeof w || 0 > w) && (w = s.length), !d || !b) return n; var $ = t("tbody tr", n), x = t(c(d.columns, b, d)), j = $.eq(w); l(x), j.size() ? j.before(x) : t("tbody", n).append(x), s.splice(w, 0, b) } if ("deleteRow" == e) for (var g = "number" == typeof o ? [o] : f(), p = g.length - 1; p > -1; p--) { var w = g[p]; t("tbody tr", n).eq(w).remove(), s.splice(w, 1) } return a } }(jQuery), function (t) { t.fn.tree = function (e, o) { var a = this, n = t(a), d = Array.prototype.push, s = "glyphicon-file", i = "glyphicon-folder-open", r = "glyphicon-folder-close", l = function (t, e, o) { var a = []; !e && a.push(''.format("close" == o ? "none" : "block")); for (var n = 0, c = t.length; c > n; n++) { var u = t[n], f = u.children, h = u.id, m = u.state, p = u.attributes; a.push(""); var v = "undefined" == typeof f ? s : "close" == m ? r : i; a.push(' '.format(v)), a.push("{0} ".format(u.text, f ? " class='tree-node'" : "", h ? " data-id='{0}'".format(h) : "", p ? " data-attr='{0}'".format(JSON.stringify(p)) : "")), f && d.apply(a, l(f, !1, m)), a.push(" ") } return !e && a.push(" "), a }, c = function () { t("span.glyphicon-folder-open, span.glyphicon-folder-close", n).click(function (e) { var o = t(this), a = o.closest("li").children("ul"); o.hasClass(r) ? (o.removeClass(r).addClass(i), a.show()) : (o.removeClass(i).addClass(r), a.hide()) }) }; if (e && e.constructor == Object) { var u = e.data; if (u && u.constructor == Array) { var f = l(u, !0); n.html(f.join("")), n.data("config", e), c() } var h = e.onClick; h && t("li>a", n).click(function () { var e = t(this); attrs = e.attr("data-attr"), h.call(a, { id: e.attr("data-id"), attributes: attrs ? JSON.parse(attrs) : {}, text: e.text() }, e) }) } return a } }(jQuery);
\ No newline at end of file