Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Multiselect

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Multiselect

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      siedi last edited by

      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.

      434_multiselect.png

      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
      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        Wie seht dein newIds aus? ["id1", "id2", "id3"] ?

        Und was willst du damit machen? Einen Raum zuordnen?

        1 Reply Last reply Reply Quote 0
        • S
          siedi last edited by

          @Bluefox:

          Wie seht dein newIds aus? ["id1", "id2", "id3"] ? `

          Ja, so kann ich es formatieren (derzeit ist es noch das Object us dem Fancytree).

          @Bluefox:

          Und was willst du damit machen? Einen Raum zuordnen? `

          Genau.
          979_command.jpg

          1 Reply Last reply Reply Quote 0
          • Bluefox
            Bluefox last edited by

            @siedi:

            @Bluefox:

            Wie seht dein newIds aus? ["id1", "id2", "id3"] ? `

            Ja, so kann ich es formatieren (derzeit ist es noch das Object us dem Fancytree).

            @Bluefox:

            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.

            1 Reply Last reply Reply Quote 0
            • S
              siedi last edited by

              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

              siedi created this issue in ioBroker/ioBroker.admin

              closed implement multiselect for selectID tree #46

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                Super!!!! Es funktioniert. !! 😄

                Danke. 🙂

                Weiter so 🙂

                1 Reply Last reply Reply Quote 0
                • S
                  siedi last edited by

                  Super, danke!

                  Musste allerdings noch zwei kleine Bugfixes vornehmen, hab noch mal ein Pull request erstellt.

                  https://github.com/ioBroker/ioBroker.admin/pull/47

                  siedi created this issue in ioBroker/ioBroker.admin

                  closed Fix: selectID when reloading #47

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  927
                  Online

                  31.7k
                  Users

                  79.7k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  2287
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo