-
Notifications
You must be signed in to change notification settings - Fork 232
Description
🧭 Epic
Title: Persistent Admin UI Filter State
Goal: Improve admin interface usability by preserving user's filter preferences across tool operations
Why now: Users frequently need to activate multiple inactive tools but the current UI resets filters after each operation, creating friction and repetitive clicking. This is especially problematic when bulk-managing tools.
🧭 Type of Feature
Please select the most appropriate category:
- Enhancement to existing functionality
🙋♂️ User Story 1
As a: Gateway administrator
I want: The "Show Inactive" filter state to persist when I activate/deactivate tools
So that: I don't have to repeatedly toggle the filter when managing multiple inactive tools
✅ Acceptance Criteria
Scenario: Filter state persists during tool activation
Given I am on the tools admin page
And I have set the filter to "Show Inactive"
And there are inactive tools visible
When I activate a tool
Then the filter should remain set to "Show Inactive"
And I should still see other inactive tools in the list
Scenario: Filter state persists during tool deactivation
Given I am on the tools admin page
And I have set the filter to "Show Active"
And there are active tools visible
When I deactivate a tool
Then the filter should remain set to "Show Active"
And I should still see other active tools in the list
Scenario: Filter state persists across page refreshes
Given I have set a specific filter preference
When I refresh the page
Then my filter preference should be restored
🙋♂️ User Story 2
As a: Gateway administrator doing bulk tool management
I want: All my filter and sorting preferences to be remembered
So that: I can efficiently manage large numbers of tools without losing my context
✅ Acceptance Criteria
Scenario: Bulk activation workflow
Given I have 20 inactive tools to activate
And I set the filter to "Show Inactive"
When I activate each tool one by one
Then the filter should remain "Show Inactive" throughout the process
And the list should update to show remaining inactive tools
And I should not need to manually reset the filter between activations
📐 Design Sketch (optional)
sequenceDiagram
participant User
participant AdminUI
participant LocalStorage
participant ToolService
User->>AdminUI: Set filter to "Show Inactive"
AdminUI->>LocalStorage: Save filter preference
User->>AdminUI: Activate tool
AdminUI->>ToolService: POST /tools/{id}/activate
ToolService-->>AdminUI: Success response
AdminUI->>LocalStorage: Retrieve saved filter preference
AdminUI->>AdminUI: Apply saved filter (Show Inactive)
AdminUI->>User: Display updated list with filter preserved
🔗 MCP Standards Check
- Change adheres to current MCP specifications
- No breaking changes to existing MCP-compliant integrations
- If deviations exist, please describe them below:
🔄 Alternatives Considered
Session-based storage: Store preferences server-side in user session
Pros: Persists across devices for same session
Cons: More complex, requires user session management
URL-based state: Store filter state in URL parameters
Pros: Shareable, bookmarkable
Cons: Clutters URL, might not be desired for admin interface
No persistence: Keep current behavior
Pros: Simple, stateless
Cons: Poor UX for bulk operations (current problem)
Recommended: Browser localStorage for simplicity and immediate user benefit.
📓 Additional Context
This issue becomes particularly painful when:
- Setting up a new gateway with many inactive tools
- Troubleshooting by activating/deactivating specific tool sets