Skip to content

Commit 7a9d6b9

Browse files
committed
Merge branch 'develop-v4' of github.com:venveo/craft-bulkedit into develop
2 parents 4bda93a + f1cbea0 commit 7a9d6b9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+778
-917
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Bulk Edit Changelog
22

3+
## 4.0.0-RC1 - 2022-06-22
4+
5+
### Added
6+
- "Select All" support - this works well with filtres, conditions, etc.
7+
8+
### Changed
9+
- Bulk Edit now requires Craft 4
10+
- Plugin no longer requires db tables - all data is now stored in the queue job.
11+
- Field strategies are now represented as classes implementing FieldStrategyInterface
12+
- Refactored field rendering for future support of native fields
13+
314
## 2.0.6 - 2021-07-22
415
### Fixed
516
- Fixed a bug where fields may not always get the correct source site ID

composer.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "venveo/craft-bulkedit",
33
"description": "Bulk edit Craft CMS element fields",
44
"type": "craft-plugin",
5-
"version": "2.0.6",
5+
"version": "4.0.0-RC1",
66
"keywords": [
77
"craft",
88
"cms",
@@ -22,7 +22,8 @@
2222
}
2323
],
2424
"require": {
25-
"craftcms/cms": "^3.2.0"
25+
"craftcms/cms": "^4.0.0-beta.1",
26+
"php": "^8.0.2"
2627
},
2728
"autoload": {
2829
"psr-4": {

src/Plugin.php

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,77 +34,79 @@
3434
*/
3535
class Plugin extends BasePlugin
3636
{
37-
38-
const PERMISSION_BULKEDIT_ENTRIES = 'PERMISSION_BULKEDIT_ENTRIES';
39-
const PERMISSION_BULKEDIT_PRODUCTS = 'PERMISSION_BULKEDIT_PRODUCTS';
40-
const PERMISSION_BULKEDIT_ASSETS = 'PERMISSION_BULKEDIT_ASSETS';
41-
const PERMISSION_BULKEDIT_CATEGORIES = 'PERMISSION_BULKEDIT_CATEGORIES';
42-
const PERMISSION_BULKEDIT_USERS = 'PERMISSION_BULKEDIT_USERS';
37+
public const PERMISSION_BULKEDIT_ENTRIES = 'PERMISSION_BULKEDIT_ENTRIES';
38+
public const PERMISSION_BULKEDIT_PRODUCTS = 'PERMISSION_BULKEDIT_PRODUCTS';
39+
public const PERMISSION_BULKEDIT_ASSETS = 'PERMISSION_BULKEDIT_ASSETS';
40+
public const PERMISSION_BULKEDIT_CATEGORIES = 'PERMISSION_BULKEDIT_CATEGORIES';
41+
public const PERMISSION_BULKEDIT_USERS = 'PERMISSION_BULKEDIT_USERS';
4342
/**
4443
* @var Plugin
4544
*/
4645
public static $plugin;
47-
public $schemaVersion = '1.1.0';
46+
public string $schemaVersion = '4.0.0';
47+
4848

4949
public function init()
5050
{
5151
parent::init();
5252
self::$plugin = $this;
5353

54-
$this->setComponents(['bulkEdit' => BulkEdit::class]);
5554

56-
Event::on(UserPermissions::class, UserPermissions::EVENT_REGISTER_PERMISSIONS, function (RegisterUserPermissionsEvent $event) {
55+
Event::on(UserPermissions::class, UserPermissions::EVENT_REGISTER_PERMISSIONS, function(RegisterUserPermissionsEvent $event) {
5756
$permissions = [];
5857
$permissions[self::PERMISSION_BULKEDIT_ENTRIES] = [
59-
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Entries')
58+
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Entries'),
6059
];
6160
$permissions[self::PERMISSION_BULKEDIT_ASSETS] = [
62-
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Assets')
61+
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Assets'),
6362
];
6463
$permissions[self::PERMISSION_BULKEDIT_CATEGORIES] = [
65-
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Categories')
64+
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Categories'),
6665
];
6766
$permissions[self::PERMISSION_BULKEDIT_USERS] = [
68-
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Users')
67+
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Users'),
6968
];
7069

7170
if (Craft::$app->plugins->isPluginInstalled('commerce')) {
7271
$permissions[self::PERMISSION_BULKEDIT_PRODUCTS] = [
73-
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Products')
72+
'label' => Craft::t('venveo-bulk-edit', 'Bulk Edit Products'),
7473
];
7574
}
7675

77-
$event->permissions[Craft::t('venveo-bulk-edit', 'Bulk Edit')] = $permissions;
76+
$event->permissions[] = [
77+
'heading' => Craft::t('venveo-bulk-edit', 'Bulk Edit'),
78+
'permissions' => $permissions
79+
];
7880
});
7981

8082
if (Craft::$app->request->isCpRequest) {
8183
if (Craft::$app->user->checkPermission(self::PERMISSION_BULKEDIT_ENTRIES)) {
8284
Event::on(Entry::class, Element::EVENT_REGISTER_ACTIONS,
83-
function (RegisterElementActionsEvent $event) {
85+
function(RegisterElementActionsEvent $event) {
8486
$event->actions[] = BulkEditElementAction::class;
8587
}
8688
);
8789
}
8890

8991
if (Craft::$app->user->checkPermission(self::PERMISSION_BULKEDIT_CATEGORIES)) {
9092
Event::on(Category::class, Element::EVENT_REGISTER_ACTIONS,
91-
function (RegisterElementActionsEvent $event) {
93+
function(RegisterElementActionsEvent $event) {
9294
$event->actions[] = BulkEditElementAction::class;
9395
}
9496
);
9597
}
9698

9799
if (Craft::$app->user->checkPermission(self::PERMISSION_BULKEDIT_ASSETS)) {
98100
Event::on(Asset::class, Element::EVENT_REGISTER_ACTIONS,
99-
function (RegisterElementActionsEvent $event) {
101+
function(RegisterElementActionsEvent $event) {
100102
$event->actions[] = BulkEditElementAction::class;
101103
}
102104
);
103105
}
104106

105107
if (Craft::$app->user->checkPermission(self::PERMISSION_BULKEDIT_USERS)) {
106108
Event::on(User::class, Element::EVENT_REGISTER_ACTIONS,
107-
function (RegisterElementActionsEvent $event) {
109+
function(RegisterElementActionsEvent $event) {
108110
$event->actions[] = BulkEditElementAction::class;
109111
}
110112
);
@@ -113,12 +115,24 @@ function (RegisterElementActionsEvent $event) {
113115
if (Craft::$app->user->checkPermission(self::PERMISSION_BULKEDIT_PRODUCTS)) {
114116
if (Craft::$app->plugins->isPluginInstalled('commerce') && class_exists(Product::class)) {
115117
Event::on(Product::class, Element::EVENT_REGISTER_ACTIONS,
116-
function (RegisterElementActionsEvent $event) {
118+
function(RegisterElementActionsEvent $event) {
117119
$event->actions[] = BulkEditElementAction::class;
118120
}
119121
);
120122
}
121123
}
122124
}
123125
}
126+
127+
/**
128+
* @inheritdoc
129+
*/
130+
public static function config(): array
131+
{
132+
return [
133+
'components' => [
134+
'bulkEdit' => ['class' => BulkEdit::class]
135+
],
136+
];
137+
}
124138
}

src/assetbundles/bulkeditelementaction/BulkEditElementActionAsset.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class BulkEditElementActionAsset extends AssetBundle
1313
/**
1414
* Initializes the bundle.
1515
*/
16-
public function init()
16+
public function init(): void
1717
{
1818
// define the path that your publishable resources live
1919
$this->sourcePath = __DIR__ . '/dist';

0 commit comments

Comments
 (0)