diff --git a/web/src/beanflows/dashboard/templates/dashboard_base.html b/web/src/beanflows/dashboard/templates/dashboard_base.html index b2492ba..79f6137 100644 --- a/web/src/beanflows/dashboard/templates/dashboard_base.html +++ b/web/src/beanflows/dashboard/templates/dashboard_base.html @@ -167,6 +167,19 @@ + + + {% include "_feedback_widget.html" %} {% block scripts %}{% endblock %} diff --git a/web/src/beanflows/dashboard/templates/positioning.html b/web/src/beanflows/dashboard/templates/positioning.html index 18bfa0a..2618739 100644 --- a/web/src/beanflows/dashboard/templates/positioning.html +++ b/web/src/beanflows/dashboard/templates/positioning.html @@ -104,15 +104,21 @@ function toggleMA(key) { document.addEventListener('htmx:afterSwap', function (e) { if (e.detail.target.id === 'positioning-canvas') { document.getElementById('positioning-canvas').classList.remove('canvas-loading'); - // Re-apply MA checkbox state after swap - var ma20 = document.getElementById('ma20-toggle'); - var ma50 = document.getElementById('ma50-toggle'); - var chart = Chart.getChart('priceChart'); - if (chart && ma20 && ma50) { - chart.data.datasets[1].hidden = !ma20.checked; - chart.data.datasets[2].hidden = !ma50.checked; - chart.update(); - } + requestAnimationFrame(function() { + ['priceChart', 'cotChart'].forEach(function(id) { + var c = Chart.getChart(id); + if (c) c.resize(); + }); + // Re-apply MA checkbox state after resize + var ma20 = document.getElementById('ma20-toggle'); + var ma50 = document.getElementById('ma50-toggle'); + var chart = Chart.getChart('priceChart'); + if (chart && ma20 && ma50) { + chart.data.datasets[1].hidden = !ma20.checked; + chart.data.datasets[2].hidden = !ma50.checked; + chart.update(); + } + }); } }); diff --git a/web/src/beanflows/dashboard/templates/supply.html b/web/src/beanflows/dashboard/templates/supply.html index c7d4272..c4e0998 100644 --- a/web/src/beanflows/dashboard/templates/supply.html +++ b/web/src/beanflows/dashboard/templates/supply.html @@ -71,6 +71,12 @@ function setFilter(key, val) { document.addEventListener('htmx:afterSwap', function (e) { if (e.detail.target.id === 'supply-canvas') { document.getElementById('supply-canvas').classList.remove('canvas-loading'); + requestAnimationFrame(function() { + ['supplyDemandChart', 'stuChart', 'topCountriesChart'].forEach(function(id) { + var c = Chart.getChart(id); + if (c) c.resize(); + }); + }); } }); diff --git a/web/src/beanflows/dashboard/templates/warehouse.html b/web/src/beanflows/dashboard/templates/warehouse.html index 6bc8587..668a5c5 100644 --- a/web/src/beanflows/dashboard/templates/warehouse.html +++ b/web/src/beanflows/dashboard/templates/warehouse.html @@ -66,6 +66,12 @@ function setFilter(key, val) { document.addEventListener('htmx:afterSwap', function (e) { if (e.detail.target.id === 'warehouse-canvas') { document.getElementById('warehouse-canvas').classList.remove('canvas-loading'); + requestAnimationFrame(function() { + ['stocksChart', 'agingChart', 'byPortChart'].forEach(function(id) { + var c = Chart.getChart(id); + if (c) c.resize(); + }); + }); } }); diff --git a/web/src/beanflows/dashboard/templates/weather.html b/web/src/beanflows/dashboard/templates/weather.html index 5c80b1c..9a3a0fc 100644 --- a/web/src/beanflows/dashboard/templates/weather.html +++ b/web/src/beanflows/dashboard/templates/weather.html @@ -188,6 +188,12 @@ function setFilter(key, val) { document.addEventListener('htmx:afterSwap', function (e) { if (e.detail.target.id === 'weather-canvas') { document.getElementById('weather-canvas').classList.remove('canvas-loading'); + requestAnimationFrame(function() { + ['globalStressChart', 'locStressChart', 'locTempChart'].forEach(function(id) { + var c = Chart.getChart(id); + if (c) c.resize(); + }); + }); } });