author | Julien Cristau <julien.cristau@logilab.fr> |
Wed, 22 Oct 2014 14:39:51 +0200 | |
changeset 10098 | e8889211f256 |
parent 10097 | e62d2c73784f |
permissions | -rw-r--r-- |
0 | 1 |
/* |
2 |
* Treeview 1.4 - jQuery plugin to hide and show branches of a tree |
|
3075
e9b7cd2e9012
allow treeview to work correctly in a tab #345293
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
0
diff
changeset
|
3 |
* |
0 | 4 |
* http://bassistance.de/jquery-plugins/jquery-plugin-treeview/ |
5 |
* http://docs.jquery.com/Plugins/Treeview |
|
6 |
* |
|
7 |
* Copyright (c) 2007 Jörn Zaefferer |
|
8 |
* |
|
9 |
* Dual licensed under the MIT and GPL licenses: |
|
10 |
* http://www.opensource.org/licenses/mit-license.php |
|
11 |
* http://www.gnu.org/licenses/gpl.html |
|
12 |
* |
|
5767
1d811df051c2
[packaging] MANIFEST.in cleanups, update js/css copyright, remove no more used files
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
3075
diff
changeset
|
13 |
* Revision: $Id: jquery.treeview.js 4684 2010-02-07 19:08:06Z joern.zaefferer $ |
1d811df051c2
[packaging] MANIFEST.in cleanups, update js/css copyright, remove no more used files
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
3075
diff
changeset
|
14 |
* updated by Aurelien Campeas, 2010-09-01, to handle top-level ajax loads |
0 | 15 |
* |
10097
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
16 |
*/ |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
17 |
(function($) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
18 |
$.extend($.fn, { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
19 |
swapClass: function(c1, c2) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
20 |
var c1Elements = this.filter("." + c1); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
21 |
this.filter("." + c2).removeClass(c2).addClass(c1); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
22 |
c1Elements.removeClass(c1).addClass(c2); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
23 |
return this; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
24 |
}, |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
25 |
replaceClass: function(c1, c2) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
26 |
return this.filter("." + c1).removeClass(c1).addClass(c2).end(); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
27 |
}, |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
28 |
hoverClass: function(className) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
29 |
className = className || "hover"; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
30 |
return this.hover(function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
31 |
$(this).addClass(className); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
32 |
}, function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
33 |
$(this).removeClass(className); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
34 |
}); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
35 |
}, |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
36 |
heightToggle: function(animated, callback) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
37 |
animated ? this.animate({ |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
38 |
height: "toggle" |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
39 |
}, animated, callback) : this.each(function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
40 |
jQuery(this)[jQuery(this).is(":hidden") ? "show" : "hide"](); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
41 |
if (callback) callback.apply(this, arguments); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
42 |
}); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
43 |
}, |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
44 |
heightHide: function(animated, callback) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
45 |
if (animated) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
46 |
this.animate({ |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
47 |
height: "hide" |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
48 |
}, animated, callback); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
49 |
} else { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
50 |
this.hide(); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
51 |
if (callback) this.each(callback); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
52 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
53 |
}, |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
54 |
prepareBranches: function(settings) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
55 |
if (!settings.prerendered) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
56 |
this.filter(":last-child:not(ul)").addClass(CLASSES.last); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
57 |
this.filter((settings.collapsed ? "" : "." + CLASSES.closed) + ":not(." + CLASSES.open + ")").find(">ul").hide(); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
58 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
59 |
return this.filter(":has(>ul)"); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
60 |
}, |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
61 |
applyClasses: function(settings, toggler) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
62 |
this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
63 |
toggler.apply($(this).next()); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
64 |
}).add($("a", this)).hoverClass(); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
65 |
if (!settings.prerendered) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
66 |
this.filter(":has(>ul:hidden)").addClass(CLASSES.expandable).replaceClass(CLASSES.last, CLASSES.lastExpandable); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
67 |
this.not(":has(>ul:hidden)").addClass(CLASSES.collapsable).replaceClass(CLASSES.last, CLASSES.lastCollapsable); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
68 |
this.prepend('<div class="' + CLASSES.hitarea + '"/>').find("div." + CLASSES.hitarea).each(function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
69 |
var classes = ""; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
70 |
$.each($(this).parent().attr("class").split(" "), function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
71 |
classes += this + "-hitarea "; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
72 |
}); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
73 |
$(this).addClass(classes); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
74 |
}); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
75 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
76 |
this.find("div." + CLASSES.hitarea).click(toggler); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
77 |
}, |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
78 |
treeview: function(settings) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
79 |
settings = $.extend({ |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
80 |
cookieId: "treeview" |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
81 |
}, settings); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
82 |
if (settings.add) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
83 |
return this.trigger("add", [ settings.add ]); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
84 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
85 |
if (settings.toggle) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
86 |
var callback = settings.toggle; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
87 |
settings.toggle = function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
88 |
return callback.apply($(this).parent()[0], arguments); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
89 |
}; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
90 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
91 |
function treeController(tree, control) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
92 |
function handler(filter) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
93 |
return function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
94 |
toggler.apply($("div." + CLASSES.hitarea, tree).filter(function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
95 |
return filter ? $(this).parent("." + filter).length : true; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
96 |
})); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
97 |
return false; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
98 |
}; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
99 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
100 |
$("a:eq(0)", control).click(handler(CLASSES.collapsable)); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
101 |
$("a:eq(1)", control).click(handler(CLASSES.expandable)); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
102 |
$("a:eq(2)", control).click(handler()); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
103 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
104 |
function toggler() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
105 |
$(this).parent().find(">.hitarea").swapClass(CLASSES.collapsableHitarea, CLASSES.expandableHitarea).swapClass(CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea).end().swapClass(CLASSES.collapsable, CLASSES.expandable).swapClass(CLASSES.lastCollapsable, CLASSES.lastExpandable).find(">ul").heightToggle(settings.animated, settings.toggle); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
106 |
if (settings.unique) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
107 |
$(this).parent().siblings().find(">.hitarea").replaceClass(CLASSES.collapsableHitarea, CLASSES.expandableHitarea).replaceClass(CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea).end().replaceClass(CLASSES.collapsable, CLASSES.expandable).replaceClass(CLASSES.lastCollapsable, CLASSES.lastExpandable).find(">ul").heightHide(settings.animated, settings.toggle); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
108 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
109 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
110 |
function serialize() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
111 |
function binary(arg) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
112 |
return arg ? 1 : 0; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
113 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
114 |
var data = []; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
115 |
branches.each(function(i, e) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
116 |
data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
117 |
}); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
118 |
$.cookie(settings.cookieId, data.join("")); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
119 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
120 |
function deserialize() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
121 |
var stored = $.cookie(settings.cookieId); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
122 |
if (stored) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
123 |
var data = stored.split(""); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
124 |
branches.each(function(i, e) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
125 |
$(e).find(">ul")[parseInt(data[i]) ? "show" : "hide"](); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
126 |
}); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
127 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
128 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
129 |
this.addClass("treeview"); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
130 |
var branches = this.find("li").prepareBranches(settings); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
131 |
switch (settings.persist) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
132 |
case "cookie": |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
133 |
var toggleCallback = settings.toggle; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
134 |
settings.toggle = function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
135 |
serialize(); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
136 |
if (toggleCallback) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
137 |
toggleCallback.apply(this, arguments); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
138 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
139 |
}; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
140 |
deserialize(); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
141 |
break; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
142 |
|
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
143 |
case "location": |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
144 |
var current = this.find("a").filter(function() { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
145 |
return this.href.toLowerCase() == location.href.toLowerCase(); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
146 |
}); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
147 |
if (current.length) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
148 |
current.addClass("selected").parents("ul, li").add(current.next()).show(); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
149 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
150 |
break; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
151 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
152 |
branches.applyClasses(settings, toggler); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
153 |
if (settings.control) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
154 |
treeController(this, settings.control); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
155 |
$(settings.control).show(); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
156 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
157 |
return this.bind("add", function(event, branches) { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
158 |
$(branches).prev().removeClass(CLASSES.last).removeClass(CLASSES.lastCollapsable).removeClass(CLASSES.lastExpandable).find(">.hitarea").removeClass(CLASSES.lastCollapsableHitarea).removeClass(CLASSES.lastExpandableHitarea); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
159 |
$(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings, toggler); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
160 |
}); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
161 |
} |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
162 |
}); |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
163 |
var CLASSES = $.fn.treeview.classes = { |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
164 |
open: "open", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
165 |
closed: "closed", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
166 |
expandable: "expandable", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
167 |
expandableHitarea: "expandable-hitarea", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
168 |
lastExpandableHitarea: "lastExpandable-hitarea", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
169 |
collapsable: "collapsable", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
170 |
collapsableHitarea: "collapsable-hitarea", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
171 |
lastCollapsableHitarea: "lastCollapsable-hitarea", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
172 |
lastCollapsable: "lastCollapsable", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
173 |
lastExpandable: "lastExpandable", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
174 |
last: "last", |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
175 |
hitarea: "hitarea" |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
176 |
}; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
177 |
$.fn.Treeview = $.fn.treeview; |
e62d2c73784f
[web] Beautify jquery.treeview.js
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5767
diff
changeset
|
178 |
})(jQuery); |