mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-01-02 18:37:52 -05:00
* less buttons on step 1 * add form-group * jump to next step as link not as button * improve navigation bar HTML structure * sync password-show button with extra.js * fix CSS * i18n: step 4: split text strings for help text (max chars default user) * show menu button if mobile view * improve header layout with empty div * step 5: button in form-actions * improve buttons in goup-controls * Favicon added * Button: Font color hover btn-attention * install check step: add subtitles * fix .btn * improve tabindex * improve showPW_this()
91 lines
2.5 KiB
JavaScript
91 lines
2.5 KiB
JavaScript
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
|
|
'use strict';
|
|
|
|
let timeoutHide;
|
|
|
|
function showPW_this() {
|
|
const id_passwordField = this.getAttribute('data-toggle');
|
|
if (this.classList.contains('active')) {
|
|
hidePW(id_passwordField);
|
|
} else {
|
|
showPW(id_passwordField);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function showPW(id_passwordField) {
|
|
const passwordField = document.getElementById(id_passwordField);
|
|
passwordField.setAttribute('type', 'text');
|
|
passwordField.nextElementSibling.classList.add('active');
|
|
clearTimeout(timeoutHide);
|
|
timeoutHide = setTimeout(function () { hidePW(id_passwordField); }, 5000);
|
|
return false;
|
|
}
|
|
|
|
function hidePW(id_passwordField) {
|
|
clearTimeout(timeoutHide);
|
|
const passwordField = document.getElementById(id_passwordField);
|
|
passwordField.setAttribute('type', 'password');
|
|
passwordField.nextElementSibling.classList.remove('active');
|
|
return false;
|
|
}
|
|
|
|
function init_password_observers(parent) {
|
|
parent.querySelectorAll('.toggle-password').forEach(function (btn) {
|
|
btn.addEventListener('click', showPW_this);
|
|
});
|
|
}
|
|
|
|
init_password_observers(document.body);
|
|
|
|
const auth_type = document.getElementById('auth_type');
|
|
function auth_type_change() {
|
|
if (auth_type) {
|
|
const auth_value = auth_type.value;
|
|
const password_input = document.getElementById('passwordPlain');
|
|
|
|
if (auth_value === 'form') {
|
|
password_input.required = true;
|
|
} else {
|
|
password_input.required = false;
|
|
}
|
|
}
|
|
}
|
|
if (auth_type) {
|
|
auth_type_change();
|
|
auth_type.addEventListener('change', auth_type_change);
|
|
}
|
|
|
|
function mySqlShowHide() {
|
|
const mysql = document.getElementById('mysql');
|
|
if (mysql) {
|
|
if (document.getElementById('type').value === 'sqlite') {
|
|
document.getElementById('host').value = '';
|
|
document.getElementById('user').value = '';
|
|
document.getElementById('pass').value = '';
|
|
document.getElementById('base').value = '';
|
|
document.getElementById('prefix').value = '';
|
|
mysql.style.display = 'none';
|
|
} else {
|
|
mysql.style.display = 'block';
|
|
}
|
|
}
|
|
}
|
|
const bd_type = document.getElementById('type');
|
|
if (bd_type) {
|
|
mySqlShowHide();
|
|
bd_type.addEventListener('change', mySqlShowHide);
|
|
}
|
|
|
|
function ask_confirmation(ev) {
|
|
const str_confirmation = ev.target.getAttribute('data-str-confirm');
|
|
if (!confirm(str_confirmation)) {
|
|
ev.preventDefault();
|
|
}
|
|
}
|
|
const confirms = document.getElementsByClassName('confirm');
|
|
for (let i = 0; i < confirms.length; i++) {
|
|
confirms[i].addEventListener('click', ask_confirmation);
|
|
}
|
|
// @license-end
|