Custom listing
How to create bulk action and modal form
public function initTassili()
{
$this->tassili->addBulk([
'collection' => 'comments',
'label' => 'Ajouter',
'icon' => 'description',
'class' => 'text-white',
'url' =>'/admin/posts/create/bulk1' ,
'confirmation' => 'Are you sure to change records',
'message' => 'Records changed',
]);
$this->tassili->addModalForm([
'collection' => 'comments',
'url' => '/admin/posts/create/modal1',
'icon' => 'edit',
'text' => 'Qte',
'class' => 'text-white',
'confirm' => 'Are you sure to change record?',
])->form([
TextInput::make('content')
]);
}
Here is the validation of the bulk action
#[Post('admin/posts/create/bulk1', middleware: ['tassili.auth'])]
public function bulk1(Request $request)
{
\App\Models\Comment::whereIn('id', $request->actionIds)->update([
'content' => 'My comment',
]);
}
Here is the validation of the modal form
#[Post('admin/posts/create/modal1', middleware: ['tassili.auth'])]
public function update3(Request $request)
{
$request->validate(['content' => ['required']]);
$this->tassili->record = \App\Models\Comment::find($request->id);
if ($this->tassili->record !== null) {
$this->tassili->updateRecord($request);
$this->tassili->record->save();
}
}
When create your own listing you have portable component that could help you
Component for bulk action
import BulkMenu from '@/Vendor/TassiliLibs/Bulks/BulkMenu.vue';
<BulkMenu :collection="'comments'" />
Component for bulk counter
import BulkCounter from '@/Vendor/TassiliLibs/Bulks/BulkCounter.vue';
<BulkCounter :collection="'comments'" />
Component for checkbox bulk
import BulkCheckbox from '@/Vendor/TassiliLibs/Bulks/BulkCheckbox.vue';
<BulkCounter :collection="'comments'" />
Component for modal form
import ModalFormList from '@/Vendor/TassiliLibs/Forms/ModalFormList.vue';
<ModalFormList :collection="'comments'" :record="item">
</ModalFormList>