Index: lams_tool_zoom/.classpath =================================================================== diff -u --- lams_tool_zoom/.classpath (revision 0) +++ lams_tool_zoom/.classpath (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_zoom/.gitignore =================================================================== diff -u --- lams_tool_zoom/.gitignore (revision 0) +++ lams_tool_zoom/.gitignore (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,3 @@ +/bin/ +/build/ +/.sass-cache/ Index: lams_tool_zoom/.project =================================================================== diff -u --- lams_tool_zoom/.project (revision 0) +++ lams_tool_zoom/.project (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,18 @@ + + + lams_tool_zoom + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + com.genuitec.eclipse.j2eedt.core.webnature + org.eclipse.jdt.core.javanature + + Index: lams_tool_zoom/build.properties =================================================================== diff -u --- lams_tool_zoom/build.properties (revision 0) +++ lams_tool_zoom/build.properties (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,7 @@ +# Minimum compatible version of server +min.server.version.number=3.0 + +signature=lazoom10 +tool.version=20180608 +tool.hide=true +tool.short.name=zoom \ No newline at end of file Index: lams_tool_zoom/build.xml =================================================================== diff -u --- lams_tool_zoom/build.xml (revision 0) +++ lams_tool_zoom/build.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file Index: lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/Zoom.hbm.xml =================================================================== diff -u --- lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/Zoom.hbm.xml (revision 0) +++ lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/Zoom.hbm.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomApi.hbm.xml =================================================================== diff -u --- lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomApi.hbm.xml (revision 0) +++ lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomApi.hbm.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomConfig.hbm.xml =================================================================== diff -u --- lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomConfig.hbm.xml (revision 0) +++ lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomConfig.hbm.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomSession.hbm.xml =================================================================== diff -u --- lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomSession.hbm.xml (revision 0) +++ lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomSession.hbm.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomUser.hbm.xml =================================================================== diff -u --- lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomUser.hbm.xml (revision 0) +++ lams_tool_zoom/conf/hibernate/mappings/org/lamsfoundation/lams/tool/zoom/model/ZoomUser.hbm.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/conf/language/lams/ApplicationResources.properties =================================================================== diff -u --- lams_tool_zoom/conf/language/lams/ApplicationResources.properties (revision 0) +++ lams_tool_zoom/conf/language/lams/ApplicationResources.properties (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,68 @@ +appName = zoom +#language code: en +#locale code: AU + +#=================== labels for Zoom =================# + +tool.display.name =Zoom +tool.description =Web conferencing tool to participate in online video meetings +activity.title =Zoom +activity.description =Zoom web conference tool +activity.helptext =Zoom web conference +activity.welcome.message =Welcome to Zoom +pageTitle.authoring =Zoom Authoring +pageTitle.monitoring =Zoom Monitoring +button.basic =Basic +button.advanced =Advanced +button.cancel =Cancel +button.save =Save +button.finish =Next Activity +button.continue =Continue +button.edit =Edit +button.try.again =Try again +button.summary =Summary +button.editActivity =Edit Activity +button.statistics =Statistics +button.close =Close +label.authoring.basic.title =Title +label.view =View +label.notAvailable =Not available +label.save =Save +label.created =Created +label.lastModified =Last modified +label.notebookEntry =Notebook entry +label.authoring.basic.instructions =Instructions +label.authoring.basic.zoomSettings =Zoom settings +label.on =On +label.off =Off +label.monitoring.startConference =Start conference +label.learning.joinConference =Join conference +label.learning.conferenceNotAvailable =Zoom is not available yet as your instruction hasn't started. Please see your instructor for further details. +label.refresh =Refresh +label.cancel =Cancel +message.defineLaterSet =Please wait for the teacher to complete the contents of this activity +message.learner.blank.input =You have not written anything. Are you sure this is correct? +message.alertContentEdit =Warning: One of more learners have accessed this activity. Changing this content will result in learners getting different information. +message.warnLockOnFinish =Note: After you click on "Next Activity", you won't be able to continue participating in the conference. +message.activityLocked =You won't be able to continue participating in the conference after you have completed. +message.no.reflection.available =Notebook not available +message.endMeeting =The meeting room is now closed. You can continue with your sequence. +heading.totalLearners =Number of learners +heading.totalLearnersInGroup =Total number of learners in group +heading.totalFinishedLearnersInGroup =Number of finished learners +heading.learner =Learner +heading.notebookEntry =Notebook entry +error.mandatoryField ={0} field is mandatory. +error.optionalField ={0} has been left blank. +advanced.reflectOnActivity =Add a notebook at end of Zoom activity with the following instructions +authoring.msg.cancel.save =Do you want to close this window without saving? +monitor.summary.th.advancedSettings =Advanced settings +monitor.summary.zoomSettings =Zoom settings +admin.title =Zoom Administration +message.unableToStartLesson =Unable to join meeting. Please see your instructor. +button.submit =Finish +message.monitoring.summary.no.session =No session available +label.activity.completion =End of activity + + +#======= End labels: Exported 64 labels for en AU ===== Index: lams_tool_zoom/db/sql/activity_insert.sql =================================================================== diff -u --- lams_tool_zoom/db/sql/activity_insert.sql (revision 0) +++ lams_tool_zoom/db/sql/activity_insert.sql (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,28 @@ +INSERT INTO lams_learning_activity +( + description +, title +, learning_activity_type_id +, grouping_support_type_id +, apply_grouping_flag +, learning_library_id +, create_date_time +, tool_id +, activity_category_id +, library_activity_ui_image +, language_file +) +VALUES +( + 'A web conferencig tool using Zoom' +, 'Zoom' +, 1 +, 2 +, 0 +, ${learning_library_id} +, NOW() +, ${tool_id} +, 2 +, 'tool/lazoom10/images/icon_zoom.svg' +, 'org.lamsfoundation.lams.tool.zoom.ApplicationResources' +) \ No newline at end of file Index: lams_tool_zoom/db/sql/create_lams_tool_zoom.sql =================================================================== diff -u --- lams_tool_zoom/db/sql/create_lams_tool_zoom.sql (revision 0) +++ lams_tool_zoom/db/sql/create_lams_tool_zoom.sql (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,95 @@ +SET FOREIGN_KEY_CHECKS=0; + +CREATE TABLE tl_lazoom10_zoom ( + uid bigint(20) NOT NULL AUTO_INCREMENT, + tool_content_id bigint(20), + create_date datetime, + update_date datetime, + create_by bigint(20), + title varchar(255), + instructions mediumtext, + reflect_on_activity bit(1), + reflect_instructions mediumtext, + content_in_use bit(1), + define_later bit(1), + api_id bigint(20), + meeting_id varchar(64), + meeting_start_url varchar(1000), + PRIMARY KEY (uid), + CONSTRAINT fk_lazoom10_zoom_to_api FOREIGN KEY (api_id) + REFERENCES tl_lazoom10_api (uid) ON DELETE SET NULL ON UPDATE CASCADE +); + +CREATE TABLE tl_lazoom10_session ( + uid bigint(20) NOT NULL AUTO_INCREMENT, + session_id bigint(20), + session_name varchar(250), + session_start_date datetime, + session_end_date datetime, + status int(11), + zoom_uid bigint(20), + PRIMARY KEY (uid), + UNIQUE KEY session_id (session_id), + CONSTRAINT fk_lazoom10_zoom_session_to_zoom FOREIGN KEY (zoom_uid) + REFERENCES tl_lazoom10_zoom (uid) ON DELETE CASCADE ON UPDATE CASCADE +); + +CREATE TABLE tl_lazoom10_user ( + uid bigint(20) NOT NULL AUTO_INCREMENT, + user_id bigint(20), + finishedActivity bit(1), + zoom_session_uid bigint(20), + notebook_entry_uid bigint(20), + meeting_join_url varchar(255), + PRIMARY KEY (uid), + CONSTRAINT fk_lazoom10_zoom_user_to_zoom_session + FOREIGN KEY (zoom_session_uid) REFERENCES tl_lazoom10_session (uid) ON DELETE CASCADE ON UPDATE CASCADE +); + +CREATE TABLE tl_lazoom10_config ( + uid bigint(20) NOT NULL AUTO_INCREMENT, + config_key varchar(255), + config_value varchar(255), + PRIMARY KEY (uid) +); + +CREATE TABLE tl_lazoom10_api ( + uid bigint(20) NOT NULL AUTO_INCREMENT, + email varchar(64), + api_key varchar(64), + api_secret varchar(64), + PRIMARY KEY (uid) +); + +INSERT INTO tl_lazoom10_zoom ( + title, + instructions, + tool_content_id, + content_in_use, + define_later, + reflect_on_activity + ) +VALUES( + "Zoom", + "Instructions", + ${default_content_id}, + 0, + 0, + 0 +); + +-- hardcoded API keys +INSERT INTO tl_lazoom10_api ( + email, + api_key, + api_secret +) +VALUES ( + 'marcin@cieslak.mail.pl', + '6mJsv7muQaeimMr7t6NlhA', + '10oY1sViuELyZ7QutePK7pIs5acJ1C0zeDuI' +); + +-- default configuration values + +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_tool_zoom/db/sql/db_version_insert.sql =================================================================== diff -u --- lams_tool_zoom/db/sql/db_version_insert.sql (revision 0) +++ lams_tool_zoom/db/sql/db_version_insert.sql (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,2 @@ + +INSERT INTO patches VALUES ('@signature@', '@tool_version@', NOW(), 'F'); \ No newline at end of file Index: lams_tool_zoom/db/sql/library_insert.sql =================================================================== diff -u --- lams_tool_zoom/db/sql/library_insert.sql (revision 0) +++ lams_tool_zoom/db/sql/library_insert.sql (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,16 @@ + + +INSERT INTO lams_learning_library +( +description, +title, +valid_flag, +create_date_time +) +VALUES +( +'Zoom', +'Zoom', +1, +NOW() +) Index: lams_tool_zoom/db/sql/tool_insert.sql =================================================================== diff -u --- lams_tool_zoom/db/sql/tool_insert.sql (revision 0) +++ lams_tool_zoom/db/sql/tool_insert.sql (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,44 @@ + + +INSERT INTO lams_tool +( +tool_signature, +service_name, +tool_display_name, +description, +tool_identifier, +tool_version, +valid_flag, +grouping_support_type_id, +learner_url, +learner_preview_url, +learner_progress_url, +author_url, +monitor_url, +help_url, +admin_url, +language_file, +create_date_time, +modified_date_time +) +VALUES +( +'lazoom10', +'zoomService', +'Zoom', +'Web conferencing using Zoom', +'zoom', +'@tool_version@', +1, +2, +'tool/lazoom10/learning.do?mode=learner', +'tool/lazoom10/learning.do?mode=author', +'tool/lazoom10/learning.do?mode=teacher', +'tool/lazoom10/authoring.do', +'tool/lazoom10/monitoring.do', +'http://wiki.lamsfoundation.org/display/lamsdocs/lazoom10', +'tool/lazoom10/admin/view.do', +'org.lamsfoundation.lams.tool.zoom.ApplicationResources', +NOW(), +NOW() +) Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomConfigDAO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomConfigDAO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomConfigDAO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,30 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; + +public interface IZoomConfigDAO extends IBaseDAO { + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomDAO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomDAO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomDAO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,30 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; + +public interface IZoomDAO extends IBaseDAO { + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomSessionDAO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomSessionDAO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomSessionDAO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,30 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; + +public interface IZoomSessionDAO extends IBaseDAO { + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomUserDAO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomUserDAO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/IZoomUserDAO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,30 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dao; + +import org.lamsfoundation.lams.dao.IBaseDAO; + +public interface IZoomUserDAO extends IBaseDAO { + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomConfigDAO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomConfigDAO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomConfigDAO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,33 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dao.hibernate; + +import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; +import org.lamsfoundation.lams.tool.zoom.dao.IZoomConfigDAO; +import org.springframework.stereotype.Repository; + +@Repository +public class ZoomConfigDAO extends LAMSBaseDAO implements IZoomConfigDAO { + +} \ No newline at end of file Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomDAO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomDAO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomDAO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,33 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dao.hibernate; + +import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; +import org.lamsfoundation.lams.tool.zoom.dao.IZoomDAO; +import org.springframework.stereotype.Repository; + +@Repository +public class ZoomDAO extends LAMSBaseDAO implements IZoomDAO { + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomSessionDAO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomSessionDAO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomSessionDAO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,33 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dao.hibernate; + +import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; +import org.lamsfoundation.lams.tool.zoom.dao.IZoomSessionDAO; +import org.springframework.stereotype.Repository; + +@Repository +public class ZoomSessionDAO extends LAMSBaseDAO implements IZoomSessionDAO { + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomUserDAO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomUserDAO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dao/hibernate/ZoomUserDAO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,33 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dao.hibernate; + +import org.lamsfoundation.lams.dao.hibernate.LAMSBaseDAO; +import org.lamsfoundation.lams.tool.zoom.dao.IZoomUserDAO; +import org.springframework.stereotype.Repository; + +@Repository +public class ZoomUserDAO extends LAMSBaseDAO implements IZoomUserDAO { + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dbupdates/autopatchContext.xml =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dbupdates/autopatchContext.xml (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dbupdates/autopatchContext.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/ConfigDTO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/ConfigDTO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/ConfigDTO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,28 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dto; + +public class ConfigDTO { + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/ContentDTO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/ContentDTO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/ContentDTO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,111 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dto; + +import org.lamsfoundation.lams.tool.zoom.model.Zoom; + +public class ContentDTO { + + Long toolContentId; + + String title; + + String instructions; + + boolean reflectOnActivity; + + String reflectInstructions; + + Long currentTab; + + boolean isGroupedActivity; // set manually in MonitoringAction + + /* Constructors */ + public ContentDTO() { + } + + public ContentDTO(Zoom zoom) { + this.toolContentId = zoom.getToolContentId(); + this.title = zoom.getTitle(); + this.instructions = zoom.getInstructions(); + this.reflectInstructions = zoom.getReflectInstructions(); + this.reflectOnActivity = zoom.isReflectOnActivity(); + } + + public String getInstructions() { + return instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + public boolean isReflectOnActivity() { + return reflectOnActivity; + } + + public void setReflectOnActivity(boolean reflectOnActivity) { + this.reflectOnActivity = reflectOnActivity; + } + + public String getReflectInstructions() { + return reflectInstructions; + } + + public void setReflectInstructions(String reflectInstructions) { + this.reflectInstructions = reflectInstructions; + } + + public String 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 Long getCurrentTab() { + return currentTab; + } + + public void setCurrentTab(Long currentTab) { + this.currentTab = currentTab; + } + + public boolean isGroupedActivity() { + return isGroupedActivity; + } + + public void setGroupedActivity(boolean isGroupedActivity) { + this.isGroupedActivity = isGroupedActivity; + } +} \ No newline at end of file Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/NotebookEntryDTO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/NotebookEntryDTO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/NotebookEntryDTO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,78 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dto; + +import java.util.Date; + +import org.lamsfoundation.lams.notebook.model.NotebookEntry; + +public class NotebookEntryDTO { + + Long uid; + + String entry; + + Date createDate; + + Date lastModified; + + public NotebookEntryDTO(NotebookEntry notebookEntry) { + this.uid = notebookEntry.getUid(); + this.entry = notebookEntry.getEntry(); + this.createDate = notebookEntry.getCreateDate(); + this.lastModified = notebookEntry.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_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/SessionDTO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/SessionDTO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/SessionDTO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dto; + +import java.util.Set; +import java.util.TreeSet; + +import org.lamsfoundation.lams.tool.zoom.model.ZoomSession; + +public class SessionDTO implements Comparable { + + Long sessionID; + + String sessionName; + + Set userDTOs = new TreeSet(); + + public SessionDTO(ZoomSession session) { + this.sessionID = session.getSessionId(); + this.sessionName = session.getSessionName(); + } + + @Override + public int compareTo(SessionDTO other) { + int ret = this.sessionName.compareToIgnoreCase(other.sessionName); + if (ret == 0) { + ret = this.sessionID.compareTo(other.sessionID); + } + return ret; + } + + public SessionDTO() { + } + + 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 Set getUserDTOs() { + return userDTOs; + } + + public void setUserDTOs(Set zoomUsers) { + this.userDTOs = zoomUsers; + } +} \ No newline at end of file Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/ZoomUserDTO.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/ZoomUserDTO.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/dto/ZoomUserDTO.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,128 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.dto; + +import org.lamsfoundation.lams.tool.zoom.model.ZoomUser; +import org.lamsfoundation.lams.usermanagement.User; + +public class ZoomUserDTO implements Comparable { + private Long uid; + + private String loginName; + + private String firstName; + + private String lastName; + + private String email; + + private boolean finishedActivity; + + private NotebookEntryDTO notebookEntryDTO; + + private Long notebookEntryUID; + + public ZoomUserDTO(ZoomUser zoomUser, User user) { + this.uid = zoomUser.getUid(); + this.loginName = user.getLogin(); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + this.email = user.getEmail(); + this.finishedActivity = zoomUser.isFinishedActivity(); + this.notebookEntryUID = zoomUser.getNotebookEntryUID(); + } + + @Override + public int compareTo(ZoomUserDTO other) { + int ret = this.lastName.compareToIgnoreCase(other.lastName); + if (ret == 0) { + ret = this.uid.compareTo(other.uid); + } + return ret; + } + + 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 String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public NotebookEntryDTO getNotebookEntryDTO() { + return notebookEntryDTO; + } + + public void setNotebookEntryDTO(NotebookEntryDTO notebookEntryDTO) { + this.notebookEntryDTO = notebookEntryDTO; + } + + public Long getNotebookEntryUID() { + return notebookEntryUID; + } + + public void setNotebookEntryUID(Long notebookEntryUID) { + this.notebookEntryUID = notebookEntryUID; + } + + public boolean isFinishedActivity() { + return finishedActivity; + } + + public void setFinishedActivity(boolean finishedActivity) { + this.finishedActivity = finishedActivity; + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/Zoom.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/Zoom.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/Zoom.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,303 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.model; + +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +import org.apache.log4j.Logger; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; + +public class Zoom implements java.io.Serializable, Cloneable { + private static final long serialVersionUID = -336708242652214225L; + + private static final Logger logger = Logger.getLogger(Zoom.class); + + private IToolContentHandler toolContentHandler; + + // Persistent Fields + + private Long uid; + + private Date createDate; + + private Date updateDate; + + private Long createBy; + + private String title; + + private String instructions; + + private boolean reflectOnActivity; + + private String reflectInstructions; + + private boolean contentInUse; + + private boolean defineLater; + + private Long toolContentId; + + private ZoomApi api; + + private String meetingId; + + private String meetingStartUrl; + + private Set zoomSessions; + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * + * + */ + + public Date getCreateDate() { + return this.createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + /** + * + * + */ + + public Date getUpdateDate() { + return this.updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + /** + * + * + */ + + public Long getCreateBy() { + return this.createBy; + } + + public void setCreateBy(Long createBy) { + this.createBy = createBy; + } + + /** + * + * + */ + + public String getTitle() { + return this.title; + } + + public void setTitle(String title) { + this.title = title; + } + + /** + * + * + */ + + public String getInstructions() { + return this.instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + /** + * + */ + public boolean isReflectOnActivity() { + return reflectOnActivity; + } + + public void setReflectOnActivity(boolean reflectOnActivity) { + this.reflectOnActivity = reflectOnActivity; + } + + /** + * + */ + public String getReflectInstructions() { + return reflectInstructions; + } + + public void setReflectInstructions(String reflectInstructions) { + this.reflectInstructions = reflectInstructions; + } + + /** + * + * + */ + + public boolean isContentInUse() { + return this.contentInUse; + } + + public void setContentInUse(boolean contentInUse) { + this.contentInUse = contentInUse; + } + + public Long getToolContentId() { + return this.toolContentId; + } + + public void setToolContentId(Long toolContentId) { + this.toolContentId = toolContentId; + } + + public boolean isDefineLater() { + return this.defineLater; + } + + public void setDefineLater(boolean defineLater) { + this.defineLater = defineLater; + } + + public Set getZoomSessions() { + return this.zoomSessions; + } + + public void setZoomSessions(Set zoomSessions) { + this.zoomSessions = zoomSessions; + } + + public IToolContentHandler getToolContentHandler() { + return toolContentHandler; + } + + public void setToolContentHandler(IToolContentHandler toolContentHandler) { + this.toolContentHandler = toolContentHandler; + } + + public String getMeetingId() { + return meetingId; + } + + public void setMeetingId(String meetingId) { + this.meetingId = meetingId; + } + + public String getMeetingStartUrl() { + return meetingStartUrl; + } + + public void setMeetingStartUrl(String meetingStartUrl) { + this.meetingStartUrl = meetingStartUrl; + } + + public ZoomApi getApi() { + return api; + } + + public void setApi(ZoomApi api) { + this.api = api; + } + + @Override + protected Object clone() { + + Zoom zoom = null; + try { + zoom = (Zoom) super.clone(); + zoom.setUid(null); + + // create an empty set for the zoomSession + zoom.zoomSessions = new HashSet(); + + } catch (CloneNotSupportedException cnse) { + logger.error("Error cloning " + Zoom.class); + } + return zoom; + } + + /** + * 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 Zoom)) { + return false; + } + Zoom castOther = (Zoom) 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 Zoom newInstance(Zoom fromContent, Long toContentId, IToolContentHandler zoomToolContentHandler) { + Zoom toContent = new Zoom(); + fromContent.toolContentHandler = zoomToolContentHandler; + toContent = (Zoom) fromContent.clone(); + toContent.setToolContentId(toContentId); + toContent.setCreateDate(new Date()); + return toContent; + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomApi.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomApi.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomApi.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.model; + +/** + * + */ +public class ZoomApi { + + private Long uid; + + private String email; + + private String key; + + private String secret; + + public ZoomApi() { + // default constructor + } + + public ZoomApi(String email, String key, String value) { + this.email = email; + this.key = key; + this.secret = value; + } + + /** + * + */ + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + /** + * + * @return + */ + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + /** + * + * @return + */ + public String getSecret() { + return secret; + } + + public void setSecret(String value) { + this.secret = value; + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomConfig.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomConfig.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomConfig.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,80 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.model; + +/** + * + */ +public class ZoomConfig { + + private Long uid; + + private String key; + + private String value; + + public ZoomConfig() { + // default constructor + } + + public ZoomConfig(String key, String value) { + this.key = key; + this.value = value; + } + + /** + * + */ + public Long getUid() { + return uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * + * @return + */ + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + /** + * + * @return + */ + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomSession.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomSession.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomSession.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,215 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.model; + +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +import org.apache.log4j.Logger; + +/** + * + * Represents the tool session. + * + * + */ + +public class ZoomSession implements java.io.Serializable { + + private static final long serialVersionUID = -3248105011578304148L; + + private static final Logger logger = Logger.getLogger(ZoomSession.class); + + // Fields + + private Long uid; + + private Date sessionEndDate; + + private Date sessionStartDate; + + private Integer status; + + private Long sessionId; + + private String sessionName; + + private Zoom zoom; + + private Set zoomUsers; + + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * + * + */ + public Date getSessionEndDate() { + return this.sessionEndDate; + } + + public void setSessionEndDate(Date sessionEndDate) { + this.sessionEndDate = sessionEndDate; + } + + /** + * + * + */ + public Date getSessionStartDate() { + return this.sessionStartDate; + } + + public void setSessionStartDate(Date sessionStartDate) { + this.sessionStartDate = sessionStartDate; + } + + /** + * + * + */ + public Integer getStatus() { + return this.status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + /** + * + * + */ + public Long getSessionId() { + return this.sessionId; + } + + public void setSessionId(Long sessionId) { + this.sessionId = sessionId; + } + + /** + * + * + */ + public String getSessionName() { + return this.sessionName; + } + + public void setSessionName(String sessionName) { + this.sessionName = sessionName; + } + + /** + * + * + * + */ + public Zoom getZoom() { + return this.zoom; + } + + public void setZoom(Zoom zoom) { + this.zoom = zoom; + } + + /** + * + * + * + * + */ + public Set getZoomUsers() { + return this.zoomUsers; + } + + public void setZoomUsers(Set zoomUsers) { + this.zoomUsers = zoomUsers; + } + + /** + * toString + * + * @return String + */ + @Override + 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(); + } + + @Override + public boolean equals(Object other) { + if ((this == other)) { + return true; + } + if ((other == null)) { + return false; + } + if (!(other instanceof ZoomSession)) { + return false; + } + ZoomSession castOther = (ZoomSession) 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; + } + + @Override + public Object clone() { + + ZoomSession session = null; + try { + session = (ZoomSession) super.clone(); + session.zoomUsers = new HashSet(); + } catch (CloneNotSupportedException e) { + logger.error("When clone " + ZoomSession.class + " failed"); + } + return session; + } + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomUser.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomUser.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/model/ZoomUser.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,163 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.model; + +public class ZoomUser implements java.io.Serializable { + + private static final long serialVersionUID = 8663555378960558429L; + + // Persistent Fields + + private Long uid; + + private Integer userId; + + private ZoomSession zoomSession; + + private boolean finishedActivity; + + private Long notebookEntryUID; + + private String meetingJoinUrl; + + // Constructors + + public ZoomUser() { + + } + + public ZoomUser(Integer userID, ZoomSession zoomSession) { + this.userId = userID; + this.zoomSession = zoomSession; + this.finishedActivity = false; + } + + // Property accessors + + /** + * + */ + public Long getUid() { + return this.uid; + } + + public void setUid(Long uid) { + this.uid = uid; + } + + /** + * + * + */ + public Integer getUserId() { + return this.userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + /** + * + */ + public boolean isFinishedActivity() { + return finishedActivity; + } + + public void setFinishedActivity(boolean finishedActivity) { + this.finishedActivity = finishedActivity; + } + + /** + * + * + * + */ + public ZoomSession getZoomSession() { + return this.zoomSession; + } + + public void setZoomSession(ZoomSession zoomSession) { + this.zoomSession = zoomSession; + } + + /** + * + */ + public Long getNotebookEntryUID() { + return notebookEntryUID; + } + + public void setNotebookEntryUID(Long notebookEntryUID) { + this.notebookEntryUID = notebookEntryUID; + } + + public String getMeetingJoinUrl() { + return meetingJoinUrl; + } + + public void setMeetingJoinUrl(String meetingJoinUrl) { + this.meetingJoinUrl = meetingJoinUrl; + } + + /** + * toString + * + * @return String + */ + @Override + 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(); + } + + @Override + public boolean equals(Object other) { + if ((this == other)) { + return true; + } + if ((other == null)) { + return false; + } + if (!(other instanceof ZoomUser)) { + return false; + } + ZoomUser castOther = (ZoomUser) 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; + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/IZoomService.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/IZoomService.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/IZoomService.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,185 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.service; + +import java.io.IOException; + +import org.apache.tomcat.util.json.JSONException; +import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.tool.zoom.dto.ZoomUserDTO; +import org.lamsfoundation.lams.tool.zoom.model.Zoom; +import org.lamsfoundation.lams.tool.zoom.model.ZoomConfig; +import org.lamsfoundation.lams.tool.zoom.model.ZoomSession; +import org.lamsfoundation.lams.tool.zoom.model.ZoomUser; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; + +/** + * Defines the services available to the web layer from the Zoom Service + */ +public interface IZoomService { + /** + * Makes a copy of the default content and assigns it a newContentID + * + * @params newContentID + * @return + */ + public Zoom copyDefaultContent(Long newContentID); + + /** + * Returns an instance of the Zoom tools default content. + * + * @return + */ + public Zoom getDefaultContent(); + + /** + * @param toolSignature + * @return + */ + public Long getDefaultContentIdBySignature(String toolSignature); + + /** + * @param toolContentID + * @return + */ + public Zoom getZoomByContentId(Long toolContentID); + + /** + * @param toolContentID + * @return + */ + public boolean isGroupedActivity(long toolContentID); + + /** + * Audit log the teacher has started editing activity in monitor. + * + * @param toolContentID + */ + void auditLogStartEditingActivityInMonitor(long toolContentID); + + /** + * @param zoom + */ + public void saveOrUpdateZoom(Zoom zoom); + + /** + * @param toolSessionId + * @return + */ + public ZoomSession getSessionBySessionId(Long toolSessionId); + + /** + * @param zoomSession + */ + public void saveOrUpdateZoomSession(ZoomSession zoomSession); + + /** + * + * @param userId + * @param toolSessionId + * @return + */ + public ZoomUser getUserByUserIdAndSessionId(Integer userId, Long toolSessionId); + + /** + * + * @param uid + * @return + */ + public ZoomUser getUserByUID(Long uid); + + /** + * + * @param zoomUser + */ + public void saveOrUpdateZoomUser(ZoomUser zoomUser); + + /** + * + * @param user + * @param zoomSession + * @return + */ + public ZoomUser createZoomUser(UserDTO user, ZoomSession zoomSession); + + /** + * + * @param id + * @param idType + * @param signature + * @param userID + * @param title + * @param entry + * @return + */ + Long createNotebookEntry(Long id, Integer idType, String signature, Integer userID, String entry); + + /** + * + * @param uid + * @return + */ + NotebookEntry getNotebookEntry(Long uid); + + /** + * + * @param notebookEntry + */ + void updateNotebookEntry(NotebookEntry notebookEntry); + + /** + * + * @param uid + * @param title + * @param entry + */ + void updateNotebookEntry(Long uid, String entry); + + /** + * + * @param key + */ + ZoomConfig getConfig(String key); + + /** + * + * @param key + */ + String getConfigValue(String key); + + /** + * + * @param key + * @param value + */ + void saveOrUpdateConfigEntry(ZoomConfig zoomConfig); + + boolean chooseApiKeys(Long zoomUid); + + String createMeeting(Long zoomUid) throws IOException, JSONException; + + String registerUser(Long zoomUid, Long userUid, String sessionName) throws IOException, JSONException; + + ZoomUserDTO createUserDTO(ZoomUser zoomUser); +} \ No newline at end of file Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomImportContentVersionFilter.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomImportContentVersionFilter.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomImportContentVersionFilter.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,43 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + + +package org.lamsfoundation.lams.tool.zoom.service; + +import org.lamsfoundation.lams.learningdesign.service.ToolContentVersionFilter; +import org.lamsfoundation.lams.tool.zoom.model.Zoom; + +/** + * Import filter class for different version of Zoom content. + */ +public class ZoomImportContentVersionFilter extends ToolContentVersionFilter { + + /** + * Import 20110511 version content to 20140102 version tool server. + */ + public void up20110511To20140102() { + this.removeField(Zoom.class, "runOffline"); + this.removeField(Zoom.class, "onlineInstructions"); + this.removeField(Zoom.class, "offlineInstructions"); + this.removeField(Zoom.class, "zoomAttachments"); + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomService.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomService.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomService.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,796 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.service; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.StringWriter; +import java.lang.reflect.Field; +import java.net.HttpURLConnection; +import java.net.URL; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.SortedMap; +import java.util.TimeZone; +import java.util.TreeMap; + +import javax.net.ssl.HttpsURLConnection; + +import org.apache.commons.io.IOUtils; +import org.apache.log4j.Logger; +import org.apache.tomcat.util.json.JSONException; +import org.apache.tomcat.util.json.JSONObject; +import org.lamsfoundation.lams.confidencelevel.ConfidenceLevelDTO; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; +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.CoreNotebookConstants; +import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; +import org.lamsfoundation.lams.tool.ToolCompletionStatus; +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.ToolException; +import org.lamsfoundation.lams.tool.service.ILamsToolService; +import org.lamsfoundation.lams.tool.zoom.dao.IZoomConfigDAO; +import org.lamsfoundation.lams.tool.zoom.dao.IZoomDAO; +import org.lamsfoundation.lams.tool.zoom.dao.IZoomSessionDAO; +import org.lamsfoundation.lams.tool.zoom.dao.IZoomUserDAO; +import org.lamsfoundation.lams.tool.zoom.dto.ZoomUserDTO; +import org.lamsfoundation.lams.tool.zoom.model.Zoom; +import org.lamsfoundation.lams.tool.zoom.model.ZoomApi; +import org.lamsfoundation.lams.tool.zoom.model.ZoomConfig; +import org.lamsfoundation.lams.tool.zoom.model.ZoomSession; +import org.lamsfoundation.lams.tool.zoom.model.ZoomUser; +import org.lamsfoundation.lams.tool.zoom.util.ZoomConstants; +import org.lamsfoundation.lams.tool.zoom.util.ZoomException; +import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; + +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import sun.net.www.protocol.https.HttpsURLConnectionImpl; + +/** + * An implementation of the IZoomService interface. + * + * As a requirement, all LAMS tool's service bean must implement ToolContentManager and ToolSessionManager. + */ + +public class ZoomService implements ToolSessionManager, ToolContentManager, IZoomService { + + private static final Logger logger = Logger.getLogger(ZoomService.class); + + private IZoomDAO zoomDAO = null; + + private IZoomSessionDAO zoomSessionDAO = null; + + private IZoomUserDAO zoomUserDAO = null; + + private IZoomConfigDAO zoomConfigDAO = null; + + private ILearnerService learnerService; + + private ILamsToolService toolService; + + private IToolContentHandler zoomToolContentHandler = null; + + private IExportToolContentService exportContentService; + + private ICoreNotebookService coreNotebookService; + + /* Methods from ToolSessionManager */ + @Override + public void createToolSession(Long toolSessionId, String toolSessionName, Long toolContentId) throws ToolException { + if (ZoomService.logger.isDebugEnabled()) { + ZoomService.logger.debug("entering method createToolSession:" + " toolSessionId = " + toolSessionId + + " toolSessionName = " + toolSessionName + " toolContentId = " + toolContentId); + } + + ZoomSession session = new ZoomSession(); + session.setSessionId(toolSessionId); + session.setSessionName(toolSessionName); + // learner starts + Zoom zoom = getZoomByContentId(toolContentId); + session.setZoom(zoom); + zoomSessionDAO.insertOrUpdate(session); + } + + @Override + public String leaveToolSession(Long toolSessionId, Long learnerId) throws DataMissingException, ToolException { + return learnerService.completeToolSession(toolSessionId, learnerId); + } + + @Override + public ToolSessionExportOutputData exportToolSession(Long toolSessionId) + throws DataMissingException, ToolException { + return null; + } + + @SuppressWarnings("rawtypes") + @Override + public ToolSessionExportOutputData exportToolSession(List toolSessionIds) + throws DataMissingException, ToolException { + return null; + } + + @Override + public void removeToolSession(Long toolSessionId) throws DataMissingException, ToolException { + zoomSessionDAO.deleteByProperty(ZoomSession.class, "sessionId", toolSessionId); + } + + @Override + public SortedMap getToolOutput(List names, Long toolSessionId, Long learnerId) { + return new TreeMap(); + } + + @Override + public ToolOutput getToolOutput(String name, Long toolSessionId, Long learnerId) { + return null; + } + + @Override + public List getToolOutputs(String name, Long toolContentId) { + return new ArrayList(); + } + + @Override + public List getConfidenceLevels(Long toolSessionId) { + return null; + } + + @Override + public void forceCompleteUser(Long toolSessionId, User user) { + //no actions required + } + + /* Methods from ToolContentManager */ + + @Override + public void copyToolContent(Long fromContentId, Long toContentId) throws ToolException { + + if (ZoomService.logger.isDebugEnabled()) { + ZoomService.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); + } + + Zoom fromContent = null; + if (fromContentId != null) { + fromContent = getZoomByContentId(fromContentId); + } + if (fromContent == null) { + // create the fromContent using the default tool content + fromContent = getDefaultContent(); + } + Zoom toContent = Zoom.newInstance(fromContent, toContentId, zoomToolContentHandler); + saveOrUpdateZoom(toContent); + } + + @Override + public void resetDefineLater(Long toolContentId) { + } + + @Override + public void removeToolContent(Long toolContentId) throws ToolException { + Zoom zoom = getZoomByContentId(toolContentId); + if (zoom == null) { + ZoomService.logger.warn("Can not remove the tool content as it does not exist, ID: " + toolContentId); + return; + } + + for (ZoomSession session : zoom.getZoomSessions()) { + List entries = coreNotebookService.getEntry(session.getSessionId(), + CoreNotebookConstants.NOTEBOOK_TOOL, ZoomConstants.TOOL_SIGNATURE); + for (NotebookEntry entry : entries) { + coreNotebookService.deleteEntry(entry); + } + } + + zoomDAO.delete(zoom); + } + + @Override + public void removeLearnerContent(Long toolContentId, Integer userId) throws ToolException { + if (ZoomService.logger.isDebugEnabled()) { + ZoomService.logger.debug("Resetting Web Conference completion flag for user ID " + userId + + " and toolContentId " + toolContentId); + } + + Zoom zoom = getZoomByContentId(toolContentId); + if (zoom == null) { + ZoomService.logger + .warn("Did not find activity with toolContentId: " + toolContentId + " to remove learner content"); + return; + } + + for (ZoomSession session : zoom.getZoomSessions()) { + for (ZoomUser user : session.getZoomUsers()) { + if (user.getUserId().equals(userId)) { + if (user.getNotebookEntryUID() != null) { + NotebookEntry entry = coreNotebookService.getEntry(user.getNotebookEntryUID()); + zoomDAO.delete(entry); + user.setNotebookEntryUID(null); + } + user.setFinishedActivity(false); + zoomUserDAO.update(user); + } + } + } + } + + /** + * 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 + */ + + @Override + public void exportToolContent(Long toolContentId, String rootPath) throws DataMissingException, ToolException { + Zoom zoom = getZoomByContentId(toolContentId); + if (zoom == null) { + zoom = getDefaultContent(); + } + if (zoom == null) { + throw new DataMissingException("Unable to find default content for the zoom tool"); + } + + // set ResourceToolContentHandler as null to avoid copy file node in + // repository again. + zoom = Zoom.newInstance(zoom, toolContentId, null); + zoom.setToolContentHandler(null); + zoom.setZoomSessions(null); + zoom.setApi(null); + try { + exportContentService.exportToolContent(toolContentId, zoom, zoomToolContentHandler, 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 + */ + @Override + public void importToolContent(Long toolContentId, Integer newUserUid, String toolContentPath, String fromVersion, + String toVersion) throws ToolException { + try { + // register version filter class + exportContentService.registerImportVersionFilterClass(ZoomImportContentVersionFilter.class); + + Object toolPOJO = exportContentService.importToolContent(toolContentPath, zoomToolContentHandler, + fromVersion, toVersion); + if (!(toolPOJO instanceof Zoom)) { + throw new ImportToolContentException( + "Import Zoom tool content failed. Deserialized object is " + toolPOJO); + } + Zoom zoom = (Zoom) toolPOJO; + + // reset it to new toolContentId + zoom.setToolContentId(toolContentId); + zoom.setCreateBy(new Long(newUserUid.longValue())); + zoom.setApi(null); + + saveOrUpdateZoom(zoom); + } catch (ImportToolContentException e) { + throw new ToolException(e); + } + } + + @SuppressWarnings("rawtypes") + @Override + public Class[] getSupportedToolOutputDefinitionClasses(int definitionType) { + return null; + } + + /** + * 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 + */ + @Override + public SortedMap getToolOutputDefinitions(Long toolContentId, int definitionType) + throws ToolException { + return new TreeMap(); + } + + @Override + public String getToolContentTitle(Long toolContentId) { + return getZoomByContentId(toolContentId).getTitle(); + } + + @Override + public boolean isContentEdited(Long toolContentId) { + return getZoomByContentId(toolContentId).isDefineLater(); + } + + @Override + public boolean isReadOnly(Long toolContentId) { + Zoom content = getZoomByContentId(toolContentId); + for (ZoomSession session : content.getZoomSessions()) { + for (ZoomUser user : session.getZoomUsers()) { + if (user.getNotebookEntryUID() != null) { + // we don't remove users in removeLearnerContent() + // we just set their notebook entry to NULL + return true; + } + } + } + + return false; + } + + /* IZoomService Methods */ + + @Override + public Long createNotebookEntry(Long id, Integer idType, String signature, Integer userID, String entry) { + return coreNotebookService.createNotebookEntry(id, idType, signature, userID, "", entry); + } + + public NotebookEntry getEntry(Long id, Integer idType, String signature, Integer userID) { + List list = coreNotebookService.getEntry(id, idType, signature, userID); + if ((list == null) || list.isEmpty()) { + return null; + } else { + return list.get(0); + } + } + + @Override + public NotebookEntry getNotebookEntry(Long uid) { + return coreNotebookService.getEntry(uid); + } + + @Override + public void updateNotebookEntry(Long uid, String entry) { + coreNotebookService.updateEntry(uid, "", entry); + } + + @Override + public void updateNotebookEntry(NotebookEntry notebookEntry) { + coreNotebookService.updateEntry(notebookEntry); + } + + @Override + public Long getDefaultContentIdBySignature(String toolSignature) { + return toolService.getToolDefaultContentIdBySignature(toolSignature); + } + + @Override + public Zoom getDefaultContent() { + Long defaultContentID = getDefaultContentIdBySignature(ZoomConstants.TOOL_SIGNATURE); + Zoom defaultContent = getZoomByContentId(defaultContentID); + if (defaultContent == null) { + String error = "Could not retrieve default content record for this tool"; + ZoomService.logger.error(error); + } + return defaultContent; + } + + @Override + public Zoom copyDefaultContent(Long newContentID) { + if (newContentID == null) { + String error = "Cannot copy the Zoom tools default content: + " + "newContentID is null"; + ZoomService.logger.error(error); + } + + Zoom defaultContent = getDefaultContent(); + // create new zoom using the newContentID + Zoom newContent = new Zoom(); + newContent = Zoom.newInstance(defaultContent, newContentID, zoomToolContentHandler); + saveOrUpdateZoom(newContent); + return newContent; + } + + @Override + @SuppressWarnings("unchecked") + public Zoom getZoomByContentId(Long toolContentID) { + List list = zoomDAO.findByProperty(Zoom.class, "toolContentId", toolContentID); + if (list.isEmpty()) { + return null; + } else { + return list.get(0); + } + } + + @Override + public boolean isGroupedActivity(long toolContentID) { + return toolService.isGroupedActivity(toolContentID); + } + + @Override + public void auditLogStartEditingActivityInMonitor(long toolContentID) { + toolService.auditLogStartEditingActivityInMonitor(toolContentID); + } + + @Override + @SuppressWarnings("unchecked") + public ZoomSession getSessionBySessionId(Long toolSessionId) { + List list = zoomSessionDAO.findByProperty(ZoomSession.class, "sessionId", toolSessionId); + if (list.isEmpty()) { + return null; + } else { + return list.get(0); + } + } + + @Override + @SuppressWarnings("unchecked") + public ZoomUser getUserByUserIdAndSessionId(Integer userId, Long toolSessionId) { + Map map = new HashMap(); + map.put("userId", userId); + map.put("zoomSession.sessionId", toolSessionId); + List list = zoomUserDAO.findByProperties(ZoomUser.class, map); + if (list.isEmpty()) { + return null; + } else { + return list.get(0); + } + } + + @Override + @SuppressWarnings("unchecked") + public ZoomUser getUserByUID(Long uid) { + List list = zoomUserDAO.findByProperty(ZoomUser.class, "uid", uid); + if (list.isEmpty()) { + return null; + } else { + return list.get(0); + } + } + + @Override + public ZoomUserDTO createUserDTO(ZoomUser zoomUser) { + User user = (User) zoomUserDAO.find(User.class, zoomUser.getUserId().intValue()); + return new ZoomUserDTO(zoomUser, user); + } + + @Override + public void saveOrUpdateZoom(Zoom zoom) { + zoomDAO.insertOrUpdate(zoom); + } + + @Override + public void saveOrUpdateZoomSession(ZoomSession zoomSession) { + zoomSessionDAO.insertOrUpdate(zoomSession); + } + + @Override + public void saveOrUpdateZoomUser(ZoomUser zoomUser) { + zoomUserDAO.insertOrUpdate(zoomUser); + } + + @Override + public ZoomUser createZoomUser(UserDTO user, ZoomSession zoomSession) { + ZoomUser zoomUser = new ZoomUser(user.getUserID(), zoomSession); + saveOrUpdateZoomUser(zoomUser); + return zoomUser; + } + + @Override + @SuppressWarnings("unchecked") + public ZoomConfig getConfig(String key) { + List list = zoomConfigDAO.findByProperty(ZoomConfig.class, "key", key); + if (list.isEmpty()) { + return null; + } else { + return list.get(0); + } + } + + @Override + @SuppressWarnings("unchecked") + public String getConfigValue(String key) { + List list = zoomConfigDAO.findByProperty(ZoomConfig.class, "key", key); + if (list.isEmpty()) { + return null; + } else { + return list.get(0).getValue(); + } + } + + @Override + public void saveOrUpdateConfigEntry(ZoomConfig zoomConfig) { + zoomConfigDAO.insertOrUpdate(zoomConfig); + } + + /** + * 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 { + + ZoomService.logger.warn( + "Setting the reflective field on a zoom. This doesn't make sense as the zoom is for reflection and we don't reflect on reflection!"); + Zoom zoom = getZoomByContentId(toolContentId); + if (zoom == null) { + throw new DataMissingException("Unable to set reflective data titled " + title + + " on activity toolContentId " + toolContentId + " as the tool content does not exist."); + } + + zoom.setReflectOnActivity(Boolean.TRUE); + zoom.setReflectInstructions(description); + } + + // ========================================================================================= + /* Used by Spring to "inject" the linked objects */ + + public IZoomDAO getZoomDAO() { + return zoomDAO; + } + + public void setZoomDAO(IZoomDAO zoomDAO) { + this.zoomDAO = zoomDAO; + } + + public IToolContentHandler getZoomToolContentHandler() { + return zoomToolContentHandler; + } + + public void setZoomToolContentHandler(IToolContentHandler zoomToolContentHandler) { + this.zoomToolContentHandler = zoomToolContentHandler; + } + + public IZoomSessionDAO getZoomSessionDAO() { + return zoomSessionDAO; + } + + public void setZoomSessionDAO(IZoomSessionDAO sessionDAO) { + this.zoomSessionDAO = sessionDAO; + } + + public IZoomConfigDAO getZoomConfigDAO() { + return zoomConfigDAO; + } + + public void setZoomConfigDAO(IZoomConfigDAO zoomConfigDAO) { + this.zoomConfigDAO = zoomConfigDAO; + } + + public ILamsToolService getToolService() { + return toolService; + } + + public void setToolService(ILamsToolService toolService) { + this.toolService = toolService; + } + + public IZoomUserDAO getZoomUserDAO() { + return zoomUserDAO; + } + + public void setZoomUserDAO(IZoomUserDAO userDAO) { + this.zoomUserDAO = 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; + } + + @Override + public ToolCompletionStatus getCompletionStatus(Long learnerId, Long toolSessionId) { + ZoomUser learner = getUserByUserIdAndSessionId(learnerId.intValue(), toolSessionId); + if (learner == null) { + return new ToolCompletionStatus(ToolCompletionStatus.ACTIVITY_NOT_ATTEMPTED, null, null); + } + + return new ToolCompletionStatus(learner.isFinishedActivity() ? ToolCompletionStatus.ACTIVITY_COMPLETED + : ToolCompletionStatus.ACTIVITY_ATTEMPTED, null, null); + } + + @Override + public boolean chooseApiKeys(Long zoomUid) { + Zoom zoom = (Zoom) zoomDAO.find(Zoom.class, zoomUid); + ZoomApi api = zoom.getApi(); + if (zoom.getApi() == null) { + api = (ZoomApi) zoomDAO.find(ZoomApi.class, 1L); + zoom.setApi(api); + zoomDAO.update(zoom); + } + return true; + } + + @Override + public String createMeeting(Long zoomUid) throws IOException, JSONException { + Zoom zoom = (Zoom) zoomDAO.find(Zoom.class, zoomUid); + if (zoom.getMeetingId() != null) { + return zoom.getMeetingStartUrl(); + } + if (zoom.getApi() == null) { + throw new ZoomException("Can not create a meeting without chosen API keys"); + } + URL url = new URL("https://api.zoom.us/v2/users/" + zoom.getApi().getEmail() + "/meetings"); + HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); + connection.setRequestMethod("POST"); + connection.setRequestProperty("Content-Type", "application/json"); + connection.setRequestProperty("Authorization", "Bearer " + ZoomService.generateJWT(zoom.getApi())); + connection.setDoOutput(true); + JSONObject bodyJSON = new JSONObject(); + JSONObject settings = new JSONObject(); + settings.put("approval_type", 0); + settings.put("join_before_host", true); + Date currentTime = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); + sdf.setTimeZone(TimeZone.getTimeZone("GMT")); + String startTime = sdf.format(currentTime); + bodyJSON.put("topic", zoom.getTitle()).put("type", 2).put("start_time", startTime).put("settings", settings); + ZoomService.writeRequestBody(connection, bodyJSON.toString()); + + JSONObject responseJSON = ZoomService.getReponse(connection); + String startURL = responseJSON.getString("start_url"); + String meetingId = String.valueOf(responseJSON.getLong("id")); + + ZoomService.switchOffRegistrantEmails(zoom.getApi(), meetingId); + + zoom.setMeetingStartUrl(startURL); + zoom.setMeetingId(meetingId); + zoomDAO.update(zoom); + return startURL; + } + + @Override + public String registerUser(Long zoomUid, Long userUid, String sessionName) throws IOException, JSONException { + ZoomUser user = (ZoomUser) zoomUserDAO.find(ZoomUser.class, userUid); + if (user.getMeetingJoinUrl() != null) { + return user.getMeetingJoinUrl(); + } + ZoomUserDTO userDTO = createUserDTO(user); + Zoom zoom = (Zoom) zoomDAO.find(Zoom.class, zoomUid); + URL url = new URL("https://api.zoom.us/v2/meetings/" + zoom.getMeetingId() + "/registrants"); + HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); + con.setRequestMethod("POST"); + con.setRequestProperty("Content-Type", "application/json"); + con.setRequestProperty("Authorization", "Bearer " + ZoomService.generateJWT(zoom.getApi())); + con.setDoOutput(true); + JSONObject bodyJSON = new JSONObject(); + String lastName = userDTO.getLastName(); + if (!sessionName.endsWith(" learners")) { + lastName += " (" + sessionName + ")"; + } + bodyJSON.put("email", userDTO.getEmail()).put("first_name", userDTO.getFirstName()).put("last_name", lastName); + ZoomService.writeRequestBody(con, bodyJSON.toString()); + JSONObject responseJSON = ZoomService.getReponse(con); + String meetingJoinURL = responseJSON.getString("join_url"); + user.setMeetingJoinUrl(meetingJoinURL); + zoomUserDAO.update(user); + return meetingJoinURL; + } + + private static String generateJWT(ZoomApi api) { + Date expiration = new Date(System.currentTimeMillis() + 10000); + return Jwts.builder().setHeaderParam("typ", "JWT").setIssuer(api.getKey()).setExpiration(expiration) + .signWith(SignatureAlgorithm.HS256, api.getSecret().getBytes()).compact(); + } + + private static void writeRequestBody(HttpURLConnection connection, String body) throws IOException { + OutputStream os = connection.getOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8"); + osw.write(body); + osw.flush(); + osw.close(); + os.close(); + } + + private static void switchOffRegistrantEmails(ZoomApi api, String meetingId) throws IOException, JSONException { + URL url = new URL("https://api.zoom.us/v2/meetings/" + meetingId); + HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); + ZoomService.setRequestMethod(connection, "PATCH"); + connection.setRequestProperty("Content-Type", "application/json"); + connection.setRequestProperty("Authorization", "Bearer " + ZoomService.generateJWT(api)); + connection.setDoOutput(true); + JSONObject bodyJSON = new JSONObject(); + JSONObject settings = new JSONObject(); + settings.put("registrants_confirmation_email", false); + bodyJSON.put("settings", settings); + ZoomService.writeRequestBody(connection, bodyJSON.toString()); + ZoomService.getReponse(connection); + } + + private static void setRequestMethod(HttpURLConnection connection, String method) { + try { + final Object target; + if (connection instanceof HttpsURLConnectionImpl) { + final Field delegate = HttpsURLConnectionImpl.class.getDeclaredField("delegate"); + delegate.setAccessible(true); + target = delegate.get(connection); + } else { + target = connection; + } + final Field f = HttpURLConnection.class.getDeclaredField("method"); + f.setAccessible(true); + f.set(target, method); + } catch (IllegalAccessException | NoSuchFieldException ex) { + throw new AssertionError(ex); + } + } + + private static JSONObject getReponse(HttpURLConnection connection) throws IOException, JSONException { + JSONObject responseJSON = null; + try { + connection.connect(); + int code = connection.getResponseCode(); + String response = null; + + if (code < 300) { + StringWriter writer = new StringWriter(); + IOUtils.copy(connection.getInputStream(), writer); + response = writer.toString(); + if (response != null && response.startsWith("{")) { + responseJSON = new JSONObject(response); + } + } + + if (logger.isDebugEnabled()) { + logger.info("Server response: " + code + " " + connection.getResponseMessage() + " " + response); + } + } finally { + connection.disconnect(); + } + return responseJSON; + } +} \ No newline at end of file Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomServiceProxy.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomServiceProxy.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/service/ZoomServiceProxy.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,71 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License 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 + * **************************************************************** + */ + + +package org.lamsfoundation.lams.tool.zoom.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 ZoomServiceProxy { + + public static final IZoomService getZoomService(ServletContext servletContext) { + return (IZoomService) ZoomServiceProxy.getZoomDomainService(servletContext); + } + + private static Object getZoomDomainService(ServletContext servletContext) { + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); + return wac.getBean("zoomService"); + } + + /* + * Return the zoom 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 getZoomSessionManager(ServletContext servletContext) { + return (ToolSessionManager) ZoomServiceProxy.getZoomDomainService(servletContext); + } + + /* + * Return the zoom 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 getZoomContentManager(ServletContext servletContext) { + return (ToolContentManager) ZoomServiceProxy.getZoomDomainService(servletContext); + } + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomConstants.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomConstants.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomConstants.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.util; + +public final class ZoomConstants { + + public static final String APP_RESOURCES = "org.lamsfoundation.lams.tool.zoom.ApplicationResources"; + + // Attribute names + public static final String ATTR_CONFIG_DTO = "configDTO"; + public static final String ATTR_CONTENT_DTO = "contentDTO"; + public static final String ATTR_CONTENT_FOLDER_ID = "contentFolderID"; + public static final String ATTR_MEETING_OPEN = "meetingOpen"; + public static final String ATTR_MEETING_URL = "meetingURL"; + public static final String ATTR_MESSAGE_KEY = "messageKey"; + public static final String ATTR_SESSION_MAP = "sessionMap"; + public static final String ATTR_TOOL_SESSION_ID = "toolSessionID"; + public static final String ATTR_USER_DTO = "userDTO"; + + // Configuration keys + + // Authoring SessionMap key names + public static final String KEY_CONTENT_FOLDER_ID = "contentFolderID"; + public static final String KEY_MODE = "mode"; + public static final String KEY_TOOL_CONTENT_ID = "toolContentID"; + + // Parameter names + public static final String PARAM_USER_UID = "userUID"; + + // Tool signature + public static final String TOOL_SIGNATURE = "lazoom10"; + + private ZoomConstants() { + // prevent construction + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomException.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomException.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomException.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,53 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License 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 + * **************************************************************** + */ + + +package org.lamsfoundation.lams.tool.zoom.util; + +/** + * + * @author Ernie Ghiglione + * + */ +public class ZoomException extends RuntimeException { + + private static final long serialVersionUID = -5518806968051758859L; + + public ZoomException(String message) { + super(message); + } + + public ZoomException(String message, Throwable cause) { + super(message, cause); + } + + public ZoomException() { + super(); + + } + + public ZoomException(Throwable cause) { + super(cause); + + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomToolContentHandler.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomToolContentHandler.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomToolContentHandler.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.util; + +import org.lamsfoundation.lams.contentrepository.client.ToolContentHandler; + +/** + * Simple client for accessing the content repository. + */ +public class ZoomToolContentHandler extends ToolContentHandler { + + public static String repositoryWorkspaceName = "zoomworkspace"; + + public static String repositoryUser = "zoom"; + + public static char[] repositoryId = { 'l', 'a', 'm', 's', '-', 'z', 'o', 'o', 'm' }; + + /** + * + */ + public ZoomToolContentHandler() { + super(); + } + + /* + * (non-Javadoc) + * + * @seeorg.lamsfoundation.lams.contentrepository.client.ToolContentHandler# getRepositoryWorkspaceName() + */ + @Override + public String getRepositoryWorkspaceName() { + return repositoryWorkspaceName; + } + + /* + * (non-Javadoc) + * + * @seeorg.lamsfoundation.lams.contentrepository.client.ToolContentHandler# getRepositoryUser() + */ + @Override + public String getRepositoryUser() { + return repositoryUser; + } + + /* + * (non-Javadoc) + * + * @seeorg.lamsfoundation.lams.contentrepository.client.ToolContentHandler# getRepositoryId() + */ + @Override + public char[] getRepositoryId() { + return repositoryId; + } + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomUtil.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomUtil.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/util/ZoomUtil.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,28 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.util; + +public class ZoomUtil { + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/AdminAction.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/AdminAction.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/AdminAction.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,112 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.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.apache.struts.actions.MappingDispatchAction; +import org.lamsfoundation.lams.tool.zoom.dto.ConfigDTO; +import org.lamsfoundation.lams.tool.zoom.model.ZoomConfig; +import org.lamsfoundation.lams.tool.zoom.service.IZoomService; +import org.lamsfoundation.lams.tool.zoom.service.ZoomServiceProxy; +import org.lamsfoundation.lams.tool.zoom.util.ZoomConstants; +import org.lamsfoundation.lams.tool.zoom.web.forms.AdminForm; + +/** + * + * + * + * + * + * + * + * + * + * + * @author Ernie Ghiglione + * + */ +public class AdminAction extends MappingDispatchAction { + + private IZoomService zoomService; + + // private static final Logger logger = Logger.getLogger(AdminAction.class); + + @Override + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + // set up zoomService + zoomService = ZoomServiceProxy.getZoomService(this.getServlet().getServletContext()); + + return super.execute(mapping, form, request, response); + } + + public ActionForward view(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + ConfigDTO configDTO = new ConfigDTO(); + + request.setAttribute(ZoomConstants.ATTR_CONFIG_DTO, configDTO); + return mapping.findForward("view-success"); + } + + public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + AdminForm adminForm = (AdminForm) form; + + return mapping.findForward("edit-success"); + } + + public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + if (!isCancelled(request)) { + + AdminForm adminForm = (AdminForm) form; + + } + + return mapping.findForward("save-success"); + } + + private void updateConfig(String key, String value) { + + ZoomConfig config = zoomService.getConfig(key); + + if (config == null) { + config = new ZoomConfig(key, value); + } else { + config.setValue(value); + } + + zoomService.saveOrUpdateConfigEntry(config); + } + +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/AuthoringAction.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/AuthoringAction.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/AuthoringAction.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,208 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.web.actions; + +import java.lang.reflect.InvocationTargetException; +import java.util.Date; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.beanutils.BeanUtils; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.actions.DispatchAction; +import org.lamsfoundation.lams.authoring.web.AuthoringConstants; +import org.lamsfoundation.lams.tool.ToolAccessMode; +import org.lamsfoundation.lams.tool.zoom.model.Zoom; +import org.lamsfoundation.lams.tool.zoom.service.IZoomService; +import org.lamsfoundation.lams.tool.zoom.service.ZoomServiceProxy; +import org.lamsfoundation.lams.tool.zoom.util.ZoomConstants; +import org.lamsfoundation.lams.tool.zoom.web.forms.AuthoringForm; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.util.AttributeNames; +import org.lamsfoundation.lams.web.util.SessionMap; + +public class AuthoringAction extends DispatchAction { + + private IZoomService zoomService; + + @Override + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + // set up zoomService + zoomService = ZoomServiceProxy.getZoomService(this.getServlet().getServletContext()); + + return super.execute(mapping, form, request, response); + } + + /** + * 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. + * + * @throws ServletException + * + */ + @Override + protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws ServletException { + + // 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); + + ToolAccessMode mode = WebUtil.readToolAccessModeAuthorDefaulted(request); + + // retrieving Zoom with given toolContentID + Zoom zoom = zoomService.getZoomByContentId(toolContentID); + if (zoom == null) { + zoom = zoomService.copyDefaultContent(toolContentID); + zoom.setCreateDate(new Date()); + zoomService.saveOrUpdateZoom(zoom); + } + + if (mode.isTeacher()) { + // Set the defineLater flag so that learners cannot use content + // while we are editing. This flag is released when updateContent is + // called. + zoom.setDefineLater(true); + zoomService.saveOrUpdateZoom(zoom); + + //audit log the teacher has started editing activity in monitor + zoomService.auditLogStartEditingActivityInMonitor(toolContentID); + } + + // Set up the authForm. + AuthoringForm authForm = (AuthoringForm) form; + copyProperties(authForm, zoom); + + // Set up sessionMap + SessionMap map = createSessionMap(zoom, mode, contentFolderID, toolContentID); + authForm.setSessionMapID(map.getSessionID()); + + // add the sessionMap to HTTPSession. + request.getSession().setAttribute(map.getSessionID(), map); + request.setAttribute(ZoomConstants.ATTR_SESSION_MAP, map); + + return mapping.findForward("success"); + } + + public ActionForward updateContent(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + // get authForm and session map. + AuthoringForm authForm = (AuthoringForm) form; + SessionMap map = getSessionMap(request, authForm); + + // get zoom content. + Zoom zoom = zoomService.getZoomByContentId((Long) map.get(ZoomConstants.KEY_TOOL_CONTENT_ID)); + + // update zoom content using form inputs + copyProperties(zoom, authForm); + + // set the update date + zoom.setUpdateDate(new Date()); + + // releasing defineLater flag so that learner can start using the tool. + zoom.setDefineLater(false); + zoomService.saveOrUpdateZoom(zoom); + + request.setAttribute(AuthoringConstants.LAMS_AUTHORING_SUCCESS_FLAG, Boolean.TRUE); + + // add the sessionMapID to form + authForm.setSessionMapID(map.getSessionID()); + + request.setAttribute(ZoomConstants.ATTR_SESSION_MAP, map); + + return mapping.findForward("success"); + } + + /* ========== Private Methods */ + + /** + * Updates Zoom content using AuthoringForm inputs. + * + * @param authForm + * @param mode + * @return + */ + private void copyProperties(Zoom zoom, AuthoringForm authForm) { + zoom.setTitle(authForm.getTitle()); + zoom.setInstructions(authForm.getInstructions()); + zoom.setReflectOnActivity(authForm.isReflectOnActivity()); + zoom.setReflectInstructions(authForm.getReflectInstructions()); + } + + /** + * Updates AuthoringForm using Zoom content. + * + * @param zoom + * @param authForm + * @return + * @throws ServletException + */ + private void copyProperties(AuthoringForm authForm, Zoom zoom) throws ServletException { + try { + BeanUtils.copyProperties(authForm, zoom); + } catch (IllegalAccessException e) { + throw new ServletException(e); + } catch (InvocationTargetException e) { + throw new ServletException(e); + } + } + + /** + * Updates SessionMap using Zoom content. + * + * @param zoom + * @param mode + */ + private SessionMap createSessionMap(Zoom zoom, ToolAccessMode mode, String contentFolderID, + Long toolContentID) { + + SessionMap map = new SessionMap(); + + map.put(ZoomConstants.KEY_MODE, mode); + map.put(ZoomConstants.KEY_CONTENT_FOLDER_ID, contentFolderID); + map.put(ZoomConstants.KEY_TOOL_CONTENT_ID, toolContentID); + + return map; + } + + /** + * 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()); + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/ClearSessionAction.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/ClearSessionAction.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/ClearSessionAction.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 + * **************************************************************** + */ + + +package org.lamsfoundation.lams.tool.zoom.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 + * + * + * + * + * + * @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_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/LearningAction.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/LearningAction.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/LearningAction.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,301 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.web.actions; + +import java.io.IOException; +import java.util.Date; + +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.apache.struts.actions.DispatchAction; +import org.apache.struts.util.MessageResources; +import org.lamsfoundation.lams.integration.security.RandomPasswordGenerator; +import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; +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.zoom.dto.ContentDTO; +import org.lamsfoundation.lams.tool.zoom.dto.NotebookEntryDTO; +import org.lamsfoundation.lams.tool.zoom.dto.ZoomUserDTO; +import org.lamsfoundation.lams.tool.zoom.model.Zoom; +import org.lamsfoundation.lams.tool.zoom.model.ZoomSession; +import org.lamsfoundation.lams.tool.zoom.model.ZoomUser; +import org.lamsfoundation.lams.tool.zoom.service.IZoomService; +import org.lamsfoundation.lams.tool.zoom.service.ZoomServiceProxy; +import org.lamsfoundation.lams.tool.zoom.util.ZoomConstants; +import org.lamsfoundation.lams.tool.zoom.web.forms.LearningForm; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; + +public class LearningAction extends DispatchAction { + + private static final Logger logger = Logger.getLogger(LearningAction.class); + + private IZoomService zoomService; + + @Override + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + // set up zoomService + zoomService = ZoomServiceProxy.getZoomService(this.getServlet().getServletContext()); + + return super.execute(mapping, form, request, response); + } + + public ActionForward finishActivity(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws IOException { + + Long toolSessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); + + ZoomUser user = getCurrentUser(toolSessionID); + + if (user != null) { + + LearningForm learningForm = (LearningForm) form; + + if (user.getNotebookEntryUID() == null) { + user.setNotebookEntryUID(zoomService.createNotebookEntry(toolSessionID, + CoreNotebookConstants.NOTEBOOK_TOOL, ZoomConstants.TOOL_SIGNATURE, user.getUserId().intValue(), + learningForm.getEntryText())); + } else { + // update existing entry. + zoomService.updateNotebookEntry(user.getNotebookEntryUID(), learningForm.getEntryText()); + } + + user.setFinishedActivity(true); + zoomService.saveOrUpdateZoomUser(user); + } else { + logger.error("finishActivity(): couldn't find/create ZoomUser in toolSessionID: " + toolSessionID); + } + + ToolSessionManager sessionMgrService = ZoomServiceProxy.getZoomSessionManager(getServlet().getServletContext()); + + String nextActivityUrl = sessionMgrService.leaveToolSession(toolSessionID, user.getUserId().longValue()); + response.sendRedirect(nextActivityUrl); + + return null; + } + + private ZoomUser getCurrentUser(Long toolSessionId) { + org.lamsfoundation.lams.usermanagement.dto.UserDTO lamsUserDTO = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) SessionManager + .getSession().getAttribute(AttributeNames.USER); + + // attempt to retrieve user using userId and toolSessionId + ZoomUser user = zoomService.getUserByUserIdAndSessionId(lamsUserDTO.getUserID(), toolSessionId); + + if (user == null) { + ZoomSession zoomSession = zoomService.getSessionBySessionId(toolSessionId); + user = zoomService.createZoomUser(lamsUserDTO, zoomSession); + } + + return user; + } + + public ActionForward openLearnerMeeting(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + // get user uid parameter + Long uid = WebUtil.readLongParam(request, ZoomConstants.PARAM_USER_UID); + ZoomUser user = zoomService.getUserByUID(uid); + + org.lamsfoundation.lams.usermanagement.dto.UserDTO lamsUserDTO = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) SessionManager + .getSession().getAttribute(AttributeNames.USER); + + ZoomSession session = zoomService.getSessionBySessionId(user.getZoomSession().getSessionId()); + + return null; + + } + + public ActionForward openNotebook(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + LearningForm lrnForm = (LearningForm) form; + + // set the finished flag + ZoomUser user = getCurrentUser(lrnForm.getToolSessionID()); + ContentDTO contentDTO = new ContentDTO(user.getZoomSession().getZoom()); + + request.setAttribute(ZoomConstants.ATTR_CONTENT_DTO, contentDTO); + + NotebookEntry notebookEntry = zoomService.getNotebookEntry(user.getNotebookEntryUID()); + + if (notebookEntry != null) { + lrnForm.setEntryText(notebookEntry.getEntry()); + } + + LearningWebUtil.putActivityPositionInRequestByToolSessionId(lrnForm.getToolSessionID(), request, + getServlet().getServletContext()); + + return mapping.findForward("notebook"); + + } + + public ActionForward openPreviewMeeting(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + // get user uid parameter + Long uid = WebUtil.readLongParam(request, ZoomConstants.PARAM_USER_UID); + ZoomUser user = zoomService.getUserByUID(uid); + ZoomSession session = user.getZoomSession(); + + // Get LAMS userDTO + org.lamsfoundation.lams.usermanagement.dto.UserDTO lamsUserDTO = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) SessionManager + .getSession().getAttribute(AttributeNames.USER); + + // create random strings for attendee and moderator passwords + String attendeePassword = RandomPasswordGenerator.nextPassword(20); + String moderatorPassword = RandomPasswordGenerator.nextPassword(20); + MessageResources resources = MessageResources.getMessageResources(ZoomConstants.APP_RESOURCES); + + // Get default localized welcome message + + String welcomeMessage = resources.getMessage("activity.welcome.message"); + + return null; + } + + public ActionForward submitReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws IOException { + + // save the reflection entry and call the notebook. + + LearningForm lrnForm = (LearningForm) form; + + ZoomUser user = getCurrentUser(lrnForm.getToolSessionID()); + Long toolSessionID = user.getZoomSession().getSessionId(); + Integer userID = user.getUserId().intValue(); + + // check for existing notebook entry + NotebookEntry entry = zoomService.getNotebookEntry(user.getNotebookEntryUID()); + + if (entry == null) { + // create new entry + Long entryUID = zoomService.createNotebookEntry(toolSessionID, CoreNotebookConstants.NOTEBOOK_TOOL, + ZoomConstants.TOOL_SIGNATURE, userID, lrnForm.getEntryText()); + user.setNotebookEntryUID(entryUID); + zoomService.saveOrUpdateZoomUser(user); + } else { + // update existing entry + entry.setEntry(lrnForm.getEntryText()); + entry.setLastModified(new Date()); + zoomService.updateNotebookEntry(entry); + } + + return finishActivity(mapping, form, request, response); + } + + @Override + public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + LearningForm learningForm = (LearningForm) form; + + // 'toolSessionID' and 'mode' parameters are expected to be present. + ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, false); + + Long toolSessionID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_SESSION_ID); + + // Retrieve the session and content. + ZoomSession session = zoomService.getSessionBySessionId(toolSessionID); + if (session == null) { + } + + Zoom zoom = session.getZoom(); + + // set mode, toolSessionID and ZoomDTO + request.setAttribute(AttributeNames.ATTR_MODE, mode.toString()); + learningForm.setToolSessionID(toolSessionID); + + ContentDTO contentDTO = new ContentDTO(); + contentDTO.setTitle(zoom.getTitle()); + contentDTO.setInstructions(zoom.getInstructions()); + contentDTO.setReflectOnActivity(zoom.isReflectOnActivity()); + contentDTO.setReflectInstructions(zoom.getReflectInstructions()); + + request.setAttribute(ZoomConstants.ATTR_CONTENT_DTO, contentDTO); + + // Set the content in use flag. + if (!zoom.isContentInUse()) { + zoom.setContentInUse(true); + zoomService.saveOrUpdateZoom(zoom); + } + + LearningWebUtil.putActivityPositionInRequestByToolSessionId(toolSessionID, request, + getServlet().getServletContext()); + + ZoomUser user; + if (mode.equals(ToolAccessMode.TEACHER)) { + Integer userID = WebUtil.readIntParam(request, AttributeNames.PARAM_USER_ID, false); + user = zoomService.getUserByUserIdAndSessionId(userID, toolSessionID); + } else { + user = getCurrentUser(toolSessionID); + } + + // get any existing notebook entries and create userDTO + NotebookEntry entry = zoomService.getNotebookEntry(user.getNotebookEntryUID()); + ZoomUserDTO userDTO = zoomService.createUserDTO(user); + if (entry != null) { + userDTO.setNotebookEntryDTO(new NotebookEntryDTO(entry)); + } + request.setAttribute(ZoomConstants.ATTR_USER_DTO, userDTO); + +// String dispatchValue = new String(); +// boolean meetingOpen = false; +// if (mode.isAuthor()) { +// dispatchValue = "openPreviewMeeting"; +// meetingOpen = true; +// } else { +// } + + zoomService.chooseApiKeys(zoom.getUid()); + String startURL = zoom.getMeetingStartUrl(); + if (zoom.getMeetingId() == null) { + startURL = zoomService.createMeeting(zoom.getUid()); + } + + String meetingURL = null; + if (startURL == null) { + meetingURL = zoomService.registerUser(zoom.getUid(), user.getUid(), session.getSessionName()); + } else { + meetingURL = startURL; + zoom.setMeetingStartUrl(null); + zoomService.saveOrUpdateZoom(zoom); + } + request.setAttribute(ZoomConstants.ATTR_MEETING_URL, meetingURL); + + // set toolSessionID in request + request.setAttribute(ZoomConstants.ATTR_TOOL_SESSION_ID, session.getSessionId()); + + return mapping.findForward("zoom"); + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/MonitoringAction.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/MonitoringAction.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/actions/MonitoringAction.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,125 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.web.actions; + +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.apache.struts.actions.DispatchAction; +import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.tool.zoom.dto.ContentDTO; +import org.lamsfoundation.lams.tool.zoom.dto.NotebookEntryDTO;//import org.lamsfoundation.lams.tool.zoom.dto.UserDTO; +import org.lamsfoundation.lams.tool.zoom.dto.ZoomUserDTO; +import org.lamsfoundation.lams.tool.zoom.model.Zoom; +import org.lamsfoundation.lams.tool.zoom.model.ZoomSession; +import org.lamsfoundation.lams.tool.zoom.model.ZoomUser; +import org.lamsfoundation.lams.tool.zoom.service.IZoomService; +import org.lamsfoundation.lams.tool.zoom.service.ZoomServiceProxy; +import org.lamsfoundation.lams.tool.zoom.util.ZoomConstants; +import org.lamsfoundation.lams.tool.zoom.web.forms.MonitoringForm; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; + +public class MonitoringAction extends DispatchAction { + + private static final Logger logger = Logger.getLogger(MonitoringAction.class); + + private IZoomService zoomService; + + @Override + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + // set up zoomService + zoomService = ZoomServiceProxy.getZoomService(this.getServlet().getServletContext()); + + return super.execute(mapping, form, request, response); + } + + @Override + public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + + Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID)); + + String contentFolderID = WebUtil.readStrParam(request, AttributeNames.PARAM_CONTENT_FOLDER_ID); + + Zoom zoom = zoomService.getZoomByContentId(toolContentID); + + if (zoom == null) { + logger.error("Unable to find tool content with id :" + toolContentID); + } + + ContentDTO contentDT0 = new ContentDTO(zoom); + + Long currentTab = WebUtil.readLongParam(request, AttributeNames.PARAM_CURRENT_TAB, true); + contentDT0.setCurrentTab(currentTab); + + request.setAttribute(ZoomConstants.ATTR_CONTENT_DTO, contentDT0); + request.setAttribute(ZoomConstants.ATTR_CONTENT_FOLDER_ID, contentFolderID); + + return mapping.findForward("success"); + } + + public ActionForward openNotebook(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + Long uid = new Long(WebUtil.readLongParam(request, ZoomConstants.PARAM_USER_UID)); + + ZoomUser user = zoomService.getUserByUID(uid); + NotebookEntry entry = zoomService.getNotebookEntry(user.getNotebookEntryUID()); + + ZoomUserDTO userDTO = zoomService.createUserDTO(user); + userDTO.setNotebookEntryDTO(new NotebookEntryDTO(entry)); + + request.setAttribute(ZoomConstants.ATTR_USER_DTO, userDTO); + + return mapping.findForward("zoom_display"); + } + + public ActionForward startMeeting(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + MonitoringForm monitoringForm = (MonitoringForm) form; + + // get zoom session + ZoomSession session = zoomService.getSessionBySessionId(monitoringForm.getToolSessionID()); + + // Get LAMS userDTO + org.lamsfoundation.lams.usermanagement.dto.UserDTO lamsUserDTO = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) SessionManager + .getSession().getAttribute(AttributeNames.USER); + + String meetingKey; + + // if the meeting is already created, redirect the monitor to the meeting directly + + zoomService.saveOrUpdateZoomSession(session); + + return null; + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/AdminForm.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/AdminForm.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/AdminForm.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.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; + +/** + * + * @author Ernie Ghiglione + */ +public class AdminForm extends ActionForm { + + private static final long serialVersionUID = 8367278543453322252L; + + private String serverURL; + + // Fields + + public String getServerURL() { + return serverURL; + } + + public void setServerURL(String serverURL) { + this.serverURL = serverURL; + } + + @Override + public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { + + ActionErrors errors = new ActionErrors(); + + return errors; + } +} \ No newline at end of file Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/AuthoringForm.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/AuthoringForm.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/AuthoringForm.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,131 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.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.lamsfoundation.lams.web.util.SessionMap; + +/** + * + */ +public class AuthoringForm extends ActionForm { + + private static final long serialVersionUID = 3950453134542135495L; + + // Fields + + private String title; + + private String instructions; + + private boolean reflectOnActivity; + + private String reflectInstructions; + + private String currentTab; + + private String dispatch; + + private String sessionMapID; + + private SessionMap sessionMap; + + @Override + public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) { + ActionErrors ac = new ActionErrors(); + ac.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("this is an error")); + + return ac; + } + + public String getSessionMapID() { + return sessionMapID; + } + + public void setSessionMapID(String sessionMapID) { + this.sessionMapID = sessionMapID; + } + + public String getCurrentTab() { + return currentTab; + } + + public void setCurrentTab(String currentTab) { + this.currentTab = currentTab; + } + + public String getDispatch() { + return dispatch; + } + + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } + + public String getInstructions() { + return instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + public boolean isReflectOnActivity() { + return reflectOnActivity; + } + + public void setReflectOnActivity(boolean reflectOnActivity) { + this.reflectOnActivity = reflectOnActivity; + } + + public String getReflectInstructions() { + return reflectInstructions; + } + + public void setReflectInstructions(String reflectInstructions) { + this.reflectInstructions = reflectInstructions; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setSessionMap(SessionMap sessionMap) { + this.sessionMap = sessionMap; + } + + public SessionMap getSessionMap() { + return sessionMap; + } +} \ No newline at end of file Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/LearningForm.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/LearningForm.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/LearningForm.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,97 @@ +/**************************************************************** + * 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 + * **************************************************************** + */ + +package org.lamsfoundation.lams.tool.zoom.web.forms; + +import org.apache.struts.action.ActionForm; + +/** + * + * @author Ernie Ghiglione + * + * + */ +public class LearningForm extends ActionForm { + + private static final long serialVersionUID = -4728946254882237144L; + + private String title; + + private String instructions; + + private String dispatch; + + private Long toolSessionID; + + private String mode; + + private 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_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/MonitoringForm.java =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/MonitoringForm.java (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/web/forms/MonitoringForm.java (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 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 + * **************************************************************** + */ + + +package org.lamsfoundation.lams.tool.zoom.web.forms; + +import org.apache.struts.action.ActionForm; + +/** + * + */ +public class MonitoringForm extends ActionForm { + + private static final long serialVersionUID = 9096908688391850595L; + + // Fields + + private String dispatch; + + private Long toolSessionID; + + public String getDispatch() { + return dispatch; + } + + public void setDispatch(String dispatch) { + this.dispatch = dispatch; + } + + public Long getToolSessionID() { + return toolSessionID; + } + + public void setToolSessionID(Long toolSessionID) { + this.toolSessionID = toolSessionID; + } +} Index: lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/zoomApplicationContext.xml =================================================================== diff -u --- lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/zoomApplicationContext.xml (revision 0) +++ lams_tool_zoom/src/java/org/lamsfoundation/lams/tool/zoom/zoomApplicationContext.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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_zoom/web/403.jsp =================================================================== diff -u --- lams_tool_zoom/web/403.jsp (revision 0) +++ lams_tool_zoom/web/403.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/404.jsp =================================================================== diff -u --- lams_tool_zoom/web/404.jsp (revision 0) +++ lams_tool_zoom/web/404.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/struts-config.xml =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/struts-config.xml (revision 0) +++ lams_tool_zoom/web/WEB-INF/struts-config.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_zoom/web/WEB-INF/tags/AdvancedAccordian.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/AdvancedAccordian.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/AdvancedAccordian.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,53 @@ +<% + /**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * AdvancedAccordian.tag + * Author: Fiona Malikoff + * Description: Creates the show/hide entry for the Advanced Settings in Montoring. + * Wiki: + */ +%> +<%@ attribute name="title" required="true" rtexprvalue="true"%> + +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> +<%@ taglib uri="tags-lams" prefix="lams"%> + +
+
+ + +
+ +
+
+
+ \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/Alert.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/Alert.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/Alert.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,46 @@ +<%@ tag body-content="scriptless"%> +<%@ taglib uri="tags-core" prefix="c"%> + +<%@ attribute name="close" required="false" rtexprvalue="true"%> +<%@ attribute name="id" required="false" rtexprvalue="true"%> +<%@ attribute name="type" required="false" rtexprvalue="true"%> + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+
+ + × + + +
+
+
+
+
Index: lams_tool_zoom/web/WEB-INF/tags/Arrow.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/Arrow.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/Arrow.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,55 @@ +<%@ tag body-content="scriptless"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-function" prefix="fn" %> + +<%-- state = up: up arrow; state = down: down arrow --%> +<%@ attribute name="state" required="true" rtexprvalue="true"%> +<%@ attribute name="title" required="false" rtexprvalue="true"%> +<%@ attribute name="onclick" required="false" rtexprvalue="true"%> +<%@ attribute name="id" required="false" rtexprvalue="true"%> +<%@ attribute name="display" required="false" rtexprvalue="true"%> + + + + title="${title}" + + + + + + + + + onclick="${onclick}" + + + + + + + + + id="${id}" + + + + + + + + + style='display:${display}' + + + + + + + + + + + + + + Index: lams_tool_zoom/web/WEB-INF/tags/AuthoringButton.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/AuthoringButton.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/AuthoringButton.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,133 @@ +<% +/**************************************************************** + * 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" %> +<%@ taglib uri="tags-lams" prefix="lams"%> + +<%@ 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 --%> + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/AuthoringRatingAllStyleCriteria.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/AuthoringRatingAllStyleCriteria.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/AuthoringRatingAllStyleCriteria.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,420 @@ +<% + /** + * AuthoringRatingSimple.tag + * Author: Andrey Balan + * Description: Creates list of rating criterias for authoring page, only support stars. + */ + %> +<%@ 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"%> +<%@ taglib uri="tags-function" prefix="fn" %> + + +<%@ attribute name="criterias" required="true" rtexprvalue="true" type="java.util.Collection" %> + +<%-- Optional attribute --%> +<%@ attribute name="hasRatingLimits" required="false" rtexprvalue="true" %> +<%@ attribute name="formContentPrefix" required="false" rtexprvalue="true" %> +<%@ attribute name="styleId" required="false" rtexprvalue="true" %> +<%@ attribute name="headerLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="addLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="deleteLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="upLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="downLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="minimumLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="maximumLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="noMinimumLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="noMaximumLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="jsWarningLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="allowCommentsLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="minNumberWordsLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="allLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="justifyLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="rankLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="hedgeRankLabel" required="false" rtexprvalue="true" %> + +<%-- Default value for message key --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+ +
+ + + +
+
+ +
+ + + +   + +
+ +
+ \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/AuthoringRatingCriteria.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/AuthoringRatingCriteria.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/AuthoringRatingCriteria.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,348 @@ +<% + /** + * AuthoringRatingCriteria.tag + * Author: Andrey Balan + * Description: Creates list of rating criterias 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" %> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-function" prefix="fn" %> + + +<%@ attribute name="criterias" required="true" rtexprvalue="true" type="java.util.Collection" %> + +<%-- Optional attribute --%> +<%@ attribute name="hasRatingLimits" required="false" rtexprvalue="true" %> +<%@ attribute name="formContentPrefix" required="false" rtexprvalue="true" %> +<%@ attribute name="styleId" required="false" rtexprvalue="true" %> +<%@ attribute name="headerLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="addLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="deleteLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="upLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="downLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="minimumLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="maximumLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="noMinimumLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="noMaximumLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="jsWarningLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="allowCommentsLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="minNumberWordsLabel" required="false" rtexprvalue="true" %> + +<%-- Default value for message key --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + + + + +
+ + + +
">
+
">
+
+ "> +
+ + + + +
+ + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + + + + + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + +
+
+ +
+ +
+ +
+ + +
+
+
+
+ \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/CKEditor.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/CKEditor.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/CKEditor.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,100 @@ +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-function" prefix="fn" %> + +<%@ 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"%> +<%@ attribute name="resizeParentFrameName" required="false" rtexprvalue="true"%> +<%@ attribute name="method" required="false" rtexprvalue="true"%> + + + + + + + + + + + + + + + ${toolbarSet}Inline + + + + + + + + + + + + + + + + + /lams/ckeditor/ + + + + Index: lams_tool_zoom/web/WEB-INF/tags/Comments.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/Comments.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/Comments.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,79 @@ +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-function" prefix="fn" %> + +<%@ attribute name="toolSessionId" required="true" rtexprvalue="true"%> +<%@ attribute name="toolItemId" required="false" rtexprvalue="true"%> +<%@ attribute name="toolSignature" required="true" rtexprvalue="true"%> +<%@ attribute name="height" required="false" rtexprvalue="true"%> +<%@ attribute name="width" required="false" rtexprvalue="true"%> +<%@ attribute name="mode" required="false" rtexprvalue="true"%> +<%@ attribute name="likeAndDislike" required="false" rtexprvalue="true"%> +<%@ attribute name="anonymous" required="false" rtexprvalue="true"%> +<%@ attribute name="readOnly" required="false" rtexprvalue="true"%> +<%@ attribute name="pageSize" required="false" rtexprvalue="true"%> +<%@ attribute name="sortBy" required="false" rtexprvalue="true"%> +<%@ attribute name="embedInAccordian" required="false" rtexprvalue="true"%> +<%@ attribute name="accordionTitle" required="false" rtexprvalue="true"%> + + + + + + + + + + + + + &mode=${mode} + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/CommentsAuthor.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/CommentsAuthor.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/CommentsAuthor.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,80 @@ +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-html" prefix="html"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> +<%@ taglib uri="tags-lams" prefix="lams"%> + +<%@ attribute name="allowCommentsVariableName" required="false" rtexprvalue="true"%> +<%@ attribute name="allowCommentLabelKey" required="false" rtexprvalue="true"%> +<%@ attribute name="likeDislikeVariableName" required="false" rtexprvalue="true"%> +<%@ attribute name="likeOnlyCommentLabelKey" required="false" rtexprvalue="true"%> +<%@ attribute name="likeDislikeLabelKey" required="false" rtexprvalue="true"%> +<%@ attribute name="allowAnonymousVariableName" required="false" rtexprvalue="true"%> +<%@ attribute name="allowAnonymousLabelKey" required="false" rtexprvalue="true"%> +<%@ attribute name="commentPanelHeaderKey" required="false" rtexprvalue="true"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+     +   +
+
+ +
+
+ +
+ + + + Index: lams_tool_zoom/web/WEB-INF/tags/Date.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/Date.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/Date.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,64 @@ +<% +/**************************************************************** + * 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"%> +<%@ attribute name="timeago" required="false" rtexprvalue="true"%> + +<%@ taglib uri="tags-fmt" prefix="fmt" %> +<%@ taglib uri="tags-core" prefix="c" %> + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/DefineLater.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/DefineLater.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/DefineLater.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,66 @@ + +<% + /**************************************************************** + * 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 --%> + + + + + + + +
+
+
+ +
+
+
+
+
+ +
+
\ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/FileUpload.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/FileUpload.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/FileUpload.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,84 @@ +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-lams" prefix="lams"%> +<%@ taglib uri="tags-function" prefix="fn" %> +<%@ taglib uri="tags-fmt" prefix="fmt" %> + +<%-- Usually fileFieldname and fileFieldId are the same, but DACO needs them to be different. + If they can be the same, set fileFieldname and fileFieldId will be set to the same. + If you need them different, then define both. + If you define neither, fileFieldname = fileFieldId = "fileSelector" --%> +<%@ attribute name="fileFieldname" required="false" rtexprvalue="true"%> +<%@ attribute name="fileFieldId" required="false" rtexprvalue="true"%> + +<%@ attribute name="fileInputNameFieldname" required="false" rtexprvalue="true"%> +<%@ attribute name="fileInputMessageKey" required="false" rtexprvalue="true"%> + +<%-- Set uploadInfoMessageKey to '-' to NOT show the "not exe and max file size" type message. Leave it blank for the default key label.upload.info --%> +<%@ attribute name="uploadInfoMessageKey" required="false" rtexprvalue="true"%> +<%@ attribute name="maxFileSize" required="true" rtexprvalue="true"%> +<%@ attribute name="tabindex" required="false" rtexprvalue="true"%> + +<%-- Only set if you have more than one file field on the screen (such as DACO) --%> +<%@ attribute name="errorMsgDiv" required="false" rtexprvalue="true"%> +<%@ attribute name="fileButtonBrowse" required="false" rtexprvalue="true"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ <%-- font-size:inherit needed for Share Resources authoring or the button is too small --%> + + + + +
+ +

${maxFileSize}

+
+ + + + Index: lams_tool_zoom/web/WEB-INF/tags/Head.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/Head.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/Head.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 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_zoom/web/WEB-INF/tags/ImgButtonWrapper.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/ImgButtonWrapper.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/ImgButtonWrapper.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/tags/LeaderDisplay.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/LeaderDisplay.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/LeaderDisplay.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,28 @@ +<%@ tag body-content="scriptless"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> +<%@ taglib uri="tags-lams" prefix="lams"%> + +<%@ attribute name="idName" required="false" rtexprvalue="true"%> +<%@ attribute name="messageKey" required="false" rtexprvalue="true"%> +<%@ attribute name="username" required="false" rtexprvalue="true"%> +<%@ attribute name="userId" required="true" rtexprvalue="true"%> + + + + + + + + + +
+
+
+

+ +   +

+
+
+
Index: lams_tool_zoom/web/WEB-INF/tags/Page.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/Page.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/Page.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,437 @@ +<%@ tag body-content="scriptless"%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> +<%@ taglib uri="tags-lams" prefix="lams"%> + +<%@ attribute name="type" required="true" rtexprvalue="true"%> +<%@ attribute name="style" required="false" rtexprvalue="true"%> +<%@ attribute name="title" required="false" rtexprvalue="true"%> +<%@ attribute name="titleHelpURL" required="false" rtexprvalue="true"%> +<%@ attribute name="headingContent" required="false" rtexprvalue="true"%> +<%@ attribute name="usePanel" required="false" rtexprvalue="true"%> +<%@ attribute name="hideProgressBar" required="false" rtexprvalue="true"%> + +<%@ tag import="org.lamsfoundation.lams.util.Configuration"%> +<%@ tag import="org.lamsfoundation.lams.util.ConfigurationKeys"%> + + + true + +<%=Configuration.get(ConfigurationKeys.DISPLAY_PORTRAIT)%> + + + + + <%-- Combined tab and navigation bar used in authoring and monitoring --%> +
+
+
+ +
+
+
+
+ + + <%-- Learner --%> + + <%-- Try to get authoring preview/learning/monitoring from the tool activity so we don't show the progress bar in monitoring --%> + + + + + + + + + + + <%-- only have sidebar and presence in learner main window, not in popup windows --%> + + + <%-- Links placed in body instead of head. Ugly, but it works. --%> + + + + + + + + + + + + <%-- Desperately try to get tool session ID from the tool activity --%> + + + + + + + + + + + + + + + + + + + + + + + + ${toolForm.toolSessionID} + + + + + + + + + <%-- end of sidebar stuff - only used if in learner screen --%> + + + + + + + +
+
+
+ + + +
+ +
+
+ + + ${titleHelpURL} + +
+ + + +
+
+ +
+ +
+
+
+ + + + +
+ +
+
+
+
+
Index: lams_tool_zoom/web/WEB-INF/tags/Rating.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/Rating.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/Rating.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,199 @@ +<% + /** + * Rating.tag + * Author: Andrey Balan + * Description: Shows rating stars widget + */ + %> +<%@ 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"%> +<%@ taglib uri="tags-function" prefix="fn" %> + + +<%@ attribute name="itemRatingDto" required="true" rtexprvalue="true" type="org.lamsfoundation.lams.rating.dto.ItemRatingDTO" %> + +<%-- Optional attribute --%> +<%@ attribute name="disabled" required="false" rtexprvalue="true" %> +<%@ attribute name="isItemAuthoredByUser" required="false" rtexprvalue="true" %> +<%@ attribute name="maxRates" required="false" rtexprvalue="true" %> +<%@ attribute name="countRatedItems" required="false" rtexprvalue="true" %> +<%@ attribute name="yourRatingLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="averageRatingLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="minNumberWordsLabel" required="false" rtexprvalue="true" %> +<%@ attribute name="showComments" required="false" rtexprvalue="true" %> +<%@ attribute name="allowRetries" required="false" rtexprvalue="true" %> + +<%-- Default value for message key --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<%--Rating stars area---------------------------------------%> + +
+
+ + + + + + + + + + + + + + + + + + + + + + ${criteriaDto.ratingCriteria.title} + + + + + + + + + + + +
+
+ + + +
+ + + + + + ${criteriaDto.numberOfVotes} + + +
+
+ + +
style="visibility: hidden;" + > + + + + + + + + + + + + + ${criteriaDto.numberOfVotes} + + +
+ +
+
+ +
+ +
+ +
+ +<%--Comments area---------------------------------------%> + +
+ + + + +
+ +
+
+
+ + +
+ +
+
+ + +
+ + + + + + + : + + + + +
+
+ +
+
+
+
+
+
+
+ +
+
\ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/RestrictedUsageAccordian.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/RestrictedUsageAccordian.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/RestrictedUsageAccordian.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,54 @@ +<% + /**************************************************************** + * 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 + * **************************************************************** + */ + + /** + * AdvancedAccordian.tag + * Author: Fiona Malikoff + * Description: Creates the show/hide entry for the Restricted Usage Settings in Monitoring. + * Wiki: + */ +%> +<%@ attribute name="title" required="true" rtexprvalue="true"%> + +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-fmt" prefix="fmt"%> +<%@ taglib uri="tags-lams" prefix="lams"%> + +
+
+ + + +
+ +
+
+
+ \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/SimplePanel.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/SimplePanel.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/SimplePanel.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,32 @@ +<%@ tag body-content="scriptless"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> + +<%@ attribute name="title" required="false" rtexprvalue="true"%> +<%@ attribute name="titleKey" required="false" rtexprvalue="true"%> +<%@ attribute name="titleHelpURL" required="false" rtexprvalue="true"%> +<%@ attribute name="panelBodyClass" required="false" rtexprvalue="true"%> + + + + + +
+ +
+
+ + + + +
+
+
+
+ +
+
+ + + + Index: lams_tool_zoom/web/WEB-INF/tags/StyledRating.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/StyledRating.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/StyledRating.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,203 @@ +<% + /** + * StyledRating.tag + * Author: Andrey Balan + * Description: Shows the results of a styled rating. Does not allow for update. + */ + %> +<%@ 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"%> +<%@ taglib uri="tags-function" prefix="fn" %> + + +<%@ attribute name="criteriaRatings" required="true" rtexprvalue="true" type="org.lamsfoundation.lams.rating.dto.StyledCriteriaRatingDTO" %> +<%@ attribute name="showJustification" required="true" %> +<%@ attribute name="alwaysShowAverage" required="true" %> + + +<%@ attribute name="currentUserDisplay" required="true" %> + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + +
+ ${criteriaRatings.ratingCriteria.ratingCriteriaId}-${rating.itemId} +
+ ${rating.userRating} +
+ + + + + + ${userRating} + + +
+ + ${rating.averageRating} + ${rating.numberOfVotes} + +
+
+ +
+
+ + + + + + + + + + + + + + + + + +
+
+ ${criteriaRatings.ratingCriteria.ratingCriteriaId}-${rating.itemId} +
+
+ + ${rating.averageRating} + ${rating.numberOfVotes} + +
+
+
+
+
+
+ +
+ + +   +
    + + +
  • + + - + + + : +   +   + + (${rating.userRating}) + +
  • +
    +
    +
+
+ + +   +
    + + +
  • + + - + ${rating.averageRating} + + : +   +   + + (${rating.userRating}) + +
  • +
    +
    +
+ +   +
+
+
+ + +
\ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/TSTable.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/TSTable.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/TSTable.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,53 @@ +<%-- Tablesorter Table and Pager --%> +<%@ tag body-content="scriptless"%> +<%@ taglib uri="tags-core" prefix="c"%> + +<%@ attribute name="numColumns" required="true" rtexprvalue="true"%> +<%@ attribute name="dataId" required="false" rtexprvalue="true"%> +<%@ attribute name="tableClass" required="false" rtexprvalue="true"%> +<%@ attribute name="pagerClass" required="false" rtexprvalue="true"%> +<%@ attribute name="test" required="false" rtexprvalue="true"%> + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/Tab.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/Tab.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/Tab.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,89 @@ +<% + /**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + + /** + * Tab.tag + * Author: Fiona Malikoff + * Description: Creates a tab element within the Hybrid Tab Header. + * 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 + + -- onclick="${methodCall}(${id});return false;"> + +--%> + + + + + + + + + + + + + + + + + + + + + class="active" + + + + + class="disabled" + + +
  • ${tabTitle}
  • Index: lams_tool_zoom/web/WEB-INF/tags/TabBody.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/TabBody.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/TabBody.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,53 @@ +<%/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 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: + */ + +%> +<%@ 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"%> + + + + active + + +
    + + + + + + + + +
    \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/TabBodyArea.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/TabBodyArea.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/TabBodyArea.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,39 @@ +<%/**************************************************************** + * 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 + * **************************************************************** + */ + +/** + * TabBodyArea.tag + * Author: Fiona Malikoff + * Description: Creates the panel body area for a nav bar screen + * Wiki: + */ + +%> +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-bean" prefix="bean"%> + +
    + +
    + + \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/TabBodys.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/TabBodys.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/TabBodys.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 + * **************************************************************** + */ + +/** + * TabBodys.tag + * Author: Fiona Malikoff + * Description: Create a tabbody list from nested TabBody tags. + * Wiki: + */ + + %> +<%@ tag body-content="scriptless"%> + + +
    + +
    Index: lams_tool_zoom/web/WEB-INF/tags/Tabs.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/Tabs.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/Tabs.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,100 @@ +<%/**************************************************************** + * 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: Fiona Malikoff + * Description: Create a hybrid panel header that contains a nav bar that acts like tabs. + */ + +%> +<%@ attribute name="control" required="false" rtexprvalue="true"%> +<%@ attribute name="title" required="false" rtexprvalue="true"%> +<%@ attribute name="refreshOnClickAction" required="false" rtexprvalue="true"%> +<%@ attribute name="helpPage" required="false" rtexprvalue="true"%> +<%@ attribute name="helpToolSignature" required="false" rtexprvalue="true"%> +<%@ attribute name="helpModule" required="false" rtexprvalue="true"%> +<%@ attribute name="extraControl" required="false" rtexprvalue="true"%> + +<%@ taglib uri="tags-core" prefix="c"%> +<%@ taglib uri="tags-lams" prefix="lams"%> + + + + + + + + + + + + +
    + + \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/TextSearch.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/TextSearch.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/TextSearch.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +

    + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/WaitingSpinner.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/WaitingSpinner.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/WaitingSpinner.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,17 @@ +<%@ taglib uri="tags-core" prefix="c"%> + +<%@ attribute name="id" required="false" rtexprvalue="true"%> +<%@ attribute name="showInline" required="false" rtexprvalue="true"%> + + + id="${id}" + + + + + + + + + + \ No newline at end of file Index: lams_tool_zoom/web/WEB-INF/tags/headItems.tag =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tags/headItems.tag (revision 0) +++ lams_tool_zoom/web/WEB-INF/tags/headItems.tag (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,49 @@ +<%/**************************************************************** + * 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_zoom/web/WEB-INF/tiles-defs.xml =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tiles-defs.xml (revision 0) +++ lams_tool_zoom/web/WEB-INF/tiles-defs.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_zoom/web/WEB-INF/tlds/jstl/c.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/jstl/c.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/jstl/c.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 assessment to import. + + url + true + true + + + +Name of the exported scoped variable for the +assessment'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 +assessment's content. The type of the scoped +variable is Reader. + + varReader + false + false + + + +Name of the context when accessing a relative +URL assessment that belongs to a foreign +context. + + context + false + true + + + +Character encoding of the content at the input +assessment. + + 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 assessment to redirect to. + + url + false + true + + + +Name of the context when redirecting to a relative URL +assessment 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 +assessment 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_zoom/web/WEB-INF/tlds/jstl/fmt.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/jstl/fmt.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/jstl/fmt.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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 assessment bundle to be used by its tag body + + bundle + org.apache.taglibs.standard.tag.rt.fmt.BundleTag + JSP + + +Assessment bundle base name. This is the bundle's +fully-qualified assessment 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 assessment bundle and stores it in the named scoped variable or + the bundle configuration variable + + setBundle + org.apache.taglibs.standard.tag.rt.fmt.SetBundleTag + empty + + +Assessment bundle base name. This is the bundle's +fully-qualified assessment 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 assessment +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_zoom/web/WEB-INF/tlds/jstl/fn.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/jstl/fn.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/jstl/fn.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/tlds/jstl/permittedTaglibs.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/jstl/permittedTaglibs.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/jstl/permittedTaglibs.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/tlds/jstl/scriptfree.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/jstl/scriptfree.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/jstl/scriptfree.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/tlds/jstl/x.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/jstl/x.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/jstl/x.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/tlds/lams/lams.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/lams/lams.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/lams/lams.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,579 @@ + + + + + 1.0 + lams + + LAMSTags + + + + org.lamsfoundation.lams.web.SessionListener + + + + + 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 + + + + + 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 + + + + + + + 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 + + + + + + + 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 + + Override the name to use a different suffix than "learner" + suffix + false + true + + + Include this webapp in the path + webapp + 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 + + + + + Small portrait of a user + User Portrait + + Portrait + org.lamsfoundation.lams.web.tag.PortraitTag + JSP + + userId + true + true + + + size + false + true + + + round + false + true + If true shows the portrait as a round dot. Defaults to true. + + + hover + false + true + If true then display as a hover box. Uses the body of the tag as the link text. + + + + + Tab + /WEB-INF/tags/Tab.tag + + + Tabs + /WEB-INF/tags/Tabs.tag + + + TabBody + /WEB-INF/tags/TabBody.tag + + + TabBodys + /WEB-INF/tags/TabBodys.tag + + + TabBodyArea + /WEB-INF/tags/TabBodyArea.tag + + + CKEditor + /WEB-INF/tags/CKEditor.tag + + + AuthoringButton + /WEB-INF/tags/AuthoringButton.tag + + + AuthoringRatingCriteria + /WEB-INF/tags/AuthoringRatingCriteria.tag + + + AuthoringRatingAllStyleCriteria + /WEB-INF/tags/AuthoringRatingAllStyleCriteria.tag + + + Rating + /WEB-INF/tags/Rating.tag + + + StyledRating + /WEB-INF/tags/StyledRating.tag + + + headItems + /WEB-INF/tags/headItems.tag + + + Date + /WEB-INF/tags/Date.tag + + + DefineLater + /WEB-INF/tags/DefineLater.tag + + + Alert + /WEB-INF/tags/Alert.tag + + + Page + /WEB-INF/tags/Page.tag + + + TSTable + /WEB-INF/tags/TSTable.tag + + + Arrow + /WEB-INF/tags/Arrow.tag + + + AdvancedAccordian + /WEB-INF/tags/AdvancedAccordian.tag + + + RestrictedUsageAccordian + /WEB-INF/tags/RestrictedUsageAccordian.tag + + + SimplePanel + /WEB-INF/tags/SimplePanel.tag + + + ImgButtonWrapper + /WEB-INF/tags/ImgButtonWrapper.tag + + + TextSearch + /WEB-INF/tags/TextSearch.tag + + + LeaderDisplay + /WEB-INF/tags/LeaderDisplay.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 + + + Comments + /WEB-INF/tags/Comments.tag + + + CommentsAuthor + /WEB-INF/tags/CommentsAuthor.tag + + + FileUpload + /WEB-INF/tags/FileUpload.tag + + + WaitingSpinner + /WEB-INF/tags/WaitingSpinner.tag + + + Index: lams_tool_zoom/web/WEB-INF/tlds/struts/struts-bean-el.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/struts/struts-bean-el.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/struts/struts-bean-el.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,212 @@ + + + + + + + + + + +1.2 +1.1 +bean +http://struts.apache.org/tags-bean-el + +include +org.apache.strutsel.taglib.bean.ELIncludeTag +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.strutsel.taglib.bean.ELMessageTag +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.strutsel.taglib.bean.ELPageTag +empty + +id +true +false + + +property +true +true + + + +resource +org.apache.strutsel.taglib.bean.ELResourceTag +org.apache.struts.taglib.bean.ResourceTei +empty + +id +true +false + + +input +false +true + + +name +true +true + + + +size +org.apache.strutsel.taglib.bean.ELSizeTag +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.strutsel.taglib.bean.ELStrutsTag +org.apache.struts.taglib.bean.StrutsTei +empty + +id +true +false + + +formBean +false +true + + +forward +false +true + + +mapping +false +true + + + + + + Index: lams_tool_zoom/web/WEB-INF/tlds/struts/struts-bean.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/struts/struts-bean.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/struts/struts-bean.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/tlds/struts/struts-html-el.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/struts/struts-html-el.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/struts/struts-html-el.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,3302 @@ + + + + + + + + + + +1.2 +1.1 +html +http://struts.apache.org/tags-html-el + +base +org.apache.strutsel.taglib.html.ELBaseTag +empty + +target +false +true + + +server +false +true + + + +button +org.apache.strutsel.taglib.html.ELButtonTag + +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.strutsel.taglib.html.ELCancelTag + +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.strutsel.taglib.html.ELCheckboxTag + +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.strutsel.taglib.html.ELErrorsTag +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.strutsel.taglib.html.ELFileTag + +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.strutsel.taglib.html.ELFormTag +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.strutsel.taglib.html.ELFrameTag + +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.strutsel.taglib.html.ELHiddenTag +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.strutsel.taglib.html.ELHtmlTag +JSP + +lang +false +true + + +locale +false +true + + +xhtml +false +true + + + +image +org.apache.strutsel.taglib.html.ELImageTag + +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.strutsel.taglib.html.ELImgTag +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.strutsel.taglib.html.ELJavascriptValidatorTag +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.strutsel.taglib.html.ELLinkTag + +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.strutsel.taglib.html.ELMessagesTag +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.strutsel.taglib.html.ELMultiboxTag + +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.strutsel.taglib.html.ELOptionTag + +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.strutsel.taglib.html.ELOptionsTag +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.strutsel.taglib.html.ELOptionsCollectionTag +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.strutsel.taglib.html.ELPasswordTag + +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.strutsel.taglib.html.ELRadioTag + +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.strutsel.taglib.html.ELResetTag + +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.strutsel.taglib.html.ELRewriteTag +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.strutsel.taglib.html.ELSelectTag +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.strutsel.taglib.html.ELSubmitTag + +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.strutsel.taglib.html.ELTextTag + +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.strutsel.taglib.html.ELTextareaTag + +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_zoom/web/WEB-INF/tlds/struts/struts-html.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/struts/struts-html.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/struts/struts-html.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/tlds/struts/struts-logic-el.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/struts/struts-logic-el.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/struts/struts-logic-el.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,382 @@ + + + + + + + + + +1.2 +1.1 +logic +http://struts.apache.org/tags-logic-el + +forward +org.apache.strutsel.taglib.logic.ELForwardTag +empty + +name +true +true + + + +iterate +org.apache.strutsel.taglib.logic.ELIterateTag +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 + + + +match +org.apache.strutsel.taglib.logic.ELMatchTag +JSP + +cookie +false +true + + +expr +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.strutsel.taglib.logic.ELMessagesNotPresentTag +JSP + +name +false +true + + +property +false +true + + +message +false +true + + + +messagesPresent +org.apache.strutsel.taglib.logic.ELMessagesPresentTag +JSP + +name +false +true + + +property +false +true + + +message +false +true + + + +notMatch +org.apache.strutsel.taglib.logic.ELNotMatchTag +JSP + +cookie +false +true + + +expr +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.strutsel.taglib.logic.ELNotPresentTag +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.strutsel.taglib.logic.ELPresentTag +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.strutsel.taglib.logic.ELRedirectTag + +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_zoom/web/WEB-INF/tlds/struts/struts-logic.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/struts/struts-logic.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/struts/struts-logic.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/tlds/struts/struts-nested.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/struts/struts-nested.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/struts/struts-nested.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/tlds/struts/struts-tiles-el.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/struts/struts-tiles-el.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/struts/struts-tiles-el.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,343 @@ + + + + + + + + + + +1.2 +1.1 +tiles +http://struts.apache.org/tags-tiles-el + +insert +org.apache.strutsel.taglib.tiles.ELInsertTag +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.strutsel.taglib.tiles.ELDefinitionTag +JSP + +id +true +false + + +scope +false +false + + +template +false +true + + +page +false +true + + +role +false +true + + +extends +false +true + + + +put +org.apache.strutsel.taglib.tiles.ELPutTag +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.strutsel.taglib.tiles.ELPutListTag +JSP + +name +true +false + + + +add +org.apache.strutsel.taglib.tiles.ELAddTag +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.strutsel.taglib.tiles.ELGetTag +empty + +name +true +true + + +ignore +false +true + + +flush +false +false + + +role +false +true + + + +getAsString +org.apache.strutsel.taglib.tiles.ELGetAttributeTag +empty + +name +true +true + + +ignore +false +true + + +role +false +true + + + +useAttribute +org.apache.strutsel.taglib.tiles.ELUseAttributeTag +empty + +id +false +false + + +classname +false +false + + +scope +false +false + + +name +true +true + + +ignore +false +true + + + +importAttribute +org.apache.strutsel.taglib.tiles.ELImportAttributeTag +empty + +name +false +true + + +scope +false +false + + +ignore +false +true + + + +initComponentDefinitions +org.apache.strutsel.taglib.tiles.ELInitDefinitionsTag +empty + +file +true +false + + +classname +false +false + + + + + + Index: lams_tool_zoom/web/WEB-INF/tlds/struts/struts-tiles.tld =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/tlds/struts/struts-tiles.tld (revision 0) +++ lams_tool_zoom/web/WEB-INF/tlds/struts/struts-tiles.tld (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/WEB-INF/validation.xml =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/validation.xml (revision 0) +++ lams_tool_zoom/web/WEB-INF/validation.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,13 @@ + + + + + + + + + Index: lams_tool_zoom/web/WEB-INF/validator-rules.xml =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/validator-rules.xml (revision 0) +++ lams_tool_zoom/web/WEB-INF/validator-rules.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_zoom/web/WEB-INF/web.xml =================================================================== diff -u --- lams_tool_zoom/web/WEB-INF/web.xml (revision 0) +++ lams_tool_zoom/web/WEB-INF/web.xml (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,306 @@ + + + + + javax.servlet.jsp.jstl.fmt.localizationContext + org.lamsfoundation.lams.tool.zoom.ApplicationResources + + + + contextConfigLocation + classpath:/org/lamsfoundation/lams/tool/zoom/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 + + + + + action + org.apache.struts.action.ActionServlet + + config + /WEB-INF/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 + zoomToolContentHandler + + 3 + + + + + action + *.do + + + + + Connector + /ckeditor/filemanager/browser/default/connectors/jsp/connector + + + + download + /download/* + + + + + 500 + /error.jsp + + + 403 + /403.jsp + + + 404 + /404.jsp + + + + + + + + + tags-bean + /WEB-INF/tlds/struts/struts-bean.tld + + + tags-html + /WEB-INF/tlds/struts/struts-html.tld + + + tags-logic + /WEB-INF/tlds/struts/struts-logic.tld + + + tags-tiles + /WEB-INF/tlds/struts/struts-tiles.tld + + + + + + tags-fmt + /WEB-INF/tlds/jstl/fmt.tld + + + tags-core + /WEB-INF/tlds/jstl/c.tld + + + tags-function + /WEB-INF/tlds/jstl/fn.tld + + + tags-xml + /WEB-INF/tlds/jstl/x.tld + + + + + + tags-permittedTaglibs + /WEB-INF/tlds/jstl/permittedTaglibs.tld + + + tags-scriptfree + /WEB-INF/tlds/jstl/scriptfree.tld + + + + + + tags-lams + /WEB-INF/tlds/lams/lams.tld + + + + + + + + + + Secure Content + /* + GET + POST + + + LEARNER + MONITOR + AUTHOR + SYSADMIN + + + + + + Authoring content + /authoring/* + /pages/authoring/* + /authoring.do + GET + POST + + + AUTHOR + MONITOR + SYSADMIN + + + + + Staff content + /pages/monitoring/* + /monitoring.do + GET + POST + + + MONITOR + SYSADMIN + + + + + + Admin content + /admin/* + /pages/admin/* + GET + POST + + + SYSADMIN + + + + + + FORM + LAMS + + /login.jsp + /login.jsp?failed=y + + + + + Student + LEARNER + + + + Authors Learning Designs + AUTHOR + + + + Member of Staff + MONITOR + + + + Group Manager + GROUP MANAGER + + + Group Administrator + GROUP ADMIN + + + LAMS System Adminstrator + SYSADMIN + + \ No newline at end of file Index: lams_tool_zoom/web/common/empty.jsp =================================================================== diff -u --- lams_tool_zoom/web/common/empty.jsp (revision 0) +++ lams_tool_zoom/web/common/empty.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_zoom/web/common/footer.jsp =================================================================== diff -u --- lams_tool_zoom/web/common/footer.jsp (revision 0) +++ lams_tool_zoom/web/common/footer.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,3 @@ +

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

    Index: lams_tool_zoom/web/common/message.jsp =================================================================== diff -u --- lams_tool_zoom/web/common/message.jsp (revision 0) +++ lams_tool_zoom/web/common/message.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,13 @@ +<%@ include file="/common/taglibs.jsp"%> + +
    + + + + +

    + + +

    +
    + Index: lams_tool_zoom/web/common/simpleHeader.jsp =================================================================== diff -u --- lams_tool_zoom/web/common/simpleHeader.jsp (revision 0) +++ lams_tool_zoom/web/common/simpleHeader.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,21 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + <fmt:message key="activity.title" /> + + + + + <%-- TODO is this the best place to import these scripts ? --%> + + + + Index: lams_tool_zoom/web/common/tabbedHeader.jsp =================================================================== diff -u --- lams_tool_zoom/web/common/tabbedHeader.jsp (revision 0) +++ lams_tool_zoom/web/common/tabbedHeader.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,11 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + <fmt:message key="activity.title" /> + + + Index: lams_tool_zoom/web/common/taglibs.jsp =================================================================== diff -u --- lams_tool_zoom/web/common/taglibs.jsp (revision 0) +++ lams_tool_zoom/web/common/taglibs.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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-function" prefix="fn" %> +<%@ taglib uri="tags-lams" prefix="lams"%> \ No newline at end of file Index: lams_tool_zoom/web/error.jsp =================================================================== diff -u --- lams_tool_zoom/web/error.jsp (revision 0) +++ lams_tool_zoom/web/error.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,78 @@ +<%@ 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"%> +<%@ page import="org.lamsfoundation.lams.util.Configuration" import="org.lamsfoundation.lams.util.ConfigurationKeys" %> + + + + + + + + + +<%-- Catch JSP Servlet Exception --%> +<%-- The javascript method checkForErrorScreen in error.js is coded to match this page exactly. +---- If you change this page, please change the javascript. --%> +<% +if ( Configuration.getAsBoolean(ConfigurationKeys.ERROR_STACK_TRACE) ) { +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_zoom/web/images/icon_zoom.png =================================================================== diff -u Binary files differ Index: lams_tool_zoom/web/includes/javascript/authoring.js =================================================================== diff -u --- lams_tool_zoom/web/includes/javascript/authoring.js (revision 0) +++ lams_tool_zoom/web/includes/javascript/authoring.js (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,19 @@ + +function init() { + // open the current tab + var tag = document.getElementById("currentTab"); + if (tag.value !== "") { + selectTab(tag.value); + } else { + selectTab(1); + } +} +function doSelectTab(tabId) { + var tag = document.getElementById("currentTab"); + tag.value = tabId; + selectTab(tabId); +} +function doSubmit(method) { + document.authoringForm.dispatch.value = method; + document.authoringForm.submit(); +} Index: lams_tool_zoom/web/includes/javascript/monitoring.js =================================================================== diff -u --- lams_tool_zoom/web/includes/javascript/monitoring.js (revision 0) +++ lams_tool_zoom/web/includes/javascript/monitoring.js (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -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_zoom/web/layouts/simpleLayout.jsp =================================================================== diff -u --- lams_tool_zoom/web/layouts/simpleLayout.jsp (revision 0) +++ lams_tool_zoom/web/layouts/simpleLayout.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,10 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + Index: lams_tool_zoom/web/layouts/tabbedLayout.jsp =================================================================== diff -u --- lams_tool_zoom/web/layouts/tabbedLayout.jsp (revision 0) +++ lams_tool_zoom/web/layouts/tabbedLayout.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,16 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + Index: lams_tool_zoom/web/pages/admin/edit.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/admin/edit.jsp (revision 0) +++ lams_tool_zoom/web/pages/admin/edit.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,53 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + +
    +
    +
    +
    + + + + + +

    + +

    +
    + + + + + + + + + + +
    + +
    + + + + + + +
    + +
    +
    Index: lams_tool_zoom/web/pages/admin/view.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/admin/view.jsp (revision 0) +++ lams_tool_zoom/web/pages/admin/view.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,22 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + +
    + + + + + +
    \ No newline at end of file Index: lams_tool_zoom/web/pages/authoring/advanced.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/authoring/advanced.jsp (revision 0) +++ lams_tool_zoom/web/pages/authoring/advanced.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,36 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + +
    + +
    + +
    + +
    + +
    + + + + Index: lams_tool_zoom/web/pages/authoring/authoring.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/authoring/authoring.jsp (revision 0) +++ lams_tool_zoom/web/pages/authoring/authoring.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,47 @@ +<%@ include file="/common/taglibs.jsp"%> + +<%@ page import="org.lamsfoundation.lams.tool.zoom.util.ZoomConstants"%> + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + + <%-- Page tabs --%> + + + + + + + +
    + +
    Index: lams_tool_zoom/web/pages/authoring/basic.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/authoring/basic.jsp (revision 0) +++ lams_tool_zoom/web/pages/authoring/basic.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,16 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + +
    + + +
    + +
    + + +
    Index: lams_tool_zoom/web/pages/authoring/headItems.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/authoring/headItems.jsp (revision 0) +++ lams_tool_zoom/web/pages/authoring/headItems.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,9 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + Index: lams_tool_zoom/web/pages/learning/defineLater.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/learning/defineLater.jsp (revision 0) +++ lams_tool_zoom/web/pages/learning/defineLater.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,11 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + Index: lams_tool_zoom/web/pages/learning/headItems.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/learning/headItems.jsp (revision 0) +++ lams_tool_zoom/web/pages/learning/headItems.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1 @@ \ No newline at end of file Index: lams_tool_zoom/web/pages/learning/learning.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/learning/learning.jsp (revision 0) +++ lams_tool_zoom/web/pages/learning/learning.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,69 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + +
    + +
    + +
    + + + + + +

    + +

    + + + +
    +
    + +
    + +
    + + + <%@ include file="parts/finishButton.jsp"%> + + +
    Index: lams_tool_zoom/web/pages/learning/notebook.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/learning/notebook.jsp (revision 0) +++ lams_tool_zoom/web/pages/learning/notebook.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,41 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + +
    + +
    + + + + + + + + + + + + + + + + +
    + + + +
    + Index: lams_tool_zoom/web/pages/learning/parts/finishButton.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/learning/parts/finishButton.jsp (revision 0) +++ lams_tool_zoom/web/pages/learning/parts/finishButton.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,77 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + +
    +
    ${notebookEntry}
    +
    +
    + +
    + + + +
    + +
    +
    + + + + +
    +

    + + + + + +
    +
    +
    +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + +
    +
    Index: lams_tool_zoom/web/pages/monitoring/editActivity.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/monitoring/editActivity.jsp (revision 0) +++ lams_tool_zoom/web/pages/monitoring/editActivity.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,39 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + +
    + + + + + + + + + + + Index: lams_tool_zoom/web/pages/monitoring/headItems.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/monitoring/headItems.jsp (revision 0) +++ lams_tool_zoom/web/pages/monitoring/headItems.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,9 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + Index: lams_tool_zoom/web/pages/monitoring/monitoring.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/monitoring/monitoring.jsp (revision 0) +++ lams_tool_zoom/web/pages/monitoring/monitoring.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,26 @@ +<%@ include file="/common/taglibs.jsp"%> +<%@ page import="org.lamsfoundation.lams.tool.zoom.util.ZoomConstants"%> + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_zoom/web/pages/monitoring/notebook.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/monitoring/notebook.jsp (revision 0) +++ lams_tool_zoom/web/pages/monitoring/notebook.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,44 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + +

    + +

    + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + + + +
    + + + + + +
    Index: lams_tool_zoom/web/pages/monitoring/statistics.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/monitoring/statistics.jsp (revision 0) +++ lams_tool_zoom/web/pages/monitoring/statistics.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,39 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + +
    +
    + + + +
    + + + + + + + + + + + +
    + heading.totalLearnersInGroup + + ${session.numberOfLearners} +
    + heading.totalFinishedLearnersInGroup + + ${session.numberOfFinishedLearners} +
    + + +
    +
    + +
    Index: lams_tool_zoom/web/pages/monitoring/summary.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/monitoring/summary.jsp (revision 0) +++ lams_tool_zoom/web/pages/monitoring/summary.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,117 @@ +<%@ include file="/common/taglibs.jsp"%> + + + +
    +

    + +

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

     ${session.numberOfLearners}

    + +
     
    +
    + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + + + + + + + + + + +
    +
    + + + + +
    +
    + + ${ !usePanel || ! status.last ? '
     
    ' : ''} + +
    + + +
    +
    + + + + + +
    +
    + + + Index: lams_tool_zoom/web/pages/zoom/end_meeting.jsp =================================================================== diff -u --- lams_tool_zoom/web/pages/zoom/end_meeting.jsp (revision 0) +++ lams_tool_zoom/web/pages/zoom/end_meeting.jsp (revision 2cf1e086b82a29fae22136351fc7a44821181323) @@ -0,0 +1,16 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + + + +

    + + + +
    + +
    \ No newline at end of file