Skip to content

Fix drag, drop, and side panel bugs in the production schedule - #2178

Merged
NicoPennec merged 11 commits into
cgwire:mainfrom
NicoPennec:main
Aug 7, 2026
Merged

Fix drag, drop, and side panel bugs in the production schedule#2178
NicoPennec merged 11 commits into
cgwire:mainfrom
NicoPennec:main

Conversation

@NicoPennec

Copy link
Copy Markdown
Member

Problem

  • Dragging an episode bar over another row of the all-episodes planning throws on every mouse move and freezes the drag.
  • Dragging a multi-assignee task across several person rows unassigns an untouched co-assignee and keeps the intermediate row assigned.
  • Drops from the assignment panel land on the wrong date: week cells are counted as days, and the cursor offset is hardcoded.
  • Saving a schedule item without an end date shifts its start date by one day at every save.
  • Closing the task side panel takes two clicks, and the task keeps a selection whose resize handles swallow the next click.
  • A watcher observes a height prop that was removed from the widget.
  • The unassign handler can splice the wrong bar on a lookup miss, and the drill-down error fallback resets people to the wrong type.
  • Versioned tasks created from the assignment flow lose their ID, so the next edit posts a duplicate.
  • The task panel hides out-of-department assignees, and saving silently unassigns them.
  • Picking a task type hidden by the entity filter expands a row that the schedule does not show.

Solution

  • Disable the row reassignment on the all-episodes planning and guard checkUserIsAllowed against non-person rows.
  • Track the person row each dragged bar last hopped to and unassign that one; skip items already on the target row.
  • Resolve the hovered column like the position bar does, from the wrapper rect and the day/week columns.
  • Clone the start date before computing the fallback end date, on create and update.
  • The close and cancel buttons close in one click and clear the schedule selection (resetSelection is now exposed).
  • Drop the dead watcher.
  • Guard the splice with an index check and reset people to an object.
  • Report the created ID on the versioned task after the POST.
  • Keep persons already assigned to the edited task listed, whatever their department.
  • Clear the entity filter when the selected task type is not visible.

@NicoPennec
NicoPennec merged commit 5fb3edb into cgwire:main Aug 7, 2026
5 checks passed
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