NEWS
Multiselect
-
Hi,
arbeite gerade an einem Multiselect im selectDialog. Ausserdem dass auch Objekte, die keine States sind, ausgewählt werden können (wichtig für die Raumzuordnung, klick mich sonst zu tote).
Frontendseitig schaut das soweit schon ganz gut aus. Fancytree is angepasst (bzw. die Optionen). Der callback für das Selektieren (select statt activate) hinzugefügt.
Jetzt steht natürlich die größte Hürde an, das Speichern der selektierten IDs. Ein einfaches````
_data.selectedID = newIds;Wahrscheinlich kann mir nur Bluefox einen Tipp geben, wäre sehr dankbar. LG Siedi
-
Wie seht dein newIds aus? ["id1", "id2", "id3"] ?
Und was willst du damit machen? Einen Raum zuordnen?
-
Wie seht dein newIds aus? ["id1", "id2", "id3"] ? `
Ja, so kann ich es formatieren (derzeit ist es noch das Object us dem Fancytree).
Und was willst du damit machen? Einen Raum zuordnen? `
Genau.
979_command.jpg -
Wie seht dein newIds aus? ["id1", "id2", "id3"] ? `
Ja, so kann ich es formatieren (derzeit ist es noch das Object us dem Fancytree).
Und was willst du damit machen? Einen Raum zuordnen? `
Genau. `
var IDs = ['id1', 'id2']; function addToRoom(IDs, room) { // read enum main.socket.emit('getObject', 'enum.rooms.' + room, function (err, obj) { if (err) return main.showError(err); if (obj && obj.common) { obj.common.members = obj.common.members || []; var changed = false; // add all IDs, but check if yet consist for (var id = 0; id < IDs.length; id++) { if (obj.common.members.indexOf(IDs[id]) == -1) { changed = true; obj.common.members.push(IDs[id]); } } // if something changed if (changed) { // write new settings main.socket.emit('setObject', 'enum.rooms.' + room, obj, function (err) { if (err) return main.showError(err); }); } } }); } addToRoom(IDs, 'DEIN_RAUM');
Es kann sein, dass du statt "main" das "that.main" benutzen solltest. Das hängt davon ab wo du es aufrufst.
-
Hi Bluefox.
danke für deinen Vorschlag. Hab das jetzt mal direkt im admin.js / selectID.js des admin Moduls implementiert und einen Pull request dafür erstellt:
https://github.com/ioBroker/ioBroker.admin/pull/46
Leider weiss ich nicht, ob und wie die selectID.js auch in anderen Modulen verwendet wird. Ggf. lässt sich der Aufruf auch parametrisieren, so dass je nach Bedarf das Multiselect zur Verfügung gestellt wird oder nicht.
Würd mich über dein Feedback freuen.
LG
Siedi
-
Super!!!! Es funktioniert. !!
Danke.
Weiter so
-
Super, danke!
Musste allerdings noch zwei kleine Bugfixes vornehmen, hab noch mal ein Pull request erstellt.