From 8001301d2014f80304b72bc91bf02df7dcdc15d5 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Fri, 20 Aug 2021 16:22:56 -0700 Subject: [PATCH 001/138] [VSPC-172] Description pop up for spacelink, modulelink and externallink --- .../vspace/core/services/ILinkManager.java | 4 +- .../core/services/impl/LinkManager.java | 6 +- .../web/staff/AddExternalLinkController.java | 5 +- .../web/staff/AddModuleLinkController.java | 4 +- .../web/staff/AddSpaceLinkController.java | 7 +- .../web/staff/EditExternalLinkController.java | 5 +- .../web/staff/EditModuleLinkController.java | 5 +- .../web/staff/EditSpaceLinkController.java | 5 +- .../WEB-INF/views/staff/spaces/space.html | 147 +++++++++++++----- 9 files changed, 130 insertions(+), 58 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/ILinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/ILinkManager.java index fa579545c..49155f7b0 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/ILinkManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/ILinkManager.java @@ -13,11 +13,11 @@ public interface ILinkManager,T extends IVSpaceElement, U extends ILinkDisplay> { U createLink(String title, String id, float positionX, float positionY, - int rotation, String linkedId, String linkLabel, DisplayType displayType, byte[] linkImage, + int rotation, String linkedId, String linkLabel, String linkDesc, DisplayType displayType, byte[] linkImage, String imageFilename) throws SpaceDoesNotExistException,ImageCouldNotBeStoredException, SpaceDoesNotExistException; U updateLink(String title, String id, float positionX, float positionY, - int rotation, String linkedId, String linkLabel, String linkId, String linkDisplayId, + int rotation, String linkedId, String linkLabel, String linkDesc, String linkId, String linkDisplayId, DisplayType displayType, byte[] linkImage, String imageFilename) throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException; List getLinkDisplays(String spaceId); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java index 15ceb54cb..d8ba53ab9 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java @@ -38,12 +38,13 @@ public abstract class LinkManager,T extends IVSpaceElement, U @Override public U createLink(String title, String id, float positionX, float positionY, - int rotation, String linkedId, String linkLabel, DisplayType displayType, byte[] linkImage, + int rotation, String linkedId, String linkLabel, String linkDesc, DisplayType displayType, byte[] linkImage, String imageFilename) throws SpaceDoesNotExistException,ImageCouldNotBeStoredException, SpaceDoesNotExistException{ L link = createLinkObject(title, id); T target = getTarget(linkedId); link.setName(linkLabel); + link.setDescription(linkDesc); link.setTarget(target); U displayLink = createDisplayLink(link); setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename); @@ -53,7 +54,7 @@ public U createLink(String title, String id, float positionX, float positionY, @Override public U updateLink(String title, String id, float positionX, float positionY, - int rotation, String linkedId, String linkLabel, String linkId, String linkDisplayId, + int rotation, String linkedId, String linkLabel, String linkDesc, String linkId, String linkDisplayId, DisplayType displayType, byte[] linkImage, String imageFilename) throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException{ validateSpace(id); @@ -61,6 +62,7 @@ public U updateLink(String title, String id, float positionX, float positionY, L link = getLink(linkId); T target = getTarget(linkedId); link.setName(title); + link.setDescription(linkDesc); link.setTarget(target); U displayLink = getDisplayLink(linkDisplayId); setDisplayProperties(displayLink, id, positionX,positionY,rotation, displayType, linkImage, imageFilename); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddExternalLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddExternalLinkController.java index 9a955fbd1..29adf2492 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddExternalLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddExternalLinkController.java @@ -34,7 +34,8 @@ public class AddExternalLinkController { @RequestMapping(value = "/staff/space/{id}/externallink", method = RequestMethod.POST) public ResponseEntity createExternalLink(@PathVariable("id") String id, @RequestParam("x") String x, - @RequestParam("y") String y, @RequestParam("externalLinkLabel") String title, @RequestParam("url") String externalLink, + @RequestParam("y") String y, @RequestParam("externalLinkLabel") String title, @RequestParam("externalLinkDesc") String desc, + @RequestParam("url") String externalLink, @RequestParam("type") String displayType, @RequestParam("externalLinkImage") MultipartFile file) throws NumberFormatException, SpaceDoesNotExistException, IOException, ImageCouldNotBeStoredException { @@ -50,7 +51,7 @@ public ResponseEntity createExternalLink(@PathVariable("id") String id, filename = file.getOriginalFilename(); } DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); - IExternalLinkDisplay display = externalLinkManager.createLink(title, id, new Float(x), new Float(y), 0, externalLink, title, type, linkImage, filename); + IExternalLinkDisplay display = externalLinkManager.createLink(title, id, new Float(x), new Float(y), 0, externalLink, title, desc, type, linkImage, filename); ObjectMapper mapper = new ObjectMapper(); ObjectNode linkNode = mapper.createObjectNode(); linkNode.put("id", display.getExternalLink().getId()); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java index 5fcf88ac8..1ad52f7bd 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java @@ -36,7 +36,7 @@ public class AddModuleLinkController { public ResponseEntity createModuleLink(@PathVariable("id") String id, @RequestParam("x") String x, @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("moduleLinkLabel") String title, @RequestParam("linkedModule") String linkedModuleId, @RequestParam("moduleLinkLabel") String moduleLinkLabel, - @RequestParam("type") String displayType) + @RequestParam("moduleLinkDesc") String moduleLinkDesc, @RequestParam("type") String displayType) throws NumberFormatException, SpaceDoesNotExistException, IOException, ImageCouldNotBeStoredException { ISpace source = spaceManager.getSpace(id); @@ -55,7 +55,7 @@ public ResponseEntity createModuleLink(@PathVariable("id") String id, @R IModuleLinkDisplay display; try { display = moduleLinkManager.createLink(title, id, new Float(x), new Float(y), - new Integer(rotation), linkedModuleId, moduleLinkLabel, type, null, null); + new Integer(rotation), linkedModuleId, moduleLinkLabel, moduleLinkDesc, type, null, null); } catch (SpaceDoesNotExistException e) { ObjectMapper mapper = new ObjectMapper(); ObjectNode node = mapper.createObjectNode(); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceLinkController.java index 65fd11ad7..8247f46f6 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceLinkController.java @@ -37,8 +37,9 @@ public class AddSpaceLinkController { public ResponseEntity createSpaceLink(@PathVariable("id") String id, @RequestParam("x") String x, @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("spaceLinkLabel") String title, @RequestParam("linkedSpace") String linkedSpaceId, @RequestParam("spaceLinkLabel") String spaceLinkLabel, - @RequestParam("type") String displayType, @RequestParam("spaceLinkImage") MultipartFile file) - throws NumberFormatException, SpaceDoesNotExistException, IOException { + @RequestParam("spaceLinkDesc") String spaceLinkDesc, @RequestParam("type") String displayType, + @RequestParam("spaceLinkImage") MultipartFile file) + throws NumberFormatException, SpaceDoesNotExistException, IOException { ISpace source = spaceManager.getSpace(id); if (source == null) { @@ -63,7 +64,7 @@ public ResponseEntity createSpaceLink(@PathVariable("id") String id, @Re ISpaceLinkDisplay display; try { display = spaceLinkManager.createLink(title, id, new Float(x), new Float(y), - new Integer(rotation), linkedSpaceId, spaceLinkLabel, type, linkImage, filename); + new Integer(rotation), linkedSpaceId, spaceLinkLabel, spaceLinkDesc, type, linkImage, filename); } catch (ImageCouldNotBeStoredException e) { ObjectMapper mapper = new ObjectMapper(); ObjectNode node = mapper.createObjectNode(); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditExternalLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditExternalLinkController.java index 9a68d40ce..775a7f899 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditExternalLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditExternalLinkController.java @@ -30,7 +30,8 @@ public class EditExternalLinkController extends EditSpaceLinksController{ @RequestMapping(value = "/staff/space/link/external/{id}", method = RequestMethod.POST) public ResponseEntity createExternalLink(@PathVariable("id") String id, @RequestParam("x") String x, - @RequestParam("y") String y, @RequestParam("externalLinkLabel") String title, @RequestParam("url") String externalLink, + @RequestParam("y") String y, @RequestParam("externalLinkLabel") String title, @RequestParam("externalLinkDesc") String desc, + @RequestParam("url") String externalLink, @RequestParam("externalLinkIdValueEdit") String externalLinkIdValueEdit, @RequestParam("externalLinkDisplayId") String externalLinkDisplayId, @RequestParam("type") String displayType, @RequestParam("externalLinkImage") MultipartFile file) throws SpaceDoesNotExistException, IOException, LinkDoesNotExistsException, NumberFormatException, ImageCouldNotBeStoredException { @@ -46,7 +47,7 @@ public ResponseEntity createExternalLink(@PathVariable("id") String id, filename = file.getOriginalFilename(); } DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); - IExternalLinkDisplay display = (IExternalLinkDisplay) externalLinkManager.updateLink(title, id, new Float(x), new Float(y), 0, externalLink, title, externalLinkIdValueEdit, externalLinkDisplayId, type, linkImage, filename); + IExternalLinkDisplay display = (IExternalLinkDisplay) externalLinkManager.updateLink(title, id, new Float(x), new Float(y), 0, externalLink, title, desc, externalLinkIdValueEdit, externalLinkDisplayId, type, linkImage, filename); return success(display.getExternalLink().getId(), display.getId(), display.getPositionX(), display.getPositionY(), display.getRotation(), display.getExternalLink().getExternalLink(), title,displayType,null,null); } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java index cf9b31a27..6f761896a 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java @@ -30,7 +30,8 @@ public class EditModuleLinkController extends EditSpaceLinksController{ @RequestMapping(value = "/staff/space/link/module/{id}", method = RequestMethod.POST) public ResponseEntity editModuleLink(@PathVariable("id") String id, @RequestParam("x") String x, @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("moduleLinkLabel") String title, - @RequestParam("linkedModule") String linkedModuleId, @RequestParam("moduleLinkLabel") String moduleLinkLabel, + @RequestParam("linkedModule") String linkedModuleId, @RequestParam("moduleLinkLabel") String moduleLinkLabel, + @RequestParam("moduleLinkDesc") String moduleLinkDesc, @RequestParam("moduleLinkIdValueEdit") String moduleLinkIdValueEdit, @RequestParam("moduleLinkDisplayId") String moduleLinkDisplayId, @RequestParam("type") String displayType) throws NumberFormatException, SpaceDoesNotExistException, LinkDoesNotExistsException, IOException, ImageCouldNotBeStoredException { @@ -41,7 +42,7 @@ public ResponseEntity editModuleLink(@PathVariable("id") String id, @Req } DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); IModuleLinkDisplay display = (IModuleLinkDisplay) moduleLinkManager.updateLink(title, id, new Float(x), new Float(y), - new Integer(rotation), linkedModuleId, moduleLinkLabel, moduleLinkIdValueEdit, moduleLinkDisplayId, type, null, null); + new Integer(rotation), linkedModuleId, moduleLinkLabel, moduleLinkDesc, moduleLinkIdValueEdit, moduleLinkDisplayId, type, null, null); return success(display.getLink().getId(), display.getId(), display.getPositionX(), display.getPositionY(), display.getRotation(),null,title,displayType,linkedModuleId,null); } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceLinkController.java index 76007a1af..8d7c4409f 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceLinkController.java @@ -33,7 +33,8 @@ public class EditSpaceLinkController extends EditSpaceLinksController{ public ResponseEntity editSpaceLink(@PathVariable("id") String id, @RequestParam("x") String x, @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("spaceLinkLabel") String title, @RequestParam("linkedSpace") String linkedSpaceId, @RequestParam("spaceLinkLabel") String spaceLinkLabel, - @RequestParam("spaceLinkIdValueEdit") String spaceLinkIdValueEdit, @RequestParam("spaceLinkDisplayId") String spaceLinkDisplayId, + @RequestParam("spaceLinkDesc") String spaceLinkDesc, @RequestParam("spaceLinkIdValueEdit") String spaceLinkIdValueEdit, + @RequestParam("spaceLinkDisplayId") String spaceLinkDisplayId, @RequestParam("type") String displayType, @RequestParam("spaceLinkImage") MultipartFile file) throws NumberFormatException, SpaceDoesNotExistException, LinkDoesNotExistsException, IOException, ImageCouldNotBeStoredException { @@ -50,7 +51,7 @@ public ResponseEntity editSpaceLink(@PathVariable("id") String id, @Requ } DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); ISpaceLinkDisplay display = (ISpaceLinkDisplay) spaceLinkManager.updateLink(title, id, new Float(x), new Float(y), - new Integer(rotation), linkedSpaceId, spaceLinkLabel, spaceLinkIdValueEdit, spaceLinkDisplayId, type, linkImage, filename); + new Integer(rotation), linkedSpaceId, spaceLinkLabel, spaceLinkDesc, spaceLinkIdValueEdit, spaceLinkDisplayId, type, linkImage, filename); SpaceStatus targetSpaceStatus=spaceManager.getSpace(linkedSpaceId).getSpaceStatus(); String linkedSpaceStatus = targetSpaceStatus!=null ? targetSpaceStatus.toString() : null; return success(display.getLink().getId(), display.getId(), display.getPositionX(), display.getPositionY(), display.getRotation(), null, title,displayType,linkedSpaceId, linkedSpaceStatus); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 5e3a5f19c..193c49035 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -97,7 +97,7 @@ spaceLink = $(''); } else{ - spaceLink = $('

'+link.link.name+'

'); + spaceLink = $('

'+link.link.description+'

'); } setLinkPosition(spaceLink,link,true,isModal,false, posX, posY, posXModal, posYModal); $(divId).append(spaceLink); @@ -106,7 +106,7 @@ $('#'+spanId+link.link.id).css('cursor', 'pointer'); $('#'+spanId+link.link.id).click(function(e) { var linkData = $('#'+spanId+link.link.id).data(); - makeSpaceLinksEditable(linkData["linklabel"], link.link.id, linkData["linkrotation"] ,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"]); + makeSpaceLinksEditable(linkData["linklabel"], link.link.description, link.link.id, linkData["linkrotation"] ,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"]); }); } } @@ -123,7 +123,7 @@ moduleLink = $(''); } else{ - moduleLink = $('

'+link.link.name+'

'); + moduleLink = $('

'+link.link.description+'

'); } setLinkPosition(moduleLink,link,false,isModal,false, posX, posY, posXModal, posYModal); $(divId).append(moduleLink); @@ -131,7 +131,7 @@ $('#'+spanId+link.link.id).css('cursor', 'pointer'); $('#'+spanId+link.link.id).click(function(e) { var linkData = $('#'+spanId+link.link.id).data(); - makeModuleLinksEditable(linkData["linklabel"], link.link.id,linkData["linkrotation"],linkData["linktarget"],link.positionX,link.positionY,link.id, linkData["linktype"]); + makeModuleLinksEditable(linkData["linklabel"], link.link.description, link.link.id,linkData["linkrotation"],linkData["linktarget"],link.positionX,link.positionY,link.id, linkData["linktype"]); }); } } @@ -144,7 +144,7 @@ var imageURL = [[@{/api/image/}]]+link.image.id; externalLink = $(''); }else{ - externalLink = $('

'+link.externalLink.name+'

'); + externalLink = $('

'+link.externalLink.description+'

'); } setLinkPosition(externalLink,link,false,isModal,true, posX, posY, posXModal, posYModal); $(divId).append(externalLink); @@ -152,7 +152,7 @@ $('#'+spanId+link.externalLink.id).css('cursor', 'pointer'); $('#'+spanId+link.externalLink.id).click(function(e) { var linkData = $('#'+spanId+link.externalLink.id).data(); - makeExternalLinksEditable(linkData["linklabel"],link.externalLink.id,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"]); + makeExternalLinksEditable(linkData["linklabel"],link.externalLink.description, link.externalLink.id,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"]); }); } } @@ -225,12 +225,12 @@ //--------- show links functions -------------- function showSpaceLink(spaceLink, show, x, y) { - $("#space_label").remove(); + $("#space_desc").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; - var space_label = $("

"); - space_label.text(spaceLink["spaceLinkLabel"]); + var space_desc = $("

"); + space_desc.text(spaceLink["spaceLinkDesc"]); var link; if (spaceLink["type"] == "ALERT") { @@ -238,7 +238,7 @@ } else if(spaceLink["type"] == "IMAGE" && linkIcon) { link = $(''); } else { - $(space_label).css({ + $(space_desc).css({ 'font-size': "12px", 'transform': 'rotate(0deg)', 'color': 'grey' @@ -270,35 +270,35 @@ link.css('cursor', 'pointer'); link.css('color', 'rgba(128,128,128,1)'); link.click(function(e) { - makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); + makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["spaceLinkDesc"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); }); - space_label.attr("data-link-id", spaceLink["id"]); - space_label.attr("class", "tooltiptext label-"+spaceLink["id"]); - space_label.css('cursor', 'pointer'); - space_label.click(function(e) { - makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); + space_desc.attr("data-link-id", spaceLink["id"]); + space_desc.attr("class", "tooltiptext label-"+spaceLink["id"]); + space_desc.css('cursor', 'pointer'); + space_desc.click(function(e) { + makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["spaceLinkDesc"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); }); } $("#space").append(link); $("#space").append(unpublishedSpaceElement); - $("#link").append(space_label); + $("#link").append(space_desc); } function showModuleLink(moduleLink, show, x, y) { - $("#module_label").remove(); + $("#module_desc").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; - var module_label = $("

"); - module_label.text(moduleLink["moduleLinkLabel"]); + var module_desc = $("

"); + module_desc.text(moduleLink["moduleLinkDesc"]); var link; if (moduleLink["type"] == "ALERT") { link = $(''); }else{ - $(module_label).css({ + $(module_desc).css({ 'position': 'absolute', 'font-size': "10px", 'transform': 'rotate(0deg)', @@ -324,16 +324,16 @@ link.click(function(e) { makeModuleLinksEditable(moduleLink["moduleLinkLabel"], moduleLink["id"], moduleLink["rotation"], moduleLink["linkedModule"], moduleLink["x"], moduleLink["y"], moduleLink["displayId"], moduleLink["type"]); }); - module_label.attr("data-link-id", moduleLink["id"]); - module_label.css('cursor', 'pointer'); - module_label.attr("class", "tooltiptext label-"+moduleLink["id"]); - module_label.click(function(e) { + module_desc.attr("data-link-id", moduleLink["id"]); + module_desc.css('cursor', 'pointer'); + module_desc.attr("class", "tooltiptext label-"+moduleLink["id"]); + module_desc.click(function(e) { makeModuleLinksEditable(moduleLink["moduleLinkLabel"], moduleLink["id"], moduleLink["rotation"], moduleLink["linkedModule"], moduleLink["x"], moduleLink["y"], moduleLink["displayId"], moduleLink["type"]); }); } $("#space").append(link); - $("#link").append(module_label); + $("#link").append(module_desc); } function showModuleLinkEdit(moduleLink, show, posX, posY) { @@ -341,7 +341,7 @@ moduleLink["y"]=storeY; var selectedLinkClass = '#moduleModallinkId-'+selectedModuleLinkId; var selectedLabelClass = '.label-'+selectedModuleLinkId; - updateLinkProperties(selectedLinkClass,selectedLabelClass,moduleLink["rotation"],posX,posY,moduleLink["moduleLinkLabel"]); + updateLinkProperties(selectedLinkClass,selectedLabelClass,moduleLink["rotation"],posX,posY,moduleLink["moduleLinkLabel"], moduleLink["moduleLinkDesc"]); } function showSpaceLinkEdit(spaceLink, show, posX, posY) { @@ -368,7 +368,7 @@ $(selectedUnpublishedIconClass).css({ 'position': 'absolute'}); $(selectedUnpublishedIconClass).css({ 'left': posX - displaceUnpublishedOnXModal}); $(selectedUnpublishedIconClass).css({ 'top': posY - displaceUnpublishedOnYModal}); - updateLinkProperties(selectedLinkClass,selectedLabelClass,spaceLink["rotation"],posX,posY,spaceLink["spaceLinkLabel"]); + updateLinkProperties(selectedLinkClass,selectedLabelClass,spaceLink["rotation"],posX,posY,spaceLink["spaceLinkLabel"], spaceLink["spaceLinkDesc"]); } function showExternalLinkEdit(externalLink, show, posX, posY) { @@ -376,10 +376,10 @@ externalLink["y"]=storeY; var selectedLinkClass = '#externalModallinkId-'+selectedExternalLinkId; var selectedLabelClass = '.label-'+selectedExternalLinkId; - updateLinkProperties(selectedLinkClass,selectedLabelClass,externalLink["rotation"],posX,posY,externalLink["externalLinkLabel"]); + updateLinkProperties(selectedLinkClass,selectedLabelClass,externalLink["rotation"],posX,posY,externalLink["externalLinkLabel"], externalLink["externalLinkDesc"]); } -function updateLinkProperties(selectedLinkClass,selectedLabelClass,rotation,x,y,linkLabel, show){ +function updateLinkProperties(selectedLinkClass,selectedLabelClass,rotation,x,y,linkLabel,linkDesc, show){ var posX, posY; if(show) { posx = $("#main-bgImage").position().left; @@ -394,7 +394,7 @@ $(selectedLinkClass).css({ 'left': x + posX}); $(selectedLinkClass).css({ 'top': y + posY}); $(selectedLabelClass+' span').remove(); - $(selectedLabelClass).append('' + linkLabel + ''); + $(selectedLabelClass).append('' + linkDesc + ''); feather.replace(); } @@ -468,6 +468,7 @@ info["rotation"] = $("#spaceLinkRotation").val(); info["linkedSpace"] = $("#linkedSpace").val(); info["spaceLinkLabel"] = $("#spaceLinkLabel").val(); + info["spaceLinkDesc"] = $("#spaceLinkDesc").val(); info["type"] = $("#type").val(); return info; } @@ -478,6 +479,7 @@ info["y"] = storeY; info["type"] = $("#extType").val(); info["externalLinkLabel"] = $("#externalLinkLabel").val(); + info["externalLinkDesc"] = $("#externalLinkDesc").val(); info["externalLinkURL"] = $("#externalLink").val(); return info; } @@ -489,6 +491,7 @@ info["rotation"] = $("#moduleLinkRotation").val(); info["linkedModule"] = $("#linkedModule").val(); info["moduleLinkLabel"] = $("#moduleLinkLabel").val(); + info["moduleLinkDesc"] = $("#moduleLinkDesc").val(); info["type"] = $("#type").val(); return info; } @@ -500,6 +503,7 @@ info["rotation"] = $("#moduleLinkRotationEdit").val(); info["linkedModule"] = $("#moduleLinkIdEdit").val(); info["moduleLinkLabel"] = $("#moduleLinkLabelEdit").val(); + info["moduleLinkDesc"] = $("#moduleLinkDescEdit").val(); info["type"] = $("#typeEdit").val(); return info; } @@ -511,6 +515,7 @@ info["rotation"] = $("#spaceLinkRotationEdit").val(); info["linkedSpace"] = $("#spaceLinkIdEdit").val(); info["spaceLinkLabel"] = $("#spaceLinkLabelEdit").val(); + info["spaceLinkDesc"] = $("#spaceLinkDescEdit").val(); info["type"] = $("#typeSpaceEdit").val(); return info; } @@ -521,11 +526,12 @@ info["y"] = storeY; info["type"] = $("#extTypeEdit").val(); info["externalLinkLabel"] = $("#externalLinkLabelEdit").val(); + info["externalLinkDesc"] = $("#externalLinkDescEdit").val(); info["externalLinkURL"] = $("#externalLinkURLEdit").val(); return info; } -function makeSpaceLinksEditable(spaceLinkName, spaceLinkId, rotation, selectedSpaceId, posXEdit, posYEdit, displayLinkId, linkType) { +function makeSpaceLinksEditable(spaceLinkName, spaceLinkDesc, spaceLinkId, rotation, selectedSpaceId, posXEdit, posYEdit, displayLinkId, linkType) { $("#spaceLinkInfoLabel").text(spaceLinkName); $("#spaceLinkId").val(spaceLinkId); selectedSpaceLinkId=spaceLinkId; @@ -535,6 +541,7 @@ $("#spaceLinkDisplayId").val(displayLinkId); $("#spaceLinkInfoLabelEdit").text(spaceLinkName); $("#spaceLinkLabelEdit").val(spaceLinkName); + $("#spaceLinkDescEdit").val(spaceLinkDesc); $("#spaceLinkId").val(spaceLinkId); $("#spaceLinkIdValueEdit").val(spaceLinkId); $("#spaceLinkRotationEdit").val(rotation); @@ -564,7 +571,7 @@ $(formToShow).css("display", "flex"); } -function makeModuleLinksEditable(moduleLinkName, moduleLinkId, rotation, selectedModuleId, posXEdit, posYEdit, displayLinkId, linkType) { +function makeModuleLinksEditable(moduleLinkName, moduleLinkDesc, moduleLinkId, rotation, selectedModuleId, posXEdit, posYEdit, displayLinkId, linkType) { selectedModuleLinkId=moduleLinkId; storeX=posXEdit; @@ -573,6 +580,7 @@ $("#moduleLinkDisplayId").val(displayLinkId); $("#moduleLinkInfoLabelEdit").text(moduleLinkName); $("#moduleLinkLabelEdit").val(moduleLinkName); + $("#moduleLinkDescEdit").val(moduleLinkDesc); $("#moduleLinkId").val(moduleLinkId); $("#moduleLinkIdValueEdit").val(moduleLinkId); $("#moduleLinkRotationEdit").val(rotation); @@ -596,7 +604,7 @@ displayForms("#editModuleLinkInfo"); } -function makeExternalLinksEditable(linkName, linkId, externalLinkURL, posXEdit, posYEdit, displayLinkId, linkType) { +function makeExternalLinksEditable(linkName, linkDesc, linkId, externalLinkURL, posXEdit, posYEdit, displayLinkId, linkType) { selectedExternalLinkId=linkId; storeX=posXEdit; storeY=posYEdit; @@ -605,6 +613,7 @@ $("#externalLinkDisplayId").val(displayLinkId); $("#externalLinkInfoLabelEdit").text(linkName); $("#externalLinkLabelEdit").val(linkName); + $("#externalLinkDescEdit").val(linkDesc); $("#externalLinkIdValueEdit").val(linkId); $("#externalLinkURLEdit").val(externalLinkURL); $('#extTypeEdit option[value="'+linkType+'"]').attr("selected", "selected"); @@ -663,7 +672,7 @@ $("#bgImage").on("click", function(e){ e.preventDefault(); $("#external-arrow").remove(); - $("#space_label").remove(); + $("#space_desc").remove(); $("#link").remove(); var icon; var posX = $(this).position().left; @@ -682,7 +691,7 @@ $("#bgImage").on("click", function(e){ e.preventDefault(); $("#external-arrow").remove(); - $("#module_label").remove(); + $("#module_desc").remove(); $("#link").remove(); var icon; var posX = $(this).position().left; @@ -730,6 +739,7 @@ e.preventDefault(); $('#errorAlert').hide(); var label = $("#spaceLinkLabel").val(); + var desc = $("#spaceLinkDesc").val(); var spaceName = $("#linkedSpace option:selected").text(); var type = $("#type option:selected").text(); @@ -762,6 +772,7 @@ var form = $("#createSpaceLinkForm"); var label = $("#spaceLinkLabel").val(); + var desc = $("#spaceLinkDesc").val(); var spaceName = $("#linkedSpace option:selected").text(); var spaceId = $("#linkedSpace option:selected").val(); var formData = new FormData(form[0]); @@ -789,7 +800,7 @@ spaceLinkInfo["y"]=linkData["y"]; spaceLinkInfo["linkedSpaceStatus"]=linkData["linkedSpaceStatus"]; showSpaceLink(spaceLinkInfo, true); - $("#space_label").attr("id",""); + $("#space_desc").attr("id",""); $("#link").attr("id",""); $("#createSpaceLinkAlert").hide(); $("#errorMsg").text(""); @@ -820,6 +831,7 @@ var linkedModules = $("#linkedModule").val(); var moduleLabel = $("#moduleLinkLabel").val(); + var moduleDesc = $("#moduleLinkDesc").val(); if (moduleLabel == undefined || moduleLabel == "") { $("#errorMsg").text("Please enter the label for module.") @@ -864,7 +876,7 @@ moduleLinkInfo["x"]=linkData["x"]; moduleLinkInfo["y"]=linkData["y"]; showModuleLink(moduleLinkInfo, true); - $("#module_label").attr("id",""); + $("#module_desc").attr("id",""); $("#link").attr("id",""); $("#createModuleLinkAlert").hide(); $("#errorMsg").text(""); @@ -1033,9 +1045,9 @@ var externalLink = $("#externalLink").val(); var externalLinkLabel = $("#externalLinkLabel").val(); + var externalLinkDesc = $("#externalLinkDesc").val(); var type = $("#extType option:selected").text(); - if (externalLink == undefined || externalLink == "") { $("#errorMsg").text("Please provide the link to the external link.") $('#errorAlert').show(); @@ -1237,7 +1249,7 @@ storeY = null; $("#link").remove(); - $("#space_label").remove(); + $("#space_desc").remove(); $("#space").hide(); $("#createSpaceLinkAlert").hide(); $('#errorAlert').hide(); @@ -1248,7 +1260,7 @@ storeX = null; storeY = null; $("#link").remove(); - $("#module_label").remove(); + $("#module_desc").remove(); $("#space").hide(); $("#createModuleLinkAlert").hide(); $('#errorAlert').hide(); @@ -1466,6 +1478,15 @@
Create new Space Link
+ +
+
+ +
+
+ +
+
@@ -1550,6 +1571,15 @@
Create new Module Link
name="moduleLinkLabel" id="moduleLinkLabel">
+ +
+
+ +
+
+ +
+
@@ -1599,6 +1629,15 @@
Create new External Link
name="externalLinkLabel" id="externalLinkLabel">
+ +
+
+ +
+
+ +
+
@@ -1686,6 +1725,15 @@
Space Link:
+ +
+
+ +
+
+ +
+
@@ -1786,6 +1834,14 @@
style="width: inherit; background: var(--base-grey)">
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
From 01722797a68e8bd09b65c4a0ad6e10978f94c51f Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Mon, 23 Aug 2021 12:10:39 -0700 Subject: [PATCH 002/138] [VSPC-172] Fixing the unit tests for latest changes of description as tootip for modulelinks, spacelinks --- .../vspace/core/services/impl/ExternalLinkManagerTest.java | 6 ++++-- .../vspace/core/services/impl/ModuleLinkManagerTest.java | 6 ++++-- .../vspace/core/services/impl/SpaceLinkManagerTest.java | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java index 3647c4a6b..b4d4cf4b8 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java @@ -104,9 +104,10 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(externalLinkRepo.save((ExternalLink) externalLink)).thenReturn((ExternalLink)externalLink); Mockito.when(externalLinkDisplayRepo.save((ExternalLinkDisplay)externalDisplayLink)).thenReturn((ExternalLinkDisplay)externalDisplayLink); - IExternalLinkDisplay savedExternalLinkDisplay1 = managerToTest.createLink("New External Link", spaceId1, 10, 30, 40, "EXL001", "New External Link", DisplayType.ARROW, null, null); + IExternalLinkDisplay savedExternalLinkDisplay1 = managerToTest.createLink("New External Link", spaceId1, 10, 30, 40, "EXL001", "New External Link", "New External Link Desc", DisplayType.ARROW, null, null); Assert.assertEquals(externalDisplayLink.getId(), savedExternalLinkDisplay1.getId()); Assert.assertEquals(externalDisplayLink.getName(), savedExternalLinkDisplay1.getName()); + Assert.assertEquals(externalDisplayLink.getDescription(), savedExternalLinkDisplay1.getDescription()); Assert.assertEquals(new Double(externalDisplayLink.getPositionX()), new Double(savedExternalLinkDisplay1.getPositionX())); Assert.assertEquals(new Double(externalDisplayLink.getPositionY()), new Double(savedExternalLinkDisplay1.getPositionY())); Assert.assertEquals(externalDisplayLink.getRotation(), savedExternalLinkDisplay1.getRotation()); @@ -156,9 +157,10 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(externalLinkRepo.save((ExternalLink) externalLink)).thenReturn((ExternalLink)externalLink); Mockito.when(externalLinkDisplayRepo.save((ExternalLinkDisplay)externalLinkDisplay)).thenReturn((ExternalLinkDisplay)externalLinkDisplay); - IExternalLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestExternalNew", spaceId1, 20, 40, 0, "www.google.com", "TestExternalNew", "EXL001", "EXLD001", DisplayType.ARROW, null, null); + IExternalLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestExternalNew", spaceId1, 20, 40, 0, "www.google.com", "TestExternalNew", "TestExternalNew Desc", "EXL001", "EXLD001", DisplayType.ARROW, null, null); Assert.assertEquals(externalLinkDisplay.getId(), actualUpdatedLink.getId()); Assert.assertEquals(externalLinkDisplay.getName(), actualUpdatedLink.getName()); + Assert.assertEquals(externalLinkDisplay.getDescription(), actualUpdatedLink.getDescription()); Assert.assertEquals(new Double(externalLinkDisplay.getPositionX()), new Double(actualUpdatedLink.getPositionX())); Assert.assertEquals(new Double(externalLinkDisplay.getPositionY()), new Double(actualUpdatedLink.getPositionY())); Assert.assertEquals(externalLinkDisplay.getExternalLink().getId(), actualUpdatedLink.getExternalLink().getId()); diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java index f11409ebc..7e0ec1f3c 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java @@ -107,9 +107,10 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleDisplayLink)).thenReturn((ModuleLinkDisplay)moduleDisplayLink); - IModuleLinkDisplay savedModuleLinkDisplay1 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", DisplayType.ARROW, null, null); + IModuleLinkDisplay savedModuleLinkDisplay1 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", "New Module Link Desc", DisplayType.ARROW, null, null); Assert.assertEquals(moduleDisplayLink.getId(), savedModuleLinkDisplay1.getId()); Assert.assertEquals(moduleDisplayLink.getName(), savedModuleLinkDisplay1.getName()); + Assert.assertEquals(moduleDisplayLink.getDescription(), savedModuleLinkDisplay1.getDescription()); Assert.assertEquals(new Double(moduleDisplayLink.getPositionX()), new Double(savedModuleLinkDisplay1.getPositionX())); Assert.assertEquals(new Double(moduleDisplayLink.getPositionY()), new Double(savedModuleLinkDisplay1.getPositionY())); Assert.assertEquals(moduleDisplayLink.getRotation(), savedModuleLinkDisplay1.getRotation()); @@ -177,9 +178,10 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleLinkDisplay)).thenReturn((ModuleLinkDisplay)moduleLinkDisplayUpdated); - IModuleLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", "MDLD001", DisplayType.ALERT, null, null); + IModuleLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "TestModuleEdited Desc", "MOL001", "MDLD001", DisplayType.ALERT, null, null); Assert.assertEquals(moduleLinkDisplayUpdated.getId(), actualUpdatedLink.getId()); Assert.assertEquals(moduleLinkDisplayUpdated.getName(), actualUpdatedLink.getName()); + Assert.assertEquals(moduleLinkDisplayUpdated.getDescription(), actualUpdatedLink.getDescription()); Assert.assertEquals(new Double(moduleLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink.getPositionX())); Assert.assertEquals(new Double(moduleLinkDisplayUpdated.getPositionY()), new Double(actualUpdatedLink.getPositionY())); Assert.assertEquals(moduleLinkDisplayUpdated.getLink().getTarget(), actualUpdatedLink.getLink().getTarget()); diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java index 5642ae438..d815d22a8 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java @@ -105,9 +105,10 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceDisplayLink)).thenReturn((SpaceLinkDisplay)spaceDisplayLink); - ISpaceLinkDisplay savedSpaceLinkDisplay = managerToTest.createLink("New Space Link", spaceId1, 10, 30, 40, spaceId2, "New Space Link", DisplayType.ARROW, null, null); + ISpaceLinkDisplay savedSpaceLinkDisplay = managerToTest.createLink("New Space Link", spaceId1, 10, 30, 40, spaceId2, "New Space Link", "New Space Link Desc", DisplayType.ARROW, null, null); Assert.assertEquals(spaceDisplayLink.getId(), savedSpaceLinkDisplay.getId()); Assert.assertEquals(spaceDisplayLink.getName(), savedSpaceLinkDisplay.getName()); + Assert.assertEquals(spaceDisplayLink.getDescription(), savedSpaceLinkDisplay.getDescription()); Assert.assertEquals(new Double(spaceDisplayLink.getPositionX()), new Double(savedSpaceLinkDisplay.getPositionX())); Assert.assertEquals(new Double(spaceDisplayLink.getPositionY()), new Double(savedSpaceLinkDisplay.getPositionY())); Assert.assertEquals(spaceDisplayLink.getRotation(), savedSpaceLinkDisplay.getRotation()); @@ -218,9 +219,10 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceLinkDisplay)).thenReturn((SpaceLinkDisplay)spaceLinkDisplayUpdated); - ISpaceLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestSpaceEdited", spaceId1, 100, 300, 180, spaceId3, "TestSpaceEdited", "SPL002", "SPLD001", DisplayType.ALERT, null, null); + ISpaceLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestSpaceEdited", spaceId1, 100, 300, 180, spaceId3, "TestSpaceEdited", "TestSpaceEdited Desc", "SPL002", "SPLD001", DisplayType.ALERT, null, null); Assert.assertEquals(spaceLinkDisplayUpdated.getId(), actualUpdatedLink.getId()); Assert.assertEquals(spaceLinkDisplayUpdated.getName(), actualUpdatedLink.getName()); + Assert.assertEquals(spaceLinkDisplayUpdated.getDescription(), actualUpdatedLink.getDescription()); Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink.getPositionX())); Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionY()), new Double(actualUpdatedLink.getPositionY())); Assert.assertEquals(spaceLinkDisplayUpdated.getLink().getTargetSpace(), actualUpdatedLink.getLink().getTargetSpace()); From c0274f7179eb8c7e12aeca1452a223104b57ac90 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Fri, 8 Oct 2021 15:52:04 -0700 Subject: [PATCH 003/138] [VSPC-172] Changes completed for descrition in modulelinks, space links and external links. --- .../WEB-INF/views/staff/spaces/space.html | 95 +++++++++++-------- 1 file changed, 53 insertions(+), 42 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 193c49035..ac67d5b29 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -89,6 +89,7 @@ function generateSpaceLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ if(link != null){ var spaceLink; + var spaceLinkTooltip; if(link.type == "ALERT"){ spaceLink = $('

'+link.link.name+'

'); } @@ -97,7 +98,8 @@ spaceLink = $(''); } else{ - spaceLink = $('

'+link.link.description+'

'); + spaceLinkTooltip = link.link.name +'\n'+ (link.link.description!=null ? link.link.description : ""); + spaceLink = $('

'+ spaceLinkTooltip +'

'); } setLinkPosition(spaceLink,link,true,isModal,false, posX, posY, posXModal, posYModal); $(divId).append(spaceLink); @@ -115,6 +117,7 @@ function generateModuleLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ if(link != null){ var moduleLink; + var moduleLinkTooltip if(link.type=="ALERT"){ moduleLink = $(''); } @@ -123,7 +126,8 @@ moduleLink = $(''); } else{ - moduleLink = $('

'+link.link.description+'

'); + moduleLinkTooltip = link.link.name + '\n' + (link.link.description!=null? link.link.description : ""); + moduleLink = $('

'+moduleLinkTooltip+'

'); } setLinkPosition(moduleLink,link,false,isModal,false, posX, posY, posXModal, posYModal); $(divId).append(moduleLink); @@ -140,11 +144,13 @@ function generateExternalLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ if(link != null){ var externalLink; + var externalLinkTooltip; if(link.type=="IMAGE" && link.image != null){ var imageURL = [[@{/api/image/}]]+link.image.id; externalLink = $(''); }else{ - externalLink = $('

'+link.externalLink.description+'

'); + externalLinkTooltip = link.externalLink.name + '\n' + (link.externalLink.description!=null ? link.externalLink.description : ""); + externalLink = $('

'+externalLinkTooltip+'

'); } setLinkPosition(externalLink,link,false,isModal,true, posX, posY, posXModal, posYModal); $(divId).append(externalLink); @@ -225,12 +231,13 @@ //--------- show links functions -------------- function showSpaceLink(spaceLink, show, x, y) { - $("#space_desc").remove(); + $("#space_label_desc").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; - var space_desc = $("

"); - space_desc.text(spaceLink["spaceLinkDesc"]); + var space_label_desc = $("

"); + var linkTooltip = spaceLink["spaceLinkLabel"]+ '\n' + (spaceLink["spaceLinkDesc"]!=null ? spaceLink["spaceLinkDesc"] : ""); + space_label_desc.text(); var link; if (spaceLink["type"] == "ALERT") { @@ -238,7 +245,7 @@ } else if(spaceLink["type"] == "IMAGE" && linkIcon) { link = $(''); } else { - $(space_desc).css({ + $(space_label_desc).css({ 'font-size': "12px", 'transform': 'rotate(0deg)', 'color': 'grey' @@ -273,32 +280,33 @@ makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["spaceLinkDesc"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); }); - space_desc.attr("data-link-id", spaceLink["id"]); - space_desc.attr("class", "tooltiptext label-"+spaceLink["id"]); - space_desc.css('cursor', 'pointer'); - space_desc.click(function(e) { + space_label_desc.attr("data-link-id", spaceLink["id"]); + space_label_desc.attr("class", "tooltiptext label-"+spaceLink["id"]); + space_label_desc.css('cursor', 'pointer'); + space_label_desc.click(function(e) { makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["spaceLinkDesc"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); }); } $("#space").append(link); $("#space").append(unpublishedSpaceElement); - $("#link").append(space_desc); + $("#link").append(space_label_desc); } function showModuleLink(moduleLink, show, x, y) { - $("#module_desc").remove(); + $("#module_label_desc").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; - var module_desc = $("

"); - module_desc.text(moduleLink["moduleLinkDesc"]); + var module_label_desc = $("

"); + var linkTootip = moduleLink["moduleLinkLabel"] + '\n' + (moduleLink["moduleLinkDesc"]!=null ? moduleLink["moduleLinkDesc"] : ""); + module_label_desc.text(linkTootip); var link; if (moduleLink["type"] == "ALERT") { link = $(''); }else{ - $(module_desc).css({ + $(module_label_desc).css({ 'position': 'absolute', 'font-size': "10px", 'transform': 'rotate(0deg)', @@ -324,16 +332,16 @@ link.click(function(e) { makeModuleLinksEditable(moduleLink["moduleLinkLabel"], moduleLink["id"], moduleLink["rotation"], moduleLink["linkedModule"], moduleLink["x"], moduleLink["y"], moduleLink["displayId"], moduleLink["type"]); }); - module_desc.attr("data-link-id", moduleLink["id"]); - module_desc.css('cursor', 'pointer'); - module_desc.attr("class", "tooltiptext label-"+moduleLink["id"]); - module_desc.click(function(e) { + module_label_desc.attr("data-link-id", moduleLink["id"]); + module_label_desc.css('cursor', 'pointer'); + module_label_desc.attr("class", "tooltiptext label-"+moduleLink["id"]); + module_label_desc.click(function(e) { makeModuleLinksEditable(moduleLink["moduleLinkLabel"], moduleLink["id"], moduleLink["rotation"], moduleLink["linkedModule"], moduleLink["x"], moduleLink["y"], moduleLink["displayId"], moduleLink["type"]); }); } $("#space").append(link); - $("#link").append(module_desc); + $("#link").append(module_label_desc); } function showModuleLinkEdit(moduleLink, show, posX, posY) { @@ -394,7 +402,8 @@ $(selectedLinkClass).css({ 'left': x + posX}); $(selectedLinkClass).css({ 'top': y + posY}); $(selectedLabelClass+' span').remove(); - $(selectedLabelClass).append('' + linkDesc + ''); + linkTooltip = linkLabel+'\n'+ (linkDesc!=null ? linkDesc : ""); + $(selectedLabelClass).append('' + linkTooltip + ''); feather.replace(); } @@ -410,18 +419,19 @@ } function showExternalLinks(externalLink, show, x, y) { - $("#ext_label").remove(); + $("#ext_label_desc").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; - var ext_label = $("

"); - ext_label.text(externalLink["externalLinkLabel"]); + var ext_label_desc = $("

"); + var linkTooltip = externalLink["externalLinkLabel"] + '\n' + (externalLink["externalLinkDesc"]!=null ? externalLink["externalLinkDesc"] : ""); + ext_label_desc.text(linkTooltip); var link; if(externalLink["type"] == "IMAGE" && externalLinkIcon) { link = $(''); } else { - $(ext_label).css({ + $(ext_label_desc).css({ 'position': 'absolute', 'font-size': "12px", 'transform': 'rotate(0deg)', @@ -443,19 +453,19 @@ link.css('cursor', 'pointer'); link.attr('href', externalLink["url"]); link.click(function(e) { - makeExternalLinksEditable(externalLink["externalLinkLabel"], externalLink["id"], externalLink["externalLinkURL"], externalLink["x"], externalLink["y"], externalLink["displayId"], externalLink["type"]); + makeExternalLinksEditable(externalLink["externalLinkLabel"], externalLink["externalLinkDesc"], externalLink["id"], externalLink["externalLinkURL"], externalLink["x"], externalLink["y"], externalLink["displayId"], externalLink["type"]); }); - ext_label.attr("data-link-id", externalLink["id"]); - ext_label.css('cursor', 'pointer'); - ext_label.attr("class", "label-"+externalLink["id"]); - ext_label.click(function(e) { - makeExternalLinksEditable(externalLink["externalLinkLabel"], externalLink["id"], externalLink["externalLinkURL"], externalLink["x"], externalLink["y"], externalLink["displayId"], externalLink["type"]); + ext_label_desc.attr("data-link-id", externalLink["id"]); + ext_label_desc.css('cursor', 'pointer'); + ext_label_desc.attr("class", "label-"+externalLink["id"]); + ext_label_desc.click(function(e) { + makeExternalLinksEditable(externalLink["externalLinkLabel"], externalLink["externalLinkDesc"], externalLink["id"], externalLink["externalLinkURL"], externalLink["x"], externalLink["y"], externalLink["displayId"], externalLink["type"]); }); } $("#space").append(link); - $("#link").append(ext_label); + $("#link").append(ext_label_desc); $("#external-link").remove(); } @@ -672,7 +682,7 @@ $("#bgImage").on("click", function(e){ e.preventDefault(); $("#external-arrow").remove(); - $("#space_desc").remove(); + $("#space_label_desc").remove(); $("#link").remove(); var icon; var posX = $(this).position().left; @@ -691,7 +701,7 @@ $("#bgImage").on("click", function(e){ e.preventDefault(); $("#external-arrow").remove(); - $("#module_desc").remove(); + $("#module_label_desc").remove(); $("#link").remove(); var icon; var posX = $(this).position().left; @@ -713,7 +723,7 @@ e.preventDefault(); $("#link").remove(); $("#external-arrow").remove(); - $("#ext_label").remove(); + $("#ext_label_desc").remove(); var icon; var posX = $(this).position().left var posY = $(this).position().top; @@ -800,7 +810,7 @@ spaceLinkInfo["y"]=linkData["y"]; spaceLinkInfo["linkedSpaceStatus"]=linkData["linkedSpaceStatus"]; showSpaceLink(spaceLinkInfo, true); - $("#space_desc").attr("id",""); + $("#space_label_desc").attr("id",""); $("#link").attr("id",""); $("#createSpaceLinkAlert").hide(); $("#errorMsg").text(""); @@ -876,7 +886,7 @@ moduleLinkInfo["x"]=linkData["x"]; moduleLinkInfo["y"]=linkData["y"]; showModuleLink(moduleLinkInfo, true); - $("#module_desc").attr("id",""); + $("#module_label_desc").attr("id",""); $("#link").attr("id",""); $("#createModuleLinkAlert").hide(); $("#errorMsg").text(""); @@ -1094,7 +1104,7 @@ externalLinkInfo["x"]=linkData["x"]; externalLinkInfo["y"]=linkData["y"]; showExternalLinks(externalLinkInfo, true); - $("#ext_label").attr("id",""); + $("#ext_label_desc").attr("id",""); $("#link").attr("id",""); $("#createExternalLinkAlert").hide(); $("#errorMsg").text(""); @@ -1190,6 +1200,7 @@ externalLink["x"] = storeX; externalLink["y"] = storeY; externalLink["externalLinkLabel"] = $("#externalLinkLabel").val(); + externalLink["externalLinkDesc"] = $("#externalLinkDesc").val(); externalLink["url"] = $("#externalLink").val(); externalLink["type"] = $("#extType").val(); showExternalLinks(externalLink); @@ -1249,7 +1260,7 @@ storeY = null; $("#link").remove(); - $("#space_desc").remove(); + $("#space_label_desc").remove(); $("#space").hide(); $("#createSpaceLinkAlert").hide(); $('#errorAlert').hide(); @@ -1260,7 +1271,7 @@ storeX = null; storeY = null; $("#link").remove(); - $("#module_desc").remove(); + $("#module_label_desc").remove(); $("#space").hide(); $("#createModuleLinkAlert").hide(); $('#errorAlert').hide(); @@ -1273,7 +1284,7 @@ $("#external-link").remove(); $("div#link").remove(); $("#external-arrow").remove(); - $("#ext_label").remove(); + $("#ext_label_desc").remove(); $("#space").hide(); $("#createExternalLinkAlert").hide(); $('#errorAlert').hide(); From 46d8c98022a2ed67e1689f0d9dafa02d1ee3cb3d Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Mon, 11 Oct 2021 11:55:32 -0700 Subject: [PATCH 004/138] [VSPC-172] Description for space and module links on public site --- .../main/webapp/WEB-INF/views/exhibition/space.html | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html index 22f0c2d87..a2143189b 100644 --- a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html @@ -295,6 +295,7 @@ var spaceLink = $(''); spaceLink.attr("href", link.link.targetSpace.id); var linkDisplay; + var spaceLinkTooltip; if(link.type=="ALERT"){ linkDisplay = $(''); } @@ -303,7 +304,8 @@ linkDisplay = $(''); } else{ - linkDisplay = $('
'+link.link.name+'
'); + spaceLinkTooltip = link.link.name +'\n'+ (link.link.description!=null ? link.link.description : ""); + linkDisplay = $('
'+spaceLinkTooltip+'
'); } linkDisplay.css('position', 'absolute'); linkDisplay.css('transform', 'rotate('+link.rotation+'deg)'); @@ -332,7 +334,8 @@ var moduleLink = $(''); var moduleLinkURL = [[@{|/exhibit/${space?.id}/module/|}]]+link.link.module.id; moduleLink.attr("href", moduleLinkURL); - var linkDisplay = $('
'+link.link.name+'
'); + var moduleLinkTooltip = link.link.name + '\n' + (link.link.description!=null? link.link.description : ""); + var linkDisplay = $('
'+moduleLinkTooltip+'
'); linkDisplay.css('position', 'absolute'); linkDisplay.css('transform', 'rotate('+link.rotation+'deg)'); linkDisplay.css('fill', 'grey'); @@ -357,6 +360,7 @@ var posX = parseInt($("#space").css('margin-left')) + $("#space").position().left; var posY = $("#space").position().top; var externalLink = $(''); + var externalLinkTooltip; externalLink.attr('href', link.externalLink.externalLink); externalLink.attr('target', "_blank"); if(link.type=="ALERT"){ @@ -367,7 +371,8 @@ linkDisplay = $(''); } else{ - var linkDisplay = $('
'+link.externalLink.name+'
'); + externalLinkTooltip = link.externalLink.name + '\n' + (link.externalLink.description!=null ? link.externalLink.description : ""); + var linkDisplay = $('
'+externalLinkTooltip+'
'); } linkDisplay.css('position', 'absolute'); linkDisplay.css('transform', 'rotate('+link.rotation+'deg)'); From e028619cf3beec1d7b9422ce8d74dba4d6ad1245 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar <56213738+pradeep-017@users.noreply.github.com> Date: Mon, 11 Oct 2021 12:07:54 -0700 Subject: [PATCH 005/138] Code indentation fixes for space.html --- .../WEB-INF/views/staff/spaces/space.html | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index d6c25a446..0395d9156 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -1495,9 +1495,9 @@
Create new Space Link
- -
-
+ + +
@@ -1588,9 +1588,9 @@
Create new Module Link
- -
-
+ + +
@@ -1646,9 +1646,9 @@
Create new External Link
- -
-
+ + +
@@ -1742,9 +1742,9 @@
Space Link:Description
- -
-
+ + +
@@ -1850,9 +1850,9 @@
- -
-
+ + +
- -
-
+ + +
@@ -2039,4 +2039,4 @@
- \ No newline at end of file + From bc51fc48e43b1614353a0de15c7abdf41047f236 Mon Sep 17 00:00:00 2001 From: glend17 Date: Wed, 27 Oct 2021 12:17:55 -0700 Subject: [PATCH 006/138] [VSPC-171] Added new SpaceBlock --- .../diging/vspace/core/model/ISpaceBlock.java | 17 ++++++++++ .../vspace/core/model/impl/SpaceBlock.java | 33 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/model/ISpaceBlock.java create mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/SpaceBlock.java diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/model/ISpaceBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/model/ISpaceBlock.java new file mode 100644 index 000000000..d497ae463 --- /dev/null +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/model/ISpaceBlock.java @@ -0,0 +1,17 @@ +package edu.asu.diging.vspace.core.model; + +public interface ISpaceBlock { + + void setTitle(String text); + + String getTitle(); + + void setId(String id); + + String getId(); + + ISpace getSpace(); + + void setSpace(ISpace space); + +} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/SpaceBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/SpaceBlock.java new file mode 100644 index 000000000..c50066950 --- /dev/null +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/SpaceBlock.java @@ -0,0 +1,33 @@ +package edu.asu.diging.vspace.core.model.impl; + +import javax.persistence.ManyToOne; + +import edu.asu.diging.vspace.core.model.ISpace; +import edu.asu.diging.vspace.core.model.ISpaceBlock; + +public class SpaceBlock extends ContentBlock implements ISpaceBlock { + private String title; + + @ManyToOne(targetEntity = Space.class) + private ISpace space; + + @Override + public String getTitle() { + return title; + } + + @Override + public void setTitle(String title) { + this.title = title; + } + + @Override + public ISpace getSpace() { + return space; + } + + @Override + public void setSpace(ISpace space) { + this.space = space; + } +} From 7be602f5776667760b1a1d4630482caa664220cf Mon Sep 17 00:00:00 2001 From: glend17 Date: Wed, 27 Oct 2021 13:00:38 -0700 Subject: [PATCH 007/138] [VSPC-171] Added SpaceBlock type functionality --- .../core/data/ModuleLinkRepository.java | 4 +- .../core/services/IContentBlockManager.java | 3 ++ .../core/services/IModuleLinkManager.java | 3 +- .../services/impl/ContentBlockManager.java | 10 +++++ .../core/services/impl/ModuleLinkManager.java | 9 +++++ .../web/staff/AddSpaceBlockController.java | 37 +++++++++++++++++++ 6 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/data/ModuleLinkRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/data/ModuleLinkRepository.java index 9e8d2f3a3..fb6f4e025 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/data/ModuleLinkRepository.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/data/ModuleLinkRepository.java @@ -1,5 +1,7 @@ package edu.asu.diging.vspace.core.data; +import java.util.Optional; + import org.javers.spring.annotation.JaversSpringDataAuditable; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; @@ -9,5 +11,5 @@ @Repository @JaversSpringDataAuditable public interface ModuleLinkRepository extends PagingAndSortingRepository { - + Optional findByModule_Id(String moduleId); } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java index 5326f3c69..f1475d92d 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java @@ -7,6 +7,7 @@ import edu.asu.diging.vspace.core.model.IChoiceBlock; import edu.asu.diging.vspace.core.model.IContentBlock; import edu.asu.diging.vspace.core.model.IImageBlock; +import edu.asu.diging.vspace.core.model.ISpaceBlock; import edu.asu.diging.vspace.core.model.ITextBlock; import edu.asu.diging.vspace.core.model.IVSImage; import edu.asu.diging.vspace.core.model.impl.TextBlock; @@ -46,4 +47,6 @@ IChoiceBlock createChoiceBlock(String slideId, List selectedChoices, Int boolean showsAll); Integer findMaxContentOrder(String slideId); + + ISpaceBlock createSpaceBlock(String slideId, String title, Integer contentOrder); } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IModuleLinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IModuleLinkManager.java index f83233dea..a33a1da39 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IModuleLinkManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IModuleLinkManager.java @@ -3,7 +3,8 @@ import edu.asu.diging.vspace.core.model.IModule; import edu.asu.diging.vspace.core.model.IModuleLink; import edu.asu.diging.vspace.core.model.display.IModuleLinkDisplay; +import edu.asu.diging.vspace.core.model.impl.ModuleLink; public interface IModuleLinkManager extends ILinkManager{ - + ModuleLink getModuleLinkByModuleId(String moduleId); } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java index 4bddb855a..7c7456f36 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java @@ -30,6 +30,7 @@ import edu.asu.diging.vspace.core.model.IContentBlock; import edu.asu.diging.vspace.core.model.IImageBlock; import edu.asu.diging.vspace.core.model.ISlide; +import edu.asu.diging.vspace.core.model.ISpaceBlock; import edu.asu.diging.vspace.core.model.ITextBlock; import edu.asu.diging.vspace.core.model.IVSImage; import edu.asu.diging.vspace.core.model.impl.ChoiceBlock; @@ -104,6 +105,15 @@ public ITextBlock createTextBlock(String slideId, String text, Integer contentOr textBlock = textBlockRepo.save((TextBlock) textBlock); return textBlock; } + + @Override + public ISpaceBlock createSpaceBlock(String slideId, String title, Integer contentOrder) { + ISlide slide = slideManager.getSlide(slideId); + ISpaceBlock spaceBlock = spaceBlockFactory.createSpaceBlock(slide, title); + spaceBlock.setContentOrder(contentOrder); + spaceBlock = spaceBlockRepo.save((SpaceBlock) spaceBlock); + return spaceBlock; + } private IVSImage saveImage(byte[] image, String filename) { if (image != null && image.length > 0) { diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManager.java index bcecff46d..6c8e717ef 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManager.java @@ -103,5 +103,14 @@ protected void removeFromLinkList(ISpace space, IModuleLink link) { protected void deleteLinkRepo(IModuleLink link) { moduleLinkRepo.delete((ModuleLink) link); } + + @Override + public ModuleLink getModuleLinkByModuleId(String moduleId) { + Optional moduleLinkOptional = moduleLinkRepo.findByModule_Id(moduleId); + if(moduleLinkOptional.isPresent()) { + return moduleLinkOptional.get(); + } + return null; + } } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java new file mode 100644 index 000000000..4902e98f6 --- /dev/null +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java @@ -0,0 +1,37 @@ +package edu.asu.diging.vspace.web.staff; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import edu.asu.diging.vspace.core.model.IModuleLink; +import edu.asu.diging.vspace.core.services.IContentBlockManager; +import edu.asu.diging.vspace.core.services.IModuleLinkManager; + +@Controller +public class AddSpaceBlockController { + + private final Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private IContentBlockManager contentBlockManager; + + @Autowired + private IModuleLinkManager moduleLinkManager; + + @RequestMapping(value = "/staff/module/{moduleId}/slide/{id}/image", method = RequestMethod.POST) + ResponseEntity addSpaceBlock(@PathVariable("id") String slideId, + @PathVariable("moduleId") String moduleId){ + + IModuleLink moduleLink = moduleLinkManager.getModuleLinkByModuleId(moduleId); + moduleLink.getSpace(); + return new ResponseEntity<>(HttpStatus.OK); + } + +} From 5efc1a9f7e1ca338684a9620eae8008b573f5ea5 Mon Sep 17 00:00:00 2001 From: glend17 Date: Thu, 28 Oct 2021 16:06:46 -0700 Subject: [PATCH 008/138] [VSPC-171] Adding SpaceBlock functionality --- .../data/SpaceContentBlockRepository.java | 13 +++++++++++ .../core/factory/ISpaceBlockFactory.java | 10 +++++++++ .../core/factory/impl/SpaceBlockFactory.java | 22 +++++++++++++++++++ .../diging/vspace/core/model/ISpaceBlock.java | 2 +- .../vspace/core/model/impl/SpaceBlock.java | 4 ++++ .../core/services/IContentBlockManager.java | 3 ++- .../services/impl/ContentBlockManager.java | 15 +++++++++++-- .../web/staff/AddSpaceBlockController.java | 6 ++++- 8 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/data/SpaceContentBlockRepository.java create mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/factory/ISpaceBlockFactory.java create mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/factory/impl/SpaceBlockFactory.java diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/data/SpaceContentBlockRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/data/SpaceContentBlockRepository.java new file mode 100644 index 000000000..6cc5a82bc --- /dev/null +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/data/SpaceContentBlockRepository.java @@ -0,0 +1,13 @@ +package edu.asu.diging.vspace.core.data; + +import org.javers.spring.annotation.JaversSpringDataAuditable; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +import edu.asu.diging.vspace.core.model.impl.SpaceBlock; + +@Repository +@JaversSpringDataAuditable +public interface SpaceContentBlockRepository extends PagingAndSortingRepository { + +} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/factory/ISpaceBlockFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/factory/ISpaceBlockFactory.java new file mode 100644 index 000000000..877bb0b5c --- /dev/null +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/factory/ISpaceBlockFactory.java @@ -0,0 +1,10 @@ +package edu.asu.diging.vspace.core.factory; + +import edu.asu.diging.vspace.core.model.ISlide; +import edu.asu.diging.vspace.core.model.ISpace; +import edu.asu.diging.vspace.core.model.ISpaceBlock; + +public interface ISpaceBlockFactory { + + ISpaceBlock createSpaceBlock(ISlide slide, String text, ISpace space); +} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/factory/impl/SpaceBlockFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/factory/impl/SpaceBlockFactory.java new file mode 100644 index 000000000..bf3d8a330 --- /dev/null +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/factory/impl/SpaceBlockFactory.java @@ -0,0 +1,22 @@ +package edu.asu.diging.vspace.core.factory.impl; + +import org.springframework.stereotype.Service; + +import edu.asu.diging.vspace.core.factory.ISpaceBlockFactory; +import edu.asu.diging.vspace.core.model.ISlide; +import edu.asu.diging.vspace.core.model.ISpace; +import edu.asu.diging.vspace.core.model.ISpaceBlock; +import edu.asu.diging.vspace.core.model.impl.SpaceBlock; + +@Service +public class SpaceBlockFactory implements ISpaceBlockFactory { + + @Override + public ISpaceBlock createSpaceBlock(ISlide slide, String title, ISpace space) { + ISpaceBlock spaceBlock = new SpaceBlock(); + spaceBlock.setTitle(title); + spaceBlock.setSlide(slide); + spaceBlock.setSpace(space); + return spaceBlock; + } +} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/model/ISpaceBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/model/ISpaceBlock.java index d497ae463..d12849123 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/model/ISpaceBlock.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/model/ISpaceBlock.java @@ -1,6 +1,6 @@ package edu.asu.diging.vspace.core.model; -public interface ISpaceBlock { +public interface ISpaceBlock extends IContentBlock { void setTitle(String text); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/SpaceBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/SpaceBlock.java index c50066950..6dc764119 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/SpaceBlock.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/SpaceBlock.java @@ -1,11 +1,15 @@ package edu.asu.diging.vspace.core.model.impl; +import javax.persistence.Entity; +import javax.persistence.Lob; import javax.persistence.ManyToOne; import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.ISpaceBlock; +@Entity public class SpaceBlock extends ContentBlock implements ISpaceBlock { + @Lob private String title; @ManyToOne(targetEntity = Space.class) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java index f1475d92d..0e59821f2 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java @@ -7,6 +7,7 @@ import edu.asu.diging.vspace.core.model.IChoiceBlock; import edu.asu.diging.vspace.core.model.IContentBlock; import edu.asu.diging.vspace.core.model.IImageBlock; +import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.ISpaceBlock; import edu.asu.diging.vspace.core.model.ITextBlock; import edu.asu.diging.vspace.core.model.IVSImage; @@ -48,5 +49,5 @@ IChoiceBlock createChoiceBlock(String slideId, List selectedChoices, Int Integer findMaxContentOrder(String slideId); - ISpaceBlock createSpaceBlock(String slideId, String title, Integer contentOrder); + ISpaceBlock createSpaceBlock(String slideId, String title, Integer contentOrder, ISpace space); } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java index 7c7456f36..d7ec72bb9 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java @@ -16,6 +16,7 @@ import edu.asu.diging.vspace.core.data.ContentBlockRepository; import edu.asu.diging.vspace.core.data.ImageContentBlockRepository; import edu.asu.diging.vspace.core.data.ImageRepository; +import edu.asu.diging.vspace.core.data.SpaceContentBlockRepository; import edu.asu.diging.vspace.core.data.TextContentBlockRepository; import edu.asu.diging.vspace.core.exception.BlockDoesNotExistException; import edu.asu.diging.vspace.core.exception.FileStorageException; @@ -23,6 +24,7 @@ import edu.asu.diging.vspace.core.factory.IChoiceBlockFactory; import edu.asu.diging.vspace.core.factory.IImageBlockFactory; import edu.asu.diging.vspace.core.factory.IImageFactory; +import edu.asu.diging.vspace.core.factory.ISpaceBlockFactory; import edu.asu.diging.vspace.core.factory.ITextBlockFactory; import edu.asu.diging.vspace.core.file.IStorageEngine; import edu.asu.diging.vspace.core.model.IChoice; @@ -30,12 +32,14 @@ import edu.asu.diging.vspace.core.model.IContentBlock; import edu.asu.diging.vspace.core.model.IImageBlock; import edu.asu.diging.vspace.core.model.ISlide; +import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.ISpaceBlock; import edu.asu.diging.vspace.core.model.ITextBlock; import edu.asu.diging.vspace.core.model.IVSImage; import edu.asu.diging.vspace.core.model.impl.ChoiceBlock; import edu.asu.diging.vspace.core.model.impl.ContentBlock; import edu.asu.diging.vspace.core.model.impl.ImageBlock; +import edu.asu.diging.vspace.core.model.impl.SpaceBlock; import edu.asu.diging.vspace.core.model.impl.TextBlock; import edu.asu.diging.vspace.core.model.impl.VSImage; import edu.asu.diging.vspace.core.services.IContentBlockManager; @@ -53,6 +57,9 @@ public class ContentBlockManager implements IContentBlockManager { @Autowired private ITextBlockFactory textBlockFactory; + + @Autowired + private ISpaceBlockFactory spaceBlockFactory; @Autowired private IImageBlockFactory imageBlockFactory; @@ -65,6 +72,9 @@ public class ContentBlockManager implements IContentBlockManager { @Autowired private TextContentBlockRepository textBlockRepo; + + @Autowired + private SpaceContentBlockRepository spaceBlockRepo; @Autowired private ImageContentBlockRepository imageBlockRepo; @@ -107,9 +117,10 @@ public ITextBlock createTextBlock(String slideId, String text, Integer contentOr } @Override - public ISpaceBlock createSpaceBlock(String slideId, String title, Integer contentOrder) { + public ISpaceBlock createSpaceBlock(String slideId, String title, Integer contentOrder, + ISpace space) { ISlide slide = slideManager.getSlide(slideId); - ISpaceBlock spaceBlock = spaceBlockFactory.createSpaceBlock(slide, title); + ISpaceBlock spaceBlock = spaceBlockFactory.createSpaceBlock(slide, title, space); spaceBlock.setContentOrder(contentOrder); spaceBlock = spaceBlockRepo.save((SpaceBlock) spaceBlock); return spaceBlock; diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java index 4902e98f6..f3fa388b2 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import edu.asu.diging.vspace.core.model.IModuleLink; +import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.services.IContentBlockManager; import edu.asu.diging.vspace.core.services.IModuleLinkManager; @@ -30,7 +31,10 @@ ResponseEntity addSpaceBlock(@PathVariable("id") String slideId, @PathVariable("moduleId") String moduleId){ IModuleLink moduleLink = moduleLinkManager.getModuleLinkByModuleId(moduleId); - moduleLink.getSpace(); + ISpace space = moduleLink.getSpace(); + Integer contentOrder = contentBlockManager.findMaxContentOrder(slideId); + contentOrder = contentOrder == null ? 0 : contentOrder + 1; + contentBlockManager.createSpaceBlock(slideId, moduleId, contentOrder, space); return new ResponseEntity<>(HttpStatus.OK); } From 11aa526a48288236fe267d6c31761da93940322c Mon Sep 17 00:00:00 2001 From: glend17 Date: Fri, 29 Oct 2021 16:33:36 -0700 Subject: [PATCH 009/138] [VSPC-171] Front-end changes --- .../web/staff/AddSpaceBlockController.java | 7 +- .../views/staff/modules/slides/slide.html | 78 ++++++++++++++++++- 2 files changed, 81 insertions(+), 4 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java index f3fa388b2..34bcc5a99 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java @@ -12,6 +12,7 @@ import edu.asu.diging.vspace.core.model.IModuleLink; import edu.asu.diging.vspace.core.model.ISpace; +import edu.asu.diging.vspace.core.model.ISpaceBlock; import edu.asu.diging.vspace.core.services.IContentBlockManager; import edu.asu.diging.vspace.core.services.IModuleLinkManager; @@ -26,7 +27,7 @@ public class AddSpaceBlockController { @Autowired private IModuleLinkManager moduleLinkManager; - @RequestMapping(value = "/staff/module/{moduleId}/slide/{id}/image", method = RequestMethod.POST) + @RequestMapping(value = "/staff/module/{moduleId}/slide/{id}/images", method = RequestMethod.POST) ResponseEntity addSpaceBlock(@PathVariable("id") String slideId, @PathVariable("moduleId") String moduleId){ @@ -34,8 +35,8 @@ ResponseEntity addSpaceBlock(@PathVariable("id") String slideId, ISpace space = moduleLink.getSpace(); Integer contentOrder = contentBlockManager.findMaxContentOrder(slideId); contentOrder = contentOrder == null ? 0 : contentOrder + 1; - contentBlockManager.createSpaceBlock(slideId, moduleId, contentOrder, space); - return new ResponseEntity<>(HttpStatus.OK); + ISpaceBlock spaceBlock = contentBlockManager.createSpaceBlock(slideId, moduleId, contentOrder, space); + return new ResponseEntity<>(spaceBlock.getTitle(), HttpStatus.OK); } } diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html index 865ec0c1b..25a873900 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html @@ -417,6 +417,12 @@ $("#addTextAlert").show(); }); + $("#addSpace").click(function() { + $(".EasyMDEContainer").remove(); + markDown = new EasyMDE({element: $('#textBlockText')[0]}); + $("#addSpaceAlert").show(); + }); + $("#addImage").click(function() { $("#addImgAlert").show(); }); @@ -456,6 +462,10 @@ $("#cancelSubmitText").click(function() { $("#addTextAlert").hide(); }); + + $("#cancelSpaceText").click(function() { + $("#addSpaceAlert").hide(); + }); $("#cancelDeleteText").click(function() { $("#confirmDeleteTextAlert").find('input').remove(); @@ -627,6 +637,41 @@ }); }); + $("#submitSpace").on("click", function(e) { + $("#addSpaceAlert").hide(); + e.preventDefault(); + // ------------- creating text content blocks ------------ + + var formData = new FormData(); + var text = markDown.value(); + formData.append('content', text); + markDown.value(''); + $.ajax({ + url: "[(@{'/staff/module/'+${module.id}+'/slide/'+${slide.id}+'/textcontent?'+${_csrf.parameterName}+'='+${_csrf.token}})]", + type: 'POST', + cache : false, + contentType : false, + processData : false, + data: formData, + enctype: 'multipart/form-data', + success: function(data) { + + var textblock = $('

'+text+'

'+'
'); + $(textblock[0]).mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(onDoubleClick); + $('#slideSpace').append(textblock); + }, + error: function(data) { + if (data.status == 403){ + $("#loginAlert").show(); + } + else { + var alert = $(''); + $('.error').append(alert); + } + } + }); + }); + $('input:checkbox').click(function() { if ($(this).is(':checked')) { $('#submitChoices').prop("disabled", false); @@ -864,10 +909,12 @@

Slide: [[${sli
  +     + + 

Double Click on a Block to Edit it

@@ -977,6 +1024,35 @@

+ - @@ -1786,6 +1819,18 @@
style="width: inherit; background: var(--base-grey)">
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+

From 1bb50c211bfa7f86ba721fe8637baa7eea344129 Mon Sep 17 00:00:00 2001 From: glend17 Date: Mon, 1 Nov 2021 12:58:35 -0700 Subject: [PATCH 011/138] [VSPC-171] Added drop down for staff to pick space to link to from space content block --- .../core/factory/impl/SpaceBlockFactory.java | 5 +++++ .../web/staff/AddSpaceBlockController.java | 15 +++++++++------ .../vspace/web/staff/SlideController.java | 19 ++++++++++++++++++- .../views/staff/modules/slides/slide.html | 13 ++++++++----- 4 files changed, 40 insertions(+), 12 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/factory/impl/SpaceBlockFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/factory/impl/SpaceBlockFactory.java index bf3d8a330..79ef53236 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/factory/impl/SpaceBlockFactory.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/factory/impl/SpaceBlockFactory.java @@ -1,5 +1,7 @@ package edu.asu.diging.vspace.core.factory.impl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import edu.asu.diging.vspace.core.factory.ISpaceBlockFactory; @@ -11,12 +13,15 @@ @Service public class SpaceBlockFactory implements ISpaceBlockFactory { + private final Logger logger = LoggerFactory.getLogger(getClass()); + @Override public ISpaceBlock createSpaceBlock(ISlide slide, String title, ISpace space) { ISpaceBlock spaceBlock = new SpaceBlock(); spaceBlock.setTitle(title); spaceBlock.setSlide(slide); spaceBlock.setSpace(space); + logger.info("space block is created with values {} {} {}", spaceBlock.getTitle(), spaceBlock.getSlide().getId(), spaceBlock.getSpace().getId());; return spaceBlock; } } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java index 34bcc5a99..fe3f56a96 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceBlockController.java @@ -1,5 +1,7 @@ package edu.asu.diging.vspace.web.staff; +import java.util.Optional; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -10,11 +12,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import edu.asu.diging.vspace.core.model.IModuleLink; import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.ISpaceBlock; import edu.asu.diging.vspace.core.services.IContentBlockManager; import edu.asu.diging.vspace.core.services.IModuleLinkManager; +import edu.asu.diging.vspace.core.services.ISpaceManager; @Controller public class AddSpaceBlockController { @@ -25,14 +27,15 @@ public class AddSpaceBlockController { private IContentBlockManager contentBlockManager; @Autowired - private IModuleLinkManager moduleLinkManager; + private ISpaceManager spaceManager; - @RequestMapping(value = "/staff/module/{moduleId}/slide/{id}/images", method = RequestMethod.POST) + @Autowired + private IModuleLinkManager moduleLinkManager; + @RequestMapping(value = "/staff/module/{moduleId}/slide/{id}/{spaceId}/SpaceBlockContent", method = RequestMethod.POST) ResponseEntity addSpaceBlock(@PathVariable("id") String slideId, - @PathVariable("moduleId") String moduleId){ + @PathVariable("moduleId") String moduleId, @PathVariable("SpaceId") String spaceId){ - IModuleLink moduleLink = moduleLinkManager.getModuleLinkByModuleId(moduleId); - ISpace space = moduleLink.getSpace(); + ISpace space = spaceManager.getSpace(spaceId); Integer contentOrder = contentBlockManager.findMaxContentOrder(slideId); contentOrder = contentOrder == null ? 0 : contentOrder + 1; ISpaceBlock spaceBlock = contentBlockManager.createSpaceBlock(slideId, moduleId, contentOrder, space); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java index e0b533bf8..256ff2be0 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java @@ -1,6 +1,7 @@ package edu.asu.diging.vspace.web.staff; import java.security.Principal; +import java.util.ArrayList; import java.util.List; import javax.transaction.Transactional; @@ -15,10 +16,18 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import edu.asu.diging.vspace.core.data.SpaceRepository; import edu.asu.diging.vspace.core.model.IBranchingPoint; import edu.asu.diging.vspace.core.model.IContentBlock; import edu.asu.diging.vspace.core.model.ISlide; +import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.impl.BranchingPoint; +import edu.asu.diging.vspace.core.model.impl.Space; import edu.asu.diging.vspace.core.services.IContentBlockManager; import edu.asu.diging.vspace.core.services.IModuleManager; import edu.asu.diging.vspace.core.services.ISlideManager; @@ -36,11 +45,19 @@ public class SlideController { @Autowired private IContentBlockManager contentBlockManager; + + @Autowired + private SpaceRepository spaceRepo; @RequestMapping("/staff/module/{moduleId}/slide/{id}") - public String listSlides(@PathVariable("id") String id, @PathVariable("moduleId") String moduleId, Model model) { + public String listSlides(@PathVariable("id") String id, @PathVariable("moduleId") String moduleId, Model model) throws JsonProcessingException { ISlide slide = slideManager.getSlide(id); + List spaces = new ArrayList(); + spaceRepo.findAll().forEach(s -> { + spaces.add(s); + }); + model.addAttribute("spaces", spaces); model.addAttribute("module", moduleManager.getModule(moduleId)); model.addAttribute("slide", slide); model.addAttribute("slideSequences", slideManager.getSlideSequences(id, moduleId)); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html index 25a873900..a034b8a90 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html @@ -419,7 +419,7 @@ $("#addSpace").click(function() { $(".EasyMDEContainer").remove(); - markDown = new EasyMDE({element: $('#textBlockText')[0]}); + markDown = new EasyMDE({element: $('#spaceBlockText')[0]}); $("#addSpaceAlert").show(); }); @@ -647,7 +647,7 @@ formData.append('content', text); markDown.value(''); $.ajax({ - url: "[(@{'/staff/module/'+${module.id}+'/slide/'+${slide.id}+'/textcontent?'+${_csrf.parameterName}+'='+${_csrf.token}})]", + url: "[(@{'/staff/module/'+${module.id}+'/slide/'+${slide.id}+'/SpaceBlockContent?'+${_csrf.parameterName}+'='+${_csrf.token}})]", type: 'POST', cache : false, contentType : false, @@ -656,7 +656,7 @@ enctype: 'multipart/form-data', success: function(data) { - var textblock = $('

'+text+'

'+'
'); + var textblock = $('

'+text+'

'+'
'); $(textblock[0]).mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(onDoubleClick); $('#slideSpace').append(textblock); }, @@ -1034,15 +1034,18 @@
-
+ + enctype="multipart/form-data" method="post" + th:object="${spaceContentBlockForm}"> - - +
diff --git a/vspace/src/main/webapp/resources/extra/Home.css b/vspace/src/main/webapp/resources/extra/Home.css index c5eaf1bd0..e2e643027 100644 --- a/vspace/src/main/webapp/resources/extra/Home.css +++ b/vspace/src/main/webapp/resources/extra/Home.css @@ -719,6 +719,13 @@ text-align: justify; } +.SpaceDivStaff { + position: relative; + top: 0px; + overflow: visible; + text-align: justify; +} + .choiceDiv { position: relative; top: 0px; From 83b4e4dc8caca574cbbe42f7c698da482db800b0 Mon Sep 17 00:00:00 2001 From: glend17 Date: Mon, 8 Nov 2021 12:37:40 -0700 Subject: [PATCH 016/138] [VSPC-171] Delete and edit related changes for space block --- .../core/services/IContentBlockManager.java | 12 ++ .../services/impl/ContentBlockManager.java | 31 ++++++ .../web/staff/DeleteSpaceBlockController.java | 38 +++++++ .../web/staff/EditSpaceBlockController.java | 16 ++- .../views/staff/modules/slides/slide.html | 104 +++++++++++++++++- 5 files changed, 199 insertions(+), 2 deletions(-) create mode 100644 vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java index a2a325a0a..b6c805f15 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IContentBlockManager.java @@ -55,4 +55,16 @@ IChoiceBlock createChoiceBlock(String slideId, List selectedChoices, Int ISpaceBlock getSpaceBlock(String spaceBlockId); void updateSpaceBlock(SpaceBlock textBlock); + + /** + * Delete a space block using an id and also decrease content order by 1 of all + * the slide's block which are after this block + * + * @param blockId - id of resource to be deleted. If the id is null then the + * functions returns nothing. + * @param slideId - id of the slide in which the text block with blockId is + * present. + * + */ + void deleteSpaceBlockById(String blockId, String slideId) throws BlockDoesNotExistException; } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java index 7f9b4095e..1a6f321cb 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ContentBlockManager.java @@ -225,6 +225,37 @@ public void deleteTextBlockById(String blockId, String slideId) throws BlockDoes } } + + /** + * Delete a space block using an id and also decrease content order by 1 of all + * the slide's block which are after this block + * + * @param blockId - id of resource to be deleted. If the id is null then the + * functions returns nothing. + * @param slideId - id of the slide in which the text block with blockId is + * present. + * + */ + @Override + public void deleteSpaceBlockById(String blockId, String slideId) throws BlockDoesNotExistException { + if (blockId == null) { + return; + } + Integer contentOrder = null; + Optional contentBlock = contentBlockRepository.findById(blockId); + if (contentBlock.isPresent()) { + contentOrder = contentBlock.get().getContentOrder(); + } else { + throw new BlockDoesNotExistException("Block Id not present"); + } + try { + spaceBlockRepo.deleteById(blockId); + updateContentOrder(slideId, contentOrder); + } catch (EmptyResultDataAccessException e) { + throw new BlockDoesNotExistException(e); + } + + } /** * Delete an image block using an id and also decrease content order by 1 of all diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java new file mode 100644 index 000000000..904d3357e --- /dev/null +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java @@ -0,0 +1,38 @@ +package edu.asu.diging.vspace.web.staff; + +import java.io.IOException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import edu.asu.diging.vspace.core.exception.BlockDoesNotExistException; +import edu.asu.diging.vspace.core.services.IContentBlockManager; + +public class DeleteSpaceBlockController { + + private final Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private IContentBlockManager contentBlockManager; + + @RequestMapping(value = "/staff/module/{moduleId}/slide/{id}/space/{blockId}", method = RequestMethod.DELETE) + public ResponseEntity deleteSpaceBlock(@PathVariable("id") String slideId,@PathVariable("blockId") String blockId) throws IOException { + + try { + contentBlockManager.deleteSpaceBlockById(blockId,slideId); + + } catch (BlockDoesNotExistException e) { + logger.warn("Text Id does not exist, bad request.", e); + return new ResponseEntity(HttpStatus.BAD_REQUEST); + } + + return new ResponseEntity(HttpStatus.OK); + } + +} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceBlockController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceBlockController.java index 603b37bde..e5dd7fc1f 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceBlockController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceBlockController.java @@ -2,6 +2,8 @@ import java.io.IOException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -11,21 +13,33 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; +import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.ISpaceBlock; import edu.asu.diging.vspace.core.model.impl.SpaceBlock; import edu.asu.diging.vspace.core.services.IContentBlockManager; +import edu.asu.diging.vspace.core.services.ISpaceManager; @Controller public class EditSpaceBlockController { + + private final Logger logger = LoggerFactory.getLogger(getClass()); + @Autowired private IContentBlockManager contentBlockManager; + + @Autowired + private ISpaceManager spaceManager; @RequestMapping(value = "/staff/module/{moduleId}/slide/{id}/space/edit", method = RequestMethod.POST) public ResponseEntity editTextBlock(@PathVariable("id") String slideId, @RequestParam("spaceBlockId") String blockId, @PathVariable("moduleId") String moduleId, - @RequestParam("spaceBlockTitle") String spaceBlockTitle) throws IOException { + @RequestParam("spaceBlockTitle") String spaceBlockTitle, + @RequestParam("spaceId") String spaceId) throws IOException { + logger.info("Space id selected is {}", spaceId); ISpaceBlock spaceBlock = contentBlockManager.getSpaceBlock(blockId); + ISpace space = spaceManager.getSpace(spaceId); spaceBlock.setTitle(spaceBlockTitle); + spaceBlock.setSpace(space); contentBlockManager.updateSpaceBlock((SpaceBlock) spaceBlock); return new ResponseEntity(HttpStatus.OK); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html index e950b9d5f..94f371970 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html @@ -458,6 +458,13 @@ $('.modal-footer').append(alert); }); + $(document).on("click", ".deleteSpace", function(e) { + $("#confirmDeleteSpaceAlert").show(); + var alert = $(''); + $(alert).attr( 'value', $(this).siblings('input').val()); + $('.modal-footer').append(alert); + }); + $(document).on("click", ".deleteImage", function(e) { $("#confirmDeleteImageAlert").show(); var alert = $(''); @@ -487,6 +494,14 @@ $("#confirmDeleteTextAlert").hide(); }); + $("#cancelDeleteSpace").click(function() { + $("#confirmDeleteSpaceAlert").find('input').remove(); + $("#confirmDeleteTextAlert").find('input').remove(); + $("#confirmDeleteImageAlert").find('input').remove(); + $("#confirmDeleteChoiceBlockAlert").find('input').remove(); + $("#confirmDeleteSpaceAlert").hide(); + }); + $("#cancelDeleteImage").click(function() { $("#confirmDeleteImageAlert").hide(); }); @@ -511,6 +526,7 @@ e.preventDefault(); $("#confirmDeleteImageAlert").find('input').remove(); $("#confirmDeleteChoiceBlockAlert").find('input').remove(); + $("#confirmDeleteSpaceAlert").find('input').remove(); $("#confirmDeleteTextAlert").hide(); var blockId = $('#deleteTextId').attr('value'); $('#deleteTextId').remove() @@ -532,6 +548,35 @@ } }); }); + + // ---------- Delete Space Block ------------- + + $("#deleteSpace").on("click", function(e) { + e.preventDefault(); + $("#confirmDeleteImageAlert").find('input').remove(); + $("#confirmDeleteChoiceBlockAlert").find('input').remove(); + $("#confirmDeleteTextAlert").find('input').remove(); + $("#confirmDeleteSpaceAlert").hide(); + var blockId = $('#deleteSpaceId').attr('value'); + $('#deleteSpaceId').remove() + + // ------------- delete text content blocks ------------ + $.ajax({ + url: "[(@{'/staff/module/'+${module.id}+'/slide/'+${slide.id}+'/space/'})]"+blockId+'?'+[[${_csrf.parameterName}]]+'='+[[${_csrf.token}]], + type: 'DELETE', + success: function(result) { + $('#' + blockId).remove(); + + }, + error: function(data) { + var alert = $(''); + $('.error').append(alert); + $(".error").delay(4000).slideUp(500, function(){ + $(".error").empty(); + }); + } + }); + }); // ---------- Delete Image Block ----------- @@ -539,6 +584,7 @@ e.preventDefault(); $("#confirmDeleteTextAlert").find('input').remove(); $("#confirmDeleteChoiceBlockAlert").find('input').remove(); + $("#confirmDeleteSpaceAlert").find('input').remove(); $("#confirmDeleteImageAlert").hide(); var blockId = $('#deleteImageId').attr('value'); if(blockId == null || blockId == ''){ @@ -571,6 +617,7 @@ e.preventDefault(); $("#confirmDeleteTextAlert").find('input').remove(); $("#confirmDeleteImageAlert").find('input').remove(); + $("#confirmDeleteSpaceAlert").find('input').remove(); $("#confirmDeleteChoiceBlockAlert").hide(); var blockId = $('#deleteChoiceBlockId').attr('value'); if(blockId == null || blockId == ''){ @@ -774,6 +821,13 @@ var blockId = $(this).closest(".open").attr("id"); updateTextBox(blockId, defaultValue); }); + + // must add the event to the document since the buttons are added dynamically + $('#cancelSpaceBlock').on('click',function(){ + $("#editSpaceAlert").hide(); + var blockId = $(this).closest(".open").attr("id"); + updateTextBox(blockId, defaultValue); + }); $('.valueDiv').mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(onDoubleClick); $('.textDivStaff').mouseenter(onMouseEnter).mouseleave(onMouseLeave).dblclick(onDoubleClick); @@ -818,6 +872,8 @@ $("#submitSpaceBlock").on("click", function(e){ e.preventDefault(); // ------------- editting text content blocks ------------ + var selectedSpace = document.getElementById('editSpaceName'); + var spaceId = selectedSpace.options[selectedSpace.selectedIndex].value; var formData = new FormData(); var text = markDown.value(); markDown.value(''); @@ -825,8 +881,9 @@ var blockId = $(".open").attr("id"); formData.append('spaceBlockTitle', text); formData.append('spaceBlockId', blockId); + formData.append('spaceId', spaceId); console.log(text); - console.log(blockId); + console.log(spaceId); $("#editSpaceAlert").hide(); $.ajax({ url: "[(@{'/staff/module/'+${module.id}+'/slide/'+${slide.id}+'/space/edit?'+${_csrf.parameterName}+'='+${_csrf.token}})]", @@ -913,6 +970,25 @@ } }); + $(window).on('load', function () { + var divWindow = $(".valueDiv"); + $(".deleteSpace").css('position', 'absolute'); + $(".deleteSpace").css('right', '0'); + var images = $(".imgDiv"); + resizeImage(images); + + function resizeImage(images) { + for(var i =0; i < images.length; i++) { + if (images[i].width > divWindow.width() || images[i].width >= 800) { + $(".valueDiv").find("#"+images[i].id).css("width", 800); + images[i].width = 800; + } else { + $(".valueDiv").find("#"+images[i].id).css("width", images[i].width); + } + } + } + }); + @@ -997,6 +1073,32 @@
Are you sure you want to delete this + + + -
+

+ +

+

Current selected space is

-
- -
-
- -
+

diff --git a/vspace/src/main/webapp/resources/extra/Home.css b/vspace/src/main/webapp/resources/extra/Home.css index c5eaf1bd0..9564fe56a 100644 --- a/vspace/src/main/webapp/resources/extra/Home.css +++ b/vspace/src/main/webapp/resources/extra/Home.css @@ -660,7 +660,7 @@ right: 2.5%; left: 2.5%; bottom: 0; - z-index: 9999; + z-index: 1050; overflow-y: scroll; background: white; padding: 25px; From 23c3726b0a11011dfe873b04f750270c0de353a7 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Mon, 29 Nov 2021 16:38:25 -0700 Subject: [PATCH 025/138] [VSPC-196] Completed changes for selecting existing images for Spacelink(create, edit and delete), started with moduleLink create part --- .../core/services/impl/LinkManager.java | 2 +- .../web/staff/AddModuleLinkController.java | 5 +- .../web/staff/AddSpaceLinkController.java | 2 +- .../web/staff/EditModuleLinkController.java | 2 +- .../web/staff/EditSpaceLinkController.java | 14 +- .../WEB-INF/views/staff/spaces/space.html | 344 ++++++++++++++++-- 6 files changed, 323 insertions(+), 46 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java index 6a2b98ab9..aa60e71d5 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java @@ -126,7 +126,7 @@ protected void setDisplayProperties(ILinkDisplay linkDisplay,String id, float po image.setParentPath(relativePath); imageRepo.save((VSImage) image); } - else if(existingImageId!=null) { + else if(existingImageId!=null && existingImageId.trim()!="") { image = imageService.getImageById(existingImageId); } linkDisplay.setImage(image); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java index 187129d38..388d3447e 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java @@ -38,7 +38,8 @@ public class AddModuleLinkController { public ResponseEntity createModuleLink(@PathVariable("id") String id, @RequestParam("x") String x, @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("moduleLinkLabel") String title, @RequestParam("linkedModule") String linkedModuleId, @RequestParam("moduleLinkLabel") String moduleLinkLabel, - @RequestParam("moduleType") String displayType, @RequestParam("moduleLinkImage") MultipartFile file) + @RequestParam("moduleType") String displayType, @RequestParam(value="moduleLinkImage", required = false) MultipartFile file, + @RequestParam(value="imageId", required=false) String imageId) throws NumberFormatException, SpaceDoesNotExistException, IOException, ImageCouldNotBeStoredException, ImageDoesNotExistException { ISpace source = spaceManager.getSpace(id); @@ -64,7 +65,7 @@ public ResponseEntity createModuleLink(@PathVariable("id") String id, @R IModuleLinkDisplay display; try { display = moduleLinkManager.createLink(title, id, new Float(x), new Float(y), - new Integer(rotation), linkedModuleId, moduleLinkLabel, type, linkImage, filename, null); + new Integer(rotation), linkedModuleId, moduleLinkLabel, type, linkImage, filename, imageId); } catch (SpaceDoesNotExistException e) { ObjectMapper mapper = new ObjectMapper(); ObjectNode node = mapper.createObjectNode(); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceLinkController.java index bfea76734..303d43ef4 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddSpaceLinkController.java @@ -39,7 +39,7 @@ public ResponseEntity createSpaceLink(@PathVariable("id") String id, @Re @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("spaceLinkLabel") String title, @RequestParam("linkedSpace") String linkedSpaceId, @RequestParam("spaceLinkLabel") String spaceLinkLabel, @RequestParam("type") String displayType, @RequestParam(value="spaceLinkImage", required = false) MultipartFile file, - @RequestParam("imageId") String imageId) + @RequestParam(value="imageId", required=false) String imageId) throws NumberFormatException, SpaceDoesNotExistException, IOException, ImageDoesNotExistException { ISpace source = spaceManager.getSpace(id); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java index 8d64eb2ae..3b4352b06 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java @@ -33,7 +33,7 @@ public ResponseEntity editModuleLink(@PathVariable("id") String id, @Req @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("moduleLinkLabel") String title, @RequestParam("linkedModule") String linkedModuleId, @RequestParam("moduleLinkLabel") String moduleLinkLabel, @RequestParam("moduleLinkIdValueEdit") String moduleLinkIdValueEdit, @RequestParam("moduleLinkDisplayId") String moduleLinkDisplayId, - @RequestParam("type") String displayType, @RequestParam("moduleLinkImage") MultipartFile file) + @RequestParam("type") String displayType, @RequestParam(value="moduleLinkImage", required=false) MultipartFile file, @RequestParam(value="imageId", required=false) String imageId) throws NumberFormatException, SpaceDoesNotExistException, LinkDoesNotExistsException, IOException, ImageCouldNotBeStoredException { ResponseEntity validation = checkIfSpaceExists(spaceManager, id, x, y); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceLinkController.java index 76007a1af..4dd472449 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditSpaceLinkController.java @@ -12,6 +12,7 @@ import org.springframework.web.multipart.MultipartFile; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; +import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; import edu.asu.diging.vspace.core.model.display.DisplayType; @@ -34,9 +35,9 @@ public ResponseEntity editSpaceLink(@PathVariable("id") String id, @Requ @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("spaceLinkLabel") String title, @RequestParam("linkedSpace") String linkedSpaceId, @RequestParam("spaceLinkLabel") String spaceLinkLabel, @RequestParam("spaceLinkIdValueEdit") String spaceLinkIdValueEdit, @RequestParam("spaceLinkDisplayId") String spaceLinkDisplayId, - @RequestParam("type") String displayType, @RequestParam("spaceLinkImage") MultipartFile file) - throws NumberFormatException, SpaceDoesNotExistException, LinkDoesNotExistsException, IOException, ImageCouldNotBeStoredException { - + @RequestParam(value="spaceLinkImageIdEdit", required=false) String spaceLinkImageIdEdit, + @RequestParam("type") String displayType, @RequestParam(value="spaceLinkImage", required = false) MultipartFile file, @RequestParam(value="imageId", required=false) String imageId) + throws NumberFormatException, SpaceDoesNotExistException, LinkDoesNotExistsException, IOException, ImageCouldNotBeStoredException, ImageDoesNotExistException { ResponseEntity validation = checkIfSpaceExists(spaceManager, id, x, y); if(validation!=null) { @@ -44,13 +45,16 @@ public ResponseEntity editSpaceLink(@PathVariable("id") String id, @Requ } byte[] linkImage = null; String filename = null; - if (file != null) { + if (file != null && !file.isEmpty()) { linkImage = file.getBytes(); filename = file.getOriginalFilename(); + } else if(imageId==null || imageId.equals("")){ + String[] token = spaceLinkImageIdEdit.split("/"); + imageId = token[token.length - 1]; } DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); ISpaceLinkDisplay display = (ISpaceLinkDisplay) spaceLinkManager.updateLink(title, id, new Float(x), new Float(y), - new Integer(rotation), linkedSpaceId, spaceLinkLabel, spaceLinkIdValueEdit, spaceLinkDisplayId, type, linkImage, filename); + new Integer(rotation), linkedSpaceId, spaceLinkLabel, spaceLinkIdValueEdit, spaceLinkDisplayId, type, linkImage, filename, imageId); SpaceStatus targetSpaceStatus=spaceManager.getSpace(linkedSpaceId).getSpaceStatus(); String linkedSpaceStatus = targetSpaceStatus!=null ? targetSpaceStatus.toString() : null; return success(display.getLink().getId(), display.getId(), display.getPositionX(), display.getPositionY(), display.getRotation(), null, title,displayType,linkedSpaceId, linkedSpaceStatus); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index e6c56e124..89fa7f4c0 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -20,6 +20,7 @@ }); drawLinks(); }); + //store where a user clicked on an image var storeX; var storeY; @@ -38,14 +39,27 @@ var linkIcon; linkIconReader.onload = function(e) { debugger; + linkIcon = e.target.result; - showSpaceLink(createSpaceLinkInfo()); + var linkId = $("#spaceLinkIdValueEdit").val(); + if(linkId!=null && linkId!="") { + showSpaceLinkEdit(editSpaceLinkInfo()); + } else { + showSpaceLink(createSpaceLinkInfo()); + } + } var moduleLinkIconReader = new FileReader(); var moduleLinkIcon; moduleLinkIconReader.onload = function(e) { moduleLinkIcon = e.target.result; + var linkId = $("#spaceLinkIdValueEdit").val(); + if(linkId!=null && linkId!="") { + showSpaceLinkEdit(editSpaceLinkInfo()); + } else { + showSpaceLink(createSpaceLinkInfo()); + } showModuleLink(createModuleLinkInfo()); } @@ -117,7 +131,7 @@ $('#'+spanId+link.link.id).css('cursor', 'pointer'); $('#'+spanId+link.link.id).click(function(e) { var linkData = $('#'+spanId+link.link.id).data(); - makeSpaceLinksEditable(linkData["linklabel"], link.link.id, linkData["linkrotation"] ,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"]); + makeSpaceLinksEditable(linkData["linklabel"], link.link.id, linkData["linkrotation"] ,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"], $('#'+spanId+link.link.id).attr('src')); }); } } @@ -170,6 +184,7 @@ } function drawLinks(){ + debugger; $(".Info_cz_Class").remove(); $(".imageLink").remove(); $(".alertLink").remove(); @@ -248,6 +263,9 @@ if (spaceLink["type"] == "ALERT") { link = $('

'); } else if(spaceLink["type"] == "IMAGE" && linkIcon) { + if(selectedSpaceLinkId!=null) { + $('#spacelinkModalId-'+selectedSpaceLinkId).css('visbility', 'hidden'); + } link = $(''); } else { $(space_label).css({ @@ -310,6 +328,9 @@ if (moduleLink["type"] == "ALERT") { link = $(''); } else if(moduleLink["type"] == "IMAGE" && moduleLinkIcon) { + if(selectedModuleLinkId!=null) { + $('#moduleModallinkId-'+selectedModuleLinkId).css('visbility', 'hidden'); + } link = $(''); } else{ $(module_label).css({ @@ -359,6 +380,7 @@ } function showSpaceLinkEdit(spaceLink, show, posX, posY) { + debugger; spaceLink["x"]=storeX; spaceLink["y"]=storeY; var selectedLinkClass = '#spacelinkModalId-'+selectedSpaceLinkId; @@ -410,6 +432,9 @@ $(selectedLinkClass).css({ 'top': y + posY}); $(selectedLabelClass+' span').remove(); $(selectedLabelClass).append('' + linkLabel + ''); + if(linkIcon!=null) { + $(selectedLinkClass).attr('src', linkIcon); + } feather.replace(); } @@ -520,6 +545,7 @@ } function editSpaceLinkInfo() { + debugger; var info = {}; info["x"] = storeX; info["y"] = storeY; @@ -540,7 +566,8 @@ return info; } -function makeSpaceLinksEditable(spaceLinkName, spaceLinkId, rotation, selectedSpaceId, posXEdit, posYEdit, displayLinkId, linkType) { +function makeSpaceLinksEditable(spaceLinkName, spaceLinkId, rotation, selectedSpaceId, posXEdit, posYEdit, displayLinkId, linkType, spaceLinkImageId) { + debugger; $("#spaceLinkInfoLabel").text(spaceLinkName); $("#spaceLinkId").val(spaceLinkId); selectedSpaceLinkId=spaceLinkId; @@ -552,6 +579,7 @@ $("#spaceLinkLabelEdit").val(spaceLinkName); $("#spaceLinkId").val(spaceLinkId); $("#spaceLinkIdValueEdit").val(spaceLinkId); + $("#spaceLinkImageIdEdit").val(spaceLinkImageId); $("#spaceLinkRotationEdit").val(rotation); $('#typeSpaceEdit option[value="'+linkType+'"]').attr("selected", "selected"); $('#spaceLinkIdEdit option[value="'+selectedSpaceId+'"]').attr("selected", "selected"); @@ -574,12 +602,13 @@ displayForms("#editSpaceLinkInfo"); } function displayForms(formToShow){ + debugger; drawLinks(); $("#space").css("display", "-webkit-box"); $(formToShow).css("display", "flex"); } -function makeModuleLinksEditable(moduleLinkName, moduleLinkId, rotation, selectedModuleId, posXEdit, posYEdit, displayLinkId, linkType) { +function makeModuleLinksEditable(moduleLinkName, moduleLinkId, rotation, selectedModuleId, posXEdit, posYEdit, displayLinkId, linkType, moduleLinkImageId) { selectedModuleLinkId=moduleLinkId; storeX=posXEdit; storeY=posYEdit; @@ -589,6 +618,7 @@ $("#moduleLinkLabelEdit").val(moduleLinkName); $("#moduleLinkId").val(moduleLinkId); $("#moduleLinkIdValueEdit").val(moduleLinkId); + $("#moduleLinkImageIdEdit").val(moduleLinkImageId); $("#moduleLinkRotationEdit").val(rotation); $('#moduleTypeEdit option[value="'+linkType+'"]').attr("selected", "selected"); $('#moduleLinkIdEdit option[value="'+selectedModuleId+'"]').attr("selected", "selected"); @@ -667,25 +697,25 @@ if ($("div#incomingLinks a").length < 2) { $("#noLinksToSpace").show() } - $('#imageId').prop("disabled",true); - $('#chooseFromLocal').click(function() { - $("#selectedImage").empty(); - $('#imageId').prop('selectedIndex',0).trigger( "change" ); - $('#imageId').prop("disabled",true); + $('#imageId-spcLink').prop("disabled",true); + $('#chooseFromLocal-spcLink').click(function() { + $("#selectedImage-spcLink").empty(); + $('#imageId-spcLink').prop('selectedIndex',0).trigger( "change" ); + $('#imageId-spcLink').prop("disabled",true); $('#spaceLinkImage').prop("disabled",false); linkIcon = null; showSpaceLink(createSpaceLinkInfo()); }); - $('#chooseFromExisting').click(function() { + $('#chooseFromExisting-spcLink').click(function() { $('#spaceLinkImage').val(''); $('#spaceLinkImage').prop("disabled",true); - $('#imageId').prop("disabled",false); + $('#imageId-spcLink').prop("disabled",false); linkIcon = null; showSpaceLink(createSpaceLinkInfo()); }); - $("#imageId").select2({ + $("#imageId-spcLink").select2({ ajax: { url: function (params) { var imageURL = [[@{|/staff/images/search|}]]; @@ -702,6 +732,41 @@ templateSelection: formatSelection }); + $('#imageId-spcLinkEdit').prop("disabled",true); + $('#chooseFromLocal-spcLinkEdit').click(function() { + $("#selectedImage-spcLinkEdit").empty(); + $('#imageId-spcLinkEdit').prop('selectedIndex',0).trigger( "change" ); + $('#imageId-spcLinkEdit').prop("disabled",true); + $('#spaceLinkImageEdit').prop("disabled",false); + linkIcon = $('#spaceLinkImageIdEdit').val(); + showSpaceLinkEdit(editSpaceLinkInfo()); + }); + + $('#chooseFromExisting-spcLinkEdit').click(function() { + $('#spaceLinkImageEdit').val(''); + $('#spaceLinkImageEdit').prop("disabled",true); + $('#imageId-spcLinkEdit').prop("disabled",false); + linkIcon = null; + showSpaceLinkEdit(editSpaceLinkInfo()); + }); + + $("#imageId-spcLinkEdit").select2({ + ajax: { + url: function (params) { + var imageURL = [[@{|/staff/images/search|}]]; + return imageURL; + }, + dataType: 'json', + processResults: function (data) { + return { + results: data, + }; + }, + }, + templateResult: formatImage, + templateSelection: formatSelectionEdit + }); + function formatImage (image) { if (!image.id) { return image.text; @@ -722,12 +787,132 @@ var $image = $( '' + image.text + '' ); - $("#selectedImage").empty(); - $("#selectedImage").append(''); + $("#selectedImage-spcLink").empty(); + $("#selectedImage-spcLink").append(''); linkIcon = tbaseUrl + image.id; showSpaceLink(createSpaceLinkInfo()); return $image; } + + function formatSelectionEdit(image) { + debugger; + if (!image.id) { + return image.text; + } + var tbaseUrl = [[@{|/api/image/|}]]; + var $image = $( + '' + image.text + '' + ); + $("#selectedImage-spcLinkEdit").empty(); + $("#selectedImage-spcLinkEdit").append(''); + linkIcon = tbaseUrl + image.id; + showSpaceLinkEdit(editSpaceLinkInfo()); + return $image; + } + + + //Module link selection of existing images + $('#imageId-modLink').prop("disabled",true); + $('#chooseFromLocal-modLink').click(function() { + $("#selectedImage-modLink").empty(); + $('#imageId-modLink').prop('selectedIndex',0).trigger( "change" ); + $('#imageId-modLink').prop("disabled",true); + $('#moduleLinkImage').prop("disabled",false); + linkIcon = null; + showModuleLink(createModuleLinkInfo()); + }); + + $('#chooseFromExisting-modLink').click(function() { + $('#moduleLinkImage').val(''); + $('#moduleLinkImage').prop("disabled",true); + $('#imageId-modLink').prop("disabled",false); + linkIcon = null; + showModuleLink(createModuleLinkInfo()); + }); + + $("#imageId-modLink").select2({ + ajax: { + url: function (params) { + var imageURL = [[@{|/staff/images/search|}]]; + return imageURL; + }, + dataType: 'json', + processResults: function (data) { + return { + results: data, + }; + }, + }, + templateResult: formatImage, + templateSelection: formatSelectionModule + }); + + $('#imageId-modLinkEdit').prop("disabled",true); + $('#chooseFromLocal-modLinkEdit').click(function() { + $("#selectedImage-modLinkEdit").empty(); + $('#imageId-modLinkEdit').prop('selectedIndex',0).trigger( "change" ); + $('#imageId-modLinkEdit').prop("disabled",true); + $('#moduleLinkImageEdit').prop("disabled",false); + linkIcon = $('#moduleLinkImageIdEdit').val(); + showSpaceLinkEdit(editSpaceLinkInfo()); + }); + + $('#chooseFromExisting-modLinkEdit').click(function() { + $('#moduleLinkImageEdit').val(''); + $('#moduleLinkImageEdit').prop("disabled",true); + $('#imageId-modLinkEdit').prop("disabled",false); + linkIcon = null; + showSpaceLinkEdit(editSpaceLinkInfo()); + }); + + $("#imageId-modLinkEdit").select2({ + ajax: { + url: function (params) { + var imageURL = [[@{|/staff/images/search|}]]; + return imageURL; + }, + dataType: 'json', + processResults: function (data) { + return { + results: data, + }; + }, + }, + templateResult: formatImage, + templateSelection: formatSelectionEditModule + }); + + function formatSelectionModule(image) { + debugger; + if (!image.id) { + return image.text; + } + var tbaseUrl = [[@{|/api/image/|}]]; + var $image = $( + '' + image.text + '' + ); + $("#selectedImage-modLink").empty(); + $("#selectedImage-modLink").append(''); + linkIcon = tbaseUrl + image.id; + showModuleLink(createModuleLinkInfo()); + return $image; + } + + function formatSelectionEditModule(image) { + debugger; + if (!image.id) { + return image.text; + } + var tbaseUrl = [[@{|/api/image/|}]]; + var $image = $( + '' + image.text + '' + ); + $("#selectedImage-modLinkEdit").empty(); + $("#selectedImage-modLinkEdit").append(''); + linkIcon = tbaseUrl + image.id; + showModuleLinkEdit(editModuleLinkInfo()); + return $image; + } }); // -------- buttons that open modals (e.g. to create space links) ------ @@ -842,7 +1027,7 @@ var formData = new FormData(form[0]); var spaceLinkInfo = createSpaceLinkInfo(); - var imageSource = $('#selectedImage').find('img').attr('src'); + var imageSource = $('#selectedImage-spcLink').find('img').attr('src'); var imageId = ""; if(typeof(imageSource) != "undefined"){ imageId = imageSource.split("/").pop().split(".")[0]; @@ -937,6 +1122,14 @@ var formData = new FormData(form[0]); var moduleLinkInfo = createModuleLinkInfo(); + + var imageSource = $('#selectedImage-modLink').find('img').attr('src'); + var imageId = ""; + if(typeof(imageSource) != "undefined"){ + imageId = imageSource.split("/").pop().split(".")[0]; + } + formData.set('imageId',imageId); + formData.delete('uploadRadioBtn'); $.ajax({ type: "POST", @@ -1022,6 +1215,7 @@ }); $("#editSpaceLinkBtn").click(function(e) { + debugger; e.preventDefault(); var linkId = $("#spaceLinkIdEdit").val(); if (storeX == undefined || storeY == undefined) { @@ -1035,6 +1229,7 @@ var form = $("#editSpaceLinkForm"); var formData = new FormData(form[0]); + formData.delete('uploadRadioBtn'); var spaceLinkInfo = editSpaceLinkInfo(); $.ajax({ type: "POST", @@ -1066,6 +1261,7 @@ hideLinkInfoTabs(); $("#space").css("display", "none"); selectedSpaceLinkId=undefined; + drawLinks(); } }); @@ -1208,6 +1404,7 @@ success:function(data) { $('[data-link-id="' + linkId + '"]').remove(); $('[data-link-id="unpublished-' + linkId + '"]').remove(); + $('#spaceLinkIdValueEdit').val(""); hideLinkInfoTabs(); $('a#'+linkId).remove(); if ($("div#outgoingLinks a").length < 2) { @@ -1323,7 +1520,18 @@ } }); - $("#imageId").change(function() { + $("#spaceLinkImageEdit").change(function() { + debugger; + var linkId = $("#spaceLinkIdValueEdit").val(); + if (this.files && this.files[0]) { + linkIconReader.readAsDataURL(this.files[0]); + } + /* $('#spacelinkModalId-' + linkId ).remove(); */ + console.log(linkIcon); + + }); + + $("#imageId-spcLink").change(function() { debugger; }); @@ -1345,8 +1553,8 @@ storeX = null; storeY = null; $("#link").remove(); - $('#chooseFromLocal').trigger( "click" ); - $('#imageId').val(''); + $('#chooseFromLocal-spcLink').trigger( "click" ); + $('#imageId-spcLink').val(''); $("#space_label").remove(); $("#space").hide(); $("#createSpaceLinkAlert").hide(); @@ -1392,6 +1600,8 @@ resetHighlighting(); $("#space").hide(); $("#editModuleLinkInfo").hide(); + $("#moduleLinkImageIdEdit").val(""); + moduleLinkIcon=null; drawLinks(); }); @@ -1403,6 +1613,9 @@ resetHighlighting(); $("#space").hide(); $("#editSpaceLinkInfo").hide(); + $("#spaceLinkIdValueEdit").val(""); + $("#spaceLinkImageIdEdit").val(""); + linkIcon=null; drawLinks(); }); @@ -1606,25 +1819,25 @@
Create new Space Link
@@ -1702,15 +1915,31 @@
Create new Module Link
-
-
- -
-
- -
+
+

@@ -1807,6 +2036,7 @@

Space Link: + @@ -1865,12 +2095,28 @@
Space Link:
-
- -
-
- -
+

@@ -1905,6 +2151,8 @@

+ + @@ -1972,6 +2220,30 @@
+
+ +

From 6107df5337460cc45418e72def354ec7faa68b6a Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Tue, 7 Dec 2021 16:38:27 -0700 Subject: [PATCH 026/138] [VSPC-196] Completed create and delete part for external links. wip for edit part --- .../web/staff/AddExternalLinkController.java | 5 +- .../web/staff/EditExternalLinkController.java | 9 +- .../web/staff/EditModuleLinkController.java | 9 +- .../WEB-INF/views/staff/spaces/space.html | 243 +++++++++++++++--- 4 files changed, 221 insertions(+), 45 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddExternalLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddExternalLinkController.java index 6602290ad..5ebbe06f5 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddExternalLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddExternalLinkController.java @@ -36,7 +36,8 @@ public class AddExternalLinkController { @RequestMapping(value = "/staff/space/{id}/externallink", method = RequestMethod.POST) public ResponseEntity createExternalLink(@PathVariable("id") String id, @RequestParam("x") String x, @RequestParam("y") String y, @RequestParam("externalLinkLabel") String title, @RequestParam("url") String externalLink, - @RequestParam("type") String displayType, @RequestParam("externalLinkImage") MultipartFile file) + @RequestParam("type") String displayType, @RequestParam(value="externalLinkImage", required=false) MultipartFile file, + @RequestParam(value="imageId", required=false) String imageId) throws NumberFormatException, SpaceDoesNotExistException, IOException, ImageCouldNotBeStoredException, ImageDoesNotExistException { ISpace space = spaceManager.getSpace(id); @@ -51,7 +52,7 @@ public ResponseEntity createExternalLink(@PathVariable("id") String id, filename = file.getOriginalFilename(); } DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); - IExternalLinkDisplay display = externalLinkManager.createLink(title, id, new Float(x), new Float(y), 0, externalLink, title, type, linkImage, filename, null); + IExternalLinkDisplay display = externalLinkManager.createLink(title, id, new Float(x), new Float(y), 0, externalLink, title, type, linkImage, filename, imageId); ObjectMapper mapper = new ObjectMapper(); ObjectNode linkNode = mapper.createObjectNode(); linkNode.put("id", display.getExternalLink().getId()); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditExternalLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditExternalLinkController.java index 9a68d40ce..eadf304fc 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditExternalLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditExternalLinkController.java @@ -12,6 +12,7 @@ import org.springframework.web.multipart.MultipartFile; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; +import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; import edu.asu.diging.vspace.core.model.display.DisplayType; @@ -32,8 +33,10 @@ public class EditExternalLinkController extends EditSpaceLinksController{ public ResponseEntity createExternalLink(@PathVariable("id") String id, @RequestParam("x") String x, @RequestParam("y") String y, @RequestParam("externalLinkLabel") String title, @RequestParam("url") String externalLink, @RequestParam("externalLinkIdValueEdit") String externalLinkIdValueEdit, @RequestParam("externalLinkDisplayId") String externalLinkDisplayId, - @RequestParam("type") String displayType, @RequestParam("externalLinkImage") MultipartFile file) - throws SpaceDoesNotExistException, IOException, LinkDoesNotExistsException, NumberFormatException, ImageCouldNotBeStoredException { + @RequestParam(value="externalLinkImageIdEdit", required=false) String externalLinkImageIdEdit, + @RequestParam("type") String displayType, @RequestParam(value="externalLinkImage", required=false) MultipartFile file, + @RequestParam(value="imageId", required=false) String imageId) + throws SpaceDoesNotExistException, IOException, LinkDoesNotExistsException, NumberFormatException, ImageCouldNotBeStoredException, ImageDoesNotExistException { ResponseEntity validation = checkIfSpaceExists(spaceManager, id, x, y); if(validation!=null) { @@ -46,7 +49,7 @@ public ResponseEntity createExternalLink(@PathVariable("id") String id, filename = file.getOriginalFilename(); } DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); - IExternalLinkDisplay display = (IExternalLinkDisplay) externalLinkManager.updateLink(title, id, new Float(x), new Float(y), 0, externalLink, title, externalLinkIdValueEdit, externalLinkDisplayId, type, linkImage, filename); + IExternalLinkDisplay display = (IExternalLinkDisplay) externalLinkManager.updateLink(title, id, new Float(x), new Float(y), 0, externalLink, title, externalLinkIdValueEdit, externalLinkDisplayId, type, linkImage, filename, imageId); return success(display.getExternalLink().getId(), display.getId(), display.getPositionX(), display.getPositionY(), display.getRotation(), display.getExternalLink().getExternalLink(), title,displayType,null,null); } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java index 3b4352b06..e9dda6a4d 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java @@ -12,6 +12,7 @@ import org.springframework.web.multipart.MultipartFile; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; +import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; import edu.asu.diging.vspace.core.model.display.DisplayType; @@ -33,8 +34,9 @@ public ResponseEntity editModuleLink(@PathVariable("id") String id, @Req @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("moduleLinkLabel") String title, @RequestParam("linkedModule") String linkedModuleId, @RequestParam("moduleLinkLabel") String moduleLinkLabel, @RequestParam("moduleLinkIdValueEdit") String moduleLinkIdValueEdit, @RequestParam("moduleLinkDisplayId") String moduleLinkDisplayId, + @RequestParam("moduleLinkImageIdEdit") String moduleLinkImageIdEdit, @RequestParam("type") String displayType, @RequestParam(value="moduleLinkImage", required=false) MultipartFile file, @RequestParam(value="imageId", required=false) String imageId) - throws NumberFormatException, SpaceDoesNotExistException, LinkDoesNotExistsException, IOException, ImageCouldNotBeStoredException { + throws NumberFormatException, SpaceDoesNotExistException, LinkDoesNotExistsException, IOException, ImageCouldNotBeStoredException, ImageDoesNotExistException { ResponseEntity validation = checkIfSpaceExists(spaceManager, id, x, y); if(validation!=null) { @@ -45,10 +47,13 @@ public ResponseEntity editModuleLink(@PathVariable("id") String id, @Req if (file != null) { linkImage = file.getBytes(); filename = file.getOriginalFilename(); + } else if(imageId==null || imageId.equals("")){ + String[] token = moduleLinkImageIdEdit.split("/"); + imageId = token[token.length - 1]; } DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); IModuleLinkDisplay display = (IModuleLinkDisplay) moduleLinkManager.updateLink(title, id, new Float(x), new Float(y), - new Integer(rotation), linkedModuleId, moduleLinkLabel, moduleLinkIdValueEdit, moduleLinkDisplayId, type, linkImage, filename); + new Integer(rotation), linkedModuleId, moduleLinkLabel, moduleLinkIdValueEdit, moduleLinkDisplayId, type, linkImage, filename, imageId); return success(display.getLink().getId(), display.getId(), display.getPositionX(), display.getPositionY(), display.getRotation(),null,title,displayType,linkedModuleId,null); } diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 89fa7f4c0..a7422ec31 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -53,21 +53,27 @@ var moduleLinkIconReader = new FileReader(); var moduleLinkIcon; moduleLinkIconReader.onload = function(e) { + debugger; moduleLinkIcon = e.target.result; - var linkId = $("#spaceLinkIdValueEdit").val(); - if(linkId!=null && linkId!="") { - showSpaceLinkEdit(editSpaceLinkInfo()); + var moduleLinkId = $("#moduleLinkIdValueEdit").val(); + if(moduleLinkId!=null && moduleLinkId!="") { + showModuleLinkEdit(editModuleLinkInfo()); } else { - showSpaceLink(createSpaceLinkInfo()); + showModuleLink(createModuleLinkInfo()); } - showModuleLink(createModuleLinkInfo()); } var externalLinkIconReader = new FileReader(); var externalLinkIcon; externalLinkIconReader.onload = function(e) { externalLinkIcon = e.target.result; - showExternalLinks(createExternalLinkInfo()); + var externalLinkId = $("#externalLinkIdValueEdit").val(); + + if(externalLinkId!=null && externalLinkId!="") { + showExternalLinkEdit(editExternalLinkInfo()); + } else { + showExternalLinks(createExternalLinkInfo()); + } } function setLinkPosition(modalLink, link, isSpaceLink, isModal, isExternalLink, posX, posY, posXModal, posYModal){ @@ -372,6 +378,7 @@ } function showModuleLinkEdit(moduleLink, show, posX, posY) { + debugger; moduleLink["x"]=storeX; moduleLink["y"]=storeY; var selectedLinkClass = '#moduleModallinkId-'+selectedModuleLinkId; @@ -432,9 +439,18 @@ $(selectedLinkClass).css({ 'top': y + posY}); $(selectedLabelClass+' span').remove(); $(selectedLabelClass).append('' + linkLabel + ''); - if(linkIcon!=null) { + if(linkIcon!=null && linkIcon!="") { $(selectedLinkClass).attr('src', linkIcon); } + + if(moduleLinkIcon!=null && moduleLinkIcon!="") { + $(selectedLinkClass).attr('src', moduleLinkIcon); + } + + if(externalLinkIcon!=null && externalLinkIcon!="") { + $(selectedLinkClass).attr('src', externalLinkIcon); + } + feather.replace(); } @@ -459,6 +475,9 @@ var link; if(externalLink["type"] == "IMAGE" && externalLinkIcon) { + if(selectedExternalLinkId!=null) { + $('#externalModallinkId-'+selectedExternalLinkId).css('visbility', 'hidden'); + } link = $('

'); } else { $(ext_label).css({ @@ -640,7 +659,7 @@ displayForms("#editModuleLinkInfo"); } -function makeExternalLinksEditable(linkName, linkId, externalLinkURL, posXEdit, posYEdit, displayLinkId, linkType) { +function makeExternalLinksEditable(linkName, linkId, externalLinkURL, posXEdit, posYEdit, displayLinkId, linkType, externalLinkImageId) { selectedExternalLinkId=linkId; storeX=posXEdit; storeY=posYEdit; @@ -650,6 +669,7 @@ $("#externalLinkInfoLabelEdit").text(linkName); $("#externalLinkLabelEdit").val(linkName); $("#externalLinkIdValueEdit").val(linkId); + $("#externalLinkImageIdEdit").val(externalLinkImageId); $("#externalLinkURLEdit").val(externalLinkURL); $('#extTypeEdit option[value="'+linkType+'"]').attr("selected", "selected"); resetHighlighting(); @@ -818,7 +838,7 @@ $('#imageId-modLink').prop('selectedIndex',0).trigger( "change" ); $('#imageId-modLink').prop("disabled",true); $('#moduleLinkImage').prop("disabled",false); - linkIcon = null; + moduleLinkIcon = null; showModuleLink(createModuleLinkInfo()); }); @@ -826,7 +846,7 @@ $('#moduleLinkImage').val(''); $('#moduleLinkImage').prop("disabled",true); $('#imageId-modLink').prop("disabled",false); - linkIcon = null; + moduleLinkIcon = null; showModuleLink(createModuleLinkInfo()); }); @@ -853,16 +873,16 @@ $('#imageId-modLinkEdit').prop('selectedIndex',0).trigger( "change" ); $('#imageId-modLinkEdit').prop("disabled",true); $('#moduleLinkImageEdit').prop("disabled",false); - linkIcon = $('#moduleLinkImageIdEdit').val(); - showSpaceLinkEdit(editSpaceLinkInfo()); + moduleLinkIcon = $('#moduleLinkImageIdEdit').val(); + showModuleLinkEdit(editModuleLinkInfo()); }); $('#chooseFromExisting-modLinkEdit').click(function() { $('#moduleLinkImageEdit').val(''); $('#moduleLinkImageEdit').prop("disabled",true); $('#imageId-modLinkEdit').prop("disabled",false); - linkIcon = null; - showSpaceLinkEdit(editSpaceLinkInfo()); + moduleLinkIcon = null; + showModuleLinkEdit(editModuleLinkInfo()); }); $("#imageId-modLinkEdit").select2({ @@ -909,10 +929,114 @@ ); $("#selectedImage-modLinkEdit").empty(); $("#selectedImage-modLinkEdit").append(''); - linkIcon = tbaseUrl + image.id; + moduleLinkIcon = tbaseUrl + image.id; showModuleLinkEdit(editModuleLinkInfo()); return $image; } + + + //External link selection of existing images + $('#imageId-extLink').prop("disabled",true); + $('#chooseFromLocal-extLink').click(function() { + $("#selectedImage-extLink").empty(); + $('#imageId-extLink').prop('selectedIndex',0).trigger( "change" ); + $('#imageId-extLink').prop("disabled",true); + $('#externalLinkImage').prop("disabled",false); + externalLinkIcon = null; + showExternalLink(createExternalLinkInfo()); + }); + + $('#chooseFromExisting-extLink').click(function() { + $('#externalLinkImage').val(''); + $('#externalLinkImage').prop("disabled",true); + $('#imageId-extLink').prop("disabled",false); + externalLinkIcon = null; + showExternalLink(createExternalLinkInfo()); + }); + + $("#imageId-extLink").select2({ + ajax: { + url: function (params) { + var imageURL = [[@{|/staff/images/search|}]]; + return imageURL; + }, + dataType: 'json', + processResults: function (data) { + return { + results: data, + }; + }, + }, + templateResult: formatImage, + templateSelection: formatSelectionExternal + }); + + $('#imageId-extLinkEdit').prop("disabled",true); + $('#chooseFromLocal-extLinkEdit').click(function() { + $("#selectedImage-extLinkEdit").empty(); + $('#imageId-extLinkEdit').prop('selectedIndex',0).trigger( "change" ); + $('#imageId-extLinkEdit').prop("disabled",true); + $('#externalLinkImageEdit').prop("disabled",false); + externalLinkIcon = $('#externalLinkImageIdEdit').val(); + showExternalLinkEdit(editExternalLinkInfo()); + }); + + $('#chooseFromExisting-modLinkEdit').click(function() { + $('#moduleLinkImageEdit').val(''); + $('#moduleLinkImageEdit').prop("disabled",true); + $('#imageId-modLinkEdit').prop("disabled",false); + externalLinkIcon = null; + showExternalLinkEdit(editExternalLinkInfo()); + }); + + $("#imageId-extLinkEdit").select2({ + ajax: { + url: function (params) { + var imageURL = [[@{|/staff/images/search|}]]; + return imageURL; + }, + dataType: 'json', + processResults: function (data) { + return { + results: data, + }; + }, + }, + templateResult: formatImage, + templateSelection: formatSelectionEditExternal + }); + + function formatSelectionExternal(image) { + debugger; + if (!image.id) { + return image.text; + } + var tbaseUrl = [[@{|/api/image/|}]]; + var $image = $( + '' + image.text + '' + ); + $("#selectedImage-extLink").empty(); + $("#selectedImage-extLink").append(''); + linkIcon = tbaseUrl + image.id; + showExternalLink(createExternalLinkInfo()); + return $image; + } + + function formatSelectionEditExternal(image) { + debugger; + if (!image.id) { + return image.text; + } + var tbaseUrl = [[@{|/api/image/|}]]; + var $image = $( + '' + image.text + '' + ); + $("#selectedImage-extLinkEdit").empty(); + $("#selectedImage-extLinkEdit").append(''); + externalLinkIcon = tbaseUrl + image.id; + showExternalLinkEdit(editExternalLinkInfo()); + return $image; + } }); // -------- buttons that open modals (e.g. to create space links) ------ @@ -1065,7 +1189,7 @@ showSpaceLink(spaceLinkInfo, true); $("#space_label").attr("id",""); $("#link").attr("id",""); - $("#createSpaceLinkAlert").hide(); + $("#createSpaceLinkAlert").hide(); $("#errorMsg").text(""); $('#errorAlert').hide(); $("#noLinksOnSpace").hide(); @@ -1352,7 +1476,15 @@ var form = $("#createExternalLinkForm"); var formData = new FormData(form[0]); var externalLinkInfo = createExternalLinkInfo(); - + + var imageSource = $('#selectedImage-extLink').find('img').attr('src'); + var imageId = ""; + if(typeof(imageSource) != "undefined"){ + imageId = imageSource.split("/").pop().split(".")[0]; + } + formData.set('imageId',imageId); + formData.delete('uploadRadioBtn'); + $.ajax({ type: "POST", url: "[(@{'/staff/space/'+${space?.id}+'/externallink?'+${_csrf.parameterName}+'='+${_csrf.token}})]", @@ -1434,6 +1566,7 @@ }, success:function(data) { $('[data-link-id="' + linkId + '"]').remove(); + $('#moduleLinkIdValueEdit').val(""); hideLinkInfoTabs(); $("#space").css("display", "none"); drawLinks(); @@ -1501,6 +1634,7 @@ }); $(".modulelink-targetEdit").change(function() { + debugger; showModuleLinkEdit(editModuleLinkInfo()); }); @@ -1537,16 +1671,39 @@ }); $("#moduleLinkImage").change(function() { + debugger; if (this.files && this.files[0]) { moduleLinkIconReader.readAsDataURL(this.files[0]); } }); + + $("#moduleLinkImageEdit").change(function() { + debugger; + var moduleLinkId = $("#moduleLinkIdValueEdit").val(); + if (this.files && this.files[0]) { + moduleLinkIconReader.readAsDataURL(this.files[0]); + } + /* $('#spacelinkModalId-' + linkId ).remove(); */ + console.log(moduleLinkId); + + }); $("#externalLinkImage").change(function() { if (this.files && this.files[0]) { externalLinkIconReader.readAsDataURL(this.files[0]); } }); + + $("#externalLinkImageEdit").change(function() { + debugger; + var externalLinkId = $("#externalLinkIdValueEdit").val(); + if (this.files && this.files[0]) { + externalLinkIconReader.readAsDataURL(this.files[0]); + } + /* $('#spacelinkModalId-' + linkId ).remove(); */ + console.log(externalLinkId); + + }); // ------------ Cancel buttons ----------------- $(".cancelSpaceLinkBtn").click(function() { @@ -1600,6 +1757,7 @@ resetHighlighting(); $("#space").hide(); $("#editModuleLinkInfo").hide(); + $("#moduleLinkIdValueEdit").val(""); $("#moduleLinkImageIdEdit").val(""); moduleLinkIcon=null; drawLinks(); @@ -2001,13 +2159,30 @@
Create new External Link
-
- -
-
- -
+
+

@@ -2209,38 +2384,28 @@

-
-
- -
-
- -
-
@@ -2276,6 +2441,8 @@
+ Date: Thu, 9 Dec 2021 17:23:35 -0700 Subject: [PATCH 027/138] [VSPC-196] Wip for unit tests for SpaceLink, ModuleLink and ExternalLink --- .../WEB-INF/views/staff/spaces/space.html | 61 +++++++++------- .../impl/ExternalLinkManagerTest.java | 9 +-- .../services/impl/ModuleLinkManagerTest.java | 13 ++-- .../services/impl/SpaceLinkManagerTest.java | 70 +++++++++++++++++-- 4 files changed, 114 insertions(+), 39 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index a7422ec31..97ab3acd6 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -66,6 +66,7 @@ var externalLinkIconReader = new FileReader(); var externalLinkIcon; externalLinkIconReader.onload = function(e) { + debugger; externalLinkIcon = e.target.result; var externalLinkId = $("#externalLinkIdValueEdit").val(); @@ -162,7 +163,7 @@ $('#'+spanId+link.link.id).css('cursor', 'pointer'); $('#'+spanId+link.link.id).click(function(e) { var linkData = $('#'+spanId+link.link.id).data(); - makeModuleLinksEditable(linkData["linklabel"], link.link.id,linkData["linkrotation"],linkData["linktarget"],link.positionX,link.positionY,link.id, linkData["linktype"]); + makeModuleLinksEditable(linkData["linklabel"], link.link.id,linkData["linkrotation"],linkData["linktarget"],link.positionX,link.positionY,link.id, linkData["linktype"], $('#'+spanId+link.link.id).attr('src')); }); } } @@ -183,7 +184,7 @@ $('#'+spanId+link.externalLink.id).css('cursor', 'pointer'); $('#'+spanId+link.externalLink.id).click(function(e) { var linkData = $('#'+spanId+link.externalLink.id).data(); - makeExternalLinksEditable(linkData["linklabel"],link.externalLink.id,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"]); + makeExternalLinksEditable(linkData["linklabel"],link.externalLink.id,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"], $('#'+spanId+link.externalLink.id).attr('src')); }); } } @@ -466,6 +467,7 @@ } function showExternalLinks(externalLink, show, x, y) { + debugger; $("#ext_label").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; @@ -913,7 +915,7 @@ ); $("#selectedImage-modLink").empty(); $("#selectedImage-modLink").append(''); - linkIcon = tbaseUrl + image.id; + moduleLinkIcon = tbaseUrl + image.id; showModuleLink(createModuleLinkInfo()); return $image; } @@ -938,20 +940,22 @@ //External link selection of existing images $('#imageId-extLink').prop("disabled",true); $('#chooseFromLocal-extLink').click(function() { + debugger; $("#selectedImage-extLink").empty(); $('#imageId-extLink').prop('selectedIndex',0).trigger( "change" ); $('#imageId-extLink').prop("disabled",true); $('#externalLinkImage').prop("disabled",false); externalLinkIcon = null; - showExternalLink(createExternalLinkInfo()); + showExternalLinks(createExternalLinkInfo()); }); $('#chooseFromExisting-extLink').click(function() { + debugger; $('#externalLinkImage').val(''); $('#externalLinkImage').prop("disabled",true); $('#imageId-extLink').prop("disabled",false); externalLinkIcon = null; - showExternalLink(createExternalLinkInfo()); + showExternalLinks(createExternalLinkInfo()); }); $("#imageId-extLink").select2({ @@ -981,10 +985,10 @@ showExternalLinkEdit(editExternalLinkInfo()); }); - $('#chooseFromExisting-modLinkEdit').click(function() { - $('#moduleLinkImageEdit').val(''); - $('#moduleLinkImageEdit').prop("disabled",true); - $('#imageId-modLinkEdit').prop("disabled",false); + $('#chooseFromExisting-extLinkEdit').click(function() { + $('#externalLinkImageEdit').val(''); + $('#externalLinkImageEdit').prop("disabled",true); + $('#imageId-extLinkEdit').prop("disabled",false); externalLinkIcon = null; showExternalLinkEdit(editExternalLinkInfo()); }); @@ -1017,8 +1021,8 @@ ); $("#selectedImage-extLink").empty(); $("#selectedImage-extLink").append(''); - linkIcon = tbaseUrl + image.id; - showExternalLink(createExternalLinkInfo()); + externalLinkIcon = tbaseUrl + image.id; + showExternalLinks(createExternalLinkInfo()); return $image; } @@ -1665,11 +1669,6 @@ }); - $("#imageId-spcLink").change(function() { - debugger; - - }); - $("#moduleLinkImage").change(function() { debugger; if (this.files && this.files[0]) { @@ -2489,15 +2488,29 @@
-
- -
-
- + -
+

diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java index 3647c4a6b..28e1ede3c 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java @@ -15,6 +15,7 @@ import edu.asu.diging.vspace.core.data.ExternalLinkDisplayRepository; import edu.asu.diging.vspace.core.data.ExternalLinkRepository; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; +import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; import edu.asu.diging.vspace.core.factory.IExternalLinkDisplayFactory; @@ -66,7 +67,7 @@ public void init() { } @Test - public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException { + public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, ImageDoesNotExistException { Space space = new Space(); space.setId(spaceId1); @@ -104,7 +105,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(externalLinkRepo.save((ExternalLink) externalLink)).thenReturn((ExternalLink)externalLink); Mockito.when(externalLinkDisplayRepo.save((ExternalLinkDisplay)externalDisplayLink)).thenReturn((ExternalLinkDisplay)externalDisplayLink); - IExternalLinkDisplay savedExternalLinkDisplay1 = managerToTest.createLink("New External Link", spaceId1, 10, 30, 40, "EXL001", "New External Link", DisplayType.ARROW, null, null); + IExternalLinkDisplay savedExternalLinkDisplay1 = managerToTest.createLink("New External Link", spaceId1, 10, 30, 40, "EXL001", "New External Link", DisplayType.ARROW, null, null, null); Assert.assertEquals(externalDisplayLink.getId(), savedExternalLinkDisplay1.getId()); Assert.assertEquals(externalDisplayLink.getName(), savedExternalLinkDisplay1.getName()); Assert.assertEquals(new Double(externalDisplayLink.getPositionX()), new Double(savedExternalLinkDisplay1.getPositionX())); @@ -117,7 +118,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo } @Test - public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException { + public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException, ImageDoesNotExistException { ISpace space = new Space(); space.setId(spaceId1); IVSImage spaceImage = new VSImage(); @@ -156,7 +157,7 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(externalLinkRepo.save((ExternalLink) externalLink)).thenReturn((ExternalLink)externalLink); Mockito.when(externalLinkDisplayRepo.save((ExternalLinkDisplay)externalLinkDisplay)).thenReturn((ExternalLinkDisplay)externalLinkDisplay); - IExternalLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestExternalNew", spaceId1, 20, 40, 0, "www.google.com", "TestExternalNew", "EXL001", "EXLD001", DisplayType.ARROW, null, null); + IExternalLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestExternalNew", spaceId1, 20, 40, 0, "www.google.com", "TestExternalNew", "EXL001", "EXLD001", DisplayType.ARROW, null, null, null); Assert.assertEquals(externalLinkDisplay.getId(), actualUpdatedLink.getId()); Assert.assertEquals(externalLinkDisplay.getName(), actualUpdatedLink.getName()); Assert.assertEquals(new Double(externalLinkDisplay.getPositionX()), new Double(actualUpdatedLink.getPositionX())); diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java index 6b5090701..939c77a63 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java @@ -17,6 +17,7 @@ import edu.asu.diging.vspace.core.data.display.ModuleLinkDisplayRepository; import edu.asu.diging.vspace.core.exception.FileStorageException; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; +import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; import edu.asu.diging.vspace.core.factory.IImageFactory; @@ -83,7 +84,7 @@ public void init() { } @Test - public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, FileStorageException { + public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, FileStorageException, ImageDoesNotExistException { Space space = new Space(); space.setId(spaceId1); @@ -123,7 +124,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleDisplayLink)).thenReturn((ModuleLinkDisplay)moduleDisplayLink); - IModuleLinkDisplay savedModuleLinkDisplay1 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", DisplayType.ARROW, null, null); + IModuleLinkDisplay savedModuleLinkDisplay1 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", DisplayType.ARROW, null, null, null); Assert.assertEquals(moduleDisplayLink.getId(), savedModuleLinkDisplay1.getId()); Assert.assertEquals(moduleDisplayLink.getName(), savedModuleLinkDisplay1.getName()); Assert.assertEquals(new Double(moduleDisplayLink.getPositionX()), new Double(savedModuleLinkDisplay1.getPositionX())); @@ -161,7 +162,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleDisplayLinkImage)).thenReturn((ModuleLinkDisplay)moduleDisplayLinkImage); - IModuleLinkDisplay savedModuleLinkDisplay2 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", DisplayType.IMAGE, new byte[20], imageFileName); + IModuleLinkDisplay savedModuleLinkDisplay2 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", DisplayType.IMAGE, new byte[20], imageFileName, null); Assert.assertEquals(moduleDisplayLinkImage.getId(), savedModuleLinkDisplay2.getId()); Assert.assertEquals(moduleDisplayLinkImage.getName(), savedModuleLinkDisplay2.getName()); Assert.assertEquals(new Double(moduleDisplayLinkImage.getPositionX()), new Double(savedModuleLinkDisplay2.getPositionX())); @@ -178,7 +179,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo } @Test - public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException { + public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException, ImageDoesNotExistException { ISpace space = new Space(); space.setId(spaceId1); IVSImage spaceImage = new VSImage(); @@ -235,7 +236,7 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleLinkDisplay)).thenReturn((ModuleLinkDisplay)moduleLinkDisplayUpdated); - IModuleLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null); + IModuleLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null, null); Assert.assertEquals(moduleLinkDisplayUpdated.getId(), actualUpdatedLink.getId()); Assert.assertEquals(moduleLinkDisplayUpdated.getName(), actualUpdatedLink.getName()); Assert.assertEquals(new Double(moduleLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink.getPositionX())); @@ -254,7 +255,7 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe moduleLinkDisplay.setImage(modImage); moduleLinkDisplayUpdated.setType(DisplayType.ARROW); - IModuleLinkDisplay actualUpdatedLink2 = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null); + IModuleLinkDisplay actualUpdatedLink2 = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null, null); Assert.assertEquals(moduleLinkDisplayUpdated.getId(), actualUpdatedLink2.getId()); Assert.assertEquals(moduleLinkDisplayUpdated.getName(), actualUpdatedLink2.getName()); Assert.assertEquals(new Double(moduleLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink2.getPositionX())); diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java index 5642ae438..c8807528e 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java @@ -12,21 +12,29 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import edu.asu.diging.vspace.core.data.ImageRepository; import edu.asu.diging.vspace.core.data.SpaceLinkRepository; import edu.asu.diging.vspace.core.data.display.SpaceLinkDisplayRepository; +import edu.asu.diging.vspace.core.exception.FileStorageException; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; +import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; +import edu.asu.diging.vspace.core.factory.IImageFactory; import edu.asu.diging.vspace.core.factory.ISpaceLinkFactory; import edu.asu.diging.vspace.core.factory.impl.SpaceLinkDisplayFactory; +import edu.asu.diging.vspace.core.file.IStorageEngine; import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.ISpaceLink; import edu.asu.diging.vspace.core.model.IVSImage; import edu.asu.diging.vspace.core.model.display.DisplayType; +import edu.asu.diging.vspace.core.model.display.IModuleLinkDisplay; import edu.asu.diging.vspace.core.model.display.ISpaceDisplay; import edu.asu.diging.vspace.core.model.display.ISpaceLinkDisplay; +import edu.asu.diging.vspace.core.model.display.impl.ModuleLinkDisplay; import edu.asu.diging.vspace.core.model.display.impl.SpaceDisplay; import edu.asu.diging.vspace.core.model.display.impl.SpaceLinkDisplay; +import edu.asu.diging.vspace.core.model.impl.ModuleLink; import edu.asu.diging.vspace.core.model.impl.Space; import edu.asu.diging.vspace.core.model.impl.SpaceLink; import edu.asu.diging.vspace.core.model.impl.VSImage; @@ -49,11 +57,20 @@ public class SpaceLinkManagerTest { @Mock private SpaceLinkDisplayFactory spaceLinkDisplayFactory; + + @Mock + private IImageFactory imageFactory; + + @Mock + private ImageRepository imageRepo; + + @Mock + private IStorageEngine storage; @InjectMocks private SpaceLinkManager managerToTest = new SpaceLinkManager(); - private String spaceId1, spaceId2, spaceId3; + private String spaceId1, spaceId2, spaceId3, imageId, imageFileName, spcDisplayLinkId;; @Before public void init() { @@ -61,10 +78,13 @@ public void init() { spaceId1 = "SPA000000001"; spaceId2 = "SPA000000002"; spaceId3 = "SPA000000003"; + imageId = "IMG00000001"; + imageFileName = "Space Image 1"; + spcDisplayLinkId = "SPLD001"; } @Test - public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException { + public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, ImageDoesNotExistException, FileStorageException { ISpace space = new Space(); space.setId(spaceId1); @@ -105,7 +125,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceDisplayLink)).thenReturn((SpaceLinkDisplay)spaceDisplayLink); - ISpaceLinkDisplay savedSpaceLinkDisplay = managerToTest.createLink("New Space Link", spaceId1, 10, 30, 40, spaceId2, "New Space Link", DisplayType.ARROW, null, null); + ISpaceLinkDisplay savedSpaceLinkDisplay = managerToTest.createLink("New Space Link", spaceId1, 10, 30, 40, spaceId2, "New Space Link", DisplayType.ARROW, null, null, null); Assert.assertEquals(spaceDisplayLink.getId(), savedSpaceLinkDisplay.getId()); Assert.assertEquals(spaceDisplayLink.getName(), savedSpaceLinkDisplay.getName()); Assert.assertEquals(new Double(spaceDisplayLink.getPositionX()), new Double(savedSpaceLinkDisplay.getPositionX())); @@ -115,6 +135,46 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Assert.assertEquals(spaceDisplayLink.getType(), savedSpaceLinkDisplay.getType()); Assert.assertEquals(spaceDisplayLink.getLink().getTargetSpace(), savedSpaceLinkDisplay.getLink().getTargetSpace()); Mockito.verify(spaceLinkDisplayRepo).save((SpaceLinkDisplay)spaceDisplayLink); + + //For spaceLink as Image + IVSImage spcImage = new VSImage(); + spcImage.setId(imageId); + spcImage.setFilename(imageFileName); + spcImage.setHeight(200); + spcImage.setWidth(400); + + ISpaceLinkDisplay spaceDisplayLinkImage = new SpaceLinkDisplay(); + spaceDisplayLinkImage.setId(spcDisplayLinkId); + spaceDisplayLinkImage.setPositionX(10); + spaceDisplayLinkImage.setPositionY(30); + spaceDisplayLinkImage.setRotation(40); + spaceDisplayLinkImage.setType(DisplayType.IMAGE); + spaceDisplayLinkImage.setImage(spcImage); + Mockito.when(spaceLinkFactory.createSpaceLink("New Module Link", space)).thenReturn(spaceLink); + spaceDisplayLinkImage.setLink(spaceLink); + + Mockito.when(spaceLinkDisplayFactory.createSpaceLinkDisplay(spaceLink)).thenReturn(spaceDisplayLinkImage); + + Mockito.when(imageFactory.createImage(Mockito.anyString(), Mockito.anyString())).thenReturn(spcImage); + Mockito.when(imageRepo.save((VSImage) spcImage)).thenReturn((VSImage) spcImage); + Mockito.when(storage.storeFile(new byte[20], imageFileName, spcImage.getId())).thenReturn("Dummy File Path"); + + Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); + Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceDisplayLinkImage)).thenReturn((SpaceLinkDisplay)spaceDisplayLinkImage); + + ISpaceLinkDisplay savedSpaceLinkDisplay2 = managerToTest.createLink("New Space Link", spaceId1, 10, 30, 40, spaceId2, "New Space Link", DisplayType.IMAGE, new byte[20], imageFileName, null); + Assert.assertEquals(spaceDisplayLinkImage.getId(), savedSpaceLinkDisplay2.getId()); + Assert.assertEquals(spaceDisplayLinkImage.getName(), savedSpaceLinkDisplay2.getName()); + Assert.assertEquals(new Double(spaceDisplayLinkImage.getPositionX()), new Double(savedSpaceLinkDisplay2.getPositionX())); + Assert.assertEquals(new Double(spaceDisplayLinkImage.getPositionY()), new Double(savedSpaceLinkDisplay2.getPositionY())); + Assert.assertEquals(spaceDisplayLinkImage.getRotation(), savedSpaceLinkDisplay2.getRotation()); + Assert.assertEquals(spaceDisplayLinkImage.getLink().getId(), savedSpaceLinkDisplay2.getLink().getId()); + Assert.assertEquals(spaceDisplayLinkImage.getType(), savedSpaceLinkDisplay2.getType()); + Assert.assertEquals(spaceDisplayLinkImage.getLink().getTargetSpace(), savedSpaceLinkDisplay2.getLink().getTargetSpace()); + Assert.assertEquals(spaceDisplayLinkImage.getImage().getHeight(), savedSpaceLinkDisplay2.getImage().getHeight()); + Assert.assertEquals(spaceDisplayLinkImage.getImage().getWidth(), savedSpaceLinkDisplay2.getImage().getWidth()); + Assert.assertEquals(spaceDisplayLinkImage.getImage().getId(), savedSpaceLinkDisplay2.getImage().getId()); + Mockito.verify(spaceLinkDisplayRepo).save((SpaceLinkDisplay)spaceDisplayLinkImage); } @Test @@ -156,7 +216,7 @@ public void test_deleteLink_linkPresent() { } @Test - public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException { + public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException, ImageDoesNotExistException { ISpace space = new Space(); space.setId(spaceId1); IVSImage spaceImage = new VSImage(); @@ -218,7 +278,7 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceLinkDisplay)).thenReturn((SpaceLinkDisplay)spaceLinkDisplayUpdated); - ISpaceLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestSpaceEdited", spaceId1, 100, 300, 180, spaceId3, "TestSpaceEdited", "SPL002", "SPLD001", DisplayType.ALERT, null, null); + ISpaceLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestSpaceEdited", spaceId1, 100, 300, 180, spaceId3, "TestSpaceEdited", "SPL002", "SPLD001", DisplayType.ALERT, null, null, null); Assert.assertEquals(spaceLinkDisplayUpdated.getId(), actualUpdatedLink.getId()); Assert.assertEquals(spaceLinkDisplayUpdated.getName(), actualUpdatedLink.getName()); Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink.getPositionX())); From 60a20386b4eb5ad467a8680681e5b2de9e2f0c07 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Mon, 13 Dec 2021 16:31:29 -0700 Subject: [PATCH 028/138] [VSPC-196] Unit tests for spaceLink, ExternalLinks completed --- .../impl/ExternalLinkManagerTest.java | 60 ++++++++++++++++++- .../services/impl/SpaceLinkManagerTest.java | 5 +- 2 files changed, 60 insertions(+), 5 deletions(-) diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java index 28e1ede3c..a24a77382 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java @@ -14,12 +14,16 @@ import edu.asu.diging.vspace.core.data.ExternalLinkDisplayRepository; import edu.asu.diging.vspace.core.data.ExternalLinkRepository; +import edu.asu.diging.vspace.core.data.ImageRepository; +import edu.asu.diging.vspace.core.exception.FileStorageException; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; import edu.asu.diging.vspace.core.factory.IExternalLinkDisplayFactory; import edu.asu.diging.vspace.core.factory.IExternalLinkFactory; +import edu.asu.diging.vspace.core.factory.IImageFactory; +import edu.asu.diging.vspace.core.file.IStorageEngine; import edu.asu.diging.vspace.core.model.IExternalLink; import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.IVSImage; @@ -55,19 +59,32 @@ public class ExternalLinkManagerTest { @InjectMocks private ExternalLinkManager managerToTest = new ExternalLinkManager(); + + @Mock + private IImageFactory imageFactory; + + @Mock + private ImageRepository imageRepo; + + @Mock + private IStorageEngine storage; private String spaceId1; private String externalLinkURL; + private String imageId, imageFileName, extDisplayLinkId; @Before public void init() { MockitoAnnotations.initMocks(this); spaceId1 = "SPA000000014"; externalLinkURL = "www.google.com"; + imageId = "IMG00000001"; + imageFileName = "Space Image 1"; + extDisplayLinkId = "EXL001"; } @Test - public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, ImageDoesNotExistException { + public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, ImageDoesNotExistException, FileStorageException { Space space = new Space(); space.setId(spaceId1); @@ -115,6 +132,47 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Assert.assertEquals(externalDisplayLink.getExternalLink(), savedExternalLinkDisplay1.getExternalLink()); Assert.assertEquals(externalDisplayLink.getExternalLink().getTarget().getValue(), savedExternalLinkDisplay1.getExternalLink().getTarget().getValue()); Mockito.verify(externalLinkDisplayRepo).save((ExternalLinkDisplay)externalDisplayLink); + + + //For externalLink as Image + IVSImage extImage = new VSImage(); + extImage.setId(imageId); + extImage.setFilename(imageFileName); + extImage.setHeight(200); + extImage.setWidth(400); + + IExternalLinkDisplay extDisplayLinkImage = new ExternalLinkDisplay(); + extDisplayLinkImage.setId(extDisplayLinkId); + extDisplayLinkImage.setPositionX(10); + extDisplayLinkImage.setPositionY(30); + extDisplayLinkImage.setRotation(40); + extDisplayLinkImage.setType(DisplayType.IMAGE); + extDisplayLinkImage.setImage(extImage); + extDisplayLinkImage.setExternalLink(externalLink); + Mockito.when(externalLinkFactory.createExternalLink("New Module Link", space)).thenReturn(externalLink); + + Mockito.when(externalLinkDisplayFactory.createExternalLinkDisplay(externalLink)).thenReturn(extDisplayLinkImage); + + Mockito.when(imageFactory.createImage(Mockito.anyString(), Mockito.anyString())).thenReturn(extImage); + Mockito.when(imageRepo.save((VSImage) extImage)).thenReturn((VSImage) extImage); + Mockito.when(storage.storeFile(new byte[20], imageFileName, extImage.getId())).thenReturn("Dummy File Path"); + + Mockito.when(externalLinkRepo.save((ExternalLink) externalLink)).thenReturn((ExternalLink)externalLink); + Mockito.when(externalLinkDisplayRepo.save((ExternalLinkDisplay)extDisplayLinkImage)).thenReturn((ExternalLinkDisplay)extDisplayLinkImage); + + IExternalLinkDisplay savedExternalLinkDisplay2 = managerToTest.createLink("New External Link", spaceId1, 10, 30, 40, extDisplayLinkId, "New External Link", DisplayType.IMAGE, new byte[20], imageFileName, null); + Assert.assertEquals(extDisplayLinkImage.getId(), savedExternalLinkDisplay2.getId()); + Assert.assertEquals(extDisplayLinkImage.getName(), savedExternalLinkDisplay2.getName()); + Assert.assertEquals(new Double(extDisplayLinkImage.getPositionX()), new Double(savedExternalLinkDisplay2.getPositionX())); + Assert.assertEquals(new Double(extDisplayLinkImage.getPositionY()), new Double(savedExternalLinkDisplay2.getPositionY())); + Assert.assertEquals(extDisplayLinkImage.getRotation(), savedExternalLinkDisplay2.getRotation()); + Assert.assertEquals(extDisplayLinkImage.getExternalLink().getId(), savedExternalLinkDisplay2.getExternalLink().getId()); + Assert.assertEquals(extDisplayLinkImage.getType(), savedExternalLinkDisplay2.getType()); + Assert.assertEquals(extDisplayLinkImage.getExternalLink().getSpace(), savedExternalLinkDisplay2.getExternalLink().getSpace()); + Assert.assertEquals(extDisplayLinkImage.getImage().getHeight(), savedExternalLinkDisplay2.getImage().getHeight()); + Assert.assertEquals(extDisplayLinkImage.getImage().getWidth(), savedExternalLinkDisplay2.getImage().getWidth()); + Assert.assertEquals(extDisplayLinkImage.getImage().getId(), savedExternalLinkDisplay2.getImage().getId()); + Mockito.verify(externalLinkDisplayRepo).save((ExternalLinkDisplay)extDisplayLinkImage); } @Test diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java index c8807528e..9a8351bf1 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java @@ -28,13 +28,10 @@ import edu.asu.diging.vspace.core.model.ISpaceLink; import edu.asu.diging.vspace.core.model.IVSImage; import edu.asu.diging.vspace.core.model.display.DisplayType; -import edu.asu.diging.vspace.core.model.display.IModuleLinkDisplay; import edu.asu.diging.vspace.core.model.display.ISpaceDisplay; import edu.asu.diging.vspace.core.model.display.ISpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.ModuleLinkDisplay; import edu.asu.diging.vspace.core.model.display.impl.SpaceDisplay; import edu.asu.diging.vspace.core.model.display.impl.SpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.ModuleLink; import edu.asu.diging.vspace.core.model.impl.Space; import edu.asu.diging.vspace.core.model.impl.SpaceLink; import edu.asu.diging.vspace.core.model.impl.VSImage; @@ -70,7 +67,7 @@ public class SpaceLinkManagerTest { @InjectMocks private SpaceLinkManager managerToTest = new SpaceLinkManager(); - private String spaceId1, spaceId2, spaceId3, imageId, imageFileName, spcDisplayLinkId;; + private String spaceId1, spaceId2, spaceId3, imageId, imageFileName, spcDisplayLinkId; @Before public void init() { From 4edcda86905453ba141043f9d0c42c25ee69ce5c Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Fri, 17 Dec 2021 11:14:56 -0700 Subject: [PATCH 029/138] [VSPC-196] Changes for unit tests and image preview fixes --- .../WEB-INF/views/staff/spaces/space.html | 22 ++++++++--- .../services/impl/SpaceLinkManagerTest.java | 39 ++++++++++++++++++- 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 97ab3acd6..689603db1 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -711,7 +711,9 @@ checkSpaceLinkPresent('[(${space?.id})]', '[(@{'/staff/'})]', '[('?'+${_csrf.parameterName}+'='+${_csrf.token})]',$('#headerSpaceValue')); }); - $( document ).ready(function() { + $( document ).ready(onLoadFunction); + + function onLoadFunction() { onPageReady($("#deleteSpace"), $('#confirm-space-delete')); if ($("div#outgoingLinks a").length < 2) { $("#noLinksOnSpace").show() @@ -768,7 +770,7 @@ $('#spaceLinkImageEdit').val(''); $('#spaceLinkImageEdit').prop("disabled",true); $('#imageId-spcLinkEdit').prop("disabled",false); - linkIcon = null; + linkIcon = $('#spaceLinkImageIdEdit').val(); showSpaceLinkEdit(editSpaceLinkInfo()); }); @@ -883,7 +885,7 @@ $('#moduleLinkImageEdit').val(''); $('#moduleLinkImageEdit').prop("disabled",true); $('#imageId-modLinkEdit').prop("disabled",false); - moduleLinkIcon = null; + moduleLinkIcon = $('#moduleLinkImageIdEdit').val(); showModuleLinkEdit(editModuleLinkInfo()); }); @@ -989,7 +991,7 @@ $('#externalLinkImageEdit').val(''); $('#externalLinkImageEdit').prop("disabled",true); $('#imageId-extLinkEdit').prop("disabled",false); - externalLinkIcon = null; + externalLinkIcon = $('#externalLinkImageIdEdit').val(); showExternalLinkEdit(editExternalLinkInfo()); }); @@ -1041,7 +1043,7 @@ showExternalLinkEdit(editExternalLinkInfo()); return $image; } - }); + }; // -------- buttons that open modals (e.g. to create space links) ------ $("#addSpaceLinkButton").click(function(e) { @@ -1206,6 +1208,7 @@ $("div#incomingLinks").append(""+spaceName+""); } $("#space").css("display", "none"); + onLoadFunction(); drawLinks(); } }); @@ -1290,6 +1293,7 @@ $("."+linkData["id"]).remove(); form[0].reset(); $("#space").css("display", "none"); + onLoadFunction(); drawLinks(); } }); @@ -1337,6 +1341,7 @@ hideLinkInfoTabs(); $("#space").css("display", "none"); selectedModuleLinkId=undefined; + onLoadFunction(); drawLinks(); } }); @@ -1389,7 +1394,7 @@ hideLinkInfoTabs(); $("#space").css("display", "none"); selectedSpaceLinkId=undefined; - + onLoadFunction(); drawLinks(); } }); @@ -1437,6 +1442,7 @@ hideLinkInfoTabs(); $("#space").css("display", "none"); selectedExternalLinkId=undefined; + onLoadFunction(); drawLinks(); } }); @@ -1520,6 +1526,7 @@ form[0].reset(); $("#external-arrow").attr("id",""); $("#space").css("display", "none"); + onLoadFunction(); drawLinks(); } }); @@ -1551,6 +1558,7 @@ } $("#spaceLinkInfo").hide(); $("#space").css("display", "none"); + onLoadFunction(); drawLinks(); } }); @@ -1573,6 +1581,7 @@ $('#moduleLinkIdValueEdit').val(""); hideLinkInfoTabs(); $("#space").css("display", "none"); + onLoadFunction(); drawLinks(); } }); @@ -1593,6 +1602,7 @@ $('[data-link-id="' + linkId + '"]').remove(); hideLinkInfoTabs(); $("#space").css("display", "none"); + onLoadFunction(); drawLinks(); } }); diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java index 9a8351bf1..0165dca24 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java @@ -11,6 +11,7 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import org.springframework.beans.factory.annotation.Autowired; import edu.asu.diging.vspace.core.data.ImageRepository; import edu.asu.diging.vspace.core.data.SpaceLinkRepository; @@ -35,6 +36,7 @@ import edu.asu.diging.vspace.core.model.impl.Space; import edu.asu.diging.vspace.core.model.impl.SpaceLink; import edu.asu.diging.vspace.core.model.impl.VSImage; +import edu.asu.diging.vspace.core.services.IImageService; public class SpaceLinkManagerTest { @Mock @@ -58,6 +60,9 @@ public class SpaceLinkManagerTest { @Mock private IImageFactory imageFactory; + @Mock + private IImageService imageService; + @Mock private ImageRepository imageRepo; @@ -67,7 +72,7 @@ public class SpaceLinkManagerTest { @InjectMocks private SpaceLinkManager managerToTest = new SpaceLinkManager(); - private String spaceId1, spaceId2, spaceId3, imageId, imageFileName, spcDisplayLinkId; + private String spaceId1, spaceId2, spaceId3, imageId, imageId2, imageFileName, spcDisplayLinkId; @Before public void init() { @@ -76,6 +81,7 @@ public void init() { spaceId2 = "SPA000000002"; spaceId3 = "SPA000000003"; imageId = "IMG00000001"; + imageId2 = "IMG00000002"; imageFileName = "Space Image 1"; spcDisplayLinkId = "SPLD001"; } @@ -282,5 +288,36 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionY()), new Double(actualUpdatedLink.getPositionY())); Assert.assertEquals(spaceLinkDisplayUpdated.getLink().getTargetSpace(), actualUpdatedLink.getLink().getTargetSpace()); Assert.assertEquals(spaceLinkDisplayUpdated.getType(), actualUpdatedLink.getType()); + + + //For spaceLink updating with existing Image + IVSImage spcImage = new VSImage(); + spcImage.setId(imageId2); + spcImage.setFilename(imageFileName); + spcImage.setHeight(300); + spcImage.setWidth(600); + + spaceLinkDisplayUpdated.setType(DisplayType.IMAGE); + spaceLinkDisplayUpdated.setImage(spcImage); + + Mockito.when(spaceDisplayManager.getBySpace(space)).thenReturn(displayAttributes); + Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); + Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceLinkDisplay)).thenReturn((SpaceLinkDisplay)spaceLinkDisplayUpdated); + + Mockito.when(imageService.getImageById(Mockito.anyString())).thenReturn(spcImage); + + ISpaceLinkDisplay savedSpaceLinkDisplay2 = managerToTest.updateLink("Updated Space Link", spaceId1, 10, 30, 40, spaceId2, "Updated Space Link", "SPL002", "SPLD001", DisplayType.IMAGE, null, null, imageId2); + Assert.assertEquals(spaceLinkDisplayUpdated.getId(), savedSpaceLinkDisplay2.getId()); + Assert.assertEquals(spaceLinkDisplayUpdated.getName(), savedSpaceLinkDisplay2.getName()); + Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionX()), new Double(savedSpaceLinkDisplay2.getPositionX())); + Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionY()), new Double(savedSpaceLinkDisplay2.getPositionY())); + Assert.assertEquals(spaceLinkDisplayUpdated.getRotation(), savedSpaceLinkDisplay2.getRotation()); + Assert.assertEquals(spaceLinkDisplayUpdated.getLink().getId(), savedSpaceLinkDisplay2.getLink().getId()); + Assert.assertEquals(spaceLinkDisplayUpdated.getType(), savedSpaceLinkDisplay2.getType()); + Assert.assertEquals(spaceLinkDisplayUpdated.getLink().getTargetSpace(), savedSpaceLinkDisplay2.getLink().getTargetSpace()); + Assert.assertEquals(spaceLinkDisplayUpdated.getImage().getHeight(), savedSpaceLinkDisplay2.getImage().getHeight()); + Assert.assertEquals(spaceLinkDisplayUpdated.getImage().getWidth(), savedSpaceLinkDisplay2.getImage().getWidth()); + Assert.assertEquals(spaceLinkDisplayUpdated.getImage().getId(), savedSpaceLinkDisplay2.getImage().getId()); + } } From 2d12110ed82072d6208a61ffe585d7745a9ae4e9 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Mon, 10 Jan 2022 16:22:42 -0700 Subject: [PATCH 030/138] [VSPC-172] Fix for label validation and separation between label and description over tooltip --- .../WEB-INF/views/exhibition/space.html | 6 ++-- .../WEB-INF/views/staff/spaces/space.html | 32 ++++++++++++++++--- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html index a2143189b..a2163fa08 100644 --- a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html @@ -304,7 +304,7 @@ linkDisplay = $(''); } else{ - spaceLinkTooltip = link.link.name +'\n'+ (link.link.description!=null ? link.link.description : ""); + spaceLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!='' ? ' : '+link.link.description : ""); linkDisplay = $('

'+spaceLinkTooltip+'
'); } linkDisplay.css('position', 'absolute'); @@ -334,7 +334,7 @@ var moduleLink = $(''); var moduleLinkURL = [[@{|/exhibit/${space?.id}/module/|}]]+link.link.module.id; moduleLink.attr("href", moduleLinkURL); - var moduleLinkTooltip = link.link.name + '\n' + (link.link.description!=null? link.link.description : ""); + var moduleLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!='' ? ' : '+link.link.description : ""); var linkDisplay = $('
'+moduleLinkTooltip+'
'); linkDisplay.css('position', 'absolute'); linkDisplay.css('transform', 'rotate('+link.rotation+'deg)'); @@ -371,7 +371,7 @@ linkDisplay = $(''); } else{ - externalLinkTooltip = link.externalLink.name + '\n' + (link.externalLink.description!=null ? link.externalLink.description : ""); + externalLinkTooltip = link.externalLink.name + (link.externalLink.description!=null && link.externalLink.description!='' ? ' : '+link.externalLink.description : ""); var linkDisplay = $('
'+externalLinkTooltip+'
'); } linkDisplay.css('position', 'absolute'); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 0395d9156..07c83a145 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -98,7 +98,7 @@ spaceLink = $(''); } else{ - spaceLinkTooltip = link.link.name +'\n'+ (link.link.description!=null ? link.link.description : ""); + spaceLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!='' ? ' : '+link.link.description : ""); spaceLink = $('

'+ spaceLinkTooltip +'

'); } setLinkPosition(spaceLink,link,true,isModal,false, posX, posY, posXModal, posYModal); @@ -126,7 +126,7 @@ moduleLink = $(''); } else{ - moduleLinkTooltip = link.link.name + '\n' + (link.link.description!=null? link.link.description : ""); + moduleLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!=''? ' : '+link.link.description : ""); moduleLink = $('

'+moduleLinkTooltip+'

'); } setLinkPosition(moduleLink,link,false,isModal,false, posX, posY, posXModal, posYModal); @@ -149,7 +149,7 @@ var imageURL = [[@{/api/image/}]]+link.image.id; externalLink = $(''); }else{ - externalLinkTooltip = link.externalLink.name + '\n' + (link.externalLink.description!=null ? link.externalLink.description : ""); + externalLinkTooltip = link.externalLink.name + (link.externalLink.description!=null && link.externalLink.description!='' ? ' : '+link.externalLink.description : ""); externalLink = $('

'+externalLinkTooltip+'

'); } setLinkPosition(externalLink,link,false,isModal,true, posX, posY, posXModal, posYModal); @@ -900,6 +900,14 @@ }); $("#editModuleLinkBtn").click(function(e) { e.preventDefault(); + var moduleLabel = $("#moduleLinkLabelEdit").val(); + + if (moduleLabel == undefined || moduleLabel == "") { + $("#errorMsg").text("Please enter the label for module.") + $('#errorAlert').show(); + return; + } + var linkId = $("#moduleLinkIdEdit").val(); if(storeX == undefined || storeY == undefined){ $("#errorMsg").text("Please click on the image to specify where the new link should be located."); @@ -949,6 +957,14 @@ $("#editSpaceLinkBtn").click(function(e) { e.preventDefault(); var linkId = $("#spaceLinkIdEdit").val(); + var label = $("#spaceLinkLabelEdit").val(); + + if (label == undefined || label == "") { + $("#errorMsg").text("Please fill the Label field before submitting.") + $('#errorAlert').show(); + return; + } + if (storeX == undefined || storeY == undefined) { $("#errorMsg").text("Please click on the image to specify where the new link should be located.") $('#errorAlert').show(); @@ -998,9 +1014,17 @@ $("#editExternalLinkBtn").click(function(e) { e.preventDefault(); + var externalLinkLabel = $("#externalLinkLabel").val(); + + if (externalLinkLabel == undefined || externalLinkLabel == "") { + $("#errorMsg").text("Please enter a label for this external link."); + $('#errorAlert').show(); + return; + } + var linkId = $("#externalLinkIdEdit").val(); if (storeX == undefined || storeY == undefined) { - $("#errorMsg").text("Please click on the image to specify where the new link should be located.") + $("#errorMsg").text("Please click on the image to specify where the new link should be located."); $('#errorAlert').show(); return; } From cbdfedbb11b0b902022f96f335cfa9299d932764 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Tue, 11 Jan 2022 15:57:33 -0700 Subject: [PATCH 031/138] [VSPC-172] Changes for showing no tooltip for null lables or description --- .../main/webapp/WEB-INF/views/exhibition/space.html | 13 +++++++------ .../webapp/WEB-INF/views/staff/spaces/space.html | 6 +++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html index a2163fa08..9d00f8891 100644 --- a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html @@ -304,8 +304,8 @@ linkDisplay = $(''); } else{ - spaceLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!='' ? ' : '+link.link.description : ""); - linkDisplay = $('
'+spaceLinkTooltip+'
'); + spaceLinkTooltip = (link.link.name!=null && link.link.name!=''? link.link.name : '') + (link.link.description!=null && link.link.description!='' ? ' : '+link.link.description : ""); + linkDisplay = $('
'+ (spaceLinkTooltip!=null && spaceLinkTooltip!=''? ''+spaceLinkTooltip+'' : '') + '
'); } linkDisplay.css('position', 'absolute'); linkDisplay.css('transform', 'rotate('+link.rotation+'deg)'); @@ -334,8 +334,8 @@ var moduleLink = $(''); var moduleLinkURL = [[@{|/exhibit/${space?.id}/module/|}]]+link.link.module.id; moduleLink.attr("href", moduleLinkURL); - var moduleLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!='' ? ' : '+link.link.description : ""); - var linkDisplay = $('
'+moduleLinkTooltip+'
'); + var moduleLinkTooltip = (link.link.name!=null && link.link.name!=''? link.link.name : '') + (link.link.description!=null && link.link.description!='' ? ' : '+link.link.description : ""); + var linkDisplay = $('
'+ (moduleLinkTooltip!=null && moduleLinkTooltip!='' ? ''+moduleLinkTooltip+'' : '') +'
'); linkDisplay.css('position', 'absolute'); linkDisplay.css('transform', 'rotate('+link.rotation+'deg)'); linkDisplay.css('fill', 'grey'); @@ -363,6 +363,7 @@ var externalLinkTooltip; externalLink.attr('href', link.externalLink.externalLink); externalLink.attr('target', "_blank"); + debugger; if(link.type=="ALERT"){ linkDisplay = $(''); } @@ -371,8 +372,8 @@ linkDisplay = $(''); } else{ - externalLinkTooltip = link.externalLink.name + (link.externalLink.description!=null && link.externalLink.description!='' ? ' : '+link.externalLink.description : ""); - var linkDisplay = $('
'+externalLinkTooltip+'
'); + externalLinkTooltip = (link.externalLink.name!=null && link.externalLink.name!='' ? link.externalLink : '') + (link.externalLink.description!=null && link.externalLink.description!='' ? ' : '+link.externalLink.description : ""); + var linkDisplay = $('
'+ (externalLinkTooltip!=null && externalLinkTooltip!='' ? ''+externalLinkTooltip+'' : '') +'
'); } linkDisplay.css('position', 'absolute'); linkDisplay.css('transform', 'rotate('+link.rotation+'deg)'); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 07c83a145..48c9dd5ce 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -99,7 +99,7 @@ } else{ spaceLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!='' ? ' : '+link.link.description : ""); - spaceLink = $('

'+ spaceLinkTooltip +'

'); + spaceLink = $('

'+ (spaceLinkTooltip!=null && spaceLinkTooltip!=''?''+ spaceLinkTooltip +'' : '') +'

'); } setLinkPosition(spaceLink,link,true,isModal,false, posX, posY, posXModal, posYModal); $(divId).append(spaceLink); @@ -127,7 +127,7 @@ } else{ moduleLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!=''? ' : '+link.link.description : ""); - moduleLink = $('

'+moduleLinkTooltip+'

'); + moduleLink = $('

'+ (moduleLinkTooltip!=null && moduleLinkTooltip!='' ? ''+moduleLinkTooltip+'' : '') +'

'); } setLinkPosition(moduleLink,link,false,isModal,false, posX, posY, posXModal, posYModal); $(divId).append(moduleLink); @@ -150,7 +150,7 @@ externalLink = $(''); }else{ externalLinkTooltip = link.externalLink.name + (link.externalLink.description!=null && link.externalLink.description!='' ? ' : '+link.externalLink.description : ""); - externalLink = $('

'+externalLinkTooltip+'

'); + externalLink = $('

'+(externalLinkTooltip!=null && externalLinkTooltip!='' ? ''+externalLinkTooltip+'' : '') + '

'); } setLinkPosition(externalLink,link,false,isModal,true, posX, posY, posXModal, posYModal); $(divId).append(externalLink); From 358366edb8b49e3d056b65281f422ac73a4282f2 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Tue, 25 Jan 2022 13:04:14 -0700 Subject: [PATCH 032/138] [VSPC-196] CHanges for resetting the image selection fields on links --- .../core/services/impl/LinkManager.java | 38 ++++++++++++++----- .../views/staff/modules/slides/slide.html | 1 - .../WEB-INF/views/staff/spaces/space.html | 26 ++++++++----- 3 files changed, 45 insertions(+), 20 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java index aa60e71d5..15f681a5e 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java @@ -51,7 +51,12 @@ public U createLink(String title, String id, float positionX, float positionY, link.setName(linkLabel); link.setTarget(target); U displayLink = createDisplayLink(link); - setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename, existingImageId); + if(existingImageId!=null) { + setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename, existingImageId); + } + else { + setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename); + } return updateLinkAndDisplay(link,displayLink); } @@ -67,7 +72,12 @@ public U updateLink(String title, String id, float positionX, float positionY, link.setName(title); link.setTarget(target); U displayLink = getDisplayLink(linkDisplayId); - setDisplayProperties(displayLink, id, positionX,positionY,rotation, displayType, linkImage, imageFilename, existingImageId); + if(existingImageId!=null) { + setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename, existingImageId); + } + else { + setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename); + } return updateLinkAndDisplay(link,displayLink); } @@ -104,18 +114,16 @@ protected void validateSpace(String id) throws SpaceDoesNotExistException{ } } - protected void setDisplayProperties(ILinkDisplay linkDisplay,String id, float positionX,float positionY,int rotation, DisplayType displayType, byte[] linkImage, String imageFilename, String existingImageId) throws ImageCouldNotBeStoredException, ImageDoesNotExistException { + protected void setDisplayProperties(ILinkDisplay linkDisplay,String id, float positionX,float positionY,int rotation, DisplayType displayType, byte[] linkImage, String imageFilename) throws ImageCouldNotBeStoredException { linkDisplay.setPositionX(positionX); linkDisplay.setPositionY(positionY); linkDisplay.setRotation(rotation); linkDisplay.setType(displayType != null ? displayType : DisplayType.ARROW); - IVSImage image = null; - if (linkImage != null && linkImage.length > 0) { Tika tika = new Tika(); String contentType = tika.detect(linkImage); - image = imageFactory.createImage(imageFilename, contentType); + IVSImage image = imageFactory.createImage(imageFilename, contentType); image = imageRepo.save((VSImage) image); String relativePath = null; try { @@ -125,12 +133,22 @@ protected void setDisplayProperties(ILinkDisplay linkDisplay,String id, float po } image.setParentPath(relativePath); imageRepo.save((VSImage) image); + linkDisplay.setImage(image); } - else if(existingImageId!=null && existingImageId.trim()!="") { - image = imageService.getImageById(existingImageId); + + } + + protected void setDisplayProperties(ILinkDisplay linkDisplay,String id, float positionX,float positionY,int rotation, DisplayType displayType, byte[] linkImage, String imageFilename, String existingImageId) throws ImageCouldNotBeStoredException, ImageDoesNotExistException { + linkDisplay.setPositionX(positionX); + linkDisplay.setPositionY(positionY); + linkDisplay.setRotation(rotation); + linkDisplay.setType(displayType != null ? displayType : DisplayType.ARROW); + + if(existingImageId!=null && existingImageId.trim()!="") { + IVSImage image = imageService.getImageById(existingImageId); + linkDisplay.setImage(image); } - linkDisplay.setImage(image); - + } } diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html index a69c34f09..865ec0c1b 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html @@ -85,7 +85,6 @@ } function uploadImage() { - debugger; var imgBlockID = $("#uploadImage").data('value') // gets image ID var file = $('#file')[0].files[0]; var reader = new FileReader(); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 689603db1..f9260685c 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -721,6 +721,7 @@ if ($("div#incomingLinks a").length < 2) { $("#noLinksToSpace").show() } + $("#selectedImage-spcLink").empty(); $('#imageId-spcLink').prop("disabled",true); $('#chooseFromLocal-spcLink').click(function() { $("#selectedImage-spcLink").empty(); @@ -1201,6 +1202,7 @@ $("#noLinksOnSpace").hide(); $("."+linkData["id"]).remove(); form[0].reset(); + $('#spaceLinkImageEdit').val(''); var newSpaceLinkURL = [[@{|/staff/space/|}]]+spaceId; $("#outgoingLinks").append(""+label+"  ->  "+spaceName+""); if (spaceName == "${space?.name}") { @@ -1208,7 +1210,7 @@ $("div#incomingLinks").append(""+spaceName+""); } $("#space").css("display", "none"); - onLoadFunction(); + $('#chooseFromLocal-spcLink').click(); drawLinks(); } }); @@ -1293,7 +1295,7 @@ $("."+linkData["id"]).remove(); form[0].reset(); $("#space").css("display", "none"); - onLoadFunction(); + $('#chooseFromLocal-modLink').click(); drawLinks(); } }); @@ -1341,7 +1343,7 @@ hideLinkInfoTabs(); $("#space").css("display", "none"); selectedModuleLinkId=undefined; - onLoadFunction(); + $('#chooseFromLocal-modLinkEdit').click(); drawLinks(); } }); @@ -1394,7 +1396,7 @@ hideLinkInfoTabs(); $("#space").css("display", "none"); selectedSpaceLinkId=undefined; - onLoadFunction(); + $('#chooseFromLocal-spcLinkEdit').click(); drawLinks(); } }); @@ -1442,7 +1444,7 @@ hideLinkInfoTabs(); $("#space").css("display", "none"); selectedExternalLinkId=undefined; - onLoadFunction(); + $('#chooseFromLocal-extLinkEdit').click(); drawLinks(); } }); @@ -1526,7 +1528,7 @@ form[0].reset(); $("#external-arrow").attr("id",""); $("#space").css("display", "none"); - onLoadFunction(); + $('#chooseFromLocal-extLink').click(); drawLinks(); } }); @@ -1558,7 +1560,7 @@ } $("#spaceLinkInfo").hide(); $("#space").css("display", "none"); - onLoadFunction(); + $('#chooseFromLocal-spcLinkEdit').click(); drawLinks(); } }); @@ -1581,7 +1583,7 @@ $('#moduleLinkIdValueEdit').val(""); hideLinkInfoTabs(); $("#space").css("display", "none"); - onLoadFunction(); + $('#chooseFromLocal-modLinkEdit').click(); drawLinks(); } }); @@ -1602,7 +1604,7 @@ $('[data-link-id="' + linkId + '"]').remove(); hideLinkInfoTabs(); $("#space").css("display", "none"); - onLoadFunction(); + $('#chooseFromLocal-extLinkEdit').click(); drawLinks(); } }); @@ -1759,6 +1761,7 @@ }); $("#closeEditModuleLinkInfo").click(function(e) { + debugger; e.preventDefault(); selectedModuleLinkId=undefined; $("#moduleLinkInfoLabel").text(""); @@ -1769,10 +1772,12 @@ $("#moduleLinkIdValueEdit").val(""); $("#moduleLinkImageIdEdit").val(""); moduleLinkIcon=null; + $('#chooseFromLocal-modLinkEdit').click(); drawLinks(); }); $("#closeEditSpaceLinkInfo").click(function(e) { + debugger; e.preventDefault(); selectedSpaceLinkId=undefined; $("#spaceLinkInfoLabel").text(""); @@ -1782,11 +1787,13 @@ $("#editSpaceLinkInfo").hide(); $("#spaceLinkIdValueEdit").val(""); $("#spaceLinkImageIdEdit").val(""); + $('#chooseFromLocal-spcLinkEdit').click(); linkIcon=null; drawLinks(); }); $("#closeEditExternalLinkInfo").click(function(e) { + debugger; e.preventDefault(); selectedExternalLinkId=undefined; $("#externalLinkInfoLabel").text(""); @@ -1794,6 +1801,7 @@ resetHighlighting(); $("#space").hide(); $("#editExternalLinkInfo").hide(); + $('#chooseFromLocal-extLinkEdit').click(); drawLinks(); }); }); From 4bfd19b718d7f235301dc1c9024509caa49363f6 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Tue, 25 Jan 2022 14:38:17 -0700 Subject: [PATCH 033/138] [VSPC-196] fixes for merge related issues --- .../web/staff/AddModuleLinkController.java | 10 +--------- .../web/staff/EditModuleLinkController.java | 13 +------------ .../services/impl/ModuleLinkManagerTest.java | 17 ----------------- 3 files changed, 2 insertions(+), 38 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java index fb3ae9b12..3ea42ea98 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/AddModuleLinkController.java @@ -38,14 +38,9 @@ public class AddModuleLinkController { public ResponseEntity createModuleLink(@PathVariable("id") String id, @RequestParam("x") String x, @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("moduleLinkLabel") String title, @RequestParam("linkedModule") String linkedModuleId, @RequestParam("moduleLinkLabel") String moduleLinkLabel, -<<<<<<< HEAD @RequestParam("moduleType") String displayType, @RequestParam(value="moduleLinkImage", required = false) MultipartFile file, @RequestParam(value="imageId", required=false) String imageId) throws NumberFormatException, SpaceDoesNotExistException, IOException, ImageCouldNotBeStoredException, ImageDoesNotExistException { -======= - @RequestParam("moduleType") String displayType, @RequestParam("moduleLinkImage") MultipartFile file) - throws NumberFormatException, SpaceDoesNotExistException, IOException, ImageCouldNotBeStoredException { ->>>>>>> origin/develop ISpace source = spaceManager.getSpace(id); if (source == null) { @@ -70,11 +65,8 @@ public ResponseEntity createModuleLink(@PathVariable("id") String id, @R IModuleLinkDisplay display; try { display = moduleLinkManager.createLink(title, id, new Float(x), new Float(y), -<<<<<<< HEAD new Integer(rotation), linkedModuleId, moduleLinkLabel, type, linkImage, filename, imageId); -======= - new Integer(rotation), linkedModuleId, moduleLinkLabel, type, linkImage, filename); ->>>>>>> origin/develop + } catch (SpaceDoesNotExistException e) { ObjectMapper mapper = new ObjectMapper(); ObjectNode node = mapper.createObjectNode(); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java index 7d225167e..fcb29588a 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/EditModuleLinkController.java @@ -34,14 +34,9 @@ public ResponseEntity editModuleLink(@PathVariable("id") String id, @Req @RequestParam("y") String y, @RequestParam("rotation") String rotation, @RequestParam("moduleLinkLabel") String title, @RequestParam("linkedModule") String linkedModuleId, @RequestParam("moduleLinkLabel") String moduleLinkLabel, @RequestParam("moduleLinkIdValueEdit") String moduleLinkIdValueEdit, @RequestParam("moduleLinkDisplayId") String moduleLinkDisplayId, -<<<<<<< HEAD @RequestParam("moduleLinkImageIdEdit") String moduleLinkImageIdEdit, @RequestParam("type") String displayType, @RequestParam(value="moduleLinkImage", required=false) MultipartFile file, @RequestParam(value="imageId", required=false) String imageId) throws NumberFormatException, SpaceDoesNotExistException, LinkDoesNotExistsException, IOException, ImageCouldNotBeStoredException, ImageDoesNotExistException { -======= - @RequestParam("type") String displayType, @RequestParam("moduleLinkImage") MultipartFile file) - throws NumberFormatException, SpaceDoesNotExistException, LinkDoesNotExistsException, IOException, ImageCouldNotBeStoredException { ->>>>>>> origin/develop ResponseEntity validation = checkIfSpaceExists(spaceManager, id, x, y); if(validation!=null) { @@ -52,7 +47,6 @@ public ResponseEntity editModuleLink(@PathVariable("id") String id, @Req if (file != null) { linkImage = file.getBytes(); filename = file.getOriginalFilename(); -<<<<<<< HEAD } else if(imageId==null || imageId.equals("")){ String[] token = moduleLinkImageIdEdit.split("/"); imageId = token[token.length - 1]; @@ -60,12 +54,7 @@ public ResponseEntity editModuleLink(@PathVariable("id") String id, @Req DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); IModuleLinkDisplay display = (IModuleLinkDisplay) moduleLinkManager.updateLink(title, id, new Float(x), new Float(y), new Integer(rotation), linkedModuleId, moduleLinkLabel, moduleLinkIdValueEdit, moduleLinkDisplayId, type, linkImage, filename, imageId); -======= - } - DisplayType type = displayType.isEmpty() ? null : DisplayType.valueOf(displayType); - IModuleLinkDisplay display = (IModuleLinkDisplay) moduleLinkManager.updateLink(title, id, new Float(x), new Float(y), - new Integer(rotation), linkedModuleId, moduleLinkLabel, moduleLinkIdValueEdit, moduleLinkDisplayId, type, linkImage, filename); ->>>>>>> origin/develop + return success(display.getLink().getId(), display.getId(), display.getPositionX(), display.getPositionY(), display.getRotation(),null,title,displayType,linkedModuleId,null); } diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java index 2106a9a35..799bf85e9 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java @@ -84,12 +84,7 @@ public void init() { } @Test -<<<<<<< HEAD public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, FileStorageException, ImageDoesNotExistException { -======= - public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, FileStorageException { ->>>>>>> origin/develop - Space space = new Space(); space.setId(spaceId1); IVSImage spaceImage = new VSImage(); @@ -166,11 +161,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleDisplayLinkImage)).thenReturn((ModuleLinkDisplay)moduleDisplayLinkImage); -<<<<<<< HEAD IModuleLinkDisplay savedModuleLinkDisplay2 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", DisplayType.IMAGE, new byte[20], imageFileName, null); -======= - IModuleLinkDisplay savedModuleLinkDisplay2 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", DisplayType.IMAGE, new byte[20], imageFileName); ->>>>>>> origin/develop Assert.assertEquals(moduleDisplayLinkImage.getId(), savedModuleLinkDisplay2.getId()); Assert.assertEquals(moduleDisplayLinkImage.getName(), savedModuleLinkDisplay2.getName()); Assert.assertEquals(new Double(moduleDisplayLinkImage.getPositionX()), new Double(savedModuleLinkDisplay2.getPositionX())); @@ -244,11 +235,7 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleLinkDisplay)).thenReturn((ModuleLinkDisplay)moduleLinkDisplayUpdated); -<<<<<<< HEAD IModuleLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null, null); -======= - IModuleLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null); ->>>>>>> origin/develop Assert.assertEquals(moduleLinkDisplayUpdated.getId(), actualUpdatedLink.getId()); Assert.assertEquals(moduleLinkDisplayUpdated.getName(), actualUpdatedLink.getName()); Assert.assertEquals(new Double(moduleLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink.getPositionX())); @@ -267,11 +254,7 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe moduleLinkDisplay.setImage(modImage); moduleLinkDisplayUpdated.setType(DisplayType.ARROW); -<<<<<<< HEAD IModuleLinkDisplay actualUpdatedLink2 = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null, null); -======= - IModuleLinkDisplay actualUpdatedLink2 = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null); ->>>>>>> origin/develop Assert.assertEquals(moduleLinkDisplayUpdated.getId(), actualUpdatedLink2.getId()); Assert.assertEquals(moduleLinkDisplayUpdated.getName(), actualUpdatedLink2.getName()); Assert.assertEquals(new Double(moduleLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink2.getPositionX())); From f7c9665ca127fb751aa6759617ae0f14ddace5dc Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Wed, 26 Jan 2022 14:12:44 -0700 Subject: [PATCH 034/138] [VSPC-196] Changes for handling existing image Id and reset error on images and code cleanup --- .../core/services/impl/LinkManager.java | 7 ++-- .../WEB-INF/views/staff/spaces/space.html | 40 ++----------------- 2 files changed, 7 insertions(+), 40 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java index 15f681a5e..4a148a93a 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java @@ -51,7 +51,7 @@ public U createLink(String title, String id, float positionX, float positionY, link.setName(linkLabel); link.setTarget(target); U displayLink = createDisplayLink(link); - if(existingImageId!=null) { + if(existingImageId!=null && !existingImageId.trim().isEmpty()) { setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename, existingImageId); } else { @@ -72,7 +72,7 @@ public U updateLink(String title, String id, float positionX, float positionY, link.setName(title); link.setTarget(target); U displayLink = getDisplayLink(linkDisplayId); - if(existingImageId!=null) { + if(existingImageId!=null && !existingImageId.trim().isEmpty()) { setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename, existingImageId); } else { @@ -144,11 +144,10 @@ protected void setDisplayProperties(ILinkDisplay linkDisplay,String id, float po linkDisplay.setRotation(rotation); linkDisplay.setType(displayType != null ? displayType : DisplayType.ARROW); - if(existingImageId!=null && existingImageId.trim()!="") { + if(existingImageId!=null && !existingImageId.trim().isEmpty()) { IVSImage image = imageService.getImageById(existingImageId); linkDisplay.setImage(image); } - } } diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 361e3651c..c19302297 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -37,8 +37,6 @@ var linkIconReader = new FileReader(); var linkIcon; linkIconReader.onload = function(e) { - debugger; - linkIcon = e.target.result; var linkId = $("#spaceLinkIdValueEdit").val(); if(linkId!=null && linkId!="") { @@ -46,13 +44,11 @@ } else { showSpaceLink(createSpaceLinkInfo()); } - } var moduleLinkIconReader = new FileReader(); var moduleLinkIcon; moduleLinkIconReader.onload = function(e) { - debugger; moduleLinkIcon = e.target.result; var moduleLinkId = $("#moduleLinkIdValueEdit").val(); if(moduleLinkId!=null && moduleLinkId!="") { @@ -65,7 +61,6 @@ var externalLinkIconReader = new FileReader(); var externalLinkIcon; externalLinkIconReader.onload = function(e) { - debugger; externalLinkIcon = e.target.result; var externalLinkId = $("#externalLinkIdValueEdit").val(); @@ -77,7 +72,6 @@ } function setLinkPosition(modalLink, link, isSpaceLink, isModal, isExternalLink, posX, posY, posXModal, posYModal){ - debugger; modalLink.css('position', 'absolute'); if(isModal){ modalLink.css('left',link.positionX + posXModal); @@ -130,7 +124,6 @@ } function generateSpaceLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ - debugger; if(link != null){ var spaceLink; if(link.type == "ALERT"){ @@ -203,7 +196,6 @@ } function drawLinks(){ - debugger; $(".Info_cz_Class").remove(); $(".imageLink").remove(); $(".alertLink").remove(); @@ -270,7 +262,6 @@ //--------- show links functions -------------- function showSpaceLink(spaceLink, show, x, y) { - debugger; $("#space_label").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; @@ -391,7 +382,6 @@ } function showModuleLinkEdit(moduleLink, show, posX, posY) { - debugger; moduleLink["x"]=storeX; moduleLink["y"]=storeY; var selectedLinkClass = '#moduleModallinkId-'+selectedModuleLinkId; @@ -400,7 +390,6 @@ } function showSpaceLinkEdit(spaceLink, show, posX, posY) { - debugger; spaceLink["x"]=storeX; spaceLink["y"]=storeY; var selectedLinkClass = '#spacelinkModalId-'+selectedSpaceLinkId; @@ -436,7 +425,6 @@ } function updateLinkProperties(selectedLinkClass,selectedLabelClass,rotation,x,y,linkLabel, show){ - debugger; var posX, posY; if(show) { posx = $("#main-bgImage").position().left; @@ -479,7 +467,6 @@ } function showExternalLinks(externalLink, show, x, y) { - debugger; $("#ext_label").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; @@ -578,7 +565,6 @@ } function editSpaceLinkInfo() { - debugger; var info = {}; info["x"] = storeX; info["y"] = storeY; @@ -600,7 +586,6 @@ } function makeSpaceLinksEditable(spaceLinkName, spaceLinkId, rotation, selectedSpaceId, posXEdit, posYEdit, displayLinkId, linkType, spaceLinkImageId) { - debugger; $("#spaceLinkInfoLabel").text(spaceLinkName); $("#spaceLinkId").val(spaceLinkId); selectedSpaceLinkId=spaceLinkId; @@ -637,7 +622,6 @@ displayForms("#editSpaceLinkInfo"); } function displayForms(formToShow){ - debugger; drawLinks(); $("#space").css("display", "-webkit-box"); $(formToShow).css("display", "flex"); @@ -819,7 +803,6 @@ }; function formatSelection(image) { - debugger; if (!image.id) { return image.text; } @@ -835,7 +818,6 @@ } function formatSelectionEdit(image) { - debugger; if (!image.id) { return image.text; } @@ -923,7 +905,6 @@ }); function formatSelectionModule(image) { - debugger; if (!image.id) { return image.text; } @@ -939,7 +920,6 @@ } function formatSelectionEditModule(image) { - debugger; if (!image.id) { return image.text; } @@ -958,7 +938,6 @@ //External link selection of existing images $('#imageId-extLink').prop("disabled",true); $('#chooseFromLocal-extLink').click(function() { - debugger; $("#selectedImage-extLink").empty(); $('#imageId-extLink').prop('selectedIndex',0).trigger( "change" ); $('#imageId-extLink').prop("disabled",true); @@ -968,7 +947,6 @@ }); $('#chooseFromExisting-extLink').click(function() { - debugger; $('#externalLinkImage').val(''); $('#externalLinkImage').prop("disabled",true); $('#imageId-extLink').prop("disabled",false); @@ -1029,7 +1007,6 @@ }); function formatSelectionExternal(image) { - debugger; if (!image.id) { return image.text; } @@ -1045,7 +1022,6 @@ } function formatSelectionEditExternal(image) { - debugger; if (!image.id) { return image.text; } @@ -1059,7 +1035,7 @@ showExternalLinkEdit(editExternalLinkInfo()); return $image; } - }; + }); // -------- buttons that open modals (e.g. to create space links) ------ $("#addSpaceLinkButton").click(function(e) { @@ -1165,7 +1141,6 @@ $("#spaceLinkX").val(storeX); $("#spaceLinkY").val(storeY); - debugger; var form = $("#createSpaceLinkForm"); var label = $("#spaceLinkLabel").val(); var spaceName = $("#linkedSpace option:selected").text(); @@ -1361,13 +1336,13 @@ $("#space").css("display", "none"); selectedModuleLinkId=undefined; $('#chooseFromLocal-modLinkEdit').click(); + moduleLinkIcon=null; drawLinks(); } }); }); $("#editSpaceLinkBtn").click(function(e) { - debugger; e.preventDefault(); var linkId = $("#spaceLinkIdEdit").val(); if (storeX == undefined || storeY == undefined) { @@ -1414,6 +1389,7 @@ $("#space").css("display", "none"); selectedSpaceLinkId=undefined; $('#chooseFromLocal-spcLinkEdit').click(); + linkIcon=null; drawLinks(); } }); @@ -1462,6 +1438,7 @@ $("#space").css("display", "none"); selectedExternalLinkId=undefined; $('#chooseFromLocal-extLinkEdit').click(); + externalLinkIcon=null; drawLinks(); } }); @@ -1668,7 +1645,6 @@ }); $(".modulelink-targetEdit").change(function() { - debugger; showModuleLinkEdit(editModuleLinkInfo()); }); @@ -1682,14 +1658,12 @@ $("#spaceLinkImage").change(function() { - debugger; if (this.files && this.files[0]) { linkIconReader.readAsDataURL(this.files[0]); } }); $("#spaceLinkImageEdit").change(function() { - debugger; var linkId = $("#spaceLinkIdValueEdit").val(); if (this.files && this.files[0]) { linkIconReader.readAsDataURL(this.files[0]); @@ -1700,14 +1674,12 @@ }); $("#moduleLinkImage").change(function() { - debugger; if (this.files && this.files[0]) { moduleLinkIconReader.readAsDataURL(this.files[0]); } }); $("#moduleLinkImageEdit").change(function() { - debugger; var moduleLinkId = $("#moduleLinkIdValueEdit").val(); if (this.files && this.files[0]) { moduleLinkIconReader.readAsDataURL(this.files[0]); @@ -1724,7 +1696,6 @@ }); $("#externalLinkImageEdit").change(function() { - debugger; var externalLinkId = $("#externalLinkIdValueEdit").val(); if (this.files && this.files[0]) { externalLinkIconReader.readAsDataURL(this.files[0]); @@ -1783,7 +1754,6 @@ }); $("#closeEditModuleLinkInfo").click(function(e) { - debugger; e.preventDefault(); selectedModuleLinkId=undefined; $("#moduleLinkInfoLabel").text(""); @@ -1799,7 +1769,6 @@ }); $("#closeEditSpaceLinkInfo").click(function(e) { - debugger; e.preventDefault(); selectedSpaceLinkId=undefined; $("#spaceLinkInfoLabel").text(""); @@ -1815,7 +1784,6 @@ }); $("#closeEditExternalLinkInfo").click(function(e) { - debugger; e.preventDefault(); selectedExternalLinkId=undefined; $("#externalLinkInfoLabel").text(""); From 766f0bb004757085b734d1839ae12b3f5d6a6bb5 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Tue, 1 Feb 2022 14:47:53 -0700 Subject: [PATCH 035/138] [VSPC-172] Fix for external link label issue and code clean up --- vspace/src/main/webapp/WEB-INF/views/exhibition/space.html | 3 +-- vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html index 9d00f8891..e64c4446c 100644 --- a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html @@ -363,7 +363,6 @@ var externalLinkTooltip; externalLink.attr('href', link.externalLink.externalLink); externalLink.attr('target', "_blank"); - debugger; if(link.type=="ALERT"){ linkDisplay = $(''); } @@ -372,7 +371,7 @@ linkDisplay = $(''); } else{ - externalLinkTooltip = (link.externalLink.name!=null && link.externalLink.name!='' ? link.externalLink : '') + (link.externalLink.description!=null && link.externalLink.description!='' ? ' : '+link.externalLink.description : ""); + externalLinkTooltip = (link.externalLink.name!=null && link.externalLink.name!='' ? link.externalLink.name : '') + (link.externalLink.description!=null && link.externalLink.description!='' ? ' : '+link.externalLink.description : ""); var linkDisplay = $('
'+ (externalLinkTooltip!=null && externalLinkTooltip!='' ? ''+externalLinkTooltip+'' : '') +'
'); } linkDisplay.css('position', 'absolute'); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 48c9dd5ce..e6cd89baa 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -1014,7 +1014,7 @@ $("#editExternalLinkBtn").click(function(e) { e.preventDefault(); - var externalLinkLabel = $("#externalLinkLabel").val(); + var externalLinkLabel = $("#externalLinkLabelEdit").val(); if (externalLinkLabel == undefined || externalLinkLabel == "") { $("#errorMsg").text("Please enter a label for this external link."); From 7d931eaab54e111d112a144094d1d55964a9ec57 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Thu, 3 Feb 2022 16:37:49 -0700 Subject: [PATCH 036/138] [VSPC-172] fixed issue with image hover --- .../webapp/WEB-INF/views/staff/spaces/space.html | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index bdedbcd57..3a8aba0a2 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -152,6 +152,7 @@ } function generateModuleLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ + debugger; if(link != null){ var moduleLink; var moduleLinkTooltip @@ -160,7 +161,7 @@ } else if(link.type=="IMAGE" && link.image != null){ var moduleImageURL = [[@{/api/image/}]]+link.image.id; - moduleLink = $(''); + moduleLink = $(''); } else{ moduleLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!=''? ' : '+link.link.description : ""); @@ -646,7 +647,8 @@ } function makeModuleLinksEditable(moduleLinkName, moduleLinkDesc, moduleLinkId, rotation, selectedModuleId, posXEdit, posYEdit, displayLinkId, linkType, moduleLinkImageId) { - selectedModuleLinkId=moduleLinkId; + debugger; + selectedModuleLinkId=moduleLinkId; storeX=posXEdit; storeY=posYEdit; $("#moduleLinkInfoLabel").text(moduleLinkName); @@ -1317,6 +1319,7 @@ }); }); $("#editModuleLinkBtn").click(function(e) { + debugger; e.preventDefault(); var moduleLabel = $("#moduleLinkLabelEdit").val(); @@ -1338,6 +1341,10 @@ var form = $("#editModuleLinkForm"); var formData = new FormData(form[0]); var moduleLinkInfo = editModuleLinkInfo(); + for(var pair of formData.entries()) { + console.log(pair[0]+ ', '+ pair[1]); + } + formData.delete('uploadRadioBtn'); $.ajax({ type: "POST", url: "[(@{'/staff/space/link/module/'+${space?.id}+'?'+${_csrf.parameterName}+'='+${_csrf.token}})]", @@ -1456,6 +1463,7 @@ $("#externalLinkYEdit").val(storeY); var form = $("#editExternalLinkForm"); var formData = new FormData(form[0]); + formData.delete('uploadRadioBtn'); var externalLinkInfo = editExternalLinkInfo(); $.ajax({ type: "POST", @@ -2089,7 +2097,6 @@
Create new Module Link
-
@@ -2418,7 +2425,6 @@
- From 4a391396f22e117d604cdfbc967e50731eda889e Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Wed, 9 Feb 2022 15:38:44 -0700 Subject: [PATCH 037/138] [VSPC-172] Fixed issues with position of images and code indentations --- .../WEB-INF/views/staff/spaces/space.html | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 3a8aba0a2..5b1578809 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -152,8 +152,8 @@ } function generateModuleLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ - debugger; - if(link != null){ + console.log("In here"); + if(link != null){ var moduleLink; var moduleLinkTooltip if(link.type=="ALERT"){ @@ -351,7 +351,7 @@ if(selectedModuleLinkId!=null) { $('#moduleModallinkId-'+selectedModuleLinkId).css('visbility', 'hidden'); } - link = $(''); + link = $(''); } else{ $(module_label_desc).css({ 'position': 'absolute', @@ -392,6 +392,7 @@ } function showModuleLinkEdit(moduleLink, show, posX, posY) { + console.log("showModLinkEdit lo") moduleLink["x"]=storeX; moduleLink["y"]=storeY; var selectedLinkClass = '#moduleModallinkId-'+selectedModuleLinkId; @@ -435,7 +436,7 @@ } function updateLinkProperties(selectedLinkClass,selectedLabelClass,rotation,x,y,linkLabel,linkDesc, show){ - var posX, posY; + var posX, posY; if(show) { posx = $("#main-bgImage").position().left; posY = $("#main-bgImage").position().top; @@ -647,7 +648,6 @@ } function makeModuleLinksEditable(moduleLinkName, moduleLinkDesc, moduleLinkId, rotation, selectedModuleId, posXEdit, posYEdit, displayLinkId, linkType, moduleLinkImageId) { - debugger; selectedModuleLinkId=moduleLinkId; storeX=posXEdit; storeY=posYEdit; @@ -1217,7 +1217,7 @@ $("#noLinksOnSpace").hide(); $("."+linkData["id"]).remove(); form[0].reset(); - $('#spaceLinkImageEdit').val(''); + $('#spaceLinkImage').val(''); var newSpaceLinkURL = [[@{|/staff/space/|}]]+spaceId; $("#outgoingLinks").append(""+label+"  ->  "+spaceName+""); if (spaceName == "${space?.name}") { @@ -1311,6 +1311,7 @@ $('#errorAlert').hide(); $("."+linkData["id"]).remove(); form[0].reset(); + $('#moduleLinkImage').val(''); $("#space").css("display", "none"); moduleLinkIcon=null; $('#chooseFromLocal-modLink').click(); @@ -1319,7 +1320,6 @@ }); }); $("#editModuleLinkBtn").click(function(e) { - debugger; e.preventDefault(); var moduleLabel = $("#moduleLinkLabelEdit").val(); @@ -1373,6 +1373,7 @@ showModuleLinkEdit(moduleLinkInfo, true); hideLinkInfoTabs(); $("#space").css("display", "none"); + $('#moduleLinkImageEdit').val(''); selectedModuleLinkId=undefined; $('#chooseFromLocal-modLinkEdit').click(); moduleLinkIcon=null; @@ -1434,6 +1435,7 @@ $('#linkTarget-'+selectedSpaceLinkId).val(linkData["linkedId"]); hideLinkInfoTabs(); $("#space").css("display", "none"); + $('#spaceLinkImageEdit').val(''); selectedSpaceLinkId=undefined; $('#chooseFromLocal-spcLinkEdit').click(); linkIcon=null; @@ -1492,6 +1494,7 @@ showExternalLinkEdit(editExternalLinkInfo, true); hideLinkInfoTabs(); $("#space").css("display", "none"); + $('#externalLinkImageEdit').val(''); selectedExternalLinkId=undefined; $('#chooseFromLocal-extLinkEdit').click(); externalLinkIcon=null; @@ -1578,6 +1581,7 @@ form[0].reset(); $("#external-arrow").attr("id",""); $("#space").css("display", "none"); + $('#externalLinkImage').val(''); externalLinkIcon=null; $('#chooseFromLocal-extLink').click(); drawLinks(); @@ -1612,6 +1616,9 @@ $("#spaceLinkInfo").hide(); $("#space").css("display", "none"); $('#chooseFromLocal-spcLinkEdit').click(); + linkIcon=null; + storeX = null; + storeY = null; drawLinks(); } }); @@ -1635,6 +1642,9 @@ hideLinkInfoTabs(); $("#space").css("display", "none"); $('#chooseFromLocal-modLinkEdit').click(); + moduleLinkIcon=null; + storeX = null; + storeY = null; drawLinks(); } }); @@ -1656,6 +1666,9 @@ hideLinkInfoTabs(); $("#space").css("display", "none"); $('#chooseFromLocal-extLinkEdit').click(); + externalLinkIcon=null; + storeX = null; + storeY = null; drawLinks(); } }); @@ -1819,6 +1832,7 @@ $("#editModuleLinkInfo").hide(); $("#moduleLinkIdValueEdit").val(""); $("#moduleLinkImageIdEdit").val(""); + $("#moduleLinkImageEdit").val(""); moduleLinkIcon=null; $('#chooseFromLocal-modLinkEdit').click(); drawLinks(); @@ -1834,8 +1848,9 @@ $("#editSpaceLinkInfo").hide(); $("#spaceLinkIdValueEdit").val(""); $("#spaceLinkImageIdEdit").val(""); - $('#chooseFromLocal-spcLinkEdit').click(); + $("#spaceLinkImageEdit").val(""); linkIcon=null; + $('#chooseFromLocal-spcLinkEdit').click(); drawLinks(); }); @@ -1847,6 +1862,7 @@ resetHighlighting(); $("#space").hide(); $("#editExternalLinkInfo").hide(); + externalLinkIcon=null; $('#chooseFromLocal-extLinkEdit').click(); drawLinks(); }); From e22d7b217b04da49ee2e02a8fc95ee56f2485d01 Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Tue, 15 Feb 2022 15:51:04 -0700 Subject: [PATCH 038/138] [VSPC-172] Chnages for fixing image coming again n again while editing links --- vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 5b1578809..406506aa0 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -374,6 +374,7 @@ link.css('font-size', "12px"); if (moduleLink["id"]) { + link.attr("class", moduleLink["id"]); link.attr("data-link-id", moduleLink["id"]); link.css('cursor', 'pointer'); link.click(function(e) { @@ -513,6 +514,7 @@ if (externalLink["id"]) { link.attr("data-link-id", externalLink["id"]); + link.attr("class", externalLink["id"]); link.css('cursor', 'pointer'); link.attr('href', externalLink["url"]); link.click(function(e) { From 017bc82178488497341b42dd23ad661200723f81 Mon Sep 17 00:00:00 2001 From: glend17 Date: Thu, 17 Feb 2022 11:05:59 -0700 Subject: [PATCH 039/138] [VSPC-171] PR Review comments --- .../vspace/web/staff/DeleteSpaceBlockController.java | 4 ++-- .../edu/asu/diging/vspace/web/staff/SlideController.java | 9 ++------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java index 904d3357e..08051b906 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java @@ -28,8 +28,8 @@ public ResponseEntity deleteSpaceBlock(@PathVariable("id") String slideI contentBlockManager.deleteSpaceBlockById(blockId,slideId); } catch (BlockDoesNotExistException e) { - logger.warn("Text Id does not exist, bad request.", e); - return new ResponseEntity(HttpStatus.BAD_REQUEST); + logger.warn("Block Id does not exist, bad request.", e); + return new ResponseEntity(HttpStatus.NOT_FOUND); } return new ResponseEntity(HttpStatus.OK); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java index 848c8b233..d099ee16a 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java @@ -54,11 +54,7 @@ public class SlideController { public String listSlides(@PathVariable("id") String id, @PathVariable("moduleId") String moduleId, Model model) throws JsonProcessingException { ISlide slide = slideManager.getSlide(id); - List spaces = new ArrayList(); - spaceRepo.findAll().forEach(s -> { - spaces.add(s); - }); - model.addAttribute("spaces", spaces); + model.addAttribute("spaces", spaceRepo.findAll()); model.addAttribute("module", moduleManager.getModule(moduleId)); model.addAttribute("slide", slide); model.addAttribute("slideSequences", slideManager.getSlideSequences(id, moduleId)); @@ -69,8 +65,7 @@ public String listSlides(@PathVariable("id") String id, @PathVariable("moduleId" model.addAttribute("contentCount",slideContents.size()>0 ? slideContents.get(slideContents.size()-1).getContentOrder() : 0); if(slideManager.getSlide(id) instanceof BranchingPoint) { model.addAttribute("choices", ((IBranchingPoint)slide).getChoices()); - } - System.out.println("the map is"+ selectedSpaceForSpaceBlock.get("CON000000007")); + } return "staff/modules/slides/slide"; } From 8801229ee2836ba0225a87f5d52fb8b811888213 Mon Sep 17 00:00:00 2001 From: glend17 Date: Thu, 17 Feb 2022 14:02:11 -0700 Subject: [PATCH 040/138] [VSPC-171] Review comments --- .../vspace/web/staff/DeleteSpaceBlockController.java | 5 ++++- .../asu/diging/vspace/web/staff/SlideController.java | 4 ++-- .../WEB-INF/views/staff/modules/slides/slide.html | 10 ++++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java index 08051b906..5204c2f1a 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteSpaceBlockController.java @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -14,6 +15,7 @@ import edu.asu.diging.vspace.core.exception.BlockDoesNotExistException; import edu.asu.diging.vspace.core.services.IContentBlockManager; +@Controller public class DeleteSpaceBlockController { private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -23,7 +25,8 @@ public class DeleteSpaceBlockController { @RequestMapping(value = "/staff/module/{moduleId}/slide/{id}/space/{blockId}", method = RequestMethod.DELETE) public ResponseEntity deleteSpaceBlock(@PathVariable("id") String slideId,@PathVariable("blockId") String blockId) throws IOException { - + logger.info("block id is {}", blockId); + logger.info("module id is", slideId); try { contentBlockManager.deleteSpaceBlockById(blockId,slideId); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java index d099ee16a..405c72408 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/SlideController.java @@ -59,9 +59,9 @@ public String listSlides(@PathVariable("id") String id, @PathVariable("moduleId" model.addAttribute("slide", slide); model.addAttribute("slideSequences", slideManager.getSlideSequences(id, moduleId)); List slideContents = contentBlockManager.getAllContentBlocks(id); - HashMap selectedSpaceForSpaceBlock = contentBlockManager.findSelectedSpaceForSpaceBlock(slideContents); + //HashMap selectedSpaceForSpaceBlock = contentBlockManager.findSelectedSpaceForSpaceBlock(slideContents); model.addAttribute("slideContents", slideContents); - model.addAttribute("selectedSpaceForSpaceBlock", selectedSpaceForSpaceBlock); + //model.addAttribute("selectedSpaceForSpaceBlock", selectedSpaceForSpaceBlock); model.addAttribute("contentCount",slideContents.size()>0 ? slideContents.get(slideContents.size()-1).getContentOrder() : 0); if(slideManager.getSlide(id) instanceof BranchingPoint) { model.addAttribute("choices", ((IBranchingPoint)slide).getChoices()); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html index 8ab8d1756..3c0f41408 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html @@ -19,7 +19,9 @@ var contentCount = [[${#lists.size(slideContents)}]]; var markDown = null; var defaultValue; - var selectedSpaceForSpaceBlock = [[${selectedSpaceForSpaceBlock}]] + var spaces = [[${spaces}]]; + var slideContents = [[${slideContents}]]; + console.log(slideContents); $(function () { $('[data-toggle="tooltip"]').tooltip() @@ -566,7 +568,7 @@ var blockId = $('#deleteSpaceId').attr('value'); $('#deleteSpaceId').remove() - // ------------- delete text content blocks ------------ + // ------------- delete space content blocks ------------ $.ajax({ url: "[(@{'/staff/module/'+${module.id}+'/slide/'+${slide.id}+'/space/'})]"+blockId+'?'+[[${_csrf.parameterName}]]+'='+[[${_csrf.token}]], type: 'DELETE', @@ -706,7 +708,7 @@ $("#submitSpace").on("click", function(e) { $("#addSpaceAlert").hide(); e.preventDefault(); - // ------------- creating text content blocks ------------ + // ------------- creating space content blocks ------------ var formData = new FormData(); var text = markDown.value(); @@ -1426,7 +1428,7 @@
-
+
-
+
-
+
-
+
-
+
-
+
-

- -

From e09cab530d3c220b554419b71e01e7306b41e8dd Mon Sep 17 00:00:00 2001 From: Pradeep Kumar Date: Tue, 22 Feb 2022 13:42:54 -0700 Subject: [PATCH 045/138] [VSPC-172] Unit test changes and ui changes and code cleanup --- .../core/services/impl/LinkManager.java | 6 +- .../WEB-INF/views/staff/spaces/space.html | 20 ------ .../services/impl/SpaceLinkManagerTest.java | 70 ++++++++++++++++--- 3 files changed, 62 insertions(+), 34 deletions(-) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java index 8075b6b81..8149d045d 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/LinkManager.java @@ -53,7 +53,7 @@ public U createLink(String title, String id, float positionX, float positionY, link.setTarget(target); U displayLink = createDisplayLink(link); if(existingImageId!=null && !existingImageId.trim().isEmpty()) { - setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename, existingImageId); + setDisplayProperties(displayLink, positionX, positionY, rotation, displayType, existingImageId); } else { setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename); @@ -75,7 +75,7 @@ public U updateLink(String title, String id, float positionX, float positionY, link.setTarget(target); U displayLink = getDisplayLink(linkDisplayId); if(existingImageId!=null && !existingImageId.trim().isEmpty()) { - setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename, existingImageId); + setDisplayProperties(displayLink, positionX, positionY, rotation, displayType, existingImageId); } else { setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename); @@ -140,7 +140,7 @@ protected void setDisplayProperties(ILinkDisplay linkDisplay,String id, float po } - protected void setDisplayProperties(ILinkDisplay linkDisplay,String id, float positionX,float positionY,int rotation, DisplayType displayType, byte[] linkImage, String imageFilename, String existingImageId) throws ImageCouldNotBeStoredException, ImageDoesNotExistException { + protected void setDisplayProperties(ILinkDisplay linkDisplay, float positionX,float positionY,int rotation, DisplayType displayType, String existingImageId) throws ImageCouldNotBeStoredException, ImageDoesNotExistException { linkDisplay.setPositionX(positionX); linkDisplay.setPositionY(positionY); linkDisplay.setRotation(rotation); diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 8d3bf08c2..ae2220922 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -152,7 +152,6 @@ } function generateModuleLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ - console.log("In here"); if(link != null){ var moduleLink; var moduleLinkTooltip @@ -393,7 +392,6 @@ } function showModuleLinkEdit(moduleLink, show, posX, posY) { - console.log("showModLinkEdit lo") moduleLink["x"]=storeX; moduleLink["y"]=storeY; var selectedLinkClass = '#moduleModallinkId-'+selectedModuleLinkId; @@ -872,7 +870,6 @@ return $image; } - //Module link selection of existing images $('#imageId-modLink').prop("disabled",true); $('#chooseFromLocal-modLink').click(function() { @@ -1218,12 +1215,7 @@ imageId = imageSource.split("/").pop().split(".")[0]; } formData.set('imageId',imageId); - /* formData.append('imageId',imageId); */ - formData.delete('uploadRadioBtn'); - for(var pair of formData.entries()) { - console.log(pair[0]+ ', '+ pair[1]); - } $.ajax({ type: "POST", @@ -1380,9 +1372,6 @@ var form = $("#editModuleLinkForm"); var formData = new FormData(form[0]); var moduleLinkInfo = editModuleLinkInfo(); - for(var pair of formData.entries()) { - console.log(pair[0]+ ', '+ pair[1]); - } formData.delete('uploadRadioBtn'); $.ajax({ type: "POST", @@ -1805,9 +1794,6 @@ if (this.files && this.files[0]) { linkIconReader.readAsDataURL(this.files[0]); } - /* $('#spacelinkModalId-' + linkId ).remove(); */ - console.log(linkIcon); - }); $("#moduleLinkImage").change(function() { @@ -1821,9 +1807,6 @@ if (this.files && this.files[0]) { moduleLinkIconReader.readAsDataURL(this.files[0]); } - /* $('#spacelinkModalId-' + linkId ).remove(); */ - console.log(moduleLinkId); - }); $("#externalLinkImage").change(function() { @@ -1837,9 +1820,6 @@ if (this.files && this.files[0]) { externalLinkIconReader.readAsDataURL(this.files[0]); } - /* $('#spacelinkModalId-' + linkId ).remove(); */ - console.log(externalLinkId); - }); // ------------ Cancel buttons ----------------- diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java index 6dbdca300..0066308db 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java @@ -11,7 +11,6 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.springframework.beans.factory.annotation.Autowired; import edu.asu.diging.vspace.core.data.ImageRepository; import edu.asu.diging.vspace.core.data.SpaceLinkRepository; @@ -139,8 +138,27 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Assert.assertEquals(spaceDisplayLink.getType(), savedSpaceLinkDisplay.getType()); Assert.assertEquals(spaceDisplayLink.getLink().getTargetSpace(), savedSpaceLinkDisplay.getLink().getTargetSpace()); Mockito.verify(spaceLinkDisplayRepo).save((SpaceLinkDisplay)spaceDisplayLink); + } + + @Test + public void test_createLinkWithExistingImage_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, ImageDoesNotExistException, FileStorageException { + + ISpace space = new Space(); + space.setId(spaceId1); + + ISpaceLink spaceLink = new SpaceLink(); + spaceLink.setId("SPL001"); - //For spaceLink as Image + Mockito.when(spaceManager.getSpace(spaceId1)).thenReturn(space); + Mockito.when(spaceLinkRepo.save((SpaceLink)spaceLink)).thenReturn((SpaceLink) spaceLink); + Mockito.when(spaceManager.getSpace(spaceId1)).thenReturn(space); + Mockito.when(spaceLinkFactory.createSpaceLink("New Space Link", space)).thenReturn(spaceLink); + + ISpace target = new Space(); + target.setId(spaceId2); + Mockito.when(spaceManager.getSpace(spaceId2)).thenReturn(target); + + spaceLink.setTargetSpace(target); IVSImage spcImage = new VSImage(); spcImage.setId(imageId); spcImage.setFilename(imageFileName); @@ -158,11 +176,9 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo spaceDisplayLinkImage.setLink(spaceLink); Mockito.when(spaceLinkDisplayFactory.createSpaceLinkDisplay(spaceLink)).thenReturn(spaceDisplayLinkImage); - Mockito.when(imageFactory.createImage(Mockito.anyString(), Mockito.anyString())).thenReturn(spcImage); Mockito.when(imageRepo.save((VSImage) spcImage)).thenReturn((VSImage) spcImage); Mockito.when(storage.storeFile(new byte[20], imageFileName, spcImage.getId())).thenReturn("Dummy File Path"); - Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceDisplayLinkImage)).thenReturn((SpaceLinkDisplay)spaceDisplayLinkImage); @@ -235,14 +251,11 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe ISpace target = new Space(); target.setId(spaceId2); - Mockito.when(spaceManager.getSpace(spaceId2)).thenReturn(target); spaceLink.setTargetSpace(target); - spaceLinkDisplay.setId("SPLD001"); spaceLinkDisplay.setLink(spaceLink); - spaceLinkDisplay.setName("TestSpace"); spaceLinkDisplay.setPositionX(10); spaceLinkDisplay.setPositionY(30); @@ -277,7 +290,6 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe displayAttributes.setWidth(1300); Mockito.when(spaceDisplayManager.getBySpace(space)).thenReturn(displayAttributes); - Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceLinkDisplay)).thenReturn((SpaceLinkDisplay)spaceLinkDisplayUpdated); @@ -289,21 +301,57 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionY()), new Double(actualUpdatedLink.getPositionY())); Assert.assertEquals(spaceLinkDisplayUpdated.getLink().getTargetSpace(), actualUpdatedLink.getLink().getTargetSpace()); Assert.assertEquals(spaceLinkDisplayUpdated.getType(), actualUpdatedLink.getType()); - - //For spaceLink updating with existing Image + } + + @Test + public void test_updateLinkWithExistingImage_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException, ImageDoesNotExistException { IVSImage spcImage = new VSImage(); spcImage.setId(imageId2); spcImage.setFilename(imageFileName); spcImage.setHeight(300); spcImage.setWidth(600); + ISpace space = new Space(); + space.setId(spaceId1); + ISpace target = new Space(); + target.setId(spaceId2); + + ISpaceLink spaceLink = new SpaceLink(); + spaceLink.setId("SPL002"); + spaceLink.setSourceSpace(space); + spaceLink.setTargetSpace(target); + + SpaceLinkDisplay spaceLinkDisplay = new SpaceLinkDisplay(); + spaceLinkDisplay.setId("SPLD001"); + spaceLinkDisplay.setLink(spaceLink); + + spaceLinkDisplay.setName("TestSpace"); + spaceLinkDisplay.setPositionX(10); + spaceLinkDisplay.setPositionY(30); + spaceLinkDisplay.setPositionY(20); + spaceLinkDisplay.setType(DisplayType.ARROW); + + SpaceLinkDisplay spaceLinkDisplayUpdated = spaceLinkDisplay; + spaceLinkDisplayUpdated.setName("TestSpaceEdited"); + spaceLinkDisplayUpdated.setPositionX(100); + spaceLinkDisplayUpdated.setPositionY(300); + spaceLinkDisplayUpdated.setRotation(180); spaceLinkDisplayUpdated.setType(DisplayType.IMAGE); spaceLinkDisplayUpdated.setImage(spcImage); + ISpaceDisplay displayAttributes = new SpaceDisplay(); + displayAttributes.setHeight(700); + displayAttributes.setWidth(1300); + + Optional mockSpaceLink = Optional.of((SpaceLink)spaceLink); + Mockito.when(spaceLinkRepo.findById(spaceLink.getId())).thenReturn(mockSpaceLink); + Optional mockSpaceLinkDisplay = Optional.of((SpaceLinkDisplay)spaceLinkDisplay); + Mockito.when(spaceLinkDisplayRepo.findById(spaceLinkDisplay.getId())).thenReturn(mockSpaceLinkDisplay); + + Mockito.when(spaceManager.getSpace(spaceId1)).thenReturn(space); Mockito.when(spaceDisplayManager.getBySpace(space)).thenReturn(displayAttributes); Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceLinkDisplay)).thenReturn((SpaceLinkDisplay)spaceLinkDisplayUpdated); - Mockito.when(imageService.getImageById(Mockito.anyString())).thenReturn(spcImage); ISpaceLinkDisplay savedSpaceLinkDisplay2 = managerToTest.updateLink("Updated Space Link", spaceId1, 10, 30, 40, spaceId2, "Updated Space Link", "TestSpaceEdited Desc", "SPL002", "SPLD001", DisplayType.IMAGE, null, null, imageId2); From fb785dc9bd1fc9956894927ce891a08e1f980e01 Mon Sep 17 00:00:00 2001 From: glend17 Date: Tue, 22 Feb 2022 23:14:40 -0700 Subject: [PATCH 046/138] [VSPC-171] Exhibition side link --- vspace/src/main/webapp/WEB-INF/views/exhibition/module.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vspace/src/main/webapp/WEB-INF/views/exhibition/module.html b/vspace/src/main/webapp/WEB-INF/views/exhibition/module.html index 95afbfa19..2bcdd8fb4 100644 --- a/vspace/src/main/webapp/WEB-INF/views/exhibition/module.html +++ b/vspace/src/main/webapp/WEB-INF/views/exhibition/module.html @@ -73,6 +73,8 @@

[[${currentSlideCon.name}]]

[(${contents.htmlRenderedText()})]
+
Date: Wed, 23 Feb 2022 12:00:19 -0700 Subject: [PATCH 047/138] [VSPC-171] PR Review comments addressed --- .../webapp/WEB-INF/views/staff/modules/slides/slide.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html index 812e8b95b..80a7eb2e1 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/modules/slides/slide.html @@ -16,6 +16,7 @@ + @@ -38,37 +37,21 @@ var linkIcon; linkIconReader.onload = function(e) { linkIcon = e.target.result; - var linkId = $("#spaceLinkIdValueEdit").val(); - if(linkId!=null && linkId!="") { - showSpaceLinkEdit(editSpaceLinkInfo()); - } else { - showSpaceLink(createSpaceLinkInfo()); - } + showSpaceLink(createSpaceLinkInfo()); } var moduleLinkIconReader = new FileReader(); var moduleLinkIcon; moduleLinkIconReader.onload = function(e) { moduleLinkIcon = e.target.result; - var moduleLinkId = $("#moduleLinkIdValueEdit").val(); - if(moduleLinkId!=null && moduleLinkId!="") { - showModuleLinkEdit(editModuleLinkInfo()); - } else { - showModuleLink(createModuleLinkInfo()); - } + showModuleLink(createModuleLinkInfo()); } var externalLinkIconReader = new FileReader(); var externalLinkIcon; externalLinkIconReader.onload = function(e) { externalLinkIcon = e.target.result; - var externalLinkId = $("#externalLinkIdValueEdit").val(); - - if(externalLinkId!=null && externalLinkId!="") { - showExternalLinkEdit(editExternalLinkInfo()); - } else { - showExternalLinks(createExternalLinkInfo()); - } + showExternalLinks(createExternalLinkInfo()); } function setLinkPosition(modalLink, link, isSpaceLink, isModal, isExternalLink, posX, posY, posXModal, posYModal, isModuleLink){ @@ -87,30 +70,30 @@ var positionX = isModal ? posXModal : posX; var positionY = isModal ? posYModal : posY; if(isSpaceLink && (link.link.targetSpace==null || link.link.targetSpace.spaceStatus=="UNPUBLISHED")){ - var inactiveLinkId; - var inactiveLinkClasses; - var inactiveLinkTitle; - if(link.link.targetSpace==null) { - inactiveLinkId = "deletedSpace-"; - inactiveLinkClasses = "deletedSpaceClass deletedClass-"; - inactiveLinkTitle = "The target space for this link has been deleted. This link won't be shown on the public site." + var inactiveLinkId; + var inactiveLinkClasses; + var inactiveLinkTitle; + if(link.link.targetSpace==null) { + inactiveLinkId = "deletedSpace-"; + inactiveLinkClasses = "deletedSpaceClass deletedClass-"; + inactiveLinkTitle = "The target space for this link has been deleted. This link won't be shown on the public site." } else { - inactiveLinkId = "unpublished-"; - inactiveLinkClasses = "unpublishedSpaceClass unpublishedClass-"; - inactiveLinkTitle = "The target space for this link is unpublished. This link won't be shown on the public site." + inactiveLinkId = "unpublished-"; + inactiveLinkClasses = "unpublishedSpaceClass unpublishedClass-"; + inactiveLinkTitle = "The target space for this link is unpublished. This link won't be shown on the public site." } - var inactiveSpaceElement = $('') + var inactiveSpaceElement = $('') inactiveSpaceElement.css('position', 'absolute'); - inactiveSpaceElement.css('left', link.positionX + positionX + displaceUnpublishedOnX); - inactiveSpaceElement.css('top', link.positionY + positionY - displaceUnpublishedOnY); - inactiveSpaceElement.css('transform', 'rotate('+link.rotation+'deg)'); - inactiveSpaceElement.css('font-size', "24px"); - inactiveSpaceElement.attr('title', inactiveLinkTitle); - if(isModal){ - $("#space").append(inactiveSpaceElement); - } else{ - $("#main-space").append(inactiveSpaceElement); - } + inactiveSpaceElement.css('left', link.positionX + positionX + displaceUnpublishedOnX); + inactiveSpaceElement.css('top', link.positionY + positionY - displaceUnpublishedOnY); + inactiveSpaceElement.css('transform', 'rotate('+link.rotation+'deg)'); + inactiveSpaceElement.css('font-size', "24px"); + inactiveSpaceElement.attr('title', inactiveLinkTitle); + if(isModal){ + $("#space").append(inactiveSpaceElement); + } else{ + $("#main-space").append(inactiveSpaceElement); + } } if(isModuleLink && link.link.module.moduleStatus!=null && link.link.module.moduleStatus=="UNPUBLISHED"){ var unpublishedModuleElement = $('') @@ -139,7 +122,6 @@ function generateSpaceLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ if(link != null){ var spaceLink; - var spaceLinkTooltip; if(link.type == "ALERT"){ spaceLink = $('

'+link.link.name+'

'); } @@ -148,8 +130,7 @@ spaceLink = $(''); } else{ - spaceLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!='' ? ' : '+link.link.description : ""); - spaceLink = $('

'+ (spaceLinkTooltip!=null && spaceLinkTooltip!=''?''+ spaceLinkTooltip +'' : '') +'

'); + spaceLink = $('

'+link.link.name+'

'); } setLinkPosition(spaceLink,link,true,isModal,false, posX, posY, posXModal, posYModal, false); $(divId).append(spaceLink); @@ -158,26 +139,24 @@ $('#'+spanId+link.link.id).css('cursor', 'pointer'); $('#'+spanId+link.link.id).click(function(e) { var linkData = $('#'+spanId+link.link.id).data(); - makeSpaceLinksEditable(linkData["linklabel"], link.link.description, link.link.id, linkData["linkrotation"] ,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"], $('#'+spanId+link.link.id).attr('src')); + makeSpaceLinksEditable(linkData["linklabel"], link.link.id, linkData["linkrotation"] ,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"]); }); } } } function generateModuleLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ - if(link != null){ + if(link != null){ var moduleLink; - var moduleLinkTooltip if(link.type=="ALERT"){ moduleLink = $(''); } else if(link.type=="IMAGE" && link.image != null){ var moduleImageURL = [[@{/api/image/}]]+link.image.id; - moduleLink = $(''); + moduleLink = $(''); } else{ - moduleLinkTooltip = link.link.name + (link.link.description!=null && link.link.description!=''? ' : '+link.link.description : ""); - moduleLink = $('

'+ (moduleLinkTooltip!=null && moduleLinkTooltip!='' ? ''+moduleLinkTooltip+'' : '') +'

'); + moduleLink = $('

'+link.link.name+'

'); } setLinkPosition(moduleLink,link,false,isModal,false, posX, posY, posXModal, posYModal,true); $(divId).append(moduleLink); @@ -185,35 +164,31 @@ $('#'+spanId+link.link.id).css('cursor', 'pointer'); $('#'+spanId+link.link.id).click(function(e) { var linkData = $('#'+spanId+link.link.id).data(); - makeModuleLinksEditable(linkData["linklabel"], link.link.description, link.link.id,linkData["linkrotation"],linkData["linktarget"],link.positionX,link.positionY,link.id, linkData["linktype"], $('#'+spanId+link.link.id).attr('src')); + makeModuleLinksEditable(linkData["linklabel"], link.link.id,linkData["linkrotation"],linkData["linktarget"],link.positionX,link.positionY,link.id, linkData["linktype"]); }); } } } function generateExternalLinks(link,spanId,divId,isModal, posX, posY, posXModal, posYModal){ - - if(link != null){ - var externalLink; - var externalLinkTooltip; - if(link.type=="IMAGE" && link.image != null){ - var imageURL = [[@{/api/image/}]]+link.image.id; - externalLink = $(''); - }else{ - externalLinkTooltip = link.externalLink.name + (link.externalLink.description!=null && link.externalLink.description!='' ? ' : '+link.externalLink.description : ""); - externalLink = $('

'+(externalLinkTooltip!=null && externalLinkTooltip!='' ? ''+externalLinkTooltip+'' : '') + '

'); - } - setLinkPosition(externalLink,link,false,isModal,true, posX, posY, posXModal, posYModal); - $(divId).append(externalLink); - if(spanId === "externallinkId-"){ - $('#'+spanId+link.externalLink.id).css('cursor', 'pointer'); - $('#'+spanId+link.externalLink.id).click(function(e) { - var linkData = $('#'+spanId+link.externalLink.id).data(); - makeExternalLinksEditable(linkData["linklabel"],link.externalLink.description, link.externalLink.id,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"], $('#'+spanId+link.externalLink.id).attr('src')); - }); - } - } - + if(link != null){ + var externalLink; + if(link.type=="IMAGE" && link.image != null){ + var imageURL = [[@{/api/image/}]]+link.image.id; + externalLink = $(''); + }else{ + externalLink = $('

'+link.externalLink.name+'

'); + } + setLinkPosition(externalLink,link,false,isModal,true, posX, posY, posXModal, posYModal); + $(divId).append(externalLink); + if(spanId === "externallinkId-"){ + $('#'+spanId+link.externalLink.id).css('cursor', 'pointer'); + $('#'+spanId+link.externalLink.id).click(function(e) { + var linkData = $('#'+spanId+link.externalLink.id).data(); + makeExternalLinksEditable(linkData["linklabel"],link.externalLink.id,linkData["linktarget"],link.positionX,link.positionY,link.id,linkData["linktype"],linkData["howtoopen"]); + }); + } + } } function drawLinks(){ @@ -284,24 +259,20 @@ //--------- show links functions -------------- function showSpaceLink(spaceLink, show, x, y) { - $("#space_label_desc").remove(); + $("#space_label").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; - var space_label_desc = $("

"); - var linkTooltip = spaceLink["spaceLinkLabel"] + (spaceLink["spaceLinkDesc"]!=null && spaceLink["spaceLinkDesc"]!='' ? ' : ' + spaceLink["spaceLinkDesc"] : ""); - space_label_desc.text(); + var space_label = $("

"); + space_label.text(spaceLink["spaceLinkLabel"]); var link; if (spaceLink["type"] == "ALERT") { link = $(''); } else if(spaceLink["type"] == "IMAGE" && linkIcon) { - if(selectedSpaceLinkId!=null) { - $('#spacelinkModalId-'+selectedSpaceLinkId).css('visbility', 'hidden'); - } link = $(''); } else { - $(space_label_desc).css({ + $(space_label).css({ 'font-size': "12px", 'transform': 'rotate(0deg)', 'color': 'grey' @@ -333,41 +304,37 @@ link.css('cursor', 'pointer'); link.css('color', 'rgba(128,128,128,1)'); link.click(function(e) { - makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["spaceLinkDesc"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); + makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); }); - space_label_desc.attr("data-link-id", spaceLink["id"]); - space_label_desc.attr("class", "tooltiptext label-"+spaceLink["id"]); - space_label_desc.css('cursor', 'pointer'); - space_label_desc.click(function(e) { - makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["spaceLinkDesc"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); + space_label.attr("data-link-id", spaceLink["id"]); + space_label.attr("class", "tooltiptext label-"+spaceLink["id"]); + space_label.css('cursor', 'pointer'); + space_label.click(function(e) { + makeSpaceLinksEditable(spaceLink["spaceLinkLabel"], spaceLink["id"], spaceLink["rotation"], spaceLink["linkedSpace"], spaceLink["x"], spaceLink["y"], spaceLink["displayId"], spaceLink["type"]); }); } $("#space").append(link); $("#space").append(unpublishedSpaceElement); - $("#link").append(space_label_desc); + $("#link").append(space_label); } function showModuleLink(moduleLink, show, x, y) { - $("#module_label_desc").remove(); + $("#module_label").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; - var module_label_desc = $("

"); - var linkTootip = moduleLink["moduleLinkLabel"] + (moduleLink["moduleLinkDesc"]!=null && moduleLink["moduleLinkDesc"]!='' ? ' : ' + moduleLink["moduleLinkDesc"] : ""); - module_label_desc.text(linkTootip); + var module_label = $("

"); + module_label.text(moduleLink["moduleLinkLabel"]); var link; if (moduleLink["type"] == "ALERT") { link = $(''); } else if(moduleLink["type"] == "IMAGE" && moduleLinkIcon) { - if(selectedModuleLinkId!=null) { - $('#moduleModallinkId-'+selectedModuleLinkId).css('visbility', 'hidden'); - } - link = $(''); + link = $(''); } else{ - $(module_label_desc).css({ + $(module_label).css({ 'position': 'absolute', 'font-size': "10px", 'transform': 'rotate(0deg)', @@ -388,22 +355,21 @@ link.css('font-size', "12px"); if (moduleLink["id"]) { - link.attr("class", moduleLink["id"]); link.attr("data-link-id", moduleLink["id"]); link.css('cursor', 'pointer'); link.click(function(e) { makeModuleLinksEditable(moduleLink["moduleLinkLabel"], moduleLink["id"], moduleLink["rotation"], moduleLink["linkedModule"], moduleLink["x"], moduleLink["y"], moduleLink["displayId"], moduleLink["type"]); }); - module_label_desc.attr("data-link-id", moduleLink["id"]); - module_label_desc.css('cursor', 'pointer'); - module_label_desc.attr("class", "tooltiptext label-"+moduleLink["id"]); - module_label_desc.click(function(e) { + module_label.attr("data-link-id", moduleLink["id"]); + module_label.css('cursor', 'pointer'); + module_label.attr("class", "tooltiptext label-"+moduleLink["id"]); + module_label.click(function(e) { makeModuleLinksEditable(moduleLink["moduleLinkLabel"], moduleLink["id"], moduleLink["rotation"], moduleLink["linkedModule"], moduleLink["x"], moduleLink["y"], moduleLink["displayId"], moduleLink["type"]); }); } $("#space").append(link); - $("#link").append(module_label_desc); + $("#link").append(module_label); } function showModuleLinkEdit(moduleLink, show, posX, posY) { @@ -411,7 +377,7 @@ moduleLink["y"]=storeY; var selectedLinkClass = '#moduleModallinkId-'+selectedModuleLinkId; var selectedLabelClass = '.label-'+selectedModuleLinkId; - updateLinkProperties(selectedLinkClass,selectedLabelClass,moduleLink["rotation"],posX,posY,moduleLink["moduleLinkLabel"], moduleLink["moduleLinkDesc"]); + updateLinkProperties(selectedLinkClass,selectedLabelClass,moduleLink["rotation"],posX,posY,moduleLink["moduleLinkLabel"]); } function showSpaceLinkEdit(spaceLink, show, posX, posY) { @@ -438,7 +404,7 @@ $(selectedUnpublishedIconClass).css({ 'position': 'absolute'}); $(selectedUnpublishedIconClass).css({ 'left': posX - displaceUnpublishedOnXModal}); $(selectedUnpublishedIconClass).css({ 'top': posY - displaceUnpublishedOnYModal}); - updateLinkProperties(selectedLinkClass,selectedLabelClass,spaceLink["rotation"],posX,posY,spaceLink["spaceLinkLabel"], spaceLink["spaceLinkDesc"]); + updateLinkProperties(selectedLinkClass,selectedLabelClass,spaceLink["rotation"],posX,posY,spaceLink["spaceLinkLabel"]); } function showExternalLinkEdit(externalLink, show, posX, posY) { @@ -446,11 +412,11 @@ externalLink["y"]=storeY; var selectedLinkClass = '#externalModallinkId-'+selectedExternalLinkId; var selectedLabelClass = '.label-'+selectedExternalLinkId; - updateLinkProperties(selectedLinkClass,selectedLabelClass,externalLink["rotation"],posX,posY,externalLink["externalLinkLabel"], externalLink["externalLinkDesc"]); + updateLinkProperties(selectedLinkClass,selectedLabelClass,externalLink["rotation"],posX,posY,externalLink["externalLinkLabel"]); } -function updateLinkProperties(selectedLinkClass,selectedLabelClass,rotation,x,y,linkLabel,linkDesc, show){ - var posX, posY; +function updateLinkProperties(selectedLinkClass,selectedLabelClass,rotation,x,y,linkLabel, show){ + var posX, posY; if(show) { posx = $("#main-bgImage").position().left; posY = $("#main-bgImage").position().top; @@ -464,20 +430,7 @@ $(selectedLinkClass).css({ 'left': x + posX}); $(selectedLinkClass).css({ 'top': y + posY}); $(selectedLabelClass+' span').remove(); - linkTooltip = linkLabel+ (linkDesc!=null && linkDesc!="" ? " : " + linkDesc : ""); - $(selectedLabelClass).append('' + linkTooltip + ''); - if(linkIcon!=null && linkIcon!="") { - $(selectedLinkClass).attr('src', linkIcon); - } - - if(moduleLinkIcon!=null && moduleLinkIcon!="") { - $(selectedLinkClass).attr('src', moduleLinkIcon); - } - - if(externalLinkIcon!=null && externalLinkIcon!="") { - $(selectedLinkClass).attr('src', externalLinkIcon); - } - + $(selectedLabelClass).append('' + linkLabel + ''); feather.replace(); } @@ -493,22 +446,18 @@ } function showExternalLinks(externalLink, show, x, y) { - $("#ext_label_desc").remove(); + $("#ext_label").remove(); $("#link").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; - var ext_label_desc = $("

"); - var linkTooltip = externalLink["externalLinkLabel"] + (externalLink["externalLinkDesc"]!=null && externalLink["externalLinkDesc"]!='' ? " : " + externalLink["externalLinkDesc"] : ""); - ext_label_desc.text(linkTooltip); + var ext_label = $("

"); + ext_label.text(externalLink["externalLinkLabel"]); var link; if(externalLink["type"] == "IMAGE" && externalLinkIcon) { - if(selectedExternalLinkId!=null) { - $('#externalModallinkId-'+selectedExternalLinkId).css('visbility', 'hidden'); - } link = $(''); } else { - $(ext_label_desc).css({ + $(ext_label).css({ 'position': 'absolute', 'font-size': "12px", 'transform': 'rotate(0deg)', @@ -526,26 +475,23 @@ link.css('font-size', "12px"); if (externalLink["id"]) { - - link.attr("data-link-id", externalLink["id"]); - link.attr("class", externalLink["id"]); - link.css('cursor', 'pointer'); - link.attr('href', externalLink["url"]); - link.click(function(e) { - makeExternalLinksEditable(externalLink["externalLinkLabel"], externalLink["externalLinkDesc"], externalLink["id"], externalLink["externalLinkURL"], externalLink["x"], externalLink["y"], externalLink["displayId"], externalLink["type"]); - }); - - ext_label_desc.attr("data-link-id", externalLink["id"]); - ext_label_desc.css('cursor', 'pointer'); - ext_label_desc.attr("class", "label-"+externalLink["id"]); - ext_label_desc.click(function(e) { - makeExternalLinksEditable(externalLink["externalLinkLabel"], externalLink["externalLinkDesc"], externalLink["id"], externalLink["externalLinkURL"], externalLink["x"], externalLink["y"], externalLink["displayId"], externalLink["type"]); - }); - + link.attr("data-link-id", externalLink["id"]); + link.css('cursor', 'pointer'); + link.attr('href', externalLink["url"]); + link.click(function(e) { + makeExternalLinksEditable(externalLink["externalLinkLabel"], externalLink["id"], externalLink["externalLinkURL"], externalLink["x"], externalLink["y"], externalLink["displayId"], externalLink["type"],externalLink["howToOpen"],externalLink["tabOpen"]); + }); + + ext_label.attr("data-link-id", externalLink["id"]); + ext_label.css('cursor', 'pointer'); + ext_label.attr("class", "label-"+externalLink["id"]); + ext_label.click(function(e) { + makeExternalLinksEditable(externalLink["externalLinkLabel"], externalLink["id"], externalLink["externalLinkURL"], externalLink["x"], externalLink["y"], externalLink["displayId"], externalLink["type"],externalLink["howToOpen"],externalLink["tabOpen"]); + }); } $("#space").append(link); - $("#link").append(ext_label_desc); + $("#link").append(ext_label); $("#external-link").remove(); } @@ -558,22 +504,19 @@ info["rotation"] = $("#spaceLinkRotation").val(); info["linkedSpace"] = $("#linkedSpace").val(); info["spaceLinkLabel"] = $("#spaceLinkLabel").val(); - info["spaceLinkDesc"] = $("#spaceLinkDesc").val(); info["type"] = $("#type").val(); return info; } function createExternalLinkInfo() { - - var info = {}; - info["x"] = storeX; - info["y"] = storeY; - info["type"] = $("#extType").val(); - info["externalLinkLabel"] = $("#externalLinkLabel").val(); - info["externalLinkDesc"] = $("#externalLinkDesc").val(); - info["externalLinkURL"] = $("#externalLink").val(); - return info; - + var info = {}; + info["x"] = storeX; + info["y"] = storeY; + info["tabOpen"] = $("#extTabOpen").val(); + info["type"] = $("#extType").val(); + info["externalLinkLabel"] = $("#externalLinkLabel").val(); + info["externalLinkURL"] = $("#externalLink").val(); + return info; } function createModuleLinkInfo() { @@ -583,7 +526,6 @@ info["rotation"] = $("#moduleLinkRotation").val(); info["linkedModule"] = $("#linkedModule").val(); info["moduleLinkLabel"] = $("#moduleLinkLabel").val(); - info["moduleLinkDesc"] = $("#moduleLinkDesc").val(); info["type"] = $("#moduleType").val(); return info; } @@ -595,7 +537,6 @@ info["rotation"] = $("#moduleLinkRotationEdit").val(); info["linkedModule"] = $("#moduleLinkIdEdit").val(); info["moduleLinkLabel"] = $("#moduleLinkLabelEdit").val(); - info["moduleLinkDesc"] = $("#moduleLinkDescEdit").val(); info["type"] = $("#moduleTypeEdit").val(); return info; } @@ -607,25 +548,22 @@ info["rotation"] = $("#spaceLinkRotationEdit").val(); info["linkedSpace"] = $("#spaceLinkIdEdit").val(); info["spaceLinkLabel"] = $("#spaceLinkLabelEdit").val(); - info["spaceLinkDesc"] = $("#spaceLinkDescEdit").val(); info["type"] = $("#typeSpaceEdit").val(); return info; } function editExternalLinkInfo() { - - var info = {}; - info["x"] = storeX; - info["y"] = storeY; - info["type"] = $("#extTypeEdit").val(); - info["externalLinkLabel"] = $("#externalLinkLabelEdit").val(); - info["externalLinkDesc"] = $("#externalLinkDescEdit").val(); - info["externalLinkURL"] = $("#externalLinkURLEdit").val(); - return info; - + var info = {}; + info["x"] = storeX; + info["y"] = storeY; + info["tabOpen"] = $("#extTabOpenEdit").val(); + info["type"] = $("#extTypeEdit").val(); + info["externalLinkLabel"] = $("#externalLinkLabelEdit").val(); + info["externalLinkURL"] = $("#externalLinkURLEdit").val(); + return info; } -function makeSpaceLinksEditable(spaceLinkName, spaceLinkDesc, spaceLinkId, rotation, selectedSpaceId, posXEdit, posYEdit, displayLinkId, linkType, spaceLinkImageId) { +function makeSpaceLinksEditable(spaceLinkName, spaceLinkId, rotation, selectedSpaceId, posXEdit, posYEdit, displayLinkId, linkType) { $("#spaceLinkInfoLabel").text(spaceLinkName); $("#spaceLinkId").val(spaceLinkId); selectedSpaceLinkId=spaceLinkId; @@ -635,22 +573,16 @@ $("#spaceLinkDisplayId").val(displayLinkId); $("#spaceLinkInfoLabelEdit").text(spaceLinkName); $("#spaceLinkLabelEdit").val(spaceLinkName); - $("#spaceLinkDescEdit").val(spaceLinkDesc); $("#spaceLinkId").val(spaceLinkId); $("#spaceLinkIdValueEdit").val(spaceLinkId); - $("#spaceLinkImageIdEdit").val(spaceLinkImageId); $("#spaceLinkRotationEdit").val(rotation); $("#typeSpaceEdit option:selected").prop('selected', false); $('#typeSpaceEdit option[value="'+linkType+'"]').prop("selected", true); - $('#imageOptionsSpaceEdit *').prop('disabled', false); $("#spaceLinkIdEdit option:selected").prop('selected', false); $('#spaceLinkIdEdit option[value="'+selectedSpaceId+'"]').prop("selected", true); - if(linkType != "IMAGE"){ resetHighlighting(); - $('#imageOptionsSpaceEdit *').prop('disabled', true); } - $('[data-link-id="' + spaceLinkId + '"]').css("color", "var(--secondary)"); $('img[data-link-id="' + spaceLinkId + '"]').css("border", "solid 1px #c1bb88"); $('[data-link-id="unpublished-' + spaceLinkId + '"]').css("color", "var(--secondary)"); @@ -672,30 +604,22 @@ $(formToShow).css("display", "flex"); } -function makeModuleLinksEditable(moduleLinkName, moduleLinkDesc, moduleLinkId, rotation, selectedModuleId, posXEdit, posYEdit, displayLinkId, linkType, moduleLinkImageId) { - selectedModuleLinkId=moduleLinkId; +function makeModuleLinksEditable(moduleLinkName, moduleLinkId, rotation, selectedModuleId, posXEdit, posYEdit, displayLinkId, linkType) { + selectedModuleLinkId=moduleLinkId; storeX=posXEdit; storeY=posYEdit; $("#moduleLinkInfoLabel").text(moduleLinkName); $("#moduleLinkDisplayId").val(displayLinkId); $("#moduleLinkInfoLabelEdit").text(moduleLinkName); $("#moduleLinkLabelEdit").val(moduleLinkName); - $("#moduleLinkDescEdit").val(moduleLinkDesc); $("#moduleLinkId").val(moduleLinkId); $("#moduleLinkIdValueEdit").val(moduleLinkId); - $("#moduleLinkImageIdEdit").val(moduleLinkImageId); $("#moduleLinkRotationEdit").val(rotation); $("#moduleTypeEdit option:selected").prop('selected', false); $('#moduleTypeEdit option[value="'+linkType+'"]').prop("selected", true); - $('#imageOptionsModuleEdit *').prop('disabled', false); $("#moduleLinkIdEdit option:selected").prop('selected', false); $('#moduleLinkIdEdit option[value="'+selectedModuleId+'"]').prop("selected", true); - resetHighlighting(); - - if(linkType!='IMAGE') { - $('#imageOptionsModuleEdit *').prop('disabled', true); - } - + resetHighlighting(); $('[data-link-id="' + moduleLinkId + '"]').css("color", "#c1bb88"); $('div[data-link-id="' + moduleLinkId + '"]').removeClass("alert-primary"); $('div[data-link-id="' + moduleLinkId + '"]').addClass("alert-warning"); @@ -713,9 +637,7 @@ displayForms("#editModuleLinkInfo"); } - -function makeExternalLinksEditable(linkName, linkDesc, linkId, externalLinkURL, posXEdit, posYEdit, displayLinkId, linkType, externalLinkImageId) { - +function makeExternalLinksEditable(linkName, linkId, externalLinkURL, posXEdit, posYEdit, displayLinkId, linkType,tabOpenType) { selectedExternalLinkId=linkId; storeX=posXEdit; storeY=posYEdit; @@ -724,21 +646,12 @@ $("#externalLinkDisplayId").val(displayLinkId); $("#externalLinkInfoLabelEdit").text(linkName); $("#externalLinkLabelEdit").val(linkName); - $("#externalLinkDescEdit").val(linkDesc); $("#externalLinkIdValueEdit").val(linkId); - $("#externalLinkImageIdEdit").val(externalLinkImageId); $("#externalLinkURLEdit").val(externalLinkURL); - - $("#extTypeEdit option:selected").prop('selected', false); - $('#extTypeEdit option[value="'+linkType+'"]').prop("selected", true); - $('#imageOptionsExternalEdit *').prop('disabled', false); - + $('#extTypeEdit option[value="'+linkType+'"]').attr("selected", "selected"); + $('#extTabOpenEdit option[value="'+tabOpenType+'"]').attr("selected", "selected"); resetHighlighting(); - - if(linkType!='IMAGE') { - $('#imageOptionsExternalEdit *').prop('disabled', true); - } - + $('[data-link-id="' + linkId + '"]').css("color", "#c1bb88"); $('div[data-link-id="' + linkId + '"]').removeClass("alert-primary"); $('div[data-link-id="' + linkId + '"]').addClass("alert-warning"); @@ -782,321 +695,6 @@ if ($("div#incomingLinks a").length < 2) { $("#noLinksToSpace").show() } - - $("#selectedImage-spcLink").empty(); - $('#imageId-spcLink').prop("disabled",true); - $('#chooseFromLocal-spcLink').click(function() { - $("#selectedImage-spcLink").empty(); - $('#imageId-spcLink').prop('selectedIndex',0).trigger( "change" ); - $('#imageId-spcLink').prop("disabled",true); - $('#spaceLinkImage').prop("disabled",false); - linkIcon = null; - showSpaceLink(createSpaceLinkInfo()); - }); - - $('#chooseFromExisting-spcLink').click(function() { - $('#spaceLinkImage').val(''); - $('#spaceLinkImage').prop("disabled",true); - $('#imageId-spcLink').prop("disabled",false); - linkIcon = null; - showSpaceLink(createSpaceLinkInfo()); - }); - - $("#imageId-spcLink").select2({ - ajax: { - url: function (params) { - var imageURL = [[@{|/staff/images/search|}]]; - return imageURL; - }, - dataType: 'json', - processResults: function (data) { - return { - results: data, - }; - }, - }, - templateResult: formatImage, - templateSelection: formatSelection - }); - - $('#imageId-spcLinkEdit').prop("disabled",true); - $('#chooseFromLocal-spcLinkEdit').click(function() { - $("#selectedImage-spcLinkEdit").empty(); - $('#imageId-spcLinkEdit').prop('selectedIndex',0).trigger( "change" ); - $('#imageId-spcLinkEdit').prop("disabled",true); - $('#spaceLinkImageEdit').prop("disabled",false); - linkIcon = $('#spaceLinkImageIdEdit').val(); - showSpaceLinkEdit(editSpaceLinkInfo()); - }); - - $('#chooseFromExisting-spcLinkEdit').click(function() { - $('#spaceLinkImageEdit').val(''); - $('#spaceLinkImageEdit').prop("disabled",true); - $('#imageId-spcLinkEdit').prop("disabled",false); - linkIcon = $('#spaceLinkImageIdEdit').val(); - showSpaceLinkEdit(editSpaceLinkInfo()); - }); - - $("#imageId-spcLinkEdit").select2({ - ajax: { - url: function (params) { - var imageURL = [[@{|/staff/images/search|}]]; - return imageURL; - }, - dataType: 'json', - processResults: function (data) { - return { - results: data, - }; - }, - }, - templateResult: formatImage, - templateSelection: formatSelectionEdit - }); - - function formatImage (image) { - if (!image.id) { - return image.text; - } - var tbaseUrl = [[@{|/api/image/|}]]; - var $image = $( - ' ' + image.text + '' - ); - return $image; - }; - - function formatSelection(image) { - if (!image.id) { - return image.text; - } - var tbaseUrl = [[@{|/api/image/|}]]; - var $image = $( - '' + image.text + '' - ); - $("#selectedImage-spcLink").empty(); - $("#selectedImage-spcLink").append(''); - linkIcon = tbaseUrl + image.id; - showSpaceLink(createSpaceLinkInfo()); - return $image; - } - - function formatSelectionEdit(image) { - if (!image.id) { - return image.text; - } - var tbaseUrl = [[@{|/api/image/|}]]; - var $image = $( - '' + image.text + '' - ); - $("#selectedImage-spcLinkEdit").empty(); - $("#selectedImage-spcLinkEdit").append(''); - linkIcon = tbaseUrl + image.id; - showSpaceLinkEdit(editSpaceLinkInfo()); - return $image; - } - - //Module link selection of existing images - $('#imageId-modLink').prop("disabled",true); - $('#chooseFromLocal-modLink').click(function() { - $("#selectedImage-modLink").empty(); - $('#imageId-modLink').prop('selectedIndex',0).trigger( "change" ); - $('#imageId-modLink').prop("disabled",true); - $('#moduleLinkImage').prop("disabled",false); - moduleLinkIcon = null; - showModuleLink(createModuleLinkInfo()); - }); - - $('#chooseFromExisting-modLink').click(function() { - $('#moduleLinkImage').val(''); - $('#moduleLinkImage').prop("disabled",true); - $('#imageId-modLink').prop("disabled",false); - moduleLinkIcon = null; - showModuleLink(createModuleLinkInfo()); - }); - - $("#imageId-modLink").select2({ - ajax: { - url: function (params) { - var imageURL = [[@{|/staff/images/search|}]]; - return imageURL; - }, - dataType: 'json', - processResults: function (data) { - return { - results: data, - }; - }, - }, - templateResult: formatImage, - templateSelection: formatSelectionModule - }); - - $('#imageId-modLinkEdit').prop("disabled",true); - $('#chooseFromLocal-modLinkEdit').click(function() { - $("#selectedImage-modLinkEdit").empty(); - $('#imageId-modLinkEdit').prop('selectedIndex',0).trigger( "change" ); - $('#imageId-modLinkEdit').prop("disabled",true); - $('#moduleLinkImageEdit').prop("disabled",false); - moduleLinkIcon = $('#moduleLinkImageIdEdit').val(); - showModuleLinkEdit(editModuleLinkInfo()); - }); - - $('#chooseFromExisting-modLinkEdit').click(function() { - $('#moduleLinkImageEdit').val(''); - $('#moduleLinkImageEdit').prop("disabled",true); - $('#imageId-modLinkEdit').prop("disabled",false); - moduleLinkIcon = $('#moduleLinkImageIdEdit').val(); - showModuleLinkEdit(editModuleLinkInfo()); - }); - - $("#imageId-modLinkEdit").select2({ - ajax: { - url: function (params) { - var imageURL = [[@{|/staff/images/search|}]]; - return imageURL; - }, - dataType: 'json', - processResults: function (data) { - return { - results: data, - }; - }, - }, - templateResult: formatImage, - templateSelection: formatSelectionEditModule - }); - - function formatSelectionModule(image) { - if (!image.id) { - return image.text; - } - var tbaseUrl = [[@{|/api/image/|}]]; - var $image = $( - '' + image.text + '' - ); - $("#selectedImage-modLink").empty(); - $("#selectedImage-modLink").append(''); - moduleLinkIcon = tbaseUrl + image.id; - showModuleLink(createModuleLinkInfo()); - return $image; - } - - function formatSelectionEditModule(image) { - if (!image.id) { - return image.text; - } - var tbaseUrl = [[@{|/api/image/|}]]; - var $image = $( - '' + image.text + '' - ); - $("#selectedImage-modLinkEdit").empty(); - $("#selectedImage-modLinkEdit").append(''); - moduleLinkIcon = tbaseUrl + image.id; - showModuleLinkEdit(editModuleLinkInfo()); - return $image; - } - - - //External link selection of existing images - $('#imageId-extLink').prop("disabled",true); - $('#chooseFromLocal-extLink').click(function() { - $("#selectedImage-extLink").empty(); - $('#imageId-extLink').prop('selectedIndex',0).trigger( "change" ); - $('#imageId-extLink').prop("disabled",true); - $('#externalLinkImage').prop("disabled",false); - externalLinkIcon = null; - showExternalLinks(createExternalLinkInfo()); - }); - - $('#chooseFromExisting-extLink').click(function() { - $('#externalLinkImage').val(''); - $('#externalLinkImage').prop("disabled",true); - $('#imageId-extLink').prop("disabled",false); - externalLinkIcon = null; - showExternalLinks(createExternalLinkInfo()); - }); - - $("#imageId-extLink").select2({ - ajax: { - url: function (params) { - var imageURL = [[@{|/staff/images/search|}]]; - return imageURL; - }, - dataType: 'json', - processResults: function (data) { - return { - results: data, - }; - }, - }, - templateResult: formatImage, - templateSelection: formatSelectionExternal - }); - - $('#imageId-extLinkEdit').prop("disabled",true); - $('#chooseFromLocal-extLinkEdit').click(function() { - $("#selectedImage-extLinkEdit").empty(); - $('#imageId-extLinkEdit').prop('selectedIndex',0).trigger( "change" ); - $('#imageId-extLinkEdit').prop("disabled",true); - $('#externalLinkImageEdit').prop("disabled",false); - externalLinkIcon = $('#externalLinkImageIdEdit').val(); - showExternalLinkEdit(editExternalLinkInfo()); - }); - - $('#chooseFromExisting-extLinkEdit').click(function() { - $('#externalLinkImageEdit').val(''); - $('#externalLinkImageEdit').prop("disabled",true); - $('#imageId-extLinkEdit').prop("disabled",false); - externalLinkIcon = $('#externalLinkImageIdEdit').val(); - showExternalLinkEdit(editExternalLinkInfo()); - }); - - $("#imageId-extLinkEdit").select2({ - ajax: { - url: function (params) { - var imageURL = [[@{|/staff/images/search|}]]; - return imageURL; - }, - dataType: 'json', - processResults: function (data) { - return { - results: data, - }; - }, - }, - templateResult: formatImage, - templateSelection: formatSelectionEditExternal - }); - - function formatSelectionExternal(image) { - if (!image.id) { - return image.text; - } - var tbaseUrl = [[@{|/api/image/|}]]; - var $image = $( - '' + image.text + '' - ); - $("#selectedImage-extLink").empty(); - $("#selectedImage-extLink").append(''); - externalLinkIcon = tbaseUrl + image.id; - showExternalLinks(createExternalLinkInfo()); - return $image; - } - - function formatSelectionEditExternal(image) { - if (!image.id) { - return image.text; - } - var tbaseUrl = [[@{|/api/image/|}]]; - var $image = $( - '' + image.text + '' - ); - $("#selectedImage-extLinkEdit").empty(); - $("#selectedImage-extLinkEdit").append(''); - externalLinkIcon = tbaseUrl + image.id; - showExternalLinkEdit(editExternalLinkInfo()); - return $image; - } }); // -------- buttons that open modals (e.g. to create space links) ------ @@ -1107,7 +705,7 @@ $("#bgImage").on("click", function(e){ e.preventDefault(); $("#external-arrow").remove(); - $("#space_label_desc").remove(); + $("#space_label").remove(); $("#link").remove(); var icon; var posX = $(this).position().left; @@ -1118,13 +716,6 @@ }); hideLinkInfoTabs(); displayForms("#createSpaceLinkAlert"); - - var spaceLinkType = $("#type").val(); - if (spaceLinkType=='IMAGE') { - $('#imageOptionsSpace *').prop('disabled', false); - } else { - $('#imageOptionsSpace *').prop('disabled', true); - } }); $("#addModuleLinkButton").click(function(e) { @@ -1133,7 +724,7 @@ $("#bgImage").on("click", function(e){ e.preventDefault(); $("#external-arrow").remove(); - $("#module_label_desc").remove(); + $("#module_label").remove(); $("#link").remove(); var icon; var posX = $(this).position().left; @@ -1145,13 +736,6 @@ }); hideLinkInfoTabs(); displayForms("#createModuleLinkAlert"); - - var moduleLinkType = $("#moduleType").val(); - if (moduleLinkType=='IMAGE') { - $('#imageOptionsModule *').prop('disabled', false); - } else { - $('#imageOptionsModule *').prop('disabled', true); - } }); $("#addExternalLinkButton").click(function(e) { @@ -1162,7 +746,7 @@ e.preventDefault(); $("#link").remove(); $("#external-arrow").remove(); - $("#ext_label_desc").remove(); + $("#ext_label").remove(); var icon; var posX = $(this).position().left var posY = $(this).position().top; @@ -1173,13 +757,6 @@ }); hideLinkInfoTabs(); displayForms("#createExternalLinkAlert"); - - var extLinkType = $("#extType").val(); - if (extLinkType=='IMAGE') { - $('#imageOptionsExternal *').prop('disabled', false); - } else { - $('#imageOptionsExternal *').prop('disabled', true); - } }); $('#changeBgImgButton').click(function(file) { @@ -1195,7 +772,6 @@ e.preventDefault(); $('#errorAlert').hide(); var label = $("#spaceLinkLabel").val(); - var desc = $("#spaceLinkDesc").val(); var spaceName = $("#linkedSpace option:selected").text(); var type = $("#type option:selected").text(); @@ -1228,20 +804,10 @@ var form = $("#createSpaceLinkForm"); var label = $("#spaceLinkLabel").val(); - var desc = $("#spaceLinkDesc").val(); var spaceName = $("#linkedSpace option:selected").text(); var spaceId = $("#linkedSpace option:selected").val(); var formData = new FormData(form[0]); var spaceLinkInfo = createSpaceLinkInfo(); - - var imageSource = $('#selectedImage-spcLink').find('img').attr('src'); - var imageId = ""; - if(typeof(imageSource) != "undefined"){ - imageId = imageSource.split("/").pop().split(".")[0]; - } - formData.set('imageId',imageId); - formData.delete('uploadRadioBtn'); - $.ajax({ type: "POST", url: "[(@{'/staff/space/'+${space?.id}+'/spacelink?'+${_csrf.parameterName}+'='+${_csrf.token}})]", @@ -1265,7 +831,7 @@ spaceLinkInfo["y"]=linkData["y"]; spaceLinkInfo["linkedSpaceStatus"]=linkData["linkedSpaceStatus"]; showSpaceLink(spaceLinkInfo, true); - $("#space_label_desc").attr("id",""); + $("#space_label").attr("id",""); $("#link").attr("id",""); $("#createSpaceLinkAlert").hide(); $("#errorMsg").text(""); @@ -1273,7 +839,6 @@ $("#noLinksOnSpace").hide(); $("."+linkData["id"]).remove(); form[0].reset(); - $('#spaceLinkImage').val(''); var newSpaceLinkURL = [[@{|/staff/space/|}]]+spaceId; $("#outgoingLinks").append("
"+label+"  ->  "+spaceName+""); if (spaceName == "${space?.name}") { @@ -1282,7 +847,6 @@ } $("#space").css("display", "none"); linkIcon=null; - $('#chooseFromLocal-spcLink').click(); drawLinks(); } }); @@ -1300,7 +864,6 @@ var linkedModules = $("#linkedModule").val(); var moduleLabel = $("#moduleLinkLabel").val(); - var moduleDesc = $("#moduleLinkDesc").val(); var type = $("#moduleType option:selected").text(); if (moduleLabel == undefined || moduleLabel == "") { @@ -1328,14 +891,6 @@ var formData = new FormData(form[0]); var moduleLinkInfo = createModuleLinkInfo(); - - var imageSource = $('#selectedImage-modLink').find('img').attr('src'); - var imageId = ""; - if(typeof(imageSource) != "undefined"){ - imageId = imageSource.split("/").pop().split(".")[0]; - } - formData.set('imageId',imageId); - formData.delete('uploadRadioBtn'); $.ajax({ type: "POST", @@ -1360,31 +915,21 @@ moduleLinkInfo["x"]=linkData["x"]; moduleLinkInfo["y"]=linkData["y"]; showModuleLink(moduleLinkInfo, true); - $("#module_label_desc").attr("id",""); + $("#module_label").attr("id",""); $("#link").attr("id",""); $("#createModuleLinkAlert").hide(); $("#errorMsg").text(""); $('#errorAlert').hide(); $("."+linkData["id"]).remove(); form[0].reset(); - $('#moduleLinkImage').val(''); $("#space").css("display", "none"); moduleLinkIcon=null; - $('#chooseFromLocal-modLink').click(); drawLinks(); } }); }); $("#editModuleLinkBtn").click(function(e) { e.preventDefault(); - var moduleLabel = $("#moduleLinkLabelEdit").val(); - - if (moduleLabel == undefined || moduleLabel == "") { - $("#errorMsg").text("Please enter the label for module.") - $('#errorAlert').show(); - return; - } - var linkId = $("#moduleLinkIdEdit").val(); if(storeX == undefined || storeY == undefined){ $("#errorMsg").text("Please click on the image to specify where the new link should be located."); @@ -1397,7 +942,6 @@ var form = $("#editModuleLinkForm"); var formData = new FormData(form[0]); var moduleLinkInfo = editModuleLinkInfo(); - formData.delete('uploadRadioBtn'); $.ajax({ type: "POST", url: "[(@{'/staff/space/link/module/'+${space?.id}+'?'+${_csrf.parameterName}+'='+${_csrf.token}})]", @@ -1426,10 +970,7 @@ showModuleLinkEdit(moduleLinkInfo, true); hideLinkInfoTabs(); $("#space").css("display", "none"); - $('#moduleLinkImageEdit').val(''); selectedModuleLinkId=undefined; - $('#chooseFromLocal-modLinkEdit').click(); - moduleLinkIcon=null; drawLinks(); } }); @@ -1438,14 +979,6 @@ $("#editSpaceLinkBtn").click(function(e) { e.preventDefault(); var linkId = $("#spaceLinkIdEdit").val(); - var label = $("#spaceLinkLabelEdit").val(); - - if (label == undefined || label == "") { - $("#errorMsg").text("Please fill the Label field before submitting.") - $('#errorAlert').show(); - return; - } - if (storeX == undefined || storeY == undefined) { $("#errorMsg").text("Please click on the image to specify where the new link should be located.") $('#errorAlert').show(); @@ -1457,7 +990,6 @@ var form = $("#editSpaceLinkForm"); var formData = new FormData(form[0]); - formData.delete('uploadRadioBtn'); var spaceLinkInfo = editSpaceLinkInfo(); $.ajax({ type: "POST", @@ -1488,10 +1020,7 @@ $('#linkTarget-'+selectedSpaceLinkId).val(linkData["linkedId"]); hideLinkInfoTabs(); $("#space").css("display", "none"); - $('#spaceLinkImageEdit').val(''); selectedSpaceLinkId=undefined; - $('#chooseFromLocal-spcLinkEdit').click(); - linkIcon=null; drawLinks(); } }); @@ -1499,17 +1028,9 @@ $("#editExternalLinkBtn").click(function(e) { e.preventDefault(); - var externalLinkLabel = $("#externalLinkLabelEdit").val(); - - if (externalLinkLabel == undefined || externalLinkLabel == "") { - $("#errorMsg").text("Please enter a label for this external link."); - $('#errorAlert').show(); - return; - } - var linkId = $("#externalLinkIdEdit").val(); if (storeX == undefined || storeY == undefined) { - $("#errorMsg").text("Please click on the image to specify where the new link should be located."); + $("#errorMsg").text("Please click on the image to specify where the new link should be located.") $('#errorAlert').show(); return; } @@ -1518,7 +1039,6 @@ $("#externalLinkYEdit").val(storeY); var form = $("#editExternalLinkForm"); var formData = new FormData(form[0]); - formData.delete('uploadRadioBtn'); var externalLinkInfo = editExternalLinkInfo(); $.ajax({ type: "POST", @@ -1547,10 +1067,7 @@ showExternalLinkEdit(editExternalLinkInfo, true); hideLinkInfoTabs(); $("#space").css("display", "none"); - $('#externalLinkImageEdit').val(''); selectedExternalLinkId=undefined; - $('#chooseFromLocal-extLinkEdit').click(); - externalLinkIcon=null; drawLinks(); } }); @@ -1568,9 +1085,9 @@ var externalLink = $("#externalLink").val(); var externalLinkLabel = $("#externalLinkLabel").val(); - var externalLinkDesc = $("#externalLinkDesc").val(); var type = $("#extType option:selected").text(); + if (externalLink == undefined || externalLink == "") { $("#errorMsg").text("Please provide the link to the external link.") $('#errorAlert').show(); @@ -1594,15 +1111,7 @@ var form = $("#createExternalLinkForm"); var formData = new FormData(form[0]); var externalLinkInfo = createExternalLinkInfo(); - - var imageSource = $('#selectedImage-extLink').find('img').attr('src'); - var imageId = ""; - if(typeof(imageSource) != "undefined"){ - imageId = imageSource.split("/").pop().split(".")[0]; - } - formData.set('imageId',imageId); - formData.delete('uploadRadioBtn'); - + $.ajax({ type: "POST", url: "[(@{'/staff/space/'+${space?.id}+'/externallink?'+${_csrf.parameterName}+'='+${_csrf.token}})]", @@ -1625,7 +1134,7 @@ externalLinkInfo["x"]=linkData["x"]; externalLinkInfo["y"]=linkData["y"]; showExternalLinks(externalLinkInfo, true); - $("#ext_label_desc").attr("id",""); + $("#ext_label").attr("id",""); $("#link").attr("id",""); $("#createExternalLinkAlert").hide(); $("#errorMsg").text(""); @@ -1634,9 +1143,7 @@ form[0].reset(); $("#external-arrow").attr("id",""); $("#space").css("display", "none"); - $('#externalLinkImage').val(''); externalLinkIcon=null; - $('#chooseFromLocal-extLink').click(); drawLinks(); } }); @@ -1657,7 +1164,6 @@ success:function(data) { $('[data-link-id="' + linkId + '"]').remove(); $('[data-link-id="unpublished-' + linkId + '"]').remove(); - $('#spaceLinkIdValueEdit').val(""); hideLinkInfoTabs(); $('a#'+linkId).remove(); if ($("div#outgoingLinks a").length < 2) { @@ -1668,10 +1174,6 @@ } $("#spaceLinkInfo").hide(); $("#space").css("display", "none"); - $('#chooseFromLocal-spcLinkEdit').click(); - linkIcon=null; - storeX = null; - storeY = null; drawLinks(); } }); @@ -1691,13 +1193,8 @@ }, success:function(data) { $('[data-link-id="' + linkId + '"]').remove(); - $('#moduleLinkIdValueEdit').val(""); hideLinkInfoTabs(); $("#space").css("display", "none"); - $('#chooseFromLocal-modLinkEdit').click(); - moduleLinkIcon=null; - storeX = null; - storeY = null; drawLinks(); } }); @@ -1718,10 +1215,6 @@ $('[data-link-id="' + linkId + '"]').remove(); hideLinkInfoTabs(); $("#space").css("display", "none"); - $('#chooseFromLocal-extLinkEdit').click(); - externalLinkIcon=null; - storeX = null; - storeY = null; drawLinks(); } }); @@ -1734,13 +1227,13 @@ // ------------- adjust links on background image (e.g. when inputs are changed) ------------ // external links $(".extlink-target").change(function() { - showExternalLinks(createExternalLinkInfo()); - var linkType = $("#extType").val(); - if (linkType=='IMAGE') { - $('#imageOptionsExternal *').prop('disabled', false); - } else { - $('#imageOptionsExternal *').prop('disabled', true); - } + var externalLink = {}; + externalLink["x"] = storeX; + externalLink["y"] = storeY; + externalLink["externalLinkLabel"] = $("#externalLinkLabel").val(); + externalLink["url"] = $("#externalLink").val(); + externalLink["type"] = $("#extType").val(); + showExternalLinks(externalLink); }); // space links @@ -1749,24 +1242,12 @@ }); $(".target").change(function() { - showSpaceLink(createSpaceLinkInfo()); - var linkType = $("#type").val(); - if (linkType=='IMAGE') { - $('#imageOptionsSpace *').prop('disabled', false); - } else { - $('#imageOptionsSpace *').prop('disabled', true); - } + showSpaceLink(createSpaceLinkInfo()); }); $(".modulelink-target").change(function() { showModuleLink(createModuleLinkInfo()); - var linkType = $("#moduleType").val(); - if (linkType=='IMAGE') { - $('#imageOptionsModule *').prop('disabled', false); - } else { - $('#imageOptionsModule *').prop('disabled', true); - } - }); + }); // link icons for space links @@ -1780,72 +1261,34 @@ $(".modulelink-targetEdit").change(function() { showModuleLinkEdit(editModuleLinkInfo()); - var linkType = $("#moduleTypeEdit").val(); - if (linkType=='IMAGE') { - $('#imageOptionsModuleEdit *').prop('disabled', false); - } else { - $('#imageOptionsModuleEdit *').prop('disabled', true); - } }); $(".spacelink-targetEdit").change(function() { showSpaceLinkEdit(editSpaceLinkInfo()); - var linkType = $("#typeSpaceEdit").val(); - if (linkType=='IMAGE') { - $('#imageOptionsSpaceEdit *').prop('disabled', false); - } else { - $('#imageOptionsSpaceEdit *').prop('disabled', true); - } }); $(".externallink-targetEdit").change(function() { showExternalLinkEdit(editExternalLinkInfo()); - var linkType = $("#extTypeEdit").val(); - if (linkType=='IMAGE') { - $('#imageOptionsExternalEdit *').prop('disabled', false); - } else { - $('#imageOptionsExternalEdit *').prop('disabled', true); - } }); + $("#spaceLinkImage").change(function() { if (this.files && this.files[0]) { linkIconReader.readAsDataURL(this.files[0]); } }); - $("#spaceLinkImageEdit").change(function() { - var linkId = $("#spaceLinkIdValueEdit").val(); - if (this.files && this.files[0]) { - linkIconReader.readAsDataURL(this.files[0]); - } - }); - $("#moduleLinkImage").change(function() { if (this.files && this.files[0]) { moduleLinkIconReader.readAsDataURL(this.files[0]); } }); - - $("#moduleLinkImageEdit").change(function() { - var moduleLinkId = $("#moduleLinkIdValueEdit").val(); - if (this.files && this.files[0]) { - moduleLinkIconReader.readAsDataURL(this.files[0]); - } - }); $("#externalLinkImage").change(function() { if (this.files && this.files[0]) { externalLinkIconReader.readAsDataURL(this.files[0]); } }); - - $("#externalLinkImageEdit").change(function() { - var externalLinkId = $("#externalLinkIdValueEdit").val(); - if (this.files && this.files[0]) { - externalLinkIconReader.readAsDataURL(this.files[0]); - } - }); // ------------ Cancel buttons ----------------- $(".cancelSpaceLinkBtn").click(function() { @@ -1853,9 +1296,8 @@ storeY = null; linkIcon = null; $("#link").remove(); - $('#chooseFromLocal-spcLink').trigger( "click" ); - $('#imageId-spcLink').val(''); - $("#space_label_desc").remove(); + + $("#space_label").remove(); $("#space").hide(); $("#createSpaceLinkAlert").hide(); $('#errorAlert').hide(); @@ -1867,7 +1309,7 @@ storeY = null; moduleLinkIcon=null; $("#link").remove(); - $("#module_label_desc").remove(); + $("#module_label").remove(); $("#space").hide(); $("#createModuleLinkAlert").hide(); $('#errorAlert').hide(); @@ -1881,7 +1323,7 @@ $("#external-link").remove(); $("div#link").remove(); $("#external-arrow").remove(); - $("#ext_label_desc").remove(); + $("#ext_label").remove(); $("#space").hide(); $("#createExternalLinkAlert").hide(); $('#errorAlert').hide(); @@ -1902,11 +1344,6 @@ resetHighlighting(); $("#space").hide(); $("#editModuleLinkInfo").hide(); - $("#moduleLinkIdValueEdit").val(""); - $("#moduleLinkImageIdEdit").val(""); - $("#moduleLinkImageEdit").val(""); - moduleLinkIcon=null; - $('#chooseFromLocal-modLinkEdit').click(); drawLinks(); }); @@ -1918,11 +1355,6 @@ resetHighlighting(); $("#space").hide(); $("#editSpaceLinkInfo").hide(); - $("#spaceLinkIdValueEdit").val(""); - $("#spaceLinkImageIdEdit").val(""); - $("#spaceLinkImageEdit").val(""); - linkIcon=null; - $('#chooseFromLocal-spcLinkEdit').click(); drawLinks(); }); @@ -1934,8 +1366,6 @@ resetHighlighting(); $("#space").hide(); $("#editExternalLinkInfo").hide(); - externalLinkIcon=null; - $('#chooseFromLocal-extLinkEdit').click(); drawLinks(); }); }); @@ -2109,15 +1539,6 @@
Create new Space Link
- -
-
- -
-
- -
-
@@ -2146,29 +1567,13 @@
Create new Space Link
-
- +
+
+ +
+
+ +

@@ -2217,15 +1622,6 @@

Create new Module Link
name="moduleLinkLabel" id="moduleLinkLabel">
- -
-
- -
-
- -
-
@@ -2254,29 +1650,13 @@
Create new Module Link
-
- +
+
+ +
+
+ +

@@ -2314,15 +1694,6 @@

Create new External Link
name="externalLinkLabel" id="externalLinkLabel">
- -
-
- -
-
- -
-
@@ -2358,29 +1729,13 @@
Create new External Link
-
- +
+
+ +
+
+ +

@@ -2410,7 +1765,6 @@

Space Link: - @@ -2438,15 +1792,6 @@
Space Link:
- -
-
- -
-
- -
-
@@ -2477,29 +1822,13 @@
Space Link:
-
- +
+
+ +
+
+ +

@@ -2534,7 +1863,6 @@

- @@ -2564,14 +1892,6 @@
-
- -
-
- -
-
-
@@ -2579,7 +1899,7 @@
@@ -2599,30 +1919,17 @@
-
- +

@@ -2655,8 +1962,6 @@

- style="width: inherit; background: var(--base-grey)">
- -
-
- -
-
- -
-
@@ -2721,30 +2017,16 @@
-
-

diff --git a/vspace/src/main/webapp/resources/extra/Home.css b/vspace/src/main/webapp/resources/extra/Home.css index 9564fe56a..c5eaf1bd0 100644 --- a/vspace/src/main/webapp/resources/extra/Home.css +++ b/vspace/src/main/webapp/resources/extra/Home.css @@ -660,7 +660,7 @@ right: 2.5%; left: 2.5%; bottom: 0; - z-index: 1050; + z-index: 9999; overflow-y: scroll; background: white; padding: 25px; diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java index 48890a1b0..f7ec5b68c 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ExternalLinkManagerTest.java @@ -14,16 +14,11 @@ import edu.asu.diging.vspace.core.data.ExternalLinkDisplayRepository; import edu.asu.diging.vspace.core.data.ExternalLinkRepository; -import edu.asu.diging.vspace.core.data.ImageRepository; -import edu.asu.diging.vspace.core.exception.FileStorageException; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; -import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; import edu.asu.diging.vspace.core.factory.IExternalLinkDisplayFactory; import edu.asu.diging.vspace.core.factory.IExternalLinkFactory; -import edu.asu.diging.vspace.core.factory.IImageFactory; -import edu.asu.diging.vspace.core.file.IStorageEngine; import edu.asu.diging.vspace.core.model.IExternalLink; import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.IVSImage; @@ -59,32 +54,19 @@ public class ExternalLinkManagerTest { @InjectMocks private ExternalLinkManager managerToTest = new ExternalLinkManager(); - - @Mock - private IImageFactory imageFactory; - - @Mock - private ImageRepository imageRepo; - - @Mock - private IStorageEngine storage; private String spaceId1; private String externalLinkURL; - private String imageId, imageFileName, extDisplayLinkId; @Before public void init() { MockitoAnnotations.initMocks(this); spaceId1 = "SPA000000014"; externalLinkURL = "www.google.com"; - imageId = "IMG00000001"; - imageFileName = "Space Image 1"; - extDisplayLinkId = "EXL001"; } @Test - public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, ImageDoesNotExistException, FileStorageException { + public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException { Space space = new Space(); space.setId(spaceId1); @@ -122,12 +104,9 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(externalLinkRepo.save((ExternalLink) externalLink)).thenReturn((ExternalLink)externalLink); Mockito.when(externalLinkDisplayRepo.save((ExternalLinkDisplay)externalDisplayLink)).thenReturn((ExternalLinkDisplay)externalDisplayLink); - - IExternalLinkDisplay savedExternalLinkDisplay1 = managerToTest.createLink("New External Link", spaceId1, 10, 30, 40, "EXL001", "New External Link", "New External Link Desc", DisplayType.ARROW, null, null, null); - + IExternalLinkDisplay savedExternalLinkDisplay1 = managerToTest.createLink("New External Link", spaceId1, 10, 30, 40, "EXL001", "New External Link", DisplayType.ARROW, null, null,null); Assert.assertEquals(externalDisplayLink.getId(), savedExternalLinkDisplay1.getId()); Assert.assertEquals(externalDisplayLink.getName(), savedExternalLinkDisplay1.getName()); - Assert.assertEquals(externalDisplayLink.getDescription(), savedExternalLinkDisplay1.getDescription()); Assert.assertEquals(new Double(externalDisplayLink.getPositionX()), new Double(savedExternalLinkDisplay1.getPositionX())); Assert.assertEquals(new Double(externalDisplayLink.getPositionY()), new Double(savedExternalLinkDisplay1.getPositionY())); Assert.assertEquals(externalDisplayLink.getRotation(), savedExternalLinkDisplay1.getRotation()); @@ -135,50 +114,10 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Assert.assertEquals(externalDisplayLink.getExternalLink(), savedExternalLinkDisplay1.getExternalLink()); Assert.assertEquals(externalDisplayLink.getExternalLink().getTarget().getValue(), savedExternalLinkDisplay1.getExternalLink().getTarget().getValue()); Mockito.verify(externalLinkDisplayRepo).save((ExternalLinkDisplay)externalDisplayLink); - - //For externalLink as Image - IVSImage extImage = new VSImage(); - extImage.setId(imageId); - extImage.setFilename(imageFileName); - extImage.setHeight(200); - extImage.setWidth(400); - - IExternalLinkDisplay extDisplayLinkImage = new ExternalLinkDisplay(); - extDisplayLinkImage.setId(extDisplayLinkId); - extDisplayLinkImage.setPositionX(10); - extDisplayLinkImage.setPositionY(30); - extDisplayLinkImage.setRotation(40); - extDisplayLinkImage.setType(DisplayType.IMAGE); - extDisplayLinkImage.setImage(extImage); - extDisplayLinkImage.setExternalLink(externalLink); - Mockito.when(externalLinkFactory.createExternalLink("New Module Link", space)).thenReturn(externalLink); - - Mockito.when(externalLinkDisplayFactory.createExternalLinkDisplay(externalLink)).thenReturn(extDisplayLinkImage); - - Mockito.when(imageFactory.createImage(Mockito.anyString(), Mockito.anyString())).thenReturn(extImage); - Mockito.when(imageRepo.save((VSImage) extImage)).thenReturn((VSImage) extImage); - Mockito.when(storage.storeFile(new byte[20], imageFileName, extImage.getId())).thenReturn("Dummy File Path"); - - Mockito.when(externalLinkRepo.save((ExternalLink) externalLink)).thenReturn((ExternalLink)externalLink); - Mockito.when(externalLinkDisplayRepo.save((ExternalLinkDisplay)extDisplayLinkImage)).thenReturn((ExternalLinkDisplay)extDisplayLinkImage); - - IExternalLinkDisplay savedExternalLinkDisplay2 = managerToTest.createLink("New External Link", spaceId1, 10, 30, 40, extDisplayLinkId, "New External Link", "New External Link Desc", DisplayType.IMAGE, new byte[20], imageFileName, null); - Assert.assertEquals(extDisplayLinkImage.getId(), savedExternalLinkDisplay2.getId()); - Assert.assertEquals(extDisplayLinkImage.getName(), savedExternalLinkDisplay2.getName()); - Assert.assertEquals(new Double(extDisplayLinkImage.getPositionX()), new Double(savedExternalLinkDisplay2.getPositionX())); - Assert.assertEquals(new Double(extDisplayLinkImage.getPositionY()), new Double(savedExternalLinkDisplay2.getPositionY())); - Assert.assertEquals(extDisplayLinkImage.getRotation(), savedExternalLinkDisplay2.getRotation()); - Assert.assertEquals(extDisplayLinkImage.getExternalLink().getId(), savedExternalLinkDisplay2.getExternalLink().getId()); - Assert.assertEquals(extDisplayLinkImage.getType(), savedExternalLinkDisplay2.getType()); - Assert.assertEquals(extDisplayLinkImage.getExternalLink().getSpace(), savedExternalLinkDisplay2.getExternalLink().getSpace()); - Assert.assertEquals(extDisplayLinkImage.getImage().getHeight(), savedExternalLinkDisplay2.getImage().getHeight()); - Assert.assertEquals(extDisplayLinkImage.getImage().getWidth(), savedExternalLinkDisplay2.getImage().getWidth()); - Assert.assertEquals(extDisplayLinkImage.getImage().getId(), savedExternalLinkDisplay2.getImage().getId()); - Mockito.verify(externalLinkDisplayRepo).save((ExternalLinkDisplay)extDisplayLinkImage); } @Test - public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException, ImageDoesNotExistException { + public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException { ISpace space = new Space(); space.setId(spaceId1); IVSImage spaceImage = new VSImage(); @@ -217,12 +156,9 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(externalLinkRepo.save((ExternalLink) externalLink)).thenReturn((ExternalLink)externalLink); Mockito.when(externalLinkDisplayRepo.save((ExternalLinkDisplay)externalLinkDisplay)).thenReturn((ExternalLinkDisplay)externalLinkDisplay); - - IExternalLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestExternalNew", spaceId1, 20, 40, 0, "www.google.com", "TestExternalNew", "TestExternalNew Desc", "EXL001", "EXLD001", DisplayType.ARROW, null, null, null); - + IExternalLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestExternalNew", spaceId1, 20, 40, 0, "www.google.com", "TestExternalNew", "EXL001", "EXLD001", DisplayType.ARROW, null, null,null); Assert.assertEquals(externalLinkDisplay.getId(), actualUpdatedLink.getId()); Assert.assertEquals(externalLinkDisplay.getName(), actualUpdatedLink.getName()); - Assert.assertEquals(externalLinkDisplay.getDescription(), actualUpdatedLink.getDescription()); Assert.assertEquals(new Double(externalLinkDisplay.getPositionX()), new Double(actualUpdatedLink.getPositionX())); Assert.assertEquals(new Double(externalLinkDisplay.getPositionY()), new Double(actualUpdatedLink.getPositionY())); Assert.assertEquals(externalLinkDisplay.getExternalLink().getId(), actualUpdatedLink.getExternalLink().getId()); diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java index b20695dc7..6b5090701 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/ModuleLinkManagerTest.java @@ -17,7 +17,6 @@ import edu.asu.diging.vspace.core.data.display.ModuleLinkDisplayRepository; import edu.asu.diging.vspace.core.exception.FileStorageException; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; -import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; import edu.asu.diging.vspace.core.factory.IImageFactory; @@ -84,7 +83,8 @@ public void init() { } @Test - public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, FileStorageException, ImageDoesNotExistException { + public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, FileStorageException { + Space space = new Space(); space.setId(spaceId1); IVSImage spaceImage = new VSImage(); @@ -123,11 +123,9 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleDisplayLink)).thenReturn((ModuleLinkDisplay)moduleDisplayLink); - IModuleLinkDisplay savedModuleLinkDisplay1 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", "New Module Link Desc", DisplayType.ARROW, null, null, null); - + IModuleLinkDisplay savedModuleLinkDisplay1 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", DisplayType.ARROW, null, null); Assert.assertEquals(moduleDisplayLink.getId(), savedModuleLinkDisplay1.getId()); Assert.assertEquals(moduleDisplayLink.getName(), savedModuleLinkDisplay1.getName()); - Assert.assertEquals(moduleDisplayLink.getDescription(), savedModuleLinkDisplay1.getDescription()); Assert.assertEquals(new Double(moduleDisplayLink.getPositionX()), new Double(savedModuleLinkDisplay1.getPositionX())); Assert.assertEquals(new Double(moduleDisplayLink.getPositionY()), new Double(savedModuleLinkDisplay1.getPositionY())); Assert.assertEquals(moduleDisplayLink.getRotation(), savedModuleLinkDisplay1.getRotation()); @@ -136,6 +134,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Assert.assertEquals(moduleDisplayLink.getLink().getTarget().getId(), savedModuleLinkDisplay1.getLink().getTarget().getId()); Mockito.verify(moduleLinkDisplayRepo).save((ModuleLinkDisplay)moduleDisplayLink); + //For moduleLink as Image IVSImage modImage = new VSImage(); modImage.setId(imageId); @@ -162,7 +161,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleDisplayLinkImage)).thenReturn((ModuleLinkDisplay)moduleDisplayLinkImage); - IModuleLinkDisplay savedModuleLinkDisplay2 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", "New Module Link Desc", DisplayType.IMAGE, new byte[20], imageFileName, null); + IModuleLinkDisplay savedModuleLinkDisplay2 = managerToTest.createLink("New Module Link", spaceId1, 10, 30, 40, "MOD001", "New Module Link", DisplayType.IMAGE, new byte[20], imageFileName); Assert.assertEquals(moduleDisplayLinkImage.getId(), savedModuleLinkDisplay2.getId()); Assert.assertEquals(moduleDisplayLinkImage.getName(), savedModuleLinkDisplay2.getName()); Assert.assertEquals(new Double(moduleDisplayLinkImage.getPositionX()), new Double(savedModuleLinkDisplay2.getPositionX())); @@ -179,7 +178,7 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo } @Test - public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException, ImageDoesNotExistException { + public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException { ISpace space = new Space(); space.setId(spaceId1); IVSImage spaceImage = new VSImage(); @@ -202,7 +201,7 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(moduleManager.getModule("MOD001")).thenReturn(target); moduleLink.setTarget(target); - moduleLinkDisplay.setId("MDLD001"); + moduleLinkDisplay.setId(modDisplayLinkId); moduleLinkDisplay.setLink(moduleLink); moduleLinkDisplay.setName("TestModule"); @@ -236,11 +235,9 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Mockito.when(moduleLinkRepo.save((ModuleLink) moduleLink)).thenReturn((ModuleLink)moduleLink); Mockito.when(moduleLinkDisplayRepo.save((ModuleLinkDisplay)moduleLinkDisplay)).thenReturn((ModuleLinkDisplay)moduleLinkDisplayUpdated); - IModuleLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "TestModuleEdited Desc", "MOL001", "MDLD001", DisplayType.ALERT, null, null, null); - + IModuleLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null); Assert.assertEquals(moduleLinkDisplayUpdated.getId(), actualUpdatedLink.getId()); Assert.assertEquals(moduleLinkDisplayUpdated.getName(), actualUpdatedLink.getName()); - Assert.assertEquals(moduleLinkDisplayUpdated.getDescription(), actualUpdatedLink.getDescription()); Assert.assertEquals(new Double(moduleLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink.getPositionX())); Assert.assertEquals(new Double(moduleLinkDisplayUpdated.getPositionY()), new Double(actualUpdatedLink.getPositionY())); Assert.assertEquals(moduleLinkDisplayUpdated.getLink().getTarget(), actualUpdatedLink.getLink().getTarget()); @@ -257,8 +254,7 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe moduleLinkDisplay.setImage(modImage); moduleLinkDisplayUpdated.setType(DisplayType.ARROW); - IModuleLinkDisplay actualUpdatedLink2 = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "TestModuleEdited Desc", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null, null); - + IModuleLinkDisplay actualUpdatedLink2 = managerToTest.updateLink("TestModuleEdited", spaceId1, 100, 300, 180, "MOD002", "TestModuleEdited", "MOL001", modDisplayLinkId, DisplayType.ALERT, null, null); Assert.assertEquals(moduleLinkDisplayUpdated.getId(), actualUpdatedLink2.getId()); Assert.assertEquals(moduleLinkDisplayUpdated.getName(), actualUpdatedLink2.getName()); Assert.assertEquals(new Double(moduleLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink2.getPositionX())); diff --git a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java index 68852a1d4..cad5a68de 100644 --- a/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java +++ b/vspace/src/test/java/edu/asu/diging/vspace/core/services/impl/SpaceLinkManagerTest.java @@ -12,18 +12,13 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import edu.asu.diging.vspace.core.data.ImageRepository; import edu.asu.diging.vspace.core.data.SpaceLinkRepository; import edu.asu.diging.vspace.core.data.display.SpaceLinkDisplayRepository; -import edu.asu.diging.vspace.core.exception.FileStorageException; import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; -import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; -import edu.asu.diging.vspace.core.factory.IImageFactory; import edu.asu.diging.vspace.core.factory.ISpaceLinkFactory; import edu.asu.diging.vspace.core.factory.impl.SpaceLinkDisplayFactory; -import edu.asu.diging.vspace.core.file.IStorageEngine; import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.ISpaceLink; import edu.asu.diging.vspace.core.model.IVSImage; @@ -35,7 +30,6 @@ import edu.asu.diging.vspace.core.model.impl.Space; import edu.asu.diging.vspace.core.model.impl.SpaceLink; import edu.asu.diging.vspace.core.model.impl.VSImage; -import edu.asu.diging.vspace.core.services.IImageService; public class SpaceLinkManagerTest { @Mock @@ -55,23 +49,11 @@ public class SpaceLinkManagerTest { @Mock private SpaceLinkDisplayFactory spaceLinkDisplayFactory; - - @Mock - private IImageFactory imageFactory; - - @Mock - private IImageService imageService; - - @Mock - private ImageRepository imageRepo; - - @Mock - private IStorageEngine storage; @InjectMocks private SpaceLinkManager managerToTest = new SpaceLinkManager(); - private String spaceId1, spaceId2, spaceId3, imageId, imageId2, imageFileName, spcDisplayLinkId; + private String spaceId1, spaceId2, spaceId3, spaceLinkId1; @Before public void init() { @@ -79,15 +61,11 @@ public void init() { spaceId1 = "SPA000000001"; spaceId2 = "SPA000000002"; spaceId3 = "SPA000000003"; - imageId = "IMG00000001"; - imageId2 = "IMG00000002"; - imageFileName = "Space Image 1"; - spcDisplayLinkId = "SPLD001"; spaceLinkId1 = "SPL00000001"; } @Test - public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, ImageDoesNotExistException, FileStorageException { + public void test_createLink_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException { ISpace space = new Space(); space.setId(spaceId1); @@ -128,10 +106,9 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceDisplayLink)).thenReturn((SpaceLinkDisplay)spaceDisplayLink); - ISpaceLinkDisplay savedSpaceLinkDisplay = managerToTest.createLink("New Space Link", spaceId1, 10, 30, 40, spaceId2, "New Space Link", "New Space Link Desc", DisplayType.ARROW, null, null, null); + ISpaceLinkDisplay savedSpaceLinkDisplay = managerToTest.createLink("New Space Link", spaceId1, 10, 30, 40, spaceId2, "New Space Link", DisplayType.ARROW, null, null); Assert.assertEquals(spaceDisplayLink.getId(), savedSpaceLinkDisplay.getId()); Assert.assertEquals(spaceDisplayLink.getName(), savedSpaceLinkDisplay.getName()); - Assert.assertEquals(spaceDisplayLink.getDescription(), savedSpaceLinkDisplay.getDescription()); Assert.assertEquals(new Double(spaceDisplayLink.getPositionX()), new Double(savedSpaceLinkDisplay.getPositionX())); Assert.assertEquals(new Double(spaceDisplayLink.getPositionY()), new Double(savedSpaceLinkDisplay.getPositionY())); Assert.assertEquals(spaceDisplayLink.getRotation(), savedSpaceLinkDisplay.getRotation()); @@ -140,64 +117,6 @@ public void test_createLink_success() throws SpaceDoesNotExistException, ImageCo Assert.assertEquals(spaceDisplayLink.getLink().getTargetSpace(), savedSpaceLinkDisplay.getLink().getTargetSpace()); Mockito.verify(spaceLinkDisplayRepo).save((SpaceLinkDisplay)spaceDisplayLink); } - - @Test - public void test_createLinkWithExistingImage_success() throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, ImageDoesNotExistException, FileStorageException { - - ISpace space = new Space(); - space.setId(spaceId1); - - ISpaceLink spaceLink = new SpaceLink(); - spaceLink.setId("SPL001"); - - Mockito.when(spaceManager.getSpace(spaceId1)).thenReturn(space); - Mockito.when(spaceLinkRepo.save((SpaceLink)spaceLink)).thenReturn((SpaceLink) spaceLink); - Mockito.when(spaceManager.getSpace(spaceId1)).thenReturn(space); - Mockito.when(spaceLinkFactory.createSpaceLink("New Space Link", space)).thenReturn(spaceLink); - - ISpace target = new Space(); - target.setId(spaceId2); - Mockito.when(spaceManager.getSpace(spaceId2)).thenReturn(target); - - spaceLink.setTargetSpace(target); - IVSImage spcImage = new VSImage(); - spcImage.setId(imageId); - spcImage.setFilename(imageFileName); - spcImage.setHeight(200); - spcImage.setWidth(400); - - ISpaceLinkDisplay spaceDisplayLinkImage = new SpaceLinkDisplay(); - spaceDisplayLinkImage.setId(spcDisplayLinkId); - spaceDisplayLinkImage.setPositionX(10); - spaceDisplayLinkImage.setPositionY(30); - spaceDisplayLinkImage.setRotation(40); - spaceDisplayLinkImage.setType(DisplayType.IMAGE); - spaceDisplayLinkImage.setImage(spcImage); - Mockito.when(spaceLinkFactory.createSpaceLink("New Module Link", space)).thenReturn(spaceLink); - spaceDisplayLinkImage.setLink(spaceLink); - - Mockito.when(spaceLinkDisplayFactory.createSpaceLinkDisplay(spaceLink)).thenReturn(spaceDisplayLinkImage); - Mockito.when(imageFactory.createImage(Mockito.anyString(), Mockito.anyString())).thenReturn(spcImage); - Mockito.when(imageRepo.save((VSImage) spcImage)).thenReturn((VSImage) spcImage); - Mockito.when(storage.storeFile(new byte[20], imageFileName, spcImage.getId())).thenReturn("Dummy File Path"); - Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); - Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceDisplayLinkImage)).thenReturn((SpaceLinkDisplay)spaceDisplayLinkImage); - - ISpaceLinkDisplay savedSpaceLinkDisplay2 = managerToTest.createLink("New Space Link", spaceId1, 10, 30, 40, spaceId2, "New Space Link", "New Space Link Desc", DisplayType.IMAGE, new byte[20], imageFileName, null); - Assert.assertEquals(spaceDisplayLinkImage.getId(), savedSpaceLinkDisplay2.getId()); - Assert.assertEquals(spaceDisplayLinkImage.getName(), savedSpaceLinkDisplay2.getName()); - Assert.assertEquals(spaceDisplayLinkImage.getDescription(), savedSpaceLinkDisplay2.getDescription()); - Assert.assertEquals(new Double(spaceDisplayLinkImage.getPositionX()), new Double(savedSpaceLinkDisplay2.getPositionX())); - Assert.assertEquals(new Double(spaceDisplayLinkImage.getPositionY()), new Double(savedSpaceLinkDisplay2.getPositionY())); - Assert.assertEquals(spaceDisplayLinkImage.getRotation(), savedSpaceLinkDisplay2.getRotation()); - Assert.assertEquals(spaceDisplayLinkImage.getLink().getId(), savedSpaceLinkDisplay2.getLink().getId()); - Assert.assertEquals(spaceDisplayLinkImage.getType(), savedSpaceLinkDisplay2.getType()); - Assert.assertEquals(spaceDisplayLinkImage.getLink().getTargetSpace(), savedSpaceLinkDisplay2.getLink().getTargetSpace()); - Assert.assertEquals(spaceDisplayLinkImage.getImage().getHeight(), savedSpaceLinkDisplay2.getImage().getHeight()); - Assert.assertEquals(spaceDisplayLinkImage.getImage().getWidth(), savedSpaceLinkDisplay2.getImage().getWidth()); - Assert.assertEquals(spaceDisplayLinkImage.getImage().getId(), savedSpaceLinkDisplay2.getImage().getId()); - Mockito.verify(spaceLinkDisplayRepo).save((SpaceLinkDisplay)spaceDisplayLinkImage); - } @Test public void test_deleteLink_linkPresent() { @@ -238,7 +157,7 @@ public void test_deleteLink_linkPresent() { } @Test - public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException, ImageDoesNotExistException { + public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException { ISpace space = new Space(); space.setId(spaceId1); IVSImage spaceImage = new VSImage(); @@ -250,13 +169,17 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe spaceLink.setId("SPL002"); spaceLink.setSourceSpace(space); + ISpace target = new Space(); target.setId(spaceId2); + Mockito.when(spaceManager.getSpace(spaceId2)).thenReturn(target); spaceLink.setTargetSpace(target); + spaceLinkDisplay.setId("SPLD001"); spaceLinkDisplay.setLink(spaceLink); + spaceLinkDisplay.setName("TestSpace"); spaceLinkDisplay.setPositionX(10); spaceLinkDisplay.setPositionY(30); @@ -272,6 +195,7 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe Optional mockSpaceLinkDisplay = Optional.of((SpaceLinkDisplay)spaceLinkDisplay); Mockito.when(spaceLinkDisplayRepo.findById(spaceLinkDisplay.getId())).thenReturn(mockSpaceLinkDisplay); + SpaceLinkDisplay spaceLinkDisplayUpdated = spaceLinkDisplay; spaceLinkDisplayUpdated.setName("TestSpaceEdited"); spaceLinkDisplayUpdated.setPositionX(100); @@ -291,13 +215,13 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe displayAttributes.setWidth(1300); Mockito.when(spaceDisplayManager.getBySpace(space)).thenReturn(displayAttributes); + Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceLinkDisplay)).thenReturn((SpaceLinkDisplay)spaceLinkDisplayUpdated); - ISpaceLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestSpaceEdited", spaceId1, 100, 300, 180, spaceId3, "TestSpaceEdited", "TestSpaceEdited Desc", "SPL002", "SPLD001", DisplayType.ALERT, null, null, null); + ISpaceLinkDisplay actualUpdatedLink = managerToTest.updateLink("TestSpaceEdited", spaceId1, 100, 300, 180, spaceId3, "TestSpaceEdited", "SPL002", "SPLD001", DisplayType.ALERT, null, null); Assert.assertEquals(spaceLinkDisplayUpdated.getId(), actualUpdatedLink.getId()); Assert.assertEquals(spaceLinkDisplayUpdated.getName(), actualUpdatedLink.getName()); - Assert.assertEquals(spaceLinkDisplayUpdated.getDescription(), actualUpdatedLink.getDescription()); Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionX()), new Double(actualUpdatedLink.getPositionX())); Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionY()), new Double(actualUpdatedLink.getPositionY())); Assert.assertEquals(spaceLinkDisplayUpdated.getLink().getTargetSpace(), actualUpdatedLink.getLink().getTargetSpace()); @@ -305,71 +229,6 @@ public void test_updateLink_success() throws SpaceDoesNotExistException, LinkDoe } @Test - public void test_updateLinkWithExistingImage_success() throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException, ImageDoesNotExistException { - IVSImage spcImage = new VSImage(); - spcImage.setId(imageId2); - spcImage.setFilename(imageFileName); - spcImage.setHeight(300); - spcImage.setWidth(600); - - ISpace space = new Space(); - space.setId(spaceId1); - ISpace target = new Space(); - target.setId(spaceId2); - - ISpaceLink spaceLink = new SpaceLink(); - spaceLink.setId("SPL002"); - spaceLink.setSourceSpace(space); - spaceLink.setTargetSpace(target); - - SpaceLinkDisplay spaceLinkDisplay = new SpaceLinkDisplay(); - spaceLinkDisplay.setId("SPLD001"); - spaceLinkDisplay.setLink(spaceLink); - - spaceLinkDisplay.setName("TestSpace"); - spaceLinkDisplay.setPositionX(10); - spaceLinkDisplay.setPositionY(30); - spaceLinkDisplay.setPositionY(20); - spaceLinkDisplay.setType(DisplayType.ARROW); - - SpaceLinkDisplay spaceLinkDisplayUpdated = spaceLinkDisplay; - spaceLinkDisplayUpdated.setName("TestSpaceEdited"); - spaceLinkDisplayUpdated.setPositionX(100); - spaceLinkDisplayUpdated.setPositionY(300); - spaceLinkDisplayUpdated.setRotation(180); - spaceLinkDisplayUpdated.setType(DisplayType.IMAGE); - spaceLinkDisplayUpdated.setImage(spcImage); - - ISpaceDisplay displayAttributes = new SpaceDisplay(); - displayAttributes.setHeight(700); - displayAttributes.setWidth(1300); - - Optional mockSpaceLink = Optional.of((SpaceLink)spaceLink); - Mockito.when(spaceLinkRepo.findById(spaceLink.getId())).thenReturn(mockSpaceLink); - Optional mockSpaceLinkDisplay = Optional.of((SpaceLinkDisplay)spaceLinkDisplay); - Mockito.when(spaceLinkDisplayRepo.findById(spaceLinkDisplay.getId())).thenReturn(mockSpaceLinkDisplay); - - Mockito.when(spaceManager.getSpace(spaceId1)).thenReturn(space); - Mockito.when(spaceDisplayManager.getBySpace(space)).thenReturn(displayAttributes); - Mockito.when(spaceLinkRepo.save((SpaceLink) spaceLink)).thenReturn((SpaceLink)spaceLink); - Mockito.when(spaceLinkDisplayRepo.save((SpaceLinkDisplay)spaceLinkDisplay)).thenReturn((SpaceLinkDisplay)spaceLinkDisplayUpdated); - Mockito.when(imageService.getImageById(Mockito.anyString())).thenReturn(spcImage); - - ISpaceLinkDisplay savedSpaceLinkDisplay2 = managerToTest.updateLink("Updated Space Link", spaceId1, 10, 30, 40, spaceId2, "Updated Space Link", "TestSpaceEdited Desc", "SPL002", "SPLD001", DisplayType.IMAGE, null, null, imageId2); - Assert.assertEquals(spaceLinkDisplayUpdated.getId(), savedSpaceLinkDisplay2.getId()); - Assert.assertEquals(spaceLinkDisplayUpdated.getName(), savedSpaceLinkDisplay2.getName()); - Assert.assertEquals(spaceLinkDisplayUpdated.getDescription(), savedSpaceLinkDisplay2.getDescription()); - Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionX()), new Double(savedSpaceLinkDisplay2.getPositionX())); - Assert.assertEquals(new Double(spaceLinkDisplayUpdated.getPositionY()), new Double(savedSpaceLinkDisplay2.getPositionY())); - Assert.assertEquals(spaceLinkDisplayUpdated.getRotation(), savedSpaceLinkDisplay2.getRotation()); - Assert.assertEquals(spaceLinkDisplayUpdated.getLink().getId(), savedSpaceLinkDisplay2.getLink().getId()); - Assert.assertEquals(spaceLinkDisplayUpdated.getType(), savedSpaceLinkDisplay2.getType()); - Assert.assertEquals(spaceLinkDisplayUpdated.getLink().getTargetSpace(), savedSpaceLinkDisplay2.getLink().getTargetSpace()); - Assert.assertEquals(spaceLinkDisplayUpdated.getImage().getHeight(), savedSpaceLinkDisplay2.getImage().getHeight()); - Assert.assertEquals(spaceLinkDisplayUpdated.getImage().getWidth(), savedSpaceLinkDisplay2.getImage().getWidth()); - Assert.assertEquals(spaceLinkDisplayUpdated.getImage().getId(), savedSpaceLinkDisplay2.getImage().getId()); - } - public void test_deleteSpaceLinkWithSourceAsNull_present() { SpaceLink spaceLink = new SpaceLink(); spaceLink.setSourceSpace(null); @@ -383,5 +242,4 @@ public void test_deleteSpaceLinkWithSourceAsNull_present() { } - } From ccd289a81e04cd2c93fbc1018f6e08ac9f2ea222 Mon Sep 17 00:00:00 2001 From: Baishali Nayak Date: Thu, 5 May 2022 20:42:00 -0700 Subject: [PATCH 070/138] reverted back to 5ebdc4f5c54879534870c8643b229299ef74ef17 i.e. undoing f206c629243106a68b5aad6abb46be1e83a192ff and 0f55c08b721009220b9f906d48c20d6858f1503b and 80cacd3e210093c41f1ea0a3cbdf7923b416c94e --- .../aspects/ExhibitionDataAspect.java | 155 ------- .../core/services/aspects/MetadataAspect.java | 39 -- .../services/auth/IAuthenticationFacade.java | 7 - .../auth/impl/AuthenticationFacade.java | 24 -- .../data/BranchingPointRepository.java | 13 - .../data/ChoiceContentBlockRepository.java | 13 - .../core/services/data/ChoiceRepository.java | 13 - .../services/data/ContentBlockRepository.java | 20 - .../data/ExhibitionAboutPageRepository.java | 13 - .../services/data/ExhibitionRepository.java | 16 - .../data/ExternalLinkDisplayRepository.java | 22 - .../services/data/ExternalLinkRepository.java | 13 - .../core/services/data/IdGenerator.java | 30 -- .../data/ImageContentBlockRepository.java | 13 - .../core/services/data/ImageRepository.java | 28 -- .../services/data/ModuleLinkRepository.java | 13 - .../core/services/data/ModuleRepository.java | 27 -- .../services/data/SequenceRepository.java | 22 - .../core/services/data/SlideRepository.java | 29 -- .../services/data/SpaceLinkRepository.java | 39 -- .../core/services/data/SpaceRepository.java | 27 -- .../data/TextContentBlockRepository.java | 20 - .../display/ModuleLinkDisplayRepository.java | 22 - .../data/display/SpaceDisplayRepository.java | 22 - .../display/SpaceLinkDisplayRepository.java | 39 -- .../exception/BlockDoesNotExistException.java | 42 -- .../exception/FileStorageException.java | 36 -- .../ImageCouldNotBeStoredException.java | 36 -- .../exception/ImageDoesNotExistException.java | 36 -- .../exception/LinkDoesNotExistsException.java | 26 -- .../ModuleDoesNotExistException.java | 36 -- .../exception/SlideDoesNotExistException.java | 30 -- .../exception/SpaceDoesNotExistException.java | 36 -- .../SpaceLinkDoesNotExistException.java | 28 -- .../services/factory/IChoiceBlockFactory.java | 13 - .../core/services/factory/IChoiceFactory.java | 11 - .../services/factory/IExhibitionFactory.java | 9 - .../factory/IExternalLinkDisplayFactory.java | 9 - .../factory/IExternalLinkFactory.java | 10 - .../services/factory/IImageBlockFactory.java | 11 - .../core/services/factory/IImageFactory.java | 9 - .../core/services/factory/IModuleFactory.java | 10 - .../factory/IModuleLinkDisplayFactory.java | 10 - .../services/factory/IModuleLinkFactory.java | 10 - .../services/factory/ISequenceFactory.java | 13 - .../core/services/factory/ISlideFactory.java | 12 - .../factory/ISpaceDisplayFactory.java | 9 - .../core/services/factory/ISpaceFactory.java | 10 - .../factory/ISpaceLinkDisplayFactory.java | 10 - .../services/factory/ISpaceLinkFactory.java | 10 - .../services/factory/ITextBlockFactory.java | 10 - .../factory/impl/ChoiceBlockFactory.java | 31 -- .../services/factory/impl/ChoiceFactory.java | 32 -- .../factory/impl/ExhibitionFactory.java | 22 - .../impl/ExternalLinkDisplayFactory.java | 25 -- .../factory/impl/ExternalLinkFactory.java | 26 -- .../factory/impl/ImageBlockFactory.java | 30 -- .../services/factory/impl/ImageFactory.java | 28 -- .../services/factory/impl/ModuleFactory.java | 23 -- .../impl/ModuleLinkDisplayFactory.java | 25 -- .../factory/impl/ModuleLinkFactory.java | 28 -- .../factory/impl/SequenceFactory.java | 32 -- .../services/factory/impl/SlideFactory.java | 50 --- .../factory/impl/SpaceDisplayFactory.java | 15 - .../services/factory/impl/SpaceFactory.java | 23 -- .../factory/impl/SpaceLinkDisplayFactory.java | 25 -- .../factory/impl/SpaceLinkFactory.java | 23 -- .../factory/impl/TextBlockFactory.java | 29 -- .../core/services/file/IStorageEngine.java | 15 - .../services/file/impl/StorageEngine.java | 92 ----- .../core/services/model/ExhibitionModes.java | 21 - .../core/services/model/IBranchingPoint.java | 10 - .../vspace/core/services/model/IChoice.java | 9 - .../core/services/model/IChoiceBlock.java | 15 - .../core/services/model/IContentBlock.java | 17 - .../core/services/model/IExhibition.java | 25 -- .../core/services/model/IExternalLink.java | 15 - .../core/services/model/IImageBlock.java | 13 - .../vspace/core/services/model/ILink.java | 12 - .../vspace/core/services/model/IModule.java | 24 -- .../core/services/model/IModuleLink.java | 8 - .../vspace/core/services/model/IPrefix.java | 7 - .../vspace/core/services/model/ISequence.java | 14 - .../vspace/core/services/model/ISlide.java | 18 - .../vspace/core/services/model/ISpace.java | 37 -- .../core/services/model/ISpaceLink.java | 13 - .../vspace/core/services/model/ITag.java | 9 - .../core/services/model/ITextBlock.java | 15 - .../vspace/core/services/model/IVSImage.java | 35 -- .../core/services/model/IVSpaceElement.java | 35 -- .../vspace/core/services/model/IdPrefix.java | 17 - .../core/services/model/ImageCategory.java | 7 - .../core/services/model/SortByField.java | 26 -- .../services/model/display/DisplayType.java | 6 - .../display/ExternalLinkDisplayMode.java | 16 - .../model/display/IExternalLinkDisplay.java | 14 - .../services/model/display/ILinkDisplay.java | 31 -- .../model/display/IModuleLinkDisplay.java | 21 - .../services/model/display/ISpaceDisplay.java | 23 -- .../model/display/ISpaceLinkDisplay.java | 18 - .../services/model/display/SlideType.java | 6 - .../display/impl/ExternalLinkDisplay.java | 97 ----- .../model/display/impl/LinkDisplay.java | 116 ------ .../model/display/impl/ModuleLinkDisplay.java | 62 --- .../model/display/impl/SpaceDisplay.java | 115 ------ .../model/display/impl/SpaceLinkDisplay.java | 84 ---- .../services/model/impl/BranchingPoint.java | 41 -- .../core/services/model/impl/Choice.java | 77 ---- .../core/services/model/impl/ChoiceBlock.java | 48 --- .../services/model/impl/ContentBlock.java | 97 ----- .../core/services/model/impl/Exhibition.java | 107 ----- .../model/impl/ExhibitionAboutPage.java | 56 --- .../services/model/impl/ExternalLink.java | 88 ---- .../model/impl/ExternalLinkValue.java | 33 -- .../core/services/model/impl/ImageBlock.java | 37 -- .../core/services/model/impl/Module.java | 138 ------- .../core/services/model/impl/ModuleLink.java | 86 ---- .../services/model/impl/ModuleStatus.java | 6 - .../core/services/model/impl/Sequence.java | 96 ----- .../services/model/impl/SequenceHistory.java | 55 --- .../core/services/model/impl/Slide.java | 176 -------- .../core/services/model/impl/Space.java | 209 ---------- .../core/services/model/impl/SpaceLink.java | 103 ----- .../core/services/model/impl/SpaceStatus.java | 6 - .../vspace/core/services/model/impl/Tag.java | 38 -- .../core/services/model/impl/TextBlock.java | 54 --- .../core/services/model/impl/VSImage.java | 157 ------- .../services/model/impl/VSpaceElement.java | 103 ----- .../services/IContentBlockManager.java | 51 --- .../services/IExhibitionAboutPageManager.java | 24 -- .../services/services/IExhibitionManager.java | 37 -- .../services/IExternalLinkManager.java | 22 - .../core/services/services/IImageService.java | 40 -- .../core/services/services/ILinkManager.java | 28 -- .../services/services/IModuleLinkManager.java | 9 - .../services/services/IModuleManager.java | 27 -- .../services/services/ISequenceManager.java | 14 - .../core/services/services/ISetupManager.java | 18 - .../core/services/services/ISlideManager.java | 36 -- .../services/ISpaceDisplayManager.java | 10 - .../services/services/ISpaceLinkManager.java | 17 - .../core/services/services/ISpaceManager.java | 41 -- .../services/ISpaceOverviewManager.java | 19 - .../services/IStaffSearchManager.java | 18 - .../services/impl/ContentBlockManager.java | 390 ------------------ .../services/impl/CreationReturnValue.java | 25 -- .../impl/ExhibitionAboutPageManager.java | 44 -- .../services/impl/ExhibitionManager.java | 69 ---- .../services/impl/ExternalLinkManager.java | 161 -------- .../services/services/impl/ImageService.java | 253 ------------ .../services/services/impl/LinkManager.java | 130 ------ .../services/impl/ModuleLinkManager.java | 107 ----- .../services/services/impl/ModuleManager.java | 92 ----- .../services/impl/SequenceManager.java | 62 --- .../services/services/impl/SetupManager.java | 58 --- .../services/services/impl/SlideManager.java | 170 -------- .../services/impl/SpaceDisplayManager.java | 90 ---- .../services/impl/SpaceLinkManager.java | 128 ------ .../services/services/impl/SpaceManager.java | 300 -------------- .../services/services/impl/SpaceOverview.java | 86 ---- .../impl/SpaceOverviewDataFormatter.java | 41 -- .../impl/SpaceOverviewJsonFormat.java | 166 -------- .../services/impl/SpaceOverviewManager.java | 131 ------ .../services/impl/StaffSearchManager.java | 184 --------- .../services/impl/model/ImageData.java | 31 -- .../impl/model/StaffSearchModuleResults.java | 39 -- .../impl/model/StaffSearchSlideResults.java | 29 -- .../StaffSearchSlideTextBlockResults.java | 40 -- .../impl/model/StaffSearchSpaceResults.java | 19 - 169 files changed, 7813 deletions(-) delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/aspects/ExhibitionDataAspect.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/aspects/MetadataAspect.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/auth/IAuthenticationFacade.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/auth/impl/AuthenticationFacade.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/BranchingPointRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ChoiceContentBlockRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ChoiceRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ContentBlockRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExhibitionAboutPageRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExhibitionRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExternalLinkDisplayRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExternalLinkRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/IdGenerator.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ImageContentBlockRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ImageRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ModuleLinkRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ModuleRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SequenceRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SlideRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SpaceLinkRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SpaceRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/TextContentBlockRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/ModuleLinkDisplayRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/SpaceDisplayRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/SpaceLinkDisplayRepository.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/BlockDoesNotExistException.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/FileStorageException.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ImageCouldNotBeStoredException.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ImageDoesNotExistException.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/LinkDoesNotExistsException.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ModuleDoesNotExistException.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SlideDoesNotExistException.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SpaceDoesNotExistException.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SpaceLinkDoesNotExistException.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IChoiceBlockFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IChoiceFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExhibitionFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExternalLinkDisplayFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExternalLinkFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IImageBlockFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IImageFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleLinkDisplayFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleLinkFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISequenceFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISlideFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceDisplayFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceLinkDisplayFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceLinkFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ITextBlockFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ChoiceBlockFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ChoiceFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExhibitionFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExternalLinkDisplayFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExternalLinkFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ImageBlockFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ImageFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleLinkDisplayFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleLinkFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SequenceFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SlideFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceDisplayFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceLinkDisplayFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceLinkFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/TextBlockFactory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/file/IStorageEngine.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/file/impl/StorageEngine.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ExhibitionModes.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IBranchingPoint.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IChoice.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IChoiceBlock.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IContentBlock.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IExhibition.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IExternalLink.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IImageBlock.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ILink.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IModule.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IModuleLink.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IPrefix.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISequence.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISlide.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISpace.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISpaceLink.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ITag.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ITextBlock.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IVSImage.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IVSpaceElement.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IdPrefix.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ImageCategory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/SortByField.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/DisplayType.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ExternalLinkDisplayMode.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/IExternalLinkDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ILinkDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/IModuleLinkDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ISpaceDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ISpaceLinkDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/SlideType.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/ExternalLinkDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/LinkDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/ModuleLinkDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/SpaceDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/SpaceLinkDisplay.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/BranchingPoint.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Choice.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ChoiceBlock.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ContentBlock.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Exhibition.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExhibitionAboutPage.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExternalLink.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExternalLinkValue.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ImageBlock.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Module.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ModuleLink.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ModuleStatus.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Sequence.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SequenceHistory.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Slide.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Space.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SpaceLink.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SpaceStatus.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Tag.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/TextBlock.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/VSImage.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/VSpaceElement.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IContentBlockManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExhibitionAboutPageManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExhibitionManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExternalLinkManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IImageService.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ILinkManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IModuleLinkManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IModuleManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISequenceManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISetupManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISlideManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceDisplayManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceLinkManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceOverviewManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IStaffSearchManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ContentBlockManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/CreationReturnValue.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExhibitionAboutPageManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExhibitionManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExternalLinkManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ImageService.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/LinkManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ModuleLinkManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ModuleManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SequenceManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SetupManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SlideManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceDisplayManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceLinkManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverview.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewDataFormatter.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewJsonFormat.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/StaffSearchManager.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/ImageData.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchModuleResults.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSlideResults.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSlideTextBlockResults.java delete mode 100644 vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSpaceResults.java diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/aspects/ExhibitionDataAspect.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/aspects/ExhibitionDataAspect.java deleted file mode 100644 index a369a242a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/aspects/ExhibitionDataAspect.java +++ /dev/null @@ -1,155 +0,0 @@ -package edu.asu.diging.vspace.core.aspects; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.After; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.ui.Model; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; - -import edu.asu.diging.vspace.core.auth.impl.AuthenticationFacade; -import edu.asu.diging.vspace.core.model.ExhibitionModes; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.IdPrefix; -import edu.asu.diging.vspace.core.model.impl.Exhibition; -import edu.asu.diging.vspace.core.model.impl.SpaceStatus; -import edu.asu.diging.vspace.core.services.IExhibitionManager; -import edu.asu.diging.vspace.core.services.IModuleManager; -import edu.asu.diging.vspace.core.services.ISpaceManager; - -@Component -@Aspect -public class ExhibitionDataAspect { - - @Autowired - private IExhibitionManager exhibitionManager; - - @Autowired - private ISpaceManager spaceManager; - - @Autowired - private IModuleManager moduleManager; - - @Autowired - private AuthenticationFacade authFacade; - - @After("execution(public * edu.asu.diging.vspace.web..*Controller.*(..))") - public void setExhibition(JoinPoint jp) { - Object[] args = jp.getArgs(); - MethodSignature signature = (MethodSignature) jp.getSignature(); - Class returnType = signature.getReturnType(); - // only if there is a model object injected and if we're returning a string - // (assuming that returning a string implies rendering of a view afterwards - if(args!=null && returnType==String.class) { - for(Object obj : args) { - if(obj instanceof Model && !(obj instanceof RedirectAttributes)) { - if(!((Model) obj).containsAttribute("exhibition")) { - ((Model) obj).addAttribute("exhibition", exhibitionManager.getStartExhibition()); - } - if (!((Model) obj).containsAttribute("publishedSpaces")) { - List publishedSpaces=spaceManager.getSpacesWithStatus(SpaceStatus.PUBLISHED); - /* (non-Javadoc) - * Added to show spaces with null status and accommodate existing spaces with null space status - */ - publishedSpaces.addAll(spaceManager.getSpacesWithStatus(null)); - ((Model) obj).addAttribute("publishedSpaces", publishedSpaces); - } - } - } - } - } - - @Around("execution(public * edu.asu.diging.vspace.web.publicview..*Controller.*(..))") - public Object showExhibition(ProceedingJoinPoint jp) throws Throwable { - Object[] args = jp.getArgs(); - MethodSignature signature = (MethodSignature) jp.getSignature(); - int indexOfModel = (Arrays.asList(signature.getParameterTypes())).indexOf(Model.class); - Exhibition exhibition = (Exhibition) exhibitionManager.getStartExhibition(); - // If there is no exhibition, we go back to root url page. - if(exhibition==null) { - return "redirect:/"; - } - //If no exhibition mode has been setup for existing exhibition, we skip modes and aspects. - if(exhibition.getMode() == null) { - return jp.proceed(); - } - Map ids = getIds(args, signature); - String spaceId = ids.getOrDefault(IdPrefix.SPACEID, ""); - String moduleId = ids.getOrDefault(IdPrefix.MODULEID, ""); - return redirectRequest(jp, spaceId, moduleId, indexOfModel, exhibition); - } - - - /** - * Based on exhibition mode, get the redirect page or pass control to controller. - * @param jp The joinpoint variable, used to fetch request parameters and proceed with the request. - * @param spaceId Current spaceId that is requested to be viewed by user. - * @param moduleId The moduleId that the user has requested to view. - * @param modelIndex Index of the model information in the reuest parameters. - * @param exhibition Current exhibition that is being shown to user. - * @return returns the page to load upon aspect completion. - * @throws Throwable - */ - private Object redirectRequest(ProceedingJoinPoint jp, String spaceId, String moduleId, int modelIndex, Exhibition exhibition) throws Throwable{ - ISpace space = spaceManager.getSpace(spaceId); - IModule module = moduleManager.getModule(moduleId); - Object[] args = jp.getArgs(); - ExhibitionModes exhibitionMode = exhibition.getMode(); - // If exhibition is set to offline, set the custom message or default message. - if(exhibitionMode.equals(ExhibitionModes.OFFLINE)) { - String modeValue = exhibition.getCustomMessage().equals("") == false ? exhibition.getCustomMessage() : exhibitionMode.getValue(); - ((Model) args[modelIndex]).addAttribute("modeValue", modeValue); - } - // If exhibition is set to maintenance, set the default message. - if(exhibitionMode.equals(ExhibitionModes.MAINTENANCE)) { - ((Model) args[modelIndex]).addAttribute("modeValue", exhibitionMode.getValue()); - } - // If user is not logged in and exhibition is not active, show maintenance page. - if(authFacade.getAuthenticatedUser()==null && !exhibitionMode.equals(ExhibitionModes.ACTIVE)) { - return "maintenance"; - } - // If the space and module Id is not found, show message on screen. - if(space==null && module==null) { - return "redirect:/exhibit/404"; - } - // If user is logged in and exhibition is not active, show exhibition with pop up message. - if(authFacade.getAuthenticatedUser()!=null && !exhibitionMode.equals(ExhibitionModes.ACTIVE)) { - return jp.proceed(); - } - return jp.proceed(); - } - - - /** - * Method to get the space or module id's from the request body. - * @param args The request parameters from the original request. - * @param signature Contains the information about the arguments present in args. - * @return A map with spaceId and moduleId from the request args. - */ - private Map getIds(Object[] args, MethodSignature signature) { - Map res = new HashMap<>(); - for(int i=0; i 2) { - String prefix = ((String) args[i]).substring(0,3); - if(prefix.equalsIgnoreCase(IdPrefix.SPACEID.getValue())) { - res.put(IdPrefix.SPACEID, (String) args[i]); - } - if(prefix.equalsIgnoreCase(IdPrefix.MODULEID.getValue())) { - res.put(IdPrefix.MODULEID, (String) args[i]); - } - } - } - } - return res; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/aspects/MetadataAspect.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/aspects/MetadataAspect.java deleted file mode 100644 index edc1ea335..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/aspects/MetadataAspect.java +++ /dev/null @@ -1,39 +0,0 @@ -package edu.asu.diging.vspace.core.aspects; - -import java.time.OffsetDateTime; - -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import edu.asu.diging.vspace.core.auth.IAuthenticationFacade; -import edu.asu.diging.vspace.core.model.IVSpaceElement; - -@Aspect -@Component -public class MetadataAspect { - - @Autowired - private IAuthenticationFacade authenticationFacade; - - //@Before("@target(org.springframework.stereotype.Repository)") - @Before("execution(public * org.springframework.data.repository.Repository+.save(..))") - private void setObjectMetadata(JoinPoint jp) { - // we know there is exactly one argument for the save method - Object arg = jp.getArgs()[0]; - if (arg instanceof IVSpaceElement) { - OffsetDateTime time = OffsetDateTime.now(); - String user = authenticationFacade.getAuthenticatedUser(); - ((IVSpaceElement)arg).setModifiedBy(user); - ((IVSpaceElement)arg).setModificationDate(time); - - // if this is a new object, store creation data - if (((IVSpaceElement) arg).getId() == null) { - ((IVSpaceElement)arg).setCreatedBy(user); - ((IVSpaceElement)arg).setCreationDate(time); - } - } - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/auth/IAuthenticationFacade.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/auth/IAuthenticationFacade.java deleted file mode 100644 index 5fb5ba838..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/auth/IAuthenticationFacade.java +++ /dev/null @@ -1,7 +0,0 @@ -package edu.asu.diging.vspace.core.auth; - -public interface IAuthenticationFacade { - - String getAuthenticatedUser(); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/auth/impl/AuthenticationFacade.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/auth/impl/AuthenticationFacade.java deleted file mode 100644 index 2a7f685bc..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/auth/impl/AuthenticationFacade.java +++ /dev/null @@ -1,24 +0,0 @@ -package edu.asu.diging.vspace.core.auth.impl; - -import org.springframework.security.authentication.AnonymousAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.stereotype.Component; - -import edu.asu.diging.vspace.core.auth.IAuthenticationFacade; - -@Component -public class AuthenticationFacade implements IAuthenticationFacade { - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.auth.impl.IAuthenticationFacade#getAuthentication() - */ - @Override - public String getAuthenticatedUser() { - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - if (!(authentication instanceof AnonymousAuthenticationToken)) { - return authentication.getName(); - } - return null; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/BranchingPointRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/BranchingPointRepository.java deleted file mode 100644 index 09c7af31b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/BranchingPointRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.BranchingPoint; - -@Repository -@JaversSpringDataAuditable -public interface BranchingPointRepository extends PagingAndSortingRepository { - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ChoiceContentBlockRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ChoiceContentBlockRepository.java deleted file mode 100644 index e005faf49..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ChoiceContentBlockRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.ChoiceBlock; - -@Repository -@JaversSpringDataAuditable -public interface ChoiceContentBlockRepository extends PagingAndSortingRepository { - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ChoiceRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ChoiceRepository.java deleted file mode 100644 index 95602a82e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ChoiceRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.Choice; - -@Repository -@JaversSpringDataAuditable -public interface ChoiceRepository extends PagingAndSortingRepository { - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ContentBlockRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ContentBlockRepository.java deleted file mode 100644 index aa93be030..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ContentBlockRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.ContentBlock; - -@Repository -@JaversSpringDataAuditable -public interface ContentBlockRepository extends PagingAndSortingRepository { - - @Query("SELECT max(contentOrder) FROM ContentBlock d WHERE d.slide.id = ?1") - public Integer findMaxContentOrder(String slideId); - - public List findBySlide_IdAndContentOrderGreaterThan(String slideId,Integer contentOrder); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExhibitionAboutPageRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExhibitionAboutPageRepository.java deleted file mode 100644 index 846190b1b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExhibitionAboutPageRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.ExhibitionAboutPage; - -@Repository -@JaversSpringDataAuditable -public interface ExhibitionAboutPageRepository extends PagingAndSortingRepository{ - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExhibitionRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExhibitionRepository.java deleted file mode 100644 index 5e3927c03..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExhibitionRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.Exhibition; - -@Repository -@JaversSpringDataAuditable -public interface ExhibitionRepository extends PagingAndSortingRepository { - - public List findAllByOrderByIdAsc(); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExternalLinkDisplayRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExternalLinkDisplayRepository.java deleted file mode 100644 index c91fbac33..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExternalLinkDisplayRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.display.IExternalLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.ExternalLinkDisplay; - -@Repository -@JaversSpringDataAuditable -public interface ExternalLinkDisplayRepository extends PagingAndSortingRepository { - - @Query("SELECT d FROM ExternalLinkDisplay d WHERE d.externalLink.space.id = ?1") - public List findExternalLinkDisplaysForSpace(String spaceId); - - public void deleteByExternalLink(IExternalLink link); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExternalLinkRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExternalLinkRepository.java deleted file mode 100644 index adc1f4495..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ExternalLinkRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.ExternalLink; - -@Repository -@JaversSpringDataAuditable -public interface ExternalLinkRepository extends PagingAndSortingRepository { - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/IdGenerator.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/IdGenerator.java deleted file mode 100644 index f305c33f0..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/IdGenerator.java +++ /dev/null @@ -1,30 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.io.Serializable; -import java.util.Properties; - -import org.hibernate.HibernateException; -import org.hibernate.MappingException; -import org.hibernate.engine.spi.SharedSessionContractImplementor; -import org.hibernate.id.Configurable; -import org.hibernate.id.IdentifierGenerator; -import org.hibernate.id.enhanced.SequenceStyleGenerator; -import org.hibernate.service.ServiceRegistry; -import org.hibernate.type.LongType; -import org.hibernate.type.Type; - -public class IdGenerator extends SequenceStyleGenerator implements IdentifierGenerator, Configurable { - - private String prefix; - - @Override - public void configure(Type type, Properties properties, ServiceRegistry sr) throws MappingException { - super.configure(LongType.INSTANCE, properties, sr); - prefix = properties.getProperty("prefix"); - } - - @Override - public Serializable generate(SharedSessionContractImplementor session, Object obj) throws HibernateException { - return prefix + String.format("%09d", super.generate(session, obj)); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ImageContentBlockRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ImageContentBlockRepository.java deleted file mode 100644 index 5f3be3f87..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ImageContentBlockRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.ImageBlock; - -@Repository -@JaversSpringDataAuditable -public interface ImageContentBlockRepository extends PagingAndSortingRepository { - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ImageRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ImageRepository.java deleted file mode 100644 index e60fd499b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ImageRepository.java +++ /dev/null @@ -1,28 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.ImageCategory; -import edu.asu.diging.vspace.core.model.impl.VSImage; - -@Repository -@JaversSpringDataAuditable -public interface ImageRepository extends PagingAndSortingRepository { - - List findByFilenameLikeOrNameLike(String filename, String name); - - List findByFilenameLike(String filename); - - Page findByCategories(Pageable pageable, ImageCategory category); - - List findByCategories(ImageCategory category); - - long countByCategories(ImageCategory category); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ModuleLinkRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ModuleLinkRepository.java deleted file mode 100644 index 9e8d2f3a3..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ModuleLinkRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.ModuleLink; - -@Repository -@JaversSpringDataAuditable -public interface ModuleLinkRepository extends PagingAndSortingRepository { - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ModuleRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ModuleRepository.java deleted file mode 100644 index f2a3f4dc3..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/ModuleRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.impl.Module; -import edu.asu.diging.vspace.core.model.impl.ModuleStatus; - -@Repository -@JaversSpringDataAuditable -public interface ModuleRepository extends PagingAndSortingRepository { - - List findTop5ByOrderByCreationDateDesc(); - - Page findDistinctByNameContainingOrDescriptionContaining(Pageable requestedPage, String name, - String description); - - List findAllByOrderByCreationDateDesc(); - - List findAllByModuleStatus(ModuleStatus moduleStatus); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SequenceRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SequenceRepository.java deleted file mode 100644 index bbf98338f..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SequenceRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.impl.Sequence; - -@Repository -@JaversSpringDataAuditable -public interface SequenceRepository extends PagingAndSortingRepository { - - @Query("SELECT d FROM Sequence d WHERE d.module.id = ?1") - public List findSequencesForModule(String moduleId); - - @Query("SELECT d FROM Sequence d WHERE d.module.id = ?1 and d.id = ?2") - public Sequence findSequenceForModuleAndSequence(String moduleId, String sequenceId); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SlideRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SlideRepository.java deleted file mode 100644 index 5ce307643..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SlideRepository.java +++ /dev/null @@ -1,29 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.impl.Sequence; -import edu.asu.diging.vspace.core.model.impl.Slide; - -@Repository -@JaversSpringDataAuditable -public interface SlideRepository extends PagingAndSortingRepository { - - @Query("SELECT d FROM Slide d WHERE d.module.id = ?1") - public List findSlidesForModule(String moduleId); - - @Query("SELECT d.sequence FROM Slide d WHERE d.id = ?1") - public List getSequencesForSlide(String slideId); - - Page findDistinctByNameContainingOrDescriptionContaining(Pageable requestedPage, String name, - String description); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SpaceLinkRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SpaceLinkRepository.java deleted file mode 100644 index 1e1ceba67..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SpaceLinkRepository.java +++ /dev/null @@ -1,39 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.ISpaceLink; -import edu.asu.diging.vspace.core.model.impl.SpaceLink; - -@Repository -@JaversSpringDataAuditable -public interface SpaceLinkRepository extends PagingAndSortingRepository { - - List findBySourceSpace(ISpace space); - - @Modifying - @Query("delete from SpaceLink where source_space_id = ?1") - void deleteBySourceSpaceId(String id); - - void deleteBySourceSpaceIdIsNull(); - - @Modifying - @Query("delete from SpaceLink where target_space_id = ?1") - void deleteByTargetSpaceId(String id); - - @Query("select d from SpaceLink d where d.sourceSpace.id = ?1") - List getLinkedSpaces(String id); - - List findByTargetSpace(ISpace space); - - List findBySourceSpaceIsNull(); - - Long countBySourceSpaceIsNull(); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SpaceRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SpaceRepository.java deleted file mode 100644 index 7107d36e2..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/SpaceRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.impl.Space; -import edu.asu.diging.vspace.core.model.impl.SpaceStatus; - -@Repository -@JaversSpringDataAuditable -public interface SpaceRepository extends PagingAndSortingRepository { - - List findTop5ByOrderByCreationDateDesc(); - - List findAllBySpaceStatus(SpaceStatus spaceStatus); - - List findAllByImageId(String imageId); - - Page findDistinctByNameContainingOrDescriptionContaining(Pageable requestedPage, String name, - String description); -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/TextContentBlockRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/TextContentBlockRepository.java deleted file mode 100644 index 24c64d7dc..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/TextContentBlockRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package edu.asu.diging.vspace.core.data; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.impl.TextBlock; - -@Repository -@JaversSpringDataAuditable -public interface TextContentBlockRepository extends PagingAndSortingRepository { - - @Query("SELECT DISTINCT c.slide FROM ContentBlock c, TextBlock t WHERE c.id = t.id AND t.text LIKE %?1%") - public Page findWithNameOrDescription(Pageable requestedPage, String searchText); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/ModuleLinkDisplayRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/ModuleLinkDisplayRepository.java deleted file mode 100644 index 61a99942b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/ModuleLinkDisplayRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package edu.asu.diging.vspace.core.data.display; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.display.IModuleLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.ModuleLinkDisplay; - -@Repository -@JaversSpringDataAuditable -public interface ModuleLinkDisplayRepository extends PagingAndSortingRepository { - - @Query("SELECT d FROM ModuleLinkDisplay d WHERE d.link.space.id = ?1") - public List findModuleLinkDisplaysForSpace(String spaceId); - - public void deleteByLink(IModuleLink link); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/SpaceDisplayRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/SpaceDisplayRepository.java deleted file mode 100644 index 7ca2eeffb..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/SpaceDisplayRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package edu.asu.diging.vspace.core.data.display; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.stereotype.Repository; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.display.impl.SpaceDisplay; - -@Repository -@JaversSpringDataAuditable -public interface SpaceDisplayRepository extends PagingAndSortingRepository { - - @Modifying - @Query("delete from SpaceDisplay where space_id = ?1") - void deleteBySpaceId(String id); - - public List getBySpace(ISpace space); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/SpaceLinkDisplayRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/SpaceLinkDisplayRepository.java deleted file mode 100644 index fa0af2f45..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/data/display/SpaceLinkDisplayRepository.java +++ /dev/null @@ -1,39 +0,0 @@ -package edu.asu.diging.vspace.core.data.display; - -import java.util.List; - -import org.javers.spring.annotation.JaversSpringDataAuditable; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.PagingAndSortingRepository; -import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; - -import edu.asu.diging.vspace.core.model.ISpaceLink; -import edu.asu.diging.vspace.core.model.display.ISpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.SpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.SpaceStatus; - -@Repository -@JaversSpringDataAuditable -public interface SpaceLinkDisplayRepository extends PagingAndSortingRepository { - - @Query("SELECT d FROM SpaceLinkDisplay d WHERE d.link.sourceSpace.id = ?1") - public List findSpaceLinkDisplaysForSpace(String spaceId); - - @Query("SELECT d FROM SpaceLinkDisplay d WHERE d.link.sourceSpace.id = ?1 AND (d.link.targetSpace.spaceStatus = ?2 OR d.link.targetSpace.spaceStatus is null)") - public List findSpaceLinksForGivenOrNullSpaceStatus(String spaceId, SpaceStatus spaceStatus); - - @Modifying - @Query("delete from SpaceLinkDisplay d where d.link.id in (:linkIds)") - void deleteByLinkId(@Param("linkIds") List linkId); - - @Modifying - @Query("delete from SpaceLinkDisplay d where d.link.id = ?1") - void deleteBySpaceLinkId(String spaceLinkId); - - public void deleteByLink(ISpaceLink space); - - public void deleteByLinkIn(List spaceLinks); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/BlockDoesNotExistException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/BlockDoesNotExistException.java deleted file mode 100644 index 4a7bd1efd..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/BlockDoesNotExistException.java +++ /dev/null @@ -1,42 +0,0 @@ -package edu.asu.diging.vspace.core.exception; - -public class BlockDoesNotExistException extends Exception { - - /** - * - */ - private static final long serialVersionUID = 1658241674303041454L; - - public BlockDoesNotExistException() { - super(); - // TODO Auto-generated constructor stub - } - - public BlockDoesNotExistException(String message, Throwable cause, boolean enableSuppression, - boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - // TODO Auto-generated constructor stub - } - - public BlockDoesNotExistException(String message, Throwable cause) { - super(message, cause); - // TODO Auto-generated constructor stub - } - - public BlockDoesNotExistException(String message) { - super(message); - // TODO Auto-generated constructor stub - } - - public BlockDoesNotExistException(Throwable cause) { - super(cause); - // TODO Auto-generated constructor stub - } - - - - - - - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/FileStorageException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/FileStorageException.java deleted file mode 100644 index 9983f3747..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/FileStorageException.java +++ /dev/null @@ -1,36 +0,0 @@ -package edu.asu.diging.vspace.core.exception; - -public class FileStorageException extends Exception { - - /** - * - */ - private static final long serialVersionUID = -8101455220203769866L; - - public FileStorageException() { - super(); - // TODO Auto-generated constructor stub - } - - public FileStorageException(String message, Throwable cause, boolean enableSuppression, - boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - // TODO Auto-generated constructor stub - } - - public FileStorageException(String message, Throwable cause) { - super(message, cause); - // TODO Auto-generated constructor stub - } - - public FileStorageException(String message) { - super(message); - // TODO Auto-generated constructor stub - } - - public FileStorageException(Throwable cause) { - super(cause); - // TODO Auto-generated constructor stub - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ImageCouldNotBeStoredException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ImageCouldNotBeStoredException.java deleted file mode 100644 index 54e4dab4a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ImageCouldNotBeStoredException.java +++ /dev/null @@ -1,36 +0,0 @@ -package edu.asu.diging.vspace.core.exception; - -public class ImageCouldNotBeStoredException extends Exception { - - /** - * - */ - private static final long serialVersionUID = 1L; - - public ImageCouldNotBeStoredException() { - super(); - // TODO Auto-generated constructor stub - } - - public ImageCouldNotBeStoredException(String message, Throwable cause, boolean enableSuppression, - boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - // TODO Auto-generated constructor stub - } - - public ImageCouldNotBeStoredException(String message, Throwable cause) { - super(message, cause); - // TODO Auto-generated constructor stub - } - - public ImageCouldNotBeStoredException(String message) { - super(message); - // TODO Auto-generated constructor stub - } - - public ImageCouldNotBeStoredException(Throwable cause) { - super(cause); - // TODO Auto-generated constructor stub - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ImageDoesNotExistException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ImageDoesNotExistException.java deleted file mode 100644 index 5c72d959d..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ImageDoesNotExistException.java +++ /dev/null @@ -1,36 +0,0 @@ -package edu.asu.diging.vspace.core.exception; - -public class ImageDoesNotExistException extends Exception { - - /** - * - */ - private static final long serialVersionUID = -6849852485214921351L; - - public ImageDoesNotExistException() { - super(); - // TODO Auto-generated constructor stub - } - - public ImageDoesNotExistException(String message, Throwable cause, boolean enableSuppression, - boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - // TODO Auto-generated constructor stub - } - - public ImageDoesNotExistException(String message, Throwable cause) { - super(message, cause); - // TODO Auto-generated constructor stub - } - - public ImageDoesNotExistException(String message) { - super(message); - // TODO Auto-generated constructor stub - } - - public ImageDoesNotExistException(Throwable cause) { - super(cause); - // TODO Auto-generated constructor stub - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/LinkDoesNotExistsException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/LinkDoesNotExistsException.java deleted file mode 100644 index 58602f6ca..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/LinkDoesNotExistsException.java +++ /dev/null @@ -1,26 +0,0 @@ -package edu.asu.diging.vspace.core.exception; - -public class LinkDoesNotExistsException extends Exception{ - private static final long serialVersionUID = 1L; - - public LinkDoesNotExistsException() { - super(); - } - - public LinkDoesNotExistsException(String message, Throwable cause, boolean enableSuppression, - boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } - - public LinkDoesNotExistsException(String message, Throwable cause) { - super(message, cause); - } - - public LinkDoesNotExistsException(String message) { - super(message); - } - - public LinkDoesNotExistsException(Throwable cause) { - super(cause); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ModuleDoesNotExistException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ModuleDoesNotExistException.java deleted file mode 100644 index 1850660e7..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/ModuleDoesNotExistException.java +++ /dev/null @@ -1,36 +0,0 @@ -package edu.asu.diging.vspace.core.exception; - -public class ModuleDoesNotExistException extends Exception { - - /** - * - */ - private static final long serialVersionUID = -5831237220255515528L; - - public ModuleDoesNotExistException() { - super(); - // TODO Auto-generated constructor stub - } - - public ModuleDoesNotExistException(String message, Throwable cause, boolean enableSuppression, - boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - // TODO Auto-generated constructor stub - } - - public ModuleDoesNotExistException(String message, Throwable cause) { - super(message, cause); - // TODO Auto-generated constructor stub - } - - public ModuleDoesNotExistException(String message) { - super(message); - // TODO Auto-generated constructor stub - } - - public ModuleDoesNotExistException(Throwable cause) { - super(cause); - // TODO Auto-generated constructor stub - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SlideDoesNotExistException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SlideDoesNotExistException.java deleted file mode 100644 index 23f77ef81..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SlideDoesNotExistException.java +++ /dev/null @@ -1,30 +0,0 @@ -package edu.asu.diging.vspace.core.exception; - -public class SlideDoesNotExistException extends Exception { - - /** - * - */ - private static final long serialVersionUID = -6849852485214921351L; - - public SlideDoesNotExistException() { - super(); - } - - public SlideDoesNotExistException(String message, Throwable cause, boolean enableSuppression, - boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } - - public SlideDoesNotExistException(String message, Throwable cause) { - super(message, cause); - } - - public SlideDoesNotExistException(String message) { - super(message); - } - - public SlideDoesNotExistException(Throwable cause) { - super(cause); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SpaceDoesNotExistException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SpaceDoesNotExistException.java deleted file mode 100644 index 6b95c8d3e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SpaceDoesNotExistException.java +++ /dev/null @@ -1,36 +0,0 @@ -package edu.asu.diging.vspace.core.exception; - -public class SpaceDoesNotExistException extends Exception { - - /** - * - */ - private static final long serialVersionUID = -6849852485214921351L; - - public SpaceDoesNotExistException() { - super(); - // TODO Auto-generated constructor stub - } - - public SpaceDoesNotExistException(String message, Throwable cause, boolean enableSuppression, - boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - // TODO Auto-generated constructor stub - } - - public SpaceDoesNotExistException(String message, Throwable cause) { - super(message, cause); - // TODO Auto-generated constructor stub - } - - public SpaceDoesNotExistException(String message) { - super(message); - // TODO Auto-generated constructor stub - } - - public SpaceDoesNotExistException(Throwable cause) { - super(cause); - // TODO Auto-generated constructor stub - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SpaceLinkDoesNotExistException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SpaceLinkDoesNotExistException.java deleted file mode 100644 index b6f72029b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/exception/SpaceLinkDoesNotExistException.java +++ /dev/null @@ -1,28 +0,0 @@ -package edu.asu.diging.vspace.core.exception; - -public class SpaceLinkDoesNotExistException extends Exception { - - private static final long serialVersionUID = 1L; - - public SpaceLinkDoesNotExistException() { - super(); - } - - public SpaceLinkDoesNotExistException(String message, Throwable cause, boolean enableSuppression, - boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } - - public SpaceLinkDoesNotExistException(String message, Throwable cause) { - super(message, cause); - } - - public SpaceLinkDoesNotExistException(String message) { - super(message); - } - - public SpaceLinkDoesNotExistException(Throwable cause) { - super(cause); - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IChoiceBlockFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IChoiceBlockFactory.java deleted file mode 100644 index 83d2138ee..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IChoiceBlockFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.IChoice; -import edu.asu.diging.vspace.core.model.IChoiceBlock; -import edu.asu.diging.vspace.core.model.ISlide; - -public interface IChoiceBlockFactory { - - IChoiceBlock createChoiceBlock(ISlide slide, Integer contentOrder, List choices, boolean showsAll); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IChoiceFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IChoiceFactory.java deleted file mode 100644 index b303096ca..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IChoiceFactory.java +++ /dev/null @@ -1,11 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.IChoice; - -public interface IChoiceFactory { - - List createChoices(List choices); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExhibitionFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExhibitionFactory.java deleted file mode 100644 index c5d9218bc..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExhibitionFactory.java +++ /dev/null @@ -1,9 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.IExhibition; - -public interface IExhibitionFactory { - - IExhibition createExhibition(); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExternalLinkDisplayFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExternalLinkDisplayFactory.java deleted file mode 100644 index ad1bf203e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExternalLinkDisplayFactory.java +++ /dev/null @@ -1,9 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.display.IExternalLinkDisplay; - -public interface IExternalLinkDisplayFactory { - - IExternalLinkDisplay createExternalLinkDisplay(IExternalLink link); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExternalLinkFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExternalLinkFactory.java deleted file mode 100644 index c45dcc27d..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IExternalLinkFactory.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.ISpace; - -public interface IExternalLinkFactory { - - IExternalLink createExternalLink(String title, ISpace space); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IImageBlockFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IImageBlockFactory.java deleted file mode 100644 index 99f383200..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IImageBlockFactory.java +++ /dev/null @@ -1,11 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.IImageBlock; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.IVSImage; - -public interface IImageBlockFactory { - - IImageBlock createImageBlock(ISlide slide, IVSImage image); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IImageFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IImageFactory.java deleted file mode 100644 index 82756491c..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IImageFactory.java +++ /dev/null @@ -1,9 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.IVSImage; - -public interface IImageFactory { - - IVSImage createImage(String filename, String fileType); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleFactory.java deleted file mode 100644 index f1ab340ef..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleFactory.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.web.staff.forms.ModuleForm; - -public interface IModuleFactory { - - IModule createModule(ModuleForm form); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleLinkDisplayFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleLinkDisplayFactory.java deleted file mode 100644 index b69232f8e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleLinkDisplayFactory.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.display.IModuleLinkDisplay; - -public interface IModuleLinkDisplayFactory { - - IModuleLinkDisplay createModuleLinkDisplay(IModuleLink link); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleLinkFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleLinkFactory.java deleted file mode 100644 index 81c92122f..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/IModuleLinkFactory.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.ISpace; - -public interface IModuleLinkFactory { - - IModuleLink createModuleLink(String title, ISpace space); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISequenceFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISequenceFactory.java deleted file mode 100644 index 1428bb569..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISequenceFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.web.staff.forms.SequenceForm; - -public interface ISequenceFactory { - - ISequence createSequence(IModule module, SequenceForm sequenceForm, List slides); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISlideFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISlideFactory.java deleted file mode 100644 index 20a865b05..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISlideFactory.java +++ /dev/null @@ -1,12 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.display.SlideType; -import edu.asu.diging.vspace.web.staff.forms.SlideForm; - -public interface ISlideFactory { - - ISlide createSlide(IModule module, SlideForm form, SlideType type); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceDisplayFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceDisplayFactory.java deleted file mode 100644 index 8f9450222..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceDisplayFactory.java +++ /dev/null @@ -1,9 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.display.ISpaceDisplay; - -public interface ISpaceDisplayFactory { - - ISpaceDisplay createSpaceDisplay(); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceFactory.java deleted file mode 100644 index ac5cbd904..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceFactory.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.web.staff.forms.SpaceForm; - -public interface ISpaceFactory { - - ISpace createSpace(SpaceForm form); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceLinkDisplayFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceLinkDisplayFactory.java deleted file mode 100644 index 0d111344e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceLinkDisplayFactory.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.ISpaceLink; -import edu.asu.diging.vspace.core.model.display.ISpaceLinkDisplay; - -public interface ISpaceLinkDisplayFactory { - - ISpaceLinkDisplay createSpaceLinkDisplay(ISpaceLink link); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceLinkFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceLinkFactory.java deleted file mode 100644 index 9bfc8b969..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ISpaceLinkFactory.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.ISpaceLink; - -public interface ISpaceLinkFactory { - - ISpaceLink createSpaceLink(String title, ISpace source); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ITextBlockFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ITextBlockFactory.java deleted file mode 100644 index 430fd1d78..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/ITextBlockFactory.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.factory; - -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.ITextBlock; - -public interface ITextBlockFactory { - - ITextBlock createTextBlock(ISlide slide, String text); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ChoiceBlockFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ChoiceBlockFactory.java deleted file mode 100644 index 36b5587ef..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ChoiceBlockFactory.java +++ /dev/null @@ -1,31 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import java.util.List; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IChoiceBlockFactory; -import edu.asu.diging.vspace.core.model.IChoice; -import edu.asu.diging.vspace.core.model.IChoiceBlock; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.impl.ChoiceBlock; - -@Service -public class ChoiceBlockFactory implements IChoiceBlockFactory { - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.factory.impl.IChoiceBlockFactory#createChoiceBlock(edu.asu.diging.vspace.core.model.impl.ISlide, java.lang.Integer, - * edu.asu.diging.vspace.core.model.impl.IChoice) - */ - @Override - public IChoiceBlock createChoiceBlock(ISlide slide, Integer contentOrder, List choices, boolean showsAll) { - IChoiceBlock choiceBlock = new ChoiceBlock(); - choiceBlock.setSlide(slide); - choiceBlock.setContentOrder(contentOrder); - choiceBlock.setShowsAll(showsAll); - if(!showsAll) { - choiceBlock.setChoices(choices); - } - return choiceBlock; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ChoiceFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ChoiceFactory.java deleted file mode 100644 index bfaf49a9d..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ChoiceFactory.java +++ /dev/null @@ -1,32 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import java.util.List; -import java.util.stream.Collectors; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IChoiceFactory; -import edu.asu.diging.vspace.core.model.IChoice; -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.core.model.impl.Choice; -import edu.asu.diging.vspace.core.services.ISequenceManager; - -@Service -public class ChoiceFactory implements IChoiceFactory { - - @Autowired - private ISequenceManager sequenceManager; - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.factory.impl.IChoiceFactory#createChoices(java.util.List) - */ - @Override - public List createChoices(List sequenceIds) { - List sequences=sequenceIds.stream().map(sequenceId->sequenceManager.getSequence(sequenceId)).collect(Collectors.toList()); - return sequences.stream().map(sequence -> new Choice(sequence)).collect(Collectors.toList()); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExhibitionFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExhibitionFactory.java deleted file mode 100644 index 7b982ba2d..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExhibitionFactory.java +++ /dev/null @@ -1,22 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IExhibitionFactory; -import edu.asu.diging.vspace.core.model.IExhibition; -import edu.asu.diging.vspace.core.model.impl.Exhibition; - -@Service -public class ExhibitionFactory implements IExhibitionFactory { - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.Exhibition - */ - @Override - public IExhibition createExhibition() { - return new Exhibition(); - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExternalLinkDisplayFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExternalLinkDisplayFactory.java deleted file mode 100644 index 89a972ed8..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExternalLinkDisplayFactory.java +++ /dev/null @@ -1,25 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IExternalLinkDisplayFactory; -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.display.IExternalLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.ExternalLinkDisplay; - -@Service -public class ExternalLinkDisplayFactory implements IExternalLinkDisplayFactory { - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.factory.impl.IExternalLinkDisplayFactory# - * createExternalLinkDisplay(edu.asu.diging.vspace.core.model.IExternalLink) - */ - @Override - public IExternalLinkDisplay createExternalLinkDisplay(IExternalLink link) { - IExternalLinkDisplay display = new ExternalLinkDisplay(); - display.setExternalLink(link); - return display; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExternalLinkFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExternalLinkFactory.java deleted file mode 100644 index 14b68b41a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ExternalLinkFactory.java +++ /dev/null @@ -1,26 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IExternalLinkFactory; -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.impl.ExternalLink; - -@Service -public class ExternalLinkFactory implements IExternalLinkFactory { - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.factory.impl.IExternalLinkFactory# - * createExternalLink(java.lang.String, edu.asu.diging.vspace.core.model.ISpace) - */ - @Override - public IExternalLink createExternalLink(String title, ISpace space) { - IExternalLink link = new ExternalLink(); - link.setName(title); - link.setSpace(space); - return link; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ImageBlockFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ImageBlockFactory.java deleted file mode 100644 index 8650cbcc3..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ImageBlockFactory.java +++ /dev/null @@ -1,30 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IImageBlockFactory; -import edu.asu.diging.vspace.core.model.IImageBlock; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.impl.ImageBlock; - -@Service -public class ImageBlockFactory implements IImageBlockFactory { - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.factory.impl.IImageBlockFactory#createImageBlock( - * edu.asu.diging.vspace.core.model.ISlide, - * edu.asu.diging.vspace.core.model.IVSImage) - */ - @Override - public IImageBlock createImageBlock(ISlide slide, IVSImage image) { - IImageBlock imageBlock = new ImageBlock(); - imageBlock.setImage(image); - imageBlock.setSlide(slide); - - return imageBlock; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ImageFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ImageFactory.java deleted file mode 100644 index 877758567..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ImageFactory.java +++ /dev/null @@ -1,28 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IImageFactory; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.impl.VSImage; - -@Service -public class ImageFactory implements IImageFactory { - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.factory.impl.IImageFactory#createImage(java.lang. - * String, java.lang.String) - */ - @Override - public IVSImage createImage(String filename, String fileType) { - IVSImage image = new VSImage(); - image.setFilename(filename); - image.setFileType(fileType); - return image; - } - - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleFactory.java deleted file mode 100644 index 1d5422f0f..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IModuleFactory; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.impl.Module; -import edu.asu.diging.vspace.web.staff.forms.ModuleForm; - -@Service -public class ModuleFactory implements IModuleFactory { - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.factory.impl.IModuleFactory#createModule(edu.asu.diging.vspace.web.staff.forms.ModuleForm) - */ - @Override - public IModule createModule(ModuleForm form) { - IModule module = new Module(); - module.setName(form.getName()); - module.setDescription(form.getDescription()); - return module; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleLinkDisplayFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleLinkDisplayFactory.java deleted file mode 100644 index 57b9621f8..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleLinkDisplayFactory.java +++ /dev/null @@ -1,25 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IModuleLinkDisplayFactory; -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.display.IModuleLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.ModuleLinkDisplay; - -@Service -public class ModuleLinkDisplayFactory implements IModuleLinkDisplayFactory { - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.factory.impl.IModuleLinkDisplayFactory# - * createModuleLinkDisplay(edu.asu.diging.vspace.core.model.IModuleLink) - */ - @Override - public IModuleLinkDisplay createModuleLinkDisplay(IModuleLink link) { - IModuleLinkDisplay display = new ModuleLinkDisplay(); - display.setLink(link); - return display; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleLinkFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleLinkFactory.java deleted file mode 100644 index a6e66050e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/ModuleLinkFactory.java +++ /dev/null @@ -1,28 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IModuleLinkFactory; -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.impl.ModuleLink; - -@Service -public class ModuleLinkFactory implements IModuleLinkFactory { - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.factory.impl.IModuleLinkFactory#createModuleLink( - * java.lang.String, edu.asu.diging.vspace.core.model.ISpace) - */ - @Override - public IModuleLink createModuleLink(String title, ISpace space) { - IModuleLink link = new ModuleLink(); - link.setName(title); - link.setSpace(space); - return link; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SequenceFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SequenceFactory.java deleted file mode 100644 index ceab01523..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SequenceFactory.java +++ /dev/null @@ -1,32 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import java.util.List; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.ISequenceFactory; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.impl.Sequence; -import edu.asu.diging.vspace.web.staff.forms.SequenceForm; - -@Service -public class SequenceFactory implements ISequenceFactory{ - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.factory.impl.IImageFactory#createImage(edu.asu.diging.vspace.core.model.IModule, - * edu.asu.diging.vspace.web.staff.forms.SequenceForm, java.util.list) - */ - @Override - public ISequence createSequence(IModule module, SequenceForm sequenceForm, List slides) { - ISequence sequence = new Sequence(); - sequence.setName(sequenceForm.getName()); - sequence.setDescription(sequenceForm.getDescription()); - sequence.setSlides(slides); - sequence.setModule(module); - return sequence; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SlideFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SlideFactory.java deleted file mode 100644 index 139e401cf..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SlideFactory.java +++ /dev/null @@ -1,50 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import java.util.ArrayList; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.IChoiceFactory; -import edu.asu.diging.vspace.core.factory.ISlideFactory; -import edu.asu.diging.vspace.core.model.IBranchingPoint; -import edu.asu.diging.vspace.core.model.IChoice; -import edu.asu.diging.vspace.core.model.IContentBlock; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.display.SlideType; -import edu.asu.diging.vspace.core.model.impl.BranchingPoint; -import edu.asu.diging.vspace.core.model.impl.Slide; -import edu.asu.diging.vspace.web.staff.forms.SlideForm; - -@Service -public class SlideFactory implements ISlideFactory { - - @Autowired - private IChoiceFactory choiceFactory; - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.factory.impl.ISlideFactory#createSlide(edu.asu.diging.vspace.core.model.IModule, edu.asu.diging.vspace.web.staff.forms.SlideForm) - */ - @Override - public ISlide createSlide(IModule module, SlideForm form, SlideType type) { - - ISlide slide; - if(type.equals(SlideType.SLIDE)) { - slide = new Slide(); - } else { - slide = new BranchingPoint(); - List choices = choiceFactory.createChoices(form.getChoices()); - ((IBranchingPoint) slide).setChoices(choices); - } - slide.setName(form.getName()); - slide.setDescription(form.getDescription()); - slide.setModule(module); - slide.setContents(new ArrayList()); - return slide; - } -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceDisplayFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceDisplayFactory.java deleted file mode 100644 index 3e7a7e97d..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceDisplayFactory.java +++ /dev/null @@ -1,15 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Component; - -import edu.asu.diging.vspace.core.factory.ISpaceDisplayFactory; -import edu.asu.diging.vspace.core.model.display.ISpaceDisplay; -import edu.asu.diging.vspace.core.model.display.impl.SpaceDisplay; - -@Component -public class SpaceDisplayFactory implements ISpaceDisplayFactory { - - public ISpaceDisplay createSpaceDisplay() { - return new SpaceDisplay(); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceFactory.java deleted file mode 100644 index 373769f59..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.ISpaceFactory; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.impl.Space; -import edu.asu.diging.vspace.web.staff.forms.SpaceForm; - -@Service -public class SpaceFactory implements ISpaceFactory { - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.factory.impl.ISpaceFactory#createSpace(edu.asu.diging.vspace.web.staff.forms.SpaceForm) - */ - @Override - public ISpace createSpace(SpaceForm form) { - ISpace space = new Space(); - space.setName(form.getName()); - space.setDescription(form.getDescription()); - return space; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceLinkDisplayFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceLinkDisplayFactory.java deleted file mode 100644 index bf3a853d7..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceLinkDisplayFactory.java +++ /dev/null @@ -1,25 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.ISpaceLinkDisplayFactory; -import edu.asu.diging.vspace.core.model.ISpaceLink; -import edu.asu.diging.vspace.core.model.display.ISpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.SpaceLinkDisplay; - -@Service -public class SpaceLinkDisplayFactory implements ISpaceLinkDisplayFactory { - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.factory.impl.ISpaceLinkDisplayFactory# - * createSpaceLinkDisplay(edu.asu.diging.vspace.core.model.ISpaceLink) - */ - @Override - public ISpaceLinkDisplay createSpaceLinkDisplay(ISpaceLink link) { - ISpaceLinkDisplay display = new SpaceLinkDisplay(); - display.setLink(link); - return display; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceLinkFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceLinkFactory.java deleted file mode 100644 index 08021a5ab..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/SpaceLinkFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.ISpaceLinkFactory; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.ISpaceLink; -import edu.asu.diging.vspace.core.model.impl.SpaceLink; - -@Service -public class SpaceLinkFactory implements ISpaceLinkFactory { - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.factory.impl.ISpaceLinkFactory#createSpaceLink(java.lang.String, edu.asu.diging.vspace.core.model.ISpace) - */ - @Override - public ISpaceLink createSpaceLink(String title, ISpace source) { - ISpaceLink link = new SpaceLink(); - link.setName(title); - link.setSourceSpace(source); - return link; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/TextBlockFactory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/TextBlockFactory.java deleted file mode 100644 index c7de3e291..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/factory/impl/TextBlockFactory.java +++ /dev/null @@ -1,29 +0,0 @@ -package edu.asu.diging.vspace.core.factory.impl; - -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.factory.ITextBlockFactory; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.ITextBlock; -import edu.asu.diging.vspace.core.model.impl.TextBlock; - -@Service -public class TextBlockFactory implements ITextBlockFactory { - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.factory.impl.ITextBlockFactory#createTextBlock( - * java.lang.String, java.lang.String) - */ - @Override - public ITextBlock createTextBlock(ISlide slide, String text) { - ITextBlock textBlock = new TextBlock(); - textBlock.setText(text); - textBlock.setSlide(slide); - - return textBlock; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/file/IStorageEngine.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/file/IStorageEngine.java deleted file mode 100644 index 7167ccf40..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/file/IStorageEngine.java +++ /dev/null @@ -1,15 +0,0 @@ -package edu.asu.diging.vspace.core.file; - -import java.io.IOException; - -import edu.asu.diging.vspace.core.exception.FileStorageException; -import edu.asu.diging.vspace.core.model.IVSImage; - -public interface IStorageEngine { - - String storeFile(byte[] fileContent, String filename, String directory) throws FileStorageException; - - byte[] getImageContent(String directory, String filename) throws IOException; - - boolean renameImage(IVSImage image, String newFileName); -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/file/impl/StorageEngine.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/file/impl/StorageEngine.java deleted file mode 100644 index a37a4f3b3..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/file/impl/StorageEngine.java +++ /dev/null @@ -1,92 +0,0 @@ -package edu.asu.diging.vspace.core.file.impl; - -import java.io.BufferedOutputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URLConnection; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.PropertySource; -import org.springframework.stereotype.Component; - -import edu.asu.diging.vspace.core.exception.FileStorageException; -import edu.asu.diging.vspace.core.file.IStorageEngine; -import edu.asu.diging.vspace.core.model.IVSImage; - -@Component -@PropertySource({"classpath:config.properties", "${appConfigFile:classpath:}/app.properties"}) -public class StorageEngine implements IStorageEngine { - - @Value("${uploads_path}") - private String path; - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.file.impl.IStorageEngine#storeFile(byte[], java.lang.String, java.lang.String) - */ - @Override - public String storeFile(byte[] fileContent, String filename, String directory) throws FileStorageException { - File parent = new File(path + File.separator + directory); - if (!parent.exists()) { - parent.mkdir(); - } - File file = new File(parent.getAbsolutePath() + File.separator + filename); - BufferedOutputStream stream; - try { - stream = new BufferedOutputStream(new FileOutputStream(file)); - } catch (FileNotFoundException e) { - throw new FileStorageException("Could not store file.", e); - } - try { - stream.write(fileContent); - stream.close(); - } catch (IOException e) { - throw new FileStorageException("Could not store file.", e); - } - - return directory; - } - - @Override - public byte[] getImageContent(String directory, String filename) throws IOException { - File fileObject = new File(path + File.separator + directory + File.separator + filename); - URLConnection con = fileObject.toURI().toURL().openConnection(); - - InputStream input = con.getInputStream(); - - byte[] buffer = new byte[4096]; - - ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); - BufferedOutputStream output = new BufferedOutputStream(byteOutput); - - int n = -1; - while ((n = input.read(buffer)) != -1) { - output.write(buffer, 0, n); - } - input.close(); - output.flush(); - output.close(); - - byteOutput.flush(); - byte[] bytes = byteOutput.toByteArray(); - byteOutput.close(); - return bytes; - } - - /** - * Method to rename image - * - * @param image - image file - * @param newFileName - new name of the file - * @return true if file renaming was successful, otherwise return false - */ - @Override - public boolean renameImage(IVSImage image, String newFileName) { - File currentFile = new File(path + File.separator + image.getId() + File.separator + image.getFilename()); - File renamedFile = new File(path + File.separator + image.getId() + File.separator + newFileName); - return currentFile.renameTo(renamedFile); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ExhibitionModes.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ExhibitionModes.java deleted file mode 100644 index 861781065..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ExhibitionModes.java +++ /dev/null @@ -1,21 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.util.ArrayList; -import java.util.List; - -public enum ExhibitionModes { - - ACTIVE(""), - MAINTENANCE("This exhibition is currently under maintenance. Please check back later."), - OFFLINE("This exhibition is currently offline. Please check back later."); - - private final String value; - - private ExhibitionModes(String value) { - this.value = value; - } - - public String getValue() { - return value; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IBranchingPoint.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IBranchingPoint.java deleted file mode 100644 index 700454c76..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IBranchingPoint.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.util.List; - -public interface IBranchingPoint extends ISlide { - - List getChoices(); - - void setChoices(List choices); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IChoice.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IChoice.java deleted file mode 100644 index d5eaeb76b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IChoice.java +++ /dev/null @@ -1,9 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface IChoice extends IVSpaceElement { - - ISequence getSequence(); - - void setSequence(ISequence link); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IChoiceBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IChoiceBlock.java deleted file mode 100644 index bb1076ea6..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IChoiceBlock.java +++ /dev/null @@ -1,15 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.util.List; - -public interface IChoiceBlock extends IContentBlock { - - List getChoices(); - - void setChoices(List choices); - - void setShowsAll(boolean showsAll); - - boolean isShowsAll(); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IContentBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IContentBlock.java deleted file mode 100644 index ee804715c..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IContentBlock.java +++ /dev/null @@ -1,17 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface IContentBlock extends IVSpaceElement { - - String getId(); - - void setId(String id); - - void setSlide(ISlide slide); - - ISlide getSlide(); - - Integer getContentOrder(); - - void setContentOrder(Integer contentOrder); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IExhibition.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IExhibition.java deleted file mode 100644 index 8c080242c..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IExhibition.java +++ /dev/null @@ -1,25 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface IExhibition extends IVSpaceElement { - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISpacee#getSpace() - */ - ISpace getStartSpace(); - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.ISpacee#setSpace(edu.asu.diging.vspace. - * core.model.impl.Space) - */ - void setStartSpace(ISpace space); - - void setTitle(String title); - - String getTitle(); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IExternalLink.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IExternalLink.java deleted file mode 100644 index 7da4c79c8..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IExternalLink.java +++ /dev/null @@ -1,15 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import edu.asu.diging.vspace.core.model.impl.ExternalLinkValue; - -public interface IExternalLink extends ILink { - - ISpace getSpace(); - - void setSpace(ISpace space); - - String getExternalLink(); - - void setExternalLink(String externalLink); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IImageBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IImageBlock.java deleted file mode 100644 index ef0cb77e6..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IImageBlock.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface IImageBlock extends IContentBlock { - - void setImage(IVSImage image); - - IVSImage getImage(); - - void setId(String id); - - String getId(); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ILink.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ILink.java deleted file mode 100644 index 20a4c19a6..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ILink.java +++ /dev/null @@ -1,12 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface ILink extends IVSpaceElement{ - - ISpace getSpace(); - - void setSpace(ISpace space); - - T getTarget(); - - void setTarget(T target); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IModule.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IModule.java deleted file mode 100644 index 19fc55486..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IModule.java +++ /dev/null @@ -1,24 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.impl.ModuleStatus; - -public interface IModule extends IVSpaceElement { - - List getSlides(); - - void setSlides(List slides); - - List getSequences(); - - void setSequences(List sequence); - - ISequence getStartSequence(); - - void setStartSequence(ISequence startSequence); - - void setModuleStatus(ModuleStatus status); - ModuleStatus getModuleStatus(); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IModuleLink.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IModuleLink.java deleted file mode 100644 index abbd35e48..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IModuleLink.java +++ /dev/null @@ -1,8 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface IModuleLink extends ILink { - - IModule getModule(); - - void setModule(IModule module); -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IPrefix.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IPrefix.java deleted file mode 100644 index cfe2f2a32..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IPrefix.java +++ /dev/null @@ -1,7 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface IPrefix { - - public static String SPACE_PREFIX = "SPA"; - public static String MODULE_PREFIX = "MOD"; -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISequence.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISequence.java deleted file mode 100644 index f37b04028..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISequence.java +++ /dev/null @@ -1,14 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.util.List; - -public interface ISequence extends IVSpaceElement { - - void setModule(IModule module); - - IModule getModule(); - - List getSlides(); - - void setSlides(List slides); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISlide.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISlide.java deleted file mode 100644 index 59985eee6..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISlide.java +++ /dev/null @@ -1,18 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.util.List; - -public interface ISlide extends IVSpaceElement { - - void setModule(IModule module); - - IModule getModule(); - - void setContents(List contents); - - List getContents(); - - IImageBlock getFirstImageBlock(); - - ITextBlock getFirstMatchedTextBlock(String searchTerm); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISpace.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISpace.java deleted file mode 100644 index 9debb13ad..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISpace.java +++ /dev/null @@ -1,37 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.impl.SpaceStatus; - -public interface ISpace extends IVSpaceElement { - - List getSpaceLinks(); - - void setSpaceLinks(List spaceLinks); - - List getModuleLinks(); - - void setModuleLinks(List moduleLinks); - - List getExternalLinks(); - - void setExternalLinks(List externalLinks); - - IVSImage getImage(); - - void setImage(IVSImage image); - - SpaceStatus getSpaceStatus(); - - void setSpaceStatus(SpaceStatus status); - - boolean isShowUnpublishedLinks(); - - boolean isHideIncomingLinks(); - - void setShowUnpublishedLinks(Boolean showUnpublishedLinks); - - void setHideIncomingLinks(boolean hideIncomingLinks); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISpaceLink.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISpaceLink.java deleted file mode 100644 index 786a7f3d1..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ISpaceLink.java +++ /dev/null @@ -1,13 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface ISpaceLink extends ILink { - - ISpace getSourceSpace(); - - void setSourceSpace(ISpace sourceSpace); - - ISpace getTargetSpace(); - - void setTargetSpace(ISpace targetSpace); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ITag.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ITag.java deleted file mode 100644 index 877e77e85..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ITag.java +++ /dev/null @@ -1,9 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface ITag extends IVSpaceElement { - - String getId(); - - void setId(String id); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ITextBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ITextBlock.java deleted file mode 100644 index b86e08556..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ITextBlock.java +++ /dev/null @@ -1,15 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public interface ITextBlock extends IContentBlock { - - void setText(String text); - - String getText(); - - void setId(String id); - - String getId(); - - String htmlRenderedText(); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IVSImage.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IVSImage.java deleted file mode 100644 index 9220a2cd1..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IVSImage.java +++ /dev/null @@ -1,35 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.util.List; - -public interface IVSImage extends IVSpaceElement { - - String getFilename(); - - void setFilename(String filename); - - String getParentPath(); - - void setParentPath(String parentPath); - - void setFileType(String fileType); - - String getFileType(); - - void setWidth(int width); - - int getWidth(); - - void setHeight(int height); - - int getHeight(); - - void setCategories(List categories); - - List getCategories(); - - void setTags(List tags); - - List getTags(); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IVSpaceElement.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IVSpaceElement.java deleted file mode 100644 index 1544182a7..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IVSpaceElement.java +++ /dev/null @@ -1,35 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.time.OffsetDateTime; - -public interface IVSpaceElement { - - String getId(); - - void setId(String id); - - String getName(); - - void setName(String name); - - String getDescription(); - - void setDescription(String description); - - String getCreatedBy(); - - void setCreatedBy(String createdBy); - - OffsetDateTime getCreationDate(); - - void setCreationDate(OffsetDateTime creationDate); - - String getModifiedBy(); - - void setModifiedBy(String modifiedBy); - - OffsetDateTime getModificationDate(); - - void setModificationDate(OffsetDateTime modificationDate); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IdPrefix.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IdPrefix.java deleted file mode 100644 index 9549aba96..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/IdPrefix.java +++ /dev/null @@ -1,17 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public enum IdPrefix { - - SPACEID(IPrefix.SPACE_PREFIX), - MODULEID(IPrefix.MODULE_PREFIX); - - private final String value; - - private IdPrefix(String value) { - this.value = value; - } - - public String getValue() { - return value; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ImageCategory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ImageCategory.java deleted file mode 100644 index 747acfe90..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/ImageCategory.java +++ /dev/null @@ -1,7 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -public enum ImageCategory { - SPACE_BACKGROUND_IMAGE, - SLIDE_IMAGE, - LINK_IMAGE; -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/SortByField.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/SortByField.java deleted file mode 100644 index 9c16bb9d3..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/SortByField.java +++ /dev/null @@ -1,26 +0,0 @@ -package edu.asu.diging.vspace.core.model; - -import java.util.ArrayList; -import java.util.List; - -public enum SortByField { - CREATION_DATE("creationDate"), FILENAME("filename"), NAME("name"), CREATED_BY("createdBy"); - - private final String value; - - private SortByField(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static List getAllValues() { - List allValues = new ArrayList<>(); - for(SortByField sbf : SortByField.values()) { - allValues.add(sbf.getValue()); - } - return allValues; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/DisplayType.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/DisplayType.java deleted file mode 100644 index b1cfefb48..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/DisplayType.java +++ /dev/null @@ -1,6 +0,0 @@ -package edu.asu.diging.vspace.core.model.display; - -public enum DisplayType { - - ARROW, ALERT, IMAGE, MODULE; -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ExternalLinkDisplayMode.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ExternalLinkDisplayMode.java deleted file mode 100644 index 7ad450068..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ExternalLinkDisplayMode.java +++ /dev/null @@ -1,16 +0,0 @@ -package edu.asu.diging.vspace.core.model.display; - -public enum ExternalLinkDisplayMode { - - NEWWINDOW("NEWWINDOW"),SAMEWINDOW("SAMEWINDOW"); - - private final String value; - - private ExternalLinkDisplayMode(String value) { - this.value = value; - } - - public String getValue() { - return value; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/IExternalLinkDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/IExternalLinkDisplay.java deleted file mode 100644 index ba2974ced..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/IExternalLinkDisplay.java +++ /dev/null @@ -1,14 +0,0 @@ -package edu.asu.diging.vspace.core.model.display; - -import edu.asu.diging.vspace.core.model.IExternalLink; - -public interface IExternalLinkDisplay extends ILinkDisplay { - - String getId(); - - void setId(String id); - - void setExternalLink(IExternalLink link); - - IExternalLink getExternalLink(); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ILinkDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ILinkDisplay.java deleted file mode 100644 index 276e7f22b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ILinkDisplay.java +++ /dev/null @@ -1,31 +0,0 @@ -package edu.asu.diging.vspace.core.model.display; - -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.IVSpaceElement; - -public interface ILinkDisplay extends IVSpaceElement { - - float getPositionX(); - - void setPositionX(float positionX); - - float getPositionY(); - - void setPositionY(float positionY); - - void setImage(IVSImage image); - - IVSImage getImage(); - - int getRotation(); - - void setRotation(int rotation); - - DisplayType getType(); - - void setType(DisplayType type); - - ExternalLinkDisplayMode getHowToOpen(); - - void setHowToOpen(ExternalLinkDisplayMode howToOpen); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/IModuleLinkDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/IModuleLinkDisplay.java deleted file mode 100644 index 7c76b5ae5..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/IModuleLinkDisplay.java +++ /dev/null @@ -1,21 +0,0 @@ -package edu.asu.diging.vspace.core.model.display; - -import edu.asu.diging.vspace.core.model.IModuleLink; - -public interface IModuleLinkDisplay extends ILinkDisplay{ - String getId(); - - void setId(String id); - - void setLink(IModuleLink link); - - IModuleLink getLink(); - - void setRotation(int rotation); - - int getRotation(); - - void setType(DisplayType type); - - DisplayType getType(); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ISpaceDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ISpaceDisplay.java deleted file mode 100644 index cb05c877f..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ISpaceDisplay.java +++ /dev/null @@ -1,23 +0,0 @@ -package edu.asu.diging.vspace.core.model.display; - -import edu.asu.diging.vspace.core.model.ISpace; - -public interface ISpaceDisplay { - - String getId(); - - void setId(String id); - - ISpace getSpace(); - - void setSpace(ISpace space); - - int getWidth(); - - void setWidth(int width); - - int getHeight(); - - void setHeight(int height); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ISpaceLinkDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ISpaceLinkDisplay.java deleted file mode 100644 index ce92d910a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/ISpaceLinkDisplay.java +++ /dev/null @@ -1,18 +0,0 @@ -package edu.asu.diging.vspace.core.model.display; - -import edu.asu.diging.vspace.core.model.ISpaceLink; - -public interface ISpaceLinkDisplay extends ILinkDisplay { - - String getId(); - - void setId(String id); - - void setLink(ISpaceLink link); - - ISpaceLink getLink(); - - void setRotation(int rotation); - - int getRotation(); -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/SlideType.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/SlideType.java deleted file mode 100644 index 6e0f536cb..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/SlideType.java +++ /dev/null @@ -1,6 +0,0 @@ -package edu.asu.diging.vspace.core.model.display; - -public enum SlideType { - - SLIDE, BRANCHING_POINT; -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/ExternalLinkDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/ExternalLinkDisplay.java deleted file mode 100644 index 18f11996c..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/ExternalLinkDisplay.java +++ /dev/null @@ -1,97 +0,0 @@ -package edu.asu.diging.vspace.core.model.display.impl; - -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.display.DisplayType; -import edu.asu.diging.vspace.core.model.display.IExternalLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.ExternalLink; - -import javax.persistence.Entity; - -@Entity -public class ExternalLinkDisplay extends LinkDisplay implements IExternalLinkDisplay { - - @Id - @GeneratedValue(generator = "externallink_display_id_generator") - @GenericGenerator(name = "externallink_display_id_generator", - parameters = @Parameter(name = "prefix", value = "EXLD"), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @OneToOne(targetEntity = ExternalLink.class) - private IExternalLink externalLink; - - private DisplayType type; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.ISpaceLinkDisplay#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.display.impl.ISpaceLinkDisplay#setId(java. - * lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.IExternalLinkDisplay# - * getExternalLink() - */ - @Override - public IExternalLink getExternalLink() { - return externalLink; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.IExternalLinkDisplay# - * setExternalLink(IExternalLink) - */ - @Override - public void setExternalLink(IExternalLink externalLink) { - this.externalLink = externalLink; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.IExternalLinkDisplay# - * getType() - */ - @Override - public DisplayType getType() { - return type; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.IExternalLinkDisplay# - * setType(DisplayType) - */ - @Override - public void setType(DisplayType type) { - this.type = type; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/LinkDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/LinkDisplay.java deleted file mode 100644 index bef97e418..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/LinkDisplay.java +++ /dev/null @@ -1,116 +0,0 @@ -package edu.asu.diging.vspace.core.model.display.impl; - -import javax.persistence.MappedSuperclass; -import javax.persistence.OneToOne; - -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.display.DisplayType; -import edu.asu.diging.vspace.core.model.display.ExternalLinkDisplayMode; -import edu.asu.diging.vspace.core.model.display.ILinkDisplay; -import edu.asu.diging.vspace.core.model.impl.VSImage; -import edu.asu.diging.vspace.core.model.impl.VSpaceElement; - -@MappedSuperclass -public abstract class LinkDisplay extends VSpaceElement implements ILinkDisplay { - - private float positionX; - private float positionY; - private int rotation; - private DisplayType type; - private ExternalLinkDisplayMode howToOpen; - - @OneToOne(targetEntity = VSImage.class) - private IVSImage image; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.IDisplay#getPositionX() - */ - @Override - public float getPositionX() { - return positionX; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.display.impl.IDisplay#setPositionX(float) - */ - @Override - public void setPositionX(float positionX) { - this.positionX = positionX; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.IDisplay#getPositionY() - */ - @Override - public float getPositionY() { - return positionY; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.display.impl.IDisplay#setPositionY(float) - */ - @Override - public void setPositionY(float positionY) { - this.positionY = positionY; - } - - @Override - public IVSImage getImage() { - return image; - } - - @Override - public void setImage(IVSImage image) { - this.image = image; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.IDisplay#getRotation() - */ - @Override - public int getRotation() { - return rotation; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.IDisplay#setRotation(int) - */ - @Override - public void setRotation(int rotation) { - this.rotation = rotation; - } - - @Override - public DisplayType getType() { - return type; - } - - @Override - public void setType(DisplayType type) { - this.type = type; - } - - @Override - public ExternalLinkDisplayMode getHowToOpen() { - return howToOpen; - } - - @Override - public void setHowToOpen(ExternalLinkDisplayMode howToOpen) { - this.howToOpen = howToOpen; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/ModuleLinkDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/ModuleLinkDisplay.java deleted file mode 100644 index d06790138..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/ModuleLinkDisplay.java +++ /dev/null @@ -1,62 +0,0 @@ -package edu.asu.diging.vspace.core.model.display.impl; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.NotFound; -import org.hibernate.annotations.NotFoundAction; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.display.IModuleLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.ModuleLink; - -@Entity -public class ModuleLinkDisplay extends LinkDisplay implements IModuleLinkDisplay { - - @Id - @GeneratedValue(generator = "modulelink_display_id_generator") - @GenericGenerator(name = "modulelink_display_id_generator", - parameters = @Parameter(name = "prefix", value = "MDLD"), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @OneToOne(targetEntity = ModuleLink.class) - @NotFound(action=NotFoundAction.IGNORE) - private IModuleLink link; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.IModuleLinkDisplay#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.display.impl.IModuleLinkDisplay#setId(java. - * lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - @Override - public IModuleLink getLink() { - return link; - } - - @Override - public void setLink(IModuleLink link) { - this.link = link; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/SpaceDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/SpaceDisplay.java deleted file mode 100644 index 61874b27a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/SpaceDisplay.java +++ /dev/null @@ -1,115 +0,0 @@ -package edu.asu.diging.vspace.core.model.display.impl; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.display.ISpaceDisplay; -import edu.asu.diging.vspace.core.model.impl.Space; - -@Entity -public class SpaceDisplay implements ISpaceDisplay { - - @Id - @GeneratedValue(generator = "space_display_id_generator") - @GenericGenerator(name = "space_display_id_generator", parameters = @Parameter(name = "prefix", value = "SPD"), strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @OneToOne(targetEntity = Space.class) - private ISpace space; - - private int width; - private int height; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.ISpaceDisplay#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.display.impl.ISpaceDisplay#setId(java.lang. - * String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.ISpaceDisplay#getSpace() - */ - @Override - public ISpace getSpace() { - return space; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.display.impl.ISpaceDisplay#setSpace(edu.asu. - * diging.vspace.core.model.ISpace) - */ - @Override - public void setSpace(ISpace space) { - this.space = space; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.ISpaceDisplay#getWidth() - */ - @Override - public int getWidth() { - return width; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.display.impl.ISpaceDisplay#setWidth(int) - */ - @Override - public void setWidth(int width) { - this.width = width; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.ISpaceDisplay#getHeight() - */ - @Override - public int getHeight() { - return height; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.display.impl.ISpaceDisplay#setHeight(int) - */ - @Override - public void setHeight(int height) { - this.height = height; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/SpaceLinkDisplay.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/SpaceLinkDisplay.java deleted file mode 100644 index c5a7904a4..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/display/impl/SpaceLinkDisplay.java +++ /dev/null @@ -1,84 +0,0 @@ -package edu.asu.diging.vspace.core.model.display.impl; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.NotFound; -import org.hibernate.annotations.NotFoundAction; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.ISpaceLink; -import edu.asu.diging.vspace.core.model.display.DisplayType; -import edu.asu.diging.vspace.core.model.display.ISpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.SpaceLink; - -@Entity -public class SpaceLinkDisplay extends LinkDisplay implements ISpaceLinkDisplay { - - @Id - @GeneratedValue(generator = "link_display_id_generator") - @GenericGenerator(name = "link_display_id_generator", parameters = @Parameter(name = "prefix", value = "SPLD"), strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - private int rotation; - private DisplayType type; - - @OneToOne(targetEntity = SpaceLink.class) - @NotFound(action=NotFoundAction.IGNORE) - private ISpaceLink link; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.display.impl.ISpaceLinkDisplay#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.display.impl.ISpaceLinkDisplay#setId(java. - * lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - @Override - public ISpaceLink getLink() { - return link; - } - - @Override - public void setLink(ISpaceLink link) { - this.link = link; - } - - @Override - public int getRotation() { - return rotation; - } - - @Override - public void setRotation(int rotation) { - this.rotation = rotation; - } - - @Override - public DisplayType getType() { - return type; - } - - @Override - public void setType(DisplayType type) { - this.type = type; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/BranchingPoint.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/BranchingPoint.java deleted file mode 100644 index abfa09311..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/BranchingPoint.java +++ /dev/null @@ -1,41 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.util.List; - -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.JoinTable; -import javax.persistence.OneToMany; - -import edu.asu.diging.vspace.core.model.IBranchingPoint; -import edu.asu.diging.vspace.core.model.IChoice; - -@Entity -public class BranchingPoint extends Slide implements IBranchingPoint { - - @OneToMany(targetEntity = Choice.class, cascade=CascadeType.ALL) - @JoinTable(name="BP_choices") - private List choices; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IBranchingPoint#getChoices() - */ - @Override - public List getChoices() { - return choices; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.IBranchingPoint#setChoices(java.util. - * List) - */ - @Override - public void setChoices(List choices) { - this.choices = choices; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Choice.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Choice.java deleted file mode 100644 index e3370faa9..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Choice.java +++ /dev/null @@ -1,77 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import edu.asu.diging.vspace.core.model.IChoice; -import edu.asu.diging.vspace.core.model.ISequence; - -@Entity -public class Choice extends VSpaceElement implements IChoice { - - @Id - @GeneratedValue(generator = "choice_id_generator") - @GenericGenerator(name = "choice_id_generator", - parameters = @Parameter(name = "prefix", value = "CHO"), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @JsonIgnore - @OneToOne(targetEntity = Sequence.class) - private ISequence sequence; - - public Choice() {} - - public Choice(ISequence sequence) { - this.sequence=sequence; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IChoice#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IChoice#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IChoice#getSequence() - */ - @Override - public ISequence getSequence() { - return sequence; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.IChoice#setSequence(edu.asu.diging. - * vspace.core.model.ISequence) - */ - @Override - public void setSequence(ISequence sequence) { - this.sequence = sequence; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ChoiceBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ChoiceBlock.java deleted file mode 100644 index 24f070e67..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ChoiceBlock.java +++ /dev/null @@ -1,48 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.util.List; - -import javax.persistence.Entity; -import javax.persistence.ManyToMany; - -import edu.asu.diging.vspace.core.model.IChoice; -import edu.asu.diging.vspace.core.model.IChoiceBlock; - -@Entity -public class ChoiceBlock extends ContentBlock implements IChoiceBlock { - - @ManyToMany(targetEntity = Choice.class) - private List choices; - - private boolean showsAll; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IChoice#getChoices() - */ - @Override - public List getChoices() { - return choices; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IChoice#setChoices(edu.asu.diging.vspace.core.model.impl.IChoice) - */ - @Override - public void setChoices(List choices) { - this.choices = choices; - } - - @Override - public boolean isShowsAll() { - return showsAll; - } - - @Override - public void setShowsAll(boolean showsAll) { - this.showsAll = showsAll; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ContentBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ContentBlock.java deleted file mode 100644 index 1378ba7a2..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ContentBlock.java +++ /dev/null @@ -1,97 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; -import javax.persistence.ManyToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.IContentBlock; -import edu.asu.diging.vspace.core.model.ISlide; - -@Entity -@Inheritance(strategy = InheritanceType.JOINED) -public class ContentBlock extends VSpaceElement implements IContentBlock { - - @Id - @GeneratedValue(generator = "content_id_generator") - @GenericGenerator(name = "content_id_generator", - parameters = @Parameter(name = "prefix", value = "CON"), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @ManyToOne(targetEntity = Slide.class) - private ISlide slide; - - private Integer contentOrder; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IContentBlock#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.IContentBlock#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IContentBlock#getSlide() - */ - @Override - public ISlide getSlide() { - return slide; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.IContentBlock#setSlide(edu.asu.diging. - * vspace. core.model.ISlide) - */ - @Override - public void setSlide(ISlide slide) { - this.slide = slide; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IContentBlock#getBlockInOrder() - */ - @Override - public Integer getContentOrder() { - return contentOrder; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.IContentBlock#setBlockInOrder(java.lang - * .Integer) - */ - @Override - public void setContentOrder(Integer contentOrder) { - this.contentOrder = contentOrder; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Exhibition.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Exhibition.java deleted file mode 100644 index 93e548703..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Exhibition.java +++ /dev/null @@ -1,107 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToOne; -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; -import edu.asu.diging.vspace.core.model.ExhibitionModes; -import edu.asu.diging.vspace.core.model.IExhibition; -import edu.asu.diging.vspace.core.model.ISpace; - -/** - * Represents an exhibition that can have a default start space. - * - * @see edu.asu.diging.vspace.core.model.IExhibition - * @author Namratha - */ -@Entity -public class Exhibition extends VSpaceElement implements IExhibition { - - @Id - @GeneratedValue(generator = "exhibit_id_generator") - @GenericGenerator(name = "exhibit_id_generator", parameters = @Parameter(name = "prefix", value = "EXH"), strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @OneToOne(targetEntity = Space.class) - private ISpace startSpace; - - private String title; - - @Enumerated(EnumType.STRING) - private ExhibitionModes mode; - - private String customMessage; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.IVSpaceElement#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.IVSpaceElement#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.IExhibition#getSpace() - */ - @Override - public ISpace getStartSpace() { - return this.startSpace; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.IExhibition#setSpace(edu.asu.diging.vspace. - * core.model.ISpace) - */ - @Override - public void setStartSpace(ISpace space) { - this.startSpace = space; - } - - @Override - public String getTitle() { - return title; - } - - @Override - public void setTitle(String title) { - this.title = title; - } - - public ExhibitionModes getMode() { - return mode; - } - - public void setMode(ExhibitionModes mode) { - this.mode = mode; - } - - public String getCustomMessage() { - return customMessage; - } - - public void setCustomMessage(String customMessage) { - this.customMessage = customMessage; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExhibitionAboutPage.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExhibitionAboutPage.java deleted file mode 100644 index 5bbe915e4..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExhibitionAboutPage.java +++ /dev/null @@ -1,56 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.util.List; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Lob; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -/** - * Model for Exhibition About Page - * - * @author Avirup Biswas - * - */ -@Entity -public class ExhibitionAboutPage { - @Id - @GeneratedValue(generator = "exh_abtpg_id_generator") - @GenericGenerator(name = "exh_abtpg_id_generator", parameters = @Parameter(name = "prefix", value = "EXHABT"), strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @Lob - private String title; - - @Lob - private String aboutPageText; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getAboutPageText() { - return aboutPageText; - } - - public void setAboutPageText(String aboutPageText) { - this.aboutPageText = aboutPageText; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExternalLink.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExternalLink.java deleted file mode 100644 index 0ed9fa8dd..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExternalLink.java +++ /dev/null @@ -1,88 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.ISpace; - -@Entity -public class ExternalLink extends VSpaceElement implements IExternalLink { - - @Id - @GeneratedValue(generator = "extlink_id_generator") - @GenericGenerator(name = "extlink_id_generator", - parameters = @Parameter(name = "prefix", value = "EXL"), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @ManyToOne(targetEntity=Space.class) - @JoinColumn(name="space_id", nullable=false) - private ISpace space; - - private String externalLink; - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IExternalLink#getId() - */ - @Override - public String getId() { - return id; - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IExternalLink#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IExternalLink#getSpace() - */ - @Override - public ISpace getSpace() { - return space; - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IExternalLink#setSpace(edu.asu.diging.vspace.core.model.ISpace) - */ - @Override - public void setSpace(ISpace space) { - this.space = space; - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IExternalLink#getExternalLink() - */ - @Override - public String getExternalLink() { - return externalLink; - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IExternalLink#setExternalLink(java.lang.String) - */ - @Override - public void setExternalLink(String externalLink) { - this.externalLink = externalLink; - } - - @Override - public ExternalLinkValue getTarget() { - return new ExternalLinkValue(this.externalLink); - } - - @Override - public void setTarget(ExternalLinkValue target) { - this.externalLink = target.getValue(); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExternalLinkValue.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExternalLinkValue.java deleted file mode 100644 index 90f6578a7..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ExternalLinkValue.java +++ /dev/null @@ -1,33 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import edu.asu.diging.vspace.core.model.IVSpaceElement; - -public class ExternalLinkValue extends VSpaceElement implements IVSpaceElement{ - - private String value; - - public ExternalLinkValue() {} - - public ExternalLinkValue(String value) { - this.value=value; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - - @Override - public String getId() { - return null; - } - - @Override - public void setId(String id) { - - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ImageBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ImageBlock.java deleted file mode 100644 index 5b995288d..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ImageBlock.java +++ /dev/null @@ -1,37 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import javax.persistence.Entity; -import javax.persistence.OneToOne; - -import edu.asu.diging.vspace.core.model.IImageBlock; -import edu.asu.diging.vspace.core.model.IVSImage; - -@Entity -public class ImageBlock extends ContentBlock implements IImageBlock { - - @OneToOne(targetEntity = VSImage.class) - private IVSImage image; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ITextBlock#getImage() - */ - @Override - public IVSImage getImage() { - return image; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.ITextBlock#setImage(edu.asu.diging. - * vspace. core.model.IVSImage) - */ - @Override - public void setImage(IVSImage image) { - this.image = image; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Module.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Module.java deleted file mode 100644 index 27731af25..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Module.java +++ /dev/null @@ -1,138 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.util.List; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.OneToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.IPrefix; -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.core.model.ISlide; - -@Entity -public class Module extends VSpaceElement implements IModule { - - @Id - @GeneratedValue(generator = "module_id_generator") - @GenericGenerator(name = "module_id_generator", - parameters = @Parameter(name = "prefix", value = IPrefix.MODULE_PREFIX), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - private ModuleStatus moduleStatus; - - //-------- @JsonIgnore used as this Slide will be returned in a controller - @JsonIgnore - @OneToMany(targetEntity = Slide.class, mappedBy = "module") - private List slides; - - @OneToMany(targetEntity = Sequence.class) - private List sequences; - - @JsonIgnore - @OneToOne(targetEntity = Sequence.class) - private ISequence startSequence; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IModule#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IModule#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IModule#getSlides() - */ - @Override - public List getSlides() { - return slides; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IModule#setSlides(java.util.List) - */ - @Override - public void setSlides(List slides) { - this.slides = slides; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IModule#getSequences() - */ - @Override - public List getSequences() { - return sequences; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.IModule#setSequences(java.util.List) - */ - @Override - public void setSequences(List sequences) { - this.sequences = sequences; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IModule#getStartSequence() - */ - @Override - public ISequence getStartSequence() { - return startSequence; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.IModule#setStartSequence(edu.asu.diging - * .vspace.core.model.ISequence) - */ - @Override - public void setStartSequence(ISequence startSequence) { - this.startSequence = startSequence; - } - - @Override - public void setModuleStatus(ModuleStatus status) { - this.moduleStatus = status; - - } - - @Override - public ModuleStatus getModuleStatus() { - return moduleStatus; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ModuleLink.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ModuleLink.java deleted file mode 100644 index 7f8e41f70..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ModuleLink.java +++ /dev/null @@ -1,86 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.ISpace; - -@Entity -public class ModuleLink extends VSpaceElement implements IModuleLink { - - @Id - @GeneratedValue(generator = "modlink_id_generator") - @GenericGenerator(name = "modlink_id_generator", - parameters = @Parameter(name = "prefix", value = "MOL"), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @ManyToOne(targetEntity=Space.class) - @JoinColumn(name="space_id", nullable=false) - private ISpace space; - - @ManyToOne(targetEntity=Module.class) - @JoinColumn(name="module_id", nullable=false) - private IModule module; - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IModuleLink#getId() - */ - @Override - public String getId() { - return id; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IModuleLink#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IModuleLink#getSpace() - */ - @Override - public ISpace getSpace() { - return space; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IModuleLink#setSpace(edu.asu.diging.vspace.core.model.ISpace) - */ - @Override - public void setSpace(ISpace space) { - this.space = space; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IModuleLink#getModule() - */ - @Override - public IModule getModule() { - return module; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IModuleLink#setModule(edu.asu.diging.vspace.core.model.IModule) - */ - @Override - public void setModule(IModule module) { - this.module = module; - } - - @Override - public IModule getTarget() { - return this.module; - } - - @Override - public void setTarget(IModule target) { - this.module = target; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ModuleStatus.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ModuleStatus.java deleted file mode 100644 index 96d54e0b7..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/ModuleStatus.java +++ /dev/null @@ -1,6 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -public enum ModuleStatus { - PUBLISHED, - UNPUBLISHED -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Sequence.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Sequence.java deleted file mode 100644 index d29ea18cd..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Sequence.java +++ /dev/null @@ -1,96 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.util.List; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.ManyToMany; -import javax.persistence.ManyToOne; -import javax.persistence.OrderColumn; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.core.model.ISlide; - -@Entity -public class Sequence extends VSpaceElement implements ISequence { - - @Id - @GeneratedValue(generator = "sequence_id_generator") - @GenericGenerator(name = "sequence_id_generator", - parameters = @Parameter(name = "prefix", value = "SEQ"), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @ManyToOne(targetEntity = Module.class) - private IModule module; - - @ManyToMany(targetEntity = Slide.class) - @JoinTable(name="Sequence_Slides", - joinColumns = @JoinColumn(name = "Sequence_Id", referencedColumnName="id"), - inverseJoinColumns = @JoinColumn(name = "Slide_Id", referencedColumnName="id")) - @OrderColumn(name="slide_order") - private List slides; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISequence#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISequence#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISequence#getSlides() - */ - @Override - public List getSlides() { - return slides; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.ISequence#setSlides(java.util.List) - */ - @Override - public void setSlides(List slides) { - this.slides = slides; - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.ISequence#getModule() - */ - public IModule getModule() { - return module; - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.ISequence#setModule(edu.asu.diging.vspace. - * core.model.IModule) - */ - public void setModule(IModule module) { - this.module = module; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SequenceHistory.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SequenceHistory.java deleted file mode 100644 index e4d7af47c..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SequenceHistory.java +++ /dev/null @@ -1,55 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.util.Stack; - -import org.springframework.context.annotation.Scope; -import org.springframework.context.annotation.ScopedProxyMode; -import org.springframework.stereotype.Component; - -@Component -@Scope(value="session", proxyMode = ScopedProxyMode.TARGET_CLASS) -public class SequenceHistory{ - - class SequenceHistoryData{ - String sequenceId; - String branchingPointId; - public SequenceHistoryData(String sequenceId, String branchingPointId) { - this.sequenceId = sequenceId; - this.branchingPointId = branchingPointId; - } - public String getSequenceId() { - return sequenceId; - } - public String getBranchingPointId() { - return branchingPointId; - } - - } - - private Stack sequenceSlideHistory = new Stack<>(); - - public void addToHistory(String choiceId, String branchingPointId) { - sequenceSlideHistory.push(new SequenceHistoryData(choiceId, branchingPointId)); - } - - public boolean hasHistory() { - return !sequenceSlideHistory.isEmpty(); - } - - public void popFromHistory() { - sequenceSlideHistory.pop(); - } - - public String peekBranchingPointId() { - return sequenceSlideHistory.peek().getBranchingPointId(); - } - - public String peekSequenceId() { - return sequenceSlideHistory.peek().getSequenceId(); - } - - public void flushFromHistory() { - sequenceSlideHistory.removeAllElements(); - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Slide.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Slide.java deleted file mode 100644 index 350de758e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Slide.java +++ /dev/null @@ -1,176 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Optional; - -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.ManyToMany; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import edu.asu.diging.vspace.core.model.IContentBlock; -import edu.asu.diging.vspace.core.model.IImageBlock; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.ITextBlock; - -@Entity -public class Slide extends VSpaceElement implements ISlide { - - @Id - @GeneratedValue(generator = "slide_id_generator") - @GenericGenerator(name = "slide_id_generator", parameters = @Parameter(name = "prefix", value = "SLI"), strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @ManyToOne(targetEntity = Module.class) - private IModule module; - - // -------- @JsonIgnore used as this entity will be returned in a controller - @JsonIgnore - @OneToMany(targetEntity = ContentBlock.class, mappedBy = "slide", cascade = CascadeType.ALL) - private List contents; - - @JsonIgnore - @ManyToMany(mappedBy = "slides", targetEntity = Sequence.class) - private List sequence; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISlide#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISlide#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISlide#getModule() - */ - @Override - public IModule getModule() { - return module; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISlide#setImage(edu.asu.diging. - * vspace. core.model.IModule) - */ - @Override - public void setModule(IModule module) { - this.module = module; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISlide#getContents() - */ - @Override - public List getContents() { - Collections.sort(this.contents, new Comparator() { - - @Override - public int compare(IContentBlock o1, IContentBlock o2) { - return o1.getContentOrder().compareTo(o2.getContentOrder()); - } - }); - return contents; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISlide#setContents(edu.asu.diging. - * vspace. core.model.IContentBlock) - */ - @Override - public void setContents(List contents) { - this.contents = contents; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISlide#getContents() - */ - public List getSequence() { - return sequence; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISlide#setSequence(java.util.List) - */ - public void setSequence(List sequence) { - this.sequence = sequence; - } - - /** - * This Method will retrieve the first ImageBlock of a slide if the ImageBlock - * is present - * - * @return IImageBlock - */ - @Override - @JsonIgnore - public IImageBlock getFirstImageBlock() { - List allBlocks = getContents(); - if (allBlocks != null) { - Optional firstImageBlock = allBlocks.stream() - .filter(contentBlock -> contentBlock instanceof ImageBlock).findFirst(); - if (firstImageBlock.isPresent()) { - return (ImageBlock) firstImageBlock.get(); - } - } - return null; - } - - /** - * This Method will return the first Text block whose content has searchTerm in - * it. - * - * @param searchTerm the search string which is being searched. - * @return TextBlock - */ - @Override - @JsonIgnore - public ITextBlock getFirstMatchedTextBlock(String searchTerm) { - List allBlocks = getContents(); - if (allBlocks != null) { - Optional firstMatchedTextBlock = allBlocks.stream() - .filter(contentBlock -> contentBlock instanceof TextBlock) - .filter(contentBlock -> ((TextBlock) contentBlock).getText().contains(searchTerm)).findFirst(); - if (firstMatchedTextBlock.isPresent()) { - return (TextBlock) firstMatchedTextBlock.get(); - } - } - return null; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Space.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Space.java deleted file mode 100644 index 66018dd30..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Space.java +++ /dev/null @@ -1,209 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.util.List; - -import javax.persistence.Access; -import javax.persistence.AccessType; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.OneToOne; -import javax.persistence.Transient; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.NotFound; -import org.hibernate.annotations.NotFoundAction; -import org.hibernate.annotations.Parameter; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.IPrefix; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.ISpaceLink; -import edu.asu.diging.vspace.core.model.IVSImage; - -@Entity -public class Space extends VSpaceElement implements ISpace { - - @Id - @GeneratedValue(generator = "space_id_generator") - @GenericGenerator(name = "space_id_generator", parameters = @Parameter(name = "prefix", value = IPrefix.SPACE_PREFIX), strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - private SpaceStatus spaceStatus; - @Access(AccessType.PROPERTY) - private boolean showUnpublishedLinks; - - private boolean hideIncomingLinks; - - @JsonIgnore - @OneToMany(mappedBy = "sourceSpace", targetEntity = SpaceLink.class) - private List spaceLinks; - - @JsonIgnore - @OneToMany(mappedBy = "space", targetEntity = ModuleLink.class) - private List moduleLinks; - - @JsonIgnore - @OneToMany(mappedBy = "space", targetEntity = ExternalLink.class) - private List externalLinks; - - @OneToOne(targetEntity = VSImage.class) - @NotFound(action = NotFoundAction.IGNORE) - private IVSImage image; - - @Transient - private Boolean incomingLinks; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISpacee#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISpacee#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISpacee#getSpaceLinks() - */ - @Override - public List getSpaceLinks() { - return spaceLinks; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.ISpacee#setSpaceLinks(java.util.List) - */ - @Override - public void setSpaceLinks(List spaceLinks) { - this.spaceLinks = spaceLinks; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISpacee#getModuleLinks() - */ - @Override - public List getModuleLinks() { - return moduleLinks; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.ISpacee#setModuleLinks(java.util.List) - */ - @Override - public void setModuleLinks(List moduleLinks) { - this.moduleLinks = moduleLinks; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISpacee#getExternalLinks() - */ - @Override - public List getExternalLinks() { - return externalLinks; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.ISpacee#setExternalLinks(java.util. - * List) - */ - @Override - public void setExternalLinks(List externalLinks) { - this.externalLinks = externalLinks; - } - - public IVSImage getImage() { - return image; - } - - public void setImage(IVSImage image) { - this.image = image; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.Space#getSpaceStatus() - */ - @Override - public SpaceStatus getSpaceStatus() { - return spaceStatus; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.Space#setSpaceStatus(edu.asu.diging. - * vspace.core.model.impl.SpaceStatus) - */ - @Override - public void setSpaceStatus(SpaceStatus spaceStatus) { - this.spaceStatus = spaceStatus; - } - - @Override - public boolean isShowUnpublishedLinks() { - return showUnpublishedLinks; - } - - @Override - @Access(AccessType.PROPERTY) - public void setShowUnpublishedLinks(Boolean showUnpublishedLinks) { - if (showUnpublishedLinks == null) { - this.showUnpublishedLinks = false; - return; - } - this.showUnpublishedLinks = showUnpublishedLinks; - } - - public Boolean hasIncomingLinks() { - return incomingLinks; - } - - public void setIncomingLinks(Boolean incomingLinks) { - this.incomingLinks = incomingLinks; - } - - @Override - public boolean isHideIncomingLinks() { - return hideIncomingLinks; - } - - - @Override - public void setHideIncomingLinks(boolean hideIncomingLinks) { - this.hideIncomingLinks = hideIncomingLinks; - } - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SpaceLink.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SpaceLink.java deleted file mode 100644 index e6294ab9b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SpaceLink.java +++ /dev/null @@ -1,103 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.NotFound; -import org.hibernate.annotations.NotFoundAction; -import org.hibernate.annotations.Parameter; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.ISpaceLink; - -@Entity -public class SpaceLink extends VSpaceElement implements ISpaceLink { - - @Id - @GeneratedValue(generator = "spalink_id_generator") - @GenericGenerator(name = "spalink_id_generator", - parameters = @Parameter(name = "prefix", value = "SPL"), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @JsonIgnore - @ManyToOne(targetEntity=Space.class) - @JoinColumn(name = "source_space_id") - @NotFound(action=NotFoundAction.IGNORE) - private ISpace sourceSpace; - - @ManyToOne(targetEntity=Space.class) - @JoinColumn(name = "target_space_id") - @NotFound(action=NotFoundAction.IGNORE) - private ISpace targetSpace; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ISpaceLink#getId() - */ - @Override - public String getId() { - return id; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.ISpaceLink#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.ISpaceLink#getSourceSpace() - */ - @Override - public ISpace getSourceSpace() { - return sourceSpace; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.ISpaceLink#setSourceSpace(edu.asu.diging.vspace.core.model.ISpace) - */ - @Override - public void setSourceSpace(ISpace sourceSpace) { - this.sourceSpace = sourceSpace; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.ISpaceLink#getTargetSpace() - */ - @Override - public ISpace getTargetSpace() { - return targetSpace; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.ISpaceLink#setTargetSpace(edu.asu.diging.vspace.core.model.ISpace) - */ - @Override - public void setTargetSpace(ISpace targetSpace) { - this.targetSpace = targetSpace; - } - @Override - public ISpace getSpace() { - return sourceSpace; - } - @Override - public void setSpace(ISpace space) { - this.sourceSpace = space; - - } - @Override - public ISpace getTarget() { - return targetSpace; - } - - @Override - public void setTarget(ISpace target) { - this.targetSpace = target; - - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SpaceStatus.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SpaceStatus.java deleted file mode 100644 index 36058686a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/SpaceStatus.java +++ /dev/null @@ -1,6 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -public enum SpaceStatus { - PUBLISHED, - UNPUBLISHED -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Tag.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Tag.java deleted file mode 100644 index f099bffc6..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/Tag.java +++ /dev/null @@ -1,38 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.ITag; - -@Entity -public class Tag extends VSpaceElement implements ITag { - - @Id - @GeneratedValue(generator = "tag_id_generator") - @GenericGenerator(name = "tag_id_generator", - parameters = @Parameter(name = "prefix", value = "TAG"), - strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.ITag#getId() - */ - @Override - public String getId() { - return id; - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.ITag#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/TextBlock.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/TextBlock.java deleted file mode 100644 index 2ffb5a31b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/TextBlock.java +++ /dev/null @@ -1,54 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import javax.persistence.Entity; -import javax.persistence.Lob; -import javax.persistence.Transient; - -import org.commonmark.node.Node; -import org.commonmark.parser.Parser; -import org.commonmark.renderer.html.HtmlRenderer; - -import edu.asu.diging.vspace.core.model.ITextBlock; - -@Entity -public class TextBlock extends ContentBlock implements ITextBlock { - - @Lob - private String text; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.ITextBlock#getText() - */ - @Override - public String getText() { - return text; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.ITextBlock#setText(java.lang.String) - */ - @Override - public void setText(String text) { - this.text = text; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.ITextBlock#htmlRenderedText() - */ - @Override - @Transient - public String htmlRenderedText() { - Parser parser = Parser.builder().build(); - Node document = parser.parse(text); - HtmlRenderer renderer = HtmlRenderer.builder().build(); - return renderer.render(document); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/VSImage.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/VSImage.java deleted file mode 100644 index b54491173..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/VSImage.java +++ /dev/null @@ -1,157 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.util.List; - -import javax.persistence.ElementCollection; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Lob; -import javax.persistence.OneToMany; - -import org.hibernate.annotations.GenericGenerator; -import org.hibernate.annotations.Parameter; - -import edu.asu.diging.vspace.core.model.ITag; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.ImageCategory; - -@Entity -public class VSImage extends VSpaceElement implements IVSImage { - - @Id - @GeneratedValue(generator = "image_id_generator") - @GenericGenerator(name = "image_id_generator", parameters = @Parameter(name = "prefix", value = "IMG"), strategy = "edu.asu.diging.vspace.core.data.IdGenerator") - private String id; - - @Lob - private String filename; - @Lob - private String parentPath; - private String fileType; - - private int height; - private int width; - - @OneToMany(targetEntity = Tag.class) - private List tags; - - @ElementCollection(targetClass = ImageCategory.class) - @Enumerated(EnumType.STRING) - private List categories; - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IImage#getId() - */ - @Override - public String getId() { - return id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IImage#setId(java.lang.String) - */ - @Override - public void setId(String id) { - this.id = id; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IImage#getFilename() - */ - @Override - public String getFilename() { - return filename; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.IImage#setFilename(java.lang.String) - */ - @Override - public void setFilename(String filename) { - this.filename = filename; - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.model.impl.IImage#getParentPath() - */ - @Override - public String getParentPath() { - return parentPath; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.model.impl.IImage#setParentPath(java.lang.String) - */ - @Override - public void setParentPath(String parentPath) { - this.parentPath = parentPath; - } - - @Override - public String getFileType() { - return fileType; - } - - @Override - public void setFileType(String fileType) { - this.fileType = fileType; - } - - @Override - public int getHeight() { - return height; - } - - @Override - public void setHeight(int height) { - this.height = height; - } - - @Override - public int getWidth() { - return width; - } - - @Override - public void setWidth(int width) { - this.width = width; - } - - @Override - public List getTags() { - return tags; - } - - @Override - public void setTags(List tags) { - this.tags = tags; - } - - @Override - public List getCategories() { - return categories; - } - - @Override - public void setCategories(List categories) { - this.categories = categories; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/VSpaceElement.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/VSpaceElement.java deleted file mode 100644 index 2fafe4cdf..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/model/impl/VSpaceElement.java +++ /dev/null @@ -1,103 +0,0 @@ -package edu.asu.diging.vspace.core.model.impl; - -import java.time.OffsetDateTime; - -import javax.persistence.Lob; -import javax.persistence.MappedSuperclass; - -import edu.asu.diging.vspace.core.model.IVSpaceElement; - -@MappedSuperclass -public abstract class VSpaceElement implements IVSpaceElement { - private String name; - @Lob private String description; - private String createdBy; - private OffsetDateTime creationDate; - private String modifiedBy; - private OffsetDateTime modificationDate; - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#getName() - */ - @Override - public String getName() { - return name; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#setName(java.lang.String) - */ - @Override - public void setName(String name) { - this.name = name; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#getDescription() - */ - @Override - public String getDescription() { - return description; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#setDescription(java.lang.String) - */ - @Override - public void setDescription(String description) { - this.description = description; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#getCreatedBy() - */ - @Override - public String getCreatedBy() { - return createdBy; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#setCreatedBy(java.lang.String) - */ - @Override - public void setCreatedBy(String createdBy) { - this.createdBy = createdBy; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#getCreationDate() - */ - @Override - public OffsetDateTime getCreationDate() { - return creationDate; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#setCreationDate(java.time.OffsetDateTime) - */ - @Override - public void setCreationDate(OffsetDateTime creationDate) { - this.creationDate = creationDate; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#getModifiedBy() - */ - @Override - public String getModifiedBy() { - return modifiedBy; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#setModifiedBy(java.lang.String) - */ - @Override - public void setModifiedBy(String modifiedBy) { - this.modifiedBy = modifiedBy; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#getModificationDate() - */ - @Override - public OffsetDateTime getModificationDate() { - return modificationDate; - } - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.model.impl.IVSpaceElement#setModificationDate(java.time.OffsetDateTime) - */ - @Override - public void setModificationDate(OffsetDateTime modificationDate) { - this.modificationDate = modificationDate; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IContentBlockManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IContentBlockManager.java deleted file mode 100644 index 647a8f721..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IContentBlockManager.java +++ /dev/null @@ -1,51 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import java.util.List; - -import edu.asu.diging.vspace.core.exception.BlockDoesNotExistException; -import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; -import edu.asu.diging.vspace.core.model.IChoiceBlock; -import edu.asu.diging.vspace.core.model.IContentBlock; -import edu.asu.diging.vspace.core.model.IImageBlock; -import edu.asu.diging.vspace.core.model.ITextBlock; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.impl.ContentBlock; -import edu.asu.diging.vspace.core.model.impl.TextBlock; -import edu.asu.diging.vspace.core.services.impl.CreationReturnValue; - -public interface IContentBlockManager { - - ITextBlock createTextBlock(String slideId, String content, Integer contentOrder); - - CreationReturnValue createImageBlock(String slideId, byte[] image, String filename, Integer contentOrder) - throws ImageCouldNotBeStoredException; - - CreationReturnValue createImageBlock(String slideId, IVSImage image, Integer contentOrder); - - List getAllContentBlocks(String slideId); - - void deleteTextBlockById(String blockid, String slideId) throws BlockDoesNotExistException; - - void deleteImageBlockById(String blockid, String slideId) throws BlockDoesNotExistException; - - void deleteChoiceBlockById(String blockid, String slideId) throws BlockDoesNotExistException; - - void updateTextBlock(TextBlock textBlock); - - IImageBlock getImageBlock(String imgBlockId); - - ITextBlock getTextBlock(String textBlockId); - - IChoiceBlock getChoiceBlock(String choiceBlockId); - - void updateImageBlock(IImageBlock imageBlock, byte[] image, String filename) throws ImageCouldNotBeStoredException; - - void updateImageBlock(IImageBlock imageBlock, IVSImage image); - - IChoiceBlock createChoiceBlock(String slideId, List selectedChoices, Integer contentOrder, - boolean showsAll); - - Integer findMaxContentOrder(String slideId); - - void updateContentOrder(List contentBlockList) throws BlockDoesNotExistException; -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExhibitionAboutPageManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExhibitionAboutPageManager.java deleted file mode 100644 index 676a4bb3b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExhibitionAboutPageManager.java +++ /dev/null @@ -1,24 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.impl.ExhibitionAboutPage; -/** - * IExhibitionAboutPageManager allows to store and manage {@link ExhibitionAboutPage}. - * @author Avirup Biswas - * - */ -public interface IExhibitionAboutPageManager { - - /** - * This method fetches all {@link ExhibitionAboutPage} entries and returns them - */ - List findAll(); - - /** - * This method stores Exhibition About page information and returns the {@link ExhibitionAboutPage} which is being stored - * @param {@link ExhibitionAboutPage} This object contains Exhibition about page values to be stored. - * @return {@link ExhibitionAboutPage} Returns the object after being stored. Object will now have an ID. - */ - ExhibitionAboutPage store(ExhibitionAboutPage exhibitionAboutPage); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExhibitionManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExhibitionManager.java deleted file mode 100644 index afd44964b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExhibitionManager.java +++ /dev/null @@ -1,37 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.IExhibition; -import edu.asu.diging.vspace.core.model.impl.Exhibition; - -/* - * (non-Javadoc) - * - * IExhibitionManager allows to store and manage Exhibition. - * - * @see edu.asu.diging.vspace.core.model.IExhibition - */ -public interface IExhibitionManager { - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.services.IExhibitionManager#storeExhibition(edu. - * asu.diging.vspace.core.model.impl.Exhibition) - */ - IExhibition storeExhibition(Exhibition exhibit); - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.services.IExhibitionManager#getExhibitionById(java - * .lang.String) - */ - IExhibition getExhibitionById(String id); - - List findAll(); - - IExhibition getStartExhibition(); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExternalLinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExternalLinkManager.java deleted file mode 100644 index 7f7e0a84d..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IExternalLinkManager.java +++ /dev/null @@ -1,22 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; -import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; -import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.display.DisplayType; -import edu.asu.diging.vspace.core.model.display.ExternalLinkDisplayMode; -import edu.asu.diging.vspace.core.model.display.IExternalLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.ExternalLinkValue; - -public interface IExternalLinkManager extends ILinkManager{ - - IExternalLinkDisplay createLink(String title, String id, float positionX, float positionY, int rotation, String linkedId, - String linkLabel, DisplayType displayType, byte[] linkImage, String imageFilename,ExternalLinkDisplayMode howToOpen) - throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, SpaceDoesNotExistException; - - IExternalLinkDisplay updateLink(String title, String id, float positionX, float positionY, int rotation, String linkedId, - String linkLabel, String linkId, String linkDisplayId, DisplayType displayType, byte[] linkImage, - String imageFilename,ExternalLinkDisplayMode howToOpen) - throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException; -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IImageService.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IImageService.java deleted file mode 100644 index df0db217e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IImageService.java +++ /dev/null @@ -1,40 +0,0 @@ -package edu.asu.diging.vspace.core.services; - - -import java.util.List; - -import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.ImageCategory; -import edu.asu.diging.vspace.core.services.impl.model.ImageData; -import edu.asu.diging.vspace.web.staff.forms.ImageForm; - -public interface IImageService { - - ImageData getImageData(byte[] image); - - ImageData getImageDimensions(IVSImage image, int width, int height); - - List getImages(int pageNo, ImageCategory filter); - - List getImages(int pageNo); - - List getImages(int pageNo, ImageCategory filter, String sortedBy, String order); - - long getTotalImageCount(ImageCategory filter); - - long getTotalPages(ImageCategory filter); - - int validatePageNumber(int pageNo, ImageCategory filter); - - void editImage(String imageId, ImageForm imageForm) throws ImageDoesNotExistException; - - IVSImage getImageById(String imageId) throws ImageDoesNotExistException; - - void addCategory(IVSImage image, ImageCategory category); - - void removeCategory(IVSImage image, ImageCategory category); - - List findByFilenameOrNameContains(String searchTerm); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ILinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ILinkManager.java deleted file mode 100644 index b34febced..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ILinkManager.java +++ /dev/null @@ -1,28 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import java.util.List; - -import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; -import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; -import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; -import edu.asu.diging.vspace.core.model.ILink; -import edu.asu.diging.vspace.core.model.IVSpaceElement; -import edu.asu.diging.vspace.core.model.display.DisplayType; -import edu.asu.diging.vspace.core.model.display.ILinkDisplay; - -public interface ILinkManager, T extends IVSpaceElement, U extends ILinkDisplay> { - - U createLink(String title, String id, float positionX, float positionY, int rotation, String linkedId, - String linkLabel, DisplayType displayType, byte[] linkImage, String imageFilename) - throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, SpaceDoesNotExistException; - - U updateLink(String title, String id, float positionX, float positionY, int rotation, String linkedId, - String linkLabel, String linkId, String linkDisplayId, DisplayType displayType, byte[] linkImage, - String imageFilename) - throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException; - - List getLinkDisplays(String spaceId); - - void deleteLink(String linkId); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IModuleLinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IModuleLinkManager.java deleted file mode 100644 index f83233dea..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IModuleLinkManager.java +++ /dev/null @@ -1,9 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.display.IModuleLinkDisplay; - -public interface IModuleLinkManager extends ILinkManager{ - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IModuleManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IModuleManager.java deleted file mode 100644 index d8956f85e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IModuleManager.java +++ /dev/null @@ -1,27 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import java.util.List; - -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.core.model.ISlide; - -public interface IModuleManager { - - IModule storeModule(IModule module); - - IModule getModule(String id); - - List getAllModules(); - - List getModuleSlides(String moduleId); - - List getModuleSequences(String moduleId); - - ISequence checkIfSequenceExists(String moduleId, String sequenceId); - - Page findByNameOrDescription(Pageable requestedPage,String searchText); -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISequenceManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISequenceManager.java deleted file mode 100644 index 40619bc4e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISequenceManager.java +++ /dev/null @@ -1,14 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.web.staff.forms.SequenceForm; - -public interface ISequenceManager { - - ISequence storeSequence(String moduleId, SequenceForm sequenceForm); - - ISequence getSequence(String sequenceId); - - void updateSequence(ISequence sequence); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISetupManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISetupManager.java deleted file mode 100644 index 68c2eb236..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISetupManager.java +++ /dev/null @@ -1,18 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import edu.asu.diging.simpleusers.core.exceptions.UserAlreadyExistsException; -import edu.asu.diging.simpleusers.core.model.IUser; - -public interface ISetupManager { - - /** - * This method checks if a user called "admin" exists. If not, we assume this - * application has not yet been setup. - * - * @return - */ - boolean isSetup(); - - IUser setupAdmin(String password) throws UserAlreadyExistsException; - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISlideManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISlideManager.java deleted file mode 100644 index 947f4c9ce..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISlideManager.java +++ /dev/null @@ -1,36 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import java.util.List; - -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; - -import edu.asu.diging.vspace.core.model.IBranchingPoint; -import edu.asu.diging.vspace.core.model.IChoice; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.display.SlideType; -import edu.asu.diging.vspace.core.model.impl.Sequence; -import edu.asu.diging.vspace.core.model.impl.Slide; -import edu.asu.diging.vspace.web.staff.forms.SlideForm; - -public interface ISlideManager { - - ISlide getSlide(String slideId); - - ISlide createSlide(IModule module, SlideForm slideForm, SlideType type); - - void updateSlide(Slide slide); - - IBranchingPoint createBranchingPoint(IModule module, SlideForm slideForm, SlideType type); - - void updateBranchingPoint(IBranchingPoint branchingPoint, List editedChoices); - - IChoice getChoice(String choiceId); - - void deleteSlideById(String slideId, String moduleId); - - List getSlideSequences(String slideId, String moduleId); - - Page findByNameOrDescription(Pageable requestedPage,String searchText); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceDisplayManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceDisplayManager.java deleted file mode 100644 index 678376510..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceDisplayManager.java +++ /dev/null @@ -1,10 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.display.ISpaceDisplay; - -public interface ISpaceDisplayManager { - - ISpaceDisplay getBySpace(ISpace space); - -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceLinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceLinkManager.java deleted file mode 100644 index b30a5d3bb..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceLinkManager.java +++ /dev/null @@ -1,17 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.ISpaceLink; -import edu.asu.diging.vspace.core.model.display.ISpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.SpaceStatus; - -public interface ISpaceLinkManager extends ILinkManager{ - - List getSpaceLinkForGivenOrNullSpaceStatus(String spaceId, SpaceStatus spaceStatus); - - void deleteSpaceLinksWithSourceAsNull(); - - Long getCountOfSpaceLinksWithSourceNull(); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceManager.java deleted file mode 100644 index ec812cdfd..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceManager.java +++ /dev/null @@ -1,41 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import java.util.List; - -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; - -import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.impl.Space; -import edu.asu.diging.vspace.core.model.impl.SpaceLink; -import edu.asu.diging.vspace.core.model.impl.SpaceStatus; -import edu.asu.diging.vspace.core.services.impl.CreationReturnValue; - -public interface ISpaceManager { - - CreationReturnValue storeSpace(ISpace space, byte[] image, String filename); - - CreationReturnValue storeSpace(ISpace space, IVSImage image); - - ISpace getSpace(String id); - - ISpace getFullyLoadedSpace(String id); - - List getAllSpaces(); - - List getOutgoingLinks(String id); - - List getSpacesWithStatus(SpaceStatus status); - - List getSpacesWithImageId(String imageId); - - void deleteSpaceById(String id) throws SpaceDoesNotExistException; - - List getIncomingLinks(String id); - - Iterable addIncomingLinkInfoToSpaces(Iterable spaces); - - Page findByNameOrDescription(Pageable requestedPage,String searchText); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceOverviewManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceOverviewManager.java deleted file mode 100644 index fe5adb72e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/ISpaceOverviewManager.java +++ /dev/null @@ -1,19 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -import edu.asu.diging.vspace.core.model.display.impl.ModuleLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.SpaceLinkDisplay; - -public interface ISpaceOverviewManager { - - Map> getSpaceToModuleLinks(); - - Map> getSpaceToSpaceLinks(); - - Map> getSpacesToSpacesAndModulesMap(Map> spaceToModuleLinksMap, - Map> spaceToSpaceLinksMap); - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IStaffSearchManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IStaffSearchManager.java deleted file mode 100644 index a358b2e68..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/IStaffSearchManager.java +++ /dev/null @@ -1,18 +0,0 @@ -package edu.asu.diging.vspace.core.services; - -import org.springframework.data.domain.Page; - -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.ISpace; - -public interface IStaffSearchManager { - - Page searchInSpaces(String searchTerm, int page); - - Page searchInModules(String searchTerm, int page); - - Page searchInSlides(String searchTerm, int page); - - Page searchInSlideTexts(String searchTerm, int page); -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ContentBlockManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ContentBlockManager.java deleted file mode 100644 index 0d60a956b..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ContentBlockManager.java +++ /dev/null @@ -1,390 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; -import org.apache.tika.Tika; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.EmptyResultDataAccessException; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import edu.asu.diging.vspace.core.data.ChoiceContentBlockRepository; -import edu.asu.diging.vspace.core.data.ContentBlockRepository; -import edu.asu.diging.vspace.core.data.ImageContentBlockRepository; -import edu.asu.diging.vspace.core.data.ImageRepository; -import edu.asu.diging.vspace.core.data.TextContentBlockRepository; -import edu.asu.diging.vspace.core.exception.BlockDoesNotExistException; -import edu.asu.diging.vspace.core.exception.FileStorageException; -import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; -import edu.asu.diging.vspace.core.factory.IChoiceBlockFactory; -import edu.asu.diging.vspace.core.factory.IImageBlockFactory; -import edu.asu.diging.vspace.core.factory.IImageFactory; -import edu.asu.diging.vspace.core.factory.ITextBlockFactory; -import edu.asu.diging.vspace.core.file.IStorageEngine; -import edu.asu.diging.vspace.core.model.IChoice; -import edu.asu.diging.vspace.core.model.IChoiceBlock; -import edu.asu.diging.vspace.core.model.IContentBlock; -import edu.asu.diging.vspace.core.model.IImageBlock; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.ITextBlock; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.impl.ChoiceBlock; -import edu.asu.diging.vspace.core.model.impl.ContentBlock; -import edu.asu.diging.vspace.core.model.impl.ImageBlock; -import edu.asu.diging.vspace.core.model.impl.TextBlock; -import edu.asu.diging.vspace.core.model.impl.VSImage; -import edu.asu.diging.vspace.core.services.IContentBlockManager; -import edu.asu.diging.vspace.core.services.ISlideManager; - -@Transactional(rollbackFor = { Exception.class }) -@Service -public class ContentBlockManager implements IContentBlockManager { - - @Autowired - private ISlideManager slideManager; - - @Autowired - private IImageFactory imageFactory; - - @Autowired - private ITextBlockFactory textBlockFactory; - - @Autowired - private IImageBlockFactory imageBlockFactory; - - @Autowired - private IChoiceBlockFactory choiceBlockFactory; - - @Autowired - private ImageRepository imageRepo; - - @Autowired - private TextContentBlockRepository textBlockRepo; - - @Autowired - private ImageContentBlockRepository imageBlockRepo; - - @Autowired - private ChoiceContentBlockRepository choiceBlockRepo; - - @Autowired - private IStorageEngine storage; - - @Autowired - private ContentBlockRepository contentBlockRepository; - - /* - * (non-Javadoc) - * - * @see java.util.List# - * getAllContentBlocks(java.lang.String) - */ - @Override - public List getAllContentBlocks(String slideId) { - ISlide slide = slideManager.getSlide(slideId); - return slide.getContents(); - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.impl.ITextBlock#createTextBlock(java. - * lang.String, java.lang.String) - */ - @Override - public ITextBlock createTextBlock(String slideId, String text, Integer contentOrder) { - ISlide slide = slideManager.getSlide(slideId); - ITextBlock textBlock = textBlockFactory.createTextBlock(slide, text); - textBlock.setContentOrder(contentOrder); - textBlock = textBlockRepo.save((TextBlock) textBlock); - return textBlock; - } - - private IVSImage saveImage(byte[] image, String filename) { - if (image != null && image.length > 0) { - Tika tika = new Tika(); - String contentType = tika.detect(image); - IVSImage slideContentImage = imageFactory.createImage(filename, contentType); - slideContentImage = imageRepo.save((VSImage) slideContentImage); - return slideContentImage; - } - return null; - } - - private void storeImageFile(byte[] image, IVSImage slideContentImage, String filename) - throws ImageCouldNotBeStoredException { - if (slideContentImage != null) { - String relativePath = null; - try { - relativePath = storage.storeFile(image, filename, slideContentImage.getId()); - } catch (FileStorageException e) { - throw new ImageCouldNotBeStoredException(e); - } - slideContentImage.setParentPath(relativePath); - imageRepo.save((VSImage) slideContentImage); - } - } - - /* - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.services.impl.IContentBlockManager# - * createImageBlock(java.lang.String, java.util.Arrays, java.lang.String) - */ - @Override - public CreationReturnValue createImageBlock(String slideId, byte[] image, String filename, Integer contentOrder) - throws ImageCouldNotBeStoredException { - - ISlide slide = slideManager.getSlide(slideId); - IVSImage slideContentImage = saveImage(image, filename); - CreationReturnValue returnValue = new CreationReturnValue(); - returnValue.setErrorMsgs(new ArrayList<>()); - storeImageFile(image, slideContentImage, filename); - IImageBlock imgBlock = imageBlockFactory.createImageBlock(slide, slideContentImage); - imgBlock.setContentOrder(contentOrder); - ImageBlock imageBlock = imageBlockRepo.save((ImageBlock) imgBlock); - - returnValue.setElement(imageBlock); - return returnValue; - } - - /** - * (non-Javadoc) - * - * @see edu.asu.diging.vspace.core.services.impl.IContentBlockManager# - * createImageBlock(java.lang.String, - * edu.asu.diging.vspace.core.model.IVSImage, java.lang.Integer) - */ - @Override - public CreationReturnValue createImageBlock(String slideId, IVSImage image, Integer contentOrder) { - - CreationReturnValue returnValue = new CreationReturnValue(); - returnValue.setErrorMsgs(new ArrayList<>()); - ISlide slide = slideManager.getSlide(slideId); - IImageBlock imgBlock = imageBlockFactory.createImageBlock(slide, image); - imgBlock.setContentOrder(contentOrder); - ImageBlock imageBlock = imageBlockRepo.save((ImageBlock) imgBlock); - returnValue.setElement(imageBlock); - return returnValue; - } - - /** - * Delete a text block using an id and also decrease content order by 1 of all - * the slide's block which are after this block - * - * @param blockId - id of resource to be deleted. If the id is null then the - * functions returns nothing. - * @param slideId - id of the slide in which the text block with blockId is - * present. - * - */ - - @Override - public void deleteTextBlockById(String blockId, String slideId) throws BlockDoesNotExistException { - if (blockId == null) { - return; - } - Integer contentOrder = null; - Optional contentBlock = contentBlockRepository.findById(blockId); - if (contentBlock.isPresent()) { - contentOrder = contentBlock.get().getContentOrder(); - } else { - throw new BlockDoesNotExistException("Block Id not present"); - } - try { - textBlockRepo.deleteById(blockId); - updateContentOrder(slideId, contentOrder); - } catch (EmptyResultDataAccessException e) { - throw new BlockDoesNotExistException(e); - } - - } - - /** - * Delete an image block using an id and also decrease content order by 1 of all - * the slide's block which are after this block - * - * @param blockId - id of resource to be deleted. If the id is null then the - * functions returns nothing. - * @param slideId - id of the slide in which the Image block with blockId is - * present. - */ - - @Override - public void deleteImageBlockById(String blockId, String slideId) throws BlockDoesNotExistException { - if (blockId == null) { - return; - } - Integer contentOrder = null; - Optional contentBlock = contentBlockRepository.findById(blockId); - if (contentBlock.isPresent()) { - contentOrder = contentBlock.get().getContentOrder(); - } else { - throw new BlockDoesNotExistException("Block Id not present"); - } - try { - imageBlockRepo.deleteById(blockId); - updateContentOrder(slideId, contentOrder); - } catch (EmptyResultDataAccessException e) { - throw new BlockDoesNotExistException(e); - } - - } - - /** - * Delete a choices block using an id and also decrease content order by 1 of - * all the slide's block which are after this block - * - * @param blockId - id of resource to be deleted. If the id is null then the - * functions returns nothing. - * @param slideId - id of the slide in which the choice block with blockId is - * present. - */ - - @Override - public void deleteChoiceBlockById(String blockId, String slideId) throws BlockDoesNotExistException { - if (blockId == null) { - return; - } - Integer contentOrder = null; - Optional contentBlock = contentBlockRepository.findById(blockId); - if (contentBlock.isPresent()) { - contentOrder = contentBlock.get().getContentOrder(); - } else { - throw new BlockDoesNotExistException("Block Id not present"); - } - try { - choiceBlockRepo.deleteById(blockId); - updateContentOrder(slideId, contentOrder); - } catch (EmptyResultDataAccessException e) { - throw new BlockDoesNotExistException(e); - } - - } - - public void updateTextBlock(TextBlock textBlock) { - textBlockRepo.save((TextBlock) textBlock); - } - - @Override - public void updateImageBlock(IImageBlock imageBlock, byte[] image, String filename) - throws ImageCouldNotBeStoredException { - IVSImage slideContentImage = saveImage(image, filename); - storeImageFile(image, slideContentImage, filename); - imageBlock.setImage(slideContentImage); - imageBlockRepo.save((ImageBlock) imageBlock); - } - - @Override - public void updateImageBlock(IImageBlock imageBlock, IVSImage image) { - imageBlock.setImage(image); - imageBlockRepo.save((ImageBlock) imageBlock); - } - - @Override - public IImageBlock getImageBlock(String imgBlockId) { - Optional imgBlock = imageBlockRepo.findById(imgBlockId); - if (imgBlock.isPresent()) { - return imgBlock.get(); - } - return null; - } - - @Override - public ITextBlock getTextBlock(String textBlockId) { - Optional textBlock = textBlockRepo.findById(textBlockId); - if (textBlock.isPresent()) { - return textBlock.get(); - } - return null; - } - - @Override - public IChoiceBlock getChoiceBlock(String choiceBlockId) { - Optional choiceBlock = choiceBlockRepo.findById(choiceBlockId); - if (choiceBlock.isPresent()) { - return choiceBlock.get(); - } - return null; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.impl.IChoiceBlock#createTextBlock(java. - * lang.String, java.lang.String, java.lang.Integer) - */ - @Override - public IChoiceBlock createChoiceBlock(String slideId, List selectedChoices, Integer contentOrder, - boolean showsAll) { - List choices = new ArrayList(); - if (!showsAll) { - choices = selectedChoices.stream().map(choice -> slideManager.getChoice(choice)) - .collect(Collectors.toList()); - } - IChoiceBlock choiceBlock = choiceBlockFactory.createChoiceBlock(slideManager.getSlide(slideId), contentOrder, - choices, showsAll); - return choiceBlockRepo.save((ChoiceBlock) choiceBlock); - } - - /** - * Retrieving the maximum content order for a slide - */ - @Override - public Integer findMaxContentOrder(String slideId) { - return contentBlockRepository.findMaxContentOrder(slideId); - } - - /** - * Adjusting the content order of the blocks of slide once it is dragged and - * changed position. - * - * @param contentBlockList - The list contains the blocks and the updated - * content order corresponding to each blocks. - */ - @Override - public void updateContentOrder(List contentBlockList) throws BlockDoesNotExistException { - - if (contentBlockList == null) { - return; - } - List contentBlocks = new ArrayList<>(); - for (ContentBlock eachBlock : contentBlockList) { - String blockId = eachBlock.getId(); - int contentOrder = eachBlock.getContentOrder(); - Optional contentBlock = contentBlockRepository.findById(blockId); - if (contentBlock.isPresent()) { - ContentBlock contentBlockObj = contentBlock.get(); - contentBlockObj.setContentOrder(contentOrder); - contentBlocks.add(contentBlockObj); - } else { - throw new BlockDoesNotExistException("Block Id not present"); - } - } - contentBlockRepository.saveAll(contentBlocks); - } - - /** - * Decreasing content order by 1 of the slide's block which are after the - * specified contentOrder - * - * @param slideId The Id of the slide for which content orders will be - * updated - * @param contentOrder The content orders of the slides which are greater than - * contentOrder will be updated - */ - private void updateContentOrder(String slideId, Integer contentOrder) { - - List contentBlockList = contentBlockRepository.findBySlide_IdAndContentOrderGreaterThan(slideId, - contentOrder); - if (contentBlockList != null) { - for (ContentBlock eachContentBlock : contentBlockList) { - eachContentBlock.setContentOrder(eachContentBlock.getContentOrder() - 1); - } - contentBlockRepository.saveAll(contentBlockList); - } - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/CreationReturnValue.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/CreationReturnValue.java deleted file mode 100644 index 7f75e89e9..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/CreationReturnValue.java +++ /dev/null @@ -1,25 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.IVSpaceElement; - -public class CreationReturnValue { - - private IVSpaceElement element; - private List errorMsgs; - - public IVSpaceElement getElement() { - return element; - } - public void setElement(IVSpaceElement element) { - this.element = element; - } - public List getErrorMsgs() { - return errorMsgs; - } - public void setErrorMsgs(List errorMsgs) { - this.errorMsgs = errorMsgs; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExhibitionAboutPageManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExhibitionAboutPageManager.java deleted file mode 100644 index 75b1a9caf..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExhibitionAboutPageManager.java +++ /dev/null @@ -1,44 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.List; -import javax.transaction.Transactional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import edu.asu.diging.vspace.core.data.ExhibitionAboutPageRepository; -import edu.asu.diging.vspace.core.model.IExhibition; -import edu.asu.diging.vspace.core.model.impl.Exhibition; -import edu.asu.diging.vspace.core.model.impl.ExhibitionAboutPage; -import edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager; -/** - * - * @author Avirup Biswas - * - */ -@Transactional -@Service -public class ExhibitionAboutPageManager implements IExhibitionAboutPageManager{ - - @Autowired - private ExhibitionAboutPageRepository repo; - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager#findAll() - */ - @Override - public List findAll() { - Iterable aboutpages = repo.findAll(); - List results = new ArrayList<>(); - aboutpages.forEach(e -> results.add(e)); - return results; - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager#store() - */ - @Override - public ExhibitionAboutPage store(ExhibitionAboutPage exhibitionAboutPage) { - return repo.save(exhibitionAboutPage); - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExhibitionManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExhibitionManager.java deleted file mode 100644 index 12902ed23..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExhibitionManager.java +++ /dev/null @@ -1,69 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.ExhibitionRepository; -import edu.asu.diging.vspace.core.model.IExhibition; -import edu.asu.diging.vspace.core.model.impl.Exhibition; -import edu.asu.diging.vspace.core.services.IExhibitionManager; - -@Transactional -@Service -public class ExhibitionManager implements IExhibitionManager { - - @Autowired - private ExhibitionRepository exhibitRepo; - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.IExhibitionManager#storeExhibition(edu. - * asu.diging.vspace.core.model.impl.Exhibition) - */ - @Override - public IExhibition storeExhibition(Exhibition exhibition) { - return exhibitRepo.save(exhibition); - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.IExhibitionManager#getExhibitionById(java - * .lang.String) - */ - @Override - public IExhibition getExhibitionById(String id) { - Optional exhibition = exhibitRepo.findById(id); - if (exhibition.isPresent()) { - return exhibition.get(); - } - return null; - } - - @Override - public List findAll() { - Iterable exhibitions = exhibitRepo.findAll(); - List results = new ArrayList<>(); - exhibitions.forEach(e -> results.add((IExhibition) e)); - return results; - } - - @Override - public IExhibition getStartExhibition() { - // for now we just take the first one created, there shouldn't be more than one - List exhibitions = exhibitRepo.findAllByOrderByIdAsc(); - if (exhibitions.size() > 0) { - return exhibitions.get(0); - } - return null; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExternalLinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExternalLinkManager.java deleted file mode 100644 index 33cd4fb4a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ExternalLinkManager.java +++ /dev/null @@ -1,161 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.List; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.ExternalLinkDisplayRepository; -import edu.asu.diging.vspace.core.data.ExternalLinkRepository; -import edu.asu.diging.vspace.core.data.ImageRepository; -import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; -import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; -import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; -import edu.asu.diging.vspace.core.factory.IExternalLinkDisplayFactory; -import edu.asu.diging.vspace.core.factory.IExternalLinkFactory; -import edu.asu.diging.vspace.core.factory.IImageFactory; -import edu.asu.diging.vspace.core.file.IStorageEngine; -import edu.asu.diging.vspace.core.model.IExternalLink; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.display.DisplayType; -import edu.asu.diging.vspace.core.model.display.ExternalLinkDisplayMode; -import edu.asu.diging.vspace.core.model.display.IExternalLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.ExternalLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.ExternalLink; -import edu.asu.diging.vspace.core.model.impl.ExternalLinkValue; -import edu.asu.diging.vspace.core.services.IExternalLinkManager; -import edu.asu.diging.vspace.core.services.ISpaceManager; - -@Transactional -@Service -public class ExternalLinkManager extends LinkManager - implements IExternalLinkManager { - - @Autowired - private ISpaceManager spaceManager; - - @Autowired - private ExternalLinkRepository externalLinkRepo; - - @Autowired - private ExternalLinkDisplayRepository externalLinkDisplayRepo; - - @Autowired - private IExternalLinkFactory externalLinkFactory; - - @Autowired - private IExternalLinkDisplayFactory externalLinkDisplayFactory; - - @Autowired - private IImageFactory imageFactory; - - @Autowired - private ImageRepository imageRepo; - - @Autowired - private IStorageEngine storage; - - @Override - public List getLinkDisplays(String spaceId) { - return externalLinkDisplayRepo.findExternalLinkDisplaysForSpace(spaceId); - } - - @Override - protected IExternalLink createLinkObject(String title, String id) { - ISpace source = spaceManager.getSpace(id); - IExternalLink link = externalLinkFactory.createExternalLink(title, source); - return externalLinkRepo.save((ExternalLink) link); - } - - @Override - protected ExternalLinkValue getTarget(String externalLink) { - return new ExternalLinkValue(externalLink); - } - - @Override - protected IExternalLinkDisplay updateLinkAndDisplay(IExternalLink link, IExternalLinkDisplay displayLink) { - externalLinkRepo.save((ExternalLink) link); - return externalLinkDisplayRepo.save((ExternalLinkDisplay) displayLink); - } - - @Override - protected IExternalLinkDisplay getDisplayLink(String externalLinkDisplayId) { - Optional externalLinkDisplay = externalLinkDisplayRepo.findById(externalLinkDisplayId); - if (externalLinkDisplay.isPresent()) { - return externalLinkDisplay.get(); - } - return null; - } - - @Override - protected IExternalLink getLink(String externalLinkID) { - Optional externalLink = externalLinkRepo.findById(externalLinkID); - if (externalLink.isPresent()) { - return externalLink.get(); - } - return null; - } - - @Override - protected IExternalLinkDisplay createDisplayLink(IExternalLink link) { - return externalLinkDisplayFactory.createExternalLinkDisplay(link); - } - - @Override - protected void deleteLinkDisplayRepo(IExternalLink link) { - externalLinkDisplayRepo.deleteByExternalLink(link); - } - - @Override - protected void removeFromLinkList(ISpace space, IExternalLink link) { - space.getExternalLinks().remove(link); - } - - @Override - protected void deleteLinkRepo(IExternalLink link) { - externalLinkRepo.delete((ExternalLink) link); - } - - @Override - public IExternalLinkDisplay createLink(String title, String id, float positionX, float positionY, int rotation, - String linkedId, String linkLabel, DisplayType displayType, byte[] linkImage, String imageFilename, - ExternalLinkDisplayMode howToOpen) - throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, SpaceDoesNotExistException { - - /* - * When createLink is called then inside updateLinkAndDisplay(link, displayLink) - * is called to save Link and Display link in the database and return an object - * of ExternalLinkDisplay. When setHowToOpen method is being called on the same - * ExternalLinkDisplay object to set howToOpen field then Hibernate - * automatically persist howToOpen in database. - */ - IExternalLinkDisplay externalLinkDisplay = createLink(title, id, positionX, positionY, rotation, linkedId, - linkLabel, displayType, linkImage, imageFilename); - externalLinkDisplay.setHowToOpen(howToOpen); - return externalLinkDisplay; - - } - - @Override - public IExternalLinkDisplay updateLink(String title, String id, float positionX, float positionY, int rotation, - String linkedId, String linkLabel, String linkId, String linkDisplayId, DisplayType displayType, - byte[] linkImage, String imageFilename, ExternalLinkDisplayMode howToOpen) - throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException { - - /* - * When updateLink is called then inside updateLinkAndDisplay(link, displayLink) - * is called to save Link and Display link in the database and return an object - * of ExternalLinkDisplay. When setHowToOpen method is being called on the same - * ExternalLinkDisplay object to set howToOpen field then Hibernate - * automatically persist howToOpen in database. - */ - IExternalLinkDisplay externalLinkDisplay = updateLink(title, id, positionX, positionY, rotation, linkedId, - linkLabel, linkId, linkDisplayId, displayType, linkImage, imageFilename); - externalLinkDisplay.setHowToOpen(howToOpen); - return externalLinkDisplay; - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ImageService.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ImageService.java deleted file mode 100644 index 6b7f1b98a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ImageService.java +++ /dev/null @@ -1,253 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -import javax.imageio.ImageIO; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.ImageRepository; -import edu.asu.diging.vspace.core.exception.ImageDoesNotExistException; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.ImageCategory; -import edu.asu.diging.vspace.core.model.SortByField; -import edu.asu.diging.vspace.core.model.impl.VSImage; -import edu.asu.diging.vspace.core.services.IImageService; -import edu.asu.diging.vspace.core.services.impl.model.ImageData; -import edu.asu.diging.vspace.web.staff.forms.ImageForm; - -@Service -public class ImageService implements IImageService { - - private final Logger logger = LoggerFactory.getLogger(getClass()); - - @Autowired - private ImageRepository imageRepo; - - @Value("${page_size}") - private int pageSize; - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.impl.IImageService#getImageData(byte[]) - */ - @Override - public ImageData getImageData(byte[] image) { - try { - BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(image)); - if(bufferedImage!=null) { - int imageHeight = bufferedImage.getHeight(); - int imageWidth = bufferedImage.getWidth(); - return new ImageData(imageHeight, imageWidth); - } - } catch (IOException e) { - logger.error("Clould not get image data.", e); - } - return null; - } - - /** - * Method to calculate the biggest possible dimensions of an image given a - * bounding box. - * - * @param image The image to calculate new dimensions for. - * @param width width of bounding box - * @param height height of bounding box - * @return new image dimensions - */ - @Override - public ImageData getImageDimensions(IVSImage image, int width, int height) { - int imageWidth = image.getWidth(); - int imageHeight = image.getHeight(); - - Float newWidth = (new Float(height) / new Float(imageHeight)) * new Float(imageWidth); - if(newWidthtotal pages,last - * page is returned - * @param category. if category value is not null image list is filtered using - * category value - * @return list of images for the requested pageNo and category - */ - @Override - public List getImages(int pageNo, ImageCategory category) { - return getImages(pageNo, category, SortByField.CREATION_DATE.getValue(), Sort.Direction.DESC.toString()); - } - - - @Override - public List getImages(int pageNo) { - return getImages(pageNo, null, SortByField.CREATION_DATE.getValue(), Sort.Direction.DESC.toString()); - } - - /** - * Method to return the requested images - * - * @param pageNo. if pageNo<1, 1st page is returned, if pageNo>total pages,last - * page is returned - * @return list of images in the requested pageNo and requested order. - */ - - @Override - public List getImages(int pageNo, ImageCategory category, String sortedBy, String order) { - Sort sortingParameters = getSortingParameters(sortedBy, order); - pageNo = validatePageNumber(pageNo, category); - Pageable sortByRequestedField = PageRequest.of(pageNo - 1, pageSize, sortingParameters); - Page images; - if(category==null) { - images = imageRepo.findAll(sortByRequestedField); - } else { - images = imageRepo.findByCategories(sortByRequestedField, category); - } - List results = new ArrayList<>(); - if(images != null) { - images.getContent().forEach(i -> results.add(i)); - } - return results; - } - - /** - * Method to return the total image count - * - * @return total count of images in DB - */ - - @Override - public long getTotalImageCount(ImageCategory category) { - if(category==null) { - return imageRepo.count(); - } - return imageRepo.countByCategories(category); - } - - /** - * Method to return the total pages sufficient to display all images - * - * @return totalPages required to display all images in DB - */ - - - @Override - public long getTotalPages(ImageCategory category) { - if(category==null) { - return (imageRepo.count() % pageSize==0) ? imageRepo.count() / pageSize:(imageRepo.count() / pageSize) + 1; - } - long count = imageRepo.countByCategories(category); - return (count%pageSize==0) ? count/pageSize : (count/pageSize)+1; - } - - /** - * Method to return page number after validation - * - * @param pageNo page provided by calling method - * @return 1 if pageNo less than 1 and lastPage if pageNo greater than - * totalPages. - */ - - @Override - public int validatePageNumber(int pageNo, ImageCategory category) { - long totalPages = getTotalPages(category); - if(pageNo<1) { - return 1; - } else if(pageNo>totalPages) { - return (totalPages==0) ? 1:(int) totalPages; - } - return pageNo; - } - - /** - * Method to edit image details - * - * @param imageId - image unique identifier - * @param imageForm - ImageForm with updated values for image fields - * @return throws ImageDoesNotExistException if no image exists with id, - */ - @Override - public void editImage(String imageId, ImageForm imageForm) throws ImageDoesNotExistException { - IVSImage image = getImageById(imageId); - image.setName(imageForm.getName()); - image.setDescription(imageForm.getDescription()); - imageRepo.save((VSImage) image); - } - - /** - * Method to lookup image by id - * - * @param imageId - image unique identifier - * @return image with provided image id if it exists, throws - * ImageDoesNotExistException if no image exists with id, - */ - @Override - public IVSImage getImageById(String imageId) throws ImageDoesNotExistException { - Optional imageOptional = imageRepo.findById(imageId); - if(imageOptional.isPresent()) { - return imageOptional.get(); - } else { - throw new ImageDoesNotExistException("Image doesn't exist for image id" + imageId); - } - } - - @Override - public List findByFilenameOrNameContains(String searchTerm) { - String likeSearchTerm = "%" + searchTerm + "%"; - List results = imageRepo.findByFilenameLikeOrNameLike(likeSearchTerm, likeSearchTerm); - List imageResults = new ArrayList<>(); - results.forEach(r -> imageResults.add(r)); - return imageResults; - } - - @Override - public void addCategory(IVSImage image, ImageCategory category) { - if(image.getCategories()==null) { - image.setCategories(new ArrayList<>()); - } - - if(!image.getCategories().contains(category)) { - image.getCategories().add(category); - } - imageRepo.save((VSImage) image); - } - - @Override - public void removeCategory(IVSImage image, ImageCategory category) { - image.getCategories().remove(category); - imageRepo.save((VSImage) image); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/LinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/LinkManager.java deleted file mode 100644 index f68cf325e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/LinkManager.java +++ /dev/null @@ -1,130 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import org.apache.tika.Tika; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; - -import edu.asu.diging.vspace.core.data.ImageRepository; -import edu.asu.diging.vspace.core.exception.FileStorageException; -import edu.asu.diging.vspace.core.exception.ImageCouldNotBeStoredException; -import edu.asu.diging.vspace.core.exception.LinkDoesNotExistsException; -import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; -import edu.asu.diging.vspace.core.factory.IImageFactory; -import edu.asu.diging.vspace.core.file.IStorageEngine; -import edu.asu.diging.vspace.core.model.ILink; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.IVSpaceElement; -import edu.asu.diging.vspace.core.model.display.DisplayType; -import edu.asu.diging.vspace.core.model.display.ILinkDisplay; -import edu.asu.diging.vspace.core.model.impl.VSImage; -import edu.asu.diging.vspace.core.services.ILinkManager; -import edu.asu.diging.vspace.core.services.ISpaceManager; - -@Transactional -public abstract class LinkManager, T extends IVSpaceElement, U extends ILinkDisplay> - implements ILinkManager { - - @Autowired - private ISpaceManager spaceManager; - - @Autowired - private IImageFactory imageFactory; - - @Autowired - private ImageRepository imageRepo; - - @Autowired - private IStorageEngine storage; - - @Override - public U createLink(String title, String id, float positionX, float positionY, int rotation, String linkedId, - String linkLabel, DisplayType displayType, byte[] linkImage, String imageFilename) - throws SpaceDoesNotExistException, ImageCouldNotBeStoredException, SpaceDoesNotExistException { - - L link = createLinkObject(title, id); - T target = getTarget(linkedId); - link.setName(linkLabel); - link.setTarget(target); - U displayLink = createDisplayLink(link); - setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename); - return updateLinkAndDisplay(link, displayLink); - - } - - @Override - public U updateLink(String title, String id, float positionX, float positionY, int rotation, String linkedId, - String linkLabel, String linkId, String linkDisplayId, DisplayType displayType, byte[] linkImage, - String imageFilename) - throws SpaceDoesNotExistException, LinkDoesNotExistsException, ImageCouldNotBeStoredException { - - validateSpace(id); - - L link = getLink(linkId); - T target = getTarget(linkedId); - link.setName(title); - link.setTarget(target); - U displayLink = getDisplayLink(linkDisplayId); - setDisplayProperties(displayLink, id, positionX, positionY, rotation, displayType, linkImage, imageFilename); - return updateLinkAndDisplay(link, displayLink); - } - - @Override - public void deleteLink(String linkId) { - L link = getLink(linkId); - removeFromLinkList(link.getSpace(), link); - deleteLinkDisplayRepo(link); - deleteLinkRepo(link); - } - - protected abstract void deleteLinkRepo(L link); - - protected abstract void deleteLinkDisplayRepo(L link); - - protected abstract void removeFromLinkList(ISpace space, L link); - - protected abstract U updateLinkAndDisplay(L link, U displayLink); - - protected abstract U getDisplayLink(String linkDisplayId) throws LinkDoesNotExistsException; - - protected abstract L getLink(String linkId); - - protected abstract L createLinkObject(String title, String id); - - protected abstract T getTarget(String linkedId); - - protected abstract U createDisplayLink(L link); - - protected void validateSpace(String id) throws SpaceDoesNotExistException { - ISpace source = spaceManager.getSpace(id); - if (source == null) { - throw new SpaceDoesNotExistException(); - } - } - - protected void setDisplayProperties(ILinkDisplay linkDisplay, String id, float positionX, float positionY, - int rotation, DisplayType displayType, byte[] linkImage, String imageFilename) - throws ImageCouldNotBeStoredException { - linkDisplay.setPositionX(positionX); - linkDisplay.setPositionY(positionY); - linkDisplay.setRotation(rotation); - linkDisplay.setType(displayType != null ? displayType : DisplayType.ARROW); - if (linkImage != null && linkImage.length > 0) { - Tika tika = new Tika(); - String contentType = tika.detect(linkImage); - IVSImage image = imageFactory.createImage(imageFilename, contentType); - image = imageRepo.save((VSImage) image); - String relativePath = null; - try { - relativePath = storage.storeFile(linkImage, imageFilename, image.getId()); - } catch (FileStorageException e) { - throw new ImageCouldNotBeStoredException(e); - } - image.setParentPath(relativePath); - imageRepo.save((VSImage) image); - linkDisplay.setImage(image); - } - - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ModuleLinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ModuleLinkManager.java deleted file mode 100644 index bcecff46d..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ModuleLinkManager.java +++ /dev/null @@ -1,107 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.List; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.ModuleLinkRepository; -import edu.asu.diging.vspace.core.data.display.ModuleLinkDisplayRepository; -import edu.asu.diging.vspace.core.factory.IModuleLinkDisplayFactory; -import edu.asu.diging.vspace.core.factory.IModuleLinkFactory; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.IModuleLink; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.display.IModuleLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.ModuleLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.ModuleLink; -import edu.asu.diging.vspace.core.services.IModuleLinkManager; -import edu.asu.diging.vspace.core.services.IModuleManager; -import edu.asu.diging.vspace.core.services.ISpaceManager; - -@Transactional -@Service -public class ModuleLinkManager extends LinkManager implements IModuleLinkManager{ - - @Autowired - private ISpaceManager spaceManager; - - @Autowired - private IModuleManager moduleManager; - - @Autowired - private IModuleLinkFactory moduleLinkFactory; - - @Autowired - private IModuleLinkDisplayFactory moduleLinkDisplayFactory; - - @Autowired - private ModuleLinkRepository moduleLinkRepo; - - @Autowired - private ModuleLinkDisplayRepository moduleLinkDisplayRepo; - - @Override - public List getLinkDisplays(String spaceId) { - return moduleLinkDisplayRepo.findModuleLinkDisplaysForSpace(spaceId); - } - - @Override - protected IModule getTarget(String linkedModuleId) { - return moduleManager.getModule(linkedModuleId); - } - - @Override - protected IModuleLink createLinkObject(String title, String id) { - ISpace source = spaceManager.getSpace(id); - return moduleLinkFactory.createModuleLink(title, source); - } - - @Override - protected IModuleLinkDisplay updateLinkAndDisplay(IModuleLink link, IModuleLinkDisplay displayLink) { - moduleLinkRepo.save((ModuleLink) link); - return moduleLinkDisplayRepo.save((ModuleLinkDisplay)displayLink); - } - - @Override - protected IModuleLinkDisplay getDisplayLink(String moduleLinkDisplayId){ - Optional moduleLinkDisplay = moduleLinkDisplayRepo.findById(moduleLinkDisplayId); - if(moduleLinkDisplay.isPresent()) { - return moduleLinkDisplay.get(); - } - return null; - } - - @Override - protected IModuleLink getLink(String moduleLinkID){ - Optional moduleLink = moduleLinkRepo.findById(moduleLinkID); - if(moduleLink.isPresent()) { - return moduleLink.get(); - } - return null; - } - - @Override - protected IModuleLinkDisplay createDisplayLink(IModuleLink link) { - return moduleLinkDisplayFactory.createModuleLinkDisplay(link); - } - - @Override - protected void deleteLinkDisplayRepo(IModuleLink link) { - moduleLinkDisplayRepo.deleteByLink(link); - } - - @Override - protected void removeFromLinkList(ISpace space, IModuleLink link) { - space.getModuleLinks().remove(link); - } - - @Override - protected void deleteLinkRepo(IModuleLink link) { - moduleLinkRepo.delete((ModuleLink) link); - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ModuleManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ModuleManager.java deleted file mode 100644 index 29e30db40..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/ModuleManager.java +++ /dev/null @@ -1,92 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.ModuleRepository; -import edu.asu.diging.vspace.core.data.SequenceRepository; -import edu.asu.diging.vspace.core.data.SlideRepository; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.impl.Module; -import edu.asu.diging.vspace.core.services.IModuleManager; - -@Transactional -@Service -public class ModuleManager implements IModuleManager { - - @Autowired - private ModuleRepository moduleRepo; - - @Autowired - private SlideRepository slideRepo; - - @Autowired - private SequenceRepository sequenceRepo; - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.impl.IModuleManager#storeModule(edu.asu. - * diging.vspace.core.model.IModule) - */ - @Override - public IModule storeModule(IModule module) { - return moduleRepo.save((Module) module); - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.impl.IModuleManager#getModule(java.lang. - * String) - */ - @Override - public IModule getModule(String id) { - Optional module = moduleRepo.findById(id); - if (module.isPresent()) { - return module.get(); - } - return null; - } - - @Override - public List getAllModules() { - List modules = new ArrayList<>(); - moduleRepo.findAll().forEach(s -> modules.add(s)); - return modules; - } - - @Override - public List getModuleSlides(String moduleId) { - return new ArrayList<>(slideRepo.findSlidesForModule(moduleId)); - } - - - @Override - public List getModuleSequences(String moduleId) { - return new LinkedList<>(sequenceRepo.findSequencesForModule(moduleId)); - } - - @Override - public ISequence checkIfSequenceExists(String moduleId, String sequenceId) { - return sequenceRepo.findSequenceForModuleAndSequence(moduleId,sequenceId); - } - - @Override - public Page findByNameOrDescription(Pageable requestedPage,String searchText) { - return moduleRepo.findDistinctByNameContainingOrDescriptionContaining(requestedPage,searchText,searchText); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SequenceManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SequenceManager.java deleted file mode 100644 index 1582b308a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SequenceManager.java +++ /dev/null @@ -1,62 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.SequenceRepository; -import edu.asu.diging.vspace.core.factory.ISequenceFactory; -import edu.asu.diging.vspace.core.model.ISequence; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.impl.Sequence; -import edu.asu.diging.vspace.core.services.IModuleManager; -import edu.asu.diging.vspace.core.services.ISequenceManager; -import edu.asu.diging.vspace.core.services.ISlideManager; -import edu.asu.diging.vspace.web.staff.forms.SequenceForm; - -@Transactional -@Service -public class SequenceManager implements ISequenceManager { - - @Autowired - private IModuleManager moduleManager; - - @Autowired - private ISlideManager slideManager; - - @Autowired - private ISequenceFactory sequenceFactory; - - @Autowired - private SequenceRepository sequenceRepo; - - @Override - public ISequence storeSequence(String moduleId, SequenceForm sequenceForm) { - List slides = new ArrayList<>(); - for (String slideId : sequenceForm.getOrderedSlides()) { - slides.add(slideManager.getSlide(slideId)); - } - ISequence sequence = sequenceFactory.createSequence(moduleManager.getModule(moduleId), sequenceForm, slides); - return sequenceRepo.save((Sequence) sequence); - - } - - @Override - public ISequence getSequence(String sequenceId) { - Optional mayBeSequence = sequenceRepo.findById(sequenceId); - if (mayBeSequence.isPresent()) { - return mayBeSequence.get(); - } - return null; - } - - @Override - public void updateSequence(ISequence sequence) { - sequenceRepo.save((Sequence) sequence); - } -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SetupManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SetupManager.java deleted file mode 100644 index 012c78ee5..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SetupManager.java +++ /dev/null @@ -1,58 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import javax.annotation.PostConstruct; -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.stereotype.Service; - -import edu.asu.diging.simpleusers.core.exceptions.UserAlreadyExistsException; -import edu.asu.diging.simpleusers.core.model.IUser; -import edu.asu.diging.simpleusers.core.model.Role; -import edu.asu.diging.simpleusers.core.model.impl.User; -import edu.asu.diging.simpleusers.core.service.IUserManager; -import edu.asu.diging.vspace.core.services.ISetupManager; - -@Transactional -@Service -@PropertySource({"${appConfigFile:classpath:}/app.properties"}) -public class SetupManager implements ISetupManager { - - @Autowired - private Environment env; - - @Autowired - private IUserManager userManager; - - private String adminUsername; - - @PostConstruct - public void init() { - adminUsername = env.getProperty("admin_username"); - } - - /* (non-Javadoc) - * @see edu.asu.diging.vspace.core.services.impl.ISetupManager#isSetup() - */ - @Override - public boolean isSetup() { - IUser admin = userManager.findByUsername(adminUsername); - if (admin != null) { - return true; - } - return false; - } - - @Override - public IUser setupAdmin(String password) throws UserAlreadyExistsException { - IUser user = new User(); - user.setUsername(adminUsername); - user.setPassword(password); - userManager.create(user); - userManager.approveAccount(adminUsername, adminUsername); - userManager.addRole(adminUsername, adminUsername, Role.ADMIN); - return user; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SlideManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SlideManager.java deleted file mode 100644 index fefd99c1e..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SlideManager.java +++ /dev/null @@ -1,170 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.apache.commons.collections.CollectionUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.BranchingPointRepository; -import edu.asu.diging.vspace.core.data.ChoiceRepository; -import edu.asu.diging.vspace.core.data.SequenceRepository; -import edu.asu.diging.vspace.core.data.SlideRepository; -import edu.asu.diging.vspace.core.factory.impl.ChoiceFactory; -import edu.asu.diging.vspace.core.factory.impl.SlideFactory; -import edu.asu.diging.vspace.core.model.IBranchingPoint; -import edu.asu.diging.vspace.core.model.IChoice; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.display.SlideType; -import edu.asu.diging.vspace.core.model.impl.BranchingPoint; -import edu.asu.diging.vspace.core.model.impl.Choice; -import edu.asu.diging.vspace.core.model.impl.Sequence; -import edu.asu.diging.vspace.core.model.impl.Slide; -import edu.asu.diging.vspace.core.services.ISlideManager; -import edu.asu.diging.vspace.web.staff.forms.SlideForm; - -@Service -public class SlideManager implements ISlideManager { - - @Autowired - private SlideFactory slideFactory; - - @Autowired - private SlideRepository slideRepo; - - @Autowired - private SequenceRepository sequenceRepo; - - @Autowired - private BranchingPointRepository bpointRepo; - - @Autowired - private ChoiceRepository choiceRepo; - - @Autowired - private ChoiceFactory choiceFactory; - - private final Logger logger = LoggerFactory.getLogger(getClass()); - - @Override - public ISlide createSlide(IModule module, SlideForm slideForm, SlideType type) { - ISlide slide = slideFactory.createSlide(module, slideForm, type); - return slideRepo.save((Slide) slide); - } - - @Override - public IBranchingPoint createBranchingPoint(IModule module, SlideForm slideForm, SlideType type) { - ISlide branchingPoint = slideFactory.createSlide(module, slideForm, type); - return bpointRepo.save((BranchingPoint) branchingPoint); - } - - @Override - public void updateBranchingPoint(IBranchingPoint branchingPoint, List editedChoiceSequenceIds) { - List existingChoices = branchingPoint.getChoices(); - List existingChoiceSequenceIds = existingChoices.stream() - .map(choiceSequence -> choiceSequence.getSequence().getId()).collect(Collectors.toList()); - List deletedChoiceSequenceIds = (List) CollectionUtils.subtract(existingChoiceSequenceIds, - editedChoiceSequenceIds); - List addedChoiceSequenceIds = (List) CollectionUtils.subtract(editedChoiceSequenceIds, - existingChoiceSequenceIds); - List newlyAddedChoices = choiceFactory.createChoices(addedChoiceSequenceIds); - existingChoices.addAll(newlyAddedChoices); - List choicesToDelete = existingChoices.stream() - .filter(choice -> deletedChoiceSequenceIds.contains(choice.getSequence().getId())) - .collect(Collectors.toList()); - existingChoices.removeIf(choice -> deletedChoiceSequenceIds.contains(choice.getSequence().getId())); - branchingPoint.setChoices(existingChoices); - bpointRepo.save((BranchingPoint) branchingPoint); - /* - * We did not use deleteAll on choiceRepo as choicesToDelete is a list of - * IChoice and cannot be casted into Choice and objects of other type can also - * implement IChoice - */ - for (IChoice deletedChoice : choicesToDelete) { - choiceRepo.deleteById(deletedChoice.getId()); - } - } - - @Override - public ISlide getSlide(String slideId) { - Optional slide = slideRepo.findById(slideId); - if (slide.isPresent()) { - return slide.get(); - } - return null; - } - - @Override - public IChoice getChoice(String choiceId) { - Optional choice = choiceRepo.findById(choiceId); - if (choice.isPresent()) { - return choice.get(); - } - return null; - } - - @Override - public void updateSlide(Slide slide) { - slideRepo.save((Slide) slide); - } - - @Override - public void deleteSlideById(String slideId, String moduleId) { - if (slideId == null) { - logger.error("Slide Id cannot be null."); - return; - } - - List sequences = sequenceRepo.findSequencesForModule(moduleId); - Slide slideObj = (Slide) getSlide(slideId); - List slideObjToRemove = new ArrayList<>(); - slideObjToRemove.add(slideObj); - if (slideObj == null) { - return; - } - for (Sequence sequence : sequences) { - if (sequence.getSlides().contains(slideObj)) { - sequence.getSlides().removeAll(slideObjToRemove); - sequenceRepo.save(sequence); - } - } - try { - - slideRepo.delete((Slide) getSlide(slideId)); - - } catch (IllegalArgumentException exception) { - logger.error("Unable to delete slide.", exception); - } - } - - @Override - public List getSlideSequences(String slideId, String moduleId) { - - List sequences = sequenceRepo.findSequencesForModule(moduleId); - List sequenceSlides = new ArrayList<>(); - for (Sequence sequence : sequences) { - Iterator slideIterator = sequence.getSlides().iterator(); - while (slideIterator.hasNext()) { - if (slideIterator.next().getId().equals(slideId)) { - sequenceSlides.add(sequence); - } - } - } - return sequenceSlides; - } - - @Override - public Page findByNameOrDescription(Pageable requestedPage, String searchText) { - - return slideRepo.findDistinctByNameContainingOrDescriptionContaining(requestedPage, searchText,searchText); - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceDisplayManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceDisplayManager.java deleted file mode 100644 index 260b9a55d..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceDisplayManager.java +++ /dev/null @@ -1,90 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.io.IOException; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.PropertySource; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.display.SpaceDisplayRepository; -import edu.asu.diging.vspace.core.factory.ISpaceDisplayFactory; -import edu.asu.diging.vspace.core.file.IStorageEngine; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.display.ISpaceDisplay; -import edu.asu.diging.vspace.core.model.display.impl.SpaceDisplay; -import edu.asu.diging.vspace.core.services.IImageService; -import edu.asu.diging.vspace.core.services.ISpaceDisplayManager; -import edu.asu.diging.vspace.core.services.impl.model.ImageData; - -@Service -@PropertySource("classpath:config.properties") -public class SpaceDisplayManager implements ISpaceDisplayManager { - - private final Logger logger = LoggerFactory.getLogger(getClass()); - - @Value("${bg_image_max_width}") - private int maxBgImageWidth; - - @Value("${bg_image_max_height}") - private int maxBgImageHeight; - - @Autowired - private SpaceDisplayRepository spaceDisplayRepo; - - @Autowired - private ISpaceDisplayFactory displayFactory; - - @Autowired - private IImageService imageService; - - @Autowired - private IStorageEngine storage; - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.impl.ISpaceDisplayManager#getBySpace(edu. - * asu.diging.vspace.core.model.ISpace) - */ - @Override - public ISpaceDisplay getBySpace(ISpace space) { - IVSImage image = space!=null ? space.getImage():null; - List displays = spaceDisplayRepo.getBySpace(space); - ISpaceDisplay display = displays.isEmpty() ? null:displays.get(0); - if(display==null) { - display = displayFactory.createSpaceDisplay(); - } - if(image!=null) { - if(image.getWidth()<=0 || image.getHeight()<=0) { - try { - ImageData data = imageService - .getImageData(storage.getImageContent(image.getId(), image.getFilename())); - image.setWidth(data.getWidth()); - image.setHeight(data.getHeight()); - } catch (IOException e) { - logger.error("Could not get image.", e); - return display; - } - } - - if(image.getWidth()<=maxBgImageWidth && image.getHeight()<=maxBgImageHeight) { - display.setWidth(image.getWidth()); - display.setHeight(image.getHeight()); - return display; - } - - ImageData data = imageService.getImageDimensions(image, maxBgImageWidth, maxBgImageHeight); - display.setHeight(data.getHeight()); - display.setWidth(data.getWidth()); - spaceDisplayRepo.save((SpaceDisplay) display); - } - - return display; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceLinkManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceLinkManager.java deleted file mode 100644 index 4bddbc5fd..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceLinkManager.java +++ /dev/null @@ -1,128 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.SpaceLinkRepository; -import edu.asu.diging.vspace.core.data.display.SpaceLinkDisplayRepository; -import edu.asu.diging.vspace.core.factory.ISpaceLinkDisplayFactory; -import edu.asu.diging.vspace.core.factory.ISpaceLinkFactory; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.ISpaceLink; -import edu.asu.diging.vspace.core.model.display.ISpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.SpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.SpaceLink; -import edu.asu.diging.vspace.core.model.impl.SpaceStatus; -import edu.asu.diging.vspace.core.services.ISpaceLinkManager; -import edu.asu.diging.vspace.core.services.ISpaceManager; - - -@Transactional -@Service -public class SpaceLinkManager extends LinkManager implements ISpaceLinkManager{ - - @Autowired - private ISpaceManager spaceManager; - - @Autowired - private ISpaceLinkFactory spaceLinkFactory; - - @Autowired - private ISpaceLinkDisplayFactory spaceLinkDisplayFactory; - - @Autowired - private SpaceLinkRepository spaceLinkRepo; - - @Autowired - private SpaceLinkDisplayRepository spaceLinkDisplayRepo; - - @Override - public List getLinkDisplays(String spaceId) { - return spaceLinkDisplayRepo.findSpaceLinkDisplaysForSpace(spaceId); - } - - @Override - protected ISpaceLink createLinkObject(String title, String id) { - - ISpace source = spaceManager.getSpace(id); - ISpaceLink link = spaceLinkFactory.createSpaceLink(title, source); - return spaceLinkRepo.save((SpaceLink) link); - } - - @Override - protected ISpace getTarget(String linkedSpaceId) { - return spaceManager.getSpace(linkedSpaceId); - } - - @Override - protected ISpaceLinkDisplay getDisplayLink(String spaceLinkDisplayId){ - Optional spaceLinkDisplay = spaceLinkDisplayRepo.findById(spaceLinkDisplayId); - if(spaceLinkDisplay.isPresent()) { - return spaceLinkDisplay.get(); - } - - return null; - } - - @Override - protected ISpaceLink getLink(String spaceLinkId){ - Optional spaceLink = spaceLinkRepo.findById(spaceLinkId); - if(spaceLink.isPresent()) { - return spaceLink.get(); - } - return null; - } - - @Override - protected ISpaceLinkDisplay updateLinkAndDisplay(ISpaceLink link, ISpaceLinkDisplay displayLink) { - spaceLinkRepo.save((SpaceLink) link); - return spaceLinkDisplayRepo.save((SpaceLinkDisplay) displayLink); - } - - @Override - protected ISpaceLinkDisplay createDisplayLink(ISpaceLink link){ - return spaceLinkDisplayFactory.createSpaceLinkDisplay(link); - } - - @Override - protected void deleteLinkDisplayRepo(ISpaceLink link) { - spaceLinkDisplayRepo.deleteByLink(link); - } - - @Override - protected void removeFromLinkList(ISpace space, ISpaceLink link) { - space.getSpaceLinks().remove(link); - } - - @Override - protected void deleteLinkRepo(ISpaceLink link) { - spaceLinkRepo.delete((SpaceLink)link); - } - - @Override - public List getSpaceLinkForGivenOrNullSpaceStatus(String spaceId, SpaceStatus spaceStatus){ - return new ArrayList<>(spaceLinkDisplayRepo.findSpaceLinksForGivenOrNullSpaceStatus(spaceId,spaceStatus)); - } - - @Override - public void deleteSpaceLinksWithSourceAsNull(){ - List spaceLinks = spaceLinkRepo.findBySourceSpaceIsNull(); - //need to delete all space link displays before deleting spacelink - spaceLinkDisplayRepo.deleteByLinkIn(spaceLinks); - - spaceLinkRepo.deleteBySourceSpaceIdIsNull(); - } - - @Override - public Long getCountOfSpaceLinksWithSourceNull(){ - return spaceLinkRepo.countBySourceSpaceIsNull(); - } - - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceManager.java deleted file mode 100644 index 63884749c..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceManager.java +++ /dev/null @@ -1,300 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.apache.tika.Tika; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.PropertySource; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.ExhibitionRepository; -import edu.asu.diging.vspace.core.data.ImageRepository; -import edu.asu.diging.vspace.core.data.SpaceLinkRepository; -import edu.asu.diging.vspace.core.data.SpaceRepository; -import edu.asu.diging.vspace.core.data.display.SpaceDisplayRepository; -import edu.asu.diging.vspace.core.data.display.SpaceLinkDisplayRepository; -import edu.asu.diging.vspace.core.exception.FileStorageException; -import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; -import edu.asu.diging.vspace.core.factory.IImageFactory; -import edu.asu.diging.vspace.core.factory.ISpaceDisplayFactory; -import edu.asu.diging.vspace.core.file.IStorageEngine; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.model.IVSImage; -import edu.asu.diging.vspace.core.model.display.ISpaceDisplay; -import edu.asu.diging.vspace.core.model.display.impl.SpaceDisplay; -import edu.asu.diging.vspace.core.model.impl.Exhibition; -import edu.asu.diging.vspace.core.model.impl.Space; -import edu.asu.diging.vspace.core.model.impl.SpaceLink; -import edu.asu.diging.vspace.core.model.impl.SpaceStatus; -import edu.asu.diging.vspace.core.model.impl.VSImage; -import edu.asu.diging.vspace.core.services.IExhibitionManager; -import edu.asu.diging.vspace.core.services.IImageService; -import edu.asu.diging.vspace.core.services.ISpaceManager; -import edu.asu.diging.vspace.core.services.impl.model.ImageData; - -@Transactional -@Service -@PropertySource("classpath:/config.properties") -public class SpaceManager implements ISpaceManager { - - @Autowired - private SpaceRepository spaceRepo; - - @Autowired - private SpaceDisplayRepository spaceDisplayRepo; - - @Autowired - private ImageRepository imageRepo; - - @Autowired - private IStorageEngine storage; - - @Autowired - private ISpaceDisplayFactory spaceDisplayFactory; - - @Autowired - private IImageFactory imageFactory; - - @Autowired - private IImageService imageService; - - @Autowired - private SpaceLinkRepository spaceLinkRepo; - - @Autowired - private IExhibitionManager exhibitionManager; - - @Autowired - private ExhibitionRepository exhibitRepo; - - @Autowired - private SpaceLinkDisplayRepository spaceLinkDisplayRepo; - - private final Logger logger = LoggerFactory.getLogger(getClass()); - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.impl.ISpaceManager#storeSpace(edu.asu. - * diging.vspace.core.model.ISpace,java.util.Arrays, java.lang.String) - */ - @Override - public CreationReturnValue storeSpace(ISpace space, byte[] image, String filename) { - IVSImage bgImage = null; - List displays = null; - if (space.getId() != null) { - displays = spaceDisplayRepo.getBySpace(space); - } - ISpaceDisplay spaceDisplay; - if (displays == null || displays.isEmpty()) { - spaceDisplay = spaceDisplayFactory.createSpaceDisplay(); - } else { - spaceDisplay = displays.get(0); - } - - if (image != null && image.length > 0) { - Tika tika = new Tika(); - String contentType = tika.detect(image); - - bgImage = imageFactory.createImage(filename, contentType); - bgImage = imageRepo.save((VSImage) bgImage); - } - - CreationReturnValue returnValue = new CreationReturnValue(); - returnValue.setErrorMsgs(new ArrayList<>()); - - if (bgImage != null) { - String relativePath = null; - try { - relativePath = storage.storeFile(image, filename, bgImage.getId()); - } catch (FileStorageException e) { - returnValue.getErrorMsgs().add("Background image could not be stored: " + e.getMessage()); - } - bgImage.setParentPath(relativePath); - ImageData imageData = imageService.getImageData(image); - if (imageData != null) { - bgImage.setHeight(imageData.getHeight()); - bgImage.setWidth(imageData.getWidth()); - } - imageRepo.save((VSImage) bgImage); - space.setImage(bgImage); - spaceDisplay.setHeight(bgImage.getHeight()); - spaceDisplay.setWidth(bgImage.getWidth()); - } - - space = spaceRepo.save((Space) space); - spaceDisplay.setSpace(space); - spaceDisplayRepo.save((SpaceDisplay) spaceDisplay); - returnValue.setElement(space); - return returnValue; - } - - /* - * (non-Javadoc) - * - * @see - * edu.asu.diging.vspace.core.services.impl.ISpaceManager#storeSpace(edu.asu. - * diging.vspace.core.model.ISpace,edu.asu.diging.vspace.core.model.impl. - * VSImage) - */ - @Override - public CreationReturnValue storeSpace(ISpace space, IVSImage image) { - List displays = null; - if (space.getId() != null) { - displays = spaceDisplayRepo.getBySpace(space); - } - ISpaceDisplay spaceDisplay; - if (displays == null || displays.isEmpty()) { - spaceDisplay = spaceDisplayFactory.createSpaceDisplay(); - } else { - spaceDisplay = displays.get(0); - } - - if (image != null) { - space.setImage(image); - spaceDisplay.setHeight(image.getHeight()); - spaceDisplay.setWidth(image.getWidth()); - } - - CreationReturnValue returnValue = new CreationReturnValue(); - returnValue.setErrorMsgs(new ArrayList<>()); - - space = spaceRepo.save((Space) space); - spaceDisplay.setSpace(space); - spaceDisplayRepo.save((SpaceDisplay) spaceDisplay); - returnValue.setElement(space); - return returnValue; - } - - @Override - public ISpace getSpace(String id) { - Optional space = spaceRepo.findById(id); - if (space != null && space.isPresent()) { - return space.get(); - } - return null; - } - - @Override - public ISpace getFullyLoadedSpace(String id) { - ISpace space = getSpace(id); - if (space == null) { - return null; - } - // load lazy collections - space.getSpaceLinks().size(); - space.getModuleLinks().size(); - space.getExternalLinks().size(); - return space; - } - - @Override - public List getAllSpaces() { - List spaces = new ArrayList<>(); - spaceRepo.findAll().forEach(s -> spaces.add(s)); - return spaces; - } - - @Override - public List getSpacesWithStatus(SpaceStatus status) { - List spaces = new ArrayList<>(); - spaceRepo.findAllBySpaceStatus(status).forEach(s -> spaces.add(s)); - return spaces; - } - - /** - * Method to delete space based on id - * - * @param id - * if id is null throws exception, else delete corresponding space - * @throws SpaceDoesNotExistException - */ - @Override - public void deleteSpaceById(String id) { - if (id != null) { - List spaceLinks = spaceLinkRepo.getLinkedSpaces(id); - List fromSpaceLinks = new ArrayList<>(); - Optional space = spaceRepo.findById(id); - if (space.isPresent()) { - fromSpaceLinks = spaceLinkRepo.findByTargetSpace(space.get()); - } - Exhibition exhibition = (Exhibition) exhibitionManager.getStartExhibition(); - // When space has other links attached to it - // To delete links that access to the space getting deleted and replacing it as - // null - for (SpaceLink spaceLink : fromSpaceLinks) { - spaceLink.setTargetSpace(null); - spaceLinkRepo.save(spaceLink); - } - // To delete the links on the space getting deleted - for (SpaceLink spaceLink : spaceLinks) { - spaceLinkDisplayRepo.deleteBySpaceLinkId(spaceLink.getId()); - } - spaceLinkRepo.deleteBySourceSpaceId(id); - // If the space is startSpace, we delete the space from the exhibition first. - if (exhibition != null && exhibition.getStartSpace() != null - && exhibition.getStartSpace().getId().equalsIgnoreCase(id)) { - exhibition.setStartSpace(null); - exhibitRepo.save(exhibition); - } - // When space has no other links attached to it - spaceDisplayRepo.deleteBySpaceId(id); - spaceRepo.deleteById(id); - } - } - - @Override - public List getOutgoingLinks(String id) { - - return spaceLinkRepo.getLinkedSpaces(id); - } - - @Override - public List getIncomingLinks(String id) { - Optional space = spaceRepo.findById(id); - if (space.isPresent()) { - return spaceLinkRepo.findByTargetSpace(space.get()); - } else { - return new ArrayList<>(); - } - } - - @Override - public List getSpacesWithImageId(String imageId) { - if (imageId == null) { - return null; - } - Optional vsImage = imageRepo.findById(imageId); - if (!vsImage.isPresent()) { - return null; - } - List spaces = new ArrayList<>(); - spaceRepo.findAllByImageId(imageId).forEach(space -> spaces.add(space)); - return spaces; - } - - @Override - public Iterable addIncomingLinkInfoToSpaces(Iterable spaces) { - Iterator iterator = spaces.iterator(); - while (iterator.hasNext()) { - Space space = iterator.next(); - space.setIncomingLinks((spaceLinkRepo.findByTargetSpace(space)).size() > 0 ? true : false); - } - return spaces; - } - - @Override - public Page findByNameOrDescription(Pageable requestedPage, String searchText) { - return spaceRepo.findDistinctByNameContainingOrDescriptionContaining(requestedPage, searchText,searchText); - } -} \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverview.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverview.java deleted file mode 100644 index 3d209a49a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverview.java +++ /dev/null @@ -1,86 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.List; - -public class SpaceOverview { - - private String name; - - private String id; - - private String link; - - private String img; - - private boolean module; - - private boolean unpublished; - - private boolean hideIncomingLinks; - - private List edges; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getLink() { - return link; - } - - public void setLink(String link) { - this.link = link; - } - - public String getImg() { - return img; - } - - public void setImg(String img) { - this.img = img; - } - - public boolean isModule() { - return module; - } - - public void setModule(boolean module) { - this.module = module; - } - - public boolean isUnpublished() { - return unpublished; - } - - public void setUnpublished(boolean unpublished) { - this.unpublished = unpublished; - } - - public boolean isHideIncomingLinks() { - return hideIncomingLinks; - } - - public void setHideIncomingLinks(boolean hideIncomingLinks) { - this.hideIncomingLinks = hideIncomingLinks; - } - - public List getEdges() { - return edges; - } - - public void setEdges(List edges) { - this.edges = edges; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewDataFormatter.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewDataFormatter.java deleted file mode 100644 index 43ad85030..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewDataFormatter.java +++ /dev/null @@ -1,41 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.fasterxml.jackson.core.JsonProcessingException; - -/** - * This class is used to get the space overview graph in desired data format. - * - * @author abiswa15 - * - */ - -@Component -public class SpaceOverviewDataFormatter { - - @Autowired - private SpaceOverviewJsonFormat spaceOverviewJsonFormat; - - /** - * * This method is used to get the space overview graph in JSON format. - * - * @param contextPath The context path of the application. - * @param spacesToToSpacesAndModulesMap The map which contains mapping between a - * space to all linked spaces and modules. - * - */ - public Map getJsonFormat(String contextPath, - Map> spacesToToSpacesAndModulesMap) throws JsonProcessingException { - - String nodesJson = spaceOverviewJsonFormat.createNodes(contextPath,spacesToToSpacesAndModulesMap); - Map jsonFormatMap = new HashMap<>(); - jsonFormatMap.put("nodesJson", nodesJson); - return jsonFormatMap; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewJsonFormat.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewJsonFormat.java deleted file mode 100644 index 0ef87b83a..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewJsonFormat.java +++ /dev/null @@ -1,166 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -import edu.asu.diging.vspace.core.data.ModuleRepository; -import edu.asu.diging.vspace.core.data.SpaceRepository; -import edu.asu.diging.vspace.core.model.impl.Module; -import edu.asu.diging.vspace.core.model.impl.Space; -import edu.asu.diging.vspace.core.model.impl.SpaceStatus; -import edu.asu.diging.vspace.web.api.ImageApiController; -import edu.asu.diging.vspace.web.staff.ModuleController; -import edu.asu.diging.vspace.web.staff.SpaceController; - -/** - * This class is used to create nodes and edges of the space overview graph in - * JSON format. - * - * @author abiswa15 - * - */ -@Component -public class SpaceOverviewJsonFormat { - - @Autowired - private SpaceRepository spaceRepo; - - @Autowired - private ModuleRepository moduleRepo; - - /** - * creating list of SpaceOverview object for space nodes in the spaceoverview - * graph - * - * @param contextPath This variable holds the contextpath of the application - * @param SpaceNodeList List of spaces - * @throws JsonProcessingException - */ - private List constructNodesForSpaces(String contextPath, Iterable spaceNodeList) - throws JsonProcessingException { - - List spaceVertexList = new ArrayList<>(); - if (spaceNodeList != null) { - for (Space spaceNode : spaceNodeList) { - SpaceOverview spaceOverview = createSpaceNode(spaceNode, contextPath); - spaceVertexList.add(spaceOverview); - } - } - return spaceVertexList; - } - - /** - * creating list of SpaceOverview object for module nodes in the spaceoverview - * graph - * - * @param contextPath This variable holds the contextpath of the application - * @param moduleNodeList List of modules - * @throws JsonProcessingException - */ - private List constructNodesForModules(String contextPath, Iterable moduleNodeList) - throws JsonProcessingException { - - List moduleVertexList = new ArrayList<>(); - - if (moduleNodeList != null) { - for (Module moduleNode : moduleNodeList) { - SpaceOverview spaceOverview = createModuleNode(moduleNode, contextPath); - moduleVertexList.add(spaceOverview); - } - } - return moduleVertexList; - } - - /** - * Populating space node in the spaceoverview graph - * - * @param space passing the space object - * - * @param contextPath This variable holds the contextpath of the application - */ - private SpaceOverview createSpaceNode(Space space, String contextPath) { - - SpaceOverview spaceOverview = new SpaceOverview(); - spaceOverview.setName(space.getName()); - spaceOverview.setId(space.getId()); - StringBuilder linkPathBuilder = new StringBuilder(); - linkPathBuilder.append(contextPath); - linkPathBuilder.append(SpaceController.STAFF_SPACE_PATH); - linkPathBuilder.append(space.getId()); - spaceOverview.setLink(linkPathBuilder.toString()); - StringBuilder imagePathBuilder = new StringBuilder(); - imagePathBuilder.append(contextPath); - imagePathBuilder.append(ImageApiController.API_IMAGE_PATH); - imagePathBuilder.append(space.getImage().getId()); - spaceOverview.setImg(imagePathBuilder.toString()); - spaceOverview.setModule(false); - if (space.getSpaceStatus() != null && (space.getSpaceStatus().equals(SpaceStatus.UNPUBLISHED))) { - spaceOverview.setUnpublished(true); - } else { - spaceOverview.setUnpublished(false); - } - if (space.isHideIncomingLinks()) { - spaceOverview.setHideIncomingLinks(true); - } else { - spaceOverview.setHideIncomingLinks(false); - } - return spaceOverview; - } - - /** - * Populating module node in the spaceoverview graph - * - * @param module module model object - * - * @param contextPath This variable holds the contextpath of the application - */ - private SpaceOverview createModuleNode(Module module, String contextPath) { - - SpaceOverview spaceOverview = new SpaceOverview(); - spaceOverview.setName(module.getName()); - spaceOverview.setId(module.getId()); - StringBuilder linkPathBuilder = new StringBuilder(); - linkPathBuilder.append(contextPath); - linkPathBuilder.append(ModuleController.STAFF_MODULE_PATH); - linkPathBuilder.append(module.getId()); - spaceOverview.setLink(linkPathBuilder.toString()); - spaceOverview.setImg(""); - spaceOverview.setModule(true); - return spaceOverview; - } - - /** - * @param contextPath This variable holds the contextpath of the - * application - * @param spacesToSpacesAndModulesMap - * @return JSON with all nodes - * @throws JsonProcessingException - */ - public String createNodes(String contextPath, Map> spacesToSpacesAndModulesMap) - throws JsonProcessingException { - - Iterable allModulesList = moduleRepo.findAll(); - List moduleVertexList = constructNodesForModules(contextPath, allModulesList); - Iterable allSpacesList = spaceRepo.findAll(); - List spaceVertexList = constructNodesForSpaces(contextPath, allSpacesList); - List allVertexList = new ArrayList<>(); - for (SpaceOverview spaceVertex : spaceVertexList) { - List edges = spacesToSpacesAndModulesMap.get(spaceVertex.getId()); - if (edges != null) { - spaceVertex.setEdges(edges); - } - } - allVertexList.addAll(spaceVertexList); - allVertexList.addAll(moduleVertexList); - ObjectMapper mapper = new ObjectMapper(); - return mapper.writeValueAsString(allVertexList); - } - -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewManager.java deleted file mode 100644 index a9acdc2a6..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/SpaceOverviewManager.java +++ /dev/null @@ -1,131 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.SpaceRepository; -import edu.asu.diging.vspace.core.data.display.ModuleLinkDisplayRepository; -import edu.asu.diging.vspace.core.data.display.SpaceLinkDisplayRepository; -import edu.asu.diging.vspace.core.model.display.impl.ModuleLinkDisplay; -import edu.asu.diging.vspace.core.model.display.impl.SpaceLinkDisplay; -import edu.asu.diging.vspace.core.model.impl.Space; -import edu.asu.diging.vspace.core.services.ISpaceOverviewManager; - -@Service -public class SpaceOverviewManager implements ISpaceOverviewManager { - - @Autowired - private SpaceRepository spaceRepo; - - @Autowired - private SpaceLinkDisplayRepository spaceLinkDisplayRepository; - - @Autowired - private ModuleLinkDisplayRepository moduleLinkDisplayRepository; - - /** - * This method is used to fetch all moduleLinks which are connected to a space. - * - * @return a Map whose key is spaceId and value is list of moduleLinks connected - * with the spaceId. - */ - @Override - public Map> getSpaceToModuleLinks() { - - Map> spaceToModuleLinksMap = new HashMap<>(); - Iterable spaceToModuleLinksList = moduleLinkDisplayRepository.findAll(); - - for (ModuleLinkDisplay link : spaceToModuleLinksList) { - if (link.getLink() != null && link.getLink().getSpace() != null) { - String spaceId = link.getLink().getSpace().getId(); - if (!spaceToModuleLinksMap.containsKey(spaceId)) { - spaceToModuleLinksMap.put(spaceId, new HashSet<>()); - } - spaceToModuleLinksMap.get(spaceId).add(link); - } - } - return spaceToModuleLinksMap; - } - - /** - * This method is used to fetch all linked spacelinks corresponding to a - * space(i.e. a space connected to other spaces) - * - * @return a Map whose key is spaceId and value is list of spaceLinks connected - * with the spaceId. - */ - @Override - public Map> getSpaceToSpaceLinks() { - - Map> spaceToSpaceLinksMap = new HashMap<>(); - Iterable spaceToSpaceLinksList = spaceLinkDisplayRepository.findAll(); - for (SpaceLinkDisplay link : spaceToSpaceLinksList) { - if (link.getLink() != null && link.getLink().getSourceSpace() != null) { - String targetSpaceId = null; - if (link.getLink().getTargetSpace() != null) { - targetSpaceId = link.getLink().getTargetSpace().getId(); - } - String spaceId = link.getLink().getSourceSpace().getId(); - if (targetSpaceId != spaceId) { - if (!spaceToSpaceLinksMap.containsKey(spaceId)) { - spaceToSpaceLinksMap.put(spaceId, new HashSet<>()); - } - spaceToSpaceLinksMap.get(spaceId).add(link); - } - } - } - return spaceToSpaceLinksMap; - } - - /** - * To retrieve all space to space and space to module links corresponding to - * each space(i.e. a space connected with all other spaces and modules) - * - * @param spaceLinkMap For holding list of all links corresponding to - * each space - * @param spaceToModuleLinksMap For getting list of links from one space to - * other modules - * @param spaceToSpaceLinksMap For getting list of links from one space to - * other spaces - */ - @Override - public Map> getSpacesToSpacesAndModulesMap( - Map> spaceToModuleLinksMap, - Map> spaceToSpaceLinksMap) { - - Map> spaceLinkMap = new LinkedHashMap<>(); - Iterable allSpacesList = spaceRepo.findAll(); - if (allSpacesList != null) { - for (Space space : allSpacesList) { - Set spaceToModulelinksList = spaceToModuleLinksMap.get(space.getId()); - Set spaceToSpaceLinksList = spaceToSpaceLinksMap.get(space.getId()); - List listOfSpaceIdAndModuleIds = new ArrayList<>(); - - if (spaceToModulelinksList != null) { - spaceToModulelinksList.forEach(link -> { - if (link.getLink() != null && link.getLink().getModule() != null) { - listOfSpaceIdAndModuleIds.add(link.getLink().getModule().getId()); - } - }); - } - if (spaceToSpaceLinksList != null) { - spaceToSpaceLinksList.forEach(link -> { - if (link.getLink() != null && link.getLink().getTarget() != null) { - listOfSpaceIdAndModuleIds.add(link.getLink().getTarget().getId()); - } - }); - } - spaceLinkMap.put(space.getId(), listOfSpaceIdAndModuleIds); - } - } - return spaceLinkMap; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/StaffSearchManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/StaffSearchManager.java deleted file mode 100644 index 34ca9c3eb..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/StaffSearchManager.java +++ /dev/null @@ -1,184 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Service; - -import edu.asu.diging.vspace.core.data.TextContentBlockRepository; -import edu.asu.diging.vspace.core.model.IModule; -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.ISpace; -import edu.asu.diging.vspace.core.services.IModuleManager; -import edu.asu.diging.vspace.core.services.ISlideManager; -import edu.asu.diging.vspace.core.services.ISpaceManager; -import edu.asu.diging.vspace.core.services.IStaffSearchManager; - -/** - * This class has all the methods with the business logics for searching a word - * in staff page. - * - * @author Avirup Biswas - * - */ -@Service -public class StaffSearchManager implements IStaffSearchManager { - - @Value("${page_size}") - private int pageSize; - - @Autowired - private ISpaceManager spaceManager; - - @Autowired - private IModuleManager moduleManager; - - @Autowired - private ISlideManager slideManager; - - @Autowired - private TextContentBlockRepository textContentBlockRepo; - - /** - * Method to return the requested spaces whose name or description contains the - * search string - * - * @param searchTerm string which has been searched - * @param page. The page number starts from 1. - * @return set of spaces whose name or description contains the search string in - * the requested page. - */ - @Override - public Page searchInSpaces(String searchTerm, int page) { - /* if page<1, 1st page is returned */ - if (page < 1) { - page = 1; - } - Pageable requestedPageForSpace = PageRequest.of(page - 1, pageSize); - Page spacePage = spaceManager.findByNameOrDescription(requestedPageForSpace, searchTerm); - int totalSpacePage = spacePage.getTotalPages(); - /* - * spring will just return an empty dataset if a page that is greater than the - * total number of pages is returned. So, the page given (except when it's < 1, - * then set it to 1) and then checking if the total page count is smaller than - * the given one (if so, make another request). In most cases the page number - * will be within the range of pages, so we would need only one db call. Only in - * cases where the page number is wrong, would a second one be needed.if - * page>total pages,last page is returned. - */ - if (page > totalSpacePage) { - totalSpacePage = totalSpacePage == 0 ? 1 : totalSpacePage; - requestedPageForSpace = PageRequest.of(totalSpacePage - 1, pageSize); - spacePage = spaceManager.findByNameOrDescription(requestedPageForSpace, searchTerm); - } - return spacePage; - } - - /** - * Method to return the requested modules whose name or description contains the - * search string - * - * @param searchTerm string which has been searched - * @param page. The page number starts from 1. - * @return set of modules whose name or description contains the search string - * in the requested page. - */ - @Override - public Page searchInModules(String searchTerm, int page) { - /* if page<1, 1st page is returned */ - if (page < 1) { - page = 1; - } - Pageable requestedPageForModule = PageRequest.of(page - 1, pageSize); - Page modulePage = moduleManager.findByNameOrDescription(requestedPageForModule, searchTerm); - int totalModulePage = modulePage.getTotalPages(); - /* - * spring will just return an empty dataset if a page that is greater than the - * total number of pages is returned. So, the page given (except when it's < 1, - * then set it to 1) and then checking if the total page count is smaller than - * the given one (if so, make another request). In most cases the page number - * will be within the range of pages, so we would need only one db call. Only in - * cases where the page number is wrong, would a second one be needed.if - * page>total pages,last page is returned. - */ - if (page > totalModulePage) { - totalModulePage = totalModulePage == 0 ? 1 : totalModulePage; - requestedPageForModule = PageRequest.of(totalModulePage - 1, pageSize); - modulePage = moduleManager.findByNameOrDescription(requestedPageForModule, searchTerm); - } - return modulePage; - } - - /** - * Method to return the requested slides whose name or description contains the - * search string - * - * @param searchTerm string which has been searched - * @param page. The page number starts from 1. - * @return set of slides whose name or description contains the search string in - * the requested page. - */ - @Override - public Page searchInSlides(String searchTerm, int page) { - /* if page<1, 1st page is returned */ - if (page < 1) { - page = 1; - } - Pageable requestedPageForSlide = PageRequest.of(page - 1, pageSize); - Page slidePage = slideManager.findByNameOrDescription(requestedPageForSlide, searchTerm); - int totalSlidePage = slidePage.getTotalPages(); - /* - * spring will just return an empty dataset if a page that is greater than the - * total number of pages is returned. So, the page given (except when it's < 1, - * then set it to 1) and then checking if the total page count is smaller than - * the given one (if so, make another request). In most cases the page number - * will be within the range of pages, so we would need only one db call. Only in - * cases where the page number is wrong, would a second one be needed.if - * page>total pages,last page is returned. - */ - if (page > totalSlidePage) { - totalSlidePage = totalSlidePage == 0 ? 1 : totalSlidePage; - requestedPageForSlide = PageRequest.of(totalSlidePage - 1, pageSize); - slidePage = slideManager.findByNameOrDescription(requestedPageForSlide, searchTerm); - } - return slidePage; - } - - /** - * Method to return the requested slides whose text blocks contains the search - * string - * - * @param searchTerm string which has been searched - * @param page. The page number starts from 1. - * @return list of slides whose text blocks contains the search string in the - * requested page. - */ - @Override - public Page searchInSlideTexts(String searchTerm, int page) { - /* if page<1, 1st page is returned */ - if (page < 1) { - page = 1; - } - Pageable requestedPageForSlideText = PageRequest.of(page - 1, pageSize); - Page slidetextPage = textContentBlockRepo.findWithNameOrDescription(requestedPageForSlideText, - searchTerm); - int totalSlideTextPage = slidetextPage.getTotalPages(); - /* - * spring will just return an empty dataset if a page that is greater than the - * total number of pages is returned. So, the page given (except when it's < 1, - * then set it to 1) and then checking if the total page count is smaller than - * the given one (if so, make another request). In most cases the page number - * will be within the range of pages, so we would need only one db call. Only in - * cases where the page number is wrong, would a second one be needed.if - * page>total pages,last page is returned. - */ - if (page > totalSlideTextPage) { - totalSlideTextPage = totalSlideTextPage == 0 ? 1 : totalSlideTextPage; - requestedPageForSlideText = PageRequest.of(totalSlideTextPage - 1, pageSize); - slidetextPage = textContentBlockRepo.findWithNameOrDescription(requestedPageForSlideText, searchTerm); - } - return slidetextPage; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/ImageData.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/ImageData.java deleted file mode 100644 index 3afdc49e1..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/ImageData.java +++ /dev/null @@ -1,31 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl.model; - -public class ImageData { - - private int height; - private int width; - - public ImageData(int height, int width) { - this.height = height; - this.width = width; - } - - public ImageData() { - } - - public int getHeight() { - return height; - } - - public void setHeight(int height) { - this.height = height; - } - - public int getWidth() { - return width; - } - - public void setWidth(int width) { - this.width = width; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchModuleResults.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchModuleResults.java deleted file mode 100644 index 7020f2318..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchModuleResults.java +++ /dev/null @@ -1,39 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl.model; - -import java.util.List; -import java.util.Map; - -import edu.asu.diging.vspace.core.model.IModule; - -public class StaffSearchModuleResults { - - private List modules; - - private Map moduleImageIdMap; - - private Map moduleAlertMessages; - - public List getModules() { - return modules; - } - - public void setModules(List modules) { - this.modules = modules; - } - - public Map getModuleImageIdMap() { - return moduleImageIdMap; - } - - public void setModuleImageIdMap(Map moduleImageIdMap) { - this.moduleImageIdMap = moduleImageIdMap; - } - - public Map getModuleAlertMessages() { - return moduleAlertMessages; - } - - public void setModuleAlertMessages(Map moduleAlertMessages) { - this.moduleAlertMessages = moduleAlertMessages; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSlideResults.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSlideResults.java deleted file mode 100644 index a4da9dd45..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSlideResults.java +++ /dev/null @@ -1,29 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl.model; - -import java.util.List; -import java.util.Map; - -import edu.asu.diging.vspace.core.model.ISlide; - -public class StaffSearchSlideResults { - - private List slides; - - private Map firstImageOfSlide; - - public List getSlides() { - return slides; - } - - public void setSlides(List slides) { - this.slides = slides; - } - - public Map getFirstImageOfSlide() { - return firstImageOfSlide; - } - - public void setFirstImageOfSlide(Map firstImageOfSlide) { - this.firstImageOfSlide = firstImageOfSlide; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSlideTextBlockResults.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSlideTextBlockResults.java deleted file mode 100644 index b1dbb2390..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSlideTextBlockResults.java +++ /dev/null @@ -1,40 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl.model; - -import java.util.List; -import java.util.Map; - -import edu.asu.diging.vspace.core.model.ISlide; -import edu.asu.diging.vspace.core.model.impl.Slide; - -public class StaffSearchSlideTextBlockResults { - - private List slidesWithMatchedTextBlock; - - private Map slideToFirstImageMap; - - private Map slideToFirstTextBlockMap; - - public List getSlidesWithMatchedTextBlock() { - return slidesWithMatchedTextBlock; - } - - public void setSlidesWithMatchedTextBlock(List slidesWithMatchedTextBlock) { - this.slidesWithMatchedTextBlock = slidesWithMatchedTextBlock; - } - - public Map getSlideToFirstImageMap() { - return slideToFirstImageMap; - } - - public void setSlideToFirstImageMap(Map slideToFirstImageMap) { - this.slideToFirstImageMap = slideToFirstImageMap; - } - - public Map getSlideToFirstTextBlockMap() { - return slideToFirstTextBlockMap; - } - - public void setSlideToFirstTextBlockMap(Map slideToFirstTextBlockMap) { - this.slideToFirstTextBlockMap = slideToFirstTextBlockMap; - } -} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSpaceResults.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSpaceResults.java deleted file mode 100644 index 0b31dabf5..000000000 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/services/impl/model/StaffSearchSpaceResults.java +++ /dev/null @@ -1,19 +0,0 @@ -package edu.asu.diging.vspace.core.services.impl.model; - -import java.util.List; - -import edu.asu.diging.vspace.core.model.ISpace; - -public class StaffSearchSpaceResults { - - private List spaces; - - public List getSpaces() { - return spaces; - } - - public void setSpaces(List spaces) { - this.spaces = spaces; - } - -} From a0cce246bac418e8a004d9114268ceaedfb451d2 Mon Sep 17 00:00:00 2001 From: glend17 Date: Mon, 11 Apr 2022 09:38:39 -0700 Subject: [PATCH 071/138] Story/vspc 180 (#257) * [VSPC-180] Introduced about section * [VSPC-180] Reformatted the code to appear in the right place * [VSPC -180] Added About page manager to exhibition space controller * [VSPC-180] removed width setting as it was not necessary * [VSPC-180] Addressing review comments * [VSPC-180] Removed null check on exhibitionAboutPage * [VSPC-180] introduced new about page for exhibition * [VSPC-180] Controller for public about page * [VSPC-180] rendering html text from java * [VSPC-180] make font bold for about * [VSPC-180] cleanup * [VSPC-180] PR Review comments * [VSPC-180] PR review comments * [VSPC-180] PR review comments * [VSPC-180] PR comments for about page being in exhibition data aspect * [VSPC-180] PR review comments * [VSPC-180] PR review comments * [VSPC-180] empty statement removed * [VSPC-180] PR Comments * [VSPC-180] PR review comments * [VSPC-180] Fixed unit test * [VSPC-180] PR review comments * [VSPC-180] PR review comments * [VSPC-180] About page configuration * [VSPC-180] Centering about page text * [VSPC-180] centering about page * [VSPC-180] Refactored frontend back button * [VSPC-180] Refactoring back button --- .../core/aspects/ExhibitionDataAspect.java | 8 +++- .../diging/vspace/core/model/IExhibition.java | 4 ++ .../vspace/core/model/impl/Exhibition.java | 12 ++++++ .../core/model/impl/ExhibitionAboutPage.java | 18 +++++++- .../services/IExhibitionAboutPageManager.java | 2 + .../impl/ExhibitionAboutPageManager.java | 22 ++++++++++ .../view}/ExhibitionModuleController.java | 6 ++- .../view}/ExhibitionSequencesController.java | 2 +- .../view}/ExhibitionSlideController.java | 4 +- .../view}/ExhibitionSpaceController.java | 4 +- .../ExhibitionPublicAboutPageController.java | 27 ++++++++++++ .../staff/ExhibitionAboutPageController.java | 3 +- .../views/exhibition/aboutPagePublic.html | 42 +++++++++++++++++++ .../webapp/WEB-INF/views/layouts/navbar.html | 8 ++++ .../impl/ExhibitionAboutPageManagerTest.java | 7 ++++ 15 files changed, 160 insertions(+), 9 deletions(-) rename vspace/src/main/java/edu/asu/diging/vspace/web/{publicview => exhibit/view}/ExhibitionModuleController.java (90%) rename vspace/src/main/java/edu/asu/diging/vspace/web/{publicview => exhibit/view}/ExhibitionSequencesController.java (98%) rename vspace/src/main/java/edu/asu/diging/vspace/web/{publicview => exhibit/view}/ExhibitionSlideController.java (96%) rename vspace/src/main/java/edu/asu/diging/vspace/web/{publicview => exhibit/view}/ExhibitionSpaceController.java (94%) create mode 100644 vspace/src/main/java/edu/asu/diging/vspace/web/publicpages/ExhibitionPublicAboutPageController.java create mode 100644 vspace/src/main/webapp/WEB-INF/views/exhibition/aboutPagePublic.html diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/aspects/ExhibitionDataAspect.java b/vspace/src/main/java/edu/asu/diging/vspace/core/aspects/ExhibitionDataAspect.java index a369a242a..6e729db36 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/aspects/ExhibitionDataAspect.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/aspects/ExhibitionDataAspect.java @@ -68,7 +68,7 @@ public void setExhibition(JoinPoint jp) { } } - @Around("execution(public * edu.asu.diging.vspace.web.publicview..*Controller.*(..))") + @Around("execution(public * edu.asu.diging.vspace.web.exhibit..*Controller.*(..))") public Object showExhibition(ProceedingJoinPoint jp) throws Throwable { Object[] args = jp.getArgs(); MethodSignature signature = (MethodSignature) jp.getSignature(); @@ -88,7 +88,6 @@ public Object showExhibition(ProceedingJoinPoint jp) throws Throwable { return redirectRequest(jp, spaceId, moduleId, indexOfModel, exhibition); } - /** * Based on exhibition mode, get the redirect page or pass control to controller. * @param jp The joinpoint variable, used to fetch request parameters and proceed with the request. @@ -109,6 +108,11 @@ private Object redirectRequest(ProceedingJoinPoint jp, String spaceId, String mo String modeValue = exhibition.getCustomMessage().equals("") == false ? exhibition.getCustomMessage() : exhibitionMode.getValue(); ((Model) args[modelIndex]).addAttribute("modeValue", modeValue); } + if(exhibition.isAboutPageConfigured()) { + ((Model) args[modelIndex]).addAttribute("aboutPageConfigured", true); + } else { + ((Model) args[modelIndex]).addAttribute("aboutPageConfigured", false); + } // If exhibition is set to maintenance, set the default message. if(exhibitionMode.equals(ExhibitionModes.MAINTENANCE)) { ((Model) args[modelIndex]).addAttribute("modeValue", exhibitionMode.getValue()); diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/model/IExhibition.java b/vspace/src/main/java/edu/asu/diging/vspace/core/model/IExhibition.java index 8c080242c..d1ad447da 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/model/IExhibition.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/model/IExhibition.java @@ -22,4 +22,8 @@ public interface IExhibition extends IVSpaceElement { String getTitle(); + boolean isAboutPageConfigured(); + + void setAboutPageConfigured(boolean aboutPageConfigured); + } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/Exhibition.java b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/Exhibition.java index 93e548703..4937ecbb4 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/Exhibition.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/Exhibition.java @@ -35,6 +35,8 @@ public class Exhibition extends VSpaceElement implements IExhibition { private ExhibitionModes mode; private String customMessage; + + private boolean aboutPageConfigured; /* * (non-Javadoc) @@ -103,5 +105,15 @@ public String getCustomMessage() { public void setCustomMessage(String customMessage) { this.customMessage = customMessage; } + + @Override + public boolean isAboutPageConfigured() { + return aboutPageConfigured; + } + + @Override + public void setAboutPageConfigured(boolean aboutPageConfigured) { + this.aboutPageConfigured = aboutPageConfigured; + } } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/ExhibitionAboutPage.java b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/ExhibitionAboutPage.java index 5bbe915e4..e3090eeac 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/ExhibitionAboutPage.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/ExhibitionAboutPage.java @@ -6,9 +6,13 @@ import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Lob; +import javax.persistence.Transient; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter; +import org.commonmark.node.Node; +import org.commonmark.parser.Parser; +import org.commonmark.renderer.html.HtmlRenderer; /** * Model for Exhibition About Page @@ -52,5 +56,17 @@ public String getAboutPageText() { public void setAboutPageText(String aboutPageText) { this.aboutPageText = aboutPageText; } - + + /* + * (non-Javadoc) + * + * @see + * edu.asu.diging.vspace.core.model.impl.ITextBlock#htmlRenderedText() + */ + public String htmlRenderedText() { + Parser parser = Parser.builder().build(); + Node document = parser.parse(aboutPageText); + HtmlRenderer renderer = HtmlRenderer.builder().build(); + return renderer.render(document); + } } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IExhibitionAboutPageManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IExhibitionAboutPageManager.java index 676a4bb3b..55f404e85 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IExhibitionAboutPageManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IExhibitionAboutPageManager.java @@ -21,4 +21,6 @@ public interface IExhibitionAboutPageManager { * @return {@link ExhibitionAboutPage} Returns the object after being stored. Object will now have an ID. */ ExhibitionAboutPage store(ExhibitionAboutPage exhibitionAboutPage); + + ExhibitionAboutPage getExhibitionAboutPage(); } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ExhibitionAboutPageManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ExhibitionAboutPageManager.java index 75b1a9caf..e8ded4ca0 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ExhibitionAboutPageManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ExhibitionAboutPageManager.java @@ -6,10 +6,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import edu.asu.diging.vspace.core.data.ExhibitionAboutPageRepository; +import edu.asu.diging.vspace.core.data.ExhibitionRepository; import edu.asu.diging.vspace.core.model.IExhibition; import edu.asu.diging.vspace.core.model.impl.Exhibition; import edu.asu.diging.vspace.core.model.impl.ExhibitionAboutPage; import edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager; +import edu.asu.diging.vspace.core.services.IExhibitionManager; /** * * @author Avirup Biswas @@ -22,6 +24,9 @@ public class ExhibitionAboutPageManager implements IExhibitionAboutPageManager{ @Autowired private ExhibitionAboutPageRepository repo; + @Autowired + private IExhibitionManager exhibitionManager; + /* (non-Javadoc) * @see edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager#findAll() */ @@ -38,7 +43,24 @@ public List findAll() { */ @Override public ExhibitionAboutPage store(ExhibitionAboutPage exhibitionAboutPage) { + IExhibition exhibition = exhibitionManager.getStartExhibition(); + if(!exhibition.isAboutPageConfigured()) { + exhibition.setAboutPageConfigured(true); + exhibitionManager.storeExhibition((Exhibition)exhibition); + } return repo.save(exhibitionAboutPage); } + /** + * This method returns the first ExhibitionAboutPage set by a Staff, if the + * ExhibitionAboutPage is not set yet, this method returns a new instance of + * an ExhibitionAbout Page + * @return ExhibitionAboutPage + */ + @Override + public ExhibitionAboutPage getExhibitionAboutPage() { + List aboutPageList = findAll(); + return aboutPageList != null && !aboutPageList.isEmpty() ? aboutPageList.get(0):new ExhibitionAboutPage(); + } + } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionModuleController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionModuleController.java similarity index 90% rename from vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionModuleController.java rename to vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionModuleController.java index daae9eb9b..5b91a96cb 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionModuleController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionModuleController.java @@ -1,4 +1,4 @@ -package edu.asu.diging.vspace.web.publicview; +package edu.asu.diging.vspace.web.exhibit.view; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -8,6 +8,8 @@ import edu.asu.diging.vspace.core.model.IModule; import edu.asu.diging.vspace.core.model.ISpace; +import edu.asu.diging.vspace.core.model.impl.ExhibitionAboutPage; +import edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager; import edu.asu.diging.vspace.core.services.IModuleManager; import edu.asu.diging.vspace.core.services.ISpaceManager; import edu.asu.diging.vspace.web.exception.ModuleNotFoundException; @@ -29,7 +31,7 @@ public String module(@PathVariable("id") String id, @PathVariable("spaceId") Str ISpace space = spaceManager.getSpace(spaceId); if (space == null) { return "redirect:/exhibit/404"; - } + } IModule module = moduleManager.getModule(id); model.addAttribute("module", module); if (module == null || module.getModuleStatus() == ModuleStatus.UNPUBLISHED) { diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionSequencesController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSequencesController.java similarity index 98% rename from vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionSequencesController.java rename to vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSequencesController.java index 367d02b3d..8fe8f5347 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionSequencesController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSequencesController.java @@ -1,4 +1,4 @@ -package edu.asu.diging.vspace.web.publicview; +package edu.asu.diging.vspace.web.exhibit.view; import java.util.List; diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionSlideController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSlideController.java similarity index 96% rename from vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionSlideController.java rename to vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSlideController.java index 59fabad4d..874e535c4 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionSlideController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSlideController.java @@ -1,4 +1,4 @@ -package edu.asu.diging.vspace.web.publicview; +package edu.asu.diging.vspace.web.exhibit.view; import java.util.List; @@ -16,7 +16,9 @@ import edu.asu.diging.vspace.core.model.ISlide; import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.impl.BranchingPoint; +import edu.asu.diging.vspace.core.model.impl.ExhibitionAboutPage; import edu.asu.diging.vspace.core.model.impl.SequenceHistory; +import edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager; import edu.asu.diging.vspace.core.services.IModuleManager; import edu.asu.diging.vspace.core.services.ISequenceManager; import edu.asu.diging.vspace.core.services.ISpaceManager; diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionSpaceController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSpaceController.java similarity index 94% rename from vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionSpaceController.java rename to vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSpaceController.java index 1a80b39f8..fbeca4fd8 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/publicview/ExhibitionSpaceController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSpaceController.java @@ -1,4 +1,4 @@ -package edu.asu.diging.vspace.web.publicview; +package edu.asu.diging.vspace.web.exhibit.view; import java.util.List; import java.util.stream.Collectors; @@ -13,8 +13,10 @@ import edu.asu.diging.vspace.core.model.IExhibition; import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.display.ISpaceLinkDisplay; +import edu.asu.diging.vspace.core.model.impl.ExhibitionAboutPage; import edu.asu.diging.vspace.core.model.impl.SequenceHistory; import edu.asu.diging.vspace.core.model.impl.SpaceStatus; +import edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager; import edu.asu.diging.vspace.core.services.IExhibitionManager; import edu.asu.diging.vspace.core.services.IExternalLinkManager; import edu.asu.diging.vspace.core.services.IModuleLinkManager; diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/publicpages/ExhibitionPublicAboutPageController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/publicpages/ExhibitionPublicAboutPageController.java new file mode 100644 index 000000000..f8dfec4d6 --- /dev/null +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/publicpages/ExhibitionPublicAboutPageController.java @@ -0,0 +1,27 @@ +package edu.asu.diging.vspace.web.publicpages; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; + +import edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager; + +@Controller +public class ExhibitionPublicAboutPageController { + + private Logger logger = LoggerFactory.getLogger(ExhibitionPublicAboutPageController.class); + + @Autowired + private IExhibitionAboutPageManager aboutPageManager; + + @RequestMapping(value = "/exhibit/about") + public String showPublicAboutPage(Model model) { + model.addAttribute("exhibitionAboutPage", aboutPageManager.getExhibitionAboutPage()); + model.addAttribute("aboutPageConfigured", true); + return "exhibition/aboutPagePublic"; + } + +} diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/ExhibitionAboutPageController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/ExhibitionAboutPageController.java index e81c0274b..4a4cf7b41 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/ExhibitionAboutPageController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/ExhibitionAboutPageController.java @@ -17,6 +17,7 @@ import edu.asu.diging.vspace.core.model.impl.ExhibitionAboutPage; import edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager; +import edu.asu.diging.vspace.core.services.IExhibitionManager; import edu.asu.diging.vspace.web.staff.forms.SpaceForm; /** @@ -50,6 +51,6 @@ public String createOrUpdateAboutPage(@ModelAttribute ExhibitionAboutPage aboutP attributes.addAttribute("message", "Successfully Saved!"); attributes.addAttribute("showAlert", "true"); return "redirect:/staff/exhibit/about"; - } + } } diff --git a/vspace/src/main/webapp/WEB-INF/views/exhibition/aboutPagePublic.html b/vspace/src/main/webapp/WEB-INF/views/exhibition/aboutPagePublic.html new file mode 100644 index 000000000..be1c2cb4c --- /dev/null +++ b/vspace/src/main/webapp/WEB-INF/views/exhibition/aboutPagePublic.html @@ -0,0 +1,42 @@ + + + + + + + + +

+ +
+
+ Back +
+ +
+ +

[(${exhibitionAboutPage.getTitle()})]

+
+
+
[(${exhibitionAboutPage.htmlRenderedText()})]
+
+
+
+ +
+
+ + \ No newline at end of file diff --git a/vspace/src/main/webapp/WEB-INF/views/layouts/navbar.html b/vspace/src/main/webapp/WEB-INF/views/layouts/navbar.html index 5c5e94221..f8a806500 100644 --- a/vspace/src/main/webapp/WEB-INF/views/layouts/navbar.html +++ b/vspace/src/main/webapp/WEB-INF/views/layouts/navbar.html @@ -15,6 +15,14 @@
logged in as
+ + + + + + +
From cff7158fe71d18ae2425c80a03b28b3716707963 Mon Sep 17 00:00:00 2001 From: Tushar Anand <100309265+tusanand@users.noreply.github.com> Date: Mon, 11 Apr 2022 10:22:38 -0700 Subject: [PATCH 073/138] [VSPC-193] Fixed space link, module link and external link placement issues (#288) * [VSPC-116] Fixed space link and module link placement issues * [VSPC-193] Fixed space link and module link placement issues * [VSPC-193] Fixed external link placement issues * [VSPC-193] Fixed issue for space, module and external links. When trying to create a new link and cancelling and trying to modify an existing link, the new link was retained and positioned at the same point as the existing link. Co-authored-by: Tushar Anand --- .../WEB-INF/views/staff/spaces/space.html | 90 ++++++++++++------- 1 file changed, 57 insertions(+), 33 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index a294f7d7f..088a20ff7 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -27,8 +27,8 @@ var selectedExternalLinkId; const displaceUnpublishedOnX = 25 const displaceUnpublishedOnY = 13 -const displaceUnpublishedOnXModal = 75 -const displaceUnpublishedOnYModal = 35 +const displaceUnpublishedOnXModal = 50 +const displaceUnpublishedOnYModal = 13 const displaceLableOnX = 10 const displaceLableOnY = 35 @@ -261,6 +261,7 @@ function showSpaceLink(spaceLink, show, x, y) { $("#space_label").remove(); $("#link").remove(); + $("#undefined").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; var space_label = $("

"); @@ -277,7 +278,7 @@ 'transform': 'rotate(0deg)', 'color': 'grey' }); - link = $(''); + link = $(''); } if(show) { var unpublishedSpaceElement; @@ -290,12 +291,14 @@ unpublishedSpaceElement.css('font-size', "24px"); }else{ $('[data-link-id="unpublished-' + spaceLink["id"] + '"]').remove(); - } + } + link.css('top', spaceLink["y"] + posY); + } else { + link.css('top', spaceLink["y"]); } link.css('position', 'absolute'); link.css('left', spaceLink["x"] + posX); - link.css('top', spaceLink["y"] + posY); link.css('color', 'rgba(128,128,128,1)'); link.css('transform', 'rotate(' +$('#spaceLinkRotation').val()+ 'deg)'); link.css('font-size', "12px"); @@ -323,6 +326,7 @@ function showModuleLink(moduleLink, show, x, y) { $("#module_label").remove(); $("#link").remove(); + $("#undefined").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; var module_label = $("

"); @@ -338,18 +342,18 @@ 'position': 'absolute', 'font-size': "10px", 'transform': 'rotate(0deg)', - 'left': x + posX - displaceLableOnX, - 'top': y + posY + displaceLableOnY, 'color': 'red' }); - link = $(''); + link = $(''); } if(show) { link.find("div").css('fill', 'red'); + link.css('top', moduleLink["y"] + posY); + } else { + link.css('top', moduleLink["y"]); } link.css('position', 'absolute'); link.css('left', moduleLink["x"] + posX); - link.css('top', moduleLink["y"] + posY); link.css('color', 'red'); link.css('transform', 'rotate(' +$('#moduleLinkRotation').val()+ 'deg)'); link.css('font-size', "12px"); @@ -402,7 +406,7 @@ } $(selectedUnpublishedIconClass).css({ 'transform': 'rotate(' + parseInt(spaceLink["rotation"]) + 'deg)'}); $(selectedUnpublishedIconClass).css({ 'position': 'absolute'}); - $(selectedUnpublishedIconClass).css({ 'left': posX - displaceUnpublishedOnXModal}); + $(selectedUnpublishedIconClass).css({ 'left': posX + displaceUnpublishedOnXModal}); $(selectedUnpublishedIconClass).css({ 'top': posY - displaceUnpublishedOnYModal}); updateLinkProperties(selectedLinkClass,selectedLabelClass,spaceLink["rotation"],posX,posY,spaceLink["spaceLinkLabel"]); } @@ -418,12 +422,12 @@ function updateLinkProperties(selectedLinkClass,selectedLabelClass,rotation,x,y,linkLabel, show){ var posX, posY; if(show) { - posx = $("#main-bgImage").position().left; + posX = $("#main-bgImage").position().left; posY = $("#main-bgImage").position().top; } else{ posX = $("#bgImage").position().left; - posY = $("#bgImage").position().top; + posY = 0 } $(selectedLinkClass).css({ 'transform': 'rotate(' + rotation + 'deg)'}); $(selectedLinkClass).css({ 'position': 'absolute'}); @@ -448,6 +452,7 @@ function showExternalLinks(externalLink, show, x, y) { $("#ext_label").remove(); $("#link").remove(); + $("#undefined").remove(); var posX = $("#bgImage").position().left; var posY = $("#bgImage").position().top; var ext_label = $("

"); @@ -461,16 +466,19 @@ 'position': 'absolute', 'font-size': "12px", 'transform': 'rotate(0deg)', - 'left': x + posX - displaceLableOnX, - 'top': y + posY + displaceLableOnY, 'color': 'blue' }); - link = $(''); + link = $(''); + } + + if(show) { + link.css('top', externalLink["y"] + posY); + } else { + link.css('top', externalLink["y"]); } link.css('position', 'absolute'); link.css('left', externalLink["x"] + posX); - link.css('top', externalLink["y"] + posY); link.css('color', 'blue'); link.css('font-size', "12px"); @@ -592,7 +600,7 @@ var posX = $(this).position().left; var posY = $(this).position().top; storeX = e.pageX - $(this).offset().left; - storeY = e.pageY - $(this).offset().top; + storeY = e.pageY - $(this).offset().top + 25; showSpaceLinkEdit(editSpaceLinkInfo(),false, storeX,storeY); }); hideLinkInfoTabs(); @@ -630,7 +638,7 @@ var posX = $(this).position().left; var posY = $(this).position().top; storeX = e.pageX - $(this).offset().left; - storeY = e.pageY - $(this).offset().top; + storeY = e.pageY - $(this).offset().top + 25; showModuleLinkEdit(editModuleLinkInfo(), false, storeX,storeY); }); hideLinkInfoTabs(); @@ -662,7 +670,7 @@ var posX = $(this).position().left; var posY = $(this).position().top; storeX = e.pageX - $(this).offset().left; - storeY = e.pageY - $(this).offset().top; + storeY = e.pageY - $(this).offset().top + 25; showExternalLinkEdit(editExternalLinkInfo(), false, storeX,storeY); }); hideLinkInfoTabs(); @@ -711,8 +719,8 @@ var posX = $(this).position().left; var posY = $(this).position().top; storeX = e.pageX - $(this).offset().left; - storeY = e.pageY - $(this).offset().top; - showSpaceLink(createSpaceLinkInfo(), false, storeX+$("#space").scrollLeft(), storeY+$("#space").scrollTop()); + storeY = e.pageY - $(this).offset().top + 25; + showSpaceLink(createSpaceLinkInfo(), false, storeX, storeY); }); hideLinkInfoTabs(); displayForms("#createSpaceLinkAlert"); @@ -730,9 +738,9 @@ var posX = $(this).position().left; var posY = $(this).position().top; storeX = e.pageX - $(this).offset().left; - storeY = e.pageY - $(this).offset().top; + storeY = e.pageY - $(this).offset().top + 25; - showModuleLink(createModuleLinkInfo(), false, storeX+$("#space").scrollLeft(), storeY+$("#space").scrollTop()); + showModuleLink(createModuleLinkInfo(), false, storeX, storeY); }); hideLinkInfoTabs(); displayForms("#createModuleLinkAlert"); @@ -751,9 +759,9 @@ var posX = $(this).position().left var posY = $(this).position().top; storeX = e.pageX - $(this).offset().left; - storeY = e.pageY - $(this).offset().top; + storeY = e.pageY - $(this).offset().top + 25; - showExternalLinks(createExternalLinkInfo(), false, storeX+$("#space").scrollLeft(), storeY+$("#space").scrollTop()); + showExternalLinks(createExternalLinkInfo(), false, storeX, storeY); }); hideLinkInfoTabs(); displayForms("#createExternalLinkAlert"); @@ -771,6 +779,7 @@ $("#createSpaceLinkBtn").click(function(e) { e.preventDefault(); $('#errorAlert').hide(); + $("#space").scrollTop(0); var label = $("#spaceLinkLabel").val(); var spaceName = $("#linkedSpace option:selected").text(); var type = $("#type option:selected").text(); @@ -800,8 +809,8 @@ } $("#spaceLinkX").val(storeX); - $("#spaceLinkY").val(storeY); - + $("#spaceLinkY").val(storeY - 25); + var form = $("#createSpaceLinkForm"); var label = $("#spaceLinkLabel").val(); var spaceName = $("#linkedSpace option:selected").text(); @@ -854,6 +863,7 @@ $("#createModuleLinkBtn").click(function(e) { e.preventDefault(); + $("#space").scrollTop(0); $('#errorAlert').hide(); if (storeX == undefined || storeY == undefined) { @@ -885,7 +895,7 @@ } $("#moduleLinkX").val(storeX); - $("#moduleLinkY").val(storeY); + $("#moduleLinkY").val(storeY - 25); var form = $("#createModuleLinkForm"); var formData = new FormData(form[0]); @@ -936,9 +946,10 @@ $('#errorAlert').show(); return; } + $("#space").scrollTop(0); var linkedModules = $("#moduleLinkIdEdit").val(); $("#moduleLinkXEdit").val(storeX); - $("#moduleLinkYEdit").val(storeY); + $("#moduleLinkYEdit").val(storeY - 25); var form = $("#editModuleLinkForm"); var formData = new FormData(form[0]); var moduleLinkInfo = editModuleLinkInfo(); @@ -984,9 +995,11 @@ $('#errorAlert').show(); return; } + $("#space").scrollTop(0); var linkedSpace = $("#spaceLinkIdEdit").val(); $("#spaceLinkXEdit").val(storeX); - $("#spaceLinkYEdit").val(storeY); + $("#spaceLinkYEdit").val(storeY - 25); + var form = $("#editSpaceLinkForm"); var formData = new FormData(form[0]); @@ -1028,6 +1041,7 @@ $("#editExternalLinkBtn").click(function(e) { e.preventDefault(); + $("#space").scrollTop(0); var linkId = $("#externalLinkIdEdit").val(); if (storeX == undefined || storeY == undefined) { $("#errorMsg").text("Please click on the image to specify where the new link should be located.") @@ -1036,7 +1050,7 @@ } var linkedSpace = $("#externalLinkIdEdit").val(); $("#externalLinkXEdit").val(storeX); - $("#externalLinkYEdit").val(storeY); + $("#externalLinkYEdit").val(storeY - 25); var form = $("#editExternalLinkForm"); var formData = new FormData(form[0]); var externalLinkInfo = editExternalLinkInfo(); @@ -1075,6 +1089,7 @@ $("#createExternalLinkBtn").click(function(e) { e.preventDefault(); + $("#space").scrollTop(0); var payload = {}; if (storeX == undefined || storeY == undefined) { @@ -1106,7 +1121,7 @@ return; } $("#externalLinkX").val(storeX); - $("#externalLinkY").val(storeY); + $("#externalLinkY").val(storeY - 25); var form = $("#createExternalLinkForm"); var formData = new FormData(form[0]); @@ -1295,42 +1310,51 @@ storeX = null; storeY = null; linkIcon = null; + $("#space").scrollTop(0); $("#link").remove(); - + $("#undefined").remove(); $("#space_label").remove(); $("#space").hide(); $("#createSpaceLinkAlert").hide(); $('#errorAlert').hide(); + $("#bgImage").off("click"); drawLinks(); }); $(".cancelModuleLinkBtn").click(function() { storeX = null; storeY = null; + $("#space").scrollTop(0); moduleLinkIcon=null; $("#link").remove(); + $("#undefined").remove(); $("#module_label").remove(); $("#space").hide(); $("#createModuleLinkAlert").hide(); $('#errorAlert').hide(); + $("#bgImage").off("click"); drawLinks(); }); $(".cancelExternalLinkBtn").click(function() { storeX = null; storeY = null; + $("#space").scrollTop(0); externalLinkIcon=null; $("#external-link").remove(); + $("#undefined").remove(); $("div#link").remove(); $("#external-arrow").remove(); $("#ext_label").remove(); $("#space").hide(); $("#createExternalLinkAlert").hide(); $('#errorAlert').hide(); + $("#bgImage").off("click"); drawLinks(); }); $("#cancelBgImgBtn").click(function() { + $("#space").scrollTop(0); drawLinks(); $("#file").val(''); $("#changeBgImgAlert").hide(); From b8546d3ef3814ff2fb34e364e02a6b7530ce6807 Mon Sep 17 00:00:00 2001 From: glend17 Date: Thu, 5 May 2022 12:45:39 -0700 Subject: [PATCH 074/138] Story/vspc 181 Deletion of modules (#268) * [VSPC-181] Added delete module controller * [VSPC-181] Added front end changes needed for deleting module * [VSPC-181] Cascade type deletions of module related attributes * [VSPC-181] Deletion of module * [VSPC-181] saving module link before deleting module * [VSPC-181] Delete Module controller * [VSPC-181] Deleting module * [VSPC-181] front end changes * [VSPC-181] Deleted modules from front end * [VSPC-181] Cleaning code * [VSPC-181] Fixing code factor * [VSPC-181] cleanup * [VSPC-181] Review comments * [VSPC-181] PR review comments * [VSPC-181] PR comments * [VSPC-181] PR review comments * Revert "Merge branch 'develop' into story/vspc-181" This reverts commit db80d653b30d780dec6a8a9898a4ed52326f0cd2, reversing changes made to f759644ea2e750ef3e1c0742b2cc350e354563ce. * Revert "Revert "Merge branch 'develop' into story/vspc-181"" This reverts commit 78e12e0ef665e623de964416feda487d9534bd81. * [VSPC-181] Merge conflict * [VSPC-181] PR review comments * [VSPC-181] delete module * [VSPC-181] change in redirection url --- .../core/data/ModuleLinkRepository.java | 8 +++ .../exception/ModuleNotFoundException.java | 2 +- .../exception/SequenceNotFoundException.java | 2 +- .../exception/SlideNotFoundException.java | 2 +- .../SlidesInSequenceNotFoundException.java | 2 +- .../exception/SpaceNotFoundException.java | 2 +- .../vspace/core/model/impl/ModuleLink.java | 4 +- .../vspace/core/services/IModuleManager.java | 3 + .../core/services/impl/ModuleManager.java | 45 +++++++++++- .../exception/ExhibitionExceptionHandler.java | 6 ++ .../view/ExhibitionModuleController.java | 4 +- .../view/ExhibitionSequencesController.java | 8 +-- .../view/ExhibitionSlideController.java | 10 +-- .../web/staff/DeleteModuleController.java | 37 ++++++++++ .../WEB-INF/views/staff/modules/module.html | 70 +++++++++++++++++-- .../src/main/webapp/resources/extra/Home.css | 2 +- 16 files changed, 182 insertions(+), 25 deletions(-) rename vspace/src/main/java/edu/asu/diging/vspace/{web => core}/exception/ModuleNotFoundException.java (89%) rename vspace/src/main/java/edu/asu/diging/vspace/{web => core}/exception/SequenceNotFoundException.java (89%) rename vspace/src/main/java/edu/asu/diging/vspace/{web => core}/exception/SlideNotFoundException.java (89%) rename vspace/src/main/java/edu/asu/diging/vspace/{web => core}/exception/SlidesInSequenceNotFoundException.java (90%) rename vspace/src/main/java/edu/asu/diging/vspace/{web => core}/exception/SpaceNotFoundException.java (89%) create mode 100644 vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteModuleController.java diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/data/ModuleLinkRepository.java b/vspace/src/main/java/edu/asu/diging/vspace/core/data/ModuleLinkRepository.java index 9e8d2f3a3..f61076516 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/data/ModuleLinkRepository.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/data/ModuleLinkRepository.java @@ -1,13 +1,21 @@ package edu.asu.diging.vspace.core.data; +import java.util.List; + import org.javers.spring.annotation.JaversSpringDataAuditable; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Repository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; import edu.asu.diging.vspace.core.model.impl.ModuleLink; +import edu.asu.diging.vspace.core.model.IModuleLink; @Repository @JaversSpringDataAuditable public interface ModuleLinkRepository extends PagingAndSortingRepository { + + @Query("select moduleLink from ModuleLink moduleLink where module_id = ?1") + List findModuleLinksByModuleId(String moduleId); } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/ModuleNotFoundException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/ModuleNotFoundException.java similarity index 89% rename from vspace/src/main/java/edu/asu/diging/vspace/web/exception/ModuleNotFoundException.java rename to vspace/src/main/java/edu/asu/diging/vspace/core/exception/ModuleNotFoundException.java index 3f491b26f..72b29bfee 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/ModuleNotFoundException.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/ModuleNotFoundException.java @@ -1,4 +1,4 @@ -package edu.asu.diging.vspace.web.exception; +package edu.asu.diging.vspace.core.exception; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.http.HttpStatus; diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/SequenceNotFoundException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/SequenceNotFoundException.java similarity index 89% rename from vspace/src/main/java/edu/asu/diging/vspace/web/exception/SequenceNotFoundException.java rename to vspace/src/main/java/edu/asu/diging/vspace/core/exception/SequenceNotFoundException.java index ca8650bd6..ede027176 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/SequenceNotFoundException.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/SequenceNotFoundException.java @@ -1,4 +1,4 @@ -package edu.asu.diging.vspace.web.exception; +package edu.asu.diging.vspace.core.exception; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.http.HttpStatus; diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/SlideNotFoundException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/SlideNotFoundException.java similarity index 89% rename from vspace/src/main/java/edu/asu/diging/vspace/web/exception/SlideNotFoundException.java rename to vspace/src/main/java/edu/asu/diging/vspace/core/exception/SlideNotFoundException.java index aaef7f7dd..8c619e489 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/SlideNotFoundException.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/SlideNotFoundException.java @@ -1,4 +1,4 @@ -package edu.asu.diging.vspace.web.exception; +package edu.asu.diging.vspace.core.exception; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.http.HttpStatus; diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/SlidesInSequenceNotFoundException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/SlidesInSequenceNotFoundException.java similarity index 90% rename from vspace/src/main/java/edu/asu/diging/vspace/web/exception/SlidesInSequenceNotFoundException.java rename to vspace/src/main/java/edu/asu/diging/vspace/core/exception/SlidesInSequenceNotFoundException.java index 3114daa45..6af71c38a 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/SlidesInSequenceNotFoundException.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/SlidesInSequenceNotFoundException.java @@ -1,4 +1,4 @@ -package edu.asu.diging.vspace.web.exception; +package edu.asu.diging.vspace.core.exception; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.http.HttpStatus; diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/SpaceNotFoundException.java b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/SpaceNotFoundException.java similarity index 89% rename from vspace/src/main/java/edu/asu/diging/vspace/web/exception/SpaceNotFoundException.java rename to vspace/src/main/java/edu/asu/diging/vspace/core/exception/SpaceNotFoundException.java index 847ea374a..d462a8e91 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/SpaceNotFoundException.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/exception/SpaceNotFoundException.java @@ -1,4 +1,4 @@ -package edu.asu.diging.vspace.web.exception; +package edu.asu.diging.vspace.core.exception; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.http.HttpStatus; diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/ModuleLink.java b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/ModuleLink.java index 7f8e41f70..50eeff885 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/ModuleLink.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/model/impl/ModuleLink.java @@ -27,8 +27,8 @@ public class ModuleLink extends VSpaceElement implements IModuleLink { @JoinColumn(name="space_id", nullable=false) private ISpace space; - @ManyToOne(targetEntity=Module.class) - @JoinColumn(name="module_id", nullable=false) + @ManyToOne(targetEntity=Module.class, optional=true) + @JoinColumn(name="module_id", nullable=true) private IModule module; /* (non-Javadoc) diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IModuleManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IModuleManager.java index d8956f85e..aae984979 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/IModuleManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/IModuleManager.java @@ -5,6 +5,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import edu.asu.diging.vspace.core.exception.ModuleNotFoundException; import edu.asu.diging.vspace.core.model.IModule; import edu.asu.diging.vspace.core.model.ISequence; import edu.asu.diging.vspace.core.model.ISlide; @@ -24,4 +25,6 @@ public interface IModuleManager { ISequence checkIfSequenceExists(String moduleId, String sequenceId); Page findByNameOrDescription(Pageable requestedPage,String searchText); + + void deleteModule(String moduleId) throws ModuleNotFoundException; } \ No newline at end of file diff --git a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ModuleManager.java b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ModuleManager.java index 29e30db40..f7bb2510d 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ModuleManager.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/core/services/impl/ModuleManager.java @@ -5,25 +5,33 @@ import java.util.List; import java.util.Optional; -import javax.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import edu.asu.diging.vspace.core.data.ModuleLinkRepository; import edu.asu.diging.vspace.core.data.ModuleRepository; import edu.asu.diging.vspace.core.data.SequenceRepository; import edu.asu.diging.vspace.core.data.SlideRepository; +import edu.asu.diging.vspace.core.data.display.ModuleLinkDisplayRepository; +import edu.asu.diging.vspace.core.exception.ModuleNotFoundException; import edu.asu.diging.vspace.core.model.IModule; import edu.asu.diging.vspace.core.model.ISequence; import edu.asu.diging.vspace.core.model.ISlide; import edu.asu.diging.vspace.core.model.impl.Module; +import edu.asu.diging.vspace.core.model.impl.ModuleLink; import edu.asu.diging.vspace.core.services.IModuleManager; @Transactional @Service public class ModuleManager implements IModuleManager { + + + @Autowired + private ModuleLinkRepository moduleLinkRepo; @Autowired private ModuleRepository moduleRepo; @@ -34,6 +42,12 @@ public class ModuleManager implements IModuleManager { @Autowired private SequenceRepository sequenceRepo; + @Autowired + private SlideManager slideManager; + + @Autowired + private ModuleLinkDisplayRepository moduleLinkDisplayRepo; + /* * (non-Javadoc) * @@ -89,4 +103,33 @@ public ISequence checkIfSequenceExists(String moduleId, String sequenceId) { public Page findByNameOrDescription(Pageable requestedPage,String searchText) { return moduleRepo.findDistinctByNameContainingOrDescriptionContaining(requestedPage,searchText,searchText); } + + @Transactional(rollbackFor = Exception.class) + @Override + public void deleteModule(String moduleId) throws ModuleNotFoundException { + if(moduleId == null) { + return; + } + moduleLinkRepo.findModuleLinksByModuleId(moduleId).forEach( + moduleLink -> { + moduleLinkDisplayRepo.deleteByLink(moduleLink); + moduleLinkRepo.deleteById(moduleLink.getId()); + }); + //delete all slides + Optional moduleOptional = moduleRepo.findById(moduleId); + if(moduleOptional.isPresent()) { + Module module = moduleOptional.get(); + module.getSlides().forEach( + slide -> { + slideManager.deleteSlideById(slide.getId(), moduleId); + }); + getModuleSequences(moduleId).forEach( + sequence -> { + sequenceRepo.deleteById(sequence.getId()); + }); + } else { + throw new ModuleNotFoundException("Module not found"); + } + moduleRepo.deleteById(moduleId); + } } diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/ExhibitionExceptionHandler.java b/vspace/src/main/java/edu/asu/diging/vspace/web/exception/ExhibitionExceptionHandler.java index 669135f2a..fa5b7d37e 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/exception/ExhibitionExceptionHandler.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/exception/ExhibitionExceptionHandler.java @@ -8,6 +8,12 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.ModelAndView; +import edu.asu.diging.vspace.core.exception.ModuleNotFoundException; +import edu.asu.diging.vspace.core.exception.SequenceNotFoundException; +import edu.asu.diging.vspace.core.exception.SlideNotFoundException; +import edu.asu.diging.vspace.core.exception.SlidesInSequenceNotFoundException; +import edu.asu.diging.vspace.core.exception.SpaceNotFoundException; + @ControllerAdvice public class ExhibitionExceptionHandler { diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionModuleController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionModuleController.java index 5b91a96cb..1a4c4f656 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionModuleController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionModuleController.java @@ -6,14 +6,14 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; +import edu.asu.diging.vspace.core.exception.ModuleNotFoundException; +import edu.asu.diging.vspace.core.exception.SpaceNotFoundException; import edu.asu.diging.vspace.core.model.IModule; import edu.asu.diging.vspace.core.model.ISpace; import edu.asu.diging.vspace.core.model.impl.ExhibitionAboutPage; import edu.asu.diging.vspace.core.services.IExhibitionAboutPageManager; import edu.asu.diging.vspace.core.services.IModuleManager; import edu.asu.diging.vspace.core.services.ISpaceManager; -import edu.asu.diging.vspace.web.exception.ModuleNotFoundException; -import edu.asu.diging.vspace.web.exception.SpaceNotFoundException; import edu.asu.diging.vspace.core.model.impl.ModuleStatus; @Controller diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSequencesController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSequencesController.java index 8fe8f5347..a2ce5d69f 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSequencesController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSequencesController.java @@ -9,6 +9,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import edu.asu.diging.vspace.core.exception.ModuleNotFoundException; +import edu.asu.diging.vspace.core.exception.SequenceNotFoundException; +import edu.asu.diging.vspace.core.exception.SlidesInSequenceNotFoundException; +import edu.asu.diging.vspace.core.exception.SpaceNotFoundException; import edu.asu.diging.vspace.core.model.IModule; import edu.asu.diging.vspace.core.model.ISequence; import edu.asu.diging.vspace.core.model.ISlide; @@ -17,10 +21,6 @@ import edu.asu.diging.vspace.core.services.IModuleManager; import edu.asu.diging.vspace.core.services.ISequenceManager; import edu.asu.diging.vspace.core.services.ISpaceManager; -import edu.asu.diging.vspace.web.exception.ModuleNotFoundException; -import edu.asu.diging.vspace.web.exception.SequenceNotFoundException; -import edu.asu.diging.vspace.web.exception.SlidesInSequenceNotFoundException; -import edu.asu.diging.vspace.web.exception.SpaceNotFoundException; @Controller public class ExhibitionSequencesController { diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSlideController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSlideController.java index 874e535c4..ccea4e4c7 100644 --- a/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSlideController.java +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/exhibit/view/ExhibitionSlideController.java @@ -10,7 +10,12 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; +import edu.asu.diging.vspace.core.exception.ModuleNotFoundException; +import edu.asu.diging.vspace.core.exception.SequenceNotFoundException; +import edu.asu.diging.vspace.core.exception.SlideNotFoundException; +import edu.asu.diging.vspace.core.exception.SlidesInSequenceNotFoundException; import edu.asu.diging.vspace.core.exception.SpaceDoesNotExistException; +import edu.asu.diging.vspace.core.exception.SpaceNotFoundException; import edu.asu.diging.vspace.core.model.IModule; import edu.asu.diging.vspace.core.model.ISequence; import edu.asu.diging.vspace.core.model.ISlide; @@ -23,11 +28,6 @@ import edu.asu.diging.vspace.core.services.ISequenceManager; import edu.asu.diging.vspace.core.services.ISpaceManager; import edu.asu.diging.vspace.core.services.impl.SlideManager; -import edu.asu.diging.vspace.web.exception.ModuleNotFoundException; -import edu.asu.diging.vspace.web.exception.SequenceNotFoundException; -import edu.asu.diging.vspace.web.exception.SlideNotFoundException; -import edu.asu.diging.vspace.web.exception.SlidesInSequenceNotFoundException; -import edu.asu.diging.vspace.web.exception.SpaceNotFoundException; @Controller public class ExhibitionSlideController { diff --git a/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteModuleController.java b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteModuleController.java new file mode 100644 index 000000000..e51d74c85 --- /dev/null +++ b/vspace/src/main/java/edu/asu/diging/vspace/web/staff/DeleteModuleController.java @@ -0,0 +1,37 @@ +package edu.asu.diging.vspace.web.staff; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import edu.asu.diging.vspace.core.exception.ModuleNotFoundException; +import edu.asu.diging.vspace.core.services.IModuleManager; + +@Controller +public class DeleteModuleController { + + private final Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private IModuleManager moduleManager; + + @RequestMapping(value="/staff/module/{moduleId}/delete", method=RequestMethod.DELETE) + public ResponseEntity deleteModule(@PathVariable("moduleId") String moduleId, Model model) { + try { + moduleManager.deleteModule(moduleId); + } catch (ModuleNotFoundException exception) { + logger.error("Could not delete Module.", exception); + return new ResponseEntity("Sorry, unable to delete the module.", + HttpStatus.NOT_FOUND); + } + return new ResponseEntity("Ok", HttpStatus.OK); + } +} diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/modules/module.html b/vspace/src/main/webapp/WEB-INF/views/staff/modules/module.html index 967e8fc72..01269ca6e 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/modules/module.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/modules/module.html @@ -20,6 +20,22 @@ }); } +function deleteModule(moduleId){ + $.ajax({ + url: "[(@{'/staff/module/'+${module.id}+'/delete'})]"+'?'+[[${_csrf.parameterName}]]+'='+[[${_csrf.token}]], + type: 'DELETE', + cache : false, + contentType : false, + success: function(data) { + window.location.href="[(@{'/staff/module/list'})]"; + }, + error: function(data) { + var alert = $(''); + $('.delete-module-error').append(alert); + } + }); +} + function checkSlideInSequence(slideId) { $.ajax({ url: "[(@{'/staff/module/'+${module.id}+'/slide/'})]"+slideId+'/sequences?'+[[${_csrf.parameterName}]]+'='+[[${_csrf.token}]], @@ -168,7 +184,6 @@ $(document).ready(function() { - if (localStorage.getItem("newModule") == null) { guidedTour(); localStorage.setItem("newModule", false); @@ -193,6 +208,11 @@ $("#deleteSlideAlert").data('value', 0); $("#deleteSlideAlert").modal('hide'); }); + + $("#cancelModuleDelButton").click(function () { + $("#deleteModuleAlert").data('value', 0); + $("#deleteModuleAlert").modal('hide'); + }); $(".sequence").on("click", function(e) { @@ -206,9 +226,19 @@ deleteSlide(slideId); }); + $("#deleteModuleButtonConfirm").on("click", function() { + $('#deleteModuleAlert').modal('hide'); + var moduleId=[[${module.id}]]; + deleteModule(moduleId); + }); + $(function () { $('[data-toggle="tooltip"]').tooltip(); }); + + $("#deleteModuleButton").on("click", function() { + $('#deleteModuleAlert').modal('show'); + }); }); @@ -216,7 +246,7 @@
- +
@@ -235,9 +265,15 @@

  Start tour

+
+ +
-
+

Select the start sequence of the Module

@@ -261,9 +297,10 @@

+

-
+

Sequences

+ New Sequence @@ -281,7 +318,7 @@

Sequences

-
+

All Slides

@@ -327,7 +364,30 @@
+
+ diff --git a/vspace/src/main/webapp/resources/extra/Home.css b/vspace/src/main/webapp/resources/extra/Home.css index c5eaf1bd0..0e890018d 100644 --- a/vspace/src/main/webapp/resources/extra/Home.css +++ b/vspace/src/main/webapp/resources/extra/Home.css @@ -801,4 +801,4 @@ .shepherd-text { color: #121212; text-align: left; -} \ No newline at end of file +} From f1918e78509873987bab103a3520babc9cf6b9ee Mon Sep 17 00:00:00 2001 From: swetalina-prusty25 <100608518+swetalina-prusty25@users.noreply.github.com> Date: Thu, 5 May 2022 12:55:58 -0700 Subject: [PATCH 075/138] Bug/vspc 206 (#290) * [VSPC-205] chaged the values of dropdown menu for a sequence * [bug/VSPC-206] Editing a sequence title, fixed the input box size and buttons * [bug/VSPC-206] fixed the css changes for input box and buttons * [bug/VSPC-206] title and description input fields are aligned and fixed the save and cancel button * [bug/VSPC-206] changed the code to fix the column issue * [bug/VSPC-206] fixed the input filed size issue --- .../staff/modules/sequences/sequence.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/modules/sequences/sequence.html b/vspace/src/main/webapp/WEB-INF/views/staff/modules/sequences/sequence.html index de37ed77e..14eb0e0c9 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/modules/sequences/sequence.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/modules/sequences/sequence.html @@ -68,7 +68,7 @@ // using data-attributes var description = $("#description").text() // gets value - $('').insertBefore( "#description" ); + $('').insertBefore( "#description" ); $("#description").hide() $("#newDescription").val(description) $("#editDescription").hide() @@ -136,7 +136,7 @@ $("#editTitle").click(function() { // Using data attribute var sequenceTitle = $("#title").text() // gets value without using trim function - $('
').insertAfter( "#title" ); + $('
').insertAfter( "#title" ); $('#title').text() $("#newTitle").val(sequenceTitle.split(": ")[1]) $("#editTitle").hide() @@ -298,10 +298,10 @@

[[${sequence.description}]]

+ style="position:absolute; margin-left:1.3rem; margin-top:1.5%;">Save + class="btn btn-light cancelSpaceLinkBtn btn-sm" + style="position:absolute;margin-left:5.3rem;margin-top:1.5%;">Cancel

- - + +

From e858c3d29b862b20faf7bbc49d1194d4c984174f Mon Sep 17 00:00:00 2001 From: pooja-thalur Date: Mon, 13 May 2024 16:36:37 -0700 Subject: [PATCH 126/138] VSPC-172 fixed the issue with opening link --- vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index 471613c90..5e0d81038 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -10,6 +10,7 @@ + - - - - - - + + + + + + + + +

+
External Resources:
+ +
\ No newline at end of file diff --git a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html index 07d97ba3c..1fab4463c 100644 --- a/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/exhibition/space.html @@ -1,3 +1,4 @@ +
+
+ × + Error Message +
+ + + + + + + + +
+
+
+ + + + + +
+
+
diff --git a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html index bbf795af2..bc131bd29 100644 --- a/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html +++ b/vspace/src/main/webapp/WEB-INF/views/staff/spaces/space.html @@ -3,12 +3,13 @@ + - - - - + + + +