web/data/jquery-treeview/jquery.treeview.edit.js
changeset 10100 6718c03f8938
equal deleted inserted replaced
10099:12f4f2509a38 10100:6718c03f8938
       
     1 (function($) {
       
     2 	var CLASSES = $.treeview.classes;
       
     3 	var proxied = $.fn.treeview;
       
     4 	$.fn.treeview = function(settings) {
       
     5 		settings = $.extend({}, settings);
       
     6 		if (settings.add) {
       
     7 			return this.trigger("add", [settings.add]);
       
     8 		}
       
     9 		if (settings.remove) {
       
    10 			return this.trigger("remove", [settings.remove]);
       
    11 		}
       
    12 		return proxied.apply(this, arguments).bind("add", function(event, branches) {
       
    13 			$(branches).prev()
       
    14 				.removeClass(CLASSES.last)
       
    15 				.removeClass(CLASSES.lastCollapsable)
       
    16 				.removeClass(CLASSES.lastExpandable)
       
    17 			.find(">.hitarea")
       
    18 				.removeClass(CLASSES.lastCollapsableHitarea)
       
    19 				.removeClass(CLASSES.lastExpandableHitarea);
       
    20 			$(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings, $(this).data("toggler"));
       
    21 		}).bind("remove", function(event, branches) {
       
    22 			var prev = $(branches).prev();
       
    23 			var parent = $(branches).parent();
       
    24 			$(branches).remove();
       
    25 			prev.filter(":last-child").addClass(CLASSES.last)
       
    26 				.filter("." + CLASSES.expandable).replaceClass(CLASSES.last, CLASSES.lastExpandable).end()
       
    27 				.find(">.hitarea").replaceClass(CLASSES.expandableHitarea, CLASSES.lastExpandableHitarea).end()
       
    28 				.filter("." + CLASSES.collapsable).replaceClass(CLASSES.last, CLASSES.lastCollapsable).end()
       
    29 				.find(">.hitarea").replaceClass(CLASSES.collapsableHitarea, CLASSES.lastCollapsableHitarea);
       
    30 			if (parent.is(":not(:has(>))") && parent[0] != this) {
       
    31 				parent.parent().removeClass(CLASSES.collapsable).removeClass(CLASSES.expandable)
       
    32 				parent.siblings(".hitarea").andSelf().remove();
       
    33 			}
       
    34 		});
       
    35 	};
       
    36 
       
    37 })(jQuery);