phpMv -UI toolkit 2.4.12
jQuery, jQuery UI, Twitter Bootstrap and Semantic-UI library for php & php MVC Frameworks
Loading...
Searching...
No Matches
tplCheckedList.php
Go to the documentation of this file.
1<?php
2return '
3var deferredEach=function (arr, batchSize) {
4var deferred = $.Deferred();var index = 0;
5function chunk () {var lastIndex = Math.min(index + batchSize, arr.length);
6 for(;index<lastIndex;index++){deferred.notify(index, arr[index]);}
7 if (index >= arr.length) {deferred.resolve();} else {setTimeout(chunk, 0);}
8};
9setTimeout(chunk, 0);return deferred.promise();
10};
11$("%identifier% .master")
12 .checkbox({
13 onChecked: function() {if($(this).closest(".loading").length==0 && !$(this).hasClass("_notAllChecked")){$(this).closest(".checkbox").siblings(".list").find(".checkbox").checkbox("check");}},
14 onUnchecked: function() {if($(this).closest(".loading").length==0){$(this).closest(".checkbox").siblings(".list").find(".checkbox").checkbox("uncheck");}}
15 })
16;
17$("%identifier% .list .child.checkbox")
18 .checkbox({
19 fireOnInit : %fireOnInit%,
20 onChange : function() {
21 var $listGroup = $(this).closest(".list"),
22 $parentCheckbox = $listGroup.closest(".item").children(".checkbox"),
23 $checkbox = $listGroup.find(".checkbox"),
24 allChecked = true,
25 allUnchecked = true;
26 $listGroup.closest(".segment").addClass("loading");
27 deferredEach($checkbox,5).progress(function(index, item){
28 if( $(item).checkbox("is checked") ) {
29 allUnchecked = false;
30 }
31 else {
32 allChecked = false;
33 }
34 if(!allUnchecked && !allChecked) return;
35 }).done(function(){
36 $listGroup.closest(".segment.loading").removeClass("loading");
37 if(allChecked) {
38 $parentCheckbox.checkbox("set checked");
39 }
40 else if(allUnchecked) {
41 if(!$parentCheckbox.children("input").first().hasClass("_notAllChecked")){
42 $parentCheckbox.checkbox("set unchecked");
43 }
44 }
45 else {
46 $parentCheckbox.checkbox("set indeterminate");
47 }
48 %onChange%
49 });
50 }
51 })
52;';