Browse Source

Eliminate Gravatar profile linking and improve api

tags/v1.4.0
James Moger 10 years ago
parent
commit
94e12c168f

+ 1
- 0
releases.moxie View File

@@ -53,6 +53,7 @@ r20: {
- 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".

+ 0
- 2
src/main/java/com/gitblit/wicket/GitBlitWebApp.java View File

@@ -53,7 +53,6 @@ import com.gitblit.wicket.pages.FederationRegistrationPage;
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 @@ public class GitBlitWebApp extends WebApplication {
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);

+ 0
- 22
src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.html View File

@@ -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>

+ 0
- 64
src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.java View File

@@ -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));
}
}

+ 1
- 2
src/main/java/com/gitblit/wicket/pages/RootPage.java View File

@@ -576,8 +576,7 @@ public abstract class RootPage extends BasePage {
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()));
}

+ 1
- 2
src/main/java/com/gitblit/wicket/panels/DigestsPanel.java View File

@@ -203,8 +203,7 @@ public class DigestsPanel extends BasePanel {
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) {

+ 1
- 1
src/main/java/com/gitblit/wicket/panels/GravatarImage.html View File

@@ -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>

+ 12
- 24
src/main/java/com/gitblit/wicket/panels/GravatarImage.java View File

@@ -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 class GravatarImage extends BasePanel {
}
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, String cssClass, int width, boolean identicon) {
this(id, person.getName(), person.getEmailAddress(), cssClass, width, identicon);
}
public GravatarImage(String id, PersonIdent person, int width, boolean linked) {
this(id, person.getName(), person.getEmailAddress(), "gravatar", width, linked, true);
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 linked, boolean 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 @@ public class GravatarImage extends BasePanel {
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));
}
}

+ 1
- 2
src/main/java/com/gitblit/wicket/panels/ReflogPanel.java View File

@@ -259,8 +259,7 @@ public class ReflogPanel extends BasePanel {
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) {

+ 1
- 1
src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java View File

@@ -145,7 +145,7 @@ public class RegistrantPermissionsPanel extends BasePanel {
}

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 {

Loading…
Cancel
Save