Add print badges, pagination, route splitting, JWT auth fixes, and list page alignment

- Fix equipment badge barcode not rendering (loading race condition)
- Fix printer QR code not rendering on initial load (same race condition)
- Add model image to equipment badge via imageurl from Model table
- Fix white-on-white machine number text on badge, tighten barcode spacing
- Add PaginationBar component used across all list pages
- Split monolithic router into per-plugin route modules
- Fix 25 GET API endpoints returning 401 (jwt_required -> optional=True)
- Align list page columns across Equipment, PCs, and Network pages
- Add print views: EquipmentBadge, PrinterQRSingle, PrinterQRBatch, USBLabelBatch
- Add PC Relationships report, migration docs, and CLAUDE.md project guide
- Various plugin model, API, and frontend refinements

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-02-04 07:32:44 -05:00
parent fe7a00b260
commit 83caaa7b7c
89 changed files with 3951 additions and 1138 deletions

View File

@@ -4,61 +4,61 @@
<div class="settings-grid">
<router-link to="/settings/vendors" class="settings-card">
<div class="card-icon">🏭</div>
<div class="card-icon"><Factory :size="28" /></div>
<h3>Vendors</h3>
<p>Manage equipment vendors and manufacturers</p>
</router-link>
<router-link to="/settings/locations" class="settings-card">
<div class="card-icon">📍</div>
<div class="card-icon"><MapPin :size="28" /></div>
<h3>Locations</h3>
<p>Manage physical locations and sites</p>
</router-link>
<router-link to="/settings/statuses" class="settings-card">
<div class="card-icon">🏷</div>
<div class="card-icon"><Tag :size="28" /></div>
<h3>Statuses</h3>
<p>Manage equipment status types</p>
</router-link>
<router-link to="/settings/models" class="settings-card">
<div class="card-icon">📦</div>
<div class="card-icon"><Package :size="28" /></div>
<h3>Models</h3>
<p>Manage equipment models by vendor</p>
</router-link>
<router-link to="/settings/machinetypes" class="settings-card">
<div class="card-icon">🖥</div>
<div class="card-icon"><Monitor :size="28" /></div>
<h3>Machine Types</h3>
<p>Manage machine type categories</p>
</router-link>
<router-link to="/settings/pctypes" class="settings-card">
<div class="card-icon">💻</div>
<div class="card-icon"><Laptop :size="28" /></div>
<h3>PC Types</h3>
<p>Manage PC form factors</p>
</router-link>
<router-link to="/settings/operatingsystems" class="settings-card">
<div class="card-icon"></div>
<div class="card-icon"><Cog :size="28" /></div>
<h3>Operating Systems</h3>
<p>Manage OS versions and EOL dates</p>
</router-link>
<router-link to="/settings/businessunits" class="settings-card">
<div class="card-icon">🏢</div>
<div class="card-icon"><Building :size="28" /></div>
<h3>Business Units</h3>
<p>Manage organizational units</p>
</router-link>
<router-link to="/settings/vlans" class="settings-card">
<div class="card-icon">🌐</div>
<div class="card-icon"><Globe :size="28" /></div>
<h3>VLANs</h3>
<p>Manage virtual LANs</p>
</router-link>
<router-link to="/settings/subnets" class="settings-card">
<div class="card-icon">🔗</div>
<div class="card-icon"><Link :size="28" /></div>
<h3>Subnets</h3>
<p>Manage IP subnets and DHCP</p>
</router-link>
@@ -67,6 +67,7 @@
</template>
<script setup>
import { Factory, MapPin, Tag, Package, Monitor, Laptop, Cog, Building, Globe, Link } from 'lucide-vue-next'
</script>
<style scoped>