Listen in PHP-Modulen

Im Prinzip soll pro Zelle (= pro Stift) ein komplett neues Formular geöffnet werden können. Also ein vollständig neues Konfigurationsformular, mit weiteren Feldern und theoretisch einer weiteren Liste.

paresy

Okay. Ich hab’ es jetzt.

Wäre denn alternativ ein Stift pro Zeile und dann ein Formular für alle veränderbaren Spalten auch möglich?
Also eine Ebene weiter oben.
Michael

Oh, ich finde Paresys Idee richtig gut. Man könnte ja die Felder, die man anzeigen möchte, als Labels machen. Wichtig wäre, dass auch nicht editierbare Werte in Listen translated werden.

Was ich ja noch vermisse aber nicht weis ob das einfach zu ergänzen wäre sind Grafiken. Ich bekomme mit einem Response einen Datensatz zurückgeliefert und zu jedem Eintrag existiert auch ein Mini Icon. Das würde die Liste sofort übersichtlicher aussehen lassen wenn ich in der Liste auch ein Miniicon mit einbinden könnte.

Wer lesen kann ist klar im Vorteil :smiley:
Augenscheinlich werden die Werte nur dann gespeichert, wenn sie auch editiert werden. Im meinem Fall lade ich die Daten automatisch und obwohl ich „save“: true werden diese nicht gespeichert.

Ist ja auch so gewollt. Warum soll etwas gespeichert werden, wenn du eh weißt, was der aktuelle Wert ist :wink: Wenn du initial Werte in die Persistenz tun willst, füge die direkt als Startwert bei RegisterProperty hinzu :slight_smile:

paresy

Hallo Leute,

versuche diese neue Option gerade sinnvoll zu nutzen.
Mir ist es sowohl gelungen diese Liste zu erzeugen, als auch sie mit Daten zu befüllen.

Meine Frage: Ich würde gerne die Liste mit neuen (aktualisierten) Daten füllen lassen, wenn der Nutzer des Konfigurationsformulars auf einen Button drückt.

Ist das möglich?

Joachim

Nein, darauf warte ich auch, siehe hier: Listen in PHP-Modulen
Michael

…Okay, Danke, dann wäre die Nutzung als Konfigurationsformular wie z.B. im 1-Wire-Konfigurator auch für mich:
+1 :smiley:

Joachim

Zum nächsten Update habe ich das Problem mit den Selects, der Übersetzung und der fehlenden Validierung von erlaubten Edit-Types gelöst, sodass Buttons gar nicht erst dort erstellt werden dürfen. Zusätzlich werden nun auch die SelectFile und SelectColor sauber verarbeitet und sind somit zusätzlich zu PasswordTextBox und IntervalBox erlaubt. Das Problem mit speziellen Buchstaben wie " und \ ist auch gelöst.

Weitere Funktionen für eine „Vollbild“ Nutzung und einer besseren Nutzbarkeit für Konfigurator-Module kommen erst zur 4.3. Da fehlt noch einiges an Konfigurationen, um dies sauber abbilden zu können. Ebenfalls ein Reload ist zur Zeit nicht möglich.

paresy

Bild 1.png

habe ich mit einer 2 Spalte gelöst, dessen Wert abhängig von CheckBox erstellt wird (CheckBox Element visible auf false gesetzt)

Hallo Leute,

ich möchte aus einer Liste heraus folgendes machen:

  1. Wenn im Datensatz eine Instanz ID vorhanden ist über einen Button diese Instanz in der Konsole öffnen
  2. Wenn im Datensatz noch keine Instanz ID vorhanden ist über einen Button diese neue Instanz anlegen

Ist das möglich?

Joachim

1 nein, noch nicht.
2 ja das geht, du kannst den selektierten Eintrag im Action-Button nutzen.
Schau dir Mal Paresys Beispiel bei GitHub an.
Michael

Scheinbar funktioniert rowColor noch nicht, oder ich mache einen Fehler.

In einer von drei Zeilen setze ich die Farbe rot:

array (
  'elements' => 
  array (
    0 => 
    array (
      'type' => 'List',
      'name' => 'Temperature',
      'caption' => 'Temperature',
      'rowCount' => 10,
      'add' => true,
      'delete' => true,
      'sort' => 
      array (
        'column' => 'slotType',
        'direction' => 'ascending',
      ),
      'columns' => 
      array (
        0 => 
        array (
          'label' => 'Room',
          'name' => 'slotType',
          'width' => '150px',
          'add' => '',
          'edit' => 
          array (
            'type' => 'Select',
            'options' => 
            array (
              0 => 
              array (
                'label' => 'Abstellraum',
                'value' => 'Abstellraum',
              ),
              1 => 
              array (
                'label' => 'Ankleidezimmer',
                'value' => 'Ankleidezimmer',
              ),
              2 => 
              array (
                'label' => 'Arbeitszimmer',
                'value' => 'Arbeitszimmer',
              ),
              3 => 
              array (
                'label' => 'Atelier',
                'value' => 'Atelier',
              ),
              4 => 
              array (
                'label' => 'Ausfahrt',
                'value' => 'Ausfahrt',
              ),
              5 => 
              array (
                'label' => 'Aussen',
                'value' => 'Aussen',
              ),
              6 => 
              array (
                'label' => 'Aussentreppe',
                'value' => 'Aussentreppe',
              ),
              7 => 
              array (
                'label' => 'Badezimmer',
                'value' => 'Badezimmer',
              ),
              8 => 
              array (
                'label' => 'Balkon',
                'value' => 'Balkon',
              ),
              9 => 
              array (
                'label' => 'Bar',
                'value' => 'Bar',
              ),
              10 => 
              array (
                'label' => 'Büro',
                'value' => 'Büro',
              ),
              11 => 
              array (
                'label' => 'Carport',
                'value' => 'Carport',
              ),
              12 => 
              array (
                'label' => 'Dachboden',
                'value' => 'Dachboden',
              ),
              13 => 
              array (
                'label' => 'Dachterrasse',
                'value' => 'Dachterrasse',
              ),
              14 => 
              array (
                'label' => 'Diele',
                'value' => 'Diele',
              ),
              15 => 
              array (
                'label' => 'Einfahrt',
                'value' => 'Einfahrt',
              ),
              16 => 
              array (
                'label' => 'Eingang',
                'value' => 'Eingang',
              ),
              17 => 
              array (
                'label' => 'Empfang',
                'value' => 'Empfang',
              ),
              18 => 
              array (
                'label' => 'Erdgeschoss',
                'value' => 'Erdgeschoss',
              ),
              19 => 
              array (
                'label' => 'Erker',
                'value' => 'Erker',
              ),
              20 => 
              array (
                'label' => 'Fitnessraum',
                'value' => 'Fitnessraum',
              ),
              21 => 
              array (
                'label' => 'Galerie',
                'value' => 'Galerie',
              ),
              22 => 
              array (
                'label' => 'Garage',
                'value' => 'Garage',
              ),
              23 => 
              array (
                'label' => 'Garderobe',
                'value' => 'Garderobe',
              ),
              24 => 
              array (
                'label' => 'Garten',
                'value' => 'Garten',
              ),
              25 => 
              array (
                'label' => 'Gartenhaus',
                'value' => 'Gartenhaus',
              ),
              26 => 
              array (
                'label' => 'Gewächshaus',
                'value' => 'Gewächshaus',
              ),
              27 => 
              array (
                'label' => 'Grillplatz',
                'value' => 'Grillplatz',
              ),
              28 => 
              array (
                'label' => 'Gäste WC',
                'value' => 'Gäste WC',
              ),
              29 => 
              array (
                'label' => 'Gästezimmer',
                'value' => 'Gästezimmer',
              ),
              30 => 
              array (
                'label' => 'Gästezimmer 1',
                'value' => 'Gästezimmer 1',
              ),
              31 => 
              array (
                'label' => 'Gästezimmer 2',
                'value' => 'Gästezimmer 2',
              ),
              32 => 
              array (
                'label' => 'Gästezimmer 3',
                'value' => 'Gästezimmer 3',
              ),
              33 => 
              array (
                'label' => 'Gästezimmer 4',
                'value' => 'Gästezimmer 4',
              ),
              34 => 
              array (
                'label' => 'Gästezimmer 5',
                'value' => 'Gästezimmer 5',
              ),
              35 => 
              array (
                'label' => 'Gästezimmer 6',
                'value' => 'Gästezimmer 6',
              ),
              36 => 
              array (
                'label' => 'Hauptquartier',
                'value' => 'Hauptquartier',
              ),
              37 => 
              array (
                'label' => 'Haus',
                'value' => 'Haus',
              ),
              38 => 
              array (
                'label' => 'Hauswirtschaftsraum',
                'value' => 'Hauswirtschaftsraum',
              ),
              39 => 
              array (
                'label' => 'Heimkino',
                'value' => 'Heimkino',
              ),
              40 => 
              array (
                'label' => 'Heizraum',
                'value' => 'Heizraum',
              ),
              41 => 
              array (
                'label' => 'Hobbyraum',
                'value' => 'Hobbyraum',
              ),
              42 => 
              array (
                'label' => 'Hochbett',
                'value' => 'Hochbett',
              ),
              43 => 
              array (
                'label' => 'Kaminzimmer',
                'value' => 'Kaminzimmer',
              ),
              44 => 
              array (
                'label' => 'Kartoffelkeller',
                'value' => 'Kartoffelkeller',
              ),
              45 => 
              array (
                'label' => 'Keller',
                'value' => 'Keller',
              ),
              46 => 
              array (
                'label' => 'Kinderzimmer',
                'value' => 'Kinderzimmer',
              ),
              47 => 
              array (
                'label' => 'Kinderzimmer 1',
                'value' => 'Kinderzimmer 1',
              ),
              48 => 
              array (
                'label' => 'Kinderzimmer 2',
                'value' => 'Kinderzimmer 2',
              ),
              49 => 
              array (
                'label' => 'Kinderzimmer 3',
                'value' => 'Kinderzimmer 3',
              ),
              50 => 
              array (
                'label' => 'Kinderzimmer 4',
                'value' => 'Kinderzimmer 4',
              ),
              51 => 
              array (
                'label' => 'Kinderzimmer 5',
                'value' => 'Kinderzimmer 5',
              ),
              52 => 
              array (
                'label' => 'Kinderzimmer 6',
                'value' => 'Kinderzimmer 6',
              ),
              53 => 
              array (
                'label' => 'Kleiderschrank',
                'value' => 'Kleiderschrank',
              ),
              54 => 
              array (
                'label' => 'Küche',
                'value' => 'Küche',
              ),
              55 => 
              array (
                'label' => 'Labor',
                'value' => 'Labor',
              ),
              56 => 
              array (
                'label' => 'Lager',
                'value' => 'Lager',
              ),
              57 => 
              array (
                'label' => 'Lobby',
                'value' => 'Lobby',
              ),
              58 => 
              array (
                'label' => 'Loggia',
                'value' => 'Loggia',
              ),
              59 => 
              array (
                'label' => 'Musikzimmer',
                'value' => 'Musikzimmer',
              ),
              60 => 
              array (
                'label' => 'Oberes Badezimmer',
                'value' => 'Oberes Badezimmer',
              ),
              61 => 
              array (
                'label' => 'Obergeschoss',
                'value' => 'Obergeschoss',
              ),
              62 => 
              array (
                'label' => 'Partyraum',
                'value' => 'Partyraum',
              ),
              63 => 
              array (
                'label' => 'Pool',
                'value' => 'Pool',
              ),
              64 => 
              array (
                'label' => 'Relaxecke',
                'value' => 'Relaxecke',
              ),
              65 => 
              array (
                'label' => 'Sauna',
                'value' => 'Sauna',
              ),
              66 => 
              array (
                'label' => 'Schlafbereich',
                'value' => 'Schlafbereich',
              ),
              67 => 
              array (
                'label' => 'Schlafzimmer',
                'value' => 'Schlafzimmer',
              ),
              68 => 
              array (
                'label' => 'Schlafzimmer 1',
                'value' => 'Schlafzimmer 1',
              ),
              69 => 
              array (
                'label' => 'Schlafzimmer 2',
                'value' => 'Schlafzimmer 2',
              ),
              70 => 
              array (
                'label' => 'Schlafzimmer 3',
                'value' => 'Schlafzimmer 3',
              ),
              71 => 
              array (
                'label' => 'Schlafzimmer 4',
                'value' => 'Schlafzimmer 4',
              ),
              72 => 
              array (
                'label' => 'Schlafzimmer 5',
                'value' => 'Schlafzimmer 5',
              ),
              73 => 
              array (
                'label' => 'Schlafzimmer 6',
                'value' => 'Schlafzimmer 6',
              ),
              74 => 
              array (
                'label' => 'Sitzecke',
                'value' => 'Sitzecke',
              ),
              75 => 
              array (
                'label' => 'Speisekammer',
                'value' => 'Speisekammer',
              ),
              76 => 
              array (
                'label' => 'Spielzimmer',
                'value' => 'Spielzimmer',
              ),
              77 => 
              array (
                'label' => 'Studio',
                'value' => 'Studio',
              ),
              78 => 
              array (
                'label' => 'Symcon',
                'value' => 'Symcon',
              ),
              79 => 
              array (
                'label' => 'Tankraum',
                'value' => 'Tankraum',
              ),
              80 => 
              array (
                'label' => 'Technikraum',
                'value' => 'Technikraum',
              ),
              81 => 
              array (
                'label' => 'Teich',
                'value' => 'Teich',
              ),
              82 => 
              array (
                'label' => 'Terrasse',
                'value' => 'Terrasse',
              ),
              83 => 
              array (
                'label' => 'Toilette',
                'value' => 'Toilette',
              ),
              84 => 
              array (
                'label' => 'Treppe',
                'value' => 'Treppe',
              ),
              85 => 
              array (
                'label' => 'Treppenhaus',
                'value' => 'Treppenhaus',
              ),
              86 => 
              array (
                'label' => 'Unteres Badezimmer',
                'value' => 'Unteres Badezimmer',
              ),
              87 => 
              array (
                'label' => 'Untergeschoss',
                'value' => 'Untergeschoss',
              ),
              88 => 
              array (
                'label' => 'Versandabteilung',
                'value' => 'Versandabteilung',
              ),
              89 => 
              array (
                'label' => 'Vorgarten',
                'value' => 'Vorgarten',
              ),
              90 => 
              array (
                'label' => 'Vorratskeller',
                'value' => 'Vorratskeller',
              ),
              91 => 
              array (
                'label' => 'Waschraum',
                'value' => 'Waschraum',
              ),
              92 => 
              array (
                'label' => 'Weinkeller',
                'value' => 'Weinkeller',
              ),
              93 => 
              array (
                'label' => 'Wellnessraum',
                'value' => 'Wellnessraum',
              ),
              94 => 
              array (
                'label' => 'Werkstatt',
                'value' => 'Werkstatt',
              ),
              95 => 
              array (
                'label' => 'Windfang',
                'value' => 'Windfang',
              ),
              96 => 
              array (
                'label' => 'Wintergarten',
                'value' => 'Wintergarten',
              ),
              97 => 
              array (
                'label' => 'Wohnbereich',
                'value' => 'Wohnbereich',
              ),
              98 => 
              array (
                'label' => 'Wohnung',
                'value' => 'Wohnung',
              ),
              99 => 
              array (
                'label' => 'Wohnzimmer',
                'value' => 'Wohnzimmer',
              ),
            ),
          ),
        ),
        1 => 
        array (
          'label' => 'Object',
          'name' => 'objectId',
          'width' => '75px',
          'add' => 0,
          'edit' => 
          array (
            'type' => 'SelectObject',
          ),
        ),
        2 => 
        array (
          'label' => 'Status',
          'name' => 'status',
          'width' => '300px',
          'add' => 'Neuer Eintrag',
        ),
      ),
      'values' => 
      array (
        0 => 
        array (
          'slotType' => 'Abstellraum',
          'objectId' => 58845,
          'status' => 'Treiber Patami\\IPS\\Objects\\Drivers\\Generic\\TemperatureVariableDriver',
          'rowColor' => '',
        ),
        1 => 
        array (
          'slotType' => 'Aussen',
          'objectId' => 44027,
          'status' => 'Treiber Patami\\IPS\\Objects\\Drivers\\KNX\\KNXTemperatureDriver',
          'rowColor' => '',
        ),
        2 => 
        array (
          'slotType' => 'Aussentreppe',
          'objectId' => 0,
          'status' => 'Objekt nicht gesetzt',
          'rowColor' => '#ffc0c0',
        ),
      ),
    ),
  ),
  'translations' => 
  array (
    'de' => 
    array (
      'Object' => 'Objekt',
      'Status' => 'Status',
    ),
  ),
)

Was stimmt hier nicht?

Sehe den Fehler zwar nicht (auf dem Handy) aber rowcolor funktioniert bei mir. Habe ich schon aktiv genutzt.
Michael

Danke, das mache ich jetzt auch so. Prima Tipp!

Hast du die Zeile vielleicht ausgewählt? Die „Auswahl“ hat vor der Zeilenfarbe Vorrang.

paresy

Nein, ob ausgewählt oder nicht ist egal.

Niemand eine Idee?

Nicht wirklich. Das sieht bei dir oben eigentlich korrekt aus. Ist das Modul schon irgendwo verfügbar, sodass ich es auch nachstellen kann?

paresy