mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-07 11:53:52 -05:00
In research we found that: - people didn’t initially realise that the permissions expanded when the ‘admin’ option was selected - not having all the options visible at once makes it hard to know what permissions you are (and more importantly aren’t) giving to people This commit makes it so that: - the options within the ‘admin’ option are always visible - a bit of Javascript logic makes it so you can pick ‘caseworker’ and ‘manage service’, for example (by deselecting one when you pick the other)
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
(function(Modules) {
|
|
"use strict";
|
|
|
|
Modules.ConditionalRadios = function() {
|
|
|
|
this.start = function(component) {
|
|
|
|
const $radios = $('[type=radio]', $(component)),
|
|
$checkboxes = $('[type=checkbox]', $(component));
|
|
|
|
let clearable = true;
|
|
|
|
let clearInvalidSelections = function() {
|
|
if (!clearable) {
|
|
clearable = true;
|
|
return;
|
|
}
|
|
$radios.each(function() {
|
|
let checked = $(this).is(':checked');
|
|
$('#panel-' + $(this).attr('value'))
|
|
.each(function() {
|
|
if (!checked) {
|
|
$('[type=checkbox]', this).removeAttr('checked');
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
let selectParent = function() {
|
|
clearable = false;
|
|
let parentValue = $(this).parents("[id^='panel-']").attr('id').replace('panel-', '');
|
|
$('[value=' + parentValue + ']').trigger('click');
|
|
};
|
|
|
|
$checkboxes.on('click', selectParent);
|
|
$radios.on('click', clearInvalidSelections);
|
|
clearInvalidSelections();
|
|
|
|
};
|
|
};
|
|
|
|
})(window.GOVUK.Modules);
|