{% extends "base.html" %} {% block title %}Component Inventory{% endblock %} {% block head_extra %} {% endblock %} {% block content %}

Component Inventory

Comprehensive tracking of network device components across your infrastructure

{{ "{:,}".format(overall_stats.total or 0) }}
Total Components
{{ "{:,}".format(overall_stats.with_serials or 0) }}
With Serial Numbers
{{ "{:,}".format(overall_stats.unique_devices or 0) }}
Devices Tracked
{% if (overall_stats.total or 0) > 0 %} {{ "%.1f"|format(((overall_stats.with_serials or 0) / (overall_stats.total or 1)) * 100) }}% {% else %} 0% {% endif %}
Serial Coverage
{% if not components %}

No components found

{% if filters.search or filters.type or filters.vendor or filters.device or filters.has_serial %} No components match your current filters. Try adjusting your search criteria. {% else %} No hardware components have been discovered yet. Run inventory captures to populate this data. {% endif %}

{% if filters.search or filters.type or filters.vendor or filters.device or filters.has_serial %} Clear Filters {% else %} Add Component Manually {% endif %}
{% endif %} {% if type_stats %}

Component Types

{% set max_count = type_stats[0].total if type_stats else 1 %} {% for stat in type_stats[:8] %}
{{ stat.type or 'Unknown' }}
{{ "{:,}".format(stat.total) }}
{{ stat.with_serials }}/{{ stat.total }} serials
{% endfor %}
{% endif %}
{% if pagination.per_page %} {% endif %}
{% if components %} {% for comp in components %} {% endfor %}
Component Type Serial Number Position Device Vendor Confidence Actions
{% if comp.description %}
{{ comp.description }}
{% endif %} {% if comp.extraction_source == 'manual' %} Manual {% endif %}
{{ comp.type or 'Unknown' }} {% if comp.serial %} {{ comp.serial }} {% else %} No serial {% endif %} {{ comp.position or '—' }} {{ comp.device_name }} {% if comp.device_model %}
{{ comp.device_model }}
{% endif %}
{{ comp.vendor_name or '—' }} {% if comp.extraction_confidence is not none %}
{% else %} — {% endif %}
Page {{ pagination.page }} of {{ pagination.total_pages }} — {{ "{:,}".format(pagination.total) }} total
{% if pagination.has_prev %} « First ‹ Prev {% else %} {% endif %} {% if pagination.has_next %} Next › Last » {% else %} {% endif %}
{% endif %}
{% endblock %}