Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rccd4ec9c17db772dd790b199a8d12f61bcc3595b -r38a6c414e30497d03559a85b5c33155e4a2fc22e Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/notebook/web/StoreNBEntryServlet.java =================================================================== diff -u -re0b158087e5f4e1e07e373051b8ff1935797b3d3 -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_central/src/java/org/lamsfoundation/lams/notebook/web/StoreNBEntryServlet.java (.../StoreNBEntryServlet.java) (revision e0b158087e5f4e1e07e373051b8ff1935797b3d3) +++ lams_central/src/java/org/lamsfoundation/lams/notebook/web/StoreNBEntryServlet.java (.../StoreNBEntryServlet.java) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -30,6 +30,7 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; import org.lamsfoundation.lams.util.wddx.FlashMessage; import org.lamsfoundation.lams.util.wddx.WDDXProcessor; @@ -81,7 +82,9 @@ notebookEntry.setExternalSignature(WDDXProcessor.convertToString(table, WDDXTAGS.EXTERNAL_SIG)); } if (keyExists(table, WDDXTAGS.USER_ID)) { - notebookEntry.setUserID(WDDXProcessor.convertToInteger(table, WDDXTAGS.USER_ID)); + User user = (User) notebookService.getUserManagementService().findById(User.class,WDDXProcessor.convertToInteger(table, WDDXTAGS.USER_ID)); + + notebookEntry.setUser(user); } if (keyExists(table, WDDXTAGS.TITLE)) { notebookEntry.setTitle(WDDXProcessor.convertToString(table, WDDXTAGS.TITLE)); Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/notebook/model/NotebookEntry.hbm.xml =================================================================== diff -u -r58d3816e54a70b5f06a1922dea26e22126117552 -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/notebook/model/NotebookEntry.hbm.xml (.../NotebookEntry.hbm.xml) (revision 58d3816e54a70b5f06a1922dea26e22126117552) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/notebook/model/NotebookEntry.hbm.xml (.../NotebookEntry.hbm.xml) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -49,13 +49,18 @@ column="external_signature" /> - + > + + + Index: lams_common/src/java/org/lamsfoundation/lams/notebook/dao/INotebookEntryDAO.java =================================================================== diff -u -r005c4f0dbcc48d991798597e5c42b6d84ea9efdf -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_common/src/java/org/lamsfoundation/lams/notebook/dao/INotebookEntryDAO.java (.../INotebookEntryDAO.java) (revision 005c4f0dbcc48d991798597e5c42b6d84ea9efdf) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/dao/INotebookEntryDAO.java (.../INotebookEntryDAO.java) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -45,4 +45,7 @@ List get(Long id, Integer idType, String signature, Integer userID); + + List get(Long id, Integer idType, String signature); + } Index: lams_common/src/java/org/lamsfoundation/lams/notebook/dao/hibernate/NotebookEntryDAO.java =================================================================== diff -u -r005c4f0dbcc48d991798597e5c42b6d84ea9efdf -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_common/src/java/org/lamsfoundation/lams/notebook/dao/hibernate/NotebookEntryDAO.java (.../NotebookEntryDAO.java) (revision 005c4f0dbcc48d991798597e5c42b6d84ea9efdf) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/dao/hibernate/NotebookEntryDAO.java (.../NotebookEntryDAO.java) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -36,6 +36,9 @@ 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_SIG_ALL = "from " + NotebookEntry.class.getName() + + " where external_id=? and external_id_type=? and external_signature=?" + + " order by user_id asc, create_date desc"; private static final String SQL_QUERY_FIND_ENTRY_BY_EXTERNAL_ID = "from " + NotebookEntry.class.getName() + " where external_id=? and external_id_type=? and user_id=?" + " order by create_date desc"; @@ -45,6 +48,7 @@ + " where user_id=? and external_id_type=?" + " order by external_signature desc, create_date desc"; + public void saveOrUpdate(NotebookEntry notebookEntry) { this.getHibernateTemplate().saveOrUpdate(notebookEntry); this.getHibernateTemplate().flush(); @@ -54,6 +58,10 @@ 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, String signature) { + return (List)(getHibernateTemplate().find(SQL_QUERY_FIND_ENTRY_BY_EXTERNAL_ID_SIG_ALL, new Object[]{id, idType, signature})); + } + public List get(Long id, Integer idType, Integer userID) { return (List)(getHibernateTemplate().find(SQL_QUERY_FIND_ENTRY_BY_EXTERNAL_ID, new Object[]{id, idType, userID})); } Index: lams_common/src/java/org/lamsfoundation/lams/notebook/model/NotebookEntry.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_common/src/java/org/lamsfoundation/lams/notebook/model/NotebookEntry.java (.../NotebookEntry.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/model/NotebookEntry.java (.../NotebookEntry.java) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -27,6 +27,8 @@ import java.util.Date; +import org.lamsfoundation.lams.usermanagement.User; + /** * @hibernate.class table="lams_notebook_entry" */ @@ -42,7 +44,7 @@ private String externalSignature; - private Integer userID; + private User user; private String title; @@ -54,11 +56,11 @@ public NotebookEntry() {} - public NotebookEntry(Long externalID, Integer externalIDType, String externalSignature, Integer userID, String title, String entry, Date createDate) { + public NotebookEntry(Long externalID, Integer externalIDType, String externalSignature, User user, String title, String entry, Date createDate) { this.externalID = externalID; this.externalIDType = externalIDType; this.externalSignature = externalSignature; - this.userID = userID; + this.user = user; this.title = title; this.entry = entry; this.createDate = createDate; @@ -109,15 +111,18 @@ } /** - * @hibernate.property column="user_id" + * @hibernate.many-to-one not-null="true" cascade="none" + * @hibernate.column name="user_id" */ - public Integer getUserID() { - return userID; + public User getUser() { + return user; } - public void setUserID(Integer userID) { - this.userID = userID; + public void setUser(User user) { + this.user = user; } + + /** * @hibernate.property column="title" Index: lams_common/src/java/org/lamsfoundation/lams/notebook/service/CoreNotebookService.java =================================================================== diff -u -r005c4f0dbcc48d991798597e5c42b6d84ea9efdf -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_common/src/java/org/lamsfoundation/lams/notebook/service/CoreNotebookService.java (.../CoreNotebookService.java) (revision 005c4f0dbcc48d991798597e5c42b6d84ea9efdf) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/service/CoreNotebookService.java (.../CoreNotebookService.java) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -31,22 +31,27 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.notebook.dao.INotebookEntryDAO; import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; +import org.lamsfoundation.lams.usermanagement.User; + public class CoreNotebookService implements ICoreNotebookService, IExtendedCoreNotebookService{ private static Logger log = Logger.getLogger(CoreNotebookService.class); private INotebookEntryDAO notebookEntryDAO; + + protected IUserManagementService userManagementService; protected MessageService messageService; public Long createNotebookEntry(Long id, Integer idType, String signature, Integer userID, String title, String entry) { - + User user = (User)getUserManagementService().findById(User.class, userID); NotebookEntry notebookEntry = new NotebookEntry(id, idType, signature, - userID, title, entry, new Date()); + user, title, entry, new Date()); saveOrUpdateNotebookEntry(notebookEntry); return notebookEntry.getUid(); } @@ -55,6 +60,10 @@ return notebookEntryDAO.get(id, idType, signature, userID); } + public List getEntry(Long id, Integer idType, String signature) { + return notebookEntryDAO.get(id, idType, signature); + } + public List getEntry(Long id, Integer idType, Integer userID) { return notebookEntryDAO.get(id, idType, userID); } @@ -103,6 +112,18 @@ } /** + * + * @param IUserManagementService The userManagementService to set. + */ + public void setUserManagementService(IUserManagementService userManagementService) { + this.userManagementService = userManagementService; + } + + public IUserManagementService getUserManagementService() { + return userManagementService; + } + + /** * Set i18n MessageService */ public void setMessageService(MessageService messageService) { Index: lams_common/src/java/org/lamsfoundation/lams/notebook/service/ICoreNotebookService.java =================================================================== diff -u -r66fff7b7d81ef7b6e89093e40d34c59820383b40 -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_common/src/java/org/lamsfoundation/lams/notebook/service/ICoreNotebookService.java (.../ICoreNotebookService.java) (revision 66fff7b7d81ef7b6e89093e40d34c59820383b40) +++ lams_common/src/java/org/lamsfoundation/lams/notebook/service/ICoreNotebookService.java (.../ICoreNotebookService.java) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -27,7 +27,9 @@ import java.util.List; +import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; public interface ICoreNotebookService { @@ -37,6 +39,8 @@ List getEntry(Long id, Integer idType, String signature, Integer userID); + List getEntry(Long id, Integer idType, String signature); + List getEntry(Long id, Integer idType, Integer userID); NotebookEntry getEntry(Long uid); @@ -47,5 +51,7 @@ void saveOrUpdateNotebookEntry(NotebookEntry notebookEntry); + IUserManagementService getUserManagementService(); + MessageService getMessageService(); } Index: lams_learning/conf/language/ApplicationResources.properties =================================================================== diff -u -re0b158087e5f4e1e07e373051b8ff1935797b3d3 -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_learning/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision e0b158087e5f4e1e07e373051b8ff1935797b3d3) +++ lams_learning/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -19,6 +19,7 @@ label.next.button =Next label.finish.button =Finish label.cancel.button =Cancel +label.close.button =Close label.edit.button =Edit message.activity.parallel.partialComplete =You have to complete the other task before progressing to the next activity.... message.activity.parallel.noFrames =Your browser does not handle frames! @@ -58,6 +59,7 @@ export.portfolio.notebook.private.label =private export.portfolio.notebook.public.label =staff viewable mynotes.title =My Notes +mynotes.journals.title =Journals mynotes.view.all.button =View All mynotes.add.new.button =Add New mynotes.notebook.save.button =Save to Notebook @@ -69,6 +71,6 @@ mynotes.entry.last.modified.label =Last Modified mynotes.entry.entry.label =Entry mynotes.edit.heading =Edit: {0} +mynotes.entry.submitted.by=Submitted by: {0} - #======= End labels: Exported 42 labels for en AU ===== Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/NotebookAction.java =================================================================== diff -u -re0b158087e5f4e1e07e373051b8ff1935797b3d3 -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/NotebookAction.java (.../NotebookAction.java) (revision e0b158087e5f4e1e07e373051b8ff1935797b3d3) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/NotebookAction.java (.../NotebookAction.java) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -50,9 +50,14 @@ import org.lamsfoundation.lams.notebook.service.IExtendedCoreNotebookService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.learning.service.ICoreLearnerService; +import org.lamsfoundation.lams.learning.service.LearnerServiceProxy; + import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; +import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.util.audit.IAuditService; @@ -70,6 +75,7 @@ * * @struts.action-forward name = "viewAll" path = ".notebookViewAll" * @struts.action-forward name= "viewSingle" path = ".notebookViewSingle" + * @struts.action-forward name= "viewJournals" path = ".notebookViewJournals" * @struts.action-forward name = "addNew" path = ".notebookAddNew" * @struts.action-forward name = "saveSuccess" path = ".notebookSaveSuccess" * ----------------XDoclet Tags-------------------- @@ -86,6 +92,7 @@ private static final String VIEW_ALL = "viewAll"; private static final String VIEW_SINGLE = "viewSingle"; + private static final String VIEW_JOURNALS = "viewJournals"; private static final String ADD_NEW = "addNew"; private static final String SAVE_SUCCESS = "saveSuccess"; @@ -125,9 +132,70 @@ } + /** - * View all notebook entries + * View all journals entries from a lesson call */ + public ActionForward viewAllJournals( + ActionMapping mapping, + ActionForm actionForm, + HttpServletRequest request, + HttpServletResponse response) + throws IOException, ServletException { + + // List of Journal entries + List journals = null; + + DynaActionForm notebookForm = (DynaActionForm)actionForm; + + // lesson service + ICoreLearnerService learnerService = LearnerServiceProxy.getLearnerService(getServlet().getServletContext()); + + // getting requested object according to coming parameters + Integer userID = LearningWebUtil.getUserId(); + + // lessonID + Long lessonID = (Long) notebookForm.get(AttributeNames.PARAM_LESSON_ID); + Lesson lesson = learnerService.getLesson(lessonID); + + // check user has permission + User user = (User)LearnerServiceProxy.getUserManagementService(getServlet().getServletContext()).findById(User.class,userID); + + if ( lesson.getUser() != null && lesson.getUser().getUserId().equals(userID) ) { + journals = getJournals(lesson.getLessonId()); + } + + if ( lesson == null || lesson.getLessonClass()==null || !lesson.getLessonClass().isStaffMember(user) ) { + throw new UserAccessDeniedException("User "+userID+" may not retrieve journal entries for lesson "+lesson.getLessonId()); + } else if(journals == null){ + journals = getJournals(lesson.getLessonId()); + } + + request.getSession().setAttribute("journals", journals); + request.setAttribute("lessonID", lessonID); + + return mapping.findForward(VIEW_JOURNALS); + } + + /** + * + * @param lessonID Lesson to get the journals from. + * @return List of Journal entries + */ + private List getJournals(Long lessonID) { + // initialize service object + ICoreNotebookService notebookService = (ICoreNotebookService) getNotebookService(); + + if(lessonID == null) + return null; + + return notebookService.getEntry(lessonID, CoreNotebookConstants.SCRATCH_PAD, CoreNotebookConstants.JOURNAL_SIG); + + } + + /** + * View single notebook entry + */ public ActionForward viewEntry( ActionMapping mapping, ActionForm actionForm, @@ -142,6 +210,7 @@ Long uid = (Long) notebookForm.get("uid"); String mode = WebUtil.readStrParam(request, "mode", true); + NotebookEntry entry = notebookService.getEntry(uid); if(mode != null) @@ -209,7 +278,7 @@ // check entry is being edited by it's owner Integer userID = LearningWebUtil.getUserId(); - if(userID != entryObj.getUserID()) { + if(userID != entryObj.getUser().getUserId()) { // throw exception } Index: lams_learning/web/exportPortfolio/notebook.jsp =================================================================== diff -u -rca73a51b45e6071a6a9edd5da8b0d61bf3a39929 -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_learning/web/exportPortfolio/notebook.jsp (.../notebook.jsp) (revision ca73a51b45e6071a6a9edd5da8b0d61bf3a39929) +++ lams_learning/web/exportPortfolio/notebook.jsp (.../notebook.jsp) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -54,7 +54,7 @@

- +
@@ -68,7 +68,7 @@

-

+

"/>


Index: lams_learning/web/notebook/addnew.jsp =================================================================== diff -u -r4dad09808af4843011f77b52fc96465553f537e7 -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_learning/web/notebook/addnew.jsp (.../addnew.jsp) (revision 4dad09808af4843011f77b52fc96465553f537e7) +++ lams_learning/web/notebook/addnew.jsp (.../addnew.jsp) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -55,7 +55,7 @@
- + Index: lams_learning/web/notebook/view.jsp =================================================================== diff -u -r135edd5e691553685777c2fef3099e832ed62b4b -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_learning/web/notebook/view.jsp (.../view.jsp) (revision 135edd5e691553685777c2fef3099e832ed62b4b) +++ lams_learning/web/notebook/view.jsp (.../view.jsp) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -43,7 +43,7 @@ -

+

@@ -83,9 +83,21 @@ -

+ +

+ + + +

+ + + +

+ + +
Index: lams_learning/web/notebook/viewall.jsp =================================================================== diff -u -r135edd5e691553685777c2fef3099e832ed62b4b -r38a6c414e30497d03559a85b5c33155e4a2fc22e --- lams_learning/web/notebook/viewall.jsp (.../viewall.jsp) (revision 135edd5e691553685777c2fef3099e832ed62b4b) +++ lams_learning/web/notebook/viewall.jsp (.../viewall.jsp) (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -32,18 +32,18 @@

 

- - - - - - +

+
+ + + + Index: lams_learning/web/notebook/viewalljournals.jsp =================================================================== diff -u --- lams_learning/web/notebook/viewalljournals.jsp (revision 0) +++ lams_learning/web/notebook/viewalljournals.jsp (revision 38a6c414e30497d03559a85b5c33155e4a2fc22e) @@ -0,0 +1,90 @@ +<%-- +Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) +License Information: http://lamsfoundation.org/licensing/lams/2.0/ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + + http://www.gnu.org/licenses/gpl.txt +--%> +<%@ taglib uri="tags-html" prefix="html"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-fmt" prefix="fmt" %> +<%@ taglib uri="tags-lams" prefix="lams" %> + + +
+

+ +

+

 

+
+ + + + + + +

+
+ + + + + + + + +
+ + +

+ + + + + + + + + + + + + + + +
+ + + + + + +  
+ + + + +
+
+ +
+
+ + + + +