Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r2579fb9a7e2c8581699bca77eb894f25e06eb249 -r66fff7b7d81ef7b6e89093e40d34c59820383b40 Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/notebook/dao/INotebookEntryDAO.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_common/src/java/org/lamsfoundation/lams/notebook/dao/INotebookEntryDAO.java (.../INotebookEntryDAO.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/dao/INotebookEntryDAO.java (.../INotebookEntryDAO.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -39,6 +39,8 @@ List get(Integer userID, Long lessonID); + List get(Long id, Integer idType, Integer userID); + List get(Long id, Integer idType, String signature, Integer userID); } Index: lams_common/src/java/org/lamsfoundation/lams/notebook/dao/hibernate/NotebookEntryDAO.java =================================================================== diff -u -ra4071302207834d1fff3a069d3f31ff4af6df40d -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_common/src/java/org/lamsfoundation/lams/notebook/dao/hibernate/NotebookEntryDAO.java (.../NotebookEntryDAO.java) (revision a4071302207834d1fff3a069d3f31ff4af6df40d) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/dao/hibernate/NotebookEntryDAO.java (.../NotebookEntryDAO.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -33,10 +33,12 @@ public class NotebookEntryDAO extends BaseDAO implements INotebookEntryDAO { - private static final String SQL_QUERY_FIND_ENTRY_BY_EXTERNAL_ID = "from " + NotebookEntry.class.getName() + private static final String SQL_QUERY_FIND_ENTRY_BY_EXTERNAL_ID_SIG = "from " + NotebookEntry.class.getName() + " where external_id=? and external_id_type=? and external_signature=? and user_id=?" + " order by create_date desc"; - + private static final String SQL_QUERY_FIND_ENTRY_BY_EXTERNAL_ID_TYPE = "from " + NotebookEntry.class.getName() + + " where external_id=? and external_id_type=? and user_id=?" + + " order by create_date desc"; private static final String SQL_QUERY_FIND_ENTRY_BY_USER_ID = "from " + NotebookEntry.class.getName() + " where user_id=?"; @@ -46,8 +48,12 @@ } public List get(Long id, Integer idType, String signature, Integer userID) { - return (List)(getHibernateTemplate().find(SQL_QUERY_FIND_ENTRY_BY_EXTERNAL_ID, new Object[]{id, idType, signature, userID})); + return (List)(getHibernateTemplate().find(SQL_QUERY_FIND_ENTRY_BY_EXTERNAL_ID_SIG, new Object[]{id, idType, signature, userID})); } + + public List get(Long id, Integer idType, Integer userID) { + return (List)(getHibernateTemplate().find(SQL_QUERY_FIND_ENTRY_BY_EXTERNAL_ID_TYPE, new Object[]{id, idType, userID})); + } public NotebookEntry get(Long uid) { if (uid != null) { Index: lams_common/src/java/org/lamsfoundation/lams/notebook/service/CoreNotebookConstants.java =================================================================== diff -u -r32a06b2b49302ae7c4479dffde8eb2b0574e343a -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_common/src/java/org/lamsfoundation/lams/notebook/service/CoreNotebookConstants.java (.../CoreNotebookConstants.java) (revision 32a06b2b49302ae7c4479dffde8eb2b0574e343a) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/service/CoreNotebookConstants.java (.../CoreNotebookConstants.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -3,4 +3,7 @@ public class CoreNotebookConstants { public static Integer SCRATCH_PAD = new Integer(1); public static Integer NOTEBOOK_TOOL = new Integer(2); + + public static String SCRATCH_PAD_SIG = "SCRATCHPAD"; + public static String JOURNAL_SIG = "JOURNAL"; } Index: lams_common/src/java/org/lamsfoundation/lams/notebook/service/CoreNotebookService.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_common/src/java/org/lamsfoundation/lams/notebook/service/CoreNotebookService.java (.../CoreNotebookService.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/service/CoreNotebookService.java (.../CoreNotebookService.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -54,6 +54,10 @@ public List getEntry(Long id, Integer idType, String signature, Integer userID) { return notebookEntryDAO.get(id, idType, signature, userID); } + + public List getEntry(Long id, Integer idType, Integer userID) { + return notebookEntryDAO.get(id, idType, userID); + } public List getEntry(Integer userID) { return notebookEntryDAO.get(userID); Index: lams_common/src/java/org/lamsfoundation/lams/notebook/service/ICoreNotebookService.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_common/src/java/org/lamsfoundation/lams/notebook/service/ICoreNotebookService.java (.../ICoreNotebookService.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/service/ICoreNotebookService.java (.../ICoreNotebookService.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -37,6 +37,8 @@ List getEntry(Long id, Integer idType, String signature, Integer userID); + List getEntry(Long id, Integer idType, Integer userID); + NotebookEntry getEntry(Long uid); void updateEntry(Long uid, String title, String entry); Index: lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java (.../AttributeNames.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java (.../AttributeNames.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -41,6 +41,7 @@ public static final String UID="uniqueID"; public static final String PARAM_MODE = "mode"; + public static final String PARAM_ROLE = "role"; public static final String PARAM_SESSION_STATUS = "sessionStatus"; public static final String PARAM_USER_ID = "userID"; public static final String PARAM_TOOL_CONTENT_ID = "toolContentID"; Index: lams_learning/conf/language/ApplicationResources.properties =================================================================== diff -u -r2579fb9a7e2c8581699bca77eb894f25e06eb249 -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_learning/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 2579fb9a7e2c8581699bca77eb894f25e06eb249) +++ lams_learning/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -53,6 +53,8 @@ export.portfolio.notebook.link.label = View Notebook export.portfolio.notebook.created.label = created: {0} export.portfolio.notebook.modified.label = last modified: {0} +export.portfolio.notebook.private.label = private +export.portfolio.notebook.public.label = teacher viewable #======= End labels: Exported 42 labels for en AU ===== Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/NotebookPortfolio.java =================================================================== diff -u -r2579fb9a7e2c8581699bca77eb894f25e06eb249 -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/NotebookPortfolio.java (.../NotebookPortfolio.java) (revision 2579fb9a7e2c8581699bca77eb894f25e06eb249) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/NotebookPortfolio.java (.../NotebookPortfolio.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -37,13 +37,15 @@ private String title; private Date created; private Date modified; + private boolean teacherViewable; public NotebookPortfolio() { this.entry = null; this.title = null; this.created = null; this.modified = null; + this.teacherViewable = false; } /** @@ -99,4 +101,18 @@ public void setModified(Date modified) { this.modified = modified; } + /** + * + * @return true if teacher can view entry, otherwise false. + */ + public boolean getTeacherViewable() { + return teacherViewable; + } + /** + * + * @param teacherViewable + */ + public void setTeacherViewable(boolean teacherViewable) { + this.teacherViewable = teacherViewable; + } } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java =================================================================== diff -u -r2579fb9a7e2c8581699bca77eb894f25e06eb249 -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java (.../ExportPortfolioService.java) (revision 2579fb9a7e2c8581699bca77eb894f25e06eb249) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/ExportPortfolioService.java (.../ExportPortfolioService.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -178,7 +178,7 @@ /** @see org.lamsfoundation.lams.learning.export.service.IExportPortfolioService#exportPortfolioForStudent(java.lang.Long, org.lamsfoundation.lams.usermanagement.User,boolean) */ - public Portfolio exportPortfolioForStudent(Integer userId, Long lessonID, boolean anonymity, Cookie[] cookies) + public Portfolio exportPortfolioForStudent(Integer userId, Long lessonID, boolean anonymity, ToolAccessMode accessMode, Cookie[] cookies) { ArrayList portfolios = null; ArrayList notes = null; @@ -196,10 +196,11 @@ try { - PortfolioBuilder builder = new PortfolioBuilder(lesson.getLearningDesign(), activityDAO, lamsCoreToolService, coreNotebookService, ToolAccessMode.LEARNER, lesson, learnerProgress, learner); + + PortfolioBuilder builder = new PortfolioBuilder(lesson.getLearningDesign(), activityDAO, lamsCoreToolService, coreNotebookService, ToolAccessMode.LEARNER, lesson, learnerProgress, learner); builder.parseLearningDesign(); - builder.processNotebook(); + builder.processNotebook(accessMode); portfolios = builder.getPortfolioList(); notes = builder.getNotebookList(); @@ -288,13 +289,16 @@ portfolio.setLessonDescription(lesson.getLessonDescription()); portfolio.setLessonStartDate(lesson.getStartDateTime()); - processPortfolios(portfolios, cookies, tempDirectoryName); - portfolio.setActivityPortfolios((ActivityPortfolio[])portfolios.toArray(new ActivityPortfolio[portfolios.size()])); + if(portfolios != null) { + processPortfolios(portfolios, cookies, tempDirectoryName); + portfolio.setActivityPortfolios((ActivityPortfolio[])portfolios.toArray(new ActivityPortfolio[portfolios.size()])); + } - processNotes(notes, tempDirectoryName, portfolio); - portfolio.setNotebookPortfolios((NotebookPortfolio[])notes.toArray(new NotebookPortfolio[notes.size()])); + if(notes != null) { + processNotes(notes, tempDirectoryName, portfolio); + portfolio.setNotebookPortfolios((NotebookPortfolio[])notes.toArray(new NotebookPortfolio[notes.size()])); + } - return portfolio; Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/IExportPortfolioService.java =================================================================== diff -u -r2579fb9a7e2c8581699bca77eb894f25e06eb249 -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/IExportPortfolioService.java (.../IExportPortfolioService.java) (revision 2579fb9a7e2c8581699bca77eb894f25e06eb249) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/IExportPortfolioService.java (.../IExportPortfolioService.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletRequest; import org.lamsfoundation.lams.learning.export.Portfolio; +import org.lamsfoundation.lams.tool.ToolAccessMode; /** * @author mtruong * @@ -86,10 +87,11 @@ * @param userId The learner id. * @param lessonID The lesson id of the lesson, the learner is doing the export for * @param anonymity The anonymity flag, is true, then anonymity is on, otherwise username would be visible. + * @param accessMode The access mode to set. * @param cookies Are passed along to doExport, in order for access the export for other tools * @return Portfolio Portfolio object which contains the array of ToolPortfolio objects. */ - public Portfolio exportPortfolioForStudent(Integer userId, Long lessonID, boolean anonymity, Cookie[] cookies); + public Portfolio exportPortfolioForStudent(Integer userId, Long lessonID, boolean anonymity, ToolAccessMode accessMode, Cookie[] cookies); /** * Zips up the directory specified by directoryToZip and Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/PortfolioBuilder.java =================================================================== diff -u -r0111fc3f9246760ad4b0287fe323e70e3f606468 -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/PortfolioBuilder.java (.../PortfolioBuilder.java) (revision 0111fc3f9246760ad4b0287fe323e70e3f606468) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/service/PortfolioBuilder.java (.../PortfolioBuilder.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -218,17 +218,31 @@ /** * Process all Notebook (Scratchpad) entries into portfolio objects. + * @param notebookAccessMode The access mode that determines what entries are returned. */ - public void processNotebook() { - if(lesson != null && user != null) { - List entries = coreNotebookService.getEntry(lesson.getLessonId(),CoreNotebookConstants.SCRATCH_PAD,"SCRATCHPAD", user.getUserId()); - Iterator it = entries.iterator(); - while(it.hasNext()) { - NotebookEntry entry = (NotebookEntry) it.next(); - NotebookPortfolio portfolio = createNotebookPortfolio(entry); - currentNotebookList.add(portfolio); - } + public void processNotebook(ToolAccessMode notebookAccessMode) throws ExportPortfolioException { + List entries = null; + + if(lesson == null || user == null) { + throw new ExportPortfolioException(); } + + if(notebookAccessMode == null) + entries = coreNotebookService.getEntry(lesson.getLessonId(),CoreNotebookConstants.SCRATCH_PAD, user.getUserId()); + else if(notebookAccessMode.equals(ToolAccessMode.TEACHER)) + entries = coreNotebookService.getEntry(lesson.getLessonId(),CoreNotebookConstants.SCRATCH_PAD,CoreNotebookConstants.JOURNAL_SIG, user.getUserId()); + + if(entries == null) { + throw new ExportPortfolioException(); + } + + Iterator it = entries.iterator(); + + while(it.hasNext()) { + NotebookEntry entry = (NotebookEntry) it.next(); + NotebookPortfolio portfolio = createNotebookPortfolio(entry); + currentNotebookList.add(portfolio); + } } /** @@ -273,6 +287,12 @@ p.setTitle(entry.getTitle()); p.setCreated(entry.getCreateDate()); p.setModified(entry.getLastModified()); + + if(entry.getExternalSignature().equals(CoreNotebookConstants.JOURNAL_SIG)) + p.setTeacherViewable(true); + else + p.setTeacherViewable(false); + return p; } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/MainExportServlet.java =================================================================== diff -u -r2579fb9a7e2c8581699bca77eb894f25e06eb249 -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/MainExportServlet.java (.../MainExportServlet.java) (revision 2579fb9a7e2c8581699bca77eb894f25e06eb249) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/export/web/action/MainExportServlet.java (.../MainExportServlet.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -96,20 +96,26 @@ Portfolio portfolios = null; Long lessonID = null; + String role = null; + ToolAccessMode accessMode = null; /** Get the cookies that were sent along with this request, then pass it onto export service */ Cookie[] cookies = request.getCookies(); IExportPortfolioService exportService = ExportPortfolioServiceProxy.getExportPortfolioService(this.getServletContext()); String mode = WebUtil.readStrParam(request, AttributeNames.PARAM_MODE); - if (mode.equals(ToolAccessMode.LEARNER.toString())) { // TODO check if the user id is coming from the request then the current user should have monitoring privilege - Integer userId = getLearnerUserID(request); + Integer userId = getLearnerUserID(request); lessonID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID)); - portfolios = exportService.exportPortfolioForStudent(userId, lessonID, true, cookies); + + if((role = WebUtil.readStrParam(request, AttributeNames.PARAM_ROLE, true)) != null){ + accessMode = (role.equals(ToolAccessMode.TEACHER.toString()))?ToolAccessMode.TEACHER:null; + } + + portfolios = exportService.exportPortfolioForStudent(userId, lessonID, true, accessMode, cookies); } else if(mode.equals(ToolAccessMode.TEACHER.toString())) { @@ -125,10 +131,11 @@ exportService.generateMainPage(request, portfolios, cookies); - if(portfolios.getNotebookPortfolios().length > 0) { - exportService.generateNotebookPage(request, portfolios, cookies); - } + if(portfolios.getNotebookPortfolios() != null) + if(portfolios.getNotebookPortfolios().length > 0) + exportService.generateNotebookPage(request, portfolios, cookies); + //bundle the stylesheet with the package CSSBundler bundler = new CSSBundler(request, cookies, exportTmpDir); bundler.bundleStylesheet(); Index: lams_learning/web/exportPortfolio/notebook.jsp =================================================================== diff -u -r2579fb9a7e2c8581699bca77eb894f25e06eb249 -r66fff7b7d81ef7b6e89093e40d34c59820383b40 --- lams_learning/web/exportPortfolio/notebook.jsp (.../notebook.jsp) (revision 2579fb9a7e2c8581699bca77eb894f25e06eb249) +++ lams_learning/web/exportPortfolio/notebook.jsp (.../notebook.jsp) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) @@ -20,7 +20,6 @@ --%> <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> - <%@ taglib uri="tags-html" prefix="html"%> <%@ taglib uri="tags-core" prefix="c" %> <%@ taglib uri="tags-fmt" prefix="fmt" %> @@ -60,6 +59,12 @@

+
+ + + + +