Browse Source

Support custom header logo images of 120x45 (issue 208)

tags/v1.3.0
James Moger 11 years ago
parent
commit
1772567728

+ 2
- 0
build.xml View File

@@ -286,6 +286,7 @@
<class name="com.gitblit.FederationServlet" />
<class name="com.gitblit.GitFilter" />
<class name="com.gitblit.git.GitServlet" />
<class name="com.gitblit.LogoServlet" />
<class name="com.gitblit.PagesFilter" />
<class name="com.gitblit.PagesServlet" />
<class name="com.gitblit.RobotsTxtServlet" />
@@ -402,6 +403,7 @@
<class name="com.gitblit.FederationServlet" />
<class name="com.gitblit.GitFilter" />
<class name="com.gitblit.git.GitServlet" />
<class name="com.gitblit.LogoServlet" />
<class name="com.gitblit.PagesFilter" />
<class name="com.gitblit.PagesServlet" />
<class name="com.gitblit.RobotsTxtServlet" />

+ 1
- 0
releases.moxie View File

@@ -52,6 +52,7 @@ r17: {
additions:
- Added a ui for the ref log introduced in 1.2.1 (issue-177)
- Added weblogic.xml to WAR for deployment on WebLogic (issue 199)
- Support setting a custom header logo (issue 208)
- Support username substitution in web.otherUrls (issue 213)
- Option to force client-side basic authentication instead of form-based authentication if web.authenticateViewPages=true (issue 222)
- Setting to automatically create an user account based on an authenticated user principal from the servlet container (issue-246)

+ 7
- 0
src/main/distrib/data/gitblit.properties View File

@@ -531,6 +531,13 @@ realm.minPasswordLength = 5
# SINCE 0.5.0
web.siteName =
# You may specify a different logo image for the header but it must be 120x45px.
# If the specified file does not exist, the default Gitblit logo will be used.
#
# SINCE 1.3.0
# BASEFOLDER
web.headerLogo = ${baseFolder}/logo.png
# If *web.authenticateAdminPages*=true, users with "admin" role can create
# repositories, create users, and edit repository metadata.
#

+ 14
- 1
src/main/java/WEB-INF/web.xml View File

@@ -140,7 +140,20 @@
<servlet-name>PagesServlet</servlet-name>
<url-pattern>/pages/*</url-pattern>
</servlet-mapping>
<!-- Logo Servlet
<url-pattern> MUST match:
* Wicket Filter ignorePaths parameter -->
<servlet>
<servlet-name>LogoServlet</servlet-name>
<servlet-class>com.gitblit.LogoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LogoServlet</servlet-name>
<url-pattern>/logo.png</url-pattern>
</servlet-mapping>
<!-- Robots.txt Servlet
<url-pattern> MUST match:
@@ -269,7 +282,7 @@
* PagesFilter <url-pattern>
* PagesServlet <url-pattern>
* com.gitblit.Constants.PAGES_PATH -->
<param-value>git/,feed/,zip/,federation/,rpc/,pages/,robots.txt,sparkleshare/</param-value>
<param-value>git/,feed/,zip/,federation/,rpc/,pages/,robots.txt,logo.png,sparkleshare/</param-value>
</init-param>
</filter>
<filter-mapping>

+ 93
- 0
src/main/java/com/gitblit/LogoServlet.java View File

@@ -0,0 +1,93 @@
/*
* Copyright 2013 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;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Handles requests for logo.png
*
* @author James Moger
*
*/
public class LogoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final long lastModified = System.currentTimeMillis();
public LogoServlet() {
super();
}
@Override
protected long getLastModified(HttpServletRequest req) {
File file = GitBlit.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png");
if (file.exists()) {
return file.lastModified();
} else {
return lastModified;
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
InputStream is = null;
try {
String contentType = null;
File file = GitBlit.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png");
if (file.exists()) {
// custom logo
ServletContext context = request.getSession().getServletContext();
contentType = context.getMimeType(file.getName());
response.setContentLength((int) file.length());
response.setDateHeader("Last-Modified", file.lastModified());
is = new FileInputStream(file);
} else {
// default logo
response.setDateHeader("Last-Modified", lastModified);
is = getClass().getResourceAsStream("/logo.png");
}
if (contentType == null) {
contentType = "image/png";
}
response.setContentType(contentType);
OutputStream os = response.getOutputStream();
byte[] buf = new byte[4096];
int bytesRead = is.read(buf);
while (bytesRead != -1) {
os.write(buf, 0, bytesRead);
bytesRead = is.read(buf);
}
os.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
is.close();
}
}
}

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

@@ -14,7 +14,7 @@
<span class="icon-bar"></span>
</a>
<a class="brand" wicket:id="rootLink">
<img src="gitblt_25_white.png" width="79" height="25" alt="gitblit" class="logo"/>
<img src="logo.png" height="45" width="120" class="logo"/>
</a>
<div class="nav-collapse">

BIN
src/main/java/logo.png View File


+ 1
- 1
src/main/resources/gitblit.css View File

@@ -59,7 +59,7 @@ hr {
}
.navbar .brand {
padding: 10px 20px;
padding: 0px 10px 0px 20px;
}
.navbar .pull-right {

Loading…
Cancel
Save