Skip to content

Conversation

@takenory
Copy link
Collaborator

@takenory takenory commented Oct 2, 2025

This pull request introduces a new feature to support manual ordering of issue cards in the Issues Panel plugin for Redmine. It adds a new database table to track card positions, updates the UI to allow toggling manual ordering, and modifies backend logic to handle ordering and sorting of issue cards. The changes also include relevant migration instructions and localization updates.

poc_for_issue_card_manual_ordering

Details

Manual Ordering Feature

  • Added a new model IssueCardPosition and corresponding migration to store the position of each issue card, along with logic to update positions efficiently when cards are reordered. [1] [2]
  • Updated IssueCard and backend logic to handle reordering, including a new reorderd attribute and transaction logic for saving reordered cards. [1] [2]
  • Patched the Issue and IssueQuery models to associate issue cards with their positions and to support sorting by manual order when enabled. [1] [2] [3] [4]

User Interface Enhancements

  • Added a checkbox to the query form for enabling manual ordering, with dynamic UI logic to show/hide sorting options based on the checkbox state. [1] [2]
  • Updated JavaScript to support drag-and-drop sorting of issue cards when manual ordering is enabled, and fallback to previous behavior otherwise. [1] [2] [3] [4] [5]

Documentation and Localization

  • Updated the README with migration instructions for installing and uninstalling the new table. [1] [2]
  • Added new localization strings for manual ordering and card position in both English and Japanese. [1] [2]

Other Backend and Test Updates

  • Ensured issue queries use the new ordering logic and updated tests to verify the new sortable behavior. [1] [2]

These changes collectively enable users to manually order issue cards in the panel, persist their positions, and toggle between manual and automatic sorting as needed.

Checklist

  • All plugin test cases passed successfully
  • Verified the feature works correctly in Chrome, Firefox, and Safari

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