PHPackages                             violet88/gridfield-bulk-editing-tools - 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. [Admin Panels](/categories/admin)
4. /
5. violet88/gridfield-bulk-editing-tools

ActiveSilverstripe-vendormodule[Admin Panels](/categories/admin)

violet88/gridfield-bulk-editing-tools
=====================================

SilverStripe GridField component to upload images/files and edit records in bulk

075PHP

Since Apr 18Pushed 1y agoCompare

[ Source](https://github.com/Violet88github/GridFieldBulkEditingTools)[ Packagist](https://packagist.org/packages/violet88/gridfield-bulk-editing-tools)[ RSS](/packages/violet88-gridfield-bulk-editing-tools/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

⚠️ I haven't been able to give as much love as I would like to these repos as they deserve. If you have time and are interested to help maintain them, give me a shout. 🚨

GridField Bulk Editing Tools
============================

[](#gridfield-bulk-editing-tools)

[![Latest Stable Version](https://camo.githubusercontent.com/9eb016cd34117b542e03d6cb811859e7f4b4e4f8831e561bfe68cbbb02813de0/68747470733a2f2f706f7365722e707567782e6f72672f636f6c796d62612f677269646669656c642d62756c6b2d65646974696e672d746f6f6c732f762f737461626c652e737667)](https://github.com/colymba/GridFieldBulkEditingTools/releases)[![Latest Unstable Version](https://camo.githubusercontent.com/95ff6452ddead9c4168f9e4ff97c53b8b3f9fabf4fe79512e71684bd23e4c971/68747470733a2f2f706f7365722e707567782e6f72672f636f6c796d62612f677269646669656c642d62756c6b2d65646974696e672d746f6f6c732f762f756e737461626c652e737667)](https://github.com/colymba/GridFieldBulkEditingTools/tree/master)[![License](https://camo.githubusercontent.com/045efe1ed28953991eeb6a6f496449087af52f9923e34bb7b99a858418cf6575/68747470733a2f2f706f7365722e707567782e6f72672f636f6c796d62612f677269646669656c642d62756c6b2d65646974696e672d746f6f6c732f6c6963656e73652e737667)](#license-and-copyright)

Set of SilverStripe 4 GridField components to facilitate bulk file upload &amp; record editing.

Components:
-----------

[](#components)

- [Bulk Upload](#bulk-upload): Upload multiple images or files at once into DataObjects
- [Bulk Manager](#bulk-manager): Delete, Unlink, Edit (and more) multiple records at once

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

[](#requirements)

- SilverStripe 4.0 (master / 3.+)
- SilverStripe 3.1 (version 2.+ / 1.+)
- Silverstripe 3.0 (version 0.5)

Installation
------------

[](#installation)

`composer require colymba/gridfield-bulk-editing-tools`

3.0.0 deprecations
------------------

[](#300-deprecations)

The 3.x versions of this module require SilverStripe 4.x+, and PHP 5.5 or above:

- Namespaces are implemented, and some class names have changed (see `.upgrade.yml` for mapping)

2.0.0 deprecations
------------------

[](#200-deprecations)

Major deprections in latest 2.0.0 release:

- The `GridFieldBulkImageUpload` has been renamed to `GridFieldBulkUpload`.
- `onBulkImageUpload` callback has been renamed to `onBulkUpload`

Bulk Upload
-----------

[](#bulk-upload)

Upload multiple images or files at once into DataObjects. Perfect for galleries and the like.

```
$config->addComponent(new \Colymba\BulkUpload\BulkUploader());
```

### Versioned

[](#versioned)

By default `BulkUploader` will write to the current stage (most likely Draft). To auto publish your `DataObject`, use the following param or config:

```
$config->addComponent(new \Colymba\BulkUpload\BulkUploader(null, null, true));
```

OR

```
$config->getComponentByType('Colymba\\BulkUpload\\BulkUploader')->setAutoPublishDataObject(true);
```

Your `DataObject` should `own` the `Image`/`File` relation so it is published at the same time: [See SilverStripe DataObject ownership DOC](https://github.com/silverstripe/silverstripe-framework/blob/4.0/docs/en/02_Developer_Guides/00_Model/10_Versioning.md#dataobject-ownership)

See [BULK\_UPLOAD.md](docs/en/BULK_UPLOAD.md) for detailed configuration.

Bulk Manager
------------

[](#bulk-manager)

Perform actions on multiple records straight from the GridField

```
$config->addComponent(new \Colymba\BulkManager\BulkManager());
```

See [BULK\_MANAGER.md](docs/en//BULK_MANAGER.md) for detailed configuration.

Tooling
-------

[](#tooling)

- `npm run watch` for development
- `npm run dist` before pushing to the repo

Translations
------------

[](#translations)

Translations of the natural language strings are managed through a third party translation interface, transifex.com.

Please use  to contribute translations, rather than sending pull requests with YAML/JS files.

License and Copyright
---------------------

[](#license-and-copyright)

[BSD 3-clause license](LICENSE)

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance28

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity20

Early-stage or recently created project

 Bus Factor1

Top contributor holds 69.6% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2776eb19c4ec68ca7f7e0c587150379b72cdd2474703fe70dfb5b84c89b41c46?d=identicon)[JanSneeuw](/maintainers/JanSneeuw)

---

Top Contributors

[![colymba](https://avatars.githubusercontent.com/u/978040?v=4)](https://github.com/colymba "colymba (257 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (36 commits)")[![GuySartorelli](https://avatars.githubusercontent.com/u/36352093?v=4)](https://github.com/GuySartorelli "GuySartorelli (11 commits)")[![emteknetnz](https://avatars.githubusercontent.com/u/4809037?v=4)](https://github.com/emteknetnz "emteknetnz (11 commits)")[![robbieaverill](https://avatars.githubusercontent.com/u/5170590?v=4)](https://github.com/robbieaverill "robbieaverill (9 commits)")[![PixNyb](https://avatars.githubusercontent.com/u/40770831?v=4)](https://github.com/PixNyb "PixNyb (8 commits)")[![JanSneeuw](https://avatars.githubusercontent.com/u/48092471?v=4)](https://github.com/JanSneeuw "JanSneeuw (4 commits)")[![axllent](https://avatars.githubusercontent.com/u/1463435?v=4)](https://github.com/axllent "axllent (3 commits)")[![mellm0](https://avatars.githubusercontent.com/u/229937?v=4)](https://github.com/mellm0 "mellm0 (2 commits)")[![lekoala](https://avatars.githubusercontent.com/u/250762?v=4)](https://github.com/lekoala "lekoala (2 commits)")[![tractorcow](https://avatars.githubusercontent.com/u/936064?v=4)](https://github.com/tractorcow "tractorcow (2 commits)")[![wernerkrauss](https://avatars.githubusercontent.com/u/1043925?v=4)](https://github.com/wernerkrauss "wernerkrauss (2 commits)")[![lozcalver](https://avatars.githubusercontent.com/u/1655548?v=4)](https://github.com/lozcalver "lozcalver (2 commits)")[![christopherdarling](https://avatars.githubusercontent.com/u/178039?v=4)](https://github.com/christopherdarling "christopherdarling (2 commits)")[![purplespider](https://avatars.githubusercontent.com/u/329880?v=4)](https://github.com/purplespider "purplespider (2 commits)")[![sabina-talipova](https://avatars.githubusercontent.com/u/87288324?v=4)](https://github.com/sabina-talipova "sabina-talipova (2 commits)")[![MarcusDalgren](https://avatars.githubusercontent.com/u/324255?v=4)](https://github.com/MarcusDalgren "MarcusDalgren (1 commits)")[![bilekt3](https://avatars.githubusercontent.com/u/381740?v=4)](https://github.com/bilekt3 "bilekt3 (1 commits)")[![Firesphere](https://avatars.githubusercontent.com/u/680570?v=4)](https://github.com/Firesphere "Firesphere (1 commits)")[![forsdahl](https://avatars.githubusercontent.com/u/1119200?v=4)](https://github.com/forsdahl "forsdahl (1 commits)")

### Embed Badge

![Health badge](/badges/violet88-gridfield-bulk-editing-tools/health.svg)

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

###  Alternatives

[jeroennoten/laravel-adminlte

Easy AdminLTE integration with Laravel

4.0k4.8M43](/packages/jeroennoten-laravel-adminlte)[dmstr/yii2-adminlte-asset

AdminLTE backend theme asset bundle for Yii 2.0 Framework

1.1k1.8M67](/packages/dmstr-yii2-adminlte-asset)[dwij/laraadmin

LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like CRUD Generation, Module Manager, Media, Menus, Backups and much more

1.6k68.7k](/packages/dwij-laraadmin)[filament/spatie-laravel-media-library-plugin

Filament support for `spatie/laravel-medialibrary`.

1764.8M125](/packages/filament-spatie-laravel-media-library-plugin)[bezhansalleh/filament-exceptions

A Simple &amp; Beautiful Pluggable Exception Viewer for FilamentPHP's Admin Panel

193195.9k13](/packages/bezhansalleh-filament-exceptions)[filament/infolists

Easily add beautiful read-only infolists to any Livewire component.

1220.8M36](/packages/filament-infolists)

PHPackages © 2026

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