config.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
  2. 'use strict';
  3. function init_selectInputChanger() {
  4. const select = document.getElementsByClassName('select-input-changer');
  5. for (let i = 0; i < select.length; i++) {
  6. select[i].addEventListener('change', updateSelectInput);
  7. select[i].dispatchEvent(new Event('change', {
  8. bubbles: true,
  9. cancelable: true,
  10. }));
  11. }
  12. }
  13. function updateSelectInput(ev) {
  14. const elem = ev.target;
  15. const formGroup = document.getElementById(elem.dataset.name + '-block');
  16. const input = document.getElementById(elem.dataset.name + '-input');
  17. if (elem.selectedOptions[0].dataset.inputVisible == 'false') {
  18. formGroup.style.display = 'none';
  19. if (input) {
  20. input.name = '';
  21. }
  22. if (elem.name == '') {
  23. elem.name = elem.dataset.name;
  24. }
  25. } else {
  26. formGroup.style.display = '';
  27. if (input) {
  28. input.name = elem.dataset.name;
  29. }
  30. if (elem.name === elem.dataset.name) {
  31. elem.name = '';
  32. }
  33. }
  34. }
  35. function init_maxNumbersOfAccountsStatus() {
  36. const input = document.getElementById('max-registrations-input');
  37. if (input) {
  38. input.addEventListener('change', onchange_maxNumbersOfAccounts);
  39. input.dispatchEvent(new Event('change', {
  40. bubbles: true,
  41. cancelable: true,
  42. }));
  43. }
  44. }
  45. function onchange_maxNumbersOfAccounts(ev) {
  46. const elem = ev.target;
  47. if (elem.value > elem.dataset.number) {
  48. document.getElementById('max-registrations-status-disabled').style.display = 'none';
  49. document.getElementById('max-registrations-status-enabled').style.display = '';
  50. } else {
  51. document.getElementById('max-registrations-status-disabled').style.display = '';
  52. document.getElementById('max-registrations-status-enabled').style.display = 'none';
  53. }
  54. }
  55. init_selectInputChanger();
  56. init_maxNumbersOfAccountsStatus();
  57. // @license-end