1 line
2.0 KiB
JavaScript
1 line
2.0 KiB
JavaScript
!function(e){function t(t){var a=e(this),n=a.is(":checked");c.log(a),c.log("Checked ",n),n||(c.log("Uncheck all childs"),a.parent().find("input.tw-control").prop("checked",!1)),n&&(c.log("Check my parents tree"),a.parents("li").find(">input.tw-control").prop("checked",!0)),l(a),o.trigger("treeview.change",a,o)}function l(t){c.log("Toggle collapse");var l=e('input[type="checkbox"]:checked');l.is(":checked")&&(c.log("Open checked branchs"),l.parent().find(">ul.collapse").collapse("show").parent().find(">i.fa-li").removeClass(n.css.collapsed).addClass(n.css.expanded)),t.is(":checked")||(c.log("Hide branch"),t.parent().find("ul.collapse").collapse("hide").parent().find("i.fa-li").removeClass(n.css.expanded).addClass(n.css.collapsed))}function a(){c.log("Initializing plugin"),o.on("change","input.tw-control",t),c.log("Collapsing tree"),o.find(">ul").addClass(n.css.list).find("ul").addClass("collapse "+n.css.list).parent().prepend(e("<i></i>").addClass(n.css.listItem+" "+n.css.collapsed)),n.autoExpand&&o.find("ul.collapse").collapse("show"),c.log("Adding checkbox"),o.find("li").each(function(t,l){var a=e(l),n=e("<input/>").prop("type","checkbox").prop("class","tw-control").prop("value",a.attr("data-value"));c.log("Checking if the element is selected");var s=a.attr("data-checked");a.prepend(n),s&&(c.log("Toggle checkbox"),n.prop("checked",!0),n.trigger("change"))})}var n,c,s={name:"TreeView",version:"1.0.0"},i={debug:!1,autoExpand:!1,css:{list:"fa-ul",listItem:"fa-li fa",collapsed:"fa-caret-right",expanded:"fa-caret-down"}},o=null,r={init:function(t){return o=this,n=e.extend(i,t),c=e.Logger(n.debug,s),a(),this},selectedValues:function(){c.log("Getting selected values");var t=o.find('input[type="checkbox"]:checked'),l=[];return t.each(function(t,a){var a=e(a);"undefined"!=typeof a.parent().attr("data-value")&&l.push(a.attr("value"))}),l}};e.fn.treeview=function(t){return r[t]?r[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist on jQuery.treeview"):r.init.apply(this,arguments)}}(jQuery); |