changeset 246:d7c41c84d062

browser side: use of inlineRoot to display XHTML chat text
author Goffi <goffi@goffi.org>
date Sat, 09 Nov 2013 10:24:03 +0100
parents 43881c3dda9d
children fe83837d3491
files browser_side/panels.py browser_side/tools.py
diffstat 2 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/browser_side/panels.py	Sat Nov 09 10:23:33 2013 +0100
+++ b/browser_side/panels.py	Sat Nov 09 10:24:03 2013 +0100
@@ -43,7 +43,7 @@
 from radiocol import RadioColPanel
 from menu import Menu
 from jid import JID
-from tools import html_sanitize, addURLToText
+from tools import html_sanitize, addURLToText, inlineRoot
 from datetime import datetime
 from time import time
 import dialog
@@ -619,7 +619,7 @@
                            {"timestamp": _date.strftime("%H:%M"),
                             "nick": "[%s]" % html_sanitize(nick),
                             "msg_class": ' '.join(_msg_class),
-                            "msg": addURLToText(html_sanitize(msg)) if not xhtml else xhtml} #FIXME: images and external links must be removed according to preferences
+                            "msg": addURLToText(html_sanitize(msg)) if not xhtml else inlineRoot(xhtml)} #FIXME: images and external links must be removed according to preferences
                            )
         self.setStyleName('chatText')
 
--- a/browser_side/tools.py	Sat Nov 09 10:23:33 2013 +0100
+++ b/browser_side/tools.py	Sat Nov 09 10:24:03 2013 +0100
@@ -21,12 +21,21 @@
 
 from pyjamas.ui.DragWidget import DragWidget
 import re
+from nativedom import NativeDOM
+from sat.tools.frontends import xml
+
+dom = NativeDOM()
 
 def html_sanitize(html):
     """Naive sanitization of HTML"""
     return html.replace('<','&lt;').replace('>','&gt;')
 
 
+def inlineRoot(xhtml):
+    """ make root element inline """
+    doc = dom.parseString(xhtml)
+    return xml.inlineRoot(doc)
+
 def addURLToText(string):
     """Check a text for what looks like an URL and make it clickable. Regexp
     from http://daringfireball.net/2010/07/improved_regex_for_matching_urls"""