1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 | /* Selectively expands and collapses installed Django apps in the main Django
* Admin page. If jquery.cookie.js [1] is available, it will remember which apps you
* have expanded.
*
* .. [1] http://dev.jquery.com/browser/trunk/plugins/cookie/jquery.cookie.js
*/
$(document).ready(function() {
var cookie_name = "admin_expanded";
var delim = "|";
var admin_expanded = [];
var base_selector = $("body.dashboard #content-main .module caption");
// if the cookie plugin is available
if ($.isFunction($.cookie)) {
// put any expanded modules in the expanded list
$.each(($.cookie(cookie_name) || "").split(delim), function(index, obj) {
if (obj) { admin_expanded.push(base_selector.filter("caption:contains('"+obj+"')")[0]); }
});
}
// minor usability fix
base_selector.css("width", "100%").css("cursor", "pointer");
// collapse all modules that aren't remembered in the cookie
base_selector.not(admin_expanded).siblings('tbody').hide();
// toggle on click
base_selector.click(function(){
$(this).siblings('tbody').animate({opacity: 'toggle'}, "slow", null, function(){
// if the cookie plugin is available
if ($.isFunction($.cookie)) {
// set or remove this module in the cookie
t = $(this).siblings('caption').text();
j = ($.cookie(cookie_name) || "").split(delim);
if (j.indexOf(t) != -1) {
j.splice(j.indexOf(t), 1);
} else {
j.push(t);
}
$.cookie(cookie_name, j.join("|"));
}
});
});
});
|
Comments
Incidentally, this probably won't scale nearly as well as snippet 550 (it might not scale at all, even).
#
If you're already loading the regular admin media, the latest jQuery will already be there. This doesn't quite work as expected in IE but it's passable.
#