Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 23

Thema: WebFrontend für Monitord

  1. #1
    Registriert seit
    13.05.2013
    Beiträge
    11

    WebFrontend für Monitord

    Hallo Zusammen,

    für alle die daran interesse haben, bereits auf eine früher Version eines neuen WebFrontend für monitord (POCSAG-only) zurückzugreifen:
    https://github.com/b-bittner/MonitordWebAPI

    Es befindet sich noch in der Entwicklung und für Verbesserungen und Anregungen bin ich jederzeit offen.

    Grundlegend ist es ein geteiltes Projekt: Es gibt eine Backend-API sowie akutell ein Browser Frontend.
    Ziel der Trennung ist es, einfach unterschiedliche Plattformen zu integrieren, z.B. Browser, Smart-Phone-App,...

    Das Backend ist in PHP geschrieben und wird per POST-JSON angesprochen.
    Auch eine starke Authentifizierung mittel OneTimePassword (OTP; GoogleAuthenticator) ist implementiert.

    Das Frontend ist aktuell in HTML und hauptsächlich in JavaScript (jQuery) geschrieben.
    Die Daten werden per AJAX-Request im Hintergrund aktualisiert

    Wer Fragen oder sonstige Dinge hat, soll sich am besten hier im Forum melden.

    Freue mich auf erste Rückmeldungen, Gruß
    BB

  2. #2
    Registriert seit
    07.09.2003
    Beiträge
    694
    Super, dass jemand mal den Anfang gemacht hat!
    Hier noch zwei Bitten:
    1.) Könntest Du bitte mal ein paar Screenshots machen und einstellen?
    2.) Kannst Du bitte mal posten, welche DB-Felder wie gefüllt werden (am besten den entsprechenden Teil der monitord.xml posten)?

    Danke und Gruß,
    Funkwart

  3. #3
    Registriert seit
    13.05.2013
    Beiträge
    11
    Also hier mal ein Screenshot, ist gar nicht so einfach ein interaktives Frontend das auch noch Datenschutzrelavante Inhalte hat Online zu stellen. Aber jetzt gibts zumindest mal einen ersten Eindruck
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	monitordWebAPI.png 
Hits:	244 
Größe:	60,7 KB 
ID:	14743


    Die Monitord.xml Daten hab ich inzw. in der GitHub-Readme ergänzt. Grundsätzlich sind aber alle Felder vom Namen her flexible da in config-file der API veränderbar.

    Hier trotzdem nochmal der passende Ausschnitt:
    HTML-Code:
    <parameters>
    	<hostname> localhost</hostname>
    	<port> 3306 </port>
    	<username> monitord </username>
    	<password> CHANGETHIS </password>
    	<database> monitorDB </database>
    		<mapping typ="pocsag">
    			<table> monitor_pocsag </table>
    			<field name="timestamp"> timestamp </field>
    			<field name="date" source="mysql"> now() </field>
    			<field name="ric"> ric </field>
    			<field name="sub"> sub </field>
    			<field name="text"> text </field>
    		</mapping>
    </parameters>

    Die Backend-API steht schon recht gut da, vorallem am Desing und Funktionsumfang des Frontends muss ich noch arbeiten. Hilfe und Anregungen sind gerne gesehen.

    Gruß

  4. #4
    Registriert seit
    07.09.2003
    Beiträge
    694
    Vielen Dank,

    irgendwie fehlt mir dann noch etwas. Ich hab mal ein zwei Testeinträge direkt mit phpmyadmin in die Tabelle pocsag gemacht. Alles, was mir angezeigt wird, ist der Screenshot im Anhang. Wo gibts denn das Backend? So, wie man es im Screenshot sieht, zeigt sich mir Dein Script. Was mache ich falsch???

    Danke und Gruß,
    Funkwart
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	screenshot01.gif 
Hits:	169 
Größe:	20,4 KB 
ID:	14745  

  5. #5
    Registriert seit
    13.05.2013
    Beiträge
    11
    Das Backend besteht ist die Datei "ajax_api.php" + die php-classen im Ordner "classes".

    Warum du keine einträge im Browser erhälst kann ich mit den aktuellen informationen auch nicht sagen.
    Aber auf es zeigt mir, daß ich mich noch um eine "config-test-seite" zum überprüfen der installtion kümmern sollte.

    Um dir beim Troubleshooting zu helfen, bräuchte ich im erstmal ein paar mehr Infos:
    -Welcher Browser
    -Welche PHP-Version auf dem Server
    -sind "element_lastrefresh" und "element_lastentry" während deinem Screenshot auf "enable" gesetzt gewesen?
    -was passiert bei die wenn man auf den "History"-Button klickt?
    -Falls du "Firebug" oder ähnl. hast: was steht in der Log-Console?

    Antworten gerne auch per PN.

    Fall wir gemeinsam mal dein System anschauen sollen, können wir das gerne machen.
    Freue mich über jeden Fehler der gefunden wird und das Ding verbessert ;)

    Gruß

  6. #6
    Registriert seit
    07.09.2003
    Beiträge
    694
    Ein Aufruf von ajax_api.php liefert bei mir das Resultat: invalid call
    Ich nutze den Firefox in Version 20.0.1
    Ich setze zum Testen den USBWebserver (www.usbwebserver.com) ein, der beinhaltet
    PHP in Version 5.3.9
    Apache 2.2.21 und
    mysqlnd 5.0.8-dev - 20102224 - $Revision: 321634 $
    Auszug aus der config:
    #Enable/Disable Elements on Frontend
    element_lastrefresh = enable
    element_lastentry = enable
    element_loggedinas = enable
    element_activeusers = enable
    Wenn ich auf "History" klicke, passiert gar nichts.

    Ich würde gerne weiter versuchen, das Ganze zum Laufen zu bewegen und Dir als Tester zur Verfügung stehen.

    Gruß,
    Funkwart

    PS: Kennst Du die Seite http://www.112meldingen.nl/ ? Sehr gut gemacht mit vielen Möglichkeiten zur Filterung. Schau einfach mal drauf, liefert vielleicht ein paar Anregungen.
    Geändert von funkwart (20.05.2013 um 14:25 Uhr)

  7. #7
    Registriert seit
    13.05.2013
    Beiträge
    11
    hmm.. Das sieht auf den ersten Blick nicht so schlecht aus.
    Da in deinem Screenshot die Buttons richtig zu sehen sind, dürfte JavaScript grundsätzlich funktionieren.

    Der "invalid call" ist so gewollt, da das Backen-API nur über AJAX direkt vom Frontend angesprochen werden soll.

    Wenn es dir möglich ist, wäre es hilfreich, den von dir bereits eingerichteten USB-Webserver mir zu schicken/als Download irgendwo bereitstellen.

    Und/Oder installiere das Firefox-Plugin "Firebug"; da gibt es dann eine Konsole die Fehler und Aktivitäten mitschreibt. Am besten Konsole öffnen und dann Seite aktualisieren.

    Bin die nächsten Tage beruflich unterwegs, werd aber mal reinschauen und versuchen den Fehler zu finden.

    Gruß

  8. #8
    Registriert seit
    07.09.2003
    Beiträge
    694
    Wie kommt man denn vom Frontend ins Backend-API? Das ist mir noch nicht klar.
    Weiterhin verstehe ich noch nicht: Wer füllt denn in die Tabellen _log, _session und _user Daten ein? Ich würde denken, dass das das Script erledigt, oder? Aber von wo aus denn? Wo lege ich z.B. User an? Irgendwie verstehe ich da ein paar Dinge noch nicht.
    Ich stelle die Tage die Webserver-Daten mal für Dich zur Verfügung. Ist aber nur die vorgegebene Standard-Installation. Soll ich auch meine (fast leere) MySQL-DB dumpen?

    Gruß,
    Funkwart

  9. #9
    Registriert seit
    13.05.2013
    Beiträge
    11
    Ich sehe schon, meine arbeit an der Doku muss vertieft werde ;)

    Das Backend ist nur eine API, sprich es wird nicht vom User sondern vom Frontend angesprochen was immer nur mit Rohdaten passiert, daher kommt auch der "invalid call" wenn man es mit dem Browser öffnet.
    Mit diesem Aufbau ist es sehr einfach unterschiedliche Frontends zu intergrieren da die eigentlichen Daten und Anfragen immer über die selbe Schnittstelle läuft.

    Um diese Schnittstelle mal zu testen, kann man auch eine Anfrage auf der Kommandozeile absetzen(hier mit deinen Daten, evtl. Hostname und Port anpassen), das Tool "curl" sollte für alle Betriebssystem zu finden sein:
    Code:
    curl -X POST http://localhost:8080/ajax_api.php -d "cmd=requestSettings"
    als Antwort sollte sowas hier kommen (das ist ein JSON-String):
    Code:
    {"settings":{"brower_title":"MonitordWeb-Frontend","element_lastrefresh":"enable",....
    als weitere Anfrage wäre noch möglich:
    Code:
    curl -X POST http://localhost:8080/ajax_api.php -d "cmd=authenticate"
    Anwort darauf sollte so ähnlich aussehen:
    Code:
    {"sessionid":"42bbcf17e19388bc8c65a72d68ab5835","session":"valid","activeusers":"1"}
    Kannst mir ja mal deine Ausgaben zuschicken.

    Gruß

  10. #10
    Registriert seit
    07.09.2003
    Beiträge
    694
    So, hab beides mal durchgeführt. cmd=requestSettings ist in Datei curl1.txt, cmd=authenticate in curl2.txt aufgeführt.

    Ich hoffe, das hilft weiter.

    Danke und Gruß,
    Funkwart
    Angehängte Dateien Angehängte Dateien

  11. #11
    Registriert seit
    13.05.2013
    Beiträge
    11
    Hi,

    also das hilft mal weiter:
    Änder in der Datei "monitordWebAPI_config.ini.php" alle Kommentare von "#..." auf "//...".

    Also erster Eintrag der geändert werden sollte (Müsste Zeile 24 sein):
    "#SQL-Table-name for logging; default "monitor_log"" nach "//SQL-Table-name for logging; default "monitor_log""

    und das nun eben mit allen Kommentaren.

    Dann bitte erneut testen und Rückmeldung geben.

    (da ich unterwegs bin, könnte ich es nur mit sehr viel aufwand jetzt selbst in den Quellen/auf Github ändern)

    Gruß

  12. #12
    Registriert seit
    07.09.2003
    Beiträge
    694
    So, das habe ich jetzt gemacht. Allerdings musste ich auch in allen Kommentarzeilen die doppelten Anführungszeichen (") entfernen, da es sonst immer noch zu Fehlermeldungen kam. Jetzt kommen folgende Ausgaben mit curl. Am Output im Browser ändert das leider gar nichts. Sieht immer noch exakt so aus wie im ersten Post. Auch Klicken auf die Buttons änder nichts.

    Gruß,
    Funkwart
    Angehängte Dateien Angehängte Dateien

  13. #13
    Registriert seit
    13.05.2013
    Beiträge
    11
    Hmm.. also die Ausgaben sind jetzt genau so wie sie sein sollten.

    Jetzt wäre eine Suche mit "Firebug" ganz gut (Wie schonmal ein paar Post vorher beschrieben).
    Den einzigsten Ansatz den ich grad hab ist, daß es an der Variante "localhost" und/oder Port 8080 liegt. Diese Kombination hatte ich bei mir während der Entwicklung nicht.

    Weiterhin wäre deinen bereits eingerichteter USB-Webserver ganz gut. Wenn ich das konzept dieses Server richtig verstanden habe, sollte es ja reichen einfach das gesamte Verzeichnis zu Zippen und dann zur Verfügung zu stellen. Dann sollten ja alle Daten (incl. der MySQL-Tables) drin sein??

    Gruß

  14. #14
    Registriert seit
    07.09.2003
    Beiträge
    694
    So, ich hab jetzt mal den Firebug installiert. Die Konsole sagt mir:
    ReferenceError: update is not defined
    update();
    /monitord/(Zeile 68)

    Hilft das weiter?

    Ich kann Dir den kompletten Webserver zur Verfügung stellen, hast Du nen ftp-Server, wo ich es hochladen kann? PM an mich dazu.

    Danke und Gruß,
    Funkwart

  15. #15
    Registriert seit
    07.09.2003
    Beiträge
    694
    Bin etwas weiter:
    In der index.php muss bei den script-Einträgen (Zeile 9-12)
    Code:
    src="./JS/..."
    eingetragen werden. Das hat natürlich mit meinem Unterverzeichnis zu tun.
    Jetzt zeigt er mir direkt den Login-Dialog an. Leider habe ich keinen Login. Muss ich den direkt in der mysql-db anlegen?
    Egal, was ich eingebe im Login-Dialog, ich bekomme immer:
    Code:
    Fehler:SyntaxError: JSON.parse: unexpected characterparsererror
    Soweit mein Zwischenstand.
    Gruß,
    Funkwart

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •