Subversion Repositories wimsdev

Rev

Blame | Last modification | View Log | RSS feed

  1.  
  2. var nb_checked = 0;
  3. var nb_tot = 0;
  4. var checkboxes, check_all;
  5.  
  6. document.addEventListener("DOMContentLoaded", function(event) {
  7.  
  8.   checkboxes = document.getElementsByName('selection');
  9.   check_all = document.getElementById('check_all_selection');
  10.  
  11.   for(var i=0, n=checkboxes.length;i<n;i++) {
  12.     if (checkboxes[i].checked) {
  13.       nb_checked++;
  14.     }
  15.     nb_tot++;
  16.     checkboxes[i].addEventListener('change', function(event) {
  17.       if (event.target.checked) {
  18.         nb_checked++;
  19.       } else {
  20.         nb_checked--;
  21.       }
  22.       console.log("nb_checked="+nb_checked);
  23.       check_all.indeterminate=false;
  24.       check_toggle_state();
  25.     })
  26.   }
  27.   check_toggle_state();
  28. });
  29.  
  30. /* Check/uncheck all Checkboxes */
  31. function toggle() {
  32.   for(var i=0, n=checkboxes.length;i<n;i++) {
  33.     checkboxes[i].checked = check_all.checked;
  34.     if (check_all.checked){
  35.       nb_checked = nb_tot;
  36.     } else {
  37.       nb_checked = 0;
  38.     }
  39.     console.log("nb_checked="+nb_checked);
  40.   }
  41. }
  42.  
  43. function check_toggle_state() {
  44.   if (nb_checked<=0){
  45.     check_all.checked=false;
  46.   }
  47.   else if (nb_checked>=nb_tot){
  48.     check_all.checked=true;
  49.   } else {
  50.     check_all.indeterminate=true;
  51.   }
  52. }
  53.