@@ -45,6 +45,7 @@ import org.apache.wicket.markup.html.panel.FeedbackPanel; | |||
import org.apache.wicket.protocol.http.RequestUtils; | |||
import org.apache.wicket.protocol.http.WebResponse; | |||
import org.apache.wicket.protocol.http.servlet.ServletWebRequest; | |||
import org.apache.wicket.request.target.basic.RedirectRequestTarget; | |||
import org.apache.wicket.util.time.Duration; | |||
import org.apache.wicket.util.time.Time; | |||
import org.slf4j.Logger; | |||
@@ -112,6 +113,15 @@ public abstract class BasePage extends SessionPage { | |||
return canonicalUrl; | |||
} | |||
protected void manualRedirect(Class<? extends BasePage> pageClass) { | |||
redirect(pageClass, null); | |||
} | |||
protected void redirect(Class<? extends BasePage> pageClass, PageParameters parameters) { | |||
String absoluteUrl = getCanonicalUrl(pageClass, parameters); | |||
getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl)); | |||
} | |||
protected String getLanguageCode() { | |||
return GitBlitWebSession.get().getLocale().getLanguage(); | |||
} | |||
@@ -495,4 +505,5 @@ public abstract class BasePage extends SessionPage { | |||
} | |||
return sb.toString(); | |||
} | |||
} |
@@ -143,7 +143,7 @@ public class EditMilestonePage extends RepositoryPage { | |||
} | |||
if (success && app().tickets().updateMilestone(getRepositoryModel(), tm, createdBy)) { | |||
setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); | |||
redirect(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); | |||
} else { | |||
// TODO error | |||
} |
@@ -331,13 +331,13 @@ public class EditTicketPage extends RepositoryPage { | |||
if (ticket != null) { | |||
TicketNotifier notifier = app().tickets().createNotifier(); | |||
notifier.sendMailing(ticket); | |||
setResponsePage(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number)); | |||
redirect(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number)); | |||
} else { | |||
// TODO error | |||
} | |||
} else { | |||
// nothing to change?! | |||
setResponsePage(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number)); | |||
redirect(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number)); | |||
} | |||
} | |||
}); |
@@ -108,7 +108,7 @@ public class NewMilestonePage extends RepositoryPage { | |||
if (milestone != null) { | |||
milestone.due = due; | |||
app().tickets().updateMilestone(getRepositoryModel(), milestone, createdBy); | |||
throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); | |||
redirect(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName)); | |||
} else { | |||
// TODO error | |||
} |
@@ -222,7 +222,8 @@ public class NewTicketPage extends RepositoryPage { | |||
if (ticket != null) { | |||
TicketNotifier notifier = app().tickets().createNotifier(); | |||
notifier.sendMailing(ticket); | |||
setResponsePage(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number)); | |||
redirect(TicketsPage.class, WicketUtils.newObjectParameter(getRepositoryModel().name, "" + ticket.number)); | |||
} else { | |||
// TODO error | |||
} |
@@ -280,12 +280,12 @@ public abstract class RootPage extends BasePage { | |||
PageParameters params = getPageParameters(); | |||
if (params == null) { | |||
// redirect to this page | |||
setResponsePage(getClass()); | |||
manualRedirect(getClass()); | |||
} else { | |||
// Strip username and password and redirect to this page | |||
params.remove("username"); | |||
params.remove("password"); | |||
setResponsePage(getClass(), params); | |||
redirect(getClass(), params); | |||
} | |||
} | |||
} |