Mercurial > libervia-backend
diff sat/tools/common/template_xmlui.py @ 2783:442ab697f831
frontends, jp, templates: added XHTMLBox widget:
for jp, the XHTML is rendered for now using markdown.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 19 Jan 2019 11:39:02 +0100 |
parents | 003b8b4b56a7 |
children | ab2696e34d29 |
line wrap: on
line diff
--- a/sat/tools/common/template_xmlui.py Sat Jan 19 11:39:02 2019 +0100 +++ b/sat/tools/common/template_xmlui.py Sat Jan 19 11:39:02 2019 +0100 @@ -27,6 +27,12 @@ log = getLogger(__name__) from sat_frontends.tools import xmlui from functools import partial +try: + from jinja2 import Markup as safe +except ImportError: + # Safe marks XHTML values as usable as it. + # If jinja2 is not there, we can use a simple lamba + safe = lambda x: x ## Widgets ## @@ -136,6 +142,17 @@ type = u"textbox" +class XHTMLBoxWidget(xmlui.XHTMLBoxWidget, InputWidget): + type = u"xhtmlbox" + + def __init__(self, xmlui_parent, value, read_only=False): + # XXX: XHTMLBoxWidget value must be cleaned (harmful XHTML must be removed) + # This is normally done in the backend, the frontends should not need to + # worry about it. + super(XHTMLBoxWidget, self).__init__( + xmlui_parent=xmlui_parent, value=safe(value), read_only=read_only) + + class ListWidget(xmlui.ListWidget, OptionsWidget): type = u"list"