install.js 2.2 KB

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