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

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

Vorheriges Thema - Nächstes Thema

knopf_piano

jep würd ich erstmal sagen,
Dickes Dankeschön.

Auf Firefox-Linux i.O.
Jetzt kommt's aufs Zielanzeige tablet mit fully-browser.
Der fully beschwert sich jetzt mit
"widget_fullcalview.js:67
ReferenceError: fc_events is not defined"

--> Keine Anzeige
:o
zotac nano mit proxmox und ganz viel zeug drauf

h3llsp4wn

Puh - war ja klar  :)

Ich kann es auf meinem Samsung nicht nachvollziehen - fully (beta) installiert, cache in fully gelöscht - läuft ohne Fehler.
Hm. Kannst Du im Fully mal die URL aus einem meiner letzten Posts aufrufen (die einfach nur das JS aufruft)?

knopf_piano

#152
samsung+firefox weiterhin i.o.

fully beta:

// 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)
}
zotac nano mit proxmox und ganz viel zeug drauf

knopf_piano

die beiden fehlermeldungen tauchen sehr schell auf und verschwinden schnell mit den anderen meldungen... , hatt mühe nen screenshot zu machen

Gesendet von meinem SM-T230 mit Tapatalk

zotac nano mit proxmox und ganz viel zeug drauf

moonsorrox

@knopf_piano

das sind die gleichen Fehler die bei mir auf dem Tablets kommen

Zitat von: h3llsp4wn am 20 Januar 2017, 15:02:54
@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?

Ich habe 3 Kalender eingebunden
data-device='["TerminKalender","GeburtstagsKalender","myCalendar"]'

myCalendar ist in dem Fall der Abfallkalender mit allen Abfallsorten

Wenn ich diese volle Adresse eingebe kommt sofort die Fhem Weboberfläche
http://10.0.0.50:8083/opt/fhem/www/tablet/ical/ical_fullcalendar.js
Auf dem Tablet eingegeben, aber gleiches Verhalten wie am PC...

Mich wundert das diesen Fehler niemand hat, es muss ja am Tablet liegen das dieses die Ereignisse/Kalendereinträge nicht hat.
Ich habe schon einen komplettem Neustart gemacht aber es ändert sich nichts.

Nochmals meine Anmerkung evtl. hilft es dir ja, am PC auf dem Firefox werden die Termine angezeigt, nur eben nicht auf allen Tablets...!  :-\
Evtl. laden die irgend etwas nicht richtig, oder nicht schnell genug.
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

knopf_piano

firefox linux i.o
firefox android bei 3 geräten i.o.
fully auf 3 androiden : fehlermeldungen

Gesendet von meinem SM-T230 mit Tapatalk

zotac nano mit proxmox und ganz viel zeug drauf

Brasletti

Bei mir funktionierts auch per Fully.

Viele Grüße
Armin

h3llsp4wn

Hm ... scheint als hätte es wirklich was mit der Ladereihenfolge der Javascripte zu tun - die scheinen im benötigten Augenblick noch nicht da zu sein. Ich hatte mit setstate dazu ja schon einmal eine Diskussion bzgl. des asynchronen Handlings bei nachladen meine ich. Bislang konnte ich solche Fehler nicht wirklich reproduzieren.

Habt Ihr mal wie beschrieben versucht den Code aus der ical-Datei in die widget_fullcalview.js zu kopieren?

Was mich aber wundert ist - er lädt bei FTUI eh eine Tonne an Dateien, warum dann gerade die nicht oder nicht rechtzeitig ...

Wie es scheint kommt Firefox damit ja klar. Fully verwendet doch aber nur die webkit version des darunterliegenden android.

Aber was anderes - es müsste doch hier vor Ärger hageln, wird doch i.d.R. nur auf dem Tablet genutzt ... hm ....

Könnt Ihr bitte mal folgenden Code in Eure "index.html" aufnehmen, d.h. die Startseite unter der Ihr dann auch Euer FTUI aufruft


<script type="text/javascript" src="/fhem/tablet/ical/ical.js" defer></script>
<script type="text/javascript" src="/fhem/tablet/ical/ical_events.js" defer></script>
<script type="text/javascript" src="/fhem/tablet/ical/ical_fullcalendar.js" defer></script>


Müsst Ihr ggf. anpassen, falls die Dateien bei Euch woanders liegen.


@Armin: Gehst Du direkt auf FHEM oder hast Du für die Performance noch einen Webserver dazwischen?

Brasletti

Bis jetzt noch direkt. Ich habe Fhem noch nicht optimiert, bin noch in der Aufbauphase, werde dann sobald alles läuft auch auf webserver und mysql umstellen.

tdoe

Moin Moin,

ich habe den selben Fehler. Am Laptop wird alles sauber angezeigt und auf dem Tablet fehlen die Termine und Fehlermeldungen poppen hoch.

Zitat von: h3llsp4wn am 20 Januar 2017, 19:47:35

Könnt Ihr bitte mal folgenden Code in Eure "index.html" aufnehmen, d.h. die Startseite unter der Ihr dann auch Euer FTUI aufruft


<script type="text/javascript" src="/fhem/tablet/ical/ical.js" defer></script>
<script type="text/javascript" src="/fhem/tablet/ical/ical_events.js" defer></script>
<script type="text/javascript" src="/fhem/tablet/ical/ical_fullcalendar.js" defer></script>


Das habe ich getestet. Hat leider nicht funktioniert. Fehlermeldungen sind hartnäckig. Ich Hab auf einem Acer Iconiatab getestet.

Gruß Tobias

tdoe

Nachtrag:

Die Fehlermeldung besagt einen Fehler in Zeile 8. Somit sollte es nichts mit dem laden der js zu tun haben sonst würde er keinen Fehler melden sondern eine fehlende Datei?

Kann ich irgendwie debuggen und infos bereitstellen?
Hab mit anderem Useragent vomLaptop getestet, da geht auch alles. Hängt es vielleicht an der verwendeten Java Version auf den Tablets?

Gruß Tobias

Brasletti

#161
Vieleicht liegt es doch an der Webkit Version des Android Systems. Bei mir läuft Android Lollipop 5.01 und Webkit Version 537.36. Alles vor Android 4.4.x hat normalerweise noch Webkit Version 534.30.
Ggf. mal die Webkit Version mit https://www.whatismybrowser.com/detect/what-is-my-user-agent überprüfen.
Viele Grüße
Armin

tdoe

Moin,

ich hab Chrome 33 auf Android 4.4.4 WebKit 537.36 auf dem Tablet.

Gruß Tobias

moonsorrox

#163
Zitat von: h3llsp4wn am 20 Januar 2017, 19:47:35
Habt Ihr mal wie beschrieben versucht den Code aus der ical-Datei in die widget_fullcalview.js zu kopieren?
kannst du das nochmal genau erklären, was genau wohin kopiert werden sollte...! :-\
Ehe ich irgend etwas falsches kopiere...

Zitat von: h3llsp4wn am 20 Januar 2017, 19:47:35
Könnt Ihr bitte mal folgenden Code in Eure "index.html" aufnehmen, d.h. die Startseite unter der Ihr dann auch Euer FTUI aufruft
bei mir keine Änderung, gleiche Fehler..!

Ich glaube ich habe auch mal ganz am Anfang genau deine Struktur als Grundgerüst gemacht.
Ich erwähne es nur weil ich auch denke das er irgend etwas nicht oder nicht rechtzeitig genug lädt...!

Mal so als Hinweis, ich starte ja mit der index.html in dieser wird eigentlich nur die nächste bei mir die Tab_menu.html aufgerufen
<div class="gridster">
<ul>
<li data-row="1" data-col="1" data-sizex="1" data-sizey="5" data-template="Tab_menu.html" class="halbTransparent"></li>
</ul>
</div>


dann kommt das Tab Menü eben mit den ganzen Seiten und da ist erst der Kalender dabei.
Wenn ich dann auf der Kalenderseite im fully browser  den Cache leere, werden nur noch 3 Fehler angezeigt, dass sind dann wohl meine 3 Kalender, die gehen dann weg, aber esstehen keine Termine drin.

Ich habe Android Version 4.4.2 die andere Angabe finde ich nicht.

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

#164
Ok - das laden verwerfen wir dann mal, dass ist es dann definitv nicht.

Bitte mal die angehängte ical_events.js nach \ical\ kopieren - die alte überschreiben.
Soweit ich es jetzt herausgefunden habe, steht es im Zusammenhang mit den unterstützen Funktion des Browsers (was dann auch am webkit hängt).

Evtl. ist noch ein weiterer Fix notwendig - ich schaue gerade, was da noch gemacht werden muss.

Kurzer Test wäre aber schon mal gut.