Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java =================================================================== diff -u -rd91247d69fe0a8fe3fe1750a0de83d5010fc6ad0 -r4e1b8dc9d2b7895783a8d17465d080e342ad2247 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java (.../ResourceConstants.java) (revision d91247d69fe0a8fe3fe1750a0de83d5010fc6ad0) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java (.../ResourceConstants.java) (revision 4e1b8dc9d2b7895783a8d17465d080e342ad2247) @@ -79,6 +79,10 @@ public static final String ATTR_RESOURCE_REVIEW_URL = "resourceItemReviewUrl"; public static final String ATTR_IS_DOWNLOAD = "isDownload"; + + public static final String ATTR_IS_DISPLAYABLE_IMAGE = "isDisplayableImage"; + + public static final String ATTR_IS_DISPLAYABLE_EMBED = "isDisplayableEmbed"; public static final String ATTR_RESOURCE = "resource"; Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/ViewItemController.java =================================================================== diff -u -rd91247d69fe0a8fe3fe1750a0de83d5010fc6ad0 -r4e1b8dc9d2b7895783a8d17465d080e342ad2247 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/ViewItemController.java (.../ViewItemController.java) (revision d91247d69fe0a8fe3fe1750a0de83d5010fc6ad0) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/controller/ViewItemController.java (.../ViewItemController.java) (revision 4e1b8dc9d2b7895783a8d17465d080e342ad2247) @@ -56,6 +56,9 @@ @Autowired private IResourceService resourceService; + private static final Set DISPLAYABLE_IMAGE_EXTENSIONS = Set.of(".jpg", ".jpeg", ".png", ".gif", ".bmp"); + private static final Set DISPLAYABLE_EMBED_EXTENSIONS = Set.of(".pdf"); + /** * Display main frame to display item content in monitoring */ @@ -131,10 +134,21 @@ return "error"; } + boolean isDownload = item.getType() == ResourceConstants.RESOURCE_TYPE_FILE; + request.setAttribute(ResourceConstants.ATTR_IS_DOWNLOAD, isDownload); + String lowercaseFileName = isDownload && StringUtils.isNotBlank(item.getFileName()) + ? item.getFileName().toLowerCase() + : null; + boolean isDisplayableImage = lowercaseFileName != null + && DISPLAYABLE_IMAGE_EXTENSIONS.stream().anyMatch(ext -> lowercaseFileName.endsWith(ext)); + request.setAttribute(ResourceConstants.ATTR_IS_DISPLAYABLE_IMAGE, isDisplayableImage); + boolean isDisplayableEmbed = lowercaseFileName != null + && DISPLAYABLE_EMBED_EXTENSIONS.stream().anyMatch(ext -> lowercaseFileName.endsWith(ext)); + request.setAttribute(ResourceConstants.ATTR_IS_DISPLAYABLE_EMBED, isDisplayableEmbed); + String reviewUrl = getReviewUrl(item, sessionMapID); request.setAttribute(ResourceConstants.ATTR_RESOURCE_REVIEW_URL, reviewUrl); - request.setAttribute(ResourceConstants.ATTR_IS_DOWNLOAD, - item.getType() == ResourceConstants.RESOURCE_TYPE_FILE); + request.setAttribute(ResourceConstants.ATTR_RESOURCE_INSTRUCTION, item.getInstructions()); request.setAttribute(ResourceConstants.ATTR_ALLOW_COMMENTS, item.isAllowComments()); request.setAttribute(ResourceConstants.ATTR_ALLOW_RATING, item.isAllowRating()); @@ -228,7 +242,7 @@ } break; case ResourceConstants.RESOURCE_TYPE_FILE: - url = "/download/?uuid=" + item.getFileUuid() + "&preferDownload=true"; + url = "/download/?uuid=" + item.getFileUuid(); break; } return url; Index: lams_tool_larsrc/web/pages/itemreview/itemContent.jsp =================================================================== diff -u -re14fec2fc48a58cfcabe375deb903a3cecfabe3f -r4e1b8dc9d2b7895783a8d17465d080e342ad2247 --- lams_tool_larsrc/web/pages/itemreview/itemContent.jsp (.../itemContent.jsp) (revision e14fec2fc48a58cfcabe375deb903a3cecfabe3f) +++ lams_tool_larsrc/web/pages/itemreview/itemContent.jsp (.../itemContent.jsp) (revision 4e1b8dc9d2b7895783a8d17465d080e342ad2247) @@ -70,7 +70,7 @@