# Kontext-Templates

## Einleitung

Kontext-Templates sind HTML-Dateien, die u.a. Makros enthalten. Dieses Dateien können als Kontextmenüs ("Rechtsklick"-Menüs) für die Objekte auf der Map benutzt werden.

Die Kontextmenüs befinden sich in `nagvis/templates/context/` relativ zum NagVis-Root-Verzeichnis. Die Templates sind wie folgt benannt: `tmpl.<name>.html`. Es ist möglich, eine CSS-Datei zum Template hinzuzufügen, der Name lautet dann: `tmpl.<name>.css`.

Es gibt einige sogenannte Makros in Kontextmenüs, die für alle Objekte verfügbar sind, und einige, die nur für spezielle Makros gelten. Alle Standardmakros sind nachfolgend aufgeführt.

## Allgemeines

Die folgenden Makros sind in Hover-Menüs für alle Objekttypen verfügbar:

Makro | Beschreibung
--- | ---
Allgemein
[obj_id] | ID des Objekts in JavaScript. Wird benötigt, um die objektspezifischen Teile zu lokalisieren, z.B. für eine manuelle Aktualisierung einer Statusinformation.
[name] | Name des Objekts (Hostname, Hostgroupname, Servicegroupname, Mapname,...)
[backend_id] | Die backend_id des verwendeten Backends dieses Objekts (Neu in 1.5.2).
[custom_1] | Das erste benutzerdefinierte Makro je Backend. Kann nützlich sein, um Backend-spezifische URLs zu setzen.
[custom_2] | Zweites benutzerdefiniertes Makro je Backend (s.o.).
[custom_3] | Drittes benutzerdefiniertes Makro je Backend (s.o.).
[map_name] | Name der aktuellen Map/Automap (Neu in 1.5.2).
Sprachmakros
[lang_refresh_status] | Bezeichnung für die Auffrischung des Zustands des Objekts im Frontend.
[lang_schedule_downtime] | Bezeichnung für die Planung einer Ausfallzeit in Nagios.
[lang_reschedule_next_check] | Bezeichnung für die erneute Planung der nächsten Prüfung des Objekts in Nagios.
[lang_connect_by_ssh] | Label für die Verbindung eines Hosts per ssh.
Pfade
[html_base] | Absolute URL zur HTML-Basis (Default: /nagios/nagvis)
[html_cgi] | Absolute URL zu den Nagios-CGIs. Benutzt einen objektabhängigen Wert. Hängt vom verwendeten Backend ab. Wird kein backend-spezifischer Wert gesetzt, gilt der Default. (Default: /nagios/cgi-bin)
[html_templates] | Pfad zum Context-Templates-Verzeichnis (Default: /nagios/nagvis/nagvis/etc/templates/context)
[html_template_images] | Pfad zum Context-Template-Images-Verzeichnis (Default: /nagios/nagvis/nagvis/images/templates/context)

## Spezielle Makros

Es gibt Makros für Context-Templates eines bestimmten Typs. Diese Makros sollten zwischen "Section"-Makros stehen. Die "Section"-Makros definieren, dass der eingeschlossene Code entfernt wird, wenn das Hover-Template nicht für diesen Typ geparst wird.

Ein "Section"-Makro für Host-Makros sieht wie folgt aus:

    <!-- BEGIN host -->.+?<!-- END host -->

Nachfolgend finden Sie eine vollständige Liste der speziellen Makros.

### Host-Objekte

Makro | Beschreibung
--- | ---
[address] | Adresse des in Nagios konfigurierten Hosts
[pnp_hostname] | Hostname für Links nach PNP (Leerzeichen ersetzt, Neu in 1.5)

### Service-Objekte

Makro | Beschreibung
--- | ---
[service_description] | Service-Beschreibung in Nagios

### Host- und Servicegroup-Objekte

Die Abschnittsmakros `<!-- BEGIN hostgroup -->` und `<!-- BEGIN servicegroup -->` existieren, um speziellen Template-Code für Hostgroup- und Servicegroup-Kontextmenüs zu ermöglichen. Beide bringen keine speziellen objektspezifischen Makros mit sich (Neu in 1.5.2).