| 1 |
<?php |
| 2 |
|
| 3 |
namespace BitCode\BitForm\Admin\Form\ExtraFieldJS; |
| 4 |
|
| 5 |
class CheckDisableOnMax { |
| 6 |
public static function init($fk, $field, $contentId) { |
| 7 |
$script = ''; |
| 8 |
$max = isset($field->mx) ? $field->mx : 0; |
| 9 |
if (isset($field->valid->disableOnMax) && $field->valid->disableOnMax) { |
| 10 |
$script .= <<<FUNCTIONDEF |
| 11 |
bfSelect("#{$contentId}").querySelectorAll(".{$fk}-inp-wrp input[type='checkbox']").forEach(function(el){ |
| 12 |
el.addEventListener("change",function(e){ |
| 13 |
var max = {$max}; |
| 14 |
var checked = bfSelect("#{$contentId}").querySelectorAll(".{$fk}-inp-wrp input[type='checkbox']:checked").length; |
| 15 |
if(checked >= max){ |
| 16 |
bfSelect("#{$contentId}").querySelectorAll(".{$fk}-inp-wrp input[type='checkbox']").forEach(function(el){ |
| 17 |
if(!el.checked){ |
| 18 |
el.setAttribute("disabled",true); |
| 19 |
} |
| 20 |
}); |
| 21 |
}else{ |
| 22 |
const options = bf_globals["{$contentId}"].fields["{$fk}"].opt; |
| 23 |
bfSelect("#{$contentId}").querySelectorAll(".{$fk}-inp-wrp input[type='checkbox']").forEach(function(el, index){ |
| 24 |
if(!options[index].disabled){ |
| 25 |
el.removeAttribute("disabled"); |
| 26 |
} |
| 27 |
}); |
| 28 |
} |
| 29 |
}); |
| 30 |
}); |
| 31 |
|
| 32 |
FUNCTIONDEF; |
| 33 |
} |
| 34 |
return $script; |
| 35 |
} |
| 36 |
} |
| 37 |
|