diff --git a/10/umbraco-workflow/.gitbook.yaml b/10/umbraco-workflow/.gitbook.yaml deleted file mode 100644 index d0ba2ba3912..00000000000 --- a/10/umbraco-workflow/.gitbook.yaml +++ /dev/null @@ -1,11 +0,0 @@ -root: ./ - -​structure: - readme: README.md - summary: SUMMARY.md - -redirects: - installing-workflow: installation/installing-workflow.md - licensing: installation/licensing.md - upgrading-workflow/migrating-workflow: upgrading/migrating-workflow.md - upgrading-workflow/upgrading: upgrading/upgrading.md diff --git a/10/umbraco-workflow/.gitbook/assets/Community.png b/10/umbraco-workflow/.gitbook/assets/Community.png deleted file mode 100644 index 2755aceaf8a..00000000000 Binary files a/10/umbraco-workflow/.gitbook/assets/Community.png and /dev/null differ diff --git a/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b (1) (1) (1).png b/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b (1) (1) (1).png deleted file mode 100644 index cd175671fe8..00000000000 Binary files a/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b (1) (1) (1).png and /dev/null differ diff --git a/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b (1) (1).png b/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b (1) (1).png deleted file mode 100644 index cd175671fe8..00000000000 Binary files a/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b (1) (1).png and /dev/null differ diff --git a/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b (1).png b/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b (1).png deleted file mode 100644 index cd175671fe8..00000000000 Binary files a/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b (1).png and /dev/null differ diff --git a/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b.png b/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b.png deleted file mode 100644 index cd175671fe8..00000000000 Binary files a/10/umbraco-workflow/.gitbook/assets/Documentation_blogpost_styleguide_b.png and /dev/null differ diff --git a/10/umbraco-workflow/.gitbook/assets/umbraco-workflow-1.png b/10/umbraco-workflow/.gitbook/assets/umbraco-workflow-1.png deleted file mode 100644 index cb0fb06fa0c..00000000000 Binary files a/10/umbraco-workflow/.gitbook/assets/umbraco-workflow-1.png and /dev/null differ diff --git a/10/umbraco-workflow/README.md b/10/umbraco-workflow/README.md deleted file mode 100644 index f151eade791..00000000000 --- a/10/umbraco-workflow/README.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -meta.Title: Umbraco Workflow Documentation -description: Documentation on how to work with Umbraco Workflow in just a few steps ---- - -# Umbraco Workflow Documentation - -Umbraco Workflow allows the creation of multi-stage approval workflows when writing and publishing content. Umbraco Workflow extends Umbraco's out-of-the-box publishing model with multi-stage and configurable approval workflows. A workflow process comprises of multiple steps and multiple users assigned to the group responsible for providing approval at each step. - -[Learn more or purchase Umbraco Workflow to get all the features and support.](https://umbraco.com/products/umbraco-workflow/) - -
Installing Umbraco WorkflowInstall Umbraco Workflow in a few stepsinstalling-workflow.mdumbraco-workflow-1.png
Content Approval Workflows for UmbracoAllows you to design the approval process to fit your organizationworkflow-content-app.mdCommunity.png
Workflow Section OverviewApproving, rejecting, content reviews, and scheduling workflows are natural additions to the existing toolboxworkflow-sectionDocumentation_blogpost_styleguide_b.png
- -{% embed url="https://www.youtube-nocookie.com/embed/jFWYZUiQPv8" %} -Umbraco Workflow Overview -{% endembed %} - -## Quick Links - -{% content-ref url="getting-started/dashboards-and-buttons.md" %} -[dashboards-and-buttons.md](getting-started/dashboards-and-buttons.md) -{% endcontent-ref %} - -{% content-ref url="getting-started/notifications.md" %} -[notifications.md](getting-started/notifications.md) -{% endcontent-ref %} - -{% content-ref url="getting-started/configuration.md" %} -[configuration.md](getting-started/configuration.md) -{% endcontent-ref %} diff --git a/10/umbraco-workflow/SUMMARY.md b/10/umbraco-workflow/SUMMARY.md deleted file mode 100644 index 23ef1a9f72a..00000000000 --- a/10/umbraco-workflow/SUMMARY.md +++ /dev/null @@ -1,34 +0,0 @@ -# Table of contents - -* [Umbraco Workflow Documentation](README.md) -* [Legacy Documentation](legacy-documentation.md) -* [Release notes](release-notes.md) - -## Installation - -* [Installing Umbraco Workflow](installation/installing-workflow.md) -* [Licensing](installation/licensing.md) - -## Upgrading - -* [Upgrading Umbraco Workflow](upgrading/upgrading.md) -* [Migrate from Plumber to Workflow](upgrading/migrating-workflow.md) - -## Getting Started - -* [Dashboards and Buttons](getting-started/dashboards-and-buttons.md) -* [Content App](getting-started/workflow-content-app.md) -* [Submitting Content for Approval](getting-started/submitting-changes.md) -* [Notifications](getting-started/notifications.md) -* [Configuration](getting-started/configuration.md) -* [Approval thresholds](getting-started/approval-thresholds.md) -* [History Cleanup](getting-started/history-cleanup.md) - -## Workflow Section - -* [Workflow Section](workflow-section/workflow-section-dashboard.md) -* [Active Workflows](workflow-section/active-workflows.md) -* [Approval Groups](workflow-section/approval-groups.md) -* [Content Reviews](workflow-section/content-reviews.md) -* [Workflow History](workflow-section/workflow-history.md) -* [Workflow Settings](workflow-section/workflow-settings.md) diff --git a/10/umbraco-workflow/getting-started/approval-thresholds.md b/10/umbraco-workflow/getting-started/approval-thresholds.md deleted file mode 100644 index c8291fc3a03..00000000000 --- a/10/umbraco-workflow/getting-started/approval-thresholds.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -description: >- - Use thresholds to configure how many approvals a workflow in Umbraco Workflow - requires to be considered complete. ---- - -# Approval thresholds - -{% hint style="info" %} -This feature requires a license - learn more about [Workflow's licensing model](https://umbraco.com/products/umbraco-workflow) -{% endhint %} - -Umbraco Workflow's default behavior requires one member of an approval group to approve a pending task to advance it through the workflow. - -The approval thresholds feature introduces configuration options to set the required number of approvals for a given workflow stage. - -The threshold options are: - -| Option | Description | -| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| One (_default_) | Pending tasks require approval from **any** member of the assigned approval group. | -| Most |

Pending tasks require approval from an absolute majority of group members.
Example: A group with 3 members requires 2 approvals and a group with 4 members requires 3 approvals.

| -| All | Pending tasks require approval from **all** group members. | - -The workflow detail UI displays the following: - -* The status of the current task. -* Approval status for members of the current group. -* Progress towards meeting the threshold for the current approval stage. -* Future tasks -* The assigned group and its users. - -![Tasklist with approval thresholds]() - -Approving a task as an administrator immediately satisfies the approval threshold for the task, and will advance to the next workflow stage. - -When a task is rejected in a workflow stage where the approval threshold is Most or All, existing approvals can be managed via configuration: - -* Existing approvals can be reset, resetting progress toward the approval threshold. In this case, all users in the approval group will be able to approve the resubmitted content. -* Existing approvals can be kept. In this case, users in the approval group who have already approved the task will not be able to approve the resubmitted content. - -## Related settings and configuration - -Approval thresholds are managed via settings in the Workflow section or in the `appsettings.json` file. Node-specific thresholds are set directly on the workflow configuration in the Workflow content app. - -### Settings - -The settings below can be set from the Backoffice or via settings customization in the `appsettings.json` file (refer to [Settings customization](configuration.md#settingscustomization) for implementation instructions). - -| Setting | Default | Description | -| ---------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------ | -| Approval threshold | `0` (One) | Sets the global approval threshold. | -| Rejection resets approvals | `false` | When `true`, and the approval threshold is Most or All, rejecting a task resets the previous approvals for the workflow stage. | -| Configure approval threshold | `false` | When `true`, enables setting the approval threshold for any stage of a workflow (on a content node or Document Type). | - -### Configuration - -The approval threshold for an individual workflow stage can be set using the control below the stage name. Setting the stage threshold requires the **Configuring approval threshold** setting to be `true`. - -![Setting approval threshold for individual workflow stages]() diff --git a/10/umbraco-workflow/getting-started/configuration.md b/10/umbraco-workflow/getting-started/configuration.md deleted file mode 100644 index 5e670b52cc7..00000000000 --- a/10/umbraco-workflow/getting-started/configuration.md +++ /dev/null @@ -1,266 +0,0 @@ ---- -description: >- - Get an overview of various options for customizing the configuration of your - Umbraco Workflow installation. ---- - -# Configuration - -With Umbraco Workflow, it is possible to customize the functionality with different configuration values. - -## Editing configuration values - -All configuration for Umbraco Workflow is held in the `appSettings.json` file found at the root of your Umbraco website. If the configuration has been customized to use another source, then the same keys and values discussed in this article can be applied there. - -The convention for Umbraco configuration is to have package-based options stored as a child structure. The child structure is added below the Umbraco element and as a sibling of the CMS. Workflow configuration follows this pattern, i.e.: - -```json -{ - ... - "Umbraco": { - "CMS": { - ... - }, - "Workflow": { - ... - } - } -} -``` - -All Workflow configuration is optional and will a fallback to defaults, if not set. The following structure represents the full set of configuration options along with the default values: - -```json -{ - "Workflow": { - "ReminderNotificationPeriod": Timespan.FromHours(8), - "EnableTestLicense": false, - "EmailTemplatePath": "~/Views/Partials/WorkflowEmails", - "SettingsCustomization": {...} - } -``` - -### Workflow Configuration - -#### ReminderNotificationPeriod - -A `TimeSpan` representing the period between checking for, and sending, reminder notifications for overdue workflows. This setting is used in conjunction with `ReminderDelay` to determine if a workflow is overdue. - -#### EnableTestLicense - -A `bool` value used to enable or disable the test license. When true, and running Umbraco in development mode, all licensed features are available on local domains. - -#### EmailTemplatePath - -A `string` value representing the path to the email notification templates. - -#### Colors - -An instance of `ColorSettings` allowing customization of colors used in email notifications. Allows setting alternate values for red, orange, and green use to highlight workflow status in emails. - -## SettingsCustomization - -All Workflow settings can be customized in the `appSettings.json` file. Settings can be read-only or hidden entirely in the backoffice. Optionally you can set the values here. - -The `SettingsCustomization` object has two child properties: - -* `General` -* `ContentReviews` - -Both are dictionaries of `SettingsCustomizationDetail` objects. The value is set to the following structure that contains three settings: - -```json -{ - … - "MySettingKey": { - "IsHidden": false, - "IsReadOnly": false, - "Value": 42 - } - … -} -``` - -* `IsHidden` - When true, the corresponding property is not displayed in the backoffice UI -* `IsReadOnly` - When true, the corresponding property is displayed in the backoffice UI but is not editable -* `Value` - Sets the value for the corresponding property. This value takes priority over existing values set via the backoffice - -All available `SettingsCustomization` options are illustrated below along with their respective values: - -```json -{ - "Workflow": { - … - "SettingsCustomization": { - "General": { - "FlowType": 0|1|2 matching the FlowType enum values, - "ApprovalThreshold": 0|1|2 matching the ApprovalThreshold enum values, - "ConfigureApprovalThreshold": bool, - "RejectionResetsApprovals": bool, - "LockIfActive": bool, - "MandatoryComments": bool, - "AllowAttachments": bool, - "AllowScheduling": bool, - "RequireUnpublish": bool, - "ExtendPermissions": bool, - "SendNotifications": bool, - "Email": string, - "ReminderDelay": int, - "EditUrl": string, - "SiteUrl": string, - "NewNodeApprovalFlow": *, - "DocumentTypeApprovalFlow": *, - "ExcludeNodes": *, - }, - "ContentReviews": { - "EnableContentReviews": bool, - "ReviewPeriod": int, - "ReminderThreshold": int, - "SendNotifications": bool, - "PublishIsReview": bool - } - } - } -} -``` - -{% hint style="info" %} -These are complex types and are not recommended to have values set from Configuration. Instead, these values can be set from the backoffice to hidden or read-only to prevent further changes. -{% endhint %} - -### General - -#### FlowType (int) - -Sets the workflow type to one of Explicit (0), Implicit (1), or Exclude (2): - -| Value | Name | Description | -| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 (_default_) | Explicit | Requires all steps be approved, including steps where the original change author is a group member. | -| 1 | Implicit | Auto-approves steps where the author is a member of the approving group. | -| 2 | Exclude | Behaves similarly to Explicit, but excludes the original author from any notifications (that is the author can not approve their own work). | - -#### ApprovalThreshold (int, requires a license) - -Sets the default approval threshold to one of One (0), Most (1), or All (2): - -| Value | Name | Description | -| ------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 0 (_default_) | One | Pending tasks require approval from **any** member of the assigned approval group. | -| 1 | Most |

Pending tasks require approval from an absolute majority of group members.
Example: A group with 3 members requires 2 approvals and a group with 4 members requires 3 approvals.

| -| 2 | All | Pending tasks require approval from **all** group members. | - -#### ConfigureApprovalThreshold (bool, requires a license) - -When true, allows configuring the approval threshold on individual workflow stages. - -#### RejectionResetsApprovals (bool, requires a license) - -When true, and ApprovalThreshold is Most or All, rejecting a task resets progress towards the approval threshold for the current workflow stage. - -#### LockIfActive (bool) - -When true, prevents editing content where the node is in an active workflow. When false, content can be edited at any stage of a workflow. - -#### MandatoryComments (bool) - -When true, comments are required when approving a workflow task. When false, comments are optional when approving a workflow task. Comments are always required when submitting changes for approval. - -#### AllowAttachments (bool) - -When true, displays an optional media picker when initiating a workflow. The selected media item can be used to provide further context or explanation of the content changes. - -#### AllowScheduling (bool) - -When true, displays optional controls for scheduling publish/unpublish when initiating a workflow. The scheduling uses Umbraco's existing content scheduling functionality. - -#### RequireUnpublish (bool) - -When true, content must be approved via a workflow when unpublishing. When false, a user with appropriate permission can unpublish content without workflow approval. - -#### ExtendPermissions (bool) - -When true, Workflow adds additional buttons to the editor footer (Request publish and Request unpublish, if the latter is required). When false, Workflow replaces the existing editor footer buttons. - -#### SendNotifications (bool) - -When true, Workflow will send email notifications in response to workflow changes. When false, no emails are sent. - -#### Email (string) - -The from address for email notifications. - -#### ReminderDelay (int) - -The number of days after which to start sending reminder emails for incomplete workflows. - -#### EditUrl (string) - -The URL at which editors access the BackOffice eg `https://edit.mysite.com`. Used for generating links to nodes in email notifications. Must be fully qualified and not include the `/umbraco` path. - -#### SiteUrl (string) - -The URL at which users access the live site eg `https://mysite.com`. Used for generating links in email notifications. Must be fully qualified. - -#### NewNodeApprovalFlow (complex type) - -When set, this flow is used for all new nodes on the first approval request. Subsequent workflows use the permissions set on the node (or content type, or inherited from an ancestor node). This is a complex type and ideally would not be set via configuration. - -#### DocumentTypeApprovalFlow (complex type, requires a license) - -Sets workflow permissions for Document Types (that is: all items of `BlogItem` type use the same workflow). The Document Type flow is used when a content node has no explicit permissions set. This is a complex type and ideally should not be set via configuration. - -#### ExcludeNodes (complex type, requires a license) - -Allows excluding segments of the content tree from the workflow model. This is a complex type and ideally would not be set via configuration. - -### ContentReviews - -#### EnableContentReviews (bool) - -When true, the content review engine will monitor publication dates to determine content review requirements. - -#### ReviewPeriod (int) - -Sets the number of days between mandatory reviews. This is a global value that can be overridden at the node or content type level. - -#### ReminderThreshold (int) - -Sets the date on which to send notification emails, prior to the review date elapsing. For example, if the `ReviewPeriod` is 20 and the `ReminderThreshold` is 3, notifications will be sent in 17 days or 3 days before the review date. - -#### SendNotifications (bool) - -When true, Workflow will send email notifications to approval groups, with a digest of expiring and expired content. - -#### PublishIsReview (bool) - -When true, publishing a node is treated as a review, and will generate a new review date. When false, content must be explicitly reviewed via the review banner rendered at the top of the editor. - -For example: To set the site URL, hide it in the backoffice, and set the content review period but keep the property read-only. The configuration would look like this: - -```json -{ - "Workflow": { - "SettingsCustomization": { - "General": { - "SiteUrl": { - "IsHidden": true, - "Value": "https://www.myawesomesite.com" - } - }, - "ContentReviews": { - "ReviewPeriod": { - "IsReadOnly": true, - "Value": 42 - } - } - } - } -} -``` - -Your Integrated Development Environment (IDE) will provide intellisense for the available settings but does not provide the valid value types. Settings are validated on startup and Umbraco will throw an exception if a known setting is provided with an invalid value. - -{% hint style="info" %} -It is possible to include settings outside of those referenced by Workflow. These can be useful for providing values for use in extensions and customizations. These settings are not validated on startup so can have any value. -{% endhint %} diff --git a/10/umbraco-workflow/getting-started/dashboards-and-buttons.md b/10/umbraco-workflow/getting-started/dashboards-and-buttons.md deleted file mode 100644 index 17472a57046..00000000000 --- a/10/umbraco-workflow/getting-started/dashboards-and-buttons.md +++ /dev/null @@ -1,32 +0,0 @@ -# Dashboards and Buttons - -Umbraco Workflow has its default Dashboards. By default, when you install Umbraco Workflow, you receive two Dashboards: the _User Dashboard_ and the _Admin Dashboard_. Additionally, Umbraco Workflow replaces the default Umbraco button set in the editor drawer. - -## Dashboards - -Umbraco Workflow adds two Dashboards to your Umbraco project: - -* **User Dashboard** - This Workflow Dashboard is added in the **Content** section. It displays the tasks requiring approval from the user, current user’s submissions, and stale content (content that needs to be reviewed). - - ![Workflow Dashboard in the Content Section](<../images/WorkflowDashboard-ContentSection (1).png>) -* **Admin Dashboard** - This Workflow Dashboard is the default view in the **Workflow** section. It displays a chart of recent workflow activity, chart of content review activity, licensing details, and any relevant upgrade-related messages. You can also view the workflow and content review activity chart for the specified range of days. - - ![Workflow Dashboard in the Workflow Section](../images/workflow-section.png) - -## Buttons - -When a workflow is active on the current node, the **Publish** button is replaced, linking to the workflow content app. - -![Buttons](../images/Buttons%20(1).png) - -When no workflow is active, the button state is determined by the current user's permissions. - -Umbraco Workflow overrides Umbraco's User/Group publishing permissions. If the user has permission to update the node, they will be able to initiate a workflow process on that node. Umbraco Workflow shifts Umbraco from a centrally administered publishing model (controlled by a site administrator) to a distributed model. In this model, editors publish content based on their responsibilities assigned during the workflows. - -In cases, where the content is already in a workflow, a notification is displayed at the top of the editor. Depending on the Workflow **Settings**, you can enable/disable editing access on a content node in a workflow. - -![Disabled content edits](../images/blocked_content.png) - -For nodes where the workflow has been disabled, the default Umbraco options are displayed. - -![Default Button](../images/Default_Buttons%20(1).png) diff --git a/10/umbraco-workflow/getting-started/history-cleanup.md b/10/umbraco-workflow/getting-started/history-cleanup.md deleted file mode 100644 index d8b31398b15..00000000000 --- a/10/umbraco-workflow/getting-started/history-cleanup.md +++ /dev/null @@ -1,141 +0,0 @@ -# History Cleanup - -Every new workflow stores multiple records in the database - one for the workflow instance and one for each task in the workflow. In a multi-lingual site, depending on how you use Workflow, there may also be records generated for each culture variation. These records are used to build the workflow history views in the Umbraco backoffice. - -Depending on your requirements, this information may not be required or may only be useful for a short period of time. - -{% hint style="info" %} -The workflow History exists in addition to Umbraco's audit trail information. It will always show the identity of the user who completes the workflow. -{% endhint %} - -Umbraco Workflow 11.1.0 introduces a history cleanup feature similar to those already available in Umbraco CMS and Umbraco Forms. - -## How it works - -The History Cleanup feature is disabled by default. Applying the default history cleanup policy will: - -* Delete history older than 28 days. See the `KeepHistoryForDays` setting. -* Only delete history where the workflow status is `Approved`, `Cancelled`, `CancelledByThirdParty`, or `Errored`. See the `StatusesToDelete` setting. - -The feature can be enabled in the `appSettings.json`: - -```json -{ - "Umbraco": { - "Workflow": { - "HistoryCleanupPolicy": { - "EnableCleanup": true, - // Below settings are optional - "FirstRunTime": string; the time to first run the scheduled cleanup task, in crontab format - "Period": string; how often to run the task, in timespan format - "KeepHistoryForDays": int; delete history after this many days - "StatusesToDelete": refer to StatusesToDelete configuration below - "CleanupRules": refer to Configuration examples below - } - } - } -} -``` - -## Overriding global settings - -For sites with stricter or more complex requirements, it is possible to override the global settings for individual content nodes and Document Types. This is also managed through `appSettings.json` configuration. Configuration rules defined in application settings are prioritized over any rules set via the backoffice. It allows the developers to restrict clean up of critical history, while allowing site administrators flexibility to manage non-critical history. - -## Configuration examples - -The below example will apply the following policies: - -* History cleanup is enabled globally. -* History items with `Approved` or `Cancelled` status are deleted after 90 days. -* Workflow history for node `dcf18a51-6919-4cf8-89d1-36b94ce4d963` will never be deleted. -* Workflow history for node `31523089-f648-4883-9087-ef9a0b83129f` will be deleted after 10 days for the statuses defined in the global `StatusesToDelete` property. -* Workflow history for all nodes using the `ContentPage` Document Type will never be deleted. -* Workflow history with `Cancelled` status for all nodes using the `NewsItem` Document Type will be deleted after 100 days (see also [StatusesToDelete configuration](history-cleanup.md#statusestodelete-configuration)). - -```json -{ - "Umbraco": { - "Workflow": { - "HistoryCleanupPolicy": { - "EnableCleanup": true, - "KeepHistoryForDays": 90, - "StatusesToDelete": { - "Approved": true, - "Cancelled": true, - "CancelledByThirdParty": false, - "Errored": false - } - "CleanupRules": { - "dcf18a51-6919-4cf8-89d1-36b94ce4d963": { - "EnableCleanup": false - }, - "31523089-f648-4883-9087-ef9a0b83129f": { - "KeepHistoryForDays": 10 - }, - "ContentPage": { - "EnableCleanup": false - }, - "NewsItem": { - "KeepHistoryForDays": 100, - "StatusesToDelete": { - "Approved": false, - "Cancelled": true, - "CancelledByThirdParty": false, - "Errored": false - } - } - } - } - } - } -} -``` - -When calculating node and Document Type policies, the Document Type rules will not be processed if the current workflow instance matches a node rule. Using the above configuration as an example, consider both nodes in the `CleanupRules` dictionary are using the Document Type `ContentPage`. In this case, the Document Type rules will not be applied as the node rules are prioritized. - -If a value is omitted from the node or Document Type policy, the global value will be used instead. In the above example, the node policy for `31523089-f648-4883-9087-ef9a0b83129f` uses the `StatusesToDelete` value from the global policy that is deleting `Approved` or `Cancelled` workflow history. - -### StatusesToDelete configuration - -`StatusesToDelete` uses a dictionary built from the `WorkflowStatus` enum type. The default configuration is: - -```json - "HistoryCleanupPolicy": { - "StatusesToDelete": { - "Approved": true, - "Cancelled": true, - "CancelledByThirdParty": true, - "Errored": true, - "PendingApproval": false, - "Rejected": false, - "NotRequired": false, - "Resubmitted": false - } - } -``` - -It is possible for a cleanup rule (or the global configuration) to declare a `StatusesToDelete` property without the full set of status keys. This will not modify the default values. - -For example, adding `"Approved": false` will remove `Approved` from the deletable statuses, but all other default values will remain. Therefore, to delete approved workflows only, the configuration would look like below, where the default values have been negated: - -```json - "HistoryCleanupPolicy": { - "EnableCleanup": true, - "StatusesToDelete": { - "Approved": true, - "Cancelled": false, - "CancelledByThirdParty": false, - "Errored": false - } - } -``` - -## Backoffice configuration - -Backoffice users with access to the Workflow section will have permission to modify history cleanup rules, while all backoffice users have read-only access. - -Rules for content items and their Document Type are set from the History tab of the Workflow content app. The History view in the Workflow section provides a read-only overview of all the history cleanup rules and global configuration. - -Content items with no custom cleanup rules defined will display the global defaults. - -![Workflow History Cleanup Modal]() diff --git a/10/umbraco-workflow/getting-started/images/Active-Workflow-detailed-info.png b/10/umbraco-workflow/getting-started/images/Active-Workflow-detailed-info.png deleted file mode 100644 index a10f9ca1800..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/Active-Workflow-detailed-info.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/Active-workflow-initiate-request.png b/10/umbraco-workflow/getting-started/images/Active-workflow-initiate-request.png deleted file mode 100644 index 0478888a065..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/Active-workflow-initiate-request.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/Buttons.png b/10/umbraco-workflow/getting-started/images/Buttons.png deleted file mode 100644 index 3cc8d7e7ad1..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/Buttons.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/Configuration-sub-section.png b/10/umbraco-workflow/getting-started/images/Configuration-sub-section.png deleted file mode 100644 index a48ae7e7507..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/Configuration-sub-section.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/Default-Buttons.png b/10/umbraco-workflow/getting-started/images/Default-Buttons.png deleted file mode 100644 index 45cace64303..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/Default-Buttons.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/History-sub-section.png b/10/umbraco-workflow/getting-started/images/History-sub-section.png deleted file mode 100644 index 1315413ea85..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/History-sub-section.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/Workflow-Content-app-Details-overlay.png b/10/umbraco-workflow/getting-started/images/Workflow-Content-app-Details-overlay.png deleted file mode 100644 index 0c019a88c6a..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/Workflow-Content-app-Details-overlay.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/Workflow-section.png b/10/umbraco-workflow/getting-started/images/Workflow-section.png deleted file mode 100644 index 9bc148d2e37..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/Workflow-section.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/WorkflowDashboard-ContentSection (1).png b/10/umbraco-workflow/getting-started/images/WorkflowDashboard-ContentSection (1).png deleted file mode 100644 index b1a885dc671..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/WorkflowDashboard-ContentSection (1).png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/WorkflowDashboard-ContentSection.png b/10/umbraco-workflow/getting-started/images/WorkflowDashboard-ContentSection.png deleted file mode 100644 index b1a885dc671..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/WorkflowDashboard-ContentSection.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/approval-flow-types.png b/10/umbraco-workflow/getting-started/images/approval-flow-types.png deleted file mode 100644 index c58ac608eb9..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/approval-flow-types.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/approval-flow-with-thresholds (1).png b/10/umbraco-workflow/getting-started/images/approval-flow-with-thresholds (1).png deleted file mode 100644 index 8b847e796df..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/approval-flow-with-thresholds (1).png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/approval-flow-with-thresholds.png b/10/umbraco-workflow/getting-started/images/approval-flow-with-thresholds.png deleted file mode 100644 index 8b847e796df..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/approval-flow-with-thresholds.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/approval-groups-roles.png b/10/umbraco-workflow/getting-started/images/approval-groups-roles.png deleted file mode 100644 index 281b1d36a29..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/approval-groups-roles.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/approval-request-overlay-detailed.png b/10/umbraco-workflow/getting-started/images/approval-request-overlay-detailed.png deleted file mode 100644 index 25dddb5564a..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/approval-request-overlay-detailed.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/approval-request-overlay-variants.png b/10/umbraco-workflow/getting-started/images/approval-request-overlay-variants.png deleted file mode 100644 index 7b9670349dd..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/approval-request-overlay-variants.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/assign-rejected-task.png b/10/umbraco-workflow/getting-started/images/assign-rejected-task.png deleted file mode 100644 index 365b4969a4b..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/assign-rejected-task.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/blocked-content.png b/10/umbraco-workflow/getting-started/images/blocked-content.png deleted file mode 100644 index 0f23d2b8114..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/blocked-content.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/content-app (1).png b/10/umbraco-workflow/getting-started/images/content-app (1).png deleted file mode 100644 index 312a09792dd..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/content-app (1).png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/content-app.png b/10/umbraco-workflow/getting-started/images/content-app.png deleted file mode 100644 index 312a09792dd..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/content-app.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/content-approval-flow.gif b/10/umbraco-workflow/getting-started/images/content-approval-flow.gif deleted file mode 100644 index b2b078cacb3..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/content-approval-flow.gif and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/tasklist-with-approval-thresholds (1).png b/10/umbraco-workflow/getting-started/images/tasklist-with-approval-thresholds (1).png deleted file mode 100644 index 6a10aa4a096..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/tasklist-with-approval-thresholds (1).png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/tasklist-with-approval-thresholds.png b/10/umbraco-workflow/getting-started/images/tasklist-with-approval-thresholds.png deleted file mode 100644 index 6a10aa4a096..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/tasklist-with-approval-thresholds.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/workflow-history-cleanup-modal (1).png b/10/umbraco-workflow/getting-started/images/workflow-history-cleanup-modal (1).png deleted file mode 100644 index 9e66619f06e..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/workflow-history-cleanup-modal (1).png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/images/workflow-history-cleanup-modal.png b/10/umbraco-workflow/getting-started/images/workflow-history-cleanup-modal.png deleted file mode 100644 index 9e66619f06e..00000000000 Binary files a/10/umbraco-workflow/getting-started/images/workflow-history-cleanup-modal.png and /dev/null differ diff --git a/10/umbraco-workflow/getting-started/notifications.md b/10/umbraco-workflow/getting-started/notifications.md deleted file mode 100644 index 2f5c60bf953..00000000000 --- a/10/umbraco-workflow/getting-started/notifications.md +++ /dev/null @@ -1,86 +0,0 @@ -# Notifications - -Umbraco Workflow uses Notifications to allow you to hook into the processes for the backoffice. For example, you might want to execute some code every time an approval group is updated. Notifications allow you to do that. For more information on how Umbraco implements Notifications, see the [Using Notifications](https://docs.umbraco.com/umbraco-cms/reference/notifications) article. - -## Notifications - -All notifications reside in the `Umbraco.Workflow.Core.Notifications` namespace and are postfixed with `Notification`. - -Typically, available notifications exist in pairs, with a "before" and "after" notification. For example, the `SettingsService` class publishes both a `WorkflowSettingsSavingNotification` and a `WorkflowSettingsSavedNotification` when settings are modified. - -Which one you want to use depends on what you want to achieve. If you want to cancel the action, you will use the "before" notification and use the CancelOperation method on the notification to cancel it. If you want to execute some code after the settings have been updated, then you would use the "after" notification. - -## ContentReviewService Notifications - -| Notification | Members | Description | -| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| WorkflowContentReviewsConfigSavingNotification |
  • IEnumerable SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when ContentReviewService.SaveContentReviewConfig is called in the API.
SavedEntities: Gets the collection of IWorkflowConfig objects being saved.

| -| WorkflowContentReviewsConfigSavedNotification |
  • IEnumerable SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when ContentReviewService.SaveContentReviewConfig is called in the API after the entities have been saved.
SavedEntities: Gets the collection of saved IWorkflowConfig objects.

| -| WorkflowContentReviewsEmailNotificationsSendingNotification |
  • Dictionary<UserGroupPoco, List<ContentReviewConfigPoco>> Target
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when ContentReviewReminderEmailer.SendReviewReminders is called in the API before email notifications are sent.
Target: Gets a dictionary containing information about the nodes requiring review, and the assigned review groups.

| -| WorkflowContentReviewsEmailNotificationsSentNotification |
  • Dictionary<UserGroupPoco, List<ContentReviewConfigPoco>> Target
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when ContentReviewReminderEmailer.SendReviewReminders is called in the API after email notifications are sent.
Target: Gets a dictionary containing information about the nodes requiring review, and the assigned review groups.

| -| WorkflowContentReviewsReviewingNotification |
  • ContentReviewNodePoco Target
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when ContentReviewService.MarkAsReviewed is called in the API before the node review status is updated.
Target: Get an object with information about the node being reviewed.

| -| WorkflowContentReviewsReviewedNotification |
  • ContentReviewNodePoco Target
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when ContentReviewService.MarkAsReviewed is called in the API after the node review status is updated.
Target: Get an object with information about the reviewed node.

| - -## ConfigService Notifications - -| Notification | Members | Description | -| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| WorkflowContentTypeConfigDeletingNotification |
  • IEnumerable<IWorkflowConfig> DeletedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when ConfigService.DeleteContentTypeConfig is called in the API before the config items are deleted.
DeletedEntities: Gets the collection of IWorkflowConfig objects being deleted.

| -| WorkflowContentTypeConfigDeletedNotification |
  • IEnumerable<IWorkflowConfig> DeletedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when ConfigService.DeleteContentTypeConfig is called in the API after the config items are deleted.
DeletedEntities: Gets the collection of deleted IWorkflowConfig objects. Note these items are no longer in the database and exist only in memory.

| -| WorkflowContentTypeConfigSavingNotification |
  • IEnumerable<IWorkflowConfig> SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when ConfigService.UpdateContentTypeConfig is called in the API.
SavedEntities: Gets the collection of IWorkflowConfig objects being saved.

| -| WorkflowContentTypeConfigSavedNotification |
  • IEnumerable<IWorkflowConfig> SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when ConfigService.UpdateContentTypeConfig is called in the API after the entities have been saved.
SavedEntities: Gets the collection of saved IWorkflowConfig objects.

| -| WorkflowNodeConfigDeletingNotification |
  • IEnumerable<IWorkflowConfig> DeletedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when ConfigService.DeleteNodeConfig is called in the API before the config items are deleted.
DeletedEntities: Gets the collection of IWorkflowConfig objects being deleted.

| -| WorkflowNodeConfigDeletedNotification |
  • IEnumerable<IWorkflowConfig> DeletedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when ConfigService.DeleteNodeConfig is called in the API after the config items are deleted.
DeletedEntities: Gets the collection of deleted IWorkflowConfig objects. Note these items are no longer in the database and exist only in memory.

| -| WorkflowNodeConfigSavingNotification |
  • IEnumerable<IWorkflowConfig> SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when ConfigService.UpdateNodeConfig is called in the API.
SavedEntities: Gets the collection of IWorkflowConfig objects being saved.

| -| WorkflowNodeConfigSavedNotification |
  • IEnumerable<IWorkflowConfig> SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when ConfigService.UpdateNodeConfig is called in the API after the entities have been saved.
SavedEntities: Gets the collection of saved IWorkflowConfig objects.

| - -## NotificationsService Notifications - -| Notification | Members | Description | -| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| WorkflowEmailNotificationsSendingNotification |
  • IEnumerable<IWorkflowInstance> Target
  • EmailType EmailType
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when NotificationsService.SendEmailNotifications is called in the API before email notifications are generated and sent.
Target: Gets the object describing the workflow instance used to build the email messages
EmailType: Gets the enum value describing the email type

| -| WorkflowEmailNotificationsSentNotification |
  • IHtmlEmailModel Target
  • List<EmailUserModel> Recipients
  • EmailType EmailType
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowReminderEmailer.Send is called in the API after email notifications are sent.
Target: Gets the object describing the email
Recipients: Gets the collection of email recipients
EmailType: Gets the enum value describing the email type

| -| WorkflowEmailRemindersSendingNotification |
  • IEnumerable<IWorkflowInstance> Target
  • EmailType EmailType
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when NotificationsService.SendEmailReminders is called in the API before email notifications are generated and sent.
Target: Gets the collection of objects describing the workflow instances used to build the email messages
EmailType: Gets the enum value describing the email type. Will always be `EmailType.Reminder`

| -| WorkflowEmailRemindersSentNotification |
  • IEnumerable<IWorkflowInstance> Target
  • List&EmailTaskListModel> Tasks
  • EmailType EmailType
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowReminderEmailer.Send is called in the API after email notifications are sent.
Target: Gets the collection of objects describing the workflow instances used to build the email messages
Tasks: Gets the collection of objects describing the overdue workflows for each notified user
EmailType: Gets the enum value describing the email type. Will always be `EmailType.Reminder`

| - -## GroupService Notifications - -| Notification | Members | Description | -| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| WorkflowGroupCreatingNotification |
  • IWorkflowGroup SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when GroupService.CreateUserGroupAsync is called in the API before the entity is created.
CreatedEntity: Gets the created IWorkflowGroup object.

| -| WorkflowGroupCreatedNotification |
  • IWorkflowGroup SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when GroupService.CreateUserGroupAsync is called in the API after the entity has been created.
CreatedEntity: Gets the created IWorkflowGroup object.

| -| WorkflowGroupDeletingNotification |
  • IEnumerable<IWorkflowGroup> DeletedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when GroupService.DeleteUserGroupAsync is called in the API before the group is deleted.
DeletedEntities: Gets the collection of IWorkflowGroup objects being deleted.

| -| WorkflowGroupDeletedNotification |
  • IEnumerable<IWorkflowGroup> DeletedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when GroupService.DeleteUserGroupAsync is called in the API after the group is deleted.
DeletedEntities: Gets the collection of deleted IWorkflowGroup objects.

| -| WorkflowGroupSavingNotification |
  • IEnumerable<IWorkflowGroup> SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when GroupService.UpdateUserGroupAsync is called in the API before the group is updated.
SavedEntities: Gets the collection of IWorkflowGroup objects being saved.

| -| WorkflowGroupSavedNotification |
  • IEnumerable<IWorkflowGroup> SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when GroupService.UpdateUserGroupAsync is called in the API after the group is updated.
SavedEntities: Gets the collection of saved IWorkflowGroup objects.

| - -## WorkflowProcess Notifications - -| Notification | Members | Description | -| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| WorkflowInstanceApprovingNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when WorkflowProcess.ActionWorkflow is called in the API before the workflow stage is approved.
Target: Gets the IWorkflowInstance object being approved.
Action: Gets the WorkflowAction being executed. Will be WorkflowAction.Approve.

| -| WorkflowInstanceApprovedNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowProcess.ActionWorkflow is called in the API after the workflow stage is approved.
Target: Gets the approved IWorkflowInstance object.
Action: Gets the WorkflowAction being executed. Will be WorkflowAction.Approve.

| -| WorkflowInstanceCancellingNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when WorkflowProcess.ActionWorkflow is called in the API before the workflow stage is cancelled.
Target: Gets the IWorkflowInstance object being cancelled.
Action: Gets the WorkflowAction being executed. Will be WorkflowAction.Cancel.

| -| WorkflowInstanceCancelledNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowProcess.ActionWorkflow is called in the API after the workflow stage is cancelled.
Target: Gets the cancelled IWorkflowInstance object.
Action: Gets the WorkflowAction being executed. Will be WorkflowAction.Cancel.

| -| WorkflowInstanceCompletedNotification |
  • IWorkflowInstance Target
  • WorkflowType WorkflowType
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowProcess.HandleCompleteNow or WorkflowProcess.HandleCompleteLater is called in the API after the workflow is completed.
Target: Gets the completed IWorkflowInstance object.
WorkflowType: Gets the WorkflowType enum value representing the workflow type. Will be either Publish or Unpublish.

| -| WorkflowInstanceCreatingNotification |
  • IWorkflowInstance CreatedEntity
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when WorkflowProcess.InitiateWorkflow is called in the API before the workflow is initiated.
CreatedEntity: Gets the IWorkflowInstance object being created.

| -| WorkflowInstanceCreatedNotification |
  • IWorkflowInstance CreatedEntity
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowProcess.InitiateWorkflow is called in the API after the workflow is initiated.
CreatedEntity: Gets the created IWorkflowInstance object.

| -| WorkflowInstanceRejectingNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when WorkflowProcess.ActionWorkflow is called in the API before the workflow stage is rejected.
Target: Gets the IWorkflowInstance object being rejected.
Action: Gets the WorkflowAction being executed. Will be WorkflowAction.Reject.

| -| WorkflowInstanceRejectedNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowProcess.ActionWorkflow is called in the API after the workflow stage is rejected.
Target: Gets the rejected IWorkflowInstance object.
Action: Gets the WorkflowAction being executed. Will be WorkflowAction.Reject.

| -| WorkflowInstanceResubmittingNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when WorkflowProcess.ResubmitWorkflow is called in the API before the workflow stage is resubmitted.
Target: Gets the IWorkflowInstance object being resubmitted.
Action: Gets the WorkflowAction being executed. Will be WorkflowAction.Resubmit.

| -| WorkflowInstanceResubmittedNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowProcess.ResubmitWorkflow is called in the API after the workflow stage is resubmitted.
Target: Gets the resubmitted IWorkflowInstance object.
Action: Gets the WorkflowAction being executed. Will be WorkflowAction.Resubmit.

| -| WorkflowInstanceUpdatingNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Base notification class for Approving, Cancelling, Creating, Rejecting, Resubmitting. Can be used in place of these, using the Action value to identify the executed workflow action.
Published when WorkflowProcess.ResubmitWorkflow is called in the API before the workflow is updated.
Target: Gets the IWorkflowInstance object being updated.
Action: Gets the WorkflowAction being executed.

| -| WorkflowInstanceUpdatedNotification |
  • IWorkflowInstance Target
  • WorkflowAction Action
  • EventMessages Messages
  • IDictionary<string,object> State
|

Base notification class for Approved, Cancelled, Created, Rejected, Resubmitted. Can be used in place of these, using the Action value to identify the executed workflow action.
Published when WorkflowProcess.ResubmitWorkflow is called in the API after the workflow stage is updated.
Target: Gets the updated IWorkflowInstance objects.
Action: Gets the WorkflowAction being executed.

| -| WorkflowResubmitTaskCreatingNotification |
  • IWorkflowInstance CreatedEntity
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when WorkflowProcess.ResubmitWorkflow is called in the API before the workflow task is persisted.
CreatedEntity: Gets the IWorkflowTask object being created.

| -| WorkflowResubmitTaskCreatedNotification |
  • IWorkflowInstance CreatedEntity
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowProcess.ResubmitWorkflow is called in the API after the workflow task is persisted.
CreatedEntity: Gets the created IWorkflowTask.

| -| WorkflowTaskCreatingNotification |
  • IWorkflowInstance CreatedEntity
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when WorkflowTaskManager.CreateApprovalTask is called in the API before the workflow task is persisted.
CreatedEntity: Gets the IWorkflowTask object being created.

| -| WorkflowTaskCreatedNotification |
  • IWorkflowInstance CreatedEntity
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowTaskManager.CreateApprovalTask is called in the API after the workflow task is persisted.
CreatedEntity: Gets the created IWorkflowTask.

| -| WorkflowTaskUpdatingNotification |
  • IWorkflowInstance Target
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when WorkflowTaskManager.ResubmitWorkflow is called in the API before the workflow task is updated.
CreatedEntity: Gets the IWorkflowTask object being updated.

| -| WorkflowTaskUpdatedNotification |
  • IWorkflowInstance Target
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when WorkflowTaskManager.ResubmitWorkflow is called in the API after the workflow task is updated.
CreatedEntity: Gets the updated IWorkflowTask.

| - -## SettingsService Notifications - -| Notification | Members | Description | -| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| WorkflowSettingsSavingNotification |
  • IEnumerable<ISettings> SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
  • bool Cancel
|

Published when SettingsService.UpdateSettings is called in the API before the settings are saved.
SavedEntities: Gets the collection of ISettings objects being saved.

| -| WorkflowSettingsSavedNotification |
  • IEnumerable<ISettings> SavedEntities
  • EventMessages Messages
  • IDictionary<string,object> State
|

Published when SettingsService.UpdateSettings SavedEntities: Gets the collection of saved ISettings objects.

| diff --git a/10/umbraco-workflow/getting-started/submitting-changes.md b/10/umbraco-workflow/getting-started/submitting-changes.md deleted file mode 100644 index acd7e83539d..00000000000 --- a/10/umbraco-workflow/getting-started/submitting-changes.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -description: >- - Learn how to submit content changes for Workflow approval ---- - -# Submitting Content for Approval - -{% hint style="info" %} -This article applies to versions 10.3.7 and higher. -{% endhint %} - -When requesting workflow approval for content changes, editors must provide additional information detailing the change. - -To submit the content changes, click the **Request publish** button in the editor footer. - -![Buttons](../images/Buttons.png) - -The button opens the request approval overlay: - -![Request approval overlay](./images/approval-request-overlay-detailed.png) - -Depending on the Document Type and Workflow settings, the overlay will provide inputs for: - -* A comment describing the changes -* A selector for choosing the workflow type - either publish or unpublish - * Only visible when **Use Workflow for unpublish** is set to true -* A selector for choosing the variants to publish - * Only visible on variant content -* A media picker for choosing a media attachment - * Only visible when **Allow attachments** is set to true -* A date picker for setting a scheduled publishing date - * Only visible when **Allow scheduling** is set to true and the workflow type is **Publish** -* A date picker for setting a scheduled unpublishing date - * Only visible when **Allow scheduling** is true - -It is not possible to schedule a **Publish on** date in an Unpublish workflow. - -It is possible to schedule both **Publish on** and **Unpublish on** dates in a Publish workflow. Once content has been unpublished, a new workflow process is required to republish the content. - -## Variant Workflows - -If the document varies by culture, the editor must select one or more variants to submit for approval. - -When a document is invariant, the variants selector is not displayed, and the approval flow follows the [default permissions inheritance pattern](workflow-content-app.md#approval-flow-types). - -![Request approval overlay](./images/approval-request-overlay-variants.png) - -The editor will not be able to select variants where: - -* They do not have permission to edit the language, or -* The variant is already in a workflow. - -When submitting multiple variants, a workflow process is started for each variant, using the [default permissions inheritance pattern](workflow-content-app.md#approval-flow-types). Newly created variants are automatically assigned the configuration from the default language. - -Alternatively, all variants can be submitted in an invariant workflow, where they will be approved in a single workflow process. Invariant workflows use the permissions set on the default language. Editors must have permission to edit all the current node's variants to be able to initiate an invariant workflow. - -The invariant workflow will publish all variants, regardless of their node state, that are not already in workflows. This means that previously unpublished variants will be republished when using invariant workflows. In most cases, it is preferable to select the individual variants. - -## Content Validation and Pending Changes - -When submitting for approval, Workflow will automatically save variants with pending changes. - -Validation errors are reported in the UI using Umbraco's validation messages. diff --git a/10/umbraco-workflow/getting-started/workflow-content-app.md b/10/umbraco-workflow/getting-started/workflow-content-app.md deleted file mode 100644 index 489a707dbba..00000000000 --- a/10/umbraco-workflow/getting-started/workflow-content-app.md +++ /dev/null @@ -1,101 +0,0 @@ -# Content App - -Umbraco Workflow adds a [Content App](https://docs.umbraco.com/umbraco-cms/v/10.latest-lts/extending/content-apps) to all content nodes in the **Content** section where a workflow is enabled. The Workflow content app includes three sub-sections: - -* [Active Workflow](workflow-content-app.md#active-workflow) -* [Configuration](workflow-content-app.md#configuration) -* [History](workflow-content-app.md#history) - -![Workflow content app]() - -## Active Workflow - -The Active workflow sub-section provides an interface for managing workflows for the current content node. - -When the current node is pending workflow approval, the **Active workflow** sub-section displays detailed information such as: - -* Option to [approve, reject, or cancel pending workflow tasks](workflow-content-app.md#approve-reject-or-cancel-pending-workflow-tasks). -* View change description and track differences across pending and completed workflows. -* View the group responsible for approving the pending workflow. -* View pending language variant(s) workflow. -* View the workflow activity (eg. pending approval/task approvals/rejects) for the current workflow process. - -![Active Workflow sub-section](<../images/Active\_Workflow\_detailed\_info (1).png>) - -You can access Active Workflows from two places - the **Content** section and the **Workflow** section (depending on your user permission). Workflow Administrators (those users with access to the Workflow section) can access workflows assigned to a different group. In the **Workflow History**, these are noted as being performed by the admin. - -### Approve, Reject, or Cancel pending workflow tasks - -#### Approve Workflow Tasks - -To approve a Workflow task, click on the **Approve** button in the Action section. - -#### Reject Workflow Tasks - -To reject a Workflow task, click on the **Reject** button in the Action section. Depending on the approval stage, the reviewer can decide where to send the rejected task. - -For first-stage approvals, the rejected task is sent back to the original editor/author. For second-stage approvals and above, the reviewer can send the rejected task either to the original editor or any other previous workflow group. - -![Reject Workflow Tasks](<../images/assign-rejected-task (1).png>) - -#### Cancel pending Workflow Tasks - -To cancel a pending Workflow task, click on the **Cancel** button in the Action section. - -## Configuration - -The Configuration sub-section provides an interface for configuring the content approval flow for the current node. It also displays any Inherited or Document type approval flows applied to the current content node. - -In multi-lingual sites, each variant can have its own approval flow. By default, new variants inherit the configuration set on the default language. - -For example, German variants can be approved by the German speakers group, while English variants are approved by the English speakers group. - -![Configuration sub-section](<../images/Configuration-sub-section (1).png>) - -### Content Approval Flow - -You can add different groups for different stages of content approval flow. Content Approval flow groups can be reordered via drag and drop. You can also apply the approval flow either for publish and unpublish workflow or only publish workflow. - -![Content approval flow](<../images/content-approval-flow (1).gif>) - -#### Approval Flow Types - -Approval Flows are available in three types: Content approval flow, Inherited approval flow, and Document type approval flow. - -A given content node may have all three approval flow types applied but only one will be applied as per the following order of priority: - -* **Content approval flow:** set directly on a content node via the **Configuration** section in the **Workflow** tab . This type will take priority over all others. -* **Document type approval flow:** set in the **Settings** section. This approval flow will apply to all content nodes of the selected Document Type unless the node has a Content approval flow set. This feature requires a license. -* **Inherited approval flow:** if a node has no Content approval flow set, nor a flow applied to its Document Type, Umbraco Workflow will traverse the content tree until it finds a node with a Content approval flow and will use this flow for the current change. - -![Approval Flow Types](<../images/approval-flow-types (1).png>) - -Review the current responsibilities for Approval Groups in the **Roles** tab of the **Approval Groups** section for **Node-based approvals** and **Document type approvals** only. For more information see the [Roles](../workflow-section/approval-groups.md#roles) section in the [Approval Groups](../workflow-section/approval-groups.md) article. - -![Approval Groups Roles](../images/approval-groups-roles.png) - -Document type approval flows can also include conditional stages i.e., only include **Translators** in the workflow when the **Description** property has changed. For more information on settings conditions in Document type approval flows, see the [Document type approval flows](../workflow-section/workflow-settings.md#document-type-approval-flows) section in the [Workflow Settings](../workflow-section/workflow-settings.md) article. - -Configuration cannot be modified when a content node is in a workflow process. - -#### Content reviews - -Content reviews is a tool that allows content editors to keep their content up-to-date. For more information, see the [Content reviews](../workflow-section/content-reviews.md) section. - -## History - -The History sub-section provides a chronological audit trail of workflow activity for the current node. It displays a table containing the following information: - -* Type of Publish. -* Who the workflow is requested by. -* The date the workflow was requested. -* Comments. -* Status of the workflow. - -![History sub-section](../images/History-sub-section.png) - -You can also **Filter** the records based on the information listed above. Additionally, you can adjust the total number of records displayed on a page. - -The **Detail** button at the end of the record displays an overlay with content similar to the Active workflow sub-section. - -![Details overlay](<../images/Workflow-Content-app-Details-overlay (1).png>) diff --git a/10/umbraco-workflow/images/Active-workflow-initiate-request (1).png b/10/umbraco-workflow/images/Active-workflow-initiate-request (1).png deleted file mode 100644 index 0478888a065..00000000000 Binary files a/10/umbraco-workflow/images/Active-workflow-initiate-request (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/Active-workflow-initiate-request.png b/10/umbraco-workflow/images/Active-workflow-initiate-request.png deleted file mode 100644 index 0478888a065..00000000000 Binary files a/10/umbraco-workflow/images/Active-workflow-initiate-request.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Active_Workflow_detailed_info (1).png b/10/umbraco-workflow/images/Active_Workflow_detailed_info (1).png deleted file mode 100644 index a10f9ca1800..00000000000 Binary files a/10/umbraco-workflow/images/Active_Workflow_detailed_info (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/Active_Workflow_detailed_info.png b/10/umbraco-workflow/images/Active_Workflow_detailed_info.png deleted file mode 100644 index a10f9ca1800..00000000000 Binary files a/10/umbraco-workflow/images/Active_Workflow_detailed_info.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Approval-group-settings.png b/10/umbraco-workflow/images/Approval-group-settings.png deleted file mode 100644 index 4eb5a2649be..00000000000 Binary files a/10/umbraco-workflow/images/Approval-group-settings.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Approval-groups.png b/10/umbraco-workflow/images/Approval-groups.png deleted file mode 100644 index 5c16278c585..00000000000 Binary files a/10/umbraco-workflow/images/Approval-groups.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Buttons (1).png b/10/umbraco-workflow/images/Buttons (1).png deleted file mode 100644 index 3cc8d7e7ad1..00000000000 Binary files a/10/umbraco-workflow/images/Buttons (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/Buttons.png b/10/umbraco-workflow/images/Buttons.png deleted file mode 100644 index 3cc8d7e7ad1..00000000000 Binary files a/10/umbraco-workflow/images/Buttons.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Configuration-sub-section (1).png b/10/umbraco-workflow/images/Configuration-sub-section (1).png deleted file mode 100644 index a48ae7e7507..00000000000 Binary files a/10/umbraco-workflow/images/Configuration-sub-section (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/Configuration-sub-section.png b/10/umbraco-workflow/images/Configuration-sub-section.png deleted file mode 100644 index a48ae7e7507..00000000000 Binary files a/10/umbraco-workflow/images/Configuration-sub-section.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Content-review-dashboard.png b/10/umbraco-workflow/images/Content-review-dashboard.png deleted file mode 100644 index c7b2038be55..00000000000 Binary files a/10/umbraco-workflow/images/Content-review-dashboard.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Content-review-permissions.png b/10/umbraco-workflow/images/Content-review-permissions.png deleted file mode 100644 index d7ed49e902c..00000000000 Binary files a/10/umbraco-workflow/images/Content-review-permissions.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Create-approval-group.png b/10/umbraco-workflow/images/Create-approval-group.png deleted file mode 100644 index 536c63c39dd..00000000000 Binary files a/10/umbraco-workflow/images/Create-approval-group.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Default_Buttons (1).png b/10/umbraco-workflow/images/Default_Buttons (1).png deleted file mode 100644 index 45cace64303..00000000000 Binary files a/10/umbraco-workflow/images/Default_Buttons (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/Default_Buttons.png b/10/umbraco-workflow/images/Default_Buttons.png deleted file mode 100644 index 45cace64303..00000000000 Binary files a/10/umbraco-workflow/images/Default_Buttons.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Enable-content-reviews.png b/10/umbraco-workflow/images/Enable-content-reviews.png deleted file mode 100644 index dcbe1980bfe..00000000000 Binary files a/10/umbraco-workflow/images/Enable-content-reviews.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Getting-Started-workflow.png b/10/umbraco-workflow/images/Getting-Started-workflow.png deleted file mode 100644 index bcf83a62547..00000000000 Binary files a/10/umbraco-workflow/images/Getting-Started-workflow.png and /dev/null differ diff --git a/10/umbraco-workflow/images/History-sub-section (1).png b/10/umbraco-workflow/images/History-sub-section (1).png deleted file mode 100644 index 1315413ea85..00000000000 Binary files a/10/umbraco-workflow/images/History-sub-section (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/History-sub-section.png b/10/umbraco-workflow/images/History-sub-section.png deleted file mode 100644 index 1315413ea85..00000000000 Binary files a/10/umbraco-workflow/images/History-sub-section.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Inherited-group-membership.png b/10/umbraco-workflow/images/Inherited-group-membership.png deleted file mode 100644 index 7114172abbe..00000000000 Binary files a/10/umbraco-workflow/images/Inherited-group-membership.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Manage-packages-v11 (1).png b/10/umbraco-workflow/images/Manage-packages-v11 (1).png deleted file mode 100644 index 5be8f8f03db..00000000000 Binary files a/10/umbraco-workflow/images/Manage-packages-v11 (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/Manage-packages-v11.png b/10/umbraco-workflow/images/Manage-packages-v11.png deleted file mode 100644 index 5be8f8f03db..00000000000 Binary files a/10/umbraco-workflow/images/Manage-packages-v11.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Manage_packages-v10.png b/10/umbraco-workflow/images/Manage_packages-v10.png deleted file mode 100644 index 4659e4366af..00000000000 Binary files a/10/umbraco-workflow/images/Manage_packages-v10.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Manage_packages_v10.png b/10/umbraco-workflow/images/Manage_packages_v10.png deleted file mode 100644 index 0478d7ffdb7..00000000000 Binary files a/10/umbraco-workflow/images/Manage_packages_v10.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Manage_packages_v11.png b/10/umbraco-workflow/images/Manage_packages_v11.png deleted file mode 100644 index 97c3312c20e..00000000000 Binary files a/10/umbraco-workflow/images/Manage_packages_v11.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Notifications-tab (1).png b/10/umbraco-workflow/images/Notifications-tab (1).png deleted file mode 100644 index 014dcc6ffe8..00000000000 Binary files a/10/umbraco-workflow/images/Notifications-tab (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/Notifications-tab.png b/10/umbraco-workflow/images/Notifications-tab.png deleted file mode 100644 index 014dcc6ffe8..00000000000 Binary files a/10/umbraco-workflow/images/Notifications-tab.png and /dev/null differ diff --git a/10/umbraco-workflow/images/VS_Installation.png b/10/umbraco-workflow/images/VS_Installation.png deleted file mode 100644 index cd82fde768f..00000000000 Binary files a/10/umbraco-workflow/images/VS_Installation.png and /dev/null differ diff --git a/10/umbraco-workflow/images/VS_Installation_v10.png b/10/umbraco-workflow/images/VS_Installation_v10.png deleted file mode 100644 index c3b82cffdb1..00000000000 Binary files a/10/umbraco-workflow/images/VS_Installation_v10.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Workflow-Content-app-Details-overlay (1).png b/10/umbraco-workflow/images/Workflow-Content-app-Details-overlay (1).png deleted file mode 100644 index 0c019a88c6a..00000000000 Binary files a/10/umbraco-workflow/images/Workflow-Content-app-Details-overlay (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/Workflow-Content-app-Details-overlay.png b/10/umbraco-workflow/images/Workflow-Content-app-Details-overlay.png deleted file mode 100644 index 0c019a88c6a..00000000000 Binary files a/10/umbraco-workflow/images/Workflow-Content-app-Details-overlay.png and /dev/null differ diff --git a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (1) (1).png b/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (1) (1).png deleted file mode 100644 index b1a885dc671..00000000000 Binary files a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (1) (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (1).png b/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (1).png deleted file mode 100644 index b1a885dc671..00000000000 Binary files a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (2).png b/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (2).png deleted file mode 100644 index b1a885dc671..00000000000 Binary files a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (2).png and /dev/null differ diff --git a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (3).png b/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (3).png deleted file mode 100644 index b1a885dc671..00000000000 Binary files a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1) (3).png and /dev/null differ diff --git a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1).png b/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1).png deleted file mode 100644 index b1a885dc671..00000000000 Binary files a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection.png b/10/umbraco-workflow/images/WorkflowDashboard-ContentSection.png deleted file mode 100644 index b1a885dc671..00000000000 Binary files a/10/umbraco-workflow/images/WorkflowDashboard-ContentSection.png and /dev/null differ diff --git a/10/umbraco-workflow/images/WorkflowDashboard_WorkflowSection.png b/10/umbraco-workflow/images/WorkflowDashboard_WorkflowSection.png deleted file mode 100644 index 66d6181a8ce..00000000000 Binary files a/10/umbraco-workflow/images/WorkflowDashboard_WorkflowSection.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Workflow_dashboard.png b/10/umbraco-workflow/images/Workflow_dashboard.png deleted file mode 100644 index 10402b30313..00000000000 Binary files a/10/umbraco-workflow/images/Workflow_dashboard.png and /dev/null differ diff --git a/10/umbraco-workflow/images/Workflow_section (1).png b/10/umbraco-workflow/images/Workflow_section (1).png deleted file mode 100644 index 9bc148d2e37..00000000000 Binary files a/10/umbraco-workflow/images/Workflow_section (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/Workflow_section.png b/10/umbraco-workflow/images/Workflow_section.png deleted file mode 100644 index 9bc148d2e37..00000000000 Binary files a/10/umbraco-workflow/images/Workflow_section.png and /dev/null differ diff --git a/10/umbraco-workflow/images/active-workflow-detail-overlay.png b/10/umbraco-workflow/images/active-workflow-detail-overlay.png deleted file mode 100644 index 9c015834a93..00000000000 Binary files a/10/umbraco-workflow/images/active-workflow-detail-overlay.png and /dev/null differ diff --git a/10/umbraco-workflow/images/active-workflows-section.png b/10/umbraco-workflow/images/active-workflows-section.png deleted file mode 100644 index 816bda36569..00000000000 Binary files a/10/umbraco-workflow/images/active-workflows-section.png and /dev/null differ diff --git a/10/umbraco-workflow/images/add-approval-flow (1).png b/10/umbraco-workflow/images/add-approval-flow (1).png deleted file mode 100644 index 06ae1ba1eda..00000000000 Binary files a/10/umbraco-workflow/images/add-approval-flow (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/add-approval-flow.png b/10/umbraco-workflow/images/add-approval-flow.png deleted file mode 100644 index 06ae1ba1eda..00000000000 Binary files a/10/umbraco-workflow/images/add-approval-flow.png and /dev/null differ diff --git a/10/umbraco-workflow/images/add-doc-type-approval-flows (1).png b/10/umbraco-workflow/images/add-doc-type-approval-flows (1).png deleted file mode 100644 index 5d87999dee9..00000000000 Binary files a/10/umbraco-workflow/images/add-doc-type-approval-flows (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/add-doc-type-approval-flows-settings (1).png b/10/umbraco-workflow/images/add-doc-type-approval-flows-settings (1).png deleted file mode 100644 index 9705475f3e2..00000000000 Binary files a/10/umbraco-workflow/images/add-doc-type-approval-flows-settings (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/add-doc-type-approval-flows-settings.png b/10/umbraco-workflow/images/add-doc-type-approval-flows-settings.png deleted file mode 100644 index 9705475f3e2..00000000000 Binary files a/10/umbraco-workflow/images/add-doc-type-approval-flows-settings.png and /dev/null differ diff --git a/10/umbraco-workflow/images/add-doc-type-approval-flows.png b/10/umbraco-workflow/images/add-doc-type-approval-flows.png deleted file mode 100644 index 5d87999dee9..00000000000 Binary files a/10/umbraco-workflow/images/add-doc-type-approval-flows.png and /dev/null differ diff --git a/10/umbraco-workflow/images/add-group-member.png b/10/umbraco-workflow/images/add-group-member.png deleted file mode 100644 index 841376ed50e..00000000000 Binary files a/10/umbraco-workflow/images/add-group-member.png and /dev/null differ diff --git a/10/umbraco-workflow/images/approval-flow-types (1).png b/10/umbraco-workflow/images/approval-flow-types (1).png deleted file mode 100644 index c58ac608eb9..00000000000 Binary files a/10/umbraco-workflow/images/approval-flow-types (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/approval-flow-types.png b/10/umbraco-workflow/images/approval-flow-types.png deleted file mode 100644 index c58ac608eb9..00000000000 Binary files a/10/umbraco-workflow/images/approval-flow-types.png and /dev/null differ diff --git a/10/umbraco-workflow/images/approval-group-history.png b/10/umbraco-workflow/images/approval-group-history.png deleted file mode 100644 index 0b97f408b20..00000000000 Binary files a/10/umbraco-workflow/images/approval-group-history.png and /dev/null differ diff --git a/10/umbraco-workflow/images/approval-group-members.png b/10/umbraco-workflow/images/approval-group-members.png deleted file mode 100644 index d2bf05c0f19..00000000000 Binary files a/10/umbraco-workflow/images/approval-group-members.png and /dev/null differ diff --git a/10/umbraco-workflow/images/approval-groups-role.png b/10/umbraco-workflow/images/approval-groups-role.png deleted file mode 100644 index 72276bcb98d..00000000000 Binary files a/10/umbraco-workflow/images/approval-groups-role.png and /dev/null differ diff --git a/10/umbraco-workflow/images/approval-groups-roles (1).png b/10/umbraco-workflow/images/approval-groups-roles (1).png deleted file mode 100644 index 281b1d36a29..00000000000 Binary files a/10/umbraco-workflow/images/approval-groups-roles (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/approval-groups-roles.png b/10/umbraco-workflow/images/approval-groups-roles.png deleted file mode 100644 index 281b1d36a29..00000000000 Binary files a/10/umbraco-workflow/images/approval-groups-roles.png and /dev/null differ diff --git a/10/umbraco-workflow/images/assign-rejected-task (1).png b/10/umbraco-workflow/images/assign-rejected-task (1).png deleted file mode 100644 index 365b4969a4b..00000000000 Binary files a/10/umbraco-workflow/images/assign-rejected-task (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/assign-rejected-task.png b/10/umbraco-workflow/images/assign-rejected-task.png deleted file mode 100644 index 365b4969a4b..00000000000 Binary files a/10/umbraco-workflow/images/assign-rejected-task.png and /dev/null differ diff --git a/10/umbraco-workflow/images/blocked_content (1).png b/10/umbraco-workflow/images/blocked_content (1).png deleted file mode 100644 index 0f23d2b8114..00000000000 Binary files a/10/umbraco-workflow/images/blocked_content (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/blocked_content.png b/10/umbraco-workflow/images/blocked_content.png deleted file mode 100644 index 0f23d2b8114..00000000000 Binary files a/10/umbraco-workflow/images/blocked_content.png and /dev/null differ diff --git a/10/umbraco-workflow/images/content-approval-flow (1).gif b/10/umbraco-workflow/images/content-approval-flow (1).gif deleted file mode 100644 index b2b078cacb3..00000000000 Binary files a/10/umbraco-workflow/images/content-approval-flow (1).gif and /dev/null differ diff --git a/10/umbraco-workflow/images/content-approval-flow.gif b/10/umbraco-workflow/images/content-approval-flow.gif deleted file mode 100644 index b2b078cacb3..00000000000 Binary files a/10/umbraco-workflow/images/content-approval-flow.gif and /dev/null differ diff --git a/10/umbraco-workflow/images/content-item-reviews-select-content.png b/10/umbraco-workflow/images/content-item-reviews-select-content.png deleted file mode 100644 index ee71c255018..00000000000 Binary files a/10/umbraco-workflow/images/content-item-reviews-select-content.png and /dev/null differ diff --git a/10/umbraco-workflow/images/content-item-reviews-settings.png b/10/umbraco-workflow/images/content-item-reviews-settings.png deleted file mode 100644 index 8b68fb47d94..00000000000 Binary files a/10/umbraco-workflow/images/content-item-reviews-settings.png and /dev/null differ diff --git a/10/umbraco-workflow/images/content-item-reviews.png b/10/umbraco-workflow/images/content-item-reviews.png deleted file mode 100644 index 8798f18179e..00000000000 Binary files a/10/umbraco-workflow/images/content-item-reviews.png and /dev/null differ diff --git a/10/umbraco-workflow/images/content-review-date.png b/10/umbraco-workflow/images/content-review-date.png deleted file mode 100644 index f505123b5ac..00000000000 Binary files a/10/umbraco-workflow/images/content-review-date.png and /dev/null differ diff --git a/10/umbraco-workflow/images/content-review-message-banner.png b/10/umbraco-workflow/images/content-review-message-banner.png deleted file mode 100644 index 1d821c4daf8..00000000000 Binary files a/10/umbraco-workflow/images/content-review-message-banner.png and /dev/null differ diff --git a/10/umbraco-workflow/images/content-reviews-filter.png b/10/umbraco-workflow/images/content-reviews-filter.png deleted file mode 100644 index d93d1eaa9e6..00000000000 Binary files a/10/umbraco-workflow/images/content-reviews-filter.png and /dev/null differ diff --git a/10/umbraco-workflow/images/content-reviews-general-settings.png b/10/umbraco-workflow/images/content-reviews-general-settings.png deleted file mode 100644 index 87faf5f72b6..00000000000 Binary files a/10/umbraco-workflow/images/content-reviews-general-settings.png and /dev/null differ diff --git a/10/umbraco-workflow/images/content-reviews-pagesize.png b/10/umbraco-workflow/images/content-reviews-pagesize.png deleted file mode 100644 index ec43eb07fd6..00000000000 Binary files a/10/umbraco-workflow/images/content-reviews-pagesize.png and /dev/null differ diff --git a/10/umbraco-workflow/images/details-overlay.png b/10/umbraco-workflow/images/details-overlay.png deleted file mode 100644 index 8790cad0869..00000000000 Binary files a/10/umbraco-workflow/images/details-overlay.png and /dev/null differ diff --git a/10/umbraco-workflow/images/doc-type-approval-flows (1).png b/10/umbraco-workflow/images/doc-type-approval-flows (1).png deleted file mode 100644 index 0a59ccf94f8..00000000000 Binary files a/10/umbraco-workflow/images/doc-type-approval-flows (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/doc-type-approval-flows.png b/10/umbraco-workflow/images/doc-type-approval-flows.png deleted file mode 100644 index 0a59ccf94f8..00000000000 Binary files a/10/umbraco-workflow/images/doc-type-approval-flows.png and /dev/null differ diff --git a/10/umbraco-workflow/images/document-type-review-settings.png b/10/umbraco-workflow/images/document-type-review-settings.png deleted file mode 100644 index 5a2084b7036..00000000000 Binary files a/10/umbraco-workflow/images/document-type-review-settings.png and /dev/null differ diff --git a/10/umbraco-workflow/images/document-type-reviews-select-content.png b/10/umbraco-workflow/images/document-type-reviews-select-content.png deleted file mode 100644 index 36975ed7058..00000000000 Binary files a/10/umbraco-workflow/images/document-type-reviews-select-content.png and /dev/null differ diff --git a/10/umbraco-workflow/images/document-type-reviews.png b/10/umbraco-workflow/images/document-type-reviews.png deleted file mode 100644 index 08b661d45cc..00000000000 Binary files a/10/umbraco-workflow/images/document-type-reviews.png and /dev/null differ diff --git a/10/umbraco-workflow/images/edit-doc-type-approval-flows (1).png b/10/umbraco-workflow/images/edit-doc-type-approval-flows (1).png deleted file mode 100644 index b5f963fbdba..00000000000 Binary files a/10/umbraco-workflow/images/edit-doc-type-approval-flows (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/edit-doc-type-approval-flows-settings (1).png b/10/umbraco-workflow/images/edit-doc-type-approval-flows-settings (1).png deleted file mode 100644 index 316d451979f..00000000000 Binary files a/10/umbraco-workflow/images/edit-doc-type-approval-flows-settings (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/edit-doc-type-approval-flows-settings.png b/10/umbraco-workflow/images/edit-doc-type-approval-flows-settings.png deleted file mode 100644 index 316d451979f..00000000000 Binary files a/10/umbraco-workflow/images/edit-doc-type-approval-flows-settings.png and /dev/null differ diff --git a/10/umbraco-workflow/images/edit-doc-type-approval-flows.png b/10/umbraco-workflow/images/edit-doc-type-approval-flows.png deleted file mode 100644 index b5f963fbdba..00000000000 Binary files a/10/umbraco-workflow/images/edit-doc-type-approval-flows.png and /dev/null differ diff --git a/10/umbraco-workflow/images/exclude-nodes (1).png b/10/umbraco-workflow/images/exclude-nodes (1).png deleted file mode 100644 index 1b6b3860adf..00000000000 Binary files a/10/umbraco-workflow/images/exclude-nodes (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/exclude-nodes.png b/10/umbraco-workflow/images/exclude-nodes.png deleted file mode 100644 index 1b6b3860adf..00000000000 Binary files a/10/umbraco-workflow/images/exclude-nodes.png and /dev/null differ diff --git a/10/umbraco-workflow/images/general-settings (1).png b/10/umbraco-workflow/images/general-settings (1).png deleted file mode 100644 index e4a6b20446e..00000000000 Binary files a/10/umbraco-workflow/images/general-settings (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/general-settings.png b/10/umbraco-workflow/images/general-settings.png deleted file mode 100644 index e4a6b20446e..00000000000 Binary files a/10/umbraco-workflow/images/general-settings.png and /dev/null differ diff --git a/10/umbraco-workflow/images/history-detail-button.png b/10/umbraco-workflow/images/history-detail-button.png deleted file mode 100644 index 660014094ca..00000000000 Binary files a/10/umbraco-workflow/images/history-detail-button.png and /dev/null differ diff --git a/10/umbraco-workflow/images/history-filter.png b/10/umbraco-workflow/images/history-filter.png deleted file mode 100644 index 4c8805862a8..00000000000 Binary files a/10/umbraco-workflow/images/history-filter.png and /dev/null differ diff --git a/10/umbraco-workflow/images/history-pagesize.png b/10/umbraco-workflow/images/history-pagesize.png deleted file mode 100644 index 8d55160e9f9..00000000000 Binary files a/10/umbraco-workflow/images/history-pagesize.png and /dev/null differ diff --git a/10/umbraco-workflow/images/lic.png b/10/umbraco-workflow/images/lic.png deleted file mode 100644 index ac07a7f0428..00000000000 Binary files a/10/umbraco-workflow/images/lic.png and /dev/null differ diff --git a/10/umbraco-workflow/images/new-node-approval-flow (1).png b/10/umbraco-workflow/images/new-node-approval-flow (1).png deleted file mode 100644 index 035b016f428..00000000000 Binary files a/10/umbraco-workflow/images/new-node-approval-flow (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/new-node-approval-flow.png b/10/umbraco-workflow/images/new-node-approval-flow.png deleted file mode 100644 index 035b016f428..00000000000 Binary files a/10/umbraco-workflow/images/new-node-approval-flow.png and /dev/null differ diff --git a/10/umbraco-workflow/images/select-content-from-tree (1).png b/10/umbraco-workflow/images/select-content-from-tree (1).png deleted file mode 100644 index bce6756e5c6..00000000000 Binary files a/10/umbraco-workflow/images/select-content-from-tree (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/select-content-from-tree.png b/10/umbraco-workflow/images/select-content-from-tree.png deleted file mode 100644 index bce6756e5c6..00000000000 Binary files a/10/umbraco-workflow/images/select-content-from-tree.png and /dev/null differ diff --git a/10/umbraco-workflow/images/workflow-content-app-configuration.png b/10/umbraco-workflow/images/workflow-content-app-configuration.png deleted file mode 100644 index 20f3d9ec942..00000000000 Binary files a/10/umbraco-workflow/images/workflow-content-app-configuration.png and /dev/null differ diff --git a/10/umbraco-workflow/images/workflow-history.png b/10/umbraco-workflow/images/workflow-history.png deleted file mode 100644 index 7dea574e358..00000000000 Binary files a/10/umbraco-workflow/images/workflow-history.png and /dev/null differ diff --git a/10/umbraco-workflow/images/workflow-section (1) (1).png b/10/umbraco-workflow/images/workflow-section (1) (1).png deleted file mode 100644 index 027ed95d85e..00000000000 Binary files a/10/umbraco-workflow/images/workflow-section (1) (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/workflow-section (1).png b/10/umbraco-workflow/images/workflow-section (1).png deleted file mode 100644 index 027ed95d85e..00000000000 Binary files a/10/umbraco-workflow/images/workflow-section (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/workflow-section.png b/10/umbraco-workflow/images/workflow-section.png deleted file mode 100644 index 027ed95d85e..00000000000 Binary files a/10/umbraco-workflow/images/workflow-section.png and /dev/null differ diff --git a/10/umbraco-workflow/images/workflow-settings (1).png b/10/umbraco-workflow/images/workflow-settings (1).png deleted file mode 100644 index 5a9d2fd4107..00000000000 Binary files a/10/umbraco-workflow/images/workflow-settings (1).png and /dev/null differ diff --git a/10/umbraco-workflow/images/workflow-settings.png b/10/umbraco-workflow/images/workflow-settings.png deleted file mode 100644 index 5a9d2fd4107..00000000000 Binary files a/10/umbraco-workflow/images/workflow-settings.png and /dev/null differ diff --git a/10/umbraco-workflow/installation/installing-workflow.md b/10/umbraco-workflow/installation/installing-workflow.md deleted file mode 100644 index d45c5faa0d9..00000000000 --- a/10/umbraco-workflow/installation/installing-workflow.md +++ /dev/null @@ -1,92 +0,0 @@ -# Installation - -In this article, we will cover the steps required to install Umbraco Workflow on your website. - -## Prerequisites - -* [Microsoft Visual Studio](https://visualstudio.microsoft.com/) - -## Umbraco Workflow Installation - -There are different ways to install Umbraco Workflow: - -* [.Net CLI Installation](installing-workflow.md#net-cli-installation) -* [Visual Studio Installation](installing-workflow.md#visual-studio-installation) - -### .Net CLI Installation - -To install the Umbraco Workflow package (Umbraco.Workflow), follow these steps: - -1. Run the following command to add a package reference to your Umbraco project: - - ``` - dotnet add package Umbraco.Workflow --version 10.* - ``` -2. Add `AddWorkflowEmailTemplateProvider()` in the `ConfigureServices` method in the `Startup.cs` file: - - ``` - public void ConfigureServices(IServiceCollection services) => - services.AddUmbraco(_env, _config) - .AddBackOffice() - .AddWorkflowEmailTemplateProvider() - .AddWebsite() - .AddComposers() - .Build(); - ``` - - {% hint style="info" %} - `AddWorkflowEmailTemplateProvider()` must be added before `AddWebsite()`. - {% endhint %} -3. Restart the web application using the following command: - - ``` - dotnet run - ``` - -### Visual Studio Installation - -To install via Visual Studio, follow these steps: - -1. Open your project in Visual Studio. -2. Go to **Tools** -> **NuGet Package Manager** -> **Manage NuGet Packages for Solution...**. -3. Browse for **Umbraco.Workflow**. -4. Select the appropriate version from the Version drop-down depending on the Umbraco version you are using. -5. Click Install. - -
-6. Once the package is installed, open the **.csproj** file to make sure the package reference is added: - - ```xml - - - - ``` -7. Add `AddWorkflowEmailTemplateProvider()` in the `ConfigureServices` method in the `Startup.cs` file: - - ``` - public void ConfigureServices(IServiceCollection services) => - services.AddUmbraco(_env, _config) - .AddBackOffice() - .AddWorkflowEmailTemplateProvider() - .AddWebsite() - .AddComposers() - .Build(); - ``` - -{% hint style="info" %} -``` -`AddWorkflowEmailTemplateProvider()` must be added before `AddWebsite()`. -``` -{% endhint %} - -## Using Umbraco Workflow - -Once the installation is completed, you will see the following in the Umbraco Backoffice: - -### A Workflow Dashboard - -![Workflow dashboard]() - -### A Workflow section - -![Workflow section](images/workflow-section.png) diff --git a/10/umbraco-workflow/installation/licensing.md b/10/umbraco-workflow/installation/licensing.md deleted file mode 100644 index 7a352c4964e..00000000000 --- a/10/umbraco-workflow/installation/licensing.md +++ /dev/null @@ -1,161 +0,0 @@ -# Licensing - -Umbraco Workflow is a licensed product that does not require a purchase. New installations default to a trial license while the paid license is available for purchase. - -## Purchasing an Umbraco Workflow License - -If you want to buy an Umbraco Workflow license, use [the contact form to get in touch](https://umbraco.com/products/add-ons/workflow#order). - -Existing Plumber license holders who wish to upgrade to Umbraco Workflow should contact us using the contact from on the [Workflow product page](https://umbraco.com/products/add-ons/workflow/). - -### Free vs licensed versions - -Umbraco Workflow is available in free and licensed versions. While the licensed version includes all features and no restrictions, the free version has some limitations. - -In the free version, the following features are disabled: - -- Document Type workflow configuration -- Document Type content review configuration -- History cleanup and related configuration -- Approval thresholds and related configuration -- Content comparison -- Exclude nodes -- Offline workflow approvals - -In the free version, a maximum of five approval groups can be created. - -## Installing your license - -Once you have received your license code it needs to be installed on your site. - -1. Open the root directory for your project files. -2. Locate and open the `appSettings.json` file. -3. Add your Umbraco Workflow license key to `Umbraco:Licenses:Umbraco.Workflow`: - -```json -"Umbraco": { - "Licenses": { - "Umbraco.Workflow": "YOUR_LICENSE_KEY" - } -} -``` - -{% hint style="info" %} -You might run into issues when using a period in the product name when using environment variables. Use an underscore in the product name instead, to avoid problems. - -```json -"Umbraco_Workflow": "YOUR_LICENSE_KEY" -``` -{% endhint %} - -### Verify the license installation - -You can verify that your license is successfully installed by logging into your project's backoffice and navigating to the settings section. Here you will see a licenses dashboard which should display the status of your license. - -### When and how to configure an `UmbracoApplicationUrl` - -The website domain used for validating the license is determined from your Umbraco instance. To ensure the correct one is used, you can configure the `UmbracoApplicationUrl`. - -If you are running on a single domain for both your frontend and backend environments, it's not necessary to configure a `UmbracoApplicationUrl`. - -If you have different domains for your frontend and backend, then it's advised that you configure an `UmbracoApplicationUrl` set to your backoffice URL. This helps the licensing engine know which URL should be used for validation checks. Without this configuration setting, the licensing engine will try and work out the domain to validate from the HTTP request object. This can lead to errors when switching between domains. - -An `UmbracoApplicationUrl` can be configured in your `appSettings.json` file like so: - -```json -{ - "Umbraco": { - "CMS": { - "WebRouting": { - "UmbracoApplicationUrl": "https://admin.my-custom-domain.com/" - } - } - } -} -``` - -See the [Fixed Application URL](https://docs.umbraco.com/umbraco-cms/extending/health-check/guides/fixedapplicationurl) documentation for more details about this setting. - -#### Configuring `UmbracoApplicationUrl` on Umbraco Cloud - -If you are hosting on Umbraco Cloud you will find the configuration described above won't be reflected in your environment. The reason for this is that Umbraco Cloud sets this value as an environment variable set to the Cloud project domain (`.umbraco.io`). This overrides what is set via the `appSettings.json` file. - -There are two options in this case: -- Either the domains for each of your Cloud environments can be added to your license. -- Or, for more control and to ensure this value is set correctly for other reasons, you can apply the configuration via code. - -For example, in your `Startup.cs` file, you can add the following to the `ConfigureServices` method: - -```csharp -services.Configure(o => o.UmbracoApplicationUrl = ""); -``` - -In practice, you will probably want to make this a bit more sophisticated. You can read the value from another configuration key, removing the need to hard-code it and have it set as appropriate in different environments. You can also move this code into a composer or an extension method if you prefer not to clutter up the `Startup.ConfigureServices` method. - -### Using a Trial License - -The trial license introduces some restrictions around advanced features but is otherwise a full-featured workflow platform. The paid license is valid for one top-level domain and all its subdomains. - -To impersonate the full license on a local site, set `EnableTestLicense` to `true` in the `appSettings.json` file: - -```json -{ - "Umbraco": { - "Workflow": { - "EnableTestLicense": true - } - } -} -``` - -{% hint style="info" %} -The test license is restricted to sites running in a development environment with a debugger attached. Hit F5 in Visual Studio, in Debug mode to enable the test license. -{% endhint %} - -### Validating a license without an outgoing Internet connection - -Some Umbraco installations will have a highly locked down production environment, with firewall rules that prevent outgoing HTTP requests. This will interfere with the normal process of license validation. - -On start-up, and periodically whilst Umbraco is running, the license component used by Umbraco Workflow will make an HTTP POST request to `https://license-validation.umbraco.com/api/ValidateLicense`. - -If it's possible to do so, the firewall rules should be adjusted to allow this request. - -If such a change is not feasible, there is another approach you can use. - -You will need to have a server, or serverless function, that is running and can make a request to the online license validation service. That needs to run on a daily schedule, making a request and relaying it onto the restricted Umbraco environment. - -To set this up, firstly ensure you have a reference to `Umbraco.Licenses` version 10.1 or higher. If the version of Workflow you are using depends on an earlier version, you can add a direct package reference for `Umbraco.Licenses`. - -Then configure a random string as an authorization key in configuration. This is used as protection to ensure only valid requests are handled. You can also disable the normal regular license checks - as there is no point in these running if they will be blocked: - -```json - "Umbraco": { - "Licenses": { - "Umbraco.Workflow": "" - }, - "LicensesOptions": { - "EnableScheduledValidation": false, - "ValidatedLicenseRelayAuthKey": "" - } -``` - -Your Internet enabled server should make a request of the following form to the online license validation service: - -``` -POST https://license-validation.umbraco.com/api/ValidateLicense -{ - "ProductId": "Umbraco.Workflow", - "LicenseKey": "", - "Domain": "" -} -``` - -The response should be relayed exactly via an HTTP request to your restricted Umbraco environment: - -``` -POST http:///umbraco/licenses/validatedLicense/relay?productId=&licenseKey= -``` - -A header with a key of `X-AUTH-KEY` and value of the authorization key you have configured should be provided. - -This will trigger the same processes that occur when the normal scheduled validation completes ensuring your product is considered licensed. diff --git a/10/umbraco-workflow/legacy-documentation.md b/10/umbraco-workflow/legacy-documentation.md deleted file mode 100644 index cbb56a6a6dc..00000000000 --- a/10/umbraco-workflow/legacy-documentation.md +++ /dev/null @@ -1,7 +0,0 @@ -# Legacy Documentation - -This documentation platform covers only major versions of the Umbraco Workflow since Umbraco 9+. If you are using Umbraco Plumber, you will need to go elsewhere. - -The documentation for Umbraco 7 and 8 lives on [our.umbraco.com](https://our.umbraco.com/documentation/Add-ons/). - -
Umbraco 11 Documentationhttps://github.com/umbraco/UmbracoDocs/tree/umbraco-eol-versions/11/umbraco-deploy
Umbraco 8 Documentationhttps://our.umbraco.com/documentation/Add-ons/Umbraco-Plumber/
diff --git a/10/umbraco-workflow/release-notes.md b/10/umbraco-workflow/release-notes.md deleted file mode 100644 index ceb6c158339..00000000000 --- a/10/umbraco-workflow/release-notes.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -description: >- - Get an overview of the things changed and fixed in each version of Umbraco Workflow. ---- - -# Release notes - -In this section, we have summarized the changes to Umbraco Workflow released in each version. Each version is presented with a link to the [Workflow issue tracker](https://github.com/umbraco/Umbraco.Workflow.Issues/issues) showing a list of issues resolved in the release. We also link to the individual issues themselves from the detail. - -If there are any breaking changes or other issues to be aware of when upgrading they are also noted here. - -{% hint style="info" %} -If you are migrating from Plumber to Umbraco Workflow, see the [Migrate from Plumber to Workflow](./upgrading/migrating-workflow.md) article. -{% endhint %} - -## Release History - -This section contains the release notes for Umbraco Workflow 10 including all changes for this version. - -### [10.4.1](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.4.1) (October 3 2024) -* Ensure scheduling information is displayed in workflow history [#82](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/82) -* Fixes an issue where dates were not correctly localised for scheduled workflows [#81](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/81) -* Fixes an issue where scheduled workflows did not apply the release/expire date if the content node was already scheduled [#81](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/80) -* Ensure converting integers to strings uses the invariant culture to avoid unexpected formatting - -### [10.4.0](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.4.0) (September 12 2024) -* Fixes an issue where an awaited call does not trigger an AngularJS digest, causing the UI to hang. [#73](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/73) -* Fixes an issue where dates were not correctly localised in the Backoffice [#77](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/77) -* Fixes an issue related to sending notification emails in sites with a large number of Workflow groups [#79](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/79) -* **BREAKING CHANGE** resolving [#77](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/77) includes removing the `DateTimeSettings` class. This class allowed setting the preferred format for dates in the Backoffice. These settings were never applied, or were ignored when localising dates. Corresponding settings in app settings should be removed. - -### [10.3.10](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.10) (May 10 2024) - -* Fixes an issue where Content Review notification emails failed to send due to attempting to access UmbracoContext in a hosted service [#57](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/57) - -### [10.3.9] (April 23rd 2024) - -* Fixes an issue where SQL query generation exposed a potential injection vector. This fix was also released as a patch for Plumber v2 and v10. - -### [10.3.8](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.8) (March 13th 2024) - -* Make dashboard, content app, and section registration classes public [#56](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/56) -* Fixes discrepancy between a JSON property attribute value and property name in WorkflowTaskCollectionViewModel, which resulted in unexpected JSON values. - -### [10.3.7](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.7) (February 28th 2024) - -* Fixes issue where invariant workflows on variant content would publish previously published, but currently unpublished, variants [#52](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/52) -* Fixes issue where split-view allowed publishing content without using Workflow [#53](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/53) - -The above fixes introduce an updated UI for requesting workflow approvals. For more information, see the [Submitting Content for Approval](./getting-started/submitting-changes.md) article. - -### [10.3.6](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.6) (January 17th 2024) - -* Fixes bug where workflow submission was not respecting user's language access permissions -* Fixes bug where approval groups were not populated for new nodes using the new-node approval workflow [#51](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/51) - -### [10.3.5](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.5) (December 20th 2023) - -* Updates internal license validation to handle licenses registered with 'UmbracoWorkflow' or 'Umbraco.Workflow' - -### [10.3.4](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.4) (December 14th 2023) - -* Introduces lazy constructor parameters to prevent database access when Workflow is installed as part of a new Umbraco install - -### [10.3.3](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.3) (November 28th 2023) - -* Update to use package migrations to avoid startup exception when Workflow is installed as part of a new Umbraco installation [#48](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/48) -* Fixed issue with scheduled workflows on invariant content [#49](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/49) - -### [10.3.2](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.2) (October 24th 2023) - -* Adds Italian translations -* Fixes bug where chart data series were generated for 24-hour timespans rather than from the start of the day [#45](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/45) -* Fixes bug where dates in the scheduling block were not offset according to the user's timezone [#47](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/47) - -### [10.3.1](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.1) (September 26th 2023) - -* Fixes bug where inherited members were not always populated in the associated approval group [#39](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/39) -* Corrects conditions for displaying alert banner in Workflow settings to ensure licensed settings are excluded from hidden or readonly calculations -* Fixes bug where new nodes were not requiring workflow approval due to inherited permissions not being applied -* Fixes bug where 'Lock active content' and 'Allow administrator edits' settings were not correctly applied -* Removes embedded licensing, replaced with Umbraco.Licenses - -### [10.3.0](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.3.0) (September 5th 2023) - -* Fixes bug where setting content review period to zero didn't exclude content from review [#28](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/28) -* Improves configuration options and handling for content reviews [#31](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/31) -* Fixes bug where variant workflows were not correctly scheduled [#42](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/42) -* Fixes bug when Swedish culture broke to differing unicode symbols when representing negative numbers [#44](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/44) -* Adds external reviewer option for content reviews -* Adds ability to schedule a publish workflow for both release and expire [#43](https://github.com/umbraco/Umbraco.Workflow.Issues/discussions/43) -* UX improvements for initiating workflows -* Removes 'Applies to' option from node-level workflow configuration as it was superceded by the equivalent global setting -* Aligns embedded licensing UI with Umbraco.Licenses -* BREAKING CHANGE: `ContentReviewReminderEmailer.SendReviewReminders.reviews` parameter changes from `Dictionary>` to `Dictionary>`, which in turn changes the type of the `SentEntities` property in `WorkflowContentReviewsEmailNotificationsSendingNotification` and `WorkflowContentReviewsEmailNotificationsSentNotification`. `UserGroupPoco` implements `IWorkflowGroup`, but contains properties not present on the interface. These can be accessed by casting to the implemented type. - -### [10.2.3](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.2.3) (August 1st 2023) - -* Adds Dutch localization [#23](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/23) -* Additional localization cleanup and improvements -* Updates migration to avoid constraint errors [#35](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/35) - -### [10.2.2](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.2.2) (June 29th 2023) - -* Fixes filtering workflows initiated by the current user when FlowType is Exclude [#25](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/25) -* Ensures Document Type configuration for Content Reviews displays the license overlay on non-licensed installs [#24](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/24) -* Adds configuration option to allow administrators to edit content in an active workflow, regardless of content lock settings [#18](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/18) -* Fixes possible divide-by-zero error in chart generation -* Ensure workflow activity chart only shows stats box when stats exist - -### [10.2.1](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.2.1) (May 23rd 2023) - -* Ensure all Document Type properties are available when configuring conditional workflow stages -* Ensure license prompt is displayed only when install is unlicensed -* Fixes bug where default approval threshold wasn't set correctly when adding new workflow stages -* Fixes bug where querying published nodes for content reviews resulted in an ambiguous column name in the generated query [#17](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/17) -* Fixes bug where users were not persisted as approval group members if they were assigned as part of group creation - -### [10.2.0](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.2.0) (May 9th 2023) - -* **FEATURE** => Introduces [approval thresholds](workflow-section/approval-groups.md). - -### [10.1.2](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.1.2) (April 18th 2023) - -* **FEATURE** => Introduces optional configuration for manadatory comments -* **FEATURE** => Modifies content lock to allow edits until first workflow action is completed -* Ensure notifications inheriting from ObjectNotification have a public Target property [#13](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/13) -* Improve UI notification when publish fails on workflow completion -* Improve logged messages when publish fails on workflow completion -* Renames `/App_Plugins/Backoffice` to `/App_Plugins/backoffice` for Linux filepath resolution [#14](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/14) -* Ensure canEdit flag is set correctly when Workflow application state changes -* Ensure cancelled workflows are never marked as actioned by admin when cancelled by the original change requestor, regardless of their admin status - -### [10.1.1](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.1.1) (March 8th 2023) - -* Fixes bug in workflow detail overlay [#12](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/12) - -### [10.1.0](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.1.01) (March 7th 2023) - -* **FEATURE** => History cleanup and retention policies -* Fixes tree collision issue when multiple trees share class names [#11](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/11) -* Ensure version number is included in package manifest -* Improve UI/UX in submit workflow component -* Ensure notification emails are sent when a task is rejected [#9](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/9) -* Remove `async void` signatures -* Extends valid local license environment names -* Ensure signalR hub is not re-initialised once running - -## Legacy release notes - -You can find the release notes for versions out of support in the [Legacy documentation on GitHub](https://github.com/umbraco/UmbracoDocs/blob/umbraco-eol-versions/11/umbraco-workflow/release-notes.md) diff --git a/10/umbraco-workflow/upgrading/migrating-workflow.md b/10/umbraco-workflow/upgrading/migrating-workflow.md deleted file mode 100644 index 4716f344e7b..00000000000 --- a/10/umbraco-workflow/upgrading/migrating-workflow.md +++ /dev/null @@ -1,33 +0,0 @@ -# Migrate from Plumber to Workflow - -Umbraco Workflow is backwards compatible with Plumber data. However, with a new default namespace constituting a major breaking change any existing customization or extension needs to be updated. - -To migrate from an Umbraco installation with an existing Plumber installation to Umbraco Workflow, follow these steps: - -{% tabs %} -{% tab title="Site running on SQL Server database" %} -1. Uninstall Plumber and remove the `/App_Plugins/Plumber` folder. -2. Upgrade your project to Umbraco 10. -3. Install Umbraco Workflow 10. See the [Installing Umbraco Workflow](../installation/installing-workflow.md) article. -4. Build the application. - -{% hint style="info" %} -SQL is the preferred database provider for production websites. -{% endhint %} -{% endtab %} - -{% tab title="Site running on SQLite database" %} -1. Uninstall Plumber and remove the `/App_Plugins/Plumber` folder. -2. Upgrade your project to Umbraco 10. -3. Make a copy of the `Value` column from the `WorkflowSettings` table. -4. Delete the `WorkflowSettings` table. -5. Update `WorkflowTaskInstance` table to allow null values in the GroupId column. -6. Install Umbraco Workflow 10. See the [Installing Umbraco Workflow](../installation/installing-workflow.md) article. -7. Build the application. -8. Update the `WorkflowSettings` table to restore the previous data to the `Value` column. -{% endtab %} -{% endtabs %} - -{% hint style="info" %} -All your existing workflow data and settings are not affected and will be available on your upgraded site. -{% endhint %} diff --git a/10/umbraco-workflow/upgrading/upgrading.md b/10/umbraco-workflow/upgrading/upgrading.md deleted file mode 100644 index 880ec9470f1..00000000000 --- a/10/umbraco-workflow/upgrading/upgrading.md +++ /dev/null @@ -1,36 +0,0 @@ -# Upgrading - -This article shows how to manually upgrade Umbraco Workflow to run the latest version. Umbraco Workflow displays a prompt in the **Workflow** section when a new version is available. - -{% hint style="info" %} -If you are migrating from Plumber to Umbraco Workflow, see the [Migrate from Plumber to Workflow](migrating-workflow.md) article. -{% endhint %} - -## Get the latest version of Umbraco Workflow - -To get the latest version of Umbraco Workflow, you can upgrade using either of the two options: - -* [NuGet](#nuget) -* [Visual Studio](#visual-studio) - -### NuGet - -* NuGet installs the latest version of the package when you use the `dotnet add package Umbraco.Workflow` command unless you specify a package version: - - `dotnet add package Umbraco.Workflow --version ` -* Run `dotnet restore` to install the package. - -### Visual Studio - -* Go to `Tools` -> `NuGet Package Manager` -> `Manage NuGet Packages for Solution...` in Visual Studio, to upgrade Umbraco Workflow: -* Select **Umbraco.Workflow**. -* Select the latest version from the **Version** drop-down and click **Install**. - -

NuGet Package Manager

-* Open the **.csproj** file to make sure the package reference is updated: - - ```xml - - - - ``` diff --git a/10/umbraco-workflow/workflow-section/active-workflows.md b/10/umbraco-workflow/workflow-section/active-workflows.md deleted file mode 100644 index f7ea29852ec..00000000000 --- a/10/umbraco-workflow/workflow-section/active-workflows.md +++ /dev/null @@ -1,22 +0,0 @@ -# Active Workflows - -The Active Workflows view in the **Workflow** section provides an administrator view of the active Workflows. It displays a table containing the following details: - -* Page name/Node with the Language variant. -* Type of Publish. -* Date the workflow was requested on. -* Comment describing the changes. - -![Active Workflows](../images/active-workflows-section.png) - -You can also **Filter** the records based on the Node, Requested by, Created date, Completed date, Page Language, Workflow Type, and Workflow Status. - -![Workflow history Filters](../images/history-filter.png) - -Additionally, you can adjust the total number of records displayed on a page. - -![Workflow history PageSize](../images/history-pagesize.png) - -The **Detail** button at the end of the record displays an overlay with content similar to the [Active workflow](../getting-started/workflow-content-app.md#active-workflow) sub-section. - -![Details overlay](../images/active-workflow-detail-overlay.png) diff --git a/10/umbraco-workflow/workflow-section/approval-groups.md b/10/umbraco-workflow/workflow-section/approval-groups.md deleted file mode 100644 index 40b064a7db3..00000000000 --- a/10/umbraco-workflow/workflow-section/approval-groups.md +++ /dev/null @@ -1,109 +0,0 @@ -# Approval Groups - -The **Approval groups** view in the **Workflow** section lists the active groups name, group members, their permissions, and a quick link to email the group. - -![Approval groups](../images/Approval-groups.png) - -To add an approval group, follow these steps: - -1. Go to the **Workflow** section. -2. Click on **Approval groups**. -3. Click **Create Group**. -4. Enter a **Name** for the Approval Group. For example: Danish Editors. -5. Enter a **Description** to remind you why the group exists. -6. Enter the group's **Email** address in the Settings section to which the notifications will be sent. -7. Select the **Language** from the drop-down list. -8. [**Enable offline approval**](approval-groups.md#enable-offline-approval) to allow users in this group to approve changes without logging in to the backoffice. -9. Click **Save Group**. - -
Create Approval Group

Create Approval Groups

- -{% hint style="info" %} -You can create a total of 5 groups on unlicensed installations. The paid license removes this restriction. -{% endhint %} - -You can search for a specific group using the Search bar. Select a group from the list to edit its Settings, Roles, Members, and view the group's History. - -## Approval Groups Settings - -The **Settings** tab consists of the following fields: - -* **Group Email:** Workflow notifications are sent to a generic inbox (a group's email address) rather than the individual group members. -* **Language:** Select a language variant for the email. -* [**Enable Offline approval**](approval-groups.md#enable-offline-approval)**:** Allow the users of this group to approve changes without logging in to the Backoffice. For more information, see the [Enable Offline approval](approval-groups.md#enable-offline-approval) section. This feature requires a paid license. - -![Approval group Settings](../images/Approval-group-settings.png) - -### Enable Offline Approval - -You can optionally provide Groups permission to action workflow tasks without logging in to Umbraco. This feature requires a paid license. By enabling Offline Approval, all email notifications sent to the group members will include a personalized link to a preview page. - -The preview page exposes the current saved page with the options to approve or reject the change. It is not possible to edit the content from the offline approval view. - -This feature is useful where the approval group membership is a single user who does not use Umbraco. For example, a manager may want to approve media releases before publishing but does not otherwise need access to Umbraco. - -Offline approval requires a user to exist in the Backoffice and be assigned to a workflow group. They do not need to know how to use Umbraco or even know their login credentials. - -## Roles - -The **Roles** tab provides an overview of the current workflow roles for the Group: - -* **Node-based approvals**: This workflow applies only to the specified node. -* **Document-type approvals**: This workflow applies to all the nodes of a given Document Type. - -You can set these **Roles** in the Workflow **Settings** section. For more information, see the [Workflow Settings](workflow-settings.md) article. - -![Approval group Roles](../images/approval-groups-role.png) - -## Members - -The **Members** tab manages the membership for the given user group. Add members to approval groups to determine which member will be responsible for approving content changes. Group Members can be explicitly added to the group or can inherit group membership from an existing Umbraco group. Ideally, group members are set explicitly to ensure changes made to Umbraco groups do not cause unexpected changes to workflow permissions. - -![Approval group Members](../images/approval-group-members.png) - -To add a Group member, follow these steps: - -1. Go to the **Workflow** section. -2. Click on **Approval groups**. -3. Select a group from the list to edit its Members. -4. Go to the **Members** tab. -5. Click **Add** in the **Group members** section. -6. Select the **Users** you want to add to the approval group. - - ![Add group Members](../images/add-group-member.png) -7. Click **Save Group**. - -To remove a Group member, click **Remove**. - -To inherit an existing Umbraco group membership, follow these steps: - -1. Go to the **Workflow** section. -2. Click on **Approval groups**. -3. Select a group from the list to edit its Members. -4. Go to the **Members** tab. -5. Click **Add** in the **Inherited group membership** section. -6. Select the **User groups** you want to add to the approval group. - - ![Inherited group membership](../images/Inherited-group-membership.png) -7. Click **Save Group**. - -To remove a Group membership, click **Remove**. - -## History - -The History tab provides an overview of the workflow activity for the current group. It displays a table containing the following details: - -* Page name with the Language variant -* Type of workflow roles (Node-based approvals or Document type approvals) -* Workflow requested by -* Date the workflow was requested on -* Comment describing the changes -* Status of the workflow - -![Approval group history](../images/approval-group-history.png) - -You can also **Filter** the records based on the Node, Requested by, Created date, Completed date, Page Language, Workflow Type, and Workflow Status. Additionally, you can adjust the total number of records displayed on a page. - -The **Detail** button at the end of the record displays an overlay with content similar to the [Active workflow](../getting-started/workflow-content-app.md#active-workflow) sub-section. - -![Details overlay](../images/details-overlay.png) diff --git a/10/umbraco-workflow/workflow-section/content-reviews.md b/10/umbraco-workflow/workflow-section/content-reviews.md deleted file mode 100644 index 1b4232638ee..00000000000 --- a/10/umbraco-workflow/workflow-section/content-reviews.md +++ /dev/null @@ -1,142 +0,0 @@ -# Content Reviews - -Content reviews is a tool that allows content editors to keep their content up-to-date. **Content reviews** adds a new dashboard to the **Workflow** section. By default, Content reviews are disabled and can be enabled from **Content reviews Settings** in the **Workflow** section. - -![Enable Content Reviews](../images/Enable-content-reviews.png) - -## Content Reviews Dashboard - -The Content reviews Dashboard provides an overview of the expired content. The dashboard displays a table containing the following details: - -* Page name/Node with the Language variant -* Next review due date -* Last reviewed date -* Review period in days -* Review group - -![Content Reviews Dashboard](../images/Content-review-dashboard.png) - -Selecting a content node takes you to the content node in the **Content** section where you can see the Content review banner. The Content review banner is displayed only when the node has passed its review date. Also, the review banner is displayed only to users assigned as reviewers for the node. For more information, see the [Content Reviews Permissions](content-reviews.md#content-review-permissions) section - -![Content Review Message Banner](../images/content-review-message-banner.png) - -Clicking on **Mark as reviewed** allows the review group member to mark the content as reviewed. Optionally, the review group member can also set the next review date on the content node. The next review date must fall inside the review period set in the **Content Reviews Settings**. - -![Content Review Date](../images/content-review-date.png) - -You can also **Filter** the Dashboard records based on the Node, Group Email, Next review due date, Last reviewed date, and Expired review Status. - -![Content Reviews Filters](../images/content-reviews-filter.png) - -Additionally, you can adjust the total number of records displayed on a page. - -![Content Reviews PageSize](../images/content-reviews-pagesize.png) - -## Content Reviews Settings - -The Content reviews Settings tab provides a range of settings for configuring email notifications, review period days, reminder days, and so on. Using Content reviews, all content has a default review period. - -### General Settings - -You can configure the **General** Settings from the **Workflow** section in the **Content reviews** menu. The following settings are available: - -![General settings](../images/content-reviews-general-settings.png) - -* **Enable content reviews** - Enable this setting if you wish to remind users to review their content. By default, this option is disabled. -* **Send notifications** - Enable this setting to send email notification to approval groups when content requires review. -* **Treat saving as a review?** - Enable this setting to reset the review date when content is saved. Saving a content node recalculates the review date, using the review period assigned to the content node, its Document Type, or the default Review period value. If disabled, content must be explicitly reviewed via the review banner displayed on the content item. -* **Review period (days)** - The default number of days between content reviews. -* **Reminder threshold (days)** - Determines how many days prior to the review date the Workflow should notify editors of required reviews. By default, the number of days is set to 1. - -### Content Review Permissions - -You can configure which review group reviews which content nodes or Document Types. The group responsible for reviewing content is derived from the workflow configuration. This means a site with workflow already configured can leverage that permissions model for assigning content review responsibilities. By default, content reviews are assigned to the approval group in the first workflow approval stage. - -Content review permissions can be set at the node or Document Type level, both of which take precedence over any existing Workflow permissions. - -![Content review permissions](../images/Content-review-permissions.png) - -The current permissions for a content node are displayed in the **Workflow** content app on the **Configuration** tab. - -![Workflow Content App - Configuration tab](../images/workflow-content-app-configuration.png) - -### Content Item and Document Type Reviews - -You can configure content reviews for individual content nodes or for all nodes of a given Document Type. For both Content Item and Document Type Reviews, the following Settings are available: - -* **Exclude from review** - Enable this setting to ignore the specific content node (or all content nodes of this Document Type) when determining nodes to review. -* **Review period (days)** - The review period in days between required reviews. -* **Review group** - The group responsible for reviewing the content node. Can contain more than one group. - -{% hint style="info" %} -When reviews are enabled or any changes to content review settings are saved, Workflow determines the review status. It assesses all the content needing review and provides this data in the Content reviews Dashboard. For large sites, or on the first run, this may take a few seconds to complete. -{% endhint %} - -#### Content Item Reviews - -To add a content item review, follow these steps: - -1. Go to the **Workflow** section. -2. Go to the **Settings** tab in the **Content reviews** menu. -3. Click **Add** in the **Content item reviews** section. - -

Content Item Reviews

-4. Select **Content node** to add to the Content item reviews section. - -

Select Content Node

-5. Select the **Language** from the drop-down in the **Add Content item review settings** pane. -6. [Optional] Enable **Exclude from Review** if you wish to exclude this content node from content review. If you enable this setting, skip to step 11. -7. Enter the **Review period** in days. -8. Click **Add** to add the **Review Group**. -9. Select an **approval group**. -10. Click Submit. - -

Edit Content Item Review Settings

-11. Click Submit. -12. Click **Save Settings**. - -To Edit a content item review, click **Edit** and update the settings as per your requirement. - -To remove a content item review, click **Remove**. - -#### Document Type Reviews - -To add a Document Type review, follow these steps: - -1. Go to the **Workflow** section. -2. Go to the **Settings** tab in the **Content reviews** menu. -3. Click **Add** in the **Document-type reviews** section. - -

Document Type reviews

-4. Select **Content type** to add to the Document-type reviews section. - -

Select Content Type

-5. Select the **Language** from the drop-down in the **Add Document-type review settings** pane. -6. [Optional] Enable **Exclude from Review** if you wish to exclude this Document-type from content review. If you enable this setting, skip to step 11. -7. Enter the **Review period** in days. -8. Click **Add** to add the **Review Group**. -9. Select an **approval group**. -10. Click Submit. - -

Add Document Type Review Settings

-11. Click Submit. -12. Click **Save Settings**. - -To Edit a Document-type review, click **Edit** and update the settings as per your requirement. - -To remove a Document-type review, click **Remove**. - -## Content Review Notifications - -Content review notifications use the email template available at `~/Views/Partials/WorkflowEmails/ContentReviews.cshtml`, which can be customized as required. For example to add a corporate branding or send customized messages. - -To add templates for other languages: - -1. Go to the `~/Views/Partials/WorkflowEmails/` folder. -2. Copy the required template and paste it into the same folder. -3. Append the culture code to the file name prefixed with an underscore. - -For example: - -* **Default approval request template:** `~/Views/Partials/WorkflowEmails/ContentReviews.cshtml` -* **Danish approval request template:** `~/Views/Partials/WorkflowEmails/ContentReviews_da-DK.cshtml` diff --git a/10/umbraco-workflow/workflow-section/workflow-history.md b/10/umbraco-workflow/workflow-section/workflow-history.md deleted file mode 100644 index 04cc59dd396..00000000000 --- a/10/umbraco-workflow/workflow-section/workflow-history.md +++ /dev/null @@ -1,26 +0,0 @@ -# Workflow History - -The Umbraco Workflow History provides a chronological audit trail of workflow activity for all the nodes. - -It displays a table containing the following details: - -* Page name/Node with the Language variant. -* Type of Publish. -* Editor/Original author requesting the workflow. -* Date the workflow was requested on. -* Comment describing the changes. -* Status of the workflow. - -![Workflow history](../images/workflow-history.png) - -You can also **Filter** the records based on the Node, Requested by, Created date, Completed date, Page Language, Workflow Type, and Workflow Status. - -![Workflow history Filters](../images/history-filter.png) - -Additionally, you can adjust the total number of records displayed on a page. - -![Workflow history PageSize](../images/history-pagesize.png) - -The **Detail** button at the end of the record displays an overlay with content similar to the [Active workflow](../getting-started/workflow-content-app.md#active-workflow) sub-section. - -![Details overlay](../images/history-detail-button.png) diff --git a/10/umbraco-workflow/workflow-section/workflow-section-dashboard.md b/10/umbraco-workflow/workflow-section/workflow-section-dashboard.md deleted file mode 100644 index 43c6ebd5314..00000000000 --- a/10/umbraco-workflow/workflow-section/workflow-section-dashboard.md +++ /dev/null @@ -1,5 +0,0 @@ -# Workflow Section Dashboard - -The Workflow section provides an administrator view Workflow Dashboard. It displays a chart of recent workflow activity, chart of content review activity, licensing details, and any relevant upgrade-related messages. You can also view the workflow and content review activity chart for the specified range of days. - -![Workflow section](../images/workflow-section.png) diff --git a/10/umbraco-workflow/workflow-section/workflow-settings.md b/10/umbraco-workflow/workflow-section/workflow-settings.md deleted file mode 100644 index 68a1d1343a1..00000000000 --- a/10/umbraco-workflow/workflow-section/workflow-settings.md +++ /dev/null @@ -1,237 +0,0 @@ -# Workflow Settings - -When working with Umbraco Workflow, you can handle the workflow settings directly in the Backoffice from the **Workflow** section. You can configure the following from the Workflow Settings section: - -* [General settings](workflow-settings.md#general-settings) - * [New node approval flow](workflow-settings.md#new-node-approval-flow) - * [Document Type approval flows](workflow-settings.md#document-type-approval-flows) - * [Exclude nodes](workflow-settings.md#exclude-nodes) -* [Notification Settings](workflow-settings.md#notifications-settings) - * [Email templates](workflow-settings.md#email-templates) - -![Workflow settings](<../images/workflow-settings (1).png>) - -## General Settings - -You can configure the **General** Settings from the **Workflow** section in the **Settings** menu. The following settings are available: - -![General settings](<../images/general-settings (1).png>) - -* **Flow type** - Determines the approval flow progress. These options manage how the Change Author is included in the workflow: - * **Explicit** - All steps of the workflow must be completed and all users will be notified of tasks (including the Change Author). - * **Implicit** - All steps where the original Change Author is _not_ a member of the group must be completed. Steps where the original Change Author is a member of the approving group will be completed automatically and noted in the workflow history as not required. - * **Exclude** - Similar to Explicit. All steps must be completed but the original Change Author is not included in the notifications or shown in the dashboard tasks. -* **Approval threshold** - Sets the global approval threshold to One, Most or All: - * **One** - Pending task requires approval from any member of the assigned approval group. This is the default behavior for all installations (trial and licensed). - * **Most** - Pending task requires an absolute majority of group members. For example, a group with three members requires two approvals and a group with four members requires three approvals. - * **All** - Pending task requires approval from all group members. -* **Rejection resets approvals** - When true, and the approval threshold is Most or All, rejecting a task resets the previous approvals for the workflow stage. -* **Allow configuring approval threshold** - Enables setting the approval threshold for any stage of a workflow (on a content node or Document Type). -* **Lock active content** - Determines how the content in a workflow should be managed. Set to `true` or `false` depending on whether the approval group responsible for the active workflow step should make modifications to the content. Content is locked after the first approval in the workflow - until then, the content can be edited as normal. -* **Mandatory comments** - Set to true to require comments when approving workflows. Comments are always required when submitting changes for approval, and are always optional for admin users. -* **Allow attachments** - Provide an attachment (such as a supporting document or enable referencing a media item) when initiating a workflow. This feature is useful when a workflow requires supporting documentation. -* **Allow scheduling** - Provides an option to select a scheduled date when initiating a workflow. -* **Use workflow for unpublish** - Determines if unpublish actions require workflow approval. -* **Extend permissions** - Determines if Umbraco Workflow should extend or replace the users' save and publish permissions. The default behavior is to replace the users' permissions. - -### New node approval flow - -All new nodes use this workflow for initial publishing. You can add, edit, or remove an approval group to/from the workflow. - -To add an approval group to the workflow: - -1. Go to the **Workflow** section. -2. Go to the **General** tab in the **Settings** menu. -3. Click **Add** in the **New node approval flow** section. - -

New Node Approval Flow

-4. Select an **approval group** to add to the workflow. - -

Add Workflow Approval Groups

-5. Click **Submit**. -6. Click **Save Settings**. - -When you click on the **Edit** approval group, you are presented with different configuration options for that group. For more information on the approval group settings, see the [Settings](approval-groups.md#approval-groups-settings) section in the [Approval Groups](approval-groups.md) article. - -To remove an approval group, click **Remove**. - -### Document type approval flows - -Configure default workflows that should be applied to all content nodes of the selected Document Type. This feature requires a license. - -To add a Document type approval flow: - -1. Go to the **Workflow** section. -2. Go to the **General** tab in the **Settings** menu. -3. Click **Add** in the **Document type approval flows** section. - -

Document Type Approval Flows

-4. Select a **Document type** from the drop-down list. - -

Add Document Type Approval Flows

-5. Select a **Language** from the drop-down list. -6. **Add workflow approval groups** in the **Current flow** process. -7. Click **Add condition** to add a condition to the workflow process. - -

Configure Document Type Approval Flow Settings

-8. Click **Submit**. -9. Click **Save Settings**. - -To edit a Document type approval flow: - -1. Go to the **Workflow** section. -2. Go to the **General** tab in the **Settings** menu. -3. Click **Edit** next to the content node in the **Document type approval flows** section. - -

Edit Document Type Approval Flow

-4. Select a **Language** from the drop-down list. -5. **Add**, **Edit**, or **Remove** approval groups from the current workflow. -6. Click **Add condition** to add a condition to the workflow process. - -

Configure Document Type Approval Flow

-7. Click **Submit**. -8. Click **Save Settings**. - -### Exclude nodes - -Nodes and their descendants selected here are excluded from the workflow process and will be published as per the configured Umbraco user permissions. This feature requires a license. - -To exclude a node from the workflow process: - -1. Go to the **Workflow** section. -2. Go to the **General** tab in the **Settings** menu. -3. Click **Add** in the **Exclude nodes** section. - -

Exclude Nodes

-4. Select the **Content node** from the Content tree. - -

Select Content Node

-5. Click **Submit**. -6. Click **Save Settings**. - -## Notifications Settings - -Umbraco Workflow uses Notifications to allow you to configure email notifications for all workflow activities for the backoffice. - -From the **Settings** view in the **Workflow** section, the **Notifications** tab provides access to the following: - -* **Send notifications:** If you wish to send email notifications to approval groups, you can enable it here. If your users are active in the backoffice, email notifications might not be required. -* **Workflow email:** Provide a sender address for email notifications. This is a mandatory field. -* **Reminder delay (days):** Set a delay in days for sending reminder emails for outstanding workflow processes. Set to 0 to disable reminder emails. -* **Edit site URL:** The URL for the editing environment (including schema - http\[s]). This is a mandatory field. -* **Site URL:** The URL for the public website (including schema - http\[s]). This is a mandatory field. -* [**Email templates**](workflow-settings.md#email-templates)**:** Configure which users receive emails for which workflow actions and modify the templates for those emails. - - ![Notifications tab in the Workflow Section](../images/Notifications-tab.png) - -## Notifications Overview - -Notification emails use HTML templates which render information from the `HtmlEmailModel` type which lives in the `Umbraco.Workflow.Core.Models.Email` namespace. While it is possible to modify the email templates from the backoffice, we recommend making changes via an Integrated Development Environment (IDE) of your choice. - -The `HtmlEmailModel` contains the following fields: - -| Fields | Data Type | Description | -| ------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| WorkflowType | WorkflowType | An `enum` value containing either 1 or 2 for Publish and Unpublish respectively. | -| ScheduledDate | DateTime | If a scheduled date exists for the workflow, it is found here. | -| Summary | IHtmlString | A pre-generated representation of the current workflow state. | -| CurrentTask | WorkflowTaskViewModel | The view model data for the current workflow task. Contains a lot of useful data, best explored via Intellisense. | -| Instance | WorkflowInstanceViewModel | The view model data for the current workflow. Best explored via Intellisense. | - -The `HtmlEmailBase` contains the following fields: - -| Fields | Data Type | Description | -| ------------ | -------------- | ---------------------------------------------------------------------------------------------------- | -| SiteUrl | string | The public URL of your site. | -| NodeName | string | The name of the node from the current workflow. | -| Type | string | The workflow type including the scheduled date (if exists). | -| EmailType | EmailType | An `enum` value representing the current email type that relates directly to the workflow task type. | -| To | EmailUserModel | The model defining the receiver of the email. | -| Email | string | The user's email address or a group address (if a group email is being sent). | -| Name | Name | The user's name. | -| Language | string | The user's language. | -| Id | int | The user's ID or group ID (when sending to a group email address). | -| IsGroupEmail | bool | Is the email being sent to a generic group email address? | - -Umbraco Workflow provides **Settings** for determining who receives emails at which stages of a workflow. While these are set to default values during installation, it is recommended to update your Notifications Settings to better suit your installation needs. Emails can be sent to: - -* **All**: All the participants in all workflow stages (previous and current). -* **Admin**: The admin user. -* **Author**: The user who initiated the workflow. -* **Group**: All members of the group assigned to the current task. - -{% hint style="info" %} -Duplicate users are removed from email notifications. -{% endhint %} - -By default, all emails are sent to the **Group**. This might not always be an ideal situation. For example: cancelled workflows would be best sent to the **Author** only, likewise with rejected. - -It might be useful to notify **All** the participants of completed workflows but even this may be excessive. Depending on your website, you can adjust the best configuration. - -## Reminders Overview - -Umbraco Workflow uses a reminder email system to prompt editors to complete the pending workflows. Reminders are sent using Umbraco's internal task scheduler, every 24 hours after an initial delay. For example, setting the **Reminder delay (days)** value to 2 in the Workflow **Settings** section will allow pending workflows to sit for 2 days. After that reminder emails will be sent every 24 hours to all members of the group assigned to the pending workflow task. - -The emails use a similar model to the notification emails, also inheriting from `HtmlEmailBase`. In addition to the inherited fields, `HtmlReminderEmailModel` includes: - -| Fields | Data Type | Description | -| ------------ | --------- | --------------------------------------------------------------------- | -| OverdueTasks | IList | A list containing all the overdue tasks assigned to the current user. | -| TaskCount | int | The count of overdue tasks assigned to the current user. | - -## Email Templates - -All email templates are fully localized where translations exist. You can edit the email templates in the Backoffice or in your IDE. By default, Umbraco Workflow's email templates are available in the default language. - -## Creating an Email Template - -If you wish to have one or more email templates for different languages, you will need to place all the email templates into the `~/Views/Partials/WorkflowEmails/` folder. - -To add templates for other languages: - -1. Go to the `~/Views/Partials/WorkflowEmails/` folder. -2. Copy the required template and paste it into the same folder. -3. Append the culture code to the file name prefixed with an underscore. - -For example: - -* **Default approval request template:** `~/Views/Partials/WorkflowEmails/ApprovalRequest.cshtml` -* **Danish approval request template:** `~/Views/Partials/WorkflowEmails/ApprovalRequest_da-DK.cshtml` - -## Sample Email Template - -Below is an example of the `ApprovalRequest.cshtml` email template from the `~/Views/Partials/WorkflowEmails/` folder: - -```csharp -@model Umbraco.Workflow.Core.Models.Email.HtmlEmailModel - -// Refer to the documentation for Email templates for a full rundown on the available fields -// or (better option), edit the template in Visual Studio where Intellisense will save you - - - - - - - Workflow: Approval request - - - - - -
-

Hello @Model.To.Name,

-

Please review the following page for @Model.Type.ToLower() approval:

- -
- - -```