Index: lams_tool_scribe/.classpath =================================================================== diff -u --- lams_tool_scribe/.classpath (revision 0) +++ lams_tool_scribe/.classpath (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,12 @@ + + + + + + + + + + + + Index: lams_tool_scribe/.mymetadata =================================================================== diff -u --- lams_tool_scribe/.mymetadata (revision 0) +++ lams_tool_scribe/.mymetadata (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,12 @@ + + + + + + + Index: lams_tool_scribe/.project =================================================================== diff -u --- lams_tool_scribe/.project (revision 0) +++ lams_tool_scribe/.project (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,49 @@ + + + lams_tool_scribe + + + + + + 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_scribe/.settings/com.genuitec.eclipse.j2eedt.core.prefs =================================================================== diff -u --- lams_tool_scribe/.settings/com.genuitec.eclipse.j2eedt.core.prefs (revision 0) +++ lams_tool_scribe/.settings/com.genuitec.eclipse.j2eedt.core.prefs (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/.settings/org.eclipse.core.resources.prefs =================================================================== diff -u --- lams_tool_scribe/.settings/org.eclipse.core.resources.prefs (revision 0) +++ lams_tool_scribe/.settings/org.eclipse.core.resources.prefs (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/.settings/org.eclipse.jdt.core.prefs =================================================================== diff -u --- lams_tool_scribe/.settings/org.eclipse.jdt.core.prefs (revision 0) +++ lams_tool_scribe/.settings/org.eclipse.jdt.core.prefs (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,12 @@ +#Tue Apr 04 10:46:08 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_scribe/.settings/org.eclipse.jdt.ui.prefs =================================================================== diff -u --- lams_tool_scribe/.settings/org.eclipse.jdt.ui.prefs (revision 0) +++ lams_tool_scribe/.settings/org.eclipse.jdt.ui.prefs (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,3 @@ +#Thu Mar 23 13:45:11 EST 2006 +eclipse.preferences.version=1 +internal.default.compliance=default Index: lams_tool_scribe/build.properties =================================================================== diff -u --- lams_tool_scribe/build.properties (revision 0) +++ lams_tool_scribe/build.properties (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,9 @@ + +# project-wide properties +signature=lascrb11 + +package=org/lamsfoundation/lams/tool/scribe +package.name=org.lamsfoundation.lams.tool.scribe +weblib=lib + + Index: lams_tool_scribe/build.xml =================================================================== diff -u --- lams_tool_scribe/build.xml (revision 0) +++ lams_tool_scribe/build.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,460 @@ + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Deploying the Scribe Tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_scribe/conf/hibernate/mappings/hibernate.properties =================================================================== diff -u --- lams_tool_scribe/conf/hibernate/mappings/hibernate.properties (revision 0) +++ lams_tool_scribe/conf/hibernate/mappings/hibernate.properties (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/Scribe.hbm.xml =================================================================== diff -u --- lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/Scribe.hbm.xml (revision 0) +++ lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/Scribe.hbm.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/ScribeAttachment.hbm.xml =================================================================== diff -u --- lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/ScribeAttachment.hbm.xml (revision 0) +++ lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/ScribeAttachment.hbm.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/ScribeSession.hbm.xml =================================================================== diff -u --- lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/ScribeSession.hbm.xml (revision 0) +++ lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/ScribeSession.hbm.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/ScribeUser.hbm.xml =================================================================== diff -u --- lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/ScribeUser.hbm.xml (revision 0) +++ lams_tool_scribe/conf/hibernate/mappings/org/lamsfoundation/lams/tool/scribe/model/ScribeUser.hbm.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_scribe/conf/jar/META-INF/MANIFEST.MF =================================================================== diff -u --- lams_tool_scribe/conf/jar/META-INF/MANIFEST.MF (revision 0) +++ lams_tool_scribe/conf/jar/META-INF/MANIFEST.MF (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,3 @@ +Implementation-Title: LAMS Scribe Tool +Implementation-Version: 1.1 +Implementation-Vendor: LAMS Foundation (http://lamsfoundation.org) Index: lams_tool_scribe/conf/language/ApplicationResources.properties =================================================================== diff -u --- lams_tool_scribe/conf/language/ApplicationResources.properties (revision 0) +++ lams_tool_scribe/conf/language/ApplicationResources.properties (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,93 @@ +appName = scribe +#language code: en +#locale code: AU + + # CVS ID: $Id$ + +#=================== labels for Scribe =================# + +tool.display.name =Scribe +tool.description =Scribe Tool +activity.title =Scribe +activity.description =Scribe Tool +activity.helptext =Syncronous Scribe tool +pageTitle.authoring =Scribe Authoring +button.basic =Basic +button.advanced =Advanced +button.instructions =Instructions +button.upload =Upload +label.authoring.basic.title =Title: +label.authoring.basic.content =Content: +label.authoring.basic.instructions =Instructions: +advanced.lockOnFinished =Lock when finished +advanced.reflectOnActivity = Reflect on scribe +advanced.selectScribe = Select Scribe +advanced.firstLearner = First Learner +advanced.selectInMonitor = Select in Monitor +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 +pageTitle.learning =Online Scribe +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 +pageTitle.monitoring =Scribe Monitoring +button.summary =Summary +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: +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. +summary.openScribe =Open Scribe +button.send =Send +button.clear =Clear +button.cancel =Cancel +button.ok =OK +button.done =Done +button.save =Save +button.finish =Finish +button.reflect = Continue +button.next =Next +label.save =Save +label.cancel =Cancel +error.missingParam =Unable to continue. {0} is missing. +error.exceedMaxFileSize =File size exceeded +error.exception.NbApplication =An internal error has occured with the Scribe 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. +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. +authoring.msg.cancel.save =Do you want to close this window without saving? +pageTitle.monitoring.scribeHistory =Scribe History +button.try.again =Try again + + +#======= End labels: Exported 78 labels for en AU ===== + +# Added 8/8/2006 +pageTitle.monitoring.notebook =Reflection +heading.numPosts = No. of posts +heading.learner = Learner +heading.reflection = Reflection + + Index: lams_tool_scribe/conf/war/META-INF/MANIFEST.MF =================================================================== diff -u --- lams_tool_scribe/conf/war/META-INF/MANIFEST.MF (revision 0) +++ lams_tool_scribe/conf/war/META-INF/MANIFEST.MF (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1 @@ +Class-Path: ./lams.jar ./lams-tool-lascrb11.jar ./lams-contentrepository.jar ./lams-learning.jar Index: lams_tool_scribe/conf/xdoclet/error-pages.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/error-pages.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/error-pages.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,13 @@ + + 500 + /error.jsp + + + 403 + /403.jsp + + + 404 + /404.jsp + + Index: lams_tool_scribe/conf/xdoclet/filter-mappings.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/filter-mappings.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/filter-mappings.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,14 @@ + + SystemSessionFilter + /* + + + + hibernateFilter + /* + + + + LocaleFilter + /* + Index: lams_tool_scribe/conf/xdoclet/filters.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/filters.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/filters.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,24 @@ + + SystemSessionFilter + + org.lamsfoundation.lams.web.session.SystemSessionFilter + + + + + hibernateFilter + + org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter + + + sessionFactoryBeanName + lascrbScribeSessionFactory + + + + + LocaleFilter + + org.lamsfoundation.lams.web.filter.LocaleFilter + + Index: lams_tool_scribe/conf/xdoclet/global-exceptions.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/global-exceptions.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/global-exceptions.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,8 @@ + + + Index: lams_tool_scribe/conf/xdoclet/global-forwards.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/global-forwards.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/global-forwards.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,3 @@ + + + Index: lams_tool_scribe/conf/xdoclet/listeners.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/listeners.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/listeners.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,11 @@ + + + org.springframework.web.context.ContextLoaderListener + + + + + org.lamsfoundation.lams.web.SessionListener + + + Index: lams_tool_scribe/conf/xdoclet/servlet-mappings.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/servlet-mappings.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/servlet-mappings.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,20 @@ + + action + *.do + + + + + Connector + /fckeditor/editor/filemanager/browser/default/connectors/jsp/connector + + + + download + /download/* + + + + exportPortfolio + /exportPortfolio + Index: lams_tool_scribe/conf/xdoclet/servlets.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/servlets.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/servlets.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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 + scribeToolContentHandler + + 3 + + + + exportPortfolio + org.lamsfoundation.lams.tool.scribe.web.servlets.ExportServlet + + Index: lams_tool_scribe/conf/xdoclet/struts-forms.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/struts-forms.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/struts-forms.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_scribe/conf/xdoclet/struts-message-resources.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/struts-message-resources.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/struts-message-resources.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1 @@ + Index: lams_tool_scribe/conf/xdoclet/struts-plugins.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/struts-plugins.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/struts-plugins.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,9 @@ + + + + Index: lams_tool_scribe/conf/xdoclet/taglibs.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/taglibs.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/taglibs.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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 + + + + Index: lams_tool_scribe/conf/xdoclet/web-security.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/web-security.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/web-security.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,94 @@ + + + + Secure Content + *.jsp + *.html + *.do + + + LEARNER + TEACHER + MONITOR + AUTHOR + ADMIN + SYSADMIN + + + + + + Authoring Update + /authoring.do + + + AUTHOR + + + + + + Staff Content + /monitoring.do + + + MONITOR + TEACHER + + + + + + + Download Files + /download/ + + + AUTHOR + MONITOR + 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 + MONITOR + + + + 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_scribe/conf/xdoclet/web-settings.xml =================================================================== diff -u --- lams_tool_scribe/conf/xdoclet/web-settings.xml (revision 0) +++ lams_tool_scribe/conf/xdoclet/web-settings.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,19 @@ + + + + javax.servlet.jsp.jstl.fmt.localizationContext + org.lamsfoundation.lams.tool.scribe.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/scribe/scribeApplicationContext.xml + + + Index: lams_tool_scribe/db/model/scribe_tool.clay =================================================================== diff -u --- lams_tool_scribe/db/model/scribe_tool.clay (revision 0) +++ lams_tool_scribe/db/model/scribe_tool.clay (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,580 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
Index: lams_tool_scribe/db/sql/activity_insert.sql =================================================================== diff -u --- lams_tool_scribe/db/sql/activity_insert.sql (revision 0) +++ lams_tool_scribe/db/sql/activity_insert.sql (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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 +, 'Scribe Tool' +, 'Scribe 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/lascrb11/images/icon_scribe.swf' +, NULL +, NULL +, NULL +, 'org.lamsfoundation.lams.tool.scribe.ApplicationResources' +) Index: lams_tool_scribe/db/sql/create_lams_tool_scribe.sql =================================================================== diff -u --- lams_tool_scribe/db/sql/create_lams_tool_scribe.sql (revision 0) +++ lams_tool_scribe/db/sql/create_lams_tool_scribe.sql (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,42 @@ +-- CVS ID: $Id$ + +SET FOREIGN_KEY_CHECKS=0; +drop table if exists tl_lascrb11_attachment; +drop table if exists tl_lascrb11_scribe; +drop table if exists tl_lascrb11_session; +drop table if exists tl_lascrb11_user; +create table tl_lascrb11_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, scribe_uid bigint, primary key (uid)); +create table tl_lascrb11_scribe (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, auto_select_scribe bit, reflect_on_activity bit, reflect_instructions text, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, tool_content_id bigint, primary key (uid)); +create table tl_lascrb11_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), scribe_uid bigint, primary key (uid)); +create table tl_lascrb11_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, scribe_session_uid bigint, primary key (uid)); +alter table tl_lascrb11_attachment add index FK57953706B3FA1495 (scribe_uid), add constraint FK57953706B3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); +alter table tl_lascrb11_session add index FK89732793B3FA1495 (scribe_uid), add constraint FK89732793B3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); +alter table tl_lascrb11_user add index FK187DAFEE1C266FAE (scribe_session_uid), add constraint FK187DAFEE1C266FAE foreign key (scribe_session_uid) references tl_lascrb11_session (uid); + +INSERT INTO tl_lascrb11_scribe ( + title, + instructions, + online_instructions, + offline_instructions, + tool_content_id, + run_offline, + lock_on_finished, + content_in_use, + define_later, + reflect_on_activity, + auto_select_scribe) +VALUES( + "LAMS Scribe", + "Scribe Instruction", + "Online instructions", + "Offline instructions", + ${default_content_id}, + 0, + 1, + 0, + 0, + 0, + 0 +); + +SET FOREIGN_KEY_CHECKS=1; Index: lams_tool_scribe/db/sql/drop_lams_tool_scribe.sql =================================================================== diff -u --- lams_tool_scribe/db/sql/drop_lams_tool_scribe.sql (revision 0) +++ lams_tool_scribe/db/sql/drop_lams_tool_scribe.sql (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,13 @@ +-- CVS ID: $Id$ + +SET FOREIGN_KEY_CHECKS=0; +DROP TABLE IF EXISTS tl_lascrb11_user; +DROP TABLE IF EXISTS tl_lascrb11_attachment; +DROP TABLE IF EXISTS tl_lascrb11_session; +DROP TABLE IF EXISTS tl_lascrb11_scribe; +SET FOREIGN_KEY_CHECKS=1; + + + + + Index: lams_tool_scribe/db/sql/library_insert.sql =================================================================== diff -u --- lams_tool_scribe/db/sql/library_insert.sql (revision 0) +++ lams_tool_scribe/db/sql/library_insert.sql (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,16 @@ +-- CVS ID: $Id$ + +INSERT INTO lams_learning_library +( +description, +title, +valid_flag, +create_date_time +) +VALUES +( +'Scribe Tool', +'Scribe', +0, +NOW() +) Index: lams_tool_scribe/db/sql/table-schema.sql =================================================================== diff -u --- lams_tool_scribe/db/sql/table-schema.sql (revision 0) +++ lams_tool_scribe/db/sql/table-schema.sql (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,14 @@ +alter table tl_lascrb11_attachment drop foreign key FK57953706B3FA1495; +alter table tl_lascrb11_session drop foreign key FK89732793B3FA1495; +alter table tl_lascrb11_user drop foreign key FK187DAFEE1C266FAE; +drop table if exists tl_lascrb11_attachment; +drop table if exists tl_lascrb11_scribe; +drop table if exists tl_lascrb11_session; +drop table if exists tl_lascrb11_user; +create table tl_lascrb11_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, scribe_uid bigint, primary key (uid)); +create table tl_lascrb11_scribe (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, auto_select_scribe bit, reflect_on_activity bit, reflect_instructions text, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, tool_content_id bigint, primary key (uid)); +create table tl_lascrb11_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), scribe_uid bigint, primary key (uid)); +create table tl_lascrb11_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, scribe_session_uid bigint, primary key (uid)); +alter table tl_lascrb11_attachment add index FK57953706B3FA1495 (scribe_uid), add constraint FK57953706B3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); +alter table tl_lascrb11_session add index FK89732793B3FA1495 (scribe_uid), add constraint FK89732793B3FA1495 foreign key (scribe_uid) references tl_lascrb11_scribe (uid); +alter table tl_lascrb11_user add index FK187DAFEE1C266FAE (scribe_session_uid), add constraint FK187DAFEE1C266FAE foreign key (scribe_session_uid) references tl_lascrb11_session (uid); Index: lams_tool_scribe/db/sql/tool_insert.sql =================================================================== diff -u --- lams_tool_scribe/db/sql/tool_insert.sql (revision 0) +++ lams_tool_scribe/db/sql/tool_insert.sql (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,56 @@ +-- 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, +help_url, +language_file, +create_date_time +) +VALUES +( +'lascrb11', +'scribeService', +'Scribe', +'Scribe', +'scribe', +'1.1', +NULL, +NULL, +0, +2, +1, +'tool/lascrb11/learning.do?mode=learner', +'tool/lascrb11/learning.do?mode=author', +'tool/lascrb11/learning.do?mode=teacher', +'tool/lascrb11/authoring.do', +'tool/lascrb11/monitoring.do', +'tool/lascrb11/authoring.do?mode=teacher', +'tool/lascrb11/exportPortfolio?mode=learner', +'tool/lascrb11/exportPortfolio?mode=teacher', +'tool/lascrb11/contribute.do', +'tool/lascrb11/moderate.do', +'http://wiki.lamsfoundation.org/display/lamsdocs/lascrb11', +'org.lamsfoundation.lams.tool.scribe.ApplicationResources', +NOW() +) Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeAttachmentDAO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeAttachmentDAO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeAttachmentDAO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; + +/** + * DAO for accessing the ScribeAttachment objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface IScribeAttachmentDAO extends IBaseDAO { + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeDAO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeDAO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeDAO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.scribe.model.Scribe; + +/** + * DAO for accessing the Scribe objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface IScribeDAO extends IBaseDAO{ + + Scribe getByContentId(Long toolContentId); + + void saveOrUpdate(Scribe toContent); + + void deleteInstructionFile(Long toolContentId, Long uuid, Long versionId, String type); + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeSessionDAO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeSessionDAO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeSessionDAO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; + +/** + * DAO for accessing the ScribeSession objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface IScribeSessionDAO extends IBaseDAO{ + + void saveOrUpdate(ScribeSession session); + + ScribeSession getBySessionId(Long toolSessionId); + + void deleteBySessionID(Long toolSessionID); +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeUserDAO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeUserDAO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/IScribeUserDAO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,62 @@ +/**************************************************************** + * 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.scribe.dao; + +import java.util.List; + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; + +/** + * DAO for accessing the ScribeUser objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface IScribeUserDAO extends IBaseDAO{ + /** + * + * @param userId + * @param toolSessionId + * @return + */ + ScribeUser getByUserIdAndSessionId(Long userId, Long toolSessionId); + + void saveOrUpdate(ScribeUser scribeUser); + + /** + * + * @param loginName + * @param sessionID + * @return + */ + ScribeUser getByLoginNameAndSessionId(String loginName, Long toolSessionId); + + /** + * + * @param uid + * @return + */ + ScribeUser getByUID(Long uid); +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeAttachmentDAO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeAttachmentDAO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeAttachmentDAO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.dao.hibernate; + +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.scribe.dao.IScribeAttachmentDAO; + +/** + * DAO for accessing the ScribeAttachment objects - Hibernate specific code. + */ +public class ScribeAttachmentDAO extends BaseDAO implements IScribeAttachmentDAO { + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeDAO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeDAO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeDAO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.dao.hibernate; + +import java.util.List; + +import org.hibernate.FlushMode; +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.scribe.dao.IScribeDAO; +import org.lamsfoundation.lams.tool.scribe.model.Scribe; +import org.lamsfoundation.lams.tool.scribe.model.ScribeAttachment; +import org.springframework.orm.hibernate3.HibernateTemplate; + +/** + * DAO for accessing the Scribe objects - Hibernate specific code. + */ +public class ScribeDAO extends BaseDAO implements IScribeDAO { + + private static final String FIND_FORUM_BY_CONTENTID = "from Scribe scribe where scribe.toolContentId=?"; + + private static final String FIND_INSTRUCTION_FILE = "from " + + ScribeAttachment.class.getName() + + " as i where tool_content_id=? and i.file_uuid=? and i.file_version_id=? and i.file_type=?"; + + public Scribe getByContentId(Long toolContentId) { + List list = getHibernateTemplate().find(FIND_FORUM_BY_CONTENTID, + toolContentId); + if (list != null && list.size() > 0) + return (Scribe) list.get(0); + else + return null; + } + + public void saveOrUpdate(Scribe scribe) { + this.getHibernateTemplate().saveOrUpdate(scribe); + 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) { + ScribeAttachment file = (ScribeAttachment) list.get(0); + this.getSession().setFlushMode(FlushMode.AUTO); + templ.delete(file); + templ.flush(); + } + } + + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeSessionDAO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeSessionDAO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeSessionDAO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.dao.hibernate; + +import java.util.List; + +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.scribe.dao.IScribeSessionDAO; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; + +/** + * DAO for accessing the ScribeSession objects - Hibernate specific code. + */ +public class ScribeSessionDAO extends BaseDAO implements IScribeSessionDAO { + + public static final String SQL_QUERY_FIND_BY_SESSION_ID = "from " + + ScribeSession.class.getName() + " where session_id=?"; + + public void saveOrUpdate(ScribeSession session) { + this.getHibernateTemplate().saveOrUpdate(session); + this.getHibernateTemplate().flush(); + } + + public ScribeSession getBySessionId(Long toolSessionId) { + List list = this.getHibernateTemplate().find( + SQL_QUERY_FIND_BY_SESSION_ID, toolSessionId); + if (list == null || list.isEmpty()) + return null; + return (ScribeSession) list.get(0); + } + + public void deleteBySessionID(Long toolSessionID) { + ScribeSession session = getBySessionId(toolSessionID); + if(session != null){ + this.getHibernateTemplate().delete(session); + this.getHibernateTemplate().flush(); + } + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeUserDAO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeUserDAO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dao/hibernate/ScribeUserDAO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,90 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License 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.scribe.dao.hibernate; + +import java.util.List; + +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.scribe.dao.IScribeUserDAO; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; + +/** + * DAO for accessing the ScribeUser objects - Hibernate specific code. + */ +public class ScribeUserDAO extends BaseDAO implements IScribeUserDAO { + + public static final String SQL_QUERY_FIND_BY_USER_ID_SESSION_ID = "from " + + ScribeUser.class.getName() + " as f" + + " where user_id=? and f.scribeSession.sessionId=?"; + + public static final String SQL_QUERY_FIND_BY_LOGIN_NAME_SESSION_ID = "from " + + ScribeUser.class.getName() + + " as f where login_name=? and f.scribeSession.sessionId=?"; + + private static final String SQL_QUERY_FIND_BY_UID = "from " + + ScribeUser.class.getName() + " where uid=?"; + + public ScribeUser 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 (ScribeUser) list.get(0); + } + + public ScribeUser 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 (ScribeUser) list.get(0); + + } + + public void saveOrUpdate(ScribeUser scribeUser) { + this.getHibernateTemplate().saveOrUpdate(scribeUser); + this.getHibernateTemplate().flush(); + } + + public ScribeUser getByUID(Long uid) { + List list = this.getHibernateTemplate().find(SQL_QUERY_FIND_BY_UID, + new Object[] { uid }); + + if (list == null || list.isEmpty()) + return null; + + return (ScribeUser) list.get(0); + } + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeAttachmentDTO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeAttachmentDTO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeAttachmentDTO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.dto; + +import java.util.Date; + +import org.lamsfoundation.lams.tool.scribe.model.ScribeAttachment; + +public class ScribeAttachmentDTO implements Comparable { + + public ScribeAttachmentDTO(ScribeAttachment 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) { + ScribeAttachmentDTO toAttachment = (ScribeAttachmentDTO) o; + int returnValue = this.createDate.compareTo(((ScribeAttachmentDTO) o) + .getCreateDate()); + + if (returnValue == 0) { + returnValue = this.uid.compareTo(toAttachment.getUid()); + } + return returnValue; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeDTO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeDTO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeDTO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,189 @@ +/**************************************************************** + * 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.scribe.dto; + +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.scribe.model.Scribe; +import org.lamsfoundation.lams.tool.scribe.model.ScribeAttachment; + +public class ScribeDTO { + + private static Logger logger = Logger.getLogger(ScribeDTO.class); + + public Long toolContentId; + + public String title; + + public String instructions; + + public String onlineInstructions; + + public String offlineInstructions; + + public boolean defineLater; + + public boolean contentInUse; + + public boolean reflectOnActivity; + + public String reflectInstructions; + + public Set onlineInstructionsFiles = new TreeSet(); + + public Set offlineInstructionsFiles = new TreeSet(); + + public Set sessionDTOs = new TreeSet();; + + public ScribeDTO(Scribe scribe) { + toolContentId = scribe.getToolContentId(); + title = scribe.getTitle(); + instructions = scribe.getInstructions(); + onlineInstructions = scribe.getOnlineInstructions(); + offlineInstructions = scribe.getOfflineInstructions(); + contentInUse = scribe.getContentInUse(); + reflectInstructions = scribe.getReflectInstructions(); + reflectOnActivity = scribe.getReflectOnActivity(); + + for (Iterator i = scribe.getScribeAttachments().iterator(); i.hasNext();) { + ScribeAttachment att = (ScribeAttachment) i.next(); + if (att.getFileType().equals(IToolContentHandler.TYPE_OFFLINE)) { + ScribeAttachmentDTO attDTO = new ScribeAttachmentDTO(att); + offlineInstructionsFiles.add(attDTO); + } else if (att.getFileType() + .equals(IToolContentHandler.TYPE_ONLINE)) { + ScribeAttachmentDTO attDTO = new ScribeAttachmentDTO(att); + onlineInstructionsFiles.add(attDTO); + } else { + // something is wrong. Ignore file, log error + logger.error("File with uid " + att.getFileUuid() + + " contains invalid fileType: " + att.getFileType()); + } + } + } + + 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 String getReflectInstructions() { + return reflectInstructions; + } + + public void setReflectInstructions(String reflectInstructions) { + this.reflectInstructions = reflectInstructions; + } + + public boolean isContentInUse() { + return contentInUse; + } + + public void setContentInUse(boolean contentInUse) { + this.contentInUse = contentInUse; + } + + public boolean isDefineLater() { + return defineLater; + } + + public void setDefineLater(boolean defineLater) { + this.defineLater = defineLater; + } + + public boolean isReflectOnActivity() { + return reflectOnActivity; + } + + public void setReflectOnActivity(boolean reflectOnActivity) { + this.reflectOnActivity = reflectOnActivity; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeSessionDTO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeSessionDTO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeSessionDTO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,106 @@ +/**************************************************************** + * 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.scribe.dto; + +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; + +public class ScribeSessionDTO implements Comparable { + + Long sessionID; + + String sessionName; + + Set userDTOs; + + int numberOfPosts; + + int numberOfLearners; + + public ScribeSessionDTO(ScribeSession session) { + this.sessionID = session.getSessionId(); + this.sessionName = session.getSessionName(); + + userDTOs = new TreeSet(); + } + + public ScribeSessionDTO() { + 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; + ScribeSessionDTO toSession = (ScribeSessionDTO)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 scribeUsers) { + this.userDTOs = scribeUsers; + } + + public int getNumberOfLearners() { + return numberOfLearners; + } + + public void setNumberOfLearners(int numberOfLearners) { + this.numberOfLearners = numberOfLearners; + } + + public int getNumberOfPosts() { + return numberOfPosts; + } + + public void setNumberOfPosts(int numberOfPosts) { + this.numberOfPosts = numberOfPosts; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeUserDTO.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeUserDTO.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/dto/ScribeUserDTO.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,142 @@ +/**************************************************************** + * 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.scribe.dto; + +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; + +public class ScribeUserDTO implements Comparable{ + + public Long uid; + + public String loginName; + + public String firstName; + + public String lastName; + + public Long userID; + + public String notebookEntry; + + public boolean finishedReflection; + + public int postCount; + + public boolean finishedActivity; + + public ScribeUserDTO(ScribeUser user) { + this.uid = user.getUid(); + this.loginName = user.getLoginName(); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + this.userID = user.getUserId(); + this.finishedActivity = user.getFinishedActivity(); + postCount=0; // this needs to be set manually. + } + + public int compareTo(Object o) { + int returnValue; + ScribeUserDTO toUser = (ScribeUserDTO)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 int getPostCount() { + return postCount; + } + + public void setPostCount(int postCount) { + this.postCount = postCount; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public Long getUserID() { + return userID; + } + + public void setUserID(Long userID) { + this.userID = userID; + } + + public boolean isFinishedActivity() { + return finishedActivity; + } + + public void setFinishedActivity(boolean finishedActivity) { + this.finishedActivity = finishedActivity; + } + + public String getNotebookEntry() { + return notebookEntry; + } + + public void setNotebookEntry(String notebookEntry) { + this.notebookEntry = notebookEntry; + } + + public boolean isFinishedReflection() { + return finishedReflection; + } + + public void setFinishedReflection(boolean finishedReflection) { + this.finishedReflection = finishedReflection; + } + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/Scribe.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/Scribe.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/Scribe.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,456 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ +/* $$Idx$ */ + +package org.lamsfoundation.lams.tool.scribe.model; + +import java.util.Date; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import middlegen.Column; + +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.scribe.service.ScribeService; + +/** + * @hibernate.class table="tl_lascrb11_scribe" + */ + +public class Scribe implements java.io.Serializable, Cloneable { + + /** + * + */ + private static final long serialVersionUID = 579733009969321015L; + + static Logger log = Logger.getLogger(ScribeService.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 Boolean reflectOnActivity; + + private String reflectInstructions; + + private String onlineInstructions; + + private String offlineInstructions; + + private Boolean contentInUse; + + private Boolean defineLater; + + private Boolean autoSelectScribe; + + private Long toolContentId; + + private Set scribeAttachments; + + private Set scribeSessions; + + + //*********** NON Persisit fields + private IToolContentHandler toolContentHandler; + + // Constructors + + /** default constructor */ + public Scribe() { + } + + /** full constructor */ + public Scribe(Date createDate, Date updateDate, Long createBy, String title, + String instructions, Boolean runOffline, + String onlineInstructions, String offlineInstructions, + Boolean contentInUse, Boolean defineLater, Long toolContentId, + Set scribeAttachments, Set scribeSessions) { + this.createDate = createDate; + this.updateDate = updateDate; + this.createBy = createBy; + this.title = title; + this.instructions = instructions; + this.runOffline = runOffline; + this.onlineInstructions = onlineInstructions; + this.offlineInstructions = offlineInstructions; + this.contentInUse = contentInUse; + this.defineLater = defineLater; + this.toolContentId = toolContentId; + this.scribeAttachments = scribeAttachments; + this.scribeSessions = scribeSessions; + } + + // 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="auto_select_scribe" length=1 + * + */ + public Boolean getAutoSelectScribe() { + return autoSelectScribe; + } + + public void setAutoSelectScribe(Boolean autoSelectScribe) { + this.autoSelectScribe = autoSelectScribe; + } + + /** + * @hibernate.property column="reflect_on_activity" length="1" + */ + public Boolean getReflectOnActivity() { + return reflectOnActivity; + } + + public void setReflectOnActivity(Boolean reflectOnActivity) { + this.reflectOnActivity = reflectOnActivity; + } + + /** + * @hibernate.property column="reflect_instructions" length="65535" + */ + public String getReflectInstructions() { + return reflectInstructions; + } + + public void setReflectInstructions(String reflectInstructions) { + this.reflectInstructions = reflectInstructions; + } + + /** + * @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="scribe_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.scribe.model.ScribeAttachment" + * + */ + + public Set getScribeAttachments() { + return this.scribeAttachments; + } + + public void setScribeAttachments(Set scribeAttachments) { + this.scribeAttachments = scribeAttachments; + } + + /** + * @hibernate.set lazy="true" inverse="true" cascade="none" + * @hibernate.collection-key column="scribe_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.scribe.model.ScribeSession" + * + */ + + public Set getScribeSessions() { + return this.scribeSessions; + } + + public void setScribeSessions(Set scribeSessions) { + this.scribeSessions = scribeSessions; + } + + /** + * 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 Scribe)) + return false; + Scribe castOther = (Scribe) 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 Scribe newInstance(Scribe fromContent, Long toContentId, + IToolContentHandler scribeToolContentHandler) { + Scribe toContent = new Scribe(); + fromContent.toolContentHandler = scribeToolContentHandler; + toContent = (Scribe) fromContent.clone(); + toContent.setToolContentId(toContentId); + toContent.setCreateDate(new Date()); + return toContent; + } + + protected Object clone() { + + Scribe scribe = null; + try { + scribe = (Scribe) super.clone(); + scribe.setUid(null); + + if (scribeAttachments != null) { + // create a copy of the attachments + Iterator iter = scribeAttachments.iterator(); + Set set = new HashSet(); + while (iter.hasNext()) { + ScribeAttachment originalFile = (ScribeAttachment) iter.next(); + ScribeAttachment newFile = (ScribeAttachment) 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); + } + scribe.scribeAttachments = set; + } + // create an empty set for the scribeSession + scribe.scribeSessions = new HashSet(); + + } catch (CloneNotSupportedException cnse) { + log.error("Error cloning " + Scribe.class); + } catch (ItemNotFoundException infe) { + log.error("Item Not found " + Scribe.class); + } catch (RepositoryCheckedException rce) { + log.error("Repository checked exception " + Scribe.class); + } + return scribe; + } + + public IToolContentHandler getToolContentHandler() { + return toolContentHandler; + } + + public void setToolContentHandler(IToolContentHandler toolContentHandler) { + this.toolContentHandler = toolContentHandler; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeAttachment.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeAttachment.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeAttachment.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.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_lascrb11_attachment" + * + */ + +public class ScribeAttachment implements java.io.Serializable, Cloneable { + + + + /** + * + */ + private static final long serialVersionUID = 47452859888067500L; + + private static final Logger log = Logger.getLogger(ScribeAttachment.class); + + /** + * + */ + private Long uid; + + private Long fileVersionId; + + private String fileType; + + private String fileName; + + private Long fileUuid; + + private Date createDate; + + private Scribe scribe; + + // Constructors + + /** default constructor */ + public ScribeAttachment() { + } + + /** full constructor */ + public ScribeAttachment(Long fileVersionId, String fileType, String fileName, + Long fileUuid, Date createDate, Scribe scribe) { + this.fileVersionId = fileVersionId; + this.fileType = fileType; + this.fileName = fileName; + this.fileUuid = fileUuid; + this.createDate = createDate; + this.scribe = scribe; + } + + // 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="scribe_uid" + * + */ + + public Scribe getScribe() { + return this.scribe; + } + + public void setScribe(Scribe scribe) { + this.scribe = scribe; + } + + /** + * 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 ScribeAttachment)) + return false; + + final ScribeAttachment genericEntity = (ScribeAttachment) 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(); + ((ScribeAttachment) obj).setUid(null); + } catch (CloneNotSupportedException e) { + log.error("Failed to clone " + ScribeAttachment.class); + } + + return obj; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeSession.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeSession.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeSession.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.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_lascrb11_session" + */ + +public class ScribeSession implements java.io.Serializable { + + private static Logger log = Logger.getLogger(ScribeSession.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 Scribe scribe; + + private Set scribeUsers = new HashSet(0); + + // Constructors + + /** default constructor */ + public ScribeSession() { + } + + /** full constructor */ + public ScribeSession(Date sessionEndDate, Date sessionStartDate, + Integer status, Long sessionId, String sessionName, Scribe scribe, + Set scribeUsers) { + this.sessionEndDate = sessionEndDate; + this.sessionStartDate = sessionStartDate; + this.status = status; + this.sessionId = sessionId; + this.sessionName = sessionName; + this.scribe = scribe; + this.scribeUsers = scribeUsers; + } + + // 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="scribe_uid" + * + */ + + public Scribe getScribe() { + return this.scribe; + } + + public void setScribe(Scribe scribe) { + this.scribe = scribe; + } + + /** + * @hibernate.set lazy="true" inverse="true" cascade="none" + * @hibernate.collection-key column="scribe_session_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.scribe.model.ScribeUser" + * + */ + + public Set getScribeUsers() { + return this.scribeUsers; + } + + public void setScribeUsers(Set scribeUsers) { + this.scribeUsers = scribeUsers; + } + + /** + * 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 ScribeSession)) + return false; + ScribeSession castOther = (ScribeSession) 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(){ + + ScribeSession session = null; + try{ + session = (ScribeSession) super.clone(); + session.scribeUsers = new HashSet(); + } catch (CloneNotSupportedException e) { + log.error("When clone " + ScribeSession.class + " failed"); + } + return session; + } + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeUser.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeUser.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/model/ScribeUser.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.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_lascrb11_user" + */ + +public class ScribeUser 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 ScribeSession scribeSession; + + private Boolean finishedActivity; + + // Constructors + + /** default constructor */ + public ScribeUser() { + } + + public ScribeUser(UserDTO user, ScribeSession scribeSession) { + this.userId = new Long(user.getUserID().intValue()); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + this.loginName = user.getLogin(); + this.scribeSession = scribeSession; + this.finishedActivity = false; + } + + /** full constructor */ + public ScribeUser(Long userId, String lastName, String firstName, + ScribeSession scribeSession) { + this.userId = userId; + this.lastName = lastName; + this.firstName = firstName; + this.scribeSession = scribeSession; + } + + // 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="scribe_session_uid" + * + */ + public ScribeSession getScribeSession() { + return this.scribeSession; + } + + public void setScribeSession(ScribeSession scribeSession) { + this.scribeSession = scribeSession; + } + + /** + * 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 ScribeUser)) + return false; + ScribeUser castOther = (ScribeUser) 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; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/scribeApplicationContext.xml =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/scribeApplicationContext.xml (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/scribeApplicationContext.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + org/lamsfoundation/lams/tool/scribe/model/Scribe.hbm.xml + org/lamsfoundation/lams/tool/scribe/model/ScribeSession.hbm.xml + org/lamsfoundation/lams/tool/scribe/model/ScribeUser.hbm.xml + org/lamsfoundation/lams/tool/scribe/model/ScribeAttachment.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 + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + PROPAGATION_REQUIRED + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/IScribeService.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/IScribeService.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/IScribeService.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,154 @@ +/**************************************************************** + * 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.scribe.service; + +import java.util.List; +import java.util.Map; + +import org.apache.struts.upload.FormFile; +import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.tool.scribe.model.Scribe; +import org.lamsfoundation.lams.tool.scribe.model.ScribeAttachment; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; +import org.lamsfoundation.lams.tool.scribe.util.ScribeException; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; + +/** + * Defines the services available to the web layer from the Scribe Service + */ +public interface IScribeService { + /** + * Makes a copy of the default content and assigns it a newContentID + * + * @params newContentID + * @return + */ + public Scribe copyDefaultContent(Long newContentID); + + /** + * Returns an instance of the Scribe tools default content. + * + * @return + */ + public Scribe getDefaultContent(); + + /** + * @param toolSignature + * @return + */ + public Long getDefaultContentIdBySignature(String toolSignature); + + /** + * @param toolContentID + * @return + */ + public Scribe getScribeByContentId(Long toolContentID); + + /** + * @param toolContentId + * @param file + * @param type + * @return + */ + public ScribeAttachment uploadFileToContent(Long toolContentId, + FormFile file, String type); + + /** + * @param uuid + * @param versionID + */ + public void deleteFromRepository(Long uuid, Long versionID) + throws ScribeException; + + /** + * @param contentID + * @param uuid + * @param versionID + * @param type + */ + public void deleteInstructionFile(Long contentID, Long uuid, + Long versionID, String type); + + /** + * @param scribe + */ + public void saveOrUpdateScribe(Scribe scribe); + + /** + * @param toolSessionId + * @return + */ + public ScribeSession getSessionBySessionId(Long toolSessionId); + + /** + * @param scribeSession + */ + public void saveOrUpdateScribeSession(ScribeSession scribeSession); + + /** + * + * @param userId + * @param toolSessionId + * @return + */ + public ScribeUser getUserByUserIdAndSessionId(Long userId, Long toolSessionId); + + /** + * + * @param loginName + * @param sessionID + * @return + */ + public ScribeUser getUserByLoginNameAndSessionId(String loginName, + Long sessionId); + + /** + * + * @param uid + * @return + */ + public ScribeUser getUserByUID(Long uid); + + /** + * + * @param scribeUser + */ + public void saveOrUpdateScribeUser(ScribeUser scribeUser); + + /** + * + * @param user + * @param scribeSession + * @return + */ + public ScribeUser createScribeUser(UserDTO user, ScribeSession scribeSession); + + public Long createNotebookEntry(Long id, Integer idType, String signature, + Integer userID, String entry); + + public NotebookEntry getEntry(Long id, Integer idType, String signature, + Integer userID); +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeService.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeService.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeService.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,613 @@ +/**************************************************************** + * 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.scribe.service; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.Date; +import java.util.Hashtable; +import java.util.List; +import java.util.Set; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.apache.struts.upload.FormFile; +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.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; +import org.lamsfoundation.lams.tool.ToolContentImport102Manager; +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.scribe.dao.IScribeAttachmentDAO; +import org.lamsfoundation.lams.tool.scribe.dao.IScribeDAO; +import org.lamsfoundation.lams.tool.scribe.dao.IScribeSessionDAO; +import org.lamsfoundation.lams.tool.scribe.dao.IScribeUserDAO; +import org.lamsfoundation.lams.tool.scribe.model.Scribe; +import org.lamsfoundation.lams.tool.scribe.model.ScribeAttachment; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; +import org.lamsfoundation.lams.tool.scribe.util.ScribeConstants; +import org.lamsfoundation.lams.tool.scribe.util.ScribeException; +import org.lamsfoundation.lams.tool.scribe.util.ScribeToolContentHandler; +import org.lamsfoundation.lams.tool.service.ILamsToolService; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.audit.IAuditService; + +/** + * An implementation of the IScribeService interface. + * + * As a requirement, all LAMS tool's service bean must implement + * ToolContentManager and ToolSessionManager. + */ + +public class ScribeService implements ToolSessionManager, ToolContentManager, ToolContentImport102Manager, + IScribeService { + + static Logger logger = Logger.getLogger(ScribeService.class.getName()); + + private IScribeDAO scribeDAO = null; + + private IScribeSessionDAO scribeSessionDAO = null; + + private IScribeUserDAO scribeUserDAO = null; + + private IScribeAttachmentDAO scribeAttachmentDAO = null; + + private ILearnerService learnerService; + + private ILamsToolService toolService; + + private IToolContentHandler scribeToolContentHandler = null; + + private IRepositoryService repositoryService = null; + + private IAuditService auditService = null; + + private IExportToolContentService exportContentService; + + private ICoreNotebookService coreNotebookService; + + public ScribeService() { + 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); + } + + ScribeSession session = new ScribeSession(); + session.setSessionId(toolSessionId); + session.setSessionName(toolSessionName); + // learner starts + // TODO need to also set other fields. + Scribe scribe = scribeDAO.getByContentId(toolContentId); + session.setScribe(scribe); + scribeSessionDAO.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 { + scribeSessionDAO.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 (toContentId == null) { + String error = "Failed to copy tool content: toContentID is null"; + throw new ToolException(error); + } + + Scribe fromContent = null; + if ( fromContentId != null ) { + fromContent = scribeDAO.getByContentId(fromContentId); + } + if (fromContent == null) { + // create the fromContent using the default tool content + fromContent = getDefaultContent(); + } + Scribe toContent = Scribe.newInstance(fromContent, toContentId, + scribeToolContentHandler); + scribeDAO.saveOrUpdate(toContent); + } + + public void setAsDefineLater(Long toolContentId) + throws DataMissingException, ToolException { + Scribe scribe = scribeDAO.getByContentId(toolContentId); + if(scribe == null){ + throw new ToolException("Could not find tool with toolContentID: " + toolContentId); + } + scribe.setDefineLater(true); + scribeDAO.saveOrUpdate(scribe); + } + + public void setAsRunOffline(Long toolContentId) + throws DataMissingException, ToolException { + Scribe scribe = scribeDAO.getByContentId(toolContentId); + if(scribe == null){ + throw new ToolException("Could not find tool with toolContentID: " + toolContentId); + } + scribe.setRunOffline(true); + scribeDAO.saveOrUpdate(scribe); + } + + 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 { + Scribe scribe = scribeDAO.getByContentId(toolContentId); + if (scribe == 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. + scribe = Scribe.newInstance(scribe, toolContentId, null); + scribe.setToolContentHandler(null); + scribe.setScribeSessions(null); + Set atts = scribe.getScribeAttachments(); + for (ScribeAttachment att : atts) { + att.setScribe(null); + } + try { + exportContentService + .registerFileClassForExport(ScribeAttachment.class.getName(), + "fileUuid", "fileVersionId"); + exportContentService.exportToolContent(toolContentId, + scribe, scribeToolContentHandler, 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( + ScribeAttachment.class.getName(), "fileUuid", + "fileVersionId", "fileName", "fileType", null, null); + + Object toolPOJO = exportContentService.importToolContent( + toolContentPath, scribeToolContentHandler); + if (!(toolPOJO instanceof Scribe)) + throw new ImportToolContentException( + "Import Scribe tool content failed. Deserialized object is " + + toolPOJO); + Scribe scribe = (Scribe) toolPOJO; + + // reset it to new toolContentId + scribe.setToolContentId(toolContentId); + scribe.setCreateBy(new Long(newUserUid.longValue())); + + scribeDAO.saveOrUpdate(scribe); + } catch (ImportToolContentException e) { + throw new ToolException(e); + } + } + + /* ********** IScribeService 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 ScribeException(error); + } + return toolContentId; + } + + public Scribe getDefaultContent() { + Long defaultContentID = getDefaultContentIdBySignature(ScribeConstants.TOOL_SIGNATURE); + Scribe defaultContent = getScribeByContentId(defaultContentID); + if (defaultContent == null) { + String error = "Could not retrieve default content record for this tool"; + logger.error(error); + throw new ScribeException(error); + } + return defaultContent; + } + + public Scribe copyDefaultContent(Long newContentID) { + + if (newContentID == null) { + String error = "Cannot copy the Scribe tools default content: + " + + "newContentID is null"; + logger.error(error); + throw new ScribeException(error); + } + + Scribe defaultContent = getDefaultContent(); + // create new scribe using the newContentID + Scribe newContent = new Scribe(); + newContent = Scribe.newInstance(defaultContent, newContentID, + scribeToolContentHandler); + scribeDAO.saveOrUpdate(newContent); + return newContent; + } + + public Scribe getScribeByContentId(Long toolContentID) { + Scribe scribe = (Scribe) scribeDAO.getByContentId(toolContentID); + if (scribe == null) { + logger.debug("Could not find the content with toolContentID:" + + toolContentID); + } + return scribe; + } + + public ScribeSession getSessionBySessionId(Long toolSessionId) { + ScribeSession scribeSession = scribeSessionDAO.getBySessionId(toolSessionId); + if (scribeSession == null) { + logger.debug("Could not find the scribe session with toolSessionID:" + + toolSessionId); + } + return scribeSession; + } + + public ScribeUser getUserByUserIdAndSessionId(Long userId, Long toolSessionId) { + return scribeUserDAO.getByUserIdAndSessionId(userId, toolSessionId); + } + + public ScribeUser getUserByLoginNameAndSessionId(String loginName, + Long toolSessionId) { + return scribeUserDAO.getByLoginNameAndSessionId(loginName, toolSessionId); + } + + public ScribeUser getUserByUID(Long uid) { + return scribeUserDAO.getByUID(uid); + } + + public ScribeAttachment uploadFileToContent(Long toolContentId, + FormFile file, String type) { + if (file == null || StringUtils.isEmpty(file.getFileName())) + throw new ScribeException("Could not find upload file: " + file); + + NodeKey nodeKey = processFile(file, type); + + ScribeAttachment attachment = new ScribeAttachment(); + 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 ScribeException { + ITicket ticket = getRepositoryLoginTicket(); + try { + repositoryService.deleteVersion(ticket, uuid, versionID); + } catch (Exception e) { + throw new ScribeException( + "Exception occured while deleting files from" + + " the repository " + e.getMessage()); + } + } + + public void deleteInstructionFile(Long contentID, Long uuid, + Long versionID, String type) { + scribeDAO.deleteInstructionFile(contentID, uuid, versionID, type); + + } + + public void saveOrUpdateScribe(Scribe scribe) { + scribeDAO.saveOrUpdate(scribe); + } + + public void saveOrUpdateScribeSession(ScribeSession scribeSession) { + scribeSessionDAO.saveOrUpdate(scribeSession); + } + + public void saveOrUpdateScribeUser(ScribeUser scribeUser) { + scribeUserDAO.saveOrUpdate(scribeUser); + } + + public synchronized ScribeUser createScribeUser(UserDTO user, + ScribeSession scribeSession) { + ScribeUser scribeUser = new ScribeUser(user, scribeSession); + saveOrUpdateScribeUser(scribeUser); + return scribeUser; + } + + public IAuditService getAuditService() { + return auditService; + } + + public void setAuditService(IAuditService auditService) { + this.auditService = auditService; + } + + /* ********** Private methods ********** */ + + private NodeKey processFile(FormFile file, String type) { + NodeKey node = null; + if (file != null && !StringUtils.isEmpty(file.getFileName())) { + String fileName = file.getFileName(); + try { + node = getScribeToolContentHandler().uploadFile( + file.getInputStream(), fileName, file.getContentType(), + type); + } catch (InvalidParameterException e) { + throw new ScribeException( + "InvalidParameterException occured while trying to upload File" + + e.getMessage()); + } catch (FileNotFoundException e) { + throw new ScribeException( + "FileNotFoundException occured while trying to upload File" + + e.getMessage()); + } catch (RepositoryCheckedException e) { + throw new ScribeException( + "RepositoryCheckedException occured while trying to upload File" + + e.getMessage()); + } catch (IOException e) { + throw new ScribeException( + "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 ScribeException { + repositoryService = RepositoryProxy.getRepositoryService(); + ICredentials credentials = new SimpleCredentials( + ScribeToolContentHandler.repositoryUser, + ScribeToolContentHandler.repositoryId); + try { + ITicket ticket = repositoryService.login(credentials, + ScribeToolContentHandler.repositoryWorkspaceName); + return ticket; + } catch (AccessDeniedException ae) { + throw new ScribeException("Access Denied to repository." + + ae.getMessage()); + } catch (WorkspaceNotFoundException we) { + throw new ScribeException("Workspace not found." + we.getMessage()); + } catch (LoginException e) { + throw new ScribeException("Login failed." + e.getMessage()); + } + } + + /* ********** Used by Spring to "inject" the linked objects ************* */ + + public IScribeAttachmentDAO getScribeAttachmentDAO() { + return scribeAttachmentDAO; + } + + public void setScribeAttachmentDAO(IScribeAttachmentDAO attachmentDAO) { + this.scribeAttachmentDAO = attachmentDAO; + } + + public IScribeDAO getScribeDAO() { + return scribeDAO; + } + + public void setScribeDAO(IScribeDAO scribeDAO) { + this.scribeDAO = scribeDAO; + } + + public IToolContentHandler getScribeToolContentHandler() { + return scribeToolContentHandler; + } + + public void setScribeToolContentHandler( + IToolContentHandler scribeToolContentHandler) { + this.scribeToolContentHandler = scribeToolContentHandler; + } + + public IScribeSessionDAO getScribeSessionDAO() { + return scribeSessionDAO; + } + + public void setScribeSessionDAO(IScribeSessionDAO sessionDAO) { + this.scribeSessionDAO = sessionDAO; + } + + public ILamsToolService getToolService() { + return toolService; + } + + public void setToolService(ILamsToolService toolService) { + this.toolService = toolService; + } + + public IScribeUserDAO getScribeUserDAO() { + return scribeUserDAO; + } + + public void setScribeUserDAO(IScribeUserDAO userDAO) { + this.scribeUserDAO = 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; + } + + public ICoreNotebookService getCoreNotebookService() { + return coreNotebookService; + } + + public void setCoreNotebookService(ICoreNotebookService coreNotebookService) { + this.coreNotebookService = coreNotebookService; + } + + public Long createNotebookEntry(Long id, Integer idType, String signature, + Integer userID, String entry) { + return coreNotebookService.createNotebookEntry(id, idType, signature, userID, "", entry); + } + + public NotebookEntry getEntry(Long id, Integer idType, String signature, + Integer userID) { + + List list = coreNotebookService.getEntry(id, idType, signature, userID); + if (list == null || list.isEmpty()) { + return null; + } else { + return list.get(0); + } + } + + /* ===============Methods implemented from ToolContentImport102Manager =============== */ + + + /** + * Import the data for a 1.0.2 Scribe + */ + public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues) + { + Date now = new Date(); + Scribe scribe = new Scribe(); + scribe.setContentInUse(Boolean.FALSE); + scribe.setCreateBy(new Long(user.getUserID().longValue())); + scribe.setCreateDate(now); + scribe.setDefineLater(Boolean.FALSE); + scribe.setInstructions((String)importValues.get(ToolContentImport102Manager.CONTENT_BODY)); + scribe.setOfflineInstructions(null); + scribe.setOnlineInstructions(null); + scribe.setReflectInstructions(null); + scribe.setReflectOnActivity(Boolean.FALSE); + scribe.setRunOffline(Boolean.FALSE); + scribe.setTitle((String)importValues.get(ToolContentImport102Manager.CONTENT_TITLE)); + scribe.setToolContentId(toolContentId); + scribe.setUpdateDate(now); + // leave as empty, no need to set them to anything. + //setScribeAttachments(Set scribeAttachments); + //setScribeSessions(Set scribeSessions); + scribeDAO.saveOrUpdate(scribe); + } + + /** Set the description, throws away the title value as this is not supported in 2.0 */ + public void setReflectiveData(Long toolContentId, String title, String description) + throws ToolException, DataMissingException { + + Scribe scribe = getScribeByContentId(toolContentId); + if ( scribe == null ) { + throw new DataMissingException("Unable to set reflective data titled "+title + +" on activity toolContentId "+toolContentId + +" as the tool content does not exist."); + } + + scribe.setReflectOnActivity(Boolean.TRUE); + scribe.setReflectInstructions(description); + } + + //========================================================================================= +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeServiceProxy.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeServiceProxy.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/service/ScribeServiceProxy.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.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 ScribeServiceProxy { + + public static final IScribeService getScribeService(ServletContext servletContext) + { + return (IScribeService)getScribeDomainService(servletContext); + } + + private static Object getScribeDomainService(ServletContext servletContext) + { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); + return wac.getBean("lascrbScribeService"); + } + + /* + * Return the scribe 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 getScribeSessionManager(ServletContext servletContext) + { + return (ToolSessionManager)getScribeDomainService(servletContext); + } + + + /* + * Return the scribe 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 getScribeContentManager(ServletContext servletContext) + { + return (ToolContentManager)getScribeDomainService(servletContext); + } + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeConstants.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeConstants.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeConstants.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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 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.scribe.util; + + +public interface ScribeConstants { + public static final String TOOL_SIGNATURE = "lascrb11"; + + // Scribe 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"; + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeException.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeException.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeException.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.util; + +/** + * + * @author Anthony Sukkar + * + */ +public class ScribeException extends RuntimeException { + + /** + * + */ + private static final long serialVersionUID = -5518806968051758859L; + + public ScribeException(String message) { + super(message); + } + + public ScribeException(String message, Throwable cause) { + super(message, cause); + } + + public ScribeException() { + super(); + + } + + public ScribeException(Throwable cause) { + super(cause); + + } + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeToolContentHandler.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeToolContentHandler.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/util/ScribeToolContentHandler.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.util; + +import org.lamsfoundation.lams.contentrepository.client.ToolContentHandler; + +/** + * Simple client for accessing the content repository. + */ +public class ScribeToolContentHandler 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 = "scribeworkspace"; + + public static String repositoryUser = "scribe"; + + public static char[] repositoryId = { 'l', 'a', 'm', 's', '-', 'e', 'x' }; + + /** + * + */ + public ScribeToolContentHandler() { + 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_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/AuthoringAction.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/AuthoringAction.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/AuthoringAction.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,473 @@ +/**************************************************************** + * 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.scribe.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.scribe.model.Scribe; +import org.lamsfoundation.lams.tool.scribe.model.ScribeAttachment; +import org.lamsfoundation.lams.tool.scribe.service.ScribeServiceProxy; +import org.lamsfoundation.lams.tool.scribe.service.IScribeService; +import org.lamsfoundation.lams.tool.scribe.util.ScribeConstants; +import org.lamsfoundation.lams.tool.scribe.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 IScribeService scribeService; + + // 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)); + + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + + // set up scribeService + if (scribeService == null) { + scribeService = ScribeServiceProxy.getScribeService(this.getServlet() + .getServletContext()); + } + + // retrieving Scribe with given toolContentID + Scribe scribe = scribeService.getScribeByContentId(toolContentID); + if (scribe == null) { + scribe = scribeService.copyDefaultContent(toolContentID); + scribe.setCreateDate(new Date()); + scribeService.saveOrUpdateScribe(scribe); + // TODO NOTE: this causes DB orphans when LD not saved. + } + + // check if content in use is set + if (scribe.getContentInUse()) { + // Cannot edit, send to message page. + request.setAttribute(ScribeConstants.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. + scribe.setDefineLater(true); + scribeService.saveOrUpdateScribe(scribe); + + // Set up the authForm. + AuthoringForm authForm = (AuthoringForm) form; + updateAuthForm(authForm, scribe); + + // Set up sessionMap + SessionMap map = createSessionMap(scribe, getAccessMode(request)); + authForm.setSessionMapID(map.getSessionID()); + + authForm.setContentFolderID(contentFolderID); + + // add the sessionMap to HTTPSession. + request.getSession().setAttribute(map.getSessionID(), map); + request.setAttribute(ScribeConstants.ATTR_SESSION_MAP, 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 scribe content. + Scribe scribe = scribeService.getScribeByContentId(authForm.getToolContentID()); + + // update scribe content using form inputs. + updateScribe(scribe, authForm); + + // remove attachments marked for deletion. + Set attachments = scribe.getScribeAttachments(); + if (attachments == null) { + attachments = new HashSet(); + } + + for (ScribeAttachment att : getAttList(KEY_DELETED_FILES, map)) { + // remove from repository and db + scribeService.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 + scribe.setScribeAttachments(attachments); + + // set the update date + scribe.setUpdateDate(new Date()); + + // releasing defineLater flag so that learner can start using the tool. + scribe.setDefineLater(false); + + scribeService.saveOrUpdateScribe(scribe); + + request.setAttribute(AuthoringConstants.LAMS_AUTHORING_SUCCESS_FLAG, + Boolean.TRUE); + + // add the sessionMapID to form + authForm.setSessionMapID(map.getSessionID()); + + request.setAttribute(ScribeConstants.ATTR_SESSION_MAP, map); + + 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 + ScribeAttachment newAtt = scribeService.uploadFileToContent(authForm + .getToolContentID(), file, type); + + // Add attachment to unsavedFiles + // check to see if file with same name exists + ScribeAttachment currAtt; + Iterator iter = savedFiles.iterator(); + while (iter.hasNext()) { + currAtt = (ScribeAttachment) 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(ScribeConstants.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()) { + ScribeAttachment att = (ScribeAttachment) 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(ScribeConstants.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()) { + ScribeAttachment att = (ScribeAttachment) iter.next(); + + if (att.getFileUuid().equals(authForm.getDeleteFileUuid())) { + // delete from repository and list + scribeService.deleteFromRepository(att.getFileUuid(), att + .getFileVersionId()); + iter.remove(); + break; + } + } + + request.setAttribute(ScribeConstants.ATTR_SESSION_MAP, map); + request.setAttribute("unsavedChanges", new Boolean(true)); + + return mapping.findForward("success"); + } + + /** + * Updates Scribe content using AuthoringForm inputs. + * + * @param authForm + * @return + */ + private void updateScribe(Scribe scribe, AuthoringForm authForm) { + scribe.setTitle(authForm.getTitle()); + scribe.setInstructions(authForm.getInstructions()); + scribe.setOfflineInstructions(authForm.getOnlineInstruction()); + scribe.setOnlineInstructions(authForm.getOfflineInstruction()); + scribe.setLockOnFinished(authForm.isLockOnFinished()); + scribe.setReflectOnActivity(authForm.isReflectOnActivity()); + scribe.setReflectInstructions(authForm.getReflectInstructions()); + scribe.setAutoSelectScribe(authForm.isAutoSelectScribe()); + } + + /** + * Updates AuthoringForm using Scribe content. + * + * @param scribe + * @param authForm + * @return + */ + private void updateAuthForm(AuthoringForm authForm, Scribe scribe) { + authForm.setToolContentID(scribe.getToolContentId()); + authForm.setTitle(scribe.getTitle()); + authForm.setInstructions(scribe.getInstructions()); + authForm.setOnlineInstruction(scribe.getOnlineInstructions()); + authForm.setOfflineInstruction(scribe.getOfflineInstructions()); + authForm.setLockOnFinished(scribe.getLockOnFinished()); + authForm.setReflectOnActivity(scribe.getReflectOnActivity()); + authForm.setReflectInstructions(scribe.getReflectInstructions()); + authForm.setAutoSelectScribe(scribe.getAutoSelectScribe()); + } + + /** + * Updates SessionMap using Scribe content. + * + * @param scribe + * @param mode + */ + private SessionMap createSessionMap(Scribe scribe, ToolAccessMode mode) { + + SessionMap map = new SessionMap(); + + map.put(KEY_MODE, mode); + 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()); + + Iterator iter = scribe.getScribeAttachments().iterator(); + while (iter.hasNext()) { + ScribeAttachment attachment = (ScribeAttachment) 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); + } + } + + return map; + } + + /** + * 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()); + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/ClearSessionAction.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/ClearSessionAction.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/ClearSessionAction.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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.scribe.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_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/LearningAction.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/LearningAction.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/LearningAction.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,234 @@ +/**************************************************************** + * 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.scribe.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.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; +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.scribe.dto.ScribeDTO; +import org.lamsfoundation.lams.tool.scribe.dto.ScribeUserDTO; +import org.lamsfoundation.lams.tool.scribe.model.Scribe; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; +import org.lamsfoundation.lams.tool.scribe.service.IScribeService; +import org.lamsfoundation.lams.tool.scribe.service.ScribeServiceProxy; +import org.lamsfoundation.lams.tool.scribe.util.ScribeConstants; +import org.lamsfoundation.lams.tool.scribe.util.ScribeException; +import org.lamsfoundation.lams.tool.scribe.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="learning" path="tiles:/learning/main" + * @struts.action-forward name="runOffline" path="tiles:/learning/runOffline" + * @struts.action-forward name="defineLater" path="tiles:/learning/defineLater" + * @struts.action-forward name="notebook" path="tiles:/learning/notebook" + */ +public class LearningAction extends LamsDispatchAction { + + private static Logger log = Logger.getLogger(LearningAction.class); + + private static final boolean MODE_OPTIONAL = false; + + private IScribeService scribeService; + + 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); + + Long toolSessionID = WebUtil.readLongParam(request, + AttributeNames.PARAM_TOOL_SESSION_ID); + + // set up scribeService + if (scribeService == null) { + scribeService = ScribeServiceProxy.getScribeService(this.getServlet() + .getServletContext()); + } + + // Retrieve the session and content. + ScribeSession scribeSession = scribeService + .getSessionBySessionId(toolSessionID); + if (scribeSession == null) { + throw new ScribeException( + "Cannot retreive session with toolSessionID" + + toolSessionID); + } + + Scribe scribe = scribeSession.getScribe(); + + // Retrieve the current user + ScribeUser scribeUser = getCurrentUser(toolSessionID); + + // check defineLater + if (scribe.getDefineLater()) { + return mapping.findForward("defineLater"); + } + + request.setAttribute("MODE", mode.toString()); + + ScribeDTO scribeDTO = new ScribeDTO(scribe); + request.setAttribute("scribeDTO", scribeDTO); + + ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); + if (scribeUser.getFinishedActivity()) { + // get the notebook entry. + NotebookEntry notebookEntry = scribeService.getEntry(toolSessionID, + CoreNotebookConstants.NOTEBOOK_TOOL, + ScribeConstants.TOOL_SIGNATURE, scribeUser.getUserId() + .intValue()); + if (notebookEntry != null) { + scribeUserDTO.notebookEntry = notebookEntry.getEntry(); + } + } + request.setAttribute("scribeUserDTO", scribeUserDTO); + + // Ensure that the content is use flag is set. + if (!scribe.getContentInUse()) { + scribe.setContentInUse(new Boolean(true)); + scribeService.saveOrUpdateScribe(scribe); + } + + // check runOffline + if (scribe.getRunOffline()) { + return mapping.findForward("runOffline"); + } + + return mapping.findForward("learning"); + + } + + private ScribeUser getCurrentUser(Long toolSessionId) { + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute( + AttributeNames.USER); + + // attempt to retrieve user using userId and toolSessionId + ScribeUser scribeUser = scribeService.getUserByUserIdAndSessionId(new Long( + user.getUserID().intValue()), toolSessionId); + + if (scribeUser == null) { + ScribeSession scribeSession = scribeService + .getSessionBySessionId(toolSessionId); + scribeUser = scribeService.createScribeUser(user, scribeSession); + } + + return scribeUser; + } + + public ActionForward finishActivity(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + + LearningForm lrnForm = (LearningForm) form; + + // set the finished flag + ScribeUser scribeUser = scribeService.getUserByUID(lrnForm.getScribeUserUID()); + if (scribeUser != null) { + scribeUser.setFinishedActivity(true); + scribeService.saveOrUpdateScribeUser(scribeUser); + } else { + log.error("finishActivity(): couldn't find ScribeUser with uid: " + + lrnForm.getScribeUserUID()); + } + + ToolSessionManager sessionMgrService = ScribeServiceProxy + .getScribeSessionManager(getServlet().getServletContext()); + + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + Long userID = new Long(user.getUserID().longValue()); + Long toolSessionID = scribeUser.getScribeSession().getSessionId(); + + String nextActivityUrl; + try { + nextActivityUrl = sessionMgrService.leaveToolSession(toolSessionID, + userID); + response.sendRedirect(nextActivityUrl); + } catch (DataMissingException e) { + throw new ScribeException(e); + } catch (ToolException e) { + throw new ScribeException(e); + } catch (IOException e) { + throw new ScribeException(e); + } + + return null; // TODO need to return proper page. + } + + public ActionForward openNotebook(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + + LearningForm lrnForm = (LearningForm) form; + + // set the finished flag + ScribeUser scribeUser = scribeService.getUserByUID(lrnForm.getScribeUserUID()); + ScribeDTO scribeDTO = new ScribeDTO(scribeUser.getScribeSession().getScribe()); + + request.setAttribute("scribeDTO", scribeDTO); + return mapping.findForward("notebook"); + } + + public ActionForward submitReflection(ActionMapping mapping, + ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + // save the reflection entry and call the notebook. + + LearningForm lrnForm = (LearningForm) form; + + ScribeUser scribeUser = scribeService.getUserByUID(lrnForm.getScribeUserUID()); + + scribeService.createNotebookEntry(scribeUser.getScribeSession() + .getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL, + ScribeConstants.TOOL_SIGNATURE, scribeUser.getUserId().intValue(), + lrnForm.getEntryText()); + + return finishActivity(mapping, form, request, response); + } + +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/MonitoringAction.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/MonitoringAction.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/actions/MonitoringAction.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,157 @@ +/**************************************************************** + * 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.scribe.web.actions; + +import java.util.Iterator; +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.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; +import org.lamsfoundation.lams.tool.scribe.dto.ScribeDTO; +import org.lamsfoundation.lams.tool.scribe.dto.ScribeSessionDTO; +import org.lamsfoundation.lams.tool.scribe.dto.ScribeUserDTO; +import org.lamsfoundation.lams.tool.scribe.model.Scribe; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; +import org.lamsfoundation.lams.tool.scribe.service.IScribeService; +import org.lamsfoundation.lams.tool.scribe.service.ScribeServiceProxy; +import org.lamsfoundation.lams.tool.scribe.util.ScribeConstants; +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="/monitoring" parameter="dispatch" scope="request" + * name="monitoringForm" validate="false" + * + * @struts.action-forward name="success" path="tiles:/monitoring/main" + * @struts.action-forward name="scribe_client" + * path="tiles:/monitoring/scribe_client" + * @struts.action-forward name="scribe_history" + * path="tiles:/monitoring/scribe_history" + * + * @struts.action-forward name="notebook" path="tiles:/monitoring/notebook" + * + */ +public class MonitoringAction extends LamsDispatchAction { + + private static Logger log = Logger.getLogger(MonitoringAction.class); + + public IScribeService scribeService; + + 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 scribeService + if (scribeService == null) { + scribeService = ScribeServiceProxy.getScribeService(this.getServlet() + .getServletContext()); + } + Scribe scribe = scribeService.getScribeByContentId(toolContentID); + ScribeDTO scribeDTO = new ScribeDTO(scribe); + + for (Iterator sessIter = scribe.getScribeSessions().iterator(); sessIter + .hasNext();) { + ScribeSession session = (ScribeSession) sessIter.next(); + + ScribeSessionDTO sessionDTO = new ScribeSessionDTO(session); + + for (Iterator userIter = session.getScribeUsers().iterator(); userIter + .hasNext();) { + ScribeUser user = (ScribeUser) userIter.next(); + ScribeUserDTO userDTO = new ScribeUserDTO(user); + + // get the notebook entry. + NotebookEntry notebookEntry = scribeService.getEntry(session.getSessionId(), + CoreNotebookConstants.NOTEBOOK_TOOL, + ScribeConstants.TOOL_SIGNATURE, user.getUserId() + .intValue()); + if (notebookEntry != null) { + userDTO.finishedReflection = true; + } else { + userDTO.finishedReflection = false; + } + + sessionDTO.getUserDTOs().add(userDTO); + } + + scribeDTO.getSessionDTOs().add(sessionDTO); + } + request.setAttribute("monitoringDTO", scribeDTO); + return mapping.findForward("success"); + } + + public ActionForward openNotebook(ActionMapping mapping, + ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + Long uid = WebUtil.readLongParam(request, "uid", false); + + ScribeUser scribeUser = scribeService.getUserByUID(uid); + NotebookEntry notebookEntry = scribeService.getEntry(scribeUser.getScribeSession().getSessionId(), CoreNotebookConstants.NOTEBOOK_TOOL, ScribeConstants.TOOL_SIGNATURE, scribeUser.getUserId().intValue()); + + ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); + scribeUserDTO.setNotebookEntry(notebookEntry.getEntry()); + + request.setAttribute("scribeUserDTO", scribeUserDTO); + + return mapping.findForward("notebook"); + } + + /* Private Methods */ + + private ScribeUser getCurrentUser(Long toolSessionId) { + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute( + AttributeNames.USER); + + // attempt to retrieve user using userId and toolSessionId + ScribeUser scribeUser = scribeService.getUserByUserIdAndSessionId(new Long( + user.getUserID().intValue()), toolSessionId); + + if (scribeUser == null) { + ScribeSession scribeSession = scribeService + .getSessionBySessionId(toolSessionId); + scribeUser = scribeService.createScribeUser(user, scribeSession); + } + + return scribeUser; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/AuthoringForm.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/AuthoringForm.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/AuthoringForm.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,225 @@ +/**************************************************************** + * 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.scribe.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; + + String contentFolderID; + + boolean lockOnFinished; + + boolean reflectOnActivity; + + String reflectInstructions; + + boolean autoSelectScribe; + + 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; + } + + public boolean isReflectOnActivity() { + return reflectOnActivity; + } + + public void setReflectOnActivity(boolean reflectOnActivity) { + this.reflectOnActivity = reflectOnActivity; + } + + public String getReflectInstructions() { + return reflectInstructions; + } + + public void setReflectInstructions(String reflectInstructions) { + this.reflectInstructions = reflectInstructions; + } + + public String getContentFolderID() { + return contentFolderID; + } + + public void setContentFolderID(String contentFolderID) { + this.contentFolderID = contentFolderID; + } + + public boolean isAutoSelectScribe() { + return autoSelectScribe; + } + + public void setAutoSelectScribe(boolean autoSelectScribe) { + this.autoSelectScribe = autoSelectScribe; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/LearningForm.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/LearningForm.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/LearningForm.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,85 @@ +/**************************************************************** + * 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.scribe.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 dispatch; + Long scribeUserUID; + Long toolSessionID; + String mode; + String entryText; + + public String getMode() { + return mode; + } + + public void setMode(String mode) { + this.mode = mode; + } + + public Long getScribeUserUID() { + return scribeUserUID; + } + + public void setScribeUserUID(Long scribeUserUID) { + this.scribeUserUID = scribeUserUID; + } + + 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 getEntryText() { + return entryText; + } + + public void setEntryText(String entryText) { + this.entryText = entryText; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/MonitoringForm.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/MonitoringForm.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/forms/MonitoringForm.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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 + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.scribe.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; + Long toolSessionID; + + 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; + } +} Index: lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/servlets/ExportServlet.java =================================================================== diff -u --- lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/servlets/ExportServlet.java (revision 0) +++ lams_tool_scribe/src/java/org/lamsfoundation/lams/tool/scribe/web/servlets/ExportServlet.java (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,190 @@ +/**************************************************************** + * 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.scribe.web.servlets; + +import java.util.Iterator; + +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.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; +import org.lamsfoundation.lams.tool.ToolAccessMode; +import org.lamsfoundation.lams.tool.scribe.dto.ScribeDTO; +import org.lamsfoundation.lams.tool.scribe.dto.ScribeSessionDTO; +import org.lamsfoundation.lams.tool.scribe.dto.ScribeUserDTO; +import org.lamsfoundation.lams.tool.scribe.model.Scribe; +import org.lamsfoundation.lams.tool.scribe.model.ScribeSession; +import org.lamsfoundation.lams.tool.scribe.model.ScribeUser; +import org.lamsfoundation.lams.tool.scribe.service.IScribeService; +import org.lamsfoundation.lams.tool.scribe.service.ScribeServiceProxy; +import org.lamsfoundation.lams.tool.scribe.util.ScribeConstants; +import org.lamsfoundation.lams.tool.scribe.util.ScribeException; +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 = "scribe_main.html"; + + private IScribeService scribeService; + + protected String doExport(HttpServletRequest request, + HttpServletResponse response, String directoryName, Cookie[] cookies) { + + if (scribeService == null) { + scribeService = ScribeServiceProxy.getScribeService(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 (ScribeException e) { + logger.error("Cannot perform export for scribe 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 ScribeException { + + 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 ScribeException(error); + } + + ScribeSession scribeSession = scribeService + .getSessionBySessionId(toolSessionID); + + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute( + AttributeNames.USER); + + // get the scribe user + ScribeUser scribeUser = scribeService.getUserByUserIdAndSessionId(new Long( + user.getUserID()), toolSessionID); + + // construct session DTO. + ScribeSessionDTO sessionDTO = new ScribeSessionDTO(scribeSession); + + // if reflectOnActivity is enabled add userDTO. + if (scribeSession.getScribe().getReflectOnActivity()) { + ScribeUserDTO scribeUserDTO = new ScribeUserDTO(scribeUser); + + // get the entry. + NotebookEntry entry = scribeService.getEntry(toolSessionID, + CoreNotebookConstants.NOTEBOOK_TOOL, + ScribeConstants.TOOL_SIGNATURE, scribeUser.getUserId() + .intValue()); + + if (entry != null) { + scribeUserDTO.finishedReflection = true; + scribeUserDTO.notebookEntry = entry.getEntry(); + } else { + scribeUserDTO.finishedReflection = false; + } + sessionDTO.getUserDTOs().add(scribeUserDTO); + } + + ScribeDTO scribeDTO = new ScribeDTO(scribeSession.getScribe()); + scribeDTO.getSessionDTOs().add(sessionDTO); + + request.getSession().setAttribute("scribeDTO", scribeDTO); + } + + public void doTeacherExport(HttpServletRequest request, + HttpServletResponse response, String directoryName, Cookie[] cookies) + throws ScribeException { + + 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 ScribeException(error); + } + + Scribe scribe = scribeService.getScribeByContentId(toolContentID); + ScribeDTO scribeDTO = new ScribeDTO(scribe); + for (Iterator iter = scribe.getScribeSessions().iterator(); iter.hasNext();) { + + ScribeSession session = (ScribeSession) iter.next(); + ScribeSessionDTO sessionDTO = new ScribeSessionDTO(session); + + // if reflectOnActivity is enabled add all userDTO. + if (session.getScribe().getReflectOnActivity()) { + + for (Iterator iterator = session.getScribeUsers().iterator(); iterator + .hasNext();) { + ScribeUser user = (ScribeUser) iterator.next(); + ScribeUserDTO userDTO = new ScribeUserDTO(user); + // get the entry. + NotebookEntry entry = scribeService.getEntry(session.getSessionId(), + CoreNotebookConstants.NOTEBOOK_TOOL, + ScribeConstants.TOOL_SIGNATURE, user.getUserId() + .intValue()); + if (entry != null) { + userDTO.finishedReflection = true; + userDTO.notebookEntry = entry.getEntry(); + } else { + userDTO.finishedReflection = false; + } + sessionDTO.getUserDTOs().add(userDTO); + } + } + scribeDTO.getSessionDTOs().add(sessionDTO); + } + request.getSession().setAttribute("scribeDTO", scribeDTO); + } +} Index: lams_tool_scribe/web/403.jsp =================================================================== diff -u --- lams_tool_scribe/web/403.jsp (revision 0) +++ lams_tool_scribe/web/403.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,6 @@ +<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-core" prefix="c" %> + + + Index: lams_tool_scribe/web/404.jsp =================================================================== diff -u --- lams_tool_scribe/web/404.jsp (revision 0) +++ lams_tool_scribe/web/404.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,8 @@ +<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-core" prefix="c" %> + + + + + Index: lams_tool_scribe/web/META-INF/MANIFEST.MF =================================================================== diff -u --- lams_tool_scribe/web/META-INF/MANIFEST.MF (revision 0) +++ lams_tool_scribe/web/META-INF/MANIFEST.MF (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + Index: lams_tool_scribe/web/WEB-INF/fckeditor/tlds/FCKeditor.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/fckeditor/tlds/FCKeditor.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/fckeditor/tlds/FCKeditor.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,215 @@ + + + + + 2.3 + 1.1 + FCKeditor + http://fckeditor.net/tags-fckeditor + FCKeditor taglib + + editor + com.fredck.FCKeditor.tags.FCKeditorTag + JSP + + id + true + 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 + + + Index: lams_tool_scribe/web/WEB-INF/jstl/tlds/c.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/jstl/tlds/c.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/jstl/tlds/c.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/jstl/tlds/fmt.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/jstl/tlds/fmt.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/jstl/tlds/fmt.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/jstl/tlds/fn.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/jstl/tlds/fn.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/jstl/tlds/fn.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/jstl/tlds/permittedTaglibs.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/jstl/tlds/permittedTaglibs.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/jstl/tlds/permittedTaglibs.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/jstl/tlds/scriptfree.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/jstl/tlds/scriptfree.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/jstl/tlds/scriptfree.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/jstl/tlds/x.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/jstl/tlds/x.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/jstl/tlds/x.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/lams.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/lams.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/lams.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,358 @@ + + + + + 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 + + + + + converts text from \n or \r\n to <BR> before rendering + converts text from \n or \r\n to <BR> before rendering + + + out + org.lamsfoundation.lams.web.tag.MultiLinesOutputTag + empty + + + converts text from \n or \r\n to <BR> before rendering + value + true + + true + + + + + + + Render html tag with direction and language + Render html tag with direction and language + + + html + org.lamsfoundation.lams.web.tag.HtmlTag + JSP + + + Render html tag with direction and language + xhtml + false + + true + + + + + + + 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 + + + FCKEditor + /WEB-INF/tags/FCKEditor.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 + + + Date + /WEB-INF/tags/Date.tag + + + DefineLater + /WEB-INF/tags/DefineLater.tag + + + Index: lams_tool_scribe/web/WEB-INF/struts/struts-config.xml =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/struts/struts-config.xml (revision 0) +++ lams_tool_scribe/web/WEB-INF/struts/struts-config.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_scribe/web/WEB-INF/struts/tiles-defs.xml =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/struts/tiles-defs.xml (revision 0) +++ lams_tool_scribe/web/WEB-INF/struts/tiles-defs.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_scribe/web/WEB-INF/struts/tlds/struts-bean.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/struts/tlds/struts-bean.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/struts/tlds/struts-bean.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/struts/tlds/struts-html.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/struts/tlds/struts-html.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/struts/tlds/struts-html.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/struts/tlds/struts-logic.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/struts/tlds/struts-logic.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/struts/tlds/struts-logic.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/struts/tlds/struts-nested.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/struts/tlds/struts-nested.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/struts/tlds/struts-nested.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/struts/tlds/struts-tiles.tld =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/struts/tlds/struts-tiles.tld (revision 0) +++ lams_tool_scribe/web/WEB-INF/struts/tlds/struts-tiles.tld (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/struts/validator-rules.xml =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/struts/validator-rules.xml (revision 0) +++ lams_tool_scribe/web/WEB-INF/struts/validator-rules.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_scribe/web/WEB-INF/tags/AuthoringButton.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/AuthoringButton.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/AuthoringButton.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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 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="contentFolderID" 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 --%> + + + + + + + + + + + + + + + +

+ + + + + + +

+ Index: lams_tool_scribe/web/WEB-INF/tags/Date.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/Date.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/Date.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,37 @@ +<% +/**************************************************************** + * 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 + * **************************************************************** + */ + + /** + * Author: Fiona Malikoff + * Description: Format a date, using the locale, based on standard parameters. + * Need to use long for the date otherwise the AU locale comes out as 1/2/06 and + * full is needed to include the timezone. + */ + + %> +<%@ tag body-content="empty" %> +<%@ attribute name="value" required="true" rtexprvalue="true" type="java.util.Date" %> +<%@ taglib uri="tags-fmt" prefix="fmt" %> + + Index: lams_tool_scribe/web/WEB-INF/tags/DefineLater.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/DefineLater.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/DefineLater.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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 + * **************************************************************** + */ + + /** + * DefineLater.tag + * Author: Fiona Malikoff + * Description: Layout for "Define Later" screens - to be used in learning. + * A suggested layout - unless the tool has special requirements, this layout should be used. + * Expects to be used inside
+ */ +%> + +<%@ tag body-content="scriptless" %> +<%@ taglib uri="tags-fmt" prefix="fmt" %> +<%@ taglib uri="tags-core" prefix="c" %> + +<%@ attribute name="defineLaterMessageKey" required="false" rtexprvalue="true" %> +<%@ attribute name="buttonTryAgainKey" required="false" rtexprvalue="true" %> + +<%-- Default value for I18N keys --%> + + + + + + + +

 

+ +

+ +

+ +
Index: lams_tool_scribe/web/WEB-INF/tags/ExportPortOutput.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/ExportPortOutput.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/ExportPortOutput.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/tags/FCKEditor.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/FCKEditor.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/FCKEditor.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,57 @@ +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="fck-editor" prefix="fck"%> + +<%@ attribute name="id" required="true" rtexprvalue="true"%> +<%@ attribute name="value" required="true" rtexprvalue="true"%> +<%@ attribute name="toolbarSet" required="false" rtexprvalue="true"%> +<%@ attribute name="contentFolderID" required="true" rtexprvalue="true"%> + + + + + + + + + + + + + + + ${value} + + + + + Index: lams_tool_scribe/web/WEB-INF/tags/Passon.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/Passon.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/Passon.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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" %> + + + + + + + + + + + + + + + Index: lams_tool_scribe/web/WEB-INF/tags/Tab.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/Tab.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/Tab.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,80 @@ + +<% + /**************************************************************** + * 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-fmt" prefix="fmt"%> +<%@ 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 +%> + + + + + + + + + + + + + + + + + + + <%-- TODO need to reimplement inactive tabs --%> + + + Index: lams_tool_scribe/web/WEB-INF/tags/TabBody.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/TabBody.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/TabBody.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -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_scribe/web/WEB-INF/tags/Tabs.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/Tabs.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/Tabs.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,71 @@ + +<% + /**************************************************************** + * 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_scribe/web/WEB-INF/tags/headItems.tag =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/tags/headItems.tag (revision 0) +++ lams_tool_scribe/web/WEB-INF/tags/headItems.tag (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,53 @@ +<%/**************************************************************** + * 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_scribe/web/WEB-INF/web.xml =================================================================== diff -u --- lams_tool_scribe/web/WEB-INF/web.xml (revision 0) +++ lams_tool_scribe/web/WEB-INF/web.xml (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,330 @@ + + + + + + + javax.servlet.jsp.jstl.fmt.localizationContext + org.lamsfoundation.lams.tool.scribe.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/scribe/scribeApplicationContext.xml + + + + + SystemSessionFilter + + org.lamsfoundation.lams.web.session.SystemSessionFilter + + + + hibernateFilter + + org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter + + + sessionFactoryBeanName + lascrbScribeSessionFactory + + + + 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 + scribeToolContentHandler + + 3 + + + + exportPortfolio + org.lamsfoundation.lams.tool.scribe.web.servlets.ExportServlet + + + + action + *.do + + + + + Connector + /fckeditor/editor/filemanager/browser/default/connectors/jsp/connector + + + + download + /download/* + + + + exportPortfolio + /exportPortfolio + + + + 120 + + + + + + 500 + /error.jsp + + + 403 + /403.jsp + + + 404 + /404.jsp + + + + + + + + + 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 + MONITOR + AUTHOR + ADMIN + SYSADMIN + + + + + + Authoring Update + /authoring.do + + + AUTHOR + + + + + Staff Content + /monitoring.do + + + MONITOR + TEACHER + + + + + + + Download Files + /download/ + + + AUTHOR + MONITOR + 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 + MONITOR + + + + 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_scribe/web/common/empty.jsp =================================================================== diff -u --- lams_tool_scribe/web/common/empty.jsp (revision 0) +++ lams_tool_scribe/web/common/empty.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_scribe/web/common/footer.jsp =================================================================== diff -u --- lams_tool_scribe/web/common/footer.jsp (revision 0) +++ lams_tool_scribe/web/common/footer.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1 @@ +

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

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

    + ${requestScope.message}; +

    Index: lams_tool_scribe/web/common/taglibs.jsp =================================================================== diff -u --- lams_tool_scribe/web/common/taglibs.jsp (revision 0) +++ lams_tool_scribe/web/common/taglibs.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,12 @@ +<%@ 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-function" prefix="fn" %> +<%@ taglib uri="tags-fmt" prefix="fmt"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="fck-editor" prefix="fck"%> + Index: lams_tool_scribe/web/error.jsp =================================================================== diff -u --- lams_tool_scribe/web/error.jsp (revision 0) +++ lams_tool_scribe/web/error.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,69 @@ + + +<%@ page language="java" isErrorPage="true" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> + + + + +<%-- Catch JSP Servlet Exception --%> +<% +if (exception != null) { +%> + + <%=exception.getMessage()%> + + + <%=exception.getClass().getName()%> + +<% + java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream(); + java.io.PrintStream os = new java.io.PrintStream(bos); + exception.printStackTrace(os); + String stack = new String(bos.toByteArray()); +%> + + <%=stack%> + +<% +} else if ((Exception) request.getAttribute("javax.servlet.error.exception") != null) { +%> + + + <%=((Exception) request.getAttribute("javax.servlet.error.exception")).getMessage()%> + + + <%=((Exception) request.getAttribute("javax.servlet.error.exception")).getMessage() + .getClass().getName()%> + +<% + java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream(); + java.io.PrintStream os = new java.io.PrintStream(bos); + ((Exception) request.getAttribute("javax.servlet.error.exception")).printStackTrace(os); + String stack = new String(bos.toByteArray()); +%> + + <%=stack%> + +<% +} +%> + +
    + + + +
    + + + + Index: lams_tool_scribe/web/images/edit.gif =================================================================== diff -u Binary files differ Index: lams_tool_scribe/web/images/icon_scribe.swf =================================================================== diff -u Binary files differ Index: lams_tool_scribe/web/images/success.gif =================================================================== diff -u Binary files differ Index: lams_tool_scribe/web/includes/css/scribe.css =================================================================== diff -u --- lams_tool_scribe/web/includes/css/scribe.css (revision 0) +++ lams_tool_scribe/web/includes/css/scribe.css (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,69 @@ +/* ==================== COMMON ==================== */ +.message { + padding-bottom: 4px; +} + +.private_message { + font-style: italic; + background-color: #e6e6fa; +} + +.messageFrom { + font-weight: bold; +} + +/* ==================== LEARNING PAGE STYLES ==================== */ +#chat_content { + width: 560px; + padding: 12px; + /* compensate for content image border */ + margin-left: 4px; +} + +#chat_pane { + width: 98%; +} + +#iResp { + height: 260px; + margin-right: 12px; + margin-left: 12px; + overflow: scroll; + border-width: 1px; + border-style: solid; + padding: 2px; +} + +#roster { + float: right; + width: 105px; + height: 260px; + overflow: hidden; + border-width: 1px; + border-style: solid; + font-weight: bold; + padding: 2px; +} + +.selected { + background-color: lime; + padding: 2px; + cursor: pointer; +} + +.unselected { + background-color: white; + padding: 2px; + cursor: pointer; +} + +#msgArea { + width: 410px; +} + +/* ================== MONITORING ================== */ +.edit-pane { + display: none;; + border: 1px solid; + padding: 8px; +} \ No newline at end of file Index: lams_tool_scribe/web/includes/javascript/authoring.js =================================================================== diff -u --- lams_tool_scribe/web/includes/javascript/authoring.js (revision 0) +++ lams_tool_scribe/web/includes/javascript/authoring.js (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,29 @@ + +function init() { + + // initialising tabs + initTabSize(3); + + // open the current tab + var tag = document.getElementById("currentTab"); + if (tag.value != "") { + selectTab(tag.value); + } else { + selectTab(1); + } +} +function doSelectTab(tabId) { + var tag = document.getElementById("currentTab"); + tag.value = tabId; + selectTab(tabId); +} +function doSubmit(method) { + document.authoringForm.dispatch.value = method; + document.authoringForm.submit(); +} +function deleteAttachment(dispatch, uuid) { + document.authoringForm.dispatch.value = dispatch; + document.authoringForm.deleteFileUuid.value = uuid; + document.authoringForm.submit(); +} + Index: lams_tool_scribe/web/includes/javascript/learning.js =================================================================== diff -u --- lams_tool_scribe/web/includes/javascript/learning.js (revision 0) +++ lams_tool_scribe/web/includes/javascript/learning.js (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1 @@ +// empty for now. Index: lams_tool_scribe/web/includes/javascript/monitoring.js =================================================================== diff -u --- lams_tool_scribe/web/includes/javascript/monitoring.js (revision 0) +++ lams_tool_scribe/web/includes/javascript/monitoring.js (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,18 @@ + +function init() { + + // initialising tabs + initTabSize(4); + + // open the first tab + selectTab(1); +} + +function doSelectTab(tabId) { + selectTab(tabId); +} +function doSubmit(method, tabId) { + document.monitoringForm.method.value = method; + document.monitoringForm.submit(); +} + Index: lams_tool_scribe/web/layouts/defaultLayout.jsp =================================================================== diff -u --- lams_tool_scribe/web/layouts/defaultLayout.jsp (revision 0) +++ lams_tool_scribe/web/layouts/defaultLayout.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,22 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + +
    + + +

    + +

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

    + +

    + +
    + + Index: lams_tool_scribe/web/login.jsp =================================================================== diff -u --- lams_tool_scribe/web/login.jsp (revision 0) +++ lams_tool_scribe/web/login.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,12 @@ +<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-core" prefix="c" %> + + + + Index: lams_tool_scribe/web/pages/authoring/advanced.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/authoring/advanced.jsp (revision 0) +++ lams_tool_scribe/web/pages/authoring/advanced.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,62 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +   + + +
    +
    + +
    +
    + + + +
    + + + +
    Index: lams_tool_scribe/web/pages/authoring/authoring.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/authoring/authoring.jsp (revision 0) +++ lams_tool_scribe/web/pages/authoring/authoring.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,57 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + +
    + +
    + + + + + +
    + +
    + + + +
    + + <%-- Page tabs --%> + + + + + + + + + + + + + + +
    +
    + + + Index: lams_tool_scribe/web/pages/authoring/basic.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/authoring/basic.jsp (revision 0) +++ lams_tool_scribe/web/pages/authoring/basic.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,64 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + +
    +
    + +
    + +
    + +
    Index: lams_tool_scribe/web/pages/authoring/headItems.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/authoring/headItems.jsp (revision 0) +++ lams_tool_scribe/web/pages/authoring/headItems.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,9 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + Index: lams_tool_scribe/web/pages/authoring/instructions.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/authoring/instructions.jsp (revision 0) +++ lams_tool_scribe/web/pages/authoring/instructions.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,215 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + <%-- Online Instructions --%> + + + + + <%-- Online Attachments --%> + + + + + + + <%-- Online Attachments Upload --%> + + + + + + + +
    +
    + +
    + +
    +
    +
      + + <%-- Online Saved Files --%> + +
    • + + + + + +   + + + + + +   + + + + +
    • +
      + + <%-- Online Unsaved Files --%> + +
    • + + * + + + + +   + + + + + +   + + + + +
    • +
      + +
    +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    + +
    + + + + <%-- Offline Instructions --%> + + + + + + + <%-- Offline Attachments --%> + + + + + + + <%--Offline Attachments Upload --%> + + + + + + + +
    +
    + +
    + +
    +
    +
      + + <%-- Offline Saved Attachments --%> + +
    • + + + + + +   + + + + + +   + + + + +
    • +
      + + <%-- Offline Unsaved Attachments --%> + +
    • + + * + + + + +   + + + + + +   + + + + +
    • +
      + +
    +
    +
    +
    + +
    +
    +
    + + + + + +
    +
    Index: lams_tool_scribe/web/pages/export/exportPortfolio.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/export/exportPortfolio.jsp (revision 0) +++ lams_tool_scribe/web/pages/export/exportPortfolio.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,94 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + <c:out value="${scribeDTO.title}" escapeXml="false" /> + + + + + + + +
    + + +

    + +

    +
    + +
    + + +
    +
    +
    + +

    + +

    + +
    + +
    +
    + + +
    +

    + ${session.sessionName} +

    + + +
    + ${message.from} +
    + +
    +
    + +
    + + +

    + +

    + + + +

    + ${user.firstName} + ${user.lastName} +
    + ${user.notebookEntry} +

    +
    +
    +
    +
    + +
    + +
    + + + + + +
    + + + Index: lams_tool_scribe/web/pages/learning/defineLater.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/learning/defineLater.jsp (revision 0) +++ lams_tool_scribe/web/pages/learning/defineLater.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,11 @@ +<%@ include file="/common/taglibs.jsp"%> + +

    + +

    +
    +
    + +
    + + Index: lams_tool_scribe/web/pages/learning/headItems.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/learning/headItems.jsp (revision 0) +++ lams_tool_scribe/web/pages/learning/headItems.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_scribe/web/pages/learning/learning.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/learning/learning.jsp (revision 0) +++ lams_tool_scribe/web/pages/learning/learning.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,24 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + +

    + +

    +
    +
    + +

    + Scribe Learning Page +

    + +
    + + <%@ include file="parts/finishButton.jsp"%> + + + +
    + Index: lams_tool_scribe/web/pages/learning/notebook.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/learning/notebook.jsp (revision 0) +++ lams_tool_scribe/web/pages/learning/notebook.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,34 @@ +<%@ include file="/common/taglibs.jsp"%> + +

    + ${scribeDTO.title} +

    +
    +
    + + + + + + + + + + + + + +
    + ${scribeDTO.reflectInstructions} +
    + +
    + + + + button.finish + +
    +
    +
    + Index: lams_tool_scribe/web/pages/learning/parts/finishButton.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/learning/parts/finishButton.jsp (revision 0) +++ lams_tool_scribe/web/pages/learning/parts/finishButton.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,33 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + ${buttonLabel} + + +
    +
    + + + +
    +

    + ${scribeDTO.reflectInstructions} +

    +

    + ${scribeUserDTO.notebookEntry} +

    +
    +
    +
    +
    Index: lams_tool_scribe/web/pages/learning/runOffline.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/learning/runOffline.jsp (revision 0) +++ lams_tool_scribe/web/pages/learning/runOffline.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,22 @@ +<%@ include file="/common/taglibs.jsp"%> + +

    + +

    +
    +
    + + + + + +
    + +
    + + + <%@ include file="parts/finishButton.jsp"%> + +
    +
    + Index: lams_tool_scribe/web/pages/monitoring/editActivity.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/monitoring/editActivity.jsp (revision 0) +++ lams_tool_scribe/web/pages/monitoring/editActivity.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,43 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + + + + + + + + + + + +

    + +

    +
    +
    + Index: lams_tool_scribe/web/pages/monitoring/headItems.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/monitoring/headItems.jsp (revision 0) +++ lams_tool_scribe/web/pages/monitoring/headItems.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,9 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + Index: lams_tool_scribe/web/pages/monitoring/instructions.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/monitoring/instructions.jsp (revision 0) +++ lams_tool_scribe/web/pages/monitoring/instructions.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,117 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + +
    + + + +
    +   + +
    +
      + +
    • + + + + + + +   + + + + + +   + + + + + + + +
    • +
      +
    +
    +
    + + + + + + + + + + + + + + + + + +
    + + + +
    +   + +
    +
      + +
    • + + + + + + +   + + + + + +   + + + + + + + +
    • +
      +
    +
    +
    Index: lams_tool_scribe/web/pages/monitoring/monitoring.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/monitoring/monitoring.jsp (revision 0) +++ lams_tool_scribe/web/pages/monitoring/monitoring.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,19 @@ +<%@ include file="/common/taglibs.jsp"%> + + + +
    + + + + +
    + + Index: lams_tool_scribe/web/pages/monitoring/notebook.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/monitoring/notebook.jsp (revision 0) +++ lams_tool_scribe/web/pages/monitoring/notebook.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,17 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + +
    +

    + ${scribeUserDTO.firstName} ${scribeUserDTO.lastName} +

    +
    +

    ${scribeUserDTO.notebookEntry}

    +
    + Index: lams_tool_scribe/web/pages/monitoring/statistics.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/monitoring/statistics.jsp (revision 0) +++ lams_tool_scribe/web/pages/monitoring/statistics.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,53 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    ${session.sessionName}

    +
    + heading.totalLearners + + ${session.numberOfLearners} +
    + heading.totalMessages + + ${session.numberOfPosts} +
    + heading.learner + + heading.numPosts +
    + ${user.jabberNickname} + + ${user.postCount} +
    +
    +
    Index: lams_tool_scribe/web/pages/monitoring/summary.jsp =================================================================== diff -u --- lams_tool_scribe/web/pages/monitoring/summary.jsp (revision 0) +++ lams_tool_scribe/web/pages/monitoring/summary.jsp (revision 676776bec1c35957910e6911d9f7d280f646d28d) @@ -0,0 +1,143 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    + ${session.sessionName} +

    +
    + heading.totalLearners + + ${session.numberOfLearners} +
    + heading.totalMessages + + ${session.numberOfPosts} +
    +

    + heading.recentMessages +

    +
    + + + message.noScribeMessages + + + +
    +
    ${message.from}
    + +
    +
    + +
    +
    +
    +

    + Reflections +

    +
    + heading.learner + + heading.numPosts + + + + + + +   + + +
    + ${user.jabberNickname} + + ${user.postCount} + + + + + + + + + + + +
    +
    + +
    + + + + summary.editMessages + +
    +
    + + +
    + + + + summary.openScribe + +
    +
    +
    +
    +
    +