mirror of
https://github.com/moodle/moodle.git
synced 2025-07-18 21:01:27 +02:00
1 line
1.4 KiB
JavaScript
1 line
1.4 KiB
JavaScript
define(["jquery","core/pubsub"],function(a,b){var c=!1,d={checkboxToggled:"core/checkbox-toggleall:checkboxToggled"},e=function(a,b){return a.find('[data-action="toggle"][data-togglegroup="'+b+'"]')},f=function(a,b){return e(a,b).filter('[data-toggle="slave"]')},g=function(a,b){return e(a,b).filter('[data-toggle="master"]')},h=function(a,b){return e(a,b).filter('[data-toggle="action"]')},i=function(c){var e=c.data.root,g=a(c.target),h=g.data("togglegroup"),i=g.is(":checked"),j=f(e,h),m=j.filter(":checked");l(e,h,i),j.prop("checked",i),k(e,h,!i),b.publish(d.checkboxToggled,{root:e,toggleGroupName:h,slaves:j,checkedSlaves:m,anyChecked:i})},j=function(c){var e=c.data.root,g=a(c.target),h=g.data("togglegroup"),i=f(e,h),j=i.filter(":checked"),m=i.length===j.length;l(e,h,m),k(e,h,!j.length),b.publish(d.checkboxToggled,{root:e,toggleGroupName:h,slaves:i,checkedSlaves:j,anyChecked:!!j.length})},k=function(a,b,c){h(a,b).prop("disabled",c)},l=function(b,c,d){var e=g(b,c);e.prop("checked",d),e.each(function(c,e){e=a(e);var f,g=b.find('[for="'+e.attr("id")+'"]');g.length&&(f=d?e.data("toggle-deselectall"):e.data("toggle-selectall"),g.html()!==f&&g.html(f))})},m=function(){if(!c){c=!0;var b=a(document.body);b.on("change",'[data-action="toggle"][data-toggle="master"]',{root:b},i),b.on("change",'[data-action="toggle"][data-toggle="slave"]',{root:b},j)}};return{init:function(){m()},events:d}}); |