Module: check_mk
Branch: master
Commit: 05025b57195a6bfbdcca5592f0148d226445d59b
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=05025b57195a6b…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Oct 5 13:04:43 2017 +0200
Add new valuespec TextOrRegExp()
Change-Id: Ief9313b8474bebb5ed3ae575d7bf879be7756025
---
web/htdocs/valuespec.py | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/web/htdocs/valuespec.py b/web/htdocs/valuespec.py
index dba9eee..dbbcdbe 100644
--- a/web/htdocs/valuespec.py
+++ b/web/htdocs/valuespec.py
@@ -639,6 +639,7 @@ class RegExpUnicode(TextUnicode, RegExp):
ValueSpec.custom_validate(self, value, varprefix)
+
class EmailAddress(TextAscii):
def __init__(self, **kwargs):
kwargs.setdefault("size", 40)
@@ -4092,6 +4093,48 @@ class UploadOrPasteTextFile(Alternative):
+class TextOrRegExp(Alternative):
+ _text_valuespec_class = TextAscii
+ _regex_valuespec_class = RegExp
+
+ def __init__(self, **kwargs):
+ if "text_valuespec" in kwargs:
+ vs_text = kwargs.pop("text_valuespec")
+ else:
+ vs_text = self._text_valuespec_class(
+ title = _("Explicit match"),
+ )
+
+ vs_regex = self._regex_valuespec_class(
+ mode = RegExp.prefix,
+ title = _("Regular expression match"),
+ )
+
+ kwargs.update({
+ "elements": [
+ vs_text,
+ Transform(
+ vs_regex,
+ forth = lambda v: v[1:], # strip of "~"
+ back = lambda v: "~" + v, # add "~"
+ ),
+ ],
+ # Use RegExp field when value is prefixed with "~"
+ "match" : lambda v: 1 if v and v[0] == "~" else 0,
+ "style" : "dropdown",
+ "orientation" : "horizontal",
+ })
+
+ super(TextOrRegExp, self).__init__(**kwargs)
+
+
+
+class TextOrRegExpUnicode(TextOrRegExp):
+ _default_valuespec_class = TextUnicode
+ _regex_valuespec_class = RegExpUnicode
+
+
+
class IconSelector(ValueSpec):
_categories = [
('logos', _('Logos')),