Merge branch 'develop' into 1584-abstract-keywords
# Conflicts: # view/src/main/java/se/su/dsv/scipro/plagiarism/UrkundSubmissionPanel.java
This commit is contained in:
commit
a147c05ed4
core/src/main/java/se/su/dsv/scipro/finalseminar
view
pom.xml
src
@ -56,7 +56,10 @@ public class FinalSeminarUploadControllerImpl implements FinalSeminarUploadContr
|
||||
@Override
|
||||
@Transactional
|
||||
public SeminarDocumentUpload replaceSeminarDocument(final FinalSeminar finalSeminar, final FileUpload fileUpload) {
|
||||
fileDescriptionService.delete(finalSeminar.getDocument());
|
||||
if (finalSeminar.getDocument() != null) {
|
||||
// if someone else deletes the document while it is being replaced
|
||||
fileDescriptionService.delete(finalSeminar.getDocument());
|
||||
}
|
||||
return storeAndSetSeminarDocument(finalSeminar, fileUpload);
|
||||
}
|
||||
|
||||
|
10
view/pom.xml
10
view/pom.xml
@ -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;
|
||||
@ -149,12 +150,13 @@ public class SciProApplication extends LifecycleManagedWebApplication {
|
||||
getCspSettings().blocking()
|
||||
// whitelist all css files coming from self
|
||||
.add(CSPDirective.STYLE_SRC, CSPDirectiveSrcValue.SELF)
|
||||
.add(CSPDirective.STYLE_SRC, "https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css")
|
||||
// script-src 'self' is ignored for CSP level 3 compliant browsers due to 'strict-dynamic'
|
||||
// but is used as a fallback for older browsers to allow loading of local javascripts
|
||||
.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() {
|
||||
|
@ -4,12 +4,12 @@
|
||||
<meta charset="UTF-8" />
|
||||
<title>SciPro Projects</title>
|
||||
<link rel="icon" href="favicon.ico"/>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="css/fa-all.min.css" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<wicket:header-items/>
|
||||
<wicket:remove>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="css/scipro_m.css" media="screen,projection" />
|
||||
<!-- leaving them here for autocomplete when writing javascript -->d
|
||||
<script src="js/scroll-sneak.js"></script>
|
||||
|
@ -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;
|
||||
@ -34,15 +35,13 @@ public abstract class BasePage extends WebPage implements IAjaxIndicatorAware {
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
|
||||
response.render(CssHeaderItem.forReference(new WebjarsJavaScriptResourceReference("bootstrap/current/css/bootstrap.min.css")));
|
||||
response.render(CssHeaderItem.forReference(new ContextRelativeResourceReference("css/scipro_m.css", false)));
|
||||
response.render(JavaScriptHeaderItem.forReference(getApplication().getJavaScriptLibrarySettings()
|
||||
.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
|
||||
|
@ -6,10 +6,6 @@ import org.apache.wicket.markup.html.link.ExternalLink;
|
||||
import org.apache.wicket.markup.html.link.Link;
|
||||
import org.apache.wicket.markup.html.panel.GenericPanel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.model.ResourceModel;
|
||||
import se.su.dsv.scipro.components.OppositeVisibility;
|
||||
import se.su.dsv.scipro.data.PolyModel;
|
||||
import se.su.dsv.scipro.file.FileDescription;
|
||||
import se.su.dsv.scipro.plagiarism.PlagiarismControl.Status;
|
||||
@ -58,7 +54,7 @@ public class UrkundSubmissionPanel extends GenericPanel<FileDescription> {
|
||||
final IModel<Status.Analysed> analysed = PolyModel.of(submission, Status.Analysed.class);
|
||||
final IModel<Status.Error> error = PolyModel.of(submission, Status.Error.class);
|
||||
|
||||
add(new Label("message", error.map(Status.Error::message)) {
|
||||
add(new Label("message", error.map(Status.Error::message).map(this::improveUrkundMessage)) {
|
||||
@Override
|
||||
protected void onConfigure() {
|
||||
super.onConfigure();
|
||||
@ -93,6 +89,14 @@ public class UrkundSubmissionPanel extends GenericPanel<FileDescription> {
|
||||
});
|
||||
}
|
||||
|
||||
private String improveUrkundMessage(String originalMessage) {
|
||||
return switch (originalMessage) {
|
||||
case "?wsRequestEntityIsTooLargeException" ->
|
||||
"The document is too large to send automatically. Please log in to URKUND and upload the document manually.";
|
||||
default -> originalMessage;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onConfigure() {
|
||||
super.onConfigure();
|
||||
|
@ -8,8 +8,8 @@
|
||||
<wicket:panel>
|
||||
<div class="row">
|
||||
<div class="col-10 col-md-9 col-xl-10">
|
||||
<h4><span wicket:id="title">[Title]</span> (<span wicket:id="projectType"></span><wicket:enclosure>, <span wicket:id="credits">30</span> hp
|
||||
</wicket:enclosure>)
|
||||
<h4><span wicket:id="title">[Title]</span> (<span wicket:id="projectType"></span><wicket:enclosure>,
|
||||
<span wicket:id="credits">30</span> hec</wicket:enclosure>)
|
||||
</h4>
|
||||
</div>
|
||||
<div class="col-2 col-md-3 col-xl-2">
|
||||
|
@ -10,5 +10,6 @@
|
||||
<Logger name="org.apache.wicket.Application" level="warn"/>
|
||||
<Logger name="org.apache.wicket.RequestListenerInterface" level="warn"/>
|
||||
<Logger name="org.apache.wicket.resource.PropertiesFactory" level="warn"/>
|
||||
<Logger name="wicket-webjars" level="warn"/>
|
||||
</Loggers>
|
||||
</Configuration>
|
||||
|
Loading…
x
Reference in New Issue
Block a user