54 lines
5.0 KiB
HTML
54 lines
5.0 KiB
HTML
{% set data = inventory.get('data') or {} %}
|
||
{% set machine = data.get('hardware') or {} %}
|
||
{% set identity = data.get('identity') or {} %}
|
||
{% set os = data.get('os') or {} %}
|
||
{% set network = data.get('network') or {} %}
|
||
{% set cpu = machine.get('cpu') or {} %}
|
||
{% macro fields(items) %}
|
||
<dl class="inventory-fields mb-0">
|
||
{% for label, value in items %}{% if value is not none and value != '' %}
|
||
<div><dt>{{ label }}</dt><dd>{{ value }}</dd></div>
|
||
{% endif %}{% endfor %}
|
||
</dl>
|
||
{% endmacro %}
|
||
<div class="card border-0 shadow-sm mb-3 inventory-specs">
|
||
<div class="card-body">
|
||
<div class="d-flex flex-wrap justify-content-between gap-2 mb-3">
|
||
<div><div class="text-muted small">PC / Mac inventory</div><h5 class="mb-1">{{ inventory.get('name') or identity.get('computer_name') or 'Parret maskine' }}</h5><span class="text-muted">{{ machine.get('manufacturer') or '' }} {{ machine.get('model') or '' }}</span></div>
|
||
<div class="small text-muted">Indsamlet<br><strong>{{ (inventory.get('collected_at') or data.get('collected_at') or 'Ukendt') | replace('T', ' ') }}</strong></div>
|
||
</div>
|
||
<div class="inventory-grid">
|
||
<section><h6><i class="bi bi-cpu me-2"></i>Hardware</h6>
|
||
{{ fields([('Serienummer', machine.get('serial') or machine.get('serial_number')), ('Processor', inventory.get('cpu') or cpu.get('name')), ('Kerner / tråde', (cpu.get('cores', '–') ~ ' / ' ~ cpu.get('threads', '–')) if cpu else none), ('Hukommelse', ((inventory.get('ram_gb') or machine.get('ram_gb')) ~ ' GB') if (inventory.get('ram_gb') or machine.get('ram_gb')) else none), ('Grafikkort', machine.get('gpu')), ('BIOS-version', machine.get('bios_version')), ('BIOS-dato', machine.get('bios_date'))]) }}
|
||
</section>
|
||
<section><h6><i class="bi bi-window me-2"></i>System</h6>
|
||
{{ fields([('Operativsystem', inventory.get('os') or os.get('caption')), ('Version', os.get('version')), ('Build', os.get('build')), ('Installeret', os.get('install_date')), ('Seneste opstart', os.get('last_boot')), ('Oppetid', (os.get('uptime_hours') ~ ' timer') if os.get('uptime_hours') is not none else none), ('Domæne', identity.get('domain')), ('Bruger', identity.get('user')), ('Offentlig IP', network.get('wan_ip'))]) }}
|
||
</section>
|
||
</div>
|
||
{% if machine.get('disks') %}
|
||
<section class="mt-4"><h6><i class="bi bi-device-hdd me-2"></i>Diske <span class="text-muted">({{ machine.disks | length }})</span></h6>
|
||
<div class="table-responsive"><table class="table table-sm mb-0"><thead><tr><th>Model</th><th>Forbindelse</th><th class="text-end">Kapacitet</th></tr></thead><tbody>
|
||
{% for disk in machine.disks %}<tr><td>{{ disk.get('model') or '–' }}</td><td>{{ disk.get('interface') or '–' }}</td><td class="text-end text-nowrap">{{ (disk.size_gb ~ ' GB') if disk.get('size_gb') is not none else '–' }}</td></tr>{% endfor %}
|
||
</tbody></table></div>
|
||
</section>
|
||
{% endif %}
|
||
{% if network.get('adapters') %}
|
||
<section class="mt-4"><h6><i class="bi bi-ethernet me-2"></i>Netværk</h6>
|
||
<div class="table-responsive"><table class="table table-sm mb-0"><thead><tr><th>Netværkskort</th><th>IP-adresser</th><th>MAC-adresse</th><th>DHCP</th></tr></thead><tbody>
|
||
{% for adapter in network.adapters %}<tr><td>{{ adapter.get('description') or '–' }}</td><td>{% set ips = adapter.get('ip') or [] %}{% if ips is string %}{{ ips }}{% else %}{% for ip in ips %}<div>{{ ip }}</div>{% else %}–{% endfor %}{% endif %}</td><td class="text-nowrap">{{ adapter.get('mac') or '–' }}</td><td>{{ 'Ja' if adapter.get('dhcp_enabled') == true else ('Nej' if adapter.get('dhcp_enabled') == false else '–') }}</td></tr>{% endfor %}
|
||
</tbody></table></div>
|
||
</section>
|
||
{% endif %}
|
||
{% set defender = (data.get('security') or {}).get('windows_defender') %}
|
||
{% if defender %}<section class="mt-4"><h6><i class="bi bi-shield-check me-2"></i>Windows Defender</h6>
|
||
{{ fields([('Aktiveret', 'Ja' if defender.get('enabled') == true else ('Nej' if defender.get('enabled') == false else 'Ukendt')), ('Realtidsbeskyttelse', 'Ja' if defender.get('real_time_protection') == true else ('Nej' if defender.get('real_time_protection') == false else 'Ukendt')), ('Opdateret', defender.get('updated'))]) }}</section>{% endif %}
|
||
{% if data.get('software') %}
|
||
<details class="inventory-software mt-4"><summary>Installerede programmer <span class="text-muted">({{ data.software | length }})</span></summary>
|
||
<div class="table-responsive mt-2" style="max-height: 420px; overflow: auto;"><table class="table table-sm mb-0"><thead><tr><th>Program</th><th>Version</th><th>Udgiver</th></tr></thead><tbody>
|
||
{% for program in data.software %}<tr><td>{{ program.get('name') or '–' }}</td><td>{{ program.get('version') or '–' }}</td><td>{{ program.get('publisher') or '–' }}</td></tr>{% endfor %}
|
||
</tbody></table></div>
|
||
</details>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|