1 changed files with 63 additions and 28 deletions
@ -1,31 +1,66 @@ |
|||||||
(function (Drupal, once) { |
//
|
||||||
Drupal.behaviors.removeTrailingZeros = { |
// (function (Drupal, once) {
|
||||||
attach: function (context) { |
// Drupal.behaviors.removeTrailingZeros = {
|
||||||
function processField(id) { |
// attach: function (context) {
|
||||||
var el = document.getElementById(id); |
// function processField(id) {
|
||||||
if (!el) return; |
// 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
|
Drupal.behaviors.olivesnewsYearSliderFix = { |
||||||
if (el.value === "") { |
attach: function (context, settings) { |
||||||
setTimeout(function () { |
// Target the year slider (ID comes from your facet machine name)
|
||||||
processField(id); |
const sliderElements = context.querySelectorAll( |
||||||
}, 100); |
'#year.facet-slider, .facet-slider[id="year"]' |
||||||
return; |
); |
||||||
} |
|
||||||
|
|
||||||
var str = el.value.toString().slice(0, -3); |
sliderElements.forEach(function (slider) { |
||||||
el.value = parseInt(str, 10); |
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
|
||||||
} |
} |
||||||
|
}); |
||||||
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); |
|
||||||
|
|||||||
Loading…
Reference in new issue