Neues FTUI Widget - fullcalview - Kalenderanzeige (ab FTUI 2.2)

Begonnen von h3llsp4wn, 01 Februar 2016, 17:24:29

Vorheriges Thema - Nächstes Thema

h3llsp4wn

@armin/knopf_piano:
Ich habe so ziemlich alle Varianten von Serienterminen bei mir ausprobiert (mobile, caldav, outlook) - ich kann das Problem bei mit nicht nachstellen. Bei Terminen in Stunden aber auch bei ganztägigen
funktioniert es.

Könntet Ihr mir bitte ggf. eine "kleine" Fassung Eures Kalenders als Beispiel schicken (z.B. eine ics-Datei) - die den Fehler hervorruft - dann kann ich da gezielt nachschauen.


moonsorrox

Zitat von: h3llsp4wn am 18 Januar 2017, 14:40:48
Benutzt Du ggf. unterschiedliche Templates
ich nutze nur ein Template, meins was ich am erstellen bin

Zitat von: h3llsp4wn am 18 Januar 2017, 14:40:48bzw.
kannst Du im Debug Modus mal schauen, ob die Dateien \ical\ical.js, ical_events.js und ical_fullcalender.js auch geladen werden?
wie funktioniert das, ich habe ein Samsung Galaxy Tab 3
Hier utze ich den fully Browser der mit dem "blauen f"
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

h3llsp4wn

habe die fully beta bei mir installiert - wenn Du von rechts nach links wischt, kommt das menü - da dann clear cache und ggf. neu laden. Ich habe bei mir mit fully keine probleme feststellen können

moonsorrox

Achso  das ist gemeint... ;)
Das mache ich sowieso jedesmal, aber die Fehler kommen weiter...
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Brasletti

Hallo h3llsp4wn,
habe gerade den Kalender mal per Thunderbird exportiert und auf einen Eintrag gekürzt und in Fhme und Tablet UI getestet ob der Fehler hervorgerufen wird. Gleiches Verhalten wie direkt aus owncloud.
Den Kalenderschnipsel habe ich mal angehängt.

Vielen Dank schonmal und Viele Grüße

Armin

moonsorrox

ich habe das mit dem Kalender jetzt auch mal auf meinem iPad getestet, auch hier kommen die Fehler.. was kann das noch sein.. Weil im Firefox auf dem PC sehe ich alle Einträge... bin jetzt etwas ratlos  :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

h3llsp4wn

#141
Test bei mir am ipad - keine Fehler. Hast Du ggf. irgendwo einen Proxy dazwischen hängen? Oder laufen die Abfragen für die Tablets über einen anderen Port/Server - läuft es direkt vom FHEM oder hast Du da noch einen Apache/Ngnix zwischen? Irgendwie zieht er nicht alle Dateien oder kann es nicht ...

@Armin:
Kopiere mal die angehängte js Datei in den /ical/-Ordner, d.h. die vorhandene einfach überschreiben - damit sollte es klappen, wenn der Test positiv ist, dann aktualisiere ich mal das Päckchen vom 1. Thread.

... anschließend schaue ich mir dann mal den Kalender ein-/ausschalter an ...

Brasletti

Sieht gut aus  :D Geburtstage werden dargestellt, kannst das Päckchen aktualisieren.

Vielen Dank

knopf_piano

Zitat von: h3llsp4wn am 18 Januar 2017, 14:55:09
@armin/knopf_piano:
Ich habe so ziemlich alle Varianten von Serienterminen bei mir ausprobiert (mobile, caldav, outlook) - ich kann das Problem bei mit nicht nachstellen. Bei Terminen in Stunden aber auch bei ganztägigen
funktioniert es.

Könntet Ihr mir bitte ggf. eine "kleine" Fassung Eures Kalenders als Beispiel schicken (z.B. eine ics-Datei) - die den Fehler hervorruft - dann kann ich da gezielt nachschauen.
Ich hab die Version ical_events.js asu post #141 eingebunden.
Ich erhalte keine Fehlermeldungen und scheint zu funktionieren.
Zufall? oder was hast du geändert :-)?
Dank dir trotzdem!!! WAF wird steigen!
zotac nano mit proxmox und ganz viel zeug drauf

knopf_piano

war etwas voreilig, hab nur einen Termin geändert, jetzt krieg ich die Fehlermeldung wie im screenshot
:-[
und die hälfte der 8 Kalender wird nicht mehr angezeigt
:-[
zotac nano mit proxmox und ganz viel zeug drauf

moonsorrox

#145
Zitat von: h3llsp4wn am 19 Januar 2017, 17:21:31
Test bei mir am ipad - keine Fehler. Hast Du ggf. irgendwo einen Proxy dazwischen hängen? Oder laufen die Abfragen für die Tablets über einen anderen Port/Server - läuft es direkt vom FHEM oder hast Du da noch einen Apache/Ngnix zwischen? Irgendwie zieht er nicht alle Dateien oder kann es nicht ...

nein kein Proxy,Apache,Ngnix oder sonstiges alles ganz normal...!!
Tablet greift über WLAN (klar wie auch sonst) auf meinen FHEM Server per IP und Port zu, der ist 8083 default FHEM.

Was ich absolut nicht verstehe, dass der Firefox hier alles anzeigt nur meine ganzen Tablets egal ob nun meine beiden Samsung Galaxy Tab 3 oder mein iPad....
Sonst bekomme ich keine Fehler nur wenn ich die Kalender Seite öffne.


Ist es evtl. wichtig die Fehler alle genau hier per Screenshot zu zeigen, kann man daraus evtl. ersehen woher der Fehler kommt... mir sagen die gar nicht nur eben.

Die Fehler weiter oben per Screenshot sagen ja

widget_fullcalview.js:67 ReferenceError:fc_events is not defined.
Dieser Fehler kommt genau 4x im roten Fenster.


Dann kommt noch ein rotes Fehlerfenster:
ical_events.js:8
SyntaxError:Unexpected identifier

Dieser Fehler kommt 1x

Nach kurzer Zeit gehen sie alle weg, aber nichts steht im Kalender
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

h3llsp4wn

@knopf_piano/Armin:

Jetzt bin ich etwas irritiert - ich habe nur einen Fix eingebaut, der bei fehlendem Enddatum, die korrekte Dauer ermittelt und ansonsten
Start auf Ende setzt, damit der Kalender verarbeitet werden kann (löschen/update).

Bei Armin funktioniert es und bei Dir nicht? Hm - kannst Du nachvollziehen, welche Änderung Du im Kalender gemacht hast. Ich stehe echt
kurz davor, wieder die alte Lösung zu reaktivieren (FHEM Modul liefert den Termin als JSON und gut ist) - das parsen vom ical ist die Seuche an sich ...

@moonsorrox:
Du hast 4 Kalender eingebunden - richtig? Die Funktion fc_events ist in der ical_fullcalendar.js enthalten - und die scheint er zur Laufzeit nicht zu haben.

Theoretisch könnte man jetzt mal versuchen den Content aus der ical_fullcalendar.js z.B. in die widget_fullcalendar.js zu kopieren - z.B. nach vorne. So als Test, was er da überhaupt zieht ... um einfach die Funktionen parat zu haben - dass er beim depends einige zieht und andere nicht,
irritiert schon ein wenig? Hm - ansonsten mal http://deinserver:8083/deine_tablet_url/ical/ical_fullcalendar.js aufrufen - wird da was aufgerufen?


knopf_piano

Ich hab einen termin am gleichen tag 6 stunden nach vorne verschoben, ich blicks auch nicht, was groß dabei dann anders sein soll...


Aufruf ergibt:
// Depends on ./ical_events.js

recur_events = []

function moment_icaltime(moment, timezone) {
    // TODO timezone
    return new ICAL.Time().fromJSDate(moment.toDate())
}

function expand_recur_events(start, end, timezone, events_callback) {
    events = []
    for (event of recur_events) {
   event_properties = event.event_properties
        expand_recur_event(event, moment_icaltime(start, timezone), moment_icaltime(end, timezone), function(event){
            fc_event(event, event.eID, function(event){
                events.push(merge_events(event_properties, merge_events({className:['recur-event']}, event)))
            })
        })
    }
    events_callback(events)
}

function fc_events(ics, eID, event_properties) {
    events = []
    ical_events(
        ics,
        function(event){
            fc_event(event, eID, function(event){
                events.push(merge_events(event_properties, event))
            })
        },
        function(event){
            event.event_properties = event_properties
            recur_events.push(event)
        }
    )
    return events
}

function merge_events(e, f) {
    // f has priority
    for (k in e) {
        if (k == 'className') {
            f[k] = [].concat(f[k]).concat(e[k])
        } else if (! f[k]) {
            f[k] = e[k]
        }
    }
    return f
}

function fc_event(event, eID, event_callback) {
   if(showURL) {
      e = {
         title:event.getFirstPropertyValue('summary'),
         description:event.getFirstPropertyValue('description'),
         location:event.getFirstPropertyValue('location'),
         url:event.getFirstPropertyValue('url'),
         id:event.getFirstPropertyValue('uid'),
         eID: eID,
         allDay:false
      }
   }
   else {
      e = {
         title:event.getFirstPropertyValue('summary'),
         description:event.getFirstPropertyValue('description'),
         location:event.getFirstPropertyValue('location'),
         id:event.getFirstPropertyValue('uid'),
         eID: eID,
         allDay:false
      }
   }
   try {
        e['start'] = event.getFirstPropertyValue('dtstart').toJSDate()
    } catch (TypeError) {
        console.debug('Undefined "dtstart", vevent skipped.')
        return
    }
    try {
        e['end'] = event.getFirstPropertyValue('dtend').toJSDate()
    } catch (TypeError) {
        e['allDay'] = true
    }
   event_callback(e)
}



Gesendet von meinem GT-I9301I mit Tapatalk

zotac nano mit proxmox und ganz viel zeug drauf

knopf_piano

so jetzt laust mich aber der Affe,
ich hab nix geändert seit gestern und mit Aufruf jetzt es geht ohne Fehlermeldung.
Hatte nur einen fhem shutdown+restart wg. update zwischen den Fehlermeldungen gestern und jetzt.
zotac nano mit proxmox und ganz viel zeug drauf

h3llsp4wn

Hm - könnte jetzt am FHEM Webserver liegen - oder hast Du da noch was zwischengeschaltet? ... das müsste ich mal nachstellen (versuchen), halten wir fest - Neustart bewirkt wie immer Wunder. Vielleicht hat er 'ne falsche/alte Datei ausgeliefert - oder aber beim Terminupdate ist beim sync zwischen FHEM was nicht ok gewesen.

D.h. aber - damit funktionieren jetzt die Serientermine (zumindest die ohne Endzeit/Enddatum) erst mal.