Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java =================================================================== diff -u -rec25cec0aae2211ee71688230aaa0dfd309018ad -r19775b178ccef32b0c96fa3ed03dcf051f48b0cf --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java (.../IImageGalleryService.java) (revision 19775b178ccef32b0c96fa3ed03dcf051f48b0cf) @@ -29,7 +29,9 @@ import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.notebook.model.NotebookEntry; -import org.lamsfoundation.lams.rating.dto.RatingCriteriaDTO; +import org.lamsfoundation.lams.rating.ToolRatingManager; +import org.lamsfoundation.lams.rating.dto.ItemRatingCriteriaDTO; +import org.lamsfoundation.lams.rating.dto.ItemRatingDTO; import org.lamsfoundation.lams.rating.model.RatingCriteria; import org.lamsfoundation.lams.tool.imageGallery.dto.ReflectDTO; import org.lamsfoundation.lams.tool.imageGallery.dto.Summary; @@ -47,7 +49,7 @@ * * Interface that defines the contract that all ShareImageGallery service provider must follow. */ -public interface IImageGalleryService { +public interface IImageGalleryService extends ToolRatingManager { /** * Get a cloned copy of tool default tool content (ImageGallery) and assign the toolContentId of that copy as the @@ -131,6 +133,8 @@ * @return Object[] {numberRatings, averageRating} */ Object[] getRatingForGroup(Long imageUid, Long sessionId); + + ItemRatingDTO getRatingCriteriaDtos(Long contentId, Long imageUid, Long userId); /** * Save/update current ImageGalleryItem. @@ -149,24 +153,7 @@ */ void deleteImage(Long toolSessionId, Long imageUid); - List getRatingCriterias(Long toolContentId); - - void saveOrUpdateRatingCriteria(RatingCriteria criteria); - - void deleteRatingCriteria(Long ratingCriteriaId); - - List getRatingCriteriaDtos(Long contentId, Long imageUid, Long userId); - /** - * Returns number of images rated by specified user in a current activity. It counts comments as ratings. - * - * @param toolContentId - * @param userId - * @return - */ - int getCountImagesRatedByUser(Long toolContentId, Integer userId); - - /** * Save/update ImageVote. * * @param vote Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java =================================================================== diff -u -rec25cec0aae2211ee71688230aaa0dfd309018ad -r19775b178ccef32b0c96fa3ed03dcf051f48b0cf --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java (.../ImageGalleryServiceImpl.java) (revision 19775b178ccef32b0c96fa3ed03dcf051f48b0cf) @@ -29,6 +29,7 @@ import java.io.InputStream; import java.sql.Timestamp; import java.util.ArrayList; +import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Hashtable; @@ -41,6 +42,7 @@ import java.util.TreeSet; import javax.imageio.ImageIO; +import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -56,7 +58,9 @@ 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.RatingCriteriaDTO; +import org.lamsfoundation.lams.rating.ToolRatingManager; +import org.lamsfoundation.lams.rating.dto.ItemRatingCriteriaDTO; +import org.lamsfoundation.lams.rating.dto.ItemRatingDTO; import org.lamsfoundation.lams.rating.model.RatingCriteria; import org.lamsfoundation.lams.rating.service.IRatingService; import org.lamsfoundation.lams.tool.ToolContentImport102Manager; @@ -372,19 +376,40 @@ } @Override + public ItemRatingDTO getRatingCriteriaDtos(Long contentId, Long imageUid, Long userId) { + + LinkedList itemIds = new LinkedList(); + itemIds.add(imageUid); + ItemRatingDTO ratingCriteria = ratingService.getRatingCriteriaDtos(contentId, itemIds, true, userId).get(0); + + return ratingCriteria; + } + + @Override + public List getRatingCriteriaDtos(Long contentId, Collection itemIds, + boolean isAllItemResultsRequested, Long userId) { + return ratingService.getRatingCriteriaDtos(contentId, itemIds, isAllItemResultsRequested, userId); + } + + @Override + public int getCountItemsRatedByUser(Long toolContentId, Integer userId) { + return ratingService.getCountItemsRatedByUser(toolContentId, userId); + } + + @Override public List getRatingCriterias(Long toolContentId) { List ratingCriterias = ratingService.getCriteriasByToolContentId(toolContentId); return ratingCriterias; } @Override - public void saveOrUpdateRatingCriteria(RatingCriteria criteria) { - ratingService.saveOrUpdateRatingCriteria(criteria); + public void saveRatingCriterias(HttpServletRequest request, Collection oldCriterias, Long toolContentId) { + ratingService.saveRatingCriterias(request, oldCriterias, toolContentId); } @Override - public void deleteRatingCriteria(Long ratingCriteriaId) { - ratingService.deleteRatingCriteria(ratingCriteriaId); + public boolean isCommentsEnabled(Long toolContentId) { + return ratingService.isCommentsEnabled(toolContentId); } @Override @@ -1168,26 +1193,7 @@ return new Object[] { numberRatings, averageRating }; } - - @Override - public List getRatingCriteriaDtos(Long contentId, Long imageUid, Long userId) { - List criteriaDtos = new LinkedList(); - List criterias = ratingService.getCriteriasByToolContentId(contentId); - for (RatingCriteria criteria : criterias) { - RatingCriteriaDTO criteriaDto = ratingService.getCriteriaDTOByUser(criteria, imageUid, userId.intValue()); - - criteriaDtos.add(criteriaDto); - } - - return criteriaDtos; - } - - @Override - public int getCountImagesRatedByUser(Long toolContentId, Integer userId) { - return ratingService.getCountItemsRatedByUser(toolContentId, userId); - } - // ***************************************************************************** // private methods // ***************************************************************************** Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java =================================================================== diff -u -rec25cec0aae2211ee71688230aaa0dfd309018ad -r19775b178ccef32b0c96fa3ed03dcf051f48b0cf --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 19775b178ccef32b0c96fa3ed03dcf051f48b0cf) @@ -26,11 +26,9 @@ import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; -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; @@ -53,7 +51,6 @@ import org.apache.struts.action.ActionMessages; import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.authoring.web.AuthoringConstants; -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; @@ -379,77 +376,9 @@ } // ************************* Handle rating criterias ******************* - // Set updatedCriterias = new LinkedHashSet(); - List ratingCriterias = (List) sessionMap - .get(AttributeNames.ATTR_RATING_CRITERIAS); - // create orderId to RatingCriteria map - Map mapOrderIdToRatingCriteria = new HashMap(); - for (RatingCriteria ratingCriteriaIter : ratingCriterias) { - mapOrderIdToRatingCriteria.put(ratingCriteriaIter.getOrderId(), ratingCriteriaIter); - } + List oldCriterias = (List) sessionMap.get(AttributeNames.ATTR_RATING_CRITERIAS); + service.saveRatingCriterias(request, oldCriterias, contentId); - 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); - // !!updatedCriterias.add(ratingCriteria); - - // delete - } else if (ratingCriteria != null) { - service.deleteRatingCriteria(ratingCriteria.getRatingCriteriaId()); - } - - } - - boolean isCommentsEnabled = WebUtil.readBooleanParam(request, "isCommentsEnabled", false); - // find comments' responsible RatingCriteria - RatingCriteria commentsResponsibleCriteria = null; - for (RatingCriteria ratingCriteriaIter : ratingCriterias) { - if (ratingCriteriaIter.isCommentsEnabled()) { - commentsResponsibleCriteria = ratingCriteriaIter; - break; - } - } - // create commentsRatingCriteria if it's required - if (isCommentsEnabled) { - if (commentsResponsibleCriteria == null) { - commentsResponsibleCriteria = new LearnerItemRatingCriteria(); - commentsResponsibleCriteria.setRatingCriteriaTypeId(LearnerItemRatingCriteria.LEARNER_ITEM_CRITERIA_TYPE); - ((LearnerItemRatingCriteria) commentsResponsibleCriteria).setToolContentId(contentId); - commentsResponsibleCriteria.setOrderId(0); - commentsResponsibleCriteria.setCommentsEnabled(true); - } - - int commentsMinWordsLimit = WebUtil.readIntParam(request, "commentsMinWordsLimit"); - commentsResponsibleCriteria.setCommentsMinWordsLimit(commentsMinWordsLimit); - - service.saveOrUpdateRatingCriteria(commentsResponsibleCriteria); - - // delete commentsRatingCriteria if it's not required - } else { - if (commentsResponsibleCriteria != null) { - service.deleteRatingCriteria(commentsResponsibleCriteria.getRatingCriteriaId()); - } - } - - // !!imageGalleryPO.setRatingCriterias(new LinkedHashSet (updatedCriterias)); - // ********************************************** // finally persist imageGalleryPO again service.saveOrUpdateImageGallery(imageGalleryPO); Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java =================================================================== diff -u -rec25cec0aae2211ee71688230aaa0dfd309018ad -r19775b178ccef32b0c96fa3ed03dcf051f48b0cf --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision 19775b178ccef32b0c96fa3ed03dcf051f48b0cf) @@ -27,6 +27,7 @@ import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; +import java.util.LinkedList; import java.util.List; import java.util.Set; import java.util.TreeSet; @@ -52,7 +53,8 @@ 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.RatingCriteriaDTO; +import org.lamsfoundation.lams.rating.dto.ItemRatingCriteriaDTO; +import org.lamsfoundation.lams.rating.dto.ItemRatingDTO; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.imageGallery.ImageGalleryConstants; import org.lamsfoundation.lams.tool.imageGallery.model.ImageComment; @@ -223,7 +225,7 @@ // store how many items are rated if (imageGallery.isAllowRank()) { - int countRatedImages = service.getCountImagesRatedByUser(imageGallery.getContentId(), userId.intValue()); + int countRatedImages = service.getCountItemsRatedByUser(imageGallery.getContentId(), userId.intValue()); sessionMap.put(ImageGalleryConstants.ATTR_COUNT_RATED_IMAGES, countRatedImages); } @@ -479,11 +481,6 @@ image.getCreateBy().getLoginName(); } - ToolAccessMode mode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE); - boolean isTeacher = mode != null && mode.isTeacher(); - boolean isAuthor = !isTeacher && !image.isCreateByAuthor() && (createdBy != null) - && (createdBy.getUserId().equals(userId)); - if (imageGallery.isAllowCommentImages()) { TreeSet comments = new TreeSet(new ImageCommentComparator()); Set dbComments = image.getComments(); @@ -498,13 +495,15 @@ sessionMap.put(ImageGalleryConstants.PARAM_COMMENTS, comments); } + ToolAccessMode mode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE); + boolean isTeacher = mode != null && mode.isTeacher(); if (!isTeacher && imageGallery.isAllowRank()) { - List ratingDtos = service.getRatingCriteriaDtos(imageGallery.getContentId(), imageUid, userId); - sessionMap.put(ImageGalleryConstants.ATTR_RATING_DTOS, ratingDtos); + ItemRatingDTO itemRatingDto = service.getRatingCriteriaDtos(imageGallery.getContentId(), imageUid, userId); + sessionMap.put(AttributeNames.ATTR_ITEM_RATING_DTO, itemRatingDto); // store how many items are rated - int countRatedImages = service.getCountImagesRatedByUser(imageGallery.getContentId(), userId.intValue()); - sessionMap.put(ImageGalleryConstants.ATTR_COUNT_RATED_IMAGES, countRatedImages); + int countRatedImages = service.getCountItemsRatedByUser(imageGallery.getContentId(), userId.intValue()); + sessionMap.put(AttributeNames.ATTR_COUNT_RATED_ITEMS, countRatedImages); } if (!isTeacher && imageGallery.isAllowVote()) { @@ -517,6 +516,7 @@ } // set visibility of "Delete image" button + boolean isAuthor = !image.isCreateByAuthor() && (createdBy != null) && (createdBy.getUserId().equals(userId)); sessionMap.put(ImageGalleryConstants.PARAM_IS_AUTHOR, isAuthor); request.setAttribute(ImageGalleryConstants.ATTR_SESSION_MAP_ID, sessionMapID); return mapping.findForward(ImageGalleryConstants.SUCCESS); Index: lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag =================================================================== diff -u -rec25cec0aae2211ee71688230aaa0dfd309018ad -r19775b178ccef32b0c96fa3ed03dcf051f48b0cf --- lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag (.../AuthoringRatingCriteria.tag) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) +++ lams_tool_images/web/WEB-INF/tags/AuthoringRatingCriteria.tag (.../AuthoringRatingCriteria.tag) (revision 19775b178ccef32b0c96fa3ed03dcf051f48b0cf) @@ -17,6 +17,7 @@ <%-- Optional attribute --%> <%@ attribute name="hasRatingLimits" required="false" rtexprvalue="true" %> +<%@ attribute name="formContentPrefix" required="false" rtexprvalue="true" %> <%@ attribute name="headerLabel" required="false" rtexprvalue="true" %> <%@ attribute name="addLabel" required="false" rtexprvalue="true" %> <%@ attribute name="deleteLabel" required="false" rtexprvalue="true" %> @@ -34,6 +35,9 @@ + + ${formContentPrefix}. + @@ -288,7 +292,7 @@
- + @@ -305,7 +309,7 @@ - + Index: lams_tool_images/web/WEB-INF/tags/Rating.tag =================================================================== diff -u -rec25cec0aae2211ee71688230aaa0dfd309018ad -r19775b178ccef32b0c96fa3ed03dcf051f48b0cf --- lams_tool_images/web/WEB-INF/tags/Rating.tag (.../Rating.tag) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) +++ lams_tool_images/web/WEB-INF/tags/Rating.tag (.../Rating.tag) (revision 19775b178ccef32b0c96fa3ed03dcf051f48b0cf) @@ -13,7 +13,7 @@ <%@ taglib uri="tags-function" prefix="fn" %> -<%@ attribute name="ratingDtos" required="true" rtexprvalue="true" type="java.util.Collection" %> +<%@ attribute name="itemRatingDto" required="true" rtexprvalue="true"%> <%-- Optional attribute --%> <%@ attribute name="disabled" required="false" rtexprvalue="true" %> @@ -50,7 +50,7 @@ - + @@ -59,255 +59,117 @@ -<%--Find commentsRatingDto--%> - - - - - - + - + + - - - - <%--Rating stars area---------------------------------------%>
- - - - + + + - - - - - - - - + + + + + + + + -

- ${ratingDto.ratingCriteria.title} -

+

+ ${criteriaDto.ratingCriteria.title} +

- - - - - - - - + + + + + + + + -
-
+
+
- - -
- - - - - - ${ratingDto.numberOfVotes} - - -
-
+ + +
+ + + + + + ${criteriaDto.numberOfVotes} + + +
+
- -
style="visibility: hidden;" - > - - - - - - - - - - - - - ${ratingDto.numberOfVotes} - - -
+ +
style="visibility: hidden;" + > + + + + + + + + + + + + + ${criteriaDto.numberOfVotes} + + +
-
-
+ +
-
<%--Comments area---------------------------------------%> -
+
- - + + - +
@@ -323,26 +185,24 @@ -
+
- +
- +
- + -
+
-
- - \ No newline at end of file +
\ No newline at end of file Index: lams_tool_images/web/pages/authoring/advance.jsp =================================================================== diff -u -rf026a3ceb687c0f4072980a88f37480a503c1199 -r19775b178ccef32b0c96fa3ed03dcf051f48b0cf --- lams_tool_images/web/pages/authoring/advance.jsp (.../advance.jsp) (revision f026a3ceb687c0f4072980a88f37480a503c1199) +++ lams_tool_images/web/pages/authoring/advance.jsp (.../advance.jsp) (revision 19775b178ccef32b0c96fa3ed03dcf051f48b0cf) @@ -104,7 +104,8 @@
style="display:none;" > + allowCommentsLabel="label.authoring.advance.allow.learner.comment.images" + formContentPrefix="imageGallery"/>

Index: lams_tool_images/web/pages/learning/learning.jsp =================================================================== diff -u -rec25cec0aae2211ee71688230aaa0dfd309018ad -r19775b178ccef32b0c96fa3ed03dcf051f48b0cf --- lams_tool_images/web/pages/learning/learning.jsp (.../learning.jsp) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) +++ lams_tool_images/web/pages/learning/learning.jsp (.../learning.jsp) (revision 19775b178ccef32b0c96fa3ed03dcf051f48b0cf) @@ -83,15 +83,14 @@ padding-top: 10px; } #image-info:after { - content: " "; - display: block; - height: 0; - clear: both; + content: " "; + display: block; + height: 0; + clear: both; } #kkk{ float:right; } - .space-bottom-top { padding-top: 40px; } Index: lams_tool_images/web/pages/learning/parts/commentsarea.jsp =================================================================== diff -u -rec25cec0aae2211ee71688230aaa0dfd309018ad -r19775b178ccef32b0c96fa3ed03dcf051f48b0cf --- lams_tool_images/web/pages/learning/parts/commentsarea.jsp (.../commentsarea.jsp) (revision ec25cec0aae2211ee71688230aaa0dfd309018ad) +++ lams_tool_images/web/pages/learning/parts/commentsarea.jsp (.../commentsarea.jsp) (revision 19775b178ccef32b0c96fa3ed03dcf051f48b0cf) @@ -38,7 +38,7 @@ -