install.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
  2. 'use strict';
  3. function show_password(ev) {
  4. const button = ev.currentTarget;
  5. const passwordField = document.getElementById(button.getAttribute('data-toggle'));
  6. passwordField.setAttribute('type', 'text');
  7. button.className += ' active';
  8. return false;
  9. }
  10. function hide_password(ev) {
  11. const button = ev.currentTarget;
  12. const passwordField = document.getElementById(button.getAttribute('data-toggle'));
  13. passwordField.setAttribute('type', 'password');
  14. button.className = button.className.replace(/(?:^|\s)active(?!\S)/g, '');
  15. return false;
  16. }
  17. const toggles = document.getElementsByClassName('toggle-password');
  18. for (let i = 0; i < toggles.length; i++) {
  19. toggles[i].addEventListener('mousedown', show_password);
  20. toggles[i].addEventListener('mouseup', hide_password);
  21. }
  22. const auth_type = document.getElementById('auth_type');
  23. function auth_type_change() {
  24. if (auth_type) {
  25. const auth_value = auth_type.value;
  26. const password_input = document.getElementById('passwordPlain');
  27. if (auth_value === 'form') {
  28. password_input.required = true;
  29. } else {
  30. password_input.required = false;
  31. }
  32. }
  33. }
  34. if (auth_type) {
  35. auth_type_change();
  36. auth_type.addEventListener('change', auth_type_change);
  37. }
  38. function mySqlShowHide() {
  39. const mysql = document.getElementById('mysql');
  40. if (mysql) {
  41. if (document.getElementById('type').value === 'sqlite') {
  42. document.getElementById('host').value = '';
  43. document.getElementById('user').value = '';
  44. document.getElementById('pass').value = '';
  45. document.getElementById('base').value = '';
  46. document.getElementById('prefix').value = '';
  47. mysql.style.display = 'none';
  48. } else {
  49. mysql.style.display = 'block';
  50. }
  51. }
  52. }
  53. const bd_type = document.getElementById('type');
  54. if (bd_type) {
  55. mySqlShowHide();
  56. bd_type.addEventListener('change', mySqlShowHide);
  57. }
  58. function ask_confirmation(ev) {
  59. const str_confirmation = ev.target.getAttribute('data-str-confirm');
  60. if (!confirm(str_confirmation)) {
  61. ev.preventDefault();
  62. }
  63. }
  64. const confirms = document.getElementsByClassName('confirm');
  65. for (let i = 0; i < confirms.length; i++) {
  66. confirms[i].addEventListener('click', ask_confirmation);
  67. }
  68. // @license-end