feat: Add version display to frontend

This commit is contained in:
courtmanr@gmail.com
2025-04-20 20:02:55 +01:00
parent e993da2869
commit 3c898006a6
4 changed files with 38 additions and 1 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "proxmox-simplified",
"version": "1.0.0",
"version": "2.0.0",
"description": "Simplified monitor for Proxmox",
"scripts": {
"dev": "NODE_ENV=development cd server && node index.js",
+17
View File
@@ -39,6 +39,7 @@ document.addEventListener('DOMContentLoaded', function() {
const tooltipElement = document.getElementById('custom-tooltip');
const searchInput = document.getElementById('dashboard-search');
const statusElement = document.getElementById('dashboard-status-text');
const versionSpan = document.getElementById('app-version'); // Get version span
if (!connectionStatus) {
console.error('Critical element #connection-status not found!');
@@ -842,4 +843,20 @@ document.addEventListener('DOMContentLoaded', function() {
updateSortUI('main-table', document.querySelector('#main-table th[data-sort="id"]'));
// Data is requested on socket 'connect' event
// --- Fetch and display version ---
fetch('/api/version')
.then(response => response.json())
.then(data => {
if (versionSpan && data.version) {
versionSpan.textContent = data.version;
}
})
.catch(error => {
console.error('Error fetching version:', error);
if (versionSpan) {
versionSpan.textContent = 'error';
}
});
// --- End fetch version ---
}); // End DOMContentLoaded
+3
View File
@@ -215,5 +215,8 @@
<script src="/socket.io/socket.io.js"></script>
<script src="/app.js" defer></script>
<footer class="text-center text-xs text-gray-500 py-4">
Pulse for Proxmox | Version: <span id="app-version">loading...</span>
</footer>
</body>
</html>
+17
View File
@@ -39,6 +39,7 @@ if (missingVars.length > 0 || placeholderVars.length > 0) {
}
// --- END Environment Variable Validation ---
const fs = require('fs'); // Add fs module
const express = require('express');
const http = require('http');
const path = require('path');
@@ -116,6 +117,22 @@ app.use(cors());
app.use(express.json());
app.use(express.static(path.join(__dirname, '../public')));
// --- Add API endpoint for version ---
let appVersion = 'unknown';
try {
const packageJsonPath = path.join(__dirname, '../package.json');
const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf8');
const packageJson = JSON.parse(packageJsonContent);
appVersion = packageJson.version || 'unknown';
} catch (error) {
console.error('Error reading version from package.json:', error.message);
}
app.get('/api/version', (req, res) => {
res.json({ version: appVersion });
});
// --- End API endpoint ---
// Create HTTP server
const server = http.createServer(app);