Skip to content
Open
Show file tree
Hide file tree
Changes from 6 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 @@ -354,13 +354,13 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</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 @@ -8,7 +8,6 @@
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 +33,8 @@ public class VSImage extends VSMedia implements IVSImage {

private int height;
private int width;

private Boolean disableFlag;

@OneToMany(targetEntity = Tag.class)
private List<ITag> tags;
Expand Down Expand Up @@ -106,6 +107,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 +137,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,11 +271,13 @@ public void removeCategory(IVSImage image, ImageCategory category) {
*/
@Override
public IVSImage storeImage(byte[] image, String filename) {

IVSImage storedImage = null;
if (image != null && image.length > 0) {
System.out.println("HERE1");
Tika tika = new Tika();
System.out.println("HERE2");
String contentType = tika.detect(image);
System.out.println("CONTENT TYPE: " + contentType);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tststs

storedImage = imageFactory.createImage(filename, contentType);
storedImage = imageRepo.save((VSImage) storedImage);
}
Expand Down Expand Up @@ -305,6 +307,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