]> source.dussan.org Git - gitblit.git/commitdiff
Let Wicket manage resources and use markup inheritance.
authorJames Moger <james.moger@gitblit.com>
Thu, 7 Apr 2011 13:46:30 +0000 (09:46 -0400)
committerJames Moger <james.moger@gitblit.com>
Thu, 7 Apr 2011 13:46:30 +0000 (09:46 -0400)
This seems to improve page loading times.

59 files changed:
.classpath
build.xml
src/com/gitblit/wicket/BasePage.html [new file with mode: 0644]
src/com/gitblit/wicket/BasePage.java
src/com/gitblit/wicket/RepositoryPage.java
src/com/gitblit/wicket/pages/BlobPage.html
src/com/gitblit/wicket/pages/BlobPage.java
src/com/gitblit/wicket/pages/BranchesPage.html
src/com/gitblit/wicket/pages/BranchesPage.java
src/com/gitblit/wicket/pages/CommitPage.html
src/com/gitblit/wicket/pages/CommitPage.java
src/com/gitblit/wicket/pages/DiffPage.html
src/com/gitblit/wicket/pages/DiffPage.java
src/com/gitblit/wicket/pages/RepositoriesPage.html
src/com/gitblit/wicket/pages/RepositoriesPage.java
src/com/gitblit/wicket/pages/ShortLogPage.html
src/com/gitblit/wicket/pages/ShortLogPage.java
src/com/gitblit/wicket/pages/SummaryPage.html
src/com/gitblit/wicket/pages/SummaryPage.java
src/com/gitblit/wicket/pages/TagPage.html
src/com/gitblit/wicket/pages/TagPage.java
src/com/gitblit/wicket/pages/TagsPage.html
src/com/gitblit/wicket/pages/TagsPage.java
src/com/gitblit/wicket/pages/TicGitPage.html
src/com/gitblit/wicket/pages/TicGitPage.java
src/com/gitblit/wicket/pages/TicGitTicketPage.html
src/com/gitblit/wicket/pages/TicGitTicketPage.java
src/com/gitblit/wicket/pages/TreePage.html
src/com/gitblit/wicket/pages/TreePage.java
src/com/gitblit/wicket/pages/prettify/lang-apollo.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-css.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-hs.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-lisp.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-lua.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-ml.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-proto.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-scala.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-sql.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-vb.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-vhdl.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-wiki.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/lang-yaml.js [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/prettify.css [new file with mode: 0644]
src/com/gitblit/wicket/pages/prettify/prettify.js [new file with mode: 0644]
src/com/gitblit/wicket/panels/PageFooter.html [deleted file]
src/com/gitblit/wicket/panels/PageFooter.java [deleted file]
src/com/gitblit/wicket/panels/PageHeader.html [deleted file]
src/com/gitblit/wicket/panels/PageHeader.java [deleted file]
src/com/gitblit/wicket/resources/arrow_down.png [new file with mode: 0644]
src/com/gitblit/wicket/resources/arrow_off.png [new file with mode: 0644]
src/com/gitblit/wicket/resources/arrow_up.png [new file with mode: 0644]
src/com/gitblit/wicket/resources/blank.png [new file with mode: 0644]
src/com/gitblit/wicket/resources/gitblit.css [new file with mode: 0644]
src/com/gitblit/wicket/resources/gitblt-favicon.png [new file with mode: 0644]
src/com/gitblit/wicket/resources/gitblt-logo.png [new file with mode: 0644]
src/com/gitblit/wicket/resources/gitblt.png [new file with mode: 0644]
src/com/gitblit/wicket/resources/gitblt2.png [new file with mode: 0644]
src/com/gitblit/wicket/resources/gitblt3.png [new file with mode: 0644]
src/com/gitblit/wicket/resources/gitblt_25.png [new file with mode: 0644]

index 2fc1d0f4c5990f9d1839dbf758fabb086dd29be4..4f9e926b966f97fd9bef13c1ca2f96e17367c0db 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <classpath>\r
        <classpathentry kind="src" path="src"/>\r
-       <classpathentry kind="src" path="resources"/>\r
        <classpathentry kind="src" path="contrib"/>\r
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>\r
        <classpathentry kind="lib" path="lib/jgit-0.11.3.jar" sourcepath="/org.eclipse.jgit"/>\r
index 258f4f45d4e8252096464e1c882d1c75583234b0..54cbaa279d80ef96ee8c309853b688652d07a312 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -34,7 +34,6 @@
                </javac>\r
                <copy todir="${project.build.dir}">\r
                        <fileset dir="${basedir}/src" excludes="**/*.java,**/thumbs.db" />\r
-                       <fileset dir="${basedir}/resources" excludes="**/thumbs.db" />\r
                </copy>\r
 \r
                <!-- Build jar -->\r
diff --git a/src/com/gitblit/wicket/BasePage.html b/src/com/gitblit/wicket/BasePage.html
new file mode 100644 (file)
index 0000000..ccd8c12
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+       <!-- Head with Wicket-controlled resources in this package -->\r
+       <wicket:head>\r
+               <title wicket:id="title">[page title]</title>\r
+               <wicket:link>\r
+                       <link rel="stylesheet" type="text/css" href="resources/gitblit.css"/>\r
+                       <link rel="shortcut icon" href="resources/gitblt-favicon.png" type="image/png" />\r
+               </wicket:link>\r
+       </wicket:head>\r
+\r
+       <body>\r
+               <!-- page header -->\r
+               <div class="page_header">\r
+                       <a title="gitblit homepage" href="http://gitblit.com/">\r
+                               <wicket:link>\r
+                                       <img src="resources/gitblt_25.png" width="79" height="25" alt="gitblit" class="logo"/>\r
+                               </wicket:link>\r
+                       </a>\r
+                       <a href="/"><span wicket:id="siteName">[site name]</span></a> / <span wicket:id="repositoryName">[repository name]</span> <span wicket:id="pageName">[page name]</span> \r
+               </div>\r
+\r
+               <!-- page content -->\r
+               <wicket:child />\r
+               \r
+               <!-- page footer -->\r
+               <div class="page_footer">\r
+                       <div style="float:right">\r
+                               <a href="http://gitblit.com"><span wicket:id="gbVersion"></span></a> \r
+                       </div>\r
+                       <div wicket:id="footerText">[footer text]</div>\r
+               </div>\r
+       </body>\r
+</html>
\ No newline at end of file
index 5c29eac2782eacd239e5eca947d25fd9265a8c08..a1cd413de266703b9b70bbbeb90c763d48f316e4 100644 (file)
@@ -2,14 +2,20 @@ package com.gitblit.wicket;
 \r
 import java.util.Date;\r
 \r
+import javax.servlet.http.HttpServletRequest;\r
+\r
 import org.apache.wicket.Component;\r
 import org.apache.wicket.PageParameters;\r
 import org.apache.wicket.markup.html.WebPage;\r
 import org.apache.wicket.markup.html.basic.Label;\r
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
 \r
+import com.gitblit.Constants;\r
+import com.gitblit.StoredSettings;\r
 import com.gitblit.utils.Utils;\r
+import com.gitblit.wicket.pages.SummaryPage;\r
 \r
 \r
 public abstract class BasePage extends WebPage {\r
@@ -23,6 +29,31 @@ public abstract class BasePage extends WebPage {
        public BasePage(PageParameters params) {\r
                super(params);\r
        }\r
+       \r
+       protected void setupPage(String repositoryName, String pageName) {\r
+               if (repositoryName != null && repositoryName.trim().length() > 0) {\r
+                       add(new Label("title", getServerName() + " - " + repositoryName));\r
+               } else {\r
+                       add(new Label("title", getServerName()));\r
+               }\r
+               // header\r
+               add(new Label("siteName", StoredSettings.getString("siteName", Constants.NAME)));\r
+               add(new LinkPanel("repositoryName", null, repositoryName, SummaryPage.class, new PageParameters("p=" + repositoryName)));\r
+               add(new Label("pageName", pageName));\r
+               \r
+               // footer\r
+               add(new Label("footerText", ""));\r
+               add(new Label("gbVersion", "v" + Constants.VERSION));\r
+               if (StoredSettings.getBoolean("aggressiveHeapManagement", false)) {\r
+                       System.gc();\r
+               }\r
+       }\r
+       \r
+       protected String getServerName() {\r
+               ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest();\r
+               HttpServletRequest req = servletWebRequest.getHttpServletRequest();\r
+               return req.getServerName();\r
+       }\r
 \r
        protected Label createAuthorLabel(String wicketId, String author) {\r
                Label label = new Label(wicketId, author);\r
index 2f2b967657554a49aedd15547af2d4222b6933a9..d3e0589ff581c9b31c4b5e4b4b169aa6a3edd7e1 100644 (file)
@@ -15,8 +15,6 @@ import org.eclipse.jgit.revwalk.RevCommit;
 import com.gitblit.StoredSettings;\r
 import com.gitblit.utils.JGitUtils;\r
 import com.gitblit.wicket.pages.RepositoriesPage;\r
-import com.gitblit.wicket.panels.PageFooter;\r
-import com.gitblit.wicket.panels.PageHeader;\r
 import com.gitblit.wicket.panels.PageLinksPanel;\r
 import com.gitblit.wicket.panels.RefsPanel;\r
 \r
@@ -28,7 +26,7 @@ public abstract class RepositoryPage extends BasePage {
 \r
        private transient Repository r = null;\r
 \r
-       public RepositoryPage(PageParameters params, String pageName) {\r
+       public RepositoryPage(PageParameters params) {\r
                super(params);\r
                if (!params.containsKey("p")) {\r
                        error("Repository not specified!");\r
@@ -39,8 +37,7 @@ public abstract class RepositoryPage extends BasePage {
 \r
                Repository r = getRepository();\r
 \r
-               add(new PageHeader("pageHeader", repositoryName, "/ " + pageName));\r
-               add(new PageLinksPanel("pageLinks", r, repositoryName, pageName));\r
+               add(new PageLinksPanel("pageLinks", r, repositoryName, getPageName()));\r
                setStatelessHint(true);\r
        }\r
 \r
@@ -95,10 +92,12 @@ public abstract class RepositoryPage extends BasePage {
                }\r
                add(new Label(wicketId, html).setEscapeModelStrings(false));\r
        }\r
+       \r
+       protected abstract String getPageName();\r
 \r
        protected void addFooter() {\r
                r.close();\r
-               add(new PageFooter("pageFooter", description));\r
+               setupPage(repositoryName, "/ " + getPageName());\r
        }\r
 \r
        protected PageParameters newRepositoryParameter() {\r
index 6d04e180ab42af1905190a04a80e924d51263d36..3eff62da4d43010f2aac94edec4a9429572cee54 100644 (file)
@@ -1,31 +1,35 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
-<head>\r
+\r
+<!-- contribute google-code-prettify resources to the page header -->\r
+<wicket:head>\r
+  <wicket:link>\r
        <link href="prettify/prettify.css" type="text/css" rel="stylesheet" />\r
        <script type="text/javascript" src="prettify/prettify.js"></script>\r
-</head>\r
+  </wicket:link>\r
+</wicket:head>\r
+\r
+<wicket:extend>\r
+<!-- need to specify body.onload -->\r
 <body onload="prettyPrint()">\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
 \r
-       <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+               <!-- page nav links --> \r
+               <div wicket:id="pageLinks">[page links]</div>\r
        \r
-       <!-- blob nav links --> \r
-       <div class="page_nav2">\r
-               <span wicket:id="historyLink"></span> | <span wicket:id="rawLink"></span> | <span wicket:id="headLink"></span>\r
-       </div>  \r
+               <!-- blob nav links --> \r
+               <div class="page_nav2">\r
+                       <span wicket:id="historyLink">[history link]</span> | <span wicket:id="rawLink">[raw link]</span> | <span wicket:id="headLink">[head link]</span>\r
+               </div>  \r
        \r
-       <!-- shortlog header -->\r
-       <div class="header" wicket:id="shortlog"></div>\r
+               <!-- shortlog header -->\r
+               <div class="header" wicket:id="shortlog">[shortlog header]</div>\r
 \r
-       <!-- breadcrumbs -->\r
-       <div wicket:id="breadcrumbs"></div>\r
+               <!-- breadcrumbs -->\r
+               <div wicket:id="breadcrumbs">[breadcrumbs]</div>\r
                \r
-       <!--  blob content -->\r
-       <pre wicket:id="blobText"></pre>\r
+               <!--  blob content -->\r
+               <pre wicket:id="blobText">[blob content]</pre>\r
        \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
 </body>\r
+</wicket:extend>\r
 </html>
\ No newline at end of file
index 324a74e2567b8872466d77cafee365e18529a983..b9cdc0373a6cb4fde380a44e5d5d74591d14dde3 100644 (file)
@@ -20,7 +20,7 @@ import com.gitblit.wicket.panels.PathBreadcrumbsPanel;
 public class BlobPage extends RepositoryPage {\r
 \r
        public BlobPage(PageParameters params) {\r
-               super(params, "view");\r
+               super(params);\r
 \r
                final String blobPath = params.getString("f", null);\r
 \r
@@ -85,10 +85,12 @@ public class BlobPage extends RepositoryPage {
                        add(blobLabel);\r
                }\r
 \r
-               // close repository\r
-               r.close();\r
-\r
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "view";\r
+       }\r
 }\r
index d4e591997bc641bfecc36dc09980e3db265cc846..0d0657efcc7c8525ee27de707019962659492c79 100644 (file)
@@ -1,26 +1,24 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
 \r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
        \r
        <!-- shortlog -->       \r
-       <div style="margin-top:5px;" class="header" wicket:id="summary"></div>  \r
+       <div style="margin-top:5px;" class="header" wicket:id="summary">[header]</div>  \r
        <table class="pretty">\r
                <tbody>\r
                        <tr wicket:id="branch">\r
-                       <td><i><span wicket:id="branchDate"></span></i></td>\r
-                       <td><div wicket:id="branchName"></div></td>\r
-                       <td><div wicket:id="branchType"></div></td>\r
-                       <td class="rightAlign"><span wicket:id="branchLinks"></span></td>\r
+                       <td class="date"><span wicket:id="branchDate">[branch date]</span></td>\r
+                       <td><div wicket:id="branchName">[branch name]</div></td>\r
+                       <td><div wicket:id="branchType">[branch type]</div></td>\r
+                       <td class="rightAlign"><span wicket:id="branchLinks">[branch links]</span></td>\r
                        </tr>\r
        </tbody>\r
        </table>        \r
-       \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+\r
+</wicket:extend>\r
 </body>\r
 </html>
\ No newline at end of file
index 1fc5f88bcd42509b3230a002c66d4edf4efd48d3..8257799201ca90335ef914e4040b2d637b520a34 100644 (file)
@@ -23,13 +23,12 @@ import com.gitblit.wicket.panels.BranchLinksPanel;
 public class BranchesPage extends RepositoryPage {\r
 \r
        public BranchesPage(PageParameters params) {\r
-               super(params, "branches");\r
+               super(params);\r
 \r
                Repository r = getRepository();\r
                List<RefModel> branches = new ArrayList<RefModel>();\r
                branches.addAll(JGitUtils.getLocalBranches(r, -1));\r
                branches.addAll(JGitUtils.getRemoteBranches(r, -1));\r
-               r.close();\r
 \r
                // shortlog\r
                add(new LinkPanel("summary", "title", repositoryName, SummaryPage.class, newRepositoryParameter()));\r
@@ -68,4 +67,9 @@ public class BranchesPage extends RepositoryPage {
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "branches";\r
+       }\r
 }\r
index c2edbea3b295e05cbac21da1978038f9290a7125..da455d6dc2d9a09d7ac5707d54431146d12cb5cc 100644 (file)
@@ -1,45 +1,43 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
 \r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
        \r
        <!-- commit nav links -->       \r
        <div class="page_nav2">\r
-               parent: <span wicket:id="parentLink"></span> | <span wicket:id="patchLink"></span>\r
+               parent: <span wicket:id="parentLink">[parent link]</span> | <span wicket:id="patchLink">[patch link]</span>\r
        </div>  \r
        \r
        <!-- shortlog header -->\r
-       <div class="header" wicket:id="shortlog"></div>\r
+       <div class="header" wicket:id="shortlog">[shortlog header]</div>\r
        \r
        <!-- commit info -->\r
        <table class="plain">\r
-               <tr><th>refs</th><td><div wicket:id="refsPanel"></div></td></tr>\r
-               <tr><th>author</th><td><span wicket:id="commitAuthor">Message goes here</span></td></tr>\r
-               <tr><th></th><td><span wicket:id="commitAuthorDate">Message goes here</span></td></tr>\r
-               <tr><th>committer</th><td><span wicket:id="commitCommitter">Message goes here</span></td></tr>\r
-               <tr><th></th><td><span wicket:id="commitCommitterDate">Message goes here</span></td></tr>\r
-               <tr><th>commit</th><td class="sha1"><span wicket:id="commitId">Message goes here</span></td></tr>\r
-               <tr><th>tree</th><td class="sha1"><span wicket:id="commitTree">Message goes here</span></td></tr>\r
+               <tr><th>refs</th><td><div wicket:id="refsPanel">[references]</div></td></tr>\r
+               <tr><th>author</th><td><span wicket:id="commitAuthor">[author</span></td></tr>\r
+               <tr><th></th><td><span wicket:id="commitAuthorDate">[author date]</span></td></tr>\r
+               <tr><th>committer</th><td><span wicket:id="commitCommitter">[committer]</span></td></tr>\r
+               <tr><th></th><td><span wicket:id="commitCommitterDate">[commit date]</span></td></tr>\r
+               <tr><th>commit</th><td class="sha1"><span wicket:id="commitId">[commit id]</span></td></tr>\r
+               <tr><th>tree</th><td class="sha1"><span wicket:id="commitTree">[commit tree]</span></td></tr>\r
                <tr><th>parent</th><td class="sha1"><span wicket:id="commitParents">\r
-                       <div wicket:id="commitParent">Message goes here</div></span></td></tr>\r
+                       <div wicket:id="commitParent">[commit parents]</div></span></td></tr>\r
        </table>\r
        \r
        <!-- full message -->\r
-       <div class="commit_message" wicket:id="fullMessage"></div>\r
+       <div class="commit_message" wicket:id="fullMessage">[commit message]</div>\r
        \r
        <!-- changed paths -->\r
        <table class="pretty">\r
                <tr wicket:id="changedPath">\r
-                       <td class="path"><span wicket:id="pathName"></span></td>                        \r
-                       <td><span wicket:id="pathLinks"></span></td>\r
+                       <td class="path"><span wicket:id="pathName">[commit path]</span></td>                   \r
+                       <td><span wicket:id="pathLinks">[path links]</span></td>\r
                </tr>\r
        </table>\r
        \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+</wicket:extend>\r
 </body>\r
 </html>
\ No newline at end of file
index 0754532bf8699acd6ce4b5cb6c9241e403faee42..662ba4ceae53858860eae093da33014890f9f571 100644 (file)
@@ -23,7 +23,7 @@ import com.gitblit.wicket.panels.PathLinksPanel;
 public class CommitPage extends RepositoryPage {\r
 \r
        public CommitPage(PageParameters params) {\r
-               super(params, "commit");\r
+               super(params);\r
 \r
                final String commitId = params.getString("h", "");\r
 \r
@@ -97,10 +97,12 @@ public class CommitPage extends RepositoryPage {
                };\r
                add(pathsView);\r
                \r
-               // close repository\r
-               r.close();\r
-\r
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "commit";\r
+       }\r
 }\r
index b001deade45ac93f868edbd5d4c3f1efad8ce29e..afec6d6307390312e6eb2314b883b3f536155bd1 100644 (file)
@@ -1,31 +1,25 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
-<head>\r
-       <link href="prettify/prettify.css" type="text/css" rel="stylesheet" />\r
-       <script type="text/javascript" src="prettify/prettify.js"></script>\r
-</head>\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
 \r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
        \r
        <!-- blob nav links --> \r
        <div class="page_nav2">\r
-               <span wicket:id="historyLink"></span> | <span wicket:id="rawLink"></span> | <span wicket:id="headLink"></span>\r
+               <span wicket:id="historyLink">[history link]</span> | <span wicket:id="rawLink">[raw link]</span> | <span wicket:id="headLink">[head link]</span>\r
        </div>  \r
        \r
        <!-- shortlog header -->\r
-       <div class="header" wicket:id="shortlog"></div>\r
+       <div class="header" wicket:id="shortlog">[shortlog header]</div>\r
 \r
        <!-- breadcrumbs -->\r
-       <div wicket:id="breadcrumbs"></div>\r
+       <div wicket:id="breadcrumbs">[breadcrumbs]</div>\r
                \r
        <!--  diff content -->\r
-       <pre wicket:id="diffText"></pre>\r
+       <pre wicket:id="diffText">[diff text]</pre>\r
        \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+</wicket:extend>\r
 </body>\r
 </html>
\ No newline at end of file
index 05500f83f2466f6fbeaf41e5888554a0c787583a..7f72f0f55be0ba65a91fa433ef7b7dbbf676af4d 100644 (file)
@@ -13,7 +13,7 @@ import com.gitblit.wicket.panels.PathBreadcrumbsPanel;
 public class DiffPage extends RepositoryPage {\r
 \r
        public DiffPage(PageParameters params) {\r
-               super(params, "diff");\r
+               super(params);\r
 \r
                final String blobPath = params.getString("f", null);\r
 \r
@@ -27,7 +27,6 @@ public class DiffPage extends RepositoryPage {
                        // commit diff\r
                        diff = JGitUtils.getCommitDiff(r, commit, true);\r
                }\r
-               r.close();\r
 \r
                // diff page links\r
                add(new Label("historyLink", "history"));\r
@@ -43,4 +42,9 @@ public class DiffPage extends RepositoryPage {
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "diff";\r
+       }\r
 }\r
index 43168bba248605b0e6d4041339f331397c4e04d4..252af4f0c8fe31a5ff0c5a62a8e36bd7d79cce16 100644 (file)
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
+       <div wicket:id="adminPanel">[admin links]</div>\r
        \r
-       <div wicket:id="adminPanel"></div>\r
-       \r
-       <div class="repositories_message" wicket:id="repositoriesMessage"></div>\r
+       <div class="repositories_message" wicket:id="repositoriesMessage">[repositories message]</div>\r
                \r
        <table class="repositories">\r
                <tr>\r
                </tr>\r
                <tbody>\r
                        <tr wicket:id="repository">\r
-                       <td><div class="list" wicket:id="repositoryName"></div></td>\r
-                       <td><div class="list" wicket:id="repositoryDescription"></div></td>\r
-                       <td><i><span wicket:id="repositoryOwner"></span></i></td>\r
-                       <td><span wicket:id="repositoryLastChange"></span></td>\r
+                       <td><div class="list" wicket:id="repositoryName">[repository name]</div></td>\r
+                       <td><div class="list" wicket:id="repositoryDescription">[repository description]</div></td>\r
+                       <td class="author"><span wicket:id="repositoryOwner">[repository owner]</span></td>\r
+                       <td><span wicket:id="repositoryLastChange">[last change]</span></td>\r
                        </tr>\r
        </tbody>\r
        </table>\r
-       \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+</wicket:extend>\r
 </body>\r
 </html>
\ No newline at end of file
index 4755e415ccb9a4cc08f7fa95ad5dcc1095db9d60..d1b9694e496943101e7158677f3e354e0f1b6be3 100644 (file)
@@ -23,15 +23,14 @@ import com.gitblit.wicket.LinkPanel;
 import com.gitblit.wicket.WicketUtils;\r
 import com.gitblit.wicket.models.RepositoryModel;\r
 import com.gitblit.wicket.panels.AdminLinksPanel;\r
-import com.gitblit.wicket.panels.PageFooter;\r
-import com.gitblit.wicket.panels.PageHeader;\r
 \r
 \r
 public class RepositoriesPage extends BasePage {\r
 \r
        public RepositoriesPage() {\r
-               add(new PageHeader("pageHeader"));\r
-\r
+               super();\r
+               setupPage("", "");\r
+               \r
                add(new AdminLinksPanel("adminPanel").setVisible(StoredSettings.getBoolean("allowAdministration", false)));\r
                \r
                add(new Label("repositoriesMessage", StoredSettings.getString("repositoriesMessage", "")).setEscapeModelStrings(false));\r
@@ -65,8 +64,6 @@ public class RepositoriesPage extends BasePage {
                add(newSort("orderByDescription", SortBy.description, dp, dataView));\r
                add(newSort("orderByOwner", SortBy.owner, dp, dataView));\r
                add(newSort("orderByDate", SortBy.date, dp, dataView));\r
-\r
-               add(new PageFooter("pageFooter", ""));\r
        }\r
 \r
        protected enum SortBy {\r
index f1daa272348caaebd411c2be1b10e76cdc09b96f..5a688fd9a39b06d5ef407fd7c59f2a2abb271867 100644 (file)
@@ -1,28 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
 \r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
        \r
        <!-- shortlog -->       \r
-       <div style="margin-top:5px;" class="header" wicket:id="summary"></div>  \r
+       <div style="margin-top:5px;" class="header" wicket:id="summary">[shortlog header]</div> \r
        <table style="width:100%" "class="pretty">\r
                <tbody>\r
                        <tr wicket:id="commit">\r
-                       <td class="date"><span wicket:id="commitDate"></span></td>\r
-                       <td class="author"><span wicket:id="commitAuthor"></span></td>\r
-                       <td><div wicket:id="commitShortMessage"></div></td>\r
-                       <td class="rightAlign"><div wicket:id="commitRefs"></div></td>                  \r
-                       <td class="rightAlign"><span wicket:id="commitLinks"></span></td>\r
+                       <td class="date"><span wicket:id="commitDate">[commit date]</span></td>\r
+                       <td class="author"><span wicket:id="commitAuthor">[commit author]</span></td>\r
+                       <td><div wicket:id="commitShortMessage">[commit short message]</div></td>\r
+                       <td class="rightAlign"><div wicket:id="commitRefs">[commit refs]</div></td>                     \r
+                       <td class="rightAlign"><span wicket:id="commitLinks">[commit links]</span></td>\r
                        </tr>\r
        </tbody>\r
        </table>        \r
-       <div class="pager" wicket:id="navigator"></div>\r
+       <div class="pager" wicket:id="navigator">[pager]</div>\r
        \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+</wicket:extend>\r
 </body>\r
 </html>
\ No newline at end of file
index 220874e820d476dc2f11a86d73f62e9a656c824f..cc12aac907d35eb6afcac63da4686f737d6ede84 100644 (file)
@@ -25,12 +25,11 @@ import com.gitblit.wicket.panels.ShortLogLinksPanel;
 public class ShortLogPage extends RepositoryPage {\r
 \r
        public ShortLogPage(PageParameters params) {\r
-               super(params, "shortlog");\r
+               super(params);\r
 \r
                Repository r = getRepository();\r
                final Map<ObjectId, List<String>> allRefs = JGitUtils.getAllRefs(r);\r
                List<RevCommit> commits = JGitUtils.getRevLog(r, 100);\r
-               r.close();\r
 \r
                // shortlog\r
                add(new LinkPanel("summary", "title", repositoryName, SummaryPage.class, newRepositoryParameter()));\r
@@ -73,4 +72,9 @@ public class ShortLogPage extends RepositoryPage {
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "shortlog";\r
+       }\r
 }\r
index 6a103e4b425fc3998447fa4315972395967e4e73..ccfb6ae40b111d37556f31fb90eff4b4d03d2abb 100644 (file)
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
-       \r
+<wicket:extend>\r
+\r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
        \r
        <div>\r
                <!-- Repository Activity Chart -->      \r
                <!-- Repository info -->\r
                <div style="margin-right:410px;"> \r
                        <table class="plain">\r
-                               <tr><th>description</th><td><span wicket:id="repositoryDescription">Message goes here</span></td></tr>\r
-                               <tr><th>owner</th><td><span wicket:id="repositoryOwner">Message goes here</span></td></tr>\r
-                               <tr><th>last change</th><td><span wicket:id="repositoryLastChange">Message goes here</span></td></tr>\r
-                               <tr><th>URL</th><td><span wicket:id="repositoryCloneUrl">Message goes here</span></td></tr>\r
+                               <tr><th>description</th><td><span wicket:id="repositoryDescription">[repository description]</span></td></tr>\r
+                               <tr><th>owner</th><td><span wicket:id="repositoryOwner">[repository owner]</span></td></tr>\r
+                               <tr><th>last change</th><td><span wicket:id="repositoryLastChange">[repository last change]</span></td></tr>\r
+                               <tr><th>URL</th><td><span wicket:id="repositoryCloneUrl">[repository clone url]</span></td></tr>\r
                        </table>\r
                </div>\r
        </div>\r
 \r
        <!-- shortlog -->\r
-       <div class="header" wicket:id="shortlog"></div> \r
+       <div class="header" wicket:id="shortlog">[shortlog header]</div>        \r
        <table style="width:100%" class="pretty">\r
                <tbody>\r
                        <tr wicket:id="commit">\r
-                       <td class="date"><span wicket:id="commitDate"></span></td>\r
-                       <td class="author"><span wicket:id="commitAuthor"></span></td>\r
-                       <td><div wicket:id="commitShortMessage"></div></td>\r
-                       <td class="rightAlign"><div wicket:id="commitRefs"></div></td>\r
-                       <td class="rightAlign"><span wicket:id="commitLinks"></span></td>\r
+                       <td class="date"><span wicket:id="commitDate">[commit date]</span></td>\r
+                       <td class="author"><span wicket:id="commitAuthor">[commit author]</span></td>\r
+                       <td><div wicket:id="commitShortMessage">[commit short message]</div></td>\r
+                       <td class="rightAlign"><div wicket:id="commitRefs">[commit refs]</div></td>\r
+                       <td class="rightAlign"><span wicket:id="commitLinks">[commit links]</span></td>\r
                        </tr>\r
        </tbody>\r
        </table>        \r
-       <div class="pager" wicket:id="shortlogMore"></div>\r
+       <div class="pager" wicket:id="shortlogMore">[more shortlogs]</div>\r
 \r
        <!-- Open Branches Body -->\r
        <div style="width:400px; float:left;">\r
                <!-- heads -->\r
-               <div class="header" wicket:id="branches"></div> \r
+               <div class="header" wicket:id="branches">[branches header]</div>        \r
                <table style="width:100%" class="pretty">\r
                        <tbody>\r
                                <tr wicket:id="branch">\r
-                                       <td class="date"><span wicket:id="branchDate"></span></td>\r
-                                       <td><div wicket:id="branchName"></div></td>\r
-                                       <td class="rightAlign"><span wicket:id="branchLinks"></span></td>\r
+                                       <td class="date"><span wicket:id="branchDate">[branch date]</span></td>\r
+                                       <td><div wicket:id="branchName">[branch name]</div></td>\r
+                                       <td class="rightAlign"><span wicket:id="branchLinks">[branch links]</span></td>\r
                                </tr>\r
                        </tbody>\r
                </table>\r
-               <div class="pager" wicket:id="allBranches"></div>\r
+               <div class="pager" wicket:id="allBranches">[all branches]</div>\r
                <!-- Close Branches Body -->\r
        </div>\r
 \r
        <!-- Open Tags body -->\r
        <div style="margin-left:405px;">\r
                <!-- tags -->\r
-               <div class="header" wicket:id="tags"></div>     \r
+               <div class="header" wicket:id="tags">[tags header]</div>        \r
                        <table style="width:100%" class="pretty">\r
                                <tbody>\r
                                        <tr wicket:id="tag">\r
-                                       <td class="date"><span wicket:id="tagDate"></span></td>\r
-                                       <td><b><div wicket:id="tagName"></div></b></td>\r
-                                       <td><div wicket:id="tagDescription"></div></td>\r
-                                       <td class="rightAlign"><span wicket:id="tagLinks"></span></td>\r
+                                       <td class="date"><span wicket:id="tagDate">[tag date]</span></td>\r
+                                       <td><b><div wicket:id="tagName">[tag name]</div></b></td>\r
+                                       <td><div wicket:id="tagDescription">[tag description]</div></td>\r
+                                       <td class="rightAlign"><span wicket:id="tagLinks">[tag links]</span></td>\r
                                        </tr>\r
                        </tbody>\r
                        </table>\r
-               <div class="pager" wicket:id="allTags"></div>   \r
+               <div class="pager" wicket:id="allTags">[all tags]</div> \r
        <!-- Close Tags Body -->\r
        </div>\r
        \r
-       <!-- footer -->\r
-       <div style="clear:both;" wicket:id="pageFooter"></div>\r
+</wicket:extend>       \r
 </body>\r
 </html>
\ No newline at end of file
index b7be71a5efbeca371e81582db12b0e7f0cb6271e..c086480ec539e01e874a05a2b577adb76f88c1f5 100644 (file)
@@ -42,7 +42,7 @@ import com.gitblit.wicket.panels.TagLinksPanel;
 public class SummaryPage extends RepositoryPage {\r
 \r
        public SummaryPage(PageParameters params) {\r
-               super(params, "summary");\r
+               super(params);\r
                \r
                int numCommitsDef = 20;\r
                int numRefsDef = 5;\r
@@ -195,6 +195,11 @@ public class SummaryPage extends RepositoryPage {
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "summary";\r
+       }\r
 \r
        private void insertActivityGraph(Repository r) {\r
                if (StoredSettings.getBoolean("generateActivityGraph", true)) {\r
index f86becf91529cad01ab87e4d6e910e1d6d935bd4..41a604d49f17a2806e88cfa8bee59bcd8a8a2b52 100644 (file)
@@ -1,26 +1,24 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
        \r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
 \r
        <!-- summary header -->\r
-       <div style="padding-top: 5px;" class="header" wicket:id="commit"></div>\r
+       <div style="padding-top: 5px;" class="header" wicket:id="commit">[shortlog header]</div>\r
        \r
        <!-- commit info -->\r
        <table class="plain">\r
-               <tr><th>object</th><td><span wicket:id="tagId">Message goes here</span></td></tr>\r
-               <tr><th>author</th><td><span wicket:id="tagAuthor">Message goes here</span></td></tr>\r
-               <tr><th></th><td><span wicket:id="tagDate">Message goes here</span></td></tr>\r
+               <tr><th>object</th><td><span wicket:id="tagId">[tag id]</span></td></tr>\r
+               <tr><th>author</th><td><span wicket:id="tagAuthor">[tag author]</span></td></tr>\r
+               <tr><th></th><td><span wicket:id="tagDate">[tag date]</span></td></tr>\r
        </table>\r
        \r
        <!--  full message -->\r
-       <div style="border-bottom:0px;" class="commit_message" wicket:id="fullMessage"></div>\r
+       <div style="border-bottom:0px;" class="commit_message" wicket:id="fullMessage">[tag full message]</div>\r
        \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+</wicket:extend>\r
 </body>\r
 </html>
\ No newline at end of file
index f098c1e3088154161d76e8b45a8f7a32c207442c..ccceea8e1062b48ab9241bc00b3367c1f85dd2f4 100644 (file)
@@ -14,7 +14,7 @@ import com.gitblit.wicket.RepositoryPage;
 public class TagPage extends RepositoryPage {\r
 \r
        public TagPage(PageParameters params) {\r
-               super(params, "tag");\r
+               super(params);\r
 \r
                Repository r = getRepository();\r
                RevCommit c = JGitUtils.getCommit(r, commitId);\r
@@ -28,9 +28,12 @@ public class TagPage extends RepositoryPage {
 \r
                addFullText("fullMessage", c.getFullMessage(), true);\r
 \r
-               r.close();\r
-\r
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "tag";\r
+       }\r
 }\r
index e5899c5236ae43a0b8dbc48f1899038346ee77bd..4cface1a70aa87c047713ad8a69c5e948ecdc379 100644 (file)
@@ -1,26 +1,24 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
 \r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
 \r
        <!-- shortlog -->       \r
-       <div style="margin-top:5px;" class="header" wicket:id="summary"></div>  \r
+       <div style="margin-top:5px;" class="header" wicket:id="summary">[header]</div>  \r
        <table class="pretty">\r
                <tbody>\r
                        <tr wicket:id="tag">\r
-                       <td class="date"><span wicket:id="tagDate"></span></td>\r
-                       <td><b><div wicket:id="tagName"></div></b></td>\r
-                       <td><div wicket:id="tagDescription"></div></td>\r
-                       <td class="rightAlign"><span wicket:id="tagLinks"></span></td>\r
+                       <td class="date"><span wicket:id="tagDate">[tag date]</span></td>\r
+                       <td><b><div wicket:id="tagName">[tag name]</div></b></td>\r
+                       <td><div wicket:id="tagDescription">[tag description]</div></td>\r
+                       <td class="rightAlign"><span wicket:id="tagLinks">[tag links]</span></td>\r
                        </tr>\r
        </tbody>\r
        </table>        \r
        \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+</wicket:extend>       \r
 </body>\r
 </html>
\ No newline at end of file
index 1f73ed0305b0f109e774de7332f4f2b9de00b133..0fa1cdf8de30e0a609ff19f00d6adaef062ac224 100644 (file)
@@ -20,10 +20,9 @@ import com.gitblit.wicket.panels.TagLinksPanel;
 public class TagsPage extends RepositoryPage {\r
 \r
        public TagsPage(PageParameters params) {\r
-               super(params, "tags");\r
+               super(params);\r
                Repository r = getRepository();\r
                List<RefModel> tags = JGitUtils.getTags(r, -1);\r
-               r.close();\r
 \r
                // shortlog\r
                add(new LinkPanel("summary", "title", repositoryName, SummaryPage.class, newRepositoryParameter()));\r
@@ -58,4 +57,9 @@ public class TagsPage extends RepositoryPage {
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "tags";\r
+       }\r
 }\r
index 451058d0937d2ec8b53093477a98eb8a43802dad..78edc63f25230c4f7fde006eee25c256c452c1e3 100644 (file)
@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
 \r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
 \r
-       <!-- shortlog -->       \r
-       <div style="margin-top:5px;" class="header" wicket:id="summary"></div>  \r
+       <!-- header --> \r
+       <div style="margin-top:5px;" class="header" wicket:id="summary">[header]</div>\r
+       \r
+       <!-- tickets -->        \r
        <table style="width:100%" class="pretty">\r
                <tbody>\r
                        <tr wicket:id="ticket">\r
-                       <td style="padding:0; margin:0;"><div wicket:id="ticketState"></div></td>\r
-                       <td class="date"><span wicket:id="ticketDate"></span></td>\r
-                       <td><div wicket:id="ticketHandler"></div></td>\r
-                       <td><div wicket:id="ticketTitle"></div></td>\r
+                       <td style="padding:0; margin:0;"><div wicket:id="ticketState">[ticket state]</div></td>\r
+                       <td class="date"><span wicket:id="ticketDate">[ticket date]</span></td>\r
+                       <td><div wicket:id="ticketHandler">[ticket handler]</div></td>\r
+                       <td><div wicket:id="ticketTitle">[ticket title]</div></td>\r
                        </tr>\r
        </tbody>\r
        </table>        \r
-       \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+\r
+</wicket:extend>\r
 </body>\r
 </html>
\ No newline at end of file
index 889093d19c2686b0614cb93ed4ff2cfaf81204b6..16b07b992df6cb74348f29d169613ea60c83fa56 100644 (file)
@@ -18,11 +18,10 @@ import com.gitblit.wicket.WicketUtils;
 public class TicGitPage extends RepositoryPage {\r
 \r
        public TicGitPage(PageParameters params) {\r
-               super(params, "ticgit");\r
+               super(params);\r
 \r
                Repository r = getRepository();\r
                List<TicGitTicket> tickets = JGitUtils.getTicGitTickets(r);\r
-               r.close();\r
 \r
                // shortlog\r
                add(new LinkPanel("summary", "title", repositoryName, SummaryPage.class, newRepositoryParameter()));\r
@@ -62,4 +61,9 @@ public class TicGitPage extends RepositoryPage {
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "ticgit";\r
+       }\r
 }\r
index b66bf505cc650c6bff50f982dc5d2cfa8c3bc639..b36c3ae651fe906d7fd4b9b0747acc7036c4cfb5 100644 (file)
@@ -1,22 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
 \r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
        \r
        <!-- ticket title -->\r
-       <div style="font-size:150%;padding-top:5px;" wicket:id="ticketTitle"></div>\r
+       <div style="font-size:150%;padding-top:5px;" wicket:id="ticketTitle">[ticket title]</div>\r
                \r
        <!-- ticket info -->\r
        <table class="plain">\r
-               <tr><th>ticket id</th><td class="sha1"><span wicket:id="ticketId">Message goes here</span></td></tr>\r
-               <tr><th>assigned</th><td><span wicket:id=ticketHandler>Message goes here</span></td></tr>\r
-               <tr><th>open date</th><td><span wicket:id="ticketOpenDate">Message goes here</span></td></tr>\r
-               <tr><th>state</th><td><span wicket:id="ticketState">Message goes here</span></td></tr>\r
-               <tr><th>tags</th><td><span wicket:id="ticketTags">Message goes here</span></td></tr>\r
+               <tr><th>ticket id</th><td class="sha1"><span wicket:id="ticketId">[ticket id]</span></td></tr>\r
+               <tr><th>assigned</th><td><span wicket:id=ticketHandler>[ticket title]</span></td></tr>\r
+               <tr><th>open date</th><td><span wicket:id="ticketOpenDate">[ticket open date]</span></td></tr>\r
+               <tr><th>state</th><td><span wicket:id="ticketState">[ticket state]</span></td></tr>\r
+               <tr><th>tags</th><td><span wicket:id="ticketTags">[ticket tags]</span></td></tr>\r
        </table>\r
        \r
        <!-- comments header -->\r
        <table style="width:100%;" class="pretty">\r
                <tbody>\r
                        <tr wicket:id="comment">\r
-                       <td class="date"><span wicket:id="commentDate"></span></td>\r
-                       <td><b><div wicket:id="commentAuthor"></div></b></td>\r
-                       <td><div wicket:id="commentText"></div></td>\r
+                       <td class="date"><span wicket:id="commentDate">[comment date]</span></td>\r
+                       <td><b><div wicket:id="commentAuthor">[comment author]</div></b></td>\r
+                       <td><div wicket:id="commentText">[comment text]</div></td>\r
                        </tr>\r
                </tbody>\r
     </table>\r
-    \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+\r
+</wicket:extend>    \r
 </body>\r
 </html>
\ No newline at end of file
index c73a3ce5fb69b87985acb4f2fca33590a2ba8f64..76d9c1acfe05d6c6a778a254275aa5b79a720f8e 100644 (file)
@@ -19,13 +19,12 @@ import com.gitblit.wicket.WicketUtils;
 public class TicGitTicketPage extends RepositoryPage {\r
 \r
        public TicGitTicketPage(PageParameters params) {\r
-               super(params, "ticket");\r
+               super(params);\r
 \r
                final String ticketFolder = params.getString("f", "");\r
 \r
                Repository r = getRepository();\r
                TicGitTicket t = JGitUtils.getTicGitTicket(r, ticketFolder);\r
-               r.close();\r
 \r
                add(new Label("ticketTitle", t.title));\r
                add(new Label("ticketId", t.id));\r
@@ -68,6 +67,11 @@ public class TicGitTicketPage extends RepositoryPage {
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "ticket";\r
+       }\r
 \r
        private String prepareComment(String comment) {\r
                String html = WicketUtils.breakLines(comment).trim();\r
index 174e4278c5567dc5d60015f10699dc28a5eb6ec9..e2b87ef34f71e192844a83e68bbf1e7d85a71839 100644 (file)
@@ -1,34 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <html xmlns="http://www.w3.org/1999/xhtml" >\r
 <body>\r
-       <!-- page header -->\r
-       <div wicket:id="pageHeader"></div>\r
+<wicket:extend>\r
 \r
        <!-- page nav links --> \r
-       <div wicket:id="pageLinks"></div>\r
+       <div wicket:id="pageLinks">[page links]</div>\r
        \r
        <!-- blob nav links --> \r
        <div class="page_nav2">\r
-               <span wicket:id="historyLink"></span> | <span wicket:id="headLink"></span>\r
+               <span wicket:id="historyLink">[history link]</span> | <span wicket:id="headLink">[head link]</span>\r
        </div>  \r
        \r
        <!-- shortlog header -->\r
-       <div class="header" wicket:id="shortlog"></div>\r
+       <div class="header" wicket:id="shortlog">[shortlog header]</div>\r
 \r
        <!-- breadcrumbs -->\r
-       <div wicket:id="breadcrumbs"></div>\r
+       <div wicket:id="breadcrumbs">[breadcrumbs]</div>\r
                \r
        <!-- changed paths -->  \r
        <table style="width:100%" class="pretty">\r
                <tr wicket:id="changedPath">\r
                        <td><span wicket:id="pathName"></span></td>                     \r
-                       <td class="size"><span wicket:id="pathSize"></span></td>\r
-                       <td class="mode"><span wicket:id="pathPermissions"></span></td>\r
-                       <td class="rightAlign"><span wicket:id="treeLinks"></span></td>\r
+                       <td class="size"><span wicket:id="pathSize">[path size]</span></td>\r
+                       <td class="mode"><span wicket:id="pathPermissions">[path permissions]</span></td>\r
+                       <td class="rightAlign"><span wicket:id="treeLinks">[path links]</span></td>\r
                </tr>\r
        </table>\r
-       \r
-       <!-- footer -->\r
-       <div wicket:id="pageFooter"></div>\r
+\r
+</wicket:extend>       \r
 </body>\r
 </html>
\ No newline at end of file
index 2ac04b7fb8d9166ebd65fa643cae9ca826252aa5..082a72c88f15d11a916d0d1c3d962789c60c0bdb 100644 (file)
@@ -24,7 +24,7 @@ import com.gitblit.wicket.panels.TreeLinksPanel;
 public class TreePage extends RepositoryPage {\r
 \r
        public TreePage(PageParameters params) {\r
-               super(params, "tree");\r
+               super(params);\r
 \r
                final String basePath = params.getString("f", null);\r
 \r
@@ -80,10 +80,12 @@ public class TreePage extends RepositoryPage {
                };\r
                add(pathsView);\r
 \r
-               // close repository\r
-               r.close();\r
-\r
                // footer\r
                addFooter();\r
        }\r
+       \r
+       @Override\r
+       protected String getPageName() {\r
+               return "tree";\r
+       }\r
 }\r
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-apollo.js b/src/com/gitblit/wicket/pages/prettify/lang-apollo.js
new file mode 100644 (file)
index 0000000..bfc0014
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,
+null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["apollo","agc","aea"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-css.js b/src/com/gitblit/wicket/pages/prettify/lang-css.js
new file mode 100644 (file)
index 0000000..61157f3
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[ \t\r\n\f]+/,null," \t\r\n\u000c"]],[["str",/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],["str",/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],["kwd",/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
+["com",/^(?:<!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#(?:[0-9a-f]{3}){1,2}/i],["pln",/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],["pun",/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^\)\"\']+/]]),["css-str"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-hs.js b/src/com/gitblit/wicket/pages/prettify/lang-hs.js
new file mode 100644 (file)
index 0000000..00cea7c
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\x0B\x0C\r ]+/,null,"\t\n\u000b\u000c\r "],["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/,
+null],["pln",/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],["pun",/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),["hs"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-lisp.js b/src/com/gitblit/wicket/pages/prettify/lang-lisp.js
new file mode 100644 (file)
index 0000000..fab992b
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(/,null,"("],["clo",/^\)/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,
+null],["lit",/^[+\-]?(?:0x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["cl","el","lisp","scm"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-lua.js b/src/com/gitblit/wicket/pages/prettify/lang-lua.js
new file mode 100644 (file)
index 0000000..45d0ba2
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],["str",/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
+["pln",/^[a-z_]\w*/i],["pun",/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),["lua"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-ml.js b/src/com/gitblit/wicket/pages/prettify/lang-ml.js
new file mode 100644 (file)
index 0000000..5879726
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
+["lit",/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],["pun",/^[^\t\n\r \xA0\"\'\w]+/]]),["fs","ml"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-proto.js b/src/com/gitblit/wicket/pages/prettify/lang-proto.js
new file mode 100644 (file)
index 0000000..f713420
--- /dev/null
@@ -0,0 +1 @@
+PR.registerLangHandler(PR.sourceDecorator({keywords:"bool bytes default double enum extend extensions false fixed32 fixed64 float group import int32 int64 max message option optional package repeated required returns rpc service sfixed32 sfixed64 sint32 sint64 string syntax to true uint32 uint64",cStyleComments:true}),["proto"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-scala.js b/src/com/gitblit/wicket/pages/prettify/lang-scala.js
new file mode 100644 (file)
index 0000000..00f4e0c
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:(?:""(?:""?(?!")|[^\\"]|\\.)*"{0,3})|(?:[^"\r\n\\]|\\.)*"?))/,null,'"'],["lit",/^`(?:[^\r\n\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&()*+,\-:;<=>?@\[\\\]^{|}~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/],["lit",/^'[a-zA-Z_$][\w$]*(?!['$\w])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/],
+["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i],["typ",/^[$_]*[A-Z][_$A-Z0-9]*[a-z][\w$]*/],["pln",/^[$a-zA-Z_][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-sql.js b/src/com/gitblit/wicket/pages/prettify/lang-sql.js
new file mode 100644 (file)
index 0000000..800b13e
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],["kwd",/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i,
+null],["lit",/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^[a-z_][\w-]*/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),["sql"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-vb.js b/src/com/gitblit/wicket/pages/prettify/lang-vb.js
new file mode 100644 (file)
index 0000000..c479c11
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0\u2028\u2029]+/,null,"\t\n\r \u00a0\u2028\u2029"],["str",/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'"\u201c\u201d'],["com",/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,"'\u2018\u2019"]],[["kwd",/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,
+null],["com",/^REM[^\r\n\u2028\u2029]*/i],["lit",/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],["pun",/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],["pun",/^(?:\[|\])/]]),["vb","vbs"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-vhdl.js b/src/com/gitblit/wicket/pages/prettify/lang-vhdl.js
new file mode 100644 (file)
index 0000000..dc81a3f
--- /dev/null
@@ -0,0 +1,3 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"]],[["str",/^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i],["com",/^--[^\r\n]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i,
+null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VALUE|EVENT|HIGH|IMAGE|INSTANCE_NAME|LAST_ACTIVE|LAST_EVENT|LAST_VALUE|LEFT|LEFTOF|LENGTH|LOW|PATH_NAME|POS|PRED|QUIET|RANGE|REVERSE_RANGE|RIGHT|RIGHTOF|SIMPLE_NAME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i],
+["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/]]),["vhdl","vhd"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-wiki.js b/src/com/gitblit/wicket/pages/prettify/lang-wiki.js
new file mode 100644 (file)
index 0000000..3b8fb50
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t \xA0a-gi-z0-9]+/,null,"\t \u00a0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[=*~\^\[\]]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/],["lang-",/^\{\{\{([\s\S]+?)\}\}\}/],["lang-",/^`([^\r\n`]+)`/],["str",/^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/]]),["wiki"]);
+PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/lang-yaml.js b/src/com/gitblit/wicket/pages/prettify/lang-yaml.js
new file mode 100644 (file)
index 0000000..f2f3607
--- /dev/null
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:|>?]+/,null,":|>?"],["dec",/^%(?:YAML|TAG)[^#\r\n]+/,null,"%"],["typ",/^[&]\S+/,null,"&"],["typ",/^!\S*/,null,"!"],["str",/^"(?:[^\\"]|\\.)*(?:"|$)/,null,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,null,"'"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^\s+/,null," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\r\n]|$)/],["pun",/^-/],["kwd",/^\w+:[ \r\n]/],["pln",/^\w+/]]),
+["yaml","yml"])
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/prettify.css b/src/com/gitblit/wicket/pages/prettify/prettify.css
new file mode 100644 (file)
index 0000000..2925d13
--- /dev/null
@@ -0,0 +1 @@
+.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun{color:#660}.pln{color:#000}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec{color:#606}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}@media print{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/prettify/prettify.js b/src/com/gitblit/wicket/pages/prettify/prettify.js
new file mode 100644 (file)
index 0000000..c9161da
--- /dev/null
@@ -0,0 +1,33 @@
+window.PR_SHOULD_USE_CONTINUATION=true;window.PR_TAB_WIDTH=8;window.PR_normalizedHtml=window.PR=window.prettyPrintOne=window.prettyPrint=void 0;window._pr_isIE6=function(){var y=navigator&&navigator.userAgent&&navigator.userAgent.match(/\bMSIE ([678])\./);y=y?+y[1]:false;window._pr_isIE6=function(){return y};return y};
+(function(){function y(b){return b.replace(L,"&amp;").replace(M,"&lt;").replace(N,"&gt;")}function H(b,f,i){switch(b.nodeType){case 1:var o=b.tagName.toLowerCase();f.push("<",o);var l=b.attributes,n=l.length;if(n){if(i){for(var r=[],j=n;--j>=0;)r[j]=l[j];r.sort(function(q,m){return q.name<m.name?-1:q.name===m.name?0:1});l=r}for(j=0;j<n;++j){r=l[j];r.specified&&f.push(" ",r.name.toLowerCase(),'="',r.value.replace(L,"&amp;").replace(M,"&lt;").replace(N,"&gt;").replace(X,"&quot;"),'"')}}f.push(">");
+for(l=b.firstChild;l;l=l.nextSibling)H(l,f,i);if(b.firstChild||!/^(?:br|link|img)$/.test(o))f.push("</",o,">");break;case 3:case 4:f.push(y(b.nodeValue));break}}function O(b){function f(c){if(c.charAt(0)!=="\\")return c.charCodeAt(0);switch(c.charAt(1)){case "b":return 8;case "t":return 9;case "n":return 10;case "v":return 11;case "f":return 12;case "r":return 13;case "u":case "x":return parseInt(c.substring(2),16)||c.charCodeAt(1);case "0":case "1":case "2":case "3":case "4":case "5":case "6":case "7":return parseInt(c.substring(1),
+8);default:return c.charCodeAt(1)}}function i(c){if(c<32)return(c<16?"\\x0":"\\x")+c.toString(16);c=String.fromCharCode(c);if(c==="\\"||c==="-"||c==="["||c==="]")c="\\"+c;return c}function o(c){var d=c.substring(1,c.length-1).match(RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));c=[];for(var a=[],k=d[0]==="^",e=k?1:0,h=d.length;e<h;++e){var g=d[e];switch(g){case "\\B":case "\\b":case "\\D":case "\\d":case "\\S":case "\\s":case "\\W":case "\\w":c.push(g);
+continue}g=f(g);var s;if(e+2<h&&"-"===d[e+1]){s=f(d[e+2]);e+=2}else s=g;a.push([g,s]);if(!(s<65||g>122)){s<65||g>90||a.push([Math.max(65,g)|32,Math.min(s,90)|32]);s<97||g>122||a.push([Math.max(97,g)&-33,Math.min(s,122)&-33])}}a.sort(function(v,w){return v[0]-w[0]||w[1]-v[1]});d=[];g=[NaN,NaN];for(e=0;e<a.length;++e){h=a[e];if(h[0]<=g[1]+1)g[1]=Math.max(g[1],h[1]);else d.push(g=h)}a=["["];k&&a.push("^");a.push.apply(a,c);for(e=0;e<d.length;++e){h=d[e];a.push(i(h[0]));if(h[1]>h[0]){h[1]+1>h[0]&&a.push("-");
+a.push(i(h[1]))}}a.push("]");return a.join("")}function l(c){for(var d=c.source.match(RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g")),a=d.length,k=[],e=0,h=0;e<a;++e){var g=d[e];if(g==="(")++h;else if("\\"===g.charAt(0))if((g=+g.substring(1))&&g<=h)k[g]=-1}for(e=1;e<k.length;++e)if(-1===k[e])k[e]=++n;for(h=e=0;e<a;++e){g=d[e];if(g==="("){++h;if(k[h]===undefined)d[e]="(?:"}else if("\\"===
+g.charAt(0))if((g=+g.substring(1))&&g<=h)d[e]="\\"+k[h]}for(h=e=0;e<a;++e)if("^"===d[e]&&"^"!==d[e+1])d[e]="";if(c.ignoreCase&&r)for(e=0;e<a;++e){g=d[e];c=g.charAt(0);if(g.length>=2&&c==="[")d[e]=o(g);else if(c!=="\\")d[e]=g.replace(/[a-zA-Z]/g,function(s){s=s.charCodeAt(0);return"["+String.fromCharCode(s&-33,s|32)+"]"})}return d.join("")}for(var n=0,r=false,j=false,q=0,m=b.length;q<m;++q){var t=b[q];if(t.ignoreCase)j=true;else if(/[a-z]/i.test(t.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,
+""))){r=true;j=false;break}}var p=[];q=0;for(m=b.length;q<m;++q){t=b[q];if(t.global||t.multiline)throw Error(""+t);p.push("(?:"+l(t)+")")}return RegExp(p.join("|"),j?"gi":"g")}function Y(b){var f=0;return function(i){for(var o=null,l=0,n=0,r=i.length;n<r;++n)switch(i.charAt(n)){case "\t":o||(o=[]);o.push(i.substring(l,n));l=b-f%b;for(f+=l;l>=0;l-=16)o.push("                ".substring(0,l));l=n+1;break;case "\n":f=0;break;default:++f}if(!o)return i;o.push(i.substring(l));return o.join("")}}function I(b,
+f,i,o){if(f){b={source:f,c:b};i(b);o.push.apply(o,b.d)}}function B(b,f){var i={},o;(function(){for(var r=b.concat(f),j=[],q={},m=0,t=r.length;m<t;++m){var p=r[m],c=p[3];if(c)for(var d=c.length;--d>=0;)i[c.charAt(d)]=p;p=p[1];c=""+p;if(!q.hasOwnProperty(c)){j.push(p);q[c]=null}}j.push(/[\0-\uffff]/);o=O(j)})();var l=f.length;function n(r){for(var j=r.c,q=[j,z],m=0,t=r.source.match(o)||[],p={},c=0,d=t.length;c<d;++c){var a=t[c],k=p[a],e=void 0,h;if(typeof k==="string")h=false;else{var g=i[a.charAt(0)];
+if(g){e=a.match(g[1]);k=g[0]}else{for(h=0;h<l;++h){g=f[h];if(e=a.match(g[1])){k=g[0];break}}e||(k=z)}if((h=k.length>=5&&"lang-"===k.substring(0,5))&&!(e&&typeof e[1]==="string")){h=false;k=P}h||(p[a]=k)}g=m;m+=a.length;if(h){h=e[1];var s=a.indexOf(h),v=s+h.length;if(e[2]){v=a.length-e[2].length;s=v-h.length}k=k.substring(5);I(j+g,a.substring(0,s),n,q);I(j+g+s,h,Q(k,h),q);I(j+g+v,a.substring(v),n,q)}else q.push(j+g,k)}r.d=q}return n}function x(b){var f=[],i=[];if(b.tripleQuotedStrings)f.push([A,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+null,"'\""]);else b.multiLineStrings?f.push([A,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):f.push([A,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]);b.verbatimStrings&&i.push([A,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);if(b.hashComments)if(b.cStyleComments){f.push([C,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"]);i.push([A,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
+null])}else f.push([C,/^#[^\r\n]*/,null,"#"]);if(b.cStyleComments){i.push([C,/^\/\/[^\r\n]*/,null]);i.push([C,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}b.regexLiterals&&i.push(["lang-regex",RegExp("^"+Z+"(/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/)")]);b=b.keywords.replace(/^\s+|\s+$/g,"");b.length&&i.push([R,RegExp("^(?:"+b.replace(/\s+/g,"|")+")\\b"),null]);f.push([z,/^\s+/,null," \r\n\t\u00a0"]);i.push([J,/^@[a-z_$][a-z_$@0-9]*/i,null],[S,/^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/,
+null],[z,/^[a-z_$][a-z_$@0-9]*/i,null],[J,/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],[E,/^.[^\s\w\.$@\'\"\`\/\#]*/,null]);return B(f,i)}function $(b){function f(D){if(D>r){if(j&&j!==q){n.push("</span>");j=null}if(!j&&q){j=q;n.push('<span class="',j,'">')}var T=y(p(i.substring(r,D))).replace(e?d:c,"$1&#160;");e=k.test(T);n.push(T.replace(a,s));r=D}}var i=b.source,o=b.g,l=b.d,n=[],r=0,j=null,q=null,m=0,t=0,p=Y(window.PR_TAB_WIDTH),c=/([\r\n ]) /g,
+d=/(^| ) /gm,a=/\r\n?|\n/g,k=/[ \r\n]$/,e=true,h=window._pr_isIE6();h=h?b.b.tagName==="PRE"?h===6?"&#160;\r\n":h===7?"&#160;<br>\r":"&#160;\r":"&#160;<br />":"<br />";var g=b.b.className.match(/\blinenums\b(?::(\d+))?/),s;if(g){for(var v=[],w=0;w<10;++w)v[w]=h+'</li><li class="L'+w+'">';var F=g[1]&&g[1].length?g[1]-1:0;n.push('<ol class="linenums"><li class="L',F%10,'"');F&&n.push(' value="',F+1,'"');n.push(">");s=function(){var D=v[++F%10];return j?"</span>"+D+'<span class="'+j+'">':D}}else s=h;
+for(;;)if(m<o.length?t<l.length?o[m]<=l[t]:true:false){f(o[m]);if(j){n.push("</span>");j=null}n.push(o[m+1]);m+=2}else if(t<l.length){f(l[t]);q=l[t+1];t+=2}else break;f(i.length);j&&n.push("</span>");g&&n.push("</li></ol>");b.a=n.join("")}function u(b,f){for(var i=f.length;--i>=0;){var o=f[i];if(G.hasOwnProperty(o))"console"in window&&console.warn("cannot override language handler %s",o);else G[o]=b}}function Q(b,f){b&&G.hasOwnProperty(b)||(b=/^\s*</.test(f)?"default-markup":"default-code");return G[b]}
+function U(b){var f=b.f,i=b.e;b.a=f;try{var o,l=f.match(aa);f=[];var n=0,r=[];if(l)for(var j=0,q=l.length;j<q;++j){var m=l[j];if(m.length>1&&m.charAt(0)==="<"){if(!ba.test(m))if(ca.test(m)){f.push(m.substring(9,m.length-3));n+=m.length-12}else if(da.test(m)){f.push("\n");++n}else if(m.indexOf(V)>=0&&m.replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,' $1="$2$3$4"').match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/)){var t=m.match(W)[2],p=1,c;c=j+1;a:for(;c<q;++c){var d=l[c].match(W);if(d&&
+d[2]===t)if(d[1]==="/"){if(--p===0)break a}else++p}if(c<q){r.push(n,l.slice(j,c+1).join(""));j=c}else r.push(n,m)}else r.push(n,m)}else{var a;p=m;var k=p.indexOf("&");if(k<0)a=p;else{for(--k;(k=p.indexOf("&#",k+1))>=0;){var e=p.indexOf(";",k);if(e>=0){var h=p.substring(k+3,e),g=10;if(h&&h.charAt(0)==="x"){h=h.substring(1);g=16}var s=parseInt(h,g);isNaN(s)||(p=p.substring(0,k)+String.fromCharCode(s)+p.substring(e+1))}}a=p.replace(ea,"<").replace(fa,">").replace(ga,"'").replace(ha,'"').replace(ia," ").replace(ja,
+"&")}f.push(a);n+=a.length}}o={source:f.join(""),h:r};var v=o.source;b.source=v;b.c=0;b.g=o.h;Q(i,v)(b);$(b)}catch(w){if("console"in window)console.log(w&&w.stack?w.stack:w)}}var A="str",R="kwd",C="com",S="typ",J="lit",E="pun",z="pln",P="src",V="nocode",Z=function(){for(var b=["!","!=","!==","#","%","%=","&","&&","&&=","&=","(","*","*=","+=",",","-=","->","/","/=",":","::",";","<","<<","<<=","<=","=","==","===",">",">=",">>",">>=",">>>",">>>=","?","@","[","^","^=","^^","^^=","{","|","|=","||","||=",
+"~","break","case","continue","delete","do","else","finally","instanceof","return","throw","try","typeof"],f="(?:^^|[+-]",i=0;i<b.length;++i)f+="|"+b[i].replace(/([^=<>:&a-z])/g,"\\$1");f+=")\\s*";return f}(),L=/&/g,M=/</g,N=/>/g,X=/\"/g,ea=/&lt;/g,fa=/&gt;/g,ga=/&apos;/g,ha=/&quot;/g,ja=/&amp;/g,ia=/&nbsp;/g,ka=/[\r\n]/g,K=null,aa=RegExp("[^<]+|<!--[\\s\\S]*?--\>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>|</?[a-zA-Z](?:[^>\"']|'[^']*'|\"[^\"]*\")*>|<","g"),ba=/^<\!--/,ca=/^<!\[CDATA\[/,da=/^<br\b/i,W=/^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/,
+la=x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename using virtual wchar_t where break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof abstract boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof debugger eval export function get null set undefined var with Infinity NaN caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END break continue do else for if return while case done elif esac eval fi function in local set then until ",
+hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true}),G={};u(la,["default-code"]);u(B([],[[z,/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],[C,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[E,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup",
+"htm","html","mxml","xhtml","xml","xsl"]);u(B([[z,/^[\s]+/,null," \t\r\n"],["atv",/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[E,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],
+["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);u(B([],[["atv",/^[\s\S]+/]]),["uq.val"]);u(x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename using virtual wchar_t where ",
+hashComments:true,cStyleComments:true}),["c","cc","cpp","cxx","cyc","m"]);u(x({keywords:"null true false"}),["json"]);u(x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof abstract boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ",
+hashComments:true,cStyleComments:true,verbatimStrings:true}),["cs"]);u(x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof abstract boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",
+cStyleComments:true}),["java"]);u(x({keywords:"break continue do else for if return while case done elif esac eval fi function in local set then until ",hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);u(x({keywords:"break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);
+u(x({keywords:"caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);u(x({keywords:"break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ",hashComments:true,
+multiLineStrings:true,regexLiterals:true}),["rb"]);u(x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof debugger eval export function get null set undefined var with Infinity NaN ",cStyleComments:true,regexLiterals:true}),["js"]);u(B([],[[A,/^[\s\S]+/]]),
+["regex"]);window.PR_normalizedHtml=H;window.prettyPrintOne=function(b,f){var i={f:b,e:f};U(i);return i.a};window.prettyPrint=function(b){function f(){for(var t=window.PR_SHOULD_USE_CONTINUATION?j.now()+250:Infinity;q<o.length&&j.now()<t;q++){var p=o[q];if(p.className&&p.className.indexOf("prettyprint")>=0){var c=p.className.match(/\blang-(\w+)\b/);if(c)c=c[1];for(var d=false,a=p.parentNode;a;a=a.parentNode)if((a.tagName==="pre"||a.tagName==="code"||a.tagName==="xmp")&&a.className&&a.className.indexOf("prettyprint")>=
+0){d=true;break}if(!d){a=p;if(null===K){d=document.createElement("PRE");d.appendChild(document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));K=!/</.test(d.innerHTML)}if(K){d=a.innerHTML;if("XMP"===a.tagName)d=y(d);else{a=a;if("PRE"===a.tagName)a=true;else if(ka.test(d)){var k="";if(a.currentStyle)k=a.currentStyle.whiteSpace;else if(window.getComputedStyle)k=window.getComputedStyle(a,null).whiteSpace;a=!k||k==="pre"}else a=true;a||(d=d.replace(/(<br\s*\/?>)[\r\n]+/g,"$1").replace(/(?:[\r\n]+[ \t]*)+/g,
+" "))}d=d}else{d=[];for(a=a.firstChild;a;a=a.nextSibling)H(a,d);d=d.join("")}d=d.replace(/(?:\r\n?|\n)$/,"");m={f:d,e:c,b:p};U(m);if(p=m.a){c=m.b;if("XMP"===c.tagName){d=document.createElement("PRE");for(a=0;a<c.attributes.length;++a){k=c.attributes[a];if(k.specified)if(k.name.toLowerCase()==="class")d.className=k.value;else d.setAttribute(k.name,k.value)}d.innerHTML=p;c.parentNode.replaceChild(d,c)}else c.innerHTML=p}}}}if(q<o.length)setTimeout(f,250);else b&&b()}for(var i=[document.getElementsByTagName("pre"),
+document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],o=[],l=0;l<i.length;++l)for(var n=0,r=i[l].length;n<r;++n)o.push(i[l][n]);i=null;var j=Date;j.now||(j={now:function(){return(new Date).getTime()}});var q=0,m;f()};window.PR={combinePrefixPatterns:O,createSimpleLexer:B,registerLangHandler:u,sourceDecorator:x,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:C,PR_DECLARATION:"dec",PR_KEYWORD:R,PR_LITERAL:J,PR_NOCODE:V,PR_PLAIN:z,PR_PUNCTUATION:E,PR_SOURCE:P,PR_STRING:A,
+PR_TAG:"tag",PR_TYPE:S}})()
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/panels/PageFooter.html b/src/com/gitblit/wicket/panels/PageFooter.html
deleted file mode 100644 (file)
index 1d55ca3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
-<wicket:panel>\r
-       <div class="page_footer">\r
-               <div style="float:right">\r
-                       <a href="http://gitblit.com"><span wicket:id="gbVersion"></span></a> \r
-               </div>\r
-               <div wicket:id="footerText"></div>\r
-       </div>\r
-</wicket:panel>\r
-</html>
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/panels/PageFooter.java b/src/com/gitblit/wicket/panels/PageFooter.java
deleted file mode 100644 (file)
index a6a691f..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.gitblit.wicket.panels;\r
-\r
-import org.apache.wicket.markup.html.basic.Label;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
-\r
-import com.gitblit.Constants;\r
-import com.gitblit.StoredSettings;\r
-\r
-\r
-public class PageFooter extends Panel {\r
-\r
-       private static final long serialVersionUID = 1L;\r
-\r
-       public PageFooter(String id) {\r
-               this(id, "");\r
-       }\r
-\r
-       public PageFooter(String id, String description) {\r
-               super(id);              \r
-               add(new Label("footerText", description));\r
-               add(new Label("gbVersion", "v" + Constants.VERSION));\r
-               if (StoredSettings.getBoolean("aggressiveHeapManagement", false)) {\r
-                       System.gc();\r
-               }\r
-       }\r
-}
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/panels/PageHeader.html b/src/com/gitblit/wicket/panels/PageHeader.html
deleted file mode 100644 (file)
index 827adb4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
-<wicket:panel>\r
-       <head>\r
-       <title wicket:id="title">Message goes here</title>\r
-       <link rel="stylesheet" type="text/css" href="gitblit.css"/>\r
-       <link rel="shortcut icon" href="gitblt-favicon.png" type="image/png" />\r
-       </head>\r
-       \r
-       <div class="page_header">\r
-               <a title="gitblit homepage" href="http://gitblit.com/"><img src="gitblt_25.png" width="79" height="25" alt="gitblit" class="logo"/></a><a href="/"><span wicket:id="siteName">name</span></a> / <span wicket:id="repositoryName">name</span> <span wicket:id="pageName">name</span> \r
-       </div>\r
-</wicket:panel>\r
-</html>
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/panels/PageHeader.java b/src/com/gitblit/wicket/panels/PageHeader.java
deleted file mode 100644 (file)
index c375758..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.gitblit.wicket.panels;\r
-\r
-import javax.servlet.http.HttpServletRequest;\r
-\r
-import org.apache.wicket.PageParameters;\r
-import org.apache.wicket.markup.html.basic.Label;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
-import org.apache.wicket.protocol.http.servlet.ServletWebRequest;\r
-\r
-import com.gitblit.Constants;\r
-import com.gitblit.StoredSettings;\r
-import com.gitblit.wicket.LinkPanel;\r
-import com.gitblit.wicket.pages.SummaryPage;\r
-\r
-\r
-public class PageHeader extends Panel {\r
-\r
-       private static final long serialVersionUID = 1L;\r
-\r
-       public PageHeader(String id) {\r
-               this(id, "", "");\r
-       }\r
-\r
-       public PageHeader(String id, String repositoryName, String page) {\r
-               super(id);\r
-               if (repositoryName != null && repositoryName.trim().length() > 0) {\r
-                       add(new Label("title", getServerName() + " - " + repositoryName));\r
-               } else {\r
-                       add(new Label("title", getServerName()));\r
-               }\r
-               add(new Label("siteName", StoredSettings.getString("siteName", Constants.NAME)));\r
-               add(new LinkPanel("repositoryName", null, repositoryName, SummaryPage.class, new PageParameters("p=" + repositoryName)));\r
-               add(new Label("pageName", page));\r
-       }\r
-\r
-       protected String getServerName() {\r
-               ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest();\r
-               HttpServletRequest req = servletWebRequest.getHttpServletRequest();\r
-               return req.getServerName();\r
-       }\r
-}
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/resources/arrow_down.png b/src/com/gitblit/wicket/resources/arrow_down.png
new file mode 100644 (file)
index 0000000..f31cc81
Binary files /dev/null and b/src/com/gitblit/wicket/resources/arrow_down.png differ
diff --git a/src/com/gitblit/wicket/resources/arrow_off.png b/src/com/gitblit/wicket/resources/arrow_off.png
new file mode 100644 (file)
index 0000000..f9b1ced
Binary files /dev/null and b/src/com/gitblit/wicket/resources/arrow_off.png differ
diff --git a/src/com/gitblit/wicket/resources/arrow_up.png b/src/com/gitblit/wicket/resources/arrow_up.png
new file mode 100644 (file)
index 0000000..63031c3
Binary files /dev/null and b/src/com/gitblit/wicket/resources/arrow_up.png differ
diff --git a/src/com/gitblit/wicket/resources/blank.png b/src/com/gitblit/wicket/resources/blank.png
new file mode 100644 (file)
index 0000000..109296b
Binary files /dev/null and b/src/com/gitblit/wicket/resources/blank.png differ
diff --git a/src/com/gitblit/wicket/resources/gitblit.css b/src/com/gitblit/wicket/resources/gitblit.css
new file mode 100644 (file)
index 0000000..675a258
--- /dev/null
@@ -0,0 +1,442 @@
+/*\r
+ Git:Blit css.\r
+*/\r
+html, body, table, dl, dt, dd, ol, ul, li, form, a, span, tr, th, td, div, em {\r
+       font-family: verdana, sans-serif;\r
+       font-size: 12px;\r
+       line-height: 15px;\r
+}\r
+\r
+body {\r
+       width: 980px;\r
+       margin: 5px;\r
+       background-color: #ffffff;\r
+       color: #000000;\r
+    margin-right: auto;\r
+    margin-left: auto;\r
+    margin-top: none;\r
+    padding: 0px;\r
+}\r
+\r
+pre, pre.prettyprint, pre.plainprint {\r
+       color: black;\r
+       font-family: monospace;\r
+       font-size:12px;\r
+       border:0px;\r
+}\r
+\r
+/* age0: age < 60*60*2 */\r
+.age0 {\r
+       color: #009900;\r
+       font-style: italic;\r
+       font-weight: bold;\r
+}\r
+\r
+/* age1: 60*60*2 <= age < 60*60*24*2 */\r
+.age1 {\r
+       color: #009900;\r
+       font-style: italic;\r
+}\r
+\r
+/* age2: 60*60*24*2 <= age */\r
+.age2 {\r
+       font-style: italic;\r
+}\r
+\r
+\r
+a {\r
+       color: #0000cc;\r
+}\r
+\r
+a:hover, a:visited, a:active {\r
+       color: #880000;\r
+}\r
+\r
+img.logo {\r
+       float: right;\r
+       border-width: 0px;\r
+}\r
+\r
+img.activityGraph {\r
+       float: right;\r
+       border-width: 0px;\r
+       padding: 8px;\r
+}\r
+\r
+div.repositories_message {\r
+       line-height: inherit;\r
+}\r
+\r
+div.header {\r
+       background-color: #D2C3AF;\r
+       padding: 3px;\r
+       border: 1px solid #808080;\r
+}\r
+\r
+div.header a {\r
+       color: black;\r
+       text-decoration: none;\r
+       font-weight: bold;\r
+}\r
+\r
+div.header a:hover {\r
+       text-decoration: underline;\r
+}\r
+\r
+div.pager {\r
+       padding: 0px 0px 15px 5px;\r
+}\r
+\r
+div.link {\r
+       padding: 2px 5px;\r
+       font-family: sans-serif;\r
+       font-size: 11px;\r
+}\r
+\r
+div.link span {\r
+       font-family: inherit;\r
+       font-size: inherit;\r
+}\r
+\r
+div.link a {\r
+       font-family: inherit;\r
+       font-size: inherit;\r
+}\r
+\r
+div.page_header {\r
+       height: 25px;\r
+       padding: 5px;\r
+       font-family: sans-serif;\r
+       font-weight: bold;\r
+       font-size: 150%;\r
+       color: #bbb;\r
+       background-color: #ffffff;\r
+}\r
+\r
+div.page_header span { \r
+       font-family: inherit;\r
+       font-size: inherit;     \r
+}\r
+\r
+div.page_header a  {\r
+       font-size: inherit;     \r
+       font-family: inherit;\r
+       text-decoration: none;\r
+}\r
+\r
+div.page_header a:visited {\r
+       color: #000000;\r
+}\r
+\r
+div.page_header a:hover {\r
+       color: E66C2C;\r
+       text-decoration: underline;\r
+}\r
+\r
+div.page_footer {\r
+       height: 17px;\r
+       color: black;\r
+       background-color: #ffffff;\r
+       padding: 5px;\r
+       border-top: 1px solid #bbb;\r
+       font-style: italic;\r
+}\r
+\r
+div.page_nav {\r
+       color: #ddd;\r
+       background-color: #000070;\r
+       padding: 5px;\r
+}\r
+\r
+div.page_nav a {\r
+       color: yellow;\r
+       text-decoration: none;\r
+}\r
+\r
+div.page_nav a:hover { \r
+       text-decoration: underline;\r
+}\r
+\r
+div.page_nav2 {\r
+       padding: 2px 5px 7px 5px;       \r
+}\r
+\r
+.repositories_message {\r
+       border: solid #bbb;\r
+       border-width: 0px 0px 1px;\r
+       padding: 8px;\r
+}\r
+\r
+div.page_path {\r
+       padding: 8px;\r
+       font-weight: bold;\r
+       border: solid #bbb;\r
+       border-width: 0px 0px 1px;\r
+}\r
+\r
+div.commit_message {\r
+       padding: 8px;\r
+       border: solid #bbb;\r
+       border-width: 1px 0px 1px;\r
+}\r
+\r
+div.bug_open, span.bug_open {\r
+       padding: 2px;\r
+       background-color: #800000;\r
+       color: white;   \r
+       text-align: center;\r
+}\r
+\r
+div.bug_resolved, span.bug_resolved {\r
+       padding: 2px;\r
+       background-color: #008000;\r
+       color: white;\r
+       text-align: center;\r
+}\r
+\r
+div.bug_invalid, span.bug_invalid {\r
+       padding: 2px;\r
+       background-color: gray;\r
+       text-align: center;\r
+}\r
+\r
+div.bug_hold, span.bug_hold {\r
+       padding: 2px;\r
+       background-color: orange;\r
+       text-align: center;\r
+}\r
+\r
+div.diff {\r
+       font-family: monospace;\r
+}\r
+\r
+div.diff.header {\r
+       -moz-border-bottom-colors: none;\r
+    -moz-border-image: none;\r
+    -moz-border-left-colors: none;\r
+    -moz-border-right-colors: none;\r
+    -moz-border-top-colors: none;\r
+    background-color: #EDECE6;\r
+    border-color: #D9D8D1;\r
+    border-style: solid;\r
+    border-width: 1px 0;\r
+    font-weight: bold;\r
+    margin-top: 4px;\r
+    padding: 4px 0 2px;\r
+}\r
+\r
+div.diff.extended_header {\r
+       background-color: #F6F5EE;\r
+    padding: 2px 0;\r
+    font-family: inherit;\r
+}\r
+\r
+div.diff.add {\r
+       color: #008800;\r
+       font-family: inherit;\r
+}\r
+\r
+div.diff.remove {\r
+       color: #cc0000;\r
+       font-family: inherit;\r
+}\r
+\r
+div.diff.unchanged {\r
+       color: inherit;\r
+       font-family: inherit;\r
+}\r
+\r
+div.diff.hunk_header {\r
+       -moz-border-bottom-colors: none;\r
+    -moz-border-image: none;\r
+    -moz-border-left-colors: none;\r
+    -moz-border-right-colors: none;\r
+    -moz-border-top-colors: none;\r
+    border-color: #FFE0FF;\r
+    border-style: dotted;\r
+    border-width: 1px 0 0;\r
+    margin-top: 2px;\r
+    font-family: inherit;\r
+}\r
+\r
+span.diff.hunk_info {\r
+       background-color: #FFEEFF;      \r
+       color: #990099;\r
+       font-family: inherit;\r
+}\r
+\r
+span.diff.hunk_section {       \r
+       color: #AA22AA;\r
+       font-family: inherit;\r
+}\r
+\r
+a.list {\r
+       text-decoration: none;\r
+       color: #000000;\r
+}\r
+\r
+a.list:hover {\r
+       text-decoration: underline;\r
+       color: #880000;\r
+}\r
+\r
+table {\r
+       border-spacing: 0px;\r
+}\r
+\r
+th {\r
+       padding: 2px 5px;\r
+       font-size: 100%;\r
+       text-align: left;\r
+}\r
+\r
+table.plain {\r
+       padding: 8px;\r
+}\r
+\r
+table.pretty, table.repositories {\r
+       margin-top:5px;\r
+       margin-bottom:5px;\r
+       border-spacing: 0px;\r
+       border-top: 1px solid #bbb;\r
+       border-left: 1px solid #bbb;\r
+       border-right: 1px solid #bbb;   \r
+}\r
+\r
+table.repositories {\r
+       width:100%;     \r
+}\r
+\r
+table.repositories th {\r
+       background-color:#D2C3AF;\r
+       padding: 4px;\r
+       border-bottom: 1px solid #808080;\r
+}\r
+\r
+table.repositories td {\r
+       padding: 4px;\r
+}\r
+\r
+table.repositories th a {\r
+       color:black;/*#ddd;*/\r
+       text-decoration: none;\r
+       font-weight: normal;\r
+}\r
+\r
+table.repositories th a:hover {\r
+       text-decoration: underline;\r
+}\r
+\r
+table.repositories th.wicket_orderDown a, table.repositories th.wicket_orderUp a {\r
+       color: black;\r
+       font-weight: bold;\r
+}\r
+\r
+tr th a { padding-right: 15px; background-position: right; background-repeat:no-repeat; }\r
+tr th.wicket_orderDown a {background-image: url(arrow_down.png); }\r
+tr th.wicket_orderUp a { background-image: url(arrow_up.png); }\r
+tr th.wicket_orderNone a { background-image: url(arrow_off.png); }\r
+\r
+tr.light {\r
+       background-color: #ffffff;\r
+}\r
+\r
+tr.light td {\r
+       border-bottom: 1px solid #bbb;  \r
+}\r
+\r
+tr.dark {\r
+       background-color: #faf8dc;\r
+       border-bottom: 1px solid #bbb;  \r
+}\r
+\r
+tr.dark td {\r
+       border-bottom: 1px solid #bbb;  \r
+}\r
+\r
+/* currently both use the same, but it can change */\r
+tr.light:hover,\r
+tr.dark:hover {\r
+       /*background-color: #0099b7;*/\r
+       background-color: #000070;\r
+       color: white;\r
+}\r
+\r
+tr.light:hover a,\r
+tr.dark:hover a {\r
+       color: white;   \r
+}\r
+\r
+td {\r
+       padding-left: 7px;\r
+       padding-right: 7px;\r
+}\r
+\r
+td.author {\r
+       font-style: italic;\r
+}\r
+\r
+td.date {\r
+       font-style: italic;\r
+       width:90px;\r
+}\r
+\r
+td.sha1, td.sha1 span {\r
+       font-family: monospace;\r
+       font-size: 13px;\r
+}\r
+\r
+td.mode {\r
+       font-family: monospace;\r
+       width:90px;\r
+       padding-right:15px;\r
+}\r
+\r
+td.size {\r
+       text-align: right;\r
+       width:100px;    \r
+       padding-right:15px;\r
+}\r
+\r
+td.rightAlign {\r
+       text-align: right;\r
+}\r
+\r
+span.refs span {\r
+       padding: 0px 4px;\r
+       font-family: sans-serif;\r
+       font-size: 70%;\r
+       font-weight: normal;\r
+       border: 1px solid;\r
+       background-color: #ffaaff;\r
+       border-color: #ffccff #ff00ee #ff00ee #ffccff;\r
+       color: black;\r
+}\r
+\r
+span.refs span a {\r
+       text-decoration: none;\r
+       color: inherit;\r
+}\r
+\r
+span.refs span a:hover {\r
+       text-decoration: underline;\r
+}\r
+\r
+span.refs span.indirect {\r
+       font-style: italic;\r
+}\r
+\r
+span.refs span.ref {\r
+       background-color: #aaaaff;\r
+       border-color: #ccccff #0033cc #0033cc #ccccff;\r
+}\r
+\r
+span.refs span.tag {\r
+       background-color: #ffffaa;\r
+       border-color: #ffffcc #ffee00 #ffee00 #ffffcc;\r
+}\r
+\r
+span.refs span.head {\r
+       background-color: #aaffaa;\r
+       border-color: #ccffcc #00cc33 #00cc33 #ccffcc;\r
+}
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/resources/gitblt-favicon.png b/src/com/gitblit/wicket/resources/gitblt-favicon.png
new file mode 100644 (file)
index 0000000..f6ac154
Binary files /dev/null and b/src/com/gitblit/wicket/resources/gitblt-favicon.png differ
diff --git a/src/com/gitblit/wicket/resources/gitblt-logo.png b/src/com/gitblit/wicket/resources/gitblt-logo.png
new file mode 100644 (file)
index 0000000..7ec945b
Binary files /dev/null and b/src/com/gitblit/wicket/resources/gitblt-logo.png differ
diff --git a/src/com/gitblit/wicket/resources/gitblt.png b/src/com/gitblit/wicket/resources/gitblt.png
new file mode 100644 (file)
index 0000000..7535bc3
Binary files /dev/null and b/src/com/gitblit/wicket/resources/gitblt.png differ
diff --git a/src/com/gitblit/wicket/resources/gitblt2.png b/src/com/gitblit/wicket/resources/gitblt2.png
new file mode 100644 (file)
index 0000000..c164294
Binary files /dev/null and b/src/com/gitblit/wicket/resources/gitblt2.png differ
diff --git a/src/com/gitblit/wicket/resources/gitblt3.png b/src/com/gitblit/wicket/resources/gitblt3.png
new file mode 100644 (file)
index 0000000..f178d03
Binary files /dev/null and b/src/com/gitblit/wicket/resources/gitblt3.png differ
diff --git a/src/com/gitblit/wicket/resources/gitblt_25.png b/src/com/gitblit/wicket/resources/gitblt_25.png
new file mode 100644 (file)
index 0000000..ad580fa
Binary files /dev/null and b/src/com/gitblit/wicket/resources/gitblt_25.png differ