Files
notifications-admin/app/assets/javascripts/conditionalRadios.js
Chris Hill-Scott 6452676b54 Remove show/hide behaviour from permissions form
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)
2018-07-05 11:47:31 +01:00

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);