From 94e12c168f5eec300fd23d0de25c7dc93a96c429 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 03 Mar 2014 17:51:21 -0500 Subject: [PATCH] Eliminate Gravatar profile linking and improve api --- src/main/java/com/gitblit/wicket/panels/DigestsPanel.java | 3 - /dev/null | 64 -------------------------------- src/main/java/com/gitblit/wicket/panels/GravatarImage.html | 2 src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java | 2 releases.moxie | 1 src/main/java/com/gitblit/wicket/GitBlitWebApp.java | 2 - src/main/java/com/gitblit/wicket/panels/ReflogPanel.java | 3 - src/main/java/com/gitblit/wicket/panels/GravatarImage.java | 36 ++++++------------ src/main/java/com/gitblit/wicket/pages/RootPage.java | 3 - 9 files changed, 18 insertions(+), 98 deletions(-) diff --git a/releases.moxie b/releases.moxie index cd4e43e..f7af6cb 100644 --- a/releases.moxie +++ b/releases.moxie @@ -53,6 +53,7 @@ - Revised committer verification to require a matching displayname or account name AND the email address - Serve repositories on both /r and /git, displaying /r because it is shorter - Eliminate HEAD from the blob, blame, and tree pages. That assumed a resource was available in HEAD and it may not be. + - Eliminate Gravatar profile linking. additions: - Added color modes for the blame page (issue-2) - Added an optional MirrorService which will periodically fetch ref updates from source repositories for mirrors (issue-5). Repositories must be manually cloned using native git and "--mirror". diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java index 35a0823..ab5ae2a 100644 --- a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java +++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java @@ -53,7 +53,6 @@ import com.gitblit.wicket.pages.ForkPage; import com.gitblit.wicket.pages.ForksPage; import com.gitblit.wicket.pages.GitSearchPage; -import com.gitblit.wicket.pages.GravatarProfilePage; import com.gitblit.wicket.pages.HistoryPage; import com.gitblit.wicket.pages.LogPage; import com.gitblit.wicket.pages.LogoutPage; @@ -178,7 +177,6 @@ mount("/registration", FederationRegistrationPage.class, "u", "n"); mount("/activity", ActivityPage.class, "r", "h"); - mount("/gravatar", GravatarProfilePage.class, "h"); mount("/lucene", LuceneSearchPage.class); mount("/project", ProjectPage.class, "p"); mount("/projects", ProjectsPage.class); diff --git a/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.html b/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.html deleted file mode 100644 index b4531a1..0000000 --- a/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.html +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" - xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" - xml:lang="en" - lang="en"> -<body> -<wicket:extend> -<div class="container"> - <div class="pageTitle"> - <h2>Gravatar<small> / <span wicket:id="username">[username]</span></small></h2> - </div> - <img class="gravatar" wicket:id="profileImage"></img> - <h2 wicket:id="displayName"></h2> - <div style="color:#888;"wicket:id="location"></div> - <div style="padding-top:5px;" wicket:id="aboutMe"></div> - <p></p> - <a wicket:id="profileLink"><wicket:message key="gb.completeGravatarProfile">[Complete profile on Gravatar.com]</wicket:message></a> - <p></p> -</div> -</wicket:extend> -</body> -</html> \ No newline at end of file diff --git a/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.java b/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.java deleted file mode 100644 index 984b297..0000000 --- a/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2011 gitblit.com. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.gitblit.wicket.pages; - -import java.io.IOException; -import java.text.MessageFormat; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.link.ExternalLink; - -import com.gitblit.models.GravatarProfile; -import com.gitblit.utils.ActivityUtils; -import com.gitblit.wicket.ExternalImage; -import com.gitblit.wicket.WicketUtils; - -/** - * Gravatar Profile Page shows the Gravatar information, if available. - * - * @author James Moger - * - */ -public class GravatarProfilePage extends RootPage { - - public GravatarProfilePage(PageParameters params) { - super(); - setupPage("", ""); - String object = WicketUtils.getObject(params); - GravatarProfile profile = null; - try { - if (object.indexOf('@') > -1) { - profile = ActivityUtils.getGravatarProfileFromAddress(object); - } else { - profile = ActivityUtils.getGravatarProfile(object); - } - } catch (IOException e) { - error(MessageFormat.format(getString("gb.failedToFindGravatarProfile"), object), e, true); - } - - if (profile == null) { - error(MessageFormat.format(getString("gb.failedToFindGravatarProfile"), object), true); - } - add(new Label("displayName", profile.displayName)); - add(new Label("username", profile.preferredUsername)); - add(new Label("location", profile.currentLocation)); - add(new Label("aboutMe", profile.aboutMe)); - ExternalImage image = new ExternalImage("profileImage", profile.thumbnailUrl + "?s=256&d=identicon"); - add(image); - add(new ExternalLink("profileLink", profile.profileUrl)); - } -} diff --git a/src/main/java/com/gitblit/wicket/pages/RootPage.java b/src/main/java/com/gitblit/wicket/pages/RootPage.java index 9141b4e..5ccc3a4 100644 --- a/src/main/java/com/gitblit/wicket/pages/RootPage.java +++ b/src/main/java/com/gitblit/wicket/pages/RootPage.java @@ -576,8 +576,7 @@ boolean standardLogin = session.authenticationType.isStandard(); if (app().settings().getBoolean(Keys.web.allowGravatar, true)) { - add(new GravatarImage("username", user.getDisplayName(), - user.emailAddress, "navbarGravatar", 20, false, false)); + add(new GravatarImage("username", user, "navbarGravatar", 20, false)); } else { add(new Label("username", user.getDisplayName())); } diff --git a/src/main/java/com/gitblit/wicket/panels/DigestsPanel.java b/src/main/java/com/gitblit/wicket/panels/DigestsPanel.java index ee97635..de09aa9 100644 --- a/src/main/java/com/gitblit/wicket/panels/DigestsPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/DigestsPanel.java @@ -203,8 +203,7 @@ final RepositoryCommit commit = commitItem.getModelObject(); // author gravatar - commitItem.add(new GravatarImage("commitAuthor", commit.getAuthorIdent().getName(), - commit.getAuthorIdent().getEmailAddress(), null, 16, false, false)); + commitItem.add(new GravatarImage("commitAuthor", commit.getAuthorIdent(), null, 16, false)); // merge icon if (commit.getParentCount() > 1) { diff --git a/src/main/java/com/gitblit/wicket/panels/GravatarImage.html b/src/main/java/com/gitblit/wicket/panels/GravatarImage.html index 9dda795..846a8f1 100644 --- a/src/main/java/com/gitblit/wicket/panels/GravatarImage.html +++ b/src/main/java/com/gitblit/wicket/panels/GravatarImage.html @@ -4,6 +4,6 @@ xml:lang="en" lang="en"> <wicket:panel> -<a href="#" wicket:id="link"><img wicket:id="image"></img></a> +<img wicket:id="image"></img> </wicket:panel> </html> \ No newline at end of file diff --git a/src/main/java/com/gitblit/wicket/panels/GravatarImage.java b/src/main/java/com/gitblit/wicket/panels/GravatarImage.java index 34af2bf..9507a25 100644 --- a/src/main/java/com/gitblit/wicket/panels/GravatarImage.java +++ b/src/main/java/com/gitblit/wicket/panels/GravatarImage.java @@ -15,22 +15,16 @@ */ package com.gitblit.wicket.panels; -import java.text.MessageFormat; - -import org.apache.wicket.behavior.SimpleAttributeModifier; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; -import org.apache.wicket.markup.html.link.Link; import org.eclipse.jgit.lib.PersonIdent; import com.gitblit.Keys; +import com.gitblit.models.UserModel; import com.gitblit.utils.ActivityUtils; -import com.gitblit.utils.StringUtils; import com.gitblit.wicket.ExternalImage; import com.gitblit.wicket.WicketUtils; -import com.gitblit.wicket.pages.GravatarProfilePage; /** - * Represents a Gravatar image and links to the Gravatar profile page. + * Represents a Gravatar image. * * @author James Moger * @@ -44,21 +38,21 @@ } public GravatarImage(String id, PersonIdent person, int width) { - this(id, person, width, true); + this(id, person.getName(), person.getEmailAddress(), "gravatar", width, true); } - public GravatarImage(String id, PersonIdent person, int width, boolean linked) { - this(id, person.getName(), person.getEmailAddress(), "gravatar", width, linked, true); + public GravatarImage(String id, PersonIdent person, String cssClass, int width, boolean identicon) { + this(id, person.getName(), person.getEmailAddress(), cssClass, width, identicon); } - public GravatarImage(String id, String username, String emailaddress, String cssClass, int width, boolean linked, boolean identicon) { + public GravatarImage(String id, UserModel user, String cssClass, int width, boolean identicon) { + this(id, user.getDisplayName(), user.emailAddress, cssClass, width, identicon); + } + + public GravatarImage(String id, String username, String emailaddress, String cssClass, int width, boolean identicon) { super(id); String email = emailaddress == null ? username.toLowerCase() : emailaddress.toLowerCase(); - String hash = StringUtils.getMD5(email); - Link<Void> link = new BookmarkablePageLink<Void>("link", GravatarProfilePage.class, - WicketUtils.newObjectParameter(hash)); - link.add(new SimpleAttributeModifier("target", "_blank")); String url; if (identicon) { url = ActivityUtils.getGravatarIdenticonUrl(email, width); @@ -69,14 +63,8 @@ if (cssClass != null) { WicketUtils.setCssClass(image, cssClass); } - link.add(image); - if (linked) { - WicketUtils.setHtmlTooltip(link, - MessageFormat.format("View Gravatar profile for {0}", username)); - } else { - WicketUtils.setHtmlTooltip(link, username); - } - add(link.setEnabled(linked)); + add(image); + WicketUtils.setHtmlTooltip(image, username); setVisible(app().settings().getBoolean(Keys.web.allowGravatar, true)); } } \ No newline at end of file diff --git a/src/main/java/com/gitblit/wicket/panels/ReflogPanel.java b/src/main/java/com/gitblit/wicket/panels/ReflogPanel.java index 70f5986..c1db726 100644 --- a/src/main/java/com/gitblit/wicket/panels/ReflogPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/ReflogPanel.java @@ -259,8 +259,7 @@ final RepositoryCommit commit = commitItem.getModelObject(); // author gravatar - commitItem.add(new GravatarImage("commitAuthor", commit.getAuthorIdent().getName(), - commit.getAuthorIdent().getEmailAddress(), null, 16, false, false)); + commitItem.add(new GravatarImage("commitAuthor", commit.getAuthorIdent(), null, 16, false)); // merge icon if (commit.getParentCount() > 1) { diff --git a/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java b/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java index 756b7db..f37cc2a 100644 --- a/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java @@ -145,7 +145,7 @@ } Fragment userFragment = new Fragment("registrant", "userRegistrant", RegistrantPermissionsPanel.this); - userFragment.add(new GravatarImage("userAvatar", ident, 20, false)); + userFragment.add(new GravatarImage("userAvatar", ident, 20)); userFragment.add(new Label("userName", entry.registrant)); item.add(userFragment); } else { -- Gitblit v1.9.1