Add tag feature and refactor UI components#149
Conversation
✅ WordPress Plugin Check Report
📊 ReportAll checks passed! No errors or warnings found. 🤖 Generated by WordPress Plugin Check Action • Learn more about Plugin Check |
There was a problem hiding this comment.
Code Review
This pull request introduces a tagging system for integrations, allowing users to categorize, filter, and bulk-manage their workflows. The changes include a new backend controller and AJAX routes for tag persistence, alongside significant frontend updates to the table component and integrations page for a more robust management experience. A medium severity issue was identified in the IntegrationTagController where the save method lacks input validation, which could result in accidental data loss.
There was a problem hiding this comment.
Pull request overview
This PR adds integration tag management (backend AJAX endpoints + frontend tag UI) and refactors the shared table UI to modernize bulk actions, column visibility controls, and icon usage.
Changes:
- Backend: introduce
IntegrationTagControllerand register new AJAX routes to get/save integration tag data. - Frontend: add tag filtering/assignment UX to the Integrations list, including tag modals and per-row/bulk tag assignment.
- Frontend: refactor the
Table/Menucomponents (bulk actions dropdown, column visibility menu, search placeholder support, updated icons/styles).
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/src/resource/sass/app.scss | Adds styling for tag UI/modals and updates table/checkbox styling. |
| frontend/src/pages/AllIntegrations.jsx | Implements tag CRUD/filtering/assignment flows and wires bulk tag assignment into the table. |
| frontend/src/components/Utilities/TableCheckBox.jsx | Updates checkbox SVG structure (circle + check/indeterminate glyphs). |
| frontend/src/components/Utilities/Table.jsx | Refactors top controls layout, adds bulk actions dropdown, adds search placeholder support, updates column visibility menu UI. |
| frontend/src/components/Utilities/MenuBtn.jsx | Updates row action menu button UI to use a custom dots icon and new class names. |
| frontend/src/components/Utilities/Menu.jsx | Refactors reusable menu behavior and styling/tooltip options. |
| backend/Routes/ajax.php | Registers AJAX routes for integration tag get/save. |
| backend/controller/IntegrationTagController.php | Adds controller to permission-check, normalize, and persist integration tag data. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This pull request introduces backend and frontend changes to support integration tag management and significantly improves the table UI in the frontend. The backend adds a new controller and routes for managing integration tags, while the frontend enhances the table component with a modernized bulk actions menu, improved column visibility controls, and custom icons for a better user experience.
Backend: Integration Tag Management
IntegrationTagControllerwithgetandsavemethods for retrieving and updating integration tags, including permission checks and data normalization.ajax.php.Frontend: Table UI Enhancements
Tablecomponent to use a dropdown with custom icons, supporting bulk tag assignment, delete, status change, and duplication, with improved state handling for menu visibility. [1] [2] [3] [4]Scrollbarslibrary for a simpler, more consistent UI. [1] [2]VerticalDotsIcn,HorizontalDotsIcn,TagAssignIcn) for use in menus and actions, improving visual clarity and accessibility. [1] [2]Other UI Improvements
Menucomponent for better tooltip, style, and event handling, making it more reusable and robust. [1] [2]These changes lay the groundwork for integration tag features and provide a more intuitive and maintainable table interface for users and developers.