3221 Self-host Bootstrap JS

Using Webjars to make it easier to keep track of versioning.
This commit is contained in:
Andreas Svanberg 2023-10-17 10:39:51 +02:00
parent bfe9025dd2
commit 3ca4e99e99
3 changed files with 15 additions and 4 deletions
view
pom.xml
src/main/java/se/su/dsv/scipro

@ -66,6 +66,16 @@
<artifactId>openpdf</artifactId>
<version>1.3.30</version>
</dependency>
<dependency>
<groupId>de.agilecoders.wicket.webjars</groupId>
<artifactId>wicket-webjars</artifactId>
<version>3.0.7</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>5.1.3</version>
</dependency>
<!-- Servlet API, needed for compilation. -->
<dependency>

@ -1,5 +1,6 @@
package se.su.dsv.scipro;
import de.agilecoders.wicket.webjars.WicketWebjars;
import org.apache.wicket.*;
import org.apache.wicket.authorization.strategies.CompoundAuthorizationStrategy;
import org.apache.wicket.csp.CSPDirective;
@ -155,6 +156,8 @@ public class SciProApplication extends LifecycleManagedWebApplication {
.add(CSPDirective.SCRIPT_SRC, CSPDirectiveSrcValue.SELF)
// allow images to be defined inline using data: (used by bootstrap menu toggler (hamburger))
.add(CSPDirective.IMG_SRC, "data:");
WicketWebjars.install(this);
}
private void mountForumPage() {

@ -1,5 +1,6 @@
package se.su.dsv.scipro.basepages;
import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
import org.apache.wicket.ajax.IAjaxIndicatorAware;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
@ -39,10 +40,7 @@ public abstract class BasePage extends WebPage implements IAjaxIndicatorAware {
.getJQueryReference()));
response.render(JavaScriptHeaderItem.forReference(new ContextRelativeResourceReference("js/scroll-sneak.js", false)));
response.render(JavaScriptHeaderItem.forReference(new ContextRelativeResourceReference("js/scipro.js", false)));
final JavaScriptUrlReferenceHeaderItem bootstrap = JavaScriptHeaderItem.forUrl("https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js");
bootstrap.setIntegrity("sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p");
bootstrap.setCrossOrigin(CrossOrigin.ANONYMOUS);
response.render(bootstrap);
response.render(JavaScriptHeaderItem.forReference(new WebjarsJavaScriptResourceReference("bootstrap/current/js/bootstrap.bundle.min.js")));
}
@Override