Skip to content

Commit 71d9154

Browse files
authored
Replace inline onclick handlers with addEventListener for CSP compliance (#142)
CSP header 'script-src-attr: none' blocks inline event handlers on the production site, making range buttons non-functional. Move click handling to the external JS files using addEventListener on data-range attributes.
1 parent abef0b8 commit 71d9154

4 files changed

Lines changed: 20 additions & 6 deletions

File tree

src/assets/monitoring-btc.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ <h1>lightning.space - BTC Monitoring</h1>
8585
<div class="section">
8686
<h2>BTC Balance History</h2>
8787
<div class="range-buttons">
88-
<button class="active" onclick="loadChart('24h')">24h</button>
89-
<button onclick="loadChart('7d')">7d</button>
90-
<button onclick="loadChart('30d')">30d</button>
88+
<button class="active" data-range="24h">24h</button>
89+
<button data-range="7d">7d</button>
90+
<button data-range="30d">30d</button>
9191
</div>
9292
<div class="chart-container">
9393
<canvas id="btcChart"></canvas>

src/assets/monitoring-btc.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,10 @@ function renderChart(points) {
200200

201201
loadData();
202202
loadChart('24h');
203+
204+
var rangeButtons = document.querySelectorAll('.range-buttons button[data-range]');
205+
for (var i = 0; i < rangeButtons.length; i++) {
206+
rangeButtons[i].addEventListener('click', function () {
207+
loadChart(this.getAttribute('data-range'));
208+
});
209+
}

src/assets/monitoring-usd.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ <h1>lightning.space - USD Monitoring</h1>
8585
<div class="section">
8686
<h2>USD Balance History</h2>
8787
<div class="range-buttons">
88-
<button class="active" onclick="loadChart('24h')">24h</button>
89-
<button onclick="loadChart('7d')">7d</button>
90-
<button onclick="loadChart('30d')">30d</button>
88+
<button class="active" data-range="24h">24h</button>
89+
<button data-range="7d">7d</button>
90+
<button data-range="30d">30d</button>
9191
</div>
9292
<div class="chart-container">
9393
<canvas id="usdChart"></canvas>

src/assets/monitoring-usd.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,3 +162,10 @@ function renderChart(points) {
162162

163163
loadData();
164164
loadChart('24h');
165+
166+
var rangeButtons = document.querySelectorAll('.range-buttons button[data-range]');
167+
for (var i = 0; i < rangeButtons.length; i++) {
168+
rangeButtons[i].addEventListener('click', function () {
169+
loadChart(this.getAttribute('data-range'));
170+
});
171+
}

0 commit comments

Comments
 (0)