summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/wicket/pages
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2011-09-29 23:34:04 -0400
committerJames Moger <james.moger@gitblit.com>2011-09-29 23:34:04 -0400
commita7571bc1d831a83643d4fc5257a510a1bb53316b (patch)
tree75d5517cff9e71a86567b16b2001a0ddfe0f13a0 /src/com/gitblit/wicket/pages
parent1f59156d03229aac15623e82dd6a85aaaa104919 (diff)
downloadgitblit-a7571bc1d831a83643d4fc5257a510a1bb53316b.tar.gz
gitblit-a7571bc1d831a83643d4fc5257a510a1bb53316b.zip
Split RepositoriesPage into 3 pages. Inline page header authentication.
Diffstat (limited to 'src/com/gitblit/wicket/pages')
-rw-r--r--src/com/gitblit/wicket/pages/BasePage.java6
-rw-r--r--src/com/gitblit/wicket/pages/EditRepositoryPage.html18
-rw-r--r--src/com/gitblit/wicket/pages/EditRepositoryPage.java9
-rw-r--r--src/com/gitblit/wicket/pages/EditUserPage.html9
-rw-r--r--src/com/gitblit/wicket/pages/EditUserPage.java7
-rw-r--r--src/com/gitblit/wicket/pages/FederationPage.html17
-rw-r--r--src/com/gitblit/wicket/pages/FederationPage.java51
-rw-r--r--src/com/gitblit/wicket/pages/FederationRegistrationPage.html5
-rw-r--r--src/com/gitblit/wicket/pages/FederationRegistrationPage.java6
-rw-r--r--src/com/gitblit/wicket/pages/LoginPage.html36
-rw-r--r--src/com/gitblit/wicket/pages/RepositoriesPage.html25
-rw-r--r--src/com/gitblit/wicket/pages/RepositoriesPage.java66
-rw-r--r--src/com/gitblit/wicket/pages/ReviewProposalPage.html5
-rw-r--r--src/com/gitblit/wicket/pages/ReviewProposalPage.java11
-rw-r--r--src/com/gitblit/wicket/pages/RootPage.html36
-rw-r--r--src/com/gitblit/wicket/pages/RootPage.java (renamed from src/com/gitblit/wicket/pages/LoginPage.java)77
-rw-r--r--src/com/gitblit/wicket/pages/SendProposalPage.html14
-rw-r--r--src/com/gitblit/wicket/pages/SendProposalPage.java4
-rw-r--r--src/com/gitblit/wicket/pages/StandardPage.html32
-rw-r--r--src/com/gitblit/wicket/pages/StandardPage.java40
-rw-r--r--src/com/gitblit/wicket/pages/UsersPage.html11
-rw-r--r--src/com/gitblit/wicket/pages/UsersPage.java29
22 files changed, 310 insertions, 204 deletions
diff --git a/src/com/gitblit/wicket/pages/BasePage.java b/src/com/gitblit/wicket/pages/BasePage.java
index ebb4e897..0cb91d57 100644
--- a/src/com/gitblit/wicket/pages/BasePage.java
+++ b/src/com/gitblit/wicket/pages/BasePage.java
@@ -44,7 +44,6 @@ import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.models.UserModel;
import com.gitblit.wicket.GitBlitWebSession;
-import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.LinkPanel;
public abstract class BasePage extends WebPage {
@@ -190,7 +189,7 @@ public abstract class BasePage extends WebPage {
if (GitBlitWebSession.get().isLoggedIn()) {
error(message, true);
} else {
- throw new RestartResponseAtInterceptPageException(LoginPage.class);
+ throw new RestartResponseAtInterceptPageException(RepositoriesPage.class);
}
}
@@ -216,8 +215,7 @@ public abstract class BasePage extends WebPage {
} else {
// login
add(new Label("username").setVisible(false));
- add(new LinkPanel("loginLink", null, markupProvider.getString("gb.login"),
- LoginPage.class));
+ add(new Label("loginLink").setVisible(false));
add(new Label("separator").setVisible(false));
add(new Label("changePasswordLink").setVisible(false));
}
diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.html b/src/com/gitblit/wicket/pages/EditRepositoryPage.html
index 4a9690b1..f9a0f793 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.html
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.html
@@ -6,18 +6,13 @@
<wicket:extend>
<body onload="document.getElementById('name').focus();">
- <!-- Push content down to preserve header image -->
- <div style="padding-top:20px"></div>
-
- <div style="text-align:center;" wicket:id="feedback">[Feedback Panel]</div>
-
<!-- Repository Table -->
<form wicket:id="editForm">
<table class="plain">
<tbody>
- <tr><th><wicket:message key="gb.name"></wicket:message></th><td class="edit"><input type="text" wicket:id="name" id="name" size="40" tabindex="1" /> &nbsp;<i><wicket:message key="gb.nameDescription"></wicket:message></i></td></tr>
- <tr><th><wicket:message key="gb.description"></wicket:message></th><td class="edit"><input type="text" wicket:id="description" size="40" tabindex="2" /></td></tr>
- <tr><th><wicket:message key="gb.origin"></wicket:message></th><td class="edit"><input type="text" wicket:id="origin" size="80" tabindex="3" /></td></tr>
+ <tr><th><wicket:message key="gb.name"></wicket:message></th><td class="edit"><input class="span6" type="text" wicket:id="name" id="name" size="40" tabindex="1" /> &nbsp;<i><wicket:message key="gb.nameDescription"></wicket:message></i></td></tr>
+ <tr><th><wicket:message key="gb.description"></wicket:message></th><td class="edit"><input class="span6" type="text" wicket:id="description" size="40" tabindex="2" /></td></tr>
+ <tr><th><wicket:message key="gb.origin"></wicket:message></th><td class="edit"><input class="span6" type="text" wicket:id="origin" size="80" tabindex="3" /></td></tr>
<tr><th><wicket:message key="gb.owner"></wicket:message></th><td class="edit"><select wicket:id="owner" tabindex="4" /> &nbsp;<i><wicket:message key="gb.ownerDescription"></wicket:message></i></td></tr>
<tr><th><wicket:message key="gb.enableTickets"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="useTickets" tabindex="5" /> &nbsp;<i><wicket:message key="gb.useTicketsDescription"></wicket:message></i></td></tr>
<tr><th><wicket:message key="gb.enableDocs"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="useDocs" tabindex="6" /> &nbsp;<i><wicket:message key="gb.useDocsDescription"></wicket:message></i></td></tr>
@@ -25,16 +20,15 @@
<tr><th><wicket:message key="gb.showReadme"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="showReadme" tabindex="8" /> &nbsp;<i><wicket:message key="gb.showReadmeDescription"></wicket:message></i></td></tr>
<tr><th><wicket:message key="gb.isFrozen"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="isFrozen" tabindex="9" /> &nbsp;<i><wicket:message key="gb.isFrozenDescription"></wicket:message></i></td></tr>
<tr><td style="padding-top:10px;" colspan="2"><hr></hr></td></tr>
- <tr><th><wicket:message key="gb.accessRestriction"></wicket:message></th><td class="edit"><select wicket:id="accessRestriction" tabindex="10" /></td></tr>
+ <tr><th><wicket:message key="gb.accessRestriction"></wicket:message></th><td class="edit"><select class="span6" wicket:id="accessRestriction" tabindex="10" /></td></tr>
<tr><th style="vertical-align: top;"><wicket:message key="gb.permittedUsers"></wicket:message></th><td style="padding:2px;"><span wicket:id="users"></span></td></tr>
<tr><td style="padding-top:10px;" colspan="2"><hr></hr></td></tr>
- <tr><th><wicket:message key="gb.federationStrategy"></wicket:message></th><td class="edit"><select wicket:id="federationStrategy" tabindex="11" /></td></tr>
+ <tr><th><wicket:message key="gb.federationStrategy"></wicket:message></th><td class="edit"><select class="span6" wicket:id="federationStrategy" tabindex="11" /></td></tr>
<tr><th style="vertical-align: top;"><wicket:message key="gb.federationSets"></wicket:message></th><td style="padding:2px;"><span wicket:id="federationSets"></span></td></tr>
- <tr><th></th><td class="editButton"><input class="btn primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="12" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="13" /></td></tr>
+ <tr><th></th><td class="editButton"><input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="12" /> &nbsp; <input class="btn primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="13" /> </td></tr>
</tbody>
</table>
</form>
-
</body>
</wicket:extend>
</html> \ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
index 7349ca5f..ae7966d0 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -47,7 +47,7 @@ import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.GitBlitWebSession;
import com.gitblit.wicket.WicketUtils;
-public class EditRepositoryPage extends BasePage {
+public class EditRepositoryPage extends StandardPage {
private final boolean isCreate;
@@ -76,15 +76,16 @@ public class EditRepositoryPage extends BasePage {
List<String> federationSets = new ArrayList<String>();
List<String> repositoryUsers = new ArrayList<String>();
if (isCreate) {
- super.setupPage("", getString("gb.newRepository"));
+ super.setupPage(getString("gb.newRepository"), "");
} else {
- super.setupPage("", getString("gb.edit"));
+ super.setupPage(getString("gb.edit"), repositoryModel.name);
if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) {
repositoryUsers.addAll(GitBlit.self().getRepositoryUsers(repositoryModel));
Collections.sort(repositoryUsers);
}
federationSets.addAll(repositoryModel.federationSets);
- }
+ }
+
final String oldName = repositoryModel.name;
// users palette
diff --git a/src/com/gitblit/wicket/pages/EditUserPage.html b/src/com/gitblit/wicket/pages/EditUserPage.html
index 2f90bbfa..ceda3cbf 100644
--- a/src/com/gitblit/wicket/pages/EditUserPage.html
+++ b/src/com/gitblit/wicket/pages/EditUserPage.html
@@ -6,12 +6,7 @@
<wicket:extend>
<body onload="document.getElementById('username').focus();">
- <!-- Push content down to preserve header image -->
- <div style="padding-top:20px"></div>
-
- <div style="text-align:center;" wicket:id="feedback">[Feedback Panel]</div>
-
- <!-- Repository Table -->
+ <!-- User Table -->
<form wicket:id="editForm">
<table class="plain">
<tbody>
@@ -21,7 +16,7 @@
<tr><th><wicket:message key="gb.canAdmin"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="canAdmin" tabindex="6" /> &nbsp;<i><wicket:message key="gb.canAdminDescription"></wicket:message></i></td></tr>
<tr><th><wicket:message key="gb.excludeFromFederation"></wicket:message></th><td class="edit"><input type="checkbox" wicket:id="excludeFromFederation" tabindex="7" /> &nbsp;<i><wicket:message key="gb.excludeFromFederationDescription"></wicket:message></i></td></tr>
<tr><th style="vertical-align: top;"><wicket:message key="gb.restrictedRepositories"></wicket:message></th><td style="padding:2px;"><span wicket:id="repositories"></span></td></tr>
- <tr><th></th><td class="editButton"><input class="btn primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="8" /> <input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="9" /></td></tr>
+ <tr><th></th><td class="editButton"><input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" tabindex="8" /> &nbsp; <input class="btn primary" type="submit" value="Save" wicket:message="value:gb.save" wicket:id="save" tabindex="9" /></td></tr>
</tbody>
</table>
</form>
diff --git a/src/com/gitblit/wicket/pages/EditUserPage.java b/src/com/gitblit/wicket/pages/EditUserPage.java
index a3589117..8dbb0d90 100644
--- a/src/com/gitblit/wicket/pages/EditUserPage.java
+++ b/src/com/gitblit/wicket/pages/EditUserPage.java
@@ -44,7 +44,7 @@ import com.gitblit.wicket.RequiresAdminRole;
import com.gitblit.wicket.WicketUtils;
@RequiresAdminRole
-public class EditUserPage extends BasePage {
+public class EditUserPage extends StandardPage {
private final boolean isCreate;
@@ -66,10 +66,11 @@ public class EditUserPage extends BasePage {
protected void setupPage(final UserModel userModel) {
if (isCreate) {
- super.setupPage("", getString("gb.newUser"));
+ super.setupPage(getString("gb.newUser"), "");
} else {
- super.setupPage("", getString("gb.edit"));
+ super.setupPage(getString("gb.edit"), userModel.username);
}
+
final Model<String> confirmPassword = new Model<String>(
StringUtils.isEmpty(userModel.password) ? "" : userModel.password);
CompoundPropertyModel<UserModel> model = new CompoundPropertyModel<UserModel>(userModel);
diff --git a/src/com/gitblit/wicket/pages/FederationPage.html b/src/com/gitblit/wicket/pages/FederationPage.html
new file mode 100644
index 00000000..ab8a9417
--- /dev/null
+++ b/src/com/gitblit/wicket/pages/FederationPage.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"
+ xml:lang="en"
+ lang="en">
+<body>
+<wicket:extend>
+
+ <div wicket:id="federationProposalsPanel">[federation proposals panel]</div>
+
+ <div style="padding-top: 10px;" wicket:id="federationRegistrationsPanel">[federation registrations panel]</div>
+
+ <div wicket:id="federationTokensPanel">[federation tokens panel]</div>
+
+</wicket:extend>
+</body>
+</html> \ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/FederationPage.java b/src/com/gitblit/wicket/pages/FederationPage.java
new file mode 100644
index 00000000..b993f718
--- /dev/null
+++ b/src/com/gitblit/wicket/pages/FederationPage.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2011 gitblit.com.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.gitblit.wicket.pages;
+
+import com.gitblit.GitBlit;
+import com.gitblit.Keys;
+import com.gitblit.wicket.panels.FederationProposalsPanel;
+import com.gitblit.wicket.panels.FederationRegistrationsPanel;
+import com.gitblit.wicket.panels.FederationTokensPanel;
+
+public class FederationPage extends RootPage {
+
+ public FederationPage() {
+ super();
+
+ boolean showFederation = showAdmin && GitBlit.canFederate();
+ add(new FederationTokensPanel("federationTokensPanel", showFederation)
+ .setVisible(showFederation));
+ FederationProposalsPanel proposalsPanel = new FederationProposalsPanel(
+ "federationProposalsPanel");
+ if (showFederation) {
+ proposalsPanel.hideIfEmpty();
+ } else {
+ proposalsPanel.setVisible(false);
+ }
+
+ boolean showRegistrations = GitBlit.getBoolean(Keys.web.showFederationRegistrations, false);
+ FederationRegistrationsPanel registrationsPanel = new FederationRegistrationsPanel(
+ "federationRegistrationsPanel");
+ if (showAdmin || showRegistrations) {
+ registrationsPanel.hideIfEmpty();
+ } else {
+ registrationsPanel.setVisible(false);
+ }
+ add(proposalsPanel);
+ add(registrationsPanel);
+ }
+}
diff --git a/src/com/gitblit/wicket/pages/FederationRegistrationPage.html b/src/com/gitblit/wicket/pages/FederationRegistrationPage.html
index c7c5bdef..de30cf34 100644
--- a/src/com/gitblit/wicket/pages/FederationRegistrationPage.html
+++ b/src/com/gitblit/wicket/pages/FederationRegistrationPage.html
@@ -6,11 +6,6 @@
<body>
<wicket:extend>
-
- <div style="padding-top:20px"></div>
-
- <div style="text-align:center;" wicket:id="feedback">[Feedback Panel]</div>
-
<!-- registration info -->
<table class="plain">
<tr><th><wicket:message key="gb.url">url</wicket:message></th><td><img style="border:0px;vertical-align:middle;" wicket:id="typeIcon" /> <span wicket:id="url">[url]</span></td></tr>
diff --git a/src/com/gitblit/wicket/pages/FederationRegistrationPage.java b/src/com/gitblit/wicket/pages/FederationRegistrationPage.java
index 00cc2ebb..aed94a41 100644
--- a/src/com/gitblit/wicket/pages/FederationRegistrationPage.java
+++ b/src/com/gitblit/wicket/pages/FederationRegistrationPage.java
@@ -31,7 +31,7 @@ import com.gitblit.models.FederationModel.RepositoryStatus;
import com.gitblit.wicket.GitBlitWebSession;
import com.gitblit.wicket.WicketUtils;
-public class FederationRegistrationPage extends BasePage {
+public class FederationRegistrationPage extends StandardPage {
public FederationRegistrationPage(PageParameters params) {
super(params);
@@ -53,8 +53,8 @@ public class FederationRegistrationPage extends BasePage {
error("Could not find federation registration!", true);
}
- setupPage("", registration.isResultData() ? getString("gb.federationResults")
- : getString("gb.federationRegistration"));
+ setupPage(registration.isResultData() ? getString("gb.federationResults")
+ : getString("gb.federationRegistration"), registration.url);
add(new Label("url", registration.url));
add(WicketUtils.getRegistrationImage("typeIcon", registration, this));
diff --git a/src/com/gitblit/wicket/pages/LoginPage.html b/src/com/gitblit/wicket/pages/LoginPage.html
deleted file mode 100644
index 5f9b779f..00000000
--- a/src/com/gitblit/wicket/pages/LoginPage.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"
- xml:lang="en"
- lang="en">
-
- <!-- Head with Wicket-controlled resources in this package -->
- <wicket:head>
- <title wicket:id="title">[page title]</title>
- <link rel="stylesheet" type="text/css" href="gitblit.css"/>
- <link rel="shortcut icon" href="gitblt-favicon.png" type="image/png" />
- </wicket:head>
-
- <body onload="document.getElementById('username').focus();">
- <div>
- <div style="padding-top: 10px;text-align:center;">
- <img src="gitblt_25.png" alt="Gitblit"/><br/>
- <div style="padding-top:30px;font-weight:bold;" wicket:id="name">[name]</div>
- </div>
-
- <form style="text-align:center;" wicket:id="loginForm">
- <div>
- <p/>
- <wicket:message key="gb.username"></wicket:message> &nbsp;
- <input type="text" id="username" wicket:id="username" value=""/>
- <p/>
- <wicket:message key="gb.password"></wicket:message> &nbsp;
- <input type="password" wicket:id="password" value=""/>
- <p/>
- <input type="submit" value="Login" wicket:message="value:gb.login" />
- <div style="padding-top:10px;" wicket:id="feedback"></div>
- </div>
- </form>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.html b/src/com/gitblit/wicket/pages/RepositoriesPage.html
index 6aa55de9..c883099c 100644
--- a/src/com/gitblit/wicket/pages/RepositoriesPage.html
+++ b/src/com/gitblit/wicket/pages/RepositoriesPage.html
@@ -9,34 +9,9 @@
<body>
<wicket:extend>
-<div class="topbar">
- <div class="fill">
- <div class="container">
- <a class="brand" title="gitblit homepage" href="http://gitblit.com/">
- <img src="gitblt_25.png" width="79" height="25" alt="gitblit" class="logo"/>
- </a>
-<form class="pull-right" action="">
-<input class="input-small" type="text" placeholder="Username">
-<input class="input-small" type="password" placeholder="Password">
-<button class="btn primary" type="submit">Sign in</button>
-</form>
-</div>
-</div>
-</div>
- <div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div>
-
<div class="markdown" style="margin-top:-1em;padding-bottom:5px;" wicket:id="repositoriesMessage">[repositories message]</div>
<div wicket:id="repositoriesPanel">[repositories panel]</div>
-
- <div style="padding-top: 10px;"wicket:id="usersPanel">[users panel]</div>
-
- <div style="padding-top: 10px;"wicket:id="federationTokensPanel">[federation tokens panel]</div>
-
- <div style="padding-top: 10px;"wicket:id="federationProposalsPanel">[federation proposals panel]</div>
-
- <div style="padding-top: 10px;"wicket:id="federationRegistrationsPanel">[federation registrations panel]</div>
-
</wicket:extend>
</body>
</html> \ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.java b/src/com/gitblit/wicket/pages/RepositoriesPage.java
index 619d42ed..ce532a76 100644
--- a/src/com/gitblit/wicket/pages/RepositoriesPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoriesPage.java
@@ -19,7 +19,6 @@ import java.io.File;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.text.MessageFormat;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.basic.Label;
@@ -29,50 +28,13 @@ import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.utils.MarkdownUtils;
import com.gitblit.utils.StringUtils;
-import com.gitblit.wicket.GitBlitWebSession;
import com.gitblit.wicket.WicketUtils;
-import com.gitblit.wicket.panels.FederationProposalsPanel;
-import com.gitblit.wicket.panels.FederationRegistrationsPanel;
-import com.gitblit.wicket.panels.FederationTokensPanel;
import com.gitblit.wicket.panels.RepositoriesPanel;
-import com.gitblit.wicket.panels.UsersPanel;
-public class RepositoriesPage extends BasePage {
+public class RepositoriesPage extends RootPage {
public RepositoriesPage() {
- super();
- setupPage("", "");
-
- final boolean showAdmin;
- if (GitBlit.getBoolean(Keys.web.authenticateAdminPages, true)) {
- boolean allowAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false);
- showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin();
- // authentication requires state and session
- setStatelessHint(false);
- } else {
- showAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false);
- if (GitBlit.getBoolean(Keys.web.authenticateViewPages, false)) {
- // authentication requires state and session
- setStatelessHint(false);
- } else {
- // no authentication required, no state and no session required
- setStatelessHint(true);
- }
- }
-
- // display an error message cached from a redirect
- String cachedMessage = GitBlitWebSession.get().clearErrorMessage();
- if (!StringUtils.isEmpty(cachedMessage)) {
- error(cachedMessage);
- } else if (showAdmin) {
- int pendingProposals = GitBlit.self().getPendingFederationProposals().size();
- if (pendingProposals == 1) {
- info("There is 1 federation proposal awaiting review.");
- } else if (pendingProposals > 1) {
- info(MessageFormat.format("There are {0} federation proposals awaiting review.",
- pendingProposals));
- }
- }
+ super();
// Load the markdown welcome message
String messageSource = GitBlit.getString(Keys.web.repositoriesMessage, "gitblit");
@@ -109,28 +71,6 @@ public class RepositoriesPage extends BasePage {
Component repositoriesMessage = new Label("repositoriesMessage", message)
.setEscapeModelStrings(false);
add(repositoriesMessage);
- add(new RepositoriesPanel("repositoriesPanel", showAdmin, null, getAccessRestrictions()));
- add(new UsersPanel("usersPanel", showAdmin).setVisible(showAdmin));
- boolean showFederation = showAdmin && GitBlit.canFederate();
- add(new FederationTokensPanel("federationTokensPanel", showFederation)
- .setVisible(showFederation));
- FederationProposalsPanel proposalsPanel = new FederationProposalsPanel(
- "federationProposalsPanel");
- if (showFederation) {
- proposalsPanel.hideIfEmpty();
- } else {
- proposalsPanel.setVisible(false);
- }
-
- boolean showRegistrations = GitBlit.getBoolean(Keys.web.showFederationRegistrations, false);
- FederationRegistrationsPanel registrationsPanel = new FederationRegistrationsPanel(
- "federationRegistrationsPanel");
- if (showAdmin || showRegistrations) {
- registrationsPanel.hideIfEmpty();
- } else {
- registrationsPanel.setVisible(false);
- }
- add(proposalsPanel);
- add(registrationsPanel);
+ add(new RepositoriesPanel("repositoriesPanel", showAdmin, null, getAccessRestrictions()));
}
}
diff --git a/src/com/gitblit/wicket/pages/ReviewProposalPage.html b/src/com/gitblit/wicket/pages/ReviewProposalPage.html
index d4244ea0..7f26f281 100644
--- a/src/com/gitblit/wicket/pages/ReviewProposalPage.html
+++ b/src/com/gitblit/wicket/pages/ReviewProposalPage.html
@@ -6,11 +6,6 @@
<body>
<wicket:extend>
-
- <div style="padding-top:20px"></div>
-
- <div style="text-align:center;" wicket:id="feedback">[Feedback Panel]</div>
-
<!-- proposal info -->
<table class="plain">
<tr><th><wicket:message key="gb.received">received</wicket:message></th><td><span wicket:id="received">[received]</span></td></tr>
diff --git a/src/com/gitblit/wicket/pages/ReviewProposalPage.java b/src/com/gitblit/wicket/pages/ReviewProposalPage.java
index b006d80f..2f2d6f39 100644
--- a/src/com/gitblit/wicket/pages/ReviewProposalPage.java
+++ b/src/com/gitblit/wicket/pages/ReviewProposalPage.java
@@ -33,7 +33,7 @@ import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.RepositoriesPanel;
@RequiresAdminRole
-public class ReviewProposalPage extends BasePage {
+public class ReviewProposalPage extends StandardPage {
private final String PROPS_PATTERN = "{0} = {1}\n";
@@ -42,9 +42,6 @@ public class ReviewProposalPage extends BasePage {
public ReviewProposalPage(PageParameters params) {
super(params);
- setupPage("", getString("gb.proposals"));
- setStatelessHint(true);
-
final String token = WicketUtils.getToken(params);
FederationProposal proposal = GitBlit.self().getPendingFederationProposal(token);
@@ -52,13 +49,15 @@ public class ReviewProposalPage extends BasePage {
error("Could not find federation proposal!", true);
}
+ setupPage(getString("gb.proposals"), proposal.url);
+
+
add(new Label("url", proposal.url));
add(new Label("message", proposal.message));
add(WicketUtils.createTimestampLabel("received", proposal.received, getTimeZone()));
add(new Label("token", proposal.token));
add(new Label("tokenType", proposal.tokenType.name()));
-
- boolean go = true;
+
String p;
if (GitBlit.isGO()) {
// gitblit.properties definition
diff --git a/src/com/gitblit/wicket/pages/RootPage.html b/src/com/gitblit/wicket/pages/RootPage.html
new file mode 100644
index 00000000..59a0fe14
--- /dev/null
+++ b/src/com/gitblit/wicket/pages/RootPage.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"
+ xml:lang="en"
+ lang="en">
+<body>
+<wicket:extend>
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" title="gitblit homepage" href="http://gitblit.com/">
+ <img src="gitblt_25.png" width="79" height="25" alt="gitblit" class="logo"/>
+ </a>
+
+ <ul class="nav">
+ <li><a wicket:id="repositories"><wicket:message key="gb.repositories"></wicket:message></a></li>
+ <li><a wicket:id="users"><wicket:message key="gb.users"></wicket:message></a></li>
+ <li><a wicket:id="federation"><wicket:message key="gb.federation"></wicket:message></a></li>
+ </ul>
+
+ <form class="pull-right" wicket:id="loginForm">
+ <input wicket:id="username" class="input-small" type="text" placeholder="Username">
+ <input wicket:id="password" class="input-small" type="password" placeholder="Password">
+ <button class="btn primary" type="submit">Sign in</button>
+ </form>
+ </div>
+ </div>
+ </div>
+
+ <div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div>
+
+ <!-- subclass content -->
+ <wicket:child/>
+</wicket:extend>
+</body>
+</html> \ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/LoginPage.java b/src/com/gitblit/wicket/pages/RootPage.java
index 45e1e2dc..dd64de66 100644
--- a/src/com/gitblit/wicket/pages/LoginPage.java
+++ b/src/com/gitblit/wicket/pages/RootPage.java
@@ -15,16 +15,14 @@
*/
package com.gitblit.wicket.pages;
+import java.text.MessageFormat;
+
import javax.servlet.http.Cookie;
-import org.apache.wicket.PageParameters;
-import org.apache.wicket.RestartResponseException;
-import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.StatelessForm;
import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.protocol.http.WebRequest;
@@ -34,37 +32,59 @@ import com.gitblit.Constants;
import com.gitblit.GitBlit;
import com.gitblit.Keys;
import com.gitblit.models.UserModel;
+import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.GitBlitWebSession;
-public class LoginPage extends WebPage {
+public abstract class RootPage extends BasePage {
+
+ final boolean showAdmin;
IModel<String> username = new Model<String>("");
IModel<String> password = new Model<String>("");
- public LoginPage(PageParameters params) {
- super(params);
+ public RootPage() {
+ super();
+ setupPage("", "");
- // If we are already logged in because user directly accessed
- // the login url, redirect to the home page
- if (GitBlitWebSession.get().isLoggedIn()) {
- throw new RestartResponseException(getApplication().getHomePage());
+ // try to automatically login from cookie
+ if (!GitBlitWebSession.get().isLoggedIn()
+ && GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) {
+ loginByCookie();
}
- if (GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) {
- loginByCookie();
+ if (GitBlit.getBoolean(Keys.web.authenticateAdminPages, true)) {
+ boolean allowAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false);
+ showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin();
+ // authentication requires state and session
+ setStatelessHint(false);
+ } else {
+ showAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false);
+ if (GitBlit.getBoolean(Keys.web.authenticateViewPages, false)) {
+ // authentication requires state and session
+ setStatelessHint(false);
+ } else {
+ // no authentication required, no state and no session required
+ setStatelessHint(true);
+ }
}
+ boolean showRegistrations = GitBlit.canFederate()
+ && GitBlit.getBoolean(Keys.web.showFederationRegistrations, false);
- add(new Label("title", GitBlit.getString(Keys.web.siteName, Constants.NAME)));
- add(new Label("name", GitBlit.getString(Keys.web.siteName, Constants.NAME)));
+ // navigation links
+ add(new BookmarkablePageLink<Void>("repositories", RepositoriesPage.class));
+ add(new BookmarkablePageLink<Void>("users", UsersPage.class).setVisible(showAdmin));
+ add(new BookmarkablePageLink<Void>("federation", FederationPage.class).setVisible(showAdmin
+ || showRegistrations));
+ // login form
StatelessForm<Void> loginForm = new StatelessForm<Void>("loginForm") {
private static final long serialVersionUID = 1L;
@Override
public void onSubmit() {
- String username = LoginPage.this.username.getObject();
- char[] password = LoginPage.this.password.getObject().toCharArray();
+ String username = RootPage.this.username.getObject();
+ char[] password = RootPage.this.password.getObject().toCharArray();
UserModel user = GitBlit.self().authenticate(username, password);
if (user == null) {
@@ -81,8 +101,27 @@ public class LoginPage extends WebPage {
};
loginForm.add(new TextField<String>("username", username));
loginForm.add(new PasswordTextField("password", password));
- loginForm.add(new FeedbackPanel("feedback"));
add(loginForm);
+ if (GitBlit.getBoolean(Keys.web.authenticateViewPages, true)
+ || GitBlit.getBoolean(Keys.web.authenticateAdminPages, true)) {
+ loginForm.setVisible(!GitBlitWebSession.get().isLoggedIn());
+ } else {
+ loginForm.setVisible(false);
+ }
+
+ // display an error message cached from a redirect
+ String cachedMessage = GitBlitWebSession.get().clearErrorMessage();
+ if (!StringUtils.isEmpty(cachedMessage)) {
+ error(cachedMessage);
+ } else if (showAdmin) {
+ int pendingProposals = GitBlit.self().getPendingFederationProposals().size();
+ if (pendingProposals == 1) {
+ info("There is 1 federation proposal awaiting review.");
+ } else if (pendingProposals > 1) {
+ info(MessageFormat.format("There are {0} federation proposals awaiting review.",
+ pendingProposals));
+ }
+ }
}
private void loginByCookie() {
diff --git a/src/com/gitblit/wicket/pages/SendProposalPage.html b/src/com/gitblit/wicket/pages/SendProposalPage.html
index 90fe0a27..794cb702 100644
--- a/src/com/gitblit/wicket/pages/SendProposalPage.html
+++ b/src/com/gitblit/wicket/pages/SendProposalPage.html
@@ -6,21 +6,15 @@
<wicket:extend>
<body onload="document.getElementById('myUrl').focus();">
-
-
- <div style="padding-top:20px"></div>
-
- <div style="text-align:center;" wicket:id="feedback">[Feedback Panel]</div>
-
<!-- proposal info -->
<form wicket:id="editForm">
<table class="plain">
- <tr><th><wicket:message key="gb.url">url</wicket:message></th><td class="edit"><input type="text" wicket:id="myUrl" id="myUrl" size="60" /> &nbsp;<i><wicket:message key="gb.myUrlDescription"></wicket:message></i></td></tr>
- <tr><th><wicket:message key="gb.destinationUrl">destination url</wicket:message></th><td class="edit"><input type="text" wicket:id="destinationUrl" size="60" /> &nbsp;<i><wicket:message key="gb.destinationUrlDescription"></wicket:message></i></td></tr>
- <tr><th valign="top"><wicket:message key="gb.message">message</wicket:message></th><td class="edit"><input type="text" wicket:id="message" size="80" /></td></tr>
+ <tr><th><wicket:message key="gb.url">url</wicket:message></th><td class="edit"><input class="span6" type="text" wicket:id="myUrl" id="myUrl" size="60" /> &nbsp;<i><wicket:message key="gb.myUrlDescription"></wicket:message></i></td></tr>
+ <tr><th><wicket:message key="gb.destinationUrl">destination url</wicket:message></th><td class="edit"><input class="span6" type="text" wicket:id="destinationUrl" size="60" /> &nbsp;<i><wicket:message key="gb.destinationUrlDescription"></wicket:message></i></td></tr>
+ <tr><th valign="top"><wicket:message key="gb.message">message</wicket:message></th><td class="edit"><input class="span8" type="text" wicket:id="message" size="80" /></td></tr>
<tr><th><wicket:message key="gb.type">type</wicket:message></th><td><span wicket:id="tokenType">[token type]</span></td></tr>
<tr><th><wicket:message key="gb.token">token</wicket:message></th><td><span class="sha1" wicket:id="token">[token]</span></td></tr>
- <tr><th></th><td class="editButton"><input type="submit" value="propose" wicket:message="value:gb.sendProposal" wicket:id="save" /> <input type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" /></td></tr>
+ <tr><th></th><td class="editButton"><input class="btn" type="submit" value="Cancel" wicket:message="value:gb.cancel" wicket:id="cancel" /> <input class="btn primary" type="submit" value="propose" wicket:message="value:gb.sendProposal" wicket:id="save" /> </td></tr>
</table>
</form>
diff --git a/src/com/gitblit/wicket/pages/SendProposalPage.java b/src/com/gitblit/wicket/pages/SendProposalPage.java
index 635b4321..11f97a08 100644
--- a/src/com/gitblit/wicket/pages/SendProposalPage.java
+++ b/src/com/gitblit/wicket/pages/SendProposalPage.java
@@ -37,7 +37,7 @@ import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.RepositoriesPanel;
@RequiresAdminRole
-public class SendProposalPage extends BasePage {
+public class SendProposalPage extends StandardPage {
public String myUrl;
@@ -48,7 +48,7 @@ public class SendProposalPage extends BasePage {
public SendProposalPage(PageParameters params) {
super(params);
- setupPage("", getString("gb.sendProposal"));
+ setupPage(getString("gb.sendProposal"), "");
setStatelessHint(true);
final String token = WicketUtils.getToken(params);
diff --git a/src/com/gitblit/wicket/pages/StandardPage.html b/src/com/gitblit/wicket/pages/StandardPage.html
new file mode 100644
index 00000000..cb6dcd5c
--- /dev/null
+++ b/src/com/gitblit/wicket/pages/StandardPage.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"
+ xml:lang="en"
+ lang="en">
+
+<body>
+<wicket:extend>
+ <!-- topbar header -->
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" title="gitblit homepage" href="http://gitblit.com/">
+ <img src="gitblt_25.png" width="79" height="25" alt="gitblit" class="logo"/>
+ </a>
+ </div>
+ </div>
+ </div>
+
+ <!-- feedback panel -->
+ <div style="text-align:center;padding-top:5px;" wicket:id="feedback">[Feedback Panel]</div>
+
+ <!-- page header -->
+ <div class="page-header">
+ <h2><span wicket:id="pageName">[page name]</span> <small><span wicket:id="pageSubName">[sub name]</span></small></h2>
+ </div>
+
+ <!-- Subclass Content -->
+ <wicket:child/>
+</wicket:extend>
+</body>
+</html> \ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/StandardPage.java b/src/com/gitblit/wicket/pages/StandardPage.java
new file mode 100644
index 00000000..ff16b631
--- /dev/null
+++ b/src/com/gitblit/wicket/pages/StandardPage.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2011 gitblit.com.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.gitblit.wicket.pages;
+
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.markup.html.basic.Label;
+
+public abstract class StandardPage extends BasePage {
+
+ public StandardPage() {
+ // create constructor
+ super();
+ setStatelessHint(true);
+ }
+
+ public StandardPage(PageParameters params) {
+ // edit constructor
+ super(params);
+ setStatelessHint(true);
+ }
+
+ protected void setupPage(String pageName, String subName) {
+ add(new Label("pageName", pageName));
+ add(new Label("pageSubName", "/ " + subName));
+ super.setupPage("", pageName);
+ }
+}
diff --git a/src/com/gitblit/wicket/pages/UsersPage.html b/src/com/gitblit/wicket/pages/UsersPage.html
new file mode 100644
index 00000000..4d14496d
--- /dev/null
+++ b/src/com/gitblit/wicket/pages/UsersPage.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"
+ xml:lang="en"
+ lang="en">
+<body>
+<wicket:extend>
+ <div wicket:id="usersPanel">[users panel]</div>
+</wicket:extend>
+</body>
+</html> \ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/UsersPage.java b/src/com/gitblit/wicket/pages/UsersPage.java
new file mode 100644
index 00000000..9a7f8a58
--- /dev/null
+++ b/src/com/gitblit/wicket/pages/UsersPage.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2011 gitblit.com.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.gitblit.wicket.pages;
+
+import com.gitblit.wicket.RequiresAdminRole;
+import com.gitblit.wicket.panels.UsersPanel;
+
+@RequiresAdminRole
+public class UsersPage extends RootPage {
+
+ public UsersPage() {
+ super();
+
+ add(new UsersPanel("usersPanel", showAdmin).setVisible(showAdmin));
+ }
+}