Skip to content

Conversation

@karandatwani92
Copy link
Contributor

WHY

BEFORE - What was wrong? What was happening before this PR?

Quick button is very quick and useful to setup single action buttons.

AFTER - What is happening after this PR?

Now, it also lets you setup bulk action buttons. It helps me setup bulk operation smoothly without getting me into messy view file.😎

HOW

+ CRUD::enableBulkActions();
CRUD::button('send_invoices')->stack('bottom')->view('crud::buttons.quick')->meta([
    'label' => 'Send Invoices (Bulk)',
    'icon' => 'la la-envelope',
    'access' => true,
    'wrapper' => [
        'href' => function ($entry, $crud) {
            return url($crud->route) . "/bulk-send-invoice";
        },
    ],
    'ajax' => [
        'method' => 'POST',
        'success_title' => 'Send Invoices Job Queued',
        'success_message' => 'Send invoices operation has been queued and will be processed in the background. Check logs for progress updates.',
        'error_title' => 'Queue Operation Failed',
        'error_message' => 'Failed to queue send invoices operation.',
    ],
    //'bulk' => true,
+    'bulk' => [
+        'no_entries_title' => 'No Invoices Selected',
+        'no_entries_message' => 'Please select at least one invoice to send.',
+        'confirm_title' => 'Confirm Send Invoices Operation',
+        'confirm_message' => 'Are you sure you want to queue send invoices operation for :number selected invoices? This will be processed in the background and may take some time to complete.',
+    ],
]);

How did you achieve that, in technical terms?

  • Basic config keys
  • A Modal
  • Existing Ajax setup

Is it a breaking change?

No

pxpm and others added 30 commits March 24, 2025 15:17
* add method to get ajax uploaders

* Apply fixes from StyleCI

[ci skip] [skip ci]

* use an abstract class

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* refactor uploaders

* Apply fixes from StyleCI

[ci skip] [skip ci]

* refactor rules

* Apply fixes from StyleCI

[ci skip] [skip ci]

* move ajax to PRO, cleanup

* Apply fixes from StyleCI

[ci skip] [skip ci]

* make attributes available for all subfields

* fix tests

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* upload multiple and upload properly working 🙏

* fixes

* Apply fixes from StyleCI

[ci skip] [skip ci]

* allow the configuration of valueWithoutPath call.

* fix valid upload inside repeatables

* Apply fixes from StyleCI

[ci skip] [skip ci]

* fix condition

* cleanup

* fix

* Apply fixes from StyleCI

[ci skip] [skip ci]

* fix use case for enabling validation after entry is created

* Apply fixes from StyleCI

[ci skip] [skip ci]

* dont save array keys

* fix ajax validation

* fix validation messages

* Apply fixes from StyleCI

[ci skip] [skip ci]

* fixes ValidUpload

* Apply fixes from StyleCI

[ci skip] [skip ci]

* dont json encode if casted in the model

* Apply fixes from StyleCI

[ci skip] [skip ci]

* fix previous file identification in repeatable

* Apply fixes from StyleCI

[ci skip] [skip ci]

* fix getting values

* Apply fixes from StyleCI

[ci skip] [skip ci]

* add fake fields support

* Apply fixes from StyleCI

[ci skip] [skip ci]

* wip add uploaders tests

* Apply fixes from StyleCI

[ci skip] [skip ci]

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* add pro columns

* fix test suite

* fix tests

* ffix tests

* remove unused test views

* add uploaders to test coverage

* Apply fixes from StyleCI

[ci skip] [skip ci]

* add coverage folder to gitignore

* make tests run faster by not reloading db when not necessary

* add coverage to validation tests

* add fake tests to uploaders

* Apply fixes from StyleCI

[ci skip] [skip ci]

* add more tests

* Apply fixes from StyleCI

[ci skip] [skip ci]

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* wip

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* add more upload assets

* fixes

* Apply fixes from StyleCI

[ci skip] [skip ci]

* fix single file

* Apply fixes from StyleCI

[ci skip] [skip ci]

* add image column

* fix tests

* Apply fixes from StyleCI

[ci skip] [skip ci]

* remove hardcoded macro names

* Apply fixes from StyleCI

[ci skip] [skip ci]

* remove double loop, fix single file uploader

* Apply fixes from StyleCI

[ci skip] [skip ci]

* use a big increments and unsigned for primary key

* handle pivot file deletion

* Apply fixes from StyleCI

[ci skip] [skip ci]

* register events for relation models

* Apply fixes from StyleCI

[ci skip] [skip ci]

* fix typo

* Apply fixes from StyleCI

[ci skip] [skip ci]

* fix relationship uploaders

* Apply fixes from StyleCI

[ci skip] [skip ci]

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* update temporary time key

* save objects in the macro

---------

Co-authored-by: StyleCI Bot <[email protected]>
* wip

* clean up

* add get uploadedFilesFromRequest to clean up uploaders

* Apply fixes from StyleCI

[ci skip] [skip ci]

* fix type cast

* add summernote uploader

* update summernote

* add summernote

* add more test assets

---------

Co-authored-by: StyleCI Bot <[email protected]>
* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* tidy up

* Apply fixes from StyleCI

[ci skip] [skip ci]

* panel hooks

* Apply fixes from StyleCI

[ci skip] [skip ci]

* refactoring :broom

* finish implementing hooks

* Apply fixes from StyleCI

[ci skip] [skip ci]

* refactoring hooks

* Apply fixes from StyleCI

[ci skip] [skip ci]

* add hook to delete

* allow empty parameters

* wip

---------

Co-authored-by: StyleCI Bot <[email protected]>
* wip

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* wip

* Apply fixes from StyleCI

[ci skip] [skip ci]

* remove filters navbar component

---------

Co-authored-by: StyleCI Bot <[email protected]>
[ci skip] [skip ci]
Co-authored-by: StyleCI Bot <[email protected]>
Co-authored-by: Cristian Tabacitu <[email protected]>
Co-authored-by: StyleCI Bot <[email protected]>
Co-authored-by: Cristian Tabacitu <[email protected]>
…save

Fix keyboard shortcut on forms save actions
…ntification-on-uploaders

ensure proper crud identification
pxpm and others added 19 commits August 26, 2025 12:21
Co-authored-by: StyleCI Bot <[email protected]>
Co-authored-by: Cristian Tabacitu <[email protected]>
Co-authored-by: Cristian Tăbăcitu <[email protected]>
Fixes modal form tabs, and allow form card to be configured.
…ader

Fixes stiky header "bumping" in datatables
Enable the usage of classes to describe the save actions. This allow more flexibility and easy to extend and/or configure behaviour.
@karandatwani92 karandatwani92 moved this to In Review in Backpack v7.0 Nov 13, 2025
@karandatwani92 karandatwani92 moved this to Needs Testing, Review or Docs in This week Nov 13, 2025
@karandatwani92 karandatwani92 changed the base branch from main to next November 13, 2025 10:05
@pxpm pxpm force-pushed the next branch 2 times, most recently from d052101 to 943e1f2 Compare November 21, 2025 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: In Review
Status: Needs Testing, Review or Docs

Development

Successfully merging this pull request may close these issues.

7 participants