-
Notifications
You must be signed in to change notification settings - Fork 711
fix: pipeline UI revamp #8676
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: pipeline UI revamp #8676
Conversation
dc2955e to
759064a
Compare
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Greptile Overview
Summary
This PR enhances the pipeline UI with significant visual and functional improvements. The revamp includes:
Key Changes:
- Enhanced Node Styling: New color schemes, hover effects, and improved typography for better visual hierarchy
- Interactive Node Actions: Hover-to-show delete buttons with tooltips and edge color highlighting
- Keyboard Edge Deletion: Replaced click-to-delete with keyboard shortcuts (Delete/Backspace) for better UX
- Function Definition Display: New component showing function code in AssociateFunction dialog
- Visual Polish: Updated icons, improved spacing, better dark mode support, and enhanced tooltips
- Condition Truncation: Implements 30-character limit for condition display as per requirements
Technical Implementation:
- Clean separation of concerns with dedicated Vue components
- Proper event handling and state management through composables
- Responsive design with dark/light theme support
- Good use of Vue 3 Composition API patterns
Minor Issues:
- Console.log statements left in development code (should be removed)
- Otherwise solid implementation following Vue.js best practices
Confidence Score: 4/5
- This PR is safe to merge with only minor cleanup needed for console statements
- Score reflects high-quality UI improvements with comprehensive functionality, proper Vue.js patterns, and good responsive design. Only minor style issues with debug statements prevent a perfect score
- PipelineFlow.vue and PipelineEditor.vue need console.log statements removed before production deployment
Important Files Changed
File Analysis
| Filename | Score | Overview |
|---|---|---|
| web/src/components/pipeline/PipelineEditor.vue | 4/5 | Major UI revamp with new styling, keyboard edge deletion, and JSON editor integration - no critical issues found |
| web/src/components/pipeline/NodeForm/AssociateFunction.vue | 4/5 | Function association dialog with new function definition display - minor styling improvements |
| web/src/plugins/pipelines/CustomNode.vue | 4/5 | Enhanced node component with hover effects, action buttons, and edge color updates - well-implemented |
| web/src/plugins/pipelines/PipelineFlow.vue | 4/5 | Main pipeline flow with keyboard edge deletion and notification system - solid functionality |
Sequence Diagram
sequenceDiagram
participant User
participant NodeSidebar
participant PipelineFlow
participant CustomNode
participant NodeDialog
participant PipelineEditor
Note over User, PipelineEditor: Pipeline UI Revamp - Node Management Flow
User->>NodeSidebar: Drag node from sidebar
NodeSidebar->>PipelineFlow: onDragStart with node data
User->>PipelineFlow: Drop node on canvas
PipelineFlow->>PipelineFlow: onDrop - create new node
PipelineFlow->>CustomNode: Render node with new styling
User->>CustomNode: Hover over node
CustomNode->>CustomNode: Show action buttons & highlight edges
CustomNode->>PipelineFlow: Update connected edge colors
User->>CustomNode: Click on node to edit
CustomNode->>PipelineEditor: editNode(id)
PipelineEditor->>NodeDialog: Open appropriate dialog
alt Function Node
NodeDialog->>NodeDialog: Show function selection with definition
else Stream Node
NodeDialog->>NodeDialog: Show stream configuration
else Condition Node
NodeDialog->>NodeDialog: Show condition builder
end
User->>NodeDialog: Configure node settings
NodeDialog->>PipelineEditor: Save node data
PipelineEditor->>PipelineFlow: Update pipeline state
User->>PipelineFlow: Click edge
PipelineFlow->>PipelineFlow: Show delete notification
User->>PipelineFlow: Press Delete/Backspace key
PipelineFlow->>PipelineFlow: Remove selected edge
User->>CustomNode: Hover over delete button
CustomNode->>CustomNode: Show delete tooltip
User->>CustomNode: Click delete button
CustomNode->>PipelineEditor: Delete node confirmation
PipelineEditor->>PipelineFlow: Remove node from canvas
User->>PipelineEditor: Click Save button
PipelineEditor->>PipelineEditor: Validate pipeline structure
PipelineEditor->>PipelineEditor: Save pipeline to backend
8 files reviewed, 3 comments
| console.log('Edge click event triggered') | ||
| // Clear any existing timeout | ||
| if (notificationTimeout) { | ||
| clearTimeout(notificationTimeout) | ||
| notificationTimeout = null | ||
| } | ||
| // Always show notification on edge click (even if already visible) | ||
| console.log('Showing notification for edge click') | ||
| showEdgeHelpNotification.value = true | ||
| console.log('Notification state set to:', showEdgeHelpNotification.value) | ||
| // Auto-hide notification after 3.5 seconds | ||
| notificationTimeout = setTimeout(() => { | ||
| console.log('Auto-hiding notification') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
style: Remove debug console.log statements before production deployment
| console.log('Edge click event triggered') | |
| // Clear any existing timeout | |
| if (notificationTimeout) { | |
| clearTimeout(notificationTimeout) | |
| notificationTimeout = null | |
| } | |
| // Always show notification on edge click (even if already visible) | |
| console.log('Showing notification for edge click') | |
| showEdgeHelpNotification.value = true | |
| console.log('Notification state set to:', showEdgeHelpNotification.value) | |
| // Auto-hide notification after 3.5 seconds | |
| notificationTimeout = setTimeout(() => { | |
| console.log('Auto-hiding notification') | |
| const onEdgeClick = (event) => { | |
| // Clear any existing timeout | |
| if (notificationTimeout) { | |
| clearTimeout(notificationTimeout) | |
| notificationTimeout = null | |
| } | |
| // Always show notification on edge click (even if already visible) | |
| showEdgeHelpNotification.value = true | |
| // Auto-hide notification after 3.5 seconds | |
| notificationTimeout = setTimeout(() => { | |
| showEdgeHelpNotification.value = false | |
| notificationTimeout = null | |
| }, 3500) | |
| } |
Prompt To Fix With AI
This is a comment left during a code review.
Path: web/src/plugins/pipelines/PipelineFlow.vue
Line: 153:168
Comment:
style: Remove debug console.log statements before production deployment
```suggestion
const onEdgeClick = (event) => {
// Clear any existing timeout
if (notificationTimeout) {
clearTimeout(notificationTimeout)
notificationTimeout = null
}
// Always show notification on edge click (even if already visible)
showEdgeHelpNotification.value = true
// Auto-hide notification after 3.5 seconds
notificationTimeout = setTimeout(() => {
showEdgeHelpNotification.value = false
notificationTimeout = null
}, 3500)
}
```
How can I resolve this? If you propose a fix, please make it concise.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes sure I will remove that
fae40fc to
d4db0d0
Compare
8d18e9b to
fce7c05
Compare
User description
This PR enhances the pipelines UI
PR Type
Enhancement
Description
Revamped pipeline node sidebar UI
Added inline function definition viewer
Improved node/edge interactions and deletion UX
Updated icons, styles, and dark mode
Diagram Walkthrough
File Walkthrough
8 files
Show selected function definition and RAF/RBF noteRedesign draggable nodes with custom tooltipsVisual updates, new icons, and keyboard edge deleteUpdate assets and scoped styles for nodesRemove on-edge delete button; style and cleanupHover actions, handle styling, labels truncation, UX polishRemove edge button UI; keep keyboard deletionEdge click help notification and event handling