Eventfilterung für Infoscreen
-
@Alex Ich hab da leider kein KnowHow. Ich kämpfe mich eher durch die Scripte und suche was ich wie/wo anpassen muss, damit es bei uns läuft/laufen würde. Ich denke es fängt schon mit anderen Raumbezeichnungen an
Hab das dauerhaft bei uns stehen obwohl was "läuft"
Wo finde ich die Beschränkung auf einen Tag? Ich würde das gerne auf eine Woche abändern. Gibt es die Möglichkeit überhaupt?
Naja, ist noch ein weiter Weg (für mich)
Gruß
Max -
@jmrauen die Idee mit der API mit Datumsgrenze wäre echt Hammer!
Weil die API-calls dauern echt relativ lange, und wenn ich das für jeden Serientermin mache, dauert das eben sehr lange. Momentan lasse ich die Seite einfach alle 15 Minuten refreshen, wodurch das relativ störend wäre. Durch lazy loading könnte man das Ganze natürlich umgehen, aber das wäre eben auch nochmal einiges an Arbeit. Wenn es also nicht so viel Aufwand ist, diese API-Funktion zur Verfügung zu stellen, wäre das extrem hilfreich.@MaxStro Ich kann mit dem Fehlerbild ehrlich gesagt nicht sehr viel anfangen. Ich würde vermutlich mal überprüfen, was überhaupt an Events von der API kommt. Das geht am einfachsten, indem du in "js/info.js" in Zeile 1 "DEBUG = 2" setzt. Dadurch wird jeweils eine Textbox mit allen Ressourcen und allen Events an die Infoscreenseite angehängt. Ich benutze dann ganz gerne einen JSON-Viewer (http://jsonviewer.stack.hu/), um mir das JSON etwas näher anzugucken. Keine Ahnung inwiefern dir das hilft.
Und benutzt du einen Editor mit Syntax Highlighting (sowas wie Notepad++), um die Scripte durchzukämpfen? Nur mit dem Editor ist das wie ich finde tatsächlich eine ziemliche Qual. -
@Alex Normaler Texteditor am Mac. Wer mal nach was anderem suchen
Danke
-
@MaxStro: Ein Editor mit Syntax Highlighting den es auch für Mac gibt ist Sublime Text Gibt es in einer kostenlosen Vollversion.
-
@jmrauen darf ich mich noch auf die API für alle Events von - bis freuen?
-
@Alex mit fixen Daten? Besser wären doch Variable. Heute + 2 Wochen, oder?
-
@MaxStro "von" und "bis" würde ich der API dann per Parameter geben, vermutlich über einen datumsstring in Sekunden, falls dir das was sagt. Sonst macht so eine API in der Tat relativ wenig Sinn.
-
@Alex Ja kann ich bauen. Was wären denn die gewünschten Parameter?
- Von (als Zahl in relativ zu heute?)
- Bis (wie bei von)
- Kalender-Ids
-
So habe nun den API-Call getCalendarEvents() erstellt.
Für mehr Infos siehe https://api.churchtools.de/class-CTChurchCalModule.html -
@jmrauen Dank dir!
Die Kategorieeinschränkung wäre gar nicht nötig gewesen, weil wir einen dedizierten InfoScreen-Account haben, aber weh tut das ja auch nicht.Noch 2 Fragen:
- Wenn ich
to = 0
setze, bekomme ich dann immer alle momentan laufenden Events? - Kann ich auch Events aus allen Kategorien bekommen, ohne, dass ich alle ids angeben muss? Momentan löse ich das ganze mit
range(0, 100)
- Wenn ich
-
Zu 1: Bin grad nicht im Sourcecode, das kannst Du aber schnell ausprobieren in dem Du ein Event anlegst.
Zu 2: Nein, die IDs sind einzeln anzugeben. -
Kann mir bitte jemand die Dateien für den Infoscreen zur Verfügung stellen? Unter dem Link oben ist nichts mehr vorhanden. Oder falls jemand ein anderes Beispiel für die Kalenderabfrage hat, wäre ich auch sehr dankbar.
Vielen Dank.
-
@jmrauen Wäre es in solchen Fällen evtl. möglich, den Source, oder eine Software im Zusammenhang mir ChurchTools über euren Seafile-Server zur Verfügung zu stellen?
-
Klar gerne! Bitte an den Support senden, dann können wir das machen.
-
Wäre ebenfalls interessiert an den Dateien.
-
Ups, da hab ich ja ganz schön lange nicht mehr vorbei geschaut...
Es gibt jetzt ein GitHub repo mit dem Code (wenn ihr daran basteln wollt, forkt das Ding gerne, würde mich interessieren): https://github.com/derzeiss/infoscreen
Bei Fragen gerne melden, offensichtlich kann ich nicht garantieren, dass ich in einer habwegs humanen Zeit antworten werde.@jmrauen Bei Bedarf könnt ihr den Code auch gern noch irgendwo bereit stellen, mir ist relativ egal was damit passiert.
-
Mhhm...da scheint etwas mit dem API-call nicht ganz zu stimmen...oder hab ich einen Fehler gemacht?
Zusammenfassung:
URLPOST https://gza.churchtools.de/index.php?q=churchcal/ajax
Request-HeadersContent-Type=application/x-www-form-urlencoded
Request-Bodyfunc=CalendarEvents&category_ids=[1,2,3]&from=1&to=2
Response-Body{ "status": "error", "message": "No category_ids given!" }
URL
Request-headers
Request-body
Response-headers
Response-body
-
Ich habe das mal versucht und nach Anleitung hochgeladen.
Bei mir lädt er aber nichts: -
Ein Array übergibst Du in der Form anders:
category_ids[0]=1
category_ids[1]=2
category_ids[2]=3Dann geht es
-
@david-ohnemus Der Fehler liegt vermutlich im PHP. Wenn du die Chrome DevTools öffnest (F12), siehst du folgendes:
Das heißt die Events oder ressourcen kommen nicht an...woran das liegt kann ich dir aber auch nicht genau sagen.- Existieren 3 Textdateien im PHP verzeichnis? Wenn nicht, hat der login nicht funktioniert, wenn doch lösch die mal.
- Hat der user die notwendigen Berechtigungen Kalender und Ressourcen auszulesen?