def render_input(self, varprefix, value): # The display mode differs when the valuespec is activated vars_copy = dict(html.request.itervars()) # The timeperiod mode can be set by either the GUI switch or by the value itself # GUI switch overrules the information stored in the value if html.request.has_var(self.tp_toggle_var): is_active = self._is_switched_on() else: is_active = self.is_active(value) # Set the actual used mode html.hidden_field(self.tp_current_mode, "%d" % is_active) mode = _("Disable") if is_active else _("Enable") vars_copy[self.tp_toggle_var] = "%d" % (not is_active) toggle_url = html.makeuri(vars_copy.items()) if is_active: value = self._get_timeperiod_value(value) self._get_timeperiod_valuespec().render_input(varprefix, value) html.buttonlink(toggle_url, _("%s timespecific parameters") % mode, class_=["toggle_timespecific_parameter"]) else: value = self._get_timeless_value(value) r = self._enclosed_valuespec.render_input(varprefix, value) html.buttonlink(toggle_url, _("%s timespecific parameters") % mode, class_=["toggle_timespecific_parameter"]) return r
def inpage_search_form(mode: Optional[str] = None, default_value: str = "") -> None: form_name = "inpage_search_form" reset_button_id = "%s_reset" % form_name was_submitted = request.get_ascii_input("filled_in") == form_name html.begin_form(form_name, add_transid=False) html.text_input( "search", size=32, default_value=default_value, placeholder=_("Filter"), required=True, title="", ) html.hidden_fields() if mode: html.hidden_field("mode", mode, add_var=True) reset_url = request.get_ascii_input_mandatory( "reset_url", requested_file_with_query(request)) html.hidden_field("reset_url", reset_url, add_var=True) html.button("submit", "", cssclass="submit", help_=_("Apply")) html.buttonlink(reset_url, "", obj_id=reset_button_id, title=_("Reset")) html.end_form() html.javascript("cmk.page_menu.inpage_search_init(%s, %s)" % (json.dumps(reset_button_id), json.dumps(was_submitted)))
def _show_werk_options_controls() -> None: html.open_div(class_="side_popup_controls") html.open_div(class_="update_buttons") html.button("apply", _("Apply"), "submit") html.buttonlink(makeuri(request, [], remove_prefix=""), _("Reset")) html.close_div() html.close_div()
def _show_configuration_variables(self, groups): search_form(_("Search for settings:")) search = self._search html.open_div(class_="filter_buttons") if self._show_only_modified: html.buttonlink(html.makeuri([], delvars=["show_only_modified"]), _("Show all settings")) else: html.buttonlink(html.makeuri([("show_only_modified", "1")]), _("Show only modified settings")) html.close_div() at_least_one_painted = False html.open_div(class_="globalvars") for group in sorted(groups, key=lambda g: g.sort_index()): header_is_painted = False # needed for omitting empty groups for config_variable_class in group.config_variables(): config_variable = config_variable_class() varname = config_variable.ident() valuespec = config_variable.valuespec() if not config_variable.domain().enabled(): continue if config_variable.domain( ) == watolib.ConfigDomainCore and varname not in self._default_values: if config.debug: raise MKGeneralException( "The configuration variable <tt>%s</tt> is unknown to " "your local Check_MK installation" % varname) continue if not config_variable.in_global_settings(): continue if self._show_only_modified and varname not in self._current_settings: continue help_text = valuespec.help() or '' title_text = valuespec.title() if search and search not in group.title().lower() \ and search not in config_variable.domain().ident.lower() \ and search not in varname \ and search not in help_text.lower() \ and search not in title_text.lower(): continue # skip variable when search is performed and nothing matches at_least_one_painted = True if not header_is_painted: # always open headers when searching forms.header(group.title(), isopen=search or self._show_only_modified) header_is_painted = True default_value = self._default_values[varname] edit_url = watolib.folder_preserving_link([("mode", self._edit_mode()), ("varname", varname), ("site", html.request.var("site", ""))]) title = html.render_a( title_text, href=edit_url, class_="modified" if varname in self._current_settings else None, title=escaping.strip_tags(help_text)) if varname in self._current_settings: value = self._current_settings[varname] elif varname in self._global_settings: value = self._global_settings[varname] else: value = default_value try: to_text = valuespec.value_to_text(value) except Exception: logger.exception("error converting %r to text", value) to_text = html.render_error(_("Failed to render value: %r") % value) # Is this a simple (single) value or not? change styling in these cases... simple = True if '\n' in to_text or '<td>' in to_text: simple = False forms.section(title, simple=simple) if varname in self._current_settings: modified_cls = "modified" # type: Optional[str] value_title = _("This option has been modified.") # type: Optional[Text] elif varname in self._global_settings: modified_cls = "modified globally" value_title = _("This option has been modified in global settings.") else: modified_cls = None value_title = None if is_a_checkbox(valuespec): html.open_div(class_=["toggle_switch_container", modified_cls]) html.toggle_switch( enabled=value, help_txt=_("Immediately toggle this setting"), href=html.makeactionuri([("_action", "toggle"), ("_varname", varname)]), class_=modified_cls, title=value_title, ) html.close_div() else: html.a(HTML(to_text), href=edit_url, class_=modified_cls, title=value_title) if header_is_painted: forms.end() if not at_least_one_painted and search: html.show_message(_('Did not find any global setting matching your search.')) html.close_div()