Index: lams_build/build.xml =================================================================== diff -u -r3b5338131c44207670f81a6cc60ffd467de41c0b -r5948e17402e1ad574aeddbe55f93dca2f58bbbec --- lams_build/build.xml (.../build.xml) (revision 3b5338131c44207670f81a6cc60ffd467de41c0b) +++ lams_build/build.xml (.../build.xml) (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -226,7 +226,7 @@ inheritAll="false" > - Index: lams_build/shared.properties =================================================================== diff -u -r3b5338131c44207670f81a6cc60ffd467de41c0b -r5948e17402e1ad574aeddbe55f93dca2f58bbbec --- lams_build/shared.properties (.../shared.properties) (revision 3b5338131c44207670f81a6cc60ffd467de41c0b) +++ lams_build/shared.properties (.../shared.properties) (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -47,5 +47,5 @@ tool_chat_dir=lams_tool_chat tool_larsrc_dir=lams_tool_larsrc tool_vote_dir=lams_tool_vote -tool_journal_dir=lams_tool_journal +tool_notebook_dir=lams_tool_notebook Index: lams_tool_notebook/.classpath =================================================================== diff -u --- lams_tool_notebook/.classpath (revision 0) +++ lams_tool_notebook/.classpath (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,12 @@ + + + + + + + + + + + + Index: lams_tool_notebook/.cvsignore =================================================================== diff -u --- lams_tool_notebook/.cvsignore (revision 0) +++ lams_tool_notebook/.cvsignore (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1 @@ +build Index: lams_tool_notebook/.mymetadata =================================================================== diff -u --- lams_tool_notebook/.mymetadata (revision 0) +++ lams_tool_notebook/.mymetadata (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,12 @@ + + + + + + + Index: lams_tool_notebook/.myumldata =================================================================== diff -u --- lams_tool_notebook/.myumldata (revision 0) +++ lams_tool_notebook/.myumldata (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,2 @@ +#Mon Jul 17 14:17:56 EST 2006 +CodeGenContainer=java.util.Vector Index: lams_tool_notebook/.project =================================================================== diff -u --- lams_tool_notebook/.project (revision 0) +++ lams_tool_notebook/.project (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,49 @@ + + + lams_tool_notebook + + + + + + com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator + + + + + com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator + + + + + com.ibm.etools.validation.validationbuilder + + + + + com.ibm.sse.model.structuredbuilder + + + + + com.genuitec.eclipse.hibernate.HibernateBuilder + + + + + + com.genuitec.eclipse.hibernate.hibernatenature + com.genuitec.eclipse.j2eedt.core.webnature + org.eclipse.jdt.core.javanature + + Index: lams_tool_notebook/.settings/com.genuitec.eclipse.j2eedt.core.prefs =================================================================== diff -u --- lams_tool_notebook/.settings/com.genuitec.eclipse.j2eedt.core.prefs (revision 0) +++ lams_tool_notebook/.settings/com.genuitec.eclipse.j2eedt.core.prefs (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,3 @@ +#Fri Jun 02 15:55:47 EST 2006 +defaultTldInfo=http\://java.sun.com/jsp/jstl/core\=c;http\://java.sun.com/jsp/jstl/sql\=sql;html\=http\://struts.apache.org/tags-html;c\=http\://java.sun.com/jsp/jstl/core;fmt\=http\://java.sun.com/jsp/jstl/fmt;h\=http\://java.sun.com/jsf/html;nested\=http\://struts.apache.org/tags-nested;http\://struts.apache.org/tags-html\=html;http\://java.sun.com/jsp/jstl/fmt\=fmt;bean\=http\://struts.apache.org/tags-bean;http\://java.sun.com/jsp/jstl/functions\=fn;fn\=http\://java.sun.com/jsp/jstl/functions;logic\=http\://struts.apache.org/tags-logic;http\://struts.apache.org/tags-nested\=nested;http\://java.sun.com/jsp/jstl/xml\=x;f\=http\://java.sun.com/jsf/core;tiles\=http\://struts.apache.org/tags-tiles;http\://java.sun.com/jsf/html\=h;http\://struts.apache.org/tags-tiles\=tiles;http\://java.sun.com/jsf/core\=f;http\://struts.apache.org/tags-bean\=bean;x\=http\://java.sun.com/jsp/jstl/xml;sql\=http\://java.sun.com/jsp/jstl/sql;http\://struts.apache.org/tags-logic\=logic +eclipse.preferences.version=1 Index: lams_tool_notebook/.settings/org.eclipse.core.resources.prefs =================================================================== diff -u --- lams_tool_notebook/.settings/org.eclipse.core.resources.prefs (revision 0) +++ lams_tool_notebook/.settings/org.eclipse.core.resources.prefs (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,4 @@ +#Wed Mar 22 11:10:51 EST 2006 +eclipse.preferences.version=1 +encoding//conf/xdoclet/web-settings.xml=UTF-8 +encoding//web/WEB-INF/web.xml=UTF-8 Index: lams_tool_notebook/.settings/org.eclipse.jdt.core.prefs =================================================================== diff -u --- lams_tool_notebook/.settings/org.eclipse.jdt.core.prefs (revision 0) +++ lams_tool_notebook/.settings/org.eclipse.jdt.core.prefs (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,12 @@ +#Thu Jul 20 11:06:01 EST 2006 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 Index: lams_tool_notebook/.settings/org.eclipse.jdt.ui.prefs =================================================================== diff -u --- lams_tool_notebook/.settings/org.eclipse.jdt.ui.prefs (revision 0) +++ lams_tool_notebook/.settings/org.eclipse.jdt.ui.prefs (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,3 @@ +#Thu Mar 23 13:45:11 EST 2006 +eclipse.preferences.version=1 +internal.default.compliance=default Index: lams_tool_notebook/build.properties =================================================================== diff -u --- lams_tool_notebook/build.properties (revision 0) +++ lams_tool_notebook/build.properties (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,9 @@ + +# project-wide properties +signature=lantbk11 + +package=org/lamsfoundation/lams/tool/notebook +package.name=org.lamsfoundation.lams.tool.notebook +weblib=lib + + Index: lams_tool_notebook/build.xml =================================================================== diff -u --- lams_tool_notebook/build.xml (revision 0) +++ lams_tool_notebook/build.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,460 @@ + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Deploying the Notebook Tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/conf/hibernate/mappings/hibernate.properties =================================================================== diff -u --- lams_tool_notebook/conf/hibernate/mappings/hibernate.properties (revision 0) +++ lams_tool_notebook/conf/hibernate/mappings/hibernate.properties (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,7 @@ +hibernate.connection.username=lams +hibernate.connection.password=lamsdemo +hibernate.connection.url=jdbc:mysql://localhost/lams +hibernate.connection.driver_class=com.mysql.jdbc.Driver +hibernate.dialect=org.hibernate.dialect.MySQLDialect + + Index: lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/Notebook.hbm.xml =================================================================== diff -u --- lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/Notebook.hbm.xml (revision 0) +++ lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/Notebook.hbm.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/NotebookAttachment.hbm.xml =================================================================== diff -u --- lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/NotebookAttachment.hbm.xml (revision 0) +++ lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/NotebookAttachment.hbm.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/NotebookSession.hbm.xml =================================================================== diff -u --- lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/NotebookSession.hbm.xml (revision 0) +++ lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/NotebookSession.hbm.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/NotebookUser.hbm.xml =================================================================== diff -u --- lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/NotebookUser.hbm.xml (revision 0) +++ lams_tool_notebook/conf/hibernate/mappings/org/lamsfoundation/lams/tool/notebook/model/NotebookUser.hbm.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/conf/jar/META-INF/MANIFEST.MF =================================================================== diff -u --- lams_tool_notebook/conf/jar/META-INF/MANIFEST.MF (revision 0) +++ lams_tool_notebook/conf/jar/META-INF/MANIFEST.MF (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,3 @@ +Implementation-Title: LAMS Notebook Tool +Implementation-Version: 1.1 +Implementation-Vendor: LAMS Foundation (http://lamsfoundation.org) Index: lams_tool_notebook/conf/language/ApplicationResources.properties =================================================================== diff -u --- lams_tool_notebook/conf/language/ApplicationResources.properties (revision 0) +++ lams_tool_notebook/conf/language/ApplicationResources.properties (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,136 @@ +# CVS ID: $Id$ + +# Australian English language file for the notebook tool. + +# ========== Values for tool and library activity. Sent to Flash as part of the learning design toolkit. ====== +tool.display.name=Notebook +tool.description=Notebook Tool + +activity.title=Notebook +activity.description=Notebook Tool +activity.helptext=Syncronous notebook tool + +# ========== Authoring Page =========== + +pageTitle.authoring=Notebook Authoring + +button.basic=Basic +button.advanced=Advanced +button.instructions=Instructions +button.upload=Upload + +# Basic Page +label.authoring.basic.title=Title: +label.authoring.basic.content=Content: +label.authoring.basic.instructions=Intructions: + +#Advanced Page +advanced.lockOnFinished= Lock on Finish +advanced.filteringEnabled= Filter Messages + +#Instructions Page +instructions.onlineInstructions=Online Instructions: +instructions.offlineInstructions=Offline Instructions: +instructions.uploadOnlineInstr=Online Instructions File: +instructions.uploadOfflineInstr=Offline Instructions File: +instructions.type.online=Online +instructions.type.offline=Offline + +label.filename=Filename +label.type=Type +label.attachments=Attachments +link.view=View +link.download=Download +link.delete=Delete + +message.updateSuccess=Changes saved +message.unsavedChanges=Page contains unsaved changes + +# ========== Learner Page ========== +pageTitle.learning=Online Notebook + +message.defineLaterSet=Please wait for the teacher to complete the contents of this activity +message.runOfflineSet=This activity is not being done on the computer. Please see your instructor for details + +# ========== Monitoring Page ========== +pageTitle.monitoring=Notebook Monitoring + +button.summary=Summary +button.instructions=Instructions +button.editActivity=Edit Activity +button.statistics=Statistics + +titleHeading.summary=Summary +titleHeading.instructions=Instructions +titleHeading.statistics=Statistics +titleHeading.editActivity=Edit Activity +titleHeading.exportPortfolio=Export Portfolio + +heading.group=Group {0}: +heading.totalLearners=Number of Learners: +heading.totalLearnersInGroup=Total Number of Learners in Group: +heading.totalMessages=Total Number of Messages: +heading.recentMessages=Most Recent Messages: + +message.contentInUseSet=The modification of content is not allowed since one or more students has attempted the activity. +message.summary=There is no summary available for this tool. +message.noNotebookMessages=There are no messages available for this group. + +# Summary Page +summary.editMessages=Edit Messages +summary.openNotebook=Open Notebook + +# Instructions Page + +# Edit Activity Page + +# Statistics Page + +# Notebook History Page +notebookHistory.hideMessage=Hide Message + +# ========== Notebook Client ========== # +label.sendMessageTo=Send Message To: +label.everyone=Everyone +message.loading=Please wait, loading notebook client. + +button.send=Send +button.clear=Clear + +# ========== Buttons ========== +button.cancel=Cancel +button.ok=OK +button.done=Done +button.save=Save +button.finish=Finish +button.next=Next + +# ========= FCKEditor Labels ============ +label.save=Save +label.cancel=Cancel + +# ========== Error/Exception Messages ========== + +error.missingParam=Unable to continue. {0} is missing. +error.exceedMaxFileSize=File size exceeded +error.exception.NbApplication=An internal error has occured with the Notebook Tool. If reporting this error, please report:
{0} +error.contentrepository=An error has occurred when saving/deleting instruction file {0}. The files may not be saved correctly. + +# ========= Standard Error Messages ========= + +error.content.locked=The content has been locked since it is being used by one or more learners. The modification of the content is not allowed. +error.defineLater=Sorry, the activity is not ready yet. Please wait for the teacher to finishing defining the activity. +errors.maxfilesize=The uploaded file has exceeded the maximum file size limit of {0} bytes +error.mandatoryField={0} field is mandatory. +error.mark.invalid.number={0} field must be a valid number. Decimal points are not allowed. +error.mark.invalid.decimal.number={0} field must be a valid decimal number. + + +#======= Add on 16/05/2006 ===== +authoring.msg.cancel.save=Do you want to close this window without saving? + +#======= Add on 5/06/2006 ===== +pageTitle.monitoring.notebookHistory=Notebook History + +#======= Add 11/7/2006 ===== +button.try.again=Try Again \ No newline at end of file Index: lams_tool_notebook/conf/language/ApplicationResources_el.properties =================================================================== diff -u --- lams_tool_notebook/conf/language/ApplicationResources_el.properties (revision 0) +++ lams_tool_notebook/conf/language/ApplicationResources_el.properties (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,88 @@ +appName = notebook +#language code: el +#locale code: + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Fri Jun 30 04:19:21 GMT 2006 + +#=================== labels for Notebook =================# + +tool.display.name =\u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 +tool.description =\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 +activity.title =\u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 +activity.description =\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 +activity.helptext =\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 +pageTitle.authoring =\u03a3\u03c5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 +heading.totalLearnersInGroup =\u03a3\u03c5\u03bd\u03bf\u03bb\u03b9\u03ba\u03cc\u03c2 \u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03bc\u03b1\u03b8\u03b7\u03c4\u03b5\u03c5\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c3\u03c4\u03b7\u03bd \u039f\u03bc\u03ac\u03b4\u03b1 +heading.totalMessages =\u03a3\u03c5\u03bd\u03bf\u03bb\u03b9\u03ba\u03cc\u03c2 \u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u039c\u03b7\u03bd\u03c5\u03bc\u03ac\u03c4\u03c9\u03bd +heading.recentMessages =\u03a0\u03b9\u03cc \u03a0\u03c1\u03cc\u03c3\u03c6\u03b1\u03c4\u03b1 \u039c\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03b1 +message.contentInUseSet =\u0397 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c6\u03bf\u03cd \u03ad\u03bd\u03b1\u03c2 \u03ae \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03bf\u03b9 \u03c6\u03bf\u03b9\u03c4\u03b7\u03c4\u03ad\u03c2 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03b5\u03b9 \u03c4\u03b7 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1. +message.summary =\u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b7 \u03c3\u03cd\u03bd\u03bf\u03c8\u03b7 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf \u03b1\u03c5\u03c4\u03cc +message.noNotebookMessages =\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b1 \u03bc\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03b1 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03bf\u03bc\u03ac\u03b4\u03b1 \u03b1\u03c5\u03c4\u03ae +summary.editMessages =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u039c\u03b7\u03bd\u03c5\u03bc\u03ac\u03c4\u03c9\u03bd +summary.openNotebook =\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 +error.defineLater =\u039b\u03c5\u03c0\u03bf\u03cd\u03bc\u03b1\u03c3\u03c4\u03b5, \u03b7 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03b1\u03c4 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03c4\u03bf\u03b9\u03bc\u03b7 \u03b1\u03ba\u03cc\u03bc\u03b7. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03b5\u03c1\u03b9\u03bc\u03ad\u03bd\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b4\u03ac\u03c3\u03ba\u03b1\u03bb\u03bf \u03bd\u03b1 \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03ce\u03c3\u03b5\u03b9 \u03c4\u03bf\u03bd \u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03cc \u03c4\u03b7\u03c2 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 +errors.maxfilesize =\u03a4\u03bf \u03b1\u03bd\u03b5\u03b2\u03b1\u03c3\u03bc\u03ad\u03bd\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03ad\u03c7\u03b5\u03b9 \u03c5\u03c0\u03b5\u03c1\u03b2\u03b5\u03af \u03c4\u03bf \u03bc\u03ad\u03b3\u03b9\u03c3\u03c4\u03bf \u03cc\u03c1\u03b9\u03bf \u03bc\u03b5\u03b3\u03ad\u03b8\u03bf\u03c5\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 {0} bytes +error.mark.invalid.number =\u03a4\u03bf {0} \u03c0\u03b5\u03b4\u03af\u03bf \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2. \u03b4\u03b5\u03ba\u03b1\u03b4\u03b9\u03ba\u03ac \u03c3\u03b7\u03bc\u03b5\u03af\u03b1 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9 +error.mark.invalid.decimal.number =\u03a4\u03bf {0} \u03c0\u03b5\u03b4\u03af\u03bf \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03bd\u03b1\u03c2 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c2 \u03b4\u03b5\u03ba\u03b1\u03b4\u03b9\u03ba\u03cc\u03c2 \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 +message.updateSuccess =\u039f\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03b8\u03b7\u03ba\u03b1\u03bd +message.unsavedChanges =\u0397 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03c0\u03bf\u03c5 \u03b4\u03b5\u03bd \u03ad\u03c7\u03bf\u03c5\u03bd \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03b8\u03b5\u03af +pageTitle.learning =\u03a3\u03cd\u03b3\u03c7\u03c1\u03bf\u03bd\u03b7 \u03b3\u03c1\u03b1\u03c0\u03c4\u03ae \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1 +message.defineLaterSet =\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03b5\u03c1\u03b9\u03bc\u03ad\u03bd\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b4\u03ac\u03c3\u03ba\u03b1\u03bb\u03bf \u03bd\u03b1 \u03c3\u03c5\u03bc\u03c0\u03bb\u03b7\u03c1\u03ce\u03c3\u03b5\u03b9 \u03c4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf \u03b1\u03c5\u03c4\u03ae\u03c2 \u03c4\u03b7\u03c2 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 +message.runOfflineSet =\u0391\u03c5\u03c4\u03ae \u03b7 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03b4\u03b5\u03bd \u03b3\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03bf\u03bd \u03c5\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03c4\u03ae. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b4\u03b5\u03af\u03c4\u03b5 \u03c4\u03bf\u03bd \u03ba\u03b1\u03b8\u03b7\u03b3\u03b7\u03c4\u03ae-\u03c3\u03cd\u03bc\u03b2\u03bf\u03c5\u03bb\u03cc \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2. +pageTitle.monitoring =\u0388\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 +button.summary =\u03a3\u03cd\u03bd\u03bf\u03c8\u03b7 +button.editActivity =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 +button.statistics =\u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac +titleHeading.summary =\u03a3\u03cd\u03bd\u03bf\u03c8\u03b7 +titleHeading.instructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 +titleHeading.statistics =\u03a3\u03cd\u03bd\u03bf\u03c8\u03b7 +titleHeading.editActivity =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 +titleHeading.exportPortfolio =\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd \u03c7\u03b1\u03c1\u03c4\u03bf\u03c6\u03c5\u03bb\u03b1\u03ba\u03af\u03bf\u03c5 +heading.group =\u039f\u03bc\u03ac\u03b4\u03b1 {0}: +heading.totalLearners =\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03bc\u03b1\u03b8\u03b7\u03c4\u03b5\u03c5\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd +message.loading =\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03b5\u03c1\u03b9\u03bc\u03ad\u03bd\u03b5\u03c4\u03b5, \u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 \u03c0\u03b5\u03bb\u03ac\u03c4\u03b7 \u03c3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2. +button.send =\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae +button.clear =\u039a\u03b1\u03b8\u03b1\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2 +button.cancel =\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7 +button.ok =\u039f\u039a +button.done =\u0388\u03b3\u03b9\u03bd\u03b5 +button.save =\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 +button.finish =\u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b7 +button.next =\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf +label.save =\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 +button.basic =\u0392\u03b1\u03c3\u03b9\u03ba\u03cc +button.advanced =\u03a0\u03c1\u03bf\u03c7\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03bf +button.instructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 +button.upload =\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7 +label.authoring.basic.title =\u03a4\u03af\u03c4\u03bb\u03bf\u03c2 +label.authoring.basic.content =\u03a0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf +label.authoring.basic.instructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 +advanced.lockOnFinished =\u039a\u03bb\u03b5\u03af\u03b4\u03c9\u03bc\u03b1 \u03c3\u03c4\u03b7\u03bd \u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b7 +advanced.filteringEnabled =\u03a6\u03af\u03bb\u03c4\u03c1\u03bf \u039c\u03b7\u03bd\u03c5\u03bc\u03ac\u03c4\u03c9\u03bd +instructions.onlineInstructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03c3\u03b5 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 +instructions.offlineInstructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03c7\u03c9\u03c1\u03af\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 +instructions.uploadOnlineInstr =\u0391\u03c1\u03c7\u03b5\u03af\u03bf \u039f\u03b4\u03b7\u03b3\u03b9\u03ce\u03bd \u03c3\u03b5 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 +instructions.uploadOfflineInstr =\u0391\u03c1\u03c7\u03b5\u03af\u03bf \u039f\u03b4\u03b7\u03b3\u03b9\u03ce\u03bd \u03c7\u03c9\u03c1\u03af\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 +instructions.type.online =\u03a3\u03b5 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 +instructions.type.offline =\u03a7\u03c9\u03c1\u03af\u03c2 \u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 +label.filename =\u039f\u03bd\u03bf\u03bc\u03b1 \u0391\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 +label.type =\u03a4\u03cd\u03c0\u03bf\u03c2 +label.attachments =\u0395\u03c0\u03b9\u03c3\u03c5\u03bd\u03b1\u03c0\u03c4\u03cc\u03bc\u03b5\u03bd\u03b1 +link.view =\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae +link.download =\u039b\u03ae\u03c8\u03b7 +link.delete =\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae +notebookHistory.hideMessage =\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u039c\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2 +label.sendMessageTo =\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u039c\u03b7\u03bd\u03cd\u03bc\u03b1\u03c4\u03bf\u03c2 \u03a3\u03b5: +label.everyone =\u039f\u03c0\u03bf\u03b9\u03bf\u03c3\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 +label.cancel =\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7 +error.missingParam =\u0391\u03b4\u03cd\u03bd\u03b1\u03c4\u03b7 \u03b7 \u03c3\u03c5\u03bd\u03ad\u03c7\u03b5\u03b9\u03b1. \u039b\u03b5\u03af\u03c0\u03b5\u03b9 {0} +error.exceedMaxFileSize =\u03a5\u03c0\u03b5\u03c1\u03b2\u03b1\u03af\u03bd\u03bf\u03bd \u03bc\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 +error.exception.NbApplication =\u0388\u03bd\u03b1 \u03b5\u03c3\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03cc \u03bb\u03ac\u03b8\u03bf\u03c2 \u03c3\u03c5\u03bd\u03ad\u03b2\u03b7 \u03bc\u03b5 \u03c4\u03bf \u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2. +error.contentrepository =\u0388\u03bd\u03b1 \u03bb\u03ac\u03b8\u03bf\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03b5\u03bc\u03c6\u03b1\u03bd\u03b9\u03c3\u03c4\u03b5\u03af \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7/\u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03bf\u03b4\u03b7\u03b3\u03b9\u03ce\u03bd. \u03a4\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03bc\u03b7\u03bd \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03b8\u03bf\u03cd\u03bd \u03c3\u03c9\u03c3\u03c4\u03ac. +error.content.locked =\u03a4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf \u03ad\u03c7\u03b5\u03b9 \u03ba\u03bb\u03b5\u03b9\u03b4\u03c9\u03b8\u03b5\u03af \u03b1\u03c6\u03bf\u03cd \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03ad\u03bd\u03b1\u03bd \u03ae \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03bf\u03c5\u03c2 \u03bc\u03b1\u03b8\u03b7\u03c4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03c5\u03c2. \u0397 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9. +error.mandatoryField ={0} \u03c0\u03b5\u03b4\u03af\u03bf \u03b5\u03af\u03bd\u03b1\u03b9 \u03c5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03cc. +authoring.msg.cancel.save =\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf \u03c7\u03c9\u03c1\u03af\u03c2 \u03bd\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2; +pageTitle.monitoring.notebookHistory =\u0399\u03c3\u03c4\u03bf\u03c1\u03b9\u03ba\u03cc \u03a3\u03c5\u03bd\u03bf\u03bc\u03b9\u03bb\u03af\u03b1\u03c2 + + +#======= End labels: Exported 77 labels for el ===== Index: lams_tool_notebook/conf/language/ApplicationResources_es.properties =================================================================== diff -u --- lams_tool_notebook/conf/language/ApplicationResources_es.properties (revision 0) +++ lams_tool_notebook/conf/language/ApplicationResources_es.properties (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,88 @@ +appName = notebook +#language code: es +#locale code: + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Fri Jun 30 04:19:13 GMT 2006 + +#=================== labels for Notebook =================# + +tool.display.name =Notebook +tool.description =Herramienta para conversaciones en l\u00ednea +activity.title =Notebook +activity.description =Herramienta Notebook +activity.helptext =Herramienta para conversaciones en l\u00ednea +button.basic =B\u00e1sico +button.advanced =Avanzado +button.instructions =Instrucciones +button.upload =Subir +label.authoring.basic.title =T\u00edtulo: +label.authoring.basic.content =Contenido: +label.authoring.basic.instructions =Instrucciones +advanced.lockOnFinished =Al terminar, bloquear el notebook +advanced.filteringEnabled =Palabras para filtrar +instructions.onlineInstructions =Instrucciones para modo online +instructions.offlineInstructions =Instrucciones para modo offline +instructions.uploadOnlineInstr =Subir archivo con instrucciones online +instructions.uploadOfflineInstr =Subir archivo con instrucciones offline +instructions.type.online =Online +instructions.type.offline =Offline +label.filename =Nombre de Archivo +label.type =Tipo +label.attachments =Archivos Adjuntos +link.view =Ver +link.download =Descargar +link.delete =Borrar +message.updateSuccess =Salvar cambios +message.unsavedChanges =Esta p\u00e1gina contiene cambios sin guardar +message.defineLaterSet =Por favor espere a que el instructor complete los contenidos de esta actividad. +message.runOfflineSet =Esta actividad se ha marcado para realizar offline. Pregunte al instructor por m\u00e1s instrucciones +pageTitle.monitoring =Monitoreo +button.summary =Resumen +button.editActivity =Editar Actividad +button.statistics =Estad\u00edsticas +error.mark.invalid.decimal.number =El campo {0} debe ser un n\u00famero decimal. +authoring.msg.cancel.save =\u00bfDesea cerrar sin salvar sus cambios? +pageTitle.monitoring.notebookHistory =Historial de Notebook +error.missingParam =No se puede continuar. Falta {0}. +error.exceedMaxFileSize =El tama\u00f1o del archivo es superior al valor autorizado. +error.exception.NbApplication =Ha ocurrido un error con Herramient Notebook. Si desea reportar este error, mencione lo siguiente: {0}. +error.contentrepository =Ha ocurrido un error cuando se trataba de guardar o borrar el archivo de instrucciones {0}. El archivo no se ha guardado correctamente. +error.content.locked =El contenido de esta actividad no se puede modificar ya que uno o m\u00e1s estudiantes ha accedido al mismo. La modificaci\u00f3n no puede proceder. +titleHeading.summary =Resumen +titleHeading.instructions =Instrucciones +titleHeading.statistics =Estad\u00edsticas +titleHeading.editActivity =Editar Actividad +titleHeading.exportPortfolio =Exportar Portfolio +heading.group =Grupo {0}: +heading.totalLearners =N\u00famero de Estudiantes: +heading.totalLearnersInGroup =N\u00famero Total de estudiantes en grupo +heading.totalMessages =N\u00famero Total de Mensajes: +heading.recentMessages =Mensajes recientes +message.contentInUseSet =La modificaci\u00f3n de contenido no esta permitida ya que uno o m\u00e1s estudiantes han accedido a esta actividad. +message.summary =Resumen no disponible. +message.noNotebookMessages =No hay mensajes para este grupo +summary.editMessages =Editar Mensajes +summary.openNotebook =Abrir Notebook +notebookHistory.hideMessage =Esconder Mensaje +label.sendMessageTo =Enviar Mensaje a: +label.everyone =Todos +message.loading =Por favor espere mientras se cargar el notebook... +button.send =Enviar +button.clear =Limpiar +button.cancel =Cancelar +button.ok =OK +button.done =Terminado +button.save =Guardar +button.finish =Terminar +button.next =Siguiente +label.save =Guardar +label.cancel =Cancelar +error.defineLater =Esta actividad no esta lista. Espere a que el instructor termine de definir el contenido para esta actividad. +errors.maxfilesize =El archivo que ha tratado de subir excede el limite m\u00e1ximo de {0} bytes. +error.mandatoryField =El campo {0} debe ser completado. +error.mark.invalid.number =El campo {0} debe ser un n\u00famero valido. Decimales no estan permitidos. +pageTitle.authoring =Dise\u00f1o Notebook +pageTitle.learning =Conversaci\u00f3n Sincr\u00f3nica + + +#======= End labels: Exported 77 labels for es ===== Index: lams_tool_notebook/conf/language/ApplicationResources_ko.properties =================================================================== diff -u --- lams_tool_notebook/conf/language/ApplicationResources_ko.properties (revision 0) +++ lams_tool_notebook/conf/language/ApplicationResources_ko.properties (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,88 @@ +appName = notebook +#language code: ko +#locale code: + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Fri Jun 30 04:19:18 GMT 2006 + +#=================== labels for Notebook =================# + +tool.display.name =\ucc44\ud305 +tool.description =\ucc44\ud305 \ub3c4\uad6c +activity.title =\ucc44\ud305 +activity.description =\ucc44\ud305 \ub3c4\uad6c +activity.helptext =\ub3d9\uae30 \ucc44\ud305 \ub3c4\uad6c +pageTitle.authoring =\ucc44\ud305 \ub9cc\ub4e4\uae30 +button.basic =\uae30\ubcf8 +button.advanced =\uace0\uae09 +button.instructions =\uc9c0\uc2dc\uc0ac\ud56d +button.upload =\uc62c\ub9ac\uae30 +label.authoring.basic.title =\uc81c\ubaa9 +label.authoring.basic.content =\ub0b4\uc6a9 +label.authoring.basic.instructions =\uc9c0\uc2dc\uc0ac\ud56d +advanced.lockOnFinished =\uc885\ub8cc\uc2dc \uc7a0\uae40 +advanced.filteringEnabled =\uba54\uc138\uc9c0 \uc5ec\uacfc +instructions.onlineInstructions =\uc628\ub77c\uc778 \uc9c0\uc2dc\uc0ac\ud56d +instructions.offlineInstructions =\uc624\ud504\ub77c\uc778 \uc9c0\uc2dc\uc0ac\ud56d +instructions.uploadOnlineInstr =\uc628\ub77c\uc778 \uc9c0\uc2dc\uc0ac\ud56d \ud30c\uc77c +instructions.uploadOfflineInstr =\uc624\ud504\ub77c\uc778 \uc9c0\uc2dc\uc0ac\ud56d \ud30c\uc77c +instructions.type.online =\uc628\ub77c\uc778 +instructions.type.offline =\uc624\ud504\ub77c\uc778 +label.filename =\ud30c\uc77c\uba85 +label.type =\ud615\uc2dd +label.attachments =\ucca8\ubd80 +link.view =\ubcf4\uae30 +link.download =\ub0b4\ub824\ubc1b\uae30 +link.delete =\uc0ad\uc81c +message.updateSuccess =\ubcc0\uacbd\ub41c \uac83 \uc800\uc7a5\ub428 +message.unsavedChanges =\ud398\uc774\uc9c0\uc5d0 \uc800\uc7a5\ub418\uc9c0 \uc54a\uc740 \ubcc0\uacbd\ub41c \uac83\uc774 \uc788\uc2b5\ub2c8\ub2e4. +pageTitle.learning =\uc628\ub77c\uc778 \ucc44\ud305 +message.defineLaterSet =\uad50\uc218\uc790\uac00 \uc774 \ud65c\ub3d9\ub0b4\uc6a9\uc744 \uc644\uc131\ud560\ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9ac\uc2dc\uc624. +error.exception.NbApplication =\ucc44\ud305\ub3c4\uad6c\uc5d0\uc11c \ub0b4\ubd80\uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774 \uc624\ub958\ub97c \ubcf4\uace0\ud558\ub824\uba74, \ub2e4\uc74c\uc744 \ubcf4\uace0\ud558\uc2ed\uc2dc\uc694: +error.contentrepository =\uc9c0\uc2dc\uc0ac\ud56d \ud30c\uc77c\uc744 \uc800\uc7a5/\uc0ad\uc81c\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4. \ud30c\uc77c\uc774 \uc62c\ubc14\ub974\uac8c \uc800\uc7a5\ub418\uc9c0 \uc54a\uc558\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. +error.content.locked =\uc774 \ucf58\ud150\uce20\ub294 \ud55c\uba85 \uc774\uc0c1\uc758 \ud559\uc2b5\uc790\uc5d0 \uc758\ud574 \uc774\uc6a9\ub418\uace0 \uc788\uae30\ub54c\ubb38\uc5d0 \uc7a0\uaca8\uc838 \uc788\uc2b5\ub2c8\ub2e4. \ucee8\ud150\uce20\ub97c \uc218\uc815\ud558\ub294 \uac83\uc740 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +message.runOfflineSet =\uc774 \ud65c\ub3d9\uc740 \ucef4\ud4e8\ud130 \uc0c1\uc5d0\uc11c \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc790\uc138\ud55c \uac83\uc740 \uad50\uc218\uc790\uc5d0\uac8c \ubb38\uc758\ud558\uc2dc\uc624. +pageTitle.monitoring =\ucc44\ud305 \ud559\uc2b5\ubcf4\uae30 +button.summary =\uc694\uc57d +button.editActivity =\ud65c\ub3d9 \ud3b8\uc9d1 +button.statistics =\ud1b5\uacc4 +titleHeading.summary =\uc694\uc57d +titleHeading.instructions =\uc9c0\uc2dc\uc0ac\ud56d +titleHeading.statistics =\ud1b5\uacc4 +titleHeading.editActivity =\ud65c\ub3d9 \ud3b8\uc9d1 +titleHeading.exportPortfolio =\ud3ec\ud2b8\ud3f4\ub9ac\uc624 \ub0b4\ubcf4\ub0b4\uae30 +heading.group =\uadf8\ub8f9 {0} +heading.totalLearners =\ud559\uc2b5\uc790\uc218 +heading.totalLearnersInGroup =\uadf8\ub8f9\uc758 \ucd1d\ud559\uc2b5\uc790\uc218 +heading.totalMessages =\ucd1d \uba54\uc138\uc9c0 \uc218 +heading.recentMessages =\ucd5c\uadfc \uba54\uc138\uc9c0 +message.contentInUseSet =\ud55c\uba85 \uc774\uc0c1\uc758 \ud559\uc2b5\uc790\uac00 \ud65c\ub3d9\uc744 \ud558\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0 \ub0b4\uc6a9 \ubcc0\uacbd\uc744 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +message.summary =\uc774 \ub3c4\uad6c\uc5d0 \ub300\ud55c \uc694\uc57d\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. +message.noNotebookMessages =\uc774 \uadf8\ub8f9\uc5d0 \ub300\ud55c \uba54\uc138\uc9c0\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. +summary.editMessages =\uba54\uc138\uc9c0 \ud3b8\uc9d1 +summary.openNotebook =\ucc44\ud305 \uc5f4\uae30 +notebookHistory.hideMessage =\uba54\uc138\uc9c0 \uac10\ucd94\uae30 +label.sendMessageTo =\uba54\uc138\uc9c0 \ubcf4\ub0b4\uae30 +label.everyone =\ubaa8\ub450 +message.loading =\ucc44\ud305 \uc0ac\uc6a9\uc790\ub97c \ub85c\ub529 \uc911\uc785\ub2c8\ub2e4. \uc7a0\uc2dc\ub9cc \uae30\ub2e4\ub824\uc8fc\uc2ed\uc2dc\uc694. +button.send =\ubcf4\ub0b4\uae30 +button.clear =\uc9c0\uc6c0 +button.cancel =\ucde8\uc18c +button.ok =\uc2b9\uc778 +button.done =\ub9c8\uce68 +button.save =\uc800\uc7a5 +button.finish =\uc885\ub8cc +button.next =\ub2e4\uc74c +label.save =\uc800\uc7a5 +label.cancel =\ucde8\uc18c +error.missingParam =\uacc4\uc18d\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. {0}\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. +error.exceedMaxFileSize =\ud30c\uc77c\ud06c\uae30\uac00 \ucd08\uacfc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +error.mandatoryField ={0} \ud56d\ubaa9\uc740 \ud544\uc218\uc801\uc785\ub2c8\ub2e4. +error.mark.invalid.number ={0} \uc740 \uc720\ud6a8\ud55c \uc22b\uc790\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc18c\uc218\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +error.mark.invalid.decimal.number ={0} \ud56d\ubaa9\uc740 \uc720\ud6a8\ud55c 10\uc9c4 \uc22b\uc790\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +authoring.msg.cancel.save =\uc800\uc7a5\ud558\uc9c0 \uc54a\uace0 \uc774 \ucc3d\uc744 \ub2eb\uae30\ub97c \uc6d0\ud558\uc2ed\ub2c8\uae4c? +pageTitle.monitoring.notebookHistory =\ucc44\ud305 \uc774\ub825 +error.defineLater =\uc8c4\uc1a1\ud569\ub2c8\ub2e4. \ud65c\ub3d9\uc774 \uc544\uc9c1 \uc900\ube44\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \uad50\uc218\uc790\uac00 \ud65c\ub3d9\uc744 \uc815\uc758\ud558\ub294 \uac83\uc744 \ub9c8\uce60\ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9ac\uae30 \ubc14\ub78d\ub2c8\ub2e4. +errors.maxfilesize =\uc62c\ub9ac\uae30 \ud55c \ud30c\uc77c\uc774 \ucd5c\ub300\ud30c\uc77c\ud06c\uae30 \ud55c\uacc4\uc778 {0} \ubc14\uc774\ud2b8\ub97c \ucd08\uacfc\ud558\uc600\uc2b5\ub2c8\ub2e4. + + +#======= End labels: Exported 77 labels for ko ===== Index: lams_tool_notebook/conf/middlegen/lams_tool_lanotebook11-prefs.properties =================================================================== diff -u --- lams_tool_notebook/conf/middlegen/lams_tool_lanotebook11-prefs.properties (revision 0) +++ lams_tool_notebook/conf/middlegen/lams_tool_lanotebook11-prefs.properties (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,128 @@ +# Middlegen Preferences +hibernate.tables.tl_lantbk11_attachment.base-class-name=NotebookAttachment +hibernate.tables.tl_lantbk11_attachment.columns.create_date.columnspecialty=property +hibernate.tables.tl_lantbk11_attachment.columns.create_date.java-name=createDate +hibernate.tables.tl_lantbk11_attachment.columns.create_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lantbk11_attachment.columns.notebook_uid.columnspecialty=foreign key +hibernate.tables.tl_lantbk11_attachment.columns.notebook_uid.java-name=notebookUid +hibernate.tables.tl_lantbk11_attachment.columns.notebook_uid.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_attachment.columns.file_name.inctostring=true +hibernate.tables.tl_lantbk11_attachment.columns.file_name.java-name=fileName +hibernate.tables.tl_lantbk11_attachment.columns.file_name.java-type=java.lang.String +hibernate.tables.tl_lantbk11_attachment.columns.file_type.java-name=fileType +hibernate.tables.tl_lantbk11_attachment.columns.file_type.java-type=java.lang.String +hibernate.tables.tl_lantbk11_attachment.columns.file_uuid.columnspecialty=property +hibernate.tables.tl_lantbk11_attachment.columns.file_uuid.incequals=false +hibernate.tables.tl_lantbk11_attachment.columns.file_uuid.inctostring=true +hibernate.tables.tl_lantbk11_attachment.columns.file_uuid.java-name=fileUuid +hibernate.tables.tl_lantbk11_attachment.columns.file_uuid.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_attachment.columns.file_version_id.inctostring=true +hibernate.tables.tl_lantbk11_attachment.columns.file_version_id.java-name=fileVersionId +hibernate.tables.tl_lantbk11_attachment.columns.file_version_id.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_attachment.columns.uid.columnspecialty=key +hibernate.tables.tl_lantbk11_attachment.columns.uid.incequals=true +hibernate.tables.tl_lantbk11_attachment.columns.uid.inctostring=true +hibernate.tables.tl_lantbk11_attachment.columns.uid.java-name=uid +hibernate.tables.tl_lantbk11_attachment.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_attachment.equalshashcode=true +hibernate.tables.tl_lantbk11_attachment.keygenerator=native +hibernate.tables.tl_lantbk11_notebook.base-class-name=Notebook +hibernate.tables.tl_lantbk11_notebook.columns.content_in_use.java-name=contentInUse +hibernate.tables.tl_lantbk11_notebook.columns.content_in_use.java-type=java.lang.Boolean +hibernate.tables.tl_lantbk11_notebook.columns.create_by.java-name=createBy +hibernate.tables.tl_lantbk11_notebook.columns.create_by.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_notebook.columns.create_date.java-name=createDate +hibernate.tables.tl_lantbk11_notebook.columns.create_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lantbk11_notebook.columns.define_later.java-name=defineLater +hibernate.tables.tl_lantbk11_notebook.columns.define_later.java-type=java.lang.Boolean +hibernate.tables.tl_lantbk11_notebook.columns.instructions.inctostring=true +hibernate.tables.tl_lantbk11_notebook.columns.instructions.java-name=instructions +hibernate.tables.tl_lantbk11_notebook.columns.instructions.java-type=java.lang.String +hibernate.tables.tl_lantbk11_notebook.columns.lock_on_finished.java-name=lockOnFinished +hibernate.tables.tl_lantbk11_notebook.columns.lock_on_finished.java-type=java.lang.Boolean +hibernate.tables.tl_lantbk11_notebook.columns.offline_instructions.java-name=offlineInstructions +hibernate.tables.tl_lantbk11_notebook.columns.offline_instructions.java-type=java.lang.String +hibernate.tables.tl_lantbk11_notebook.columns.online_instructions.java-name=onlineInstructions +hibernate.tables.tl_lantbk11_notebook.columns.online_instructions.java-type=java.lang.String +hibernate.tables.tl_lantbk11_notebook.columns.run_offline.java-name=runOffline +hibernate.tables.tl_lantbk11_notebook.columns.run_offline.java-type=java.lang.Boolean +hibernate.tables.tl_lantbk11_notebook.columns.title.inctostring=true +hibernate.tables.tl_lantbk11_notebook.columns.title.java-name=title +hibernate.tables.tl_lantbk11_notebook.columns.title.java-type=java.lang.String +hibernate.tables.tl_lantbk11_notebook.columns.tool_content_id.inctostring=true +hibernate.tables.tl_lantbk11_notebook.columns.tool_content_id.java-name=toolContentId +hibernate.tables.tl_lantbk11_notebook.columns.tool_content_id.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_notebook.columns.uid.columnspecialty=key +hibernate.tables.tl_lantbk11_notebook.columns.uid.incequals=true +hibernate.tables.tl_lantbk11_notebook.columns.uid.inctostring=true +hibernate.tables.tl_lantbk11_notebook.columns.uid.java-name=uid +hibernate.tables.tl_lantbk11_notebook.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_notebook.columns.update_date.java-name=updateDate +hibernate.tables.tl_lantbk11_notebook.columns.update_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lantbk11_notebook.dynamicInsert=false +hibernate.tables.tl_lantbk11_notebook.equalshashcode=true +hibernate.tables.tl_lantbk11_notebook.keygenerator=native +hibernate.tables.tl_lantbk11_session.base-class-name=NotebookSession +hibernate.tables.tl_lantbk11_session.columns.notebook_uid.java-name=notebookUid +hibernate.tables.tl_lantbk11_session.columns.notebook_uid.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_session.columns.session_end_date.inctostring=true +hibernate.tables.tl_lantbk11_session.columns.session_end_date.java-name=sessionEndDate +hibernate.tables.tl_lantbk11_session.columns.session_end_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lantbk11_session.columns.session_id.inctostring=true +hibernate.tables.tl_lantbk11_session.columns.session_id.java-name=sessionId +hibernate.tables.tl_lantbk11_session.columns.session_id.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_session.columns.session_name.inctostring=true +hibernate.tables.tl_lantbk11_session.columns.session_name.java-name=sessionName +hibernate.tables.tl_lantbk11_session.columns.session_name.java-type=java.lang.String +hibernate.tables.tl_lantbk11_session.columns.session_start_date.inctostring=true +hibernate.tables.tl_lantbk11_session.columns.session_start_date.java-name=sessionStartDate +hibernate.tables.tl_lantbk11_session.columns.session_start_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lantbk11_session.columns.status.inctostring=true +hibernate.tables.tl_lantbk11_session.columns.status.java-name=status +hibernate.tables.tl_lantbk11_session.columns.status.java-type=java.lang.Integer +hibernate.tables.tl_lantbk11_session.columns.uid.columnspecialty=key +hibernate.tables.tl_lantbk11_session.columns.uid.incequals=true +hibernate.tables.tl_lantbk11_session.columns.uid.inctostring=true +hibernate.tables.tl_lantbk11_session.columns.uid.java-name=uid +hibernate.tables.tl_lantbk11_session.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_session.equalshashcode=true +hibernate.tables.tl_lantbk11_session.keygenerator=native +hibernate.tables.tl_lantbk11_user.base-class-name=NotebookUser +hibernate.tables.tl_lantbk11_user.columns.first_name.java-name=firstName +hibernate.tables.tl_lantbk11_user.columns.first_name.java-type=java.lang.String +hibernate.tables.tl_lantbk11_user.columns.last_name.columnspecialty=property +hibernate.tables.tl_lantbk11_user.columns.last_name.java-name=lastName +hibernate.tables.tl_lantbk11_user.columns.last_name.java-type=java.lang.String +hibernate.tables.tl_lantbk11_user.columns.session_id.inctostring=true +hibernate.tables.tl_lantbk11_user.columns.session_id.java-name=sessionId +hibernate.tables.tl_lantbk11_user.columns.session_id.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_user.columns.uid.columnspecialty=key +hibernate.tables.tl_lantbk11_user.columns.uid.incequals=true +hibernate.tables.tl_lantbk11_user.columns.uid.inctostring=true +hibernate.tables.tl_lantbk11_user.columns.uid.java-name=uid +hibernate.tables.tl_lantbk11_user.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_user.columns.user_id.inctostring=true +hibernate.tables.tl_lantbk11_user.columns.user_id.java-name=userId +hibernate.tables.tl_lantbk11_user.columns.user_id.java-type=java.lang.Long +hibernate.tables.tl_lantbk11_user.equalshashcode=true +hibernate.tables.tl_lantbk11_user.keygenerator=sequence +relations.tl_lantbk11_notebook-tl_lantbk11_attachment.tl_lantbk11_attachment-has-tl_lantbk11_notebook.enabled=true +relations.tl_lantbk11_notebook-tl_lantbk11_attachment.tl_lantbk11_attachment-has-tl_lantbk11_notebook.target-many=false +relations.tl_lantbk11_notebook-tl_lantbk11_attachment.tl_lantbk11_notebook-has-tl_lantbk11_attachment.enabled=true +relations.tl_lantbk11_notebook-tl_lantbk11_attachment.tl_lantbk11_notebook-has-tl_lantbk11_attachment.target-many=true +relations.tl_lantbk11_notebook-tl_lantbk11_session.tl_lantbk11_notebook-has-tl_lantbk11_session.enabled=true +relations.tl_lantbk11_notebook-tl_lantbk11_session.tl_lantbk11_notebook-has-tl_lantbk11_session.target-many=true +relations.tl_lantbk11_notebook-tl_lantbk11_session.tl_lantbk11_session-has-tl_lantbk11_notebook.enabled=true +relations.tl_lantbk11_notebook-tl_lantbk11_session.tl_lantbk11_session-has-tl_lantbk11_notebook.target-many=false +relations.tl_lantbk11_session-tl_lantbk11_user.tl_lantbk11_session-has-tl_lantbk11_user.enabled=true +relations.tl_lantbk11_session-tl_lantbk11_user.tl_lantbk11_session-has-tl_lantbk11_user.target-many=true +relations.tl_lantbk11_session-tl_lantbk11_user.tl_lantbk11_user-has-tl_lantbk11_session.enabled=true +relations.tl_lantbk11_session-tl_lantbk11_user.tl_lantbk11_user-has-tl_lantbk11_session.target-many=false +tables.tl_lantbk11_attachment.x=566 +tables.tl_lantbk11_attachment.y=173 +tables.tl_lantbk11_notebook.x=308 +tables.tl_lantbk11_notebook.y=176 +tables.tl_lantbk11_session.x=70 +tables.tl_lantbk11_session.y=70 +tables.tl_lantbk11_user.x=460 +tables.tl_lantbk11_user.y=28 Index: lams_tool_notebook/conf/war/META-INF/MANIFEST.MF =================================================================== diff -u --- lams_tool_notebook/conf/war/META-INF/MANIFEST.MF (revision 0) +++ lams_tool_notebook/conf/war/META-INF/MANIFEST.MF (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1 @@ +Class-Path: ./lams.jar ./lams-tool-lantbk11.jar ./lams-contentrepository.jar ./lams-learning.jar Index: lams_tool_notebook/conf/xdoclet/filter-mappings.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/filter-mappings.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/filter-mappings.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,14 @@ + + SystemSessionFilter + /* + + + + hibernateFilter + /* + + + + LocaleFilter + /* + \ No newline at end of file Index: lams_tool_notebook/conf/xdoclet/filters.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/filters.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/filters.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,24 @@ + + SystemSessionFilter + + org.lamsfoundation.lams.web.session.SystemSessionFilter + + + + + hibernateFilter + + org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter + + + sessionFactoryBeanName + notebookSessionFactory + + + + + LocaleFilter + + org.lamsfoundation.lams.web.filter.LocaleFilter + + \ No newline at end of file Index: lams_tool_notebook/conf/xdoclet/global-forwards.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/global-forwards.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/global-forwards.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,3 @@ + + + Index: lams_tool_notebook/conf/xdoclet/listeners.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/listeners.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/listeners.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,11 @@ + + + org.springframework.web.context.ContextLoaderListener + + + + + org.lamsfoundation.lams.web.SessionListener + + + \ No newline at end of file Index: lams_tool_notebook/conf/xdoclet/servlet-mappings.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/servlet-mappings.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/servlet-mappings.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,20 @@ + + action + *.do + + + + + Connector + /fckeditor/editor/filemanager/browser/default/connectors/jsp/connector + + + + download + /download/* + + + + exportPortfolio + /exportPortfolio + Index: lams_tool_notebook/conf/xdoclet/servlets.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/servlets.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/servlets.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,56 @@ + + action + org.apache.struts.action.ActionServlet + + config + /WEB-INF/struts/struts-config.xml + + + debug + 999 + + + detail + 2 + + + validate + true + + 1 + + + + + + Connector + com.fredck.FCKeditor.connector.ConnectorServlet + + baseDir + /UserFiles/ + + + debug + false + + 1 + + + + + Attachment Download + Attachment Download + download + org.lamsfoundation.lams.contentrepository.client.ToolDownload + + toolContentHandlerBeanName + notebookToolContentHandler + + 3 + + + + exportPortfolio + org.lamsfoundation.lams.tool.notebook.web.servlets.ExportServlet + + Index: lams_tool_notebook/conf/xdoclet/struts-forms.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/struts-forms.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/struts-forms.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_notebook/conf/xdoclet/struts-message-resources.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/struts-message-resources.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/struts-message-resources.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1 @@ + \ No newline at end of file Index: lams_tool_notebook/conf/xdoclet/struts-plugins.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/struts-plugins.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/struts-plugins.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,9 @@ + + + + \ No newline at end of file Index: lams_tool_notebook/conf/xdoclet/taglibs.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/taglibs.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/taglibs.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,77 @@ + + + + + + + tags-bean + /WEB-INF/struts/tlds/struts-bean.tld + + + + tags-html + /WEB-INF/struts/tlds/struts-html.tld + + + + tags-logic + /WEB-INF/struts/tlds/struts-logic.tld + + + + tags-tiles + /WEB-INF/struts/tlds/struts-tiles.tld + + + + + + + + tags-fmt + /WEB-INF/jstl/tlds/fmt.tld + + + + tags-core + /WEB-INF/jstl/tlds/c.tld + + + + tags-function + /WEB-INF/jstl/tlds/fn.tld + + + + tags-xml + /WEB-INF/jstl/tlds/x.tld + + + + + + + tags-permittedTaglibs + /WEB-INF/jstl/tlds/permittedTaglibs.tld + + + + tags-scriptfree + /WEB-INF/jstl/tlds/scriptfree.tld + + + + + + + fck-editor + /WEB-INF/fckeditor/tlds/FCKeditor.tld + + + + tags-lams + /WEB-INF/lams.tld + + + + \ No newline at end of file Index: lams_tool_notebook/conf/xdoclet/web-security.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/web-security.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/web-security.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,94 @@ + + + + Secure Content + *.jsp + *.html + *.do + + + LEARNER + TEACHER + STAFF + AUTHOR + ADMIN + SYSADMIN + + + + + + Authoring Update + /authoring.do + + + AUTHOR + + + + + + Staff Content + /monitoring.do + + + STAFF + TEACHER + + + + + + + Download Files + /download/ + + + AUTHOR + STAFF + TEACHER + ADMIN + SYSADMIN + + + + + + FORM + LAMS + + /login.jsp + /login.jsp?failed=y + + + + + + + Student + LEARNER + + + Student + TEACHER + + + + Can create/modify a learning design + AUTHOR + + + + Can running and monitoring a learning session + STAFF + + + + Can add/remove users to the system, set up classes of users for sessions + ADMIN + + + + Can add/remove users to the system, set up classes of users for sessions + SYSADMIN + Index: lams_tool_notebook/conf/xdoclet/web-settings.xml =================================================================== diff -u --- lams_tool_notebook/conf/xdoclet/web-settings.xml (revision 0) +++ lams_tool_notebook/conf/xdoclet/web-settings.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,19 @@ + + + + javax.servlet.jsp.jstl.fmt.localizationContext + org.lamsfoundation.lams.tool.notebook.ApplicationResources + + + + contextConfigLocation + + classpath:/org/lamsfoundation/lams/applicationContext.xml + classpath:/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml + classpath:/org/lamsfoundation/lams/toolApplicationContext.xml + classpath:/org/lamsfoundation/lams/learning/learningApplicationContext.xml + classpath:/org/lamsfoundation/lams/contentrepository/applicationContext.xml + classpath:/org/lamsfoundation/lams/tool/notebook/notebookApplicationContext.xml + + + Index: lams_tool_notebook/db/model/notebook_tool.clay =================================================================== diff -u --- lams_tool_notebook/db/model/notebook_tool.clay (revision 0) +++ lams_tool_notebook/db/model/notebook_tool.clay (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,580 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
Index: lams_tool_notebook/db/sql/activity_insert.sql =================================================================== diff -u --- lams_tool_notebook/db/sql/activity_insert.sql (revision 0) +++ lams_tool_notebook/db/sql/activity_insert.sql (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,80 @@ +-- CVS ID: $Id$ + +INSERT INTO lams_learning_activity +( +activity_ui_id +, description +, title +, help_text +, xcoord +, ycoord +, parent_activity_id +, parent_ui_id +, learning_activity_type_id +, grouping_support_type_id +, apply_grouping_flag +, grouping_id +, grouping_ui_id +, order_id +, define_later_flag +, learning_design_id +, learning_library_id +, create_date_time +, run_offline_flag +, max_number_of_options +, min_number_of_options +, options_instructions +, tool_id +, tool_content_id +, activity_category_id +, gate_activity_level_id +, gate_open_flag +, gate_start_time_offset +, gate_end_time_offset +, gate_start_date_time +, gate_end_date_time +, library_activity_ui_image +, create_grouping_id +, create_grouping_ui_id +, library_activity_id +, language_file +) +VALUES +( +NULL +, 'Notebook Tool' +, 'Notebook Tool' +, 'Put some help text here.' +, NULL +, NULL +, NULL +, NULL +, 1 +, 2 +, 0 +, NULL +, NULL +, NULL +, 0 +, NULL +, ${learning_library_id} +, NOW() +, 0 +, NULL +, NULL +, NULL +, ${tool_id} +, NULL +, 4 +, NULL +, NULL +, NULL +, NULL +, NULL +, NULL +, 'tool/lantbk11/images/icon_notebook.swf' +, NULL +, NULL +, NULL +, 'org.lamsfoundation.lams.tool.notebook.ApplicationResources' +) Index: lams_tool_notebook/db/sql/create_lams_tool_notebook.sql =================================================================== diff -u --- lams_tool_notebook/db/sql/create_lams_tool_notebook.sql (revision 0) +++ lams_tool_notebook/db/sql/create_lams_tool_notebook.sql (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,19 @@ +-- CVS ID: $Id$ + +SET FOREIGN_KEY_CHECKS=0; +drop table if exists tl_lantbk11_attachment; +drop table if exists tl_lantbk11_notebook; +drop table if exists tl_lantbk11_session; +drop table if exists tl_lantbk11_user; +create table tl_lantbk11_attachment (uid bigint not null auto_increment, file_version_id bigint, file_type varchar(255), file_name varchar(255), file_uuid bigint, create_date datetime, notebook_uid bigint, primary key (uid)); +create table tl_lantbk11_notebook (uid bigint not null auto_increment, create_date datetime, update_date datetime, create_by bigint, title varchar(255), instructions text, run_offline bit, lock_on_finished bit, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, tool_content_id bigint, primary key (uid)); +create table tl_lantbk11_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), notebook_uid bigint, primary key (uid)); +create table tl_lantbk11_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, notebook_session_uid bigint, primary key (uid)); +alter table tl_lantbk11_attachment add index FK2464A040C50BB56A (notebook_uid), add constraint FK2464A040C50BB56A foreign key (notebook_uid) references tl_lantbk11_notebook (uid); +alter table tl_lantbk11_session add index FK447CD899C50BB56A (notebook_uid), add constraint FK447CD899C50BB56A foreign key (notebook_uid) references tl_lantbk11_notebook (uid); +alter table tl_lantbk11_user add index FKEA7B0CA888E2F833 (notebook_session_uid), add constraint FKEA7B0CA888E2F833 foreign key (notebook_session_uid) references tl_lantbk11_session (uid); + +INSERT INTO tl_lantbk11_notebook (title,instructions,online_instructions,offline_instructions,tool_content_id,run_offline,lock_on_finished,filtering_enabled, content_in_use,define_later) +VALUES("LAMS Notebook","Notebook Instruction","Online instructions","Offline instructions",${default_content_id},0,0,0,0,0); + +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_tool_notebook/db/sql/drop_lams_tool_notebook.sql =================================================================== diff -u --- lams_tool_notebook/db/sql/drop_lams_tool_notebook.sql (revision 0) +++ lams_tool_notebook/db/sql/drop_lams_tool_notebook.sql (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,13 @@ +-- CVS ID: $Id$ + +SET FOREIGN_KEY_CHECKS=0; +DROP TABLE IF EXISTS tl_lantbk11_user; +DROP TABLE IF EXISTS tl_lantbk11_attachment; +DROP TABLE IF EXISTS tl_lantbk11_session; +DROP TABLE IF EXISTS tl_lantbk11_notebook; +SET FOREIGN_KEY_CHECKS=1; + + + + + Index: lams_tool_notebook/db/sql/library_insert.sql =================================================================== diff -u --- lams_tool_notebook/db/sql/library_insert.sql (revision 0) +++ lams_tool_notebook/db/sql/library_insert.sql (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,16 @@ +-- CVS ID: $Id$ + +INSERT INTO lams_learning_library +( +description, +title, +valid_flag, +create_date_time +) +VALUES +( +'Notebook Tool', +'Notebook', +0, +NOW() +) Index: lams_tool_notebook/db/sql/table-schema.sql =================================================================== diff -u --- lams_tool_notebook/db/sql/table-schema.sql (revision 0) +++ lams_tool_notebook/db/sql/table-schema.sql (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,14 @@ +alter table tl_lantbk11_attachment drop foreign key FK2464A040C50BB56A; +alter table tl_lantbk11_session drop foreign key FK447CD899C50BB56A; +alter table tl_lantbk11_user drop foreign key FKEA7B0CA888E2F833; +drop table if exists tl_lantbk11_attachment; +drop table if exists tl_lantbk11_notebook; +drop table if exists tl_lantbk11_session; +drop table if exists tl_lantbk11_user; +create table tl_lantbk11_attachment (uid bigint not null auto_increment, file_version_id bigint, file_type varchar(255), file_name varchar(255), file_uuid bigint, create_date datetime, notebook_uid bigint, primary key (uid)); +create table tl_lantbk11_notebook (uid bigint not null auto_increment, create_date datetime, update_date datetime, create_by bigint, title varchar(255), instructions text, run_offline bit, lock_on_finished bit, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, tool_content_id bigint, primary key (uid)); +create table tl_lantbk11_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), notebook_uid bigint, primary key (uid)); +create table tl_lantbk11_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, notebook_session_uid bigint, primary key (uid)); +alter table tl_lantbk11_attachment add index FK2464A040C50BB56A (notebook_uid), add constraint FK2464A040C50BB56A foreign key (notebook_uid) references tl_lantbk11_notebook (uid); +alter table tl_lantbk11_session add index FK447CD899C50BB56A (notebook_uid), add constraint FK447CD899C50BB56A foreign key (notebook_uid) references tl_lantbk11_notebook (uid); +alter table tl_lantbk11_user add index FKEA7B0CA888E2F833 (notebook_session_uid), add constraint FKEA7B0CA888E2F833 foreign key (notebook_session_uid) references tl_lantbk11_session (uid); Index: lams_tool_notebook/db/sql/tool_insert.sql =================================================================== diff -u --- lams_tool_notebook/db/sql/tool_insert.sql (revision 0) +++ lams_tool_notebook/db/sql/tool_insert.sql (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,54 @@ +-- CVS ID: $Id$ + +INSERT INTO lams_tool +( +tool_signature, +service_name, +tool_display_name, +description, +tool_identifier, +tool_version, +learning_library_id, +default_tool_content_id, +valid_flag, +grouping_support_type_id, +supports_run_offline_flag, +learner_url, +learner_preview_url, +learner_progress_url, +author_url, +monitor_url, +define_later_url, +export_pfolio_learner_url, +export_pfolio_class_url, +contribute_url, +moderation_url, +language_file, +create_date_time +) +VALUES +( +'lantbk11', +'notebookToolService', +'Notebook', +'Notebook', +'notebook', +'1.1', +NULL, +NULL, +0, +2, +1, +'tool/lantbk11/learning.do?mode=learner', +'tool/lantbk11/learning.do?mode=author', +'tool/lantbk11/learning.do?mode=teacher', +'tool/lantbk11/authoring.do', +'tool/lantbk11/monitoring.do', +'tool/lantbk11/authoring.do?mode=teacher', +'tool/lantbk11/exportPortfolio?mode=learner', +'tool/lantbk11/exportPortfolio?mode=teacher', +'tool/lantbk11/contribute.do', +'tool/lantbk11/moderate.do', +'org.lamsfoundation.lams.tool.notebook.ApplicationResources', +NOW() +) Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookAttachmentDAO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookAttachmentDAO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookAttachmentDAO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,35 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; + +/** + * DAO for accessing the NotebookAttachment objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface INotebookAttachmentDAO extends IBaseDAO { + +} \ No newline at end of file Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookDAO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookDAO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookDAO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,42 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.notebook.model.Notebook; + +/** + * DAO for accessing the Notebook objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface INotebookDAO extends IBaseDAO{ + + Notebook getByContentId(Long toolContentId); + + void saveOrUpdate(Notebook toContent); + + void deleteInstructionFile(Long toolContentId, Long uuid, Long versionId, String type); + +} \ No newline at end of file Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookSessionDAO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookSessionDAO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookSessionDAO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,41 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; + +/** + * DAO for accessing the NotebookSession objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface INotebookSessionDAO extends IBaseDAO{ + + void saveOrUpdate(NotebookSession session); + + NotebookSession getBySessionId(Long toolSessionId); + + void deleteBySessionID(Long toolSessionID); +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookUserDAO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookUserDAO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/INotebookUserDAO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,63 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.dao; + +import java.util.List; + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; +import org.lamsfoundation.lams.tool.notebook.model.NotebookUser; + +/** + * DAO for accessing the NotebookUser objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface INotebookUserDAO extends IBaseDAO{ + /** + * + * @param userId + * @param toolSessionId + * @return + */ + NotebookUser getByUserIdAndSessionId(Long userId, Long toolSessionId); + + void saveOrUpdate(NotebookUser notebookUser); + + /** + * + * @param loginName + * @param sessionID + * @return + */ + NotebookUser getByLoginNameAndSessionId(String loginName, Long toolSessionId); + + + /** + * + * @param uid + * @return + */ + NotebookUser getByUID(Long uid); +} \ No newline at end of file Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookAttachmentDAO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookAttachmentDAO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookAttachmentDAO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,35 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.dao.hibernate; + +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.notebook.dao.INotebookAttachmentDAO; + +/** + * DAO for accessing the NotebookAttachment objects - Hibernate specific code. + */ +public class NotebookAttachmentDAO extends BaseDAO implements INotebookAttachmentDAO { + +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookDAO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookDAO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookDAO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,78 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.dao.hibernate; + +import java.util.List; + +import org.hibernate.FlushMode; +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.notebook.dao.INotebookDAO; +import org.lamsfoundation.lams.tool.notebook.model.Notebook; +import org.lamsfoundation.lams.tool.notebook.model.NotebookAttachment; +import org.springframework.orm.hibernate3.HibernateTemplate; + +/** + * DAO for accessing the Notebook objects - Hibernate specific code. + */ +public class NotebookDAO extends BaseDAO implements INotebookDAO { + + private static final String FIND_FORUM_BY_CONTENTID = "from Notebook notebook where notebook.toolContentId=?"; + + private static final String FIND_INSTRUCTION_FILE = "from " + + NotebookAttachment.class.getName() + + " as i where tool_content_id=? and i.file_uuid=? and i.file_version_id=? and i.file_type=?"; + + public Notebook getByContentId(Long toolContentId) { + List list = getHibernateTemplate().find(FIND_FORUM_BY_CONTENTID, + toolContentId); + if (list != null && list.size() > 0) + return (Notebook) list.get(0); + else + return null; + } + + public void saveOrUpdate(Notebook notebook) { + this.getHibernateTemplate().saveOrUpdate(notebook); + this.getHibernateTemplate().flush(); + } + + public void deleteInstructionFile(Long toolContentId, Long uuid, + Long versionId, String type) { + HibernateTemplate templ = this.getHibernateTemplate(); + if (toolContentId != null && uuid != null && versionId != null) { + List list = getSession().createQuery(FIND_INSTRUCTION_FILE) + .setLong(0, toolContentId.longValue()).setLong(1, + uuid.longValue()).setLong(2, versionId.longValue()) + .setString(3, type).list(); + if (list != null && list.size() > 0) { + NotebookAttachment file = (NotebookAttachment) list.get(0); + this.getSession().setFlushMode(FlushMode.AUTO); + templ.delete(file); + templ.flush(); + } + } + + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookSessionDAO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookSessionDAO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookSessionDAO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,61 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.dao.hibernate; + +import java.util.List; + +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.notebook.dao.INotebookSessionDAO; +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; + +/** + * DAO for accessing the NotebookSession objects - Hibernate specific code. + */ +public class NotebookSessionDAO extends BaseDAO implements INotebookSessionDAO { + + public static final String SQL_QUERY_FIND_BY_SESSION_ID = "from " + + NotebookSession.class.getName() + " where session_id=?"; + + public void saveOrUpdate(NotebookSession session) { + this.getHibernateTemplate().saveOrUpdate(session); + this.getHibernateTemplate().flush(); + } + + public NotebookSession getBySessionId(Long toolSessionId) { + List list = this.getHibernateTemplate().find( + SQL_QUERY_FIND_BY_SESSION_ID, toolSessionId); + if (list == null || list.isEmpty()) + return null; + return (NotebookSession) list.get(0); + } + + public void deleteBySessionID(Long toolSessionID) { + NotebookSession session = getBySessionId(toolSessionID); + if(session != null){ + this.getHibernateTemplate().delete(session); + this.getHibernateTemplate().flush(); + } + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookUserDAO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookUserDAO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dao/hibernate/NotebookUserDAO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,89 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.dao.hibernate; + +import java.util.List; + +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.notebook.dao.INotebookUserDAO; +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; +import org.lamsfoundation.lams.tool.notebook.model.NotebookUser; + +/** + * DAO for accessing the NotebookUser objects - Hibernate specific code. + */ +public class NotebookUserDAO extends BaseDAO implements INotebookUserDAO { + + public static final String SQL_QUERY_FIND_BY_USER_ID_SESSION_ID = "from " + + NotebookUser.class.getName() + " as f" + + " where user_id=? and f.notebookSession.sessionId=?"; + + public static final String SQL_QUERY_FIND_BY_LOGIN_NAME_SESSION_ID = "from " + + NotebookUser.class.getName() + + " as f where login_name=? and f.notebookSession.sessionId=?"; + + private static final String SQL_QUERY_FIND_BY_UID = "from " + + NotebookUser.class.getName() + " where uid=?"; + + public NotebookUser getByUserIdAndSessionId(Long userId, Long toolSessionId) { + List list = this.getHibernateTemplate().find( + SQL_QUERY_FIND_BY_USER_ID_SESSION_ID, + new Object[] { userId, toolSessionId }); + + if (list == null || list.isEmpty()) + return null; + + return (NotebookUser) list.get(0); + } + + public NotebookUser getByLoginNameAndSessionId(String loginName, + Long toolSessionId) { + + List list = this.getHibernateTemplate().find( + SQL_QUERY_FIND_BY_LOGIN_NAME_SESSION_ID, + new Object[] { loginName, toolSessionId }); + + if (list == null || list.isEmpty()) + return null; + + return (NotebookUser) list.get(0); + + } + + public void saveOrUpdate(NotebookUser notebookUser) { + this.getHibernateTemplate().saveOrUpdate(notebookUser); + this.getHibernateTemplate().flush(); + } + + public NotebookUser getByUID(Long uid) { + List list = this.getHibernateTemplate().find(SQL_QUERY_FIND_BY_UID, + new Object[] { uid }); + + if (list == null || list.isEmpty()) + return null; + + return (NotebookUser) list.get(0); + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookAttachmentDTO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookAttachmentDTO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookAttachmentDTO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,102 @@ +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.notebook.dto; + +import java.util.Date; + +import org.lamsfoundation.lams.tool.notebook.model.NotebookAttachment; + +public class NotebookAttachmentDTO implements Comparable { + + public NotebookAttachmentDTO(NotebookAttachment att) { + this.fileUuid = att.getFileUuid(); + this.fileName = att.getFileName(); + this.fileVersionId = att.getFileVersionId(); + this.createDate = att.getCreateDate(); + this.uid = att.getUid(); + } + + Long uid; + + Long fileUuid; + + Long fileVersionId; + + String fileName; + + Date createDate; + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public Long getFileUuid() { + return fileUuid; + } + + public void setFileUuid(Long fileUuid) { + this.fileUuid = fileUuid; + } + + public Long getFileVersionId() { + return fileVersionId; + } + + public void setFileVersionId(Long fileVersionId) { + this.fileVersionId = fileVersionId; + } + + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public int compareTo(Object o) { + NotebookAttachmentDTO toAttachment = (NotebookAttachmentDTO) o; + int returnValue = this.createDate.compareTo(((NotebookAttachmentDTO) o) + .getCreateDate()); + + if (returnValue == 0) { + returnValue = this.uid.compareTo(toAttachment.getUid()); + } + return returnValue; + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookDTO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookDTO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookDTO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,169 @@ +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.notebook.dto; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.TreeSet; + +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; +import org.lamsfoundation.lams.tool.notebook.model.Notebook; +import org.lamsfoundation.lams.tool.notebook.model.NotebookAttachment; + +public class NotebookDTO { + + private static Logger logger = Logger.getLogger(NotebookDTO.class); + + public NotebookDTO(){ + + } + + public NotebookDTO(Notebook notebook) { + toolContentId = notebook.getToolContentId(); + title = notebook.getTitle(); + instructions = notebook.getInstructions(); + onlineInstructions = notebook.getOnlineInstructions(); + offlineInstructions = notebook.getOfflineInstructions(); + contentInUse = notebook.getContentInUse(); + + onlineInstructionsFiles = new TreeSet(); + offlineInstructionsFiles = new TreeSet(); + + for (Iterator i = notebook.getNotebookAttachments().iterator(); i.hasNext();) { + NotebookAttachment att = (NotebookAttachment) i.next(); + if (att.getFileType().equals(IToolContentHandler.TYPE_OFFLINE)) { + NotebookAttachmentDTO attDTO = new NotebookAttachmentDTO(att); + offlineInstructionsFiles.add(attDTO); + } else if (att.getFileType() + .equals(IToolContentHandler.TYPE_ONLINE)) { + NotebookAttachmentDTO attDTO = new NotebookAttachmentDTO(att); + onlineInstructionsFiles.add(attDTO); + } else { + // something is wrong. Ignore file, log error + logger.error("File with uid " + att.getFileUuid() + + " contains invalid fileType: " + att.getFileType()); + } + } + + sessionDTOs = new HashSet(); + } + + public Long toolContentId; + + public String title; + + public String instructions; + + public String onlineInstructions; + + public String offlineInstructions; + + public boolean defineLater; + + public boolean contentInUse; + + public Set onlineInstructionsFiles; + + public Set offlineInstructionsFiles; + + public Set sessionDTOs; + + public Set getSessionDTOs() { + return sessionDTOs; + } + + public void setSessionDTOs(Set sessionDTOs) { + this.sessionDTOs = sessionDTOs; + } + + public String getInstructions() { + return instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + public String getOfflineInstructions() { + return offlineInstructions; + } + + public void setOfflineInstructions(String offlineInstructions) { + this.offlineInstructions = offlineInstructions; + } + + public Set getOfflineInstructionsFiles() { + return offlineInstructionsFiles; + } + + public void setOfflineInstructionsFiles( + Set offlineInstructionsFiles) { + this.offlineInstructionsFiles = offlineInstructionsFiles; + } + + public String getOnlineInstructions() { + return onlineInstructions; + } + + public void setOnlineInstructions(String onlineInstructions) { + this.onlineInstructions = onlineInstructions; + } + + public Set getOnlineInstructionsFiles() { + return onlineInstructionsFiles; + } + + public void setOnlineInstructionsFiles( + Set onlineInstructionsFiles) { + this.onlineInstructionsFiles = onlineInstructionsFiles; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Long getToolContentId() { + return toolContentId; + } + + public void setToolContentId(Long toolContentID) { + this.toolContentId = toolContentID; + } + + public Boolean getContentInUse() { + return contentInUse; + } + + public void setContentInUse(Boolean contentInUse) { + this.contentInUse = contentInUse; + } +} \ No newline at end of file Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookSessionDTO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookSessionDTO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookSessionDTO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,103 @@ +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.notebook.dto; + +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; + +public class NotebookSessionDTO implements Comparable { + + Long sessionID; + + String sessionName; + + Set userDTOs; + + int numberOfLearners; + + public NotebookSessionDTO(NotebookSession session) { + this.sessionID = session.getSessionId(); + this.sessionName = session.getSessionName(); + + userDTOs = new TreeSet(); + } + + public NotebookSessionDTO (NotebookSession session, List messages) { + this.sessionID = session.getSessionId(); + this.sessionName = session.getSessionName(); + + userDTOs = new TreeSet(); + } + + public NotebookSessionDTO() { + userDTOs = new TreeSet(); + } + + public Long getSessionID() { + return sessionID; + } + + public void setSessionID(Long sessionID) { + this.sessionID = sessionID; + } + + public String getSessionName() { + return sessionName; + } + + public void setSessionName(String sessionName) { + this.sessionName = sessionName; + } + + public int compareTo(Object o) { + int returnValue; + NotebookSessionDTO toSession = (NotebookSessionDTO)o; + returnValue = this.sessionName.compareTo(toSession.sessionName); + if (returnValue == 0) { + returnValue = this.sessionID.compareTo(toSession.sessionID); + } + return returnValue; + } + + public Set getUserDTOs() { + return userDTOs; + } + + public void setUserDTOs(Set notebookUsers) { + this.userDTOs = notebookUsers; + } + + public int getNumberOfLearners() { + return numberOfLearners; + } + + public void setNumberOfLearners(int numberOfLearners) { + this.numberOfLearners = numberOfLearners; + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookUserDTO.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookUserDTO.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/dto/NotebookUserDTO.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,89 @@ +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.notebook.dto; + +import org.lamsfoundation.lams.tool.notebook.model.NotebookUser; + +public class NotebookUserDTO implements Comparable{ + + public Long uid; + + public String loginName; + + public String firstName; + + public String lastName; + + public NotebookUserDTO(NotebookUser user) { + this.uid = user.getUid(); + this.loginName = user.getLoginName(); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + } + + public int compareTo(Object o) { + int returnValue; + NotebookUserDTO toUser = (NotebookUserDTO)o; + returnValue = this.lastName.compareTo(toUser.lastName); + if (returnValue == 0) { + returnValue = this.uid.compareTo(toUser.uid); + } + return returnValue; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/Notebook.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/Notebook.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/Notebook.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,415 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.model; + +import java.util.Date; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; +import org.lamsfoundation.lams.contentrepository.NodeKey; +import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; +import org.lamsfoundation.lams.tool.notebook.service.NotebookToolService; + +/** + * @hibernate.class table="tl_lantbk11_notebook" + */ + +public class Notebook implements java.io.Serializable, Cloneable { + + /** + * + */ + private static final long serialVersionUID = 579733009969321015L; + + static Logger log = Logger.getLogger(NotebookToolService.class.getName()); + + // Fields + /** + * + */ + private Long uid; + + private Date createDate; + + private Date updateDate; + + private Long createBy; + + private String title; + + private String instructions; + + private Boolean runOffline; + + private Boolean lockOnFinished; + + private String onlineInstructions; + + private String offlineInstructions; + + private Boolean contentInUse; + + private Boolean defineLater; + + private Long toolContentId; + + private Set notebookAttachments; + + private Set notebookSessions; + + //*********** NON Persisit fields + private IToolContentHandler toolContentHandler; + + // Constructors + + /** default constructor */ + public Notebook() { + } + + /** full constructor */ + public Notebook(Date createDate, Date updateDate, Long createBy, String title, + String instructions, Boolean runOffline, Boolean lockOnFinished, + Boolean filteringEnabled, String filterKeywords, + String onlineInstructions, String offlineInstructions, + Boolean contentInUse, Boolean defineLater, Long toolContentId, + Set notebookAttachments, Set notebookSessions) { + this.createDate = createDate; + this.updateDate = updateDate; + this.createBy = createBy; + this.title = title; + this.instructions = instructions; + this.runOffline = runOffline; + this.lockOnFinished = lockOnFinished; + this.onlineInstructions = onlineInstructions; + this.offlineInstructions = offlineInstructions; + this.contentInUse = contentInUse; + this.defineLater = defineLater; + this.toolContentId = toolContentId; + this.notebookAttachments = notebookAttachments; + this.notebookSessions = notebookSessions; + } + + // Property accessors + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + * + */ + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * @hibernate.property column="create_date" + * + */ + + public Date getCreateDate() { + return this.createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + /** + * @hibernate.property column="update_date" + * + */ + + public Date getUpdateDate() { + return this.updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + /** + * @hibernate.property column="create_by" length="20" + * + */ + + public Long getCreateBy() { + return this.createBy; + } + + public void setCreateBy(Long createBy) { + this.createBy = createBy; + } + + /** + * @hibernate.property column="title" length="255" + * + */ + + public String getTitle() { + return this.title; + } + + public void setTitle(String title) { + this.title = title; + } + + /** + * @hibernate.property column="instructions" length="65535" + * + */ + + public String getInstructions() { + return this.instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + /** + * @hibernate.property column="run_offline" length="1" + * + */ + + public Boolean getRunOffline() { + return this.runOffline; + } + + public void setRunOffline(Boolean runOffline) { + this.runOffline = runOffline; + } + + /** + * @hibernate.property column="lock_on_finished" length="1" + * + */ + + public Boolean getLockOnFinished() { + return this.lockOnFinished; + } + + public void setLockOnFinished(Boolean lockOnFinished) { + this.lockOnFinished = lockOnFinished; + } + + /** + * @hibernate.property column="online_instructions" length="65535" + * + */ + + public String getOnlineInstructions() { + return this.onlineInstructions; + } + + public void setOnlineInstructions(String onlineInstructions) { + this.onlineInstructions = onlineInstructions; + } + + /** + * @hibernate.property column="offline_instructions" length="65535" + * + */ + + public String getOfflineInstructions() { + return this.offlineInstructions; + } + + public void setOfflineInstructions(String offlineInstructions) { + this.offlineInstructions = offlineInstructions; + } + + /** + * @hibernate.property column="content_in_use" length="1" + * + */ + + public Boolean getContentInUse() { + return this.contentInUse; + } + + public void setContentInUse(Boolean contentInUse) { + this.contentInUse = contentInUse; + } + + /** + * @hibernate.property column="define_later" length="1" + * + */ + + public Boolean getDefineLater() { + return this.defineLater; + } + + public void setDefineLater(Boolean defineLater) { + this.defineLater = defineLater; + } + + /** + * @hibernate.property column="tool_content_id" length="20" + * + */ + + public Long getToolContentId() { + return this.toolContentId; + } + + public void setToolContentId(Long toolContentId) { + this.toolContentId = toolContentId; + } + + /** + * @hibernate.set lazy="false" inverse="false" cascade="all-delete-orphan" + * @hibernate.collection-key column="notebook_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.notebook.model.NotebookAttachment" + * + */ + + public Set getNotebookAttachments() { + return this.notebookAttachments; + } + + public void setNotebookAttachments(Set notebookAttachments) { + this.notebookAttachments = notebookAttachments; + } + + /** + * @hibernate.set lazy="true" inverse="true" cascade="none" + * @hibernate.collection-key column="notebook_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.notebook.model.NotebookSession" + * + */ + + public Set getNotebookSessions() { + return this.notebookSessions; + } + + public void setNotebookSessions(Set notebookSessions) { + this.notebookSessions = notebookSessions; + } + + /** + * toString + * + * @return String + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); + + buffer.append(getClass().getName()).append("@").append( + Integer.toHexString(hashCode())).append(" ["); + buffer.append("title").append("='").append(getTitle()).append("' "); + buffer.append("instructions").append("='").append(getInstructions()) + .append("' "); + buffer.append("toolContentId").append("='").append(getToolContentId()) + .append("' "); + buffer.append("]"); + + return buffer.toString(); + } + + public boolean equals(Object other) { + if ((this == other)) + return true; + if ((other == null)) + return false; + if (!(other instanceof Notebook)) + return false; + Notebook castOther = (Notebook) other; + + return ((this.getUid() == castOther.getUid()) || (this.getUid() != null + && castOther.getUid() != null && this.getUid().equals( + castOther.getUid()))); + } + + public int hashCode() { + int result = 17; + result = 37 * result + + (getUid() == null ? 0 : this.getUid().hashCode()); + return result; + } + + public static Notebook newInstance(Notebook fromContent, Long toContentId, + IToolContentHandler notebookToolContentHandler) { + Notebook toContent = new Notebook(); + fromContent.toolContentHandler = notebookToolContentHandler; + toContent = (Notebook) fromContent.clone(); + toContent.setToolContentId(toContentId); + toContent.setCreateDate(new Date()); + return toContent; + } + + protected Object clone() { + + Notebook notebook = null; + try { + notebook = (Notebook) super.clone(); + notebook.setUid(null); + + if (notebookAttachments != null) { + // create a copy of the attachments + Iterator iter = notebookAttachments.iterator(); + Set set = new HashSet(); + while (iter.hasNext()) { + NotebookAttachment originalFile = (NotebookAttachment) iter.next(); + NotebookAttachment newFile = (NotebookAttachment) originalFile + .clone(); + if (toolContentHandler != null) { + // duplicate file node in repository + NodeKey keys = toolContentHandler.copyFile(originalFile + .getFileUuid()); + newFile.setFileUuid(keys.getUuid()); + newFile.setFileVersionId(keys.getVersion()); + } + set.add(newFile); + } + notebook.notebookAttachments = set; + } + // create an empty set for the notebookSession + notebook.notebookSessions = new HashSet(); + + } catch (CloneNotSupportedException cnse) { + log.error("Error cloning " + Notebook.class); + } catch (ItemNotFoundException infe) { + log.error("Item Not found " + Notebook.class); + } catch (RepositoryCheckedException rce) { + log.error("Repository checked exception " + Notebook.class); + } + return notebook; + } + + public IToolContentHandler getToolContentHandler() { + return toolContentHandler; + } + + public void setToolContentHandler(IToolContentHandler toolContentHandler) { + this.toolContentHandler = toolContentHandler; + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/NotebookAttachment.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/NotebookAttachment.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/NotebookAttachment.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,235 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.model; + +import java.util.Date; + +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.log4j.Logger; + +/** + * + * The details of files attached to the tool. In most cases this will be the + * online/offline instruction files. + * + * @hibernate.class table="tl_lantbk11_attachment" + * + */ + +public class NotebookAttachment implements java.io.Serializable, Cloneable { + + + + /** + * + */ + private static final long serialVersionUID = 47452859888067500L; + + private static final Logger log = Logger.getLogger(NotebookAttachment.class); + + /** + * + */ + private Long uid; + + private Long fileVersionId; + + private String fileType; + + private String fileName; + + private Long fileUuid; + + private Date createDate; + + private Notebook notebook; + + // Constructors + + /** default constructor */ + public NotebookAttachment() { + } + + /** full constructor */ + public NotebookAttachment(Long fileVersionId, String fileType, String fileName, + Long fileUuid, Date createDate, Notebook notebook) { + this.fileVersionId = fileVersionId; + this.fileType = fileType; + this.fileName = fileName; + this.fileUuid = fileUuid; + this.createDate = createDate; + this.notebook = notebook; + } + + // Property accessors + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + * + */ + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * @hibernate.property column="file_version_id" length="20" + * + */ + + public Long getFileVersionId() { + return this.fileVersionId; + } + + public void setFileVersionId(Long fileVersionId) { + this.fileVersionId = fileVersionId; + } + + /** + * @hibernate.property column="file_type" length="255" + * + */ + + public String getFileType() { + return this.fileType; + } + + public void setFileType(String fileType) { + this.fileType = fileType; + } + + /** + * @hibernate.property column="file_name" length="255" + * + */ + + public String getFileName() { + return this.fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + /** + * @hibernate.property column="file_uuid" length="20" + * + */ + + public Long getFileUuid() { + return this.fileUuid; + } + + public void setFileUuid(Long fileUuid) { + this.fileUuid = fileUuid; + } + + /** + * @hibernate.property column="create_date" + * + */ + + public Date getCreateDate() { + return this.createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="notebook_uid" + * + */ + + public Notebook getNotebook() { + return this.notebook; + } + + public void setNotebook(Notebook notebook) { + this.notebook = notebook; + } + + /** + * toString + * + * @return String + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); + + buffer.append(getClass().getName()).append("@").append( + Integer.toHexString(hashCode())).append(" ["); + buffer.append("fileVersionId").append("='").append(getFileVersionId()) + .append("' "); + buffer.append("fileName").append("='").append(getFileName()).append( + "' "); + buffer.append("fileUuid").append("='").append(getFileUuid()).append( + "' "); + buffer.append("]"); + + return buffer.toString(); + } + + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof NotebookAttachment)) + return false; + + final NotebookAttachment genericEntity = (NotebookAttachment) o; + + return new EqualsBuilder() + .append(this.uid,genericEntity.uid) + .append(this.fileVersionId,genericEntity.fileVersionId) + .append(this.fileName,genericEntity.fileName) + .append(this.fileType,genericEntity.fileType) + .append(this.createDate,genericEntity.createDate) + .isEquals(); + } + + public int hashCode() { + int result = 17; + result = 37 * result + + (getUid() == null ? 0 : this.getUid().hashCode()); + return result; + } + + public Object clone() { + Object obj = null; + try { + obj = super.clone(); + ((NotebookAttachment) obj).setUid(null); + } catch (CloneNotSupportedException e) { + log.error("Failed to clone " + NotebookAttachment.class); + } + + return obj; + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/NotebookSession.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/NotebookSession.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/NotebookSession.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,249 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.model; + +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +import org.apache.log4j.Logger; + +/** + * + * Represents the tool session. + * + * @hibernate.class table="tl_lantbk11_session" + */ + +public class NotebookSession implements java.io.Serializable { + + private static Logger log = Logger.getLogger(NotebookSession.class); + /** + * + */ + private static final long serialVersionUID = 4407078136514639026L; + + // Fields + private Long uid; + + private Date sessionEndDate; + + private Date sessionStartDate; + + private Integer status; + + private Long sessionId; + + private String sessionName; + + private Notebook notebook; + + private Set notebookUsers = new HashSet(0); + + // Constructors + + /** default constructor */ + public NotebookSession() { + } + + /** full constructor */ + public NotebookSession(Date sessionEndDate, Date sessionStartDate, + Integer status, Long sessionId, String sessionName, Notebook notebook, + Set notebookUsers) { + this.sessionEndDate = sessionEndDate; + this.sessionStartDate = sessionStartDate; + this.status = status; + this.sessionId = sessionId; + this.sessionName = sessionName; + this.notebook = notebook; + this.notebookUsers = notebookUsers; + } + + // Property accessors + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + * + */ + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * @hibernate.property column="session_end_date" + * + */ + + public Date getSessionEndDate() { + return this.sessionEndDate; + } + + public void setSessionEndDate(Date sessionEndDate) { + this.sessionEndDate = sessionEndDate; + } + + /** + * @hibernate.property column="session_start_date" + * + */ + + public Date getSessionStartDate() { + return this.sessionStartDate; + } + + public void setSessionStartDate(Date sessionStartDate) { + this.sessionStartDate = sessionStartDate; + } + + /** + * @hibernate.property column="status" length="11" + * + */ + + public Integer getStatus() { + return this.status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + /** + * @hibernate.property column="session_id" length="20" + * + */ + + public Long getSessionId() { + return this.sessionId; + } + + public void setSessionId(Long sessionId) { + this.sessionId = sessionId; + } + + /** + * @hibernate.property column="session_name" length="250" + * + */ + + public String getSessionName() { + return this.sessionName; + } + + public void setSessionName(String sessionName) { + this.sessionName = sessionName; + } + + /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="notebook_uid" + * + */ + + public Notebook getNotebook() { + return this.notebook; + } + + public void setNotebook(Notebook notebook) { + this.notebook = notebook; + } + + /** + * @hibernate.set lazy="true" inverse="true" cascade="none" + * @hibernate.collection-key column="notebook_session_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.notebook.model.NotebookUser" + * + */ + + public Set getNotebookUsers() { + return this.notebookUsers; + } + + public void setNotebookUsers(Set notebookUsers) { + this.notebookUsers = notebookUsers; + } + + /** + * toString + * + * @return String + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); + + buffer.append(getClass().getName()).append("@").append( + Integer.toHexString(hashCode())).append(" ["); + buffer.append("sessionEndDate").append("='") + .append(getSessionEndDate()).append("' "); + buffer.append("sessionStartDate").append("='").append( + getSessionStartDate()).append("' "); + buffer.append("status").append("='").append(getStatus()).append("' "); + buffer.append("sessionID").append("='").append(getSessionId()).append( + "' "); + buffer.append("sessionName").append("='").append(getSessionName()) + .append("' "); + buffer.append("]"); + + return buffer.toString(); + } + + public boolean equals(Object other) { + if ((this == other)) + return true; + if ((other == null)) + return false; + if (!(other instanceof NotebookSession)) + return false; + NotebookSession castOther = (NotebookSession) other; + + return ((this.getUid() == castOther.getUid()) || (this.getUid() != null + && castOther.getUid() != null && this.getUid().equals( + castOther.getUid()))); + } + + public int hashCode() { + int result = 17; + result = 37 * result + + (getUid() == null ? 0 : this.getUid().hashCode()); + return result; + } + + public Object clone(){ + + NotebookSession session = null; + try{ + session = (NotebookSession) super.clone(); + session.notebookUsers = new HashSet(); + } catch (CloneNotSupportedException e) { + log.error("When clone " + NotebookSession.class + " failed"); + } + return session; + } + +} \ No newline at end of file Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/NotebookUser.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/NotebookUser.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/model/NotebookUser.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,203 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.model; + +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; + +/** + * + * Caches the user details. This allows the tool to be more efficient at + * displaying user names but means that when people's names change, they won't + * change in the "old" tool data. + * + * @hibernate.class table="tl_lantbk11_user" + */ + +public class NotebookUser implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3701664859818409197L; + + // Fields + private Long uid; + + private Long userId; + + private String lastName; + + private String firstName; + + private String loginName; + + private NotebookSession notebookSession; + + private Boolean finishedActivity; + + // Constructors + + /** default constructor */ + public NotebookUser() { + } + + public NotebookUser(UserDTO user, NotebookSession notebookSession) { + this.userId = new Long(user.getUserID().intValue()); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + this.loginName = user.getLogin(); + this.notebookSession = notebookSession; + this.finishedActivity = false; + } + + /** full constructor */ + public NotebookUser(Long userId, String lastName, String firstName, + NotebookSession notebookSession) { + this.userId = userId; + this.lastName = lastName; + this.firstName = firstName; + this.notebookSession = notebookSession; + } + + // Property accessors + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + */ + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * @hibernate.property column="user_id" length="20" + * + */ + public Long getUserId() { + return this.userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + /** + * @hibernate.property column="last_name" length="255" + * + */ + public String getLastName() { + return this.lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + /** + * @hibernate.property column="login_name" length="255" + * + */ + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + /** + * @hibernate.property column="first_name" length="255" + * + */ + public String getFirstName() { + return this.firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + /** + * @hibernate.property column="finishedActivity" + */ + public Boolean getFinishedActivity() { + return finishedActivity; + } + + public void setFinishedActivity(Boolean finishedActivity) { + this.finishedActivity = finishedActivity; + } + + /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="notebook_session_uid" + * + */ + public NotebookSession getNotebookSession() { + return this.notebookSession; + } + + public void setNotebookSession(NotebookSession notebookSession) { + this.notebookSession = notebookSession; + } + + /** + * toString + * + * @return String + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); + + buffer.append(getClass().getName()).append("@").append( + Integer.toHexString(hashCode())).append(" ["); + buffer.append("userId").append("='").append(getUserId()).append("' "); + buffer.append("]"); + + return buffer.toString(); + } + + public boolean equals(Object other) { + if ((this == other)) + return true; + if ((other == null)) + return false; + if (!(other instanceof NotebookUser)) + return false; + NotebookUser castOther = (NotebookUser) other; + + return ((this.getUid() == castOther.getUid()) || (this.getUid() != null + && castOther.getUid() != null && this.getUid().equals( + castOther.getUid()))); + } + + public int hashCode() { + int result = 17; + result = 37 * result + + (getUid() == null ? 0 : this.getUid().hashCode()); + return result; + } +} \ No newline at end of file Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/notebookApplicationContext.xml =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/notebookApplicationContext.xml (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/notebookApplicationContext.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + org/lamsfoundation/lams/tool/notebook/model/Notebook.hbm.xml + org/lamsfoundation/lams/tool/notebook/model/NotebookSession.hbm.xml + org/lamsfoundation/lams/tool/notebook/model/NotebookUser.hbm.xml + org/lamsfoundation/lams/tool/notebook/model/NotebookAttachment.hbm.xml + + + + + + + + + + + + + + + + + + + + + + + + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/INotebookToolService.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/INotebookToolService.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/INotebookToolService.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,138 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.service; + +import org.apache.struts.upload.FormFile; +import org.lamsfoundation.lams.tool.notebook.model.Notebook; +import org.lamsfoundation.lams.tool.notebook.model.NotebookAttachment; +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; +import org.lamsfoundation.lams.tool.notebook.model.NotebookUser; +import org.lamsfoundation.lams.tool.notebook.util.NotebookException; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; + +/** + * Defines the services available to the web layer from the Notebook Service + */ +public interface INotebookToolService { + /** + * Makes a copy of the default content and assigns it a newContentID + * + * @params newContentID + * @return + */ + public Notebook copyDefaultContent(Long newContentID); + + /** + * Returns an instance of the Notebook tools default content. + * + * @return + */ + public Notebook getDefaultContent(); + + /** + * @param toolSignature + * @return + */ + public Long getDefaultContentIdBySignature(String toolSignature); + + /** + * @param toolContentID + * @return + */ + public Notebook getNotebookByContentId(Long toolContentID); + + /** + * @param toolContentId + * @param file + * @param type + * @return + */ + public NotebookAttachment uploadFileToContent(Long toolContentId, + FormFile file, String type); + + /** + * @param uuid + * @param versionID + */ + public void deleteFromRepository(Long uuid, Long versionID) + throws NotebookException; + + /** + * @param contentID + * @param uuid + * @param versionID + * @param type + */ + public void deleteInstructionFile(Long contentID, Long uuid, + Long versionID, String type); + + /** + * @param notebook + */ + public void saveOrUpdateNotebook(Notebook notebook); + + /** + * @param toolSessionId + * @return + */ + public NotebookSession getSessionBySessionId(Long toolSessionId); + + /** + * @param notebookSession + */ + public void saveOrUpdateNotebookSession(NotebookSession notebookSession); + + /** + * + * @param userId + * @param toolSessionId + * @return + */ + public NotebookUser getUserByUserIdAndSessionId(Long userId, + Long toolSessionId); + + /** + * + * @param uid + * @return + */ + public NotebookUser getUserByUID(Long uid); + + /** + * + * @param notebookUser + */ + public void saveOrUpdateNotebookUser(NotebookUser notebookUser); + + /** + * + * @param user + * @param notebookSession + * @return + */ + public NotebookUser createNotebookUser(UserDTO user, + NotebookSession notebookSession); + +} \ No newline at end of file Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookToolService.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookToolService.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookToolService.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,544 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.service; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.apache.struts.upload.FormFile; +import org.jivesoftware.smack.AccountManager; +import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.XMPPException; +import org.lamsfoundation.lams.contentrepository.AccessDeniedException; +import org.lamsfoundation.lams.contentrepository.ICredentials; +import org.lamsfoundation.lams.contentrepository.ITicket; +import org.lamsfoundation.lams.contentrepository.InvalidParameterException; +import org.lamsfoundation.lams.contentrepository.LoginException; +import org.lamsfoundation.lams.contentrepository.NodeKey; +import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; +import org.lamsfoundation.lams.contentrepository.WorkspaceNotFoundException; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; +import org.lamsfoundation.lams.contentrepository.service.IRepositoryService; +import org.lamsfoundation.lams.contentrepository.service.RepositoryProxy; +import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials; +import org.lamsfoundation.lams.learning.service.ILearnerService; +import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException; +import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; +import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException; +import org.lamsfoundation.lams.tool.ToolContentManager; +import org.lamsfoundation.lams.tool.ToolSessionExportOutputData; +import org.lamsfoundation.lams.tool.ToolSessionManager; +import org.lamsfoundation.lams.tool.exception.DataMissingException; +import org.lamsfoundation.lams.tool.exception.SessionDataExistsException; +import org.lamsfoundation.lams.tool.exception.ToolException; +import org.lamsfoundation.lams.tool.notebook.dao.INotebookAttachmentDAO; +import org.lamsfoundation.lams.tool.notebook.dao.INotebookDAO; +import org.lamsfoundation.lams.tool.notebook.dao.INotebookSessionDAO; +import org.lamsfoundation.lams.tool.notebook.dao.INotebookUserDAO; +import org.lamsfoundation.lams.tool.notebook.model.Notebook; +import org.lamsfoundation.lams.tool.notebook.model.NotebookAttachment; +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; +import org.lamsfoundation.lams.tool.notebook.model.NotebookUser; +import org.lamsfoundation.lams.tool.notebook.util.NotebookConstants; +import org.lamsfoundation.lams.tool.notebook.util.NotebookException; +import org.lamsfoundation.lams.tool.notebook.util.NotebookToolContentHandler; +import org.lamsfoundation.lams.tool.service.ILamsToolService; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.audit.IAuditService; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * An implementation of the INotebookToolService interface. + * + * As a requirement, all LAMS tool's service bean must implement + * ToolContentManager and ToolSessionManager. + */ + +public class NotebookToolService implements ToolSessionManager, ToolContentManager, + INotebookToolService { + + static Logger logger = Logger.getLogger(NotebookToolService.class.getName()); + + private INotebookDAO notebookDAO = null; + + private INotebookSessionDAO notebookSessionDAO = null; + + private INotebookUserDAO notebookUserDAO = null; + + private INotebookAttachmentDAO notebookAttachmentDAO = null; + + private ILearnerService learnerService; + + private ILamsToolService toolService; + + private IToolContentHandler notebookToolContentHandler = null; + + private IRepositoryService repositoryService = null; + + private IAuditService auditService = null; + + private IExportToolContentService exportContentService; + + public NotebookToolService() { + super(); + // TODO Auto-generated constructor stub + } + + /* ************ Methods from ToolSessionManager ************* */ + public void createToolSession(Long toolSessionId, String toolSessionName, + Long toolContentId) throws ToolException { + if (logger.isDebugEnabled()) { + logger.debug("entering method createToolSession:" + + " toolSessionId = " + toolSessionId + + " toolSessionName = " + toolSessionName + + " toolContentId = " + toolContentId); + } + + NotebookSession session = new NotebookSession(); + session.setSessionId(toolSessionId); + session.setSessionName(toolSessionName); + // learner starts + // TODO need to also set other fields. + Notebook notebook = notebookDAO.getByContentId(toolContentId); + session.setNotebook(notebook); + notebookSessionDAO.saveOrUpdate(session); + } + + public String leaveToolSession(Long toolSessionId, Long learnerId) + throws DataMissingException, ToolException { + return learnerService.completeToolSession(toolSessionId, learnerId); + } + + public ToolSessionExportOutputData exportToolSession(Long toolSessionId) + throws DataMissingException, ToolException { + // TODO Auto-generated method stub + return null; + } + + public ToolSessionExportOutputData exportToolSession(List toolSessionIds) + throws DataMissingException, ToolException { + // TODO Auto-generated method stub + return null; + } + + public void removeToolSession(Long toolSessionId) + throws DataMissingException, ToolException { + notebookSessionDAO.deleteBySessionID(toolSessionId); + //TODO check if cascade worked + } + + /* ************ Methods from ToolContentManager ************************* */ + + public void copyToolContent(Long fromContentId, Long toContentId) + throws ToolException { + + if (logger.isDebugEnabled()) { + logger.debug("entering method copyToolContent:" + " fromContentId=" + + fromContentId + " toContentId=" + toContentId); + } + + if (fromContentId == null || toContentId == null) { + String error = "Failed to copy tool content: " + + " fromContentID or toContentID is null"; + throw new ToolException(error); + } + + Notebook fromContent = notebookDAO.getByContentId(fromContentId); + if (fromContent == null) { + // create the fromContent using the default tool content + fromContent = copyDefaultContent(fromContentId); + } + Notebook toContent = Notebook.newInstance(fromContent, toContentId, + notebookToolContentHandler); + notebookDAO.saveOrUpdate(toContent); + } + + public void setAsDefineLater(Long toolContentId) + throws DataMissingException, ToolException { + Notebook notebook = notebookDAO.getByContentId(toolContentId); + if(notebook == null){ + throw new ToolException("Could not find tool with toolContentID: " + toolContentId); + } + notebook.setDefineLater(true); + notebookDAO.saveOrUpdate(notebook); + } + + public void setAsRunOffline(Long toolContentId) + throws DataMissingException, ToolException { + Notebook notebook = notebookDAO.getByContentId(toolContentId); + if(notebook == null){ + throw new ToolException("Could not find tool with toolContentID: " + toolContentId); + } + notebook.setRunOffline(true); + notebookDAO.saveOrUpdate(notebook); + } + + public void removeToolContent(Long toolContentId, boolean removeSessionData) + throws SessionDataExistsException, ToolException { + // TODO Auto-generated method stub + } + + /** + * Export the XML fragment for the tool's content, along with any files + * needed for the content. + * + * @throws DataMissingException + * if no tool content matches the toolSessionId + * @throws ToolException + * if any other error occurs + */ + + public void exportToolContent(Long toolContentId, String rootPath) + throws DataMissingException, ToolException { + Notebook toolContentObj = notebookDAO.getByContentId(toolContentId); + if (toolContentObj == null) + throw new DataMissingException( + "Unable to find tool content by given id :" + toolContentId); + + // set ResourceToolContentHandler as null to avoid copy file node in + // repository again. + toolContentObj = Notebook.newInstance(toolContentObj, toolContentId, null); + toolContentObj.setToolContentHandler(null); + toolContentObj.setNotebookSessions(null); + Set atts = toolContentObj.getNotebookAttachments(); + for (NotebookAttachment att : atts) { + att.setNotebook(null); + } + try { + exportContentService + .registerFileClassForExport(NotebookAttachment.class.getName(), + "fileUuid", "fileVersionId"); + exportContentService.exportToolContent(toolContentId, + toolContentObj, notebookToolContentHandler, rootPath); + } catch (ExportToolContentException e) { + throw new ToolException(e); + } + } + + /** + * Import the XML fragment for the tool's content, along with any files + * needed for the content. + * + * @throws ToolException + * if any other error occurs + */ + public void importToolContent(Long toolContentId, Integer newUserUid, + String toolContentPath) throws ToolException { + try { + exportContentService.registerFileClassForImport( + NotebookAttachment.class.getName(), "fileUuid", + "fileVersionId", "fileName", "fileType", null, null); + + Object toolPOJO = exportContentService.importToolContent( + toolContentPath, notebookToolContentHandler); + if (!(toolPOJO instanceof Notebook)) + throw new ImportToolContentException( + "Import Notebook tool content failed. Deserialized object is " + + toolPOJO); + Notebook toolContentObj = (Notebook) toolPOJO; + + // reset it to new toolContentId + toolContentObj.setToolContentId(toolContentId); + toolContentObj.setCreateBy(new Long(newUserUid.longValue())); + + notebookDAO.saveOrUpdate(toolContentObj); + } catch (ImportToolContentException e) { + throw new ToolException(e); + } + } + + /* ********** INotebookToolService Methods ************************************** */ + public Long getDefaultContentIdBySignature(String toolSignature) { + Long toolContentId = null; + toolContentId = new Long(toolService + .getToolDefaultContentIdBySignature(toolSignature)); + if (toolContentId == null) { + String error = "Could not retrieve default content id for this tool"; + logger.error(error); + throw new NotebookException(error); + } + return toolContentId; + } + + public Notebook getDefaultContent() { + Long defaultContentID = getDefaultContentIdBySignature(NotebookConstants.TOOL_SIGNATURE); + Notebook defaultContent = getNotebookByContentId(defaultContentID); + if (defaultContent == null) { + String error = "Could not retrieve default content record for this tool"; + logger.error(error); + throw new NotebookException(error); + } + return defaultContent; + } + + public Notebook copyDefaultContent(Long newContentID) { + + if (newContentID == null) { + String error = "Cannot copy the Notebook tools default content: + " + + "newContentID is null"; + logger.error(error); + throw new NotebookException(error); + } + + Notebook defaultContent = getDefaultContent(); + // create new notebook using the newContentID + Notebook newContent = new Notebook(); + newContent = Notebook.newInstance(defaultContent, newContentID, + notebookToolContentHandler); + notebookDAO.saveOrUpdate(newContent); + return newContent; + } + + public Notebook getNotebookByContentId(Long toolContentID) { + Notebook notebook = (Notebook) notebookDAO.getByContentId(toolContentID); + if (notebook == null) { + logger.debug("Could not find the content with toolContentID:" + + toolContentID); + } + return notebook; + } + + public NotebookSession getSessionBySessionId(Long toolSessionId) { + NotebookSession notebookSession = notebookSessionDAO.getBySessionId(toolSessionId); + if (notebookSession == null) { + logger.debug("Could not find the notebook session with toolSessionID:" + + toolSessionId); + } + return notebookSession; + } + + public NotebookUser getUserByUserIdAndSessionId(Long userId, Long toolSessionId) { + return notebookUserDAO.getByUserIdAndSessionId(userId, toolSessionId); + } + + public NotebookUser getUserByLoginNameAndSessionId(String loginName, + Long toolSessionId) { + return notebookUserDAO.getByLoginNameAndSessionId(loginName, toolSessionId); + } + + public NotebookUser getUserByUID(Long uid) { + return notebookUserDAO.getByUID(uid); + } + + public NotebookAttachment uploadFileToContent(Long toolContentId, + FormFile file, String type) { + if (file == null || StringUtils.isEmpty(file.getFileName())) + throw new NotebookException("Could not find upload file: " + file); + + NodeKey nodeKey = processFile(file, type); + + NotebookAttachment attachment = new NotebookAttachment(); + attachment.setFileType(type); + attachment.setFileUuid(nodeKey.getUuid()); + attachment.setFileVersionId(nodeKey.getVersion()); + attachment.setFileName(file.getFileName()); + + return attachment; + } + + public void deleteFromRepository(Long uuid, Long versionID) + throws NotebookException { + ITicket ticket = getRepositoryLoginTicket(); + try { + repositoryService.deleteVersion(ticket, uuid, versionID); + } catch (Exception e) { + throw new NotebookException( + "Exception occured while deleting files from" + + " the repository " + e.getMessage()); + } + } + + public void deleteInstructionFile(Long contentID, Long uuid, + Long versionID, String type) { + notebookDAO.deleteInstructionFile(contentID, uuid, versionID, type); + + } + + public void saveOrUpdateNotebook(Notebook notebook) { + notebookDAO.saveOrUpdate(notebook); + } + + public void saveOrUpdateNotebookSession(NotebookSession notebookSession) { + notebookSessionDAO.saveOrUpdate(notebookSession); + } + + public void saveOrUpdateNotebookUser(NotebookUser notebookUser) { + notebookUserDAO.saveOrUpdate(notebookUser); + } + + public synchronized NotebookUser createNotebookUser(UserDTO user, + NotebookSession notebookSession) { + NotebookUser notebookUser = new NotebookUser(user, notebookSession); + saveOrUpdateNotebookUser(notebookUser); + return notebookUser; + } + + + public IAuditService getAuditService() { + return auditService; + } + + public void setAuditService(IAuditService auditService) { + this.auditService = auditService; + } + + + + private NodeKey processFile(FormFile file, String type) { + NodeKey node = null; + if (file != null && !StringUtils.isEmpty(file.getFileName())) { + String fileName = file.getFileName(); + try { + node = getNotebookToolContentHandler().uploadFile( + file.getInputStream(), fileName, file.getContentType(), + type); + } catch (InvalidParameterException e) { + throw new NotebookException( + "InvalidParameterException occured while trying to upload File" + + e.getMessage()); + } catch (FileNotFoundException e) { + throw new NotebookException( + "FileNotFoundException occured while trying to upload File" + + e.getMessage()); + } catch (RepositoryCheckedException e) { + throw new NotebookException( + "RepositoryCheckedException occured while trying to upload File" + + e.getMessage()); + } catch (IOException e) { + throw new NotebookException( + "IOException occured while trying to upload File" + + e.getMessage()); + } + } + return node; + } + + /** + * This method verifies the credentials of the SubmitFiles Tool and gives it + * the Ticket to login and access the Content Repository. + * + * A valid ticket is needed in order to access the content from the + * repository. This method would be called evertime the tool needs to + * upload/download files from the content repository. + * + * @return ITicket The ticket for repostory access + * @throws SubmitFilesException + */ + private ITicket getRepositoryLoginTicket() throws NotebookException { + repositoryService = RepositoryProxy.getRepositoryService(); + ICredentials credentials = new SimpleCredentials( + NotebookToolContentHandler.repositoryUser, + NotebookToolContentHandler.repositoryId); + try { + ITicket ticket = repositoryService.login(credentials, + NotebookToolContentHandler.repositoryWorkspaceName); + return ticket; + } catch (AccessDeniedException ae) { + throw new NotebookException("Access Denied to repository." + + ae.getMessage()); + } catch (WorkspaceNotFoundException we) { + throw new NotebookException("Workspace not found." + we.getMessage()); + } catch (LoginException e) { + throw new NotebookException("Login failed." + e.getMessage()); + } + } + + /* ********** Used by Spring to "inject" the linked objects ************* */ + + public INotebookAttachmentDAO getNotebookAttachmentDAO() { + return notebookAttachmentDAO; + } + + public void setNotebookAttachmentDAO(INotebookAttachmentDAO attachmentDAO) { + this.notebookAttachmentDAO = attachmentDAO; + } + + public INotebookDAO getNotebookDAO() { + return notebookDAO; + } + + public void setNotebookDAO(INotebookDAO notebookDAO) { + this.notebookDAO = notebookDAO; + } + + public IToolContentHandler getNotebookToolContentHandler() { + return notebookToolContentHandler; + } + + public void setNotebookToolContentHandler( + IToolContentHandler notebookToolContentHandler) { + this.notebookToolContentHandler = notebookToolContentHandler; + } + + public INotebookSessionDAO getNotebookSessionDAO() { + return notebookSessionDAO; + } + + public void setNotebookSessionDAO(INotebookSessionDAO sessionDAO) { + this.notebookSessionDAO = sessionDAO; + } + + public ILamsToolService getToolService() { + return toolService; + } + + public void setToolService(ILamsToolService toolService) { + this.toolService = toolService; + } + + public INotebookUserDAO getNotebookUserDAO() { + return notebookUserDAO; + } + + public void setNotebookUserDAO(INotebookUserDAO userDAO) { + this.notebookUserDAO = userDAO; + } + + public ILearnerService getLearnerService() { + return learnerService; + } + + public void setLearnerService(ILearnerService learnerService) { + this.learnerService = learnerService; + } + + public IExportToolContentService getExportContentService() { + return exportContentService; + } + + public void setExportContentService( + IExportToolContentService exportContentService) { + this.exportContentService = exportContentService; + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookToolServiceProxy.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookToolServiceProxy.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookToolServiceProxy.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,79 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.service; + +import javax.servlet.ServletContext; + +import org.lamsfoundation.lams.tool.ToolContentManager; +import org.lamsfoundation.lams.tool.ToolSessionManager; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + + +/** + *

This class act as the proxy between web layer and service layer. It is + * designed to decouple the presentation logic and business logic completely. + * In this way, the presentation tier will no longer be aware of the changes in + * service layer. Therefore we can feel free to switch the business logic + * implementation.

+ */ + +public class NotebookToolServiceProxy { + + public static final INotebookToolService getNotebookToolService(ServletContext servletContext) + { + return (INotebookToolService)getNotebookDomainService(servletContext); + } + + private static Object getNotebookDomainService(ServletContext servletContext) + { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); + return wac.getBean("notebookToolService"); + } + + /* + * Return the notebook tool version of tool session manager implementation. + * It will delegate to the Spring helper method to retrieve the proper + * bean from Spring bean factory. + * @param servletContext the servletContext for current application + * @return noticeboard service object.*/ + public static final ToolSessionManager getNotebookSessionManager(ServletContext servletContext) + { + return (ToolSessionManager)getNotebookDomainService(servletContext); + } + + + /* + * Return the notebook tool version of tool content manager implementation. + * It will delegate to the Spring helper method to retrieve the proper + * bean from Spring bean factory. + * @param servletContext the servletContext for current application + * @return noticeboard service object. */ + public static final ToolContentManager getNotebookContentManager(ServletContext servletContext) + { + return (ToolContentManager)getNotebookDomainService(servletContext); + } + +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/util/NotebookConstants.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/util/NotebookConstants.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/util/NotebookConstants.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,55 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.util; + +import java.util.LinkedList; + +import org.lamsfoundation.lams.tool.notebook.model.NotebookAttachment; + +public interface NotebookConstants { + public static final String TOOL_SIGNATURE = "lantbk11"; + + // Notebook session status + public static final Integer SESSION_NOT_STARTED = new Integer(0); + public static final Integer SESSION_IN_PROGRESS = new Integer(1); + public static final Integer SESSION_COMPLETED = new Integer(2); + + public static final String AUTHORING_DEFAULT_TAB = "1"; + public static final String ATTACHMENT_LIST = "attachmentList"; + public static final String DELETED_ATTACHMENT_LIST = "deletedAttachmentList"; + public static final String AUTH_SESSION_ID_COUNTER = "authoringSessionIdCounter"; + public static final String AUTH_SESSION_ID = "authoringSessionId"; + + public static final int MONITORING_SUMMARY_MAX_MESSAGES = 5; + + // Attribute names + public static final String ATTR_MESSAGE = "message"; + public static final String ATTR_SESSION_MAP = "sessionMap"; + + // Parameter names + public static final String PARAM_PARENT_PAGE = "parentPage"; + + static final String FILTER_REPLACE_TEXT = "***"; +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/util/NotebookException.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/util/NotebookException.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/util/NotebookException.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,57 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.util; + +/** + * + * @author Anthony Sukkar + * + */ +public class NotebookException extends RuntimeException { + + /** + * + */ + private static final long serialVersionUID = -5518806968051758859L; + + public NotebookException(String message) { + super(message); + } + + public NotebookException(String message, Throwable cause) { + super(message, cause); + } + + public NotebookException() { + super(); + + } + + public NotebookException(Throwable cause) { + super(cause); + + } + +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/util/NotebookToolContentHandler.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/util/NotebookToolContentHandler.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/util/NotebookToolContentHandler.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,76 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.util; + +import org.lamsfoundation.lams.contentrepository.client.ToolContentHandler; + +/** + * Simple client for accessing the content repository. + */ +public class NotebookToolContentHandler extends ToolContentHandler { + + // TODO these three fields were changed to public, since accessor methods + // cannot be made static. Check if we can do this a better way. + public static String repositoryWorkspaceName = "notebookworkspace"; + + public static String repositoryUser = "notebook"; + + public static char[] repositoryId = { 'l', 'a', 'm', 's', '-', 'e', 'x' }; + + /** + * + */ + public NotebookToolContentHandler() { + super(); + } + + /* + * (non-Javadoc) + * + * @see org.lamsfoundation.lams.contentrepository.client.ToolContentHandler#getRepositoryWorkspaceName() + */ + public String getRepositoryWorkspaceName() { + return repositoryWorkspaceName; + } + + /* + * (non-Javadoc) + * + * @see org.lamsfoundation.lams.contentrepository.client.ToolContentHandler#getRepositoryUser() + */ + public String getRepositoryUser() { + return repositoryUser; + } + + /* + * (non-Javadoc) + * + * @see org.lamsfoundation.lams.contentrepository.client.ToolContentHandler#getRepositoryId() + */ + public char[] getRepositoryId() { + return repositoryId; + } + +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/AuthoringAction.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/AuthoringAction.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/AuthoringAction.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,459 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.web.actions; + +import java.util.Date; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.upload.FormFile; +import org.lamsfoundation.lams.authoring.web.AuthoringConstants; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; +import org.lamsfoundation.lams.tool.ToolAccessMode; +import org.lamsfoundation.lams.tool.notebook.model.Notebook; +import org.lamsfoundation.lams.tool.notebook.model.NotebookAttachment; +import org.lamsfoundation.lams.tool.notebook.service.NotebookToolServiceProxy; +import org.lamsfoundation.lams.tool.notebook.service.INotebookToolService; +import org.lamsfoundation.lams.tool.notebook.util.NotebookConstants; +import org.lamsfoundation.lams.tool.notebook.web.forms.AuthoringForm; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.util.AttributeNames; +import org.lamsfoundation.lams.web.util.SessionMap; + + +/** + * @author + * @version + * + * @struts.action path="/authoring" name="authoringForm" parameter="dispatch" + * scope="request" validate="false" + * + * @struts.action-forward name="success" path="tiles:/authoring/main" + * @struts.action-forward name="message_page" path="tiles:/generic/message" + */ +public class AuthoringAction extends LamsDispatchAction { + + private static Logger logger = Logger.getLogger(AuthoringAction.class); + + public INotebookToolService notebookToolService; + + // Authoring SessionMap key names + private static final String KEY_MODE = "mode"; + + private static final String KEY_ONLINE_FILES = "onlineFiles"; + + private static final String KEY_OFFLINE_FILES = "offlineFiles"; + + private static final String KEY_UNSAVED_ONLINE_FILES = "unsavedOnlineFiles"; + + private static final String KEY_UNSAVED_OFFLINE_FILES = "unsavedOfflineFiles"; + + private static final String KEY_DELETED_FILES = "deletedFiles"; + + /** + * Default method when no dispatch parameter is specified. It is expected + * that the parameter toolContentID will be passed in. This + * will be used to retrieve content for this tool. + * + */ + protected ActionForward unspecified(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + + // Extract toolContentID from parameters. + Long toolContentID = new Long(WebUtil.readLongParam(request, + AttributeNames.PARAM_TOOL_CONTENT_ID)); + + // set up notebookToolService + if (notebookToolService == null) { + notebookToolService = NotebookToolServiceProxy.getNotebookToolService(this.getServlet() + .getServletContext()); + } + + // retrieving Notebook with given toolContentID + Notebook notebook = notebookToolService.getNotebookByContentId(toolContentID); + if (notebook == null) { + notebook = notebookToolService.copyDefaultContent(toolContentID); + notebook.setCreateDate(new Date()); + notebookToolService.saveOrUpdateNotebook(notebook); + // TODO NOTE: this causes DB orphans when LD not saved. + } + + // check if content in use is set + if (notebook.getContentInUse()) { + // Cannot edit, send to message page. + request.setAttribute(NotebookConstants.ATTR_MESSAGE, getResources( + request).getMessage("error.content.locked")); + return mapping.findForward("message_page"); + } + + // Set the defineLater flag so that learners cannot use content while we + // are editing. This flag is released when updateContent is called. + notebook.setDefineLater(true); + notebookToolService.saveOrUpdateNotebook(notebook); + + // Set up sessionMap + SessionMap map = new SessionMap(); + initSessionMap(map, request); + updateSessionMap(map, notebook); + + // Set up the authForm. + AuthoringForm authForm = (AuthoringForm) form; + updateAuthForm(authForm, notebook); + + // add the sessionMapID to form + authForm.setSessionMapID(map.getSessionID()); + + // add the sessionMap to HTTPSession. + request.getSession().setAttribute(map.getSessionID(), map); + + return mapping.findForward("success"); + } + + public ActionForward updateContent(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + // TODO need error checking. + + // get authForm and session map. + AuthoringForm authForm = (AuthoringForm) form; + SessionMap map = getSessionMap(request, authForm); + + // get notebook content. + Notebook notebook = notebookToolService.getNotebookByContentId(authForm.getToolContentID()); + + // update notebook content using form inputs. + updateNotebook(notebook, authForm); + + // remove attachments marked for deletion. + Set attachments = notebook.getNotebookAttachments(); + if (attachments == null) { + attachments = new HashSet(); + } + + for (NotebookAttachment att : getAttList(KEY_DELETED_FILES, map)) { + // remove from repository and db + notebookToolService.deleteFromRepository(att.getFileUuid(), att + .getFileVersionId()); + attachments.remove(att); + } + + // add unsaved attachments + attachments.addAll(getAttList(KEY_UNSAVED_ONLINE_FILES, map)); + attachments.addAll(getAttList(KEY_UNSAVED_OFFLINE_FILES, map)); + + // set attachments in case it didn't exist + notebook.setNotebookAttachments(attachments); + + // set the update date + notebook.setUpdateDate(new Date()); + + // releasing defineLater flag so that learner can start using the tool. + notebook.setDefineLater(false); + + notebookToolService.saveOrUpdateNotebook(notebook); + + request.setAttribute(AuthoringConstants.LAMS_AUTHORING_SUCCESS_FLAG, + Boolean.TRUE); + + // add the sessionMapID to form + authForm.setSessionMapID(map.getSessionID()); + + return mapping.findForward("success"); + } + + public ActionForward uploadOnline(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + return uploadFile(mapping, (AuthoringForm) form, + IToolContentHandler.TYPE_ONLINE, request); + } + + public ActionForward uploadOffline(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + return uploadFile(mapping, (AuthoringForm) form, + IToolContentHandler.TYPE_OFFLINE, request); + } + + public ActionForward deleteOnline(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + return deleteFile(mapping, (AuthoringForm) form, + IToolContentHandler.TYPE_ONLINE, request); + } + + public ActionForward deleteOffline(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + return deleteFile(mapping, (AuthoringForm) form, + IToolContentHandler.TYPE_OFFLINE, request); + } + + public ActionForward removeUnsavedOnline(ActionMapping mapping, + ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + return removeUnsaved(mapping, (AuthoringForm) form, + IToolContentHandler.TYPE_ONLINE, request); + } + + public ActionForward removeUnsavedOffline(ActionMapping mapping, + ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + return removeUnsaved(mapping, (AuthoringForm) form, + IToolContentHandler.TYPE_OFFLINE, request); + } + + /* ========== Private Methods ********** */ + + private ActionForward uploadFile(ActionMapping mapping, + AuthoringForm authForm, String type, HttpServletRequest request) { + SessionMap map = getSessionMap(request, authForm); + + FormFile file; + List unsavedFiles; + List savedFiles; + if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { + file = (FormFile) authForm.getOfflineFile(); + unsavedFiles = getAttList(KEY_UNSAVED_OFFLINE_FILES, map); + + savedFiles = getAttList(KEY_OFFLINE_FILES, map); + } else { + file = (FormFile) authForm.getOnlineFile(); + unsavedFiles = getAttList(KEY_UNSAVED_ONLINE_FILES, map); + + savedFiles = getAttList(KEY_ONLINE_FILES, map); + } + + // upload file to repository + NotebookAttachment newAtt = notebookToolService.uploadFileToContent(authForm + .getToolContentID(), file, type); + + // Add attachment to unsavedFiles + // check to see if file with same name exists + NotebookAttachment currAtt; + Iterator iter = savedFiles.iterator(); + while (iter.hasNext()) { + currAtt = (NotebookAttachment) iter.next(); + if (StringUtils.equals(currAtt.getFileName(), newAtt.getFileName())) { + // move from this this list to deleted list. + getAttList(KEY_DELETED_FILES, map).add(currAtt); + iter.remove(); + break; + } + } + unsavedFiles.add(newAtt); + + request.setAttribute(NotebookConstants.ATTR_SESSION_MAP, map); + request.setAttribute("unsavedChanges", new Boolean(true)); + + return mapping.findForward("success"); + } + + private ActionForward deleteFile(ActionMapping mapping, + AuthoringForm authForm, String type, HttpServletRequest request) { + SessionMap map = getSessionMap(request, authForm); + + List fileList; + if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { + fileList = getAttList(KEY_OFFLINE_FILES, map); + } else { + fileList = getAttList(KEY_ONLINE_FILES, map); + } + + Iterator iter = fileList.iterator(); + + while (iter.hasNext()) { + NotebookAttachment att = (NotebookAttachment) iter.next(); + + if (att.getFileUuid().equals(authForm.getDeleteFileUuid())) { + // move to delete file list, deleted at next updateContent + getAttList(KEY_DELETED_FILES, map).add(att); + + // remove from this list + iter.remove(); + break; + } + } + + request.setAttribute(NotebookConstants.ATTR_SESSION_MAP, map); + request.setAttribute("unsavedChanges", new Boolean(true)); + + return mapping.findForward("success"); + } + + private ActionForward removeUnsaved(ActionMapping mapping, + AuthoringForm authForm, String type, HttpServletRequest request) { + SessionMap map = getSessionMap(request, authForm); + + List unsavedFiles; + + if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { + unsavedFiles = getAttList(KEY_UNSAVED_OFFLINE_FILES, map); + } else { + unsavedFiles = getAttList(KEY_UNSAVED_ONLINE_FILES, map); + } + + Iterator iter = unsavedFiles.iterator(); + while (iter.hasNext()) { + NotebookAttachment att = (NotebookAttachment) iter.next(); + + if (att.getFileUuid().equals(authForm.getDeleteFileUuid())) { + // delete from repository and list + notebookToolService.deleteFromRepository(att.getFileUuid(), att + .getFileVersionId()); + iter.remove(); + break; + } + } + + request.setAttribute(NotebookConstants.ATTR_SESSION_MAP, map); + request.setAttribute("unsavedChanges", new Boolean(true)); + + return mapping.findForward("success"); + } + + /** + * Updates Notebook content using AuthoringForm inputs. + * + * @param authForm + * @return + */ + private void updateNotebook(Notebook notebook, AuthoringForm authForm) { + notebook.setTitle(authForm.getTitle()); + notebook.setInstructions(authForm.getInstructions()); + notebook.setOfflineInstructions(authForm.getOnlineInstruction()); + notebook.setOnlineInstructions(authForm.getOfflineInstruction()); + notebook.setLockOnFinished(authForm.isLockOnFinished()); + } + + /** + * Updates AuthoringForm using Notebook content. + * + * @param notebook + * @param authForm + * @return + */ + private void updateAuthForm(AuthoringForm authForm, Notebook notebook) { + authForm.setToolContentID(notebook.getToolContentId()); + authForm.setTitle(notebook.getTitle()); + authForm.setInstructions(notebook.getInstructions()); + authForm.setOnlineInstruction(notebook.getOnlineInstructions()); + authForm.setOfflineInstruction(notebook.getOfflineInstructions()); + authForm.setLockOnFinished(notebook.getLockOnFinished()); + } + + /** + * Updates SessionMap using Notebook content. + * + * @param map + * @param notebook + */ + private void updateSessionMap(SessionMap map, Notebook notebook) { + + getAttList(KEY_UNSAVED_OFFLINE_FILES, map).clear(); + getAttList(KEY_UNSAVED_ONLINE_FILES, map).clear(); + getAttList(KEY_DELETED_FILES, map).clear(); + getAttList(KEY_OFFLINE_FILES, map).clear(); + getAttList(KEY_ONLINE_FILES, map).clear(); + + Iterator iter = notebook.getNotebookAttachments().iterator(); + while (iter.hasNext()) { + NotebookAttachment attachment = (NotebookAttachment) iter.next(); + String type = attachment.getFileType(); + if (type.equals(IToolContentHandler.TYPE_OFFLINE)) { + getAttList(KEY_OFFLINE_FILES, map).add(attachment); + } + if (type.equals(IToolContentHandler.TYPE_ONLINE)) { + getAttList(KEY_ONLINE_FILES, map).add(attachment); + } + } + } + + /** + * Get ToolAccessMode from HttpRequest parameters. Default value is AUTHOR + * mode. + * + * @param request + * @return + */ + private ToolAccessMode getAccessMode(HttpServletRequest request) { + ToolAccessMode mode; + String modeStr = request.getParameter(AttributeNames.ATTR_MODE); + if (StringUtils.equalsIgnoreCase(modeStr, ToolAccessMode.TEACHER + .toString())) + mode = ToolAccessMode.TEACHER; + else + mode = ToolAccessMode.AUTHOR; + return mode; + } + + /** + * Set up SessionMap for first use. Creates empty lists and sets the access + * mode. + * + * @param map + * @param request + */ + private void initSessionMap(SessionMap map, HttpServletRequest request) { + map.put(KEY_MODE, getAccessMode(request)); + map.put(KEY_ONLINE_FILES, new LinkedList()); + map.put(KEY_OFFLINE_FILES, new LinkedList()); + map.put(KEY_UNSAVED_ONLINE_FILES, new LinkedList()); + map.put(KEY_UNSAVED_OFFLINE_FILES, new LinkedList()); + map.put(KEY_DELETED_FILES, new LinkedList()); + } + + /** + * Retrieves a List of attachments from the map using the key. + * + * @param key + * @param map + * @return + */ + private List getAttList(String key, SessionMap map) { + List list = (List) map.get(key); + return list; + } + + /** + * Retrieve the SessionMap from the HttpSession. + * + * @param request + * @param authForm + * @return + */ + private SessionMap getSessionMap(HttpServletRequest request, + AuthoringForm authForm) { + return (SessionMap) request.getSession().getAttribute( + authForm.getSessionMapID()); + } +} \ No newline at end of file Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/ClearSessionAction.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/ClearSessionAction.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/ClearSessionAction.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,51 @@ +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.notebook.web.actions; + +import javax.servlet.http.HttpSession; + +import org.lamsfoundation.lams.authoring.web.LamsAuthoringFinishAction; +import org.lamsfoundation.lams.tool.ToolAccessMode; + +/** + * This class give a chance to clear HttpSession when user save/close authoring page. + * @author Steve.Ni + * ----------------XDoclet Tags-------------------- + * + * @struts:action path="/clearsession" validate="false" + * + * @version $Revision$ + */ +public class ClearSessionAction extends LamsAuthoringFinishAction { + + @Override + public void clearSession(String customiseSessionID,HttpSession session, ToolAccessMode mode) { + if(mode.isAuthor()){ + session.removeAttribute(customiseSessionID); + } + } + + +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/LearningAction.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/LearningAction.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/LearningAction.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,193 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.web.actions; + +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.lamsfoundation.lams.tool.ToolAccessMode; +import org.lamsfoundation.lams.tool.ToolSessionManager; +import org.lamsfoundation.lams.tool.exception.DataMissingException; +import org.lamsfoundation.lams.tool.exception.ToolException; +import org.lamsfoundation.lams.tool.notebook.dto.NotebookDTO; +import org.lamsfoundation.lams.tool.notebook.model.Notebook; +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; +import org.lamsfoundation.lams.tool.notebook.model.NotebookUser; +import org.lamsfoundation.lams.tool.notebook.service.INotebookToolService; +import org.lamsfoundation.lams.tool.notebook.service.NotebookToolServiceProxy; +import org.lamsfoundation.lams.tool.notebook.util.NotebookException; +import org.lamsfoundation.lams.tool.notebook.web.forms.LearningForm; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; + +/** + * @author + * @version + * + * @struts.action path="/learning" parameter="dispatch" scope="request" name="learningForm" + * @struts.action-forward name="notebook_client" path="tiles:/learning/main" + * @struts.action-forward name="runOffline" path="tiles:/learning/runOffline" + * @struts.action-forward name="defineLater" path="tiles:/learning/defineLater" + */ +public class LearningAction extends LamsDispatchAction { + + private static Logger log = Logger.getLogger(LearningAction.class); + + private static final boolean MODE_OPTIONAL = false; + + private INotebookToolService notebookToolService; + + public ActionForward unspecified(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) + throws Exception { + // 'toolSessionID' and 'mode' paramters are expected to be present. + // TODO need to catch exceptions and handle errors. + ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, + AttributeNames.PARAM_MODE, MODE_OPTIONAL); + + request.setAttribute("mode", mode.toString()); + + Long toolSessionID = WebUtil.readLongParam(request, + AttributeNames.PARAM_TOOL_SESSION_ID); + + // set up notebookToolService + if (notebookToolService == null) { + notebookToolService = NotebookToolServiceProxy.getNotebookToolService(this.getServlet() + .getServletContext()); + } + + // Retrieve the session and content. + NotebookSession notebookSession = notebookToolService + .getSessionBySessionId(toolSessionID); + if (notebookSession == null) { + throw new NotebookException( + "Cannot retreive session with toolSessionID" + + toolSessionID); + } + + Notebook notebook = notebookSession.getNotebook(); + + // Retrieve the current user + NotebookUser notebookUser = getCurrentUser(toolSessionID); + + // check defineLater + if (notebook.getDefineLater()) { + return mapping.findForward("defineLater"); + } + + // check runOffline + if (notebook.getRunOffline()) { + request.setAttribute("mode", mode.toString()); + request.setAttribute("USER_UID", notebookUser.getUid()); + request.setAttribute("SESSION_ID", toolSessionID); + + + return mapping.findForward("runOffline"); + } + + NotebookDTO notebookDTO = new NotebookDTO(); + notebookDTO.title = notebook.getTitle(); + notebookDTO.instructions = notebook.getInstructions(); + + request.setAttribute("notebookDTO", notebookDTO); + + // Ensure that the content is use flag is set. + if (!notebook.getContentInUse()) { + notebook.setContentInUse(new Boolean(true)); + notebookToolService.saveOrUpdateNotebook(notebook); + } + + return mapping.findForward("notebook_client"); + } + + private NotebookUser getCurrentUser(Long toolSessionId) { + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute( + AttributeNames.USER); + + // attempt to retrieve user using userId and toolSessionId + NotebookUser notebookUser = notebookToolService.getUserByUserIdAndSessionId(new Long( + user.getUserID().intValue()), toolSessionId); + + if (notebookUser == null) { + NotebookSession notebookSession = notebookToolService + .getSessionBySessionId(toolSessionId); + notebookUser = notebookToolService.createNotebookUser(user, notebookSession); + } + + return notebookUser; + } + + public ActionForward finishActivity(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + + Long notebookUserUID = WebUtil.readLongParam(request, "notebookUserUID"); + Long toolSessionID = WebUtil.readLongParam(request, "toolSessionID"); + + // set the finished flag + NotebookUser notebookUser = notebookToolService.getUserByUID(notebookUserUID); + if (notebookUser != null) { + notebookUser.setFinishedActivity(true); + notebookToolService.saveOrUpdateNotebookUser(notebookUser); + } else { + log.error("finishActivity(): couldn't find NotebookUser with uid: " + + notebookUserUID); + } + + ToolSessionManager sessionMgrService = NotebookToolServiceProxy + .getNotebookSessionManager(getServlet().getServletContext()); + + // get back login user DTO + // get session from shared session. + + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + Long userID = new Long(user.getUserID().longValue()); + + String nextActivityUrl; + try { + nextActivityUrl = sessionMgrService.leaveToolSession(toolSessionID, + userID); + response.sendRedirect(nextActivityUrl); + } catch (DataMissingException e) { + throw new NotebookException(e); + } catch (ToolException e) { + throw new NotebookException(e); + } catch (IOException e) { + throw new NotebookException(e); + } + + return null; // TODO need to return proper page. + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/MonitoringAction.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/MonitoringAction.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/actions/MonitoringAction.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,93 @@ +/**************************************************************** + * 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.notebook.web.actions; + +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.lamsfoundation.lams.tool.notebook.dto.NotebookDTO; +import org.lamsfoundation.lams.tool.notebook.dto.NotebookSessionDTO; +import org.lamsfoundation.lams.tool.notebook.dto.NotebookUserDTO; +import org.lamsfoundation.lams.tool.notebook.model.Notebook; +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; +import org.lamsfoundation.lams.tool.notebook.model.NotebookUser; +import org.lamsfoundation.lams.tool.notebook.service.INotebookToolService; +import org.lamsfoundation.lams.tool.notebook.service.NotebookToolServiceProxy; +import org.lamsfoundation.lams.tool.notebook.util.NotebookConstants; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.util.AttributeNames; + +/** + * @author + * @version + * + * @struts.action path="/monitoring" parameter="dispatch" scope="request" + * name="monitoringForm" validate="false" + * + * @struts.action-forward name="success" path="tiles:/monitoring/main" + * @struts.action-forward name="notebook_client" + * path="tiles:/monitoring/notebook_client" + * @struts.action-forward name="notebook_history" + * path="tiles:/monitoring/notebook_history" + * + */ +public class MonitoringAction extends LamsDispatchAction { + + private static Logger log = Logger.getLogger(MonitoringAction.class); + + public INotebookToolService notebookToolService; + + public ActionForward unspecified(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + log.info("excuting monitoring action"); + + Long toolContentID = new Long(WebUtil.readLongParam(request, + AttributeNames.PARAM_TOOL_CONTENT_ID)); + + // set up notebookToolService + if (notebookToolService == null) { + notebookToolService = NotebookToolServiceProxy.getNotebookToolService(this.getServlet() + .getServletContext()); + } + + Notebook notebook = notebookToolService.getNotebookByContentId(toolContentID); + // TODO check for null + + NotebookDTO notebookDT0 = new NotebookDTO(notebook); + + request.setAttribute("monitoringDTO", notebookDT0); + + return mapping.findForward("success"); + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/AuthoringForm.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/AuthoringForm.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/AuthoringForm.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,185 @@ +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.notebook.web.forms; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +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.web.util.SessionMap; + +/** + * @struts.form name="authoringForm" + */ +public class AuthoringForm extends ActionForm { + + private static final long serialVersionUID = 3950453134542135495L; + + // Properties + + String title; + + String instructions; + + String offlineInstruction; + + String onlineInstruction; + + Long toolContentID; + + boolean lockOnFinished; + + FormFile onlineFile; + + FormFile offlineFile; + + String currentTab; + + String dispatch; + + String sessionMapID; + + Long deleteFileUuid; + + SessionMap sessionMap; + + @Override + public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) { + ActionErrors ac = new ActionErrors(); + ac.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("this is an error")); + + return ac; + } + + public String getSessionMapID() { + return sessionMapID; + } + + public void setSessionMapID(String sessionMapID) { + this.sessionMapID = sessionMapID; + } + + public String getCurrentTab() { + return currentTab; + } + + public void setCurrentTab(String currentTab) { + this.currentTab = currentTab; + } + + public String getDispatch() { + return dispatch; + } + + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } + + public String getInstructions() { + return instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + public boolean isLockOnFinished() { + return lockOnFinished; + } + + public void setLockOnFinished(boolean lockOnFinished) { + this.lockOnFinished = lockOnFinished; + } + + public FormFile getOfflineFile() { + return offlineFile; + } + + public void setOfflineFile(FormFile offlineFile) { + this.offlineFile = offlineFile; + } + + public String getOfflineInstruction() { + return offlineInstruction; + } + + public void setOfflineInstruction(String offlineInstruction) { + this.offlineInstruction = offlineInstruction; + } + + public FormFile getOnlineFile() { + return onlineFile; + } + + public void setOnlineFile(FormFile onlineFile) { + this.onlineFile = onlineFile; + } + + public String getOnlineInstruction() { + return onlineInstruction; + } + + public void setOnlineInstruction(String onlineInstruction) { + this.onlineInstruction = onlineInstruction; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Long getToolContentID() { + return toolContentID; + } + + public void setToolContentID(Long toolContentID) { + this.toolContentID = toolContentID; + } + + public void setSessionMap(SessionMap sessionMap) { + this.sessionMap = sessionMap; + + } + + public SessionMap getSessionMap() { + return sessionMap; + } + + public Long getDeleteFileUuid() { + return deleteFileUuid; + } + + public void setDeleteFileUuid(Long deleteFile) { + this.deleteFileUuid = deleteFile; + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/LearningForm.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/LearningForm.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/LearningForm.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,95 @@ +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.notebook.web.forms; + +import org.apache.struts.action.ActionForm; + +/** + * + * @author Anthony Sukkar + * + * @struts.form name="learningForm" + */ +public class LearningForm extends ActionForm { + + private static final long serialVersionUID = -4728946254882237144L; + + String title; + String instructions; + + String dispatch; + Long notebookUserUID; + Long toolSessionID; + String mode; + + public String getMode() { + return mode; + } + + public void setMode(String mode) { + this.mode = mode; + } + + public Long getNotebookUserUID() { + return notebookUserUID; + } + + public void setNotebookUserUID(Long notebookUserUID) { + this.notebookUserUID = notebookUserUID; + } + + public String getDispatch() { + return dispatch; + } + + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } + + public Long getToolSessionID() { + return toolSessionID; + } + + public void setToolSessionID(Long toolSessionID) { + this.toolSessionID = toolSessionID; + } + + public String getInstructions() { + return instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/MonitoringForm.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/MonitoringForm.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/forms/MonitoringForm.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,83 @@ +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.notebook.web.forms; + +import org.apache.struts.action.ActionForm; + +/** + * @struts.form name="monitoringForm" + */ +public class MonitoringForm extends ActionForm { + + private static final long serialVersionUID = 9096908688391850595L; + + String dispatch; + boolean teacherVisible; + Long toolSessionID; + + // editing message page. + Long messageUID; + String messageBody; + boolean messageHidden; + + public String getMessageBody() { + return messageBody; + } + public void setMessageBody(String messageBody) { + this.messageBody = messageBody; + } + public Long getMessageUID() { + return messageUID; + } + public void setMessageUID(Long messageUID) { + this.messageUID = messageUID; + } + public String getDispatch() { + return dispatch; + } + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } + public Long getToolSessionID() { + return toolSessionID; + } + public void setToolSessionID(Long toolSessionID) { + this.toolSessionID = toolSessionID; + } + public boolean isTeacherVisible() { + return teacherVisible; + } + public void setTeacherVisible(boolean visible) { + this.teacherVisible = visible; + } + public boolean isMessageHidden() { + return messageHidden; + } + public void setMessageHidden(boolean messageHidden) { + this.messageHidden = messageHidden; + } + +} Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/servlets/ExportServlet.java =================================================================== diff -u --- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/servlets/ExportServlet.java (revision 0) +++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/web/servlets/ExportServlet.java (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,148 @@ +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.notebook.web.servlets; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.tool.ToolAccessMode; +import org.lamsfoundation.lams.tool.notebook.dto.NotebookDTO; +import org.lamsfoundation.lams.tool.notebook.dto.NotebookSessionDTO; +import org.lamsfoundation.lams.tool.notebook.model.Notebook; +import org.lamsfoundation.lams.tool.notebook.model.NotebookSession; +import org.lamsfoundation.lams.tool.notebook.model.NotebookUser; +import org.lamsfoundation.lams.tool.notebook.service.NotebookToolServiceProxy; +import org.lamsfoundation.lams.tool.notebook.service.INotebookToolService; +import org.lamsfoundation.lams.tool.notebook.util.NotebookException; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; + +public class ExportServlet extends AbstractExportPortfolioServlet { + + private static final long serialVersionUID = -2829707715037631881L; + + private static Logger logger = Logger.getLogger(ExportServlet.class); + + private final String FILENAME = "notebook_main.html"; + + private INotebookToolService notebookToolService; + + protected String doExport(HttpServletRequest request, + HttpServletResponse response, String directoryName, Cookie[] cookies) { + + if (notebookToolService == null) { + notebookToolService = NotebookToolServiceProxy + .getNotebookToolService(getServletContext()); + } + + try { + if (StringUtils.equals(mode, ToolAccessMode.LEARNER.toString())) { + request.getSession().setAttribute(AttributeNames.ATTR_MODE, + ToolAccessMode.LEARNER); + doLearnerExport(request, response, directoryName, cookies); + } else if (StringUtils.equals(mode, ToolAccessMode.TEACHER + .toString())) { + request.getSession().setAttribute(AttributeNames.ATTR_MODE, + ToolAccessMode.TEACHER); + doTeacherExport(request, response, directoryName, cookies); + } + } catch (NotebookException e) { + logger.error("Cannot perform export for notebook tool."); + } + + String basePath = request.getScheme() + "://" + request.getServerName() + + ":" + request.getServerPort() + request.getContextPath(); + writeResponseToFile(basePath + "/pages/export/exportPortfolio.jsp", + directoryName, FILENAME, cookies); + + return FILENAME; + } + + private void doLearnerExport(HttpServletRequest request, + HttpServletResponse response, String directoryName, Cookie[] cookies) + throws NotebookException { + + logger.debug("doExportTeacher: toolContentID:" + toolSessionID); + + // check if toolContentID available + if (toolSessionID == null) { + String error = "Tool Session ID is missing. Unable to continue"; + logger.error(error); + throw new NotebookException(error); + } + + NotebookSession notebookSession = notebookToolService + .getSessionBySessionId(toolSessionID); + + // get all messages for current user and filter. + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute( + AttributeNames.USER); + + // get the notebook user + NotebookUser notebookUser = notebookToolService.getUserByUserIdAndSessionId( + new Long(user.getUserID()), toolSessionID); + + NotebookDTO notebookDTO = new NotebookDTO(notebookSession.getNotebook()); + + request.getSession().setAttribute("notebookDTO", notebookDTO); + } + + public void doTeacherExport(HttpServletRequest request, + HttpServletResponse response, String directoryName, Cookie[] cookies) + throws NotebookException { + + logger.debug("doExportTeacher: toolContentID:" + toolContentID); + + // check if toolContentID available + if (toolContentID == null) { + String error = "Tool Content ID is missing. Unable to continue"; + logger.error(error); + throw new NotebookException(error); + } + + Notebook notebook = notebookToolService.getNotebookByContentId(toolContentID); + + NotebookDTO notebookDTO = new NotebookDTO(notebook); + + for (Iterator iter = notebook.getNotebookSessions().iterator(); iter + .hasNext();) { + // NB session DTO will contain all messages in session unfiltered. + notebookDTO.getSessionDTOs().add( + new NotebookSessionDTO((NotebookSession) iter.next())); + } + request.getSession().setAttribute("notebookDTO", notebookDTO); + } + +} Index: lams_tool_notebook/web/META-INF/MANIFEST.MF =================================================================== diff -u --- lams_tool_notebook/web/META-INF/MANIFEST.MF (revision 0) +++ lams_tool_notebook/web/META-INF/MANIFEST.MF (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + Index: lams_tool_notebook/web/WEB-INF/fckeditor/tlds/FCKeditor.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/fckeditor/tlds/FCKeditor.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/fckeditor/tlds/FCKeditor.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,214 @@ + + + + + 2.3 + 1.1 + FCKeditor + http://fckeditor.net/tags-fckeditor + FCKeditor taglib + + editor + com.fredck.FCKeditor.tags.FCKeditorTag + JSP + + id + true + + + basePath + false + true + + + toolbarSet + false + true + + + width + false + true + + + height + false + true + + + customConfigurationsPath + false + true + + + editorAreaCSS + false + true + + + baseHref + false + true + + + skinPath + false + true + + + pluginsPath + false + true + + + fullPage + false + true + + + debug + false + true + + + autoDetectLanguage + false + true + + + defaultLanguage + false + true + + + contentLangDirection + false + true + + + enableXHTML + false + true + + + enableSourceXHTML + false + true + + + fillEmptyBlocks + false + true + + + formatSource + false + true + + + formatOutput + false + true + + + formatIndentator + false + true + + + geckoUseSPAN + false + true + + + startupFocus + false + true + + + forcePasteAsPlainText + false + true + + + forceSimpleAmpersand + false + true + + + tabSpaces + false + true + + + useBROnCarriageReturn + false + true + + + toolbarStartExpanded + false + true + + + toolbarCanCollapse + false + true + + + fontColors + false + true + + + fontNames + false + true + + + fontSizes + false + true + + + fontFormats + false + true + + + stylesXmlPath + false + true + + + linkBrowserURL + false + true + + + imageBrowserURL + false + true + + + flashBrowserURL + false + true + + + linkUploadURL + false + true + + + imageUploadURL + false + true + + + flashUploadURL + false + true + + + \ No newline at end of file Index: lams_tool_notebook/web/WEB-INF/jstl/tlds/c.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/jstl/tlds/c.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/jstl/tlds/c.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,563 @@ + + + + + JSTL 1.1 core library + JSTL core + 1.1 + c + http://java.sun.com/jsp/jstl/core + + + + Provides core validation features for JSTL tags. + + + org.apache.taglibs.standard.tlv.JstlCoreTLV + + + + + + Catches any Throwable that occurs in its body and optionally + exposes it. + + catch + org.apache.taglibs.standard.tag.common.core.CatchTag + JSP + + +Name of the exported scoped variable for the +exception thrown from a nested action. The type of the +scoped variable is the type of the exception thrown. + + var + false + false + + + + + + Simple conditional tag that establishes a context for + mutually exclusive conditional operations, marked by + <when> and <otherwise> + + choose + org.apache.taglibs.standard.tag.common.core.ChooseTag + JSP + + + + + Simple conditional tag, which evalutes its body if the + supplied condition is true and optionally exposes a Boolean + scripting variable representing the evaluation of this condition + + if + org.apache.taglibs.standard.tag.rt.core.IfTag + JSP + + +The test condition that determines whether or +not the body content should be processed. + + test + true + true + boolean + + + +Name of the exported scoped variable for the +resulting value of the test condition. The type +of the scoped variable is Boolean. + + var + false + false + + + +Scope for var. + + scope + false + false + + + + + + Retrieves an absolute or relative URL and exposes its contents + to either the page, a String in 'var', or a Reader in 'varReader'. + + import + org.apache.taglibs.standard.tag.rt.core.ImportTag + org.apache.taglibs.standard.tei.ImportTEI + JSP + + +The URL of the resource to import. + + url + true + true + + + +Name of the exported scoped variable for the +resource's content. The type of the scoped +variable is String. + + var + false + false + + + +Scope for var. + + scope + false + false + + + +Name of the exported scoped variable for the +resource's content. The type of the scoped +variable is Reader. + + varReader + false + false + + + +Name of the context when accessing a relative +URL resource that belongs to a foreign +context. + + context + false + true + + + +Character encoding of the content at the input +resource. + + charEncoding + false + true + + + + + + The basic iteration tag, accepting many different + collection types and supporting subsetting and other + functionality + + forEach + org.apache.taglibs.standard.tag.rt.core.ForEachTag + org.apache.taglibs.standard.tei.ForEachTEI + JSP + + +Collection of items to iterate over. + + items + false + true + java.lang.Object + + + +If items specified: +Iteration begins at the item located at the +specified index. First item of the collection has +index 0. +If items not specified: +Iteration begins with index set at the value +specified. + + begin + false + true + int + + + +If items specified: +Iteration ends at the item located at the +specified index (inclusive). +If items not specified: +Iteration ends when index reaches the value +specified. + + end + false + true + int + + + +Iteration will only process every step items of +the collection, starting with the first one. + + step + false + true + int + + + +Name of the exported scoped variable for the +current item of the iteration. This scoped +variable has nested visibility. Its type depends +on the object of the underlying collection. + + var + false + false + + + +Name of the exported scoped variable for the +status of the iteration. Object exported is of type +javax.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested +visibility. + + varStatus + false + false + + + + + + Iterates over tokens, separated by the supplied delimeters + + forTokens + org.apache.taglibs.standard.tag.rt.core.ForTokensTag + JSP + + +String of tokens to iterate over. + + items + true + true + java.lang.String + + + +The set of delimiters (the characters that +separate the tokens in the string). + + delims + true + true + java.lang.String + + + +Iteration begins at the token located at the +specified index. First token has index 0. + + begin + false + true + int + + + +Iteration ends at the token located at the +specified index (inclusive). + + end + false + true + int + + + +Iteration will only process every step tokens +of the string, starting with the first one. + + step + false + true + int + + + +Name of the exported scoped variable for the +current item of the iteration. This scoped +variable has nested visibility. + + var + false + false + + + +Name of the exported scoped variable for the +status of the iteration. Object exported is of +type +javax.servlet.jsp.jstl.core.LoopTag +Status. This scoped variable has nested +visibility. + + varStatus + false + false + + + + + + Like <%= ... >, but for expressions. + + out + org.apache.taglibs.standard.tag.rt.core.OutTag + JSP + + +Expression to be evaluated. + + value + true + true + + + +Default value if the resulting value is null. + + default + false + true + + + +Determines whether characters <,>,&,'," in the +resulting string should be converted to their +corresponding character entity codes. Default value is +true. + + escapeXml + false + true + + + + + + + Subtag of <choose> that follows <when> tags + and runs only if all of the prior conditions evaluated to + 'false' + + otherwise + org.apache.taglibs.standard.tag.common.core.OtherwiseTag + JSP + + + + + Adds a parameter to a containing 'import' tag's URL. + + param + org.apache.taglibs.standard.tag.rt.core.ParamTag + JSP + + +Name of the query string parameter. + + name + true + true + + + +Value of the parameter. + + value + false + true + + + + + + Redirects to a new URL. + + redirect + org.apache.taglibs.standard.tag.rt.core.RedirectTag + JSP + + +The URL of the resource to redirect to. + + url + false + true + + + +Name of the context when redirecting to a relative URL +resource that belongs to a foreign context. + + context + false + true + + + + + + Removes a scoped variable (from a particular scope, if specified). + + remove + org.apache.taglibs.standard.tag.common.core.RemoveTag + empty + + +Name of the scoped variable to be removed. + + var + true + false + + + +Scope for var. + + scope + false + false + + + + + + Sets the result of an expression evaluation in a 'scope' + + set + org.apache.taglibs.standard.tag.rt.core.SetTag + JSP + + +Name of the exported scoped variable to hold the value +specified in the action. The type of the scoped variable is +whatever type the value expression evaluates to. + + var + false + false + + + +Expression to be evaluated. + + value + false + true + + + +Target object whose property will be set. Must evaluate to +a JavaBeans object with setter property property, or to a +java.util.Map object. + + target + false + true + + + +Name of the property to be set in the target object. + + property + false + true + + + +Scope for var. + + scope + false + false + + + + + + Creates a URL with optional query parameters. + + url + org.apache.taglibs.standard.tag.rt.core.UrlTag + JSP + + +Name of the exported scoped variable for the +processed url. The type of the scoped variable is +String. + + var + false + false + + + +Scope for var. + + scope + false + false + + + +URL to be processed. + + value + false + true + + + +Name of the context when specifying a relative URL +resource that belongs to a foreign context. + + context + false + true + + + + + + Subtag of <choose> that includes its body if its + condition evalutes to 'true' + + when + org.apache.taglibs.standard.tag.rt.core.WhenTag + JSP + + +The test condition that determines whether or not the +body content should be processed. + + test + true + true + boolean + + + + Index: lams_tool_notebook/web/WEB-INF/jstl/tlds/fmt.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/jstl/tlds/fmt.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/jstl/tlds/fmt.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,671 @@ + + + + + JSTL 1.1 i18n-capable formatting library + JSTL fmt + 1.1 + fmt + http://java.sun.com/jsp/jstl/fmt + + + + Provides core validation features for JSTL tags. + + + org.apache.taglibs.standard.tlv.JstlFmtTLV + + + + + + Sets the request character encoding + + requestEncoding + org.apache.taglibs.standard.tag.rt.fmt.RequestEncodingTag + empty + + +Name of character encoding to be applied when +decoding request parameters. + + value + false + true + + + + + + Stores the given locale in the locale configuration variable + + setLocale + org.apache.taglibs.standard.tag.rt.fmt.SetLocaleTag + empty + + +A String value is interpreted as the +printable representation of a locale, which +must contain a two-letter (lower-case) +language code (as defined by ISO-639), +and may contain a two-letter (upper-case) +country code (as defined by ISO-3166). +Language and country codes must be +separated by hyphen (-) or underscore +(_). + + value + true + true + + + +Vendor- or browser-specific variant. +See the java.util.Locale javadocs for +more information on variants. + + variant + false + true + + + +Scope of the locale configuration variable. + + scope + false + false + + + + + + Specifies the time zone for any time formatting or parsing actions + nested in its body + + timeZone + org.apache.taglibs.standard.tag.rt.fmt.TimeZoneTag + JSP + + +The time zone. A String value is interpreted as +a time zone ID. This may be one of the time zone +IDs supported by the Java platform (such as +"America/Los_Angeles") or a custom time zone +ID (such as "GMT-8"). See +java.util.TimeZone for more information on +supported time zone formats. + + value + true + true + + + + + + Stores the given time zone in the time zone configuration variable + + setTimeZone + org.apache.taglibs.standard.tag.rt.fmt.SetTimeZoneTag + empty + + +The time zone. A String value is interpreted as +a time zone ID. This may be one of the time zone +IDs supported by the Java platform (such as +"America/Los_Angeles") or a custom time zone +ID (such as "GMT-8"). See java.util.TimeZone for +more information on supported time zone +formats. + + value + true + true + + + +Name of the exported scoped variable which +stores the time zone of type +java.util.TimeZone. + + var + false + false + + + +Scope of var or the time zone configuration +variable. + + scope + false + false + + + + + + Loads a resource bundle to be used by its tag body + + bundle + org.apache.taglibs.standard.tag.rt.fmt.BundleTag + JSP + + +Resource bundle base name. This is the bundle's +fully-qualified resource name, which has the same +form as a fully-qualified class name, that is, it uses +"." as the package component separator and does not +have any file type (such as ".class" or ".properties") +suffix. + + basename + true + true + + + +Prefix to be prepended to the value of the message +key of any nested <fmt:message> action. + + prefix + false + true + + + + + + Loads a resource bundle and stores it in the named scoped variable or + the bundle configuration variable + + setBundle + org.apache.taglibs.standard.tag.rt.fmt.SetBundleTag + empty + + +Resource bundle base name. This is the bundle's +fully-qualified resource name, which has the same +form as a fully-qualified class name, that is, it uses +"." as the package component separator and does not +have any file type (such as ".class" or ".properties") +suffix. + + basename + true + true + + + +Name of the exported scoped variable which stores +the i18n localization context of type +javax.servlet.jsp.jstl.fmt.LocalizationC +ontext. + + var + false + false + + + +Scope of var or the localization context +configuration variable. + + scope + false + false + + + + + + Maps key to localized message and performs parametric replacement + + message + org.apache.taglibs.standard.tag.rt.fmt.MessageTag + JSP + + +Message key to be looked up. + + key + false + true + + + +Localization context in whose resource +bundle the message key is looked up. + + bundle + false + true + + + +Name of the exported scoped variable +which stores the localized message. + + var + false + false + + + +Scope of var. + + scope + false + false + + + + + + Supplies an argument for parametric replacement to a containing + <message> tag + + param + org.apache.taglibs.standard.tag.rt.fmt.ParamTag + JSP + + +Argument used for parametric replacement. + + value + false + true + + + + + + Formats a numeric value as a number, currency, or percentage + + formatNumber + org.apache.taglibs.standard.tag.rt.fmt.FormatNumberTag + JSP + + +Numeric value to be formatted. + + value + false + true + + + +Specifies whether the value is to be +formatted as number, currency, or +percentage. + + type + false + true + + + +Custom formatting pattern. + + pattern + false + true + + + +ISO 4217 currency code. Applied only +when formatting currencies (i.e. if type is +equal to "currency"); ignored otherwise. + + currencyCode + false + true + + + +Currency symbol. Applied only when +formatting currencies (i.e. if type is equal +to "currency"); ignored otherwise. + + currencySymbol + false + true + + + +Specifies whether the formatted output +will contain any grouping separators. + + groupingUsed + false + true + + + +Maximum number of digits in the integer +portion of the formatted output. + + maxIntegerDigits + false + true + + + +Minimum number of digits in the integer +portion of the formatted output. + + minIntegerDigits + false + true + + + +Maximum number of digits in the +fractional portion of the formatted output. + + maxFractionDigits + false + true + + + +Minimum number of digits in the +fractional portion of the formatted output. + + minFractionDigits + false + true + + + +Name of the exported scoped variable +which stores the formatted result as a +String. + + var + false + false + + + +Scope of var. + + scope + false + false + + + + + + Parses the string representation of a number, currency, or percentage + + parseNumber + org.apache.taglibs.standard.tag.rt.fmt.ParseNumberTag + JSP + + +String to be parsed. + + value + false + true + + + +Specifies whether the string in the value +attribute should be parsed as a number, +currency, or percentage. + + type + false + true + + + +Custom formatting pattern that determines +how the string in the value attribute is to be +parsed. + + pattern + false + true + + + +Locale whose default formatting pattern (for +numbers, currencies, or percentages, +respectively) is to be used during the parse +operation, or to which the pattern specified +via the pattern attribute (if present) is +applied. + + parseLocale + false + true + + + +Specifies whether just the integer portion of +the given value should be parsed. + + integerOnly + false + true + + + +Name of the exported scoped variable which +stores the parsed result (of type +java.lang.Number). + + var + false + false + + + +Scope of var. + + scope + false + false + + + + + + Formats a date and/or time using the supplied styles and pattern + + formatDate + org.apache.taglibs.standard.tag.rt.fmt.FormatDateTag + empty + + +Date and/or time to be formatted. + + value + true + true + + + +Specifies whether the time, the date, or both +the time and date components of the given +date are to be formatted. + + type + false + true + + + +Predefined formatting style for dates. Follows +the semantics defined in class +java.text.DateFormat. Applied only +when formatting a date or both a date and +time (i.e. if type is missing or is equal to +"date" or "both"); ignored otherwise. + + dateStyle + false + true + + + +Predefined formatting style for times. Follows +the semantics defined in class +java.text.DateFormat. Applied only +when formatting a time or both a date and +time (i.e. if type is equal to "time" or "both"); +ignored otherwise. + + timeStyle + false + true + + + +Custom formatting style for dates and times. + + pattern + false + true + + + +Time zone in which to represent the formatted +time. + + timeZone + false + true + + + +Name of the exported scoped variable which +stores the formatted result as a String. + + var + false + false + + + +Scope of var. + + scope + false + false + + + + + + Parses the string representation of a date and/or time + + parseDate + org.apache.taglibs.standard.tag.rt.fmt.ParseDateTag + JSP + + +Date string to be parsed. + + value + false + true + + + +Specifies whether the date string in the +value attribute is supposed to contain a +time, a date, or both. + + type + false + true + + + +Predefined formatting style for days +which determines how the date +component of the date string is to be +parsed. Applied only when formatting a +date or both a date and time (i.e. if type +is missing or is equal to "date" or "both"); +ignored otherwise. + + dateStyle + false + true + + + +Predefined formatting styles for times +which determines how the time +component in the date string is to be +parsed. Applied only when formatting a +time or both a date and time (i.e. if type +is equal to "time" or "both"); ignored +otherwise. + + timeStyle + false + true + + + +Custom formatting pattern which +determines how the date string is to be +parsed. + + pattern + false + true + + + +Time zone in which to interpret any time +information in the date string. + + timeZone + false + true + + + +Locale whose predefined formatting styles +for dates and times are to be used during +the parse operation, or to which the +pattern specified via the pattern +attribute (if present) is applied. + + parseLocale + false + true + + + +Name of the exported scoped variable in +which the parsing result (of type +java.util.Date) is stored. + + var + false + false + + + +Scope of var. + + scope + false + false + + + + Index: lams_tool_notebook/web/WEB-INF/jstl/tlds/fn.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/jstl/tlds/fn.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/jstl/tlds/fn.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,207 @@ + + + + + JSTL 1.1 functions library + JSTL functions + 1.1 + fn + http://java.sun.com/jsp/jstl/functions + + + + Tests if an input string contains the specified substring. + + contains + org.apache.taglibs.standard.functions.Functions + boolean contains(java.lang.String, java.lang.String) + + <c:if test="${fn:contains(name, searchString)}"> + + + + + + Tests if an input string contains the specified substring in a case insensitive way. + + containsIgnoreCase + org.apache.taglibs.standard.functions.Functions + boolean containsIgnoreCase(java.lang.String, java.lang.String) + + <c:if test="${fn:containsIgnoreCase(name, searchString)}"> + + + + + + Tests if an input string ends with the specified suffix. + + endsWith + org.apache.taglibs.standard.functions.Functions + boolean endsWith(java.lang.String, java.lang.String) + + <c:if test="${fn:endsWith(filename, ".txt")}"> + + + + + + Escapes characters that could be interpreted as XML markup. + + escapeXml + org.apache.taglibs.standard.functions.Functions + java.lang.String escapeXml(java.lang.String) + + ${fn:escapeXml(param:info)} + + + + + + Returns the index withing a string of the first occurrence of a specified substring. + + indexOf + org.apache.taglibs.standard.functions.Functions + int indexOf(java.lang.String, java.lang.String) + + ${fn:indexOf(name, "-")} + + + + + + Joins all elements of an array into a string. + + join + org.apache.taglibs.standard.functions.Functions + java.lang.String join(java.lang.String[], java.lang.String) + + ${fn:join(array, ";")} + + + + + + Returns the number of items in a collection, or the number of characters in a string. + + length + org.apache.taglibs.standard.functions.Functions + int length(java.lang.Object) + + You have ${fn:length(shoppingCart.products)} in your shopping cart. + + + + + + Returns a string resulting from replacing in an input string all occurrences + of a "before" string into an "after" substring. + + replace + org.apache.taglibs.standard.functions.Functions + java.lang.String replace(java.lang.String, java.lang.String, java.lang.String) + + ${fn:replace(text, "-", "•")} + + + + + + Splits a string into an array of substrings. + + split + org.apache.taglibs.standard.functions.Functions + java.lang.String[] split(java.lang.String, java.lang.String) + + ${fn:split(customerNames, ";")} + + + + + + Tests if an input string starts with the specified prefix. + + startsWith + org.apache.taglibs.standard.functions.Functions + boolean startsWith(java.lang.String, java.lang.String) + + <c:if test="${fn:startsWith(product.id, "100-")}"> + + + + + + Returns a subset of a string. + + substring + org.apache.taglibs.standard.functions.Functions + java.lang.String substring(java.lang.String, int, int) + + P.O. Box: ${fn:substring(zip, 6, -1)} + + + + + + Returns a subset of a string following a specific substring. + + substringAfter + org.apache.taglibs.standard.functions.Functions + java.lang.String substringAfter(java.lang.String, java.lang.String) + + P.O. Box: ${fn:substringAfter(zip, "-")} + + + + + + Returns a subset of a string before a specific substring. + + substringBefore + org.apache.taglibs.standard.functions.Functions + java.lang.String substringBefore(java.lang.String, java.lang.String) + + Zip (without P.O. Box): ${fn:substringBefore(zip, "-")} + + + + + + Converts all of the characters of a string to lower case. + + toLowerCase + org.apache.taglibs.standard.functions.Functions + java.lang.String toLowerCase(java.lang.String) + + Product name: ${fn.toLowerCase(product.name)} + + + + + + Converts all of the characters of a string to upper case. + + toUpperCase + org.apache.taglibs.standard.functions.Functions + java.lang.String toUpperCase(java.lang.String) + + Product name: ${fn.UpperCase(product.name)} + + + + + + Removes white spaces from both ends of a string. + + trim + org.apache.taglibs.standard.functions.Functions + java.lang.String trim(java.lang.String) + + Name: ${fn.trim(name)} + + + + Index: lams_tool_notebook/web/WEB-INF/jstl/tlds/permittedTaglibs.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/jstl/tlds/permittedTaglibs.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/jstl/tlds/permittedTaglibs.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,34 @@ + + + + + Restricts JSP pages to the JSTL tag libraries + + permittedTaglibs + 1.1 + permittedTaglibs + http://jakarta.apache.org/taglibs/standard/permittedTaglibs + + + + javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV + + + + Whitespace-separated list of taglib URIs to permit. This example + TLD for the Standard Taglib allows only JSTL 'el' taglibs to be + imported. + + permittedTaglibs + + http://java.sun.com/jsp/jstl/core + http://java.sun.com/jsp/jstl/fmt + http://java.sun.com/jsp/jstl/sql + http://java.sun.com/jsp/jstl/xml + + + + Index: lams_tool_notebook/web/WEB-INF/jstl/tlds/scriptfree.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/jstl/tlds/scriptfree.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/jstl/tlds/scriptfree.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,51 @@ + + + + + Validates JSP pages to prohibit use of scripting elements. + + 1.1 + scriptfree + http://jakarta.apache.org/taglibs/standard/scriptfree + + + + Validates prohibitions against scripting elements. + + + javax.servlet.jsp.jstl.tlv.ScriptFreeTLV + + + + Controls whether or not declarations are considered valid. + + allowDeclarations + false + + + + Controls whether or not scriptlets are considered valid. + + allowScriptlets + false + + + + Controls whether or not top-level expressions are considered valid. + + allowExpressions + false + + + + Controls whether or not expressions used to supply request-time + attribute values are considered valid. + + allowRTExpressions + false + + + Index: lams_tool_notebook/web/WEB-INF/jstl/tlds/x.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/jstl/tlds/x.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/jstl/tlds/x.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,448 @@ + + + + + JSTL 1.1 XML library + JSTL XML + 1.1 + x + http://java.sun.com/jsp/jstl/xml + + + + Provides validation features for JSTL XML tags. + + + org.apache.taglibs.standard.tlv.JstlXmlTLV + + + + + + Simple conditional tag that establishes a context for + mutually exclusive conditional operations, marked by + <when> and <otherwise> + + choose + org.apache.taglibs.standard.tag.common.core.ChooseTag + JSP + + + + + Like <%= ... >, but for XPath expressions. + + out + org.apache.taglibs.standard.tag.rt.xml.ExprTag + empty + + +XPath expression to be evaluated. + + select + true + false + + + +Determines whether characters <,>,&,'," in the +resulting string should be converted to their +corresponding character entity codes. Default +value is true. + + escapeXml + false + true + + + + + + XML conditional tag, which evalutes its body if the + supplied XPath expression evalutes to 'true' as a boolean + + if + org.apache.taglibs.standard.tag.common.xml.IfTag + JSP + + +The test condition that tells whether or not the +body content should be processed. + + select + true + false + + + +Name of the exported scoped variable for the +resulting value of the test condition. The type +of the scoped variable is Boolean. + + var + false + false + + + +Scope for var. + + scope + false + false + + + + + + XML iteration tag. + + forEach + org.apache.taglibs.standard.tag.common.xml.ForEachTag + JSP + + +Name of the exported scoped variable for the +current item of the iteration. This scoped variable +has nested visibility. Its type depends on the +result of the XPath expression in the select +attribute. + + var + false + false + + + +XPath expression to be evaluated. + + select + true + false + + + +Iteration begins at the item located at the +specified index. First item of the collection has +index 0. + + begin + false + true + int + + + +Iteration ends at the item located at the specified +index (inclusive). + + end + false + true + int + + + +Iteration will only process every step items of +the collection, starting with the first one. + + step + false + true + int + + + +Name of the exported scoped variable for the +status of the iteration. Object exported is of type +javax.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested visibility. + + varStatus + false + false + + + + + + Subtag of <choose> that follows <when> tags + and runs only if all of the prior conditions evaluated to + 'false' + + otherwise + org.apache.taglibs.standard.tag.common.core.OtherwiseTag + JSP + + + + + Adds a parameter to a containing 'transform' tag's Transformer + + param + org.apache.taglibs.standard.tag.rt.xml.ParamTag + JSP + + +Name of the transformation parameter. + + name + true + true + + + +Value of the parameter. + + value + false + true + + + + + + Parses XML content from 'source' attribute or 'body' + + parse + org.apache.taglibs.standard.tag.rt.xml.ParseTag + org.apache.taglibs.standard.tei.XmlParseTEI + JSP + + +Name of the exported scoped variable for +the parsed XML document. The type of the +scoped variable is implementation +dependent. + + var + false + false + + + +Name of the exported scoped variable for +the parsed XML document. The type of the +scoped variable is +org.w3c.dom.Document. + + varDom + false + false + + + +Scope for var. + + scope + false + false + + + +Scope for varDom. + + scopeDom + false + false + + + +Deprecated. Use attribute 'doc' instead. + + xml + false + true + + + +Source XML document to be parsed. + + doc + false + true + + + +The system identifier (URI) for parsing the +XML document. + + systemId + false + true + + + +Filter to be applied to the source +document. + + filter + false + true + + + + + + Saves the result of an XPath expression evaluation in a 'scope' + + set + org.apache.taglibs.standard.tag.common.xml.SetTag + empty + + +Name of the exported scoped variable to hold +the value specified in the action. The type of the +scoped variable is whatever type the select +expression evaluates to. + + var + true + false + + + +XPath expression to be evaluated. + + select + false + false + + + +Scope for var. + + scope + false + false + + + + + + Conducts a transformation given a source XML document + and an XSLT stylesheet + + transform + org.apache.taglibs.standard.tag.rt.xml.TransformTag + org.apache.taglibs.standard.tei.XmlTransformTEI + JSP + + +Name of the exported +scoped variable for the +transformed XML +document. The type of the +scoped variable is +org.w3c.dom.Document. + + var + false + false + + + +Scope for var. + + scope + false + false + + + +Result +Object that captures or +processes the transformation +result. + + result + false + true + + + +Deprecated. Use attribute +'doc' instead. + + xml + false + true + + + +Source XML document to be +transformed. (If exported by +<x:set>, it must correspond +to a well-formed XML +document, not a partial +document.) + + doc + false + true + + + +Deprecated. Use attribute +'docSystemId' instead. + + xmlSystemId + false + true + + + +The system identifier (URI) +for parsing the XML +document. + + docSystemId + false + true + + + +javax.xml.transform.Source +Transformation stylesheet as +a String, Reader, or +Source object. + + xslt + false + true + + + +The system identifier (URI) +for parsing the XSLT +stylesheet. + + xsltSystemId + false + true + + + + + + Subtag of <choose> that includes its body if its + expression evalutes to 'true' + + when + org.apache.taglibs.standard.tag.common.xml.WhenTag + JSP + + +The test condition that tells whether or +not the body content should be +processed + + select + true + false + + + + Index: lams_tool_notebook/web/WEB-INF/lams.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/lams.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/lams.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,314 @@ + + + + + 1.0 + lams + + LAMSTags + + + + + Output the Server URL as defined in the lams.xml configuration file. + LAMS URL + + + LAMSURL + org.lamsfoundation.lams.web.tag.LAMSURLTag + empty + + + + + Output a random number for the learner and passon flash movies to communicate directly. + generate unique ID + + + generateID + org.lamsfoundation.lams.web.tag.GenerateIDTag + empty + + + Output a random number for the learner and passon flash movies to communicate directly. + id + false + + true + + + + + + + Output details from the shared session UserDTO object + user details + + + user + org.lamsfoundation.lams.web.tag.UserTag + empty + + + Output details from the shared session UserDTO object + property + true + + true + + + + + + + Output the basic URL for the current webapp. e.g. http://server/lams/tool/nb11/ + Base URL for the current web app + + + WebAppURL + org.lamsfoundation.lams.web.tag.WebAppURLTag + empty + + + + + Output stylesheet based on the user preferences. + User's chosen stylesheet + + + css + org.lamsfoundation.lams.web.tag.CssTag + empty + + + Output stylesheet based on the user preferences. + localLinkPath + false + + true + + + + + + + STRUTS-textarea + org.lamsfoundation.lams.web.tag.MultiLinesTextareaTag + empty + + accesskey + false + true + + + alt + false + true + + + altKey + false + true + + + bundle + false + true + + + cols + false + true + + + disabled + false + true + + + errorKey + false + true + + + errorStyle + false + true + + + errorStyleClass + false + true + + + errorStyleId + false + true + + + indexed + false + true + + + name + false + true + + + onblur + false + true + + + onchange + false + true + + + onclick + false + true + + + ondblclick + false + true + + + onfocus + false + true + + + onkeydown + false + true + + + onkeypress + false + true + + + onkeyup + false + true + + + onmousedown + false + true + + + onmousemove + false + true + + + onmouseout + false + true + + + onmouseover + false + true + + + onmouseup + false + true + + + property + true + true + + + readonly + false + true + + + rows + false + true + + + style + false + true + + + styleClass + false + true + + + styleId + false + true + + + tabindex + false + true + + + title + false + true + + + titleKey + false + true + + + value + false + true + + + + Tab + /WEB-INF/tags/Tab.tag + + + Tabs + /WEB-INF/tags/Tabs.tag + + + TabBody + /WEB-INF/tags/TabBody.tag + + + HTMLEditor + /WEB-INF/tags/HTMLEditor.tag + + + SetEditor + /WEB-INF/tags/SetEditor.tag + + + AuthoringButton + /WEB-INF/tags/AuthoringButton.tag + + + headItems + /WEB-INF/tags/headItems.tag + + + Passon + /WEB-INF/tags/Passon.tag + + + ExportPortOutput + /WEB-INF/tags/ExportPortOutput.tag + + + Index: lams_tool_notebook/web/WEB-INF/struts/struts-config.xml =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/struts/struts-config.xml (revision 0) +++ lams_tool_notebook/web/WEB-INF/struts/struts-config.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/web/WEB-INF/struts/tiles-defs.xml =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/struts/tiles-defs.xml (revision 0) +++ lams_tool_notebook/web/WEB-INF/struts/tiles-defs.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/web/WEB-INF/struts/tlds/struts-bean.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/struts/tlds/struts-bean.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/struts/tlds/struts-bean.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,382 @@ + + + + + + + + + + +1.2 +1.1 +bean +http://struts.apache.org/tags-bean + +cookie +org.apache.struts.taglib.bean.CookieTag +org.apache.struts.taglib.bean.CookieTei +empty + +id +true +false + + +multiple +false +true + + +name +true +true + + +value +false +true + + + +define +org.apache.struts.taglib.bean.DefineTag +org.apache.struts.taglib.bean.DefineTei +JSP + +id +true +false + + +name +false +true + + +property +false +true + + +scope +false +true + + +toScope +false +true + + +type +false +true + + +value +false +true + + + +header +org.apache.struts.taglib.bean.HeaderTag +org.apache.struts.taglib.bean.HeaderTei +empty + +id +true +false + + +multiple +false +true + + +name +true +true + + +value +false +true + + + +include +org.apache.struts.taglib.bean.IncludeTag +org.apache.struts.taglib.bean.IncludeTei +empty + +anchor +false +true + + +forward +false +true + + +href +false +true + + +id +true +false + + +name +false +true + + +page +false +true + + +transaction +false +true + + + +message +org.apache.struts.taglib.bean.MessageTag +empty + +arg0 +false +true + + +arg1 +false +true + + +arg2 +false +true + + +arg3 +false +true + + +arg4 +false +true + + +bundle +false +true + + +key +false +true + + +locale +false +true + + +name +false +true + + +property +false +true + + +scope +false +true + + + +page +org.apache.struts.taglib.bean.PageTag +org.apache.struts.taglib.bean.PageTei +empty + +id +true +false + + +property +true +true + + + +parameter +org.apache.struts.taglib.bean.ParameterTag +org.apache.struts.taglib.bean.ParameterTei +empty + +id +true +false + + +multiple +false +true + + +name +true +true + + +value +false +true + + + +resource +org.apache.struts.taglib.bean.ResourceTag +org.apache.struts.taglib.bean.ResourceTei +empty + +id +true +false + + +input +false +true + + +name +true +true + + + +size +org.apache.struts.taglib.bean.SizeTag +org.apache.struts.taglib.bean.SizeTei +empty + +collection +false +true + + +id +true +false + + +name +false +true + + +property +false +true + + +scope +false +true + + + +struts +org.apache.struts.taglib.bean.StrutsTag +org.apache.struts.taglib.bean.StrutsTei +empty + +id +true +false + + +formBean +false +true + + +forward +false +true + + +mapping +false +true + + + +write +org.apache.struts.taglib.bean.WriteTag +empty + +bundle +false +true + + +filter +false +true + + +format +false +true + + +formatKey +false +true + + +ignore +false +true + + +locale +false +true + + +name +true +true + + +property +false +true + + +scope +false +true + + + + + + Index: lams_tool_notebook/web/WEB-INF/struts/tlds/struts-html.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/struts/tlds/struts-html.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/struts/tlds/struts-html.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,3302 @@ + + + + + + + + + + +1.2 +1.1 +html +http://struts.apache.org/tags-html + +base +org.apache.struts.taglib.html.BaseTag +empty + +target +false +true + + +server +false +true + + + +button +org.apache.struts.taglib.html.ButtonTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +indexed +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +cancel +org.apache.struts.taglib.html.CancelTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +checkbox +org.apache.struts.taglib.html.CheckboxTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +errors +org.apache.struts.taglib.html.ErrorsTag +empty + +bundle +false +true + + +footer +false +true + + +header +false +true + + +locale +false +true + + +name +false +true + + +prefix +false +true + + +property +false +true + + +suffix +false +true + + + +file +org.apache.struts.taglib.html.FileTag + +accesskey +false +true + + +accept +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +maxlength +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +size +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +form +org.apache.struts.taglib.html.FormTag +JSP + +action +true +true + + +acceptCharset +false +true + + +disabled +false +true + + +enctype +false +true + + +focus +false +true + + +focusIndex +false +true + + +method +false +true + + +onreset +false +true + + +onsubmit +false +true + + +readonly +false +true + + +scriptLanguage +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +target +false +true + + + +frame +org.apache.struts.taglib.html.FrameTag + +bundle +false +true + + +action +false +true + + +module +false +true + + +anchor +false +true + + +forward +false +true + + +frameborder +false +true + + +frameName +false +true + + +href +false +true + + +longdesc +false +true + + +marginheight +false +true + + +marginwidth +false +true + + +name +false +true + + +noresize +false +true + + +page +false +true + + +paramId +false +true + + +paramName +false +true + + +paramProperty +false +true + + +paramScope +false +true + + +property +false +true + + +scope +false +true + + +scrolling +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +title +false +true + + +titleKey +false +true + + +transaction +false +true + + + +hidden +org.apache.struts.taglib.html.HiddenTag +empty + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +indexed +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + +write +false +true + + + +html +org.apache.struts.taglib.html.HtmlTag +JSP + +lang +false +true + + +locale +false +true + + +xhtml +false +true + + + +image +org.apache.struts.taglib.html.ImageTag + +accesskey +false +true + + +align +false +true + + +alt +false +true + + +altKey +false +true + + +border +false +true + + +bundle +false +true + + +disabled +false +true + + +indexed +false +true + + +locale +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +page +false +true + + +pageKey +false +true + + +property +false +true + + +src +false +true + + +srcKey +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +img +org.apache.struts.taglib.html.ImgTag +empty + +align +false +true + + +alt +false +true + + +altKey +false +true + + +border +false +true + + +bundle +false +true + + +contextRelative +false +true + + +height +false +true + + +hspace +false +true + + +imageName +false +true + + +ismap +false +true + + +locale +false +true + + +lowsrc +false +true + + +name +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +paramId +false +true + + +page +false +true + + +pageKey +false +true + + +action +false +true + + +module +false +true + + +paramName +false +true + + +paramProperty +false +true + + +paramScope +false +true + + +property +false +true + + +scope +false +true + + +src +false +true + + +srcKey +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +title +false +true + + +titleKey +false +true + + +useLocalEncoding +false +true + + +usemap +false +true + + +vspace +false +true + + +width +false +true + + + +javascript +org.apache.struts.taglib.html.JavascriptValidatorTag +empty + +cdata +false +true + + +dynamicJavascript +false +false + + +formName +false +true + + +method +false +true + + +page +false +true + + +scriptLanguage +false +true + + +src +false +true + + +staticJavascript +false +false + + +htmlComment +false +true + + +bundle +false +true + + + +link +org.apache.struts.taglib.html.LinkTag + +accesskey +false +true + + +action +false +true + + +module +false +true + + +anchor +false +true + + +forward +false +true + + +href +false +true + + +indexed +false +true + + +indexId +false +true + + +bundle +false +true + + +linkName +false +true + + +name +false +true + + +onblur +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +page +false +true + + +paramId +false +true + + +paramName +false +true + + +paramProperty +false +true + + +paramScope +false +true + + +property +false +true + + +scope +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +target +false +true + + +title +false +true + + +titleKey +false +true + + +transaction +false +true + + +useLocalEncoding +false +true + + + +messages +org.apache.struts.taglib.html.MessagesTag +org.apache.struts.taglib.html.MessagesTei +JSP + +id +true +false + + +bundle +false +true + + +locale +false +true + + +name +false +true + + +property +false +true + + +header +false +true + + +footer +false +true + + +message +false +true + + + +multibox +org.apache.struts.taglib.html.MultiboxTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +option +org.apache.struts.taglib.html.OptionTag + +bundle +false +true + + +disabled +false +true + + +key +false +true + + +locale +false +true + + +style +false +true + + +styleId +false +true + + +styleClass +false +true + + +value +true +true + + + +options +org.apache.struts.taglib.html.OptionsTag +empty + +collection +false +true + + +filter +false +true + + +labelName +false +true + + +labelProperty +false +true + + +name +false +true + + +property +false +true + + +style +false +true + + +styleClass +false +true + + + +optionsCollection +org.apache.struts.taglib.html.OptionsCollectionTag +empty + +filter +false +true + + +label +false +true + + +name +false +true + + +property +false +true + + +style +false +true + + +styleClass +false +true + + +value +false +true + + + +password +org.apache.struts.taglib.html.PasswordTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +maxlength +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +readonly +false +true + + +redisplay +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +size +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +radio +org.apache.struts.taglib.html.RadioTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +property +true +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +true +true + + +idName +false +true + + + +reset +org.apache.struts.taglib.html.ResetTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +rewrite +org.apache.struts.taglib.html.RewriteTag +empty + +action +false +true + + +module +false +true + + +anchor +false +true + + +forward +false +true + + +href +false +true + + +name +false +true + + +page +false +true + + +paramId +false +true + + +paramName +false +true + + +paramProperty +false +true + + +paramScope +false +true + + +property +false +true + + +scope +false +true + + +transaction +false +true + + +useLocalEncoding +false +true + + + +select +org.apache.struts.taglib.html.SelectTag +JSP + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +multiple +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +size +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +submit +org.apache.struts.taglib.html.SubmitTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +indexed +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +text +org.apache.struts.taglib.html.TextTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +maxlength +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +readonly +false +true + + +size +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +textarea +org.apache.struts.taglib.html.TextareaTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +cols +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +readonly +false +true + + +rows +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +xhtml +org.apache.struts.taglib.html.XhtmlTag +empty + + + Index: lams_tool_notebook/web/WEB-INF/struts/tlds/struts-logic.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/struts/tlds/struts-logic.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/struts/tlds/struts-logic.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,652 @@ + + + + + + + + + +1.2 +1.1 +logic +http://struts.apache.org/tags-logic + +empty +org.apache.struts.taglib.logic.EmptyTag +JSP + +name +false +true + + +property +false +true + + +scope +false +true + + + +equal +org.apache.struts.taglib.logic.EqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +forward +org.apache.struts.taglib.logic.ForwardTag +empty + +name +true +true + + + +greaterEqual +org.apache.struts.taglib.logic.GreaterEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +greaterThan +org.apache.struts.taglib.logic.GreaterThanTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +iterate +org.apache.struts.taglib.logic.IterateTag +org.apache.struts.taglib.logic.IterateTei +JSP + +collection +false +true + + +id +true +false + + +indexId +false +false + + +length +false +true + + +name +false +true + + +offset +false +true + + +property +false +true + + +scope +false +true + + +type +false +true + + + +lessEqual +org.apache.struts.taglib.logic.LessEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +lessThan +org.apache.struts.taglib.logic.LessThanTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +match +org.apache.struts.taglib.logic.MatchTag +JSP + +cookie +false +true + + +header +false +true + + +location +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +messagesNotPresent +org.apache.struts.taglib.logic.MessagesNotPresentTag +JSP + +name +false +true + + +property +false +true + + +message +false +true + + + +messagesPresent +org.apache.struts.taglib.logic.MessagesPresentTag +JSP + +name +false +true + + +property +false +true + + +message +false +true + + + +notEmpty +org.apache.struts.taglib.logic.NotEmptyTag +JSP + +name +false +true + + +property +false +true + + +scope +false +true + + + +notEqual +org.apache.struts.taglib.logic.NotEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +notMatch +org.apache.struts.taglib.logic.NotMatchTag +JSP + +cookie +false +true + + +header +false +true + + +location +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +notPresent +org.apache.struts.taglib.logic.NotPresentTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +role +false +true + + +scope +false +true + + +user +false +true + + + +present +org.apache.struts.taglib.logic.PresentTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +role +false +true + + +scope +false +true + + +user +false +true + + + +redirect +org.apache.struts.taglib.logic.RedirectTag + +action +false +true + + +anchor +false +true + + +forward +false +true + + +href +false +true + + +name +false +true + + +page +false +true + + +paramId +false +true + + +paramName +false +true + + +paramProperty +false +true + + +paramScope +false +true + + +property +false +true + + +scope +false +true + + +transaction +false +true + + +useLocalEncoding +false +true + + + + + + Index: lams_tool_notebook/web/WEB-INF/struts/tlds/struts-nested.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/struts/tlds/struts-nested.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/struts/tlds/struts-nested.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,3171 @@ + + + + + + + + + +1.2 +1.1 +nested +http://struts.apache.org/tags-nested + +nest +org.apache.struts.taglib.nested.NestedPropertyTag +JSP + +property +false +true + + + +writeNesting +org.apache.struts.taglib.nested.NestedWriteNestingTag +org.apache.struts.taglib.nested.NestedWriteNestingTei +JSP + +property +false +true + + +id +false +true + + +filter +false +true + + + +root +org.apache.struts.taglib.nested.NestedRootTag +JSP + +name +false +true + + + +define +org.apache.struts.taglib.nested.bean.NestedDefineTag +org.apache.struts.taglib.nested.bean.NestedDefineTei +empty + +id +true +true + + +name +false +true + + +property +false +true + + +scope +false +true + + +toScope +false +true + + +type +false +true + + +value +false +true + + + +message +org.apache.struts.taglib.nested.bean.NestedMessageTag +empty + +arg0 +false +true + + +arg1 +false +true + + +arg2 +false +true + + +arg3 +false +true + + +arg4 +false +true + + +bundle +false +true + + +key +false +true + + +locale +false +true + + +name +false +true + + +property +false +true + + +scope +false +true + + + +size +org.apache.struts.taglib.nested.bean.NestedSizeTag +org.apache.struts.taglib.bean.SizeTei +empty + +collection +false +true + + +id +true +true + + +name +false +true + + +property +false +true + + +scope +false +true + + + +write +org.apache.struts.taglib.nested.bean.NestedWriteTag +empty + +bundle +false +true + + +filter +false +true + + +format +false +true + + +formatKey +false +true + + +ignore +false +true + + +locale +false +true + + +name +false +true + + +property +false +true + + +scope +false +true + + + +checkbox +org.apache.struts.taglib.nested.html.NestedCheckboxTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +errors +org.apache.struts.taglib.nested.html.NestedErrorsTag +empty + +bundle +false +true + + +footer +false +true + + +header +false +true + + +locale +false +true + + +name +false +true + + +prefix +false +true + + +property +false +true + + +suffix +false +true + + + +file +org.apache.struts.taglib.nested.html.NestedFileTag + +accesskey +false +true + + +accept +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +maxlength +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +size +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +form +org.apache.struts.taglib.nested.html.NestedFormTag +JSP + +action +true +true + + +acceptCharset +false +true + + +disabled +false +true + + +enctype +false +true + + +focus +false +true + + +focusIndex +false +true + + +method +false +true + + +onreset +false +true + + +onsubmit +false +true + + +readonly +false +true + + +scriptLanguage +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +target +false +true + + + +hidden +org.apache.struts.taglib.nested.html.NestedHiddenTag + +alt +false +true + + +altKey +false +true + + +indexed +false +true + + +name +false +true + + +property +true +true + + +title +false +true + + +titleKey +false +true + + +styleClass +false +true + + +styleId +false +true + + +value +false +true + + +write +false +true + + + +image +org.apache.struts.taglib.nested.html.NestedImageTag + +accesskey +false +true + + +align +false +true + + +alt +false +true + + +altKey +false +true + + +border +false +true + + +bundle +false +true + + +disabled +false +true + + +indexed +false +true + + +locale +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +page +false +true + + +pageKey +false +true + + +property +false +true + + +src +false +true + + +srcKey +false +true + + +style +false +true + + +styleClass +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +img +org.apache.struts.taglib.nested.html.NestedImgTag +empty + +accesskey +false +true + + +align +false +true + + +alt +false +true + + +altKey +false +true + + +border +false +true + + +bundle +false +true + + +height +false +true + + +hspace +false +true + + +imageName +false +true + + +ismap +false +true + + +locale +false +true + + +lowsrc +false +true + + +name +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +paramId +false +true + + +page +false +true + + +pageKey +false +true + + +action +false +true + + +module +false +true + + +paramName +false +true + + +paramProperty +false +true + + +paramScope +false +true + + +property +false +true + + +scope +false +true + + +src +false +true + + +srcKey +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +title +false +true + + +titleKey +false +true + + +useLocalEncoding +false +true + + +usemap +false +true + + +vspace +false +true + + +width +false +true + + + +link +org.apache.struts.taglib.nested.html.NestedLinkTag + +accesskey +false +true + + +action +false +true + + +module +false +true + + +anchor +false +true + + +forward +false +true + + +href +false +true + + +indexed +false +true + + +indexId +false +true + + +bundle +false +true + + +linkName +false +true + + +name +false +true + + +onblur +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +page +false +true + + +paramId +false +true + + +paramName +false +true + + +paramProperty +false +true + + +paramScope +false +true + + +property +false +true + + +scope +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +target +false +true + + +title +false +true + + +titleKey +false +true + + +transaction +false +true + + +useLocalEncoding +false +true + + + +messages +org.apache.struts.taglib.nested.html.NestedMessagesTag +org.apache.struts.taglib.html.MessagesTei +JSP + +id +true +true + + +bundle +false +true + + +locale +false +true + + +name +false +true + + +property +false +true + + +header +false +true + + +footer +false +true + + +message +false +true + + + +multibox +org.apache.struts.taglib.nested.html.NestedMultiboxTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +options +org.apache.struts.taglib.nested.html.NestedOptionsTag +empty + +collection +false +true + + +filter +false +true + + +labelName +false +true + + +labelProperty +false +true + + +name +false +true + + +property +false +true + + +style +false +true + + +styleClass +false +true + + + +optionsCollection +org.apache.struts.taglib.nested.html.NestedOptionsCollectionTag +empty + +filter +false +true + + +label +false +true + + +name +false +true + + +property +true +true + + +style +false +true + + +styleClass +false +true + + +value +false +true + + + +password +org.apache.struts.taglib.nested.html.NestedPasswordTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +maxlength +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +readonly +false +true + + +redisplay +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +size +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +radio +org.apache.struts.taglib.nested.html.NestedRadioTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +property +true +true + + +onmousedown +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +true +true + + +idName +false +true + + + +select +org.apache.struts.taglib.nested.html.NestedSelectTag +JSP + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +multiple +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +size +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +submit +org.apache.struts.taglib.nested.html.NestedSubmitTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +indexed +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +text +org.apache.struts.taglib.nested.html.NestedTextTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +maxlength +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +readonly +false +true + + +size +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +textarea +org.apache.struts.taglib.nested.html.NestedTextareaTag + +accesskey +false +true + + +alt +false +true + + +altKey +false +true + + +bundle +false +true + + +cols +false +true + + +disabled +false +true + + +errorKey +false +true + + +errorStyle +false +true + + +errorStyleClass +false +true + + +errorStyleId +false +true + + +indexed +false +true + + +name +false +true + + +onblur +false +true + + +onchange +false +true + + +onclick +false +true + + +ondblclick +false +true + + +onfocus +false +true + + +onkeydown +false +true + + +onkeypress +false +true + + +onkeyup +false +true + + +onmousedown +false +true + + +onmousemove +false +true + + +onmouseout +false +true + + +onmouseover +false +true + + +onmouseup +false +true + + +property +true +true + + +readonly +false +true + + +rows +false +true + + +style +false +true + + +styleClass +false +true + + +styleId +false +true + + +tabindex +false +true + + +title +false +true + + +titleKey +false +true + + +value +false +true + + + +empty +org.apache.struts.taglib.nested.logic.NestedEmptyTag +JSP + +name +false +true + + +property +false +true + + +scope +false +true + + + +equal +org.apache.struts.taglib.nested.logic.NestedEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +greaterEqual +org.apache.struts.taglib.nested.logic.NestedGreaterEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +greaterThan +org.apache.struts.taglib.nested.logic.NestedGreaterThanTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +iterate +org.apache.struts.taglib.nested.logic.NestedIterateTag +org.apache.struts.taglib.nested.logic.NestedIterateTei +JSP + +collection +false +true + + +id +false +true + + +indexId +false +true + + +length +false +true + + +name +false +true + + +offset +false +true + + +property +false +true + + +scope +false +true + + +type +false +true + + + +lessEqual +org.apache.struts.taglib.nested.logic.NestedLessEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +lessThan +org.apache.struts.taglib.nested.logic.NestedLessThanTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +match +org.apache.struts.taglib.nested.logic.NestedMatchTag +JSP + +cookie +false +true + + +header +false +true + + +location +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +messagesNotPresent +org.apache.struts.taglib.nested.logic.NestedMessagesNotPresentTag +JSP + +name +false +true + + +property +false +true + + +message +false +true + + + +messagesPresent +org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag +JSP + +name +false +true + + +property +false +true + + +message +false +true + + + +notEmpty +org.apache.struts.taglib.nested.logic.NestedNotEmptyTag +JSP + +name +false +true + + +property +false +true + + +scope +false +true + + + +notEqual +org.apache.struts.taglib.nested.logic.NestedNotEqualTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +notMatch +org.apache.struts.taglib.nested.logic.NestedNotMatchTag +JSP + +cookie +false +true + + +header +false +true + + +location +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +scope +false +true + + +value +true +true + + + +notPresent +org.apache.struts.taglib.nested.logic.NestedNotPresentTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +role +false +true + + +scope +false +true + + +user +false +true + + + +present +org.apache.struts.taglib.nested.logic.NestedPresentTag +JSP + +cookie +false +true + + +header +false +true + + +name +false +true + + +parameter +false +true + + +property +false +true + + +role +false +true + + +scope +false +true + + +user +false +true + + + + + + Index: lams_tool_notebook/web/WEB-INF/struts/tlds/struts-tiles.tld =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/struts/tlds/struts-tiles.tld (revision 0) +++ lams_tool_notebook/web/WEB-INF/struts/tlds/struts-tiles.tld (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,344 @@ + + + + + + + + + + +1.2 +1.1 +tiles +http://struts.apache.org/tags-tiles + +insert +org.apache.struts.taglib.tiles.InsertTag +JSP + +template +false +true + + +component +false +true + + +page +false +true + + +definition +false +true + + +attribute +false +false + + +name +false +true + + +beanName +false +true + + +beanProperty +false +true + + +beanScope +false +false + + +flush +false +false + + +ignore +false +true + + +role +false +true + + +controllerUrl +false +true + + +controllerClass +false +true + + + +definition +org.apache.struts.taglib.tiles.DefinitionTag +JSP + +id +true +false + + +scope +false +false + + +template +false +true + + +page +false +true + + +role +false +true + + +extends +false +true + + + +put +org.apache.struts.taglib.tiles.PutTag +JSP + +name +false +false + + +value +false +true + + +content +false +true + + +direct +false +false + + +type +false +false + + +beanName +false +true + + +beanProperty +false +true + + +beanScope +false +false + + +role +false +true + + + +putList +org.apache.struts.taglib.tiles.PutListTag +JSP + +name +true +false + + + +add +org.apache.struts.taglib.tiles.AddTag +JSP + +value +false +false + + +content +false +true + + +direct +false +false + + +type +false +false + + +beanName +false +true + + +beanProperty +false +true + + +beanScope +false +false + + +role +false +true + + + +get +org.apache.struts.taglib.tiles.GetTag +empty + +name +true +true + + +ignore +false +true + + +flush +false +false + + +role +false +true + + + +getAsString +org.apache.struts.taglib.tiles.GetAttributeTag +empty + +name +true +true + + +ignore +false +true + + +role +false +true + + + +useAttribute +org.apache.struts.taglib.tiles.UseAttributeTag +org.apache.struts.taglib.tiles.UseAttributeTei +empty + +id +false +false + + +classname +false +false + + +scope +false +false + + +name +true +true + + +ignore +false +true + + + +importAttribute +org.apache.struts.taglib.tiles.ImportAttributeTag +empty + +name +false +true + + +scope +false +false + + +ignore +false +true + + + +initComponentDefinitions +org.apache.struts.taglib.tiles.InitDefinitionsTag +empty + +file +true +false + + +classname +false +false + + + + + + Index: lams_tool_notebook/web/WEB-INF/struts/validator-rules.xml =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/struts/validator-rules.xml (revision 0) +++ lams_tool_notebook/web/WEB-INF/struts/validator-rules.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/web/WEB-INF/tags/AuthoringButton.tag =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/tags/AuthoringButton.tag (revision 0) +++ lams_tool_notebook/web/WEB-INF/tags/AuthoringButton.tag (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,92 @@ +<% +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * AuthoringButton.tag + * Author: Dapeng Ni + * Description: Creates the save/cancel button for authoring page + */ + + %> +<%@ tag body-content="scriptless" %> +<%@ taglib uri="tags-core" prefix="c" %> +<%@ taglib uri="tags-fmt" prefix="fmt" %> +<%@ taglib uri="tags-html" prefix="html" %> + +<%@ attribute name="formID" required="true" rtexprvalue="true" %> +<%@ attribute name="toolSignature" required="true" rtexprvalue="true" %> +<%@ attribute name="toolContentID" required="true" rtexprvalue="true" %> +<%@ attribute name="clearSessionActionUrl" required="true" rtexprvalue="true" %> + +<%-- Optional attribute --%> +<%@ attribute name="accessMode" required="false" rtexprvalue="true" %> +<%@ attribute name="cancelButtonLabelKey" required="false" rtexprvalue="true" %> +<%@ attribute name="saveButtonLabelKey" required="false" rtexprvalue="true" %> +<%@ attribute name="cancelConfirmMsgKey" required="false" rtexprvalue="true" %> +<%@ attribute name="defineLater" required="false" rtexprvalue="true" %> +<%@ attribute name="customiseSessionID" required="false" rtexprvalue="true" %> + +<%-- Default value for message key --%> + + + + + + + + + + + + + + + +

+ + + + + + +

+ \ No newline at end of file Index: lams_tool_notebook/web/WEB-INF/tags/ExportPortOutput.tag =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/tags/ExportPortOutput.tag (revision 0) +++ lams_tool_notebook/web/WEB-INF/tags/ExportPortOutput.tag (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,59 @@ +<% +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * Passon + * Author: Fiona Malikoff + * Description: Outputs the Activity details on the main page in export portfolio. Recursive tag. + * + */ + + %> +<%@ tag body-content="empty" %> +<%@ attribute name="actport" required="true" rtexprvalue="true" type="org.lamsfoundation.lams.learning.export.ActivityPortfolio" %> +<%@ taglib uri="tags-core" prefix="c" %> +<%@ taglib uri="tags-lams" prefix="lams" %> + +
  • + + + "/> + + + + + + + + +
      + + + +
    +
    +
    + +
  • + Index: lams_tool_notebook/web/WEB-INF/tags/HTMLEditor.tag =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/tags/HTMLEditor.tag (revision 0) +++ lams_tool_notebook/web/WEB-INF/tags/HTMLEditor.tag (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,56 @@ +<%/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * HTMLEditor.tag + * Author: Mitchell Seaton + * Description: Creates a single instance of FCK Editor used over multiple fields. + * Wiki: + */ + + %> +<%@ tag body-content="empty"%> +<%@ taglib uri="fck-editor" prefix="FCK"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-lams" prefix="lams"%> + + + + + Index: lams_tool_notebook/web/WEB-INF/tags/Passon.tag =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/tags/Passon.tag (revision 0) +++ lams_tool_notebook/web/WEB-INF/tags/Passon.tag (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,82 @@ +<% +/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * Passon + * Author: Mitchell Seaton + * Description: Passes on progress data to the Flash Learner to update the progress bar. + * + */ + + %> +<%@ tag body-content="empty" %> +<%@ attribute name="progress" required="true" rtexprvalue="true" type="java.lang.String" %> +<%@ attribute name="id" required="true" rtexprvalue="true" %> +<%@ attribute name="redirect" required="false" rtexprvalue="true" %> +<%@ taglib uri="tags-core" prefix="c" %> +<%@ taglib uri="tags-lams" prefix="lams" %> + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_notebook/web/WEB-INF/tags/SetEditor.tag =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/tags/SetEditor.tag (revision 0) +++ lams_tool_notebook/web/WEB-INF/tags/SetEditor.tag (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,96 @@ +<%/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * SetEditor.tag + * Author: Mitchell Seaton + * Description: Creates a dynamic textarea field using a HTML Editor. + * Wiki: + */ + + %> +<%@ tag body-content="empty"%> +<%@ attribute name="id" required="true" rtexprvalue="true"%> +<%@ attribute name="text" required="true" rtexprvalue="true"%> +<%@ attribute name="small" required="false" rtexprvalue="true"%> +<%@ attribute name="key" required="false" rtexprvalue="true"%> +<%@ attribute name="alt" required="false" rtexprvalue="true"%> + + +<%@ taglib uri="tags-function" prefix="fn"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    Index: lams_tool_notebook/web/WEB-INF/tags/Tab.tag =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/tags/Tab.tag (revision 0) +++ lams_tool_notebook/web/WEB-INF/tags/Tab.tag (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,99 @@ +<%/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * Tab.tag + * Author: Mitchell Seaton + * Description: Creates a tab element. + * Wiki: + */ + + %> +<%@ tag body-content="empty"%> +<%@ attribute name="id" required="true" rtexprvalue="true"%> +<%@ attribute name="value" required="false" rtexprvalue="true"%> +<%@ attribute name="key" required="false" rtexprvalue="true"%> +<%@ attribute name="inactive" required="false" rtexprvalue="true"%> +<%@ attribute name="methodCall" required="false" rtexprvalue="true"%> + +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-bean" prefix="bean"%> +<%@ taglib uri="tags-lams" prefix="lams"%> + + + + + + + + +<%// Usually methodCall is selectTab, but the calling code can override methodCall if desired. + // this is handy if the page needs different logic on initialisation and user switching tabs %> + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/web/WEB-INF/tags/TabBody.tag =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/tags/TabBody.tag (revision 0) +++ lams_tool_notebook/web/WEB-INF/tags/TabBody.tag (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,52 @@ +<%/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * TabBody.tag + * Author: Mitchell Seaton + * Description: Creates the body container for a tab element + * Wiki: + */ + + %> +<%@ tag body-content="scriptless"%> +<%@ attribute name="id" required="true" rtexprvalue="true"%> +<%@ attribute name="tabTitle" required="false" rtexprvalue="true"%> +<%@ attribute name="titleKey" required="false" rtexprvalue="true"%> +<%@ attribute name="page" required="false" rtexprvalue="true"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-bean" prefix="bean"%> + + +
    + + + + + + + + + +
    + Index: lams_tool_notebook/web/WEB-INF/tags/Tabs.tag =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/tags/Tabs.tag (revision 0) +++ lams_tool_notebook/web/WEB-INF/tags/Tabs.tag (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,69 @@ +<%/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * Tabs.tag + * Author: Mitchell Seaton + * Description: Create a tab list from a input collection or nested Tab tags. + * Wiki: + */ + + %> +<%@ tag body-content="scriptless"%> +<%@ attribute name="collection" type="java.util.Collection" required="false" rtexprvalue="true"%> +<%@ attribute name="control" required="false" rtexprvalue="true"%> +<%@ attribute name="useKey" required="false" rtexprvalue="true"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-lams" prefix="lams"%> + + + + + + + + + + + + Index: lams_tool_notebook/web/WEB-INF/tags/headItems.tag =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/tags/headItems.tag (revision 0) +++ lams_tool_notebook/web/WEB-INF/tags/headItems.tag (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,55 @@ +<%/**************************************************************** + * 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.0 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * Standard Head Items + * Author: Fiona Malikoff + * Description: Includes all the standard head items e.g. the + * lams css files, sets the content type, standard javascript files. + */ + + %> +<%@ tag body-content="empty"%> + +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> + + + + + + + + + + + + + + + + + + + Index: lams_tool_notebook/web/WEB-INF/web.xml =================================================================== diff -u --- lams_tool_notebook/web/WEB-INF/web.xml (revision 0) +++ lams_tool_notebook/web/WEB-INF/web.xml (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,324 @@ + + + + + + + javax.servlet.jsp.jstl.fmt.localizationContext + org.lamsfoundation.lams.tool.notebook.ApplicationResources + + + + contextConfigLocation + + classpath:/org/lamsfoundation/lams/applicationContext.xml + classpath:/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml + classpath:/org/lamsfoundation/lams/toolApplicationContext.xml + classpath:/org/lamsfoundation/lams/learning/learningApplicationContext.xml + classpath:/org/lamsfoundation/lams/contentrepository/applicationContext.xml + classpath:/org/lamsfoundation/lams/tool/notebook/notebookApplicationContext.xml + + + + + SystemSessionFilter + + org.lamsfoundation.lams.web.session.SystemSessionFilter + + + + hibernateFilter + + org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter + + + sessionFactoryBeanName + notebookSessionFactory + + + + LocaleFilter + + org.lamsfoundation.lams.web.filter.LocaleFilter + + + + + SystemSessionFilter + /* + + + hibernateFilter + /* + + + LocaleFilter + /* + + + + + org.springframework.web.context.ContextLoaderListener + + + + + org.lamsfoundation.lams.web.SessionListener + + + + + action + org.apache.struts.action.ActionServlet + + config + /WEB-INF/struts/struts-config.xml + + + debug + 999 + + + detail + 2 + + + validate + true + + 1 + + + + + + Connector + com.fredck.FCKeditor.connector.ConnectorServlet + + baseDir + /UserFiles/ + + + debug + false + + 1 + + + + + Attachment Download + Attachment Download + download + org.lamsfoundation.lams.contentrepository.client.ToolDownload + + toolContentHandlerBeanName + notebookToolContentHandler + + 3 + + + + exportPortfolio + org.lamsfoundation.lams.tool.notebook.web.servlets.ExportServlet + + + + action + *.do + + + + + Connector + /fckeditor/editor/filemanager/browser/default/connectors/jsp/connector + + + + download + /download/* + + + + exportPortfolio + /exportPortfolio + + + + 120 + + + + + + + + + + + + + tags-bean + /WEB-INF/struts/tlds/struts-bean.tld + + + tags-html + /WEB-INF/struts/tlds/struts-html.tld + + + tags-logic + /WEB-INF/struts/tlds/struts-logic.tld + + + tags-tiles + /WEB-INF/struts/tlds/struts-tiles.tld + + + + + + tags-fmt + /WEB-INF/jstl/tlds/fmt.tld + + + tags-core + /WEB-INF/jstl/tlds/c.tld + + + tags-function + /WEB-INF/jstl/tlds/fn.tld + + + tags-xml + /WEB-INF/jstl/tlds/x.tld + + + + + + tags-permittedTaglibs + /WEB-INF/jstl/tlds/permittedTaglibs.tld + + + tags-scriptfree + /WEB-INF/jstl/tlds/scriptfree.tld + + + + + + fck-editor + /WEB-INF/fckeditor/tlds/FCKeditor.tld + + + tags-lams + /WEB-INF/lams.tld + + + + + + + + Secure Content + *.jsp + *.html + *.do + + + LEARNER + TEACHER + STAFF + AUTHOR + ADMIN + SYSADMIN + + + + + + Authoring Update + /authoring.do + + + AUTHOR + + + + + Staff Content + /monitoring.do + + + STAFF + TEACHER + + + + + + + Download Files + /download/ + + + AUTHOR + STAFF + TEACHER + ADMIN + SYSADMIN + + + + + + FORM + LAMS + + /login.jsp + /login.jsp?failed=y + + + + + + + Student + LEARNER + + + Student + TEACHER + + + + Can create/modify a learning design + AUTHOR + + + + Can running and monitoring a learning session + STAFF + + + + Can add/remove users to the system, set up classes of users for sessions + ADMIN + + + + Can add/remove users to the system, set up classes of users for sessions + SYSADMIN + + + Index: lams_tool_notebook/web/common/empty.jsp =================================================================== diff -u --- lams_tool_notebook/web/common/empty.jsp (revision 0) +++ lams_tool_notebook/web/common/empty.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_notebook/web/common/footer.jsp =================================================================== diff -u --- lams_tool_notebook/web/common/footer.jsp (revision 0) +++ lams_tool_notebook/web/common/footer.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1 @@ +

    Copyright (C) 2006 LAMS Foundation (http://lamsfoundation.org

    Index: lams_tool_notebook/web/common/header.jsp =================================================================== diff -u --- lams_tool_notebook/web/common/header.jsp (revision 0) +++ lams_tool_notebook/web/common/header.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,17 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + <bean:message key="activity.title" /> + + + + + Index: lams_tool_notebook/web/common/message.jsp =================================================================== diff -u --- lams_tool_notebook/web/common/message.jsp (revision 0) +++ lams_tool_notebook/web/common/message.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,5 @@ +<%@ include file="/common/taglibs.jsp"%> + +

    + ${requestScope.message}; +

    \ No newline at end of file Index: lams_tool_notebook/web/common/taglibs.jsp =================================================================== diff -u --- lams_tool_notebook/web/common/taglibs.jsp (revision 0) +++ lams_tool_notebook/web/common/taglibs.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,11 @@ +<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> + +<%@ taglib uri="tags-bean" prefix="bean"%> +<%@ taglib uri="tags-logic" prefix="logic"%> +<%@ taglib uri="tags-tiles" prefix="tiles"%> +<%@ taglib uri="tags-html" prefix="html"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="fck-editor" prefix="fck"%> + \ No newline at end of file Index: lams_tool_notebook/web/images/edit.gif =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/error.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/error_big.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/exclude.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/exclude_big.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/good.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/good_big.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/hidden.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/hidden_big.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/icon_notebook.swf =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/success.gif =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/warning.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/images/warning_big.png =================================================================== diff -u Binary files differ Index: lams_tool_notebook/web/includes/javascript/xmlrequest.js =================================================================== diff -u --- lams_tool_notebook/web/includes/javascript/xmlrequest.js (revision 0) +++ lams_tool_notebook/web/includes/javascript/xmlrequest.js (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,56 @@ +// global request and XML document objects +var req; + +// retrieve XML document (reusable generic function); +// parameter is URL string (relative or complete) to +// an .xml file whose Content-Type is a valid XML +// type, such as text/xml; XML source must be from +// same domain as HTML file +function loadXMLDoc(url,target) { + // branch for native XMLHttpRequest object + if (window.XMLHttpRequest) { + req = new XMLHttpRequest(); + req.onreadystatechange = function(){ + processReqChange(target); + } + req.open("GET", url, true); + req.send(null); + // branch for IE/Windows ActiveX version + } else if (window.ActiveXObject) { + req = new ActiveXObject("Microsoft.XMLHTTP"); + if (req) { + req.onreadystatechange = function(){ + processReqChange(target); + } + req.open("GET", url, true); + req.send(); + } + } +} + + +// handle onreadystatechange event of req object +function processReqChange(target) { + // only if req shows "loaded" + if (req.readyState == 4) { + // only if "OK" + if (req.status == 200) { + var select = document.getElementById(target); + select.innerHTML = req.responseText; + } else { + alert("There was a problem retrieving the XML data:\n" + + req.statusText); + } + } +} +//main function, will call loadXMLDoc() directly, but catch any exception and alert. +function loadDoc(url,target) { + try { + loadXMLDoc(url, target); + } + catch(e) { + var msg = (typeof e == "string") ? e : ((e.message) ? e.message : "Unknown Error"); + alert("Unable to get XML data:\n" + msg); + return; + } +} \ No newline at end of file Index: lams_tool_notebook/web/layouts/defaultLayout.jsp =================================================================== diff -u --- lams_tool_notebook/web/layouts/defaultLayout.jsp (revision 0) +++ lams_tool_notebook/web/layouts/defaultLayout.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,22 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + +
    + + +

    + +

    +
    +
    + +
    + +
    + + Index: lams_tool_notebook/web/layouts/learningLayout.jsp =================================================================== diff -u --- lams_tool_notebook/web/layouts/learningLayout.jsp (revision 0) +++ lams_tool_notebook/web/layouts/learningLayout.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,16 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + +
    + + + + +
    + + Index: lams_tool_notebook/web/layouts/tabLayout.jsp =================================================================== diff -u --- lams_tool_notebook/web/layouts/tabLayout.jsp (revision 0) +++ lams_tool_notebook/web/layouts/tabLayout.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,18 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + +
    + + +

    + +

    + +
    + + Index: lams_tool_notebook/web/pages/authoring/advanced.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/authoring/advanced.jsp (revision 0) +++ lams_tool_notebook/web/pages/authoring/advanced.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,15 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + +
    + +
    + Index: lams_tool_notebook/web/pages/authoring/authoring.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/authoring/authoring.jsp (revision 0) +++ lams_tool_notebook/web/pages/authoring/authoring.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,50 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + +
    + + + + + + +
    + + + + +
    + + <%-- Page tabs --%> + + + + + + + + + + + + + + +
    +
    + + + + Index: lams_tool_notebook/web/pages/authoring/basic.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/authoring/basic.jsp (revision 0) +++ lams_tool_notebook/web/pages/authoring/basic.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,19 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + +
    + +
    + +
    Index: lams_tool_notebook/web/pages/authoring/headItems.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/authoring/headItems.jsp (revision 0) +++ lams_tool_notebook/web/pages/authoring/headItems.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,49 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + +<%-- Authoring Script --%> + + \ No newline at end of file Index: lams_tool_notebook/web/pages/authoring/instructions.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/authoring/instructions.jsp (revision 0) +++ lams_tool_notebook/web/pages/authoring/instructions.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,173 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + +
  • + + + + +   + + + + +   + + + + +
  • +
    + + <%-- Displaying unsaved Files --%> + +
  • + + * + + + +   + + + + +   + + + + +
  • +
    +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + +
  • + + + + +   + + + + +   + + + + +
  • +
    + + + +
  • + + * + + + +   + + + + +   + + + + +
  • +
    +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    Index: lams_tool_notebook/web/pages/export/exportPortfolio.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/export/exportPortfolio.jsp (revision 0) +++ lams_tool_notebook/web/pages/export/exportPortfolio.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,59 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + <c:out value="${notebookDTO.title}" escapeXml="false" /> + + + + + +
    + +

    +
    + +
    + +
    + +

    + + +
    + +
    +
    + + +
    +

    + ${session.sessionName} +

    +

    + + ${message.from} : ${message.body}
    +
    +

    +
    +
    + +
    + + + + +
    + + + Index: lams_tool_notebook/web/pages/learning/defineLater.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/learning/defineLater.jsp (revision 0) +++ lams_tool_notebook/web/pages/learning/defineLater.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,21 @@ +<%@ include file="/common/taglibs.jsp"%> + +

    + +

    +
    +
    + + + + +
    + message.defineLaterSet +
    + +
    + +
    +
    + + Index: lams_tool_notebook/web/pages/learning/headItems.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/learning/headItems.jsp (revision 0) +++ lams_tool_notebook/web/pages/learning/headItems.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_notebook/web/pages/learning/notebook.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/learning/notebook.jsp (revision 0) +++ lams_tool_notebook/web/pages/learning/notebook.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,23 @@ +<%@ include file="/common/taglibs.jsp"%> + +

    + +

    +
    +
    +This is notebook content. + + +
    + + + + + button.finish + +
    +
    +
    +
    +
    + \ No newline at end of file Index: lams_tool_notebook/web/pages/learning/runOffline.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/learning/runOffline.jsp (revision 0) +++ lams_tool_notebook/web/pages/learning/runOffline.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,30 @@ +<%@ include file="/common/taglibs.jsp"%> + +

    + +

    +
    +
    + + + + +
    + +
    + + + +
    + + + + + button.finish + +
    +
    +
    +
    +
    + Index: lams_tool_notebook/web/pages/monitoring/editActivity.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/monitoring/editActivity.jsp (revision 0) +++ lams_tool_notebook/web/pages/monitoring/editActivity.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,45 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + +

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

    + +

    + + +

    + + Index: lams_tool_notebook/web/pages/monitoring/headItems.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/monitoring/headItems.jsp (revision 0) +++ lams_tool_notebook/web/pages/monitoring/headItems.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,33 @@ +<%-- Monitoring Head Content --%> + +<%@ include file="/common/taglibs.jsp"%> + + + + + + \ No newline at end of file Index: lams_tool_notebook/web/pages/monitoring/instructions.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/monitoring/instructions.jsp (revision 0) +++ lams_tool_notebook/web/pages/monitoring/instructions.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,102 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + +
    + + + +
    +   + +
    + +
      + +
    • + + + + + +   + + + + +   + + + + + + + +
    • +
      +
    +
    +
    +
    + + + + + + + + + + + + + + + +
    + + + +
    +   + +
    + +
      + +
    • + + + + + +   + + + + +   + + + + + + + +
    • +
      +
    +
    +
    +
    Index: lams_tool_notebook/web/pages/monitoring/monitoring.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/monitoring/monitoring.jsp (revision 0) +++ lams_tool_notebook/web/pages/monitoring/monitoring.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,22 @@ +<%@ include file="/common/taglibs.jsp"%> + + + +
    + + + + +
    + + Index: lams_tool_notebook/web/pages/monitoring/statistics.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/monitoring/statistics.jsp (revision 0) +++ lams_tool_notebook/web/pages/monitoring/statistics.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,41 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + +
    + ${session.sessionName} +
    + heading.totalLearners + + ${session.numberOfLearners} +
    + heading.totalMessages + + ${session.numberOfPosts} +
    + Learner + + No of Posts +
    +
    Index: lams_tool_notebook/web/pages/monitoring/summary.jsp =================================================================== diff -u --- lams_tool_notebook/web/pages/monitoring/summary.jsp (revision 0) +++ lams_tool_notebook/web/pages/monitoring/summary.jsp (revision 5948e17402e1ad574aeddbe55f93dca2f58bbbec) @@ -0,0 +1,61 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + ${session.sessionName} +
    + heading.totalLearners + + ${session.numberOfLearners} +
    + heading.totalMessages + + ${session.numberOfPosts} +
    + heading.recentMessages + +   +
    +
    + + + message.noNotebookMessages + + + + +
    + ${message.from} ${message.body} +
    +
    +
    + +
    +
    +
    +
    +