Migrate frontend to plugin-based asset architecture

- Add equipmentApi and computersApi to replace legacy machinesApi
- Add controller vendor/model fields to Equipment model and forms
- Fix map marker navigation to use plugin-specific IDs (equipmentid,
  computerid, printerid, networkdeviceid) instead of assetid
- Fix search to use unified Asset table with correct plugin IDs
- Remove legacy printer search that used non-existent field names
- Enable optional JWT auth for detail endpoints (public read access)
- Clean up USB plugin models (remove unused checkout model)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-01-29 16:07:41 -05:00
parent c8b325d2e7
commit 180e6a0915
28 changed files with 4123 additions and 3454 deletions

View File

@@ -54,10 +54,10 @@
</div>
</div>
<!-- Recent Machines -->
<!-- Recent Devices -->
<div class="card">
<div class="card-header">
<h3>Recent Machines</h3>
<h3>Recent Devices</h3>
<router-link to="/machines" class="btn btn-secondary btn-sm">View All</router-link>
</div>
@@ -65,26 +65,22 @@
<table>
<thead>
<tr>
<th>Machine #</th>
<th>Alias</th>
<th>Name</th>
<th>Category</th>
<th>Type</th>
<th>Status</th>
<th>Business Unit</th>
</tr>
</thead>
<tbody>
<tr v-for="machine in recentMachines" :key="machine.machineid">
<td>{{ machine.machinenumber }}</td>
<td>{{ machine.alias || '-' }}</td>
<td>{{ machine.machinetype }}</td>
<td>
<span class="badge" :class="getStatusClass(machine.status)">
{{ machine.status || 'Unknown' }}
</span>
</td>
<td>{{ machine.machinenumber || machine.hostname || machine.alias || '-' }}</td>
<td>{{ machine.category || '-' }}</td>
<td>{{ machine.machinetype || '-' }}</td>
<td>{{ machine.businessunit || '-' }}</td>
</tr>
<tr v-if="recentMachines.length === 0">
<td colspan="4" style="text-align: center; color: var(--text-light);">
No machines found
No devices found
</td>
</tr>
</tbody>