Index: lams_tool_images/conf/hibernate/mappings/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallery.hbm.xml
===================================================================
diff -u
--- lams_tool_images/conf/hibernate/mappings/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallery.hbm.xml (revision 0)
+++ lams_tool_images/conf/hibernate/mappings/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallery.hbm.xml (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties
===================================================================
diff -u -r9dcdc46408a8664a0fb27f09ae58a340c15f5764 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 9dcdc46408a8664a0fb27f09ae58a340c15f5764)
+++ lams_tool_images/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -168,5 +168,8 @@
label.learning.delete.image =Delete image
label.submit =Finish
+label.rating.criterias =Rating criterias
+label.add.criteria =Add Criteria
+label.number.of.votes ={0} / {1} votes
#======= End labels: Exported 161 labels for en AU =====
Index: lams_tool_images/conf/xdoclet/struts-actions.xml
===================================================================
diff -u -r6d674e346dea6ce7a824366c8a7c315660677744 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 6d674e346dea6ce7a824366c8a7c315660677744)
+++ lams_tool_images/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -172,14 +172,6 @@
validate="false">
-
-
-
-
+
+
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallery.java
===================================================================
diff -u -r4d7dfe83093db060d8edeab425ce01543b38b530 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallery.java (.../ImageGallery.java) (revision 4d7dfe83093db060d8edeab425ce01543b38b530)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallery.java (.../ImageGallery.java) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -23,25 +23,18 @@
/* $Id$ */
package org.lamsfoundation.lams.tool.imageGallery.model;
-import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
import java.util.Set;
-import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.log4j.Logger;
-import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler;
-import org.lamsfoundation.lams.tool.imageGallery.util.ImageGalleryToolContentHandler;
+import org.lamsfoundation.lams.rating.model.LearnerItemRatingCriteria;
/**
* ImageGallery
*
- * @hibernate.class table="tl_laimag10_imagegallery"
- *
*/
public class ImageGallery implements Cloneable {
@@ -56,13 +49,13 @@
private String title;
private String instructions;
-
+
private Long nextImageTitle;
// advance
private boolean allowVote;
-
+
private boolean allowCommentImages;
private boolean allowShareImages;
@@ -75,6 +68,8 @@
private boolean allowRank;
+ private Set ratingCriterias;
+
// general infomation
private Date created;
@@ -88,7 +83,7 @@
private boolean reflectOnActivity;
private String reflectInstructions;
-
+
private boolean notifyTeachersOnImageSumbit;
/**
@@ -116,6 +111,15 @@
item.setCreateBy(toContent.getCreatedBy());
}
}
+
+ // reset contentId
+ if (toContent.getRatingCriterias() != null) {
+ Set criterias = toContent.getRatingCriterias();
+ for (LearnerItemRatingCriteria criteria : criterias) {
+ criteria.setToolContentId(contentId);
+ }
+ }
+
return toContent;
}
@@ -126,21 +130,34 @@
try {
imageGallery = (ImageGallery) super.clone();
imageGallery.setUid(null);
+
+ // clone imageGalleryItems as well
if (imageGalleryItems != null) {
- Iterator iter = imageGalleryItems.iterator();
- Set set = new HashSet();
- while (iter.hasNext()) {
- ImageGalleryItem item = (ImageGalleryItem) iter.next();
+ Set newItems = new HashSet();
+ for (ImageGalleryItem item : (Set) imageGalleryItems) {
ImageGalleryItem newItem = (ImageGalleryItem) item.clone();
// just clone old file without duplicate it in repository
- set.add(newItem);
+ newItems.add(newItem);
}
- imageGallery.imageGalleryItems = set;
+ imageGallery.imageGalleryItems = newItems;
}
- // clone ReourceUser as well
+
+ // clone ImageGalleryUser as well
if (createdBy != null) {
imageGallery.setCreatedBy((ImageGalleryUser) createdBy.clone());
}
+
+ // clone ratingCriterias as well
+ if (ratingCriterias != null) {
+ Set newCriterias = new HashSet();
+ for (LearnerItemRatingCriteria criteria : (Set) ratingCriterias) {
+ LearnerItemRatingCriteria newCriteria = (LearnerItemRatingCriteria) criteria.clone();
+ // just clone old file without duplicate it in repository
+ newCriterias.add(newCriteria);
+ }
+ imageGallery.ratingCriterias = newCriterias;
+ }
+
} catch (CloneNotSupportedException e) {
ImageGallery.log.error("When clone " + ImageGallery.class + " failed");
}
@@ -159,14 +176,15 @@
final ImageGallery genericEntity = (ImageGallery) o;
- return new EqualsBuilder().append(uid, genericEntity.uid).append(title, genericEntity.title).append(
- instructions, genericEntity.instructions).append(created, genericEntity.created)
+ return new EqualsBuilder().append(uid, genericEntity.uid).append(title, genericEntity.title)
+ .append(instructions, genericEntity.instructions).append(created, genericEntity.created)
.append(updated, genericEntity.updated).append(createdBy, genericEntity.createdBy).isEquals();
}
@Override
public int hashCode() {
- return new HashCodeBuilder().append(uid).append(title).append(instructions).append(created).append(updated).append(createdBy).toHashCode();
+ return new HashCodeBuilder().append(uid).append(title).append(instructions).append(created).append(updated)
+ .append(createdBy).toHashCode();
}
/**
@@ -188,7 +206,6 @@
* Returns the object's creation date
*
* @return date
- * @hibernate.property column="create_date"
*/
public Date getCreated() {
return created;
@@ -207,7 +224,6 @@
* Returns the object's date of last update
*
* @return date updated
- * @hibernate.property column="update_date"
*/
public Date getUpdated() {
return updated;
@@ -225,23 +241,20 @@
/**
* @return Returns the userid of the user who created the Share imageGallery.
*
- * @hibernate.many-to-one cascade="save-update" column="create_by"
- *
*/
public ImageGalleryUser getCreatedBy() {
return createdBy;
}
/**
* @param createdBy
- * The userid of the user who created this Share imageGallery.
+ * The userid of the user who created this Share imageGallery.
*/
public void setCreatedBy(ImageGalleryUser createdBy) {
this.createdBy = createdBy;
}
/**
- * @hibernate.id column="uid" generator-class="native"
*/
public Long getUid() {
return uid;
@@ -254,16 +267,14 @@
/**
* @return Returns the title.
*
- * @hibernate.property column="title"
- *
*/
public String getTitle() {
return title;
}
/**
* @param title
- * The title to set.
+ * The title to set.
*/
public void setTitle(String title) {
this.title = title;
@@ -272,25 +283,21 @@
/**
* @return Returns the lockWhenFinish.
*
- * @hibernate.property column="lock_on_finished"
- *
*/
public boolean getLockWhenFinished() {
return lockWhenFinished;
}
/**
* @param lockWhenFinished
- * Set to true to lock the imageGallery for finished users.
+ * Set to true to lock the imageGallery for finished users.
*/
public void setLockWhenFinished(boolean lockWhenFinished) {
this.lockWhenFinished = lockWhenFinished;
}
/**
* @return Returns the instructions set by the teacher.
- *
- * @hibernate.property column="instructions" type="text"
*/
public String getInstructions() {
return instructions;
@@ -299,11 +306,9 @@
public void setInstructions(String instructions) {
this.instructions = instructions;
}
-
+
/**
* @return Returns the next condecutive integer for constructing image title.
- *
- * @hibernate.property column="next_image_title"
*/
public Long getNextImageTitle() {
return nextImageTitle;
@@ -315,11 +320,6 @@
/**
*
- *
- * @hibernate.set lazy="true" inverse="false" cascade="all" order-by="create_date desc"
- * @hibernate.collection-key column="imageGallery_uid"
- * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem"
- *
* @return
*/
public Set getImageGalleryItems() {
@@ -331,7 +331,6 @@
}
/**
- * @hibernate.property column="content_in_use"
* @return
*/
public boolean isContentInUse() {
@@ -343,7 +342,6 @@
}
/**
- * @hibernate.property column="define_later"
* @return
*/
public boolean isDefineLater() {
@@ -355,7 +353,6 @@
}
/**
- * @hibernate.property column="content_id" unique="true"
* @return
*/
public Long getContentId() {
@@ -367,7 +364,6 @@
}
/**
- * @hibernate.property column="allow_comment_images"
* @return
*/
public boolean isAllowCommentImages() {
@@ -379,7 +375,6 @@
}
/**
- * @hibernate.property column="allow_share_images"
* @return
*/
public boolean isAllowShareImages() {
@@ -391,7 +386,6 @@
}
/**
- * @hibernate.property column="allow_vote"
* @return
*/
public boolean isAllowVote() {
@@ -403,7 +397,6 @@
}
/**
- * @hibernate.property column="reflect_instructions"
* @return
*/
public String getReflectInstructions() {
@@ -415,7 +408,6 @@
}
/**
- * @hibernate.property column="reflect_on_activity"
* @return
*/
public boolean isReflectOnActivity() {
@@ -427,7 +419,6 @@
}
/**
- * @hibernate.property column="allow_rank"
* @return
*/
public boolean isAllowRank() {
@@ -439,9 +430,20 @@
}
/**
- * @hibernate.property column="image_submit_notify"
+ *
* @return
*/
+ public Set getRatingCriterias() {
+ return ratingCriterias;
+ }
+
+ public void setRatingCriterias(Set ratingCriterias) {
+ this.ratingCriterias = ratingCriterias;
+ }
+
+ /**
+ * @return
+ */
public boolean isNotifyTeachersOnImageSumbit() {
return notifyTeachersOnImageSumbit;
}
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGalleryItem.java
===================================================================
diff -u -r7041999fcaee0534c3b48e9cea84934662d2de51 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGalleryItem.java (.../ImageGalleryItem.java) (revision 7041999fcaee0534c3b48e9cea84934662d2de51)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGalleryItem.java (.../ImageGalleryItem.java) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -36,7 +36,6 @@
* @hibernate.class table="tl_laimag10_imagegallery_item"
*
* @author Andrey Balan
- *
*/
public class ImageGalleryItem implements Cloneable {
@@ -108,6 +107,7 @@
try {
image = (ImageGalleryItem) super.clone();
image.setUid(null);
+
// clone ImageGalleryUser as well
if (this.createBy != null) {
image.setCreateBy((ImageGalleryUser) this.createBy.clone());
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallerySession.java
===================================================================
diff -u -rde59f382658daefe4f6679aaaea621284d1c72cc -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallerySession.java (.../ImageGallerySession.java) (revision de59f382658daefe4f6679aaaea621284d1c72cc)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/model/ImageGallerySession.java (.../ImageGallerySession.java) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -30,7 +30,7 @@
/**
* ImageGallery
*
- * @author Dapeng Ni
+ * @author Andrey Balan
*
* @hibernate.class table="tl_laimag10_session"
*
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java
===================================================================
diff -u -rbb597b8155375e6ac4dfe280f630d323b6e5e575 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision bb597b8155375e6ac4dfe280f630d323b6e5e575)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -28,21 +28,19 @@
import java.util.Set;
import org.apache.struts.upload.FormFile;
-import org.lamsfoundation.lams.events.IEventNotificationService;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
+import org.lamsfoundation.lams.rating.dto.RatingDTO;
+import org.lamsfoundation.lams.rating.model.RatingCriteria;
import org.lamsfoundation.lams.tool.imageGallery.dto.ReflectDTO;
import org.lamsfoundation.lams.tool.imageGallery.dto.Summary;
import org.lamsfoundation.lams.tool.imageGallery.dto.UserImageContributionDTO;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallery;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryAttachment;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryConfigItem;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallerySession;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageRating;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageVote;
-import org.lamsfoundation.lams.usermanagement.User;
/**
* @author Dapeng.Ni
@@ -151,14 +149,13 @@
*/
void deleteImage(Long toolSessionId, Long imageUid);
- /**
- * Save/update ImageRating.
- *
- * @param rating
- * ImageRating
- * @return
- */
- void saveOrUpdateImageRating(ImageRating rating);
+ List getRatingCriterias(Long toolContentId);
+
+ void saveOrUpdateRatingCriteria(RatingCriteria criteria);
+
+ void deleteRatingCriteria(Long ratingCriteriaId);
+
+ List getRatingDtos(ImageGallery imageGallery, Long imageUid, Long userId);
/**
* Save/update ImageVote.
@@ -216,15 +213,6 @@
ImageGallery getImageGalleryByContentId(Long contentId);
/**
- * Returns imageRating by the given imageUid and userId
- *
- * @param imageUid
- * @param userId
- * @return
- */
- ImageRating getImageRatingByImageAndUser(Long imageUid, Long userId);
-
- /**
* Returns imageVote by the given imageUid and userId
*
* @param imageUid
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java
===================================================================
diff -u -rcdec304befa7df4b107e2219638b27ef75fb49a5 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision cdec304befa7df4b107e2219638b27ef75fb49a5)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -33,6 +33,7 @@
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -52,10 +53,12 @@
import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException;
import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService;
import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
-import org.lamsfoundation.lams.lesson.service.ILessonService;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants;
import org.lamsfoundation.lams.notebook.service.ICoreNotebookService;
+import org.lamsfoundation.lams.rating.dto.RatingDTO;
+import org.lamsfoundation.lams.rating.model.RatingCriteria;
+import org.lamsfoundation.lams.rating.service.IRatingService;
import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolOutput;
@@ -152,6 +155,8 @@
private IExportToolContentService exportContentService;
private ICoreNotebookService coreNotebookService;
+
+ private IRatingService ratingService;
private IEventNotificationService eventNotificationService;
@@ -230,16 +235,6 @@
saveOrUpdateImageGallery(imageGallery);
}
- @Override
- public ImageRating getImageRatingByImageAndUser(Long imageUid, Long userId) {
- return imageRatingDao.getImageRatingByImageAndUser(imageUid, userId);
- }
-
- @Override
- public void saveOrUpdateImageRating(ImageRating rating) {
- imageRatingDao.saveObject(rating);
- }
-
public ImageVote getImageVoteByImageAndUser(Long imageUid, Long userId) {
return imageVoteDao.getImageVoteByImageAndUser(imageUid, userId);
}
@@ -377,6 +372,22 @@
public void updateEntry(NotebookEntry notebookEntry) {
coreNotebookService.updateEntry(notebookEntry);
}
+
+ @Override
+ public List getRatingCriterias(Long toolContentId) {
+ List ratingCriterias = ratingService.getCriteriasByToolContentId(toolContentId);
+ return ratingCriterias;
+ }
+
+ @Override
+ public void saveOrUpdateRatingCriteria(RatingCriteria criteria) {
+ ratingService.saveOrUpdateRatingCriteria(criteria);
+ }
+
+ @Override
+ public void deleteRatingCriteria(Long ratingCriteriaId) {
+ ratingService.deleteRatingCriteria(ratingCriteriaId);
+ }
@Override
public ImageGalleryUser getUser(Long uid) {
@@ -1092,6 +1103,10 @@
public void setCoreNotebookService(ICoreNotebookService coreNotebookService) {
this.coreNotebookService = coreNotebookService;
}
+
+ public void setRatingService(IRatingService ratingService) {
+ this.ratingService = ratingService;
+ }
public void setEventNotificationService(IEventNotificationService eventNotificationService) {
this.eventNotificationService = eventNotificationService;
@@ -1134,9 +1149,7 @@
return images;
}
- /**
- * {@inheritDoc}
- */
+ @Deprecated
public Object[] getRatingForGroup(Long imageUid, Long sessionId) {
List users = imageGalleryUserDao.getBySessionID(sessionId);
Long numberRatings = new Long(0);
@@ -1157,6 +1170,20 @@
return new Object[] { numberRatings, averageRating };
}
+
+ @Override
+ public List getRatingDtos(ImageGallery imageGallery, Long imageUid, Long userId) {
+ List ratingDtos = new LinkedList();
+
+ for (RatingCriteria criteria : imageGallery.getRatingCriterias()) {
+ RatingDTO ratingDto = ratingService.getRatingDTOByUser(criteria.getRatingCriteriaId(), imageUid, userId.intValue());
+ ratingDto.setRatingCriteria(criteria);
+
+ ratingDtos.add(ratingDto);
+ }
+
+ return ratingDtos;
+ }
// *****************************************************************************
// private methods
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java
===================================================================
diff -u -r7041999fcaee0534c3b48e9cea84934662d2de51 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 7041999fcaee0534c3b48e9cea84934662d2de51)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -26,10 +26,11 @@
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
-import java.util.HashSet;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -52,11 +53,11 @@
import org.apache.struts.action.ActionMessages;
import org.apache.struts.upload.FormFile;
import org.lamsfoundation.lams.authoring.web.AuthoringConstants;
-import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler;
+import org.lamsfoundation.lams.rating.model.LearnerItemRatingCriteria;
+import org.lamsfoundation.lams.rating.model.RatingCriteria;
import org.lamsfoundation.lams.tool.ToolAccessMode;
import org.lamsfoundation.lams.tool.imageGallery.ImageGalleryConstants;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallery;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryAttachment;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser;
import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService;
@@ -223,6 +224,10 @@
SortedSet imageGalleryItemList = getImageList(sessionMap);
imageGalleryItemList.clear();
imageGalleryItemList.addAll(items);
+
+ // get rating criterias from DB
+ List ratingCriterias = service.getRatingCriterias(contentId);
+ sessionMap.put(AttributeNames.ATTR_RATING_CRITERIAS, ratingCriterias);
sessionMap.put(ImageGalleryConstants.ATTR_IMAGE_GALLERY_FORM, imageGalleryForm);
sessionMap.put(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE, imageGallery.getNextImageTitle());
@@ -293,10 +298,10 @@
ImageGallery imageGallery = imageGalleryForm.getImageGallery();
IImageGalleryService service = getImageGalleryService();
+ Long contentId = imageGalleryForm.getImageGallery().getContentId();
// **********************************Get ImageGallery PO*********************
- ImageGallery imageGalleryPO = service.getImageGalleryByContentId(imageGalleryForm.getImageGallery()
- .getContentId());
+ ImageGallery imageGalleryPO = service.getImageGalleryByContentId(contentId);
if (imageGalleryPO == null) {
// new ImageGallery, create it.
imageGalleryPO = imageGallery;
@@ -327,7 +332,7 @@
// get back login user DTO
UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
ImageGalleryUser imageGalleryUser = service.getUserByIDAndContent(new Long(user.getUserID().intValue()),
- imageGalleryForm.getImageGallery().getContentId());
+ contentId);
if (imageGalleryUser == null) {
imageGalleryUser = new ImageGalleryUser(user, imageGalleryPO);
}
@@ -368,7 +373,42 @@
ImageGalleryItem delAtt = (ImageGalleryItem) iter.next();
iter.remove();
}
+
+ // ************************* Handle rating criterias *******************
+ List ratingCriterias = (List) sessionMap.get(AttributeNames.ATTR_RATING_CRITERIAS);
+ Map mapOrderIdToRatingCriteria = new HashMap();
+ for (RatingCriteria ratingCriteriaIter : ratingCriterias) {
+ mapOrderIdToRatingCriteria.put(ratingCriteriaIter.getOrderId(), ratingCriteriaIter);
+ }
+
+ int criteriaMaxOrderId = WebUtil.readIntParam(request, "criteriaMaxOrderId");
+ //i is equal to an old orderId
+ for (int i=1; i<=criteriaMaxOrderId; i++) {
+
+ String criteriaTitle = WebUtil.readStrParam(request, "criteriaTitle" + i, true);
+
+ RatingCriteria ratingCriteria = mapOrderIdToRatingCriteria.get(i);
+ if (StringUtils.isNotBlank(criteriaTitle)) {
+ int newCriteriaOrderId = WebUtil.readIntParam(request, "criteriaOrderId" + i);
+ // modify existing one if it exists. add otherwise
+ if (ratingCriteria == null) {
+ ratingCriteria = new LearnerItemRatingCriteria();
+ ratingCriteria.setRatingCriteriaTypeId(LearnerItemRatingCriteria.LEARNER_ITEM_CRITERIA_TYPE);
+ ((LearnerItemRatingCriteria) ratingCriteria).setToolContentId(contentId);
+ }
+
+ ratingCriteria.setOrderId(newCriteriaOrderId);
+ ratingCriteria.setTitle(criteriaTitle);
+ service.saveOrUpdateRatingCriteria(ratingCriteria);
+
+ //delete
+ } else if (ratingCriteria != null) {
+ service.deleteRatingCriteria(ratingCriteria.getRatingCriteriaId());
+ }
+
+ }
+
// **********************************************
// finally persist imageGalleryPO again
service.saveOrUpdateImageGallery(imageGalleryPO);
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java
===================================================================
diff -u -r6c4f0e1c0f459cf029ae028396b5435a12eb7516 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision 6c4f0e1c0f459cf029ae028396b5435a12eb7516)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -37,7 +37,6 @@
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.math.NumberUtils;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
@@ -49,12 +48,11 @@
import org.apache.struts.action.ActionRedirect;
import org.apache.struts.config.ForwardConfig;
import org.apache.struts.upload.FormFile;
-import org.lamsfoundation.lams.events.DeliveryMethodMail;
-import org.lamsfoundation.lams.events.IEventNotificationService;
import org.lamsfoundation.lams.learning.web.bean.ActivityPositionDTO;
import org.lamsfoundation.lams.learning.web.util.LearningWebUtil;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants;
+import org.lamsfoundation.lams.rating.dto.RatingDTO;
import org.lamsfoundation.lams.tool.ToolAccessMode;
import org.lamsfoundation.lams.tool.imageGallery.ImageGalleryConstants;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment;
@@ -63,7 +61,6 @@
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallerySession;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageRating;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageVote;
import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService;
import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryException;
@@ -74,7 +71,6 @@
import org.lamsfoundation.lams.tool.imageGallery.web.form.ImageRatingForm;
import org.lamsfoundation.lams.tool.imageGallery.web.form.MultipleImagesForm;
import org.lamsfoundation.lams.tool.imageGallery.web.form.ReflectionForm;
-import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.util.FileValidatorUtil;
import org.lamsfoundation.lams.util.WebUtil;
@@ -127,9 +123,6 @@
if (param.equals("addNewComment")) {
return addNewComment(mapping, form, request, response);
}
- if (param.equals("saveOrUpdateRating")) {
- return saveOrUpdateRating(mapping, form, request, response);
- }
if (param.equals("vote")) {
return vote(mapping, form, request, response);
}
@@ -203,6 +196,7 @@
sessionMap.put(ImageGalleryConstants.ATTR_LOCK_ON_FINISH, imageGallery.getLockWhenFinished());
sessionMap.put(ImageGalleryConstants.ATTR_USER_FINISHED,
imageGalleryUser != null && imageGalleryUser.isSessionFinished());
+ sessionMap.put(AttributeNames.PARAM_USER_ID, imageGalleryUser.getUserId());
sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId);
sessionMap.put(AttributeNames.ATTR_MODE, mode);
@@ -467,9 +461,7 @@
Long sessionId = (Long) sessionMap.get(ImageGalleryConstants.ATTR_TOOL_SESSION_ID);
IImageGalleryService service = getImageGalleryService();
ImageGallery imageGallery = service.getImageGalleryBySessionId(sessionId);
- UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER);
- ImageGalleryUser imageGalleryUser = service.getUserByIDAndSession(new Long(user.getUserID().intValue()),
- sessionId);
+ Long userId = (Long) sessionMap.get(AttributeNames.PARAM_USER_ID);
Long imageUid = new Long(request.getParameter(ImageGalleryConstants.PARAM_IMAGE_UID));
ImageGalleryItem image = service.getImageGalleryItemByUid(imageUid);
@@ -487,7 +479,7 @@
ToolAccessMode mode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE);
boolean isTeacher = mode != null && mode.isTeacher();
boolean isAuthor = !isTeacher && !image.isCreateByAuthor() && (createdBy != null)
- && (createdBy.getUserId().equals(imageGalleryUser.getUserId()));
+ && (createdBy.getUserId().equals(userId));
if (imageGallery.isAllowCommentImages()) {
TreeSet comments = new TreeSet(new ImageCommentComparator());
@@ -504,18 +496,13 @@
}
if (!isTeacher && imageGallery.isAllowRank()) {
- ImageRating imageRating = service.getImageRatingByImageAndUser(imageUid, imageGalleryUser.getUserId());
- int rating = imageRating == null ? 0 : imageRating.getRating();
-
- Object[] ratingForGroup = service.getRatingForGroup(imageUid, sessionId);
- sessionMap.put(ImageGalleryConstants.PARAM_NUMBER_RATINGS, ((Long) ratingForGroup[0]).toString());
- sessionMap.put(ImageGalleryConstants.PARAM_AVERAGE_RATING, ((Float) ratingForGroup[1]).toString());
- sessionMap.put(ImageGalleryConstants.PARAM_CURRENT_RATING, rating);
+ List ratingDtos = service.getRatingDtos(imageGallery, imageUid, userId);
+ sessionMap.put(ImageGalleryConstants.ATTR_RATING_DTOS, ratingDtos);
}
if (!isTeacher && imageGallery.isAllowVote()) {
boolean isVotedForThisImage = false;
- ImageVote imageVote = service.getImageVoteByImageAndUser(image.getUid(), imageGalleryUser.getUserId());
+ ImageVote imageVote = service.getImageVoteByImageAndUser(image.getUid(), userId);
if (imageVote != null && imageVote.isVoted()) {
isVotedForThisImage = true;
}
@@ -595,47 +582,6 @@
* @param response
* @return
*/
- private ActionForward saveOrUpdateRating(ActionMapping mapping, ActionForm form, HttpServletRequest request,
- HttpServletResponse response) {
- String sessionMapID = WebUtil.readStrParam(request, ImageGalleryConstants.ATTR_SESSION_MAP_ID);
- SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID);
- Long sessionId = (Long) sessionMap.get(ImageGalleryConstants.ATTR_TOOL_SESSION_ID);
- IImageGalleryService service = getImageGalleryService();
-
- int rating = NumberUtils.stringToInt(((ImageRatingForm) form).getRating());
- Long imageUid = new Long(request.getParameter(ImageGalleryConstants.PARAM_IMAGE_UID));
- UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER);
- ImageGalleryUser imageGalleryUser = service.getUserByIDAndSession(new Long(user.getUserID().intValue()),
- sessionId);
- ImageRating imageRating = service.getImageRatingByImageAndUser(imageUid, imageGalleryUser.getUserId());
-
- // persist ImageGalleryItem changes in DB
- ImageGalleryItem dbImage = service.getImageGalleryItemByUid(imageUid);
- if (imageRating == null) { // add
- imageRating = new ImageRating();
- imageRating.setCreateBy(imageGalleryUser);
- imageRating.setImageGalleryItem(dbImage);
- }
- imageRating.setRating(rating);
- service.saveOrUpdateImageRating(imageRating);
-
- // to make available new changes be visible in jsp page
- sessionMap.put(ImageGalleryConstants.PARAM_CURRENT_IMAGE, dbImage);
- sessionMap.put(ImageGalleryConstants.PARAM_CURRENT_RATING, rating);
-
- request.setAttribute(ImageGalleryConstants.ATTR_SESSION_MAP_ID, sessionMapID);
- return mapping.findForward(ImageGalleryConstants.SUCCESS);
- }
-
- /**
- * Move down current item.
- *
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return
- */
private ActionForward vote(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
String sessionMapID = WebUtil.readStrParam(request, ImageGalleryConstants.ATTR_SESSION_MAP_ID);
Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/servlet/ExportServlet.java
===================================================================
diff -u -r7041999fcaee0534c3b48e9cea84934662d2de51 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision 7041999fcaee0534c3b48e9cea84934662d2de51)
+++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -48,7 +48,6 @@
import org.lamsfoundation.lams.tool.imageGallery.dto.UserImageContributionDTO;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallery;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryItem;
-import org.lamsfoundation.lams.tool.imageGallery.model.ImageGallerySession;
import org.lamsfoundation.lams.tool.imageGallery.model.ImageGalleryUser;
import org.lamsfoundation.lams.tool.imageGallery.service.IImageGalleryService;
import org.lamsfoundation.lams.tool.imageGallery.service.ImageGalleryException;
Index: lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag
===================================================================
diff -u
--- lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag (revision 0)
+++ lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -0,0 +1,212 @@
+<%
+ /**
+ * AuthoringRatingCriteria.tag
+ * Author: Andrey Balan
+ * Description: Creates list of rating criterias for authoring page
+ */
+ %>
+<%@ tag body-content="scriptless" %>
+<%@ taglib uri="tags-core" prefix="c" %>
+<%@ taglib uri="tags-fmt" prefix="fmt" %>
+<%@ taglib uri="tags-html" prefix="html" %>
+<%@ taglib uri="tags-lams" prefix="lams"%>
+<%@ taglib uri="tags-function" prefix="fn" %>
+
+
+<%@ attribute name="criterias" required="true" rtexprvalue="true" type="java.util.Collection" %>
+
+<%-- Optional attribute --%>
+<%@ attribute name="headerLabel" required="false" rtexprvalue="true" %>
+<%@ attribute name="addLabel" required="false" rtexprvalue="true" %>
+<%@ attribute name="deleteLabel" required="false" rtexprvalue="true" %>
+<%@ attribute name="upLabel" required="false" rtexprvalue="true" %>
+<%@ attribute name="downLabel" required="false" rtexprvalue="true" %>
+
+<%-- Default value for message key --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: lams_tool_images/web/WEB-INF/tags/Rating.tag
===================================================================
diff -u
--- lams_tool_images/web/WEB-INF/tags/Rating.tag (revision 0)
+++ lams_tool_images/web/WEB-INF/tags/Rating.tag (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -0,0 +1,117 @@
+<%
+ /**
+ * Rating.tag
+ * Author: Andrey Balan
+ * Description: Shows rating stars widget
+ */
+ %>
+<%@ tag body-content="scriptless" %>
+<%@ taglib uri="tags-core" prefix="c" %>
+<%@ taglib uri="tags-fmt" prefix="fmt" %>
+<%@ taglib uri="tags-html" prefix="html" %>
+<%@ taglib uri="tags-lams" prefix="lams"%>
+<%@ taglib uri="tags-function" prefix="fn" %>
+
+
+<%@ attribute name="ratingDtos" required="false" rtexprvalue="true" type="java.util.Collection" %>
+
+<%-- Optional attribute --%>
+<%@ attribute name="disabled" required="false" rtexprvalue="true" %>
+<%@ attribute name="numberVotesLabel" required="false" rtexprvalue="true" %>
+
+<%-- Default value for message key --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${ratingDto.ratingCriteria.title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${ratingDto.numberOfVotes}
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: lams_tool_images/web/WEB-INF/tlds/lams/lams.tld
===================================================================
diff -u -r606581007abbdaee5483777096f32ffac1c3e3eb -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/web/WEB-INF/tlds/lams/lams.tld (.../lams.tld) (revision 606581007abbdaee5483777096f32ffac1c3e3eb)
+++ lams_tool_images/web/WEB-INF/tlds/lams/lams.tld (.../lams.tld) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -426,6 +426,14 @@
AuthoringButton
/WEB-INF/tags/AuthoringButton.tag
+
+
+ AuthoringRatingCriteria
+ /WEB-INF/tags/AuthoringRatingCriteria.tag
+
+
+ Rating
+ /WEB-INF/tags/Rating.tag
headItems
Index: lams_tool_images/web/includes/javascript/imageGallerycommon.js
===================================================================
diff -u -r8a7c47632a6a93892f015f068d12adb376c0ae2d -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/web/includes/javascript/imageGallerycommon.js (.../imageGallerycommon.js) (revision 8a7c47632a6a93892f015f068d12adb376c0ae2d)
+++ lams_tool_images/web/includes/javascript/imageGallerycommon.js (.../imageGallerycommon.js) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -1,10 +1,10 @@
- function showBusy(targetDiv){
- if($(targetDiv+"_Busy") != null){
- Element.show(targetDiv+"_Busy");
- }
+function showBusy(targetDiv){
+ if($(targetDiv+"_Busy") != null){
+ document.getElementById(targetDiv+"_Busy").style.display = '';
}
- function hideBusy(targetDiv){
- if($(targetDiv+"_Busy") != null){
- Element.hide(targetDiv+"_Busy");
- }
- }
+}
+function hideBusy(targetDiv){
+ if($(targetDiv+"_Busy") != null){
+ document.getElementById(targetDiv+"_Busy").style.display = 'none';
+ }
+}
Index: lams_tool_images/web/pages/authoring/advance.jsp
===================================================================
diff -u -rdb681dba0a5e44ae9f4e4cf6b9bc575d6175212f -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/web/pages/authoring/advance.jsp (.../advance.jsp) (revision db681dba0a5e44ae9f4e4cf6b9bc575d6175212f)
+++ lams_tool_images/web/pages/authoring/advance.jsp (.../advance.jsp) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -1,6 +1,15 @@
<%@ include file="/common/taglibs.jsp"%>
-
+
+
@@ -44,8 +54,7 @@
-
-
+
@@ -70,26 +79,30 @@
-
-
- checked="checked"
- disabled="disabled"
- />
-
-
-
-
- checked="checked"
- disabled="disabled"
- />
-
+
+
checked="checked"
+
disabled="disabled"
+ />
+
+
+
+
checked="checked"
+
disabled="disabled"
+ />
+
+
+
style="display:none;" >
+
+
+
Index: lams_tool_images/web/pages/authoring/authoring.jsp
===================================================================
diff -u -r7041999fcaee0534c3b48e9cea84934662d2de51 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision 7041999fcaee0534c3b48e9cea84934662d2de51)
+++ lams_tool_images/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -9,7 +9,7 @@
<%@ include file="/common/tabbedheader.jsp"%>
-
+
@@ -132,8 +149,8 @@
- width="100%"
+ contentFolderID="${formBean.contentFolderID}"
+ width="100%">
Index: lams_tool_images/web/pages/learning/learning.jsp
===================================================================
diff -u -rbf49caa03b4d5d074f8c7dcfb3b761e66c57d58d -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/web/pages/learning/learning.jsp (.../learning.jsp) (revision bf49caa03b4d5d074f8c7dcfb3b761e66c57d58d)
+++ lams_tool_images/web/pages/learning/learning.jsp (.../learning.jsp) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -20,7 +20,6 @@
-
-
-
@@ -314,75 +224,14 @@
-
-
-
-
- <%--Comments area----------------------------------------------%>
-
-
+ <%--Comments & Ranking/Voting area----------------------------------------------%>
+
+
+
+ <%@ include file="/pages/learning/parts/commentsarea.jsp"%>
+
+
<%--Reflection--------------------------------------------------%>
Index: lams_tool_images/web/pages/learning/parts/commentsarea.jsp
===================================================================
diff -u -r7041999fcaee0534c3b48e9cea84934662d2de51 -r9d14ce6a68469c1cd7f0522a2d39387016e35f1e
--- lams_tool_images/web/pages/learning/parts/commentsarea.jsp (.../commentsarea.jsp) (revision 7041999fcaee0534c3b48e9cea84934662d2de51)
+++ lams_tool_images/web/pages/learning/parts/commentsarea.jsp (.../commentsarea.jsp) (revision 9d14ce6a68469c1cd7f0522a2d39387016e35f1e)
@@ -1,74 +1,155 @@
<%@ include file="/common/taglibs.jsp"%>
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
- <%@ include file="/common/messages.jsp"%>
+<%--Comments area---------------------------------------%>
+