Fix regression in BasePage due to changes in page construction for bottom script injection
diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.java b/src/main/java/com/gitblit/wicket/pages/BasePage.java
index fbe5861..0d99f5e 100644
--- a/src/main/java/com/gitblit/wicket/pages/BasePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BasePage.java
@@ -35,7 +35,6 @@
 

 import org.apache.commons.io.IOUtils;

 import org.apache.wicket.Application;

-import org.apache.wicket.Component;

 import org.apache.wicket.Page;

 import org.apache.wicket.PageParameters;

 import org.apache.wicket.RedirectToUrlException;

@@ -78,13 +77,11 @@
 

 	public BasePage() {

 		super();

-		add(new RepeatingView("bottomScripts").setRenderBodyOnly(true));

 		customizeHeader();

 	}

 

 	public BasePage(PageParameters params) {

 		super(params);

-		add(new RepeatingView("bottomScripts").setRenderBodyOnly(true));

 		customizeHeader();

 	}

 

@@ -247,7 +244,7 @@
 

 	protected void setupPage(String repositoryName, String pageName) {

 		add(new Label("title", getPageTitle(repositoryName)));

-

+		getBottomScriptContainer();

 		String rootLinkUrl = app().settings().getString(Keys.web.rootLink, urlFor(GitBlitWebApp.get().getHomePage(), null).toString());

 		ExternalLink rootLink = new ExternalLink("rootLink", rootLinkUrl);

 		WicketUtils.setHtmlTooltip(rootLink, app().settings().getString(Keys.web.siteName, Constants.NAME));

@@ -511,6 +508,16 @@
 		return sb.toString();

 	}

 

+	private RepeatingView getBottomScriptContainer() {

+		RepeatingView bottomScriptContainer = (RepeatingView) get("bottomScripts");

+		if (bottomScriptContainer == null) {

+			bottomScriptContainer = new RepeatingView("bottomScripts");

+			bottomScriptContainer.setRenderBodyOnly(true);

+			add(bottomScriptContainer);

+		}

+		return bottomScriptContainer;

+	}

+

 	/**

 	 * Adds a HTML script element loading the javascript designated by the given path.

 	 *

@@ -518,14 +525,10 @@
 	 *            page-relative path to the Javascript resource; normally starts with "scripts/"

 	 */

 	protected void addBottomScript(String scriptPath) {

-		Component bottomScriptContainer = get("bottomScripts");

-		if (bottomScriptContainer instanceof RepeatingView) {

-			// Always true.

-			RepeatingView bottomScripts = (RepeatingView) bottomScriptContainer;

-			Label script = new Label(bottomScripts.newChildId(), "<script type='text/javascript' src='"

-					+ urlFor(new JavascriptResourceReference(this.getClass(), scriptPath)) + "'></script>\n");

-			bottomScripts.add(script.setEscapeModelStrings(false).setRenderBodyOnly(true));

-		}

+		RepeatingView bottomScripts = getBottomScriptContainer();

+		Label script = new Label(bottomScripts.newChildId(), "<script type='text/javascript' src='"

+				+ urlFor(new JavascriptResourceReference(this.getClass(), scriptPath)) + "'></script>\n");

+		bottomScripts.add(script.setEscapeModelStrings(false).setRenderBodyOnly(true));

 	}

 

 	/**

@@ -535,14 +538,10 @@
 	 *            inline script code

 	 */

 	protected void addBottomScriptInline(String code) {

-		Component bottomScriptContainer = get("bottomScripts");

-		if (bottomScriptContainer instanceof RepeatingView) {

-			// Always true.

-			RepeatingView bottomScripts = (RepeatingView) bottomScriptContainer;

-			Label script = new Label(bottomScripts.newChildId(),

-					"<script type='text/javascript'>/*<![CDATA[*/\n" + code + "\n//]]>\n</script>\n");

-			bottomScripts.add(script.setEscapeModelStrings(false).setRenderBodyOnly(true));

-		}

+		RepeatingView bottomScripts = getBottomScriptContainer();

+		Label script = new Label(bottomScripts.newChildId(),

+				"<script type='text/javascript'>/*<![CDATA[*/\n" + code + "\n//]]>\n</script>\n");

+		bottomScripts.add(script.setEscapeModelStrings(false).setRenderBodyOnly(true));

 	}

 

 }