mirror of
https://github.com/wekan/wekan.git
synced 2026-11-07 11:02:33 -05:00
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>
6 lines
382 B
JavaScript
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';
|