NEWS
Skript für Farbanzeige
-
hier nochmal das aktuelle Script was bei mir läuft:
// Script stammt von uhula und sputnik // Das Script greift auf die ical.0.html zu und ändert den Text. // Gespeichert wird das geänderte Script in "javascript.0.Sonstige.ical.html" // Geändert und erweitert in 12/2017 von bahnuhr var idCal = "ical.0"; var idCalTrigger = idCal + ".data.trigger"; var idCalTable = idCal + ".data.table"; var idCalHTML = idCal + ".data.html"; var idCalHTMLtable = 'javascript.0.Sonstige.Ical.html'; var logging = false; var anz_ganztags = false; // wenn true wird bei Ganztags-Terminen als time auch "ganzer Tag" angezeigt; wenn false erfolgt gar keine Anzeige var anz_time = true; // wenn true werden die Uhrzeiten angezeigt; wenn false erfolgt gar keine Anzeige var balken = false; // wenn true wird Balken links angezeigt; wenn false dann erfolgt keine Anzeige var abstand_zwischen_Tagen = false; // wenn true wird ein Abstand zwischen den Terminen gesetzt, wenn diese nicht am gleichen Tag stattfinden function iCalToHTMLTable() { var html = "<table style='font-size:0.9em;'><tbody>"; var calTable = getState(idCalTable).val; var inst = getObject("system.adapter."+idCal); var instopt = inst.native; var calendar = {}; for (var i = 0; i < calTable.length; i++) { if (logging) log (calTable[i]); var entry = calTable[i]; var _date = new Date(entry._date); var _time = ""; // "_time und date" Variable festlegen if (logging) log (entry); if (entry.date.indexOf("→") >= 0) { // Pfeil ist enthalten if (entry.date.indexOf(":") >= 0) { // Uhrzeit ist enthalten _time = "bis " + (entry.date).substring(entry.date.length-5,entry.date.length); entry.date = Datum_holen("tm"); } else { _time= "ganzer Tag"; entry.date = Datum_holen("tm"); } } else { // Pfeil ist nicht enthalten if (entry.date.indexOf(":") >= 0) { // Uhrzeit ist enthalten _time = (entry.date).substring(entry.date.length-11,entry.date.length); } else { _time= "ganzer Tag"; } entry.date = getFormattedDate(_date); } if ( entry._calName != calendar.name ) { calendar = {}; for (var c = 0; c < instopt.calendars.length; c++ ) { if (entry._calName == instopt.calendars[c].name ) { calendar = instopt.calendars[c]; break; } } } var _color = "color:"+calendar.color; if (entry._class.includes("ical_today")) _color = "color:red;"; else if (entry._class.includes("ical_tomorrow")) _color = "color:orange"; else if (entry._class.includes("ical_dayafter")) _color = "color:yellow"; var _bgcolor = ""; if(calendar.name == "Müll") { if(entry.event == "Bio Tonne") { _bgcolor = "#a0e878"; _color="color:#a0e878"; } else if(entry.event == "Restmüll Tonne") { _bgcolor = "#ce6f6f"; _color="color:#ce6f6f"; } else if(entry.event == "Blaue Tonne") { _bgcolor = "#508fdc"; _color="color:#508fdc"; } else if(entry.event == "Gelbe Tonne") { _bgcolor = "#eee06d"; _color="color:#eee06d"; } } else _bgcolor = calendar.color; if (balken === false) _bgcolor = ""; if (_bgcolor !== "") html+="<tr style='background:transparent; background-image: linear-gradient("+_bgcolor+","+_bgcolor+"); background-size: 6px 90%; background-repeat: no-repeat;'>"; else html+="<tr>"; if (i>0 && (abstand_zwischen_Tagen == true)){ if (calTable[i].date != calTable[i-1].date){ html+="<tr><td></td></tr>"; html+="<tr><td></td></tr>"; html+="<tr><td></td></tr>"; html+="<tr><td></td></tr>"; } } var abstand = "15px;"; if (balken === false) abstand = "3px;"; html+="<td style='font-size:1.1em; padding-left:"+abstand+_color+"'>"+entry.date+"</td>"; if ((_time === "ganzer Tag" && anz_ganztags === false) || anz_time === false) { html+="<td style='font-size:1.1em; padding-left:5px;"+_color+"'>"+entry.event+"</td>"; // nur event anzeigen } else { html+="<td style='font-size:1.1em; padding-left:5px;"+_color+"'>"+_time + " " + entry.event+"</td>"; // time + event wird angezeigt } html+="</tr>"; } html+="</body></table>"; setState(idCalHTMLtable, html); } function getFormattedDate(date) { var month = (1 + date.getMonth()).toString(); month = month.length > 1 ? month : '0' + month; var day = date.getDate().toString(); day = day.length > 1 ? day : '0' + day; return day + '.' + month + '.'; } on({id: idCalTable, change: "ne"}, function (obj) { iCalToHTMLTable(); }); iCalToHTMLTable();Und dies als globales Script oder unten drunter setzen:
// globale Variablen // Tag, Monat, Jahr -> aktuelles Datum als String -> Aufruf der Funktion mit: Datum_holen("tmj") oder Datum_holen("tm") oder Datum_holen("lang") function Datum_holen(x) { var vTag = new Date().getDate(), vMonat = new Date().getMonth()+1, vJahr = new Date().getFullYear(); if (vTag < 10) {vTag = "0" + vTag} if (vMonat < 10) {vMonat = "0" + vMonat} var sDatum_tmj = vTag + "." + vMonat + "." + vJahr.toString().substr(2,2); // String mit Tag + Monat + Jahr (Jahr mit 2 Stellen) var sDatum_tm = vTag + "." + vMonat + "."; // String mit Tag + Monat var sDatum_lang = vTag + "." + vMonat + "." + vJahr; // String mit Tag + Monat + Jahr (Jahr mit 4 Stellen) if (x === "tmj") { return(sDatum_tmj); } else if (x === "tm") { return(sDatum_tm); } else { return(sDatum_lang); } } // Stunde, Minute -> aktuelle Uhrzeit als String -> Aufruf der Funktion mit: Zeit_holen("hms") oder Zeit_holen("hm") function Zeit_holen(x) { var vStunde = new Date().getHours(), vMinute = new Date().getMinutes(), vSekunde = new Date().getSeconds(); if (vMinute <10) {vMinute = "0" + vMinute} if (vSekunde <10) {vSekunde = "0" + vSekunde} var sZeit_hms = vStunde + ":" + vMinute + ":" + vSekunde; // String mit Stunde + Minute + Sekunde var sZeit_hm = vStunde + ":" + vMinute; // String mit Stunde + Minute if (x === "hms") { return(sZeit_hms); } else { return(sZeit_hm); } }und jede zeile dann mal vergleichen.
@bahnuhr
Hallo in die Runde,
ich habe mal eine allgemeine Frage. Ich wollte das Skript für einen Stundenplan anpassen. Das funktioniert soweit auch ganz gut. Aber bei einem Punkt weiss ich nicht weiter.Ich würde gern abfrage, wenn im Titel "Englisch" enthalten ist, dann färbe den Titel orange ein.
mit == und || habe ich das hinbekommen. Aber das ist ja nicht die schönste Art. Könnt Ihr mir da einen Tipp geben. Bei Google habe ich nicht wirklich was gefunden. Liegt aber vielleicht auch an den Suchbegriffen. :-) DANKEelse if( entry.event == "Englisch" || entry.event == "1. Englisch" || entry.event == "2. Englisch" || entry.event == "3. Englisch" || entry.event == "4. Englisch" || entry.event == "5. Englisch" || entry.event == "6. Englisch" || entry.event == "7. Englisch" || entry.event == "8. Englisch") { _bgcolor = "orange"; _color="color:orange"; } -
@bahnuhr
Hallo in die Runde,
ich habe mal eine allgemeine Frage. Ich wollte das Skript für einen Stundenplan anpassen. Das funktioniert soweit auch ganz gut. Aber bei einem Punkt weiss ich nicht weiter.Ich würde gern abfrage, wenn im Titel "Englisch" enthalten ist, dann färbe den Titel orange ein.
mit == und || habe ich das hinbekommen. Aber das ist ja nicht die schönste Art. Könnt Ihr mir da einen Tipp geben. Bei Google habe ich nicht wirklich was gefunden. Liegt aber vielleicht auch an den Suchbegriffen. :-) DANKEelse if( entry.event == "Englisch" || entry.event == "1. Englisch" || entry.event == "2. Englisch" || entry.event == "3. Englisch" || entry.event == "4. Englisch" || entry.event == "5. Englisch" || entry.event == "6. Englisch" || entry.event == "7. Englisch" || entry.event == "8. Englisch") { _bgcolor = "orange"; _color="color:orange"; }indexof
-
indexof
ich hab das mal abgespalten, hat ja nix mit ical zu tun.
@thorkillar bitte Titel anpassen -
ich hab das mal abgespalten, hat ja nix mit ical zu tun.
@thorkillar bitte Titel anpassen@homoran sagte in Skript für Farbanzeige:
hat ja nix mit ical zu tun.
Eigentlich doch,
Es geht um das Script das den ical DP anders darstellt. -
@homoran sagte in Skript für Farbanzeige:
hat ja nix mit ical zu tun.
Eigentlich doch,
Es geht um das Script das den ical DP anders darstellt.@bahnuhr sagte in Skript für Farbanzeige:
Es geht um das Script das den ical DP anders darstellt.
und das hier ist auch ical DP?
-
@bahnuhr sagte in Skript für Farbanzeige:
Es geht um das Script das den ical DP anders darstellt.
und das hier ist auch ical DP?
ja, das ist ein Auszug aus dem Script
genauer, um dieses hier:
https://forum.iobroker.net/topic/26782/ical-kalender-farben-anpassen/92?_=1673030140761 -
ja, das ist ein Auszug aus dem Script
genauer, um dieses hier:
https://forum.iobroker.net/topic/26782/ical-kalender-farben-anpassen/92?_=1673030140761@bahnuhr ja das weiß ich.
aber wird hier dein Skript zweckentfremdet verwendet oder kommt der Stundenplan aus ical? -
@bahnuhr ja das weiß ich.
aber wird hier dein Skript zweckentfremdet verwendet oder kommt der Stundenplan aus ical?@homoran sagte in Skript für Farbanzeige:
kommt der Stundenplan aus ical?
Hab ich so vermutet.
probier es so:
else if( entry.event.indexOf("Englisch") >= 0 { _bgcolor = "orange"; _color="color:orange"; } -
@homoran sagte in Skript für Farbanzeige:
kommt der Stundenplan aus ical?
Hab ich so vermutet.
probier es so:
else if( entry.event.indexOf("Englisch") >= 0 { _bgcolor = "orange"; _color="color:orange"; }@bahnuhr sagte in Skript für Farbanzeige:
Hab ich so vermutet.
ich eben nicht!
sonst muss ich alles wieder zurück schieben.
-
@bahnuhr sagte in Skript für Farbanzeige:
Hab ich so vermutet.
ich eben nicht!
sonst muss ich alles wieder zurück schieben.
@homoran sagte in Skript für Farbanzeige:
sonst muss ich alles wieder zurück schieben.
Ne, lass doch so.
Er bekommt ja ne Meldung, dass jemand geantwortet hat. -
probier es so:
else if( entry.event.indexOf("Englisch") >= 0 { _bgcolor = "orange"; _color="color:orange"; }else if( entry.event.indexOf("Englisch") >= 0 ) { _bgcolor = "orange"; _color="color:orange"; }@bahnuhr Danke Dir! Hat mir geholfen. Und ich habe das Skript komplett übernommen und wollte nur die Blaue Tonne, gegen Englisch .... austauschen.
Kleiner Hinweis, bei Dir fehlte ein ) nach der 0.
@homoran sagte in Skript für Farbanzeige:
@bahnuhr ja das weiß ich.
aber wird hier dein Skript zweckentfremdet verwendet oder kommt der Stundenplan aus ical?Ja, Er kommt aus dem ical.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden