Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/imageGalleryApplicationContext.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/imageGalleryApplicationContext.xml,v diff -u -r1.12.2.8 -r1.12.2.9 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/imageGalleryApplicationContext.xml 5 Oct 2015 16:40:57 -0000 1.12.2.8 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/imageGalleryApplicationContext.xml 30 Mar 2017 13:35:34 -0000 1.12.2.9 @@ -133,7 +133,7 @@ PROPAGATION_REQUIRED, -java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception + PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java,v diff -u -r1.20.2.6 -r1.20.2.7 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java 11 May 2016 07:15:19 -0000 1.20.2.6 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/IImageGalleryService.java 30 Mar 2017 13:35:34 -0000 1.20.2.7 @@ -231,13 +231,11 @@ List getUserListBySessionId(Long sessionId); /** - * Set a imageGallery item visible or not. + * Toggle image visibility, i.e. set its hide field to the opposite of the current value * * @param itemUid - * @param visible - * true, item is visible. False, item is invisible. */ - void setItemVisible(Long itemUid, boolean visible); + void toggleImageVisibility(Long itemUid); /** * Create refection entry into notebook tool. @@ -284,15 +282,13 @@ ImageGalleryUser getUser(Long uid); /** - * Gets a message from imageGallery bundle. Same as in JSP pages. + * Returns localized next image title. * - * @param key - * key of the message - * @param args - * arguments for the message - * @return message content + * @param nextImageTitleNumber + * + * @return */ - String getLocalisedMessage(String key, Object[] args); + String generateNextImageTitle(Long nextImageTitleNumber); /** * Get the ImageGallery config item by key Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java,v diff -u -r1.31.2.22 -r1.31.2.23 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java 11 Jan 2017 08:55:21 -0000 1.31.2.22 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/service/ImageGalleryServiceImpl.java 30 Mar 2017 13:35:34 -0000 1.31.2.23 @@ -303,23 +303,21 @@ } @Override - public void setItemVisible(Long itemUid, boolean visible) { - ImageGalleryItem item = imageGalleryItemDao.getByUid(itemUid); - if (item != null) { - // createBy should be null for system default value. - Long userId = 0L; - String loginName = "No user"; - if (item.getCreateBy() != null) { - userId = item.getCreateBy().getUserId(); - loginName = item.getCreateBy().getLoginName(); - } - if (visible) { - auditService.logShowEntry(ImageGalleryConstants.TOOL_SIGNATURE, userId, loginName, item.toString()); + public void toggleImageVisibility(Long itemUid) { + ImageGalleryItem image = imageGalleryItemDao.getByUid(itemUid); + if (image != null) { + boolean isHidden = image.isHide(); + image.setHide(!isHidden); + imageGalleryItemDao.saveObject(image); + + // audit log + Long userId = image.getCreateBy() == null ? 0L : image.getCreateBy().getUserId(); + String loginName = image.getCreateBy() == null ? "No user" : image.getCreateBy().getLoginName(); + if (isHidden) { + auditService.logShowEntry(ImageGalleryConstants.TOOL_SIGNATURE, userId, loginName, image.toString()); } else { - auditService.logHideEntry(ImageGalleryConstants.TOOL_SIGNATURE, userId, loginName, item.toString()); + auditService.logHideEntry(ImageGalleryConstants.TOOL_SIGNATURE, userId, loginName, image.toString()); } - item.setHide(!visible); - imageGalleryItemDao.saveObject(item); } } @@ -645,7 +643,7 @@ @Override public void notifyTeachersOnImageSumbit(Long sessionId, ImageGalleryUser imageGalleryUser) { String userName = imageGalleryUser.getLastName() + " " + imageGalleryUser.getFirstName(); - String message = getLocalisedMessage("event.imagesubmit.body", new Object[] { userName }); + String message = messageService.getMessage("event.imagesubmit.body", new Object[] { userName }); eventNotificationService.notifyLessonMonitors(sessionId, message, false); } @@ -1131,8 +1129,9 @@ } @Override - public String getLocalisedMessage(String key, Object[] args) { - return messageService.getMessage(key, args); + public String generateNextImageTitle(Long nextImageTitleNumber) { + String imageWord = messageService.getMessage("label.authoring.image"); + return imageWord + " " + nextImageTitleNumber; } public ImageGalleryOutputFactory getImageGalleryOutputFactory() { Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java,v diff -u -r1.9.2.13 -r1.9.2.14 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java 29 Mar 2017 10:40:59 -0000 1.9.2.13 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/AuthoringAction.java 30 Mar 2017 13:35:34 -0000 1.9.2.14 @@ -743,7 +743,7 @@ private void extractFormToImageGalleryItem(HttpServletRequest request, ImageGalleryItemForm imageForm) throws Exception { /* - * BE CAREFUL: This method will copy nessary info from request form to a old or new ImageGalleryItem instance. + * BE CAREFUL: This method will copy necessary info from request form to an old or new ImageGalleryItem instance. * It gets all info EXCEPT ImageGalleryItem.createDate and ImageGalleryItem.createBy, which need be set when * persisting this imageGallery item. */ @@ -802,10 +802,9 @@ String title = imageForm.getTitle(); if (StringUtils.isBlank(title)) { - Long nextConsecutiveImageTitle = (Long) sessionMap.get(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE); - sessionMap.put(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE, nextConsecutiveImageTitle + 1); - String imageLocalized = getImageGalleryService().getLocalisedMessage("label.authoring.image", null); - title = imageLocalized + " " + nextConsecutiveImageTitle; + Long nextImageTitleNumber = (Long) sessionMap.get(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE); + sessionMap.put(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE, nextImageTitleNumber + 1); + title = getImageGalleryService().generateNextImageTitle(nextImageTitleNumber); } image.setTitle(title); @@ -851,10 +850,9 @@ throw e; } - Long nextConsecutiveImageTitle = (Long) sessionMap.get(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE); - sessionMap.put(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE, nextConsecutiveImageTitle + 1); - String imageLocalized = getImageGalleryService().getLocalisedMessage("label.authoring.image", null); - String title = imageLocalized + " " + nextConsecutiveImageTitle; + Long nextImageTitleNumber = (Long) sessionMap.get(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE); + sessionMap.put(ImageGalleryConstants.ATTR_NEXT_IMAGE_TITLE, nextImageTitleNumber + 1); + String title = getImageGalleryService().generateNextImageTitle(nextImageTitleNumber); image.setTitle(title); image.setDescription(""); Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java,v diff -u -r1.27.2.13 -r1.27.2.14 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java 29 Mar 2017 11:50:52 -0000 1.27.2.13 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/LearningAction.java 30 Mar 2017 13:35:34 -0000 1.27.2.14 @@ -657,11 +657,10 @@ String title = imageForm.getTitle(); if (StringUtils.isBlank(title)) { - Long nextConsecutiveImageTitle = imageGallery.getNextImageTitle(); - imageGallery.setNextImageTitle(nextConsecutiveImageTitle + 1); + Long nextImageTitleNumber = imageGallery.getNextImageTitle(); + imageGallery.setNextImageTitle(nextImageTitleNumber + 1); - String imageLocalized = service.getLocalisedMessage("label.authoring.image", null); - title = imageLocalized + " " + nextConsecutiveImageTitle; + title = service.generateNextImageTitle(nextImageTitleNumber); } image.setTitle(title); Index: lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java,v diff -u -r1.9.2.6 -r1.9.2.7 --- lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java 9 Mar 2017 19:54:59 -0000 1.9.2.6 +++ lams_tool_images/src/java/org/lamsfoundation/lams/tool/imageGallery/web/action/MonitoringAction.java 30 Mar 2017 13:35:34 -0000 1.9.2.7 @@ -80,12 +80,9 @@ if (param.equals("updateImage")) { return updateImage(mapping, form, request, response); } - if (param.equals("showitem")) { - return showitem(mapping, form, request, response); + if (param.equals("toggleImageVisibility")) { + return toggleImageVisibility(mapping, form, request, response); } - if (param.equals("hideitem")) { - return hideitem(mapping, form, request, response); - } if (param.equals("viewReflection")) { return viewReflection(mapping, form, request, response); } @@ -169,24 +166,14 @@ } /** - * This method will get necessary information from imageGallery item form and save or update into - * HttpSession ImageGalleryItemList. Notice, this save is not persist them into database, just save - * HttpSession temporarily. Only they will be persist when the entire authoring page is being - * persisted. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - * @throws ServletException + * Update image's title and description set by monitor */ private ActionForward updateImage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { IImageGalleryService service = getImageGalleryService(); + ImageGalleryItemForm imageForm = (ImageGalleryItemForm) form; // get back sessionMAP - ImageGalleryItemForm imageForm = (ImageGalleryItemForm) form; String sessionMapID = imageForm.getSessionMapID(); request.setAttribute(ImageGalleryConstants.ATTR_SESSION_MAP_ID, sessionMapID); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(imageForm.getSessionMapID()); @@ -198,11 +185,11 @@ String title = imageForm.getTitle(); if (StringUtils.isBlank(title)) { - Long nextConsecutiveImageTitle = imageGallery.getNextImageTitle(); - imageGallery.setNextImageTitle(nextConsecutiveImageTitle + 1); + Long nextImageTitleNumber = imageGallery.getNextImageTitle(); + imageGallery.setNextImageTitle(nextImageTitleNumber + 1); service.saveOrUpdateImageGallery(imageGallery); - String imageLocalized = getImageGalleryService().getLocalisedMessage("label.authoring.image", null); - title = imageLocalized + " " + nextConsecutiveImageTitle; + + title = getImageGalleryService().generateNextImageTitle(nextImageTitleNumber); } image.setTitle(title); @@ -217,58 +204,17 @@ return redirect; } - private ActionForward showitem(ActionMapping mapping, ActionForm form, HttpServletRequest request, + /** + * Toggle image visibility, i.e. set its hide field to the opposite of the current value + */ + private ActionForward toggleImageVisibility(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - Long itemUid = WebUtil.readLongParam(request, ImageGalleryConstants.PARAM_IMAGE_UID); - IImageGalleryService service = getImageGalleryService(); - service.setItemVisible(itemUid, true); - // get back SessionMap - String sessionMapID = request.getParameter(ImageGalleryConstants.ATTR_SESSION_MAP_ID); - SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - request.setAttribute(ImageGalleryConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); - - // update session value - List groupList = (List) sessionMap.get(ImageGalleryConstants.ATTR_SUMMARY_LIST); - if (groupList != null) { - for (List group : groupList) { - for (Summary sum : group) { - if (itemUid.equals(sum.getItemUid())) { - sum.setItemHide(false); - break; - } - } - } - } - return mapping.findForward(ImageGalleryConstants.SUCCESS); - } - - private ActionForward hideitem(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - Long itemUid = WebUtil.readLongParam(request, ImageGalleryConstants.PARAM_IMAGE_UID); IImageGalleryService service = getImageGalleryService(); - service.setItemVisible(itemUid, false); + service.toggleImageVisibility(itemUid); - // get back SessionMap - String sessionMapID = request.getParameter(ImageGalleryConstants.ATTR_SESSION_MAP_ID); - SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - request.setAttribute(ImageGalleryConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); - - // update session value - List groupList = (List) sessionMap.get(ImageGalleryConstants.ATTR_SUMMARY_LIST); - if (groupList != null) { - for (List group : groupList) { - for (Summary sum : group) { - if (itemUid.equals(sum.getItemUid())) { - sum.setItemHide(true); - break; - } - } - } - } - - return mapping.findForward(ImageGalleryConstants.SUCCESS); + return null; } private ActionForward viewReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request, Index: lams_tool_images/web/WEB-INF/struts-config.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/web/WEB-INF/Attic/struts-config.xml,v diff -u -r1.1.2.6 -r1.1.2.7 --- lams_tool_images/web/WEB-INF/struts-config.xml 24 Mar 2017 16:37:10 -0000 1.1.2.6 +++ lams_tool_images/web/WEB-INF/struts-config.xml 30 Mar 2017 13:35:34 -0000 1.1.2.7 @@ -244,16 +244,10 @@ validate="false"> - - + parameter="toggleImageVisibility" > - - - Index: lams_tool_images/web/pages/monitoring/monitoring.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/web/pages/monitoring/monitoring.jsp,v diff -u -r1.9.2.9 -r1.9.2.10 --- lams_tool_images/web/pages/monitoring/monitoring.jsp 29 Mar 2017 10:40:59 -0000 1.9.2.9 +++ lams_tool_images/web/pages/monitoring/monitoring.jsp 30 Mar 2017 13:35:34 -0000 1.9.2.10 @@ -98,7 +98,7 @@ function checkNew(){ location.reload(); - } + } $(document).ready(function(){ @@ -113,6 +113,30 @@ } }); + + $(".toggle-image-visibility").click(function() { + var imageToggleLink = $(this); + var imageUid = $(this).data("image-uid"); + + $.ajax({ + type: 'POST', + url: "", + data : { + 'imageUid' : imageUid + }, + success: function(data) { + var isHidden = imageToggleLink.data("is-hidden"); + imageToggleLink.data("is-hidden", !isHidden); + + var imageToggleLinkText = isHidden ? "" : ""; + imageToggleLink.html(imageToggleLinkText); + }, + error: function(jqXHR, textStatus, errorMessage) { + alert(errorMessage); + } + }); + + }); function resizeIframe() { if (document.getElementById('TB_iframeContent') != null) { @@ -131,7 +155,6 @@ } }; window.onresize = resizeIframe; - }); Index: lams_tool_images/web/pages/monitoring/summary.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_images/web/pages/monitoring/summary.jsp,v diff -u -r1.16.2.7 -r1.16.2.8 --- lams_tool_images/web/pages/monitoring/summary.jsp 28 Mar 2017 10:36:35 -0000 1.16.2.7 +++ lams_tool_images/web/pages/monitoring/summary.jsp 30 Mar 2017 13:35:34 -0000 1.16.2.8 @@ -152,19 +152,17 @@ - - - - - - - - - - - - - + + + + + + + + + +