| /* https://github.com/jzaefferer/jquery-treeview/blob/master/jquery.treeview.edit.js */ |
| /* License: MIT. */ |
| (function($) { |
| var CLASSES = $.treeview.classes; |
| var proxied = $.fn.treeview; |
| $.fn.treeview = function(settings) { |
| settings = $.extend({}, settings); |
| if (settings.add) { |
| return this.trigger("add", [settings.add]); |
| } |
| if (settings.remove) { |
| return this.trigger("remove", [settings.remove]); |
| } |
| return proxied.apply(this, arguments).bind("add", function(event, branches) { |
| $(branches).prev() |
| .removeClass(CLASSES.last) |
| .removeClass(CLASSES.lastCollapsable) |
| .removeClass(CLASSES.lastExpandable) |
| .find(">.hitarea") |
| .removeClass(CLASSES.lastCollapsableHitarea) |
| .removeClass(CLASSES.lastExpandableHitarea); |
| $(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings, $(this).data("toggler")); |
| }).bind("remove", function(event, branches) { |
| var prev = $(branches).prev(); |
| var parent = $(branches).parent(); |
| $(branches).remove(); |
| prev.filter(":last-child").addClass(CLASSES.last) |
| .filter("." + CLASSES.expandable).replaceClass(CLASSES.last, CLASSES.lastExpandable).end() |
| .find(">.hitarea").replaceClass(CLASSES.expandableHitarea, CLASSES.lastExpandableHitarea).end() |
| .filter("." + CLASSES.collapsable).replaceClass(CLASSES.last, CLASSES.lastCollapsable).end() |
| .find(">.hitarea").replaceClass(CLASSES.collapsableHitarea, CLASSES.lastCollapsableHitarea); |
| if (parent.is(":not(:has(>))") && parent[0] != this) { |
| parent.parent().removeClass(CLASSES.collapsable).removeClass(CLASSES.expandable) |
| parent.siblings(".hitarea").andSelf().remove(); |
| } |
| }); |
| }; |
| |
| })(jQuery); |