Comments (6)
Would the initiator have the ability to 'recall' a workflow at any time? Each instance already tracks the initiator, so my thinking is that the initial Workflow admin screen would be changed to
- show the list of all workflow instances this user is the initiator of
- show the list of all workflow instances this user is assigned to
- show the list of definitions (as currently shown)
The 'recall' action would basically do what the 'cancel' step does at the moment, which is to finalise the workflow instance and leave the content as it is, and send a notification to current assignees that it has been recalled. Sound good to you?
The second part of your post has previously been solved for one client by having a custom 'assign users' action that would look up the content tree for a 'ReviewerGroup' or 'PublisherGroup' relationship and use those as the assignees. It's not very generic, but re-usable.
I'd be hesitant to introduce a 'who can perform this' type of field to an action; that's the whole point of having the assignment action as a specific step.
from silverstripe-advancedworkflow.
Would the initiator have the ability to 'recall' a workflow at any time?
Probably, but I'd expect that should be workflow configurable. You might have global actions and step-specific actions as a way of dealing with this. Or you could just make a "recall" action at every point.
I'd be hesitant to introduce a 'who can perform this' type of field to an action; that's the whole point of having the assignment action as a specific step.
It's a model that works 90% of the time, and an excellent default, but there are 10% of the remaining cases, such as this one. It's a request of whether you treat recalling a workflow as a hard-coded thing or as something configured. My concern with hard-coding it is that you would get further than further away from actually customisable workflow, although I can see that this is a tough judgement call to make. If you implemented my suggestion, the "assignee" would be "default actor" as opposed to the "only person who can do anything". It's similar to the way you choose who can edit the page at that time, I suppose.
The second part of your post has previously been solved for one client by having a custom 'assign users' action that would look up the content tree for a 'ReviewerGroup' or 'PublisherGroup' relationship and use those as the assignees. It's not very generic, but re-usable.
I picked this up again in point #18. We can probably do better than that, although the best solution might be to couple it with relevant core changes.
from silverstripe-advancedworkflow.
So what I'm feeling is that it's not so much the action that is of interest here but the actual transition from a 'pause and wait for user decision' workflow step to a 'cancel workflow' endpoint step, and making that transition triggerable by the initiator (or some other user - as per #18). At the moment transitions do have the concept of being valid, but there's never been a defined use-case around how this might work yet; perhaps this is?
From a workflow creator standpoint, they'd need to create a 'Recall workflow' transition from the 'decision' workflow action to the cancel workflow action, and mark that transition as being triggerable by the initiator.
From the initiator standpoint, they would see the same thing as other workflow assignees on the 'Workflow' screen of the relevant content, except their available choices would be restricted to whatever transitions they've been given access to (ie the 'Recall' transition).
from silverstripe-advancedworkflow.
Here's the workflow that I'm using as my model: https://skitch.com/e-sminnee/esjx8/silverstripe-workflows
By "User decision workflow step" do you mean the "Progress workflow" step in that screenshot? If so, then yes, you're right.
If, however, you mean merely adding one more "are you sure?" step, then no: the editor should be able to recall the workflow at any time up until the publisher has actually published.
from silverstripe-advancedworkflow.
PS: Feel free to Skype me if you think it would be more effective to discuss that way.
from silverstripe-advancedworkflow.
Yep, by decision workflow step I mean any step with more than one outbound transition (ie it requires a user to select the transition to take). Given single transition steps are all executed 'immediately' one after another, there'd be no chance to recall for the end user anyway :)
from silverstripe-advancedworkflow.
Related Issues (20)
- advancedworkflow.js breaks if Workflow actions are not on page in CMS HOT 1
- ...references nonexistent WorkflowApplicable in 'extensions' HOT 2
- ImportForm not rendered HOT 4
- Layout in the "Restrict to Users" section in Workflow definition is broken HOT 2
- Creating a new workflow definition without title throws 500 HOT 2
- Pending approval read-only view broken for content block page
- CMS preview actions nav broken
- Publishing schedule workflow breaks for the draft page if I click on the "Save" button first and then click on the "Apply for approval" button
- Restrict to Users / Groups in Workflow Definition not working HOT 1
- Broken Build - 5.4.x-dev - PHPCS
- Scheduled Publishing Job (WorkflowPublishTargetJob) results in broken job HOT 1
- Save changes on Workflow-Step results in layout-broken landing-page
- Modal formatting is slightly broken with silverstripe/admin 4.12
- silverstripe/versioned 1.13.0 removes deprecated functionality, preventing workflow diff functionality HOT 4
- No end-to-end coverage - need to create behat tests
- Default branch is out of date on several repositories
- Wrong namespace for imports HOT 1
- Incorrect argument order in WorkflowApplicable extension HOT 6
- Too many unwanted icons visible in workflow manage interface HOT 1
- Set up a Workflow without Notification Email HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from silverstripe-advancedworkflow.