Current File : /home/pacjaorg/.trash/media.1/system/js/fields/passwordview.js |
/**
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
(document => {
function togglePassword() {
[].slice.call(document.querySelectorAll('input[type="password"]')).forEach(input => {
const toggleButton = input.parentNode.querySelector('.input-password-toggle');
if (toggleButton) {
const hasClickListener = toggleButton.getAttribute('clickListener') === 'true';
if (!hasClickListener) {
toggleButton.setAttribute('clickListener', 'true');
toggleButton.addEventListener('click', () => {
const icon = toggleButton.firstElementChild;
const srText = toggleButton.lastElementChild;
if (input.type === 'password') {
// Update the icon class
icon.classList.remove('icon-eye');
icon.classList.add('icon-eye-slash');
// Update the input type
input.type = 'text';
// Focus the input field
input.focus();
// Update the text for screenreaders
srText.innerText = Joomla.Text._('JHIDEPASSWORD');
} else if (input.type === 'text') {
// Update the icon class
icon.classList.add('icon-eye');
icon.classList.remove('icon-eye-slash');
// Update the input type
input.type = 'password';
// Focus the input field
input.focus();
// Update the text for screenreaders
srText.innerText = Joomla.Text._('JSHOWPASSWORD');
}
});
}
}
const modifyButton = input.parentNode.querySelector('.input-password-modify');
if (modifyButton) {
modifyButton.addEventListener('click', () => {
const lock = !modifyButton.classList.contains('locked');
if (lock === true) {
// Add lock
modifyButton.classList.add('locked');
// Reset value to empty string
input.value = '';
// Disable the field
input.setAttribute('disabled', '');
// Update the text
modifyButton.innerText = Joomla.Text._('JMODIFY');
} else {
// Remove lock
modifyButton.classList.remove('locked');
// Enable the field
input.removeAttribute('disabled');
// Focus the input field
input.focus();
// Update the text
modifyButton.innerText = Joomla.Text._('JCANCEL');
}
});
}
});
}
document.addEventListener('joomla:updated', togglePassword);
document.addEventListener('DOMContentLoaded', togglePassword);
})(document);