This repository has been archived on 2025-01-19. You can view files and clone it, but cannot push or open issues or pull requests.
drupalcampbristol/web/modules/contrib/webform/js/webform.element.rating.js
2018-11-23 12:29:20 +00:00

52 lines
1.3 KiB
JavaScript

/**
* @file
* JavaScript behaviors for RateIt integration.
*/
(function ($, Drupal) {
'use strict';
// All options can be override using custom data-* attributes.
// @see https://github.com/gjunge/rateit.js/wiki#options.
/**
* Initialize rating element using RateIt.
*
* @type {Drupal~behavior}
*/
Drupal.behaviors.webformRating = {
attach: function (context) {
if (!$.fn.rateit) {
return;
}
$(context)
.find('[data-rateit-backingfld]')
.once('webform-rating')
.each(function () {
var $rateit = $(this);
var $input = $($rateit.attr('data-rateit-backingfld'));
// Rateit only initialize inputs on load.
if (document.readyState === 'complete') {
$rateit.rateit();
}
// Update the RateIt widget when the input's value has changed.
// @see webform.states.js
$input.on('change', function () {
$rateit.rateit('value', $input.val());
});
// Set RateIt widget to be readonly when the input is disabled.
// @see webform.states.js
$input.on('webform:disabled', function () {
$rateit.rateit('readonly', $input.is(':disabled'));
});
});
}
};
})(jQuery, Drupal);