Ejemplo n.º 1
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        menu = PageMenu(
            dropdowns=[
                PageMenuDropdown(
                    name="log",
                    title=_("Actions"),
                    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
Ejemplo n.º 2
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(),
     )
Ejemplo n.º 3
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=_("Hide details")
                        if self._show_details else _("Show details"),
                        icon_name="checkbox",
                        item=make_simple_link(
                            html.makeactionuri([
                                ("show_details",
                                 "0" if self._show_details else "1"),
                            ])),
                        name="show_details",
                        css_classes=["toggle"],
                    )
                ],
            ))
Ejemplo n.º 4
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,
    )
Ejemplo n.º 5
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        menu = make_simple_form_page_menu(
            _("Host"),
            breadcrumb,
            form_name="rename_host",
            button_name="_save",
            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
Ejemplo n.º 6
0
def page_menu_dropdown_user_related(page_name: str,
                                    show_shortcuts: bool = True
                                    ) -> PageMenuDropdown:
    return PageMenuDropdown(
        name="related",
        title=_("Related"),
        topics=[
            PageMenuTopic(
                title=_("User"),
                entries=list(
                    _page_menu_entries_related(page_name, show_shortcuts)),
            ),
        ],
    )
Ejemplo n.º 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=_("Search for check plugins"),
             entries=[
                 PageMenuEntry(
                     title="",
                     icon_name="trans",
                     item=PageMenuSearch(target_mode="check_plugin_search"),
                 ),
             ],
         ))
Ejemplo n.º 8
0
 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,
     )
Ejemplo n.º 9
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,
     )
Ejemplo n.º 10
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,
     )
Ejemplo n.º 11
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,
     )
Ejemplo n.º 12
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,
    )
Ejemplo n.º 13
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(),
                    )
                ],
            ))
Ejemplo n.º 14
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,
     )
Ejemplo n.º 15
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,
    )
Ejemplo n.º 16
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        menu = make_simple_form_page_menu(breadcrumb, form_name="user", button_name="save")

        menu.dropdowns.insert(
            1,
            PageMenuDropdown(
                name="related",
                title=_("Related"),
                topics=[
                    PageMenuTopic(
                        title=_("Setup"),
                        entries=list(self._page_menu_entries_related()),
                    ),
                ],
            ))

        return menu
Ejemplo n.º 17
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,
                    ),
                ],
            ))
Ejemplo n.º 18
0
def _extend_display_dropdown(menu, werk_table_options: Dict[str, Any]) -> 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"),
                    icon_name="filter",
                    item=PageMenuSidePopup(_render_werk_options_form(werk_table_options)),
                    name="filters",
                    is_shortcut=True,
                ),
            ],
        ),
    )
Ejemplo n.º 19
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()
Ejemplo n.º 20
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")]),
                    ),
                ),
            ],
        ))
Ejemplo n.º 21
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
Ejemplo n.º 22
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"),
                        ])),
                ),
            ],
        ))
Ejemplo n.º 23
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,
        )
Ejemplo n.º 24
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,
     )
Ejemplo n.º 25
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        menu = make_simple_form_page_menu(breadcrumb,
                                          form_name="upload_form",
                                          button_name="_do_upload",
                                          save_title=_("Upload"),
                                          add_abort_link=False)

        menu.dropdowns.insert(
            1,
            PageMenuDropdown(
                name="related",
                title=_("Related"),
                topics=[
                    PageMenuTopic(
                        title=_("Setup"),
                        entries=list(self._page_menu_entries_related()),
                    ),
                ],
            ))

        return menu
Ejemplo n.º 26
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,
        )
Ejemplo n.º 27
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,
     )
Ejemplo n.º 28
0
    def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu:
        menu = make_simple_form_page_menu(breadcrumb,
                                          form_name="bulk_rename_host",
                                          button_name="_start",
                                          save_title=_("Bulk 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(),
                    ),
                ],
            ))

        return menu
Ejemplo n.º 29
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,
     )
Ejemplo n.º 30
0
 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,
                 ),
             ]))