Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java =================================================================== diff -u -r8866fad0319e8d4f337bc9d276f0c03ba976a2aa -rbad14832678336bd441496ffadf365a0a5ea02b7 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java (.../ViewItemAction.java) (revision 8866fad0319e8d4f337bc9d276f0c03ba976a2aa) +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java (.../ViewItemAction.java) (revision bad14832678336bd441496ffadf365a0a5ea02b7) @@ -52,6 +52,7 @@ import org.lamsfoundation.lams.tool.rsrc.model.ResourceItem; import org.lamsfoundation.lams.tool.rsrc.model.ResourceItemInstruction; import org.lamsfoundation.lams.tool.rsrc.service.IResourceService; +import org.lamsfoundation.lams.tool.rsrc.service.ResourceServiceProxy; import org.lamsfoundation.lams.tool.rsrc.util.ResourceItemComparator; import org.lamsfoundation.lams.tool.rsrc.util.ResourceWebUtils; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; @@ -66,6 +67,8 @@ private static final Logger log = Logger.getLogger(ViewItemAction.class); + private static IResourceService resourceService; + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { @@ -94,10 +97,13 @@ * @return */ private ActionForward openUrlPopup(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - String url = request.getParameter(ResourceConstants.PARAM_OPEN_URL_POPUP); - String title = request.getParameter(ResourceConstants.PARAM_TITLE); - request.setAttribute(ResourceConstants.PARAM_OPEN_URL_POPUP,url); - request.setAttribute(ResourceConstants.PARAM_TITLE,title); + Long itemUid = WebUtil.readLongParam(request, ResourceConstants.PARAM_RESOURCE_ITEM_UID, false); + if (resourceService == null) { + resourceService = ResourceServiceProxy.getResourceService(getServlet().getServletContext()); + } + ResourceItem item = resourceService.getResourceItemByUid(itemUid); + request.setAttribute(ResourceConstants.PARAM_OPEN_URL_POPUP,item.getUrl()); + request.setAttribute(ResourceConstants.PARAM_TITLE,item.getTitle()); return mapping.findForward(ResourceConstants.SUCCESS); } /** @@ -243,12 +249,7 @@ boolean wikipediaInURL = matcher.find(); if(item.isOpenUrlNewWindow() || wikipediaInURL) { - try { - url = "/openUrlPopup.do?popupUrl=" + URLEncoder.encode(ResourceWebUtils.protocol(item.getUrl()), "UTF8") + "&title=" - + URLEncoder.encode(item.getTitle(), "UTF8"); - } catch (UnsupportedEncodingException e) { - log.error(e); - } + url = "/openUrlPopup.do?"+ResourceConstants.PARAM_RESOURCE_ITEM_UID+"=" + item.getUid(); }else url = ResourceWebUtils.protocol(item.getUrl()); break;