Index: lams_build/3rdParty.userlibraries
===================================================================
RCS file: /usr/local/cvsroot/lams_build/3rdParty.userlibraries,v
diff -u -r1.44 -r1.44.2.1
--- lams_build/3rdParty.userlibraries 20 Jul 2009 13:40:13 -0000 1.44
+++ lams_build/3rdParty.userlibraries 17 Aug 2009 04:39:16 -0000 1.44.2.1
@@ -97,6 +97,7 @@
+
Index: lams_build/build.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_build/build.xml,v
diff -u -r1.83 -r1.83.2.1
--- lams_build/build.xml 2 Jul 2009 08:18:32 -0000 1.83
+++ lams_build/build.xml 17 Aug 2009 04:39:16 -0000 1.83.2.1
@@ -138,6 +138,7 @@
+
Index: lams_build/lib/lams/lams-central.jar
===================================================================
RCS file: /usr/local/cvsroot/lams_build/lib/lams/lams-central.jar,v
diff -u -r1.62 -r1.62.8.1
Binary files differ
Index: lams_build/lib/oauth/signpost-core-1.1-SNAPSHOT.jar
===================================================================
RCS file: /usr/local/cvsroot/lams_build/lib/oauth/Attic/signpost-core-1.1-SNAPSHOT.jar,v
diff -u -r1.1 -r1.1.2.1
Binary files differ
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/oauth/FireEagleOAuthPOJO.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/oauth/GoogleDoc.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/oauth/GoogleOAuthPOJO.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/oauth/OAuthNoTokenException.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/oauth/OAuthPOJO.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/oauth/OAuthService.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/util/XMLReaders.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java,v
diff -u -r1.50 -r1.50.2.1
--- lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java 19 Jun 2009 10:54:17 -0000 1.50
+++ lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java 17 Aug 2009 04:39:16 -0000 1.50.2.1
@@ -76,6 +76,7 @@
* @struts.action-forward name="passwordChanged" path=".passwordChangeOk"
* @struts.action-forward name="portrait" path="/portrait.do"
* @struts.action-forward name="lessons" path="/profile.do?method=lessons"
+ * @struts.action-forward name="applications" path="/oauth.do?method=applications"
*/
public class IndexAction extends Action {
@@ -140,6 +141,8 @@
request.setAttribute("comLoginUrl", comLoginUrl);
request.setAttribute("tab", tab);
return mapping.findForward("community");
+ } else if (StringUtils.equals(tab, "applications")) {
+ return mapping.findForward("applications");
}
if (request.isUserInRole(Role.SYSADMIN)) {
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/src/java/org/lamsfoundation/lams/web/OAuthAction.java'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_central/web/applications.jsp'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_central/web/profile.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_central/web/profile.jsp,v
diff -u -r1.19 -r1.19.12.1
--- lams_central/web/profile.jsp 28 Nov 2007 01:30:22 -0000 1.19
+++ lams_central/web/profile.jsp 17 Aug 2009 04:39:17 -0000 1.19.12.1
@@ -50,6 +50,10 @@
+
+
Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/commonContext.xml,v
diff -u -r1.84 -r1.84.2.1
--- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml 11 Aug 2009 03:23:46 -0000 1.84
+++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml 17 Aug 2009 04:39:19 -0000 1.84.2.1
@@ -502,6 +502,11 @@
+
+
+
+
+
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java,v
diff -u -r1.38 -r1.38.2.1
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java 2 Aug 2009 20:14:54 -0000 1.38
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/ResourceConstants.java 17 Aug 2009 04:39:18 -0000 1.38.2.1
@@ -40,6 +40,8 @@
public static final short RESOURCE_TYPE_WEBSITE = 3;
public static final short RESOURCE_TYPE_LEARNING_OBJECT = 4;
+
+ public static final short RESOURCE_TYPE_GOOGLE_DOC = 5;
// for action forward name
public static final String SUCCESS = "success";
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java,v
diff -u -r1.26 -r1.26.12.1
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java 10 Oct 2008 00:37:16 -0000 1.26
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/IResourceService.java 17 Aug 2009 04:39:19 -0000 1.26.12.1
@@ -23,6 +23,8 @@
/* $$Id$$ */
package org.lamsfoundation.lams.tool.rsrc.service;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -32,6 +34,7 @@
import org.lamsfoundation.lams.contentrepository.IVersionedNode;
import org.lamsfoundation.lams.events.IEventNotificationService;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
+import org.lamsfoundation.lams.oauth.GoogleOAuthPOJO;
import org.lamsfoundation.lams.tool.rsrc.dto.ReflectDTO;
import org.lamsfoundation.lams.tool.rsrc.dto.Summary;
import org.lamsfoundation.lams.tool.rsrc.model.Resource;
@@ -101,7 +104,7 @@
* @param file
* @throws UploadResourceFileException
*/
- void uploadResourceItemFile(ResourceItem item, FormFile file) throws UploadResourceFileException;
+ void uploadResourceItemFile(ResourceItem item, InputStream is, String fileName, String fileType) throws UploadResourceFileException;
// ********** for user methods *************
/**
@@ -307,4 +310,6 @@
* @return list of teachers that monitor the lesson which contains the tool with given session ID
*/
public List getMonitorsByToolSessionId(Long sessionId);
+
+ public GoogleOAuthPOJO getGoogleDocPOJO(String login) throws UnsupportedEncodingException;
}
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java,v
diff -u -r1.63 -r1.63.2.1
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java 2 Aug 2009 20:14:54 -0000 1.63
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java 17 Aug 2009 04:39:19 -0000 1.63.2.1
@@ -28,6 +28,7 @@
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
@@ -68,6 +69,7 @@
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.oauth.GoogleOAuthPOJO;
import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolOutput;
@@ -687,23 +689,41 @@
*/
private NodeKey processFile(FormFile file, String fileType) throws UploadResourceFileException {
NodeKey node = null;
- if (file != null && !StringUtils.isEmpty(file.getFileName())) {
- String fileName = file.getFileName();
+ String fileName = file.getFileName();
+ if (file != null && !StringUtils.isEmpty(fileName)) {
try {
- node = resourceToolContentHandler.uploadFile(file.getInputStream(), fileName, file.getContentType(),
- fileType);
- } catch (InvalidParameterException e) {
- throw new UploadResourceFileException(messageService.getMessage("error.msg.invaid.param.upload"));
+ node = processInputStream(file.getInputStream(), fileName, file.getContentType(), fileType);
} catch (FileNotFoundException e) {
throw new UploadResourceFileException(messageService.getMessage("error.msg.file.not.found"));
- } catch (RepositoryCheckedException e) {
- throw new UploadResourceFileException(messageService.getMessage("error.msg.repository"));
} catch (IOException e) {
throw new UploadResourceFileException(messageService.getMessage("error.msg.io.exception"));
}
}
return node;
}
+
+ /**
+ * Process an uploaded file.
+ *
+ * @throws ResourceApplicationException
+ * @throws FileNotFoundException
+ * @throws IOException
+ * @throws RepositoryCheckedException
+ * @throws InvalidParameterException
+ */
+ private NodeKey processInputStream(InputStream is, String fileName, String contentType, String fileType) throws UploadResourceFileException {
+ NodeKey node = null;
+ if (is != null && StringUtils.isNotBlank(fileName)) {
+ try {
+ node = resourceToolContentHandler.uploadFile(is, fileName, contentType, fileType);
+ } catch (InvalidParameterException e) {
+ throw new UploadResourceFileException(messageService.getMessage("error.msg.invaid.param.upload"));
+ } catch (RepositoryCheckedException e) {
+ throw new UploadResourceFileException(messageService.getMessage("error.msg.repository"));
+ }
+ }
+ return node;
+ }
private NodeKey processPackage(String packageDirectory, String initFile) throws UploadResourceFileException {
NodeKey node = null;
@@ -717,14 +737,17 @@
return node;
}
- public void uploadResourceItemFile(ResourceItem item, FormFile file) throws UploadResourceFileException {
+ public void uploadResourceItemFile(ResourceItem item, InputStream is, String fileName, String fileType) throws UploadResourceFileException {
try {
- InputStream is = file.getInputStream();
- String fileName = file.getFileName();
- String fileType = file.getContentType();
+ // google doc
+ if (item.getType() == ResourceConstants.RESOURCE_TYPE_GOOGLE_DOC) {
+ NodeKey nodeKey = processInputStream(is, fileName, fileType, IToolContentHandler.TYPE_ONLINE);
+ item.setFileUuid(nodeKey.getUuid());
+ item.setFileVersionId(nodeKey.getVersion());
+ }
// For file only upload one sigle file
if (item.getType() == ResourceConstants.RESOURCE_TYPE_FILE) {
- NodeKey nodeKey = processFile(file, IToolContentHandler.TYPE_ONLINE);
+ NodeKey nodeKey = processInputStream(is, fileName, fileType, IToolContentHandler.TYPE_ONLINE);
item.setFileUuid(nodeKey.getUuid());
item.setFileVersionId(nodeKey.getVersion());
}
@@ -762,12 +785,6 @@
ResourceServiceImpl.log.error(messageService.getMessage("error.msg.zip.file.exception") + " : "
+ e.toString());
throw new UploadResourceFileException(messageService.getMessage("error.msg.zip.file.exception"));
- } catch (FileNotFoundException e) {
- ResourceServiceImpl.log.error(messageService.getMessage("error.msg.file.not.found") + ":" + e.toString());
- throw new UploadResourceFileException(messageService.getMessage("error.msg.file.not.found"));
- } catch (IOException e) {
- ResourceServiceImpl.log.error(messageService.getMessage("error.msg.io.exception") + ":" + e.toString());
- throw new UploadResourceFileException(messageService.getMessage("error.msg.io.exception"));
} catch (IMSManifestException e) {
ResourceServiceImpl.log.error(messageService.getMessage("error.msg.ims.package") + ":" + e.toString());
throw new UploadResourceFileException(messageService.getMessage("error.msg.ims.package"));
@@ -1254,6 +1271,18 @@
toolContentObj.setReflectOnActivity(Boolean.TRUE);
toolContentObj.setReflectInstructions(description);
}
+
+ public GoogleOAuthPOJO getGoogleDocPOJO(String login) throws UnsupportedEncodingException {
+ GoogleOAuthPOJO googlePojo = null;
+ if (StringUtils.isNotBlank(login)) {
+ User user = userManagementService.getUserByLogin(login);
+ if (StringUtils.isNotBlank(user.getAddressLine3()) && StringUtils.isNotBlank(user.getCity())) {
+ googlePojo = new GoogleOAuthPOJO(GoogleOAuthPOJO.docScope);
+ googlePojo.consumer.setTokenWithSecret(user.getAddressLine3(), user.getCity());
+ }
+ }
+ return googlePojo;
+ }
/* =================================================================================== */
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java,v
diff -u -r1.53 -r1.53.2.1
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java 14 Apr 2009 05:33:37 -0000 1.53
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/AuthoringAction.java 17 Aug 2009 04:39:18 -0000 1.53.2.1
@@ -24,9 +24,11 @@
package org.lamsfoundation.lams.tool.rsrc.web.action;
import java.io.IOException;
+import java.io.InputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
+import java.net.URLEncoder;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
@@ -46,7 +48,12 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.xml.parsers.ParserConfigurationException;
+import oauth.signpost.exception.OAuthCommunicationException;
+import oauth.signpost.exception.OAuthExpectationFailedException;
+import oauth.signpost.exception.OAuthMessageSignerException;
+
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
@@ -61,6 +68,9 @@
import org.apache.struts.upload.FormFile;
import org.lamsfoundation.lams.authoring.web.AuthoringConstants;
import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler;
+import org.lamsfoundation.lams.oauth.GoogleOAuthPOJO;
+import org.lamsfoundation.lams.oauth.OAuthNoTokenException;
+import org.lamsfoundation.lams.oauth.OAuthService;
import org.lamsfoundation.lams.tool.ToolAccessMode;
import org.lamsfoundation.lams.tool.rsrc.ResourceConstants;
import org.lamsfoundation.lams.tool.rsrc.model.Resource;
@@ -78,11 +88,13 @@
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.util.FileValidatorUtil;
import org.lamsfoundation.lams.util.WebUtil;
+import org.lamsfoundation.lams.util.XMLReaders;
import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
import org.lamsfoundation.lams.web.util.SessionMap;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
+import org.xml.sax.SAXException;
/**
* @author Steve.Ni
@@ -254,6 +266,9 @@
populateItemToForm(itemIdx, item, (ResourceItemForm) form, request);
}
}
+ if (item.getType() == ResourceConstants.RESOURCE_TYPE_GOOGLE_DOC) {
+ addGoogleDocList(request);
+ }
return findForward(item == null ? -1 : item.getType(), mapping);
}
@@ -277,6 +292,10 @@
instructionList.add("");
}
request.setAttribute("instructionList", instructionList);
+
+ if (type == ResourceConstants.RESOURCE_TYPE_GOOGLE_DOC) {
+ addGoogleDocList(request);
+ }
return findForward(type, mapping);
}
@@ -291,13 +310,14 @@
* @param request
* @param response
* @return
+ * @throws IOException
* @throws ServletException
*/
private ActionForward saveOrUpdateItem(ActionMapping mapping, ActionForm form, HttpServletRequest request,
- HttpServletResponse response) {
+ HttpServletResponse response) throws IOException {
// get instructions:
List instructionList = getInstructionsFromRequest(request);
-
+
ResourceItemForm itemForm = (ResourceItemForm) form;
ActionErrors errors = validateResourceItem(itemForm);
@@ -823,6 +843,12 @@
.getServletContext());
return (IResourceService) wac.getBean(ResourceConstants.RESOURCE_SERVICE);
}
+
+ private OAuthService getOAuthService() {
+ WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet()
+ .getServletContext());
+ return (OAuthService) wac.getBean("oauthService");
+ }
/**
* @param request
@@ -971,12 +997,44 @@
case ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT:
forward = mapping.findForward("learningobject");
break;
+ case ResourceConstants.RESOURCE_TYPE_GOOGLE_DOC:
+ forward = mapping.findForward("googledoc");
+ break;
default:
forward = null;
break;
}
return forward;
}
+
+ private void addGoogleDocList(HttpServletRequest request) {
+ try {
+ String resource = getOAuthService().getOAuthResource(request, GoogleOAuthPOJO.docListResource,
+ OAuthService.GOOGLE);
+ request.setAttribute("googledocs", XMLReaders.getGoogleDocList(resource));
+ } catch (OAuthExpectationFailedException e) {
+ request.setAttribute("oauth_error", e.getMessage());
+ e.printStackTrace();
+ } catch (OAuthMessageSignerException e) {
+ request.setAttribute("oauth_error", e.getMessage());
+ e.printStackTrace();
+ } catch (IOException e) {
+ request.setAttribute("oauth_error", e.getMessage());
+ e.printStackTrace();
+ } catch (OAuthCommunicationException e) {
+ request.setAttribute("oauth_error", e.getMessage());
+ e.printStackTrace();
+ } catch (OAuthNoTokenException e) {
+ request.setAttribute("oauth_error", e.getMessage());
+ e.printStackTrace();
+ } catch (ParserConfigurationException e) {
+ request.setAttribute("oauth_error", e.getMessage());
+ e.printStackTrace();
+ } catch (SAXException e) {
+ request.setAttribute("oauth_error", e.getMessage());
+ e.printStackTrace();
+ }
+ }
/**
* This method will populate resource item information to its form for edit use.
@@ -1058,10 +1116,11 @@
*/
// if the item is edit (not new add) then the getFile may return null
// it may throw exception, so put it as first, to avoid other invlidate update:
- if (itemForm.getFile() != null) {
+ if (itemForm.getFile() != null || StringUtils.isNotBlank(request.getParameter("docUrl"))) {
if (type == ResourceConstants.RESOURCE_TYPE_WEBSITE
|| type == ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT
- || type == ResourceConstants.RESOURCE_TYPE_FILE) {
+ || type == ResourceConstants.RESOURCE_TYPE_FILE
+ || type == ResourceConstants.RESOURCE_TYPE_GOOGLE_DOC) {
// if it has old file, and upload a new, then save old to deleteList
ResourceItem delAttItem = new ResourceItem();
boolean hasOld = false;
@@ -1074,7 +1133,17 @@
}
IResourceService service = getResourceService();
try {
- service.uploadResourceItemFile(item, itemForm.getFile());
+ if (type == ResourceConstants.RESOURCE_TYPE_GOOGLE_DOC) {
+ String url = request.getParameter("docUrl");
+ String title = request.getParameter("docTitle");
+ log.debug("got docUrl=" + url);
+ log.debug("got title=" + title);
+ InputStream is = getOAuthService().getOAuthResourceAsInputStream(request, url, OAuthService.GOOGLE);
+ service.uploadResourceItemFile(item, is, URLEncoder.encode(title, "utf-8") + ".html", "text/html");
+ } else {
+ FormFile formFile = itemForm.getFile();
+ service.uploadResourceItemFile(item, formFile.getInputStream(), formFile.getFileName(), formFile.getContentType());
+ }
} catch (UploadResourceFileException e) {
// if it is new add , then remove it!
if (itemIdx == -1) {
@@ -1288,7 +1357,8 @@
service.deleteFromRepository(resourceItem.getFileUuid(), resourceItem
.getFileVersionId());
}
- service.uploadResourceItemFile(resourceItem, file);
+ //service.uploadResourceItemFile(resourceItem, file);
+ service.uploadResourceItemFile(resourceItem, file.getInputStream(), file.getFileName(), file.getContentType());
} catch (Exception e) {
AuthoringAction.log.error(e);
ActionMessage error = new ActionMessage("error.msg.io.exception");
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java,v
diff -u -r1.35 -r1.35.10.1
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java 13 Feb 2009 05:56:15 -0000 1.35
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/LearningAction.java 17 Aug 2009 04:39:18 -0000 1.35.10.1
@@ -24,6 +24,7 @@
/* $Id$ */
package org.lamsfoundation.lams.tool.rsrc.web.action;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
@@ -48,6 +49,7 @@
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
+import org.apache.struts.upload.FormFile;
import org.lamsfoundation.lams.events.DeliveryMethodMail;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants;
@@ -356,11 +358,18 @@
// special attribute for URL or FILE
if (type == ResourceConstants.RESOURCE_TYPE_FILE) {
try {
- service.uploadResourceItemFile(item, itemForm.getFile());
+ FormFile file = itemForm.getFile();
+ service.uploadResourceItemFile(item, file.getInputStream(), file.getFileName(), file.getContentType());
} catch (UploadResourceFileException e) {
LearningAction.log.error("Failed upload Resource File " + e.toString());
return mapping.findForward(ResourceConstants.ERROR);
- }
+ } catch (FileNotFoundException e) {
+ LearningAction.log.error("Failed upload Resource File " + e.toString());
+ return mapping.findForward(ResourceConstants.ERROR);
+ } catch (IOException e) {
+ LearningAction.log.error("Failed upload Resource File " + e.toString());
+ return mapping.findForward(ResourceConstants.ERROR);
+ }
} else if (type == ResourceConstants.RESOURCE_TYPE_URL) {
item.setUrl(itemForm.getUrl());
item.setOpenUrlNewWindow(itemForm.isOpenUrlNewWindow());
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.19 -r1.19.2.1
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java 2 Jul 2009 08:19:25 -0000 1.19
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/web/action/ViewItemAction.java 17 Aug 2009 04:39:18 -0000 1.19.2.1
@@ -25,8 +25,6 @@
package org.lamsfoundation.lams.tool.rsrc.web.action;
import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -273,6 +271,9 @@
case ResourceConstants.RESOURCE_TYPE_LEARNING_OBJECT:
url = "/pages/learningobj/mainframe.jsp?sessionMapID="+sessionMapID;
break;
+ case ResourceConstants.RESOURCE_TYPE_GOOGLE_DOC:
+ url = "/download/?uuid="+item.getFileUuid()+"&preferDownload=false";
+ break;
}
return url;
}
Index: lams_tool_larsrc/web/pages/authoring/basic.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/authoring/basic.jsp,v
diff -u -r1.24 -r1.24.14.1
--- lams_tool_larsrc/web/pages/authoring/basic.jsp 3 Nov 2006 04:56:53 -0000 1.24
+++ lams_tool_larsrc/web/pages/authoring/basic.jsp 17 Aug 2009 04:39:18 -0000 1.24.14.1
@@ -114,8 +114,10 @@
');" class="space-left">
+ ');" class="space-left">
+
-
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_larsrc/web/pages/authoring/parts/addgoogledoc.jsp'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_tool_larsrc/web/pages/authoring/parts/itemlist.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_larsrc/web/pages/authoring/parts/itemlist.jsp,v
diff -u -r1.15 -r1.15.14.1
--- lams_tool_larsrc/web/pages/authoring/parts/itemlist.jsp 9 Nov 2006 05:45:58 -0000 1.15
+++ lams_tool_larsrc/web/pages/authoring/parts/itemlist.jsp 17 Aug 2009 04:39:18 -0000 1.15.14.1
@@ -19,7 +19,7 @@
- <%-- Resource Type:1=URL,2=File,3=Website,4=Learning Object --%>
+ <%-- Resource Type:1=URL,2=File,3=Website,4=Learning Object,5=GoogleDoc --%>
|
+
+
+
+ :
+ ${resource.title}
+ |
+
+
+ |
+
+ "
+ onclick="editItem(${status.index},'${sessionMapID}')" />
+
+ |
+
+ "
+ onclick="deleteItem(${status.index},'${sessionMapID}')" />
+ |
+