Mit entsprechendem Markup im HTML kann man so jede beliebige Stelle derart klickbar machen, dass ein Popup erscheint, indem man den Status der betroffenen Entität per AJAX verändern kann.
Der Aufbau ist relativ flexibel. Wichtig ist nur, dass sich alle Informationen (Icon, Typ, TypID, Zustand, Zustandsname, updateStamp) innerhalb der CSS-Klasse stateWrapper befinden. Die genannten Informationen müssen nicht vorhanden sein, sind sie es aber, werden sie entsprechend aktualisiert. Diese Informationen müssen in entsprechenden CSS-Klassen vorhanden sein:
.stateWrapper
.stateIcon
.stateName
.stateStamp
Das Icon sollte immer vorhanden sein und der entsprechende Tag über die folgenden Attribute verfügen:
state
gesetzt werden. Auf all diese Elemente wird der Listener gehetz (dynamische Elemente können mittels registerElement($el) registriert werden)
stateIcon
zu entfernen und durch die neue zu ersetzen.#
oder .
). Wird auf der aktuellen Entität der Zustand gewechselt, wird im Anschluss das Objekt mit der angegebenen CSS-Kennung gesucht und ein Refresh durchgeführt. Dabei wird der Zustand der Ziel-Entität erfragt und alle Informationen werden ersetzt, die durch die oben genannten CSS-Klassen angesprochen werden. Wichtig: die Entität, die aktualisiert werden soll, muss zwangsweise die Daten-Attribute data-type
und data-id
aufweisen. Soll sich die Statusfarbe ändern, muss zusätzlich noch data-state
angegeben werden.<div class="stateWrapper"> <i class="stateIcon fa fa-square state-active" data-toggle="state" data-type="issue" data-id="1337" data-state="active" data-reload="#iWantThis"></i> <span class="stateName">Aktiv</span> <span class="stateStamp">Vor 5 Minuten</span> </div> <div class="stateWrapper"> <i class="stateIcon fa fa-book state-inactive" data-type="package" data-id="4711" data-state="inactive"></i> <!-- optional weitere .state-Angaben --> </div>