Hi zusammen ich versuche ein Select-Feld im Tablet UI mit data-alias
zu füllen habt ihr da erfahrungen?
Es handelt sich um einen Enigma2 Receiver der die Sender in der Form mit Unterstrich erwartet das finde ich nur etwas unschön.
Das Reading chList ohne die Unterstriche habe ich per UserReading selber erzeugt.
Momentan habe ich es so im UI.
<div data-type="select" data-device="vuplus" data-delimiter="," data-list="channelList" data-alias="chList" data-get="channel" data-set="channel" class=""></div>
läuft aber leider nicht wie gedacht siehe Bild. Sieht aus als würde der data-delimiter da nicht fassen um die Werte zu trennen.
data-alias erwartet aber laut Beschreibung ein Array als alias für data-items, nicht eine delimeter getrennte Liste wie bei data-list
Hi danke für die Info!
Dann weiß ich ja schonmal warum es nicht läuft, das heißt das Array fürs Alias müsste quasi wie ein Mapping aufgebaut sein, richtig? Oder wie wäre das Format?
data-alias ist nur eine einfache Liste (als Array) von Ersetzungen indexbasiert. D.h. Erster Eintrag im Alias ersetzt erstes Listitem, zweites Alias ersetzt zweiten Listeintrag usw.
data-alias kann aber mit Device:Reading auf ein Reading zeigen, das solch eine Liste ( Doppelpunkt getrennt) liefert.
Dann müsste obiges Beispiel ja funktionieren wenn die alias Liste mit Doppelpunkt getrennt wird.
Leider ist der delimiter für die alias Liste noch fest ein :
Das muss ich noch ändern.
Hallo setstate,
ich würde das Thema gerne mal hochholen.
Bist du schon dazu gekommen, den als Delimiter für die Daten eingestellten Trenner auch für die Aliase zu verwenden?
Ich würde gerne meine Sonos-Favoriten anzeigen, die aber Doppelpunkte enthalten :)
Danke schon mal...
Grüße
Reinerlein
... habe ich jetzt gemacht. Der data-delimiter gilt jetzt auch für den Alias.
Hi setstate,
danke für die Anpassung... funktioniert super...
Grüße
Reinerlein
Hi setstate,
eine Frage habe ich dazu noch:
mit welcher Liste wird denn der per "data-get" ermittelte Wert verglichen, um die Auswahl darzustellen?
Ich habe es ehrlich gesagt schon mit beiden Varianten versucht, und keinen Erfolg gehabt. Er zeigt immer das erste Element als Vorgabeauswahl an (was z.B. auch blöd ist, wenn man genau dieses dann auswählen will... es ist ja keine Änderung, und verursacht dementsprechend keine set-Anweisung).
Kannst du mir einen Tipp geben, was ich da falsch mache?
Hier noch kurz meine Definition:
<div data-type="select"
data-device="Device"
data-list="FavouritesList"
data-alias="FavouritesListAlias"
data-delimiter="|"
data-quote="/"
data-get="currentFavouriteNameMasked"
data-set="StartFavourite"
class="w3x inline"></div>
Danke schon mal...
Grüße
Reinerlein
Der Wert in data-get muss einem Listenelement entsprechen. Nicht eines Aliases.
Hi setstate,
hmm... das klappt bei mir nicht.
Folgende Werte haben die Readings meiner Definition oben:
FavouritesList
80s:.Café.80s.FM|80s:.FFH.Digital.-.Die.80er|80s:.RADIO.fresh80s|80s:.Radio.RMF.80s|Antenne.Niedersachsen|FFH.Digital.-.Eurodance|FFH.Digital.-.Lounge|Hit-Radio.Antenne.Bremen.104.8.(Pop)|KUSCHELROCK.(Rock.+..Pop.Ballads)|Kuschel.FM|Mit.Star.bewertet.Reiner|R.:.Spiel-Aktuelles|Songs.to.Sing.in.the.Car|Symphonia.(Super.Deluxe.Edition)|XMas:.Antenne.Niedersachsen.X-Mas|XMas:.Christmas.Radio.FM|XMas:.Forever.Christmas.Radio|XMas:.Radio.Santa.Claus|XMas:.Radio.Weihnacht|radio.ffn
FavouritesListAlias
80s: Café 80s FM|80s: FFH Digital - Die 80er|80s: RADIO fresh80s|80s: Radio RMF 80s|Antenne Niedersachsen|FFH Digital - Eurodance|FFH Digital - Lounge|Hit-Radio Antenne Bremen 104.8 (Pop)|KUSCHELROCK (Rock + Pop Ballads)|Kuschel FM|Mit Star bewertet Reiner|R.: Spiel-Aktuelles|Songs to Sing in the Car|Symphonia (Super Deluxe Edition)|XMas: Antenne Niedersachsen X-Mas|XMas: Christmas Radio.FM|XMas: Forever Christmas Radio|XMas: Radio Santa Claus|XMas: Radio Weihnacht|radio ffn
currentFavouriteNameMasked
Mit.Star.bewertet.Reiner
Anbei mal zwei Screenshots, wie die Initiale Anzeige aussieht, und der Inhalt der Klappbox. Bis auf die Initiale Anzeige sieht das alles super aus. Der Favorit wird auch aktiviert, wenn ich ihn auswähle (also einen anderen als den ersten :) )
Was könnte dass dann sein?
Grüße
Reinerlein
Bei mir funktioniert das auch nicht richtig.
Mein Select widget sieht so aus:
<div data-type="select"
data-device="DG.ku.MM.Squeezebox"
data-list="ftuiFavoritesItems"
data-alias="ftuiFavoritesAlias"
data-get="favorites"
data-set="favorites"
data-cmd="set"
class="width-300">
</div>
Die zugehörigen so:
favorites
Discover_Weekly
ftuiFavoritesAlias
YOUR SOUL:Ed Sheeran:Musik:nervt:Discover Weekly:Favoriten
ftuiFavoritesItems
YOUR_SOUL:Ed_Sheeran:Musik:nervt:Discover_Weekly:Favoriten
Nach einem Reload der Seite hat das Select-Widget immer "YOUR SOUL" ausgewählt.
Hi setstate,
ich muss das nochmal hochholen, da ich immer noch keine Lösung für dieses Problem gefunden habe.
Sobald die Liste Auswahlwerte enthält, wird immer das erste vorausgewählt, unabhängig vom Wert in data-get (bzw. dem Reading dazu).
Ich hätte aber gerne das folgende Verhalten:
- Wenn es ein passendes Element in der Auswahlliste (bzgl. data-get) gibt, dann diese verwenden
- Wenn es kein passendes Element gibt, dann keine Vorauswahl treffen. Die Anzeige ist dann erstmal leer. Aktuell kann man das erste Element dann nicht auswählen, da es ja kein Wechsel der Auswahl darstellt.
Danke schon mal...
Grüße
Reinerlein
Hi,
Ich habe noch ein anderes Problem:
Wenn die zugrundeliegenden Listen aktualisiert werden, dann landen diese nur fehlerhaft auf der Oberfläche.
Es werden Teile der vorherigen Version der Liste behalten und Teile der neuen Liste übernommen.
Das ist alles ziemlich komisch, aber auch lästig :)
Grüße
Reinerlein
Hi,
kann es sein, dass das Widget ein Problem damit hat, wenn die beiden Readings für List und ListAlias nicht zur gleichen Zeit zur Verfügung stehen, bzw. hintereinander aktualisiert werden.
Wobei ich das nicht ganz nachvollziehen kann. Es sind bei mir beides UserReadings, die vom selben Readings-Wechsel getriggert, nur halt anders zusammengebaut werden. Das sollte doch aus Sicht von longpoll "gleichzeitig" passieren, oder?
In den Listen sind teilweise nur einzelne Buchstaben als Elemente sichtbar, in den Readings selbst stehen aber stets die korrekten Werte...
Ich habe mein Problem erstmal damit gelöst, dass ich die Seiten, die ja per PageButton angezeigt werden, auf "nocache" zu setzen, sodass sie immer neu aufgebaut werden. Damit ist die Darstellung grundsätzlich immer korrekt...
Grüße
Reinerlein
Hallo,
ich muss das nochmal hochholen.
Hat jemand ein Select-Widget am Laufen, wo der Klappbox-Inhalt per longpoll aktualisiert wird?
Bei mir funktioniert das einfach nicht, leider blicke ich im Code dazu auch nicht wirklich durch.
Dazu noch die Frage mit der Vor-Auswahl des Eintrags auf Basis des data-get Readings: Ich habe im Code mal gesucht, und vermute ein Problem damit, dass initial nach einem Eintrag ohne die Delimiter gesucht wird, und bei Auswahl durch den Anwender der Eintrag mit delimiter gesetzt wird (diese Auswahl bleibt ja auch bis zum nächsten Neuladen der Seite erstmal).
Leider habe meine Versuchsweisen Anpassungen keine Lösung erbracht. Aber vielleicht kann da mal jemand reinschauen, der das Element besser kennt?
Danke schon mal...
Grüße
Reinerlein
Uralter Thread, aber für mich besteht das selbe Problem.
<div style="width: 90%; margin: 5px 0 !important;"
data-type="select"
data-device="SqueezeBoxPlayer_ZirkusOben"
data-alias="ftuiFavoritesAlias"
data-list="ftuiFavoritesItems"
data-get="favorites"
data-set="favorites"
class="cell">
</div>
<div style="width: 90%; margin: 5px 0 !important;"
data-type="select"
data-device="SqueezeBoxPlayer_ZirkusOben"
data-alias="ftuiPlaylistsAlias"
data-list="ftuiPlaylistsItems"
data-get="playlists"
data-set="playlists"
class="cell">
</div>
funktioniert ähnlich gut wie von dir beschrieben.
Auch ich muss den alten Thread mal hoch holen und muss gerade schmunzeln, dass Reinerlein, der Sonos Modul Entwickler vor dem gleichen Problem stand wie ich jetzt. ;D
@Reinlerein: Vielleicht hast du mittlerweile eine Lösung für das Problem, dass in der Auswahlliste für meine Sonos Favoriten immer der erste Eintrag angezeigt wird, was blöd ist, wenn man genau diesen auswählen will. Mir würde es schon reichen, wenn die Liste immer ohne Vorauswahl erscheint. Aber natürlich wäre es am elegantesten, wenn er das aktuell aktive anzeigt. Auch das die Listen nach Änderung automatisch refresh's werden, ohne den Browser Cache des Tablets zu löschen.
Wie hast du das mittlerweile gelöst? Du schreibst was von nocache? Wo hast du das gesetzt bzw. wäre mir eine komplette Lösung natürlich lieber.
Aktuell sieht es bei mir wie folgt aus:
<div class="large middle inline">Favoriten: </div>
<div data-type="select"
data-device="Sonos_Wohnzimmer"
data-list="FavouritesList"
data-alias="FavouritesListAlias"
data-delimiter="|"
data-quote="/"
data-get="currentFavouriteNameMasked"
data-set="StartFavourite"
class="inline left-space w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>
Gruß
sTaN