feat(ui): add NextPM firmware version button on sensors page

Add a "Firmware Version" button next to "Get Data" in the NextPM card
that calls firmware_version.py and displays the result as a badge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
PaulVua
2026-02-10 17:05:10 +01:00
parent 6bdaef8c24
commit 544eebd715
3 changed files with 50 additions and 13 deletions

View File

@@ -145,6 +145,33 @@ function getNPM_values(port){
});
}
function getNPM_firmware(port){
console.log("Firmware version from NPM (port "+port+"):");
$("#loading_fw_"+port).show();
$.ajax({
url: 'launcher.php?type=npm_firmware&port='+port,
dataType: 'json',
method: 'GET',
success: function(response) {
console.log(response);
$("#loading_fw_"+port).hide();
const fwSpan = document.getElementById("fw_version_"+port);
if (response.firmware_version !== undefined) {
fwSpan.innerHTML = '<span class="badge bg-success">Firmware: ' + response.firmware_version + '</span>';
} else {
fwSpan.innerHTML = '<span class="badge bg-danger">Error reading firmware</span>';
}
},
error: function(xhr, status, error) {
console.error('AJAX request failed:', status, error);
$("#loading_fw_"+port).hide();
const fwSpan = document.getElementById("fw_version_"+port);
fwSpan.innerHTML = '<span class="badge bg-danger">Error</span>';
}
});
}
function getENVEA_values(port, name){
console.log("Data from Envea " + name + " (port " + port + "):");
$("#loading_envea" + name).show();
@@ -369,8 +396,11 @@ error: function(xhr, status, error) {
<h5 class="card-title" data-i18n="sensors.npm.title">NextPM</h5>
<p class="card-text" data-i18n="sensors.npm.description">Capteur particules fines.</p>
<button class="btn btn-primary" onclick="getNPM_values('ttyAMA5')" data-i18n="common.getData">Get Data</button>
<button class="btn btn-secondary" onclick="getNPM_firmware('ttyAMA5')">Firmware Version</button>
<br>
<div id="loading_ttyAMA5" class="spinner-border spinner-border-sm" style="display: none;" role="status"></div>
<div id="loading_fw_ttyAMA5" class="spinner-border spinner-border-sm" style="display: none;" role="status"></div>
<div id="fw_version_ttyAMA5" class="mt-1"></div>
<table class="table table-striped-columns">
<tbody id="data-table-body_ttyAMA5"></tbody>
</table>