Skip to content

feat: allow editing the "Created by" user on a task#154

Merged
parth0025 merged 1 commit into
stagingfrom
feature/editable-task-created-by
May 15, 2026
Merged

feat: allow editing the "Created by" user on a task#154
parth0025 merged 1 commit into
stagingfrom
feature/editable-task-created-by

Conversation

@parth0025
Copy link
Copy Markdown
Collaborator

The task sidebar Details panel previously showed Created by (the Task_Leader field) as a read-only user — set once at creation and never changeable. Add an inline picker mirroring the existing Assignee field so the creator can be reassigned.

Changes:

  • Backend: new updateTaskLeader action on task_class_Mongo. Validates the new Task_Leader, writes via $set, emits the same socketEmitter.emit('update', { module: 'task', updatedFields }) used by updateAssignee, and logs a TaskLeader_Changed history entry via HandleHistory. Includes the isUpdateTask:false side-effects-only branch for parity with updateStatus / updatePriority.
  • Frontend store (TaskOperations): new updateTaskLeader action that optimistically commits the new Task_Leader into the projectData Vuex store, then PATCHes /api/v2/tasks with action 'updateTaskLeader'.
  • TaskDetailRightSide.vue: replaced the read-only Created-by block with an Assignee picker (single-select) for users holding the task.task_assignee + task.task_list permissions, preserving the original read-only display as the fallback for users without those permissions. Wired @selected to a new updateTaskLeader() handler with the same toast / error pattern as updateAssignee.
  • i18n: added Toast.Created_by_updated_successfully and Toast.Created_by_not_updated to the English locale. The other 10 locales fall back to English via vue-i18n until translators backfill — flagged as a follow-up.

Permission policy: reuses task.task_assignee. Anyone allowed to change the Assignee can also change Created by. No new permission key, no role-permission migration. Backend has no per-field gate, consistent with the existing Assignee / Status / Priority update paths which all trust the frontend permission gate.

Pull Request Template Chooser

Please click the link that matches your contribution type to load the correct format.

Note: Clicking a link will reload this page and clear any text you've already typed here.

  • Bug Fix
    Use this for fixing broken logic or UI glitches.

  • New Feature
    Use this for adding new functionality or components.

  • Refactor
    Use this for code cleanup, performance tweaks, or technical debt.


General Summary

If you don't want to use a specific template, please provide a brief summary of your changes below.

The task sidebar Details panel previously showed Created by (the
Task_Leader field) as a read-only user — set once at creation and
never changeable. Add an inline picker mirroring the existing
Assignee field so the creator can be reassigned.

Changes:
- Backend: new updateTaskLeader action on task_class_Mongo. Validates
  the new Task_Leader, writes via $set, emits the same
  socketEmitter.emit('update', { module: 'task', updatedFields }) used
  by updateAssignee, and logs a TaskLeader_Changed history entry via
  HandleHistory. Includes the isUpdateTask:false side-effects-only
  branch for parity with updateStatus / updatePriority.
- Frontend store (TaskOperations): new updateTaskLeader action that
  optimistically commits the new Task_Leader into the projectData
  Vuex store, then PATCHes /api/v2/tasks with action 'updateTaskLeader'.
- TaskDetailRightSide.vue: replaced the read-only Created-by block
  with an Assignee picker (single-select) for users holding the
  task.task_assignee + task.task_list permissions, preserving the
  original read-only display as the fallback for users without those
  permissions. Wired @selected to a new updateTaskLeader() handler
  with the same toast / error pattern as updateAssignee.
- i18n: added Toast.Created_by_updated_successfully and
  Toast.Created_by_not_updated to the English locale. The other 10
  locales fall back to English via vue-i18n until translators
  backfill — flagged as a follow-up.

Permission policy: reuses task.task_assignee. Anyone allowed to
change the Assignee can also change Created by. No new permission
key, no role-permission migration. Backend has no per-field gate,
consistent with the existing Assignee / Status / Priority update
paths which all trust the frontend permission gate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@parth0025 parth0025 self-assigned this May 15, 2026
@parth0025 parth0025 merged commit 4c47976 into staging May 15, 2026
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.

1 participant