You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.4 KiB
30 lines
1.4 KiB
"use strict";
|
|
// Fallback JS for browsers which do not support :has selector used in
|
|
// admin/css/unusable_password_fields.css
|
|
// Remove file once all supported browsers support :has selector
|
|
try {
|
|
// If browser does not support :has selector this will raise an error
|
|
document.querySelector("form:has(input)");
|
|
} catch (error) {
|
|
console.log("Defaulting to javascript for usable password form management: " + error);
|
|
// JS replacement for unsupported :has selector
|
|
document.querySelectorAll('input[name="usable_password"]').forEach(option => {
|
|
option.addEventListener('change', function() {
|
|
const usablePassword = (this.value === "true" ? this.checked : !this.checked);
|
|
const submit1 = document.querySelector('input[type="submit"].set-password');
|
|
const submit2 = document.querySelector('input[type="submit"].unset-password');
|
|
const messages = document.querySelector('#id_unusable_warning');
|
|
document.getElementById('id_password1').closest('.form-row').hidden = !usablePassword;
|
|
document.getElementById('id_password2').closest('.form-row').hidden = !usablePassword;
|
|
if (messages) {
|
|
messages.hidden = usablePassword;
|
|
}
|
|
if (submit1 && submit2) {
|
|
submit1.hidden = !usablePassword;
|
|
submit2.hidden = usablePassword;
|
|
}
|
|
});
|
|
option.dispatchEvent(new Event('change'));
|
|
});
|
|
}
|