Beispiel #1
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="groups",
                 title=self.title(),
                 topics=[
                     PageMenuTopic(
                         title=_("Add"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Add group"),
                                 icon_name="new",
                                 item=make_simple_link(
                                     watolib.folder_preserving_link([
                                         ("mode",
                                          "edit_%s_group" % self.type_name)
                                     ])),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                     PageMenuTopic(
                         title=_("Assign to group"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Rules"),
                                 icon_name="rulesets",
                                 item=make_simple_link(self._rules_url()),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
             PageMenuDropdown(
                 name="related",
                 title=_("Related"),
                 topics=[
                     PageMenuTopic(
                         title=_("Setup"),
                         entries=list(self._page_menu_entries_related()),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
         inpage_search=PageMenuSearch(),
     )
Beispiel #2
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        if not self._folder.is_disk_folder():
            return self._search_folder_page_menu(breadcrumb)

        menu = PageMenu(
            dropdowns=[
                PageMenuDropdown(
                    name="hosts",
                    title=_("Hosts"),
                    topics=[
                        PageMenuTopic(
                            title=_("In this folder"),
                            entries=list(self._page_menu_entries_hosts_in_folder()),
                        ),
                        PageMenuTopic(
                            title=_("On selected hosts"),
                            entries=list(self._page_menu_entries_selected_hosts()),
                        ),
                        make_checkbox_selection_topic("wato-folder-/%s" % self._folder.path(),
                                                      is_enabled=bool(self._folder.has_hosts())),
                    ],
                ),
                PageMenuDropdown(
                    name="folders",
                    title=_("Folder"),
                    topics=[
                        PageMenuTopic(
                            title=_("Folder"),
                            entries=list(self._page_menu_entries_this_folder()),
                        ),
                    ],
                ),
                PageMenuDropdown(
                    name="related",
                    title=_("Related"),
                    topics=[
                        PageMenuTopic(
                            title=_("Setup"),
                            entries=list(self._page_menu_entries_related()),
                        ),
                    ],
                ),
            ],
            breadcrumb=breadcrumb,
            inpage_search=PageMenuSearch(),
        )

        self._extend_display_dropdown(menu)
        self._extend_help_dropdown(menu)

        return menu
Beispiel #3
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        if not self._may_edit_config():
            return PageMenu(dropdowns=[], breadcrumb=breadcrumb)

        return PageMenu(
            dropdowns=[
                PageMenuDropdown(
                    name="keys",
                    title=_("Keys"),
                    topics=[
                        PageMenuTopic(
                            title=_("Add key"),
                            entries=[
                                PageMenuEntry(
                                    title=_("Add key"),
                                    icon_name="new",
                                    item=make_simple_link(
                                        makeuri_contextless(request, [("mode", self.edit_mode)])
                                    ),
                                    is_shortcut=True,
                                    is_suggested=True,
                                ),
                                PageMenuEntry(
                                    title=_("Upload key"),
                                    icon_name="upload",
                                    item=make_simple_link(
                                        makeuri_contextless(request, [("mode", self.upload_mode)])
                                    ),
                                    is_shortcut=True,
                                    is_suggested=True,
                                ),
                            ],
                        ),
                    ],
                ),
            ],
            breadcrumb=breadcrumb,
        )
Beispiel #4
0
    def _extend_display_dropdown(self, menu: PageMenu) -> None:
        display_dropdown = menu.get_dropdown_by_name("display", make_display_options_dropdown())
        display_dropdown.topics.insert(
            0, PageMenuTopic(
                title=_("Details"),
                entries=list(self._page_menu_entries_details()),
            ))

        display_dropdown.topics.insert(
            0,
            PageMenuTopic(
                title=_("Below this folder"),
                entries=list(self._page_menu_entries_search()),
            ))
Beispiel #5
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="tags",
                 title=_("Tags"),
                 topics=[
                     PageMenuTopic(
                         title=_("Add tags"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Add tag group"),
                                 icon_name="new",
                                 item=make_simple_link(
                                     watolib.folder_preserving_link([("mode", "edit_tag")])),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                             PageMenuEntry(
                                 title=_("Add aux tag"),
                                 icon_name={
                                     "icon": "tag",
                                     "emblem": "add"
                                 },
                                 item=make_simple_link(
                                     watolib.folder_preserving_link([("mode", "edit_auxtag")])),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                     PageMenuTopic(
                         title=_("Analyze"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Tag usage"),
                                 icon_name={
                                     "icon": "tag",
                                     "emblem": "search",
                                 },
                                 item=make_simple_link(
                                     watolib.folder_preserving_link([("mode", "tag_usage")])),
                             ),
                         ],
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
Beispiel #6
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="actions",
                 title=_("Test"),
                 topics=[
                     PageMenuTopic(
                         title=_("Host properties"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Save & go to host properties"),
                                 icon_name="save",
                                 item=make_form_submit_link(
                                     "diag_host", "_save"),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                     PageMenuTopic(
                         title=_("Options"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Run tests"),
                                 icon_name="connection_tests",
                                 item=make_form_submit_link(
                                     "diag_host", "_try"),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
             PageMenuDropdown(
                 name="hosts",
                 title=_("Hosts"),
                 topics=[
                     PageMenuTopic(
                         title=_("For this host"),
                         entries=list(
                             page_menu_host_entries(self.name(),
                                                    self._host)),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
Beispiel #7
0
    def _extend_display_dropdown(self, menu: PageMenu) -> None:
        display_dropdown = menu.get_dropdown_by_name("display", make_display_options_dropdown())
        display_dropdown.topics.insert(
            0, PageMenuTopic(
                title=_("Details"),
                entries=list(self._page_menu_entries_details()),
            ))

        display_dropdown.topics.insert(
            0,
            PageMenuTopic(
                title=_("Filter settings"),
                entries=list(self._page_menu_entries_filter()),
            ))
Beispiel #8
0
 def _extend_display_dropdown(self, menu: PageMenu) -> None:
     display_dropdown = menu.get_dropdown_by_name("display", make_display_options_dropdown())
     display_dropdown.topics.insert(
         0,
         PageMenuTopic(
             title=_("Search for check plugins"),
             entries=[
                 PageMenuEntry(
                     title="",
                     icon_name="trans",
                     item=PageMenuSearch(target_mode="check_plugin_search"),
                 ),
             ],
         ))
Beispiel #9
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="related",
                 title=_("Related"),
                 topics=[
                     PageMenuTopic(
                         title=_("Setup"),
                         entries=list(self._page_menu_entries_related()),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
Beispiel #10
0
def _add_snapins_page_menu(breadcrumb: Breadcrumb) -> PageMenu:
    return PageMenu(
        dropdowns=[
            PageMenuDropdown(
                name="related",
                title=_("Related"),
                topics=[
                    PageMenuTopic(
                        title=_("Configure"),
                        entries=list(CustomSnapins.page_menu_entry_list()),
                    ),
                ],
            ),
        ],
        breadcrumb=breadcrumb,
    )
Beispiel #11
0
def _page_menu_werk(breadcrumb: Breadcrumb, werk: Dict[str, Any]):
    return PageMenu(
        dropdowns=[
            PageMenuDropdown(
                name="Werk",
                title="Werk",
                topics=[
                    PageMenuTopic(
                        title=_("Incompatible werk"),
                        entries=list(_page_menu_entries_ack_werk(werk)),
                    ),
                ],
            ),
        ],
        breadcrumb=breadcrumb,
    )
Beispiel #12
0
    def _extend_display_dropdown(self, menu: PageMenu) -> None:
        display_dropdown = menu.get_dropdown_by_name(
            "display", make_display_options_dropdown())

        display_dropdown.topics.insert(
            0,
            PageMenuTopic(
                title=_("Filter permissions"),
                entries=[
                    PageMenuEntry(
                        title="",
                        icon_name="trans",
                        item=PageMenuSearch(),
                    )
                ],
            ))
Beispiel #13
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="users",
                 title=_("Users"),
                 topics=[
                     PageMenuTopic(
                         title=_("Add user"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Add user"),
                                 icon_name="new",
                                 item=make_simple_link(
                                     watolib.folder_preserving_link([
                                         ("mode", "edit_user")
                                     ])),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                     PageMenuTopic(
                         title=_("Synchronized users"),
                         entries=list(
                             self._page_menu_entries_synchronized_users()),
                     ),
                     PageMenuTopic(
                         title=_("Notify users"),
                         entries=list(
                             self._page_menu_entries_notify_users()),
                     ),
                 ],
             ),
             PageMenuDropdown(
                 name="related",
                 title=_("Related"),
                 topics=[
                     PageMenuTopic(
                         title=_("Setup"),
                         entries=list(self._page_menu_entries_related()),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
Beispiel #14
0
    def _extend_display_dropdown(self, menu: PageMenu) -> None:
        display_dropdown = menu.get_dropdown_by_name("display", make_display_options_dropdown())

        display_dropdown.topics.insert(
            0,
            PageMenuTopic(
                title=_("Filter"),
                entries=[
                    PageMenuEntry(
                        title=_("Filter view"),
                        icon_name="filters_set" if html.form_submitted("options") else "filters",
                        item=PageMenuPopup(self._render_filter_form()),
                        name="filters",
                        is_shortcut=True,
                    ),
                ],
            ))
 def show_topology(self,
                   hostnames: List[HostName],
                   mode: str,
                   growth_auto_max_nodes: Optional[int] = None,
                   mesh_depth: int = 0,
                   max_nodes: int = 400) -> None:
     board_name = "topology"
     board = get_permitted_dashboards()[board_name]
     breadcrumb = dashboard_breadcrumb(board_name, board, board["title"])
     page_menu = PageMenu(breadcrumb=breadcrumb)
     self._extend_display_dropdown(page_menu, board_name)
     html.header(board["title"], breadcrumb, page_menu)
     self.show_topology_content(hostnames,
                                mode,
                                growth_auto_max_nodes=growth_auto_max_nodes,
                                mesh_depth=mesh_depth,
                                max_nodes=max_nodes)
Beispiel #16
0
    def _extend_display_dropdown(self, menu: PageMenu) -> None:
        display_dropdown = menu.get_dropdown_by_name(
            "display", make_display_options_dropdown())

        display_dropdown.topics.insert(
            0,
            PageMenuTopic(
                title=_("Filter"),
                entries=[
                    PageMenuEntry(
                        title=_("Filter view"),
                        icon_name="filters_set"
                        if html.form_submitted("options") else "filter",
                        item=PageMenuSidePopup(self._render_filter_form()),
                        name="filters",
                        is_shortcut=True,
                    ),
                ],
            ),
        )

        display_dropdown.topics.insert(
            0,
            PageMenuTopic(
                title=_("Details"),
                entries=[
                    PageMenuEntry(
                        title=_("Show details"),
                        icon_name="checked_checkbox"
                        if self._show_details else "checkbox",
                        item=make_simple_link(
                            makeactionuri(
                                request,
                                transactions,
                                [
                                    ("show_details",
                                     "0" if self._show_details else "1"),
                                ],
                            )),
                        name="show_details",
                        css_classes=["toggle"],
                    )
                ],
            ),
        )
Beispiel #17
0
def render_page_confirm(acktime, failed_notifications):
    title = _("Confirm failed notifications")
    breadcrumb = make_simple_page_breadcrumb(
        mega_menu_registry.menu_monitoring(), title)

    confirm_url = make_confirm_link(
        url=html.makeactionuri_contextless([
            ("mode", "clear_failed_notifications"),
            ("acktime", str(acktime)),
            ("_confirm", "1"),
        ]),
        message=
        _("Do you really want to acknowledge all failed notifications up to %s?"
          ) % cmk.utils.render.date_and_time(acktime),
    )

    page_menu = PageMenu(
        dropdowns=[
            PageMenuDropdown(
                name="actions",
                title=_("Actions"),
                topics=[
                    PageMenuTopic(
                        title=_("Actions"),
                        entries=[
                            PageMenuEntry(
                                title=_("Confirm"),
                                icon_name="save",
                                item=make_javascript_link(confirm_url),
                                is_shortcut=True,
                                is_suggested=True,
                                is_enabled=failed_notifications,
                            ),
                        ],
                    ),
                ],
            ),
        ],
        breadcrumb=breadcrumb,
    )
    html.header(title, breadcrumb, page_menu)

    render_notification_table(failed_notifications)

    html.footer()
Beispiel #18
0
def _extend_display_dropdown(menu: PageMenu) -> None:
    display_dropdown = menu.get_dropdown_by_name("display", make_display_options_dropdown())
    display_dropdown.topics.insert(
        0,
        PageMenuTopic(
            title=_("Context"),
            entries=[
                PageMenuEntry(
                    title=_("Hide context"),
                    icon_name="trans",
                    item=PageMenuCheckbox(
                        is_checked=html.request.var('_hidecontext', 'no') == 'yes',
                        check_url=makeuri(request, [("_hidecontext", "yes")]),
                        uncheck_url=makeuri(request, [("_show_backlog", "no")]),
                    ),
                ),
            ],
        ))
Beispiel #19
0
 def _page_menu(self, breadcrumb: Breadcrumb, werk_table_options: Dict[str, Any]) -> PageMenu:
     menu = PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="werks",
                 title=_("Werks"),
                 topics=[
                     PageMenuTopic(
                         title=_("Incompatible werks"),
                         entries=list(_page_menu_entries_ack_all_werks()),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
     _extend_display_dropdown(menu, werk_table_options)
     return menu
Beispiel #20
0
def _extend_display_dropdown(menu: PageMenu) -> None:
    display_dropdown = menu.get_dropdown_by_name("display", make_display_options_dropdown())
    context_hidden = html.request.var('_hidecontext', 'no') == 'yes'
    display_dropdown.topics.insert(
        0,
        PageMenuTopic(
            title=_("Context"),
            entries=[
                PageMenuEntry(
                    title=_("Show context"),
                    icon_name="checkbox" if context_hidden else "checked_checkbox",
                    item=make_simple_link(
                        makeactionuri(request, transactions, [
                            ("_show_backlog", "no") if context_hidden else ("_hidecontext", "yes"),
                        ])),
                ),
            ],
        ))
Beispiel #21
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        if not request.has_var("file_id"):
            return make_simple_form_page_menu(
                _("Hosts"),
                breadcrumb,
                form_name="upload",
                button_name="_do_upload",
                save_title=_("Upload"),
            )

        # preview phase, after first upload
        return PageMenu(
            dropdowns=[
                PageMenuDropdown(
                    name="actions",
                    title=_("Actions"),
                    topics=[
                        PageMenuTopic(
                            title=_("Actions"),
                            entries=[
                                PageMenuEntry(
                                    title=_("Update preview"),
                                    icon_name="update",
                                    item=make_form_submit_link(
                                        "preview", "_do_preview"),
                                    is_shortcut=True,
                                    is_suggested=True,
                                ),
                                PageMenuEntry(
                                    title=_("Import"),
                                    icon_name="save",
                                    item=make_form_submit_link(
                                        "preview", "_do_import"),
                                    is_shortcut=True,
                                    is_suggested=True,
                                ),
                            ],
                        ),
                    ],
                ),
            ],
            breadcrumb=breadcrumb,
        )
Beispiel #22
0
 def show_topology(self,
                   hostnames: List[HostName],
                   mode: str,
                   growth_auto_max_nodes: Optional[int] = None,
                   mesh_depth: int = 0,
                   max_nodes: int = 400) -> None:
     visual_spec = ParentChildTopologyPage.visual_spec()
     breadcrumb = make_topic_breadcrumb(
         mega_menu_registry.menu_monitoring(),
         PagetypeTopics.get_topic(visual_spec["topic"]))
     breadcrumb.append(
         make_current_page_breadcrumb_item(visual_spec["title"]))
     page_menu = PageMenu(breadcrumb=breadcrumb)
     self._extend_display_dropdown(page_menu, visual_spec["name"])
     html.header(visual_spec["title"], breadcrumb, page_menu)
     self.show_topology_content(hostnames,
                                mode,
                                growth_auto_max_nodes=growth_auto_max_nodes,
                                mesh_depth=mesh_depth,
                                max_nodes=max_nodes)
Beispiel #23
0
 def _page_menu(self, breadcrumb: Breadcrumb,
                crash_info: CrashInfo) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="crash_reports",
                 title=_("Crash reports"),
                 topics=[
                     PageMenuTopic(
                         title=_("This crash report"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Download"),
                                 icon_name="download",
                                 item=make_simple_link(
                                     makeuri(
                                         request, [],
                                         filename="download_crash_report.py"
                                     )),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
             PageMenuDropdown(
                 name="related",
                 title=_("Related"),
                 topics=[
                     PageMenuTopic(
                         title=_("Monitoring"),
                         entries=list(
                             self._page_menu_entries_related_monitoring(
                                 crash_info)),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
Beispiel #24
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     page_menu: PageMenu = PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="connections",
                 title=_("Connections"),
                 topics=[
                     PageMenuTopic(
                         title=_("Add connection"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Add connection"),
                                 icon_name="new",
                                 item=make_simple_link(
                                     watolib.folder_preserving_link(
                                         [("mode", "edit_ldap_connection")]
                                     )
                                 ),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
             PageMenuDropdown(
                 name="related",
                 title=_("Related"),
                 topics=[
                     PageMenuTopic(
                         title=_("Setup"),
                         entries=list(self._page_menu_entries_related()),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
         inpage_search=PageMenuSearch(),
     )
     page_menu.add_doc_reference(title=self.title(), doc_ref=DocReference.LDAP)
     return page_menu
Beispiel #25
0
 def _page_menu(
     self,
     breadcrumb: Breadcrumb,
     site_id: SiteId,
     host_name: HostName,
     service_description: str,
 ) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="robotmk_reports",
                 title=_("RobotMK reports"),
                 topics=[
                     PageMenuTopic(
                         title=_("This RobotMK report"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Download"),
                                 icon_name="download",
                                 item=make_simple_link(
                                     makeuri(
                                         request,
                                         [
                                             ("site", site_id),
                                             ("host", host_name),
                                             ("service",
                                              service_description),
                                         ],
                                         filename=
                                         "download_robotmk_report.py",
                                     )),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
Beispiel #26
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="hosts",
                 title=_("Hosts"),
                 topics=[
                     self._page_menu_save_topic(),
                     PageMenuTopic(
                         title=_("For this host"),
                         entries=list(page_menu_host_entries(self.name(), self._host)),
                     ),
                     PageMenuTopic(
                         title=_("For all hosts on site %s") % self._host.site_id(),
                         entries=list(page_menu_all_hosts_entries(self._should_use_dns_cache())),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
Beispiel #27
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        menu = PageMenu(
            dropdowns=[
                PageMenuDropdown(
                    name="log",
                    title=_("Audit log"),
                    topics=[
                        PageMenuTopic(
                            title=_("Actions"),
                            entries=list(self._page_menu_entries_actions()),
                        ),
                    ],
                ),
                PageMenuDropdown(
                    name="export",
                    title=_("Export"),
                    topics=[
                        PageMenuTopic(
                            title=_("Export"),
                            entries=list(self._page_menu_entries_export()),
                        ),
                    ],
                ),
                PageMenuDropdown(
                    name="related",
                    title=_("Related"),
                    topics=[
                        PageMenuTopic(
                            title=_("Setup"),
                            entries=list(self._page_menu_entries_setup()),
                        ),
                    ],
                ),
            ],
            breadcrumb=breadcrumb,
        )

        self._extend_display_dropdown(menu)
        return menu
Beispiel #28
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="attributes",
                 title=_("Attributes"),
                 topics=[
                     PageMenuTopic(
                         title=_("Create"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Add attribute"),
                                 icon_name="new",
                                 item=make_simple_link(
                                     watolib.folder_preserving_link([
                                         ("mode",
                                          "edit_%s_attr" % self._type)
                                     ])),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
             PageMenuDropdown(
                 name="related",
                 title=_("Related"),
                 topics=[
                     PageMenuTopic(
                         title=_("Setup"),
                         entries=list(self._page_menu_entries_related()),
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
         inpage_search=PageMenuSearch(),
     )
 def _extend_display_dropdown(self, menu: PageMenu, page_name: str) -> None:
     _view, show_filters = get_topology_view_and_filters()
     display_dropdown = menu.get_dropdown_by_name("display", make_display_options_dropdown())
     display_dropdown.topics.insert(
         0,
         PageMenuTopic(
             title=_("Filter"),
             entries=[
                 PageMenuEntry(
                     title=_("Filter"),
                     icon_name="filters",
                     item=PageMenuSidePopup(
                         cmk.gui.visuals.render_filter_form(
                             info_list=["host", "service"],
                             mandatory_filters=[],
                             context={f.ident: {} for f in show_filters if f.available()},
                             page_name=page_name,
                             reset_ajax_page="ajax_initial_topology_filters")),
                     name="filters",
                     is_shortcut=True,
                 ),
             ]))
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="related",
                 title=_("Related"),
                 topics=[
                     PageMenuTopic(
                         title=_("Configure"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Support diagnostics"),
                                 icon_name="diagnostics",
                                 item=make_simple_link("wato.py?mode=diagnostics"),
                             ),
                         ],
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )