Custom actions
Put yours custom actions in the initModalForm() method. By default already one custom action is created. Here is an example for Model Post.
private function initModalForm(): void
{
$this->utility->addModalForm([
'url' => '/admin/posts/modal1',
'icon' => 'edit',
'text' => 'Qte',
'class' => 'text-white',
'confirm' => 'Are you sure to change record?',
])->form([
TextInput::make('name')
]);
}
Here is the first custom action created
#[Post('admin/posts/modal1',middleware : ['auth'])]
public function modal1(Request $request)
{
$this->utility->tassiliRecord = $this->modelClass::find($request->id);
if ($this->utility->tassiliRecord != null ) {
$this->utility->updateRecord($request);
$this->utility->tassiliRecord->save();
}
}
if you want to create custom action with wizard
private function initModalForm(): void
{
$this->utility->addModalForm([
'url' => '/admin/articles/modal1',
'icon' => 'edit',
'text' => 'Qte',
'class' => 'text-white',
'confirm' => 'Are you sure to change record?',
])->form([
TextInput::make('name'),
TextInput::make('city'),
])->wizard([
'wizardCount' => 2,
'wizardForm' => [1 => ['name'], 2 => ['city']],
'wizardLabel' => [1 => 'first', 2 => 'second'],
'wizardStop' => [],
]);
}
Here is the first custom action created with wizard
#[Post('admin/articles/modal1', middleware: ['tassili.auth'])]
public function modal1(Request $request)
{
if ($request->tassiliWizardStep == 1) {
$request->validate(['name' => ['required']]);
}
if ($request->tassiliWizardStep == 2) {
$request->validate(['city' => ['required']]);
}
if ($request->tassiliSaveActive == 'yes') {
$this->utility->record = $this->modelClass::find($request->id);
if ($this->utility->record !== null) {
$this->utility->updateRecord($request);
$this->utility->record->save();
}
}
}