fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [12444]


From: Nelson Guerra
Subject: [Fmsystem-commits] [12444]
Date: Wed, 10 Dec 2014 23:24:27 +0000

Revision: 12444
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=12444
Author:   nelson224
Date:     2014-12-10 23:24:27 +0000 (Wed, 10 Dec 2014)
Log Message:
-----------


Added Paths:
-----------
    branches/dev-syncromind/phpgwapi/js/jquery/treeview/jquery.treeview.async.js

Added: 
branches/dev-syncromind/phpgwapi/js/jquery/treeview/jquery.treeview.async.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/jquery/treeview/jquery.treeview.async.js    
                            (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/jquery/treeview/jquery.treeview.async.js    
    2014-12-10 23:24:27 UTC (rev 12444)
@@ -0,0 +1,110 @@
+/*
+ * 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 || 
"").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: "&nbsp;",
+                                       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: "&nbsp;",
+                                               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);
\ No newline at end of file




reply via email to

[Prev in Thread] Current Thread [Next in Thread]