@@ -20,7 +20,8 @@ | |||
/src/WEB-INF/reference.properties | |||
/bin/ | |||
/.settings/ | |||
/javadoc | |||
/express | |||
/build-demo.xml | |||
/users.conf | |||
/javadoc | |||
/express | |||
/build-demo.xml | |||
/users.conf | |||
*.directory |
@@ -227,9 +227,8 @@ | |||
<copy todir="${docs.output.dir}"> | |||
<!-- Copy selected Gitblit resources --> | |||
<fileset dir="${project.resources.dir}"> | |||
<include name="bootstrap.140.css" /> | |||
<include name="bootstrap.gb.css" /> | |||
<include name="markdown.css" /> | |||
<include name="bootstrap/**/*" /> | |||
<include name="gitblit.css" /> | |||
<include name="gitblt_25_white.png" /> | |||
<include name="gitblt-favicon.png" /> | |||
<include name="lock_go_16x16.png" /> | |||
@@ -710,9 +709,8 @@ | |||
<copy todir="${project.site.dir}"> | |||
<!-- Copy selected Gitblit resources --> | |||
<fileset dir="${project.resources.dir}"> | |||
<include name="bootstrap.140.css" /> | |||
<include name="bootstrap.gb.css" /> | |||
<include name="markdown.css" /> | |||
<include name="bootstrap/**/*" /> | |||
<include name="gitblit.css" /> | |||
<include name="gitblt_25_white.png" /> | |||
<include name="gitblt-favicon.png" /> | |||
<include name="lock_go_16x16.png" /> |
@@ -282,7 +282,8 @@ web.mountParameters = true | |||
# | |||
# <https://issues.apache.org/jira/browse/WICKET-1303> | |||
# <http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10> | |||
# Add *org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true* to *CATALINA_OPTS* | |||
# Add *-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true* to your | |||
# *CATALINA_OPTS* or to your JVM launch parameters | |||
# | |||
# SINCE 0.5.2 | |||
web.forwardSlashCharacter = / |
@@ -1,10 +1,10 @@ | |||
## What is Gitblit? | |||
<div class="well" style="margin-left:5px;float:right;width:275px;padding: 10px 10px;"> | |||
<b>Current Release %VERSION% (%BUILDDATE%)</b> <a href="releases.html">changelog</a> | |||
<div style="padding:5px;"><a style="width:150px;text-decoration:none;" class="btn success" href="http://code.google.com/p/gitblit/downloads/detail?name=%GO%">Download Gitblit GO</a></div> | |||
<div style="padding:5px;"><a style="width:150px;text-decoration:none;" class="btn danger" href="http://code.google.com/p/gitblit/downloads/detail?name=%WAR%">Download Gitblit WAR</a></div> | |||
<div style="padding:5px;"><a style="width:150px;text-decoration:none;" class="btn info" href="http://code.google.com/p/gitblit/downloads/detail?name=%EXPRESS%">Download Gitblit Express</a> <span class="label warning">BETA</span></div> | |||
<div style="padding:5px;"><a style="width:150px;text-decoration:none;" class="btn primary" href="http://code.google.com/p/gitblit/downloads/detail?name=%MANAGER%">Download Gitblit Manager</a></div> | |||
<div style="padding:5px;"><a style="width:175px;text-decoration:none;" class="btn btn-success" href="http://code.google.com/p/gitblit/downloads/detail?name=%GO%">Download Gitblit GO</a></div> | |||
<div style="padding:5px;"><a style="width:175px;text-decoration:none;" class="btn btn-danger" href="http://code.google.com/p/gitblit/downloads/detail?name=%WAR%">Download Gitblit WAR</a></div> | |||
<div style="padding:5px;"><a style="width:175px;text-decoration:none;" class="btn btn-info" href="http://code.google.com/p/gitblit/downloads/detail?name=%EXPRESS%">Download Gitblit Express</a> <span class="label label-warning">BETA</span></div> | |||
<div style="padding:5px;"><a style="width:175px;text-decoration:none;" class="btn btn-primary" href="http://code.google.com/p/gitblit/downloads/detail?name=%MANAGER%">Download Gitblit Manager</a></div> | |||
<div style="text-align:center"> | |||
<a href="http://code.google.com/p/gitblit/downloads/detail?name=%API%">Gitblit API</a> | <a href="http://code.google.com/p/gitblit/downloads/detail?name=%FEDCLIENT%">Gitblit Federation Client</a> | |||
<br/> | |||
@@ -12,7 +12,7 @@ | |||
</div> | |||
<div style="padding-top:5px;"> | |||
<table class="condensed-table"> | |||
<table class="table condensed-table"> | |||
<tbody> | |||
<tr><th>License</th><td><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a></td></tr> | |||
<tr><th>Sources</th><td><a href="http://github.com/gitblit">GitHub</a> & <a href="http://code.google.com/p/gitblit/source/list">GoogleCode</a></td></tr> | |||
@@ -47,7 +47,7 @@ All dependencies are bundled. | |||
All dependencies are bundled. | |||
### Express: For the Cloud <span class="label warning" style="vertical-align: middle;">BETA</span> | |||
### Express: For the Cloud <span class="label label-warning" style="vertical-align: middle;">BETA</span> | |||
*Gitblit Express* is a prepared distribution for [RedHat's OpenShift][rhcloud] cloud service. | |||
All dependencies are bundled. |
@@ -1,121 +1,138 @@ | |||
## Screenshots | |||
<table class="screenshots"> | |||
<tr><td colspan='3'><h3>Gitblit GO/WAR</h3></td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/00.png" title="Repository List"><img alt="Repositories" src="thumbs/00.png" /></a> | |||
<br/>Repository List | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/00b.png" title="Repository List (Admin)"><img alt="Repositories (Admin)" src="thumbs/00b.png" /></a> | |||
<br/>Repository List (Admin) | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/00c.png" title="Activity"><img alt="Activity" src="thumbs/00c.png" /></a> | |||
<br/>Activity | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/01c.png" title="Users & Teams"><img alt="Users & Teams" src="thumbs/01c.png" /></a> | |||
<br/>Users & Teams | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/01.png" title="New User"><img alt="New User" src="thumbs/01.png" /></a> | |||
<br/>New User | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/01b.png" title="New Team"><img alt="New Team" src="thumbs/01b.png" /></a> | |||
<br/>New Team | |||
</td></tr> | |||
### Gitblit GO/WAR | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/02.png" title="Edit Repository"><img alt="Edit Repository" src="thumbs/02.png" /></a> | |||
<br/>Edit Repository | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/03.png" title="Repository Summary"><img alt="Summary" src="thumbs/03.png" /></a> | |||
<br/>Repository Summary | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/04.png" title="Repository Log"><img alt="Log" src="thumbs/04.png" /></a> | |||
<br/>Repository Log | |||
</td></tr> | |||
<ul class="thumbnails"> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/00.png" title="Repository List"><img alt="Repositories" src="thumbs/00.png" /></a> | |||
<h5>Repository List</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/00b.png" title="Repository List (Admin)"><img alt="Repositories (Admin)" src="thumbs/00b.png" /></a> | |||
<h5>Repository List (Admin)</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/00c.png" title="Activity"><img alt="Activity" src="thumbs/00c.png" /></a> | |||
<h5>Activity</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/01c.png" title="Users & Teams"><img alt="Users & Teams" src="thumbs/01c.png" /></a> | |||
<h5>Users & Teams</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/01.png" title="New User"><img alt="New User" src="thumbs/01.png" /></a> | |||
<h5>New User</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/01b.png" title="New Team"><img alt="New Team" src="thumbs/01b.png" /></a> | |||
<h5>New Team</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/02.png" title="Edit Repository"><img alt="Edit Repository" src="thumbs/02.png" /></a> | |||
<h5>Edit Repository</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/03.png" title="Repository Summary"><img alt="Summary" src="thumbs/03.png" /></a> | |||
<h5>Repository Summary</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/04.png" title="Repository Log"><img alt="Log" src="thumbs/04.png" /></a> | |||
<h5>Repository Log</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/10.png" title="Repository Tags"><img alt="Tags" src="thumbs/10.png" /></a> | |||
<h5>Repository Tags</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/05.png" title="Repository Tree"><img alt="Tree" src="thumbs/05.png" /></a> | |||
<h5>Repository Tree</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/06.png" title="Commit Page"><img alt="Commit Page" src="thumbs/06.png" /></a> | |||
<h5>Commit Page</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/07.png" title="Commit Diff"><img alt="Commit Diff" src="thumbs/07.png" /></a> | |||
<h5>Commit Diff</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/09.png" title="Branch Metrics"><img alt="Metrics" src="thumbs/09.png" /></a> | |||
<h5>Branch Metrics</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/08.png" title="Blob View with Syntax Highlighting"><img alt="Blob" src="thumbs/08.png" /></a> | |||
<h5>Blob View with Syntax Highlighting</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/11.png" title="Blame"><img alt="Blame" src="thumbs/11.png" /></a> | |||
<h5>Blame</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/12.png" title="Federation Panels"><img alt="Federation Panels" src="thumbs/12.png" /></a> | |||
<h5>Federation Panels</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/13.png" title="Detailed Status of a Registration"><img alt="Registration Status" src="thumbs/13.png" /></a> | |||
<h5>Detailed Status of a Registration</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/14.png" title="Send Proposal"><img alt="Propose" src="thumbs/14.png" /></a> | |||
<h5>Send Proposal</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/15.png" title="Empty Repository"><img alt="Empty Repository" src="thumbs/15.png" /></a> | |||
<h5>Empty Repository</h5> | |||
</li> | |||
</ul> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/10.png" title="Repository Tags"><img alt="Tags" src="thumbs/10.png" /></a> | |||
<br/>Repository Tags | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/05.png" title="Repository Tree"><img alt="Tree" src="thumbs/05.png" /></a> | |||
<br/>Repository Tree | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/06.png" title="Commit Page"><img alt="Commit Page" src="thumbs/06.png" /></a> | |||
<br/>Commit Page | |||
</td></tr> | |||
### Gitblit Manager | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/07.png" title="Commit Diff"><img alt="Commit Diff" src="thumbs/07.png" /></a> | |||
<br/>Commit Diff | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/09.png" title="Branch Metrics"><img alt="Metrics" src="thumbs/09.png" /></a> | |||
<br/>Branch Metrics | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/08.png" title="Blob View with Syntax Highlighting"><img alt="Blob" src="thumbs/08.png" /></a> | |||
<br/>Blob View with Syntax Highlighting | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/11.png" title="Blame"><img alt="Blame" src="thumbs/11.png" /></a> | |||
<br/>Blame | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/12.png" title="Federation Panels"><img alt="Federation Panels" src="thumbs/12.png" /></a> | |||
<br/>Federation Panels | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/13.png" title="Detailed Status of a Registration"><img alt="Registration Status" src="thumbs/13.png" /></a> | |||
<br/>Detailed Status of a Registration | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/14.png" title="Send Proposal"><img alt="Propose" src="thumbs/14.png" /></a> | |||
<br/>Send Proposal | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/15.png" title="Empty Repository"><img alt="Empty Repository" src="thumbs/15.png" /></a> | |||
<br/>Empty Repository | |||
</td><td> | |||
</td></tr> | |||
<tr><td colspan='3'><h3>Gitblit Manager</h3></td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/m00.png" title="Repositories Panel"><img alt="Repositories Panel" src="thumbs/m00.png" /></a> | |||
<br/>Repositories Panel | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/m01.png" title="Search Dialog"><img alt="Search Dialog" src="thumbs/m01.png" /></a> | |||
<br/>Search Dialog | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/m02.png" title="Activity Panel"><img alt="Activity Panel" src="thumbs/m02.png" /></a> | |||
<br/>Activity Panel | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/m03.png" title="Subscriptions Dialog"><img alt="Subscriptions Dialog" src="thumbs/m03.png" /></a> | |||
<br/>Subscriptions Dialog | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/m04.png" title="Users Panel"><img alt="Users Panels" src="thumbs/m04.png" /></a> | |||
<br/>Users Panel | |||
</td><td> | |||
<ul class="thumbnails"> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m00.png" title="Repositories Panel"><img alt="Repositories Panel" src="thumbs/m00.png" /></a> | |||
<h5>Repositories Panel</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m01.png" title="Search Dialog"><img alt="Search Dialog" src="thumbs/m01.png" /></a> | |||
<h5>Search Dialog</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m02.png" title="Activity Panel"><img alt="Activity Panel" src="thumbs/m02.png" /></a> | |||
<h5>Activity Panel</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m03.png" title="Subscriptions Dialog"><img alt="Subscriptions Dialog" src="thumbs/m03.png" /></a> | |||
<h5>Subscriptions Dialog</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m04.png" title="Users Panel"><img alt="Users Panels" src="thumbs/m04.png" /></a> | |||
<h5>Users Panel</h5> | |||
</li> | |||
<li class="span3"> | |||
<a rel="screenshots_group" href="screenshots/m05.png" title="Settings Panel"><img alt="Settings Panel" src="thumbs/m05.png" /></a> | |||
<br/>Settings Panel | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/m06.png" title="Status Panel"><img alt="Status Panel" src="thumbs/m06.png" /></a> | |||
<br/>Status Panel | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/m07.png" title="Edit Repository Settings"><img alt="Repository Settings" src="thumbs/m07.png" /></a> | |||
<br/>Edit Repository Settings | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/m08.png" title="Edit Repository Access Restrictions"><img alt="Access Restrictions" src="thumbs/m08.png" /></a> | |||
<br/>Edit Repository Access Restriction | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/m09.png" title="Edit Repository Federation Settings"><img alt="Federation Settings" src="thumbs/m09.png" /></a> | |||
<br/>Edit Repository Federation Settings | |||
</td><td colspan='2'> | |||
<a rel="screenshots_group" href="screenshots/m10.png" title="Edit User Dialog"><img alt="Edit User Dialog" src="thumbs/m10.png" /></a> | |||
<br/>Edit User Dialog | |||
</td></tr> | |||
<h5>Settings Panel</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m06.png" title="Status Panel"><img alt="Status Panel" src="thumbs/m06.png" /></a> | |||
<h5>Status Panel</h5> | |||
</li> | |||
</ul> | |||
</table> | |||
<ul class="thumbnails"> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m07.png" title="Edit Repository Settings"><img alt="Repository Settings" src="thumbs/m07.png" /></a> | |||
<h5>Edit Repository Settings</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m08.png" title="Edit Repository Access Restrictions"><img alt="Access Restrictions" src="thumbs/m08.png" /></a> | |||
<h5>Edit Repository Access Restriction</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m09.png" title="Edit Repository Federation Settings"><img alt="Federation Settings" src="thumbs/m09.png" /></a> | |||
<h5>Edit Repository Federation Settings</h5> | |||
</li> | |||
<li class="span3"> | |||
<a class="thumbnail" rel="screenshots_group" href="screenshots/m10.png" title="Edit User Dialog"><img alt="Edit User Dialog" src="thumbs/m10.png" /></a> | |||
<h5>Edit User Dialog</h5> | |||
</li> | |||
</ul> |
@@ -86,6 +86,7 @@ Command-Line parameters override the values in `gitblit.properties` at runtime. | |||
--useNio Use NIO Connector else use Socket Connector. | |||
--httpPort HTTP port for to serve. (port <= 0 will disable this connector) | |||
--httpsPort HTTPS port to serve. (port <= 0 will disable this connector) | |||
--ajpPort AJP port to serve. (port <= 0 will disable this connector) | |||
--storePassword Password for SSL (https) keystore. | |||
--shutdownPort Port for Shutdown Monitor to listen on. (port <= 0 will disable this monitor) | |||
--tempFolder Folder for server to extract built-in webapp |
@@ -191,7 +191,7 @@ By default, federated repositories can not be pushed to, they are read-only by t | |||
## Federation Pull Registration Keys | |||
<table> | |||
<table class="table"> | |||
<tr><th>federation.N.url</th> | |||
<td>string</td> | |||
<td>the url of the origin Gitblit instance <em>(required)</em></td> |
@@ -37,7 +37,7 @@ At present, Gitblit does not yet support retrieving Git objects (commits, etc) v | |||
The Gitblit API includes methods for retrieving and interpreting RSS feeds. The Gitblit Manager uses these methods to allow branch activity monitoring and repository searching. | |||
<table> | |||
<table class="table"> | |||
<tr><th>url parameter</th><th>default</th><th>description</th></tr> | |||
<tr><td colspan='3'><b>standard query</b></td></tr> | |||
<tr><td><em>repository</em></td><td><em>required</em></td><td>repository name is part of the url (see examples below)</td></tr> | |||
@@ -58,7 +58,7 @@ The Gitblit API includes methods for retrieving and interpreting RSS feeds. The | |||
## JSON Remote Procedure Call (RPC) Interface | |||
### RPC Protocol Versions | |||
<table> | |||
<table class="table"> | |||
<tbody> | |||
<tr><th>Release</th><th>Protocol Version</th></tr> | |||
<tr><td>Gitblit v0.7.0</td><td>1 (inferred version)</td></tr> | |||
@@ -67,7 +67,7 @@ The Gitblit API includes methods for retrieving and interpreting RSS feeds. The | |||
</table> | |||
### RPC Request and Response Types | |||
<table> | |||
<table class="table"> | |||
<tr><th colspan='2'>url parameters</th><th rowspan='2'>required<br/>user<br/>permission</th><th rowspan='2'>protocol<br/>version</th><th colspan='2'>json</th></tr> | |||
<tr><th>req=</th><th>name=</th><th>post body</th><th>response body</th></tr> | |||
<tr><td colspan='6'><em>web.enableRpcServlet=true</em></td></tr> | |||
@@ -103,7 +103,7 @@ The Gitblit API includes methods for retrieving and interpreting RSS feeds. The | |||
</table> | |||
### RPC/HTTP Response Codes | |||
<table> | |||
<table class="table"> | |||
<tr><th>code</th><th>name</th><th>description</th></tr> | |||
<tr><td>200</td><td>success</td><td>Gitblit processed the request successfully</td></tr> | |||
<tr><td>401</td><td>unauthorized</td><td>Gitblit requires user credentials to process the request</td></tr> |
@@ -48,7 +48,7 @@ This is likely an url encoding/decoding problem with forward slashes: | |||
http://192.168.1.2/log/myrepo.git/refs%2Fheads%2Fmaster | |||
**NOTE:** | |||
You can not trust the url in the address bar of your browser since your browser may *prettify* the url. When in doubt, *View Source* of the generated html to confirm the *href*. | |||
You can not trust the url in the address bar of your browser since your browser may decode it for presentation. When in doubt, *View Source* of the generated html to confirm the *href*. | |||
There are two possible workarounds for this issue. In `gitblit.properties` or `web.xml`: | |||
@@ -59,7 +59,7 @@ There are two possible workarounds for this issue. In `gitblit.properties` or ` | |||
You must ensure that the proxy does not decode and then re-encode request urls with interpretation of forward-slashes (*%2F*). If your proxy layer does re-encode embedded forward-slashes then you may not be able to browse grouped repositories or logs, branches, and tags **unless** you set *web.mountParameters=false*. | |||
If you are using Apache mod_proxy, specify [AllowEncodedSlashes NoDecode](http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes). | |||
If you are using Apache mod_proxy you may have luck with specifying [AllowEncodedSlashes NoDecode](http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes). | |||
### Running Gitblit on Tomcat | |||
@@ -67,7 +67,7 @@ Tomcat takes the extra precaution of [disallowing embedded slashes by default](h | |||
You have a few options on how to handle this scenario: | |||
1. [Tweak Tomcat](http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10) | |||
Add *org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true* to *CATALINA_OPTS* | |||
Add *-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true* to *CATALINA_OPTS* or to your JVM launch parameters | |||
2. *web.mountParameters = false* and use non-pretty, parameterized urls | |||
3. *web.forwardSlashCharacter = !* which tells Gitblit to use **!** instead of **/** | |||
@@ -11,6 +11,7 @@ | |||
The following dependencies are bundled with Gitblit. | |||
- [Bootstrap](http://twitter.github.com/bootstrap) (Apache 2.0) | |||
- [GLYPHICONS](http://glyphicons.com) (Creative Commons CC-BY) | |||
- [Clippy](https://github.com/mojombo/clippy) (MIT) | |||
- [google-code-prettify](http://code.google.com/p/google-code-prettify) (Apache 2.0) | |||
- [Commons Daemon](http://commons.apache.org/daemon) (Apache 2.0) |
@@ -16,7 +16,7 @@ | |||
#### additions | |||
- Added a built-in AJP connector for integrating Gitblit GO into an Apache mod_proxy setup (issue 59) | |||
**New:** *server.ajpPort = 0* | |||
**New:** *server.ajpPort = 0* | |||
**New:** *server.ajpBindInterface = localhost* | |||
- On the Repositories page show a bang *!* character in the color swatch of a repository with a working copy (issue 49) | |||
Push requests to these repositories will be rejected. | |||
@@ -32,12 +32,23 @@ Push requests to these repositories will be rejected. | |||
- Fixed username case-sensitivity issues (issue 43) | |||
- Disregard searching a subfolder if Gitblit does not have filesystem permissions (Github/lemval issue 51) | |||
#### dependency changes | |||
- updated to Bootstrap 2.0 | |||
- added GLYPHICONS (as bundled with Bootstrap 2.0) | |||
<hr/> | |||
### Older Releases | |||
**0.8.2** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.8.2.zip) | [war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.8.2.war) | [express](http://code.google.com/p/gitblit/downloads/detail?name=express-0.8.2.zip) | [fedclient](http://code.google.com/p/gitblit/downloads/detail?name=fedclient-0.8.2.zip) | [manager](http://code.google.com/p/gitblit/downloads/detail?name=manager-0.8.2.zip) | [api](http://code.google.com/p/gitblit/downloads/detail?name=gbapi-0.8.2.zip)) based on [JGit 1.2.0 (201112221803-r)][jgit] *released 2012-01-13* | |||
#### fixes | |||
- Fixed bug when upgrading from users.properties to users.conf (issue 41) | |||
<hr/> | |||
**0.8.1** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.8.1.zip) | [war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.8.1.war) | [express](http://code.google.com/p/gitblit/downloads/detail?name=express-0.8.1.zip) | [fedclient](http://code.google.com/p/gitblit/downloads/detail?name=fedclient-0.8.1.zip) | [manager](http://code.google.com/p/gitblit/downloads/detail?name=manager-0.8.1.zip) | [api](http://code.google.com/p/gitblit/downloads/detail?name=gbapi-0.8.1.zip)) based on [JGit 1.2.0 (201112221803-r)][jgit] *released 2012-01-11* | |||
#### fixes | |||
@@ -45,6 +56,8 @@ Push requests to these repositories will be rejected. | |||
- Include missing icon resource for the manager (issue 40) | |||
- Fixed sendmail.groovy message content with incorrect tag/branch labels | |||
<hr/> | |||
**0.8.0** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.8.0.zip) | [war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.8.0.war) | [express](http://code.google.com/p/gitblit/downloads/detail?name=express-0.8.0.zip) | [fedclient](http://code.google.com/p/gitblit/downloads/detail?name=fedclient-0.8.0.zip) | [manager](http://code.google.com/p/gitblit/downloads/detail?name=manager-0.8.0.zip) | [api](http://code.google.com/p/gitblit/downloads/detail?name=gbapi-0.8.0.zip)) based on [JGit 1.2.0 (201112221803-r)][jgit] *released 2012-01-11* | |||
#### additions | |||
@@ -78,7 +91,7 @@ The original `users.properties` file and it's corresponding implementation are * | |||
- JavaScript-based 3-step (click, ctrl+c, enter) *copy to clipboard* of the primary repository url in the event that you do not want to use Flash on your installation | |||
- Empty repositories now link to an *empty repository* page which gives some direction to the user for the next step in using Gitblit. This page displays the primary push/clone url of the repository and gives sample syntax for the git command-line client. (issue 31) | |||
- Repositories with a *gh-pages* branch will now have a *pages* link which will serve the content of this branch. All resource requests are against the repository, Gitblit does not checkout/export this branch to a temporary filesystem. Jekyll templating is not supported. | |||
- Gitblit Express bundle to get started running Gitblit on RedHat's OpenShift cloud <span class="label warning">BETA</span> | |||
- Gitblit Express bundle to get started running Gitblit on RedHat's OpenShift cloud <span class="label label-warning">BETA</span> | |||
#### changes | |||
@@ -98,7 +111,7 @@ This change helps adoption of GO in environments without an internet connection | |||
- added Groovy 1.8.5 | |||
- added Clippy (bundled) | |||
### Older Releases | |||
<hr/> | |||
**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* | |||
@@ -134,6 +147,8 @@ This change helps adoption of GO in environments without an internet connection | |||
- updated: MarkdownPapers 1.2.5 | |||
- updated: Wicket 1.4.19 | |||
<hr/> | |||
**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* | |||
- added: federation feature to allow gitblit instances (or gitblit federation clients) to pull repositories and, optionally, settings and accounts from other gitblit instances. This is something like [svn-sync](http://svnbook.red-bean.com/en/1.5/svn.ref.svnsync.html) for gitblit. | |||
@@ -153,6 +168,8 @@ This change helps adoption of GO in environments without an internet connection | |||
- fixed: syndication urls for WAR deployments | |||
- fixed: authentication for zip downloads | |||
<hr/> | |||
**0.5.2** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.5.2.zip) | [war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.5.2.war)) based on [JGit 1.0.0 (201106090707-r)][jgit] *released 2011-07-27* | |||
- fixed: active repositories with a HEAD that pointed to an empty branch caused internal errors (issue 14) | |||
@@ -169,12 +186,16 @@ This change helps adoption of GO in environments without an internet connection | |||
- updated: MarkdownPapers 1.1.0 | |||
- updated: Jetty 7.4.3 | |||
<hr/> | |||
**0.5.1** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.5.1.zip) | [war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.5.1.war)) based on [JGit 1.0.0 (201106090707-r)][jgit] *released 2011-06-28* | |||
- clarified SSL certificate generation and configuration for both server-side and client-side | |||
- added some more troubleshooting information to documentation | |||
- replaced JavaService with Apache Commons Daemon | |||
<hr/> | |||
**0.5.0** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.5.0.zip) | [war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.5.0.war)) based on [JGit 1.0.0 (201106090707-r)][jgit] *released 2011-06-26* | |||
- initial release |
@@ -1,9 +1,8 @@ | |||
</div> <!-- markdown --> | |||
<div style="margin-top:10px" class="page_footer"> | |||
<div style="float:right;">{0}</div> | |||
The content of this page is licensed under the <a href="http://creativecommons.org/licenses/by/3.0">Creative Commons Attribution 3.0 License</a>. | |||
</div> | |||
</div> <!-- content --> | |||
</div> <!-- markdown --> | |||
<footer> | |||
<p class="pull-right">{0}</p> | |||
The content of this page is licensed under the <a href="http://creativecommons.org/licenses/by/3.0">Creative Commons Attribution 3.0 License</a>. | |||
</footer> | |||
</div> <!-- container --> | |||
</body> | |||
</html> |
@@ -2,36 +2,23 @@ | |||
<html> | |||
<head> | |||
<title>Gitblit</title> | |||
<link rel="stylesheet" type="text/css" href="./bootstrap.140.css"/> | |||
<link rel="stylesheet" type="text/css" href="./bootstrap.gb.css"/> | |||
<link rel="stylesheet" type="text/css" href="./markdown.css"/> | |||
<link rel="stylesheet" href="./bootstrap/css/bootstrap.css"/> | |||
<link rel="stylesheet" type="text/css" href="./gitblit.css"/> | |||
<link rel="shortcut icon" type="image/png" href="./gitblt-favicon.png" /> | |||
<meta name="ROBOTS" content="INDEX, NOFOLLOW"> | |||
<meta http-equiv="imagetoolbar" content="no" /> | |||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |||
<meta name="keywords" content="java git server" /> | |||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> | |||
<script> | |||
!window.jQuery && document.write('<script src="./fancybox/jquery-1.4.3.min.js"><\/script>'); | |||
</script> | |||
<script type="text/javascript" src="./fancybox/query.mousewheel-3.0.4.pack.js"></script> | |||
<script type="text/javascript" src="./fancybox/jquery.fancybox-1.3.4.pack.js"></script> | |||
<link rel="stylesheet" type="text/css" href="./fancybox/jquery.fancybox-1.3.4.css" media="screen" /> | |||
<script type="text/javascript" src="./screenshots.js"></script> | |||
<style> | |||
ul.noBullets '{' | |||
list-style: none; | |||
'}' | |||
</style> | |||
<script type="text/javascript" src="./bootstrap/js/jquery.js"></script> | |||
<script type="text/javascript" src="./bootstrap/js/bootstrap.js"></script> | |||
<script type="text/javascript" src="prettify/prettify.js"></script> | |||
<link href="prettify/prettify.css" type="text/css" rel="stylesheet" /> | |||
</head> | |||
<body style="padding-top:40px;" onload="prettyPrint()"> | |||
<div class="topbar"> | |||
<div class="fill"> | |||
<body onload="prettyPrint()"> | |||
<div class="navbar navbar-fixed-top"> | |||
<div class="navbar-inner"> | |||
<div class="container"> | |||
<a class="brand" href="http://gitblit.com" title="gitblit homepage"> | |||
<img src="gitblt_25_white.png" width="79" height="25" alt="gitblit" class="logo"/> | |||
@@ -43,5 +30,4 @@ | |||
</div> | |||
</div> | |||
<div class="container"> | |||
<div class="content"> | |||
<div class="markdown"> | |||
<div class="markdown"> |
@@ -1,9 +1,8 @@ | |||
</div> <!-- markdown --> | |||
<div style="margin-top:10px" class="page_footer"> | |||
<div style="float:right;">{0}</div> | |||
The content of this page is licensed under the <a href="http://creativecommons.org/licenses/by/3.0">Creative Commons Attribution 3.0 License</a>. | |||
</div> | |||
</div> <!-- content --> | |||
</div> <!-- markdown --> | |||
<footer> | |||
<p class="pull-right">{0}</p> | |||
The content of this page is licensed under the <a href="http://creativecommons.org/licenses/by/3.0">Creative Commons Attribution 3.0 License</a>. | |||
</footer> | |||
</div> <!-- container --> | |||
</body> | |||
</html> |
@@ -2,29 +2,22 @@ | |||
<html> | |||
<head> | |||
<title>Gitblit</title> | |||
<link rel="stylesheet" type="text/css" href="./bootstrap.140.css"/> | |||
<link rel="stylesheet" type="text/css" href="./bootstrap.gb.css"/> | |||
<link rel="stylesheet" type="text/css" href="./markdown.css"/> | |||
<link rel="stylesheet" href="./bootstrap/css/bootstrap.css"/> | |||
<link rel="stylesheet" type="text/css" href="./gitblit.css"/> | |||
<link rel="shortcut icon" type="image/png" href="./gitblt-favicon.png" /> | |||
<meta name="ROBOTS" content="INDEX"> | |||
<meta http-equiv="imagetoolbar" content="no" /> | |||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |||
<meta name="keywords" content="java git server" /> | |||
<script type="text/javascript" src="./bootstrap/js/jquery.js"></script> | |||
<script type="text/javascript" src="./bootstrap/js/bootstrap.js"></script> | |||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> | |||
<script> | |||
!window.jQuery && document.write('<script src="./fancybox/jquery-1.4.3.min.js"><\/script>'); | |||
</script> | |||
<script type="text/javascript" src="./fancybox/query.mousewheel-3.0.4.pack.js"></script> | |||
<script type="text/javascript" src="./fancybox/jquery.fancybox-1.3.4.pack.js"></script> | |||
<link rel="stylesheet" type="text/css" href="./fancybox/jquery.fancybox-1.3.4.css" media="screen" /> | |||
<script type="text/javascript" src="./screenshots.js"></script> | |||
<style> | |||
ul.noBullets '{' | |||
list-style: none; | |||
'}' | |||
</style> | |||
<script type="text/javascript" src="./screenshots.js"></script> | |||
<script type="text/javascript" src="prettify/prettify.js"></script> | |||
<link href="prettify/prettify.css" type="text/css" rel="stylesheet" /> | |||
@@ -36,9 +29,9 @@ | |||
<!-- ANALYTICS --> | |||
</head> | |||
<body style="padding-top:40px;" onload="prettyPrint()"> | |||
<div class="topbar"> | |||
<div class="fill"> | |||
<body onload="prettyPrint()"> | |||
<div class="navbar navbar-fixed-top"> | |||
<div class="navbar-inner"> | |||
<div class="container"> | |||
<a class="brand" href="http://gitblit.com" title="gitblit homepage"> | |||
<img src="gitblt_25_white.png" width="79" height="25" alt="gitblit" class="logo"/> | |||
@@ -55,5 +48,4 @@ | |||
</div> | |||
</div> | |||
<div class="container"> | |||
<div class="content"> | |||
<div class="markdown"> | |||
<div class="markdown"> |
@@ -0,0 +1,567 @@ | |||
/*! | |||
* Bootstrap Responsive v2.0.0 | |||
* | |||
* Copyright 2012 Twitter, Inc | |||
* Licensed under the Apache License v2.0 | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Designed and built with all the love in the world @twitter by @mdo and @fat. | |||
*/ | |||
.hidden { | |||
display: none; | |||
visibility: hidden; | |||
} | |||
@media (max-width: 480px) { | |||
.nav-collapse { | |||
-webkit-transform: translate3d(0, 0, 0); | |||
} | |||
.page-header h1 small { | |||
display: block; | |||
line-height: 18px; | |||
} | |||
input[class*="span"], | |||
select[class*="span"], | |||
textarea[class*="span"], | |||
.uneditable-input { | |||
display: block; | |||
width: 100%; | |||
height: 28px; | |||
/* Make inputs at least the height of their button counterpart */ | |||
/* Makes inputs behave like true block-level elements */ | |||
-webkit-box-sizing: border-box; | |||
/* Older Webkit */ | |||
-moz-box-sizing: border-box; | |||
/* Older FF */ | |||
-ms-box-sizing: border-box; | |||
/* IE8 */ | |||
box-sizing: border-box; | |||
/* CSS3 spec*/ | |||
} | |||
.input-prepend input[class*="span"], .input-append input[class*="span"] { | |||
width: auto; | |||
} | |||
input[type="checkbox"], input[type="radio"] { | |||
border: 1px solid #ccc; | |||
} | |||
.form-horizontal .control-group > label { | |||
float: none; | |||
width: auto; | |||
padding-top: 0; | |||
text-align: left; | |||
} | |||
.form-horizontal .controls { | |||
margin-left: 0; | |||
} | |||
.form-horizontal .control-list { | |||
padding-top: 0; | |||
} | |||
.form-horizontal .form-actions { | |||
padding-left: 10px; | |||
padding-right: 10px; | |||
} | |||
.modal { | |||
position: absolute; | |||
top: 10px; | |||
left: 10px; | |||
right: 10px; | |||
width: auto; | |||
margin: 0; | |||
} | |||
.modal.fade.in { | |||
top: auto; | |||
} | |||
.modal-header .close { | |||
padding: 10px; | |||
margin: -10px; | |||
} | |||
.carousel-caption { | |||
position: static; | |||
} | |||
} | |||
@media (max-width: 768px) { | |||
.container { | |||
width: auto; | |||
padding: 0 20px; | |||
} | |||
.row-fluid { | |||
width: 100%; | |||
} | |||
.row { | |||
margin-left: 0; | |||
} | |||
.row > [class*="span"], .row-fluid > [class*="span"] { | |||
float: none; | |||
display: block; | |||
width: auto; | |||
margin: 0; | |||
} | |||
} | |||
@media (min-width: 768px) and (max-width: 980px) { | |||
.row { | |||
margin-left: -20px; | |||
*zoom: 1; | |||
} | |||
.row:before, .row:after { | |||
display: table; | |||
content: ""; | |||
} | |||
.row:after { | |||
clear: both; | |||
} | |||
[class*="span"] { | |||
float: left; | |||
margin-left: 20px; | |||
} | |||
.span1 { | |||
width: 42px; | |||
} | |||
.span2 { | |||
width: 104px; | |||
} | |||
.span3 { | |||
width: 166px; | |||
} | |||
.span4 { | |||
width: 228px; | |||
} | |||
.span5 { | |||
width: 290px; | |||
} | |||
.span6 { | |||
width: 352px; | |||
} | |||
.span7 { | |||
width: 414px; | |||
} | |||
.span8 { | |||
width: 476px; | |||
} | |||
.span9 { | |||
width: 538px; | |||
} | |||
.span10 { | |||
width: 600px; | |||
} | |||
.span11 { | |||
width: 662px; | |||
} | |||
.span12, .container { | |||
width: 724px; | |||
} | |||
.offset1 { | |||
margin-left: 82px; | |||
} | |||
.offset2 { | |||
margin-left: 144px; | |||
} | |||
.offset3 { | |||
margin-left: 206px; | |||
} | |||
.offset4 { | |||
margin-left: 268px; | |||
} | |||
.offset5 { | |||
margin-left: 330px; | |||
} | |||
.offset6 { | |||
margin-left: 392px; | |||
} | |||
.offset7 { | |||
margin-left: 454px; | |||
} | |||
.offset8 { | |||
margin-left: 516px; | |||
} | |||
.offset9 { | |||
margin-left: 578px; | |||
} | |||
.offset10 { | |||
margin-left: 640px; | |||
} | |||
.offset11 { | |||
margin-left: 702px; | |||
} | |||
.row-fluid { | |||
width: 100%; | |||
*zoom: 1; | |||
} | |||
.row-fluid:before, .row-fluid:after { | |||
display: table; | |||
content: ""; | |||
} | |||
.row-fluid:after { | |||
clear: both; | |||
} | |||
.row-fluid > [class*="span"] { | |||
float: left; | |||
margin-left: 2.762430939%; | |||
} | |||
.row-fluid > [class*="span"]:first-child { | |||
margin-left: 0; | |||
} | |||
.row-fluid .span1 { | |||
width: 5.801104972%; | |||
} | |||
.row-fluid .span2 { | |||
width: 14.364640883%; | |||
} | |||
.row-fluid .span3 { | |||
width: 22.928176794%; | |||
} | |||
.row-fluid .span4 { | |||
width: 31.491712705%; | |||
} | |||
.row-fluid .span5 { | |||
width: 40.055248616%; | |||
} | |||
.row-fluid .span6 { | |||
width: 48.618784527%; | |||
} | |||
.row-fluid .span7 { | |||
width: 57.182320438000005%; | |||
} | |||
.row-fluid .span8 { | |||
width: 65.74585634900001%; | |||
} | |||
.row-fluid .span9 { | |||
width: 74.30939226%; | |||
} | |||
.row-fluid .span10 { | |||
width: 82.87292817100001%; | |||
} | |||
.row-fluid .span11 { | |||
width: 91.436464082%; | |||
} | |||
.row-fluid .span12 { | |||
width: 99.999999993%; | |||
} | |||
input.span1, textarea.span1, .uneditable-input.span1 { | |||
width: 32px; | |||
} | |||
input.span2, textarea.span2, .uneditable-input.span2 { | |||
width: 94px; | |||
} | |||
input.span3, textarea.span3, .uneditable-input.span3 { | |||
width: 156px; | |||
} | |||
input.span4, textarea.span4, .uneditable-input.span4 { | |||
width: 218px; | |||
} | |||
input.span5, textarea.span5, .uneditable-input.span5 { | |||
width: 280px; | |||
} | |||
input.span6, textarea.span6, .uneditable-input.span6 { | |||
width: 342px; | |||
} | |||
input.span7, textarea.span7, .uneditable-input.span7 { | |||
width: 404px; | |||
} | |||
input.span8, textarea.span8, .uneditable-input.span8 { | |||
width: 466px; | |||
} | |||
input.span9, textarea.span9, .uneditable-input.span9 { | |||
width: 528px; | |||
} | |||
input.span10, textarea.span10, .uneditable-input.span10 { | |||
width: 590px; | |||
} | |||
input.span11, textarea.span11, .uneditable-input.span11 { | |||
width: 652px; | |||
} | |||
input.span12, textarea.span12, .uneditable-input.span12 { | |||
width: 714px; | |||
} | |||
} | |||
@media (max-width: 980px) { | |||
body { | |||
padding-top: 0; | |||
} | |||
.navbar-fixed-top { | |||
position: static; | |||
margin-bottom: 18px; | |||
} | |||
.navbar-fixed-top .navbar-inner { | |||
padding: 5px; | |||
} | |||
.navbar .container { | |||
width: auto; | |||
padding: 0; | |||
} | |||
.navbar .brand { | |||
padding-left: 10px; | |||
padding-right: 10px; | |||
margin: 0 0 0 -5px; | |||
} | |||
.navbar .nav-collapse { | |||
clear: left; | |||
} | |||
.navbar .nav { | |||
float: none; | |||
margin: 0 0 9px; | |||
} | |||
.navbar .nav > li { | |||
float: none; | |||
} | |||
.navbar .nav > li > a { | |||
margin-bottom: 2px; | |||
} | |||
.navbar .nav > .divider-vertical { | |||
display: none; | |||
} | |||
.navbar .nav > li > a, .navbar .dropdown-menu a { | |||
padding: 6px 15px; | |||
font-weight: bold; | |||
color: #999999; | |||
-webkit-border-radius: 3px; | |||
-moz-border-radius: 3px; | |||
border-radius: 3px; | |||
} | |||
.navbar .dropdown-menu li + li a { | |||
margin-bottom: 2px; | |||
} | |||
.navbar .nav > li > a:hover, .navbar .dropdown-menu a:hover { | |||
background-color: #222222; | |||
} | |||
.navbar .dropdown-menu { | |||
position: static; | |||
top: auto; | |||
left: auto; | |||
float: none; | |||
display: block; | |||
max-width: none; | |||
margin: 0 15px; | |||
padding: 0; | |||
background-color: transparent; | |||
border: none; | |||
-webkit-border-radius: 0; | |||
-moz-border-radius: 0; | |||
border-radius: 0; | |||
-webkit-box-shadow: none; | |||
-moz-box-shadow: none; | |||
box-shadow: none; | |||
} | |||
.navbar .dropdown-menu:before, .navbar .dropdown-menu:after { | |||
display: none; | |||
} | |||
.navbar .dropdown-menu .divider { | |||
display: none; | |||
} | |||
.navbar-form, .navbar-search { | |||
float: none; | |||
padding: 9px 15px; | |||
margin: 9px 0; | |||
border-top: 1px solid #222222; | |||
border-bottom: 1px solid #222222; | |||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |||
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); | |||
} | |||
.navbar .nav.pull-right { | |||
float: none; | |||
margin-left: 0; | |||
} | |||
.navbar-static .navbar-inner { | |||
padding-left: 10px; | |||
padding-right: 10px; | |||
} | |||
.btn-navbar { | |||
display: block; | |||
} | |||
.nav-collapse { | |||
overflow: hidden; | |||
height: 0; | |||
} | |||
} | |||
@media (min-width: 980px) { | |||
.nav-collapse.collapse { | |||
height: auto !important; | |||
} | |||
} | |||
@media (min-width: 1200px) { | |||
.row { | |||
margin-left: -30px; | |||
*zoom: 1; | |||
} | |||
.row:before, .row:after { | |||
display: table; | |||
content: ""; | |||
} | |||
.row:after { | |||
clear: both; | |||
} | |||
[class*="span"] { | |||
float: left; | |||
margin-left: 30px; | |||
} | |||
.span1 { | |||
width: 70px; | |||
} | |||
.span2 { | |||
width: 170px; | |||
} | |||
.span3 { | |||
width: 270px; | |||
} | |||
.span4 { | |||
width: 370px; | |||
} | |||
.span5 { | |||
width: 470px; | |||
} | |||
.span6 { | |||
width: 570px; | |||
} | |||
.span7 { | |||
width: 670px; | |||
} | |||
.span8 { | |||
width: 770px; | |||
} | |||
.span9 { | |||
width: 870px; | |||
} | |||
.span10 { | |||
width: 970px; | |||
} | |||
.span11 { | |||
width: 1070px; | |||
} | |||
.span12, .container { | |||
width: 1170px; | |||
} | |||
.offset1 { | |||
margin-left: 130px; | |||
} | |||
.offset2 { | |||
margin-left: 230px; | |||
} | |||
.offset3 { | |||
margin-left: 330px; | |||
} | |||
.offset4 { | |||
margin-left: 430px; | |||
} | |||
.offset5 { | |||
margin-left: 530px; | |||
} | |||
.offset6 { | |||
margin-left: 630px; | |||
} | |||
.offset7 { | |||
margin-left: 730px; | |||
} | |||
.offset8 { | |||
margin-left: 830px; | |||
} | |||
.offset9 { | |||
margin-left: 930px; | |||
} | |||
.offset10 { | |||
margin-left: 1030px; | |||
} | |||
.offset11 { | |||
margin-left: 1130px; | |||
} | |||
.row-fluid { | |||
width: 100%; | |||
*zoom: 1; | |||
} | |||
.row-fluid:before, .row-fluid:after { | |||
display: table; | |||
content: ""; | |||
} | |||
.row-fluid:after { | |||
clear: both; | |||
} | |||
.row-fluid > [class*="span"] { | |||
float: left; | |||
margin-left: 2.564102564%; | |||
} | |||
.row-fluid > [class*="span"]:first-child { | |||
margin-left: 0; | |||
} | |||
.row-fluid .span1 { | |||
width: 5.982905983%; | |||
} | |||
.row-fluid .span2 { | |||
width: 14.529914530000001%; | |||
} | |||
.row-fluid .span3 { | |||
width: 23.076923077%; | |||
} | |||
.row-fluid .span4 { | |||
width: 31.623931624%; | |||
} | |||
.row-fluid .span5 { | |||
width: 40.170940171000005%; | |||
} | |||
.row-fluid .span6 { | |||
width: 48.717948718%; | |||
} | |||
.row-fluid .span7 { | |||
width: 57.264957265%; | |||
} | |||
.row-fluid .span8 { | |||
width: 65.81196581200001%; | |||
} | |||
.row-fluid .span9 { | |||
width: 74.358974359%; | |||
} | |||
.row-fluid .span10 { | |||
width: 82.905982906%; | |||
} | |||
.row-fluid .span11 { | |||
width: 91.45299145300001%; | |||
} | |||
.row-fluid .span12 { | |||
width: 100%; | |||
} | |||
input.span1, textarea.span1, .uneditable-input.span1 { | |||
width: 60px; | |||
} | |||
input.span2, textarea.span2, .uneditable-input.span2 { | |||
width: 160px; | |||
} | |||
input.span3, textarea.span3, .uneditable-input.span3 { | |||
width: 260px; | |||
} | |||
input.span4, textarea.span4, .uneditable-input.span4 { | |||
width: 360px; | |||
} | |||
input.span5, textarea.span5, .uneditable-input.span5 { | |||
width: 460px; | |||
} | |||
input.span6, textarea.span6, .uneditable-input.span6 { | |||
width: 560px; | |||
} | |||
input.span7, textarea.span7, .uneditable-input.span7 { | |||
width: 660px; | |||
} | |||
input.span8, textarea.span8, .uneditable-input.span8 { | |||
width: 760px; | |||
} | |||
input.span9, textarea.span9, .uneditable-input.span9 { | |||
width: 860px; | |||
} | |||
input.span10, textarea.span10, .uneditable-input.span10 { | |||
width: 960px; | |||
} | |||
input.span11, textarea.span11, .uneditable-input.span11 { | |||
width: 1060px; | |||
} | |||
input.span12, textarea.span12, .uneditable-input.span12 { | |||
width: 1160px; | |||
} | |||
.thumbnails { | |||
margin-left: -30px; | |||
} | |||
.thumbnails > li { | |||
margin-left: 30px; | |||
} | |||
} |
@@ -0,0 +1,888 @@ | |||
body { | |||
/* 50px to start the container 10px below the navbar */ | |||
padding-top: 50px; | |||
} | |||
footer { | |||
margin-top: 25px; | |||
padding: 15px 0 16px; | |||
border-top: 1px solid #E5E5E5; | |||
} | |||
body, input, select { | |||
color: #202020; | |||
} | |||
ul, ol { | |||
margin-bottom: 10px !important; | |||
} | |||
hr { | |||
margin-top: 10px; | |||
margin-bottom: 10px; | |||
} | |||
.settings h3 { | |||
margin-bottom: 0.5em; | |||
border-bottom: 1px solid #000080 !important; | |||
} | |||
.pageTitle { | |||
padding-bottom: 5px; | |||
margin: 0; | |||
border-bottom: 1px solid #eee; | |||
} | |||
.pageTitle h1, .pageTitle h2 { | |||
color: #0069D6; | |||
} | |||
.navbar { | |||
height:40px !important; | |||
} | |||
.navbar ul.nav li a { | |||
color: white; | |||
text-shadow: none; | |||
outline: 0; | |||
} | |||
.navbar ul.nav li a:hover { | |||
color: #abd4ff !important; | |||
} | |||
.navbar-inner { | |||
height:40px !important; | |||
background-color:#000050; | |||
background-repeat:repeat-x; | |||
background-image:-khtml-gradient(linear, left top, left bottom, from(#000060), to(#000040)); | |||
background-image:-moz-linear-gradient(top, #000060, #000040); | |||
background-image:-ms-linear-gradient(top, #000060, #000040); | |||
background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #000060), color-stop(100%, #000040)); | |||
background-image:-webkit-linear-gradient(top, #000060, #000040); | |||
background-image:-o-linear-gradient(top, #000060, #000040); | |||
background-image:linear-gradient(top, #000060, #000040); | |||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#000060', endColorstr='#000040', GradientType=0); | |||
-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1); | |||
-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1); | |||
box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1); | |||
border-bottom: 2px solid #ff9900 !important; | |||
} | |||
.navbar ul li:focus, .navbar .active { | |||
background-repeat:no-repeat; | |||
background-image: url(arrow_page.png); | |||
background-position: center bottom; | |||
outline: 0; | |||
} | |||
.navbar .active a { | |||
background-color: transparent !important; | |||
outline: 0; | |||
} | |||
.navbar div > ul .menu-dropdown .selected, .nav .menu-dropdown .selected, .navbar div > ul .dropdown-menu .selected, .nav .dropdown-menu .selected { | |||
background-image: url("bullet_blue.png"); | |||
background-repeat: no-repeat; | |||
background-position: left; | |||
} | |||
.navbar div>ul .dropdown-menu li a { | |||
color: #555; | |||
} | |||
navbar div>ul .menu-dropdown li a:hover,.nav .menu-dropdown li a:hover,.navbar div>ul .dropdown-menu li a:hover,.nav .dropdown-menu li a:hover{ | |||
background-color: #000070; | |||
color: #ffffff !important; | |||
} | |||
.breadcrumb { | |||
margin-top: 5px !important; | |||
margin-bottom: 5px !important; | |||
} | |||
.pageTitle { | |||
margin-bottom: 5px; | |||
} | |||
.pageTitle h2 small { | |||
font-size: 80%; | |||
font-weight: bold; | |||
} | |||
div.page_footer { | |||
clear: both; | |||
height: 17px; | |||
color: black; | |||
background-color: #ffffff; | |||
padding: 5px; | |||
border-top: 1px solid #bbb; | |||
font-style: italic; | |||
} | |||
pre, code, pre.prettyprint, pre.plainprint { | |||
background-color: #ffffff; | |||
color: black; | |||
font-family: monospace; | |||
font-size:12px; | |||
border:0px; | |||
padding: 0; | |||
line-height: 1.35em; | |||
} | |||
table { | |||
margin-bottom:5px !important; | |||
font-size: inherit; | |||
} | |||
.table th { | |||
vertical-align: top; | |||
} | |||
th { | |||
vertical-align: middle; | |||
text-align: left; | |||
} | |||
pre.prettyprint ol { | |||
padding-left:25px; | |||
} | |||
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { | |||
color: #888; | |||
} | |||
.age0, .age1, .age2 { | |||
font-size: 12px; | |||
} | |||
/* age0: age < 60*60*2 */ | |||
.age0 { | |||
color: #008000; | |||
font-style: italic; | |||
font-weight: bold; | |||
} | |||
/* age1: 60*60*2 <= age < 60*60*24*2 */ | |||
.age1 { | |||
color: #008000; | |||
font-style: italic; | |||
} | |||
/* age2: 60*60*24*2 <= age */ | |||
.age2 { | |||
font-style: italic; | |||
} | |||
a.list { | |||
text-decoration: none; | |||
color: inherit; | |||
} | |||
a.list.subject { | |||
font-weight: bold; | |||
} | |||
a.list.name { | |||
font-weight: bold; | |||
} | |||
a.list:hover { | |||
text-decoration: underline; | |||
color: #880000; | |||
} | |||
span.empty { | |||
font-size: 0.9em; | |||
font-style: italic; | |||
padding-left:10px; | |||
color: #008000; | |||
} | |||
span.link { | |||
color: #888; | |||
} | |||
span.link, span.link a { | |||
font-family: sans-serif; | |||
font-size: 11px; | |||
} | |||
span.link em, div.link span em { | |||
font-style: normal; | |||
font-family: sans-serif; | |||
font-size: 11px; | |||
} | |||
span.repositorySwatch { | |||
border-radius: 3px; | |||
padding: 1px 4px 2px 4px; | |||
color: #ffffff; | |||
font-weight: bold; | |||
vertical-align: center; | |||
} | |||
span.repositorySwatch a { | |||
color: inherit; | |||
} | |||
img.inlineIcon { | |||
padding-left: 1px; | |||
padding-right: 1px; | |||
} | |||
img.overview { | |||
float:right; | |||
border:1px solid #CCCCCC; | |||
} | |||
img.gravatar { | |||
background-color: #ffffff; | |||
border: 1px solid #ddd; | |||
border-radius: 5px; | |||
padding: 2px; | |||
} | |||
div.header, div.commitHeader, table.repositories th { | |||
background-color:#e0e0e0; | |||
background-repeat:repeat-x; | |||
background-image:-khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#e0e0e0)); | |||
background-image:-moz-linear-gradient(top, #ffffff, #e0e0e0); | |||
background-image:-ms-linear-gradient(top, #ffffff, #e0e0e0); | |||
background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #e0e0e0)); | |||
background-image:-webkit-linear-gradient(top, #ffffff, #e0e0e0); | |||
background-image:-o-linear-gradient(top, #ffffff, #e0e0e0); | |||
background-image:linear-gradient(top, #ffffff, #e0e0e0); | |||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e0e0e0', GradientType=0); | |||
-webkit-box-shadow:inset 0 1px 0 #ffffff; | |||
-moz-box-shadow:inset 0 1px 0 #ffffff; | |||
box-shadow:inset 0 1px 0 #ffffff; | |||
} | |||
div.header { | |||
padding: 3px; | |||
border: 1px solid #ddd; | |||
border-bottom: 0; | |||
border-radius: 3px 3px 0 0; | |||
} | |||
div.commitHeader { | |||
margin:0 0 2px; | |||
padding:7px 14px; | |||
border:1px solid #ddd; | |||
border-radius: 3px; | |||
-webkit-border-radius:3px; | |||
-moz-border-radius:3px;border-radius:3px; | |||
} | |||
div.header a, div.commitHeader a { | |||
color: black; | |||
text-decoration: none; | |||
font-weight: bold; | |||
} | |||
div.header a:hover, div.commitHeader a:hover { | |||
text-decoration: underline; | |||
} | |||
div.page_nav2 { | |||
padding: 2px 5px 7px 5px; | |||
} | |||
div.admin_nav { | |||
border-bottom: 0px; | |||
text-align: right; | |||
padding: 5px 5px 5px 2px; | |||
} | |||
div.admin_nav a { | |||
text-decoration: none; | |||
} | |||
div.admin_nav a:hover { | |||
text-decoration: underline; | |||
} | |||
span.search { | |||
height: 40px; | |||
padding-top:2px; | |||
} | |||
span.search input { | |||
-webkit-border-radius:0;-moz-border-radius:0x;border-radius:0; | |||
vertical-align: top; | |||
background: url(search-icon.png) no-repeat 4px center; | |||
background-color: transparent; | |||
border: 1px solid transparent; | |||
outline: none; | |||
padding: 2px 2px 2px 22px; | |||
text-shadow: none; | |||
margin: 0px; | |||
color: #ddd; | |||
} | |||
span.search input:hover, span.search input:focus { | |||
background-color: transparent; | |||
border: 1px solid transparent; | |||
padding: 2px 2px 2px 22px; | |||
box-shadow: none; | |||
color: #ddd; | |||
border-bottom: 1px solid #ff9900; | |||
} | |||
span.search input:focus { | |||
color: white; | |||
} | |||
/* div.search input:focused { */ | |||
/* background-color: transparent; */ | |||
/* border: 1px solid transparent; */ | |||
/* padding: 2px 2px 2px 22px; */ | |||
/* text-shadow: none; */ | |||
/* } */ | |||
span.login input:focus { | |||
background-color: rgba(255, 255, 255, 0.6); | |||
text-shadow: none; | |||
color: white; | |||
} | |||
pre.commit_message { | |||
padding: 8px; | |||
border: solid #ddd; | |||
border-width: 1px 0px 0px; | |||
} | |||
div.bug_open, span.bug_open { | |||
padding: 2px; | |||
background-color: #803333; | |||
color: white; | |||
text-align: center; | |||
} | |||
div.bug_resolved, span.bug_resolved { | |||
padding: 2px; | |||
background-color: #408040; | |||
color: white; | |||
text-align: center; | |||
} | |||
div.bug_invalid, span.bug_invalid { | |||
padding: 2px; | |||
background-color: gray; | |||
text-align: center; | |||
} | |||
div.bug_hold, span.bug_hold { | |||
padding: 2px; | |||
background-color: orange; | |||
text-align: center; | |||
} | |||
div.diff { | |||
font-family: monospace; | |||
overflow: auto; | |||
} | |||
div.diff.header { | |||
-moz-border-bottom-colors: none; | |||
-moz-border-image: none; | |||
-moz-border-left-colors: none; | |||
-moz-border-right-colors: none; | |||
-moz-border-top-colors: none; | |||
background-color: #EDECE6; | |||
border-color: #D9D8D1; | |||
border-style: solid; | |||
border-width: 1px; | |||
font-weight: bold; | |||
margin-top: 10px; | |||
padding: 4px 0 2px; | |||
} | |||
div.diff.extended_header { | |||
background-color: #F6F5EE; | |||
padding: 2px 0; | |||
font-family: inherit; | |||
} | |||
span.diff.add { | |||
color: #008800; | |||
font-family: inherit; | |||
} | |||
span.diff.remove { | |||
color: #FFDDDD; | |||
font-family: inherit; | |||
} | |||
span.diff.unchanged { | |||
color: inherit; | |||
font-family: inherit; | |||
} | |||
div.diff.hunk_header { | |||
-moz-border-bottom-colors: none; | |||
-moz-border-image: none; | |||
-moz-border-left-colors: none; | |||
-moz-border-right-colors: none; | |||
-moz-border-top-colors: none; | |||
border-color: #FFE0FF; | |||
border-style: dotted; | |||
border-width: 1px 0 0; | |||
margin-top: 2px; | |||
font-family: inherit; | |||
} | |||
span.diff.hunk_info { | |||
background-color: #FFEEFF; | |||
color: #990099; | |||
font-family: inherit; | |||
} | |||
span.diff.hunk_section { | |||
color: #AA22AA; | |||
font-family: inherit; | |||
} | |||
div.diff.add2 { | |||
background-color: #DDFFDD; | |||
font-family: inherit; | |||
} | |||
div.diff.remove2 { | |||
background-color: #FFDDDD; | |||
font-family: inherit; | |||
} | |||
div.diff table { | |||
border-radius: 0; | |||
border-right: 1px solid #bbb; | |||
border-bottom: 1px solid #bbb; | |||
width: 100%; | |||
} | |||
div.diff table th, div.diff table td { | |||
margin: 0px; | |||
padding: 0px; | |||
font-family: monospace; | |||
border: 0; | |||
} | |||
div.diff table th { | |||
background-color: #f0f0f0; | |||
text-align: center; | |||
color: #999; | |||
padding-left: 5px; | |||
padding-right: 5px; | |||
width: 30px; | |||
} | |||
div.diff table th.header { | |||
background-color: #D2C3AF; | |||
border-right: 0px; | |||
border-bottom: 1px solid #808080; | |||
font-family: inherit; | |||
font-size:0.9em; | |||
color: black; | |||
padding: 2px; | |||
text-align: left; | |||
} | |||
div.diff table td.hunk_header { | |||
background-color: #dAe2e5 !important; | |||
border-top: 1px solid #bac2c5; | |||
border-bottom: 1px solid #bac2c5; | |||
color: #555; | |||
} | |||
div.diff table td { | |||
border-left: 1px solid #bbb; | |||
background-color: #f5f5f5; | |||
} | |||
td.changeType { | |||
width: 15px; | |||
} | |||
span.addition, span.modification, span.deletion, span.rename { | |||
border: 1px solid #888; | |||
float: left; | |||
height: 0.8em; | |||
margin: 0.2em 0.5em 0 0; | |||
overflow: hidden; | |||
width: 0.8em; | |||
} | |||
span.addition { | |||
background-color: #ccffcc; | |||
} | |||
span.modification { | |||
background-color: #ffdd88; | |||
} | |||
span.deletion { | |||
background-color: #f8bbbb; | |||
} | |||
span.rename { | |||
background-color: #cAc2f5; | |||
} | |||
div.commitLegend { | |||
float: right; | |||
padding: 0.4em 0.4em 0.2em 0.4em; | |||
vertical-align:top; | |||
margin: 0px; | |||
} | |||
div.commitLegend span { | |||
font-size: 0.9em; | |||
vertical-align: top; | |||
} | |||
div.references { | |||
float: right; | |||
text-align: right; | |||
} | |||
table.plain { | |||
width: 0 !important; | |||
border: 0; | |||
} | |||
table.plain th, table.plain td { | |||
white-space: nowrap; | |||
padding: 1px 6px; | |||
border: 0; | |||
} | |||
table.pretty { | |||
border:1px solid #ddd; | |||
border-radius: 0 0 3px 3px; | |||
width: 100%; | |||
} | |||
table.pretty td.icon { | |||
padding: 0px 0px 0px 2px; | |||
width: 18px; | |||
vertical-align: middle; | |||
} | |||
table.pretty td.icon img { | |||
vertical-align: top; | |||
} | |||
table.pretty td { | |||
padding: 2px 4px; | |||
border-left: 0; | |||
} | |||
table.comments td { | |||
padding: 4px; | |||
line-height: 17px; | |||
} | |||
table.repositories { | |||
border:1px solid #ddd; | |||
border-spacing: 0px; | |||
width: 100%; | |||
} | |||
table.repositories th { | |||
padding: 4px; | |||
border:0; | |||
} | |||
table.repositories td { | |||
padding: 2px; | |||
border-left: 0; | |||
} | |||
table.repositories td.rightAlign { | |||
text-align: right; | |||
} | |||
table.repositories td.icon img { | |||
vertical-align: top; | |||
} | |||
table.repositories tr.group { | |||
background-color: #ccc; | |||
} | |||
table.repositories tr.group td { | |||
font-weight: bold; | |||
color: black; | |||
background-color: #ddd; | |||
padding-left: 5px; | |||
border-top: 1px solid #aaa; | |||
border-bottom: 1px solid #aaa; | |||
} | |||
table.palette { border:0; width: 0 !important; } | |||
table.palette td.header { | |||
font-weight: bold; | |||
background-color: #ffffff !important; | |||
padding-top: 0px !important; | |||
margin-bottom: 0 !imporant; | |||
border: 0 !important; | |||
border-radius: 0 !important; | |||
line-height: 1em; | |||
} | |||
table.palette td.pane { | |||
padding: 0px; | |||
} | |||
table.gitnotes { | |||
border: 0; | |||
} | |||
table.gitnotes td { | |||
border-top: 1px solid #ddd; | |||
padding-top: 3px; | |||
vertical-align:top; | |||
} | |||
table.gitnotes table { | |||
border: none; | |||
} | |||
table.gitnotes td table td { | |||
border: none; | |||
padding: 0px; | |||
} | |||
table.gitnotes td.info { | |||
padding-right: 10px; | |||
} | |||
table.gitnotes td.message { | |||
width: 65%; | |||
border-left: 1px solid #ddd; | |||
padding-left: 10px; | |||
} | |||
table.annotated { | |||
border:1px solid #ddd; | |||
} | |||
table.annotated tr.even { | |||
background-color: white; | |||
} | |||
table.annotated tr.odd { | |||
background-color: #f5f5f5; | |||
} | |||
table.annotated td { | |||
padding: 0px; | |||
border: 0; | |||
} | |||
table.activity { | |||
width: 100%; | |||
} | |||
tr th a { background-position: right; padding-right: 15px; background-repeat:no-repeat; } | |||
tr th.wicket_orderDown a {background-image: url(arrow_down.png); } | |||
tr th.wicket_orderUp a { background-image: url(arrow_up.png); } | |||
tr th.wicket_orderNone a { background-image: url(arrow_off.png); } | |||
tr.light { | |||
background-color: #ffffff; | |||
} | |||
tr.dark { | |||
background-color: #f5f5f5; | |||
} | |||
/* currently both use the same, but it can change */ | |||
tr.light:hover, | |||
tr.dark:hover { | |||
background-color: #000070; | |||
color: white; | |||
} | |||
tr.light:hover a, | |||
tr.dark:hover a { | |||
color: white; | |||
} | |||
td.author { | |||
font-style: italic !important; | |||
} | |||
td.date { | |||
font-style: italic !important; | |||
} | |||
span.sha1, span.sha1 a, span.sha1 a span, pre.commit_message { | |||
font-family: monospace; | |||
font-size: 13px; | |||
} | |||
td.mode { | |||
text-align: right; | |||
font-family: monospace; | |||
width: 8em; | |||
padding-right:15px; | |||
} | |||
td.size { | |||
text-align: right; | |||
width: 8em; | |||
padding-right:15px; | |||
} | |||
td.rightAlign { | |||
text-align: right; | |||
} | |||
td.treeLinks { | |||
text-align: right; | |||
width: 13em; | |||
} | |||
span.help-inline { | |||
color: #777; | |||
} | |||
span.metricsTitle { | |||
font-size: 2em; | |||
} | |||
span .tagRef, span .headRef, span .localBranch, span .remoteBranch, span .otherRef { | |||
padding: 0px 3px; | |||
margin-right:2px; | |||
font-family: sans-serif; | |||
font-size: 9px; | |||
font-weight: normal; | |||
border: 1px solid; | |||
color: black; | |||
} | |||
span .tagRef a span, span .headRef a span, span .localBranch a span, span .remoteBranch a span, span .otherRef a span { | |||
font-size: 9px; | |||
} | |||
span .tagRef a, span .headRef a, span .localBranch a, span .remoteBranch a, span .otherRef a { | |||
text-decoration: none; | |||
color: black !important; | |||
} | |||
span .tagRef a:hover, span .headRef a:hover, span .localBranch a:hover, span .remoteBranch a:hover, span .otherRef a:hover { | |||
color: black !important; | |||
text-decoration: underline; | |||
} | |||
span .otherRef { | |||
background-color: #b0e0f0; | |||
border-color: #80aaaa; | |||
} | |||
span .remoteBranch { | |||
background-color: #cAc2f5; | |||
border-color: #6c6cbf; | |||
} | |||
span .tagRef { | |||
background-color: #ffffaa; | |||
border-color: #ffcc00; | |||
} | |||
span .headRef { | |||
background-color: #ffaaff; | |||
border-color: #ff00ee; | |||
} | |||
span .localBranch { | |||
background-color: #ccffcc; | |||
border-color: #00cc33; | |||
} | |||
table .palette td.buttons button { | |||
-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px; | |||
border: 1px solid #ccc !important; | |||
padding: 10px; | |||
margin-bottom: 10px; | |||
} | |||
table .palette td.buttons button:hover { | |||
border: 1px solid #0069D6 !important; | |||
} | |||
table .palette td.buttons button:active { | |||
border: 1px solid orange !important; | |||
} | |||
.feedbackPanelERROR, .feedbackPanelINFO { | |||
list-style: none; | |||
line-height: 35px; | |||
} | |||
.feedbackPanelINFO span, .feedbackPanelERROR span { | |||
position:relative;padding:7px 15px;margin-top:5px;margin-bottom:5px;color:#404040;background-color:#eedc94;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));background-image:-moz-linear-gradient(top, #fceec1, #eedc94);background-image:-ms-linear-gradient(top, #fceec1, #eedc94);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));background-image:-webkit-linear-gradient(top, #fceec1, #eedc94);background-image:-o-linear-gradient(top, #fceec1, #eedc94);background-image:linear-gradient(top, #fceec1, #eedc94);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#eedc94 #eedc94 #e4c652;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25); | |||
} | |||
.feedbackPanelERROR span { | |||
color: #ffffff; | |||
background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); | |||
} | |||
/* google-code-prettify line numbers */ | |||
li.L0, | |||
li.L1, | |||
li.L2, | |||
li.L3, | |||
li.L4, | |||
li.L5, | |||
li.L6, | |||
li.L7, | |||
li.L8, | |||
li.L9 { color: #888; border-left: 1px solid #ccc; padding-left:5px; list-style-type: decimal !important; } | |||
/* Alternate shading for lines */ | |||
li.L1, | |||
li.L3, | |||
li.L5, | |||
li.L7, | |||
li.L9 { background: #fafafa !important; } | |||
div.markdown pre { | |||
background-color: #F5F5F5; | |||
border: 1px solid rgba(0, 0, 0, 0.15); | |||
border-radius: 4px 4px 4px 4px; | |||
display: block; | |||
font-size: 12px; | |||
line-height: 18px; | |||
margin: 0 0 9px; | |||
padding: 8.5px; | |||
white-space: pre-wrap; | |||
} | |||
div.markdown pre code { | |||
background-color: inherit; | |||
border: none; | |||
padding: 0; | |||
} | |||
div.markdown code { | |||
background-color: #ffffe0; | |||
border: 1px solid orange; | |||
border-radius: 3px; | |||
padding: 0 0.2em; | |||
} | |||
div.markdown a { | |||
text-decoration: underline; | |||
} | |||
div.markdown em { | |||
color: #b05000; | |||
} | |||
div.markdown table.text th, div.markdown table.text td { | |||
vertical-align: top; | |||
border-top: 1px solid #ccc; | |||
padding:5px; | |||
} |
@@ -1,76 +0,0 @@ | |||
/* | |||
* Git:Blit Markdown CSS definition. | |||
*/ | |||
div.markdown { | |||
line-height: 1.4em; | |||
color: black; | |||
} | |||
div.markdown li { | |||
color: black; | |||
} | |||
div.markdown h1, | |||
div.markdown h2, | |||
div.markdown h3, | |||
div.markdown h4, | |||
div.markdown h5, | |||
div.markdown h6 { | |||
border: 0 none !important; | |||
} | |||
div.markdown h1 { | |||
margin-top: 0.5em; | |||
margin-bottom: 0.5em; | |||
border-bottom: 2px solid #000080 !important; | |||
} | |||
div.markdown h2 { | |||
margin-top: 1em; | |||
margin-bottom: 0.5em; | |||
border-bottom: 2px solid #000080 !important; | |||
} | |||
div.markdown pre { | |||
background-color: #f8f8f8; | |||
border: 1px solid #2f6fab; | |||
border-radius: 3px; | |||
overflow: auto; | |||
padding: 5px; | |||
} | |||
div.markdown pre code { | |||
background-color: inherit; | |||
border: none; | |||
padding: 0; | |||
} | |||
div.markdown code { | |||
background-color: #ffffe0; | |||
border: 1px solid orange; | |||
border-radius: 3px; | |||
padding: 0 0.2em; | |||
} | |||
div.markdown a { | |||
text-decoration: underline; | |||
} | |||
div.markdown ul, div.markdown ol { | |||
padding-left: 30px; | |||
} | |||
div.markdown li { | |||
margin: 0.2em 0 0 0em; padding: 0px; | |||
} | |||
div.markdown em { | |||
color: #b05000; | |||
} | |||
div.markdown table.text th, div.markdown table.text td { | |||
vertical-align: top; | |||
border-top: 1px solid #ccc; | |||
padding:5px; | |||
} |
@@ -211,5 +211,5 @@ gb.federationRepositoryDescription = share this repository with other Gitblit se | |||
gb.hookScriptsDescription = run Groovy scripts on pushes to this Gitblit server | |||
gb.reset = reset | |||
gb.pages = pages | |||
gb.workingCopy = WORKING COPY | |||
gb.workingCopy = working copy | |||
gb.workingCopyWarning = this repository has a working copy and can not receive pushes |
@@ -95,11 +95,11 @@ public class WicketUtils { | |||
public static void setTicketCssClass(Component container, String state) { | |||
String css = null; | |||
if (state.equals("open")) { | |||
css = "label important"; | |||
css = "label label-important"; | |||
} else if (state.equals("hold")) { | |||
css = "label warning"; | |||
css = "label label-warning"; | |||
} else if (state.equals("resolved")) { | |||
css = "label success"; | |||
css = "label label-success"; | |||
} else if (state.equals("invalid")) { | |||
css = "label"; | |||
} |
@@ -5,7 +5,7 @@ | |||
lang="en"> | |||
<body> | |||
<wicket:extend> | |||
<div class="page-header"> | |||
<div class="pageTitle"> | |||
<h2><wicket:message key="gb.recentActivity"></wicket:message><small> / <span wicket:id="subheader">[days back]</span></small></h2> | |||
</div> | |||
<div style="height: 155px;text-align: center;"> |
@@ -24,7 +24,6 @@ import java.util.List; | |||
import java.util.Map; | |||
import java.util.Set; | |||
import org.apache.wicket.Application; | |||
import org.apache.wicket.PageParameters; | |||
import org.apache.wicket.behavior.HeaderContributor; | |||
import org.apache.wicket.markup.html.basic.Label; | |||
@@ -203,22 +202,4 @@ public class ActivityPage extends RootPage { | |||
return charts; | |||
} | |||
@Override | |||
protected void onBeforeRender() { | |||
if (GitBlit.isDebugMode()) { | |||
// strip Wicket tags in debug mode for jQuery DOM traversal | |||
Application.get().getMarkupSettings().setStripWicketTags(true); | |||
} | |||
super.onBeforeRender(); | |||
} | |||
@Override | |||
protected void onAfterRender() { | |||
if (GitBlit.isDebugMode()) { | |||
// restore Wicket debug tags | |||
Application.get().getMarkupSettings().setStripWicketTags(false); | |||
} | |||
super.onAfterRender(); | |||
} | |||
} |
@@ -6,30 +6,35 @@ | |||
<!-- Head --> | |||
<wicket:head> | |||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |||
<title wicket:id="title">[page title]</title> | |||
<link rel="stylesheet" href="bootstrap.140.css"/> | |||
<link rel="stylesheet" type="text/css" href="bootstrap.gb.css"/> | |||
<link rel="stylesheet" href="bootstrap/css/bootstrap.css"/> | |||
<link rel="stylesheet" type="text/css" href="gitblit.css"/> | |||
<!-- Responsive CSS must be included after the above body css! --> | |||
<!-- <link rel="stylesheet" href="bootstrap/css/bootstrap-responsive.css"/> --> | |||
<link rel="icon" href="gitblt-favicon.png" type="image/png" /> | |||
<script type="text/javascript" src="bootstrap/js/jquery.js"></script> | |||
<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script> | |||
</wicket:head> | |||
<body style="padding-top: 40px;"> | |||
<div class="container"> | |||
<div class="content"> | |||
<body> | |||
<!-- page content --> | |||
<wicket:child /> | |||
<!-- page footer --> | |||
<div class="page_footer"> | |||
<div style="float:right"> | |||
<a title="gitblit homepage" href="http://gitblit.com/"> | |||
<span wicket:id="gbVersion"></span> | |||
</a> | |||
</div> | |||
<div wicket:id="userPanel">[user panel]</div> | |||
</div> | |||
</div> | |||
<div class="container"> | |||
<footer class="footer"> | |||
<p class="pull-right"> | |||
<a title="gitblit homepage" href="http://gitblit.com/"> | |||
<span wicket:id="gbVersion"></span> | |||
</a> | |||
</p> | |||
<div wicket:id="userPanel">[user panel]</div> | |||
</footer> | |||
</div> | |||
</body> | |||
<!-- user fragment --> |
@@ -22,6 +22,7 @@ import java.util.TimeZone; | |||
import javax.servlet.http.Cookie; | |||
import javax.servlet.http.HttpServletRequest; | |||
import org.apache.wicket.Application; | |||
import org.apache.wicket.MarkupContainer; | |||
import org.apache.wicket.PageParameters; | |||
import org.apache.wicket.RestartResponseAtInterceptPageException; | |||
@@ -64,6 +65,24 @@ public abstract class BasePage extends WebPage { | |||
logger = LoggerFactory.getLogger(getClass()); | |||
loginByCookie(); | |||
} | |||
@Override | |||
protected void onBeforeRender() { | |||
if (GitBlit.isDebugMode()) { | |||
// strip Wicket tags in debug mode for jQuery DOM traversal | |||
Application.get().getMarkupSettings().setStripWicketTags(true); | |||
} | |||
super.onBeforeRender(); | |||
} | |||
@Override | |||
protected void onAfterRender() { | |||
if (GitBlit.isDebugMode()) { | |||
// restore Wicket debug tags | |||
Application.get().getMarkupSettings().setStripWicketTags(false); | |||
} | |||
super.onAfterRender(); | |||
} | |||
private void loginByCookie() { | |||
if (!GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) { |
@@ -19,8 +19,10 @@ | |||
<td class="edit"><input type="password" wicket:id="confirmPassword" size="30" tabindex="2" /></td> | |||
</tr> | |||
</table> | |||
<input class="btn primary" type="submit" wicket:message="value:gb.save" wicket:id="save" tabindex="3" /> | |||
<input class="btn" type="submit" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="4" /> | |||
<div class="form-actions"> | |||
<input class="btn btn-primary" type="submit" wicket:message="value:gb.save" wicket:id="save" tabindex="3" /> | |||
<input class="btn" type="submit" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="4" /> | |||
</div> | |||
</center> | |||
</form> | |||
</div> |
@@ -16,12 +16,13 @@ | |||
<div wicket:id="commitHeader">[commit header]</div> | |||
<!-- changed paths --> | |||
<div style="padding-top:15px"> | |||
<div style="padding-top:15px;"> | |||
<!-- commit legend --> | |||
<div style="text-align:right;" wicket:id="commitLegend"></div> | |||
<div class="header"><wicket:message key="gb.changedFiles">[changed files]</wicket:message></div> | |||
</div> | |||
<table class="pretty"> | |||
<tr wicket:id="changedPath"> | |||
<td class="changeType"><span wicket:id="changeType">[change type]</span></td> | |||
@@ -35,7 +36,7 @@ | |||
</table> | |||
<!-- diff content --> | |||
<pre wicket:id="diffText">[diff text]</pre> | |||
<pre style="padding-top:10px;" wicket:id="diffText">[diff text]</pre> | |||
</wicket:extend> | |||
</body> |
@@ -11,30 +11,30 @@ | |||
<table class="plain"> | |||
<tbody class="settings"> | |||
<tr><td colspan="2"><h3><wicket:message key="gb.general"></wicket:message> <small><wicket:message key="gb.generalDescription"></wicket:message></small></h3></td></tr> | |||
<tr><th><wicket:message key="gb.name"></wicket:message></th><td class="edit"><input class="span6" type="text" wicket:id="name" id="name" size="40" tabindex="1" /> <span class="help-inline"><wicket:message key="gb.nameDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.description"></wicket:message></th><td class="edit"><input class="span6" type="text" wicket:id="description" size="40" tabindex="2" /></td></tr> | |||
<tr><th><wicket:message key="gb.origin"></wicket:message></th><td class="edit"><input class="span7" type="text" wicket:id="origin" size="80" tabindex="3" /></td></tr> | |||
<tr><th><wicket:message key="gb.name"></wicket:message></th><td class="edit"><input class="span4" type="text" wicket:id="name" id="name" size="40" tabindex="1" /> <span class="help-inline"><wicket:message key="gb.nameDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.description"></wicket:message></th><td class="edit"><input class="span4" type="text" wicket:id="description" size="40" tabindex="2" /></td></tr> | |||
<tr><th><wicket:message key="gb.origin"></wicket:message></th><td class="edit"><input class="span5" type="text" wicket:id="origin" size="80" tabindex="3" /></td></tr> | |||
<tr><th><wicket:message key="gb.head"></wicket:message></th><td class="edit"><select wicket:id="HEAD" tabindex="4" /> <span class="help-inline"><wicket:message key="gb.headRefDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.owner"></wicket:message></th><td class="edit"><select wicket:id="owner" tabindex="5" /> <span class="help-inline"><wicket:message key="gb.ownerDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.enableTickets"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="useTickets" tabindex="6" /> <span class="help-inline"><wicket:message key="gb.useTicketsDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.enableDocs"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="useDocs" tabindex="7" /> <span class="help-inline"><wicket:message key="gb.useDocsDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.showRemoteBranches"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="showRemoteBranches" tabindex="8" /> <span class="help-inline"><wicket:message key="gb.showRemoteBranchesDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.showReadme"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="showReadme" tabindex="9" /> <span class="help-inline"><wicket:message key="gb.showReadmeDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.skipSizeCalculation"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="skipSizeCalculation" tabindex="10" /> <span class="help-inline"><wicket:message key="gb.skipSizeCalculationDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.skipSummaryMetrics"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="skipSummaryMetrics" tabindex="11" /> <span class="help-inline"><wicket:message key="gb.skipSummaryMetricsDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.isFrozen"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="isFrozen" tabindex="12" /> <span class="help-inline"><wicket:message key="gb.isFrozenDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.mailingLists"></wicket:message></th><td class="edit"><input class="span14" type="text" wicket:id="mailingLists" size="40" tabindex="13" /></td></tr> | |||
<tr><th><wicket:message key="gb.enableTickets"></wicket:message></th><td class="edit"><label class="checkbox"><input type="checkbox" wicket:id="useTickets" tabindex="6" /> <span class="help-inline"><wicket:message key="gb.useTicketsDescription"></wicket:message></span></label></td></tr> | |||
<tr><th><wicket:message key="gb.enableDocs"></wicket:message></th><td class="edit"><label class="checkbox"><input type="checkbox" wicket:id="useDocs" tabindex="7" /> <span class="help-inline"><wicket:message key="gb.useDocsDescription"></wicket:message></span></label></td></tr> | |||
<tr><th><wicket:message key="gb.showRemoteBranches"></wicket:message></th><td class="edit"><label class="checkbox"><input type="checkbox" wicket:id="showRemoteBranches" tabindex="8" /> <span class="help-inline"><wicket:message key="gb.showRemoteBranchesDescription"></wicket:message></span></label></td></tr> | |||
<tr><th><wicket:message key="gb.showReadme"></wicket:message></th><td class="edit"><label class="checkbox"><input type="checkbox" wicket:id="showReadme" tabindex="9" /> <span class="help-inline"><wicket:message key="gb.showReadmeDescription"></wicket:message></span></label></td></tr> | |||
<tr><th><wicket:message key="gb.skipSizeCalculation"></wicket:message></th><td class="edit"><label class="checkbox"><input type="checkbox" wicket:id="skipSizeCalculation" tabindex="10" /> <span class="help-inline"><wicket:message key="gb.skipSizeCalculationDescription"></wicket:message></span></label></td></tr> | |||
<tr><th><wicket:message key="gb.skipSummaryMetrics"></wicket:message></th><td class="edit"><label class="checkbox"><input type="checkbox" wicket:id="skipSummaryMetrics" tabindex="11" /> <span class="help-inline"><wicket:message key="gb.skipSummaryMetricsDescription"></wicket:message></span></label></td></tr> | |||
<tr><th><wicket:message key="gb.isFrozen"></wicket:message></th><td class="edit"><label class="checkbox"><input type="checkbox" wicket:id="isFrozen" tabindex="12" /> <span class="help-inline"><wicket:message key="gb.isFrozenDescription"></wicket:message></span></label></td></tr> | |||
<tr><th><wicket:message key="gb.mailingLists"></wicket:message></th><td class="edit"><input class="span8" type="text" wicket:id="mailingLists" size="40" tabindex="13" /></td></tr> | |||
<tr><td colspan="2" style="padding-top:15px"><h3><wicket:message key="gb.accessPermissions"></wicket:message> <small><wicket:message key="gb.accessPermissionsDescription"></wicket:message></small></h3></td></tr> | |||
<tr><th><wicket:message key="gb.accessRestriction"></wicket:message></th><td class="edit"><select class="span6" wicket:id="accessRestriction" tabindex="14" /></td></tr> | |||
<tr><th><wicket:message key="gb.accessRestriction"></wicket:message></th><td class="edit"><select class="span4" wicket:id="accessRestriction" tabindex="14" /></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.permittedUsers"></wicket:message></th><td style="padding:2px;"><span wicket:id="users"></span></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.permittedTeams"></wicket:message></th><td style="padding:2px;"><span wicket:id="teams"></span></td></tr> | |||
<tr><td colspan="2"><h3><wicket:message key="gb.federation"></wicket:message> <small><wicket:message key="gb.federationRepositoryDescription"></wicket:message></small></h3></td></tr> | |||
<tr><th><wicket:message key="gb.federationStrategy"></wicket:message></th><td class="edit"><select class="span6" wicket:id="federationStrategy" tabindex="15" /></td></tr> | |||
<tr><th><wicket:message key="gb.federationStrategy"></wicket:message></th><td class="edit"><select class="span4" wicket:id="federationStrategy" tabindex="15" /></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.federationSets"></wicket:message></th><td style="padding:2px;"><span wicket:id="federationSets"></span></td></tr> | |||
<tr><td colspan="2"><h3><wicket:message key="gb.hookScripts"></wicket:message> <small><wicket:message key="gb.hookScriptsDescription"></wicket:message></small></h3></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.preReceiveScripts"></wicket:message><p></p><span wicket:id="inheritedPreReceive"></span></th><td style="padding:2px;"><span wicket:id="preReceiveScripts"></span></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.postReceiveScripts"></wicket:message><p></p><span wicket:id="inheritedPostReceive"></span></th><td style="padding:2px;"><span wicket:id="postReceiveScripts"></span></td></tr> | |||
<tr><td colspan='2'><div class="actions" "><input class="btn primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="16" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="17" /></div></td></tr> | |||
<tr><td colspan='2'><div class="form-actions" "><input class="btn btn-primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="16" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="17" /></div></td></tr> | |||
</tbody> | |||
</table> | |||
</form> |
@@ -12,7 +12,7 @@ | |||
<tbody class="settings"> | |||
<tr><td colspan="2"><h3><wicket:message key="gb.general"></wicket:message> <small><wicket:message key="gb.generalDescription"></wicket:message></small></h3></td></tr> | |||
<tr><th><wicket:message key="gb.teamName"></wicket:message></th><td class="edit"><input type="text" wicket:id="name" id="name" size="30" tabindex="1" /></td></tr> | |||
<tr><th><wicket:message key="gb.mailingLists"></wicket:message></th><td class="edit"><input class="span14" type="text" wicket:id="mailingLists" size="40" tabindex="2" /></td></tr> | |||
<tr><th><wicket:message key="gb.mailingLists"></wicket:message></th><td class="edit"><input class="span8" type="text" wicket:id="mailingLists" size="40" tabindex="2" /></td></tr> | |||
<tr><td colspan="2" style="padding-top:15px;"><h3><wicket:message key="gb.accessPermissions"></wicket:message> <small><wicket:message key="gb.accessPermissionsForTeamDescription"></wicket:message></small></h3></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.teamMembers"></wicket:message></th><td style="padding:2px;"><span wicket:id="users"></span></td></tr> | |||
<tr><td colspan="2"><hr></hr></td></tr> | |||
@@ -20,7 +20,7 @@ | |||
<tr><td colspan="2" style="padding-top:10px;"><h3><wicket:message key="gb.hookScripts"></wicket:message> <small><wicket:message key="gb.hookScriptsDescription"></wicket:message></small></h3></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.preReceiveScripts"></wicket:message><p></p><span wicket:id="inheritedPreReceive"></span></th><td style="padding:2px;"><span wicket:id="preReceiveScripts"></span></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.postReceiveScripts"></wicket:message><p></p><span wicket:id="inheritedPostReceive"></span></th><td style="padding:2px;"><span wicket:id="postReceiveScripts"></span></td></tr> | |||
<tr><td colspan='2'><div class="actions"><input class="btn primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="3" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="4" /></div></td></tr> | |||
<tr><td colspan='2'><div class="form-actions"><input class="btn btn-primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="3" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="4" /></div></td></tr> | |||
</tbody> | |||
</table> | |||
</form> |
@@ -14,13 +14,13 @@ | |||
<tr><th><wicket:message key="gb.username"></wicket:message></th><td class="edit"><input type="text" wicket:id="username" id="username" size="30" tabindex="1" /></td></tr> | |||
<tr><th><wicket:message key="gb.password"></wicket:message></th><td class="edit"><input type="password" wicket:id="password" size="30" tabindex="2" /></td></tr> | |||
<tr><th><wicket:message key="gb.confirmPassword"></wicket:message></th><td class="edit"><input type="password" wicket:id="confirmPassword" size="30" tabindex="3" /></td></tr> | |||
<tr><th><wicket:message key="gb.canAdmin"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="canAdmin" tabindex="6" /> <span class="help-inline"><wicket:message key="gb.canAdminDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.excludeFromFederation"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="excludeFromFederation" tabindex="7" /> <span class="help-inline"><wicket:message key="gb.excludeFromFederationDescription"></wicket:message></span></td></tr> | |||
<tr><th><wicket:message key="gb.canAdmin"></wicket:message></th><td class="edit"><label class="checkbox"><input type="checkbox" wicket:id="canAdmin" tabindex="6" /> <span class="help-inline"><wicket:message key="gb.canAdminDescription"></wicket:message></span></label></td></tr> | |||
<tr><th><wicket:message key="gb.excludeFromFederation"></wicket:message></th><td class="edit"><label class="checkbox"><input type="checkbox" wicket:id="excludeFromFederation" tabindex="7" /> <span class="help-inline"><wicket:message key="gb.excludeFromFederationDescription"></wicket:message></span></label></td></tr> | |||
<tr><td colspan="2" style="padding-top:15px;"><h3><wicket:message key="gb.accessPermissions"></wicket:message> <small><wicket:message key="gb.accessPermissionsForUserDescription"></wicket:message></small></h3></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.teamMemberships"></wicket:message></th><td style="padding:2px;"><span wicket:id="teams"></span></td></tr> | |||
<tr><td colspan="2"><hr></hr></td></tr> | |||
<tr><th style="vertical-align: top;"><wicket:message key="gb.restrictedRepositories"></wicket:message></th><td style="padding:2px;"><span wicket:id="repositories"></span></td></tr> | |||
<tr><td colspan='2'><div class="actions"><input class="btn primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="8" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="9" /></div></td></tr> | |||
<tr><td colspan='2'><div class="form-actions"><input class="btn btn-primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="8" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="9" /></div></td></tr> | |||
</tbody> | |||
</table> | |||
</form> |
@@ -12,7 +12,7 @@ | |||
<wicket:extend> | |||
<!-- markdown message --> | |||
<div class="markdown" style="margin-top:-15px;padding-bottom:10px;"> | |||
<div class="markdown"> | |||
<h2>Empty Repository</h2> | |||
<p></p> | |||
<span wicket:id="repository" style="font-weight: bold;">[repository]</span> is an empty repository and can not be viewed by Gitblit. |
@@ -5,7 +5,7 @@ | |||
lang="en"> | |||
<body> | |||
<wicket:extend> | |||
<div class="page-header"> | |||
<div class="pageTitle"> | |||
<h2>Gravatar<small> / <span wicket:id="username">[username]</span></small></h2> | |||
</div> | |||
<img class="gravatar" wicket:id="profileImage"></img> |
@@ -3,11 +3,6 @@ | |||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" | |||
xml:lang="en" | |||
lang="en"> | |||
<!-- contribute markdown css to the page header --> | |||
<wicket:head> | |||
<link href="markdown.css" type="text/css" rel="stylesheet" /> | |||
</wicket:head> | |||
<body> | |||
<wicket:extend> |
@@ -10,7 +10,7 @@ | |||
<!-- branch name --> | |||
<div><span class="metricsTitle" wicket:id="branchTitle"></span></div> | |||
<table> | |||
<table style="width:100%;"> | |||
<tr> | |||
<!-- branch stats --> | |||
<td colspan=2> |
@@ -3,13 +3,10 @@ | |||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" | |||
xml:lang="en" | |||
lang="en"> | |||
<wicket:head> | |||
<link href="markdown.css" type="text/css" rel="stylesheet" /> | |||
</wicket:head> | |||
<body> | |||
<wicket:extend> | |||
<div class="markdown" style="margin-top:-1em;padding-bottom:5px;" wicket:id="repositoriesMessage">[repositories message]</div> | |||
<div class="markdown" style="padding-bottom:5px;" wicket:id="repositoriesMessage">[repositories message]</div> | |||
<div wicket:id="repositoriesPanel">[repositories panel]</div> | |||
</wicket:extend> |
@@ -22,7 +22,6 @@ import java.io.InputStreamReader; | |||
import java.text.MessageFormat; | |||
import java.util.List; | |||
import org.apache.wicket.Application; | |||
import org.apache.wicket.Component; | |||
import org.apache.wicket.PageParameters; | |||
import org.apache.wicket.markup.html.basic.Label; | |||
@@ -148,22 +147,4 @@ public class RepositoriesPage extends RootPage { | |||
} | |||
return message; | |||
} | |||
@Override | |||
protected void onBeforeRender() { | |||
if (GitBlit.isDebugMode()) { | |||
// strip Wicket tags in debug mode for jQuery DOM traversal | |||
Application.get().getMarkupSettings().setStripWicketTags(true); | |||
} | |||
super.onBeforeRender(); | |||
} | |||
@Override | |||
protected void onAfterRender() { | |||
if (GitBlit.isDebugMode()) { | |||
// restore Wicket debug tags | |||
Application.get().getMarkupSettings().setStripWicketTags(false); | |||
} | |||
super.onAfterRender(); | |||
} | |||
} |
@@ -6,46 +6,55 @@ | |||
<body> | |||
<wicket:extend> | |||
<!-- page header bar --> | |||
<div> | |||
<!-- page nav links --> | |||
<div class="topbar"> | |||
<div class="fill"> | |||
<div class="container"> | |||
<a class="brand" wicket:id="rootLink"> | |||
<img src="gitblt_25_white.png" width="79" height="25" alt="gitblit" class="logo"/> | |||
</a> | |||
<!-- page nav links --> | |||
<div class="navbar navbar-fixed-top"> | |||
<div class="navbar-inner"> | |||
<div class="container"> | |||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> | |||
<span class="icon-bar"></span> | |||
<span class="icon-bar"></span> | |||
<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"/> | |||
</a> | |||
<span wicket:id="navPanel"></span> | |||
<div class="nav-collapse" wicket:id="navPanel"></div> | |||
<a class="brand" style="text-decoration: none;" wicket:id="syndication"> | |||
<img style="border:0px;vertical-align:middle;" src="feed_16x16.png"></img> | |||
</a> | |||
<a class="brand" style="text-decoration: none;" wicket:id="syndication"> | |||
<img style="border:0px;vertical-align:middle;" src="feed_16x16.png"></img> | |||
</a> | |||
<form class="pull-right" wicket:id="searchForm"> | |||
<div class="search"> | |||
<select class="small" wicket:id="searchType"/> | |||
<input type="text" id="searchBox" wicket:id="searchBox" value=""/> | |||
</div> | |||
</form> | |||
<form class="pull-right" style="margin-top:7px;" wicket:id="searchForm"> | |||
<span class="search"> | |||
<select class="small" wicket:id="searchType"/> | |||
<input type="text" id="searchBox" wicket:id="searchBox" value=""/> | |||
</span> | |||
</form> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div> | |||
<!-- page header --> | |||
<div class="page-header"> | |||
<div style="float:right;padding-top:5px;"> | |||
<span class="label important" wicket:id="workingCopy">[working copy]</span> | |||
<!-- page content --> | |||
<div class="container"> | |||
<div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div> | |||
<!-- page header --> | |||
<div class="pageTitle"> | |||
<span wicket:id="workingCopy"></span> | |||
<h2><span wicket:id="repositoryName">[repository name]</span> <small><span wicket:id="pageName">[page name]</span></small></h2> | |||
</div> | |||
<h2><span wicket:id="repositoryName">[repository name]</span> <small><span wicket:id="pageName">[page name]</span></small></h2> | |||
<wicket:child /> | |||
</div> | |||
<!-- page content --> | |||
<wicket:child /> | |||
<wicket:fragment wicket:id="workingCopyFragment"> | |||
<p class="pull-right" style="padding-top:5px;"> | |||
<span class="alert alert-info" style="padding: 8px 14px 8px 14px;vertical-align: middle;"><i class="icon-exclamation-sign" style="vertical-align: middle;"></i> <span wicket:id="workingCopy" style="font-weight:bold;">[working copy]</span></span> | |||
</p> | |||
</wicket:fragment> | |||
</wicket:extend> | |||
</body> | |||
</html> |
@@ -156,9 +156,11 @@ public abstract class RepositoryPage extends BasePage { | |||
if (getRepositoryModel().isBare) { | |||
add(new Label("workingCopy").setVisible(false)); | |||
} else { | |||
Fragment fragment = new Fragment("workingCopy", "workingCopyFragment", this); | |||
Label lbl = new Label("workingCopy", getString("gb.workingCopy")); | |||
WicketUtils.setHtmlTooltip(lbl, getString("gb.workingCopyWarning")); | |||
add(lbl); | |||
fragment.add(lbl); | |||
add(fragment); | |||
} | |||
super.setupPage(repositoryName, pageName); |
@@ -5,21 +5,26 @@ | |||
lang="en"> | |||
<body> | |||
<wicket:extend> | |||
<div class="topbar"> | |||
<div class="fill"> | |||
<div class="navbar navbar-fixed-top"> | |||
<div class="navbar-inner"> | |||
<div class="container"> | |||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> | |||
<span class="icon-bar"></span> | |||
<span class="icon-bar"></span> | |||
<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"/> | |||
</a> | |||
<span wicket:id="navPanel"></span> | |||
<div class="nav-collapse" wicket:id="navPanel"></div> | |||
<form class="pull-right" wicket:id="loginForm"> | |||
<div class="login"> | |||
<form class="pull-right" style="margin-top:5px;" wicket:id="loginForm"> | |||
<span class="form-search"> | |||
<input wicket:id="username" class="input-small" type="text" /> | |||
<input wicket:id="password" class="input-small" type="password" /> | |||
<button class="btn primary" type="submit"><wicket:message key="gb.login"></wicket:message></button> | |||
</div> | |||
<button class="btn btn-primary" style="margin-top:0px; "type="submit"><wicket:message key="gb.login"></wicket:message></button> | |||
</span> | |||
</form> | |||
</div> | |||
</div> | |||
@@ -28,7 +33,9 @@ | |||
<div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div> | |||
<!-- subclass content --> | |||
<wicket:child/> | |||
<div class="container"> | |||
<wicket:child/> | |||
</div> | |||
</wicket:extend> | |||
</body> | |||
</html> |
@@ -7,7 +7,7 @@ | |||
<body> | |||
<wicket:extend> | |||
<!-- page header --> | |||
<div class="page-header"> | |||
<div class="pageTitle"> | |||
<h2><span wicket:id="pageName">[page name]</span> <small><span wicket:id="pageSubName">[sub name]</span></small></h2> | |||
</div> | |||
@@ -14,7 +14,7 @@ | |||
<tr><th valign="top"><wicket:message key="gb.message">message</wicket:message></th><td class="edit"><input class="span8" type="text" wicket:id="message" size="80" /></td></tr> | |||
<tr><th><wicket:message key="gb.type">type</wicket:message></th><td><span wicket:id="tokenType">[token type]</span></td></tr> | |||
<tr><th><wicket:message key="gb.token">token</wicket:message></th><td><span class="sha1" wicket:id="token">[token]</span></td></tr> | |||
<tr><th></th><td class="editButton"><input class="btn primary" type="submit" value="propose" wicket:message="value:gb.sendProposal" wicket:id="save" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" /></td></tr> | |||
<tr><th></th><td class="editButton"><input class="btn btn-primary" type="submit" value="propose" wicket:message="value:gb.sendProposal" wicket:id="save" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" /></td></tr> | |||
</table> | |||
</form> | |||
@@ -3,11 +3,6 @@ | |||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" | |||
xml:lang="en" | |||
lang="en"> | |||
<wicket:head> | |||
<link href="markdown.css" type="text/css" rel="stylesheet" /> | |||
</wicket:head> | |||
<body> | |||
<wicket:extend> | |||
@@ -39,7 +34,17 @@ | |||
<div style="padding-bottom:10px;" wicket:id="branchesPanel">[branches panel]</div> | |||
<!-- markdown readme --> | |||
<div wicket:id="readme" class="markdown" style="clear:both;padding-bottom:5px;"></div> | |||
<div wicket:id="readme"></div> | |||
<wicket:fragment wicket:id="markdownPanel"> | |||
<div class="header" style="margin-top:10px;" > | |||
<img style="vertical-align: middle; border: 1px solid #888;" src="book_16x16.png"/> | |||
<span style="font-weight:bold;vertical-align:middle;" wicket:id="readmeFile"></span> | |||
</div> | |||
<div style="border:1px solid #ddd;border-radius: 0 0 3px 3px;padding: 20px;"> | |||
<div wicket:id="readmeContent" class="markdown"></div> | |||
</div> | |||
</wicket:fragment> | |||
</wicket:extend> | |||
</body> | |||
</html> |
@@ -22,9 +22,11 @@ import java.text.ParseException; | |||
import java.util.ArrayList; | |||
import java.util.List; | |||
import org.apache.wicket.Component; | |||
import org.apache.wicket.PageParameters; | |||
import org.apache.wicket.markup.html.basic.Label; | |||
import org.apache.wicket.markup.html.link.BookmarkablePageLink; | |||
import org.apache.wicket.markup.html.panel.Fragment; | |||
import org.eclipse.jgit.lib.Repository; | |||
import org.eclipse.jgit.revwalk.RevCommit; | |||
import org.wicketstuff.googlecharts.Chart; | |||
@@ -135,11 +137,11 @@ public class SummaryPage extends RepositoryPage { | |||
if (getRepositoryModel().showReadme) { | |||
String htmlText = null; | |||
String readme = null; | |||
try { | |||
RevCommit head = JGitUtils.getCommit(r, null); | |||
List<String> markdownExtensions = GitBlit.getStrings(Keys.web.markdownExtensions); | |||
List<PathModel> paths = JGitUtils.getFilesInPath(r, null, head); | |||
String readme = null; | |||
List<PathModel> paths = JGitUtils.getFilesInPath(r, null, head); | |||
for (PathModel path : paths) { | |||
if (!path.isTree()) { | |||
String name = path.name.toLowerCase(); | |||
@@ -162,9 +164,12 @@ public class SummaryPage extends RepositoryPage { | |||
} catch (ParseException p) { | |||
error(p.getMessage()); | |||
} | |||
Fragment fragment = new Fragment("readme", "markdownPanel"); | |||
fragment.add(new Label("readmeFile", readme)); | |||
// Add the html to the page | |||
add(new Label("readme", htmlText).setEscapeModelStrings(false).setVisible( | |||
!StringUtils.isEmpty(htmlText))); | |||
Component content = new Label("readmeContent", htmlText).setEscapeModelStrings(false); | |||
fragment.add(content.setVisible(!StringUtils.isEmpty(htmlText))); | |||
add(fragment); | |||
} else { | |||
add(new Label("readme").setVisible(false)); | |||
} |
@@ -34,7 +34,7 @@ public class TicketPage extends RepositoryPage { | |||
public TicketPage(PageParameters params) { | |||
super(params); | |||
final String ticketFolder = WicketUtils.getObject(params); | |||
final String ticketFolder = WicketUtils.getPath(params); | |||
Repository r = getRepository(); | |||
TicketModel t = TicgitUtils.getTicket(r, ticketFolder); |
@@ -9,7 +9,7 @@ | |||
<div wicket:id="activity"> | |||
<div class="header"><span wicket:id="title">[title]</span></div> | |||
<table wicket:id="commits"> | |||
<table class="activity" wicket:id="commits"> | |||
<tr wicket:id="commit"></tr> | |||
</table> | |||
</div> |
@@ -4,31 +4,9 @@ | |||
xml:lang="en" | |||
lang="en"> | |||
<wicket:head> | |||
<script src="jquery.min.js" type="text/javascript" ></script> | |||
<script type="text/javascript"> | |||
function clearMenu() { | |||
// hide the menu | |||
$('a.menu, .dropdown-toggle').parent('li').removeClass('open') | |||
} | |||
$(document).ready(function() { | |||
// hide menu when clicking anywhere else in page | |||
$('html').bind('click', clearMenu) | |||
$('a.menu, .dropdown-toggle').click( | |||
function (e) { | |||
var $li = $(this).parent('li').toggleClass('open'); | |||
return false; | |||
} | |||
); | |||
}); | |||
</script> | |||
</wicket:head> | |||
<wicket:panel> | |||
<a class="menu" href=""><span wicket:id="label">label</span></a> | |||
<ul class="menu-dropdown"> | |||
<a class="dropdown-toggle" href="#" data-toggle="dropdown"><span wicket:id="label">label</span><b class="caret"></b></a> | |||
<ul class="dropdown-menu"> | |||
<li wicket:id="menuItems"><span wicket:id="menuItem">[MenuItem]</span></li> | |||
</ul> | |||
</wicket:panel> |
@@ -43,12 +43,15 @@ public class DropDownMenu extends Panel { | |||
if (entry.isDivider()) { | |||
item.add(new Label("menuItem").setRenderBodyOnly(true)); | |||
WicketUtils.setCssClass(item, "divider"); | |||
} else { | |||
item.add(new LinkPanel("menuItem", null, entry.toString(), menu.pageClass, | |||
entry.getPageParameters()).setRenderBodyOnly(true)); | |||
} else { | |||
String icon = null; | |||
if (entry.isSelected()) { | |||
WicketUtils.setCssClass(item, "selected"); | |||
icon = "icon-ok"; | |||
} else { | |||
icon = "icon-ok-white"; | |||
} | |||
item.add(new LinkPanel("menuItem", icon, null, entry.toString(), menu.pageClass, | |||
entry.getPageParameters(), false).setRenderBodyOnly(true)); | |||
} | |||
} | |||
}; |
@@ -4,6 +4,6 @@ | |||
xml:lang="en" | |||
lang="en"> | |||
<wicket:panel> | |||
<a href="#" wicket:id="link"><span wicket:id="label">[link]</span></a> | |||
<a href="#" wicket:id="link"><i wicket:id="icon" style="padding-right:5px;"></i><span wicket:id="label">[link]</span></a> | |||
</wicket:panel> | |||
</html> |
@@ -26,6 +26,9 @@ import org.apache.wicket.markup.html.panel.Panel; | |||
import org.apache.wicket.model.IModel; | |||
import org.apache.wicket.model.Model; | |||
import com.gitblit.utils.StringUtils; | |||
import com.gitblit.wicket.WicketUtils; | |||
public class LinkPanel extends Panel { | |||
private static final long serialVersionUID = 1L; | |||
@@ -34,25 +37,30 @@ public class LinkPanel extends Panel { | |||
public LinkPanel(String wicketId, String linkCssClass, String label, | |||
Class<? extends WebPage> clazz) { | |||
this(wicketId, linkCssClass, new Model<String>(label), clazz, null, false); | |||
this(wicketId, null, linkCssClass, new Model<String>(label), clazz, null, false); | |||
} | |||
public LinkPanel(String wicketId, String linkCssClass, String label, | |||
Class<? extends WebPage> clazz, PageParameters parameters) { | |||
this(wicketId, linkCssClass, new Model<String>(label), clazz, parameters, false); | |||
this(wicketId, null, linkCssClass, new Model<String>(label), clazz, parameters, false); | |||
} | |||
public LinkPanel(String wicketId, String linkCssClass, String label, | |||
Class<? extends WebPage> clazz, PageParameters parameters, boolean newWindow) { | |||
this(wicketId, linkCssClass, new Model<String>(label), clazz, parameters, newWindow); | |||
this(wicketId, null, linkCssClass, new Model<String>(label), clazz, parameters, newWindow); | |||
} | |||
public LinkPanel(String wicketId, String bootstrapIcon, String linkCssClass, String label, | |||
Class<? extends WebPage> clazz, PageParameters parameters, boolean newWindow) { | |||
this(wicketId, bootstrapIcon, linkCssClass, new Model<String>(label), clazz, parameters, newWindow); | |||
} | |||
public LinkPanel(String wicketId, String linkCssClass, IModel<String> model, | |||
Class<? extends WebPage> clazz, PageParameters parameters) { | |||
this(wicketId, linkCssClass, model, clazz, parameters, false); | |||
this(wicketId, null, linkCssClass, model, clazz, parameters, false); | |||
} | |||
public LinkPanel(String wicketId, String linkCssClass, IModel<String> model, | |||
public LinkPanel(String wicketId, String bootstrapIcon, String linkCssClass, IModel<String> model, | |||
Class<? extends WebPage> clazz, PageParameters parameters, boolean newWindow) { | |||
super(wicketId); | |||
this.labelModel = model; | |||
@@ -68,6 +76,13 @@ public class LinkPanel extends Panel { | |||
if (linkCssClass != null) { | |||
link.add(new SimpleAttributeModifier("class", linkCssClass)); | |||
} | |||
Label icon = new Label("icon"); | |||
if (StringUtils.isEmpty(bootstrapIcon)) { | |||
link.add(icon.setVisible(false)); | |||
} else { | |||
WicketUtils.setCssClass(icon, bootstrapIcon); | |||
link.add(icon); | |||
} | |||
link.add(new Label("label", labelModel)); | |||
add(link); | |||
} | |||
@@ -87,6 +102,7 @@ public class LinkPanel extends Panel { | |||
if (linkCssClass != null) { | |||
link.add(new SimpleAttributeModifier("class", linkCssClass)); | |||
} | |||
link.add(new Label("icon").setVisible(false)); | |||
link.add(new Label("label", labelModel)); | |||
add(link); | |||
} |
@@ -48,17 +48,20 @@ public class NavigationPanel extends Panel { | |||
// other link | |||
OtherPageLink link = (OtherPageLink) entry; | |||
Component c = new LinkPanel("link", null, getString(entry.translationKey), link.url); | |||
c.setRenderBodyOnly(true); | |||
item.add(c); | |||
} else if (entry instanceof DropDownMenuRegistration) { | |||
// drop down menu | |||
DropDownMenuRegistration reg = (DropDownMenuRegistration) entry; | |||
Component c = new DropDownMenu("link", getString(entry.translationKey), reg); | |||
c.setRenderBodyOnly(true); | |||
item.add(c); | |||
WicketUtils.setCssClass(item, "menu"); | |||
WicketUtils.setCssClass(item, "dropdown"); | |||
} else { | |||
// standard page link | |||
Component c = new LinkPanel("link", null, getString(entry.translationKey), | |||
entry.pageClass, entry.params); | |||
c.setRenderBodyOnly(true); | |||
if (entry.pageClass.equals(pageClass)) { | |||
WicketUtils.setCssClass(item, "active"); | |||
} |