TASSILI Docs
search
menu
TASSILI Docs
search
search
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>