install.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
  2. "use strict";
  3. /* jshint globalstrict: true */
  4. function show_password(ev) {
  5. var button = ev.target;
  6. var 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. var button = ev.target;
  13. var 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. var toggles = document.getElementsByClassName('toggle-password');
  19. for (var i = 0 ; i < toggles.length ; i++) {
  20. toggles[i].addEventListener('mousedown', show_password);
  21. toggles[i].addEventListener('mouseup', hide_password);
  22. }
  23. function auth_type_change() {
  24. var auth_type = document.getElementById('auth_type');
  25. if (auth_type) {
  26. var 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. var auth_type = document.getElementById('auth_type');
  36. if (auth_type) {
  37. auth_type_change();
  38. auth_type.addEventListener('change', auth_type_change);
  39. }
  40. function mySqlShowHide() {
  41. var mysql = document.getElementById('mysql');
  42. if (mysql) {
  43. if (document.getElementById('type').value === 'sqlite') {
  44. document.getElementById('host').value = '';
  45. document.getElementById('user').value = '';
  46. document.getElementById('pass').value = '';
  47. document.getElementById('base').value = '';
  48. document.getElementById('prefix').value = '';
  49. mysql.style.display = 'none';
  50. } else {
  51. mysql.style.display = 'block';
  52. }
  53. }
  54. }
  55. var bd_type = document.getElementById('type');
  56. if (bd_type) {
  57. mySqlShowHide();
  58. bd_type.addEventListener('change', mySqlShowHide);
  59. }
  60. function ask_confirmation(ev) {
  61. var str_confirmation = ev.target.getAttribute('data-str-confirm');
  62. if (!confirm(str_confirmation)) {
  63. ev.preventDefault();
  64. }
  65. }
  66. var confirms = document.getElementsByClassName('confirm');
  67. for (var i = 0 ; i < confirms.length ; i++) {
  68. confirms[i].addEventListener('click', ask_confirmation);
  69. }
  70. // @license-end