NEWS
Widget basic String unescaped -> Formatierung Space
-
Hi zusammen,
ich habe mir für die Fritzbox eine Anruferliste gebaut.
Alle Einträge/Spalten werden in Javascript auf eine einheitliche Breite gebracht ( mit += " ";).
Die Einträge werden in einer Monospace Schrift in html erzeugt.
In ioBroker/Objekte, werden die einzelnen Einträge so dargestellt, wie ich mir das vorstelle:
In VIS werden die Leerzeichen zusammengestaucht dargestellt (Vermutung):
Daher sind die Einträge nicht mehr sauber in den Spalten.Verwendet wurde das Widget basic String unescaped.
Laut einer Javascript Doku fügt Javascript mit " " Non-Breaking Space hinzu.
Wenn ich die Leerzeichen mit nbsp; in Javascript auffülle, wird auch "nbsp;" als Text in Historie und VIS dargestellt.
Hat jemand eine Idee, wie ich die Liste sauber darstellen kann?
-
Hi zusammen,
ich habe mir für die Fritzbox eine Anruferliste gebaut.
Alle Einträge/Spalten werden in Javascript auf eine einheitliche Breite gebracht ( mit += " ";).
Die Einträge werden in einer Monospace Schrift in html erzeugt.
In ioBroker/Objekte, werden die einzelnen Einträge so dargestellt, wie ich mir das vorstelle:
filename="2015-05-18 Fritzbox Anruferliste Historie.png" index="1">~~In VIS werden die Leerzeichen zusammengestaucht dargestellt (Vermutung):
filename="2015-05-18 Fritzbox Anruferliste Widget.png" index="0">~~
Daher sind die Einträge nicht mehr sauber in den Spalten.Verwendet wurde das Widget basic String unescaped.
Laut einer Javascript Doku fügt Javascript mit " " Non-Breaking Space hinzu.
Wenn ich die Leerzeichen mit nbsp; in Javascript auffülle, wird auch "nbsp;" als Text in Historie und VIS dargestellt.
Hat jemand eine Idee, wie ich die Liste sauber darstellen kann? `
Verwende "non-break-space"z.B.
"nummername"
-
Verwende "non-break-space"
z.B.
"nummername" `
Danke! Das hatte ich schon versucht, allerdings das & davor vergessen.
Laut JavaScript sollte das " " doch der Unicode für sein.
Mit habe ich dann noch etwas Arbeit vor mir.
Die Länge der Ausgabe wird gekürzt. D.h. momentan bei mit 01234567890&nbs
Das p; fehlt dann. Sollte lösbar sein.
Dann will ich eine html formatierte Ausgabe und konfigurierbar eine reine ASCII Ausgabe anbieten.
Auch das sollte machbar sein.
Was ich nur nicht verstehe…
Die Historie zeigt die Einträge so an, wie ich es will. VIS nicht.
Daher meine Vermutung, dass sich die beiden auf html Basis unterschiedlich verhalten.
-
Du könntest eine zweite Variable von NodeRed anlegen lassen, die eine HTML-Formatierung mitspeichert.
Dann kannst du die Tabelle mit HTML bauen. http://wiki.selfhtml.org/wiki/HTML/Tabellen/Gestaltung_einer_Tabelle.
Diese Variable lässt du dir ins VIS anzeigen, die andere (ohne HTML) wird mit History gespeichert.
Gruß
Pix
-
@pix:Du könntest eine zweite Variable von NodeRed anlegen lassen, die eine HTML-Formatierung mitspeichert.
Dann kannst du die Tabelle mit HTML bauen. http://wiki.selfhtml.org/wiki/HTML/Tabellen/Gestaltung_einer_Tabelle.
Diese Variable lässt du dir ins VIS anzeigen, die andere (ohne HTML) wird mit History gespeichert.
Gruß
Pix `
Hi Pix,
danke Dir für den Tipp und die Erklärung.
Die Einträge in History sind schon HTML (daher rote und grüne Bereiche) und werden genau so dargestellt, wie ich es mir wünsche.
History rendert direkt HTML und zeigt die ganze HTML Beschreibung nicht mit an. Es sieht einfach so aus, wie es aussehen soll
Im Wert in der Projektübersicht sieht man die HTML Formatierung.
Das Widget zeigt es anders an als History.
Meine Hoffnung war einfach, dass es ggf. ein anderes Widget gibt.
Da laut Javascript-Beschreibung ein zum String zugefügtes " " schon Non-Breaking-Space ist, es in History auch funktioniert, bin ich davon ausgegangen, dass es ein anderes Thema ist.
Eine HTML Tabelle wollte ich vermeiden.
Ich schau mir das nun an, wie ich es am einfachsten realisiere (HTML Tabelle, das Auffüllen mit ,usw.).
Vielen Dank für die Anregung.
VG,
Michael
-
Ich mach mal gleich einen Vorschlag für die Tabelle (8 Spalten, Beispielschema 3 mit 12 gleichen Teilen (alle Spalten gleich breit, nur Nummernspalten dreimal so breit):
<colgroup><col width="1*"> <col width="1*"> <col width="3*"> <col width="1*"> <col width="1*"> <col width="3*"> <col width="1*"> <col width="1*"></colgroup> Datum | Uhrzeit | Nummer | Typ | In/Out | Nummer | Anschluss | Dauer | ````Dann Table Row für jede Zeile/jeden Anruf anfügen Gruß Pix
-
Hi Pix,
danke! Ich verusche mal nachher mein Glück.
VG
-
Verwende "non-break-space"
z.B.
"nummername" `
Danke
Ok, das war jetzt einfach. Ich hatte erst links oder rechts aufgefüllt und dann auf die Länge gekürzt, was zur Folge hatte, dass z.B. auf &nb gekürzt wurde.
Nun habe ich einfach die Reihenfolge umgestellt. Erst kürzen, dann füllen und nun geht es auch im Widget ohne großen Aufwand!
@pix:
Dein Tipp mit der Tabelle werde ich trotzdem noch umsetzten! Aber später, wenn ich mit den Grundfunktionen durch bin.
Die Tabelle kommt dann aber mit einer "schönen" Formatierung (link-/rechsbündig, Zeilenfarben, Linien zwischen den Zeilen, usw.).
Da meine HTML-Kenntnisse bescheiden sind, wird das etwas dauern
Danke noch einmal an Euch beiden!
P.S.: trotzdem komisch, dass Histroy die Leerzeichen als Non-Breaking-Space interpretiert und das Widget nicht :mrgreen: 8-)
Kann es sein, dass in History jedes Zeichen aus dem Wert geprüft wird und dort ein Leerzeichen in der Darstellung automatisch in ersetzt wird?