{% extends "shared/frontend/base.html" %} {% block title %}{{ location.name }} - BMC Hub{% endblock %} {% block extra_css %} {% endblock %} {% block content %}
Lokation #{{ location.id }} {% set type_label = { 'kompleks': 'Kompleks', 'bygning': 'Bygning', 'etage': 'Etage', 'rum': 'Rum', 'kantine': 'Kantine', 'moedelokale': 'Mødelokale', 'customer_site': 'Kundesite', 'vehicle': 'Køretøj' }.get(location.location_type, location.location_type) %} {% set type_color = { 'kompleks': '#0f4c75', 'bygning': '#1abc9c', 'etage': '#3498db', 'rum': '#e67e22', 'kantine': '#d35400', 'moedelokale': '#16a085', 'customer_site': '#9b59b6', 'vehicle': '#8e44ad' }.get(location.location_type, '#6c757d') %} {{ type_label }} {% if location.has_cross_field %} Krydsfelt {% endif %} {% if location.is_active %} Aktiv {% else %} Inaktiv {% endif %}
Navn
{{ location.name }}
Overordnet
{% if location.parent_location_id and location.parent_location_name %} {{ location.parent_location_name }} {% else %} Ingen {% endif %}
Kontakter
{{ location.contacts|length if location.contacts else 0 }}
Underlokationer
{{ location.children|length if location.children else 0 }}
Sager på lokationen
Sager knyttet til denne lokation eller en af dens underlokationer.
{{ location.related_cases|length if location.related_cases else 0 }} sager
{% if location.related_cases %} {% else %}
Der er ingen sager knyttet til denne lokation eller dens underlokationer.
{% endif %}
Lokationens relationer
Viser kun direkte overordnet og direkte underlokationer.
Aktuel lokation
{{ location.name }}
{{ type_label }}
Overordnet lokation
{% if location.parent_location_id and location.parent_location_name %} {{ location.parent_location_name }} Åbn {% else %} Denne lokation er øverst i strukturen. {% endif %}
Underlokationer
{% if location.children %}
{% for child in location.children %}
{{ child.name }}
{{ child.location_type or 'Lokation' }}
{% endfor %}
{% else %} Ingen direkte underlokationer. {% endif %}
Billeder på lokation
Foto af adgang, rum, installationer eller skiltning.
Træk billeder hertileller klik for at vælge filer
{% if location.files %}
{% for file in location.files %}{% endfor %}
{% else %}Ingen billeder uploadet endnu.{% endif %}
Grundlæggende oplysninger

{{ location.name }}

{{ type_label }}

{% if location.customer_id and location.customer_name %} {{ location.customer_name }} {% else %} — {% endif %}

{% if location.is_active %}Aktiv{% else %}Inaktiv{% endif %}

{% if location.phone %} {{ location.phone }} {% else %} — {% endif %}

{% if location.email %} {{ location.email }} {% else %} — {% endif %}

Adresse

{{ location.address_street | default('—') }}

{{ location.address_city | default('—') }}

{{ location.address_postal_code | default('—') }}

{{ location.address_country | default('DK') }}

Noter

{{ location.notes | default('—') }}

Metadata

{{ location.created_at | default('—') }}

{{ location.updated_at | default('—') }}

Kontaktpersoner
{% if location.contacts %}
{% for contact in location.contacts %}
{% if contact.related_contact_id %} {{ contact.contact_name }} {% else %} {{ contact.contact_name }} {% endif %}

{% if contact.role %}{{ contact.role }}{% endif %} {% if contact.is_primary %}Primær{% endif %}

{% if contact.contact_email %}

{{ contact.contact_email }}

{% endif %} {% if contact.contact_phone %}

{{ contact.contact_phone }}

{% endif %}
{% endfor %}
{% else %}

Ingen kontakter registreret

{% endif %}
Adgangsforhold
{% if location.operating_hours %}
{% for hours in location.operating_hours %} {% endfor %}
Dag Åbner Lukker Status Handlinger
{{ hours.day_name }} {{ hours.open_time | default('—') }} {{ hours.close_time | default('—') }} {% if hours.is_open %} Åben {% else %} Lukket {% endif %}
{% else %}

Ingen adgangsforhold registreret

{% endif %} {% if location.access_files %}
Filer til adgangsforhold
{% for file in location.access_files %}
{{ file.original_filename }}{% if file.comment %}
{{ file.comment }}
{% endif %}
{% endfor %}
{% endif %}
Tjenester
{% if location.services %}
{% for service in location.services %}
{{ service.service_name }}
{% if service.is_available %}Tilgængelig{% else %}Ikke tilgængelig{% endif %}
{% endfor %}
{% else %}

Ingen tjenester registreret

{% endif %}
Kapacitetssporing
{% if location.capacity %}
{% for cap in location.capacity %} {% set usage_pct = ((cap.used_capacity / cap.total_capacity) * 100) | int %}
{{ cap.capacity_type }}
{{ cap.used_capacity }} / {{ cap.total_capacity }}
{{ usage_pct }}% i brug
{% endfor %}
{% else %}

Ingen kapacitetsdata registreret

{% endif %}
Alle relaterede lokationer
Overordnede, søskende og underlokationer samlet ét sted. Klik på en lokation for at åbne den.
{{ location.related_location_count }} relaterede
{% macro render_relation_node(node) %}
  • {% if node.id == location.id %} {{ node.name }} Denne lokation {% else %} {{ node.name }} {% if node.location_type %}{{ node.location_type }}{% endif %} {% endif %} {% if node.children %}
      {% for child in node.children %}{{ render_relation_node(child) }}{% endfor %}
    {% endif %}
  • {% endmacro %} {% if location.relation_tree %}
      {{ render_relation_node(location.relation_tree) }}
    {% else %} Ingen relationer registreret. {% endif %}
    {% if location.same_customer_locations %}
    Andre lokationer hos samme kunde
    De er knyttet til samme kunde, men ligger ikke i dette lokationstræ.
    {{ location.same_customer_locations|length }}
    {% for related in location.same_customer_locations %} {{ related.name }} {{ related.location_type or 'Lokation' }} {% endfor %}
    {% endif %}
    Overordnet lokation
    {% if location.parent_location_id and location.parent_location_name %} {{ location.parent_location_name }} {% else %} Ingen (øverste niveau) {% endif %}
    Underlokationer
    {% if location.children %} {% else %} Ingen underlokationer {% endif %}
    Tilføj underlokation
    Fuld formular

    Den hurtige formular opretter direkte under {{ location.name }}. Brug fuld formular, hvis du også vil sætte adresse, noter eller GPS med det samme.

    Vægstik
    Netværksstik registreret direkte på denne lokation.
    Oversigt {% if location.location_type in ['customer_site', 'bygning', 'etage', 'rum'] %} {% endif %}
    {% if location.location_type not in ['customer_site', 'bygning', 'etage', 'rum'] %} Vægstik kan oprettes på kundesites, bygninger, etager og rum. {% elif location.wall_outlets %}
    {% for outlet in location.wall_outlets %} {% endfor %}
    StikStatusPatchpanelSwitch
    {{ outlet.outlet_number or 'Ikke navngivet' }}{% if outlet.is_wan %} WAN{% endif %}{% if outlet.category %}
    {{ outlet.category }}
    {% endif %}
    {{ outlet.status }}{{ outlet.patch_panel or '—' }}{% if outlet.patch_port %} / {{ outlet.patch_port }}{% endif %}{{ outlet.switch_name or '—' }}{% if outlet.switch_port %} / {{ outlet.switch_port }}{% endif %}
    {% else %}Ingen vægstik registreret endnu.{% endif %}
    {% if location.location_type == 'rum' and location.has_cross_field %}
    Krydsfelt
    Patchfelter og porte i dette rum.
    Vis porte:
    Grøn = aktiv · Gul = fejl · Turkis = WAN · Lilla = hardware · Blågrå = ikke konfigureret
    {% for field in location.cross_fields %}
    {{ field.name }} Panel {{ field.display_order }} · {{ field.port_count }} porte{% if field.port_label_format == 'paired' %} · A/B-par{% endif %}
    {% for port in field.ports %}{% set port_class = 'wan' if port.is_wan else ('smart-issue' if port.smart_state == 'issue' else ('assigned' if port.outlet_id and port.outlet_status == 'active' else (port.outlet_status if port.outlet_id else 'unconfigured'))) %}{% endfor %}
    {% else %}Ingen krydsfelter oprettet endnu.{% endfor %}
    {% endif %}
    Hardware på lokation
    {% if location.hardware %}
    {% for hw in location.hardware %}
    {{ hw.asset_type }}{% if hw.serial_number %} · {{ hw.serial_number }}{% endif %}
    Nr. {{ hw.location_display_order or loop.index }}
    Rækkefølge
    {{ hw.status }}
    {% if hw.uisp_device %} {% set uisp = hw.uisp_device %} {% set overview = uisp.overview or {} %}
    UISP live-data
    {% if uisp.device_link %}Åbn i UISP{% endif %}
    Hostnavn{{ uisp.hostname or uisp.display_name or uisp.name or '—' }}
    Status{{ uisp.status or 'Ukendt' }}
    IP-adresser{{ (uisp.ip_addresses or []) | join(', ') or '—' }}
    MAC{{ uisp.mac_address or '—' }}
    Senest set{{ uisp.last_seen or '—' }}
    Firmware{{ uisp.firmware.version or uisp.firmware.name or '—' }}
    Platform / rolle{{ uisp.platform or '—' }}{% if uisp.device_role %} · {{ uisp.device_role }}{% endif %}
    Uptime{{ overview.uptime or overview.serviceUptime or '—' }}
    CPU / RAM{{ overview.cpu or '—' }} / {{ overview.ram or '—' }}
    Temperatur{{ overview.temperature or '—' }}
    Synkroniseret{{ uisp.synced_at or '—' }}
    {% endif %} {% if hw.switch_ports %}
    Switch-porte ({{ hw.switch_ports | length }})
    Klik på en switch-port for at oprette eller redigere tilknytningen. Grøn/rød kant viser live linkstatus fra UISP.
    {% endif %}
    {% endfor %}
    {% else %} Ingen hardware registreret på denne lokation {% endif %}
    Ændringshistorik
    {% if location.audit_log %}
    {% for entry in location.audit_log | reverse %}
    {{ entry.event_type }}

    {{ entry.created_at }}

    {% if entry.user_id %} {{ entry.user_id }} {% endif %}
    {% if entry.changes %}

    {{ entry.changes }}

    {% endif %}
    {% endfor %}
    {% else %}

    Ingen historik tilgængelig

    {% endif %}
    {% endblock %} {% block scripts %} {% endblock %}