Files
wekan/server/lib/subtaskHelpers.js
Lauri OjansivuandClaude Opus 4.8 4b27313c72 Fix #3868, #5788, #2256, #4782, #4037, #3562, #3328: subtask creation
Subtask creation is now server-authoritative via a new addSubtaskCard Meteor
method: the default subtasks board/list/swimlane are resolved (and lazily created
exactly once) on the server, and client-side auto-creation in
getDefaultSubtasksBoardId/getDefaultSubtasksListId is guarded to Meteor.isServer.
This stops the client from creating duplicate subtasks boards/swimlanes/columns
(#3868/#5788/#2256) and lets multiple subtasks be created reliably (#4782). The
method applies the destination board's automatic custom fields to the new
subtask (#4037/#3562). The circular-parent guard now compares ids by value
(includes()) instead of array indices, and setParentId refuses a cyclic
re-parent (#3328). Pure helpers (wouldCreateCycle, subtaskCustomFields) moved to
isomorphic /imports/lib so the client bundle no longer imports a server module.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 19:54:54 +03:00

6 lines
382 B
JavaScript

// Re-export the isomorphic subtask helpers so existing server-side imports and
// the unit test path (server/lib/subtaskHelpers) keep working. The real
// implementation lives in /imports/lib/subtaskHelpers so it can be imported by
// both client and server code (models/cards.js is isomorphic).
export { wouldCreateCycle, subtaskCustomFields } from '/imports/lib/subtaskHelpers';