def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name="hosts", title=_("Hosts"), topics=[ PageMenuTopic( title=_("For this host"), entries=list( page_menu_host_entries(self.name(), self._host)), ), ], ), PageMenuDropdown( name="services", title=_("Services"), topics=[ PageMenuTopic( title=_("For this service"), entries=list(self._page_menu_service_entries()), ), ], ), ], breadcrumb=breadcrumb, )
def _log_list_page_menu(breadcrumb: Breadcrumb) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name="logs", title=_("Logs"), topics=[ PageMenuTopic( title=_("Acknowledge"), entries=list(_page_menu_entry_acknowledge()), ), ], ), PageMenuDropdown( name="related", title=_("Related"), topics=[ PageMenuTopic( title=_("Setup"), entries=[ PageMenuEntry( title=_("Analyze patterns"), icon_name="analyze", item=make_simple_link( html.makeuri_contextless( [("mode", "pattern_editor")], filename="wato.py")), ), ], ), ], ), ], breadcrumb=breadcrumb, )
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, )
def _search_folder_page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name="hosts", title=_("Hosts"), topics=[ PageMenuTopic( title=_("On selected hosts"), entries=list(self._page_menu_entries_selected_hosts()), ), make_checkbox_selection_topic(), ], ), PageMenuDropdown( name="search", title=_("Search"), topics=[ PageMenuTopic( title=_("Search hosts"), entries=[ PageMenuEntry( title=_("Refine search"), icon_name="search", item=make_simple_link(self._folder.url([("mode", "search")])), is_shortcut=True, ), ], ), ], ), ], breadcrumb=breadcrumb, )
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name="changes", title=_("Changes"), topics=[ PageMenuTopic( title=_("On all sites"), entries=list(self._page_menu_entries_all_sites()), ), PageMenuTopic( title=_("On selected sites"), entries=list(self._page_menu_entries_selected_sites()), ), ], ), PageMenuDropdown( name="related", title=_("Related"), topics=[ PageMenuTopic( title=_("Setup"), entries=list(self._page_menu_entries_setup()), ), ], ), ], breadcrumb=breadcrumb, )
def _host_log_list_page_menu( breadcrumb: Breadcrumb, site_id: SiteId, host_name: HostName ) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name="logs", title=_("Logs"), topics=[ PageMenuTopic( title=_("Current log files"), entries=list(_page_menu_entry_acknowledge(site_id, host_name)), ), PageMenuTopic( title=_("Log files"), entries=[ PageMenuEntry( title=_("All log files"), icon_name="logwatch", item=make_simple_link( makeuri( request, [("site", ""), ("host", ""), ("file", "")], ) ), ), ], ), ], ), PageMenuDropdown( name="related", title=_("Related"), topics=[ PageMenuTopic( title=_("Monitoring"), entries=[ PageMenuEntry( title=_("Services of host"), icon_name="services", item=make_simple_link(services_url(site_id, host_name)), ), ], ), PageMenuTopic( title=_("Setup"), entries=[ PageMenuEntry( title=_("Analyze host patterns"), icon_name="analyze", item=make_simple_link(analyse_url(site_id, host_name)), ), ], ), ], ), ], breadcrumb=breadcrumb, )
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(), ], ), 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(placeholder=_("Filter hosts")), ) self._extend_display_dropdown(menu) self._extend_help_dropdown(menu) return menu
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(), )
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, )
def _page_menu(self, breadcrumb) -> PageMenu: page_menu: PageMenu = PageMenu( dropdowns=[ PageMenuDropdown( name="actions", title=_("Actions"), topics=[ PageMenuTopic( title=_("Actions"), entries=[ PageMenuEntry( title=_("Add credential"), icon_name="2fa", item=make_javascript_link("cmk.webauthn.register()"), is_shortcut=True, is_suggested=True, ), PageMenuEntry( title=_("Regenerate backup codes"), icon_name="2fa_backup_codes", item=make_form_submit_link("two_factor", "_backup_codes"), is_shortcut=True, is_suggested=True, ), ], ), ], ), page_menu_dropdown_user_related(page_name=overview_page_name, show_shortcuts=False), ], breadcrumb=breadcrumb, ) page_menu.add_doc_reference(title=self._page_title(), doc_ref=DocReference.WATO_USER_2FA) return page_menu
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name=self._mode_type.type_name(), title=self._mode_type.name_singular().title(), topics=[ PageMenuTopic( title=self._mode_type.name_singular().title(), entries=[ PageMenuEntry( title=self._new_context_button_label(), icon_name="new", item=make_simple_link( html.makeuri_contextless([ ("mode", self._mode_type.edit_mode_name()) ])), ), ], ), ], ), ], breadcrumb=breadcrumb, )
def _page_menu(self, breadcrumb) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name="actions", title=_("Actions"), topics=[ PageMenuTopic( title=_("Actions"), entries=[ PageMenuEntry( title=_("Add credential"), icon_name="2fa", item=make_javascript_link("cmk.webauthn.register()"), is_shortcut=True, is_suggested=True, ), PageMenuEntry( title=_("Regenerate backup codes"), icon_name="2fa_backup_codes", item=make_form_submit_link("two_factor", "_backup_codes"), is_shortcut=True, is_suggested=True, ), ], ), ], ), page_menu_dropdown_user_related("user_two_factor_overview"), ], breadcrumb=breadcrumb, )
def _page_menu(breadcrumb: Breadcrumb) -> PageMenu: menu = make_simple_form_page_menu( _("Users"), breadcrumb, form_name="notify", button_name="_save", save_title=_("Send notification"), ) menu.dropdowns.insert( 1, PageMenuDropdown( name="related", title=_("Related"), topics=[ PageMenuTopic( title=_("Setup"), entries=[ PageMenuEntry( title=_("Users"), icon_name="users", item=make_simple_link("wato.py?mode=users"), ) ], ), ], ), ) return menu
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name="host", title=_("Host"), 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, )
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: if self._check_type.startswith("check_"): command = "check_mk_active-" + self._check_type[6:] else: command = "check_mk-" + self._check_type url = makeuri_contextless( request, [("view_name", "searchsvc"), ("check_command", command), ("filled_in", "filter")], filename="view.py", ) return PageMenu( dropdowns=[ PageMenuDropdown( name="related", title=_("Related"), topics=[ PageMenuTopic( title=_("Monitoring"), entries=[ PageMenuEntry( title=_("Show services using this check"), icon_name="status", item=make_simple_link(url), ), ], ), ], ), ], breadcrumb=breadcrumb, )
def page_menu(self, breadcrumb) -> PageMenu: menu = make_simple_form_page_menu( _("Diagnostics"), breadcrumb, form_name="diagnostics", button_name="_collect_dump", save_title=_("Collect diagnostics"), ) menu.dropdowns.insert( 1, PageMenuDropdown( name="related", title=_("Related"), topics=[ PageMenuTopic( title=_("Setup"), entries=[ PageMenuEntry( title=_("Analyze configuration"), icon_name="analyze_config", item=make_simple_link( "wato.py?mode=analyze_config"), ), ], ), ], ), ) return menu
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name="timeperiods", title=_("Time periods"), topics=[ PageMenuTopic( title=_("Add time period"), entries=[ PageMenuEntry( title=_("Add time period"), icon_name="new", item=make_simple_link( watolib.folder_preserving_link([("mode", "edit_timeperiod") ])), is_shortcut=True, is_suggested=True, ), PageMenuEntry( title=_("Import iCalendar"), icon_name="ical", item=make_simple_link( watolib.folder_preserving_link([("mode", "import_ical")])), is_shortcut=True, is_suggested=True, ), ], ), ], ), ], breadcrumb=breadcrumb, inpage_search=PageMenuSearch(), )
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: return PageMenu( dropdowns=[ PageMenuDropdown( name=self._mode_type.type_name(), title=self._mode_type.name_singular().title(), topics=[ PageMenuTopic( title=self._mode_type.name_singular().title(), entries=[ PageMenuEntry( title=self._new_button_label(), icon_name="new", item=make_simple_link( makeuri_contextless( request, [("mode", self._mode_type.edit_mode_name()) ], )), is_shortcut=True, is_suggested=True, ), ], ), ], ), ], breadcrumb=breadcrumb, inpage_search=PageMenuSearch(), )
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: dropdowns = [] if cmk_version.is_managed_edition(): import cmk.gui.cme.plugins.wato.managed # pylint: disable=no-name-in-module,import-outside-toplevel dropdowns.append(cmk.gui.cme.plugins.wato.managed.cme_global_settings_dropdown()) dropdowns.append( PageMenuDropdown( name="related", title=_("Related"), topics=[ PageMenuTopic( title=_("Setup"), entries=list(self._page_menu_entries_related()), ), ], ),) menu = PageMenu( dropdowns=dropdowns, breadcrumb=breadcrumb, ) self._extend_display_dropdown(menu) return menu
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=[ PageMenuEntry( title=_("Update DNS cache"), icon_name="update", item=make_simple_link( html.makeactionuri([("_update_dns_cache", "1")])), shortcut_title=_("Update site DNS cache"), is_shortcut=True, is_suggested=True, ), ], ), ], ), ], breadcrumb=breadcrumb, )
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: menu = make_simple_form_page_menu(_("Host"), breadcrumb, form_name="rename_host", button_name="rename", save_title=_("Rename")) host_renaming_job = RenameHostsBackgroundJob() actions_dropdown = menu.dropdowns[0] actions_dropdown.topics.append( PageMenuTopic( title=_("Last result"), entries=[ PageMenuEntry( title=_("Show last rename result"), icon_name="background_job_details", item=make_simple_link(host_renaming_job.detail_url()), is_enabled=host_renaming_job.is_available(), ), ], )) menu.dropdowns.append( PageMenuDropdown( name="hosts", title=_("Hosts"), topics=[ PageMenuTopic( title=_("For this host"), entries=list(page_menu_host_entries(self.name(), self._host)), ), ], )) return menu
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: menu = PageMenu( dropdowns=[ PageMenuDropdown( name="roles", title=_("Roles"), topics=[ PageMenuTopic( title=_("Overview"), entries=[ PageMenuEntry( title=_("Permission matrix"), icon_name="matrix", item=make_simple_link( watolib.folder_preserving_link([ ("mode", "role_matrix") ])), ), ], ), ], ), ], breadcrumb=breadcrumb, inpage_search=PageMenuSearch(), ) return menu
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, )
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, )
def test_simple_page_menu(register_builtin_html): pm = PageMenu([ PageMenuDropdown( name="hallo", title="HALLO", topics=[ PageMenuTopic( title="Title", entries=[ PageMenuEntry( name="abc", title="Mach das", description="Ich beschreibe", icon_name="icon", item=make_external_link("https://checkmk.com/"), ), ], ) ], ), ]) assert len( pm.dropdowns ) == 3 # help, display-options-Dropdowns are added automatically assert len(list(pm.shortcuts)) == 0 assert len(list(pm.suggestions)) == 0 assert pm.has_suggestions is False dropdown = pm.dropdowns[0] assert dropdown.name == "hallo" assert dropdown.title == "HALLO" assert len(dropdown.topics) == 1 assert dropdown.any_show_more_entries is False assert dropdown.is_empty is False for topic in dropdown.topics: assert topic.title == "Title" assert len(topic.entries) == 1 for entry in topic.entries: assert entry.name == "abc" assert entry.title == "Mach das" assert entry.description == "Ich beschreibe" assert entry.icon_name == "icon" assert isinstance(entry.item, PageMenuLink) assert entry.item.link.url == "https://checkmk.com/" assert entry.item.link.target == "_blank" assert entry.item.link.onclick is None display_dropdown = pm.dropdowns[1] assert display_dropdown.name == "display" help_dropdown = pm.dropdowns[2] assert help_dropdown.name == "help" assert help_dropdown.topics[0].entries[0].name == "inline_help"
def page_menu_dropdown_user_related(page_name: str) -> PageMenuDropdown: return PageMenuDropdown( name="related", title=_("Related"), topics=[ PageMenuTopic( title=_("User"), entries=list(_page_menu_entries_related(page_name)), ), ], )
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
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: menu = make_simple_form_page_menu(_("Host"), breadcrumb) menu.dropdowns.insert( 0, PageMenuDropdown( name="save", title=_("Host"), topics=[ self._page_menu_save_topic(), ], )) return menu
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 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