AdvancedWorkflowExtension
class AdvancedWorkflowExtension extends Extension (View source)
Handles interactions triggered by users in the backend of the CMS. Replicate this type of functionality wherever you need UI interaction with workflow.
Properties
protected | object | $owner | The object this extension is applied to. |
from Extension |
Methods
Called when this extension is added to a particular class
Temporarily modify the owner. The original owner is ensured to be restored
Clear the current owner, and restore extension to the state prior to the last setOwner()
Helper method to strip eval'ed arguments from a string that's passed to DataObject::$extensions or Object::add_extension().
Need to update the edit form AFTER it's been transformed to read only so that the workflow stuff is still allowed to be added with 'write' permissions
Update a workflow based on user input.
Ocassionally users forget to apply their changes via the standard CMS "Save Draft" button, and select the action button instead - losing their changes.
Details
__construct()
No description
static
add_to_class(string $class, string $extensionClass, mixed $args = null)
Called when this extension is added to a particular class
setOwner(object $owner)
Set the owner of this extension.
mixed
withOwner(mixed $owner, callable $callback, array $args = [])
Temporarily modify the owner. The original owner is ensured to be restored
clearOwner()
Clear the current owner, and restore extension to the state prior to the last setOwner()
object
getOwner()
Returns the owner of this extension.
static string
get_classname_without_arguments(string $extensionStr)
Helper method to strip eval'ed arguments from a string that's passed to DataObject::$extensions or Object::add_extension().
string|null
startworkflow(array $data, Form $form, HTTPRequest $request)
No description
updateEditForm(Form $form)
Need to update the edit form AFTER it's been transformed to read only so that the workflow stuff is still allowed to be added with 'write' permissions
updateItemEditForm(Form $form)
No description
string|null
updateworkflow(array $data, Form $form, HTTPRequest $request)
Update a workflow based on user input.
protected
returnResponse($form)
No description
protected void
saveAsDraftWithAction(Form $form, DataObject $item)
Ocassionally users forget to apply their changes via the standard CMS "Save Draft" button, and select the action button instead - losing their changes.
Calling this from a controller method saves a draft automatically for the user, whenever a workflow action is run See: #72 and #77