PHPackages                             dnadesign/gridfield-bulk-delete - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. dnadesign/gridfield-bulk-delete

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

dnadesign/gridfield-bulk-delete
===============================

A GridField component allowing to delete records in bulk

1.3(2y ago)14.5k—0%51BSD-3-ClausePHP

Since Aug 9Pushed 2y ago2 watchersCompare

[ Source](https://github.com/dnadesign/gridfield-bulk-delete)[ Packagist](https://packagist.org/packages/dnadesign/gridfield-bulk-delete)[ RSS](/packages/dnadesign-gridfield-bulk-delete/feed)WikiDiscussions master Synced yesterday

READMEChangelog (1)Dependencies (2)Versions (9)Used By (1)

GridField Bulk Delete
=====================

[](#gridfield-bulk-delete)

Introduction
------------

[](#introduction)

Add a `GridFieldBulkDeleteForm` component to a gridfield config to add an option to delete the records within that list. By default, it allows to delete every records in the list. If there is more than 50 records (can be configured) and if QueuedJobs are available, a ququedjob will be created to process the deletion. The component can be configured to allow deleting records older than a certain period of time (eg: older tha 30 days).

Requirements
------------

[](#requirements)

- [silverstripe/framework](https://github.com/silverstripe/framework)

Install
-------

[](#install)

```
composer require dnadesign/gridfield-bulk-delete ^1

```

NOTE: for SS3, use version 0.2

Configuration
-------------

[](#configuration)

### Add to gridfield config

[](#add-to-gridfield-config)

```
$config->addComponent(new GridFieldBulkDeleteForm('buttons-after-right'));

```

Optionally, pass the number of records above which a queuedjob should be used (Defaults is 50).

```
$config->addComponent(new GridFieldBulkDeleteForm('buttons-after-right', 100));

```

### Use queued jobs

[](#use-queued-jobs)

In your `mysite/_config/config.yml` file:

```
GridFieldBulkDeleteForm:
  use_queued_threshold: 100

```

NOTE: Set the value to 0 or -1 to never use queued jobs.

### Enable time interval

[](#enable-time-interval)

In your `mysite/_config/config.yml` file:

```
GridFieldBulkDeleteForm:
  delete_up_to:
    '30 days' : 'Delete records created over a month ago (%s)'

```

NOTE: Value must be valid for use with `DateTime` modify(). Also, supply a label for `sprintf()` where the number of record affected will be supplied as param.

Next improvments:
-----------------

[](#next-improvments)

- Delete the records in chunks instead of one big Job that will run out of memory

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 52% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~390 days

Recently: every ~458 days

Total

6

Last Release

934d ago

Major Versions

0.2 → 1.02019-07-26

### Community

Maintainers

![](https://www.gravatar.com/avatar/efd88fa106982bcf2e3cd689e6a37d352c54308d14dedeac4ac477a47a432363?d=identicon)[DNADesign](/maintainers/DNADesign)

![](https://www.gravatar.com/avatar/e55a584eaac053bdbe811b1039dd00ac30da0c7978a5efbb6082504c610678d2?d=identicon)[alex-dna](/maintainers/alex-dna)

---

Top Contributors

[![alex-dna](https://avatars.githubusercontent.com/u/6982515?v=4)](https://github.com/alex-dna "alex-dna (13 commits)")[![micschk](https://avatars.githubusercontent.com/u/1005986?v=4)](https://github.com/micschk "micschk (6 commits)")[![Leapfrognz](https://avatars.githubusercontent.com/u/1740262?v=4)](https://github.com/Leapfrognz "Leapfrognz (4 commits)")[![adrexia](https://avatars.githubusercontent.com/u/984753?v=4)](https://github.com/adrexia "adrexia (1 commits)")[![jules0x](https://avatars.githubusercontent.com/u/8979741?v=4)](https://github.com/jules0x "jules0x (1 commits)")

---

Tags

silverstripegridfielddeletebulk

### Embed Badge

![Health badge](/badges/dnadesign-gridfield-bulk-delete/health.svg)

```
[![Health](https://phpackages.com/badges/dnadesign-gridfield-bulk-delete/health.svg)](https://phpackages.com/packages/dnadesign-gridfield-bulk-delete)
```

###  Alternatives

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1371.1M85](/packages/silverstripe-userforms)[symbiote/silverstripe-gridfieldextensions

A collection of useful grid field components

951.9M271](/packages/symbiote-silverstripe-gridfieldextensions)[undefinedoffset/sortablegridfield

Adds drag and drop functionality to Silverstripe's GridField

911.3M52](/packages/undefinedoffset-sortablegridfield)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46302.4k9](/packages/symbiote-silverstripe-advancedworkflow)[silverstripe/sharedraftcontent

Share draft page content with non-CMS users

21424.1k12](/packages/silverstripe-sharedraftcontent)[axllent/silverstripe-cms-tweaks

Several CMS usability improvements

1726.4k1](/packages/axllent-silverstripe-cms-tweaks)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
