| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | 
							- /*
 
-  * Async Treeview 0.1 - Lazy-loading extension for Treeview
 
-  * 
 
-  * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
 
-  *
 
-  * Copyright (c) 2007 J枚rn Zaefferer
 
-  *
 
-  * Dual licensed under the MIT and GPL licenses:
 
-  *   http://www.opensource.org/licenses/mit-license.php
 
-  *   http://www.gnu.org/licenses/gpl.html
 
-  *
 
-  * Revision: $Id$
 
-  *
 
-  */
 
- ;(function($) {
 
- function load(settings, root, child, container) {
 
- 	function createNode(parent) {
 
- 		var current = $("<li/>").attr("id", this.id || "").attr("class", this.liclass || "").html("<span>" + this.text + "</span>").appendTo(parent);
 
- 		if (this.classes) {
 
- 			current.children("span").addClass(this.classes);
 
- 		}
 
- 		if (this.expanded) {
 
- 			current.addClass("open");
 
- 		}
 
- 		if (this.hasChildren || this.children && this.children.length) {
 
- 			var branch = $("<ul/>").appendTo(current);
 
- 			if (this.hasChildren) {
 
- 				current.addClass("hasChildren");
 
- 				createNode.call({
 
- 					classes: "placeholder",
 
- 					text: " ",
 
- 					children:[]
 
- 				}, branch);
 
- 			}
 
- 			if (this.children && this.children.length) {
 
- 				$.each(this.children, createNode, [branch])
 
- 			}
 
- 		}
 
- 	}
 
- 	$.ajax($.extend(true, {
 
- 		url: settings.url,
 
- 		dataType: "json",
 
- 		data: {
 
- 			root: root
 
- 		},
 
- 		success: function(response) {
 
- 			child.empty();
 
- 			$.each(response, createNode, [child]);
 
- 	        $(container).treeview({add: child});
 
- 	    }
 
- 	}, settings.ajax));
 
- 	/*
 
- 	$.getJSON(settings.url, {root: root}, function(response) {
 
- 		function createNode(parent) {
 
- 			var current = $("<li/>").attr("id", this.id || "").html("<span>" + this.text + "</span>").appendTo(parent);
 
- 			if (this.classes) {
 
- 				current.children("span").addClass(this.classes);
 
- 			}
 
- 			if (this.expanded) {
 
- 				current.addClass("open");
 
- 			}
 
- 			if (this.hasChildren || this.children && this.children.length) {
 
- 				var branch = $("<ul/>").appendTo(current);
 
- 				if (this.hasChildren) {
 
- 					current.addClass("hasChildren");
 
- 					createNode.call({
 
- 						classes: "placeholder",
 
- 						text: " ",
 
- 						children:[]
 
- 					}, branch);
 
- 				}
 
- 				if (this.children && this.children.length) {
 
- 					$.each(this.children, createNode, [branch])
 
- 				}
 
- 			}
 
- 		}
 
- 		child.empty();
 
- 		$.each(response, createNode, [child]);
 
-         $(container).treeview({add: child});
 
-     });
 
-     */
 
- }
 
- var proxied = $.fn.treeview;
 
- $.fn.treeview = function(settings) {
 
- 	if (!settings.url) {
 
- 		return proxied.apply(this, arguments);
 
- 	}
 
- 	var container = this;
 
- 	if (!container.children().size())
 
- 		load(settings, "source", this, container);
 
- 	var userToggle = settings.toggle;
 
- 	return proxied.call(this, $.extend({}, settings, {
 
- 		collapsed: true,
 
- 		toggle: function() {
 
- 			var $this = $(this);
 
- 			if ($this.hasClass("hasChildren")) {
 
- 				var childList = $this.removeClass("hasChildren").find("ul");
 
- 				load(settings, this.id, childList, container);
 
- 			}
 
- 			if (userToggle) {
 
- 				userToggle.apply(this, arguments);
 
- 			}
 
- 		}
 
- 	}));
 
- };
 
- })(jQuery);
 
 
  |