Eliminate Gravatar profile linking and improve api
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 {