Skip to content

fix(workflow): support the Vue 3 workflow engine of Nextcloud 36 - #176

Open
YvesCesar wants to merge 2 commits into
mainfrom
fix/workflow-engine-vue3
Open

YvesCesar wants to merge 2 commits into
mainfrom
fix/workflow-engine-vue3

Conversation

@YvesCesar

@YvesCesar YvesCesar commented Oct 3, 2026 •

Copy link
Copy Markdown
Member

Related: #130, #175

Nextcloud server master (future 36) migrated workflowengine to Vue 3 with CSS modules and a Pinia store (nextcloud/server, 2026-09-30). This broke three things here:

  • The default trigger of new profile field flows was applied through #workflowengine.__vue__.$store (Vuex) and a click listener on .actions__item.colored. Neither exists anymore, so new flows silently kept the first entity/event (file) instead of "Profile field value updated".
  • The card theme located cards through .actions__item, .icon and colored. On NC 36 the engine applies invert(100%) to operation icons on light backgrounds, which turns the dark core icons used by this app white on the light green card.
  • The Playwright workflow tests relied on .actions__item.colored, .section.rule and .comparator, which are now hashed CSS module classes. This is why Playwright fails on main, independent of chore: add Nextcloud 36 support #175.

Changes

  • New src/utils/workflowEngineStore.ts adapts both stores: Vuex (__vue__.$store, NC 32-35) and Pinia (__vue_app__ → $pinia, NC 36). The default trigger is now applied to the rule that was just created (addRule mutation / createNewRule action) instead of on a DOM click, and only when that rule belongs to a profile field operation, so drafts keep the trigger chosen by the admin when another flow is added.
  • The card theme finds the cards through the operation heading and marks card, description and icon with its own classes, so it works with both engines.
  • Unit tests for both adapters and for the default trigger logic.
  • Playwright: new check that the flow card icon is masked with the text color, and the workflow spec uses selectors that work with both engines (heading + "Add new flow" button, combobox names of old and new engine, rule root class of old and new engine).

The custom element protocol (update:model-value, valid, invalid, detail: [value]) and the OCA.WorkflowEngine.registerCheck/registerOperator API are unchanged, so the check and operation editors need no change.

Signed-off-by: YvesCesar <yvesamorim73@gmail.com>
@YvesCesar YvesCesar self-assigned this Oct 3, 2026
Signed-off-by: YvesCesar <yvesamorim73@gmail.com>
@YvesCesar
YvesCesar requested a review from vitormattos October 3, 2026 15:06

@vitormattos vitormattos left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solve first the follow comment:

#175 (review)

and merge the PR 175

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants