Index: lams_tool_images/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r616336eff87580ecb6f13770899bc9af7eff4fa8 -re9a15f092fec282a10620269d12e833465367444 --- lams_tool_images/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 616336eff87580ecb6f13770899bc9af7eff4fa8) +++ lams_tool_images/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision e9a15f092fec282a10620269d12e833465367444) @@ -187,6 +187,13 @@ + + + imageList = imageGallery.getImageGalleryItems(); + imageList.remove(image); + imageGallery.setImageGalleryItems(imageList); + saveOrUpdateImageGallery(imageGallery); + } public ImageRating getImageRatingByImageAndUser(Long imageUid, Long userId) { return imageRatingDao.getImageRatingByImageAndUser(imageUid, userId); Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java =================================================================== diff -u -r62ca977d1422101a786e168defca233b64dbedbf -re9a15f092fec282a10620269d12e833465367444 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision 62ca977d1422101a786e168defca233b64dbedbf) +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java (.../LearningAction.java) (revision e9a15f092fec282a10620269d12e833465367444) @@ -46,6 +46,8 @@ import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; +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.notebook.model.NotebookEntry; @@ -111,6 +113,9 @@ if (param.equals("saveMultipleImages")) { return saveMultipleImages(mapping, form, request, response); } + if (param.equals("deleteImage")) { + return deleteImage(mapping, form, request, response); + } // ================ Comments ======================= if (param.equals("loadImageData")) { @@ -406,7 +411,36 @@ return mapping.findForward(ImageGalleryConstants.SUCCESS); } + + /** + * Save file or url imageGallery item into database. + * + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + private ActionForward deleteImage(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + IImageGalleryService service = getImageGalleryService(); + + Long imageUid = new Long(request.getParameter(ImageGalleryConstants.PARAM_IMAGE_UID)); + String sessionMapID = request.getParameter(ImageGalleryConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + ToolAccessMode mode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE); + Long sessionId = (Long) sessionMap.get(ImageGalleryConstants.ATTR_TOOL_SESSION_ID); + service.deleteImage(sessionId, imageUid); + + // redirect + ForwardConfig redirectConfig = mapping.findForwardConfig(ImageGalleryConstants.SUCCESS); + ActionRedirect redirect = new ActionRedirect(redirectConfig); + redirect.addParameter(AttributeNames.ATTR_MODE, mode); + redirect.addParameter(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId); + return redirect; + } + /** * Sets Image data to session variable, to be shown on main learning page. * @@ -436,7 +470,8 @@ // becuase in webpage will use this login name. Here is just // initial it to avoid session close error in proxy object. - if (image.getCreateBy() != null) { + ImageGalleryUser createdBy = image.getCreateBy(); + if (createdBy != null) { image.getCreateBy().getLoginName(); } @@ -472,6 +507,11 @@ } sessionMap.put(ImageGalleryConstants.PARAM_IS_VOTED, isVotedForThisImage); } + + //set visibility of "Delete image" button + ToolAccessMode mode = (ToolAccessMode) sessionMap.get(AttributeNames.ATTR_MODE); + boolean isAuthor = !mode.isTeacher() && !image.isCreateByAuthor() && (createdBy != null) && (createdBy.getUserId().equals(imageGalleryUser.getUserId())); + 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/includes/images/delete.png =================================================================== diff -u Binary files differ Index: lams_tool_images/web/pages/learning/learning.jsp =================================================================== diff -u -r6e293d865aafc645f6e115b32d0e3111d2beff49 -re9a15f092fec282a10620269d12e833465367444 --- lams_tool_images/web/pages/learning/learning.jsp (.../learning.jsp) (revision 6e293d865aafc645f6e115b32d0e3111d2beff49) +++ lams_tool_images/web/pages/learning/learning.jsp (.../learning.jsp) (revision e9a15f092fec282a10620269d12e833465367444) @@ -7,7 +7,7 @@ <fmt:message key="label.learning.title" /> - <%@ include file="/common/header.jsp"%> + <%@ include file="/common/headerWithoutPrototype.jsp"%> <%-- param has higher level for request attribute --%> @@ -43,6 +43,8 @@ .caption{position:absolute;top:0px;left:0px;width:150px;font-size:12px;color:#0087e5;} #description{position:absolute; top:1000px; left:1000px; width:150px; font-style:italic;} #openOriginalSizeLink{position:absolute; top:1000px; left:1000px;} + #delete_button{position:absolute; top:10px; left:1000px; z-index: 1000;opacity:0.4;filter:alpha(opacity=40); display:none;} + #delete_button:hover {opacity:1;filter:alpha(opacity=100)} #rating_stars{position: absolute; top: 1000px; left: 1000px; width:150px; margin-top: 10} #main_image{margin: 0 auto 20 0; height: ${(mediumImageDimensions*3)/4 + 40}px; width: ${mediumImageDimensions}px;} @@ -112,6 +114,9 @@ $("#openOriginalSizeLink").css('left', linkLeftPosition); $("#openOriginalSizeLink").css('top', image.height() + 10); $("#openOriginalSizeLink").width(image.width()); + + $("#delete_button").hide(); + $("#delete_button").css('left', image.width() - 30); setStarRatingChecked(0); $("#rating_stars").css('left', image.width() + 20); @@ -171,6 +176,16 @@ function continueReflect(){ document.location.href=''; } + + function deleteImage(){ + var deletionConfirmed = confirm(""); + + if (deletionConfirmed) { + var imageUid = $('#commentsArea_imageUid').val(); + document.location.href = "?sessionMapID=${sessionMapID}&imageUid=" + imageUid; + } + return false; + } function addNewComment(currentImageUid, comment){ var url = ""; @@ -257,6 +272,12 @@ } } + //set visibility of "Delete image" button + var isAuthor = $('#commentsArea_isAuthor').val(); + if (isAuthor == "true") { + $("#delete_button").show(); + } + } function setStarRatingChecked(currentRating){ $('#rating_stars_inputs').empty(); @@ -324,6 +345,14 @@ + <%--Delete button---------------------------------------%> + +
+ " + onclick="return deleteImage();" /> +
+ <%--Ranking/Voting area---------------------------------------%> Index: lams_tool_images/web/pages/learning/parts/commentsarea.jsp =================================================================== diff -u -r8e512e5f28ad5c247d577c7189e2b7908f506240 -re9a15f092fec282a10620269d12e833465367444 --- lams_tool_images/web/pages/learning/parts/commentsarea.jsp (.../commentsarea.jsp) (revision 8e512e5f28ad5c247d577c7189e2b7908f506240) +++ lams_tool_images/web/pages/learning/parts/commentsarea.jsp (.../commentsarea.jsp) (revision e9a15f092fec282a10620269d12e833465367444) @@ -25,6 +25,7 @@ +