Mercurial > kallithea
changeset 5892:7a7b817aa156
helpers: cleanup of gravatar handling
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Wed, 04 May 2016 01:18:25 +0200 |
parents | 9a5cf82c1ea8 |
children | 8d01c8a72bb5 |
files | kallithea/lib/helpers.py kallithea/public/js/base.js |
diffstat | 2 files changed, 32 insertions(+), 33 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/lib/helpers.py Wed May 04 01:18:25 2016 +0200 +++ b/kallithea/lib/helpers.py Wed May 04 01:18:25 2016 +0200 @@ -839,7 +839,7 @@ #============================================================================== # GRAVATAR URL #============================================================================== -def gravatar(email_address, cls='', size=30, ssl_enabled=True): +def gravatar(email_address, cls='', size=30): """return html element of the gravatar This method will return an <img> with the resolution double the size (for @@ -847,44 +847,42 @@ empty then we fallback to using an icon. """ - src = gravatar_url(email_address, size*2, ssl_enabled) + src = gravatar_url(email_address, size * 2) - # here it makes sense to use style="width: ..." (instead of, say, a - # stylesheet) because we using this to generate a high-res (retina) size - tmpl = '<img alt="" class="{cls}" style="width: {size}px; height: {size}px" src="{src}"/>' + if src: + # here it makes sense to use style="width: ..." (instead of, say, a + # stylesheet) because we using this to generate a high-res (retina) size + html = ('<img alt="" class="{cls}" style="width: {size}px; height: {size}px" src="{src}"/>' + .format(cls=cls, size=size, src=src)) - # if src is empty then there was no gravatar, so we use a font icon - if not src: - tmpl = """<i class="icon-user {cls}" style="font-size: {size}px;"></i>""" + else: + # if src is empty then there was no gravatar, so we use a font icon + html = ("""<i class="icon-user {cls}" style="font-size: {size}px;"></i>""" + .format(cls=cls, size=size, src=src)) - tmpl = tmpl.format(cls=cls, size=size, src=src) - return literal(tmpl) + return literal(html) -def gravatar_url(email_address, size=30, ssl_enabled=True): +def gravatar_url(email_address, size=30): # doh, we need to re-import those to mock it later from pylons import url from pylons import tmpl_context as c + if not c.visual.use_gravatar: + return "" _def = 'anonymous@kallithea-scm.org' # default gravatar - _use_gravatar = c.visual.use_gravatar - _gravatar_url = c.visual.gravatar_url or User.DEFAULT_GRAVATAR_URL - email_address = email_address or _def - if not _use_gravatar or not email_address or email_address == _def: + if email_address == _def: return "" - if _use_gravatar: - _md5 = lambda s: hashlib.md5(s).hexdigest() - - tmpl = _gravatar_url - parsed_url = urlparse.urlparse(url.current(qualified=True)) - tmpl = tmpl.replace('{email}', email_address) \ - .replace('{md5email}', _md5(safe_str(email_address).lower())) \ - .replace('{netloc}', parsed_url.netloc) \ - .replace('{scheme}', parsed_url.scheme) \ - .replace('{size}', safe_str(size)) - return tmpl + parsed_url = urlparse.urlparse(url.current(qualified=True)) + url = (c.visual.gravatar_url or User.DEFAULT_GRAVATAR_URL ) \ + .replace('{email}', email_address) \ + .replace('{md5email}', hashlib.md5(safe_str(email_address).lower()).hexdigest()) \ + .replace('{netloc}', parsed_url.netloc) \ + .replace('{scheme}', parsed_url.scheme) \ + .replace('{size}', safe_str(size)) + return url class Page(_Page): """
--- a/kallithea/public/js/base.js Wed May 04 01:18:25 2016 +0200 +++ b/kallithea/public/js/base.js Wed May 04 01:18:25 2016 +0200 @@ -1076,18 +1076,19 @@ + "</span>" + full.substring(matchindex + snippet.length); }; -var gravatar = function(link, size, cssclass) { - var elem = '<img alt="" class="{2}" style="width: {0}px; height: {0}px" src="{1}"/>'.format(size, link, cssclass); - if (!link) { - elem = '<i class="icon-user {1}" style="font-size: {0}px;"></i>'.format(size, cssclass); +var gravatar = function(gravatar_lnk, size, cssclass) { + if (!gravatar_lnk) { + return '<i class="icon-user {1}" style="font-size: {0}px;"></i>'.format(size, cssclass); } - return elem; + return '<img alt="" class="{2}" style="width: {0}px; height: {0}px" src="{1}"/>'.format(size, gravatar_lnk, cssclass); } -var autocompleteGravatar = function(res, link, size, group) { - var elem = gravatar(link, size, "perm-gravatar-ac"); +var autocompleteGravatar = function(res, gravatar_lnk, size, group) { + var elem; if (group !== undefined) { elem = '<i class="perm-gravatar-ac icon-users"></i>'; + } else { + elem = gravatar(gravatar_lnk, size, "perm-gravatar-ac"); } return '<div class="ac-container-wrap">{0}{1}</div>'.format(elem, res); }