diff --git a/jquery.easytree.js b/jquery.easytree.js
index 2b870d4..342aafa 100644
--- a/jquery.easytree.js
+++ b/jquery.easytree.js
@@ -945,12 +945,17 @@
function ajaxService(actionUrl, json, callBack) {
$.ajax({
url: actionUrl,
- type: "POST",
+ type: (json == null) ? "GET" : "POST",
contentType: "application/json; charset=utf-8",
data: json,
success: callBack,
error: function (jqXHR, textStatus, errorThrown) {
- alert("Error: " + jqXHR.responseText);
+ // Don't display anything if the error is blank. This will happen
+ // if the AJAX request was cancelled due to navigating away to a new page
+ // which happens all the time on Firefox if it has not finished the AJAX request.
+ if (jqXHR.responseText != '') {
+ alert("Error: " + jqXHR.responseText);
+ }
}
});
}
diff --git a/jquery.easytree.min.js b/jquery.easytree.min.js
index eab4b31..e142949 100644
--- a/jquery.easytree.min.js
+++ b/jquery.easytree.min.js
@@ -7,4 +7,4 @@
* V1.0.1
*/
-(function ($) { $.fn.easytree = function (a) { var b = this; var c = new F(b, a); return c }; var F = function (z, A) { var B = { allowActivate: true, data: null, dataUrl: null, dataUrlJson: null, disableIcons: false, enableDnd: false, ordering: null, slidingTime: 100, minOpenLevels: 0, building: null, built: null, toggling: null, toggled: null, opening: null, opened: null, openLazyNode: null, closing: null, closed: null, canDrop: null, dropping: null, dropped: null, stateChanged: null }; var C; var D = null; var E = new Object(); this.init = function (b, c) { B = $.extend(B, c); init(); C = b; var d = ''; if (B.dataUrl) { ajaxService(B.dataUrl, B.dataUrlJson, function (a) { d = convertInputDataToJson(a); if (!d) { alert("EasyTree: Invalid data!"); return this } buildTree(d); return this }) } else if (B.data) { d = convertInputDataToJson(B.data); if (!d) { alert("EasyTree: Invalid data!"); return this } buildTree(d) } else { d = convertInputDataToJson(C.html()); if (!d) { alert("EasyTree: Invalid data!"); return this } buildTree(d) } return this }; this.options = B; this.rebuildTree = function (a) { var b = a ? convertInputDataToJson(a) : D; if (!b) { alert("EasyTree: Invalid data!") } buildTree(b) }; this.getAllNodes = function () { return D }; this.getNode = function (a) { return getNode(D, a) }; this.addNode = function (a, b) { if (!b) { D.push(a); return } var c = getNode(D, b); if (!a) { return } if (!c.children) { c.children = [] } c.children.push(a) }; this.removeNode = function (a) { removeNode(D, a) }; this.activateNode = function (a) { unactivateAll(D); if (!B.allowActivate) { return } var b = getNode(D, a); if (!b) { return } b.isActive = true; $('#' + b.id).addClass('easytree-active') }; this.toggleNode = function (a) { var b = getNode(D, a); if (!b) { return } toggleNodeBegin(event, D, b) }; function nodeClick(a) { var b = getElementId(this); var c = a.data; var d = getNode(c, b); if (!d) { return } unactivateAll(c); if (!B.allowActivate) { return } d.isActive = true; $('#' + d.id).addClass('easytree-active'); if (B.stateChanged) { var j = getMinifiedJson(c); B.stateChanged(c, j) } } function toggleNodeEvt(a) { var b = getElementId(this); var c = a.data; var d = getNode(c, b); if (!d) { return } toggleNodeBegin(a, c, d) } function toggleNodeBegin(c, d, e) { var f = ''; if (B.toggling) { f = B.toggling(c, d, e); if (f === false) { return false } } if (e.isExpanded) { if (B.closing) { f = B.closing(c, d, e); if (f === false) { return false } } } else { if (B.opening) { f = B.opening(c, d, e); if (f === false) { return false } } } if (e.isLazy && !e.isExpanded) { var g = e.children && e.children.length > 0; f = true; if (B.openLazyNode) { f = B.openLazyNode(c, d, e, g) } if (e.lazyUrl && f !== false) { ajaxService(e.lazyUrl, e.lazyUrlJson, function (a) { if (a.d) { a = a.d } var b = convertInputDataToJson(a); if ($.isArray(b)) { e.children = b } else { e.children = []; e.children.push(b) } buildTree(d); toggleNodeEnd(c, d, e) }); return false } } toggleNodeEnd(c, d, e) } function toggleNodeEnd(a, b, c) { if (c.isExpanded) { openCloseNode(b, c.id, "close"); renderNode(c, "close"); if (B.closed) { B.closed(a, b, c) } } else { openCloseNode(b, c.id, "open"); renderNode(c, "open"); if (B.opened) { B.opened(a, b, c) } } if (B.toggled) { var d = B.toggled(a, b, c) } } function dragStart(a) { if (!B.enableDnd) { return } var b = a.target; while (b) { if (b.className.indexOf("easytree-draggable") > -1) { break } b = b.parentElement } if (!b) { return } unsourceAll(D); unactivateAll(D); $('#' + b.id).addClass('easytree-drag-source'); resetDnd(E); E.createClone = !(b.className.indexOf("easytree-no-clone") > -1); E.dragok = true; E.sourceEl = b; E.sourceId = b.id; E.sourceNode = getNode(D, E.sourceId); return false } function drag(a) { if (!E.dragok) { return } if (!B.enableDnd) { return } if (E.createClone) { if (!E.clone) { E.clone = createClone(E.sourceEl); $(E.clone).appendTo('body') } E.clone.style.left = (a.pageX + 5) + "px"; E.clone.style.top = (a.pageY) + "px" } var b = getDroppableTargetEl(a.clientX, a.clientY); if (!b) { hideDragHelpers(); E.targetEl = null; E.targetId = null; E.targetNode = null; E.canDrop = false; return } if (b.id == E.targetId) { return } E.canDrop = false; window.clearTimeout(E.openDelayTimeout); E.targetEl = b; E.targetId = b.id; E.targetNode = getNode(D, E.targetId); log('source:' + (E.sourceNode && E.sourceNode.text ? E.sourceNode.text : E.sourceId)); log('target:' + (E.targetNode && E.targetNode.text ? E.targetNode.text : E.targetId)); log('isAncester:' + isAncester(E.sourceNode, E.targetId)); var c = $('#' + E.targetId); if (isAncester(E.sourceNode, E.targetId)) { showRejectDragHelper(); return } if (E.targetId == E.sourceId) { hideDragHelpers(); return } if (B.canDrop) { var d = E.sourceNode != null; var e = d ? E.sourceNode : E.sourceEl; var f = E.targetNode != null; var g = f ? E.targetNode : E.targetEl; var h = B.canDrop(a, D, d, e, f, g); if (h === true) { showAcceptDragHelper(); E.canDrop = true; E.openDelayTimeout = window.setTimeout(function () { openCloseNode(D, E.targetId, 'open'); renderNode(E.targetNode, 'open') }, 600); return } else if (h === false) { showRejectDragHelper(); return } } if (c.hasClass('easytree-reject')) { showRejectDragHelper() } else if (c.hasClass('easytree-accept')) { showAcceptDragHelper(); E.canDrop = true; E.openDelayTimeout = window.setTimeout(function () { openCloseNode(D, E.targetId, 'open'); renderNode(E.targetNode, 'open') }, 600) } else { hideDragHelpers() } return false } function dragEnd(a) { var b = E.sourceNode != null; var c = b ? E.sourceNode : E.sourceEl; var d = E.targetNode != null; var e = d ? E.targetNode : E.targetEl; var f = E.canDrop; hideDragHelpers(); $('#_st_clone_').remove(); if (c === null || e === null) { resetDnd(E); return false } if (B.dropping) { var g = B.dropping(a, D, b, c, d, e, f); if (g === false) { resetDnd(E); return } } if (E.targetNode && E.sourceNode && f) { if (!E.targetNode.children) { E.targetNode.children = [] } removeNode(D, E.sourceId); E.targetNode.children.push(E.sourceNode) } if (f) { if (B.dropped) { B.dropped(a, D, b, c, d, e) } buildTree(D) } resetDnd(E); return false } function createClone(a) { $(a).remove(".easytree-expander"); var b = $(a).clone().remove(".easytree-expander").removeClass('easytree-drag-source')[0]; var c = b.children[0]; if (c && c.className == 'easytree-expander') { b.removeChild(c) } b.style.display = 'block'; b.style.position = "absolute"; b.style.opacity = 0.5; b.id = '_st_clone_'; b.style.zIndex = 1000; return b } function getDroppableTargetEl(a, b) { var c = document.elementFromPoint(a, b); while (c) { if (c.className.indexOf('easytree-droppable') > -1) { return c } c = c.parentElement } return null } function resetDnd(a) { a.canDrop = false; a.createClone = true; a.clone = null; a.dragok = false; a.openDelayTimeout = null; a.targetEl = null; a.targetId = null; a.targetNode = null; a.sourceEl = null; a.sourceId = null; a.sourceNode = null } function getElementId(a) { while (a != null) { if (a.id) { return a.id } a = a.parentElement } return null } function getNode(a, b) { var i = 0; for (i = 0; i < a.length; i++) { var n = a[i]; var t = n.text; if (n.id == b) { return n } var c = n.children && n.children.length > 0; if (c) { var d = getNode(n.children, b); if (d) { return d } } } return null } function isAncester(a, b) { var i = 0; if (!a || !a.children || a.children.length == 0) { return false } for (i = 0; i < a.children.length; i++) { var n = a.children[i]; var t = n.text; if (n.id == b) { return true } var c = n.children && n.children.length > 0; if (c) { var d = isAncester(n, b); if (d) { return d } } } return false } function removeNode(a, b) { var i = 0; for (i = 0; i < a.length; i++) { var n = a[i]; var t = n.text; if (n.id == b) { a.splice(i, 1); return } var c = n.children && n.children.length > 0; if (c) { removeNode(n.children, b) } } } function openCloseNode(a, b, c) { var i = 0; for (i = 0; i < a.length; i++) { var n = a[i]; var t = n.text; if (n.id == b) { n.isExpanded = c == "open"; return } var d = n.children && n.children.length > 0; if (d) { openCloseNode(n.children, b, c) } } } function unactivateAll(a) { var i = 0; for (i = 0; i < a.length; i++) { var n = a[i]; n.isActive = false; $('#' + n.id).removeClass('easytree-active'); var b = n.children && n.children.length > 0; if (b) { unactivateAll(n.children) } } } function unsourceAll(a) { var i = 0; for (i = 0; i < a.length; i++) { var n = a[i]; $('#' + n.id).removeClass('easytree-drag-source'); var b = n.children && n.children.length > 0; if (b) { unsourceAll(n.children) } } } function sort(f) { var i = 0; f = f.sort(function (a, b) { var c = a.text.toLowerCase(); var d = b.text.toLowerCase(); if (!c) { c = "a" } if (!d) { d = "a" } if (B.ordering.toLowerCase().indexOf('folder') > -1 && a.isFolder) { c = "______" + c } if (B.ordering.toLowerCase().indexOf('folder') > -1 && b.isFolder) { d = "______" + d } var e = B.ordering.indexOf(" DESC") == -1 ? 1 : -1; if (c < d) { return -1 * e } if (c > d) { return 1 * e } return 0 }); for (i = 0; i < f.length; i++) { var n = f[i]; var g = n.children && n.children.length > 0; if (g) { sort(n.children) } } return f } function giveUniqueIds(a, b, c) { var i = 0; if (!b) { b = 0; c = "_st_node_" + c + "_" } for (i = 0; i < a.length; i++) { var n = a[i]; if (!n.id) { n.id = c + i.toString() } var d = n.children && n.children.length > 0; if (d) { giveUniqueIds(n.children, b + 1, c + i + "_") } } } function buildTree(a) { if (!a) { return } var b = new Date(); if (B.building) { var c = B.building(a); if (c === false) { return false } } var d = new Date(); if (B.ordering) { a = sort(a) } var e = new Date(); var f = Math.floor(Math.random() * 10000); giveUniqueIds(a, 0, f); var g = new Date(); D = a; var h = getNodesAsHtml(a, 0, true); var i = new Date(); C[0].innerHTML = h; var k = new Date(); $(C.selector + " .easytree-node").on("click", a, nodeClick); $(C.selector + " .easytree-expander").on("click", a, toggleNodeEvt); $(C.selector + " .easytree-icon").on("dblclick", a, toggleNodeEvt); $(C.selector + " .easytree-title").on("dblclick", a, toggleNodeEvt); var l = new Date(); if (B.enableDnd) { $(document).on("mousedown", dragStart); $(document).on("mousemove", drag); $(document).on("mouseup", dragEnd) } var m = new Date(); if (B.built) { B.built(a) } var n = new Date(); if (B.stateChanged) { var j = getMinifiedJson(a); B.stateChanged(a, j) } var o = new Date(); var p = d - b; var q = e - d; var r = g - e; var s = i - g; var t = k - i; var u = l - k; var v = m - l; var w = n - m; var x = o - n; var y = o - b } function getNodesAsHtml(a, b, c) { var d = ''; var i = 0; var e = ""; if (b == 0) { e += "ui-easytree easytree-container easytree-focused" } var f = b < B.minOpenLevels; var g = b == 0 || c || f ? "" : " style='display:none' "; d += '
'; for (i = 0; i < a.length; i++) { var n = a[i]; if (f === true) { n.isExpanded = true } var h = i == a.length - 1; var j = getSpanCss(n, h); d += '- '; d += ''; d += f ? '' : ''; d += getIconHtml(n); d += getTitleHtml(n); d += ''; if (n.children && n.children.length > 0) { d += getNodesAsHtml(n.children, b + 1, n.isExpanded) } d += '
' } d += '
'; return d } function getSpanCss(a, b) { var c = a.children && a.children.length > 0; var d = "easytree-node "; if (B.enableDnd) { d += " easytree-draggable " } if (a.liClass) { d += a.liClass } if (a.isFolder && B.enableDnd) { d += " easytree-droppable easytree-accept " } else if (B.enableDnd) { d += " easytree-droppable easytree-reject " } if (a.isActive && B.allowActivate) { d += " easytree-active " } d += getExpCss(a, b); var e = a.isExpanded ? "e" : "c"; if (a.isFolder) { e += "f" } d += " easytree-ico-" + e; return d } function getExpCss(a, b) { var c = a.children && a.children.length > 0; var d = ""; if (!c && a.isLazy) { d = "c" } else if (!c) { d = "n" } else if (a.isExpanded) { d = "e" } else { d = "c" } if (b) { d += "l" } return " easytree-exp-" + d } function getIconHtml(a) { var b = ''; if (B.disableIcons) { return b } if (a.uiIcon) { return '' } if (a.iconUrl) { return '
' } return '' } function getTitleHtml(a) { var b = ''; var c = a.tooltip ? 'title="' + a.tooltip + '"' : ""; var d = "easytree-title"; if (a.textCss) { d += " " + a.textCss } b += ''; if (a.href) { b += '' } b += a.text; if (a.href) { b += '' } b += ''; return b } function renderNode(a, b) { if (!a) { return } var c = $('#' + a.id).attr('class'); var d = c.indexOf('easytree-exp-'); if (d > -1) { var e = c.indexOf(' ', d); var f = e > -1 ? c.substring(d, e) : c.substring(d); $('#' + a.id).removeClass(f); $('#' + a.id).addClass(getExpCss(a, false)) } var g = $('#' + a.id).parents('li').first(); var h = g.children('ul').first(); var i = parseInt(B.slidingTime, 10); if (b == "close") { h.slideUp(i) } else { h.slideDown(i) } } function hideDragHelpers() { $("#easytree-reject").hide(); $("#easytree-accept").hide() } function showAcceptDragHelper() { $("#easytree-accept").show(); $("#easytree-reject").hide() } function showRejectDragHelper() { $("#easytree-reject").show(); $("#easytree-accept").hide() } function getMinifiedJson(a) { var j = JSON.stringify ? JSON.stringify(a) : 'Please import json2.js'; while (j.indexOf(',"children":[]') > -1) { j = j.replace(',"children":[]', '') } while (j.indexOf('"liClass":"",') > -1) { j = j.replace('"liClass":"",', '') } while (j.indexOf('"textCss":"",') > -1) { j = j.replace('"textCss":"",', '') } while (j.indexOf('"isExpanded":false,') > -1) { j = j.replace('"isExpanded":false,', '') } while (j.indexOf('"isActive":false,') > -1) { j = j.replace('"isActive":false,', '') } while (j.indexOf('"isFolder":false,') > -1) { j = j.replace('"isFolder":false,', '') } while (j.indexOf('"isLazy":false,') > -1) { j = j.replace('"isLazy":false,', '') } return j } function init() { initDragHelpers(); resetDnd(E); $(document).on("mousemove", function (a) { var b = a.pageY; var c = a.pageX; document.getElementById('easytree-reject').style.top = (b + 10) + 'px'; document.getElementById('easytree-reject').style.left = (c + 17) + 'px'; document.getElementById('easytree-accept').style.top = (b + 10) + 'px'; document.getElementById('easytree-accept').style.left = (c + 17) + 'px' }) } function initDragHelpers() { if (!$("#easytree-reject").length) { var a = ''; a += ''; a += '
'; $('body').append(a) } if (!$("#easytree-accept").length) { var b = ''; b += ''; b += '
'; $('body').append(b) } } function ajaxService(d, e, f) { $.ajax({ url: d, type: "POST", contentType: "application/json; charset=utf-8", data: e, success: f, error: function (a, b, c) { alert("Error: " + a.responseText) } }) } function convertInputDataToJson(a) { var b = null; if (typeof a == 'object') { b = a } else if (typeof a == 'string') { a = $.trim(a); if (a.indexOf('[') == 0 || a.indexOf('{') == 0) { b = $.parseJSON(a) } else { b = convertHtmlToJson(a) } } return b } function convertHtmlToJson(b) { var i = 0; var c = $(b); var d = []; var e = c.children().each(function (a) { d.push(convertHtmlToNode(this)) }); return d } function convertHtmlToNode(b) { var c = $(b); var d = {}; var e = c.data(); d.isActive = c.hasClass('isActive'); c.removeClass('isActive'); d.isFolder = c.hasClass('isFolder'); c.removeClass('isFolder'); d.isExpanded = c.hasClass('isExpanded'); c.removeClass('isExpanded'); d.isLazy = c.hasClass('isLazy'); c.removeClass('isLazy'); d.uiIcon = e.uiicon; d.liClass = c.attr('class'); d.id = c.attr('id'); var f = c.children('a'); if (f) { d.href = f.attr('href'); d.hrefTarget = f.attr('target') } var g = c.children('img'); if (g) { d.iconUrl = g.attr('src') } d.textCss = ''; var h = c.children('span'); if (h && h.attr('class')) { d.textCss += h.attr('class') + ' ' } h = f.children('span'); if (h && h.attr('class')) { d.textCss += h.attr('class') + ' ' } h = g.children('span'); if (h && h.attr('class')) { d.textCss += h.attr('class') + ' ' } d.text = getNodeValue(c[0]); d.tooltip = c.attr('title'); d.children = []; var i = c.children('ul').children('li').each(function (a) { d.children.push(convertHtmlToNode(this)) }); return d } function getNodeValue(a) { var i = 0; for (i = 0; i < a.childNodes.length; i++) { var b = a.childNodes[i]; while (b) { if (b.nodeType == 3 && $.trim(b.nodeValue).length > 0) { return $.trim(b.nodeValue) } b = b.firstChild } } return '' } this.init(z, A); function log(a) { if (!a) { a = 'null' } console.log(a) } } }(jQuery));
\ No newline at end of file
+(function (e) { e.fn.easytree = function (e) { var n = this; var r = new t(n, e); return r }; var t = function (t, n) { function u(t) { var n = g(this); var i = t.data; var s = y(i, n); if (!s) { return } S(i); if (!r.allowActivate) { return } s.isActive = true; e("#" + s.id).addClass("easytree-active"); if (r.stateChanged) { var o = B(i); r.stateChanged(i, o) } } function a(e) { var t = g(this); var n = e.data; var r = y(n, t); if (!r) { return } f(e, n, r) } function f(t, n, i) { var s = ""; if (r.toggling) { s = r.toggling(t, n, i); if (s === false) { return false } } if (i.isExpanded) { if (r.closing) { s = r.closing(t, n, i); if (s === false) { return false } } } else { if (r.opening) { s = r.opening(t, n, i); if (s === false) { return false } } } if (i.isLazy && !i.isExpanded) { var o = i.children && i.children.length > 0; s = true; if (r.openLazyNode) { s = r.openLazyNode(t, n, i, o) } if (i.lazyUrl && s !== false) { I(i.lazyUrl, i.lazyUrlJson, function (r) { if (r.d) { r = r.d } var s = q(r); if (e.isArray(s)) { i.children = s } else { i.children = []; i.children.push(s) } C(n); l(t, n, i) }); return false } } l(t, n, i) } function l(e, t, n) { if (n.isExpanded) { E(t, n.id, "close"); _(n, "close"); if (r.closed) { r.closed(e, t, n) } } else { E(t, n.id, "open"); _(n, "open"); if (r.opened) { r.opened(e, t, n) } } if (r.toggled) { var i = r.toggled(e, t, n) } } function c(t) { if (!r.enableDnd) { return } var n = t.target; while (n) { if (n.className.indexOf("easytree-draggable") > -1) { break } n = n.parentElement } if (!n) { return } x(s); S(s); e("#" + n.id).addClass("easytree-drag-source"); m(o); o.createClone = !(n.className.indexOf("easytree-no-clone") > -1); o.dragok = true; o.sourceEl = n; o.sourceId = n.id; o.sourceNode = y(s, o.sourceId); return false } function h(t) { if (!o.dragok) { return } if (!r.enableDnd) { return } if (o.createClone) { if (!o.clone) { o.clone = d(o.sourceEl); e(o.clone).appendTo("body") } o.clone.style.left = t.pageX + 5 + "px"; o.clone.style.top = t.pageY + "px" } var n = v(t.clientX, t.clientY); if (!n) { D(); o.targetEl = null; o.targetId = null; o.targetNode = null; o.canDrop = false; return } if (n.id == o.targetId) { return } o.canDrop = false; window.clearTimeout(o.openDelayTimeout); o.targetEl = n; o.targetId = n.id; o.targetNode = y(s, o.targetId); W("source:" + (o.sourceNode && o.sourceNode.text ? o.sourceNode.text : o.sourceId)); W("target:" + (o.targetNode && o.targetNode.text ? o.targetNode.text : o.targetId)); W("isAncester:" + b(o.sourceNode, o.targetId)); var i = e("#" + o.targetId); if (b(o.sourceNode, o.targetId)) { H(); return } if (o.targetId == o.sourceId) { D(); return } if (r.canDrop) { var u = o.sourceNode != null; var a = u ? o.sourceNode : o.sourceEl; var f = o.targetNode != null; var l = f ? o.targetNode : o.targetEl; var c = r.canDrop(t, s, u, a, f, l); if (c === true) { P(); o.canDrop = true; o.openDelayTimeout = window.setTimeout(function () { E(s, o.targetId, "open"); _(o.targetNode, "open") }, 600); return } else if (c === false) { H(); return } } if (i.hasClass("easytree-reject")) { H() } else if (i.hasClass("easytree-accept")) { P(); o.canDrop = true; o.openDelayTimeout = window.setTimeout(function () { E(s, o.targetId, "open"); _(o.targetNode, "open") }, 600) } else { D() } return false } function p(t) { var n = o.sourceNode != null; var i = n ? o.sourceNode : o.sourceEl; var u = o.targetNode != null; var a = u ? o.targetNode : o.targetEl; var f = o.canDrop; D(); e("#_st_clone_").remove(); if (i === null || a === null) { m(o); return false } if (r.dropping) { var l = r.dropping(t, s, n, i, u, a, f); if (l === false) { m(o); return } } if (o.targetNode && o.sourceNode && f) { if (!o.targetNode.children) { o.targetNode.children = [] } w(s, o.sourceId); o.targetNode.children.push(o.sourceNode) } if (f) { if (r.dropped) { r.dropped(t, s, n, i, u, a) } C(s) } m(o); return false } function d(t) { e(t).remove(".easytree-expander"); var n = e(t).clone().remove(".easytree-expander").removeClass("easytree-drag-source")[0]; var r = n.children[0]; if (r && r.className == "easytree-expander") { n.removeChild(r) } n.style.display = "block"; n.style.position = "absolute"; n.style.opacity = .5; n.id = "_st_clone_"; n.style.zIndex = 1e3; return n } function v(e, t) { var n = document.elementFromPoint(e, t); while (n) { if (n.className.indexOf("easytree-droppable") > -1) { return n } n = n.parentElement } return null } function m(e) { e.canDrop = false; e.createClone = true; e.clone = null; e.dragok = false; e.openDelayTimeout = null; e.targetEl = null; e.targetId = null; e.targetNode = null; e.sourceEl = null; e.sourceId = null; e.sourceNode = null } function g(e) { while (e != null) { if (e.id) { return e.id } e = e.parentElement } return null } function y(e, t) { var n = 0; for (n = 0; n < e.length; n++) { var r = e[n]; var i = r.text; if (r.id == t) { return r } var s = r.children && r.children.length > 0; if (s) { var o = y(r.children, t); if (o) { return o } } } return null } function b(e, t) { var n = 0; if (!e || !e.children || e.children.length == 0) { return false } for (n = 0; n < e.children.length; n++) { var r = e.children[n]; var i = r.text; if (r.id == t) { return true } var s = r.children && r.children.length > 0; if (s) { var o = b(r, t); if (o) { return o } } } return false } function w(e, t) { var n = 0; for (n = 0; n < e.length; n++) { var r = e[n]; var i = r.text; if (r.id == t) { e.splice(n, 1); return } var s = r.children && r.children.length > 0; if (s) { w(r.children, t) } } } function E(e, t, n) { var r = 0; for (r = 0; r < e.length; r++) { var i = e[r]; var s = i.text; if (i.id == t) { i.isExpanded = n == "open"; return } var o = i.children && i.children.length > 0; if (o) { E(i.children, t, n) } } } function S(t) { var n = 0; for (n = 0; n < t.length; n++) { var r = t[n]; r.isActive = false; e("#" + r.id).removeClass("easytree-active"); var i = r.children && r.children.length > 0; if (i) { S(r.children) } } } function x(t) { var n = 0; for (n = 0; n < t.length; n++) { var r = t[n]; e("#" + r.id).removeClass("easytree-drag-source"); var i = r.children && r.children.length > 0; if (i) { x(r.children) } } } function T(e) { var t = 0; e = e.sort(function (e, t) { var n = e.text.toLowerCase(); var i = t.text.toLowerCase(); if (!n) { n = "a" } if (!i) { i = "a" } if (r.ordering.toLowerCase().indexOf("folder") > -1 && e.isFolder) { n = "______" + n } if (r.ordering.toLowerCase().indexOf("folder") > -1 && t.isFolder) { i = "______" + i } var s = r.ordering.indexOf(" DESC") == -1 ? 1 : -1; if (n < i) { return -1 * s } if (n > i) { return 1 * s } return 0 }); for (t = 0; t < e.length; t++) { var n = e[t]; var i = n.children && n.children.length > 0; if (i) { T(n.children) } } return e } function N(e, t, n) { var r = 0; if (!t) { t = 0; n = "_st_node_" + n + "_" } for (r = 0; r < e.length; r++) { var i = e[r]; if (!i.id) { i.id = n + r.toString() } var s = i.children && i.children.length > 0; if (s) { N(i.children, t + 1, n + r + "_") } } } function C(t) { if (!t) { return } var n = new Date; if (r.building) { var o = r.building(t); if (o === false) { return false } } var f = new Date; if (r.ordering) { t = T(t) } var l = new Date; var d = Math.floor(Math.random() * 1e4); N(t, 0, d); var v = new Date; s = t; var m = k(t, 0, true); var g = new Date; i[0].innerHTML = m; var y = new Date; e(i.selector + " .easytree-node").on("click", t, u); e(i.selector + " .easytree-expander").on("click", t, a); e(i.selector + " .easytree-icon").on("dblclick", t, a); e(i.selector + " .easytree-title").on("dblclick", t, a); var b = new Date; if (r.enableDnd) { e(document).on("mousedown", c); e(document).on("mousemove", h); e(document).on("mouseup", p) } var w = new Date; if (r.built) { r.built(t) } var E = new Date; if (r.stateChanged) { var S = B(t); r.stateChanged(t, S) } var x = new Date; var C = f - n; var L = l - f; var A = v - l; var O = g - v; var M = y - g; var _ = b - y; var D = w - b; var P = E - w; var H = x - E; var j = x - n } function k(e, t, n) { var i = ""; var s = 0; var o = ""; if (t == 0) { o += "ui-easytree easytree-container easytree-focused" } var u = t < r.minOpenLevels; var a = t == 0 || n || u ? "" : " style='display:none' "; i += ''; for (s = 0; s < e.length; s++) { var f = e[s]; if (u === true) { f.isExpanded = true } var l = s == e.length - 1; var c = L(f, l); i += "- "; i += ''; i += u ? "" : ''; i += O(f); i += M(f); i += ""; if (f.children && f.children.length > 0) { i += k(f.children, t + 1, f.isExpanded) } i += "
" } i += "
"; return i } function L(e, t) { var n = e.children && e.children.length > 0; var i = "easytree-node "; if (r.enableDnd) { i += " easytree-draggable " } if (e.liClass) { i += e.liClass } if (e.isFolder && r.enableDnd) { i += " easytree-droppable easytree-accept " } else if (r.enableDnd) { i += " easytree-droppable easytree-reject " } if (e.isActive && r.allowActivate) { i += " easytree-active " } i += A(e, t); var s = e.isExpanded ? "e" : "c"; if (e.isFolder) { s += "f" } i += " easytree-ico-" + s; return i } function A(e, t) { var n = e.children && e.children.length > 0; var r = ""; if (!n && e.isLazy) { r = "c" } else if (!n) { r = "n" } else if (e.isExpanded) { r = "e" } else { r = "c" } if (t) { r += "l" } return " easytree-exp-" + r } function O(e) { var t = ""; if (r.disableIcons) { return t } if (e.uiIcon) { return '' } if (e.iconUrl) { return '
' } return '' } function M(e) { var t = ""; var n = e.tooltip ? 'title="' + e.tooltip + '"' : ""; var r = "easytree-title"; if (e.textCss) { r += " " + e.textCss } t += "'; if (e.href) { t += '" } t += e.text; if (e.href) { t += "" } t += ""; return t } function _(t, n) { if (!t) { return } var i = e("#" + t.id).attr("class"); var s = i.indexOf("easytree-exp-"); if (s > -1) { var o = i.indexOf(" ", s); var u = o > -1 ? i.substring(s, o) : i.substring(s); e("#" + t.id).removeClass(u); e("#" + t.id).addClass(A(t, false)) } var a = e("#" + t.id).parents("li").first(); var f = a.children("ul").first(); var l = parseInt(r.slidingTime, 10); if (n == "close") { f.slideUp(l) } else { f.slideDown(l) } } function D() { e("#easytree-reject").hide(); e("#easytree-accept").hide() } function P() { e("#easytree-accept").show(); e("#easytree-reject").hide() } function H() { e("#easytree-reject").show(); e("#easytree-accept").hide() } function B(e) { var t = JSON.stringify ? JSON.stringify(e) : "Please import json2.js"; while (t.indexOf(',"children":[]') > -1) { t = t.replace(',"children":[]', "") } while (t.indexOf('"liClass":"",') > -1) { t = t.replace('"liClass":"",', "") } while (t.indexOf('"textCss":"",') > -1) { t = t.replace('"textCss":"",', "") } while (t.indexOf('"isExpanded":false,') > -1) { t = t.replace('"isExpanded":false,', "") } while (t.indexOf('"isActive":false,') > -1) { t = t.replace('"isActive":false,', "") } while (t.indexOf('"isFolder":false,') > -1) { t = t.replace('"isFolder":false,', "") } while (t.indexOf('"isLazy":false,') > -1) { t = t.replace('"isLazy":false,', "") } return t } function j() { F(); m(o); e(document).on("mousemove", function (e) { var t = e.pageY; var n = e.pageX; document.getElementById("easytree-reject").style.top = t + 10 + "px"; document.getElementById("easytree-reject").style.left = n + 17 + "px"; document.getElementById("easytree-accept").style.top = t + 10 + "px"; document.getElementById("easytree-accept").style.left = n + 17 + "px" }) } function F() { if (!e("#easytree-reject").length) { var t = ''; t += ''; t += "
"; e("body").append(t) } if (!e("#easytree-accept").length) { var n = ''; n += ''; n += "
"; e("body").append(n) } } function I(t, n, r) { e.ajax({ url: t, type: n == null ? "GET" : "POST", contentType: "application/json; charset=utf-8", data: n, success: r, error: function (e, t, n) { if (e.responseText != "") { alert("Error: " + e.responseText) } } }) } function q(t) { var n = null; if (typeof t == "object") { n = t } else if (typeof t == "string") { t = e.trim(t); if (t.indexOf("[") == 0 || t.indexOf("{") == 0) { n = e.parseJSON(t) } else { n = R(t) } } return n } function R(t) { var n = 0; var r = e(t); var i = []; var s = r.children().each(function (e) { i.push(U(this)) }); return i } function U(t) { var n = e(t); var r = {}; var i = n.data(); r.isActive = n.hasClass("isActive"); n.removeClass("isActive"); r.isFolder = n.hasClass("isFolder"); n.removeClass("isFolder"); r.isExpanded = n.hasClass("isExpanded"); n.removeClass("isExpanded"); r.isLazy = n.hasClass("isLazy"); n.removeClass("isLazy"); r.uiIcon = i.uiicon; r.liClass = n.attr("class"); r.id = n.attr("id"); var s = n.children("a"); if (s) { r.href = s.attr("href"); r.hrefTarget = s.attr("target") } var o = n.children("img"); if (o) { r.iconUrl = o.attr("src") } r.textCss = ""; var u = n.children("span"); if (u && u.attr("class")) { r.textCss += u.attr("class") + " " } u = s.children("span"); if (u && u.attr("class")) { r.textCss += u.attr("class") + " " } u = o.children("span"); if (u && u.attr("class")) { r.textCss += u.attr("class") + " " } r.text = z(n[0]); r.tooltip = n.attr("title"); r.children = []; var a = n.children("ul").children("li").each(function (e) { r.children.push(U(this)) }); return r } function z(t) { var n = 0; for (n = 0; n < t.childNodes.length; n++) { var r = t.childNodes[n]; while (r) { if (r.nodeType == 3 && e.trim(r.nodeValue).length > 0) { return e.trim(r.nodeValue) } r = r.firstChild } } return "" } function W(e) { if (!e) { e = "null" } console.log(e) } var r = { allowActivate: true, data: null, dataUrl: null, dataUrlJson: null, disableIcons: false, enableDnd: false, ordering: null, slidingTime: 100, minOpenLevels: 0, building: null, built: null, toggling: null, toggled: null, opening: null, opened: null, openLazyNode: null, closing: null, closed: null, canDrop: null, dropping: null, dropped: null, stateChanged: null }; var i; var s = null; var o = new Object; this.init = function (t, n) { r = e.extend(r, n); j(); i = t; var s = ""; if (r.dataUrl) { I(r.dataUrl, r.dataUrlJson, function (e) { s = q(e); if (!s) { alert("EasyTree: Invalid data!"); return this } C(s); return this }) } else if (r.data) { s = q(r.data); if (!s) { alert("EasyTree: Invalid data!"); return this } C(s) } else { s = q(i.html()); if (!s) { alert("EasyTree: Invalid data!"); return this } C(s) } return this }; this.options = r; this.rebuildTree = function (e) { var t = e ? q(e) : s; if (!t) { alert("EasyTree: Invalid data!") } C(t) }; this.getAllNodes = function () { return s }; this.getNode = function (e) { return y(s, e) }; this.addNode = function (e, t) { if (!t) { s.push(e); return } var n = y(s, t); if (!e) { return } if (!n.children) { n.children = [] } n.children.push(e) }; this.removeNode = function (e) { w(s, e) }; this.activateNode = function (t) { S(s); if (!r.allowActivate) { return } var n = y(s, t); if (!n) { return } n.isActive = true; e("#" + n.id).addClass("easytree-active") }; this.toggleNode = function (e) { var t = y(s, e); if (!t) { return } f(event, s, t) }; this.init(t, n) } })(jQuery)
\ No newline at end of file