Add branding, license, and firmware table improvements

- Add mchus.pro branding to header and footer
- Add author info and git repository link
- Add proprietary license (Mike Chus)
- Firmware table: replace count column with separate component/model columns
- Add branding to TXT export reports

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-25 09:39:52 +03:00
parent 83378fa761
commit e52eb909f7
7 changed files with 208 additions and 15 deletions

View File

@@ -155,6 +155,7 @@ function renderConfig(data) {
<button class="config-tab" data-config-tab="gpu">GPU</button>
<button class="config-tab" data-config-tab="network">Network</button>
<button class="config-tab" data-config-tab="pcie">Device Inventory</button>
<button class="config-tab" data-config-tab="fw">Firmware</button>
</div>`;
// Specification tab
@@ -340,6 +341,9 @@ function renderConfig(data) {
}
html += '</div>';
// Firmware tab (content will be populated after firmware loads)
html += '<div class="config-tab-content" id="config-fw"><div id="config-fw-content"><p class="no-data">Загрузка...</p></div></div>';
container.innerHTML = html;
// Initialize config sub-tabs
@@ -368,24 +372,47 @@ async function loadFirmware() {
}
}
let allFirmware = [];
function renderFirmware(firmware) {
allFirmware = firmware || [];
// Render in Firmware tab
const tbody = document.querySelector('#firmware-table tbody');
tbody.innerHTML = '';
if (!firmware || firmware.length === 0) {
tbody.innerHTML = '<tr><td colspan="3" class="no-data">Нет данных о прошивках</td></tr>';
return;
} else {
firmware.forEach(fw => {
const row = document.createElement('tr');
row.innerHTML = `
<td>${escapeHtml(fw.component)}</td>
<td>${escapeHtml(fw.model)}</td>
<td><code>${escapeHtml(fw.version)}</code></td>
`;
tbody.appendChild(row);
});
}
firmware.forEach(fw => {
const row = document.createElement('tr');
row.innerHTML = `
<td>${escapeHtml(fw.device_name)}</td>
<td><code>${escapeHtml(fw.version)}</code></td>
<td>${escapeHtml(fw.build_date || '-')}</td>
`;
tbody.appendChild(row);
});
// Render in Config -> Firmware tab
const configFwContent = document.getElementById('config-fw-content');
if (configFwContent) {
if (!firmware || firmware.length === 0) {
configFwContent.innerHTML = '<p class="no-data">Нет данных о прошивках</p>';
} else {
let html = '<h3>Прошивки компонентов</h3><table class="config-table"><thead><tr><th>Компонент</th><th>Модель</th><th>Версия</th></tr></thead><tbody>';
firmware.forEach(fw => {
html += `<tr>
<td>${escapeHtml(fw.component)}</td>
<td>${escapeHtml(fw.model)}</td>
<td><code>${escapeHtml(fw.version)}</code></td>
</tr>`;
});
html += '</tbody></table>';
configFwContent.innerHTML = html;
}
}
}
async function loadSensors() {
@@ -491,6 +518,7 @@ function renderSerials(serials) {
'PCIe': 'PCIe',
'Network': 'Сеть',
'PSU': 'БП',
'Firmware': 'Прошивка',
'FRU': 'FRU'
};