Improve protocol mappings UI with human-readable names
- Update displayProtocolMappings to show station/equipment/data type names from tag metadata - Ensure tag metadata is loaded before displaying protocol mappings - Update table headers to indicate Name & ID format - Users now see descriptive names instead of raw IDs in the mappings table Co-authored-by: openhands <openhands@all-hands.dev>
This commit is contained in:
parent
5a2cdc2324
commit
86e92f6111
|
|
@ -563,9 +563,9 @@ DASHBOARD_HTML = """
|
||||||
<tr style="background: #f8f9fa;">
|
<tr style="background: #f8f9fa;">
|
||||||
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">ID</th>
|
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">ID</th>
|
||||||
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Protocol</th>
|
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Protocol</th>
|
||||||
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Station</th>
|
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Station (Name & ID)</th>
|
||||||
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Equipment</th>
|
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Equipment (Name & ID)</th>
|
||||||
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Data Type</th>
|
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Data Type (Name & ID)</th>
|
||||||
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Protocol Address</th>
|
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Protocol Address</th>
|
||||||
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Database Source</th>
|
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Database Source</th>
|
||||||
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Actions</th>
|
<th style="padding: 10px; border: 1px solid #ddd; text-align: left;">Actions</th>
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,11 @@ function selectProtocol(protocol) {
|
||||||
|
|
||||||
async function loadProtocolMappings() {
|
async function loadProtocolMappings() {
|
||||||
try {
|
try {
|
||||||
|
// Ensure tag metadata is loaded first
|
||||||
|
if (tagMetadata.stations.length === 0 || tagMetadata.dataTypes.length === 0) {
|
||||||
|
await loadTagMetadata();
|
||||||
|
}
|
||||||
|
|
||||||
const params = new URLSearchParams();
|
const params = new URLSearchParams();
|
||||||
if (currentProtocolFilter !== 'all') {
|
if (currentProtocolFilter !== 'all') {
|
||||||
params.append('protocol_type', currentProtocolFilter);
|
params.append('protocol_type', currentProtocolFilter);
|
||||||
|
|
@ -140,13 +145,22 @@ function displayProtocolMappings(mappings) {
|
||||||
}
|
}
|
||||||
|
|
||||||
mappings.forEach(mapping => {
|
mappings.forEach(mapping => {
|
||||||
|
// Look up human-readable names from tag metadata
|
||||||
|
const station = tagMetadata.stations.find(s => s.id === mapping.station_id);
|
||||||
|
const equipment = tagMetadata.equipment.find(e => e.id === mapping.equipment_id);
|
||||||
|
const dataType = tagMetadata.dataTypes.find(dt => dt.id === mapping.data_type_id);
|
||||||
|
|
||||||
|
const stationDisplay = station ? `${station.name} (${station.id})` : (mapping.station_id || '-');
|
||||||
|
const equipmentDisplay = equipment ? `${equipment.name} (${equipment.id})` : (mapping.equipment_id || '-');
|
||||||
|
const dataTypeDisplay = dataType ? `${dataType.name} (${dataType.id})` : (mapping.data_type_id || '-');
|
||||||
|
|
||||||
const row = document.createElement('tr');
|
const row = document.createElement('tr');
|
||||||
row.innerHTML = `
|
row.innerHTML = `
|
||||||
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.id}</td>
|
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.id}</td>
|
||||||
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.protocol_type}</td>
|
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.protocol_type}</td>
|
||||||
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.station_id || '-'}</td>
|
<td style="padding: 10px; border: 1px solid #ddd;">${stationDisplay}</td>
|
||||||
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.equipment_id || '-'}</td>
|
<td style="padding: 10px; border: 1px solid #ddd;">${equipmentDisplay}</td>
|
||||||
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.data_type_id || '-'}</td>
|
<td style="padding: 10px; border: 1px solid #ddd;">${dataTypeDisplay}</td>
|
||||||
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.protocol_address}</td>
|
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.protocol_address}</td>
|
||||||
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.db_source}</td>
|
<td style="padding: 10px; border: 1px solid #ddd;">${mapping.db_source}</td>
|
||||||
<td style="padding: 10px; border: 1px solid #ddd;">
|
<td style="padding: 10px; border: 1px solid #ddd;">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue