diff --git a/gns3server/api/routes/controller/links.py b/gns3server/api/routes/controller/links.py index 6afa6f7cc..ce9caf450 100644 --- a/gns3server/api/routes/controller/links.py +++ b/gns3server/api/routes/controller/links.py @@ -107,6 +107,8 @@ async def create_link(project_id: UUID, link_data: schemas.LinkCreate) -> schema await link.update_link_style(link_data["link_style"]) if "suspend" in link_data: await link.update_suspend(link_data["suspend"]) + if "show_filters_icon" in link_data: + await link.update_show_filters_icon(link_data["show_filters_icon"]) try: for node in link_data["nodes"]: await link.add_node( @@ -171,6 +173,8 @@ async def update_link(link_data: schemas.LinkUpdate, link: Link = Depends(dep_li await link.update_link_style(link_data["link_style"]) if "suspend" in link_data: await link.update_suspend(link_data["suspend"]) + if "show_filters_icon" in link_data: + await link.update_show_filters_icon(link_data["show_filters_icon"]) if "nodes" in link_data: await link.update_nodes(link_data["nodes"]) return link.asdict() diff --git a/gns3server/controller/link.py b/gns3server/controller/link.py index ecd74b045..8ba8bc410 100644 --- a/gns3server/controller/link.py +++ b/gns3server/controller/link.py @@ -89,6 +89,7 @@ class Link: self._filters = {} self._link_style = {} self._wireshark = False + self._show_filters_icon = True @property def filters(self): @@ -97,6 +98,13 @@ class Link: """ return self._filters + @property + def show_filters_icon(self): + """ + Get whether to show filters icon in Web UI + """ + return self._show_filters_icon + @property def project(self): """ @@ -167,6 +175,17 @@ class Link: self._project.emit_notification("link.updated", self.asdict()) self._project.dump() + async def update_show_filters_icon(self, value): + """ + Update the show_filters_icon property. + + :param value: Boolean indicating whether to show filters icon in Web UI + """ + if value != self._show_filters_icon: + self._show_filters_icon = value + self._project.emit_notification("link.updated", self.asdict()) + self._project.dump() + async def update_link_style(self, link_style): if link_style != self._link_style: self._link_style = link_style @@ -555,6 +574,7 @@ class Link: "filters": self._filters, "link_style": self._link_style, "suspend": self._suspended, + "show_filters_icon": self._show_filters_icon, } return { "nodes": res, @@ -569,4 +589,5 @@ class Link: "suspend": self._suspended, "link_style": self._link_style, "wireshark": self._wireshark, + "show_filters_icon": self._show_filters_icon, } diff --git a/gns3server/schemas/controller/links.py b/gns3server/schemas/controller/links.py index 258696ea3..211d60f23 100644 --- a/gns3server/schemas/controller/links.py +++ b/gns3server/schemas/controller/links.py @@ -62,6 +62,7 @@ class LinkBase(BaseModel): suspend: Optional[bool] = None link_style: Optional[LinkStyle] = None filters: Optional[dict] = None + show_filters_icon: Optional[bool] = None class LinkCreate(LinkBase):