@@ -88,13 +88,13 @@ public class WicketUtils { | |||
public static void setTicketCssClass(Component container, String state) { | |||
String css = null; | |||
if (state.equals("open")) { | |||
css = "bug_open"; | |||
css = "label important"; | |||
} else if (state.equals("hold")) { | |||
css = "bug_hold"; | |||
css = "label warning"; | |||
} else if (state.equals("resolved")) { | |||
css = "bug_resolved"; | |||
css = "label success"; | |||
} else if (state.equals("invalid")) { | |||
css = "bug_invalid"; | |||
css = "label"; | |||
} | |||
if (css != null) { | |||
setCssClass(container, css); |
@@ -32,7 +32,7 @@ import com.gitblit.models.UserModel; | |||
import com.gitblit.utils.StringUtils; | |||
import com.gitblit.wicket.GitBlitWebSession; | |||
public class ChangePasswordPage extends StandardPage { | |||
public class ChangePasswordPage extends RootSubPage { | |||
IModel<String> password = new Model<String>(""); | |||
IModel<String> confirmPassword = new Model<String>(""); |
@@ -47,7 +47,7 @@ import com.gitblit.utils.StringUtils; | |||
import com.gitblit.wicket.GitBlitWebSession; | |||
import com.gitblit.wicket.WicketUtils; | |||
public class EditRepositoryPage extends StandardPage { | |||
public class EditRepositoryPage extends RootSubPage { | |||
private final boolean isCreate; | |||
@@ -44,7 +44,7 @@ import com.gitblit.wicket.RequiresAdminRole; | |||
import com.gitblit.wicket.WicketUtils; | |||
@RequiresAdminRole | |||
public class EditUserPage extends StandardPage { | |||
public class EditUserPage extends RootSubPage { | |||
private final boolean isCreate; | |||
@@ -157,8 +157,8 @@ public class EditUserPage extends StandardPage { | |||
userModel.username)); | |||
setResponsePage(EditUserPage.class); | |||
} else { | |||
// back to home | |||
setResponsePage(RepositoriesPage.class); | |||
// back to users page | |||
setResponsePage(UsersPage.class); | |||
} | |||
} | |||
}; |
@@ -6,12 +6,12 @@ | |||
<body> | |||
<wicket:extend> | |||
<div wicket:id="federationProposalsPanel">[federation proposals panel]</div> | |||
<div 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> | |||
<div wicket:id="federationTokensPanel">[federation tokens panel]</div> | |||
</wicket:extend> | |||
</body> | |||
</html> |
@@ -25,6 +25,7 @@ public class FederationPage extends RootPage { | |||
public FederationPage() { | |||
super(); | |||
setupPage("", ""); | |||
boolean showFederation = showAdmin && GitBlit.canFederate(); | |||
add(new FederationTokensPanel("federationTokensPanel", showFederation) |
@@ -25,24 +25,15 @@ import org.apache.wicket.markup.repeater.data.DataView; | |||
import org.apache.wicket.markup.repeater.data.ListDataProvider; | |||
import com.gitblit.GitBlit; | |||
import com.gitblit.Keys; | |||
import com.gitblit.models.FederationModel; | |||
import com.gitblit.models.FederationModel.RepositoryStatus; | |||
import com.gitblit.wicket.GitBlitWebSession; | |||
import com.gitblit.wicket.WicketUtils; | |||
public class FederationRegistrationPage extends StandardPage { | |||
public class FederationRegistrationPage extends RootSubPage { | |||
public FederationRegistrationPage(PageParameters params) { | |||
super(params); | |||
final boolean showAdmin; | |||
if (GitBlit.getBoolean(Keys.web.authenticateAdminPages, true)) { | |||
boolean allowAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false); | |||
showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin(); | |||
} else { | |||
showAdmin = false; | |||
} | |||
setStatelessHint(true); | |||
String url = WicketUtils.getUrlParameter(params); |
@@ -35,6 +35,7 @@ public class RepositoriesPage extends RootPage { | |||
public RepositoriesPage() { | |||
super(); | |||
setupPage("", ""); | |||
// Load the markdown welcome message | |||
String messageSource = GitBlit.getString(Keys.web.repositoriesMessage, "gitblit"); |
@@ -16,7 +16,7 @@ | |||
<tr><th valign="top"><wicket:message key="gb.proposal">proposal</wicket:message></th><td><span class="sha1" wicket:id="definition">[definition]</span></td></tr> | |||
</table> | |||
<div wicket:id="repositories"></div> | |||
<div wicket:id="repositoriesPanel"></div> | |||
</wicket:extend> | |||
</body> |
@@ -33,7 +33,7 @@ import com.gitblit.wicket.WicketUtils; | |||
import com.gitblit.wicket.panels.RepositoriesPanel; | |||
@RequiresAdminRole | |||
public class ReviewProposalPage extends StandardPage { | |||
public class ReviewProposalPage extends RootSubPage { | |||
private final String PROPS_PATTERN = "{0} = {1}\n"; | |||
@@ -91,7 +91,7 @@ public class ReviewProposalPage extends StandardPage { | |||
List<RepositoryModel> repositories = new ArrayList<RepositoryModel>( | |||
proposal.repositories.values()); | |||
RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositories", false, | |||
RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositoriesPanel", false, | |||
repositories, getAccessRestrictions()); | |||
add(repositoriesPanel); | |||
} |
@@ -17,15 +17,13 @@ package com.gitblit.wicket.pages; | |||
import java.text.MessageFormat; | |||
import javax.servlet.http.Cookie; | |||
import org.apache.wicket.PageParameters; | |||
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.link.BookmarkablePageLink; | |||
import org.apache.wicket.model.IModel; | |||
import org.apache.wicket.model.Model; | |||
import org.apache.wicket.protocol.http.WebRequest; | |||
import org.apache.wicket.protocol.http.WebResponse; | |||
import com.gitblit.Constants; | |||
@@ -35,23 +33,30 @@ import com.gitblit.models.UserModel; | |||
import com.gitblit.utils.StringUtils; | |||
import com.gitblit.wicket.GitBlitWebSession; | |||
/** | |||
* Root page is a topbar, navigable page like Repositories, Users, or | |||
* Federation. | |||
* | |||
* @author James Moger | |||
* | |||
*/ | |||
public abstract class RootPage extends BasePage { | |||
final boolean showAdmin; | |||
boolean showAdmin; | |||
IModel<String> username = new Model<String>(""); | |||
IModel<String> password = new Model<String>(""); | |||
public RootPage() { | |||
super(); | |||
setupPage("", ""); | |||
} | |||
// try to automatically login from cookie | |||
if (!GitBlitWebSession.get().isLoggedIn() | |||
&& GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) { | |||
loginByCookie(); | |||
} | |||
public RootPage(PageParameters params) { | |||
super(params); | |||
} | |||
@Override | |||
protected void setupPage(String repositoryName, String pageName) { | |||
if (GitBlit.getBoolean(Keys.web.authenticateAdminPages, true)) { | |||
boolean allowAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false); | |||
showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin(); | |||
@@ -122,19 +127,8 @@ public abstract class RootPage extends BasePage { | |||
pendingProposals)); | |||
} | |||
} | |||
} | |||
private void loginByCookie() { | |||
UserModel user = null; | |||
// Grab cookie from Browser Session | |||
Cookie[] cookies = ((WebRequest) getRequestCycle().getRequest()).getCookies(); | |||
if (cookies != null && cookies.length > 0) { | |||
user = GitBlit.self().authenticate(cookies); | |||
} | |||
// Login the user | |||
loginUser(user); | |||
super.setupPage(repositoryName, pageName); | |||
} | |||
private void loginUser(UserModel user) { |
@@ -6,20 +6,6 @@ | |||
<body> | |||
<wicket:extend> | |||
<!-- topbar header --> | |||
<div class="topbar"> | |||
<div class="fill"> | |||
<div class="container"> | |||
<a class="brand" wicket:id="rootLink"> | |||
<img src="gitblt_25_white.png" width="79" height="25" alt="gitblit" class="logo"/> | |||
</a> | |||
</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> |
@@ -20,21 +20,24 @@ import org.apache.wicket.markup.html.basic.Label; | |||
import com.gitblit.utils.StringUtils; | |||
public abstract class StandardPage extends BasePage { | |||
public StandardPage() { | |||
// create constructor | |||
/** | |||
* RootSubPage is a non-topbar navigable RootPage. It also has a page header. | |||
* | |||
* @author James Moger | |||
* | |||
*/ | |||
public abstract class RootSubPage extends RootPage { | |||
public RootSubPage() { | |||
super(); | |||
setStatelessHint(true); | |||
} | |||
public StandardPage(PageParameters params) { | |||
// edit constructor | |||
public RootSubPage(PageParameters params) { | |||
super(params); | |||
setStatelessHint(true); | |||
} | |||
protected void setupPage(String pageName, String subName) { | |||
@Override | |||
protected void setupPage(String pageName, String subName) { | |||
add(new Label("pageName", pageName)); | |||
if (!StringUtils.isEmpty(subName)) { | |||
subName = "/ " + subName; |
@@ -18,7 +18,7 @@ | |||
</table> | |||
</form> | |||
<div style="padding-top:10px;" wicket:id="repositories"></div> | |||
<div style="padding-top:10px;" wicket:id="repositoriesPanel"></div> | |||
</body> | |||
</wicket:extend> | |||
</html> |
@@ -37,7 +37,7 @@ import com.gitblit.wicket.WicketUtils; | |||
import com.gitblit.wicket.panels.RepositoriesPanel; | |||
@RequiresAdminRole | |||
public class SendProposalPage extends StandardPage { | |||
public class SendProposalPage extends RootSubPage { | |||
public String myUrl; | |||
@@ -139,7 +139,7 @@ public class SendProposalPage extends StandardPage { | |||
@Override | |||
public void onSubmit() { | |||
setResponsePage(RepositoriesPage.class); | |||
setResponsePage(FederationPage.class); | |||
} | |||
}; | |||
cancel.setDefaultFormProcessing(false); | |||
@@ -148,7 +148,7 @@ public class SendProposalPage extends StandardPage { | |||
List<RepositoryModel> repositories = new ArrayList<RepositoryModel>( | |||
proposal.repositories.values()); | |||
RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositories", false, | |||
RepositoriesPanel repositoriesPanel = new RepositoriesPanel("repositoriesPanel", false, | |||
repositories, getAccessRestrictions()); | |||
add(repositoriesPanel); | |||
} |
@@ -8,7 +8,7 @@ | |||
<wicket:extend> | |||
<!-- ticket title --> | |||
<div style="font-size:150%;padding-top:5px;" wicket:id="ticketTitle">[ticket title]</div> | |||
<div style="font-size:150%;padding-top:5px;padding-bottom:5px;" wicket:id="ticketTitle">[ticket title]</div> | |||
<!-- ticket info --> | |||
<table class="plain"> |
@@ -34,7 +34,7 @@ public class TicketPage extends RepositoryPage { | |||
public TicketPage(PageParameters params) { | |||
super(params); | |||
final String ticketFolder = WicketUtils.getPath(params); | |||
final String ticketFolder = WicketUtils.getObject(params); | |||
Repository r = getRepository(); | |||
TicketModel t = TicgitUtils.getTicket(r, ticketFolder); |
@@ -23,6 +23,7 @@ public class UsersPage extends RootPage { | |||
public UsersPage() { | |||
super(); | |||
setupPage("", ""); | |||
add(new UsersPanel("usersPanel", showAdmin).setVisible(showAdmin)); | |||
} |