Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Die Kopierfunktion von Base steht unter anderem über das Kontextmenü von Datensatzlisten zur Verfügung. Über ein nachfolgend beschriebenes Event können Kopieroptionen definiert werden, welche abhängig von ihrer Konfiguration über ein Modal abgefragt werden. Das Kopieren der gewählten Datensätze wird ebenfalls über ein Event ausgeführt.

Codeblock
languagephp
themeRDark
/**
 * Nachfolgend wird eine Schaltfläche zum Kopieren eines einzelnen Datensatzes erstellt.
 */

use Brandbox\Framework\Base\Copy;

$identifier = 'shopArticle'; // Identifikator der Entität
$id = 123; // ID des Datensatzes

$button = $this
	->staticController(Copy\Manager::class)
	->getButtonPrepare($identifier, $id, 'default')
;

// 'default' repräsentiert die CSS-Variante der darzustellenden Schaltfläche
// $button kann 'null' sein oder \Brandbox\FrameworkStyleguide\Entity\FrameworkButton

...

Bei Klick auf die Schaltfläche zum Kopieren wird zunächst ein Modal zur Abfrage der Kopieroptionen angezeigt. Diese Optionen werden durch das Event OnPopulateActions eingesammelt .

Codeblock
languagephp
themeRDark
/**
 * Das nachfolgende Codebeispiel fügt eine Kopieroption hinzu.
 * Dieser Code muss in einem Listener für das OnPopulateActions-Event ausgeführt werden.
 */

use Brandbox\Framework\Base\Copy;

use Brandbox\Framework\Component\Pwa;
use Brandbox\Framework\Component\I18n;

/** @var Copy\Lib\Event\OnPopulateActions $event */

$action = new Pwa\Lib\Struct\ActionElement();

$action->headline = I18n\TranslationManager::__('Example/Package.ActionHeadline');
$action->content = I18n\TranslationManager::__('Example/Package.ActionContent');

$action->identifier = 'ActionIdentifier'; // Dieser Identifikator wird dem OnExecuteCopy-Event mitgegeben, 
                                          // sofern der Anwender dieser Option gewählt hat

$action->checked = true; // Diese Option ist standardmäßig ausgewählt
$action->required = false; // Diese Option muss nicht immer gewählt sein
$action->disabled = false; // Diese Option kann nicht verändert werden

$event->actions[] = $action;

Eine Kopieroption 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.

Codeblock
languagephp
themeRDark
use Brandbox\Framework\Component\Pwa;
use Brandbox\Framework\Component\I18n;

/** @var Pwa\Lib\Struct\ActionElement $action */

$action = new Pwa\Lib\Struct\ActionElement();

$option1 = new Pwa\Lib\Struct\ActionElementOption();
$option2 = new Pwa\Lib\Struct\ActionElementOption();

// Der aus den Option ausgewählte Identifikator wird ebenfalls OnExecuteCopy mitgegeben
$option1->identifier = 'ActionIdentifierOption1';
$option2->identifier = 'ActionIdentifierOption2';

$option1->content = I18n\TranslationManager::__('Example/Package.ActionOption1');
$option2->content = I18n\TranslationManager::__('Example/Package.ActionOption2');

// Da Unteroption als Radiobuttons angeboten werden, kann nur eine Option gewählt werden
$option1->checked = false;
$option2->checked = true;

$action->options[] = $option1;
$action->options[] = $option2;

und ab framework 1.30.0 durch Component/Crud bereitgestellt.

Eventübersicht

Klassenname

Beschreibung

OnPopulateActions (veraltet)

Wird ausgelöst um die verfügbaren Kopieroptionen einzusammeln.

OnExecuteCopy (veraltet)

Wird nach Auswahl der Kopieroptionen ausgelöst um die gewählten Datensätzen unter berücksichtigung der gewählten Kopieroptionen zu kopieren.

Versionshinweise

Info

framework 1.30.0

Ab framework 1.30.0 wird Base/Copy über Component/Crud implementiert und nutzt die dort verfügbaren Events