Skip to content

Commit 50a5f5f

Browse files
committed
API Implement namespaces and core API changes throughout
1 parent db8e7bf commit 50a5f5f

File tree

53 files changed

+943
-1104
lines changed

Some content is hidden

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

53 files changed

+943
-1104
lines changed

Diff for: .upgrade.yml

+3
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,6 @@ mappings:
3434
WorkflowService: Symbiote\AdvancedWorkflow\Services\WorkflowService
3535
ExistingWorkflowException: Symbiote\AdvancedWorkflow\Services\ExistingWorkflowException
3636
WorkflowReminderTask: Symbiote\AdvancedWorkflow\Tasks\WorkflowReminderTask
37+
WorkflowTemplate: Symbiote\AdvancedWorkflow\Templates\WorkflowTemplate
38+
GridFieldExportAction: Symbiote\AdvancedWorkflow\Forms\GridField\GridFieldExportAction
39+
GridFieldWorkflowRestrictedEditButton: Symbiote\AdvancedWorkflow\Forms\GridField\GridFieldWorkflowRestrictedEditButton

Diff for: _config.php

-7
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,3 @@
33
* @license BSD License (http://silverstripe.org/bsd-license/)
44
* @package advancedworkflow
55
*/
6-
define('ADVANCED_WORKFLOW_DIR', basename(dirname(__FILE__)));
7-
8-
if (ADVANCED_WORKFLOW_DIR != 'advancedworkflow') {
9-
throw new Exception(
10-
"The advanced workflow module must be in a directory named 'advancedworkflow', not " . ADVANCED_WORKFLOW_DIR
11-
);
12-
}

Diff for: _config/workflowconfig.yml

+10-11
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,24 @@ After:
44
- 'framework/*'
55
- 'cms/*'
66
---
7-
SiteTree:
7+
SilverStripe\CMS\Model\SiteTree:
88
extensions:
9-
- WorkflowApplicable
10-
CMSPageEditController:
9+
- Symbiote\AdvancedWorkflow\Extensions\WorkflowApplicable
10+
SilverStripe\CMS\Controllers\CMSPageEditController:
1111
extensions:
12-
- AdvancedWorkflowExtension
13-
GridFieldDetailForm_ItemRequest:
12+
- Symbiote\AdvancedWorkflow\Extensions\AdvancedWorkflowExtension
13+
SilverStripe\Forms\GridField\GridFieldDetailForm_ItemRequest:
1414
extensions:
15-
- AdvancedWorkflowExtension
16-
LeftAndMain:
15+
- Symbiote\AdvancedWorkflow\Extensions\AdvancedWorkflowExtension
16+
SilverStripe\Admin\LeftAndMain:
1717
extra_requirements_css:
1818
- advancedworkflow/css/AdvancedWorkflowAdmin.css
19-
2019
---
2120
Name: workflow_jobs
2221
Only:
2322
moduleexists: queuedjobs
2423
---
25-
Injector:
26-
WorkflowReminderJob:
24+
SilverStripe\Core\Injector\Injector:
25+
Symbiote\AdvancedWorkflow\Jobs\WorkflowReminderJob:
2726
properties:
28-
queuedJobService: %$QueuedJobService
27+
queuedJobService: %$Symbiote\QueuedJobs\Services\QueuedJobService

Diff for: _config/workflows.yml

+33-33
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,49 @@
11
---
22
Name: defaultworkflows
33
---
4-
Injector:
4+
SilverStripe\Core\Injector\Injector:
55
SimpleReviewApprove:
6-
class: WorkflowTemplate
6+
class: Symbiote\AdvancedWorkflow\Templates\WorkflowTemplate
77
constructor:
8-
- Review and Approve
9-
- Single step review and approve. Make sure to update the Apply for approval and Notify users steps!
8+
- 'Review and Approve'
9+
- 'Single step review and approve. Make sure to update the Apply for approval and Notify users steps!'
1010
- 0.2
1111
properties:
1212
structure:
13-
Apply for approval:
14-
type: AssignUsersToWorkflowAction
15-
transitions:
16-
notify: Notify users
17-
Notify users:
18-
type: NotifyUsersWorkflowAction
13+
'Apply for approval':
14+
type: Symbiote\AdvancedWorkflow\Actions\AssignUsersToWorkflowAction
15+
transitions:
16+
notify: 'Notify users'
17+
'Notify users':
18+
type: Symbiote\AdvancedWorkflow\Actions\NotifyUsersWorkflowAction
1919
transitions:
2020
approval: Approval
2121
Approval:
22-
type: SimpleApprovalWorkflowAction
22+
type: Symbiote\AdvancedWorkflow\Actions\SimpleApprovalWorkflowAction
2323
transitions:
2424
Approve: Publish
25-
Reject: Reject changes
25+
Reject: 'Reject changes'
2626
Publish:
27-
type: PublishItemWorkflowAction
28-
transitions:
29-
assign: Assign Initiator Publish
30-
Assign Initiator Publish:
31-
type: AssignUsersToWorkflowAction
32-
transitions:
33-
notify: Notify Initiator Publish
34-
Notify Initiator Publish:
35-
type: NotifyUsersWorkflowAction
36-
Reject changes:
37-
type: CancelWorkflowAction
38-
transitions:
39-
assign: Assign Initiator Cancel
40-
Assign Initiator Cancel:
41-
type: AssignUsersToWorkflowAction
42-
transitions:
43-
notify: Notify Initiator Cancel
44-
Notify Initiator Cancel:
45-
type: NotifyUsersWorkflowAction
46-
WorkflowService:
27+
type: Symbiote\AdvancedWorkflow\Actions\PublishItemWorkflowAction
28+
transitions:
29+
assign: 'Assign Initiator Publish'
30+
'Assign Initiator Publish':
31+
type: Symbiote\AdvancedWorkflow\Actions\AssignUsersToWorkflowAction
32+
transitions:
33+
notify: 'Notify Initiator Publish'
34+
'Notify Initiator Publish':
35+
type: Symbiote\AdvancedWorkflow\Actions\NotifyUsersWorkflowAction
36+
'Reject changes':
37+
type: Symbiote\AdvancedWorkflow\Actions\CancelWorkflowAction
38+
transitions:
39+
assign: 'Assign Initiator Cancel'
40+
'Assign Initiator Cancel':
41+
type: Symbiote\AdvancedWorkflow\Actions\AssignUsersToWorkflowAction
42+
transitions:
43+
notify: 'Notify Initiator Cancel'
44+
'Notify Initiator Cancel':
45+
type: Symbiote\AdvancedWorkflow\Actions\NotifyUsersWorkflowAction
46+
Symbiote\AdvancedWorkflow\Services\WorkflowService:
4747
properties:
4848
templates:
49-
- %$SimpleReviewApprove
49+
- '%$SimpleReviewApprove'

Diff for: code/actions/AssignUsersToWorkflowAction.php

+14-18
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,16 @@
22

33
namespace Symbiote\AdvancedWorkflow\Actions;
44

5-
use SilverStripe\ORM\DB;
6-
use SilverStripe\ORM\ArrayList;
7-
use SilverStripe\Security\Member;
8-
9-
10-
11-
12-
13-
14-
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowInstance;
15-
use SilverStripe\Forms\HeaderField;
165
use SilverStripe\Forms\CheckboxField;
176
use SilverStripe\Forms\CheckboxSetField;
7+
use SilverStripe\Forms\HeaderField;
188
use SilverStripe\Forms\TreeMultiselectField;
9+
use SilverStripe\ORM\ArrayList;
10+
use SilverStripe\ORM\DB;
11+
use SilverStripe\Security\Group;
12+
use SilverStripe\Security\Member;
1913
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowAction;
14+
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowInstance;
2015

2116
/**
2217
* A workflow action that allows additional users or groups to be assigned to
@@ -28,18 +23,19 @@
2823
*/
2924
class AssignUsersToWorkflowAction extends WorkflowAction
3025
{
31-
3226
private static $db = array(
3327
'AssignInitiator' => 'Boolean',
3428
);
3529

3630
private static $many_many = array(
37-
'Users' => 'SilverStripe\\Security\\Member',
38-
'Groups' => 'SilverStripe\\Security\\Group'
31+
'Users' => Member::class,
32+
'Groups' => Group::class,
3933
);
4034

4135
private static $icon = 'advancedworkflow/images/assign.png';
4236

37+
private static $table_name = 'AssignUsersToWorkflowAction';
38+
4339
public function execute(WorkflowInstance $workflow)
4440
{
4541
$workflow->Users()->removeAll();
@@ -69,7 +65,7 @@ public function getCMSFields()
6965
new HeaderField('AssignUsers', $this->fieldLabel('AssignUsers')),
7066
new CheckboxField('AssignInitiator', $this->fieldLabel('AssignInitiator')),
7167
$users = CheckboxSetField::create('Users', $this->fieldLabel('Users'), $cmsUsers),
72-
new TreeMultiselectField('Groups', $this->fieldLabel('Groups'), 'SilverStripe\\Security\\Group')
68+
new TreeMultiselectField('Groups', $this->fieldLabel('Groups'), Group::class)
7369
));
7470

7571
// limit to the users which actually can access the CMS
@@ -82,7 +78,7 @@ public function fieldLabels($relations = true)
8278
{
8379
return array_merge(parent::fieldLabels($relations), array(
8480
'AssignUsers' => _t('AssignUsersToWorkflowAction.ASSIGNUSERS', 'Assign Users'),
85-
'Users' => _t('AssignUsersToWorkflowAction.USERS', 'Users'),
81+
'Users' => _t('AssignUsersToWorkflowAction.USERS', 'Users'),
8682
'Groups' => _t('AssignUsersToWorkflowAction.GROUPS', 'Groups'),
8783
'AssignInitiator' => _t('AssignUsersToWorkflowAction.INITIATOR', 'Assign Initiator'),
8884
));
@@ -100,12 +96,12 @@ public function getAssignedMembers()
10096

10197
// Can't merge instances of DataList so convert to something where we can
10298
$_members = ArrayList::create();
103-
$members->each(function ($item) use (&$_members) {
99+
$members->each(function ($item) use ($_members) {
104100
$_members->push($item);
105101
});
106102

107103
$_groups = ArrayList::create();
108-
$groups->each(function ($item) use (&$_groups) {
104+
$groups->each(function ($item) use ($_groups) {
109105
$_groups->push($item);
110106
});
111107

Diff for: code/actions/CancelWorkflowAction.php

+2
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@
1515
class CancelWorkflowAction extends WorkflowAction
1616
{
1717
private static $icon = 'advancedworkflow/images/cancel.png';
18+
19+
private static $table_name = 'CancelWorkflowAction';
1820
}

Diff for: code/actions/NotifyUsersWorkflowAction.php

+16-24
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,21 @@
22

33
namespace Symbiote\AdvancedWorkflow\Actions;
44

5-
use SilverStripe\ORM\FieldType\DBDatetime;
6-
use SilverStripe\ORM\DataObject;
7-
use SilverStripe\Security\Member;
8-
9-
10-
11-
12-
13-
14-
15-
16-
17-
18-
5+
use SilverStripe\Control\Email\Email;
196
use SilverStripe\Forms\HeaderField;
207
use SilverStripe\Forms\LiteralField;
21-
use SilverStripe\Forms\TextField;
228
use SilverStripe\Forms\TextareaField;
9+
use SilverStripe\Forms\TextField;
2310
use SilverStripe\Forms\ToggleCompositeField;
24-
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowInstance;
11+
use SilverStripe\ORM\CMSPreviewable;
12+
use SilverStripe\ORM\DataObject;
13+
use SilverStripe\ORM\FieldType\DBDatetime;
14+
use SilverStripe\Security\Member;
15+
use SilverStripe\Security\Security;
2516
use SilverStripe\View\ArrayData;
2617
use SilverStripe\View\SSViewer;
27-
use SilverStripe\Control\Email\Email;
28-
use SilverStripe\ORM\CMSPreviewable;
2918
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowAction;
19+
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowInstance;
3020

3121
/**
3222
* A workflow action that notifies users attached to the workflow path that they have a task awaiting them.
@@ -37,20 +27,22 @@
3727
*/
3828
class NotifyUsersWorkflowAction extends WorkflowAction
3929
{
40-
4130
/**
31+
* @config
4232
* @var bool Should templates be constrained to just known-safe variables.
4333
*/
4434
private static $whitelist_template_variables = false;
4535

4636
private static $db = array(
47-
'EmailSubject' => 'Varchar(100)',
48-
'EmailFrom' => 'Varchar(50)',
49-
'EmailTemplate' => 'Text'
37+
'EmailSubject' => 'Varchar(100)',
38+
'EmailFrom' => 'Varchar(50)',
39+
'EmailTemplate' => 'Text'
5040
);
5141

5242
private static $icon = 'advancedworkflow/images/notify.png';
5343

44+
private static $table_name = 'NotifyUsersWorkflowAction';
45+
5446
public function getCMSFields()
5547
{
5648
$fields = parent::getCMSFields();
@@ -97,7 +89,7 @@ public function execute(WorkflowInstance $workflow)
9789
return true;
9890
}
9991

100-
$member = Member::currentUser();
92+
$member = Security::getCurrentUser();
10193
$initiator = $workflow->Initiator();
10294

10395
$contextFields = $this->getContextFields($workflow->getTarget());
@@ -196,7 +188,7 @@ public function getContextFields(DataObject $target)
196188
public function getMemberFields(Member $member = null)
197189
{
198190
if (!$member) {
199-
$member = Member::currentUser();
191+
$member = Security::getCurrentUser();
200192
}
201193
$result = array();
202194

Diff for: code/actions/PublishItemWorkflowAction.php

+7-13
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,15 @@
22

33
namespace Symbiote\AdvancedWorkflow\Actions;
44

5-
use SilverStripe\ORM\DataObject;
6-
7-
8-
9-
10-
11-
12-
13-
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowInstance;
14-
use Symbiote\AdvancedWorkflow\Jobs\WorkflowPublishTargetJob;
15-
use Symbiote\AdvancedWorkflow\Extensions\WorkflowEmbargoExpiryExtension;
165
use SilverStripe\Forms\CheckboxField;
6+
use SilverStripe\Forms\FieldGroup;
177
use SilverStripe\Forms\LabelField;
188
use SilverStripe\Forms\NumericField;
19-
use SilverStripe\Forms\FieldGroup;
9+
use SilverStripe\ORM\DataObject;
2010
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowAction;
11+
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowInstance;
12+
use Symbiote\AdvancedWorkflow\Extensions\WorkflowEmbargoExpiryExtension;
13+
use Symbiote\AdvancedWorkflow\Jobs\WorkflowPublishTargetJob;
2114

2215
/**
2316
* Publishes an item
@@ -29,7 +22,6 @@
2922
*/
3023
class PublishItemWorkflowAction extends WorkflowAction
3124
{
32-
3325
private static $db = array(
3426
'PublishDelay' => 'Int',
3527
'AllowEmbargoedEditing' => 'Boolean',
@@ -41,6 +33,8 @@ class PublishItemWorkflowAction extends WorkflowAction
4133

4234
private static $icon = 'advancedworkflow/images/publish.png';
4335

36+
private static $table_name = 'PublishItemWorkflowAction';
37+
4438
public function execute(WorkflowInstance $workflow)
4539
{
4640
if (!$target = $workflow->getTarget()) {

Diff for: code/actions/SetPropertyWorkflowAction.php

+6-4
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
namespace Symbiote\AdvancedWorkflow\Actions;
44

5-
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowInstance;
65
use SilverStripe\Forms\TextField;
76
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowAction;
7+
use Symbiote\AdvancedWorkflow\DataObjects\WorkflowInstance;
88

99
/**
1010
*
@@ -14,10 +14,12 @@
1414
class SetPropertyWorkflowAction extends WorkflowAction
1515
{
1616
private static $db = array(
17-
'Property' => 'Varchar',
18-
'Value' => 'Text',
17+
'Property' => 'Varchar',
18+
'Value' => 'Text',
1919
);
20-
20+
21+
private static $table_name = 'SetPropertyWorkflowAction';
22+
2123
public function execute(WorkflowInstance $workflow)
2224
{
2325
if (!$target = $workflow->getTarget()) {

0 commit comments

Comments
 (0)