# HG changeset patch # User Sean Farley # Date 2014-09-03 02:35:49 # Node ID 315e8a847e2e98a133ba32726738e1d35ff83483 # Parent 83087ae63bd627294b1cc98476c09aa0ab9b6a38 gravatar: use font awesome icons This changes gravatar_url to return an empty string (meaning use an icon) instead of returning a default image. Since this was a structural change, the changeset is fairly large. diff --git a/kallithea/controllers/pullrequests.py b/kallithea/controllers/pullrequests.py --- a/kallithea/controllers/pullrequests.py +++ b/kallithea/controllers/pullrequests.py @@ -298,7 +298,8 @@ class PullrequestsController(BaseRepoCon username=repo.user.username, firstname=repo.user.firstname, lastname=repo.user.lastname, - gravatar_link=h.gravatar_url(repo.user.email, 14)), + gravatar_link=h.gravatar_url(repo.user.email, 28), + gravatar_size=14), } @LoginRequired() diff --git a/kallithea/lib/helpers.py b/kallithea/lib/helpers.py --- a/kallithea/lib/helpers.py +++ b/kallithea/lib/helpers.py @@ -877,6 +877,10 @@ def gravatar(email_address, cls='', size # stylesheet) because we using this to generate a high-res (retina) size tmpl = """gravatar""" + # if src is empty then there was no gravatar, so we use a font icon + if not src: + tmpl = """""" + tmpl = tmpl.format(cls=cls, size=size, src=src) return literal(tmpl) @@ -895,9 +899,7 @@ def gravatar_url(email_address, size=30, email_address = safe_str(email_address) if not _use_gravatar or not email_address or email_address == _def: - # pick best matching size to one given in size param - f = lambda a, l: min(l, key=lambda x: abs(x - a)) - return url("/images/user%s.png" % f(size, [14, 16, 20, 24, 30])) + return "" if _use_gravatar: _md5 = lambda s: hashlib.md5(s).hexdigest() diff --git a/kallithea/model/repo.py b/kallithea/model/repo.py --- a/kallithea/model/repo.py +++ b/kallithea/model/repo.py @@ -141,7 +141,8 @@ class RepoModel(BaseModel): 'fname': u.name, 'lname': u.lastname, 'nname': u.username, - 'gravatar_lnk': h.gravatar_url(u.email, 14) + 'gravatar_lnk': h.gravatar_url(u.email, size=28), + 'gravatar_size': 14, } for u in users] ) diff --git a/kallithea/public/images/icons/group.png b/kallithea/public/images/icons/group.png deleted file mode 100644 index 7fb4e1f1e1cd6ee67d33ffd24f09ddd5c3478bec..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@ -1) { - return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,true); + return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,null,true); } - return _gravatar(grprefix + oResultData.grname + grsuffix, null,true); + return _gravatar(grprefix + oResultData.grname + grsuffix, null, null, true); // Users } else if (oResultData.nname != undefined) { var fname = oResultData.fname || ""; @@ -1239,7 +1243,7 @@ var _MembersAutoComplete = function (div displaynname = nname ? "(" + nname + ")" : ""; } - return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk); + return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk, oResultData.gravatar_size); } else { return ''; } @@ -1315,7 +1319,7 @@ var MentionsAutoComplete = function (div var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers); ownerDS.responseSchema = { - fields: ["id", "fname", "lname", "nname", "gravatar_lnk"] + fields: ["id", "fname", "lname", "nname", "gravatar_lnk", "gravatar_size"] }; // Instantiate AutoComplete for mentions @@ -1343,12 +1347,16 @@ var MentionsAutoComplete = function (div } var query = sQuery.toLowerCase(); - var _gravatar = function(res, em, group){ + var _gravatar = function(res, em, size, group){ + var elem = 'gravatar'.format(size, em); + if (!em) { + elem = ''.format(size); + } if (group !== undefined){ - em = '/images/icons/group.png' + elem = '' } - var tmpl = '
{1}
' - return tmpl.format(em,res) + var tmpl = '
{0}{1}
' + return tmpl.format(elem,res) } if (oResultData.nname != undefined) { var fname = oResultData.fname || ""; @@ -1379,7 +1387,7 @@ var MentionsAutoComplete = function (div displaynname = nname ? "(" + nname + ")" : ""; } - return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk); + return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk, oResultData.gravatar_size); } else { return ''; } @@ -1458,15 +1466,18 @@ var MentionsAutoComplete = function (div }); } -var addReviewMember = function(id,fname,lname,nname,gravatar_link){ +var addReviewMember = function(id,fname,lname,nname,gravatar_link,gravatar_size){ var displayname = "{0} {1} ({2})".format(fname, lname, nname); + var gravatarelm = 'gravatar'.format(gravatar_size, gravatar_link); + if (!gravatar_link) + gravatarelm = ''.format(gravatar_size); var element = ( '
  • \n'+ '
    \n'+ '
    \n'+ ' \n'+ '
    \n'+ - '
    gravatar
    \n'+ + '
    {0}
    \n'+ '
    {1}
    \n'+ ' \n'+ '
    \n'+ @@ -1474,7 +1485,7 @@ var addReviewMember = function(id,fname, '
    (add not saved)\n'+ '
    \n'+ '
  • \n' - ).format(gravatar_link, displayname, id); + ).format(gravatarelm, displayname, id); // check if we don't have this ID already in var ids = []; $('#review_members').find('li').each(function() { @@ -1545,7 +1556,7 @@ var PullRequestAutoComplete = function ( var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers); ownerDS.responseSchema = { - fields: ["id", "fname", "lname", "nname", "gravatar_lnk"] + fields: ["id", "fname", "lname", "nname", "gravatar_lnk", "gravatar_size"] }; // Instantiate AutoComplete for mentions @@ -1573,12 +1584,16 @@ var PullRequestAutoComplete = function ( } var query = sQuery.toLowerCase(); - var _gravatar = function(res, em, group){ + var _gravatar = function(res, em, size, group){ + var elem = 'gravatar'.format(size, em); + if (!em) { + elem = ''.format(size); + } if (group !== undefined){ - em = '/images/icons/group.png' + elem = '' } - var tmpl = '
    {1}
    ' - return tmpl.format(em,res) + var tmpl = '
    {0}{1}
    ' + return tmpl.format(elem,res) } if (oResultData.nname != undefined) { var fname = oResultData.fname || ""; @@ -1609,7 +1624,7 @@ var PullRequestAutoComplete = function ( displaynname = nname ? "(" + nname + ")" : ""; } - return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk); + return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk, oResultData.gravatar_size); } else { return ''; } @@ -1628,7 +1643,7 @@ var PullRequestAutoComplete = function ( //fill the autocomplete with value if (oData.nname != undefined) { addReviewMember(oData.id, oData.fname, oData.lname, oData.nname, - oData.gravatar_lnk); + oData.gravatar_lnk, oData.gravatar_size); myAC.dataSource.cache.push(oData.id); $('#user').val(''); } diff --git a/kallithea/templates/admin/repo_groups/repo_group_edit_perms.html b/kallithea/templates/admin/repo_groups/repo_group_edit_perms.html --- a/kallithea/templates/admin/repo_groups/repo_group_edit_perms.html +++ b/kallithea/templates/admin/repo_groups/repo_group_edit_perms.html @@ -57,7 +57,7 @@ ${h.form(url('edit_repo_group_perms', gr ${h.radio('g_perm_%s' % g2p.users_group.users_group_name,'group.write')} ${h.radio('g_perm_%s' % g2p.users_group.users_group_name,'group.admin')} - + %if h.HasPermissionAny('hg.admin')(): ${g2p.users_group.users_group_name} diff --git a/kallithea/templates/admin/repos/repo_edit_permissions.html b/kallithea/templates/admin/repos/repo_edit_permissions.html --- a/kallithea/templates/admin/repos/repo_edit_permissions.html +++ b/kallithea/templates/admin/repos/repo_edit_permissions.html @@ -56,7 +56,7 @@ ${h.form(url('edit_repo_perms_update', r ${h.radio('g_perm_%s' % g2p.users_group.users_group_name,'repository.write')} ${h.radio('g_perm_%s' % g2p.users_group.users_group_name,'repository.admin')} - + %if h.HasPermissionAny('hg.admin')(): ${g2p.users_group.users_group_name} %else: diff --git a/kallithea/templates/admin/user_groups/user_group_edit_perms.html b/kallithea/templates/admin/user_groups/user_group_edit_perms.html --- a/kallithea/templates/admin/user_groups/user_group_edit_perms.html +++ b/kallithea/templates/admin/user_groups/user_group_edit_perms.html @@ -57,7 +57,7 @@ ${h.form(url('edit_user_group_perms', id ${h.radio('g_perm_%s' % g2p.user_group.users_group_name,'usergroup.write')} ${h.radio('g_perm_%s' % g2p.user_group.users_group_name,'usergroup.admin')} - + %if h.HasPermissionAny('hg.admin')(): ${g2p.user_group.users_group_name} diff --git a/kallithea/templates/pullrequests/pullrequest.html b/kallithea/templates/pullrequests/pullrequest.html --- a/kallithea/templates/pullrequests/pullrequest.html +++ b/kallithea/templates/pullrequests/pullrequest.html @@ -102,7 +102,7 @@ ${self.repo_context_bar('showpullrequest %for member in [c.a_repo.user]:
  • -
    gravatar
    +
    ${h.gravatar(member.email, 14)}
    ${member.firstname} ${member.lastname} (${_('owner')})
    @@ -179,7 +179,7 @@ ${self.repo_context_bar('showpullrequest $('#review_members').html(''); addReviewMember(data.user.user_id, data.user.firstname, data.user.lastname, data.user.username, - data.user.gravatar_link); + data.user.gravatar_link, data.user_gravatar_size); // re-populate the select2 thingie $("#other_ref").select2({