Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions vspace/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -359,13 +359,13 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.14.0</version>
<version>2.19.0</version>
</dependency>

<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.28.3</version>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,20 @@ public interface IExhibition extends IVSpaceElement {
IVSImage getSpaceLinkDefaultImage();

void setSpaceLinkDefaultImage(IVSImage spaceLinkDefaultImage);

void deleteSpaceLinkDefaultImage();

IVSImage getModuleLinkDefaultImage();

void setModuleLinkDefaultImage(IVSImage moduleLinkDefaultImage);

void deleteModuleLinkDefaultImage();

IVSImage getExternalLinkDefaultImage();

void setExternalLinkDefaultImage(IVSImage externalLinkDefaultImage);

void deleteExternalLinkDefaultImage();

List<IExhibitionLanguage> getLanguages();

Expand All @@ -52,4 +58,10 @@ public interface IExhibition extends IVSpaceElement {

void setCustomMessage(String customMessage);

void disableSpaceLinkDefaultImage();

void disableModuleLinkDefaultImage();

void disableExternalLinkDefaultImage();

}
24 changes: 14 additions & 10 deletions vspace/src/main/java/edu/asu/diging/vspace/core/model/IVSImage.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,29 @@

public interface IVSImage extends IVSMedia {

String getFilename();
String getFilename();

void setFilename(String filename);
void setFilename(String filename);

String getParentPath();
String getParentPath();

void setParentPath(String parentPath);
void setParentPath(String parentPath);

void setFileType(String fileType);
void setFileType(String fileType);

String getFileType();
String getFileType();

void setWidth(int width);
void setWidth(int width);

int getWidth();
int getWidth();

void setHeight(int height);
void setHeight(int height);

int getHeight();
int getHeight();

boolean getDisableFlag();

void toggleDisableFlag();

void setCategories(List<ImageCategory> categories);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@ public class Exhibition extends VSpaceElement implements IExhibition {

private String customMessage;

@OneToOne(targetEntity = VSImage.class)
@OneToOne(targetEntity = VSImage.class, cascade = CascadeType.ALL, orphanRemoval=true)
@NotFound(action = NotFoundAction.IGNORE)
private IVSImage spaceLinkDefaultImage;

@OneToOne(targetEntity = VSImage.class)
@OneToOne(targetEntity = VSImage.class, cascade = CascadeType.ALL, orphanRemoval=true)
@NotFound(action = NotFoundAction.IGNORE)
private IVSImage moduleLinkDefaultImage;

@OneToOne(targetEntity = VSImage.class)
@OneToOne(targetEntity = VSImage.class, cascade = CascadeType.ALL, orphanRemoval=true)
@NotFound(action = NotFoundAction.IGNORE)
private IVSImage externalLinkDefaultImage;

Expand Down Expand Up @@ -139,30 +139,67 @@ public void setCustomMessage(String customMessage) {
public IVSImage getSpaceLinkDefaultImage() {
return spaceLinkDefaultImage;
}

@Override
public void setSpaceLinkDefaultImage(IVSImage spaceLinkDefaultImage) {
this.spaceLinkDefaultImage = spaceLinkDefaultImage;
}

@Override
public void deleteSpaceLinkDefaultImage() {
this.spaceLinkDefaultImage = null;
}

@Override
public void disableSpaceLinkDefaultImage() {
this.spaceLinkDefaultImage.toggleDisableFlag();
}

@Override
public IVSImage getModuleLinkDefaultImage() {
return moduleLinkDefaultImage;
}

@Override
public void setModuleLinkDefaultImage(IVSImage moduleLinkDefaultImage) {
this.moduleLinkDefaultImage = moduleLinkDefaultImage;
}

@Override
public void deleteModuleLinkDefaultImage() {
this.moduleLinkDefaultImage = null;
}

@Override
public void disableModuleLinkDefaultImage() {
this.moduleLinkDefaultImage.toggleDisableFlag();
}

@Override
public IVSImage getExternalLinkDefaultImage() {
return externalLinkDefaultImage;
}

@Override
public void setExternalLinkDefaultImage(IVSImage externalLinkDefaultImage) {
this.externalLinkDefaultImage = externalLinkDefaultImage;
}

@Override
public void deleteExternalLinkDefaultImage() {
this.externalLinkDefaultImage = null;
}

@Override
public void disableExternalLinkDefaultImage() {
this.externalLinkDefaultImage.toggleDisableFlag();
}

@Override
public boolean isAboutPageConfigured() {
return aboutPageConfigured;
}

@Override
public void setAboutPageConfigured(boolean aboutPageConfigured) {
this.aboutPageConfigured = aboutPageConfigured;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

import java.util.List;

import javax.persistence.Column;
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.Inheritance;
import javax.persistence.Lob;
import javax.persistence.OneToMany;

Expand All @@ -34,6 +34,9 @@ public class VSImage extends VSMedia implements IVSImage {

private int height;
private int width;

@Column(name = "disableFlag", nullable = false)
private boolean disableFlag = false;

@OneToMany(targetEntity = Tag.class)
private List<ITag> tags;
Expand Down Expand Up @@ -106,6 +109,16 @@ public void setWidth(int width) {
this.width = width;
}

@Override
public boolean getDisableFlag() {
return disableFlag;
}

@Override
public void toggleDisableFlag() {
disableFlag = !disableFlag;
}

@Override
public List<ITag> getTags() {
return tags;
Expand All @@ -126,4 +139,10 @@ public void setCategories(List<ImageCategory> categories) {
this.categories = categories;
}

@Override
public String toString() {
return "VSImage{" +
"disableFlag='" + disableFlag +
'}';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ Page<VSImage> getPaginatedImagesBySearchTerm(int pageNo, ImageCategory category,
String searchTerm, String sortedBy, String order);

IVSImage storeImage(byte[] image, String filename);

void removeImage(String imageId);

byte[] getImageContent(IVSImage image);
}
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,6 @@ public void removeCategory(IVSImage image, ImageCategory category) {
*/
@Override
public IVSImage storeImage(byte[] image, String filename) {

IVSImage storedImage = null;
if (image != null && image.length > 0) {
Tika tika = new Tika();
Expand Down Expand Up @@ -305,6 +304,18 @@ public IVSImage storeImage(byte[] image, String filename) {
return storedImage;
}

/**
* Method to delete an image in the file
*
*@param imageId - The id of the image to be removed
*@return EmptyResultDataAccessException if no image exists with the provided id
*/
@Override
public void removeImage(String imageId) {

imageRepo.deleteById(imageId);
}

/**
*Method to return content of the image
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public class DefaultImageApiController {
public static final String API_DEFAULT_MODULE_IMAGE_PATH = "/api/image/default/link/module/";
public static final String API_DEFAULT_EXTERNAL_IMAGE_PATH = "/api/image/default/link/external/";
public static final String API_DEFAULT_SPACE_IMAGE_STATUS = "/api/exhibition/default/link/image/status/";
public static final String API_DEFAULT_IMAGE_DISABLE_STATUS = "/api/exhibition/default/link/image/disableStatus/";

@Autowired
private IImageService imageService;
Expand Down Expand Up @@ -67,6 +68,21 @@ public ResponseEntity<String> getDefaultImageStatus() {
jsonObj.addProperty("defaultExternalLinkImageFlag", exhibition.getExternalLinkDefaultImage() != null? true : false);
return new ResponseEntity<>(jsonObj.toString(), HttpStatus.OK);
}

/**
* Retrieves the status of default images for exhibition links
* @return A JSON response containing flags indicating the availability of default images.
*/
@RequestMapping(value = API_DEFAULT_IMAGE_DISABLE_STATUS, method = RequestMethod.GET)
public ResponseEntity<String> getDefaultImageDisableStatus() {
IExhibition exhibition = exhibitManager.getStartExhibition();

JsonObject jsonObj = new JsonObject();
jsonObj.addProperty("defaultSpaceImageDisableFlag", exhibition.getSpaceLinkDefaultImage().getDisableFlag());
jsonObj.addProperty("defaultModuleImageDisableFlag", exhibition.getModuleLinkDefaultImage().getDisableFlag());
jsonObj.addProperty("defaultExternalImageDisableFlag", exhibition.getExternalLinkDefaultImage().getDisableFlag());
return new ResponseEntity<>(jsonObj.toString(), HttpStatus.OK);
}

private ResponseEntity<byte[]> getResponseWithDefaultHeaders(IVSImage image) {
if(image == null) {
Expand All @@ -79,4 +95,5 @@ private ResponseEntity<byte[]> getResponseWithDefaultHeaders(IVSImage image) {
return new ResponseEntity<>(imageContent, headers, HttpStatus.OK);
}


}
Loading