Extension Guide

Selection Controls Pack – Dokumentation

Dokumentation für das Selection Controls Pack: Radio Buttons, Checkboxen und Chips für moderne Pickup-Auswahl in Matrix42 Layouts.

Torben Soennecken 24. Januar 2026

Das Selection Controls Pack ersetzt den Standard-Objektwähler durch moderne Auswahlsteuerelemente. Pickup-Werte werden als Radio Buttons, Checkboxen oder Chips dargestellt – übersichtlicher und schneller bedienbar.

Verfügbare Steuerelemente

ControlAuswahlAnwendungsfall
rootitup-radio-buttonsEinzelauswahlWenige Optionen (3–7), gegenseitig ausschließend
rootitup-checkboxesMehrfachauswahlMehrere Optionen gleichzeitig wählbar
rootitup-chipsEinzelauswahlKompakte Darstellung, visuell ansprechend
rootitup-multi-chipsMehrfachauswahlKompakte Darstellung, mehrere Tags wählbar

Architektur

Die Extension wird als Front-End Workspace in Matrix42 integriert. Das AngularJS-Modul RootITUp.SelectionControlsPack nutzt Angular Material für das Styling.

Genutzte Matrix42-Services

  • mx.SolutionBuilderAgent.EntityService – Lädt Enumeration-Werte dynamisch
  • mx.components.FormControlControllerBase – Basis für Validierung und Zustandsverwaltung
  • mx.internationalization – Übersetzt Validierungsmeldungen

Gemeinsame Bindings

Alle Steuerelemente unterstützen diese Eigenschaften:

BindingTypBeschreibung
entityClassNameStringPflicht. Name der Enumeration-Definition (z. B. SPSCommonPickupObjectStatus)
labelStringBeschriftung des Controls
ngModelModelGebundener Wert (Einzelwert oder Array bei Mehrfachauswahl)
requiredBooleanMacht das Feld zum Pflichtfeld
disabledBooleanDeaktiviert das Control
readOnlyBooleanVerhindert Änderungen, zeigt aber den Wert
hintStringHilfetext unterhalb des Controls
filterStringASQL-Filter zur Einschränkung der Optionen
defaultAnyStandardwert, falls ngModel initial leer ist
showValueBooleanZeigt den Rohwert in Klammern (z. B. „Aktiv (1)“)

Installation

  1. Matrix42 Administration öffnen
  2. Zu Administration → Extensions → Extension Gallery navigieren
  3. Nach „Selection Controls Pack” von RootITUp suchen
  4. Auf „Install” klicken und warten, bis die Installation abgeschlossen ist

Voraussetzung: Administrative Rechte im Matrix42-System.

Konfiguration

1. Layout öffnen

Im Layout Builder das gewünschte Layout öffnen (z. B. Dialog zum Melden eines Tickets).

2. Pickup auswählen

Im Datenmodell des Layout Builders den gewünschten Pickup suchen (z. B. SVMTaskPickupTypeOfTask).

3. Control platzieren

Den Pickup per Drag-&-Drop an die gewünschte Stelle ziehen und das passende Steuerelement auswählen:

  • Radio Buttons – für exklusive Einzelauswahl
  • Chips – für kompakte Einzelauswahl
  • Checkboxes – für Mehrfachauswahl
  • Multi-Chips – für kompakte Mehrfachauswahl

4. Eigenschaften konfigurieren

Optional weitere Attribute in den Eigenschaften festlegen:

EigenschaftBeschreibung
LabelBeschriftung des Feldes
HintHilfetext für Nutzende
RequiredPflichtfeld-Validierung
FilterASQL zur Einschränkung der Optionen
DefaultVorausgewählter Wert
Show ValueZeigt Rohwert neben Anzeigenamen

ASQL-Filter

Die Optionen lassen sich über ASQL-Filter dynamisch einschränken:

Value > 0 AND DisplayString LIKE '%Aktiv%'

Änderungen am filter-Binding lösen automatisch ein Neuladen der Optionen aus.

Validierung & Standardwerte

Validierungslogik

Die Controls nutzen die Standard-Formularvalidierung von Matrix42:

  • Pflichtfeld: Prüft, ob mindestens ein Wert ausgewählt ist
  • Fehlermeldungen: Werden lokalisiert über mx.internationalization angezeigt
  • Zustandsverwaltung: disabled, readOnly werden korrekt behandelt

Hinweis: Der Wert 0 wird als „leer” interpretiert. Pickups mit dem Wert 0 sind daher nicht auswählbar.

Standardwerte setzen

Über das default-Binding lässt sich ein Standardwert definieren:

<rootitup-chips 
  entity-class-name="SPSCommonPickupObjectStatus"
  default="1"
  ng-model="ticket.Status">
</rootitup-chips>

Bei Mehrfachauswahl ein Array übergeben:

<rootitup-multi-chips 
  entity-class-name="SPSCommonPickupCurrency"
  default="[1, 2, 3]"
  ng-model="object.allowedCurrencies">
</rootitup-multi-chips>

Reaktives Verhalten

Die Controls reagieren automatisch auf Änderungen:

ÄnderungVerhalten
entityClassName ändert sichOptionen werden neu geladen
filter ändert sichOptionen werden neu geladen
Geladene Optionen ändern sichUngültige Werte im Model werden entfernt

Barrierefreiheit

Alle Controls unterstützen:

  • ariaLabel – Screenreader-Beschreibung
  • Tastaturnavigation – via Angular Material
  • Fokus-Management – Standard-Formularverhalten

Changelog

Version 1.6.0 – Feature Update (25.01.2026)
  • Radio Buttons für exklusive Einzelauswahl
  • Checkboxes für Mehrfachauswahl
  • Chips (Single/Multi) für kompakte Darstellung
  • ✨ befüllen über ASQL/Data Query
  • ✨ Dynamische Optionen über entityClassName
  • ✨ ASQL-Filter-Unterstützung
  • ✨ Standardattribute: label, hint, required, disabled, readOnly
  • ✨ Optionale Rohwert-Anzeige via showValue
  • ✨ Kompatibel mit Matrix42 ab Version 11.x.x
  • ✅ Verwendet Angular Material für konsistentes Styling

Häufig gestellte Fragen

Welche Pickup-Typen werden unterstützt?

Alle Enumeration-basierten Pickups, die über EntityService.getEnumerationValues abgerufen werden können. Das Binding entityClassName erwartet den Namen der Enumeration-Definition (z. B. SPSCommonPickupObjectStatus).

Warum ist der Wert 0 nicht auswählbar?

Die Controls interpretieren 0 als „kein Wert ausgewählt”. Dies entspricht dem üblichen Verhalten von Enumeration-Feldern, bei denen 0 häufig für „nicht gesetzt” steht.

Lässt sich die Optionsliste dynamisch filtern?

Ja, über das filter-Binding. Änderungen am Filter lösen automatisch ein Neuladen der Optionen aus. Der Filter ist ein ASQL-Ausdruck.

Was passiert, wenn ein ausgewählter Wert nach dem Neuladen nicht mehr existiert?

Der Wert wird automatisch aus dem Model entfernt. Bei Einzelauswahl wird das Model auf undefined gesetzt, bei Mehrfachauswahl wird der Wert aus dem Array entfernt.

Werden zusätzliche Berechtigungen benötigt?

Nein. Die Extension verwendet ausschließlich öffentliche Matrix42-APIs – keine zusätzlichen Berechtigungen erforderlich.

Welche Angular-Version wird benötigt?

Die Extension nutzt AngularJS (1.x) mit Angular Material. Diese sind in Matrix42 standardmäßig enthalten.

Noch Fragen zur Konfiguration?

Unsere Engineers stehen gerne zur Verfügung, um bei der Einrichtung oder Anpassung zu helfen.

Wir antworten in der Regel innerhalb von 24h.

War dieser Artikel hilfreich?

Wir freuen uns über Feedback.