Esempio n. 1
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        if not html.request.has_var("file_id"):
            return make_simple_form_page_menu(
                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,
        )
Esempio n. 2
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)
Esempio n. 3
0
def _release_notes_page_menu(
    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
Esempio n. 4
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
Esempio n. 5
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,
     )
Esempio n. 6
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,
     )
Esempio n. 7
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,
     )
Esempio n. 8
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
Esempio n. 9
0
 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,
     )
Esempio n. 10
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(),
     )
Esempio n. 11
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             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"),
                             ),
                         ],
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
Esempio n. 12
0
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(
                                    makeuri_contextless(
                                        request,
                                        [("mode", "pattern_editor")],
                                        filename="wato.py",
                                    )
                                ),
                            ),
                        ],
                    ),
                ],
            ),
        ],
        breadcrumb=breadcrumb,
    )
Esempio n. 13
0
 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(),
     )
Esempio n. 14
0
 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
Esempio n. 15
0
 def _search_folder_page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return PageMenu(
         dropdowns=[
             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,
     )
Esempio n. 16
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     return 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,
     )
Esempio n. 17
0
    def _page_menu(self, acktime: float,
                   failed_notifications: LivestatusResponse,
                   breadcrumb: Breadcrumb) -> PageMenu:
        confirm_url = make_simple_link(
            make_confirm_link(
                url=makeactionuri(request,
                                  transactions, [("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),
            ))

        return PageMenu(
            dropdowns=[
                PageMenuDropdown(
                    name="actions",
                    title=_("Actions"),
                    topics=[
                        PageMenuTopic(
                            title=_("Actions"),
                            entries=[
                                PageMenuEntry(
                                    title=_("Confirm"),
                                    icon_name="save",
                                    item=confirm_url,
                                    is_shortcut=True,
                                    is_suggested=True,
                                    is_enabled=bool(failed_notifications),
                                ),
                            ],
                        ),
                    ],
                ),
            ],
            breadcrumb=breadcrumb,
        )
Esempio n. 18
0
 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,
     )
     return menu
Esempio n. 19
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=[
                             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,
     )
Esempio n. 20
0
 def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
     """Returns the data structure representing the page menu for this mode"""
     return PageMenu(breadcrumb=breadcrumb)
Esempio n. 21
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=_("On selected users"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Delete users"),
                                 shortcut_title=_("Delete selected users"),
                                 icon_name="delete",
                                 item=make_confirmed_form_submit_link(
                                     form_name="bulk_delete_form",
                                     button_name="_bulk_delete_users",
                                     message=_(
                                         "Do you really want to delete the selected users?"),
                                 ),
                                 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,
     )
Esempio n. 22
0
def _show_file_page_menu(breadcrumb: Breadcrumb, site_id: SiteId,
                         host_name: HostName, int_filename: str) -> PageMenu:

    menu = PageMenu(
        dropdowns=[
            PageMenuDropdown(
                name="logs",
                title=_("Logs"),
                topics=[
                    PageMenuTopic(
                        title=_("This log file"),
                        entries=list(
                            _page_menu_entry_acknowledge(
                                site_id, host_name, int_filename)),
                    ),
                    PageMenuTopic(
                        title=_("Log files"),
                        entries=[
                            PageMenuEntry(
                                title=_("Log files of host %s") % host_name,
                                icon_name="logwatch",
                                item=make_simple_link(
                                    makeuri(request, [("file", "")])),
                            ),
                            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,
    )
    _extend_display_dropdown(menu)
    return menu
Esempio n. 23
0
 def _page_menu(
     self,
     breadcrumb: Breadcrumb,
     site_id: SiteId,
     host_name: HostName,
     service_description: str,
 ) -> PageMenu:
     return PageMenu(
         dropdowns=[
             PageMenuDropdown(
                 name="robotmk_logs",
                 title=_("RobotMK logs"),
                 topics=[
                     PageMenuTopic(
                         title=_("This log"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Download"),
                                 icon_name="download",
                                 item=make_simple_link(
                                     makeuri(
                                         request,
                                         [
                                             ("report_type",
                                              self._report_type()),
                                             ("site", site_id),
                                             ("host", host_name),
                                             ("service",
                                              service_description),
                                         ],
                                         filename=
                                         "download_robotmk_report.py",
                                     )),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                     PageMenuTopic(
                         title=_("Other logs for this service"),
                         entries=[
                             PageMenuEntry(
                                 title=_("Last error log")
                                 if self._is_last_log() else _("Last log"),
                                 icon_name="robotmk_error"
                                 if self._is_last_log() else "robotmk",
                                 item=make_simple_link(
                                     makeuri(
                                         request,
                                         [
                                             (
                                                 "report_type",
                                                 "robotmk_error"
                                                 if self._is_last_log() else
                                                 "robotmk",
                                             ),
                                             ("site", site_id),
                                             ("host", host_name),
                                             ("service",
                                              service_description),
                                         ],
                                         filename="robotmk.py",
                                     )),
                                 is_shortcut=True,
                                 is_suggested=True,
                             ),
                         ],
                     ),
                 ],
             ),
         ],
         breadcrumb=breadcrumb,
     )
Esempio n. 24
0
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,
    )