In diesem Beitrag möchte ich zeigen, wie man eine Meldungsanzeige in IPSView realisieren kann.
Folgende Objekte werden in IP-Symcon benötigt:
- String Variable – enthält die eigentliche Message
- Boolean Variable – Statusanzeige “neue Meldung vorhanden”
- String Variable – Remote Steuerung des aktuellen Popups
- Skript für den Reset der Meldungen
- Skript(e) für das Setzen bzw. Hinzufügen von Meldungen
Mit folgenden Skript kann man eine Meldung hinzufügen:
<? // Neue Nachricht an die bestehenden Nachrichten anhngen SetValue(25122, GetValue(25122 ).PHP_EOL.PHP_EOL.'Meine neue Nachricht ...'); // Set MessageStatus auf true setzen um das Vorhandensein einer neuen Nachricht anzuzeigen SetValue(56867, true); // Popup für Meldungen am Client einblenden SetValue(34795, 'MessagePopup'); ?>
Erste Zeile fügt eine neue Meldung zu den bestehenden Meldungen in der MessageText Variable hinzu. Die zweite Zeile setzt die Statusvariable auf true, um am Client ein Icon anzuzeigen. Die dritte Zeile setzt das Popup das am Client angezeigt werden soll.
Um die Meldungen wieder zu löschen, führt man das Reset Skript aus.
<? // Meldungen löschen SetValue(25122, ''); // Reset MessageStatus SetValue(56867, false); // Popup rücksetzen SetValue(34795, ''); ?>
Integration in IPSView:
Als erstes setzt man die Variable RemotePopup um eine Synchronisierung des aktiven Popups zu ermöglichen. Diese Eigenschaft findet man wenn man die Seite im Zeichenfenster selektiert (Property „Aktives Popup“, Experteneinstellungen müssen aktiviert sein):
Nun erstellt man ein neues Popup Fenster und benennt es „MessagePopup“. Danach platziert man eine TextBox von der Variable MessageText und einen Button, der auf das Skript „ClearMessages“ verlinkt ist.
Alternativ kann man auch eine HTMLBox für die Meldungen verwenden, in diesem Fall kann man bei den Meldungen auch HTML Elemente verwenden.
Die eigentlich Anzeige des Meldungsfensters realisiert man jetzt in dem Teil der View, wo das Popup angezeigt werden soll. In meinem Fall ist es die Header Inlinepage meiner View. Hier positioniert man als erstes ein ToggleImage von der Variable „MessageStatus“. Für „Bild Aus“ wählt man ein transparentes Image und für „Bild Ein“ ein Bild das neue Meldungen signalisieren soll.
Darüber legt man nun ein DetailImage und wählt als Popupseite die oben erzeugte Seite „MessagePopup“. Als Image nimmt man hier ebenfalls ein transparentes Image.
Wenn man jetzt das Skript zum Setzen einer Message ausführt, erscheint das Image in der Titelleiste der View und das Popup wird automatisch angezeigt. Beim Betätigen des Buttons „Meldungen löschen“, werden die Meldungen gelöscht, das Popup geschlossen und auch das Image wieder ausgeblendet.