Collaborate
A variety of features make it easier for teams and machines to coordinate and collaborate.
- Real-time Updates - Content item form values update in real-time as others modify content, keeping your view and apps up to date when appropriate.
- Content Workflow - Editorial workflows make it possible to collaborate on content, save and review multiple drafts and ensure only validated and approved content is presented to the public.
- Validation - Content can be validated at multiple levels, including individual fields (required, must match length, size or pattern, etc.), per content item (ie. if this field is X, then that field must be Y) and even across content (ie. ensure aspects of this content are unique).
- Processing - Content can be processed and manipulated as it is updated, saved, copied, approved and published to automate just about anything at any point in the production lifecycle.
Real-time Updates
When a content item's field values are edited, the "working copy" is updated as it is modified, which becomes immediately visible to other users in form view. However, modifications will not appear on the staging website or live production website until a deliberate workflow action is taken (see below).
Content Workflow
When content is modified, the modifications are recorded in a few ways.
- Store - Modifications are stored to a single working copy as they are made, to represent a composite "in-progress" view of all changes in near real-time, so multiple users and systems can collaborate on updates to different fields within the same item before they are saved as a draft or approved for publication. When a user starts updating a data field, that user automatically obtains a lock on the field, so other users cannot update that same field.
When you have unsaved (stored) field updates within an item, a blue dot will appear next to the item in lists, and your user avatar will be listed in the top-right of the item when it is opened. When others have unsaved (stored) field updates within an item, you will see a light blue dot next to the item in lists, and their user avatar will be listed in the top-right of the item when it is opened.
- Save - Modifications are saved to "drafts" for further review. Any locked field updates made by the user saving the draft will be unlocked and saved to the draft, so other users can make additional changes to the field. When a staging publication and procedure are associated with the content, the latest draft can also be previewed in a staging environment. Multiple drafts are maintained during the evolution of content during the creative and editorial process for review and optional restore.
Locked field updates can only be saved by the user that made them.When you have saved (and unapproved) field updates within an item, an orange dot will appear next to the item in lists, and your user avatar will appear next to the corresponding draft in the Version Sidebar. When others have saved (and unapproved) field updates within an item, you will see a light orange dot next to the item in lists, and their user avatar will appear next to the corresponding draft in the Version Sidebar.
- Approve - Modifications are approved to a single "Approved Version". The approved version represents the latest published version of the content. All saved drafts are rolled up into a single approved version once content is approved.
Authorized users can approve drafts saved by themselves or other users. When you attempt to approve a draft that contains changes from another user, a popup displays to let you know who change what when, and require your confirmation.
Workflow Processes
The following table details the steps that occurs upon Store, Save, and Approve as it is processed.
| Step | Store | Save | Approve |
| If this object has already been updated as part of the update process, skip further processing of this object. | x | x | x |
| Field Validation - Process field type specific validations, such as ensuring the value of a Number field input is numeric. If validation fails, stop further processing. | x | x | x |
| Custom Field Validations - Process any custom field validations, like regex validations. If validation fails and this is not a store, stop further processing. | x | x | |
| Model validate() Method - If the content type is associated with a PHP model class, and that model implements a validate() method, it will be called. If validation fails (returns FALSE) and this is not a store, stop further processing. | x | x | |
| Content Type Validate cTemplate - If the content type does not have a PHP validate() method or that method triggers the cTemplate, it will be invoked. If validation fails (returns FALSE or #ERROR is called at least once) and this is not a store, stop further processing. | x | x | |
| Before Approve - Execute the before_approve() method. | x | ||
| Update the Base. If this is a store, update the working copy. If this is a save, add a new draft. If this is an approve, archive the previous version if one exists, according to the Version Settings, then create or update the approved copy and remove previous drafts. | x | x | x |
| Update Content Type Method Values - Process each content type method (ie. .Summary(), .Description(), .Icon(), etc.) that can be queried, and record the result for future queries in the same mode (ie. store, save or approve). | x | x | x |
| Update Parent - If this object was accessed through a cPath where a single parent is referenced before this object and this object is referenced through an embedded relationship field, start the steps for that single parent. | x | x | x |
| Update Children - If this object references any other objects through embedded relationship fields, start the steps for each child object. | x | x | x |
| Other Variants - If the origin object was not for a specific dimension or "All Dimensions" was selected from the workflow menu, start the update steps for each variant of this object. | x | x | x |
| After Approve - Execute the after_approve() method. | x |
Validation
Content item field values are validated before they are stored, saved and approved.
- Data field values must match the field data type before they can be stored, saved or approved. In other words, a numeric field cannot contain text and a date field must contain a valid date.
- Unique/Key validations are not required to store changes, but must be met before an item can be saved or approved. In other words, if a Filename must be unique within a specific folder, it cannot be saved or approved if another content item with the same Filename is in the same folder.
- Custom field validations are not required to store changes, but are required to save or approve.
- Custom content type validations are not required to store changes, but are required to save or approve.
Processing
Content can be processed and manipulated as it is updated, saved, copied, approved and published to automate just about anything at any point in the production lifecycle.
webCOMAND Docs