James Moger
2011-11-14 9dcd534f3e1edb72944fcfb98076cccb36a71df4
Added optional Gravatar support
1 files added
4 files modified
83 ■■■■■ changed files
distrib/gitblit.properties 5 ●●●●● patch | view | raw | blame | history
docs/04_releases.mkd 9 ●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/GravatarImage.java 61 ●●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/CommitPage.html 5 ●●●●● patch | view | raw | blame | history
src/com/gitblit/wicket/pages/CommitPage.java 3 ●●●●● patch | view | raw | blame | history
distrib/gitblit.properties
@@ -110,6 +110,11 @@
# SINCE 0.7.0 
web.enableRpcAdministration = false
# Allow Gravatar images to be displayed in Gitblit pages.
#
# SINCE 0.8.0
web.allowGravatar = true
# Allow dynamic zip downloads.
#
# SINCE 0.5.0   
docs/04_releases.mkd
@@ -3,6 +3,13 @@
### Current Release
**%VERSION%** ([go](http://code.google.com/p/gitblit/downloads/detail?name=%GO%) | [war](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%) | [fedclient](http://code.google.com/p/gitblit/downloads/detail?name=%FEDCLIENT%) | [manager](http://code.google.com/p/gitblit/downloads/detail?name=%MANAGER%) | [api](http://code.google.com/p/gitblit/downloads/detail?name=%API%)) based on [%JGIT%][jgit]   *released %BUILDDATE%*
- added: optional Gravatar integration
    **New:** *web.allowGravatar = true*
### Older Releases
**0.7.0** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.7.0.zip) | [war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.7.0.war) | [fedclient](http://code.google.com/p/gitblit/downloads/detail?name=fedclient-0.7.0.zip) | [manager](http://code.google.com/p/gitblit/downloads/detail?name=manager-0.7.0.zip) | [api](http://code.google.com/p/gitblit/downloads/detail?name=gbapi-0.7.0.zip)) based on [JGit 1.1.0 (201109151100-r)][jgit]   *released 2011-11-11*
- **security**: fixed security hole when cloning clone-restricted repository with TortoiseGit (issue 28)
- improved: updated ui with Twitter's Bootstrap CSS toolkit  
    **New:** *web.loginMessage = gitblit*
@@ -34,8 +41,6 @@
- fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later
- updated: MarkdownPapers 1.2.5
- updated: Wicket 1.4.19
### Older Releases
**0.6.0** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.6.0.zip) | [war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.6.0.war) | [fedclient](http://code.google.com/p/gitblit/downloads/detail?name=fedclient-0.6.0.zip)) based on [JGit 1.1.0 (201109151100-r)][jgit]   *released 2011-09-27*
src/com/gitblit/wicket/GravatarImage.java
New file
@@ -0,0 +1,61 @@
/*
 * 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;
import java.text.MessageFormat;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebComponent;
import org.apache.wicket.model.Model;
import org.eclipse.jgit.lib.PersonIdent;
import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.utils.StringUtils;
/**
 * Represents a Gravatar image.
 *
 * @author James Moger
 *
 */
public class GravatarImage extends WebComponent {
    private static final long serialVersionUID = 1L;
    public GravatarImage(String id, PersonIdent person) {
        this(id, person, 0);
    }
    public GravatarImage(String id, PersonIdent person, int width) {
        super(id);
        if (width <= 0) {
            width = 60;
        }
        String authorhash = StringUtils.getMD5(person.getEmailAddress().toLowerCase());
        String url = MessageFormat.format("http://www.gravatar.com/avatar/{0}?s={1,number,0}&d=identicon", authorhash, width);
        add(new AttributeModifier("src", true, new Model<String>(url)));
        setVisible(GitBlit.getBoolean(Keys.web.allowGravatar, true));
    }
    @Override
    protected void onComponentTag(ComponentTag tag) {
        super.onComponentTag(tag);
        checkComponentTag(tag, "img");
    }
}
src/com/gitblit/wicket/pages/CommitPage.html
@@ -15,6 +15,9 @@
    <!-- commit header -->
    <div wicket:id="commitHeader">[commit header]</div>
    
    <!--  Author Gravatar -->
    <img style="float:right;vertical-align: top;" wicket:id="authorAvatar" />
    <!-- commit info -->
    <table class="plain">
        <tr><th><wicket:message key="gb.refs">refs</wicket:message></th><td><div wicket:id="refsPanel">[references]</div></td></tr>
@@ -53,6 +56,8 @@
                    <tr><td><span class="sha1" wicket:id="authorName"></span></td></tr>
                    <tr><td><span class="sha1" wicket:id="authorDate"></span></td></tr>
                </table>
                <!--  Note Author Gravatar -->
                <img style="vertical-align: top;" wicket:id="noteAuthorAvatar" />
            </td>
            <td class="message"><span class="sha1" wicket:id="noteContent"></span></td>
        </tr>
src/com/gitblit/wicket/pages/CommitPage.java
@@ -38,6 +38,7 @@
import com.gitblit.models.GitNote;
import com.gitblit.models.PathModel.PathChangeModel;
import com.gitblit.utils.JGitUtils;
import com.gitblit.wicket.GravatarImage;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.CommitHeaderPanel;
import com.gitblit.wicket.panels.CommitLegendPanel;
@@ -81,6 +82,7 @@
        add(createPersonPanel("commitAuthor", c.getAuthorIdent(), Constants.SearchType.AUTHOR));
        add(WicketUtils.createTimestampLabel("commitAuthorDate", c.getAuthorIdent().getWhen(),
                getTimeZone()));
        add(new GravatarImage("authorAvatar", c.getAuthorIdent()));
        // committer
        add(createPersonPanel("commitCommitter", c.getCommitterIdent(), Constants.SearchType.COMMITTER));
@@ -126,6 +128,7 @@
                item.add(new RefsPanel("refName", repositoryName, Arrays.asList(entry.notesRef)));
                item.add(createPersonPanel("authorName", entry.notesRef.getAuthorIdent(),
                        Constants.SearchType.AUTHOR));
                item.add(new GravatarImage("noteAuthorAvatar", entry.notesRef.getAuthorIdent()));
                item.add(WicketUtils.createTimestampLabel("authorDate", entry.notesRef
                        .getAuthorIdent().getWhen(), getTimeZone()));
                item.add(new Label("noteContent", GitBlit.self().processCommitMessage(