Index: lams_tool_wookie/.classpath =================================================================== diff -u --- lams_tool_wookie/.classpath (revision 0) +++ lams_tool_wookie/.classpath (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/.cvsignore =================================================================== diff -u --- lams_tool_wookie/.cvsignore (revision 0) +++ lams_tool_wookie/.cvsignore (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,5 @@ +bin +build +.myeclipse +.mymetadata +.settings Index: lams_tool_wookie/.project =================================================================== diff -u --- lams_tool_wookie/.project (revision 0) +++ lams_tool_wookie/.project (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,49 @@ + + + lams_tool_wookie + + + + + + 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_wookie/build.properties =================================================================== diff -u --- lams_tool_wookie/build.properties (revision 0) +++ lams_tool_wookie/build.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,20 @@ + +# project-wide properties +signature=lawook10 + +#project version +tool.version=20081217 + +package=org/lamsfoundation/lams/tool/wookie +package.name=org.lamsfoundation.lams.tool.wookie +weblib=lib + +# hide tool option +hideTool=false + +# Minimum compatible version +min.server.version.number=2.3 + +# Language files package +language.files.package=org.lamsfoundation.lams.tool.wookie + Index: lams_tool_wookie/build.xml =================================================================== diff -u --- lams_tool_wookie/build.xml (revision 0) +++ lams_tool_wookie/build.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,541 @@ + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Deploying the Wookie Tool + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/conf/hibernate/mappings/hibernate.cfg.xml =================================================================== diff -u --- lams_tool_wookie/conf/hibernate/mappings/hibernate.cfg.xml (revision 0) +++ lams_tool_wookie/conf/hibernate/mappings/hibernate.cfg.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,13 @@ + + + + + lams + lamsdemo + jdbc:mysql://localhost/lams + com.mysql.jdbc.Driver + org.hibernate.dialect.MySQLDialect + + + Index: lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/Wookie.hbm.xml =================================================================== diff -u --- lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/Wookie.hbm.xml (revision 0) +++ lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/Wookie.hbm.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieAttachment.hbm.xml =================================================================== diff -u --- lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieAttachment.hbm.xml (revision 0) +++ lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieAttachment.hbm.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieConfigItem.hbm.xml =================================================================== diff -u --- lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieConfigItem.hbm.xml (revision 0) +++ lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieConfigItem.hbm.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieSession.hbm.xml =================================================================== diff -u --- lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieSession.hbm.xml (revision 0) +++ lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieSession.hbm.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieUser.hbm.xml =================================================================== diff -u --- lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieUser.hbm.xml (revision 0) +++ lams_tool_wookie/conf/hibernate/mappings/org/lamsfoundation/lams/tool/wookie/model/WookieUser.hbm.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/conf/jar/META-INF/MANIFEST.MF =================================================================== diff -u --- lams_tool_wookie/conf/jar/META-INF/MANIFEST.MF (revision 0) +++ lams_tool_wookie/conf/jar/META-INF/MANIFEST.MF (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,3 @@ +Implementation-Title: LAMS - Notebok Tool +Implementation-Version: 2.1 +Implementation-Vendor: LAMS Foundation (http://lamsfoundation.org) Index: lams_tool_wookie/conf/language/lams/ApplicationResources.properties =================================================================== diff -u --- lams_tool_wookie/conf/language/lams/ApplicationResources.properties (revision 0) +++ lams_tool_wookie/conf/language/lams/ApplicationResources.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,125 @@ +appName = wookie +#language code: en +#locale code: AU + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Sun Jul 05 07:22:35 CST 2009 + +#=================== labels for Wookie Tool =================# + +button.statistics =Statistics +appName =wookie +error.contentrepository =An error has occurred when saving/deleting instruction file {0}. The files may not be saved correctly. +button.instructions =Instructions +instructions.uploadOfflineInstr =Offline Instructions File: +instructions.uploadOnlineInstr =Online Instructions File: +instructions.offlineInstructions =Offline Instructions: +instructions.onlineInstructions =Online Instructions: +activity.helptext =Edit images in Wookie image editor +message.contentInUseSet =Modification of content is not allowed since one or more students has attempted the activity. +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. +tool.display.name =Wookie +tool.description =Wookie Image Editing Tool +activity.title =Wookie +activity.description =Wookie Image Editing Tool +pageTitle.authoring =Wookie Authoring +button.basic =Basic +button.advanced =Advanced +button.upload =Upload +label.authoring.basic.title =Title: +label.authoring.basic.content =Content: +advanced.lockOnFinished =Lock when finished +advanced.allowViewOthersImages =Allow learners to view other learners images +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 =Wookie Image Editor +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 =Wookie Monitoring +button.summary =Summary +button.editActivity =Edit Activity +titleHeading.summary =Summary +titleHeading.statistics =Statistics +titleHeading.editActivity =Edit Activity +titleHeading.exportPortfolio =Export Portfolio +heading.group =Group {0}: +heading.totalLearners =Number of Learners: +heading.totalLearnersInGroup =Total Number of Learners in Group: +heading.totalFinishedLearnersInGroup =Number of Finished Learners: +message.summary =There is no summary available for this tool. +label.view =View +label.notAvailable =Not Available +heading.learner =Learner +heading.notebookEntry =Notebook Entry +button.cancel =Cancel +button.ok =OK +button.done =Done +button.save =Save +button.next =Next +label.save =Save +label.cancel =Cancel +label.created =Created +label.lastModified =Last modified +label.notebookEntry =Notebook entry +error.missingParam =Unable to continue. {0} is missing. +error.exceedMaxFileSize =File size exceeded +error.exception.NbApplication =An internal error has occurred with the Wookie Tool. If reporting this error, please report:
{0} +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. +button.try.again =Try Again +button.finish =Next Activity +message.alertContentEdit =Warning: One of more students have accessed this activity. Changing this content will result in students getting different information. +message.warnLockOnFinish =Note: After you click on "Next Activity" and you come back to this Wookie activity, you won't be able to continue editing your image. +message.warnLockOnFinishViewAll =Note: After you click on "View All Wookie Images" and you come back to this Wookie activity, you won't be able to continue editing your image. +message.activityLocked =The instructor has set this activity not to allow image edits after you have finished it. As you are returning to this activity, you are able to see your image but not edit it. +titleHeading.instructions =Instructions +label.authoring.basic.instructions =Instructions: +label.on =On +label.off =Off +monitor.summary.th.advancedSettings =Advanced Settings +label.authoring.basic.add.image =Add Image +error.resource.image.not.alowed.format =Allowed file formats: gif, png, jpg +error.resource.item.file.blank =File can not be blank. +error.msg.upload.file.not.found =Could not find upload file {0}. +error.file.upload.failed =Image upload failed, please check your image file and try again. +label.authoring.remove =Remove +learner.edit.image =Edit Image in Wookie +tooltip.openfullsize =Click to open full size +button.continue =Continue +button.edit =Edit +button.viewAll =View all learner images +learner.title.viewAll =View All Wookie Images +button.redo =Redo Activity +button.refresh =Refresh +message.imageListEmpty =No images to display as no learners have edited their images yet. +error.retreiving.image =There was an error retrieving the image from wookie.com, please contact the system administrator. +message.imageEdited =Image successfully edited. +button.close =Close +monitoring.th.learner =Learner +monitoring.th.image =Edited Image +monitoring.th.reflection =Notebook Entry +monitoring.hideImage =Hide image from other learners +monitoring.showImage =Show image to other learners +message.imageHidden =Image hidden by teacher +monitor.summary.td.notebookInstructions =Notebook instructions +advanced.reflectOnActivity =Add Notebook at end of Wookie with the following instructions: +title.sessions =Sessions +title.originalImage =Original Image +message.imageNotAvailable =Image not available, either it has not yet been edited or it has been deleted. +authoring.msg.cancel.save =Do you want to close this window without saving? +admin.wookieLanguageCSV =Enter the comma-separated language key values supported by Wookie +admin.formError =The was an error processing the form, please make sure the input text is in comma-separated format: xx,yy,zz +admin.success =Configuration successfully saved. +message.learner.saveWhenFinished =When you have finished editing your image, click file/save to return to learner. +monitor.summary.td.addNotebook =Add Notebook at the end of Wookie Activity + + +#======= End labels: Exported 114 labels for en AU ===== Index: lams_tool_wookie/conf/language/lams/ApplicationResources_el_GR.properties =================================================================== diff -u --- lams_tool_wookie/conf/language/lams/ApplicationResources_el_GR.properties (revision 0) +++ lams_tool_wookie/conf/language/lams/ApplicationResources_el_GR.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,125 @@ +appName = wookie +#language code: el +#locale code: GR + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Sun Jul 05 07:22:32 CST 2009 + +#=================== labels for Wookie Tool =================# + +activity.title =\u0395\u03c0\u03b5\u03be \u0395\u03b9\u03ba. Wookie +title.originalImage =\u0391\u03c1\u03c7\u03b9\u03ba\u03ae \u0395\u03b9\u03ba\u03cc\u03bd\u03b1 +activity.description =\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf \u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 \u0395\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd Wookie +pageTitle.authoring =Wookie \u03a3\u03c5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae +button.basic =\u0392\u03b1\u03c3\u03b9\u03ba\u03ad\u03c2 +button.advanced =\u03a0\u03c1\u03bf\u03c7\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03b5\u03c2 +button.upload =\u0391\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae +label.authoring.basic.title =\u03a4\u03af\u03c4\u03bb\u03bf\u03c2 +label.authoring.basic.content =\u03a0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03b1 +advanced.allowViewOthersImages =\u0395\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bf\u03b9 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03b9 \u03bd\u03b1 \u03b2\u03bb\u03ad\u03c0\u03bf\u03c5\u03bd \u03c4\u03b9\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b5\u03c2 \u03c4\u03c9\u03bd \u03ac\u03bb\u03bb\u03c9\u03bd \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd +instructions.type.online =\u03a3\u03b5 \u03b1\u03c0\u03b5\u03c5\u03b8\u03b5\u03af\u03b1\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 +instructions.type.offline =\u03a7\u03c9\u03c1\u03af\u03c2 \u03b1\u03c0\u03b5\u03c5\u03b8\u03b5\u03af\u03b1\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 +label.filename =\u038c\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 +label.type =\u03a4\u03cd\u03c0\u03bf\u03c2 +label.attachments =\u0395\u03c0\u03b9\u03c3\u03c5\u03bd\u03b1\u03c0\u03c4\u03cc\u03bc\u03b5\u03bd\u03b1 +link.view =\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae +link.download =\u039b\u03ae\u03c8\u03b7 +link.delete =\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae +message.updateSuccess =\u039f\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03b8\u03b7\u03ba\u03b1\u03bd +message.unsavedChanges =\u0397 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c0\u03b5\u03c1\u03b9\u03ad\u03c7\u03b5\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03c0\u03bf\u03c5 \u03b4\u03b5\u03bd \u03ad\u03c7\u03bf\u03c5\u03bd \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03b8\u03b5\u03af +pageTitle.learning =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03c4\u03ae\u03c2 \u0395\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd Wookie +message.defineLaterSet =\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce, \u03c0\u03b5\u03c1\u03b9\u03bc\u03ad\u03bd\u03b5\u03c4\u03b5 \u03c4\u03bf\u03bd \u03ba\u03b1\u03b8\u03b7\u03b3\u03b7\u03c4\u03ae \u03bd\u03b1 \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03ce\u03c3\u03b5\u03b9 \u03c4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf \u03b1\u03c5\u03c4\u03ae\u03c2 \u03c4\u03b7\u03c2 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 +pageTitle.monitoring =Wookie \u0395\u03c0\u03bf\u03c0\u03c4\u03b5\u03af\u03b1 +button.summary =\u03a3\u03cd\u03bd\u03bf\u03c8\u03b7 +button.editActivity =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u0394\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 +button.statistics =\u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac +titleHeading.summary =\u03a3\u03cd\u03bd\u03bf\u03c8\u03b7 +titleHeading.statistics =\u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac +titleHeading.editActivity =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u0394\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 +titleHeading.exportPortfolio =\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03a6\u03b1\u03ba\u03ad\u03bb\u03bf\u03c5 \u0395\u03c1\u03b3\u03b1\u03c3\u03b9\u03ce\u03bd +heading.group =\u039f\u03bc\u03ac\u03b4\u03b1 {0} +heading.totalLearners =\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd: +heading.totalLearnersInGroup =\u03a3\u03c5\u03bd\u03bf\u03bb\u03b9\u03ba\u03cc\u03c2 \u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c3\u03c4\u03b7\u03bd \u039f\u03bc\u03ac\u03b4\u03b1: +heading.totalFinishedLearnersInGroup =\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03c0\u03bf\u03c5 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c4\u03b5\u03bb\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9: +message.summary =\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9 \u03ba\u03b1\u03bc\u03bc\u03af\u03b1 \u03c3\u03cd\u03bd\u03bf\u03c8\u03b7 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b7 \u03b3\u03b9\u03b1 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ad\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf +label.view =\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae +label.notAvailable =\u039c\u03b7 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b7 +heading.learner =\u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03c2 +button.cancel =\u0386\u03ba\u03c5\u03c1\u03bf +button.ok =\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9 +button.done =\u0388\u03b3\u03b9\u03bd\u03b5 +button.save =\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 +button.next =\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03b7 +label.save =\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 +label.cancel =\u0386\u03ba\u03c5\u03c1\u03bf +label.created =\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03b8\u03b7\u03ba\u03b5 +label.lastModified =\u03a4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b1 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 +error.exception.NbApplication =\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03b5\u03c3\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03cc \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c3\u03c4\u03bf \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf Wookie. \u0395\u03ac\u03bd \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1, \u03b1\u03bd\u03b1\u03c6\u03ad\u03c1\u03b5\u03c4\u03b5: {0} +error.defineLater =\u039b\u03c5\u03c0\u03bf\u03cd\u03bc\u03b1\u03c3\u03c4\u03b5, \u03b7 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03c4\u03bf\u03b9\u03bc\u03bf \u03b1\u03ba\u03cc\u03bc\u03b1. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c0\u03b5\u03c1\u03b9\u03bc\u03ad\u03bd\u03b5\u03c4\u03b5 \u03c4\u03bf\u03bd \u03ba\u03b1\u03b8\u03b7\u03b3\u03b7\u03c4\u03ae/\u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03ae \u03bd\u03b1 \u03c4\u03b5\u03bb\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9 \u03c4\u03bf\u03bd \u03bf\u03c1\u03b9\u03c3\u03bc\u03cc \u03c4\u03b7\u03c2 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2. +monitor.summary.th.advancedSettings =\u03a0\u03c1\u03bf\u03c7\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03b5\u03c2 \u03a1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 +label.authoring.basic.add.image =\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u0395\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 +message.warnLockOnFinishViewAll =\u03a3\u03b7\u03bc\u03b5\u03af\u03c9\u03c3\u03b7: \u038c\u03c4\u03b1\u03bd \u03b8\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03c3\u03c4\u03bf "\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u0395\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd \u03c3\u03c4\u03bf Wookie " \u03ba\u03b1\u03b9 \u03b8\u03b1 \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c6\u03b5\u03c4\u03b5 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 Wookie, \u03b4\u03b5\u03bd \u03b8\u03b1 \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c4\u03b7\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 \u03c3\u03b1\u03c2. +message.activityLocked =\u039f \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03ae\u03c2 \u03ad\u03c7\u03b5\u03b9 \u03bf\u03c1\u03af\u03c3\u03b5\u03b9 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03bd\u03b1 \u03bc\u03b7\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9 \u03bf\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03c3\u03c4\u03b7\u03bd \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1, \u03b1\u03c6\u03bf\u03cd \u03ad\u03c7\u03b5\u03b9 \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03c9\u03b8\u03b5\u03af \u03b7 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1. \u039c\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c6\u03b5\u03c4\u03b5 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1, \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b5\u03af\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 \u03c3\u03b1\u03c2, \u03b1\u03bb\u03bb\u03ac \u03cc\u03c7\u03b9 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03c4\u03b5\u03af\u03c4\u03b5. +label.on =\u0391\u03bd\u03bf\u03b9\u03ba\u03c4\u03cc +label.off =\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc +error.resource.image.not.alowed.format =\u0395\u03c0\u03b9\u03c4\u03c1\u03b5\u03c0\u03cc\u03bc\u03b5\u03bd\u03b5\u03c2 \u03bc\u03bf\u03c1\u03c6\u03ad\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd: gif, png, jpg +error.resource.item.file.blank =\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03b5\u03bd\u03cc +error.msg.upload.file.not.found =\u0394\u03b5\u03bd \u03bc\u03c0\u03cc\u03c1\u03b5\u03c3\u03b5 \u03bd\u03b1 \u03b2\u03c1\u03b5\u03b9 \u03c4\u03bf {0} \u03b1\u03c1\u03c7\u03b5\u03af\u03bf +error.file.upload.failed =\u0397 \u03b1\u03c0\u03bf\u03c3\u03c4\u03bf\u03bb\u03ae \u03c4\u03b7\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03c0\u03c1\u03bf\u03c3\u03c0\u03b1\u03b8\u03ae\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac. +label.authoring.remove =\u0391\u03c0\u03bf\u03bc\u03ac\u03ba\u03c1\u03c5\u03bd\u03c3\u03b7 +learner.edit.image =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u0395\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 \u03c3\u03c4\u03bf Wookie +tooltip.openfullsize =\u039a\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b1\u03bd\u03bf\u03af\u03be\u03b5\u03b9 \u03c3\u03b5 \u03c0\u03bb\u03ae\u03c1\u03b5\u03c2 \u03bc\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 +button.continue =\u03a3\u03c5\u03bd\u03b5\u03c7\u03b5\u03af\u03c3\u03c4\u03b5 +button.edit =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 +button.viewAll =\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03b5\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd \u03c4\u03bf\u03c5 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03c5\u03b5\u03cc\u03bc\u03b5\u03bd\u03bf\u03c5 +learner.title.viewAll =\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae \u038c\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u0395\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd \u03c4\u03bf\u03c5 Wookie +appName =wookie +activity.helptext =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03c4\u03ae\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd Wookie +error.content.locked =\u03a4\u03bf \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf \u03ad\u03c7\u03b5\u03b9 \u03ba\u03bb\u03b5\u03b9\u03b4\u03c9\u03b8\u03b5\u03af \u03b1\u03c0\u03cc \u03c4\u03b7 \u03c3\u03c4\u03b9\u03b3\u03bc\u03ae \u03c0\u03bf\u03c5 \u03ad\u03c7\u03b5\u03b9 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03b1\u03c0\u03cc \u03ad\u03bd\u03b1 \u03ae \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03bf\u03c5\u03c2 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03c5\u03c2. \u0397 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9. +button.redo =\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7 \u0394\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 +button.refresh =\u0391\u03bd\u03b1\u03bd\u03ad\u03c9\u03c3\u03b7 +message.imageListEmpty =\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03b5\u03b9\u03ba\u03cc\u03bd\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bc\u03c6\u03b1\u03bd\u03b9\u03c3\u03c4\u03bf\u03cd\u03bd \u03ba\u03b1\u03b8\u03ce\u03c2 \u03bf\u03b9 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03b9 \u03b4\u03b5\u03bd \u03ad\u03c7\u03bf\u03c5\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03c4\u03b5\u03af \u03b1\u03ba\u03cc\u03bc\u03b7 \u03c4\u03b9\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b5\u03c2 \u03c4\u03bf\u03c5\u03c2 +error.retreiving.image =\u03a5\u03c0\u03ae\u03c1\u03be\u03b5 \u03bb\u03ac\u03b8\u03bf\u03c2 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03bb\u03ae\u03c8\u03b7 \u03c4\u03b7\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf wookie.com, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b5 \u03c4\u03bf \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03b9\u03c3\u03c4\u03ae \u03c4\u03bf\u03c5 \u03c3\u03c5\u03c3\u03c4\u03ae\u03bc\u03b1\u03c4\u03bf\u03c2. +message.imageEdited =\u0397 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03ce\u03c2. +button.close =\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc +monitoring.th.learner =\u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03c2 +monitoring.th.image =\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03bc\u03ad\u03bd\u03b7 \u0395\u03b9\u03ba\u03cc\u03bd\u03b1 +monitoring.hideImage =\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf\u03c5\u03c2 \u03ac\u03bb\u03bb\u03bf\u03c5\u03c2 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03c5\u03c2 +monitoring.showImage =\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 \u03c3\u03c4\u03bf\u03c5\u03c2 \u03ac\u03bb\u03bb\u03bf\u03c5\u03c2 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03c5\u03c2 +message.imageHidden =\u0395\u03b9\u03ba\u03cc\u03bd\u03b1 \u03ba\u03c1\u03c5\u03bc\u03bc\u03ad\u03bd\u03b7 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03ba\u03b1\u03b8\u03b7\u03b3\u03b7\u03c4\u03ae +title.sessions =\u03a3\u03cd\u03bd\u03bf\u03b4\u03bf\u03b9 +tool.description =\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03bf \u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 \u0395\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd Wookie +monitor.summary.td.addNotebook =\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03a3\u03b7\u03bc\u03b5\u03b9\u03c9\u03bc\u03b1\u03c4\u03b1\u03c1\u03af\u03bf\u03c5 \u03c3\u03c4\u03bf \u03c4\u03ad\u03bb\u03bf\u03c2 \u03c4\u03b7\u03c2 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2 \u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1\u03c2 \u0395\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd Wookie +message.runOfflineSet =\u0391\u03c5\u03c4\u03ae \u03b7 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 \u03b4\u03b5\u03bd \u03b3\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03bf\u03bd \u03c5\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03c4\u03ae. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03c1\u03c9\u03c4\u03ae\u03c3\u03c4\u03b5 \u03c4\u03bf\u03bd \u03ba\u03b1\u03b8\u03b7\u03b3\u03b7\u03c4\u03ae/\u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03ae \u03c3\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03bb\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2. +admin.wookieLanguageCSV =\u0395\u03b9\u03c3\u03b1\u03b3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03bb\u03ad\u03be\u03b5\u03b9\u03c2 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac \u03c4\u03b7\u03c2 \u03b3\u03bb\u03ce\u03c3\u03c3\u03b1\u03c2 \u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u03bc\u03b5 \u03ba\u03cc\u03bc\u03bc\u03b1\u03c4\u03b1 \u03c0\u03bf\u03c5 \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc \u03c4\u03bf Wookie +admin.formError =To \u03ae\u03c4\u03b1\u03bd \u03bb\u03ac\u03b8\u03bf\u03c2 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c4\u03b7\u03c2 \u03bc\u03bf\u03c1\u03c6\u03ae\u03c2, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 \u03b2\u03b5\u03b2\u03b1\u03b9\u03c9\u03b8\u03b5\u03af\u03c4\u03b5 \u03cc\u03c4\u03b9 \u03c4\u03bf \u03b5\u03b9\u03c3\u03b1\u03b3\u03cc\u03bc\u03b5\u03bd\u03bf \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03b5 \u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf \u03bc\u03b5 \u03ba\u03cc\u03bc\u03bc\u03b1\u03c4\u03b1 \u03c3\u03c4\u03b7 \u03bc\u03bf\u03c1\u03c6\u03ae: xx, yy, zz +admin.success =\u03a3\u03c5\u03b3\u03c7\u03b1\u03c1\u03b7\u03c4\u03ae\u03c1\u03b9\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03b8\u03b7\u03ba\u03b5 \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03ce\u03c2 +error.mandatoryField ={0} \u03c0\u03b5\u03b4\u03af\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c5\u03c0\u03bf\u03c7\u03c1\u03b5\u03c9\u03c4\u03b9\u03ba\u03ac +button.try.again =\u03a0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b7\u03c3\u03b5 \u03be\u03b1\u03bd\u03ac +button.finish =\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03b7 \u0394\u03c1\u03b1\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 +message.alertContentEdit =\u03a0\u03c1\u03bf\u03b5\u03b9\u03b4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7: \u0388\u03bd\u03b1\u03c2 \u03ae \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03bf\u03b9 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03b9 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c0\u03c1\u03bf\u03c3\u03c0\u03b5\u03bb\u03ac\u03c3\u03b5\u03b9 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1. \u0397 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03b1\u03c5\u03c4\u03bf\u03cd \u03c4\u03bf\u03c5 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b8\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03c9\u03c2 \u03b1\u03c0\u03bf\u03c4\u03ad\u03bb\u03b5\u03c3\u03bc\u03b1 \u03bd\u03b1 \u03b4\u03bf\u03b8\u03bf\u03cd\u03bd \u03b4\u03b9\u03b1\u03c6\u03bf\u03c1\u03b5\u03c4\u03b9\u03ba\u03ad\u03c2 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c3\u03c4\u03bf\u03c5\u03c2 \u03c5\u03c0\u03cc\u03bb\u03bf\u03b9\u03c0\u03bf\u03c5\u03c2 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03c5\u03c2. +message.imageNotAvailable =\u0397 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03b7, \u03b5\u03af\u03c4\u03b5 \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03b1\u03ba\u03cc\u03bc\u03b1 \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03c4\u03b5\u03af \u03ae \u03ad\u03c7\u03b5\u03b9 \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03b5\u03af. +message.warnLockOnFinish =\u03a3\u03b7\u03bc\u03b5\u03af\u03c9\u03c3\u03b7: \u0391\u03c6\u03bf\u03cd \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03c3\u03c4\u03b7\u03bd \u03ba\u03bf\u03c5\u03bc\u03c0\u03af "\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03b7 \u0394\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1"\u0384, \u03cc\u03c4\u03b1\u03bd \u03b8\u03b1 \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c6\u03b5\u03c4\u03b5 \u03c3\u03b5 \u03b1\u03c5\u03c4\u03ae \u03c4\u03b7\u03bd \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1 Wookie, \u03b4\u03b5\u03bd \u03b8\u03b1 \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 \u03c3\u03b1\u03c2 +authoring.msg.cancel.save =\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03ba\u03bb\u03b5\u03af\u03c3\u03b5\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf \u03c7\u03c9\u03c1\u03af\u03c2 \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7; +tool.display.name =\u0395\u03c0\u03b5\u03be. \u0395\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd Wookie +advanced.lockOnFinished =\u039d\u03b1 \u03ba\u03bb\u03b5\u03b9\u03b4\u03c9\u03b8\u03b5\u03af \u03cc\u03c4\u03b1\u03bd \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03c9\u03b8\u03b5\u03af +message.contentInUseSet =\u0397 \u03c4\u03c1\u03bf\u03c0\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9 \u03cc\u03c4\u03b1\u03bd \u03ad\u03bd\u03b1\u03c2 \u03ae \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03bf\u03b9 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03cc\u03bc\u03b5\u03bd\u03bf\u03b9 \u03ad\u03c7\u03bf\u03c5\u03bd \u03be\u03b5\u03ba\u03b9\u03bd\u03ae\u03c3\u03b5\u03b9 \u03c4\u03b7\u03bd \u03b5\u03ba\u03c0\u03cc\u03bd\u03b7\u03c3\u03ae \u03c4\u03b7\u03c2. +button.instructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 +instructions.uploadOfflineInstr =\u0391\u03c1\u03c7\u03b5\u03af\u03bf \u039f\u03b4\u03b7\u03b3\u03b9\u03ba\u03ce\u03bd \u03b3\u03b9\u03b1 \u03bc\u03b7 \u03b1\u03c0\u03b5\u03c5\u03b8\u03b5\u03af\u03b1\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 (offline): +instructions.uploadOnlineInstr =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03b5\u03ba\u03c0\u03cc\u03bd\u03b7\u03c3\u03b7 \u03bc\u03b5 \u03b1\u03c0\u03b5\u03c5\u03b8\u03b5\u03af\u03b1\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7: +instructions.offlineInstructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03b5\u03ba\u03c0\u03cc\u03bd\u03b7\u03c3\u03b7 \u03c7\u03c9\u03c1\u03af\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7: +instructions.onlineInstructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03b5\u03ba\u03c0\u03cc\u03bd\u03b7\u03c3\u03b7 \u03bc\u03b5 \u03b1\u03c0\u03b5\u03c5\u03b8\u03b5\u03af\u03b1\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7: +titleHeading.instructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2 +label.authoring.basic.instructions =\u039f\u03b4\u03b7\u03b3\u03af\u03b5\u03c2: +message.learner.saveWhenFinished =\u038c\u03c4\u03b1\u03bd \u03bf\u03bb\u03bf\u03ba\u03bb\u03b7\u03c1\u03ce\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c4\u03b7\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2 \u03c3\u03b1\u03c2, \u03ba\u03ac\u03bd\u03c4\u03b5 \u03ba\u03bb\u03b9\u03ba \u03c3\u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf/\u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03b5\u03c4\u03b5 \u03b5\u03b4\u03ce . +error.exceedMaxFileSize =\u03a4\u03bf \u03bc\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03ad\u03c7\u03b5\u03b9 \u03c5\u03c0\u03b5\u03c1\u03b2\u03b5\u03af \u03c4\u03bf \u03b5\u03c0\u03b9\u03c4\u03c1\u03b5\u03c0\u03c4\u03cc \u03cc\u03c1\u03b9\u03bf. +heading.notebookEntry =\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03a3\u03b7\u03bc\u03b5\u03b9\u03c9\u03bc\u03b1\u03c4\u03b1\u03c1\u03af\u03bf\u03c5 +advanced.reflectOnActivity =\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03a3\u03b7\u03bc\u03b5\u03b9\u03c9\u03bc\u03b1\u03c4\u03b1\u03c1\u03af\u03bf\u03c5 \u03c3\u03c4\u03bf \u03c4\u03ad\u03bb\u03bf\u03c2 \u03c4\u03bf\u03c5 Wookie \u03bc\u03b5 \u03c4\u03b9\u03c2 \u03b1\u03ba\u03cc\u03bb\u03bf\u03c5\u03b8\u03b5\u03c2 \u03bf\u03b4\u03b7\u03b3\u03af\u03b5\u03c2: +monitor.summary.td.notebookInstructions =\u03a3\u03b7\u03bc\u03b5\u03b9\u03c9\u03bc\u03b1\u03c4\u03ac\u03c1\u03b9\u03bf \u03bf\u03b4\u03b7\u03b3\u03b9\u03ce\u03bd +monitoring.th.reflection =\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03a3\u03b7\u03bc\u03b5\u03b9\u03c9\u03bc\u03b1\u03c4\u03ac\u03c1\u03b9\u03bf\u03c5 +label.notebookEntry =\u0395\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03a3\u03b7\u03bc\u03b5\u03b9\u03c9\u03bc\u03b1\u03c4\u03b1\u03c1\u03af\u03bf\u03c5 +error.contentrepository =\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 / \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03bf\u03b4\u03b7\u03b3\u03b9\u03ce\u03bd {0}. \u03a4\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1 \u03b4\u03b5\u03bd \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bd \u03bd\u03b1 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03bf\u03cd\u03bd \u03c3\u03c9\u03c3\u03c4\u03ac. +error.missingParam =\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03cc \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03b9. {0} \u03bb\u03b5\u03af\u03c0\u03b5\u03b9. +errors.maxfilesize =\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03c3\u03c4\u03b5\u03af\u03bb\u03b1\u03c4\u03b5 \u03c5\u03c0\u03b5\u03c1\u03b2\u03b1\u03af\u03bd\u03b5\u03b9 \u03c4\u03bf \u03bc\u03ad\u03b3\u03b9\u03c3\u03c4\u03bf \u03b5\u03c0\u03b9\u03c4\u03c1\u03b5\u03c0\u03cc\u03bc\u03b5\u03bd\u03bf \u03bc\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2 \u03c4\u03c9\u03bd {0} bytes. + + +#======= End labels: Exported 114 labels for el GR ===== Index: lams_tool_wookie/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u --- lams_tool_wookie/conf/language/lams/ApplicationResources_en_AU.properties (revision 0) +++ lams_tool_wookie/conf/language/lams/ApplicationResources_en_AU.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,125 @@ +appName = wookie +#language code: en +#locale code: AU + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Sun Jul 05 07:22:35 CST 2009 + +#=================== labels for Wookie Tool =================# + +button.statistics =Statistics +appName =wookie +error.contentrepository =An error has occurred when saving/deleting instruction file {0}. The files may not be saved correctly. +button.instructions =Instructions +instructions.uploadOfflineInstr =Offline Instructions File: +instructions.uploadOnlineInstr =Online Instructions File: +instructions.offlineInstructions =Offline Instructions: +instructions.onlineInstructions =Online Instructions: +activity.helptext =Edit images in Wookie image editor +message.contentInUseSet =Modification of content is not allowed since one or more students has attempted the activity. +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. +tool.display.name =Wookie +tool.description =Wookie Image Editing Tool +activity.title =Wookie +activity.description =Wookie Image Editing Tool +pageTitle.authoring =Wookie Authoring +button.basic =Basic +button.advanced =Advanced +button.upload =Upload +label.authoring.basic.title =Title: +label.authoring.basic.content =Content: +advanced.lockOnFinished =Lock when finished +advanced.allowViewOthersImages =Allow learners to view other learners images +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 =Wookie Image Editor +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 =Wookie Monitoring +button.summary =Summary +button.editActivity =Edit Activity +titleHeading.summary =Summary +titleHeading.statistics =Statistics +titleHeading.editActivity =Edit Activity +titleHeading.exportPortfolio =Export Portfolio +heading.group =Group {0}: +heading.totalLearners =Number of Learners: +heading.totalLearnersInGroup =Total Number of Learners in Group: +heading.totalFinishedLearnersInGroup =Number of Finished Learners: +message.summary =There is no summary available for this tool. +label.view =View +label.notAvailable =Not Available +heading.learner =Learner +heading.notebookEntry =Notebook Entry +button.cancel =Cancel +button.ok =OK +button.done =Done +button.save =Save +button.next =Next +label.save =Save +label.cancel =Cancel +label.created =Created +label.lastModified =Last modified +label.notebookEntry =Notebook entry +error.missingParam =Unable to continue. {0} is missing. +error.exceedMaxFileSize =File size exceeded +error.exception.NbApplication =An internal error has occurred with the Wookie Tool. If reporting this error, please report:
{0} +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. +button.try.again =Try Again +button.finish =Next Activity +message.alertContentEdit =Warning: One of more students have accessed this activity. Changing this content will result in students getting different information. +message.warnLockOnFinish =Note: After you click on "Next Activity" and you come back to this Wookie activity, you won't be able to continue editing your image. +message.warnLockOnFinishViewAll =Note: After you click on "View All Wookie Images" and you come back to this Wookie activity, you won't be able to continue editing your image. +message.activityLocked =The instructor has set this activity not to allow image edits after you have finished it. As you are returning to this activity, you are able to see your image but not edit it. +titleHeading.instructions =Instructions +label.authoring.basic.instructions =Instructions: +label.on =On +label.off =Off +monitor.summary.th.advancedSettings =Advanced Settings +label.authoring.basic.add.image =Add Image +error.resource.image.not.alowed.format =Allowed file formats: gif, png, jpg +error.resource.item.file.blank =File can not be blank. +error.msg.upload.file.not.found =Could not find upload file {0}. +error.file.upload.failed =Image upload failed, please check your image file and try again. +label.authoring.remove =Remove +learner.edit.image =Edit Image in Wookie +tooltip.openfullsize =Click to open full size +button.continue =Continue +button.edit =Edit +button.viewAll =View all learner images +learner.title.viewAll =View All Wookie Images +button.redo =Redo Activity +button.refresh =Refresh +message.imageListEmpty =No images to display as no learners have edited their images yet. +error.retreiving.image =There was an error retrieving the image from wookie.com, please contact the system administrator. +message.imageEdited =Image successfully edited. +button.close =Close +monitoring.th.learner =Learner +monitoring.th.image =Edited Image +monitoring.th.reflection =Notebook Entry +monitoring.hideImage =Hide image from other learners +monitoring.showImage =Show image to other learners +message.imageHidden =Image hidden by teacher +monitor.summary.td.notebookInstructions =Notebook instructions +advanced.reflectOnActivity =Add Notebook at end of Wookie with the following instructions: +title.sessions =Sessions +title.originalImage =Original Image +message.imageNotAvailable =Image not available, either it has not yet been edited or it has been deleted. +authoring.msg.cancel.save =Do you want to close this window without saving? +admin.wookieLanguageCSV =Enter the comma-separated language key values supported by Wookie +admin.formError =The was an error processing the form, please make sure the input text is in comma-separated format: xx,yy,zz +admin.success =Configuration successfully saved. +message.learner.saveWhenFinished =When you have finished editing your image, click file/save to return to learner. +monitor.summary.td.addNotebook =Add Notebook at the end of Wookie Activity + + +#======= End labels: Exported 114 labels for en AU ===== Index: lams_tool_wookie/conf/language/lams/ApplicationResources_es_ES.properties =================================================================== diff -u --- lams_tool_wookie/conf/language/lams/ApplicationResources_es_ES.properties (revision 0) +++ lams_tool_wookie/conf/language/lams/ApplicationResources_es_ES.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,125 @@ +appName = wookie +#language code: es +#locale code: ES + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Sun Jul 05 07:22:30 CST 2009 + +#=================== labels for Wookie Tool =================# + +button.close =Cerrar +monitoring.th.learner =Estudiante +title.sessions =Sessiones +error.content.locked =Se ha bloqueado el contendio ya que por lo menos un estudiante ha accedido el contenido. +message.imageHidden =Im\u00e1gen ocultada por el instrucctor +advanced.lockOnFinished =No permitir modificaciones una vez terminado +message.imageEdited =Im\u00e1gen editada. +monitor.summary.td.addNotebook =\u00bfAgregar reflexion despu\u00e9s de esta actividad? +activity.helptext =Editar imagenes con Wookie +error.resource.image.not.alowed.format =Formatos permitidos: gif, png, jpg. +error.resource.item.file.blank =No se puede dejar el campo de archivo en blanco. +advanced.allowViewOthersImages =Permitir que los estudiantes vean los dibujos de otros +error.msg.upload.file.not.found =No se puedo adjuntar archivo {0}. +label.authoring.remove =Remover +button.continue =Continuar +button.edit =Editar +monitoring.showImage =Mostrar las imagenes de otros estudiantes +monitoring.hideImage =Esconder las imagenes de otros estudiantes +learner.edit.image =Editar esta im\u00e1gen +button.viewAll =Ver las imagenes de otros estudiantes +message.learner.saveWhenFinished =Cuando termine de editar la im\u00e1gen, pulse en Fichero -> Guardar para retornar nuevamente. +message.imageNotAvailable =Im\u00e1gen no disponible. Puede ser que no se haya editado todav\u00eda o que haya sido borrada +message.warnLockOnFinishViewAll =Atenci\u00f3n: una vez que presione en "Ver las imagenes de otros", si usted vuelve a esta actividad, no podr\u00e1 efectuar cambios a la misma. +label.authoring.basic.add.image =Agregar im\u00e1gen +button.redo =Re-hacer actividad +learner.title.viewAll =Ver todas las imagenes +error.retreiving.image =Ha ocurrido un error al tratar de acceder la im\u00e1gen desde wookie.com. Por favor consulte con su administrador de sistema +title.originalImage =Im\u00e1gen original +monitoring.th.image =Editar im\u00e1gen +message.imageListEmpty =No hay imagenes para mostrar ya que ning\u00fan estudiante a finalizado de editar su imagen. +message.activityLocked =El instructor ha configurado esta actividad para que una vez finalizada la misma, no se pueda volver a editar la im\u00e1gen. +error.file.upload.failed =Ha ocurrido un error al subir su im\u00e1gen. Asegurese que el archivo es una imagen. +appName =wookie +error.contentrepository =Ha ocurrido un error al tratar de borrar/guardar las instrucciones en el archivo. Estos archivos puede que no se hayan guardado correctamente +button.instructions =Instrucciones +instructions.uploadOfflineInstr =Archivos de Instrucciones modo offline +instructions.uploadOnlineInstr =Archivos de Instrucciones modo online +instructions.offlineInstructions =Instrucciones modo offline +instructions.onlineInstructions =Instrucciones modo online +message.contentInUseSet =No se pueden hacer modificaciones del contenido ya que por lo menos un estudiante ha empezado con esta actividad +tool.display.name =Wookie +tool.description =Herramienta para dibujo Wookie +activity.title =Wookie +activity.description =Herramienta para dibujo Wookie +pageTitle.authoring =Autoria Wookie +button.basic =B\u00e1sico +button.advanced =Avanzado +button.upload =Subir +label.authoring.basic.title =T\u00edtulo +label.authoring.basic.content =Contenido +instructions.type.online =Online +instructions.type.offline =Offline +label.filename =Nombre de archivo +label.type =Tipo +label.attachments =Archivos adjuntos +link.view =Ver +link.download =Bajar +link.delete =Boarra +message.updateSuccess =Cambios guardados +message.unsavedChanges =Esta p\u00e1gina tiene cambias que no han sido guardados +pageTitle.learning =Herramienta para dibujo Wookie +message.defineLaterSet =Por favor espere hasta que el instructor finalize de completar el contenido +pageTitle.monitoring =Wookie Seguimiento +button.summary =Resumen +button.editActivity =Editar Activiidad +button.statistics =Estad\u00edsticas +titleHeading.summary =Resumen +titleHeading.statistics =Estad\u00edsticas +titleHeading.editActivity =Editar Activiidad +titleHeading.exportPortfolio =Exportar Portfolio +heading.group =Grupo {0}: +heading.totalLearners =N\u00famero de estudiantes: +heading.totalLearnersInGroup =N\u00famero total de estudiantes en grupo: +heading.totalFinishedLearnersInGroup =N\u00famero de estudiantes que han finalizado: +label.view =Ver +label.notAvailable =No disponible +heading.learner =Estudiante +heading.notebookEntry =Anotaciones +button.cancel =Cancelar +button.ok =OK +button.done =Listo +button.save =Guardar +button.next =Continuar +label.save =Guardar +label.cancel =Cancelar +label.created =Creado +label.lastModified =\u00daltima modificacion +label.notebookEntry =Anotaci\u00f3n +message.summary =No hay sumario para esta actividad +error.missingParam =No se puede continuar. Se require {0} +error.exceedMaxFileSize =El tama\u00f1o del archivo es excede el tama\u00f1o permitido. +error.exception.NbApplication =Ha ocurrido un error interno en Wookie. Por favor reporte el siguiente problema: {0} +error.defineLater =El instructor est\u00e1 realizando cambios al contenido de esta actividad. Por favor espere a que termine. +errors.maxfilesize =El archivo que ha tratado de a\u00f1adir es mayor al m\u00e1ximo permito: {0} bytes. +error.mandatoryField ={0} no puede dejarse en blanco. +button.try.again =Intentar nuevamente +button.finish =Finalizar +message.alertContentEdit =Atenci\u00f3n: uno o mas estudiantes ya han accedido a esta actividad. Cambiar el contenido de la misma resultar\u00e1 en que estudiantes reciban distinta informaci\u00f3n. +titleHeading.instructions =Instrucciones +label.authoring.basic.instructions =Instrucciones: +label.on =Si +label.off =No +monitor.summary.th.advancedSettings =Otras Opciones +tooltip.openfullsize =Pulse aqui para abrir en tama\u00f1o original +advanced.reflectOnActivity =Agregar reflexi\u00f3n al final de la actividad con las siguientes instrucciones: +button.refresh =Actualizar +monitoring.th.reflection =Reflexi\u00f3n +monitor.summary.td.notebookInstructions =Instrucciones del anotador +authoring.msg.cancel.save =No se han guardado sus cambios. \u00bfEsta seguro de salir sin guardar cambios? +admin.wookieLanguageCSV =Ingrese las claves de lenguage de Wookie +admin.formError =Ha ocurrido un error al procesar su informaci\u00f3n. Por favor asegurese que el valor ingresado est\u00e1 separado por comas: xx,yy,zz +admin.success =Configuraci\u00f3n guardada. +message.runOfflineSet =Esta actividad ha sido se\u00f1alada para realizarse en forma offline. Por favor, consulte con su profesor. +message.warnLockOnFinish =Atenci\u00f3n: una vez que presione en "Finalizar", si usted vuelve a esta actividad, no podr\u00e1 efectuar cambios a la misma. + + +#======= End labels: Exported 114 labels for es ES ===== Index: lams_tool_wookie/conf/language/lams/ApplicationResources_mi_NZ.properties =================================================================== diff -u --- lams_tool_wookie/conf/language/lams/ApplicationResources_mi_NZ.properties (revision 0) +++ lams_tool_wookie/conf/language/lams/ApplicationResources_mi_NZ.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,124 @@ +appName = wookie +#language code: mi +#locale code: NZ + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Sat Mar 07 20:21:05 CST 2009 + +#=================== labels for Wookie Tool =================# + +label.cancel =Whakakore +button.cancel =Whakakore +message.runOfflineSet =Kua whakaritea t\u0113nei hei mahinga tuimotu. K\u014drerohia ki t\u014du kaiako m\u014d ng\u0101 taipitopito. +advanced.lockOnFinished =Whakap\u016bmautia in\u0101 oti +label.created =Kua Hangaia +message.alertContentEdit =Kia Mataara: Neke atu kia k\u014dtahi \u0101konga i uru ki t\u0113nei ngohe. Ka whakarerek\u0113 ng\u0101 ihiranga ka whakarerek\u0113tia ng\u0101 p\u0101rongo i whiwhi e ng\u0101 \u0101konga. +authoring.msg.cancel.save =Ka hiahia koe ki te kati i te matapihi nei me te kore tiaki? +label.lastModified =K\u0113tanga Mutunga +button.statistics =Tauanga +titleHeading.statistics =Tauanga +error.missingParam =K\u0101ore e taea te haere tonu. Ko te {0} e ngaro ana +title.sessions =W\u0101t\u016b +monitor.summary.th.advancedSettings =Ar\u0101 Atu An\u014d +error.defineLater =Aroha mai, k\u0101hore an\u014d te ngohe kia rite. Tatari kia tautuhia te ngohe e te kaiako . +titleHeading.editActivity =Whakatikatika Ngohe +heading.totalLearners =Tapeke \u0100konga: +heading.totalLearnersInGroup =Tapeke \u0100konga i roto i te R\u014dp\u016b: +message.summary =K\u0101re he whakar\u0101popotonga i te w\u0101tea m\u014d t\u0113nei taputapu. +error.mandatoryField =K\u0101ore e taea te \u0101pure {0} te karo. +label.notAvailable =K\u0101ore e W\u0101tea ana +titleHeading.exportPortfolio =Kawe K\u014dpaki Atu +message.unsavedChanges =He rerek\u0113tanga k\u0101ore an\u014d kia tiakina t\u014d te wharangi +heading.totalFinishedLearnersInGroup =Tapeke \u0100konga kua oti: +button.finish =Ngohe Whai Ake +error.exceedMaxFileSize =Kua hipa atu te rahinga k\u014dnae e whakaaetia ana +error.content.locked =Kua rakaina te ihirangi n\u0101 te mea kei te whakamahia e t\u0113tehi, e \u0113tehi \u0101konga r\u0101nei. K\u0101ore e taea te whakatika i ng\u0101 ihirangi. +error.exception.NbApplication =Kua puta t\u0113tehi hapa o roto i te taputapu Papa P\u0101nui. M\u0113n\u0101 kei te tuku p\u016brongo koe m\u014d t\u0113nei hapa, tukuna mai koa: {0} +message.contentInUseSet =K\u0101ore e taea te whakatika i ng\u0101 ihirangi n\u0101 te mea kua whakam\u0101tau t\u0113tahi, \u0113tehi \u0101konga r\u0101nei i te ngohe. +error.msg.upload.file.not.found =K\u0101ore i kitea te k\u014dnae tuku atu {0}. +errors.maxfilesize =Kua hipa atu te k\u014dnae tuku i te m\u014drahi o ng\u0101 paita e whakaaetia {0} +label.authoring.basic.content =R\u0101rangi Kaupapa +message.updateSuccess =Rerek\u0113tanga kua tiakina. +message.defineLaterSet =Tatarihia kia oti i te kaiako ng\u0101 ihirangi o t\u0113nei ngohe. +button.editActivity =Whakatikatika Ngohe +error.resource.item.file.blank =Whakak\u012ba te ingoa k\u014dnae. +monitor.summary.td.notebookInstructions =Tohutohu Pukatuhi +appName =wookie +error.contentrepository =Kua puta t\u0113tehi hapa i te w\u0101 tiaki/whakakore k\u014dnae tohutohu {0}. T\u0113r\u0101 pea k\u0101ore i te tika te tiaki. +button.instructions =Tohutohu +instructions.uploadOfflineInstr =K\u014dnae Tohutohu Tuimotu +instructions.uploadOnlineInstr =K\u014dnae Tohutohu Tuihono +instructions.offlineInstructions =Tohutohu Tuimotu +instructions.onlineInstructions =Tohutohu Tuihono +activity.helptext =Whakatika whakaahua i te etita Wookie +tool.display.name =Wookie +tool.description =Taputapu Whakatika Whakaahua o Wookie +activity.title =Wookie +activity.description =Taputapu Whakatika Whakaahua o Wookie +pageTitle.authoring =Kaituhi Wookie +button.basic =M\u0101m\u0101 +button.advanced =Ara Atu An\u014d +button.upload =Kawe Mai +label.authoring.basic.title =Taitara +advanced.allowViewOthersImages =Tukuna ng\u0101 \u0101konga kia kite i ng\u0101 whakaahua a \u0113tehi atu. +instructions.type.online =Tuihono +instructions.type.offline =Tuimotu +label.filename =Ingoa K\u014dnae +label.type =Momo +label.attachments =\u0100pitihanga +link.view =Tirohia +link.download =Tuku Mai +link.delete =Whakakore +pageTitle.learning =Etita Whakaahua o Wookie +pageTitle.monitoring =Aroturuki Wookie +button.summary =Whakar\u0101popotonga +titleHeading.summary =Whakar\u0101popotonga +heading.group =R\u014dp\u016b {0}: +label.view =Tirohia +heading.learner =\u0100konga +heading.notebookEntry =Tuhinga Pukatuhi +button.ok =\u0100e +button.done =Kua Mutu +button.save =Tiaki +button.next =Ki Mua +label.save =Tiaki +label.notebookEntry =Tuhinga Pukatuhi +button.try.again =Mahi An\u014d +message.warnLockOnFinish =Me mahara: \u0100 muri i te p\u0101whiri i te "Ngohe Whai Ake", ka hoki mai an\u014d koe ki t\u0113nei ngohe Wookie, k\u0101ore e taea te whakatikatika tonu i t\u0101u ake whakaahua. +message.warnLockOnFinishViewAll =Me mahara: \u0100 muri i te p\u0101whiri i te "View All Wookie Images", ka hoki mai an\u014d koe ki t\u0113nei ngohe Wookie, k\u0101ore e taea te whakatikatika tonu i t\u0101u ake whakaahua. +message.activityLocked =Kua whakaritea t\u0113nei ngohe e te kaiako kia kore ai e koe e \u0101hei te whakatikatika whakaahua i muri i te mutunga. Ina hoki mai ki t\u0113nei ngohe, ka taea te tiro i ng\u0101 pikitia i tuku \u0113ngari k\u0101ore e taea te whakatikatika whakaahua an\u014d. +titleHeading.instructions =Tohutohu +label.authoring.basic.instructions =Tohutohu: +label.on =Kei te k\u0101 +label.off =Kua weto +label.authoring.basic.add.image =T\u0101piri Whakaahua +error.resource.image.not.alowed.format =H\u014dputu k\u014dnae i whakaaetia: gif, png, jpg +error.file.upload.failed =I hapa te tuku whakaahua atu, tirohia an\u014d te k\u014dnae whakaahua, ka whakam\u0101tau an\u014d. +label.authoring.remove =Tangohia +learner.edit.image =Whakatika Whakaahua ki Wookie +tooltip.openfullsize =P\u0101whiria kia rahi rawa atu te tirohanga +advanced.reflectOnActivity =T\u0101piri Pukatuhi ki te mutunga o Wookie me ng\u0101 tohutohu e whai ake ana: +button.continue =Haere +button.edit =Whakatikatika +button.viewAll =Tirohia ng\u0101 whakaahua \u0101konga katoa +learner.title.viewAll =Tirohia ng\u0101 whakaahua Wookie katoa +button.redo =Mahi an\u014d te Ngohe +button.refresh =T\u0101matatia +message.imageListEmpty =K\u0101ore he whakaahua hei whakaatu n\u0101 te mea k\u0101ore an\u014d t\u0113tehi whakaahua kia whakatikaina e t\u0113tehi \u0101konga. +error.retreiving.image =I hapa te tiki whakaahua mai i wookie.com. Whakap\u0101 atu ki te kaiwhakahaere p\u016bnaha. +message.imageEdited =I whakatikatika tikahia te whakaahua. +button.close =Katia +monitoring.th.learner =\u0100konga +monitoring.th.image =Whakatikatika Whakaahua +monitoring.th.reflection =Tuhinga Pukatuhi +monitoring.hideImage =Huna whakaahua i \u0113r\u0101 atu \u0101konga +monitoring.showImage =Whakaatu whakaahua ki \u0113r\u0101 atu \u0101konga +message.imageHidden =Kua hunaia te whakaahua e te kaiako +title.originalImage =Whakaahua Taketake +message.imageNotAvailable =K\u0101ore he whakaahua i te w\u0101tea, t\u0113r\u0101 pea k\u0101ore an\u014d kia whakatikaina, kua mukua r\u0101nei. +admin.wookieLanguageCSV =T\u0101urutia ng\u0101 uara reo matua whakawehe piko e tautokotia ana e Wookie +admin.formError =I hapa te tukatuka puka, me whai h\u014dputu whakawehe piko ng\u0101 kupu tauru: xx,yy,zz +admin.success =Kua tiaki tikahia te whirihoranga. +message.learner.saveWhenFinished =In\u0101 mutu te whakatikatika whakaahua, p\u0101whiria k\u014dnae/tiaki ki te hoki ki te ngohe. + + +#======= End labels: Exported 113 labels for mi NZ ===== Index: lams_tool_wookie/conf/language/lams/ApplicationResources_no_NO.properties =================================================================== diff -u --- lams_tool_wookie/conf/language/lams/ApplicationResources_no_NO.properties (revision 0) +++ lams_tool_wookie/conf/language/lams/ApplicationResources_no_NO.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,125 @@ +appName = wookie +#language code: no +#locale code: NO + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Sun Jul 05 07:22:27 CST 2009 + +#=================== labels for Wookie Tool =================# + +pageTitle.authoring =Wookie godkjenning +instructions.type.online =On-line +error.contentrepository =En feil har oppst\u00e5tt under lagring/sletting av informasjons filen {0}. Filen er sansynligvis ikke lagret korrekt. +instructions.type.offline =Off-line +heading.group =Gruppe {0} +label.type =Type +message.unsavedChanges =Siden inneholder endringer som ikke er lagret +pageTitle.monitoring =Wookie kontrollmodus +button.summary =Oppsummering +button.statistics =Statistikk +titleHeading.summary =Oppsummering +titleHeading.statistics =Statistikk +titleHeading.instructions =Instruksjoner +label.authoring.basic.instructions =Innstruksjoner: +monitor.summary.th.advancedSettings =Avansert +label.authoring.basic.add.image =Legg til bilde +error.missingParam =Kan ikke fortsette: {0} mangler. +learner.edit.image =Rediger bilde i Wookie +tooltip.openfullsize =Klikk for \u00e5 \u00e5pne full st\u00f8rrelse +message.imageEdited =Bildet er redigert korrekt +monitoring.hideImage =Skjul bilde for andre studenter +monitor.summary.td.notebookInstructions =Notatbok instruksjoner +error.exception.NbApplication =En intern feil har oppst\u00e5tt i Wookie verkt\u00f8yet. Hvis du rapporterer feilen, s\u00e5 rapporter: {0} +errors.maxfilesize =Opplastingsfilen har ovsrskredet maksimum filst\u00f8rrelse p\u00e5 {0} bytes. +error.mandatoryField ={0} feltet er p\u00e5krevet +error.msg.upload.file.not.found =Kan ikke finne opplastingsfil {0}. +admin.wookieLanguageCSV =Skriv inn komma separerte spr\u00e5k verdier som st\u00f8ttes av Wookie +button.instructions =Instruksjoner +label.off =Av +instructions.uploadOfflineInstr =Off-line instruksjons fil: +instructions.uploadOnlineInstr =On-line instruksjons fil: +instructions.offlineInstructions =Off -line instruksjoner +instructions.onlineInstructions =On-line instruksjoner +appName =wookie +button.editActivity =Rediger aktivitet +activity.helptext =Rediger bilder i Wookie bilde redigerings verkt\u00f8y +titleHeading.editActivity =Rediger aktivitet +message.contentInUseSet =det er ikke tillatt \u00e5 endre innholdet fordi en eller flere studenter har startet \u00e5 denne akriviteten. +tool.description = Wookie bilde redigerings verkt\u00f8y +activity.description =Wookie bilde redigerings verkt\u00f8y +advanced.lockOnFinished =L\u00e5s n\u00e5r ferdig +advanced.allowViewOthersImages =Tillat studentene \u00e5 se andre studenters bilder +label.filename =Filnavn +pageTitle.learning =Wookie billed redigerings verkt\u00f8y +message.defineLaterSet =Vennligst vent til at foreleseren har ferdistillt innholdet for denne aktiviteten +message.runOfflineSet =Denne oppgaven utf\u00f8res ikke ved hjelp av datamaskin. Vennligst konferer foreleseren. +button.cancel =Angre +titleHeading.exportPortfolio =Eksporter mappe +heading.totalLearners =Antall studenter: +heading.totalLearnersInGroup =Totalt antall studenter i gruppen: +heading.totalFinishedLearnersInGroup =Antall studenter som er ferdig: +message.summary =Det er ingen oppsummering tilgjengelig for dette verkt\u00f8yet. +label.view =Se p\u00e5 +label.notAvailable =Ikke tilgjengelig +heading.learner =Student +button.ok =OK +button.done =Utf\u00f8rt +button.save =Lagre +button.next =Neste +label.save =Lagre +label.cancel =Angre +label.created =Opprettet +label.lastModified =Sist modifisert +error.exceedMaxFileSize =Fil st\u00f8rrelsen er for stor +button.try.again =Fors\u00f8k igjen +button.finish =Neste aktivitet +title.sessions =Sesjoner +button.redo =Gj\u00f8r om aktiviteten +button.refresh =Frisk opp +monitoring.showImage =Vis bilde til de andre studentene +message.imageHidden =Bildet er skjult av foreleseren +title.originalImage =Orginalt bilde +authoring.msg.cancel.save =\u00d8nsker du virkelig \u00e5 lukke dette vinduet uten \u00e5 lagre ? +admin.success =Konfigurasjonen er lagret korrekt. +message.learner.saveWhenFinished =N\u00e5r du er ferdig med \u00e5 redigere bildet, klikk p\u00e5 Fil/lagre for \u00e5 returnere til student modus +monitor.summary.td.addNotebook =Legg til en notatblokk p\u00e5 slutten av Wookie aktiviteten +activity.title =Wookie +tool.display.name =Wookie +button.basic =Grunnleggende +button.advanced =Avansert +button.upload =Last opp +label.authoring.basic.title =Tittel: +label.authoring.basic.content =Innhold: +label.attachments =Vedlegg +link.view =Se p\u00e5 +link.download =Last ned +link.delete =Slett +message.updateSuccess =Endringene er lagret +label.on =P\u00e5 +error.resource.item.file.blank =File kan ikke v\u00e6re tom +label.authoring.remove =Fjern +button.continue =Fortsett +button.edit =Rediger +button.close =Lukk +monitoring.th.learner =Student +monitoring.th.image =rediger bilde +heading.notebookEntry =Skriv notat +label.notebookEntry =Skriv notat +message.alertContentEdit =MERK: En eller flere studenter ha p\u00e5begynt denne aktiviteten. Endrer du innholdet vil studentene f\u00e5 tilgang til forskjellig innhold. +error.resource.image.not.alowed.format =Tillatte fil format er: gif, png, jpg +advanced.reflectOnActivity =legg til en notatblokk \u00e5 slutten av Wookie med f\u00f8lgende informasjon: +button.viewAll =Se alle studentbilder +learner.title.viewAll =Se alle Wookie bilder +message.imageListEmpty =Ingen bilder kan vises fordi studentene ikke har begynt redigeringen av sine bilder +monitoring.th.reflection =Skriv notat +error.defineLater =Beklager, denne aktiviteten er ikke ferdig enda. Vennligst vent til at foreleseren har ferdigstilt aktiviteten. +error.file.upload.failed =Opplasting av bilde var mislykket, venligst kontroller bilde og fors\u00f8k igjen. +message.imageNotAvailable =Bilde er ikke tilgjengelig, enten er det enn\u00e5 ikke redigert eller det er slettet +error.content.locked =Innholdet er l\u00e5st fordi det er i bruk av en eller flere studenter. Det er ikke tillatt \u00e5 endre innholdet. +message.warnLockOnFinish =Merk: Etter at du har klikket p\u00e5 "Neste aktivitet" og deretter kommer tilbake til denne Wookie aktiviteten, s\u00e5 vil du ikke kunne fortsette \u00e5 redigere bilde ditt. +message.warnLockOnFinishViewAll =Merk: Etter at du har klikket p\u00e5 "Se alle Wookie bilder" og deretter kommer tilbake til denne Wookie aktiviteten, s\u00e5 vil du ikke kunne fortsette \u00e5 redigere bilde ditt +message.activityLocked =Foreleseren har definert denne aktiviteten slik at du ikke kan redigere bilder etter at du er ferdig. N\u00e5r du kommer tilbake til denne aktiviteten, f\u00e5r du se bildene, men ikke redigere disse. +error.retreiving.image =Det oppsto en feil n\u00e5r bilde skulle hentes fra Wookie.com, vennligst kontakt systemadministrator +admin.formError =Det oppsto en feil ved prossesering av skjemaet, vennligst kontroller at teksten som gis inn er komma separert: xx, yy, zz + + +#======= End labels: Exported 114 labels for no NO ===== Index: lams_tool_wookie/conf/language/lams/ApplicationResources_ru_RU.properties =================================================================== diff -u --- lams_tool_wookie/conf/language/lams/ApplicationResources_ru_RU.properties (revision 0) +++ lams_tool_wookie/conf/language/lams/ApplicationResources_ru_RU.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,124 @@ +appName = wookie +#language code: ru +#locale code: RU + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Fri Apr 03 00:35:37 CST 2009 + +#=================== labels for Wookie Tool =================# + +appName =Wookie +button.instructions =\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 +instructions.uploadOfflineInstr =\u0424\u0430\u0439\u043b \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439: +instructions.uploadOnlineInstr =\u0424\u0430\u0439\u043b \u043e\u043d\u043b\u0430\u0439\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439: +instructions.offlineInstructions =\u0410\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438: +instructions.onlineInstructions =\u041e\u043d\u043b\u0430\u0439\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438: +activity.helptext =\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 Wookie +tool.display.name =Wookie +tool.description =\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 Wookie +activity.title =Wookie +activity.description =\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 Wookie +pageTitle.authoring =\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 Wookie +button.basic =\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 +button.advanced =\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 +button.upload =\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c +label.authoring.basic.title =\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a: +label.authoring.basic.content =\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435: +instructions.type.online =\u041e\u043d\u043b\u0430\u0439\u043d +instructions.type.offline =\u0410\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0435 +label.filename =\u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 +label.type =\u0422\u0438\u043f +label.attachments =\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f +link.view =\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c +link.download =\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c +link.delete =\u0423\u0434\u0430\u043b\u0438\u0442\u044c +message.updateSuccess =\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b +pageTitle.learning =\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 Wookie +pageTitle.monitoring =Wookie \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 +button.editActivity =\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u0435 +button.statistics =\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 +titleHeading.statistics =\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 +titleHeading.editActivity =\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u0435 +titleHeading.exportPortfolio =\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u043f\u043e\u0440\u0442\u0444\u043e\u043b\u0438\u043e +heading.group =\u0413\u0440\u0443\u043f\u043f\u0430 {0}: +heading.totalLearners =\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432: +error.contentrepository =\u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 {0}. \u0424\u0430\u0439\u043b\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. +message.contentInUseSet =\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. +error.content.locked =\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0431\u044b\u043b\u043e \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. +advanced.allowViewOthersImages =\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0443\u0447\u0435\u043d\u0438\u043a\u0430\u043c \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 +message.defineLaterSet =\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435 \u043f\u043e\u043a\u0430 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f +message.runOfflineSet =\u042d\u0442\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044e \u0437\u0430 \u043f\u043e\u043c\u043e\u0448\u044c\u044e. +error.exception.NbApplication =\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c: {0} +error.defineLater =\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u044d\u0442\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0435\u0449\u0435 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u043e. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435 \u043f\u043e\u043a\u0430 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f. +errors.maxfilesize =\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u043b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432 {0} \u0431\u0430\u0439\u0442 +message.alertContentEdit =\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u041e\u0434\u0438\u043d \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u044d\u0442\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u0435. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0443\u0447\u0435\u043d\u0438\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. +message.warnLockOnFinish =\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435", \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0435\u0440\u043d\u0435\u0442\u0435\u0441\u044c \u043a \u0437\u0430\u0434\u0430\u043d\u0438\u044e Wookie, \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. +message.warnLockOnFinishViewAll =\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 Wookie ", \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0435\u0440\u043d\u0435\u0442\u0435\u0441\u044c \u043a \u0437\u0430\u0434\u0430\u043d\u0438\u044e Wookie, \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. +message.activityLocked =\u041f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. +label.view =\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c +label.notAvailable =\u041d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e +heading.learner =\u0423\u0447\u0435\u043d\u0438\u043a +heading.notebookEntry =\u0417\u0430\u043f\u0438\u0441\u044c \u0422\u0435\u0442\u0440\u0430\u0434\u0438 +button.cancel =\u041e\u0442\u043c\u0435\u043d\u0430 +button.ok =\u041e\u041a +button.save =\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c +button.next =\u0414\u0430\u043b\u0435\u0435 +label.save =\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c +label.cancel =\u041e\u0442\u043c\u0435\u043d\u0430 +label.created =\u0421\u043e\u0437\u0434\u0430\u043d\u043e +error.mandatoryField =\u041f\u043e\u043b\u0435 {0} \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e. +button.try.again =\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430 +button.finish =\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 +label.authoring.remove =\u0423\u0434\u0430\u043b\u0438\u0442\u044c +button.continue =\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c +button.edit =\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c +admin.success =\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430. +advanced.lockOnFinished =\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 +message.unsavedChanges =\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f +button.summary =\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 +titleHeading.summary =\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 +heading.totalLearnersInGroup =\u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435: +heading.totalFinishedLearnersInGroup =\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0432\u0448\u0438\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432: +message.summary =\u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f. +button.done =\u0417\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c +label.notebookEntry =\u0417\u0430\u043f\u0438\u0441\u044c \u0422\u0435\u0442\u0440\u0430\u0434\u0438 +error.missingParam =\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c. \u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 {0}. +label.on =\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c +label.off =\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c +monitor.summary.th.advancedSettings =\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 +label.authoring.basic.add.image =\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 +error.resource.image.not.alowed.format =\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b: gif, png, jpg +error.resource.item.file.blank =\u0424\u0430\u0439\u043b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c. +learner.edit.image =\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 Wookie +tooltip.openfullsize =\u041d\u0430\u0436\u043c\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u043f\u043e\u043b\u043d\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0435 +button.viewAll =\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 +button.refresh =\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c +message.imageEdited =\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e. +button.close =\u0417\u0430\u043a\u0440\u044b\u0442\u044c +monitoring.th.learner =\u0423\u0447\u0435\u043d\u0438\u043a +monitoring.th.image =\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 +monitoring.th.reflection =\u0417\u0430\u043f\u0438\u0441\u044c \u0422\u0435\u0442\u0440\u0430\u0434\u0438 +monitoring.hideImage =\u0421\u043a\u0440\u044b\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 +monitoring.showImage =\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0447\u0435\u043d\u0438\u043a\u0430\u043c +message.imageHidden =\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u044b\u0442\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u043c +monitor.summary.td.notebookInstructions =\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0422\u0435\u0442\u0440\u0430\u0434\u0438 +title.sessions =\u0421\u0435\u0441\u0441\u0438\u0438 +title.originalImage =\u0418\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 +message.imageNotAvailable =\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e. \u041e\u043d\u043e \u0435\u0449\u0435 \u043d\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0438\u043b\u0438 \u0431\u044b\u043b\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043e. +authoring.msg.cancel.save =\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u044d\u0442\u043e \u043e\u043a\u043d\u043e \u0431\u0435\u0437 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f? +admin.wookieLanguageCSV =\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 Wookie \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435 \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438 +admin.formError =\u041f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0444\u043e\u0440\u043c\u044b \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0443: xx,yy,zz +message.learner.saveWhenFinished =\u041f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0443\u0447\u0435\u043d\u0438\u043a\u0430. +label.lastModified =\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c +error.exceedMaxFileSize =\u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 +titleHeading.instructions =\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 +label.authoring.basic.instructions =\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438: +error.msg.upload.file.not.found =\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b {0}. +error.file.upload.failed =\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0444\u0430\u0439\u043b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u043d\u043e\u0432\u0430. +advanced.reflectOnActivity =\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0422\u0435\u0442\u0440\u0430\u0434\u044c \u0432 \u043a\u043e\u043d\u0435\u0446 Wookie \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438: +learner.title.viewAll =\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 Wookie +button.redo =\u041f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u0435 +message.imageListEmpty =\u041d\u0435\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u0447\u0435\u043d\u0438\u043a\u0438 \u0435\u0449\u0435 \u043d\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. +error.retreiving.image =\u041f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 wookie.com \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c. + + +#======= End labels: Exported 113 labels for ru RU ===== Index: lams_tool_wookie/conf/language/rams/ApplicationResources.properties =================================================================== diff -u --- lams_tool_wookie/conf/language/rams/ApplicationResources.properties (revision 0) +++ lams_tool_wookie/conf/language/rams/ApplicationResources.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,118 @@ +appName = wookie +#language code: en +#locale code: AU + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Wed Oct 29 16:25:46 GMT 2008 + +#=================== labels for wookie =================# + +error.contentrepository =An error has occurred when saving/deleting instruction file {0}. The files may not be saved correctly. +button.instructions =Instructions +instructions.uploadOfflineInstr =Offline Instructions File: +instructions.uploadOnlineInstr =Online Instructions File: +instructions.offlineInstructions =Offline Instructions: +instructions.onlineInstructions =Online Instructions: +activity.helptext =Edit images in Wookie image editor +message.contentInUseSet =Modification of content is not allowed since one or more students has attempted the activity. +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. +tool.display.name =Wookie +tool.description =Wookie Image Editing Tool +activity.title =Wookie +activity.description =Wookie Image Editing Tool +pageTitle.authoring =Wookie Authoring +button.basic =Basic +button.advanced =Advanced +button.upload =Upload +label.authoring.basic.title =Title: +label.authoring.basic.content =Content: +advanced.lockOnFinished =Lock when finished +advanced.allowViewOthersImages =Allow learners to view other learners images +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 = Wookie Image Editor +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 =Wookie Monitoring +button.summary =Summary +button.editActivity =Edit Activity +button.statistics =Statistics +titleHeading.summary =Summary +titleHeading.statistics =Statistics +titleHeading.editActivity =Edit Activity +titleHeading.exportPortfolio =Export Portfolio +heading.group =Group {0}: +heading.totalLearners =Number of Learners: +heading.totalLearnersInGroup =Total Number of Learners in Group: +heading.totalFinishedLearnersInGroup =Number of Finished Learners: +message.summary =There is no summary available for this tool. +label.view =View +label.notAvailable =Not Available +heading.learner =Learner +heading.notebookEntry =Notebook Entry +button.cancel =Cancel +button.ok =OK +button.done =Done +button.save =Save +button.next =Next +label.save =Save +label.cancel =Cancel +label.created =Created +label.lastModified =Last modified +label.notebookEntry =Notebook entry +error.missingParam =Unable to continue. {0} is missing. +error.exceedMaxFileSize =File size exceeded +error.exception.NbApplication =An internal error has occurred with the Wookie Tool. If reporting this error, please report:
{0} +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. +button.try.again =Try Again +button.finish =Next Activity +message.alertContentEdit =Warning: One of more students have accessed this activity. Changing this content will result in students getting different information. +message.warnLockOnFinish =Note: After you click on "Next Activity" and you come back to this Wookie activity, you won't be able to continue editing your image. +message.warnLockOnFinishViewAll =Note: After you click on "View All Wookie Images" and you come back to this Wookie activity, you won't be able to continue editing your image. +message.activityLocked =The instructor has set this activity not to allow image edits after you have finished it. As you are returning to this activity, you are able to see your image but not edit it. +titleHeading.instructions =Instructions +label.authoring.basic.instructions =Instructions: +label.on =On +label.off =Off +monitor.summary.th.advancedSettings =Advanced Settings +label.authoring.basic.add.image =Add Image +error.resource.image.not.alowed.format =Allowed file formats: gif, png, jpg +error.resource.item.file.blank =File can not be blank. +error.msg.upload.file.not.found =Could not find upload file {0}. +error.file.upload.failed =Image upload failed, please check your image file and try again. +label.authoring.remove =Remove +learner.edit.image =Edit Image in Wookie +tooltip.openfullsize =Click to open full size +advanced.reflectOnActivity =Add Notebook at end of Gmap with the following instructions: +button.continue =Continue +button.edit =Edit +button.viewAll =View all learner images +learner.title.viewAll =View All Wookie Images +button.redo =Redo Activity +button.refresh =Refresh +message.imageListEmpty =No images to display as no learners have edited their images yet. +error.retreiving.image =There was an error retrieving the image from wookie.com, please contact the system administrator. +message.imageEdited =Image successfully edited. +button.close =Close +monitoring.th.learner =Learner +monitoring.th.image =Edited Image +monitoring.th.reflection =Notebook Entry +monitoring.hideImage =Hide image from other learners +monitoring.showImage =Show image to other learners +message.imageHidden =Image hidden by teacher +monitor.summary.td.notebookInstructions =Notebook instructions +advanced.reflectOnActivity =Add Notebook at end of Wookie with the following instructions: +title.sessions =Sessions +title.originalImage =Original Image +message.imageNotAvailable =Image not available, either it has not yet been edited or it has been deleted. + +#======= End labels: Exported 103 labels for en AU ===== Index: lams_tool_wookie/conf/language/rams/ApplicationResources_en_AU.properties =================================================================== diff -u --- lams_tool_wookie/conf/language/rams/ApplicationResources_en_AU.properties (revision 0) +++ lams_tool_wookie/conf/language/rams/ApplicationResources_en_AU.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,118 @@ +appName = wookie +#language code: en +#locale code: AU + + # CVS ID: $Id$ Exported from the LAMS Community by Ernie Ghiglione on Wed Oct 29 16:25:46 GMT 2008 + +#=================== labels for wookie =================# + +error.contentrepository =An error has occurred when saving/deleting instruction file {0}. The files may not be saved correctly. +button.instructions =Instructions +instructions.uploadOfflineInstr =Offline Instructions File: +instructions.uploadOnlineInstr =Online Instructions File: +instructions.offlineInstructions =Offline Instructions: +instructions.onlineInstructions =Online Instructions: +activity.helptext =Edit images in Wookie image editor +message.contentInUseSet =Modification of content is not allowed since one or more students has attempted the activity. +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. +tool.display.name =Wookie +tool.description =Wookie Image Editing Tool +activity.title =Wookie +activity.description =Wookie Image Editing Tool +pageTitle.authoring =Wookie Authoring +button.basic =Basic +button.advanced =Advanced +button.upload =Upload +label.authoring.basic.title =Title: +label.authoring.basic.content =Content: +advanced.lockOnFinished =Lock when finished +advanced.allowViewOthersImages =Allow learners to view other learners images +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 = Wookie Image Editor +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 =Wookie Monitoring +button.summary =Summary +button.editActivity =Edit Activity +button.statistics =Statistics +titleHeading.summary =Summary +titleHeading.statistics =Statistics +titleHeading.editActivity =Edit Activity +titleHeading.exportPortfolio =Export Portfolio +heading.group =Group {0}: +heading.totalLearners =Number of Learners: +heading.totalLearnersInGroup =Total Number of Learners in Group: +heading.totalFinishedLearnersInGroup =Number of Finished Learners: +message.summary =There is no summary available for this tool. +label.view =View +label.notAvailable =Not Available +heading.learner =Learner +heading.notebookEntry =Notebook Entry +button.cancel =Cancel +button.ok =OK +button.done =Done +button.save =Save +button.next =Next +label.save =Save +label.cancel =Cancel +label.created =Created +label.lastModified =Last modified +label.notebookEntry =Notebook entry +error.missingParam =Unable to continue. {0} is missing. +error.exceedMaxFileSize =File size exceeded +error.exception.NbApplication =An internal error has occurred with the Wookie Tool. If reporting this error, please report:
{0} +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. +button.try.again =Try Again +button.finish =Next Activity +message.alertContentEdit =Warning: One of more students have accessed this activity. Changing this content will result in students getting different information. +message.warnLockOnFinish =Note: After you click on "Next Activity" and you come back to this Wookie activity, you won't be able to continue editing your image. +message.warnLockOnFinishViewAll =Note: After you click on "View All Wookie Images" and you come back to this Wookie activity, you won't be able to continue editing your image. +message.activityLocked =The instructor has set this activity not to allow image edits after you have finished it. As you are returning to this activity, you are able to see your image but not edit it. +titleHeading.instructions =Instructions +label.authoring.basic.instructions =Instructions: +label.on =On +label.off =Off +monitor.summary.th.advancedSettings =Advanced Settings +label.authoring.basic.add.image =Add Image +error.resource.image.not.alowed.format =Allowed file formats: gif, png, jpg +error.resource.item.file.blank =File can not be blank. +error.msg.upload.file.not.found =Could not find upload file {0}. +error.file.upload.failed =Image upload failed, please check your image file and try again. +label.authoring.remove =Remove +learner.edit.image =Edit Image in Wookie +tooltip.openfullsize =Click to open full size +advanced.reflectOnActivity =Add Notebook at end of Gmap with the following instructions: +button.continue =Continue +button.edit =Edit +button.viewAll =View all learner images +learner.title.viewAll =View All Wookie Images +button.redo =Redo Activity +button.refresh =Refresh +message.imageListEmpty =No images to display as no learners have edited their images yet. +error.retreiving.image =There was an error retrieving the image from wookie.com, please contact the system administrator. +message.imageEdited =Image successfully edited. +button.close =Close +monitoring.th.learner =Learner +monitoring.th.image =Edited Image +monitoring.th.reflection =Notebook Entry +monitoring.hideImage =Hide image from other learners +monitoring.showImage =Show image to other learners +message.imageHidden =Image hidden by teacher +monitor.summary.td.notebookInstructions =Notebook instructions +advanced.reflectOnActivity =Add Notebook at end of Wookie with the following instructions: +title.sessions =Sessions +title.originalImage =Original Image +message.imageNotAvailable =Image not available, either it has not yet been edited or it has been deleted. + +#======= End labels: Exported 103 labels for en AU ===== Index: lams_tool_wookie/conf/middlegen/lams_tool_lawookie11-prefs.properties =================================================================== diff -u --- lams_tool_wookie/conf/middlegen/lams_tool_lawookie11-prefs.properties (revision 0) +++ lams_tool_wookie/conf/middlegen/lams_tool_lawookie11-prefs.properties (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,128 @@ +# Middlegen Preferences +hibernate.tables.tl_lawook10_attachment.base-class-name=WookieAttachment +hibernate.tables.tl_lawook10_attachment.columns.create_date.columnspecialty=property +hibernate.tables.tl_lawook10_attachment.columns.create_date.java-name=createDate +hibernate.tables.tl_lawook10_attachment.columns.create_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lawook10_attachment.columns.wookie_uid.columnspecialty=foreign key +hibernate.tables.tl_lawook10_attachment.columns.wookie_uid.java-name=wookieUid +hibernate.tables.tl_lawook10_attachment.columns.wookie_uid.java-type=java.lang.Long +hibernate.tables.tl_lawook10_attachment.columns.file_name.inctostring=true +hibernate.tables.tl_lawook10_attachment.columns.file_name.java-name=fileName +hibernate.tables.tl_lawook10_attachment.columns.file_name.java-type=java.lang.String +hibernate.tables.tl_lawook10_attachment.columns.file_type.java-name=fileType +hibernate.tables.tl_lawook10_attachment.columns.file_type.java-type=java.lang.String +hibernate.tables.tl_lawook10_attachment.columns.file_uuid.columnspecialty=property +hibernate.tables.tl_lawook10_attachment.columns.file_uuid.incequals=false +hibernate.tables.tl_lawook10_attachment.columns.file_uuid.inctostring=true +hibernate.tables.tl_lawook10_attachment.columns.file_uuid.java-name=fileUuid +hibernate.tables.tl_lawook10_attachment.columns.file_uuid.java-type=java.lang.Long +hibernate.tables.tl_lawook10_attachment.columns.file_version_id.inctostring=true +hibernate.tables.tl_lawook10_attachment.columns.file_version_id.java-name=fileVersionId +hibernate.tables.tl_lawook10_attachment.columns.file_version_id.java-type=java.lang.Long +hibernate.tables.tl_lawook10_attachment.columns.uid.columnspecialty=key +hibernate.tables.tl_lawook10_attachment.columns.uid.incequals=true +hibernate.tables.tl_lawook10_attachment.columns.uid.inctostring=true +hibernate.tables.tl_lawook10_attachment.columns.uid.java-name=uid +hibernate.tables.tl_lawook10_attachment.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_lawook10_attachment.equalshashcode=true +hibernate.tables.tl_lawook10_attachment.keygenerator=native +hibernate.tables.tl_lawook10_wookie.base-class-name=Wookie +hibernate.tables.tl_lawook10_wookie.columns.content_in_use.java-name=contentInUse +hibernate.tables.tl_lawook10_wookie.columns.content_in_use.java-type=java.lang.Boolean +hibernate.tables.tl_lawook10_wookie.columns.create_by.java-name=createBy +hibernate.tables.tl_lawook10_wookie.columns.create_by.java-type=java.lang.Long +hibernate.tables.tl_lawook10_wookie.columns.create_date.java-name=createDate +hibernate.tables.tl_lawook10_wookie.columns.create_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lawook10_wookie.columns.define_later.java-name=defineLater +hibernate.tables.tl_lawook10_wookie.columns.define_later.java-type=java.lang.Boolean +hibernate.tables.tl_lawook10_wookie.columns.instructions.inctostring=true +hibernate.tables.tl_lawook10_wookie.columns.instructions.java-name=instructions +hibernate.tables.tl_lawook10_wookie.columns.instructions.java-type=java.lang.String +hibernate.tables.tl_lawook10_wookie.columns.lock_on_finished.java-name=lockOnFinished +hibernate.tables.tl_lawook10_wookie.columns.lock_on_finished.java-type=java.lang.Boolean +hibernate.tables.tl_lawook10_wookie.columns.offline_instructions.java-name=offlineInstructions +hibernate.tables.tl_lawook10_wookie.columns.offline_instructions.java-type=java.lang.String +hibernate.tables.tl_lawook10_wookie.columns.online_instructions.java-name=onlineInstructions +hibernate.tables.tl_lawook10_wookie.columns.online_instructions.java-type=java.lang.String +hibernate.tables.tl_lawook10_wookie.columns.run_offline.java-name=runOffline +hibernate.tables.tl_lawook10_wookie.columns.run_offline.java-type=java.lang.Boolean +hibernate.tables.tl_lawook10_wookie.columns.title.inctostring=true +hibernate.tables.tl_lawook10_wookie.columns.title.java-name=title +hibernate.tables.tl_lawook10_wookie.columns.title.java-type=java.lang.String +hibernate.tables.tl_lawook10_wookie.columns.tool_content_id.inctostring=true +hibernate.tables.tl_lawook10_wookie.columns.tool_content_id.java-name=toolContentId +hibernate.tables.tl_lawook10_wookie.columns.tool_content_id.java-type=java.lang.Long +hibernate.tables.tl_lawook10_wookie.columns.uid.columnspecialty=key +hibernate.tables.tl_lawook10_wookie.columns.uid.incequals=true +hibernate.tables.tl_lawook10_wookie.columns.uid.inctostring=true +hibernate.tables.tl_lawook10_wookie.columns.uid.java-name=uid +hibernate.tables.tl_lawook10_wookie.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_lawook10_wookie.columns.update_date.java-name=updateDate +hibernate.tables.tl_lawook10_wookie.columns.update_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lawook10_wookie.dynamicInsert=false +hibernate.tables.tl_lawook10_wookie.equalshashcode=true +hibernate.tables.tl_lawook10_wookie.keygenerator=native +hibernate.tables.tl_lawook10_session.base-class-name=WookieSession +hibernate.tables.tl_lawook10_session.columns.wookie_uid.java-name=wookieUid +hibernate.tables.tl_lawook10_session.columns.wookie_uid.java-type=java.lang.Long +hibernate.tables.tl_lawook10_session.columns.session_end_date.inctostring=true +hibernate.tables.tl_lawook10_session.columns.session_end_date.java-name=sessionEndDate +hibernate.tables.tl_lawook10_session.columns.session_end_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lawook10_session.columns.session_id.inctostring=true +hibernate.tables.tl_lawook10_session.columns.session_id.java-name=sessionId +hibernate.tables.tl_lawook10_session.columns.session_id.java-type=java.lang.Long +hibernate.tables.tl_lawook10_session.columns.session_name.inctostring=true +hibernate.tables.tl_lawook10_session.columns.session_name.java-name=sessionName +hibernate.tables.tl_lawook10_session.columns.session_name.java-type=java.lang.String +hibernate.tables.tl_lawook10_session.columns.session_start_date.inctostring=true +hibernate.tables.tl_lawook10_session.columns.session_start_date.java-name=sessionStartDate +hibernate.tables.tl_lawook10_session.columns.session_start_date.java-type=java.sql.Timestamp +hibernate.tables.tl_lawook10_session.columns.status.inctostring=true +hibernate.tables.tl_lawook10_session.columns.status.java-name=status +hibernate.tables.tl_lawook10_session.columns.status.java-type=java.lang.Integer +hibernate.tables.tl_lawook10_session.columns.uid.columnspecialty=key +hibernate.tables.tl_lawook10_session.columns.uid.incequals=true +hibernate.tables.tl_lawook10_session.columns.uid.inctostring=true +hibernate.tables.tl_lawook10_session.columns.uid.java-name=uid +hibernate.tables.tl_lawook10_session.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_lawook10_session.equalshashcode=true +hibernate.tables.tl_lawook10_session.keygenerator=native +hibernate.tables.tl_lawook10_user.base-class-name=WookieUser +hibernate.tables.tl_lawook10_user.columns.first_name.java-name=firstName +hibernate.tables.tl_lawook10_user.columns.first_name.java-type=java.lang.String +hibernate.tables.tl_lawook10_user.columns.last_name.columnspecialty=property +hibernate.tables.tl_lawook10_user.columns.last_name.java-name=lastName +hibernate.tables.tl_lawook10_user.columns.last_name.java-type=java.lang.String +hibernate.tables.tl_lawook10_user.columns.session_id.inctostring=true +hibernate.tables.tl_lawook10_user.columns.session_id.java-name=sessionId +hibernate.tables.tl_lawook10_user.columns.session_id.java-type=java.lang.Long +hibernate.tables.tl_lawook10_user.columns.uid.columnspecialty=key +hibernate.tables.tl_lawook10_user.columns.uid.incequals=true +hibernate.tables.tl_lawook10_user.columns.uid.inctostring=true +hibernate.tables.tl_lawook10_user.columns.uid.java-name=uid +hibernate.tables.tl_lawook10_user.columns.uid.java-type=java.lang.Long +hibernate.tables.tl_lawook10_user.columns.user_id.inctostring=true +hibernate.tables.tl_lawook10_user.columns.user_id.java-name=userId +hibernate.tables.tl_lawook10_user.columns.user_id.java-type=java.lang.Long +hibernate.tables.tl_lawook10_user.equalshashcode=true +hibernate.tables.tl_lawook10_user.keygenerator=sequence +relations.tl_lawook10_wookie-tl_lawook10_attachment.tl_lawook10_attachment-has-tl_lawook10_wookie.enabled=true +relations.tl_lawook10_wookie-tl_lawook10_attachment.tl_lawook10_attachment-has-tl_lawook10_wookie.target-many=false +relations.tl_lawook10_wookie-tl_lawook10_attachment.tl_lawook10_wookie-has-tl_lawook10_attachment.enabled=true +relations.tl_lawook10_wookie-tl_lawook10_attachment.tl_lawook10_wookie-has-tl_lawook10_attachment.target-many=true +relations.tl_lawook10_wookie-tl_lawook10_session.tl_lawook10_wookie-has-tl_lawook10_session.enabled=true +relations.tl_lawook10_wookie-tl_lawook10_session.tl_lawook10_wookie-has-tl_lawook10_session.target-many=true +relations.tl_lawook10_wookie-tl_lawook10_session.tl_lawook10_session-has-tl_lawook10_wookie.enabled=true +relations.tl_lawook10_wookie-tl_lawook10_session.tl_lawook10_session-has-tl_lawook10_wookie.target-many=false +relations.tl_lawook10_session-tl_lawook10_user.tl_lawook10_session-has-tl_lawook10_user.enabled=true +relations.tl_lawook10_session-tl_lawook10_user.tl_lawook10_session-has-tl_lawook10_user.target-many=true +relations.tl_lawook10_session-tl_lawook10_user.tl_lawook10_user-has-tl_lawook10_session.enabled=true +relations.tl_lawook10_session-tl_lawook10_user.tl_lawook10_user-has-tl_lawook10_session.target-many=false +tables.tl_lawook10_attachment.x=566 +tables.tl_lawook10_attachment.y=173 +tables.tl_lawook10_wookie.x=308 +tables.tl_lawook10_wookie.y=176 +tables.tl_lawook10_session.x=70 +tables.tl_lawook10_session.y=70 +tables.tl_lawook10_user.x=460 +tables.tl_lawook10_user.y=28 Index: lams_tool_wookie/conf/war/META-INF/MANIFEST.MF =================================================================== diff -u --- lams_tool_wookie/conf/war/META-INF/MANIFEST.MF (revision 0) +++ lams_tool_wookie/conf/war/META-INF/MANIFEST.MF (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,4 @@ +Implementation-Title: LAMS - Wookie Tool +Implementation-Version: 2.1 +Implementation-Vendor: LAMS Foundation (http://lamsfoundation.org) +Class-Path: ./lams.jar ./lams-tool-lawook10.jar ./lams-contentrepository.jar ./lams-learning.jar Index: lams_tool_wookie/conf/xdoclet/error-pages.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/error-pages.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/error-pages.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,13 @@ + + 500 + /error.jsp + + + 403 + /403.jsp + + + 404 + /404.jsp + + Index: lams_tool_wookie/conf/xdoclet/filter-mappings.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/filter-mappings.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/filter-mappings.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,14 @@ + + SystemSessionFilter + /* + + + + hibernateFilter + /* + + + + LocaleFilter + /* + Index: lams_tool_wookie/conf/xdoclet/filters.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/filters.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/filters.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,24 @@ + + SystemSessionFilter + + org.lamsfoundation.lams.web.session.SystemSessionFilter + + + + + hibernateFilter + + org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter + + + sessionFactoryBeanName + coreSessionFactory + + + + + LocaleFilter + + org.lamsfoundation.lams.web.filter.LocaleFilter + + Index: lams_tool_wookie/conf/xdoclet/global-forwards.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/global-forwards.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/global-forwards.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,3 @@ + + + Index: lams_tool_wookie/conf/xdoclet/listeners.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/listeners.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/listeners.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,11 @@ + + + org.springframework.web.context.ContextLoaderListener + + + + + org.lamsfoundation.lams.web.session.SetMaxTimeoutListener + + + Index: lams_tool_wookie/conf/xdoclet/servlet-mappings.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/servlet-mappings.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/servlet-mappings.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,20 @@ + + action + *.do + + + + + Connector + /fckeditor/editor/filemanager/browser/default/connectors/jsp/connector + + + + download + /download/* + + + + exportPortfolio + /exportPortfolio + Index: lams_tool_wookie/conf/xdoclet/servlets.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/servlets.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/servlets.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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 + net.fckeditor.connector.ConnectorServlet + + baseDir + /UserFiles/ + + + debug + false + + 1 + + + + + Attachment Download + Attachment Download + download + org.lamsfoundation.lams.contentrepository.client.ToolDownload + + toolContentHandlerBeanName + wookieToolContentHandler + + 3 + + + + exportPortfolio + org.lamsfoundation.lams.tool.wookie.web.servlets.ExportServlet + + Index: lams_tool_wookie/conf/xdoclet/struts-actions.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/struts-actions.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/struts-actions.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/conf/xdoclet/struts-forms.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/struts-forms.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/struts-forms.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_wookie/conf/xdoclet/struts-message-resources.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/struts-message-resources.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/struts-message-resources.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1 @@ + Index: lams_tool_wookie/conf/xdoclet/struts-plugins.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/struts-plugins.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/struts-plugins.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,9 @@ + + + + Index: lams_tool_wookie/conf/xdoclet/taglibs.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/taglibs.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/taglibs.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/conf/xdoclet/web-security.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/web-security.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/web-security.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,103 @@ + + + + Secure Content + *.jsp + *.html + *.do + + + LEARNER + TEACHER + MONITOR + AUTHOR + ADMIN + SYSADMIN + AUTHOR ADMIN + + + + + + Authoring Update + /authoring.do + + + AUTHOR + AUTHOR ADMIN + SYSADMIN + + + + + + Staff Content + /monitoring.do + + + MONITOR + TEACHER + + + + + + + Download Files + /download/ + + + AUTHOR + MONITOR + TEACHER + ADMIN + SYSADMIN + AUTHOR ADMIN + + + + + + 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 + + + + Can create/modify a learning design and edit default tool content + AUTHOR ADMIN + Index: lams_tool_wookie/conf/xdoclet/web-settings.xml =================================================================== diff -u --- lams_tool_wookie/conf/xdoclet/web-settings.xml (revision 0) +++ lams_tool_wookie/conf/xdoclet/web-settings.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,24 @@ + + + + javax.servlet.jsp.jstl.fmt.localizationContext + org.lamsfoundation.lams.tool.wookie.ApplicationResources + + + + contextClass + org.jboss.spring.factory.VFSXmlWebApplicationContext + + + contextConfigLocation + classpath:/org/lamsfoundation/lams/tool/wookie/dbupdates/autopatchContext.xml + + + locatorFactorySelector + classpath:/org/lamsfoundation/lams/beanRefContext.xml + + + parentContextKey + context.central + + Index: lams_tool_wookie/db/sql/activity_insert.sql =================================================================== diff -u --- lams_tool_wookie/db/sql/activity_insert.sql (revision 0) +++ lams_tool_wookie/db/sql/activity_insert.sql (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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 +, 'Wookie Tool' +, 'Wookie 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/lawook10/images/icon_wookie.swf' +, NULL +, NULL +, NULL +, 'org.lamsfoundation.lams.tool.wookie.ApplicationResources' +) Index: lams_tool_wookie/db/sql/create_lams_tool_wookie.sql =================================================================== diff -u --- lams_tool_wookie/db/sql/create_lams_tool_wookie.sql (revision 0) +++ lams_tool_wookie/db/sql/create_lams_tool_wookie.sql (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,63 @@ +-- CVS ID: $Id$ + +SET FOREIGN_KEY_CHECKS=0; +drop table if exists tl_lawook10_attachment; +drop table if exists tl_lawook10_wookie; +drop table if exists tl_lawook10_session; +drop table if exists tl_lawook10_user; +drop table if exists tl_lawook10_configuration; +create table tl_lawook10_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, wookie_uid bigint, primary key (uid))TYPE=InnoDB; +create table tl_lawook10_wookie (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, reflect_on_activity bit, allow_view_others_images bit, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, tool_content_id bigint, image_file_name text, image_width bigint, image_height bigint, reflect_instructions text, primary key (uid))TYPE=InnoDB; +create table tl_lawook10_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), wookie_uid bigint, primary key (uid))TYPE=InnoDB; +create table tl_lawook10_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, wookie_session_uid bigint, entry_uid bigint, image_file_name text, imageHeight bigint, imageWidth bigint, imageHidden bit, primary key (uid))TYPE=InnoDB; +create table tl_lawook10_configuration (uid bigint not null auto_increment, config_key varchar(30) unique, config_value text, primary key (uid))TYPE=InnoDB; +alter table tl_lawook10_attachment add index FK951F889ACB8ADA74 (wookie_uid), add constraint FK951F889ACB8ADA74 foreign key (wookie_uid) references tl_lawook10_wookie (uid); +alter table tl_lawook10_session add index FKE5C05E7FCB8ADA74 (wookie_uid), add constraint FKE5C05E7FCB8ADA74 foreign key (wookie_uid) references tl_lawook10_wookie (uid); +alter table tl_lawook10_user add index FK9A39C08236E23005 (wookie_session_uid), add constraint FK9A39C08236E23005 foreign key (wookie_session_uid) references tl_lawook10_session (uid); + +-- Inserting the required config item into the config table +-- Currently supported languages for wookie +INSERT INTO tl_lawook10_configuration ( + config_key, + config_value +) +VALUES( + "LanguageCSV", + "en,es,fr,de,it,ru,ro,zh-cn,pt-br,sv,pl,th" +); + + +INSERT INTO tl_lawook10_wookie ( + title, + instructions, + online_instructions, + offline_instructions, + tool_content_id, + run_offline, + lock_on_finished, + content_in_use, + define_later, + reflect_on_activity, + allow_view_others_images, + image_width, + image_height, + image_file_name + +) +VALUES( + "Wookie", + "Instructions", + "", + "", + ${default_content_id}, + 0, + 0, + 0, + 0, + 0, + 1, + 400, + 450, + "blank.jpg" +); + Index: lams_tool_wookie/db/sql/db_version_insert.sql =================================================================== diff -u --- lams_tool_wookie/db/sql/db_version_insert.sql (revision 0) +++ lams_tool_wookie/db/sql/db_version_insert.sql (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,2 @@ +-- $Id$ +INSERT INTO patches VALUES ('@signature@', '@tool_version@', NOW(), 'F'); Index: lams_tool_wookie/db/sql/drop_lams_tool_wookie.sql =================================================================== diff -u --- lams_tool_wookie/db/sql/drop_lams_tool_wookie.sql (revision 0) +++ lams_tool_wookie/db/sql/drop_lams_tool_wookie.sql (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,14 @@ +-- CVS ID: $Id$ + +SET FOREIGN_KEY_CHECKS=0; +DROP TABLE IF EXISTS tl_lawook10_user; +DROP TABLE IF EXISTS tl_lawook10_attachment; +DROP TABLE IF EXISTS tl_lawook10_session; +DROP TABLE IF EXISTS tl_lawook10_wookie; +DROP TABLE IF EXISTS tl_lawook10_configuration; +SET FOREIGN_KEY_CHECKS=1; + + + + + Index: lams_tool_wookie/db/sql/library_insert.sql =================================================================== diff -u --- lams_tool_wookie/db/sql/library_insert.sql (revision 0) +++ lams_tool_wookie/db/sql/library_insert.sql (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,16 @@ +-- CVS ID: $Id$ + +INSERT INTO lams_learning_library +( +description, +title, +valid_flag, +create_date_time +) +VALUES +( +'Wookie Tool', +'Wookie', +0, +NOW() +) Index: lams_tool_wookie/db/sql/table-schema.sql =================================================================== diff -u --- lams_tool_wookie/db/sql/table-schema.sql (revision 0) +++ lams_tool_wookie/db/sql/table-schema.sql (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,16 @@ +alter table tl_lawook10_attachment drop foreign key FK951F889ACB8ADA74; +alter table tl_lawook10_session drop foreign key FKE5C05E7FCB8ADA74; +alter table tl_lawook10_user drop foreign key FK9A39C08236E23005; +drop table if exists tl_lawook10_attachment; +drop table if exists tl_lawook10_configuration; +drop table if exists tl_lawook10_wookie; +drop table if exists tl_lawook10_session; +drop table if exists tl_lawook10_user; +create table tl_lawook10_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, wookie_uid bigint, primary key (uid)); +create table tl_lawook10_configuration (uid bigint not null auto_increment, config_key varchar(30) unique, config_value text, primary key (uid)); +create table tl_lawook10_wookie (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, reflect_on_activity bit, allow_view_others_images bit, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, tool_content_id bigint, image_file_name text, image_width bigint, image_height bigint, reflect_instructions text, primary key (uid)); +create table tl_lawook10_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, session_id bigint, session_name varchar(250), wookie_uid bigint, primary key (uid)); +create table tl_lawook10_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), login_name varchar(255), first_name varchar(255), finishedActivity bit, wookie_session_uid bigint, entry_uid bigint, image_file_name text, imageHeight bigint, imageWidth bigint, imageHidden bit, primary key (uid)); +alter table tl_lawook10_attachment add index FK951F889ACB8ADA74 (wookie_uid), add constraint FK951F889ACB8ADA74 foreign key (wookie_uid) references tl_lawook10_wookie (uid); +alter table tl_lawook10_session add index FKE5C05E7FCB8ADA74 (wookie_uid), add constraint FKE5C05E7FCB8ADA74 foreign key (wookie_uid) references tl_lawook10_wookie (uid); +alter table tl_lawook10_user add index FK9A39C08236E23005 (wookie_session_uid), add constraint FK9A39C08236E23005 foreign key (wookie_session_uid) references tl_lawook10_session (uid); Index: lams_tool_wookie/db/sql/tool_insert.sql =================================================================== diff -u --- lams_tool_wookie/db/sql/tool_insert.sql (revision 0) +++ lams_tool_wookie/db/sql/tool_insert.sql (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,62 @@ +-- 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, +modified_date_time, +supports_outputs, +admin_url +) +VALUES +( +'lawook10', +'wookieService', +'Wookie', +'Wookie', +'wookie', +'@tool_version@', +NULL, +NULL, +0, +2, +1, +'tool/lawook10/learning.do?mode=learner', +'tool/lawook10/learning.do?mode=author', +'tool/lawook10/learning.do?mode=teacher', +'tool/lawook10/authoring.do', +'tool/lawook10/monitoring.do', +'tool/lawook10/authoring.do?mode=teacher', +'tool/lawook10/exportPortfolio?mode=learner', +'tool/lawook10/exportPortfolio?mode=teacher', +'tool/lawook10/contribute.do', +'tool/lawook10/moderate.do', +'http://wiki.lamsfoundation.org/display/lamsdocs/lawook10', +'org.lamsfoundation.lams.tool.wookie.ApplicationResources', +NOW(), +NOW(), +0, +'tool/lawook10/lawook10admin.do' +) Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieAttachmentDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieAttachmentDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieAttachmentDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; + +/** + * DAO for accessing the WookieAttachment objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface IWookieAttachmentDAO extends IBaseDAO { + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieConfigItemDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieConfigItemDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieConfigItemDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,11 @@ +package org.lamsfoundation.lams.tool.wookie.dao; + + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.wookie.model.WookieConfigItem; + +public interface IWookieConfigItemDAO extends IBaseDAO +{ + void saveOrUpdate(WookieConfigItem toConfig); + public WookieConfigItem getConfigItemByKey(final String configKey); +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,44 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.wookie.model.Wookie; + +/** + * DAO for accessing the Wookie objects - interface defining methods to be implemented by the Hibernate or other + * implementation. + */ +public interface IWookieDAO extends IBaseDAO { + + Wookie getByContentId(Long toolContentId); + + void saveOrUpdate(Wookie toContent); + + void deleteInstructionFile(Long toolContentId, Long uuid, Long versionId, String type); + + void releaseFromCache(Object o); + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieSessionDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieSessionDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieSessionDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.wookie.model.WookieSession; + +/** + * DAO for accessing the WookieSession objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface IWookieSessionDAO extends IBaseDAO{ + + void saveOrUpdate(WookieSession session); + + WookieSession getBySessionId(Long toolSessionId); + + void deleteBySessionID(Long toolSessionID); +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieUserDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieUserDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/IWookieUserDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,60 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.wookie.model.WookieUser; + +/** + * DAO for accessing the WookieUser objects - interface defining + * methods to be implemented by the Hibernate or other implementation. + */ +public interface IWookieUserDAO extends IBaseDAO{ + /** + * + * @param userId + * @param toolSessionId + * @return + */ + WookieUser getByUserIdAndSessionId(Long userId, Long toolSessionId); + + void saveOrUpdate(WookieUser wookieUser); + + /** + * + * @param loginName + * @param sessionID + * @return + */ + WookieUser getByLoginNameAndSessionId(String loginName, Long toolSessionId); + + + /** + * + * @param uid + * @return + */ + WookieUser getByUID(Long uid); +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieAttachmentDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieAttachmentDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieAttachmentDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.dao.hibernate; + +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.wookie.dao.IWookieAttachmentDAO; + +/** + * DAO for accessing the WookieAttachment objects - Hibernate specific code. + */ +public class WookieAttachmentDAO extends BaseDAO implements IWookieAttachmentDAO { + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieConfigItemDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieConfigItemDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieConfigItemDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,27 @@ +package org.lamsfoundation.lams.tool.wookie.dao.hibernate; + +import org.hibernate.HibernateException; +import org.hibernate.Session; +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.wookie.dao.IWookieConfigItemDAO; +import org.lamsfoundation.lams.tool.wookie.model.WookieConfigItem; +import org.springframework.orm.hibernate3.HibernateCallback; + +public class WookieConfigItemDAO extends BaseDAO implements IWookieConfigItemDAO { + private static final String LOAD_CONFIG_ITEM_BY_KEY = "from WookieConfigItem configuration" + + " where configuration.configKey=:key"; + + public WookieConfigItem getConfigItemByKey(final String configKey) { + return (WookieConfigItem) getHibernateTemplate().execute(new HibernateCallback() { + public Object doInHibernate(Session session) throws HibernateException { + return session.createQuery(LOAD_CONFIG_ITEM_BY_KEY).setString("key", configKey).uniqueResult(); + } + }); + + } + + public void saveOrUpdate(WookieConfigItem mdlForumConfigItem) { + this.getHibernateTemplate().saveOrUpdate(mdlForumConfigItem); + this.getHibernateTemplate().flush(); + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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 as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.dao.hibernate; + +import java.util.List; + +import org.hibernate.FlushMode; +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.wookie.dao.IWookieDAO; +import org.lamsfoundation.lams.tool.wookie.model.Wookie; +import org.lamsfoundation.lams.tool.wookie.model.WookieAttachment; +import org.springframework.orm.hibernate3.HibernateTemplate; + +/** + * DAO for accessing the Wookie objects - Hibernate specific code. + */ +public class WookieDAO extends BaseDAO implements IWookieDAO { + + private static final String FIND_FORUM_BY_CONTENTID = "from Wookie wookie where wookie.toolContentId=?"; + + private static final String FIND_INSTRUCTION_FILE = "from " + WookieAttachment.class.getName() + + " as i where tool_content_id=? and i.file_uuid=? and i.file_version_id=? and i.file_type=?"; + + @SuppressWarnings("unchecked") + public Wookie getByContentId(Long toolContentId) { + List list = getHibernateTemplate().find(WookieDAO.FIND_FORUM_BY_CONTENTID, toolContentId); + if (list != null && list.size() > 0) { + return (Wookie) list.get(0); + } else { + return null; + } + } + + public void saveOrUpdate(Wookie wookie) { + this.getHibernateTemplate().saveOrUpdate(wookie); + this.getHibernateTemplate().flush(); + } + + @SuppressWarnings("unchecked") + 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(WookieDAO.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) { + WookieAttachment file = (WookieAttachment) list.get(0); + this.getSession().setFlushMode(FlushMode.AUTO); + templ.delete(file); + templ.flush(); + } + } + + } + + public void releaseFromCache(Object o) { + getSession().evict(o); + + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieSessionDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieSessionDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieSessionDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.dao.hibernate; + +import java.util.List; + +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.wookie.dao.IWookieSessionDAO; +import org.lamsfoundation.lams.tool.wookie.model.WookieSession; + +/** + * DAO for accessing the WookieSession objects - Hibernate specific code. + */ +public class WookieSessionDAO extends BaseDAO implements IWookieSessionDAO { + + public static final String SQL_QUERY_FIND_BY_SESSION_ID = "from " + + WookieSession.class.getName() + " where session_id=?"; + + public void saveOrUpdate(WookieSession session) { + this.getHibernateTemplate().saveOrUpdate(session); + this.getHibernateTemplate().flush(); + } + + @SuppressWarnings("unchecked") + public WookieSession getBySessionId(Long toolSessionId) { + List list = this.getHibernateTemplate().find( + SQL_QUERY_FIND_BY_SESSION_ID, toolSessionId); + if (list == null || list.isEmpty()) + return null; + return (WookieSession) list.get(0); + } + + public void deleteBySessionID(Long toolSessionID) { + WookieSession session = getBySessionId(toolSessionID); + if(session != null){ + this.getHibernateTemplate().delete(session); + this.getHibernateTemplate().flush(); + } + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieUserDAO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieUserDAO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dao/hibernate/WookieUserDAO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,91 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.dao.hibernate; + +import java.util.List; + +import org.lamsfoundation.lams.dao.hibernate.BaseDAO; +import org.lamsfoundation.lams.tool.wookie.dao.IWookieUserDAO; +import org.lamsfoundation.lams.tool.wookie.model.WookieUser; + +/** + * DAO for accessing the WookieUser objects - Hibernate specific code. + */ +public class WookieUserDAO extends BaseDAO implements IWookieUserDAO { + + public static final String SQL_QUERY_FIND_BY_USER_ID_SESSION_ID = "from " + + WookieUser.class.getName() + " as f" + + " where user_id=? and f.wookieSession.sessionId=?"; + + public static final String SQL_QUERY_FIND_BY_LOGIN_NAME_SESSION_ID = "from " + + WookieUser.class.getName() + + " as f where login_name=? and f.wookieSession.sessionId=?"; + + private static final String SQL_QUERY_FIND_BY_UID = "from " + + WookieUser.class.getName() + " where uid=?"; + + @SuppressWarnings("unchecked") + public WookieUser 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 (WookieUser) list.get(0); + } + + @SuppressWarnings("unchecked") + public WookieUser 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 (WookieUser) list.get(0); + + } + + public void saveOrUpdate(WookieUser wookieUser) { + this.getHibernateTemplate().saveOrUpdate(wookieUser); + this.getHibernateTemplate().flush(); + } + + @SuppressWarnings("unchecked") + public WookieUser getByUID(Long uid) { + List list = this.getHibernateTemplate().find(SQL_QUERY_FIND_BY_UID, + new Object[] { uid }); + + if (list == null || list.isEmpty()) + return null; + + return (WookieUser) list.get(0); + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dbupdates/autopatchContext.xml =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dbupdates/autopatchContext.xml (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dbupdates/autopatchContext.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,11 @@ + + + + + + + + + + + Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/NotebookEntryDTO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/NotebookEntryDTO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/NotebookEntryDTO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,56 @@ +package org.lamsfoundation.lams.tool.wookie.dto; + +import java.util.Date; + +import org.lamsfoundation.lams.notebook.model.NotebookEntry; + +public class NotebookEntryDTO { + + private Long uid; + + private String entry; + + private Date createDate; + + private Date lastModified; + + public NotebookEntryDTO(NotebookEntry entry) { + this.uid = entry.getUid(); + this.entry = entry.getEntry(); + this.createDate = entry.getCreateDate(); + this.lastModified = entry.getLastModified(); + } + + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public String getEntry() { + return entry; + } + + public void setEntry(String entry) { + this.entry = entry; + } + + public Date getLastModified() { + return lastModified; + } + + public void setLastModified(Date lastModified) { + this.lastModified = lastModified; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WidgetDefinition.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WidgetDefinition.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WidgetDefinition.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,73 @@ +/**************************************************************** + * Copyright (C) 2008 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.wookie.dto; + +/** + * This class represents an instance of a widget as read from the wookie + * "advertise" page + * + * @author lfoxton + * + */ +public class WidgetDefinition { + public String identifier; + public String title; + public String description; + public String icon; + + public WidgetDefinition() {} + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } +} + \ No newline at end of file Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieAttachmentDTO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieAttachmentDTO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieAttachmentDTO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.wookie.dto; + +import java.util.Date; + +import org.lamsfoundation.lams.tool.wookie.model.WookieAttachment; + +public class WookieAttachmentDTO implements Comparable { + + public WookieAttachmentDTO(WookieAttachment 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) { + WookieAttachmentDTO toAttachment = (WookieAttachmentDTO) o; + int returnValue = this.createDate.compareTo(((WookieAttachmentDTO) o) + .getCreateDate()); + + if (returnValue == 0) { + returnValue = this.uid.compareTo(toAttachment.getUid()); + } + return returnValue; + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieDTO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieDTO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieDTO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,260 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.wookie.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.wookie.model.Wookie; +import org.lamsfoundation.lams.tool.wookie.model.WookieAttachment; +import org.lamsfoundation.lams.tool.wookie.model.WookieSession; + +public class WookieDTO { + + private static Logger logger = Logger.getLogger(WookieDTO.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 boolean lockOnFinish; + + public Set onlineInstructionsFiles; + + public Set offlineInstructionsFiles; + + public Set sessionDTOs = new TreeSet(); + + public Long currentTab; + + private String imageFileName; + + private String reflectInstructions; + + boolean allowViewOthersImages; + + private Long imageWidth; + + private Long imageHeight; + + /* Constructors */ + public WookieDTO() { + } + + public WookieDTO(Wookie wookie) { + this.toolContentId = wookie.getToolContentId(); + this.title = wookie.getTitle(); + this.instructions = wookie.getInstructions(); + this.onlineInstructions = wookie.getOnlineInstructions(); + this.offlineInstructions = wookie.getOfflineInstructions(); + this.contentInUse = wookie.isContentInUse(); + this.reflectOnActivity = wookie.isReflectOnActivity(); + this.lockOnFinish = wookie.isLockOnFinished(); + this.imageFileName = wookie.getImageFileName(); + this.reflectInstructions = wookie.getReflectInstructions(); + this.allowViewOthersImages = wookie.isAllowViewOthersImages(); + + this.onlineInstructionsFiles = new TreeSet(); + this.offlineInstructionsFiles = new TreeSet(); + + for (Iterator i = wookie.getWookieAttachments().iterator(); i.hasNext();) { + WookieAttachment att = (WookieAttachment) i.next(); + if (att.getFileType().equals(IToolContentHandler.TYPE_OFFLINE)) { + WookieAttachmentDTO attDTO = new WookieAttachmentDTO(att); + offlineInstructionsFiles.add(attDTO); + } else if (att.getFileType().equals(IToolContentHandler.TYPE_ONLINE)) { + WookieAttachmentDTO attDTO = new WookieAttachmentDTO(att); + onlineInstructionsFiles.add(attDTO); + } else { + // something is wrong. Ignore file, log error + logger.error("File with uid " + att.getFileUuid() + " contains invalid fileType: " + att.getFileType()); + } + } + + for (Iterator iter = wookie.getWookieSessions().iterator(); iter.hasNext();) { + WookieSession session = (WookieSession) iter.next(); + WookieSessionDTO sessionDTO = new WookieSessionDTO(session); + + sessionDTOs.add(sessionDTO); + } + } + + /* Getters / Setters */ + public Set getSessionDTOs() { + return sessionDTOs; + } + + public void setSessionDTOs(Set sessionDTOs) { + this.sessionDTOs = sessionDTOs; + } + + public String getInstructions() { + return instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + public String getOfflineInstructions() { + return offlineInstructions; + } + + public void setOfflineInstructions(String offlineInstructions) { + this.offlineInstructions = offlineInstructions; + } + + public Set getOfflineInstructionsFiles() { + return offlineInstructionsFiles; + } + + public void setOfflineInstructionsFiles(Set offlineInstructionsFiles) { + this.offlineInstructionsFiles = offlineInstructionsFiles; + } + + public String getOnlineInstructions() { + return onlineInstructions; + } + + public void setOnlineInstructions(String onlineInstructions) { + this.onlineInstructions = onlineInstructions; + } + + public Set getOnlineInstructionsFiles() { + return onlineInstructionsFiles; + } + + public void setOnlineInstructionsFiles(Set onlineInstructionsFiles) { + this.onlineInstructionsFiles = onlineInstructionsFiles; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Long getToolContentId() { + return toolContentId; + } + + public void setToolContentId(Long toolContentID) { + this.toolContentId = toolContentID; + } + + public Boolean getContentInUse() { + return contentInUse; + } + + public void setContentInUse(Boolean contentInUse) { + this.contentInUse = contentInUse; + } + + public boolean isReflectOnActivity() { + return reflectOnActivity; + } + + public void setReflectOnActivity(boolean reflectOnActivity) { + this.reflectOnActivity = reflectOnActivity; + } + + public boolean isLockOnFinish() { + return lockOnFinish; + } + + public void setLockOnFinish(boolean lockOnFinish) { + this.lockOnFinish = lockOnFinish; + } + + public Long getCurrentTab() { + return currentTab; + } + + public void setCurrentTab(Long currentTab) { + this.currentTab = currentTab; + } + + public String getImageFileName() { + return imageFileName; + } + + public void getImageFileName(String imageFileName) { + this.imageFileName = imageFileName; + } + + public void setImageFileName(String imageFileName) { + this.imageFileName = imageFileName; + } + + public String getReflectInstructions() { + return reflectInstructions; + } + + public void setReflectInstructions(String reflectInstructions) { + this.reflectInstructions = reflectInstructions; + } + + public boolean isAllowViewOthersImages() { + return allowViewOthersImages; + } + + public void setAllowViewOthersImages(boolean allowViewOthersImages) { + this.allowViewOthersImages = allowViewOthersImages; + } + + public Long getImageWidth() { + return imageWidth; + } + + public void setImageWidth(Long imageWidth) { + this.imageWidth = imageWidth; + } + + public Long getImageHeight() { + return imageHeight; + } + + public void setImageHeight(Long imageHeight) { + this.imageHeight = imageHeight; + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieSessionDTO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieSessionDTO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieSessionDTO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,116 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.wookie.dto; + +import java.util.Iterator; +import java.util.Set; +import java.util.TreeSet; + +import org.lamsfoundation.lams.tool.wookie.model.WookieSession; +import org.lamsfoundation.lams.tool.wookie.model.WookieUser; + +public class WookieSessionDTO implements Comparable { + + Long sessionID; + + String sessionName; + + Set userDTOs = new TreeSet(); + + int numberOfLearners; + + int numberOfFinishedLearners;; + + public WookieSessionDTO(WookieSession session) { + this.sessionID = session.getSessionId(); + this.sessionName = session.getSessionName(); + + numberOfFinishedLearners = 0; + for (Iterator iterator = session.getWookieUsers().iterator(); iterator.hasNext();) { + WookieUser user = (WookieUser) iterator.next(); + WookieUserDTO userDTO = new WookieUserDTO(user); + if (userDTO.getEntryUID() != null) { + numberOfFinishedLearners++; + } + userDTOs.add(userDTO); + } + + numberOfLearners = userDTOs.size(); + + } + + public WookieSessionDTO() {} + + 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; + WookieSessionDTO toSession = (WookieSessionDTO)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 wookieUsers) { + this.userDTOs = wookieUsers; + } + + public int getNumberOfLearners() { + return numberOfLearners; + } + + public void setNumberOfLearners(int numberOfLearners) { + this.numberOfLearners = numberOfLearners; + } + + public int getNumberOfFinishedLearners() { + return numberOfFinishedLearners; + } + + public void setNumberOfFinishedLearners(int numberOfFinishedLearners) { + this.numberOfFinishedLearners = numberOfFinishedLearners; + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieUserDTO.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieUserDTO.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/dto/WookieUserDTO.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,226 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.wookie.dto; + +import org.lamsfoundation.lams.tool.wookie.model.WookieUser; + +public class WookieUserDTO implements Comparable{ + + public Long uid; + + public Long userId; + + public String loginName; + + public String firstName; + + public String lastName; + + public boolean finishedActivity; + + public String notebookEntry; + + public Long entryUID; + + public String imageFileName; + + public boolean finishedReflection; + + private Long imageHeight; + + private Long imageWidth; + + private long imageThumbnailWidth; + + private long imageThumbnailHeight; + + private boolean imageHidden; + + public WookieUserDTO(WookieUser user) { + this.uid = user.getUid(); + this.loginName = user.getLoginName(); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + this.finishedActivity = user.isFinishedActivity(); + this.entryUID = user.getEntryUID(); + this.imageFileName = user.getImageFileName(); + this.userId = user.getUserId(); + this.imageHeight = user.getImageHeight(); + this.imageWidth = user.getImageWidth(); + this.imageHidden = user.isImageHidden(); + setThumbnailDimensions(); + } + + public int compareTo(Object o) { + int returnValue; + WookieUserDTO toUser = (WookieUserDTO)o; + returnValue = this.lastName.compareTo(toUser.lastName); + if (returnValue == 0) { + returnValue = this.uid.compareTo(toUser.uid); + } + return returnValue; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public String getNotebookEntry() { + return notebookEntry; + } + + public void setNotebookEntry(String notebookEntry) { + this.notebookEntry = notebookEntry; + } + + public Long getEntryUID() { + return entryUID; + } + + public void setEntryUID(Long entryUID) { + this.entryUID = entryUID; + } + + public boolean isFinishedActivity() { + return finishedActivity; + } + + public void setFinishedActivity(boolean finishedActivity) { + this.finishedActivity = finishedActivity; + } + + public String getImageFileName() { + return imageFileName; + } + + public void setImageFileName(String imageFileName) { + this.imageFileName = imageFileName; + } + + public boolean isFinishedReflection() { + return finishedReflection; + } + + public void setFinishedReflection(boolean finishedReflection) { + this.finishedReflection = finishedReflection; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getImageHeight() { + return imageHeight; + } + + public void setImageHeight(Long imageHeight) { + this.imageHeight = imageHeight; + } + + public Long getImageWidth() { + return imageWidth; + } + + public void setImageWidth(Long imageWidth) { + this.imageWidth = imageWidth; + } + + public long getImageThumbnailWidth() { + return imageThumbnailWidth; + } + + public void setImageThumbnailWidth(long imageThumbnailWidth) { + this.imageThumbnailWidth = imageThumbnailWidth; + } + + public long getImageThumbnailHeight() { + return imageThumbnailHeight; + } + + public void setImageThumbnailHeight(long imageThumbnailHeight) { + this.imageThumbnailHeight = imageThumbnailHeight; + } + + public boolean isImageHidden() { + return imageHidden; + } + + public void setImageHidden(boolean imageHidden) { + this.imageHidden = imageHidden; + } + + // set thumbnail dimensions with a maximum of 100 width or height + public void setThumbnailDimensions() + { + if (imageWidth != null && imageHeight != null) + if (imageWidth >= imageHeight) + { + this.imageThumbnailWidth = 100; + double temp = 100.0 / imageWidth.longValue(); + this.imageThumbnailHeight = (new Double(imageHeight.longValue() * temp)).longValue(); + + } + else + { + this.imageThumbnailHeight = 100; + double temp = 100.0 / imageHeight.longValue(); + this.imageThumbnailWidth = (new Double(imageWidth.longValue() * temp)).longValue(); + } + + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/Wookie.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/Wookie.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/Wookie.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,491 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.model; + +import java.util.Date; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; +import org.lamsfoundation.lams.tool.wookie.service.WookieService; + +/** + * @hibernate.class table="tl_lawook10_wookie" + */ + +public class Wookie implements java.io.Serializable, Cloneable { + + /** + * + */ + private static final long serialVersionUID = 579733009969321015L; + + static Logger log = Logger.getLogger(WookieService.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 boolean allowViewOthersImages; + + private String reflectInstructions; + + private String onlineInstructions; + + private String offlineInstructions; + + private boolean contentInUse; + + private boolean defineLater; + + private Long toolContentId; + + private String imageFileName; // Image uploaded for wookie + + private Long imageWidth; + + private Long imageHeight; + + private Set wookieAttachments; + + private Set wookieSessions; + + // *********** NON Persisit fields + private IToolContentHandler toolContentHandler; + + // Constructors + + /** default constructor */ + public Wookie() { + } + + /** full constructor */ + public Wookie(Date createDate, Date updateDate, Long createBy, String title, String instructions, + boolean runOffline, boolean lockOnFinished, boolean filteringEnabled, String filterKeywords, + String onlineInstructions, String offlineInstructions, boolean contentInUse, boolean defineLater, + Long toolContentId, String reflectInstructions, Set wookieAttachments, + Set wookieSessions, String imageFileName, Long imageWidth, Long imageHeight, boolean allowViewOthersImages) { + this.createDate = createDate; + this.updateDate = updateDate; + this.createBy = createBy; + this.title = title; + this.instructions = instructions; + this.runOffline = runOffline; + this.lockOnFinished = lockOnFinished; + this.onlineInstructions = onlineInstructions; + this.offlineInstructions = offlineInstructions; + this.contentInUse = contentInUse; + this.defineLater = defineLater; + this.toolContentId = toolContentId; + this.wookieAttachments = wookieAttachments; + this.wookieSessions = wookieSessions; + this.imageFileName = imageFileName; + this.reflectInstructions = reflectInstructions; + this.imageHeight = imageHeight; + this.imageWidth = imageWidth; + this.allowViewOthersImages = allowViewOthersImages; + } + + // Property accessors + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + * + */ + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * @hibernate.property column="create_date" + * + */ + + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + /** + * @hibernate.property column="update_date" + * + */ + + public Date getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + /** + * @hibernate.property column="create_by" length="20" + * + */ + + public Long getCreateBy() { + return createBy; + } + + public void setCreateBy(Long createBy) { + this.createBy = createBy; + } + + /** + * @hibernate.property column="title" length="255" + * + */ + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + /** + * @hibernate.property column="instructions" length="65535" + * + */ + + public String getInstructions() { + return instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + /** + * @hibernate.property column="run_offline" length="1" + * + */ + + public boolean isRunOffline() { + return runOffline; + } + + public void setRunOffline(boolean runOffline) { + this.runOffline = runOffline; + } + + /** + * @hibernate.property column="lock_on_finished" length="1" + * + */ + + public boolean isLockOnFinished() { + return lockOnFinished; + } + + public void setLockOnFinished(boolean lockOnFinished) { + this.lockOnFinished = lockOnFinished; + } + + /** + * @hibernate.property column="reflect_on_activity" length="1" + */ + public boolean isReflectOnActivity() { + return reflectOnActivity; + } + + public void setReflectOnActivity(boolean reflectOnActivity) { + this.reflectOnActivity = reflectOnActivity; + } + + /** + * @hibernate.property column="allow_view_others_images" length="1" + */ + public boolean isAllowViewOthersImages() { + return allowViewOthersImages; + } + + public void setAllowViewOthersImages(boolean allowViewOthersImages) { + this.allowViewOthersImages = allowViewOthersImages; + } + + /** + * @hibernate.property column="online_instructions" length="65535" + * + */ + public String getOnlineInstructions() { + return onlineInstructions; + } + + public void setOnlineInstructions(String onlineInstructions) { + this.onlineInstructions = onlineInstructions; + } + + /** + * @hibernate.property column="offline_instructions" length="65535" + * + */ + + public String getOfflineInstructions() { + return offlineInstructions; + } + + public void setOfflineInstructions(String offlineInstructions) { + this.offlineInstructions = offlineInstructions; + } + + /** + * @hibernate.property column="content_in_use" length="1" + * + */ + + public boolean isContentInUse() { + return contentInUse; + } + + public void setContentInUse(boolean contentInUse) { + this.contentInUse = contentInUse; + } + + /** + * @hibernate.property column="define_later" length="1" + * + */ + + public boolean isDefineLater() { + return defineLater; + } + + public void setDefineLater(boolean defineLater) { + this.defineLater = defineLater; + } + + /** + * @hibernate.property column="tool_content_id" length="20" + * + */ + + public Long getToolContentId() { + return toolContentId; + } + + public void setToolContentId(Long toolContentId) { + this.toolContentId = toolContentId; + } + + + + /** + * @hibernate.set lazy="true" inverse="false" cascade="all-delete-orphan" + * @hibernate.collection-key column="wookie_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.wookie.model.WookieAttachment" + * + */ + + public Set getWookieAttachments() { + return wookieAttachments; + } + + public void setWookieAttachments(Set wookieAttachments) { + this.wookieAttachments = wookieAttachments; + } + + /** + * @hibernate.set lazy="true" inverse="true" cascade="none" + * @hibernate.collection-key column="wookie_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.wookie.model.WookieSession" + * + */ + + public Set getWookieSessions() { + return wookieSessions; + } + + public void setWookieSessions(Set wookieSessions) { + this.wookieSessions = wookieSessions; + } + + /** + * toString + * + * @return String + */ + @Override + 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(); + } + + @Override + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (other == null) { + return false; + } + if (!(other instanceof Wookie)) { + return false; + } + Wookie castOther = (Wookie) other; + + return this.getUid() == castOther.getUid() || this.getUid() != null && castOther.getUid() != null + && this.getUid().equals(castOther.getUid()); + } + + @Override + public int hashCode() { + int result = 17; + result = 37 * result + (getUid() == null ? 0 : this.getUid().hashCode()); + return result; + } + + public static Wookie newInstance(Wookie fromContent, Long toContentId, IToolContentHandler wookieToolContentHandler) { + Wookie toContent = new Wookie(); + fromContent.toolContentHandler = wookieToolContentHandler; + toContent = (Wookie) fromContent.clone(); + toContent.setToolContentId(toContentId); + toContent.setCreateDate(new Date()); + return toContent; + } + + @Override + protected Object clone() { + + Wookie wookie = null; + try { + wookie = (Wookie) super.clone(); + wookie.setUid(null); + + if (wookieAttachments != null) { + // create a copy of the attachments + Iterator iter = wookieAttachments.iterator(); + Set set = new HashSet(); + while (iter.hasNext()) { + WookieAttachment originalFile = (WookieAttachment) iter.next(); + WookieAttachment newFile = (WookieAttachment) originalFile.clone(); + set.add(newFile); + } + wookie.wookieAttachments = set; + } + // create an empty set for the wookieSession + wookie.wookieSessions = new HashSet(); + + } catch (CloneNotSupportedException cnse) { + Wookie.log.error("Error cloning " + Wookie.class); + } + return wookie; + } + + public IToolContentHandler getToolContentHandler() { + return toolContentHandler; + } + + public void setToolContentHandler(IToolContentHandler toolContentHandler) { + this.toolContentHandler = toolContentHandler; + } + + /** + * @hibernate.property column="image_file_name" length="511" + * + */ + + public String getImageFileName() { + return imageFileName; + } + + public void setImageFileName(String imageFileName) { + this.imageFileName = imageFileName; + } + + /** + * @hibernate.property column="image_width" + * + */ + + public Long getImageWidth() { + return imageWidth; + } + + public void setImageWidth(Long imageWidth) { + this.imageWidth = imageWidth; + } + + /** + * @hibernate.property column="image_height" + * + */ + + public Long getImageHeight() { + return imageHeight; + } + + public void setImageHeight(Long imageHeight) { + this.imageHeight = imageHeight; + } + + /** + * @hibernate.property column="reflect_instructions" length="65535" + */ + public String getReflectInstructions() { + return reflectInstructions; + } + + public void setReflectInstructions(String reflectInstructions) { + this.reflectInstructions = reflectInstructions; + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieAttachment.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieAttachment.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieAttachment.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,222 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.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_lawook10_attachment" + * + */ + +public class WookieAttachment implements java.io.Serializable, Cloneable { + + /** + * + */ + private static final long serialVersionUID = 47452859888067500L; + + private static final Logger log = Logger.getLogger(WookieAttachment.class); + + /** + * + */ + private Long uid; + + private Long fileVersionId; + + private String fileType; + + private String fileName; + + private Long fileUuid; + + private Date createDate; + + private Wookie wookie; + + // Constructors + + /** default constructor */ + public WookieAttachment() { + } + + /** Constructor setting up all the properties except for wookie one */ + public WookieAttachment(Long fileVersionId, String fileType, String fileName, Long fileUuid, Date createDate) { + this.fileVersionId = fileVersionId; + this.fileType = fileType; + this.fileName = fileName; + this.fileUuid = fileUuid; + this.createDate = createDate; + } + + // 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="wookie_uid" + * + */ + + public Wookie getWookie() { + return this.wookie; + } + + public void setWookie(Wookie wookie) { + this.wookie = wookie; + } + + /** + * 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 WookieAttachment)) + return false; + + final WookieAttachment genericEntity = (WookieAttachment) 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(); + ((WookieAttachment) obj).setUid(null); + } catch (CloneNotSupportedException e) { + log.error("Failed to clone " + WookieAttachment.class); + } + + return obj; + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieConfigItem.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieConfigItem.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieConfigItem.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,76 @@ +/**************************************************************** + * Copyright (C) 2008 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.wookie.model; + +/** + * @hibernate.class table="tl_lawook10_configuration" + */ +public class WookieConfigItem { + + private static final long serialVersionUID = 930482766653472636L; + + public static final String KEY_LANGUAGE_CSV = "LanguageCSV"; + + Long id; + String configKey; + String configValue; + + public WookieConfigItem() {} + + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + * + */ + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + /** + * @hibernate.property column="config_key" length="30" not-null="false" + * unique="true" + */ + public String getConfigKey() { + return configKey; + } + + public void setConfigKey(String configKey) { + this.configKey = configKey; + } + + /** + * @hibernate.property column="config_value" length="511" not-null="false" + */ + public String getConfigValue() { + return configValue; + } + + public void setConfigValue(String configValue) { + this.configValue = configValue; + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieSession.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieSession.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieSession.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.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_lawook10_session" + */ + +public class WookieSession implements java.io.Serializable { + + private static Logger log = Logger.getLogger(WookieSession.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 Wookie wookie; + + private Set wookieUsers; + + // Constructors + + /** default constructor */ + public WookieSession() { + } + + /** full constructor */ + public WookieSession(Date sessionEndDate, Date sessionStartDate, + Integer status, Long sessionId, String sessionName, Wookie wookie, + Set wookieUsers) { + this.sessionEndDate = sessionEndDate; + this.sessionStartDate = sessionStartDate; + this.status = status; + this.sessionId = sessionId; + this.sessionName = sessionName; + this.wookie = wookie; + this.wookieUsers = wookieUsers; + } + + // 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="wookie_uid" + * + */ + + public Wookie getWookie() { + return this.wookie; + } + + public void setWookie(Wookie wookie) { + this.wookie = wookie; + } + + /** + * @hibernate.set lazy="true" inverse="true" cascade="none" + * @hibernate.collection-key column="wookie_session_uid" + * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.wookie.model.WookieUser" + * + */ + + public Set getWookieUsers() { + return this.wookieUsers; + } + + public void setWookieUsers(Set wookieUsers) { + this.wookieUsers = wookieUsers; + } + + /** + * 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 WookieSession)) + return false; + WookieSession castOther = (WookieSession) 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(){ + + WookieSession session = null; + try{ + session = (WookieSession) super.clone(); + session.wookieUsers = new HashSet(); + } catch (CloneNotSupportedException e) { + log.error("When clone " + WookieSession.class + " failed"); + } + return session; + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieUser.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieUser.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/model/WookieUser.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,271 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.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_lawook10_user" + */ + +public class WookieUser 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 WookieSession wookieSession; + + private boolean finishedActivity; + + private Long entryUID; + + private String imageFileName; + + private Long imageHeight; + + private Long imageWidth; + + private boolean imageHidden; + + // Constructors + + /** default constructor */ + public WookieUser() { + } + + public WookieUser(UserDTO user, WookieSession wookieSession) { + this.userId = new Long(user.getUserID().intValue()); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + this.loginName = user.getLogin(); + this.wookieSession = wookieSession; + this.finishedActivity = false; + } + + /** full constructor */ + public WookieUser(Long userId, String lastName, String firstName, WookieSession wookieSession) { + this.userId = userId; + this.lastName = lastName; + this.firstName = firstName; + this.wookieSession = wookieSession; + } + + // 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 isFinishedActivity() { + return finishedActivity; + } + + public void setFinishedActivity(boolean finishedActivity) { + this.finishedActivity = finishedActivity; + } + + /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="wookie_session_uid" + * + */ + public WookieSession getWookieSession() { + return this.wookieSession; + } + + public void setWookieSession(WookieSession wookieSession) { + this.wookieSession = wookieSession; + } + + /** + * @hibernate.property column="entry_uid" + */ + public Long getEntryUID() { + return entryUID; + } + + public void setEntryUID(Long entryUID) { + this.entryUID = entryUID; + } + + /** + * @hibernate.property column="image_file_name" length="511" + * + */ + + public String getImageFileName() { + return imageFileName; + } + + public void setImageFileName(String imageFileName) { + this.imageFileName = imageFileName; + } + + /** + * @hibernate.property column="image_height + * + */ + public Long getImageHeight() { + return imageHeight; + } + + public void setImageHeight(Long imageHeight) { + this.imageHeight = imageHeight; + } + + /** + * @hibernate.property column="image_width + * + */ + public Long getImageWidth() { + return imageWidth; + } + + public void setImageWidth(Long imageWidth) { + this.imageWidth = imageWidth; + } + + + /** + * @hibernate.property column="image_hidden + * + */ + public boolean isImageHidden() { + return imageHidden; + } + + public void setImageHidden(boolean imageHidden) { + this.imageHidden = imageHidden; + } + + /** + * 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 WookieUser)) + return false; + WookieUser castOther = (WookieUser) 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_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/IWookieService.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/IWookieService.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/IWookieService.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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 as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.service; + +import org.apache.struts.upload.FormFile; +import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.tool.wookie.model.Wookie; +import org.lamsfoundation.lams.tool.wookie.model.WookieAttachment; +import org.lamsfoundation.lams.tool.wookie.model.WookieConfigItem; +import org.lamsfoundation.lams.tool.wookie.model.WookieSession; +import org.lamsfoundation.lams.tool.wookie.model.WookieUser; +import org.lamsfoundation.lams.tool.wookie.util.WookieException; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; + +/** + * Defines the services available to the web layer from the Wookie Service + */ +public interface IWookieService { + /** + * Makes a copy of the default content and assigns it a newContentID + * + * @params newContentID + * @return + */ + public Wookie copyDefaultContent(Long newContentID); + + /** + * Returns an instance of the Wookie tools default content. + * + * @return + */ + public Wookie getDefaultContent(); + + /** + * @param toolSignature + * @return + */ + public Long getDefaultContentIdBySignature(String toolSignature); + + /** + * @param toolContentID + * @return + */ + public Wookie getWookieByContentId(Long toolContentID); + + /** + * @param toolContentId + * @param file + * @param type + * @return + */ + public WookieAttachment uploadFileToContent(Long toolContentId, FormFile file, String type); + + /** + * @param uuid + * @param versionID + */ + public void deleteFromRepository(Long uuid, Long versionID) throws WookieException; + + /** + * @param contentID + * @param uuid + * @param versionID + * @param type + */ + public void deleteInstructionFile(Long contentID, Long uuid, Long versionID, String type); + + /** + * @param wookie + */ + public void saveOrUpdateWookie(Wookie wookie); + + /** + * @param toolSessionId + * @return + */ + public WookieSession getSessionBySessionId(Long toolSessionId); + + /** + * @param wookieSession + */ + public void saveOrUpdateWookieSession(WookieSession wookieSession); + + /** + * + * @param userId + * @param toolSessionId + * @return + */ + public WookieUser getUserByUserIdAndSessionId(Long userId, Long toolSessionId); + + /** + * + * @param uid + * @return + */ + public WookieUser getUserByUID(Long uid); + + /** + * + * @param wookieUser + */ + public void saveOrUpdateWookieUser(WookieUser wookieUser); + + /** + * + * @param user + * @param wookieSession + * @return + */ + public WookieUser createWookieUser(UserDTO user, WookieSession wookieSession); + + /** + * Creates a core notebook entry + * + * @param id + * @param idType + * @param signature + * @param userID + * @param entry + * @return + */ + Long createNotebookEntry(Long id, Integer idType, String signature, Integer userID, String entry); + + /** + * Gets the entry from the database + * + */ + NotebookEntry getEntry(Long sessionId, Integer idType, String signature, Integer userID); + + /** + * Updates an existing notebook entry + * + */ + void updateEntry(NotebookEntry notebookEntry); + + /** + * Helper method to extract file extension from a string + * + * @param fileName + * @return + */ + String getFileExtension(String fileName); + + /** + * Get the wookie config item by key + * + * @param key + * @return + */ + public WookieConfigItem getConfigItem(String key); + + /** + * Save a wookie configItem + * + * @param item + */ + public void saveOrUpdateWookieConfigItem(WookieConfigItem item); + + /** + * Get the wookie URL + * + * @return + */ + public String getWookiURL(); + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieOutputFactory.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieOutputFactory.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieOutputFactory.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,72 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.wookie.service; + +import java.util.List; +import java.util.SortedMap; +import java.util.TreeMap; + +import org.lamsfoundation.lams.tool.OutputFactory; +import org.lamsfoundation.lams.tool.ToolOutput; +import org.lamsfoundation.lams.tool.ToolOutputDefinition; +import org.lamsfoundation.lams.tool.exception.ToolException; + +/** + * Output factory for Wookie tool. Currently it provides only one type of output - the entry that user provided. + * + * @author lfoxton + */ +public class WookieOutputFactory extends OutputFactory { + + /** + * {@inheritDoc} + */ + @Override + public SortedMap getToolOutputDefinitions(Object toolContentObject, int definitionType) + throws ToolException { + SortedMap definitionMap = new TreeMap(); + + return definitionMap; + } + + /** + * Follows {@link WookieService#getToolOutput(List, Long, Long)}. + * + */ + public SortedMap getToolOutput(List names, IWookieService wookieService, + Long toolSessionId, Long learnerId) { + + TreeMap outputs = new TreeMap(); + return outputs; + + } + + public ToolOutput getToolOutput(String name, IWookieService chatService, Long toolSessionId, Long learnerId) { + return null; + } + + + + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieService.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieService.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieService.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,770 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.service; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Date; +import java.util.Hashtable; +import java.util.List; +import java.util.Set; +import java.util.SortedMap; + +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.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.ToolOutput; +import org.lamsfoundation.lams.tool.ToolOutputDefinition; +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.wookie.dao.IWookieAttachmentDAO; +import org.lamsfoundation.lams.tool.wookie.dao.IWookieConfigItemDAO; +import org.lamsfoundation.lams.tool.wookie.dao.IWookieDAO; +import org.lamsfoundation.lams.tool.wookie.dao.IWookieSessionDAO; +import org.lamsfoundation.lams.tool.wookie.dao.IWookieUserDAO; +import org.lamsfoundation.lams.tool.wookie.model.Wookie; +import org.lamsfoundation.lams.tool.wookie.model.WookieAttachment; +import org.lamsfoundation.lams.tool.wookie.model.WookieConfigItem; +import org.lamsfoundation.lams.tool.wookie.model.WookieSession; +import org.lamsfoundation.lams.tool.wookie.model.WookieUser; +import org.lamsfoundation.lams.tool.wookie.util.WookieConstants; +import org.lamsfoundation.lams.tool.wookie.util.WookieException; +import org.lamsfoundation.lams.tool.wookie.util.WookieToolContentHandler; +import org.lamsfoundation.lams.tool.service.ILamsToolService; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.FileUtil; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.util.audit.IAuditService; + +/** + * An implementation of the IWookieService interface. + * + * As a requirement, all LAMS tool's service bean must implement ToolContentManager and ToolSessionManager. + */ + +public class WookieService implements ToolSessionManager, ToolContentManager, IWookieService, ToolContentImport102Manager { + + static Logger logger = Logger.getLogger(WookieService.class.getName()); + + public static final String EXPORT_IMAGE_FILE_NAME = "authorImage"; + + private IWookieDAO wookieDAO = null; + + private IWookieSessionDAO wookieSessionDAO = null; + + private IWookieUserDAO wookieUserDAO = null; + + private IWookieAttachmentDAO wookieAttachmentDAO = null; + + private ILearnerService learnerService; + + private ILamsToolService toolService; + + private IToolContentHandler wookieToolContentHandler = null; + + private IRepositoryService repositoryService = null; + + private IAuditService auditService = null; + + private IExportToolContentService exportContentService; + + private ICoreNotebookService coreNotebookService; + + private WookieOutputFactory wookieOutputFactory; + + private IWookieConfigItemDAO wookieConfigItemDAO; + + public WookieService() { + super(); + // TODO Auto-generated constructor stub + } + + /* ************ Methods from ToolSessionManager ************* */ + public void createToolSession(Long toolSessionId, String toolSessionName, Long toolContentId) throws ToolException { + if (WookieService.logger.isDebugEnabled()) { + WookieService.logger.debug("entering method createToolSession:" + " toolSessionId = " + toolSessionId + + " toolSessionName = " + toolSessionName + " toolContentId = " + toolContentId); + } + + WookieSession session = new WookieSession(); + session.setSessionId(toolSessionId); + session.setSessionName(toolSessionName); + // learner starts + // TODO need to also set other fields. + Wookie wookie = wookieDAO.getByContentId(toolContentId); + session.setWookie(wookie); + wookieSessionDAO.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; + } + + @SuppressWarnings("unchecked") + public ToolSessionExportOutputData exportToolSession(List ToolSessionIds) throws DataMissingException, + ToolException { + // TODO Auto-generated method stub + return null; + } + + public void removeToolSession(Long toolSessionId) throws DataMissingException, ToolException { + wookieSessionDAO.deleteBySessionID(toolSessionId); + // TODO check if cascade worked + } + + /** + * Get the tool output for the given tool output names. + * + * @see org.lamsfoundation.lams.tool.ToolSessionManager#getToolOutput(java.util.List, java.lang.Long, + * java.lang.Long) + */ + public SortedMap getToolOutput(List names, Long toolSessionId, Long learnerId) { + return getWookieOutputFactory().getToolOutput(names, this, toolSessionId, learnerId); + } + + /** + * Get the tool output for the given tool output name. + * + * @see org.lamsfoundation.lams.tool.ToolSessionManager#getToolOutput(java.lang.String, java.lang.Long, + * java.lang.Long) + */ + public ToolOutput getToolOutput(String name, Long toolSessionId, Long learnerId) { + return getWookieOutputFactory().getToolOutput(name, this, toolSessionId, learnerId); + } + + /* ************ Methods from ToolContentManager ************************* */ + + public void copyToolContent(Long fromContentId, Long toContentId) throws ToolException { + + if (WookieService.logger.isDebugEnabled()) { + WookieService.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); + } + + Wookie fromContent = null; + if (fromContentId != null) { + fromContent = wookieDAO.getByContentId(fromContentId); + } + if (fromContent == null) { + // create the fromContent using the default tool content + fromContent = getDefaultContent(); + } + Wookie toContent = Wookie.newInstance(fromContent, toContentId, wookieToolContentHandler); + + try { + toContent.setImageFileName(copyImage(toContent)); + } catch (Exception e) { + WookieService.logger.error("Could not copy image for tool content copy", e); + throw new ToolException(e); + } + + wookieDAO.saveOrUpdate(toContent); + } + + public String copyImage(Wookie toContent) throws Exception { + + String realBaseDir = Configuration.get(ConfigurationKeys.LAMS_EAR_DIR) + File.separator + FileUtil.LAMS_WWW_DIR + + File.separator + "images" + File.separator + "wookie"; + + File existingFile = new File(realBaseDir + File.separator + toContent.getImageFileName()); + + if (existingFile.exists() && existingFile.canRead()) { + String ext = getFileExtension(toContent.getImageFileName()); + String newFileName = FileUtil.generateUniqueContentFolderID() + ext; + + String newFilePath = realBaseDir + File.separator + newFileName; + copyFile(existingFile, newFilePath); + return newFileName; + } else { + // if cant find or read the file, just copy the default image file + if (existingFile.exists() && existingFile.canRead()) { + File existingFile2 = new File(getDefaultContent().getImageFileName()); + String ext = getFileExtension(toContent.getImageFileName()); + String newFileName = FileUtil.generateUniqueContentFolderID() + ext; + String newFilePath = realBaseDir + File.separator + newFileName; + copyFile(existingFile2, newFilePath); + return newFileName; + } else { + throw new WookieException("Could not find file to copy"); + } + } + } + + public void copyFile(File srcFile, String destPath) throws Exception { + if (srcFile.exists() && srcFile.canRead()) { + File newFile = new File(destPath); + FileOutputStream out = new FileOutputStream(newFile); + FileInputStream in = new FileInputStream(srcFile); + byte[] buf = new byte[1024]; + int len; + while ((len = in.read(buf)) > 0) { + out.write(buf, 0, len); + } + } + + } + + public void setAsDefineLater(Long toolContentId, boolean value) throws DataMissingException, ToolException { + Wookie wookie = wookieDAO.getByContentId(toolContentId); + if (wookie == null) { + throw new ToolException("Could not find tool with toolContentID: " + toolContentId); + } + wookie.setDefineLater(value); + wookieDAO.saveOrUpdate(wookie); + } + + public void setAsRunOffline(Long toolContentId, boolean value) throws DataMissingException, ToolException { + Wookie wookie = wookieDAO.getByContentId(toolContentId); + if (wookie == null) { + throw new ToolException("Could not find tool with toolContentID: " + toolContentId); + } + wookie.setRunOffline(value); + wookieDAO.saveOrUpdate(wookie); + } + + 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 { + Wookie wookie = wookieDAO.getByContentId(toolContentId); + if (wookie == null) { + wookie = getDefaultContent(); + } + if (wookie == null) { + throw new DataMissingException("Unable to find default content for the wookie tool"); + } + + // set ResourceToolContentHandler as null to avoid copy file node in + // repository again. + wookie = Wookie.newInstance(wookie, toolContentId, null); + wookie.setToolContentHandler(null); + wookie.setWookieSessions(null); + + // bundling the author image in export + try { + if (wookie.getImageFileName() != null) { + File imageFile = new File(WookieConstants.LAMS_PIXLR_BASE_DIR + File.separator + + wookie.getImageFileName()); + if (imageFile.exists()) { + + String ext = getFileExtension(wookie.getImageFileName()); + + String tempDir = rootPath + File.separator + toolContentId.toString(); + File tempDirFile = new File(tempDir); + if (!tempDirFile.exists()) { + tempDirFile.mkdirs(); + } + String newFilePath = tempDir + File.separator + WookieService.EXPORT_IMAGE_FILE_NAME + ext; + + copyFile(imageFile, newFilePath); + wookie.setImageFileName(WookieService.EXPORT_IMAGE_FILE_NAME + ext); + } + } + + } catch (Exception e) { + WookieService.logger.error("Could not export wookie image, image may be missing in export", e); + } + + Set atts = wookie.getWookieAttachments(); + for (WookieAttachment att : atts) { + att.setWookie(null); + } + try { + exportContentService.registerFileClassForExport(WookieAttachment.class.getName(), "fileUuid", + "fileVersionId"); + exportContentService.exportToolContent(toolContentId, wookie, wookieToolContentHandler, 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, String fromVersion, + String toVersion) throws ToolException { + try { + exportContentService.registerFileClassForImport(WookieAttachment.class.getName(), "fileUuid", + "fileVersionId", "fileName", "fileType", null, null); + + Object toolPOJO = exportContentService.importToolContent(toolContentPath, wookieToolContentHandler, + fromVersion, toVersion); + if (!(toolPOJO instanceof Wookie)) { + throw new ImportToolContentException("Import Wookie tool content failed. Deserialized object is " + + toolPOJO); + } + Wookie wookie = (Wookie) toolPOJO; + + // reset it to new toolContentId + wookie.setToolContentId(toolContentId); + wookie.setCreateBy(new Long(newUserUid.longValue())); + + // Copying the image file into lams_www.war/images/wookie + File imageFile = new File(toolContentPath + File.separator + wookie.getImageFileName()); + + if (imageFile.exists() && imageFile.canRead()) { + + String newFileName = FileUtil.generateUniqueContentFolderID() + + getFileExtension(wookie.getImageFileName()); + + String newFilePath = WookieConstants.LAMS_PIXLR_BASE_DIR + File.separator + newFileName; + + copyFile(imageFile, newFilePath); + wookie.setImageFileName(newFileName); + } else { + wookie.setImageFileName(getDefaultContent().getImageFileName()); + } + + wookieDAO.saveOrUpdate(wookie); + } catch (ImportToolContentException e) { + throw new ToolException(e); + } catch (Exception e) { + WookieService.logger.error("Error during import possibly because of file copy error", e); + throw new ToolException(e); + } + } + + public String getFileExtension(String fileName) { + String ext = ""; + int i = fileName.lastIndexOf('.'); + if (i > 0 && i < fileName.length() - 1) { + ext += "." + fileName.substring(i + 1).toLowerCase(); + } + return ext; + } + + /** + * Get the definitions for possible output for an activity, based on the toolContentId. These may be definitions + * that are always available for the tool (e.g. number of marks for Multiple Choice) or a custom definition created + * for a particular activity such as the answer to the third question contains the word Koala and hence the need for + * the toolContentId + * + * @return SortedMap of ToolOutputDefinitions with the key being the name of each definition + */ + public SortedMap getToolOutputDefinitions(Long toolContentId, int definitionType) + throws ToolException { + Wookie wookie = getWookieDAO().getByContentId(toolContentId); + if (wookie == null) { + wookie = getDefaultContent(); + } + return getWookieOutputFactory().getToolOutputDefinitions(wookie, definitionType); + } + + /* ********** IWookieService Methods ********************************* */ + + 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 sessionId, Integer idType, String signature, Integer userID) { + List list = coreNotebookService.getEntry(sessionId, idType, signature, userID); + if (list == null || list.isEmpty()) { + return null; + } else { + return list.get(0); + } + } + + /** + * @param notebookEntry + */ + public void updateEntry(NotebookEntry notebookEntry) { + coreNotebookService.updateEntry(notebookEntry); + } + + 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"; + WookieService.logger.error(error); + throw new WookieException(error); + } + return toolContentId; + } + + public Wookie getDefaultContent() { + Long defaultContentID = getDefaultContentIdBySignature(WookieConstants.TOOL_SIGNATURE); + Wookie defaultContent = getWookieByContentId(defaultContentID); + if (defaultContent == null) { + String error = "Could not retrieve default content record for this tool"; + WookieService.logger.error(error); + throw new WookieException(error); + } + return defaultContent; + } + + public Wookie copyDefaultContent(Long newContentID) { + + if (newContentID == null) { + String error = "Cannot copy the Wookie tools default content: + " + "newContentID is null"; + WookieService.logger.error(error); + throw new WookieException(error); + } + + Wookie defaultContent = getDefaultContent(); + // create new wookie using the newContentID + Wookie newContent = new Wookie(); + newContent = Wookie.newInstance(defaultContent, newContentID, wookieToolContentHandler); + wookieDAO.saveOrUpdate(newContent); + return newContent; + } + + public Wookie getWookieByContentId(Long toolContentID) { + Wookie wookie = wookieDAO.getByContentId(toolContentID); + if (wookie == null) { + WookieService.logger.debug("Could not find the content with toolContentID:" + toolContentID); + } + return wookie; + } + + public WookieSession getSessionBySessionId(Long toolSessionId) { + WookieSession wookieSession = wookieSessionDAO.getBySessionId(toolSessionId); + if (wookieSession == null) { + WookieService.logger.debug("Could not find the wookie session with toolSessionID:" + toolSessionId); + } + return wookieSession; + } + + public WookieUser getUserByUserIdAndSessionId(Long userId, Long toolSessionId) { + return wookieUserDAO.getByUserIdAndSessionId(userId, toolSessionId); + } + + public WookieUser getUserByLoginNameAndSessionId(String loginName, Long toolSessionId) { + return wookieUserDAO.getByLoginNameAndSessionId(loginName, toolSessionId); + } + + public WookieUser getUserByUID(Long uid) { + return wookieUserDAO.getByUID(uid); + } + + public WookieAttachment uploadFileToContent(Long toolContentId, FormFile file, String type) { + if (file == null || StringUtils.isEmpty(file.getFileName())) { + throw new WookieException("Could not find upload file: " + file); + } + + NodeKey nodeKey = processFile(file, type); + + WookieAttachment attachment = new WookieAttachment(nodeKey.getVersion(), type, file.getFileName(), nodeKey + .getUuid(), new Date()); + return attachment; + } + + public void deleteFromRepository(Long uuid, Long versionID) throws WookieException { + ITicket ticket = getRepositoryLoginTicket(); + try { + repositoryService.deleteVersion(ticket, uuid, versionID); + } catch (Exception e) { + throw new WookieException("Exception occured while deleting files from" + " the repository " + + e.getMessage()); + } + } + + public void deleteInstructionFile(Long contentID, Long uuid, Long versionID, String type) { + wookieDAO.deleteInstructionFile(contentID, uuid, versionID, type); + + } + + public void saveOrUpdateWookie(Wookie wookie) { + wookieDAO.saveOrUpdate(wookie); + } + + public void saveOrUpdateWookieSession(WookieSession wookieSession) { + wookieSessionDAO.saveOrUpdate(wookieSession); + } + + public void saveOrUpdateWookieUser(WookieUser wookieUser) { + wookieUserDAO.saveOrUpdate(wookieUser); + } + + public WookieUser createWookieUser(UserDTO user, WookieSession wookieSession) { + WookieUser wookieUser = new WookieUser(user, wookieSession); + saveOrUpdateWookieUser(wookieUser); + return wookieUser; + } + + public IAuditService getAuditService() { + return auditService; + } + + public void setAuditService(IAuditService auditService) { + this.auditService = auditService; + } + + private NodeKey processFile(FormFile file, String type) { + NodeKey node = null; + if (file != null && !StringUtils.isEmpty(file.getFileName())) { + String fileName = file.getFileName(); + try { + node = getWookieToolContentHandler().uploadFile(file.getInputStream(), fileName, file.getContentType(), + type); + } catch (InvalidParameterException e) { + throw new WookieException("InvalidParameterException occured while trying to upload File" + + e.getMessage()); + } catch (FileNotFoundException e) { + throw new WookieException("FileNotFoundException occured while trying to upload File" + e.getMessage()); + } catch (RepositoryCheckedException e) { + throw new WookieException("RepositoryCheckedException occured while trying to upload File" + + e.getMessage()); + } catch (IOException e) { + throw new WookieException("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 WookieException { + ICredentials credentials = new SimpleCredentials(WookieToolContentHandler.repositoryUser, + WookieToolContentHandler.repositoryId); + try { + ITicket ticket = repositoryService.login(credentials, WookieToolContentHandler.repositoryWorkspaceName); + return ticket; + } catch (AccessDeniedException ae) { + throw new WookieException("Access Denied to repository." + ae.getMessage()); + } catch (WorkspaceNotFoundException we) { + throw new WookieException("Workspace not found." + we.getMessage()); + } catch (LoginException e) { + throw new WookieException("Login failed." + e.getMessage()); + } + } + + public WookieConfigItem getConfigItem(String key) { + return wookieConfigItemDAO.getConfigItemByKey(key); + } + + public void saveOrUpdateWookieConfigItem(WookieConfigItem item) { + wookieConfigItemDAO.saveOrUpdate(item); + } + + public String getWookiURL() { + return "http://172.20.100.162:8180/wookie"; + } + + /* ===============Methods implemented from ToolContentImport102Manager =============== */ + + /** + * Import the data for a 1.0.2 Wookie + */ + @SuppressWarnings("unchecked") + public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues) { + Date now = new Date(); + Wookie wookie = new Wookie(); + wookie.setContentInUse(Boolean.FALSE); + wookie.setCreateBy(new Long(user.getUserID().longValue())); + wookie.setCreateDate(now); + wookie.setDefineLater(Boolean.FALSE); + wookie.setInstructions(WebUtil.convertNewlines((String) importValues + .get(ToolContentImport102Manager.CONTENT_BODY))); + wookie.setLockOnFinished(Boolean.TRUE); + wookie.setOfflineInstructions(null); + wookie.setOnlineInstructions(null); + wookie.setRunOffline(Boolean.FALSE); + wookie.setTitle((String) importValues.get(ToolContentImport102Manager.CONTENT_TITLE)); + wookie.setToolContentId(toolContentId); + wookie.setUpdateDate(now); + wookie.setReflectOnActivity(Boolean.FALSE); + // leave as empty, no need to set them to anything. + // setWookieAttachments(Set wookieAttachments); + // setWookieSessions(Set wookieSessions); + wookieDAO.saveOrUpdate(wookie); + } + + /** + * 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 { + + WookieService.logger + .warn("Setting the reflective field on a wookie. This doesn't make sense as the wookie is for reflection and we don't reflect on reflection!"); + Wookie wookie = getWookieByContentId(toolContentId); + if (wookie == null) { + throw new DataMissingException("Unable to set reflective data titled " + title + + " on activity toolContentId " + toolContentId + " as the tool content does not exist."); + } + + wookie.setInstructions(description); + } + + // ========================================================================================= + /* ********** Used by Spring to "inject" the linked objects ************* */ + + public IWookieAttachmentDAO getWookieAttachmentDAO() { + return wookieAttachmentDAO; + } + + public void setWookieAttachmentDAO(IWookieAttachmentDAO attachmentDAO) { + wookieAttachmentDAO = attachmentDAO; + } + + public IWookieDAO getWookieDAO() { + return wookieDAO; + } + + public void setWookieDAO(IWookieDAO wookieDAO) { + this.wookieDAO = wookieDAO; + } + + public IToolContentHandler getWookieToolContentHandler() { + return wookieToolContentHandler; + } + + public void setWookieToolContentHandler(IToolContentHandler wookieToolContentHandler) { + this.wookieToolContentHandler = wookieToolContentHandler; + } + + public IWookieSessionDAO getWookieSessionDAO() { + return wookieSessionDAO; + } + + public void setWookieSessionDAO(IWookieSessionDAO sessionDAO) { + wookieSessionDAO = sessionDAO; + } + + public ILamsToolService getToolService() { + return toolService; + } + + public void setToolService(ILamsToolService toolService) { + this.toolService = toolService; + } + + public IWookieUserDAO getWookieUserDAO() { + return wookieUserDAO; + } + + public void setWookieUserDAO(IWookieUserDAO userDAO) { + wookieUserDAO = 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 WookieOutputFactory getWookieOutputFactory() { + return wookieOutputFactory; + } + + public void setWookieOutputFactory(WookieOutputFactory wookieOutputFactory) { + this.wookieOutputFactory = wookieOutputFactory; + } + + public IWookieConfigItemDAO getWookieConfigItemDAO() { + return wookieConfigItemDAO; + } + + public void setWookieConfigItemDAO(IWookieConfigItemDAO wookieConfigItemDAO) { + this.wookieConfigItemDAO = wookieConfigItemDAO; + } + + public IRepositoryService getRepositoryService() { + return repositoryService; + } + + public void setRepositoryService(IRepositoryService repositoryService) { + this.repositoryService = repositoryService; + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieServiceProxy.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieServiceProxy.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/service/WookieServiceProxy.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.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 WookieServiceProxy { + + public static final IWookieService getWookieService(ServletContext servletContext) + { + return (IWookieService)getWookieDomainService(servletContext); + } + + private static Object getWookieDomainService(ServletContext servletContext) + { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); + return wac.getBean("wookieService"); + } + + /* + * Return the wookie 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 getWookieSessionManager(ServletContext servletContext) + { + return (ToolSessionManager)getWookieDomainService(servletContext); + } + + + /* + * Return the wookie 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 getWookieContentManager(ServletContext servletContext) + { + return (ToolContentManager)getWookieDomainService(servletContext); + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieConstants.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieConstants.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieConstants.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,92 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.util; + +import java.io.File; + +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.FileUtil; + +public interface WookieConstants { + public static final String TOOL_SIGNATURE = "lawook10"; + + // Wookie 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"; + public static final String ATTR_WIDGET_LIST = "widgetList"; + public static final String ATTR_WIDGET_PAGES = "widgetPages"; + + // Parameter names + public static final String PARAM_PARENT_PAGE = "parentPage"; + + static final String FILTER_REPLACE_TEXT = "***"; + + public static final String ATTR_SESSION_MAP_ID = "sessionMapID"; + + public static final String DEFAULT_IMAGE_FILE_NAME = "blank.jpg"; + + // error message keys + public static final String ERROR_MSG_NOT_ALLOWED_FORMAT = "error.resource.image.not.alowed.format"; + public static final String ERROR_MSG_FILE_BLANK = "error.resource.item.file.blank"; + public static final String ERROR_MSG_FILE_UPLOAD = "error.file.upload.failed"; + + public static final String LAMS_WWW_PIXLR_FOLDER_URL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/www/images/wookie/"; + public static final String LAMS_PIXLR_BASE_DIR = Configuration.get(ConfigurationKeys.LAMS_EAR_DIR) + File.separator + FileUtil.LAMS_WWW_DIR + + File.separator + "images" + File.separator + "wookie"; + + + public static final int WIDGETS_PER_PAGE = 8; + + public static final String RELATIVE_URL_WIDGET_LIST = "/advertise"; + public static final String RELATIVE_URL_WIDGET_SERVICE = "/WidgetServiceServlet"; + + public static final String PARAM_ALL = "all"; + public static final String PARAM_TRUE = "true"; + public static final String PARAM_PAGE_COUNT = "pageCount"; + public static final String PARAM_PAGE_NUMBER = "pageNumber"; + + public static final String XML_WIDGETS = "widgets"; + public static final String XML_WIDGET = "widget"; + public static final String XML_IDENTIFIER = "identifier"; + public static final String XML_TITLE = "title"; + public static final String XML_DESCRIPTION = "description"; + public static final String XML_ICON = "icon"; + public static final String XML_PARAMETER = "parameter"; + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieException.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieException.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieException.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.util; + +/** + * + * @author Anthony Sukkar + * + */ +public class WookieException extends RuntimeException { + + /** + * + */ + private static final long serialVersionUID = -5518806968051758859L; + + public WookieException(String message) { + super(message); + } + + public WookieException(String message, Throwable cause) { + super(message, cause); + } + + public WookieException() { + super(); + + } + + public WookieException(Throwable cause) { + super(cause); + + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieToolContentHandler.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieToolContentHandler.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieToolContentHandler.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.util; + +import org.lamsfoundation.lams.contentrepository.client.ToolContentHandler; + +/** + * Simple client for accessing the content repository. + */ +public class WookieToolContentHandler 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 = "wookieworkspace"; + + public static String repositoryUser = "wookie"; + + public static char[] repositoryId = { 'l', 'a', 'm', 's', '-', 'e', 'x' }; + + /** + * + */ + public WookieToolContentHandler() { + 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_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieUtil.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieUtil.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/util/WookieUtil.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,156 @@ +/**************************************************************** + * Copyright (C) 2008 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.wookie.util; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.tool.wookie.dto.WidgetDefinition; +import org.lamsfoundation.lams.tool.wookie.web.actions.AuthoringAction; +import org.lamsfoundation.lams.util.WebUtil; +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +public class WookieUtil { + + private static Logger logger = Logger.getLogger(AuthoringAction.class); + + public static List getWidgetDefinitions(String url) throws DOMException, IOException, + ParserConfigurationException, SAXException, Exception { + List widgetDefinitions = new ArrayList(); + + // add the relative url for the widget list + url += WookieConstants.RELATIVE_URL_WIDGET_LIST; + + // add required parameters + HashMap params = new HashMap(); + params.put(WookieConstants.PARAM_ALL, WookieConstants.PARAM_TRUE); + + // Make the request to the wookie server + InputStream is = WebUtil.getResponseInputStreamFromExternalServer(url, params); + + // Reading the response from the wookie server + String xml = convertStreamToString(is); + if (xml == null) { + logger.error("Got null xml from url: " + url); + return null; + } + + // Parsing the xml document containing the widget definitions + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + DocumentBuilder db = dbf.newDocumentBuilder(); + Document document = db.parse(new InputSource(new StringReader(xml))); + NodeList widgetList = document.getElementsByTagName(WookieConstants.XML_WIDGET); + for (int i = 0; i < widgetList.getLength(); i++) { + // Creating a new widget object + WidgetDefinition widgetDefinition = new WidgetDefinition(); + + // Get the attributes + NamedNodeMap widgetAttributes = (widgetList.item(i)).getAttributes(); + if (widgetAttributes.getNamedItem(WookieConstants.XML_IDENTIFIER) != null) { + String identifier = widgetAttributes.getNamedItem(WookieConstants.XML_IDENTIFIER).getNodeValue(); + widgetDefinition.setIdentifier(identifier); + } + + // Get the properties for this widget + NodeList widgetPropertyList = (widgetList.item(i)).getChildNodes(); + for (int j = 0; j < widgetPropertyList.getLength(); j++) { + Node widgetProperty = widgetPropertyList.item(j); + + String propertyTitle = widgetProperty.getNodeName(); + + // Add the properties + if (propertyTitle.equals(WookieConstants.XML_TITLE)) { + widgetDefinition.setTitle(widgetProperty.getTextContent()); + } else if (propertyTitle.equals(WookieConstants.XML_DESCRIPTION)) { + widgetDefinition.setDescription(widgetProperty.getTextContent()); + } else if (propertyTitle.equals(WookieConstants.XML_ICON)) { + widgetDefinition.setIcon(widgetProperty.getTextContent()); + } + } + widgetDefinitions.add(widgetDefinition); + } + return widgetDefinitions; + } + + public static int getWidgetCount(String url) throws DOMException, IOException, + ParserConfigurationException, SAXException, Exception { + + // add the relative url for the widget list + url += WookieConstants.RELATIVE_URL_WIDGET_LIST; + + // add required parameters + HashMap params = new HashMap(); + params.put(WookieConstants.PARAM_ALL, WookieConstants.PARAM_TRUE); + + // Make the request to the wookie server + InputStream is = WebUtil.getResponseInputStreamFromExternalServer(url, params); + + // Reading the response from the wookie server + String xml = convertStreamToString(is); + if (xml == null) { + logger.error("Got null xml from url: " + url); + return 0; + } + + // Parsing the xml document containing the widget definitions + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + DocumentBuilder db = dbf.newDocumentBuilder(); + Document document = db.parse(new InputSource(new StringReader(xml))); + NodeList widgetList = document.getElementsByTagName(WookieConstants.XML_WIDGET); + + if (widgetList != null) { + return widgetList.getLength(); + } + return 0; + } + + public static String convertStreamToString(InputStream is) throws IOException { + BufferedReader reader = new BufferedReader(new InputStreamReader(is)); + StringBuilder sb = new StringBuilder(); + String line = null; + while ((line = reader.readLine()) != null) { + sb.append(line + "\n"); + } + is.close(); + return sb.toString(); + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/AdminAction.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/AdminAction.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/AdminAction.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,65 @@ +package org.lamsfoundation.lams.tool.wookie.web.actions; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.lamsfoundation.lams.tool.wookie.model.WookieConfigItem; +import org.lamsfoundation.lams.tool.wookie.service.WookieServiceProxy; +import org.lamsfoundation.lams.tool.wookie.service.IWookieService; +import org.lamsfoundation.lams.tool.wookie.web.forms.AdminForm; +import org.lamsfoundation.lams.web.action.LamsDispatchAction; + +/** + * @author + * @version + * + * @struts.action path="/lawook10admin" parameter="dispatch" scope="request" + * name="lawook10AdminForm" validate="false" + * + * @struts.action-forward name="config" path="/pages/admin/config.jsp" + */ +public class AdminAction extends LamsDispatchAction { + public IWookieService wookieService; + + public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + // set up mdlForumService + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(this.getServlet().getServletContext()); + } + + AdminForm adminForm = (AdminForm) form; + + WookieConfigItem wookieKey = wookieService.getConfigItem(WookieConfigItem.KEY_LANGUAGE_CSV); + if (wookieKey != null) + adminForm.setLanguagesCSV(wookieKey.getConfigValue()); + + request.setAttribute("error", false); + return mapping.findForward("config"); + } + + public ActionForward saveContent(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + AdminForm adminForm = (AdminForm) form; + + if (adminForm.getLanguagesCSV() != null && !adminForm.getLanguagesCSV().equals("")) { + // set up mdlForumService + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(this.getServlet().getServletContext()); + } + + WookieConfigItem wookieKey = wookieService.getConfigItem(WookieConfigItem.KEY_LANGUAGE_CSV); + wookieKey.setConfigValue(adminForm.getLanguagesCSV()); + wookieService.saveOrUpdateWookieConfigItem(wookieKey); + + request.setAttribute("savedSuccess", true); + return mapping.findForward("config"); + } else { + request.setAttribute("error", true); + return mapping.findForward("config"); + } + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/AuthoringAction.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/AuthoringAction.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/AuthoringAction.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,700 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.web.actions; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +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.imageio.ImageIO; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.apache.struts.action.ActionErrors; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +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.authoring.web.AuthoringConstants; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; +import org.lamsfoundation.lams.tool.ToolAccessMode; +import org.lamsfoundation.lams.tool.wookie.dto.WidgetDefinition; +import org.lamsfoundation.lams.tool.wookie.model.Wookie; +import org.lamsfoundation.lams.tool.wookie.model.WookieAttachment; +import org.lamsfoundation.lams.tool.wookie.service.IWookieService; +import org.lamsfoundation.lams.tool.wookie.service.WookieServiceProxy; +import org.lamsfoundation.lams.tool.wookie.util.WookieConstants; +import org.lamsfoundation.lams.tool.wookie.util.WookieException; +import org.lamsfoundation.lams.tool.wookie.util.WookieUtil; +import org.lamsfoundation.lams.tool.wookie.web.forms.AuthoringForm; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.FileUtil; +import org.lamsfoundation.lams.util.FileValidatorUtil; +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; +import org.w3c.dom.DOMException; +import org.xml.sax.SAXException; + +/** + * @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="widgetList" path="/pages/authoring/widgetList.jsp" + * @struts.action-forward name="message_page" path="tiles:/generic/message" + */ +public class AuthoringAction extends LamsDispatchAction { + + private static Logger logger = Logger.getLogger(AuthoringAction.class); + + public IWookieService wookieService; + + // Authoring SessionMap key names + private static final String KEY_TOOL_CONTENT_ID = "toolContentID"; + private static final String KEY_CONTENT_FOLDER_ID = "contentFolderID"; + 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. + * + */ + @Override + 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); + + AuthoringForm authForm = (AuthoringForm) form; + + ToolAccessMode mode = null; + String modeStr = WebUtil.readStrParam(request, "mode", true); + if (modeStr != null && !modeStr.trim().equals("")) { + mode = WebUtil.readToolAccessModeParam(request, "mode", true); + } + + // set up wookieService + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(this.getServlet().getServletContext()); + } + + // Get the widget count + try { + int widgetCount = WookieUtil.getWidgetCount(wookieService.getWookiURL()); + if (widgetCount > 0) { + int pages = 1; + float pagesFloat = new Float(widgetCount) / WookieConstants.WIDGETS_PER_PAGE; + if (pagesFloat > 1) { + + pages = (new Float(Math.ceil(pagesFloat))).intValue(); + } + + request.setAttribute(WookieConstants.ATTR_WIDGET_PAGES, pages); + } + } catch (Exception e) { + log.error("Problem reading xml from wookie server.", e); + throw new WookieException(e); + } + + // retrieving Wookie with given toolContentID + Wookie wookie = wookieService.getWookieByContentId(toolContentID); + if (wookie == null) { + wookie = wookieService.copyDefaultContent(toolContentID); + wookie.setCreateDate(new Date()); + wookieService.saveOrUpdateWookie(wookie); + // TODO NOTE: this causes DB orphans when LD not saved. + } + + if (mode != null && mode.isTeacher()) { + // Set the defineLater flag so that learners cannot use content + // while we + // are editing. This flag is released when updateContent is called. + wookie.setDefineLater(true); + wookieService.saveOrUpdateWookie(wookie); + } + + String imageUrl = WookieConstants.LAMS_WWW_PIXLR_FOLDER_URL; + Boolean imageExists = false; + if ((wookie.getImageFileName() != null && !wookie.getImageFileName().equals(""))) { + imageUrl += wookie.getImageFileName(); + if (!wookie.getImageFileName().equals(wookieService.getDefaultContent().getImageFileName())) { + imageExists = true; + } + } else { + imageUrl += wookieService.getDefaultContent().getImageFileName(); + } + request.setAttribute("imageURL", imageUrl); + request.setAttribute("imageExists", imageExists); + + // Set up the authForm. + updateAuthForm(authForm, wookie); + authForm.setToolContentID(toolContentID); + if (mode != null) { + authForm.setMode(mode.toString()); + } else { + authForm.setMode(""); + } + authForm.setContentFolderID(contentFolderID); + + // Set up sessionMap + SessionMap map = createSessionMap(wookie, getAccessMode(request), contentFolderID, + toolContentID); + authForm.setSessionMapID(map.getSessionID()); + + // add the sessionMap to HTTPSession. + request.getSession().setAttribute(map.getSessionID(), map); + request.setAttribute(WookieConstants.ATTR_SESSION_MAP, map); + + return mapping.findForward("success"); + } + + public ActionForward getWidgets(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws WookieException { + + Integer pageNumber = WebUtil.readIntParam(request, WookieConstants.PARAM_PAGE_NUMBER); + //Integer pageCount = WebUtil.readIntParam(request, WookieConstants.PARAM_PAGE_COUNT); + + // Fetch all the available wookie widgets + try { + List widgetDefinitions = WookieUtil.getWidgetDefinitions(wookieService.getWookiURL()); + List cutDownWidgetDefinitions = null; + + int startIndex = WookieConstants.WIDGETS_PER_PAGE * (pageNumber - 1); + int endIndex = WookieConstants.WIDGETS_PER_PAGE * (pageNumber); + if (widgetDefinitions.size() > startIndex) { + if (widgetDefinitions.size() > endIndex) { + // Use the start and end index - within range + cutDownWidgetDefinitions = widgetDefinitions.subList(startIndex, endIndex); + } else { + // Use the start index to the end of the list + cutDownWidgetDefinitions = widgetDefinitions.subList(startIndex, widgetDefinitions.size()); + } + + } + request.setAttribute(WookieConstants.ATTR_WIDGET_LIST, cutDownWidgetDefinitions); + return mapping.findForward("widgetList"); + + } catch (Exception e) { + log.error("Problem reading xml from wookie server.", e); + throw new WookieException(e); + } + } + + public ActionForward updateContent(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws WookieException { + // TODO need error checking. + + // get authForm and session map. + AuthoringForm authForm = (AuthoringForm) form; + SessionMap map = getSessionMap(request, authForm); + ToolAccessMode mode = (ToolAccessMode) map.get(AuthoringAction.KEY_MODE); + + // get wookie content. + Wookie wookie = wookieService.getWookieByContentId((Long) map.get(AuthoringAction.KEY_TOOL_CONTENT_ID)); + ActionErrors errors = new ActionErrors(); + ; + + try { + // TODO: Need to check if this is an edit, if so, delete the old image + if (authForm.getExistingImageFileName().equals(WookieConstants.DEFAULT_IMAGE_FILE_NAME) + || authForm.getExistingImageFileName().trim().equals("")) { + errors = validateImageFile(authForm); + + if (!errors.isEmpty()) { + this.addErrors(request, errors); + updateAuthForm(authForm, wookie); + if (mode != null) { + authForm.setMode(mode.toString()); + } else { + authForm.setMode(""); + } + return mapping.findForward("success"); + } + uploadFormImage(authForm, wookie); + } + } catch (Exception e) { + logger.error("Problem uploading image", e); + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(WookieConstants.ERROR_MSG_FILE_UPLOAD)); + //throw new WookieException("Problem uploading image", e); + } + + // update wookie content using form inputs. + updateWookie(wookie, authForm, mode); + + // remove attachments marked for deletion. + Set attachments = wookie.getWookieAttachments(); + if (attachments == null) { + attachments = new HashSet(); + } + + for (WookieAttachment att : getAttList(AuthoringAction.KEY_DELETED_FILES, map)) { + // remove from db, leave in repository + attachments.remove(att); + } + + // add unsaved attachments + attachments.addAll(getAttList(AuthoringAction.KEY_UNSAVED_ONLINE_FILES, map)); + attachments.addAll(getAttList(AuthoringAction.KEY_UNSAVED_OFFLINE_FILES, map)); + + // set attachments in case it didn't exist + wookie.setWookieAttachments(attachments); + + // set the update date + wookie.setUpdateDate(new Date()); + + // releasing defineLater flag so that learner can start using the tool. + wookie.setDefineLater(false); + + wookieService.saveOrUpdateWookie(wookie); + + request.setAttribute(AuthoringConstants.LAMS_AUTHORING_SUCCESS_FLAG, Boolean.TRUE); + + // add the sessionMapID to form + authForm.setSessionMapID(map.getSessionID()); + + request.setAttribute(WookieConstants.ATTR_SESSION_MAP, map); + + updateAuthForm(authForm, wookie); + if (mode != null) { + authForm.setMode(mode.toString()); + } else { + authForm.setMode(""); + } + + 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 = authForm.getOfflineFile(); + unsavedFiles = getAttList(AuthoringAction.KEY_UNSAVED_OFFLINE_FILES, map); + + savedFiles = getAttList(AuthoringAction.KEY_OFFLINE_FILES, map); + } else { + file = authForm.getOnlineFile(); + unsavedFiles = getAttList(AuthoringAction.KEY_UNSAVED_ONLINE_FILES, map); + + savedFiles = getAttList(AuthoringAction.KEY_ONLINE_FILES, map); + } + + // validate file max size + ActionMessages errors = new ActionMessages(); + FileValidatorUtil.validateFileSize(file, true, errors); + if (!errors.isEmpty()) { + request.setAttribute(WookieConstants.ATTR_SESSION_MAP, map); + this.saveErrors(request, errors); + return mapping.findForward("success"); + } + + if (file.getFileName().length() != 0) { + + // upload file to repository + WookieAttachment newAtt = wookieService.uploadFileToContent((Long) map + .get(AuthoringAction.KEY_TOOL_CONTENT_ID), file, type); + + // Add attachment to unsavedFiles + // check to see if file with same name exists + WookieAttachment currAtt; + Iterator iter = savedFiles.iterator(); + while (iter.hasNext()) { + currAtt = (WookieAttachment) iter.next(); + if (StringUtils.equals(currAtt.getFileName(), newAtt.getFileName()) + && StringUtils.equals(currAtt.getFileType(), newAtt.getFileType())) { + // move from this this list to deleted list. + getAttList(AuthoringAction.KEY_DELETED_FILES, map).add(currAtt); + iter.remove(); + break; + } + } + unsavedFiles.add(newAtt); + + request.setAttribute(WookieConstants.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(AuthoringAction.KEY_OFFLINE_FILES, map); + } else { + fileList = getAttList(AuthoringAction.KEY_ONLINE_FILES, map); + } + + Iterator iter = fileList.iterator(); + + while (iter.hasNext()) { + WookieAttachment att = (WookieAttachment) iter.next(); + + if (att.getFileUuid().equals(authForm.getDeleteFileUuid())) { + // move to delete file list, deleted at next updateContent + getAttList(AuthoringAction.KEY_DELETED_FILES, map).add(att); + + // remove from this list + iter.remove(); + break; + } + } + + request.setAttribute(WookieConstants.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(AuthoringAction.KEY_UNSAVED_OFFLINE_FILES, map); + } else { + unsavedFiles = getAttList(AuthoringAction.KEY_UNSAVED_ONLINE_FILES, map); + } + + Iterator iter = unsavedFiles.iterator(); + while (iter.hasNext()) { + WookieAttachment att = (WookieAttachment) iter.next(); + + if (att.getFileUuid().equals(authForm.getDeleteFileUuid())) { + // delete from repository and list + wookieService.deleteFromRepository(att.getFileUuid(), att.getFileVersionId()); + iter.remove(); + break; + } + } + + request.setAttribute(WookieConstants.ATTR_SESSION_MAP, map); + request.setAttribute("unsavedChanges", new Boolean(true)); + + return mapping.findForward("success"); + } + + /** + * Updates Wookie content using AuthoringForm inputs. + * + * @param authForm + * @param mode + * @return + */ + private void updateWookie(Wookie wookie, AuthoringForm authForm, ToolAccessMode mode) { + wookie.setTitle(authForm.getTitle()); + wookie.setInstructions(authForm.getInstructions()); + if (mode.isAuthor()) { // Teacher cannot modify following + wookie.setOfflineInstructions(authForm.getOnlineInstruction()); + wookie.setOnlineInstructions(authForm.getOfflineInstruction()); + wookie.setLockOnFinished(authForm.isLockOnFinished()); + wookie.setReflectOnActivity(authForm.isReflectOnActivity()); + wookie.setReflectInstructions(authForm.getReflectInstructions()); + wookie.setAllowViewOthersImages(authForm.isAllowViewOthersImages()); + } + } + + /** + * Updates AuthoringForm using Wookie content. + * + * @param wookie + * @param authForm + * @return + */ + private void updateAuthForm(AuthoringForm authForm, Wookie wookie) { + authForm.setTitle(wookie.getTitle()); + authForm.setInstructions(wookie.getInstructions()); + authForm.setOnlineInstruction(wookie.getOnlineInstructions()); + authForm.setOfflineInstruction(wookie.getOfflineInstructions()); + authForm.setLockOnFinished(wookie.isLockOnFinished()); + authForm.setReflectOnActivity(wookie.isReflectOnActivity()); + authForm.setExistingImageFileName(wookie.getImageFileName()); + authForm.setReflectInstructions(wookie.getReflectInstructions()); + authForm.setAllowViewOthersImages(wookie.isAllowViewOthersImages()); + + if (wookie.getImageFileName() == null || wookie.getImageFileName().trim().equals("")) { + authForm.setFileName(WookieConstants.DEFAULT_IMAGE_FILE_NAME); + } else { + authForm.setFileName(wookie.getImageFileName()); + } + } + + /** + * Updates SessionMap using Wookie content. + * + * @param wookie + * @param mode + */ + private SessionMap createSessionMap(Wookie wookie, ToolAccessMode mode, String contentFolderID, + Long toolContentID) { + + SessionMap map = new SessionMap(); + + map.put(AuthoringAction.KEY_MODE, mode); + map.put(AuthoringAction.KEY_CONTENT_FOLDER_ID, contentFolderID); + map.put(AuthoringAction.KEY_TOOL_CONTENT_ID, toolContentID); + map.put(AuthoringAction.KEY_ONLINE_FILES, new LinkedList()); + map.put(AuthoringAction.KEY_OFFLINE_FILES, new LinkedList()); + map.put(AuthoringAction.KEY_UNSAVED_ONLINE_FILES, new LinkedList()); + map.put(AuthoringAction.KEY_UNSAVED_OFFLINE_FILES, new LinkedList()); + map.put(AuthoringAction.KEY_DELETED_FILES, new LinkedList()); + + Iterator iter = wookie.getWookieAttachments().iterator(); + while (iter.hasNext()) { + WookieAttachment attachment = (WookieAttachment) iter.next(); + String type = attachment.getFileType(); + if (type.equals(IToolContentHandler.TYPE_OFFLINE)) { + getAttList(AuthoringAction.KEY_OFFLINE_FILES, map).add(attachment); + } + if (type.equals(IToolContentHandler.TYPE_ONLINE)) { + getAttList(AuthoringAction.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; + } + + /** + * Retrieves a List of attachments from the map using the key. + * + * @param key + * @param map + * @return + */ + @SuppressWarnings("unchecked") + 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 + */ + @SuppressWarnings("unchecked") + private SessionMap getSessionMap(HttpServletRequest request, AuthoringForm authForm) { + return (SessionMap) request.getSession().getAttribute(authForm.getSessionMapID()); + } + + /** + * Validate imageGallery item. + * + * @param itemForm + * @return + */ + private ActionErrors validateImageFile(AuthoringForm itemForm) { + ActionErrors errors = new ActionErrors(); + + // validate file size + FileValidatorUtil.validateFileSize(itemForm.getFile(), true, errors); + // for edit validate: file already exist + if (!itemForm.isHasFile() + && ((itemForm.getFile() == null) || StringUtils.isEmpty(itemForm.getFile().getFileName()))) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(WookieConstants.ERROR_MSG_FILE_BLANK)); + } + + // check for allowed format : gif, png, jpg + if (itemForm.getFile() != null) { + String contentType = itemForm.getFile().getContentType(); + if (StringUtils.isEmpty(contentType) + || !(contentType.equals("image/gif") || contentType.equals("image/png") + || contentType.equals("image/jpg") || contentType.equals("image/jpeg") || contentType + .equals("image/pjpeg"))) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( + WookieConstants.ERROR_MSG_NOT_ALLOWED_FORMAT)); + } + } + + return errors; + } + + /** + * Upload the image to the open www/images/wookie folder + * + * @param request + * @param imageForm + * @throws ImageGalleryException + */ + private void uploadFormImage(AuthoringForm imageForm, Wookie wookie) throws Exception { + + String filename = WookieConstants.DEFAULT_IMAGE_FILE_NAME; + + // set up wookieService + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(this.getServlet().getServletContext()); + } + + if (imageForm.getFile() != null) { + + // check the directory exists, then create it if it doesnt + File wookieDir = new File(WookieConstants.LAMS_PIXLR_BASE_DIR); + if (!wookieDir.exists()) { + wookieDir.mkdirs(); + } + + FormFile formFile = imageForm.getFile(); + + filename = FileUtil.generateUniqueContentFolderID() + + wookieService.getFileExtension(formFile.getFileName()); + String fileWriteName = WookieConstants.LAMS_PIXLR_BASE_DIR + File.separator + filename; + File uploadFile = new File(fileWriteName); + FileOutputStream out = new FileOutputStream(uploadFile); + + out.write(formFile.getFileData()); + + // Now save the image size + BufferedImage imageFile = ImageIO.read(uploadFile); + int width = imageFile.getWidth(); + int height = imageFile.getHeight(); + + wookie.setImageFileName(filename); + wookie.setImageHeight(new Long(height)); + wookie.setImageWidth(new Long(width)); + } + + } + + public ActionForward deleteImage(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); + ; + + // set up wookieService + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(this.getServlet().getServletContext()); + } + + // retrieving Wookie with given toolContentID + Wookie wookie = wookieService.getWookieByContentId(toolContentID); + if (wookie != null && !wookie.getImageFileName().equals(WookieConstants.DEFAULT_IMAGE_FILE_NAME)) { + String realBaseDir = Configuration.get(ConfigurationKeys.LAMS_EAR_DIR) + File.separator + + FileUtil.LAMS_WWW_DIR + File.separator + "images" + File.separator + "wookie"; + String fileName = WebUtil.readStrParam(request, "existingImageFileName"); + + String imageFileName = realBaseDir + File.separator + fileName; + + File imageFile = new File(imageFileName); + + if (imageFile.exists()) { + imageFile.delete(); + } + + wookie.setImageFileName(WookieConstants.DEFAULT_IMAGE_FILE_NAME); + wookieService.saveOrUpdateWookie(wookie); + } + + return unspecified(mapping, form, request, response); + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/ClearSessionAction.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/ClearSessionAction.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/ClearSessionAction.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.wookie.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_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/LearningAction.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/LearningAction.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/LearningAction.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,483 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.web.actions; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLEncoder; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; +import java.util.Map.Entry; + +import javax.imageio.ImageIO; +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.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.wookie.dto.WookieDTO; +import org.lamsfoundation.lams.tool.wookie.dto.WookieUserDTO; +import org.lamsfoundation.lams.tool.wookie.model.Wookie; +import org.lamsfoundation.lams.tool.wookie.model.WookieConfigItem; +import org.lamsfoundation.lams.tool.wookie.model.WookieSession; +import org.lamsfoundation.lams.tool.wookie.model.WookieUser; +import org.lamsfoundation.lams.tool.wookie.service.IWookieService; +import org.lamsfoundation.lams.tool.wookie.service.WookieServiceProxy; +import org.lamsfoundation.lams.tool.wookie.util.WookieConstants; +import org.lamsfoundation.lams.tool.wookie.util.WookieException; +import org.lamsfoundation.lams.tool.wookie.web.forms.LearningForm; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.FileUtil; +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="wookie" 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="success" path="/pages/learning/success.jsp" + * @struts.action-forward name="notebook" path="/pages/learning/notebook.jsp" + * @struts.action-forward name="viewAll" path="/pages/learning/viewAll.jsp" + */ +public class LearningAction extends LamsDispatchAction { + + private static Logger log = Logger.getLogger(LearningAction.class); + + private static final boolean MODE_OPTIONAL = false; + private static final String PIXLR_UTL = "http://www.wookie.com/editor/"; + + private IWookieService wookieService; + + public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + LearningForm learningForm = (LearningForm) form; + + // '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); + + String redoQuestion = request.getParameter("redoQuestion"); + boolean isRedo = false; + if (redoQuestion != null && redoQuestion.equals("true")) { + isRedo = true; + } + + // set up wookieService + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(this.getServlet().getServletContext()); + } + + // Retrieve the session and content. + WookieSession wookieSession = wookieService.getSessionBySessionId(toolSessionID); + if (wookieSession == null) { + throw new WookieException("Cannot retreive session with toolSessionID" + toolSessionID); + } + + Wookie wookie = wookieSession.getWookie(); + + // check defineLater + if (wookie.isDefineLater()) { + return mapping.findForward("defineLater"); + } + + // set mode, toolSessionID and WookieDTO + request.setAttribute("mode", mode.toString()); + request.setAttribute("toolSessionID", toolSessionID); + learningForm.setToolSessionID(toolSessionID); + + WookieDTO wookieDTO = new WookieDTO(wookie); + request.setAttribute("wookieDTO", wookieDTO); + + // Set the content in use flag. + if (!wookie.isContentInUse()) { + wookie.setContentInUse(new Boolean(true)); + wookieService.saveOrUpdateWookie(wookie); + } + + // check runOffline + if (wookie.isRunOffline()) { + return mapping.findForward("runOffline"); + } + + // get the user + WookieUser wookieUser; + if (mode.equals(ToolAccessMode.TEACHER)) { + Long userID = WebUtil.readLongParam(request, AttributeNames.PARAM_USER_ID, false); + wookieUser = wookieService.getUserByUserIdAndSessionId(userID, toolSessionID); + } else { + wookieUser = getCurrentUser(toolSessionID); + } + + // return to the viewAll images page if the user has already clicked it + if (wookieUser.isFinishedActivity() && wookie.isAllowViewOthersImages() && !isRedo) { + return viewAllImages(mapping, learningForm, request, response); + } + + // set up the user dto + WookieUserDTO wookieUserDTO = new WookieUserDTO(wookieUser); + if (wookieUser.isFinishedActivity()) { + // get the notebook entry. + NotebookEntry notebookEntry = wookieService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + WookieConstants.TOOL_SIGNATURE, wookieUser.getUserId().intValue()); + if (notebookEntry != null) { + wookieUserDTO.notebookEntry = notebookEntry.getEntry(); + wookieUserDTO.setFinishedReflection(true); + } + } + request.setAttribute("wookieUserDTO", wookieUserDTO); + + String returnURL = Configuration.get(ConfigurationKeys.SERVER_URL) + "/tool/lawook10/learning.do?"; + returnURL += "dispatch=updateWookieImage"; + returnURL += "&toolSessionID=" + wookieSession.getSessionId(); + + String url = PIXLR_UTL + "?"; + url += "&title=" + URLEncoder.encode(wookie.getTitle(), "UTF8"); + url += "&referrer=LAMS"; + url += "&loc=" + getWookieLocale(); + + String currentImageURL; + + if (wookieUser.getImageFileName() != null && !wookieUser.getImageFileName().equals("")) { + currentImageURL = WookieConstants.LAMS_WWW_PIXLR_FOLDER_URL + wookieUser.getImageFileName(); + returnURL += "&existingImage=" + URLEncoder.encode(wookieUser.getImageFileName(), "UTF8"); + } else { + returnURL += "&existingImage="; + currentImageURL = WookieConstants.LAMS_WWW_PIXLR_FOLDER_URL + wookie.getImageFileName(); + } + + request.setAttribute("currentImageURL", currentImageURL); + request.setAttribute("wookieURL", url); + request.setAttribute("returnURL", returnURL); + + // set readOnly flag. + if (mode.equals(ToolAccessMode.TEACHER) || (wookie.isLockOnFinished() && wookieUser.isFinishedActivity())) { + request.setAttribute("contentEditable", false); + } else { + request.setAttribute("contentEditable", true); + } + request.setAttribute("finishedActivity", wookieUser.isFinishedActivity()); + return mapping.findForward("wookie"); + } + + public ActionForward updateWookieImage(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + Boolean success; + + log.debug("Saving image from wookie"); + + // set up wookieService + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(this.getServlet().getServletContext()); + } + + String imageURL = WebUtil.readStrParam(request, "image"); + Long toolSessionID = WebUtil.readLongParam(request, "toolSessionID"); + + WookieUser wookieUser = getCurrentUser(toolSessionID); + + String imageName = WebUtil.readStrParam(request, "existingImage", true); + + if (imageName == null || imageName.equals("")) { + imageName = FileUtil.generateUniqueContentFolderID() + ".jpg"; + } + + try { + InputStream is = getResponseInputStreamFromExternalServer(imageURL, new HashMap()); + + String realBaseDir = Configuration.get(ConfigurationKeys.LAMS_EAR_DIR) + File.separator + + FileUtil.LAMS_WWW_DIR + File.separator + "images" + File.separator + "wookie"; + + File imageFile = new File(realBaseDir + File.separator + imageName); + + FileOutputStream out = new FileOutputStream(imageFile); + + byte[] buf = new byte[1024]; + int len; + while ((len = is.read(buf)) > 0) { + out.write(buf, 0, len); + } + + wookieUser.setImageFileName(imageName); + + // Now save the image size + BufferedImage imageBufferedFile = ImageIO.read(imageFile); + int width = imageBufferedFile.getWidth(); + int height = imageBufferedFile.getHeight(); + wookieUser.setImageHeight(new Long(height)); + wookieUser.setImageWidth(new Long(width)); + wookieService.saveOrUpdateWookieUser(wookieUser); + success = true; + } catch (Exception e) { + log.error("Failed to copy wookie image from wookie server with URL: " + imageURL, e); + success = false; + } + + request.setAttribute("success", success); + return mapping.findForward("success"); + } + + private WookieUser getCurrentUser(Long toolSessionId) { + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); + + // attempt to retrieve user using userId and toolSessionId + WookieUser wookieUser = wookieService.getUserByUserIdAndSessionId(new Long(user.getUserID().intValue()), + toolSessionId); + + if (wookieUser == null) { + WookieSession wookieSession = wookieService.getSessionBySessionId(toolSessionId); + wookieUser = wookieService.createWookieUser(user, wookieSession); + } + + return wookieUser; + } + + public ActionForward finishActivity(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + Long toolSessionID = WebUtil.readLongParam(request, "toolSessionID"); + + WookieUser wookieUser = getCurrentUser(toolSessionID); + + if (wookieUser != null) { + wookieUser.setFinishedActivity(true); + wookieService.saveOrUpdateWookieUser(wookieUser); + } else { + log.error("finishActivity(): couldn't find WookieUser with tool session id: " + toolSessionID); + } + + ToolSessionManager sessionMgrService = WookieServiceProxy.getWookieSessionManager(getServlet() + .getServletContext()); + + String nextActivityUrl; + try { + nextActivityUrl = sessionMgrService.leaveToolSession(toolSessionID, wookieUser.getUserId()); + response.sendRedirect(nextActivityUrl); + } catch (DataMissingException e) { + throw new WookieException(e); + } catch (ToolException e) { + throw new WookieException(e); + } catch (IOException e) { + throw new WookieException(e); + } + + return null; // TODO need to return proper page. + } + + public static InputStream getResponseInputStreamFromExternalServer(String urlStr, HashMap params) + throws ToolException, IOException { + if (!urlStr.endsWith("?")) + urlStr += "?"; + + for (Entry entry : params.entrySet()) { + urlStr += "&" + entry.getKey() + "=" + entry.getValue(); + } + + log.debug("Making request to external servlet: " + urlStr); + + URL url = new URL(urlStr); + URLConnection conn = url.openConnection(); + if (!(conn instanceof HttpURLConnection)) { + log.error("Fail to connect to external server though url: " + urlStr); + throw new ToolException("Fail to connect to external server though url: " + urlStr); + } + + HttpURLConnection httpConn = (HttpURLConnection) conn; + if (httpConn.getResponseCode() != HttpURLConnection.HTTP_OK) { + log.error("Fail to fetch data from external server, response code: " + httpConn.getResponseCode() + + " Url: " + urlStr); + throw new ToolException("Fail to fetch data from external server, response code: " + + httpConn.getResponseCode() + " Url: " + urlStr); + } + + InputStream is = url.openConnection().getInputStream(); + if (is == null) { + log.error("Fail to fetch data from external server, return InputStream null: " + urlStr); + throw new ToolException("Fail to fetch data from external server, return inputStream null: " + urlStr); + } + + return is; + } + + public ActionForward openNotebook(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + LearningForm lrnForm = (LearningForm) form; + + // set the finished flag + WookieUser wookieUser = this.getCurrentUser(lrnForm.getToolSessionID()); + WookieDTO wookieDTO = new WookieDTO(wookieUser.getWookieSession().getWookie()); + + request.setAttribute("wookieDTO", wookieDTO); + + NotebookEntry notebookEntry = wookieService.getEntry(wookieUser.getWookieSession().getSessionId(), + CoreNotebookConstants.NOTEBOOK_TOOL, WookieConstants.TOOL_SIGNATURE, wookieUser.getUserId().intValue()); + + if (notebookEntry != null) { + lrnForm.setEntryText(notebookEntry.getEntry()); + } + + 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; + + WookieUser wookieUser = this.getCurrentUser(lrnForm.getToolSessionID()); + Long toolSessionID = wookieUser.getWookieSession().getSessionId(); + Integer userID = wookieUser.getUserId().intValue(); + + // check for existing notebook entry + NotebookEntry entry = wookieService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + WookieConstants.TOOL_SIGNATURE, userID); + + if (entry == null) { + // create new entry + wookieService.createNotebookEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + WookieConstants.TOOL_SIGNATURE, userID, lrnForm.getEntryText()); + } else { + // update existing entry + entry.setEntry(lrnForm.getEntryText()); + entry.setLastModified(new Date()); + wookieService.updateEntry(entry); + } + + return finishActivity(mapping, form, request, response); + } + + public ActionForward viewAllImages(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + Long toolSessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); + + ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, MODE_OPTIONAL); + + // set up wookieService + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(this.getServlet().getServletContext()); + } + + // Retrieve the session and content. + WookieSession wookieSession = wookieService.getSessionBySessionId(toolSessionID); + if (wookieSession == null) { + throw new WookieException("Cannot retreive session with toolSessionID" + toolSessionID); + } + + Wookie wookie = wookieSession.getWookie(); + + // get the user + WookieUser wookieUser; + if (mode.equals(ToolAccessMode.TEACHER)) { + Long userID = WebUtil.readLongParam(request, AttributeNames.PARAM_USER_ID, false); + wookieUser = wookieService.getUserByUserIdAndSessionId(userID, toolSessionID); + } else { + wookieUser = getCurrentUser(toolSessionID); + } + + // set completed + wookieUser.setFinishedActivity(true); + wookieService.saveOrUpdateWookieUser(wookieUser); + + // set up the of images learner set + Set learnerSet = new HashSet(); + for (WookieUser learner : wookieSession.getWookieUsers()) { + if (learner.getImageFileName() != null && !learner.getImageFileName().equals("") + && !learner.getImageFileName().equals(wookie.getImageFileName())) { + + WookieUserDTO userDTO = new WookieUserDTO(learner); + if (userDTO.getImageFileName() == null || userDTO.getImageFileName().equals("")) { + userDTO.setImageFileName(wookie.getImageFileName()); + userDTO.setImageHeight(wookie.getImageHeight()); + userDTO.setImageWidth(wookie.getImageWidth()); + } + learnerSet.add(userDTO); + } + } + request.setAttribute("learnerDTOs", learnerSet); + request.setAttribute("wookieDTO", new WookieDTO(wookie)); + request.setAttribute("mode", mode); + request.setAttribute("wookieImageFolderURL", WookieConstants.LAMS_WWW_PIXLR_FOLDER_URL); + return mapping.findForward("viewAll"); + } + + /** + * Work out if this user's language is supported by wookie + * + * @return + */ + private String getWookieLocale() { + String locale = "en"; + + String languagesCSV = wookieService.getConfigItem(WookieConfigItem.KEY_LANGUAGE_CSV) != null ? wookieService + .getConfigItem(WookieConfigItem.KEY_LANGUAGE_CSV).getConfigValue() : null; + + if (languagesCSV != null && !languagesCSV.equals("")) { + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); + + String[] languages = languagesCSV.split(","); + + for (int i = 0; i < languages.length; i++) { + if (languages[i].equals(user.getFckLanguageMapping())) { + locale = languages[i]; + break; + } + } + + } + + return locale; + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/MonitoringAction.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/MonitoringAction.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/actions/MonitoringAction.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,187 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ +/* $$Id$$ */ + +package org.lamsfoundation.lams.tool.wookie.web.actions; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +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.wookie.dto.WookieDTO; +import org.lamsfoundation.lams.tool.wookie.dto.WookieSessionDTO; +import org.lamsfoundation.lams.tool.wookie.dto.WookieUserDTO; +import org.lamsfoundation.lams.tool.wookie.model.Wookie; +import org.lamsfoundation.lams.tool.wookie.model.WookieUser; +import org.lamsfoundation.lams.tool.wookie.service.IWookieService; +import org.lamsfoundation.lams.tool.wookie.service.WookieServiceProxy; +import org.lamsfoundation.lams.tool.wookie.util.WookieConstants; +import org.lamsfoundation.lams.tool.wookie.web.forms.MonitoringForm; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.util.AttributeNames; + +/** + * @author + * @version + * + * @struts.action path="/monitoring" parameter="dispatch" scope="request" + * name="monitoringForm" validate="false" + * + * @struts.action-forward name="success" path="tiles:/monitoring/main" + * @struts.action-forward name="wookie_display" + * path="tiles:/monitoring/wookie_display" + * + */ +public class MonitoringAction extends LamsDispatchAction { + + public IWookieService wookieService; + + public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + setupService(); + + Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); + + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + + Wookie wookie = wookieService.getWookieByContentId(toolContentID); + + if (wookie == null) { + // TODO error page. + } + + WookieDTO wookieDT0 = new WookieDTO(wookie); + + for (WookieSessionDTO sessionDTO : wookieDT0.getSessionDTOs()) { + Long toolSessionID = sessionDTO.getSessionID(); + + for (WookieUserDTO userDTO : sessionDTO.getUserDTOs()) { + // get the notebook entry. + NotebookEntry notebookEntry = wookieService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + WookieConstants.TOOL_SIGNATURE, userDTO.getUserId().intValue()); + if (notebookEntry != null) { + userDTO.notebookEntry = notebookEntry.getEntry(); + userDTO.setFinishedReflection(true); + } + + } + } + + Long currentTab = WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB, true); + wookieDT0.setCurrentTab(currentTab); + + request.setAttribute("wookieDTO", wookieDT0); + request.setAttribute("contentFolderID", contentFolderID); + request.setAttribute("toolContentID", toolContentID); + request.setAttribute("wookieImageFolderURL", WookieConstants.LAMS_WWW_PIXLR_FOLDER_URL); + return mapping.findForward("success"); + } + + public ActionForward showWookie(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + setupService(); + + Long uid = new Long(WebUtil.readLongParam(request, "userUID")); + + WookieUser user = wookieService.getUserByUID(uid); + + WookieUserDTO userDTO = new WookieUserDTO(user); + + request.setAttribute("userDTO", userDTO); + + return mapping.findForward("wookie_display"); + } + + /** + * set up wookieService + */ + private void setupService() { + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(this.getServlet().getServletContext()); + } + } + + /** + * Opens a user's reflection + * + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + public ActionForward openNotebook(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + //MonitoringForm monitorForm = (MonitoringForm) form; + Long toolSessionId = WebUtil.readLongParam(request, "toolSessionID", false); + Long userID = WebUtil.readLongParam(request, "userID", false); + + WookieUser wookieUser = wookieService.getUserByUserIdAndSessionId(userID, toolSessionId); + + NotebookEntry notebookEntry = wookieService.getEntry(toolSessionId, CoreNotebookConstants.NOTEBOOK_TOOL, + WookieConstants.TOOL_SIGNATURE, userID.intValue()); + + WookieUserDTO wookieUserDTO = new WookieUserDTO(wookieUser); + wookieUserDTO.setNotebookEntry(notebookEntry.getEntry()); + + request.setAttribute("wookieUserDTO", wookieUserDTO); + + return mapping.findForward("notebook"); + } + + /** + * Opens a user's reflection + * + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + public ActionForward toggleHideImage(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + setupService(); + MonitoringForm monitorForm = (MonitoringForm) form; + WookieUser wookieUser = wookieService.getUserByUID(monitorForm.getHideUserImageUid()); + + if (wookieUser.isImageHidden()) + { + wookieUser.setImageHidden(false); + } + else + { + wookieUser.setImageHidden(true); + } + wookieService.saveOrUpdateWookieUser(wookieUser); + return unspecified(mapping, monitorForm, request, response); + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/AdminForm.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/AdminForm.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/AdminForm.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,61 @@ +/**************************************************************** + * Copyright (C) 2008 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.wookie.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; + +/** + * @struts.form name="lawookie10AdminForm" + */ +public class AdminForm extends ActionForm { + + private static final long serialVersionUID = 378528935723874238L; + + String languagesCSV; + + public AdminForm() { + } + + @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 getLanguagesCSV() { + return languagesCSV; + } + + public void setLanguagesCSV(String languagesCSV) { + this.languagesCSV = languagesCSV; + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/AuthoringForm.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/AuthoringForm.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/AuthoringForm.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,294 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.wookie.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" + */ +@SuppressWarnings("unchecked") +public class AuthoringForm extends ActionForm { + + private static final long serialVersionUID = 3950453134542135495L; + + // Properties + + String title; + + String instructions; + + String offlineInstruction; + + String onlineInstruction; + + boolean lockOnFinished; + + boolean reflectOnActivity; + + boolean allowViewOthersImages; + + String reflectInstructions; + + FormFile onlineFile; + + FormFile offlineFile; + + String currentTab; + + String dispatch; + + String sessionMapID; + + Long deleteFileUuid; + + SessionMap sessionMap; + + String contentFolderID; + + Long toolContentID; + + String existingImageFileName; + + String mode; + + // flag of this item has attachment or not + private boolean hasFile; + private Long fileUuid; + private Long fileVersionId; + private String fileName; + private FormFile file; + + + @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 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 boolean isHasFile() { + return hasFile; + } + + public void setHasFile(boolean hasFile) { + this.hasFile = hasFile; + } + + 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 String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public FormFile getFile() { + return file; + } + + public void setFile(FormFile file) { + this.file = file; + } + + public String getContentFolderID() { + return contentFolderID; + } + + public void setContentFolderID(String contentFolderID) { + this.contentFolderID = contentFolderID; + } + + public Long getToolContentID() { + return toolContentID; + } + + public void setToolContentID(Long toolContentID) { + this.toolContentID = toolContentID; + } + + public String getMode() { + return mode; + } + + public void setMode(String mode) { + this.mode = mode; + } + + public String getExistingImageFileName() { + return existingImageFileName; + } + + public void setExistingImageFileName(String existingImageFileName) { + this.existingImageFileName = existingImageFileName; + } + + public String getReflectInstructions() { + return reflectInstructions; + } + + public void setReflectInstructions(String reflectInstructions) { + this.reflectInstructions = reflectInstructions; + } + + public boolean isAllowViewOthersImages() { + return allowViewOthersImages; + } + + public void setAllowViewOthersImages(boolean allowViewOthersImages) { + this.allowViewOthersImages = allowViewOthersImages; + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/LearningForm.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/LearningForm.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/LearningForm.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,96 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.wookie.web.forms; + +import org.apache.struts.action.ActionForm; + +/** + * + * @author lfoxton + * + * @struts.form name="learningForm" + */ +public class LearningForm extends ActionForm { + + private static final long serialVersionUID = -4728946254882237144L; + + String title; + String instructions; + + String dispatch; + Long toolSessionID; + String mode; + + String entryText; + + public String getMode() { + return mode; + } + + public void setMode(String mode) { + this.mode = mode; + } + + public String getDispatch() { + return dispatch; + } + + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } + + public Long getToolSessionID() { + return toolSessionID; + } + + public void setToolSessionID(Long toolSessionID) { + this.toolSessionID = toolSessionID; + } + + public String getInstructions() { + return instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getEntryText() { + return entryText; + } + + public void setEntryText(String entryText) { + this.entryText = entryText; + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/MonitoringForm.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/MonitoringForm.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/forms/MonitoringForm.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,104 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.wookie.web.forms; + +import org.apache.struts.action.ActionForm; + +/** + * @struts.form name="monitoringForm" + */ +public class MonitoringForm extends ActionForm { + + private static final long serialVersionUID = 9096908688391850595L; + + String dispatch; + boolean teacherVisible; + Long toolSessionID; + String contentFolderID; + Long toolContentID; + + Long hideUserImageUid; + + // editing message page. + Long messageUID; + String messageBody; + boolean messageHidden; + + public String getMessageBody() { + return messageBody; + } + public void setMessageBody(String messageBody) { + this.messageBody = messageBody; + } + public Long getMessageUID() { + return messageUID; + } + public void setMessageUID(Long messageUID) { + this.messageUID = messageUID; + } + public String getDispatch() { + return dispatch; + } + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } + public Long getToolSessionID() { + return toolSessionID; + } + public void setToolSessionID(Long toolSessionID) { + this.toolSessionID = toolSessionID; + } + public boolean isTeacherVisible() { + return teacherVisible; + } + public void setTeacherVisible(boolean visible) { + this.teacherVisible = visible; + } + public boolean isMessageHidden() { + return messageHidden; + } + public void setMessageHidden(boolean messageHidden) { + this.messageHidden = messageHidden; + } + public String getContentFolderID() { + return contentFolderID; + } + public void setContentFolderID(String contentFolderID) { + this.contentFolderID = contentFolderID; + } + public Long getToolContentID() { + return toolContentID; + } + public void setToolContentID(Long toolContentID) { + this.toolContentID = toolContentID; + } + public Long getHideUserImageUid() { + return hideUserImageUid; + } + public void setHideUserImageUid(Long hideUserImageUid) { + this.hideUserImageUid = hideUserImageUid; + } +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/servlets/ExportServlet.java =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/servlets/ExportServlet.java (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/web/servlets/ExportServlet.java (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,238 @@ +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ + +package org.lamsfoundation.lams.tool.wookie.web.servlets; + +import java.util.ArrayList; + +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.learning.export.web.action.CustomToolImageBundler; +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.wookie.dto.WookieDTO; +import org.lamsfoundation.lams.tool.wookie.dto.WookieSessionDTO; +import org.lamsfoundation.lams.tool.wookie.dto.WookieUserDTO; +import org.lamsfoundation.lams.tool.wookie.model.Wookie; +import org.lamsfoundation.lams.tool.wookie.model.WookieSession; +import org.lamsfoundation.lams.tool.wookie.model.WookieUser; +import org.lamsfoundation.lams.tool.wookie.service.IWookieService; +import org.lamsfoundation.lams.tool.wookie.service.WookieServiceProxy; +import org.lamsfoundation.lams.tool.wookie.util.WookieConstants; +import org.lamsfoundation.lams.tool.wookie.util.WookieException; +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 = "wookie_main.html"; + + private IWookieService wookieService; + + protected String doExport(HttpServletRequest request, HttpServletResponse response, String directoryName, + Cookie[] cookies) { + + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(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 (WookieException e) { + logger.error("Cannot perform export for wookie tool."); + } + + String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + + request.getContextPath(); + writeResponseToFile(basePath + "/pages/export/exportPortfolio.jsp", directoryName, FILENAME, cookies); + + return FILENAME; + } + + protected String doOfflineExport(HttpServletRequest request, HttpServletResponse response, String directoryName, + Cookie[] cookies) { + if (toolContentID == null && toolSessionID == null) { + logger.error("Tool content Id or and session Id are null. Unable to activity title"); + } else { + if (wookieService == null) { + wookieService = WookieServiceProxy.getWookieService(getServletContext()); + } + + Wookie content = null; + if (toolContentID != null) { + content = wookieService.getWookieByContentId(toolContentID); + } else { + WookieSession session = wookieService.getSessionBySessionId(toolSessionID); + if (session != null) + content = session.getWookie(); + } + if (content != null) { + activityTitle = content.getTitle(); + } + } + return super.doOfflineExport(request, response, directoryName, cookies); + } + + private void doLearnerExport(HttpServletRequest request, HttpServletResponse response, String directoryName, + Cookie[] cookies) throws WookieException { + + logger.debug("doExportLearner: toolContentID:" + toolSessionID); + + // check if toolContentID available + if (toolSessionID == null) { + String error = "Tool Session ID is missing. Unable to continue"; + logger.error(error); + throw new WookieException(error); + } + + WookieSession wookieSession = wookieService.getSessionBySessionId(toolSessionID); + + Wookie wookie = wookieSession.getWookie(); + + UserDTO lamsUserDTO = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); + + WookieUser wookieUser = wookieService + .getUserByUserIdAndSessionId(new Long(lamsUserDTO.getUserID()), toolSessionID); + + //NotebookEntry wookieEntry = wookieService.getEntry(wookieUser.getEntryUID()); + + // construct dto's + WookieDTO wookieDTO = new WookieDTO(wookie); + + WookieSessionDTO sessionDTO = new WookieSessionDTO(); + sessionDTO.setSessionName(wookieSession.getSessionName()); + sessionDTO.setSessionID(wookieSession.getSessionId()); + + // If the user hasn't put in their entry yet, wookieEntry will be null; + WookieUserDTO userDTO = new WookieUserDTO(wookieUser); + + sessionDTO.getUserDTOs().add(userDTO); + wookieDTO.getSessionDTOs().add(sessionDTO); + + NotebookEntry notebookEntry = wookieService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + WookieConstants.TOOL_SIGNATURE, userDTO.getUserId().intValue()); + + if (notebookEntry != null) + { + userDTO.setNotebookEntry(notebookEntry.getEntry()); + userDTO.setFinishedReflection(true); + } + + String imageFileArray[] = new String[2]; + imageFileArray[0] = wookieDTO.getImageFileName(); + + if (userDTO.getImageFileName() != null) + { + imageFileArray[1] = userDTO.getImageFileName(); + } + + // bundling the images in export + try { + CustomToolImageBundler imageBundler = new CustomToolImageBundler(); + imageBundler.bundle(request, cookies, directoryName, WookieConstants.LAMS_WWW_PIXLR_FOLDER_URL, imageFileArray); + } catch (Exception e) { + logger.error("Could not export gmap images, some images may be missing in export portfolio", e); + } + + request.getSession().setAttribute("userDTO", userDTO); + request.getSession().setAttribute("wookieDTO", wookieDTO); + } + + private void doTeacherExport(HttpServletRequest request, HttpServletResponse response, String directoryName, + Cookie[] cookies) throws WookieException { + + 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 WookieException(error); + } + + Wookie wookie = wookieService.getWookieByContentId(toolContentID); + + WookieDTO wookieDTO = new WookieDTO(wookie); + + // Creating a list of image files to copy for export + ArrayList imageFiles = new ArrayList(); + imageFiles.add(wookie.getImageFileName()); + + for (WookieSessionDTO sessionDTO : wookieDTO.getSessionDTOs()) { + Long toolSessionID = sessionDTO.getSessionID(); + + for (WookieUserDTO userDTO : sessionDTO.getUserDTOs()) { + // get the notebook entry. + NotebookEntry notebookEntry = wookieService.getEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + WookieConstants.TOOL_SIGNATURE, userDTO.getUserId().intValue()); + if (notebookEntry != null) { + userDTO.notebookEntry = notebookEntry.getEntry(); + userDTO.setFinishedReflection(true); + if (userDTO.getImageFileName() != null && !userDTO.getImageFileName().equals(wookieDTO.getImageFileName())) + { + imageFiles.add(userDTO.getImageFileName()); + } + } + + } + } + + String[] imageFileArray = new String[imageFiles.size()]; + int i=0; + for (String image : imageFiles) + { + imageFileArray[i] = image; + i++; + } + + // bundling the images in export + try { + CustomToolImageBundler imageBundler = new CustomToolImageBundler(); + imageBundler.bundle(request, cookies, directoryName, WookieConstants.LAMS_WWW_PIXLR_FOLDER_URL, imageFileArray); + } catch (Exception e) { + logger.error("Could not export gmap images, some images may be missing in export portfolio", e); + } + + request.getSession().setAttribute("wookieDTO", wookieDTO); + } + +} Index: lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/wookieApplicationContext.xml =================================================================== diff -u --- lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/wookieApplicationContext.xml (revision 0) +++ lams_tool_wookie/src/java/org/lamsfoundation/lams/tool/wookie/wookieApplicationContext.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + org.lamsfoundation.lams.tool.wookie.ApplicationResources + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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_wookie/web/403.jsp =================================================================== diff -u --- lams_tool_wookie/web/403.jsp (revision 0) +++ lams_tool_wookie/web/403.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,25 @@ +<%-- +Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) +License Information: http://lamsfoundation.org/licensing/lams/2.0/ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + http://www.gnu.org/licenses/gpl.txt +--%> +<%@ 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_wookie/web/404.jsp =================================================================== diff -u --- lams_tool_wookie/web/404.jsp (revision 0) +++ lams_tool_wookie/web/404.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,27 @@ +<%-- +Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) +License Information: http://lamsfoundation.org/licensing/lams/2.0/ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + http://www.gnu.org/licenses/gpl.txt +--%> +<%@ 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_wookie/web/META-INF/MANIFEST.MF =================================================================== diff -u --- lams_tool_wookie/web/META-INF/MANIFEST.MF (revision 0) +++ lams_tool_wookie/web/META-INF/MANIFEST.MF (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,5 @@ +Implementation-Title: LAMS - Wookie Tool +Implementation-Version: 2.1 +Implementation-Vendor: LAMS Foundation (http://lamsfoundation.org) +Class-Path: + Index: lams_tool_wookie/web/WEB-INF/fckeditor/tlds/FCKeditor.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/fckeditor/tlds/FCKeditor.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/fckeditor/tlds/FCKeditor.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,129 @@ + + + + The FCKeditor Tag Library offers a very convenient way to create + several FCKeditor instances with different configurations. + Additionally, you can check for user-based capabilities. + + FCKeditor Tag Library + 2.4 + FCK + http://java.fckeditor.net + + + Creates a FCKeditor instance with the given parameters. Any + parameter except instanceName which is empty or contains + whitespaces only will be ignored. + + editor + editor + net.fckeditor.tags.EditorTag + JSP + + + The unique instance name under which the editor can be + retrieved through the API. + + instanceName + true + true + java.lang.String + + + + Width of the FCKeditor instance in the browser window. + + width + true + java.lang.String + + + + Height of the FCKeditor instance in the browser window. + + height + true + java.lang.String + + + + The toolbar set which shall be displayed to the user. + + toolbarSet + true + java.lang.String + + + + The path/folder in which the editor is deployed under + the given context. The context path will be attached + automatically. (e.g. '/fckeditor') + + basePath + true + java.lang.String + + + + Passes any content to the FCKeditor document. Use the + jsp:attribute tag for large inline content. \r, \n, and + \t will be truncated. + + value + true + java.lang.String + + ]]> + + + + + Sets a config property of the editor to the supplied value. + You may provide any attribute you want for the editor. Set + at least one attribute per tag or several attributes with + one tag. This tag can only be nested within an editor tag. + For all configuration options click + here]]>. + + config + config + net.fckeditor.tags.ConfigTag + empty + true + + ]]> + + + + + Displays session-dependent and compatibility-related + information. This tag is intended for developers only. + Response messages cannot be localized, they are English + only. + + check + check + net.fckeditor.tags.CheckTag + empty + + + Provide the feature name you want to check. Valid + features are [FileUpload, FileBrowsing, + CompatibleBrowser] + + command + true + java.lang.String + + +]]> + + + Index: lams_tool_wookie/web/WEB-INF/jstl/tlds/c.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/jstl/tlds/c.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/jstl/tlds/c.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/jstl/tlds/fmt.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/jstl/tlds/fmt.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/jstl/tlds/fmt.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/jstl/tlds/fn.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/jstl/tlds/fn.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/jstl/tlds/fn.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/jstl/tlds/permittedTaglibs.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/jstl/tlds/permittedTaglibs.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/jstl/tlds/permittedTaglibs.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/jstl/tlds/scriptfree.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/jstl/tlds/scriptfree.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/jstl/tlds/scriptfree.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/jstl/tlds/x.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/jstl/tlds/x.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/jstl/tlds/x.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/lams.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/lams.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/lams.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,517 @@ + + + + + 1.0 + lams + + LAMSTags + + + + + 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 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 + + + + + + + Get the configuration value for the specified key + Configuration value + + + Configuration + org.lamsfoundation.lams.web.tag.ConfigurationTag + empty + + + Get the configuration value for the specified key + key + false + + true + + + + + + + Output the Server URL as defined in the lams.xml configuration file. + LAMS URL + + + LAMSURL + org.lamsfoundation.lams.web.tag.LAMSURLTag + empty + + + + + 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 + + + + + + + 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 + + + + Converts text from \n or \r\n to <BR> before rendering + escapeHtml + false + + true + + + + + + + Help tag + Help tag + + + help + org.lamsfoundation.lams.web.tag.HelpTag + empty + + + Help tag + module + false + + true + + + + Help tag + toolSignature + false + + true + + + + Help tag + page + false + + true + + + + Help tag + style + false + + true + + + + + + + Converts role name into form usable as message resources key + Converts role name into form usable as message resources key + + + role + org.lamsfoundation.lams.web.tag.RoleTag + empty + + + Converts role name into form usable as message resources key + role + true + + true + + + + + + + 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 + + + + Output stylesheet based on the user preferences. + style + 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 + + + + + + + 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 + + + index + 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 + + + TabName + /WEB-INF/tags/TabName.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 + + + ImgButtonWrapper + /WEB-INF/tags/ImgButtonWrapper.tag + + + TextSearch + /WEB-INF/tags/TextSearch.tag + + + textarea + org.lamsfoundation.lams.web.tag.LAMSMultiLinesTextareaTag + JSP + true + + Render text exactly same as original input, which even won't escape the input HTML tag. + + + + + name + true + true + + + + + id + false + true + + + + + onchange + false + true + + + + head + /WEB-INF/tags/Head.tag + + + ProgressOutput + /WEB-INF/tags/ProgressOutput.tag + + + LearnerFlashEnabled + /WEB-INF/tags/LearnerFlashEnabled.tag + + + Index: lams_tool_wookie/web/WEB-INF/struts/struts-config.xml =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/struts/struts-config.xml (revision 0) +++ lams_tool_wookie/web/WEB-INF/struts/struts-config.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/web/WEB-INF/struts/tiles-defs.xml =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/struts/tiles-defs.xml (revision 0) +++ lams_tool_wookie/web/WEB-INF/struts/tiles-defs.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/web/WEB-INF/struts/tlds/struts-bean.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/struts/tlds/struts-bean.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/struts/tlds/struts-bean.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/struts/tlds/struts-html.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/struts/tlds/struts-html.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/struts/tlds/struts-html.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/struts/tlds/struts-logic.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/struts/tlds/struts-logic.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/struts/tlds/struts-logic.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/struts/tlds/struts-nested.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/struts/tlds/struts-nested.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/struts/tlds/struts-nested.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/struts/tlds/struts-tiles.tld =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/struts/tlds/struts-tiles.tld (revision 0) +++ lams_tool_wookie/web/WEB-INF/struts/tlds/struts-tiles.tld (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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_wookie/web/WEB-INF/struts/validator-rules.xml =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/struts/validator-rules.xml (revision 0) +++ lams_tool_wookie/web/WEB-INF/struts/validator-rules.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/web/WEB-INF/tags/AuthoringButton.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/AuthoringButton.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/AuthoringButton.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * 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_wookie/web/WEB-INF/tags/Date.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/Date.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/Date.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * 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" %> +<%@ attribute name="style" required="false" rtexprvalue="true"%> +<%@ attribute name="type" required="false" rtexprvalue="true"%> + +<%@ taglib uri="tags-fmt" prefix="fmt" %> +<%@ taglib uri="tags-core" prefix="c" %> + + + + + + + + + + + + + Index: lams_tool_wookie/web/WEB-INF/tags/DefineLater.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/DefineLater.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/DefineLater.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,58 @@ + +<% + /**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * 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_wookie/web/WEB-INF/tags/ExportPortOutput.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/ExportPortOutput.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/ExportPortOutput.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * 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" %> + +
  • + + + " target="_blank"/> + + + + + + + + +
      + + + +
    +
    +
    + +
  • + Index: lams_tool_wookie/web/WEB-INF/tags/FCKEditor.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/FCKEditor.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/FCKEditor.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,77 @@ +<%@ 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="height" required="false" rtexprvalue="true"%> +<%@ attribute name="width" required="false" rtexprvalue="true"%> +<%@ attribute name="contentFolderID" required="false" rtexprvalue="true"%> +<%@ attribute name="displayExpanded" required="false" rtexprvalue="true"%> + + + + + + + + + + + + + + + + + +/fckeditor/ + + + + +${value} + + + + + + + + Index: lams_tool_wookie/web/WEB-INF/tags/Head.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/Head.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/Head.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/** + * Head.tag + * Author: Fiona Malikoff + * Description: Sets up the non-cache pragma statements and the UTF-8 + * encoding. Use in place of the normal head tag. + */ +%> + +<%@ tag body-content="scriptless"%> + + + + + + + + + Index: lams_tool_wookie/web/WEB-INF/tags/ImgButtonWrapper.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/ImgButtonWrapper.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/ImgButtonWrapper.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * ImgButtonWrapper.tag + * Author: Mitchell Seaton + * Description: Simple wrapper that will display buttons correctly when RTL page rendering is used. + */ + + %> +<%@ tag body-content="scriptless" %> +
    +
    + +
    +
    Index: lams_tool_wookie/web/WEB-INF/tags/LearnerFlashEnabled.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/LearnerFlashEnabled.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/LearnerFlashEnabled.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,45 @@ +<% +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * Learner Flash Enabled + * Author: Fiona Malikoff + * Description: Is Flash enabled for learner? + * + */ + + %> +<%@ tag body-content="empty" %> +<%@ taglib uri="tags-core" prefix="c" %> +<%@ taglib uri="tags-lams" prefix="lams" %> + + + + + + true + false + + + Index: lams_tool_wookie/web/WEB-INF/tags/Passon.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/Passon.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/Passon.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,86 @@ +<% +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * 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="version" required="false" rtexprvalue="true" %> +<%@ 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_wookie/web/WEB-INF/tags/ProgressOutput.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/ProgressOutput.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/ProgressOutput.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * Progress Output + * Author: Fiona Malikoff + * Description: Outputs the Activity details on the jsp progress page. Recursive tag + * + */ + + /** Need to add current ! */ + + %> +<%@ tag body-content="empty" %> +<%@ attribute name="activity" required="true" rtexprvalue="true" type="org.lamsfoundation.lams.learning.web.bean.ActivityURL" %> +<%@ taglib uri="tags-core" prefix="c" %> +<%@ taglib uri="tags-lams" prefix="lams" %> + +
  • + + + + + + + + + + + + + + + + + + + + + + + + ${activity.title} + + + + + +
      + + + +
    +
    +
    + +
  • + Index: lams_tool_wookie/web/WEB-INF/tags/Tab.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/Tab.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/Tab.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * 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"%> + +<%-- Check if bundle is set --%> + + + + + + + + + + +<%-- + Usually methodCall is selectTab, but the calling code can override methodCall if desired. + this is handy if the page needs different logic on initialisation and user switching tabs +--%> + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/web/WEB-INF/tags/TabBody.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/TabBody.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/TabBody.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * 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_wookie/web/WEB-INF/tags/TabName.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/TabName.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/TabName.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,60 @@ +<%/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/** + * TabName Tag + * Author: Mitchell Seaton + * Description: Shortens name that are too long to fit inside a tab + */ + + %> +<%@ tag body-content="scriptless" %> + +<%@ attribute name="url" required="true" rtexprvalue="true"%> +<%@ attribute name="highlight" required="false" rtexprvalue="true" %> + +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-function" prefix="fn"%> + +12 + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_wookie/web/WEB-INF/tags/Tabs.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/Tabs.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/Tabs.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,69 @@ +<%/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * 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_wookie/web/WEB-INF/tags/TextSearch.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/TextSearch.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/TextSearch.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,136 @@ +<% +/**************************************************************** + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * TextSearch.tag + * Author: Marcin Cieslak + * Description: Displays form for creating text search conditions. + */ + + %> +<%@ tag body-content="scriptless" %> +<%@ taglib uri="tags-core" prefix="c" %> +<%@ taglib uri="tags-fmt" prefix="fmt" %> +<%@ taglib uri="tags-html" prefix="html" %> +<%@ taglib uri="tags-lams" prefix="lams" %> + +<%-- Required attributes --%> +<%@ attribute name="sessionMapID" required="true" rtexprvalue="true" %> +<%@ attribute name="wrapInFormTag" required="true" rtexprvalue="true" %> + +<%-- Optional attributes --%> +<%@ attribute name="action" required="false" rtexprvalue="true" %> +<%@ attribute name="formID" required="false" rtexprvalue="true" %> +<%@ attribute name="headingLabelKey" required="false" rtexprvalue="true" %> +<%@ attribute name="allWordsLabelKey" required="false" rtexprvalue="true" %> +<%@ attribute name="phraseLabelKey" required="false" rtexprvalue="true" %> +<%@ attribute name="anyWordsLabelKey" required="false" rtexprvalue="true" %> +<%@ attribute name="excludedWordsLabelKey" required="false" rtexprvalue="true" %> +<%@ attribute name="saveButtonLabelKey" required="false" rtexprvalue="true" %> +<%@ attribute name="cancelButtonLabelKey" required="false" rtexprvalue="true" %> +<%@ attribute name="cancelAction" required="false" rtexprvalue="true" %> + +<%-- Default value for message key --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +

    + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + + + + + + + + Index: lams_tool_wookie/web/WEB-INF/tags/headItems.tag =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/tags/headItems.tag (revision 0) +++ lams_tool_wookie/web/WEB-INF/tags/headItems.tag (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * 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_wookie/web/WEB-INF/web.xml =================================================================== diff -u --- lams_tool_wookie/web/WEB-INF/web.xml (revision 0) +++ lams_tool_wookie/web/WEB-INF/web.xml (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,343 @@ + + + + + + + javax.servlet.jsp.jstl.fmt.localizationContext + org.lamsfoundation.lams.tool.wookie.ApplicationResources + + + + contextClass + org.jboss.spring.factory.VFSXmlWebApplicationContext + + + contextConfigLocation + classpath:/org/lamsfoundation/lams/tool/wookie/dbupdates/autopatchContext.xml + + + locatorFactorySelector + classpath:/org/lamsfoundation/lams/beanRefContext.xml + + + parentContextKey + context.central + + + + SystemSessionFilter + + org.lamsfoundation.lams.web.session.SystemSessionFilter + + + + hibernateFilter + + org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter + + + sessionFactoryBeanName + coreSessionFactory + + + + LocaleFilter + + org.lamsfoundation.lams.web.filter.LocaleFilter + + + + + SystemSessionFilter + /* + + + hibernateFilter + /* + + + LocaleFilter + /* + + + + + org.springframework.web.context.ContextLoaderListener + + + + + org.lamsfoundation.lams.web.session.SetMaxTimeoutListener + + + + + action + org.apache.struts.action.ActionServlet + + config + /WEB-INF/struts/struts-config.xml + + + debug + 999 + + + detail + 2 + + + validate + true + + 1 + + + + + + Connector + net.fckeditor.connector.ConnectorServlet + + baseDir + /UserFiles/ + + + debug + false + + 1 + + + + + Attachment Download + Attachment Download + download + org.lamsfoundation.lams.contentrepository.client.ToolDownload + + toolContentHandlerBeanName + wookieToolContentHandler + + 3 + + + + exportPortfolio + org.lamsfoundation.lams.tool.wookie.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 + AUTHOR ADMIN + + + + + + Authoring Update + /authoring.do + + + AUTHOR + AUTHOR ADMIN + SYSADMIN + + + + + Staff Content + /monitoring.do + + + MONITOR + TEACHER + + + + + + + Download Files + /download/ + + + AUTHOR + MONITOR + TEACHER + ADMIN + SYSADMIN + AUTHOR ADMIN + + + + + + 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 + + + Can create/modify a learning design and edit default tool content + AUTHOR ADMIN + + + Index: lams_tool_wookie/web/common/empty.jsp =================================================================== diff -u --- lams_tool_wookie/web/common/empty.jsp (revision 0) +++ lams_tool_wookie/web/common/empty.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_wookie/web/common/footer.jsp =================================================================== diff -u --- lams_tool_wookie/web/common/footer.jsp (revision 0) +++ lams_tool_wookie/web/common/footer.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1 @@ +

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

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

    + ${requestScope.message}; +

    Index: lams_tool_wookie/web/common/messages.jsp =================================================================== diff -u --- lams_tool_wookie/web/common/messages.jsp (revision 0) +++ lams_tool_wookie/web/common/messages.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,20 @@ +<%-- Error Messages --%> + +
    + +    +   
    +
    +
    +
    + +<%-- Success Messages --%> + +
    + +    +   
    +
    +
    +
    Index: lams_tool_wookie/web/common/taglibs.jsp =================================================================== diff -u --- lams_tool_wookie/web/common/taglibs.jsp (revision 0) +++ lams_tool_wookie/web/common/taglibs.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,11 @@ +<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%> + +<%@ taglib uri="tags-bean" prefix="bean"%> +<%@ taglib uri="tags-logic" prefix="logic"%> +<%@ taglib uri="tags-tiles" prefix="tiles"%> +<%@ taglib uri="tags-html" prefix="html"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="fck-editor" prefix="fck"%> + Index: lams_tool_wookie/web/css/images/widget-bg.png =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/css/wookie.css =================================================================== diff -u --- lams_tool_wookie/web/css/wookie.css (revision 0) +++ lams_tool_wookie/web/css/wookie.css (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,101 @@ + +.table-wookie{ + height: 285px; + width: 180px; + margin-top: 10px; + vertical-align: top; + text-align: center; +} + +.td-widget{ + text-align: center; + padding-top: 0px; + padding-right: 0px; + padding-bottom: 0px; + padding-left: 0px; +} + +.wookie-widget{ + background: url('images/widget-bg.png'); + height: 285px; + width: 180px; + margin-top: 0px; + vertical-align: top; + text-align: center; +} + +.wookie-icon-area{ + height: 100px; + width: 140px; + margin-top: 0px; + background-color: white; + border-color: #999; + border-style: solid; + border-width: 1px; + text-align:center; +} + +.wookie-icon{ + margin-top: 10px; +} + +.wookie-title{ + font-family: Verdana,Arial,sans-serif; + margin-top: 20px; + font-weight: bold; + font-size: 12px; + padding-left: 20px; + padding-right: 20px; + height: 25px; + text-align:center; + vertical-align: top; +} + +.wookie-description{ + margin-top: 20px; + font-size: 10px; + padding: 20px; + height: 90px; + vertical-align: top; + font-family: Verdana,Arial,sans-serif; +} + +.wookie-list{ + height: 40px; + width: 200px; + margin-left: auto; + margin-right: auto; +} + +#pager ul.pages { + display:block; + border:none; + font-size:10px; + margin:0px 0 0px; + padding:0; +} + +#pager ul.pages li { + list-style:none; + float:left; + border:1px solid #ccc; + text-decoration:none; + margin:0 5px 0 0; + padding:5px; +} + +#pager ul.pages li:hover { + border:1px solid #003f7e; +} + +#pager ul.pages li.pgEmpty { + border:1px solid #eee; + color:#eee; +} + +#pager ul.pages li.pgCurrent { + border:1px solid #003f7e; + color:#000; + font-weight:700; + background-color:#eee; +} \ No newline at end of file Index: lams_tool_wookie/web/error.jsp =================================================================== diff -u --- lams_tool_wookie/web/error.jsp (revision 0) +++ lams_tool_wookie/web/error.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,91 @@ +<%-- +Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) +License Information: http://lamsfoundation.org/licensing/lams/2.0/ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + http://www.gnu.org/licenses/gpl.txt +--%> + + + +<%@ 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_wookie/web/images/blank.jpg =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/images/cross.gif =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/images/down.gif =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/images/down_disabled.gif =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/images/edit.gif =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/images/icon_wookie.swf =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/images/success.gif =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/images/up.gif =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/images/up_disabled.gif =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/images/wookie_logo.svg.zip =================================================================== diff -u Binary files differ Index: lams_tool_wookie/web/includes/javascript/authoring.js =================================================================== diff -u --- lams_tool_wookie/web/includes/javascript/authoring.js (revision 0) +++ lams_tool_wookie/web/includes/javascript/authoring.js (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,46 @@ + +function init() { + // open the current tab + var tag = document.getElementById("currentTab"); + if (tag.value != "") { + selectTab(tag.value); + } else { + selectTab(1); + } + + image = document.getElementById("image"); + if (image != null) + { + origImageHeight = image.height; + origImageWidth = image.width; + + if (image.height >= image.width) + { + if (image.height > 300) + { + image.height = 300; + } + } + else + { + if (image.width > 300) + { + image.width = 300; + } + } + } +} +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_wookie/web/includes/javascript/common.js =================================================================== diff -u --- lams_tool_wookie/web/includes/javascript/common.js (revision 0) +++ lams_tool_wookie/web/includes/javascript/common.js (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,10 @@ + +var popupWindow = null; +function openPopup(url, height, width) +{ + if(popupWindow && popupWindow.open && !popupWindow.closed){ + popupWindow.close(); + } + popupWindow = window.open(url,'popupWindow','resizable,width=' +width+ ',height=' +height+ ',scrollbars'); + popupWindow.window.focus(); +} Index: lams_tool_wookie/web/includes/javascript/jquery.pager.js =================================================================== diff -u --- lams_tool_wookie/web/includes/javascript/jquery.pager.js (revision 0) +++ lams_tool_wookie/web/includes/javascript/jquery.pager.js (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,132 @@ +/* +* jQuery pager plugin +* Version 1.0 (12/22/2008) +* @requires jQuery v1.2.6 or later +* +* Example at: http://jonpauldavies.github.com/JQuery/Pager/PagerDemo.html +* +* Copyright (c) 2008-2009 Jon Paul Davies +* Dual licensed under the MIT and GPL licenses: +* http://www.opensource.org/licenses/mit-license.php +* http://www.gnu.org/licenses/gpl.html +* +* Read the related blog post and contact the author at http://www.j-dee.com/2008/12/22/jquery-pager-plugin/ +* +* This version is far from perfect and doesn't manage it's own state, therefore contributions are more than welcome! +* +* Usage: .pager({ pagenumber: 1, pagecount: 15, buttonClickCallback: PagerClickTest }); +* +* Where pagenumber is the visible page number +* pagecount is the total number of pages to display +* buttonClickCallback is the method to fire when a pager button is clicked. +* +* buttonClickCallback signiture is PagerClickTest = function(pageclickednumber) +* Where pageclickednumber is the number of the page clicked in the control. +* +* The included Pager.CSS file is a dependancy but can obviously tweaked to your wishes +* Tested in IE6 IE7 Firefox & Safari. Any browser strangeness, please report. +*/ +(function($) { + + $.fn.pager = function(options) { + + var opts = $.extend({}, $.fn.pager.defaults, options); + + return this.each(function() { + + // empty out the destination element and then render out the pager with the supplied options + $(this).empty().append(renderpager(parseInt(options.pagenumber), parseInt(options.pagecount), options.buttonClickCallback)); + + // specify correct cursor activity + $('.pages li').mouseover(function() { document.body.style.cursor = "pointer"; }).mouseout(function() { document.body.style.cursor = "auto"; }); + }); + }; + + // render and return the pager with the supplied options + function renderpager(pagenumber, pagecount, buttonClickCallback) { + + // setup $pager to hold render + var $pager = $('
      '); + + // add in the previous and next buttons + $pager.append(renderButton('first', pagenumber, pagecount, buttonClickCallback)).append(renderButton('prev', pagenumber, pagecount, buttonClickCallback)); + + // pager currently only handles 10 viewable pages ( could be easily parameterized, maybe in next version ) so handle edge cases + var startPoint = 1; + var endPoint = 9; + + if (pagenumber > 4) { + startPoint = pagenumber - 4; + endPoint = pagenumber + 4; + } + + if (endPoint > pagecount) { + startPoint = pagecount - 8; + endPoint = pagecount; + } + + if (startPoint < 1) { + startPoint = 1; + } + + // loop thru visible pages and render buttons + for (var page = startPoint; page <= endPoint; page++) { + + var currentButton = $('
    • ' + (page) + '
    • '); + + page == pagenumber ? currentButton.addClass('pgCurrent') : currentButton.click(function() { buttonClickCallback(this.firstChild.data); }); + currentButton.appendTo($pager); + } + + // render in the next and last buttons before returning the whole rendered control back. + $pager.append(renderButton('next', pagenumber, pagecount, buttonClickCallback)).append(renderButton('last', pagenumber, pagecount, buttonClickCallback)); + + return $pager; + } + + // renders and returns a 'specialized' button, ie 'next', 'previous' etc. rather than a page number button + function renderButton(buttonLabel, pagenumber, pagecount, buttonClickCallback) { + + var $Button = $('
    • ' + buttonLabel + '
    • '); + + var destPage = 1; + + // work out destination page for required button type + switch (buttonLabel) { + case "first": + destPage = 1; + break; + case "prev": + destPage = pagenumber - 1; + break; + case "next": + destPage = pagenumber + 1; + break; + case "last": + destPage = pagecount; + break; + } + + // disable and 'grey' out buttons if not needed. + if (buttonLabel == "first" || buttonLabel == "prev") { + pagenumber <= 1 ? $Button.addClass('pgEmpty') : $Button.click(function() { buttonClickCallback(destPage); }); + } + else { + pagenumber >= pagecount ? $Button.addClass('pgEmpty') : $Button.click(function() { buttonClickCallback(destPage); }); + } + + return $Button; + } + + // pager defaults. hardly worth bothering with in this case but used as placeholder for expansion in the next version + $.fn.pager.defaults = { + pagenumber: 1, + pagecount: 1 + }; + +})(jQuery); + + + + + Index: lams_tool_wookie/web/includes/javascript/learning.js =================================================================== diff -u --- lams_tool_wookie/web/includes/javascript/learning.js (revision 0) +++ lams_tool_wookie/web/includes/javascript/learning.js (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,39 @@ + +var origImageHeight; +var origImageWidth; + +function init() +{ + //resizing image to thumbnail size + var image = document.getElementById("image"); + origImageHeight = image.height; + origImageWidth = image.width; + if (image.height >= image.width) + { + if (image.height > 300) + { + image.height = 300; + } + } + else + { + if (image.width > 300) + { + image.width = 300; + } + } +} + +function openImage(url) +{ + openPopup(url, origImageHeight, origImageWidth) +} + +function disableFinishButton() +{ + document.getElementById("finishButton").disabled = true; +} + +function validateForm() +{ +} Index: lams_tool_wookie/web/includes/javascript/monitoring.js =================================================================== diff -u --- lams_tool_wookie/web/includes/javascript/monitoring.js (revision 0) +++ lams_tool_wookie/web/includes/javascript/monitoring.js (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,16 @@ + +function init() { + if (initialTabId) { + selectTab(initialTabId); + } else { + selectTab(1); + } +} +function doSelectTab(tabId) { + selectTab(tabId); +} +function doSubmit(method, tabId) { + document.monitoringForm.method.value = method; + document.monitoringForm.submit(); +} + Index: lams_tool_wookie/web/layouts/defaultLayout.jsp =================================================================== diff -u --- lams_tool_wookie/web/layouts/defaultLayout.jsp (revision 0) +++ lams_tool_wookie/web/layouts/defaultLayout.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,22 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + +
      + + +

      + +

      +
      +
      + +
      + +
      + +
      Index: lams_tool_wookie/web/layouts/learningLayout.jsp =================================================================== diff -u --- lams_tool_wookie/web/layouts/learningLayout.jsp (revision 0) +++ lams_tool_wookie/web/layouts/learningLayout.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,13 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + Index: lams_tool_wookie/web/layouts/tabLayout.jsp =================================================================== diff -u --- lams_tool_wookie/web/layouts/tabLayout.jsp (revision 0) +++ lams_tool_wookie/web/layouts/tabLayout.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,18 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + +
      + + +

      + +

      + +
      + +
      Index: lams_tool_wookie/web/pages/admin/config.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/admin/config.jsp (revision 0) +++ lams_tool_wookie/web/pages/admin/config.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,61 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + <fmt:message key="pageTitle.admin" /> + + + + + +
      + +

      + +

      + + + +

      + + +

      + +

      + + + +

      + +

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

      + + + + + + + + Index: lams_tool_wookie/web/pages/authoring/advanced.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/authoring/advanced.jsp (revision 0) +++ lams_tool_wookie/web/pages/authoring/advanced.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,51 @@ +<%@ include file="/common/taglibs.jsp"%> + + + +

      + + +

      + +

      + + +

      + +

      + + + +

      +

      + +

      + + + Index: lams_tool_wookie/web/pages/authoring/authoring.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/authoring/authoring.jsp (revision 0) +++ lams_tool_wookie/web/pages/authoring/authoring.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,77 @@ +<%@ include file="/common/taglibs.jsp"%> + +<%@ page + import="org.lamsfoundation.lams.tool.wookie.util.WookieConstants"%> + + + + + + + + + + + + + + +
      + + + + + + + + +
      + + + + +

      + +
      +
      +

      +
      +
      + + + + <%-- Page tabs --%> + + + + + + + +
      +
      + + + Index: lams_tool_wookie/web/pages/authoring/basic.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/authoring/basic.jsp (revision 0) +++ lams_tool_wookie/web/pages/authoring/basic.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,107 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + + +
      +
      + +
      + +
      +
      + +
      + +
      +
      +
      +
      +
      +
      + +
      +
      \ No newline at end of file Index: lams_tool_wookie/web/pages/authoring/headItems.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/authoring/headItems.jsp (revision 0) +++ lams_tool_wookie/web/pages/authoring/headItems.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,16 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + Index: lams_tool_wookie/web/pages/authoring/instructions.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/authoring/instructions.jsp (revision 0) +++ lams_tool_wookie/web/pages/authoring/instructions.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,207 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + <%-- Online Instructions --%> + + + + + <%-- Online Attachments --%> + + + + + + + <%-- Online Attachments Upload --%> + + + + + + + + + <%-- Offline Instructions --%> + + + + + + + <%-- Offline Attachments --%> + + + + + + + <%--Offline Attachments Upload --%> + + + + +
      +
      + +
      + +
      +
      +
        + + <%-- Online Saved Files --%> + +
      • + + + + + +   + + + + + +   + + + + +
      • +
        + + <%-- Online Unsaved Files --%> + +
      • + + * + + + + +   + + + + + +   + + + + +
      • +
        + +
      +
      +
      +
      + +
      + + + + + + + +
      +
      +
      +
      + +
      + +
      +
      +
        + + <%-- Offline Saved Attachments --%> + +
      • + + + + + +   + + + + + +   + + + + +
      • +
        + + <%-- Offline Unsaved Attachments --%> + +
      • + + * + + + + +   + + + + + +   + + + + +
      • +
        + +
      +
      +
      +
      + +
      + + + + + + + +
      Index: lams_tool_wookie/web/pages/authoring/widgetList.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/authoring/widgetList.jsp (revision 0) +++ lams_tool_wookie/web/pages/authoring/widgetList.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,60 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + +
      + + + + + + + + + + + + +
      +
      + +
      +
      + ${widget.title} +
      + ${widget.description} +
      +
      + + + + + + + + + + + + +
      +
      + +
      +
      + ${widget.title} +
      + ${widget.description} +
      +
      + Index: lams_tool_wookie/web/pages/export/exportPortfolio.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/export/exportPortfolio.jsp (revision 0) +++ lams_tool_wookie/web/pages/export/exportPortfolio.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,187 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + <c:out value="${wookieDTO.title}" escapeXml="false" /> + + + + + + + + +
      + +

      + +

      + +
      + +

      + +
      +         + +
      + + + + +

      + + +
      + +
      + +
      + + +
      +

      ${session.sessionName}

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

      + ${userDTO.firstName} ${userDTO.lastName} +

      + + + + + +

      + +

      +
      +
      + + +

      + +

      + +

      + ${wookieDTO.reflectInstructions} +

      + + + +

      + ${userDTO.notebookEntry} +

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

      + +

      + +
      + + + Index: lams_tool_wookie/web/pages/learning/headItems.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/learning/headItems.jsp (revision 0) +++ lams_tool_wookie/web/pages/learning/headItems.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_wookie/web/pages/learning/image.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/learning/image.jsp (revision 0) +++ lams_tool_wookie/web/pages/learning/image.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,28 @@ + +<%@ include file="/common/taglibs.jsp"%> + +<% +String imageURL = request.getParameter("imageURL"); +%> + + + + + + + + + + + + + Index: lams_tool_wookie/web/pages/learning/notebook.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/learning/notebook.jsp (revision 0) +++ lams_tool_wookie/web/pages/learning/notebook.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,69 @@ + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + <fmt:message>pageTitle.monitoring.notebook</fmt:message> + + + + + + + + + + + + + + + + +
      + +

      + ${wookieDTO.title} +

      + + + + + +

      + +

      + + + +
      + + + button.finish + +
      +
      + +
      + + +
      Index: lams_tool_wookie/web/pages/learning/parts/finishButton.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/learning/parts/finishButton.jsp (revision 0) +++ lams_tool_wookie/web/pages/learning/parts/finishButton.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,80 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + +
      +

      + ${wookieDTO.reflectInstructions} +

      + +

      + + + + + + + + + +

      + + + + +
      +
      +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + + + + + + Index: lams_tool_wookie/web/pages/learning/runOffline.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/learning/runOffline.jsp (revision 0) +++ lams_tool_wookie/web/pages/learning/runOffline.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,35 @@ +<%@ include file="/common/taglibs.jsp"%> + + + +
      +

      + ${wookieDTO.title} +

      + +

      + +

      + + + + + + +
      + + button.finish + +
      +
      +
      +
      + Index: lams_tool_wookie/web/pages/learning/success.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/learning/success.jsp (revision 0) +++ lams_tool_wookie/web/pages/learning/success.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,43 @@ + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + +
      + + + +

      + +

      + + +

      + +

      + +
      +
      + + + +
      +
      + + +
      + + Index: lams_tool_wookie/web/pages/learning/viewAll.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/learning/viewAll.jsp (revision 0) +++ lams_tool_wookie/web/pages/learning/viewAll.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,127 @@ + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + <fmt:message>learner.title.viewAll</fmt:message> + + + + + + + + + + + +
      + +

      + ${wookieDTO.title} +

      + + + + + + + + +
      +
      +
      + + + + + + + +
      + + ${learner.firstName} ${learner.lastName} + + + + + + + + + + +
      + +
      +
      +
      +
      +
      + +

      + +

      +
      +
      + +
      + + + + + +   + + + + +   + + + + + + + + + + + + + + +
      + +
      + + +
      Index: lams_tool_wookie/web/pages/learning/wookie.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/learning/wookie.jsp (revision 0) +++ lams_tool_wookie/web/pages/learning/wookie.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,90 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + +
      +

      + ${wookieDTO.title} +

      + +

      + ${wookieDTO.instructions} +

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

      + +

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

      + + + + + + + + +

      + + Index: lams_tool_wookie/web/pages/monitoring/headItems.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/monitoring/headItems.jsp (revision 0) +++ lams_tool_wookie/web/pages/monitoring/headItems.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,8 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + Index: lams_tool_wookie/web/pages/monitoring/image.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/monitoring/image.jsp (revision 0) +++ lams_tool_wookie/web/pages/monitoring/image.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,28 @@ + +<%@ include file="/common/taglibs.jsp"%> + +<% +String imageURL = request.getParameter("imageURL"); +%> + + + + + + + + + + + + + Index: lams_tool_wookie/web/pages/monitoring/instructions.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/monitoring/instructions.jsp (revision 0) +++ lams_tool_wookie/web/pages/monitoring/instructions.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,95 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + +
      +
      + +
      +
      + +
      + + + + + +   + + + + + +
      +
      +
      +
      + +
      +
      + +
      +
      + +
      + + + + + +   + + + + + +
      Index: lams_tool_wookie/web/pages/monitoring/monitoring.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/monitoring/monitoring.jsp (revision 0) +++ lams_tool_wookie/web/pages/monitoring/monitoring.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,25 @@ +<%@ include file="/common/taglibs.jsp"%> +<%@ page import="org.lamsfoundation.lams.tool.wookie.util.WookieConstants"%> + + + +
      + + + + + + +
      + + Index: lams_tool_wookie/web/pages/monitoring/notebook.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/monitoring/notebook.jsp (revision 0) +++ lams_tool_wookie/web/pages/monitoring/notebook.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,58 @@ + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + <fmt:message>pageTitle.monitoring.notebook</fmt:message> + + + + + + + + + + + + + +
      + +

      + pageTitle.monitoring.notebook +

      + + + + + + + + +
      +

      + ${wookieUserDTO.firstName} ${wookieUserDTO.lastName} +

      +
      +

      + +

      +
      + +
      + + +
      + + + Index: lams_tool_wookie/web/pages/monitoring/statistics.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/monitoring/statistics.jsp (revision 0) +++ lams_tool_wookie/web/pages/monitoring/statistics.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,34 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + +
      +

      + ${session.sessionName} +

      +
      + + + + + + + + + + +
      + heading.totalLearnersInGroup + + ${session.numberOfLearners} +
      + heading.totalFinishedLearnersInGroup + + ${session.numberOfFinishedLearners} +
      +
      Index: lams_tool_wookie/web/pages/monitoring/summary.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/monitoring/summary.jsp (revision 0) +++ lams_tool_wookie/web/pages/monitoring/summary.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,178 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + +

      + + + + + +

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

      + ${session.sessionName} +

      + + + + + + +
      + + + ${session.numberOfLearners} +
      + + + + + + + + + + + + + + + + + + + + +
      + + ${user.firstName} ${user.lastName} + + + + + + +
      + + + + + + + + + + +
      +
      + + + +
      +
      + + + ${user.notebookEntry} + + + + + +
      + +
      + +
      Index: lams_tool_wookie/web/pages/monitoring/wookieDisplay.jsp =================================================================== diff -u --- lams_tool_wookie/web/pages/monitoring/wookieDisplay.jsp (revision 0) +++ lams_tool_wookie/web/pages/monitoring/wookieDisplay.jsp (revision 7c52d117dbe910bd67630b5506346429e25b99a9) @@ -0,0 +1,37 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + +
      +

      + ${userDTO.firstName} ${userDTO.lastName } +

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