CRUD (Component/Crud)
Diese Codekomponente bietet eine Sammlung von Code für die gängigsten Operationen die ein Anwender in der Benutzeroberfläche ausführen kann. Die nachfolgenden Funktionen stehen zur Verfügung. Allen Events dieser Codecomponente werden funktionsabhängige Kontextklassen mitgegeben um die spezifische Funktion zu identifizieren.
Speichern eines Datensatzes
Die Speicherfunktion geht von einem bereits existierenden Formular aus, welches bspw. über die Formularkomponente erstellt werden kann. Desweiteren muss über eines oder mehrere versteckte Eingabefelder die betreffenden Datensätze definiert werden. Die Speicherfunktion wird in den Events mit der Kontextklasse ContextPersist
identifiziert.
Datensatzdefinition im HTML
<form id="entities">
<input type="hidden" name="selection[shopArticle][]" value="123">
<input type="hidden" name="selection[shopArticle][]" value="456">
</form>
use Brandbox\Framework\Component\Crud;
$selector = '#form, #entities'; // Selektoren für das Datenformular und die betreffenden Datensätze
$prefix = 'ComponentFormPrefix'; // Prefix welches auch zum erstellen des Formulars genutzt wurde
$source = 'MyCustomSource'; // Implementationsabhängige Quelldefinition (Steht in allen Events zur Verfügung)
$element = $this
->staticController(Crud\Manager::class)
->getButtonPersist($selector, $prefix, $source)
;
// $element ist 'null' oder eine Instanz von \Brandbox\FrameworkStyleguide\Entity\FrameworkButton
Kopieren eines Datensatzes
Ähnlich zur Speicherfunktion wird auch bei der Kopierfunktion die Definition der betroffenen Datensätze erwartet. Dies kann, auch wie bei der Speicherfunktion, über versteckte Eingabefelder erfolgen. Bei der Kopierfunktion wird allerdings kein Formular mit dem Inhalt der betroffenden Datensätze benötigt. Diese Funktion wird in den Events über die Kontextklasse ContextDuplicate
identifiziert.
use Brandbox\Framework\Component\Crud;
$selector = '#entities'; // Selektor für die betreffenden Datensätze
$source = 'MyCustomSource'; // Implementationsabhängige Quelldefinition (Steht in allen Events zur Verfügung)
$element = $this
->staticController(Crud\Manager::class)
->getButtonDuplicate($selector, $source)
;
// $element ist 'null' oder eine Instanz von \Brandbox\FrameworkStyleguide\Entity\FrameworkButton
Löschen eines Datensatzes
Die Löschfunktion ist ähnlich zur Kopierfunktion aufgebaut und wird in den Events mit der Kontextklasse ContextDelete
identifiziert.
Funktionsaktionen
Allen zuvor genannten Funktionen können beliebig viele Aktionen zugeordnet werden. Diese werden je nach Konfiguration dem Anwender in einem Modal angeboten, damit dieser Aktionen für die Funktion aus- bzw. abwählen kann. Das Event OnPopulateActions
wird ausgelöst um die verfügbaren Aktionen einzusammeln.
Erstellen einer Funktionsaktion
Eine Funktionsaktion wird dem Anwender immer als Checkbox präsentiert. Es ist zusätzlich möglich Unteroptionen in Form von Radiobuttons hinzuzufügen. Das nachfolgende Codebeispiel baut auf dem vorherigen auf.
Erstellen von Aktionsoptionen
Eventübersicht
Klassenname | Beschreibung |
---|---|
| Wird ausgelöst, sobald eine der CRUD-Funktionen ausgelöst wird. |
| Wird zum einsammeln der Funktionsaktionen ausgelöst. |
| Wird zum einsammeln von Spaltenidentifikatoren genutzt, welche bspw. bei einer Validierung ignoriert werden sollen. |