Not everyone will want to use "Community" to describe their Forem, so now they have some flexibility there.
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
import { Controller } from 'stimulus';
|
|
|
|
const recaptchaFields = document.querySelector('#recaptchaContainer');
|
|
|
|
export default class ConfigController extends Controller {
|
|
static targets = [
|
|
'authenticationProviders',
|
|
'collectiveNoun',
|
|
'requireCaptchaForEmailPasswordRegistration',
|
|
];
|
|
|
|
disableTargetField(event) {
|
|
const targetElementName = event.target.dataset.disableTarget;
|
|
const targetElement = this[`${targetElementName}Target`];
|
|
const newValue = event.target.checked;
|
|
targetElement.disabled = newValue;
|
|
|
|
// Disable the button generated by ERB for select tags
|
|
if (targetElement.nodeName === 'SELECT') {
|
|
const snakeCaseName = targetElementName.replace(
|
|
/[A-Z]/g,
|
|
(letter) => `_${letter.toLowerCase()}`,
|
|
);
|
|
document.querySelector(
|
|
`button[data-id=site_config_${snakeCaseName}]`,
|
|
).disabled = newValue;
|
|
}
|
|
}
|
|
|
|
toggleGoogleRecaptchaFields() {
|
|
if (this.requireCaptchaForEmailPasswordRegistrationTarget.checked) {
|
|
recaptchaFields.classList.remove('collapse');
|
|
} else {
|
|
recaptchaFields.classList.add('collapse');
|
|
}
|
|
}
|
|
}
|