| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- (function ($) {
- $.extend($.tree.plugins, {
- "checkbox": {
- defaults: {
- three_state: true
- },
- get_checked: function (t) {
- if (!t) t = $.tree.focused();
- return t.container.find("a.checked,a.undetermined").parent();
- },
- get_undeterminded: function (t) {
- if (!t) t = $.tree.focused();
- return t.container.find("a.undetermined").parent();
- },
- get_unchecked: function (t) {
- if (!t) t = $.tree.focused();
- return t.container.find("a:not(.checked, .undetermined)").parent();
- },
- check: function (n) {
- if (!n) return false;
- var t = $.tree.reference(n);
- if (t == null) return;
- n = t.get_node(n);
- if (n.children("a").hasClass("checked")) return true;
-
- var opts = $.extend(true, {}, $.tree.plugins.checkbox.defaults, t.settings.plugins.checkbox);
- if (opts.three_state) {
- n.find("li").andSelf().children("a").removeClass("unchecked undetermined").addClass("checked");
- n.parents("li").each(function () {
- if ($(this).children("ul").find("a:not(.checked):eq(0)").size() > 0) {
- $(this).parents("li").andSelf().children("a").removeClass("unchecked checked").addClass("undetermined");
- return false;
- }
- else $(this).children("a").removeClass("unchecked undetermined").addClass("checked");
- });
- }
- else n.children("a").removeClass("unchecked").addClass("checked");
- return true;
- },
- uncheck: function (n) {
- if (!n) return false;
- var t = $.tree.reference(n);
- if (t == null) return;
- n = t.get_node(n);
- if (n.children("a").hasClass("unchecked")) return true;
- var opts = $.extend(true, {}, $.tree.plugins.checkbox.defaults, t.settings.plugins.checkbox);
- if (opts.three_state) {
- n.find("li").andSelf().children("a").removeClass("checked undetermined").addClass("unchecked");
- n.parents("li").each(function () {
- if ($(this).find("a.checked, a.undetermined").size() - 1 > 0) {
- $(this).parents("li").andSelf().children("a").removeClass("unchecked checked").addClass("undetermined");
- return false;
- }
- else $(this).children("a").removeClass("checked undetermined").addClass("unchecked");
- });
- }
- else n.children("a").removeClass("checked").addClass("unchecked");
- return true;
- },
- toggle: function (n) {
- if (!n) return false;
- var t = $.tree.reference(n);
- n = t.get_node(n);
- if (n.children("a").hasClass("checked")) $.tree.plugins.checkbox.uncheck(n);
- else $.tree.plugins.checkbox.check(n);
- },
- callbacks: {
- onchange: function (n, t) {
- $.tree.plugins.checkbox.toggle(n);
- }
- }
- }
- });
- })(jQuery);
|