def _page_menu_save_entries(self) -> Iterator[PageMenuEntry]: if watolib.Folder.current().locked_hosts(): return yield PageMenuEntry( title=_("Save & go to service configuration"), shortcut_title=_("Save & go to service configuration"), icon_name="save_to_services", item=make_form_submit_link(form_name="edit_host", button_name="_save"), is_shortcut=True, is_suggested=True, css_classes=["submit"], ) yield PageMenuEntry( title=_("Save & go to folder"), icon_name="save_to_folder", item=make_form_submit_link(form_name="edit_host", button_name="go_to_folder"), is_shortcut=True, is_suggested=True, ) if not self._is_cluster(): yield PageMenuEntry( title=_("Save & go to connection tests"), icon_name="connection_tests", item=make_form_submit_link(form_name="edit_host", button_name="diag_host"), is_shortcut=True, is_suggested=True, )
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) -> 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 test_make_form_submit_link(): item = make_form_submit_link("frm", "btn") assert item.link.url is None assert item.link.target is None assert ( item.link.onclick == 'cmk.page_menu.form_submit("frm", "btn");cmk.page_menu.close_active_dropdown();' )
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, )
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: menu = make_simple_form_page_menu(breadcrumb, form_name="connection", button_name="_save", save_title=_("Save")) menu.dropdowns[0].topics[0].entries.insert( 1, PageMenuEntry( title=_("Save & test"), icon_name="save", item=make_form_submit_link(form_name="connection", button_name="_test"), is_shortcut=True, is_suggested=True, )) return menu
def page_menu(self, breadcrumb: Breadcrumb) -> PageMenu: menu = make_simple_form_page_menu(breadcrumb, form_name="value_editor", button_name="save") reset_possible = self._config_variable.allow_reset() and self._is_configured() default_values = watolib.ABCConfigDomain.get_all_default_globals() defvalue = default_values[self._varname] value = self._current_settings.get(self._varname, self._global_settings.get(self._varname, defvalue)) menu.dropdowns[0].topics[0].entries.append( PageMenuEntry( title=_("Remove explicit setting") if value == defvalue else _("Reset to default"), icon_name="reset", item=make_form_submit_link(form_name="value_editor", button_name="_reset"), is_enabled=reset_possible, )) return menu
def _page_menu_entries_selected_hosts(self) -> Iterator[PageMenuEntry]: if not config.user.may("wato.edit_hosts") and not config.user.may("wato.manage_hosts"): return hostnames = sorted(self._folder.hosts().keys(), key=utils.key_num_split) search_text = html.request.var("search") # Remember if that host has a target folder (i.e. was imported with # a folder information but not yet moved to that folder). If at least # one host has a target folder, then we show an additional bulk action. at_least_one_imported = False for hostname in hostnames: if search_text and (search_text.lower() not in hostname.lower()): continue host = self._folder.host(hostname) effective = host.effective_attributes() if effective.get("imported_folder"): at_least_one_imported = True if not self._folder.locked_hosts(): if config.user.may("wato.manage_hosts"): yield PageMenuEntry( title=_("Delete hosts"), icon_name="delete", item=make_form_submit_link( form_name="hosts", button_name="_bulk_delete", ), ) if config.user.may("wato.edit_hosts"): yield PageMenuEntry( title=_("Edit attributes"), icon_name="edit", item=make_form_submit_link( form_name="hosts", button_name="_bulk_edit", ), ) yield PageMenuEntry( title=_("Remove explicit attribute settings"), icon_name="cleanup", item=make_form_submit_link( form_name="hosts", button_name="_bulk_cleanup", ), ) if config.user.may("wato.services"): yield PageMenuEntry( title=_("Discover services"), icon_name="services", item=make_form_submit_link( form_name="hosts", button_name="_bulk_inventory", ), ) if not self._folder.locked_hosts(): if config.user.may("wato.parentscan"): yield PageMenuEntry( title=_("Detect network parent hosts"), icon_name="parentscan", item=make_form_submit_link( form_name="hosts", button_name="_parentscan", ), ) if config.user.may("wato.edit_hosts") and config.user.may("wato.move_hosts"): yield PageMenuEntry( title=_("Move to other folder"), icon_name="move", name="move_rules", item=PageMenuPopup(self._render_bulk_move_form()), ) if at_least_one_imported: yield PageMenuEntry( title=_("Move to target folders"), icon_name="move", item=make_form_submit_link( form_name="hosts", button_name="_bulk_movetotarget", ), )
def _page_menu_entries_selected_hosts(self) -> Iterator[PageMenuEntry]: if not config.user.may("wato.edit_hosts") and not config.user.may("wato.manage_hosts"): return hostnames = sorted(self._folder.hosts().keys(), key=utils.key_num_split) is_enabled = bool(self._folder.has_hosts()) search_text = html.request.var("search") # Remember if that host has a target folder (i.e. was imported with # a folder information but not yet moved to that folder). If at least # one host has a target folder, then we show an additional bulk action. at_least_one_imported = False for hostname in hostnames: if search_text and (search_text.lower() not in hostname.lower()): continue host = self._folder.host(hostname) effective = host.effective_attributes() if effective.get("imported_folder"): at_least_one_imported = True if not self._folder.locked_hosts(): if config.user.may("wato.manage_hosts"): yield PageMenuEntry( title=_("Delete hosts"), icon_name="delete", item=make_confirmed_form_submit_link( form_name="hosts", button_name="_bulk_delete", message=_("Do you really want to delete the selected hosts?"), ), is_enabled=is_enabled, ) if config.user.may("wato.edit_hosts"): yield PageMenuEntry( title=_("Edit attributes"), icon_name="edit", item=make_form_submit_link( form_name="hosts", button_name="_bulk_edit", ), is_enabled=is_enabled, ) yield PageMenuEntry( title=_("Remove explicit attribute settings"), icon_name="cleanup", item=make_form_submit_link( form_name="hosts", button_name="_bulk_cleanup", ), is_enabled=is_enabled, ) if config.user.may("wato.services"): yield PageMenuEntry( title=_("Discover services"), icon_name="services", item=make_form_submit_link( form_name="hosts", button_name="_bulk_inventory", ), is_enabled=is_enabled, ) if not self._folder.locked_hosts(): if config.user.may("wato.parentscan"): yield PageMenuEntry( title=_("Detect network parent hosts"), icon_name="parentscan", item=make_form_submit_link( form_name="hosts", button_name="_parentscan", ), is_enabled=is_enabled, ) if config.user.may("wato.edit_hosts") and config.user.may("wato.move_hosts"): yield PageMenuEntry( title=_("Move to other folder"), icon_name="move", name="move_rules", item=PageMenuPopup(self._render_bulk_move_form()), is_enabled=is_enabled, ) if at_least_one_imported: yield PageMenuEntry( title=_("Move to target folders"), icon_name="move", item=make_confirmed_form_submit_link( form_name="hosts", button_name="_bulk_movetotarget", message=_('You are going to move the selected hosts to folders ' 'representing their original folder location in the system ' 'you did the import from. Please make sure that you have ' 'done an <b>inventory</b> before moving the hosts.'), ), is_enabled=is_enabled, )