|
|
|
|
@ -1,31 +1,66 @@
|
|
|
|
|
(function (Drupal, once) { |
|
|
|
|
Drupal.behaviors.removeTrailingZeros = { |
|
|
|
|
attach: function (context) { |
|
|
|
|
function processField(id) { |
|
|
|
|
var el = document.getElementById(id); |
|
|
|
|
if (!el) return; |
|
|
|
|
//
|
|
|
|
|
// (function (Drupal, once) {
|
|
|
|
|
// Drupal.behaviors.removeTrailingZeros = {
|
|
|
|
|
// attach: function (context) {
|
|
|
|
|
// function processField(id) {
|
|
|
|
|
// var el = document.getElementById(id);
|
|
|
|
|
// if (!el) return;
|
|
|
|
|
//
|
|
|
|
|
// // If value isn't populated yet, wait and retry once
|
|
|
|
|
// if (el.value === "") {
|
|
|
|
|
// setTimeout(function () {
|
|
|
|
|
// processField(id);
|
|
|
|
|
// }, 100);
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// var str = el.value.toString().slice(0, -3);
|
|
|
|
|
// el.value = parseInt(str, 10);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// once("from-slider", "#nouislider-input-from", context).forEach(
|
|
|
|
|
// function () {
|
|
|
|
|
// processField("nouislider-input-from");
|
|
|
|
|
// }
|
|
|
|
|
// );
|
|
|
|
|
//
|
|
|
|
|
// once("to-slider", "#nouislider-input-to", context).forEach(function () {
|
|
|
|
|
// processField("nouislider-input-to");
|
|
|
|
|
// });
|
|
|
|
|
// },
|
|
|
|
|
// };
|
|
|
|
|
// })(Drupal, once);
|
|
|
|
|
/** |
|
|
|
|
* @file |
|
|
|
|
* Fix noUiSlider formatting for year facets (remove .00). |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
// If value isn't populated yet, wait and retry once
|
|
|
|
|
if (el.value === "") { |
|
|
|
|
setTimeout(function () { |
|
|
|
|
processField(id); |
|
|
|
|
}, 100); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var str = el.value.toString().slice(0, -3); |
|
|
|
|
el.value = parseInt(str, 10); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
once("from-slider", "#nouislider-input-from", context).forEach( |
|
|
|
|
function () { |
|
|
|
|
processField("nouislider-input-from"); |
|
|
|
|
} |
|
|
|
|
Drupal.behaviors.olivesnewsYearSliderFix = { |
|
|
|
|
attach: function (context, settings) { |
|
|
|
|
// Target the year slider (ID comes from your facet machine name)
|
|
|
|
|
const sliderElements = context.querySelectorAll( |
|
|
|
|
'#year.facet-slider, .facet-slider[id="year"]' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
once("to-slider", "#nouislider-input-to", context).forEach(function () { |
|
|
|
|
processField("nouislider-input-to"); |
|
|
|
|
sliderElements.forEach(function (slider) { |
|
|
|
|
if (slider && slider.noUiSlider) { |
|
|
|
|
// Re-apply options with clean integer formatting
|
|
|
|
|
slider.noUiSlider.updateOptions( |
|
|
|
|
{ |
|
|
|
|
format: { |
|
|
|
|
to: function (value) { |
|
|
|
|
return Math.round(value).toString(); // e.g., 1787 instead of 1787.00
|
|
|
|
|
}, |
|
|
|
|
from: function (value) { |
|
|
|
|
return Number(value); |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
// Optional: also force tooltips to use the same clean format
|
|
|
|
|
tooltips: [true, true], // or a custom formatter if needed
|
|
|
|
|
}, |
|
|
|
|
true |
|
|
|
|
); // true = fire 'update' event so it refreshes immediately
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
})(Drupal, once); |
|
|
|
|
|