55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
/**
|
|
* Utility that makes it possible to hide fields when a checkbox is unchecked
|
|
*/
|
|
(function ($) {
|
|
function setupHiding() {
|
|
var $toggler = $(this);
|
|
|
|
// Getting the field which should be hidden:
|
|
var $subject = $($toggler.data('h5p-visibility-subject-selector'));
|
|
|
|
var toggle = function () {
|
|
$subject.toggle($toggler.is(':checked'));
|
|
};
|
|
|
|
$toggler.change(toggle);
|
|
toggle();
|
|
}
|
|
|
|
function setupRevealing() {
|
|
var $button = $(this);
|
|
|
|
// Getting the field which should have the value:
|
|
var $input = $('#' + $button.data('control'));
|
|
|
|
if (!$input.data('value')) {
|
|
$button.remove();
|
|
return;
|
|
}
|
|
|
|
// Setup button action
|
|
var revealed = false;
|
|
var text = $button.html();
|
|
$button.click(function () {
|
|
if (revealed) {
|
|
$input.val('');
|
|
$button.html(text);
|
|
revealed = false;
|
|
}
|
|
else {
|
|
$input.val($input.data('value'));
|
|
$button.html($button.data('hide'));
|
|
revealed = true;
|
|
}
|
|
});
|
|
}
|
|
|
|
$(document).ready(function () {
|
|
// Get the checkboxes making other fields being hidden:
|
|
$('.h5p-visibility-toggler').each(setupHiding);
|
|
|
|
// Get the buttons making other fields have hidden values:
|
|
$('.h5p-reveal-value').each(setupRevealing);
|
|
});
|
|
})(H5P.jQuery);
|