Mercurial > libervia-web
changeset 840:73cc4658f431
browser (strings): add a parameter "new_target" to addURLToText + fix a wrong import
author | souliane <souliane@mailoo.org> |
---|---|
date | Wed, 13 Jan 2016 13:12:58 +0100 |
parents | 09ace5cbcb9b |
children | 4a01be961fd2 |
files | src/browser/sat_browser/main_panel.py src/browser/sat_browser/strings.py |
diffstat | 2 files changed, 17 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/browser/sat_browser/main_panel.py Wed Jan 13 13:11:44 2016 +0100 +++ b/src/browser/sat_browser/main_panel.py Wed Jan 13 13:12:58 2016 +0100 @@ -24,7 +24,7 @@ log = getLogger(__name__) from sat.core.i18n import _ -from sat_frontends.tools.strings import addURLToText +from sat_browser import strings from pyjamas.ui.DockPanel import DockPanel from pyjamas.ui.HorizontalPanel import HorizontalPanel @@ -162,7 +162,7 @@ status = C.PRESENCE[presence] else: status = self.EMPTY_STATUS - self.display.setHTML(addURLToText(status)) + self.display.setHTML(strings.addURLToText(status)) class PresenceStatusMenuBar(base_widget.WidgetMenuBar):
--- a/src/browser/sat_browser/strings.py Wed Jan 13 13:11:44 2016 +0100 +++ b/src/browser/sat_browser/strings.py Wed Jan 13 13:12:58 2016 +0100 @@ -44,21 +44,29 @@ return dict_ -def addURLToText(text): - """Workaround for a pyjamas bug with regex +def addURLToText(text, new_target=True): + """Check a text for what looks like an URL and make it clickable. - In some case, Pyjamas' re module get crazy and freeze browsers (tested with Iceweasel and Chromium). - we use javascript as a workaround - This method is inspired from https://stackoverflow.com/questions/1500260/detect-urls-in-text-with-javascript + @param string (unicode): text to process + @param new_target (bool): if True, make the link open in a new window """ + # XXX: Workaround for a pyjamas bug with regex, base method in sat.frontends.tools.strings + # In some case, Pyjamas' re module get crazy and freeze browsers (tested with Iceweasel and Chromium). + # we use javascript as a workaround + # This method is inspired from https://stackoverflow.com/questions/1500260/detect-urls-in-text-with-javascript + target = ' target="_blank"' if new_target else '' JS("""var urlRegex = /(https?:\/\/[^\s]+)/g; return text.replace(urlRegex, function(url) { - return '<a href="' + url + '">' + url + '</a>'; + return '<a href="' + url + '"' + target + ' class="url">' + url + '</a>'; })""") def addURLToImage(string): - """Check a XHTML text for what looks like an imageURL and make it clickable""" + """Check a XHTML text for what looks like an imageURL and make it clickable. + + @param string (unicode): text to process + """ + # XXX: Workaround for a pyjamas bug with regex, base method in sat.frontends.tools.strings def repl(match): url = match.group(1) return '<a href="%s" target="_blank">%s</a>' % (url, match.group(0))