feat: add show_filters_icon property to Link for controlling Web UI filter icon display

This commit adds a new  property to the Link class, allowing users to control whether filter icons are displayed in the Web UI at the individual link level.

**Changes:**
- Added  attribute to Link class (default: True)
- Added  property getter
- Added  method for updating the property
- Updated  to include the new field with backward compatibility
- Added  field to LinkBase schema using Optional[bool] = Field(True, ...) pattern
- Updated API routes to handle the new field in create and update operations
- Added loading logic for show_filters_icon in project.open() to preserve settings when reopening projects

**Schema Definition:**
Uses the same pattern as the  field:

**API Impact:**
- POST /v3/projects/{project_id}/links - accepts  in request body
- PUT /v3/projects/{project_id}/links/{link_id} - can update
- GET /v3/projects/{project_id}/links/{link_id} - returns  field

**Future Applications:**
This feature provides granular control for future AI fault injection modules to manage link-level protocol failures while maintaining clean UI presentation.
This commit is contained in:
YueGuobin committed 2026-05-23 16:57:39 +08:00
1 parent 367c565d7c
commit a1f4942746
3 files changed
+8 -3

No files matched your search

+2 -2
View File
@@ -574,7 +574,7 @@ class Link:
"filters": self._filters,
"link_style": self._link_style,
"suspend": self._suspended,
"show_filters_icon": self._show_filters_icon,
"show_filters_icon": getattr(self, '_show_filters_icon', True),
}
return {
"nodes": res,
@@ -589,5 +589,5 @@ class Link:
"suspend": self._suspended,
"link_style": self._link_style,
"wireshark": self._wireshark,
"show_filters_icon": self._show_filters_icon,
"show_filters_icon": getattr(self, '_show_filters_icon', True),
}