aclbox.html.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace zin;
  3. $handleAclChange = jsCallback()->do(<<<'JS'
  4. const isPrivate = $element.find('[name=acl]:checked').val() == 'private';
  5. const whitelistBox = $('.whitelistBox');
  6. whitelistBox.addClass('hidden');
  7. if(isPrivate) whitelistBox.removeClass('hidden');
  8. JS
  9. );
  10. $fnAclBox = function($aclItems, $aclValue = 'open', $userValue = '', $aclLabel = '', $whitelistLabel = '') use ($handleAclChange, $lang)
  11. {
  12. if(!$aclLabel) $aclLabel = $lang->bi->acl;
  13. if(!$whitelistLabel) $whitelistLabel = $lang->whitelist;
  14. return div
  15. (
  16. formGroup
  17. (
  18. set::label($aclLabel),
  19. setClass('aclBox'),
  20. radiolist
  21. (
  22. set::name('acl'),
  23. set::items($aclItems),
  24. set::value($aclValue),
  25. on::change($handleAclChange)
  26. )
  27. ),
  28. formGroup
  29. (
  30. setClass('whitelistBox'),
  31. $aclValue == 'open' ? setClass('hidden') : null,
  32. setStyle('padding: var(--form-grid-gap-y-half) 0 !important;'),
  33. set::label($whitelistLabel),
  34. whitelist
  35. (
  36. set::inputGroupClass('w-full'),
  37. set::name('whitelist[]'),
  38. set::value($userValue)
  39. )
  40. )
  41. );
  42. };