diff --git a/goobi-viewer-core/src/main/java/io/goobi/viewer/api/rest/v1/monitoring/MonitoringResource.java b/goobi-viewer-core/src/main/java/io/goobi/viewer/api/rest/v1/monitoring/MonitoringResource.java index 393bed47e16..a11d8cd8f25 100644 --- a/goobi-viewer-core/src/main/java/io/goobi/viewer/api/rest/v1/monitoring/MonitoringResource.java +++ b/goobi-viewer-core/src/main/java/io/goobi/viewer/api/rest/v1/monitoring/MonitoringResource.java @@ -25,16 +25,6 @@ import java.util.HashMap; import java.util.Map; -import jakarta.inject.Inject; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.container.ContainerRequestContext; -import jakarta.ws.rs.core.Context; -import jakarta.ws.rs.core.MediaType; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -48,13 +38,20 @@ import io.goobi.viewer.api.rest.v1.ApiUrls; import io.goobi.viewer.controller.DataManager; import io.goobi.viewer.controller.JsonTools; -import io.goobi.viewer.controller.NetTools; import io.goobi.viewer.controller.mq.MessageQueueManager; import io.goobi.viewer.exceptions.DAOException; -import io.goobi.viewer.exceptions.HTTPException; import io.goobi.viewer.modules.IModule; import io.goobi.viewer.solr.SolrTools; import io.swagger.v3.oas.annotations.Operation; +import jakarta.inject.Inject; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.MediaType; @Path(ApiUrls.MONITORING) public class MonitoringResource { @@ -103,15 +100,6 @@ public MonitoringStatus checkServices() { logger.warn("DB monitoring check failed."); } - // Check image delivery - try { - NetTools.getWebContentGET( - DataManager.getInstance().getConfiguration().getRestApiUrl() + "records/-/files/footer/-/full/100,/0/default.jpg"); - } catch (HTTPException | IOException e) { - ret.getMonitoring().put(MonitoringStatus.KEY_IMAGES, MonitoringStatus.STATUS_ERROR); - logger.warn("Image delivery monitoring check failed."); - } - // Check message queue status if (messageBroker != null) { if (DataManager.getInstance().getConfiguration().isStartInternalMessageBroker()) { diff --git a/goobi-viewer-core/src/main/java/io/goobi/viewer/model/iiif/presentation/v3/builder/AbstractBuilder.java b/goobi-viewer-core/src/main/java/io/goobi/viewer/model/iiif/presentation/v3/builder/AbstractBuilder.java index 110c02e4445..704e41ad18a 100644 --- a/goobi-viewer-core/src/main/java/io/goobi/viewer/model/iiif/presentation/v3/builder/AbstractBuilder.java +++ b/goobi-viewer-core/src/main/java/io/goobi/viewer/model/iiif/presentation/v3/builder/AbstractBuilder.java @@ -40,8 +40,10 @@ import static io.goobi.viewer.api.rest.v2.ApiUrls.RECORDS_SECTIONS; import static io.goobi.viewer.api.rest.v2.ApiUrls.RECORDS_SECTIONS_RANGE; +import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; +import java.net.URLEncoder; import java.nio.file.Paths; import java.util.List; import java.util.Locale; @@ -52,8 +54,6 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; -import jakarta.ws.rs.core.UriBuilder; - import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -100,6 +100,7 @@ import io.goobi.viewer.model.viewer.StructElement; import io.goobi.viewer.solr.SolrConstants; import io.goobi.viewer.solr.SolrTools; +import jakarta.ws.rs.core.UriBuilder; /** *
@@ -867,4 +868,13 @@ private Optional
@@ -457,14 +456,16 @@ private void addRelatedResources(AbstractPresentationModelElement3 manifest, Str
}
if (DataManager.getInstance().getConfiguration().isVisibleIIIFRenderingPDF()) {
- URI uri = urls.path(RECORDS_FILES_IMAGE, RECORDS_FILES_IMAGE_PDF).params(ele.getPi(), page.getFileName()).buildURI();
+ URI uri = urls.path(RECORDS_FILES_IMAGE, RECORDS_FILES_IMAGE_PDF).params(ele.getPi(), escapeURI(page.getFileName())).buildURI();
LinkingProperty pdf =
new LinkingProperty(LinkingTarget.PDF, createLabel(DataManager.getInstance().getConfiguration().getLabelIIIFRenderingPDF()));
manifest.addRendering(pdf.getResource(uri));
}
if (DataManager.getInstance().getConfiguration().isVisibleIIIFRenderingAlto() && page.isAltoAvailable()) {
- URI uri = urls.path(RECORDS_FILES, RECORDS_FILES_ALTO).params(ele.getPi(), Path.of(page.getAltoFileName()).getFileName()).buildURI();
+ URI uri = urls.path(RECORDS_FILES, RECORDS_FILES_ALTO)
+ .params(ele.getPi(), Path.of(escapeURI(page.getAltoFileName())).getFileName())
+ .buildURI();
LinkingProperty alto =
new LinkingProperty(LinkingTarget.ALTO, createLabel(DataManager.getInstance().getConfiguration().getLabelIIIFRenderingAlto()));
manifest.addSeeAlso(alto.getResource(uri));
@@ -472,7 +473,8 @@ private void addRelatedResources(AbstractPresentationModelElement3 manifest, Str
if (DataManager.getInstance().getConfiguration().isVisibleIIIFRenderingPlaintext() && page.isFulltextAvailable()) {
URI uri = urls.path(RECORDS_FILES, RECORDS_FILES_PLAINTEXT)
- .params(ele.getPi(), Path.of(Optional.ofNullable(page.getFulltextFileName()).orElse(page.getAltoFileName())).getFileName())
+ .params(ele.getPi(),
+ Path.of(Optional.ofNullable(page.getFulltextFileName()).orElse(escapeURI(page.getAltoFileName()))).getFileName())
.buildURI();
LinkingProperty text = new LinkingProperty(LinkingTarget.PLAINTEXT,
createLabel(DataManager.getInstance().getConfiguration().getLabelIIIFRenderingPlaintext()));
diff --git a/goobi-viewer-core/src/main/resources/META-INF/resources/resources/includes/object/image.xhtml b/goobi-viewer-core/src/main/resources/META-INF/resources/resources/includes/object/image.xhtml
index 7f6828c9ecc..7eba32b0bc6 100644
--- a/goobi-viewer-core/src/main/resources/META-INF/resources/resources/includes/object/image.xhtml
+++ b/goobi-viewer-core/src/main/resources/META-INF/resources/resources/includes/object/image.xhtml
@@ -294,7 +294,6 @@
.subscribe(imageId => {
const pageOrder = imageIdToOrderMap.get(imageId);
if(pageOrder != undefined) {
- console.log("onCurrentImageChange", imageId, pageOrder)
setCurrentImageOrder({"order": pageOrder});
}
});
@@ -302,7 +301,6 @@
//js updates
viewImage.sequence.onCurrentImageChange.subscribe (imageId => {
const pageNo = imageIdToOrderMap.get(imageId);
- console.log("onCurrentImageChange2", imageId, pageNo)
if(pageNo != undefined) {
setBrowserLocation(pageNo);
@@ -313,7 +311,6 @@
changeImageOrder.subscribe(pageNo => {
if(pageNo != undefined ) {
const id = sources.iiif.getId(imageSources[Number(pageNo)]);
- console.log("changeImageOrder", pageNo, id);
if(id != undefined) {
viewImage.sequence.setCurrentImage(id, true);
}
diff --git a/goobi-viewer-core/src/main/resources/META-INF/resources/resources/javascript/dev/modules/viewer/viewerJS.normdata.js b/goobi-viewer-core/src/main/resources/META-INF/resources/resources/javascript/dev/modules/viewer/viewerJS.normdata.js
index 7e29233608a..4cf75513525 100644
--- a/goobi-viewer-core/src/main/resources/META-INF/resources/resources/javascript/dev/modules/viewer/viewerJS.normdata.js
+++ b/goobi-viewer-core/src/main/resources/META-INF/resources/resources/javascript/dev/modules/viewer/viewerJS.normdata.js
@@ -90,7 +90,7 @@ var viewerJS = ( function( viewer ) {
// first level click
- $( _defaults.linkSelector ).on( 'click', function(event) {
+ $("body").on( 'click', _defaults.linkSelector, function(event) {
_$this = $( this );
_$this.off( 'focus' );
diff --git a/goobi-viewer-core/src/main/resources/META-INF/resources/resources/javascript/dist/viewer.min.js b/goobi-viewer-core/src/main/resources/META-INF/resources/resources/javascript/dist/viewer.min.js
index 022162902d0..3a729d9085a 100644
--- a/goobi-viewer-core/src/main/resources/META-INF/resources/resources/javascript/dist/viewer.min.js
+++ b/goobi-viewer-core/src/main/resources/META-INF/resources/resources/javascript/dist/viewer.min.js
@@ -7251,7 +7251,7 @@ var viewerJS = ( function( viewer ) {
// first level click
- $( _defaults.linkSelector ).on( 'click', function(event) {
+ $("body").on( 'click', _defaults.linkSelector, function(event) {
_$this = $( this );
_$this.off( 'focus' );
diff --git a/goobi-viewer-core/src/main/resources/META-INF/resources/viewObject.xhtml b/goobi-viewer-core/src/main/resources/META-INF/resources/viewObject.xhtml
index 470b2e68073..8b357afa460 100644
--- a/goobi-viewer-core/src/main/resources/META-INF/resources/viewObject.xhtml
+++ b/goobi-viewer-core/src/main/resources/META-INF/resources/viewObject.xhtml
@@ -160,7 +160,6 @@
-