Exemple #1
0
    # Sort the items of all topics
    for topic in by_topic.values():
        topic.items.sort(key=lambda i: (i.sort_index, i.title))

    # Return the sorted topics
    return [
        v for k, v in sorted(by_topic.items(),
                             key=lambda e: (e[0].sort_index, e[0].title))
    ]


mega_menu_registry.register(
    MegaMenu(
        name="setup",
        title=_l("Setup"),
        icon="main_setup",
        sort_index=15,
        topics=get_wato_menu_items,
        search=search.SetupSearch("setup_search"),
    ))


class MatchItemGeneratorSetupMenu(ABCMatchItemGenerator):
    def __init__(
        self,
        name: str,
        topic_generator: Callable[[], Iterable[TopicMenuTopic]],
    ) -> None:
        super().__init__(name)
        self._topic_generator = topic_generator
Exemple #2
0
            items=quick_items,
        ),
        TopicMenuTopic(
            name="user",
            title=_("User profile"),
            icon="topic_profile",
            items=items,
        ),
    ]


mega_menu_registry.register(
    MegaMenu(
        name="user",
        title=_l("User"),
        icon="main_user",
        sort_index=20,
        topics=_user_menu_topics,
        info_line=lambda: f"{user.id} ({user.baserole_id})",
    ))


@page_registry.register_page("ajax_ui_theme")
class ModeAjaxCycleThemes(AjaxPage):
    """AJAX handler for quick access option 'Interface theme" in user menu"""
    def page(self) -> AjaxPageResult:
        themes = [theme for theme, _title in theme_choices()]
        current_theme = theme.get()
        try:
            theme_index = themes.index(current_theme)
        except ValueError:
Exemple #3
0
            icon="topic_profile",
            items=quick_items,
        ),
        TopicMenuTopic(
            name="user",
            title=_("Profile"),
            icon="topic_profile",
            items=items,
        )
    ]


mega_menu_registry.register(
    MegaMenu(
        name="user",
        title=_l("User"),
        icon="main_user",
        sort_index=20,
        topics=_user_menu_topics,
    ))


@page_registry.register_page("ajax_ui_theme")
class ModeAjaxCycleThemes(AjaxPage):
    """AJAX handler for quick access option 'Interface theme" in user menu"""
    def page(self):
        themes = [theme for theme, _title in cmk.gui.config.theme_choices()]
        current_theme = html.get_theme()
        try:
            theme_index = themes.index(current_theme)
        except ValueError:
            raise MKUserError(None, _("Could not determine current theme."))
Exemple #4
0
    # Sort the items of all topics
    for topic in by_topic.values():
        topic.items.sort(key=lambda i: (i.sort_index, i.title))

    # Return the sorted topics
    return [
        v for k, v in sorted(by_topic.items(),
                             key=lambda e: (e[0].sort_index, e[0].title))
    ]


mega_menu_registry.register(
    MegaMenu(
        name="setup",
        title=_l("Setup"),
        icon_name="main_setup",
        sort_index=15,
        topics=get_wato_menu_items,
    ))


@snapin_registry.register
class SidebarSnapinWATO(SidebarSnapin):
    @staticmethod
    def type_name():
        return "admin"

    @classmethod
    def title(cls):
        return _("WATO - Configuration")
Exemple #5
0
            not config.hidden_views or name not in config.hidden_views)
    ]

    network_topology_visual_spec = ParentChildTopologyPage.visual_spec()
    pages_to_show = [(network_topology_visual_spec["name"],
                      network_topology_visual_spec)]

    visuals_to_show = [("views", e) for e in views_to_show]
    visuals_to_show += [("dashboards", e)
                        for e in dashboard.get_permitted_dashboards().items()]
    visuals_to_show += [("pages", e) for e in pages_to_show]
    visuals_to_show += page_type_items

    if reporting:
        reporting.load_reports()
        visuals_to_show += [("reports", e)
                            for e in reporting.permitted_reports().items()]

    return make_topic_menu(visuals_to_show)


mega_menu_registry.register(
    MegaMenu(
        name="monitoring",
        title=_l("Monitor"),
        icon="main_monitoring",
        sort_index=5,
        topics=get_view_menu_items,
        search=search.MonitoringSearch("monitoring_search"),
    ))
Exemple #6
0
                                or name not in active_config.hidden_views)
    ]

    network_topology_visual_spec = ParentChildTopologyPage.visual_spec()
    pages_to_show = [(network_topology_visual_spec["name"],
                      network_topology_visual_spec)]

    visuals_to_show = [("views", e) for e in views_to_show]
    visuals_to_show += [("dashboards", e)
                        for e in dashboard.get_permitted_dashboards().items()]
    visuals_to_show += [("pages", e) for e in pages_to_show]
    visuals_to_show += page_type_items

    if reporting and include_reports:
        reporting.load_reports()
        visuals_to_show += [("reports", e)
                            for e in reporting.permitted_reports().items()]

    return make_topic_menu(visuals_to_show)


mega_menu_registry.register(
    MegaMenu(
        name="monitoring",
        title=_l("Monitor"),
        icon="main_monitoring",
        sort_index=5,
        topics=lambda: get_view_menu_items(include_reports=True),
        search=search.MonitoringSearch("monitoring_search"),
    ))
Exemple #7
0
                    "hidden"] = False  # Is currently to configurable for pagetypes
                visual[
                    "icon"] = None  # Is currently to configurable for pagetypes

                page_type_items.append(
                    (page_type.type_name(), (page.name(), visual)))

    # Apply some view specific filters
    views_to_show = [
        (name, view) for name, view in views.get_permitted_views().items()
        if (not config.visible_views or name in config.visible_views) and (
            not config.hidden_views or name not in config.hidden_views)
    ]

    visuals_to_show = [("views", e) for e in views_to_show]
    visuals_to_show += [("dashboards", e)
                        for e in dashboard.get_permitted_dashboards().items()]
    visuals_to_show += page_type_items

    return make_topic_menu(visuals_to_show)


mega_menu_registry.register(
    MegaMenu(
        name="monitoring",
        title=_l("Monitor"),
        icon_name="main_monitoring",
        sort_index=5,
        topics=get_view_menu_items,
    ))