Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java,v diff -u -r1.20 -r1.21 --- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java 21 Jul 2014 18:19:18 -0000 1.20 +++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java 22 Jul 2014 18:22:05 -0000 1.21 @@ -279,23 +279,15 @@ boolean wikipediaInURL = matcher.find(); if (item.isOpenUrlNewWindow() || wikipediaInURL) { - if (ResourceConstants.MODE_AUTHOR_SESSION.equals(mode)) { - url = "/openUrlPopup.do?" + AttributeNames.ATTR_MODE + "=" + mode + "&" - + ResourceConstants.PARAM_ITEM_INDEX + "=" + itemIdx + "&" - + ResourceConstants.ATTR_SESSION_MAP_ID + "=" + sessionMapID; - } else { - url = "/openUrlPopup.do?" + ResourceConstants.PARAM_RESOURCE_ITEM_UID + "=" + item.getUid() + "&" - + ResourceConstants.ATTR_SESSION_MAP_ID + "=" + sessionMapID; - } + url = constructUrlOpenInNewWindow(item, sessionMapID, mode, itemIdx); } else { url = ResourceWebUtils.protocol(item.getUrl()); } break; case ResourceConstants.RESOURCE_TYPE_FILE: if (item.isOpenUrlNewWindow()) { - url = "/openUrlPopup.do?" + ResourceConstants.PARAM_RESOURCE_ITEM_UID + "=" + item.getUid() + "&" - + ResourceConstants.ATTR_SESSION_MAP_ID + "=" + sessionMapID; + url = constructUrlOpenInNewWindow(item, sessionMapID, mode, itemIdx); } else { url = "/download/?uuid=" + item.getFileUuid() + "&preferDownload=false"; } @@ -311,6 +303,29 @@ } return url; } + + /** + * Creates url for opening in a new window depending whether it's authoring environment or not. + * + * @param item + * @param sessionMapID + * @param mode + * @param itemIdx + * @return + */ + private String constructUrlOpenInNewWindow(ResourceItem item, String sessionMapID, String mode, int itemIdx) { + String url; + if (ResourceConstants.MODE_AUTHOR_SESSION.equals(mode)) { + url = "/openUrlPopup.do?" + AttributeNames.ATTR_MODE + "=" + mode + "&" + + ResourceConstants.PARAM_ITEM_INDEX + "=" + itemIdx + "&" + + ResourceConstants.ATTR_SESSION_MAP_ID + "=" + sessionMapID; + } else { + url = "/openUrlPopup.do?" + ResourceConstants.PARAM_RESOURCE_ITEM_UID + "=" + item.getUid() + "&" + + ResourceConstants.ATTR_SESSION_MAP_ID + "=" + sessionMapID; + } + + return url; + } /** * List save current resource items.