Index: lams_tool_task/build.xml =================================================================== diff -u -r04f4cc9ba092083236c8aa1fc0f717977a1a1dd1 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/build.xml (.../build.xml) (revision 04f4cc9ba092083236c8aa1fc0f717977a1a1dd1) +++ lams_tool_task/build.xml (.../build.xml) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -49,6 +49,10 @@ + + + MINE + Index: lams_tool_task/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r19d959536ea84101c37b8a6475bd9c561950b302 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 19d959536ea84101c37b8a6475bd9c561950b302) +++ lams_tool_task/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -90,6 +90,9 @@ label.learning.wait.for.monitor.verification =To finish wait for monitor verification label.learning.responses.locked =Note: After you click on "Next Activity" and you come back to this Task List, you won't be able to continue editing. label.learning.responses.locked.reminder =The instructor has set this activity not to allow editing after you have finished it. As you are returning to this Task List again, you are able to see all Tasks but not allow to edit them anymore. +label.learning.info.comment.and.attachment.required =You are required to post a comment and upload an attachment to complete this task. +label.learning.info.post.comment.required =You are required to post a comment to complete this task. +label.learning.info.upload.attachment.required =You are required to upload an attachment to complete this task. label.preview.upload.file =Upload file label.preview.upload.button =Upload label.preview.filelist =File list Index: lams_tool_task/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -r19d959536ea84101c37b8a6475bd9c561950b302 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 19d959536ea84101c37b8a6475bd9c561950b302) +++ lams_tool_task/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -75,6 +75,9 @@ label.learning.wait.for.monitor.verification =To finish wait for monitor verification label.learning.responses.locked =Note: After you click on "Next Activity" and you come back to this Task List, you won't be able to continue editing. label.learning.responses.locked.reminder =The instructor has set this activity not to allow editing after you have finished it. As you are returning to this Task List again, you are able to see all Tasks but not allow to edit them anymore. +label.learning.info.comment.and.attachment.required =You are required to post a comment and upload an attachment to complete this task. +label.learning.info.post.comment.required =You are required to post a comment to complete this task. +label.learning.info.upload.attachment.required =You are required to upload an attachment to complete this task. label.preview.upload.file =Upload file label.preview.upload.button =Upload label.preview.filelist =File list Index: lams_tool_task/conf/language/rams/ApplicationResources.properties =================================================================== diff -u -r19d959536ea84101c37b8a6475bd9c561950b302 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/conf/language/rams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 19d959536ea84101c37b8a6475bd9c561950b302) +++ lams_tool_task/conf/language/rams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -90,6 +90,9 @@ label.learning.wait.for.monitor.verification =To finish wait for monitor verification label.learning.responses.locked =Note: After you click on "Next Activity" and you come back to this Task List, you won't be able to continue editing. label.learning.responses.locked.reminder =The instructor has set this activity not to allow editing after you have finished it. As you are returning to this Task List again, you are able to see all Tasks but not allow to edit them anymore. +label.learning.info.comment.and.attachment.required =You are required to post a comment and upload an attachment to complete this task. +label.learning.info.post.comment.required =You are required to post a comment to complete this task. +label.learning.info.upload.attachment.required =You are required to upload an attachment to complete this task. label.preview.upload.file =Upload file label.preview.upload.button =Upload label.preview.filelist =File list Index: lams_tool_task/conf/language/rams/ApplicationResources_en_AU.properties =================================================================== diff -u -r19d959536ea84101c37b8a6475bd9c561950b302 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/conf/language/rams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 19d959536ea84101c37b8a6475bd9c561950b302) +++ lams_tool_task/conf/language/rams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -90,6 +90,9 @@ label.learning.wait.for.monitor.verification =To finish wait for monitor verification label.learning.responses.locked =Note: After you click on "Next Activity" and you come back to this Task List, you won't be able to continue editing. label.learning.responses.locked.reminder =The instructor has set this activity not to allow editing after you have finished it. As you are returning to this Task List again, you are able to see all Tasks but not allow to edit them anymore. +label.learning.info.comment.and.attachment.required =You are required to post a comment and upload an attachment to complete this task. +label.learning.info.post.comment.required =You are required to post a comment to complete this task. +label.learning.info.upload.attachment.required =You are required to upload an attachment to complete this task. label.preview.upload.file =Upload file label.preview.upload.button =Upload label.preview.filelist =File list Index: lams_tool_task/conf/xdoclet/struts-actions.xml =================================================================== diff -u -rbe42ba5063335619d4e04832ea235f96b82f0e53 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision be42ba5063335619d4e04832ea235f96b82f0e53) +++ lams_tool_task/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -1,6 +1,6 @@ - + - + - + - + - - - - - - - - - - - - - + + name="taskListItemForm" + scope="request" + parameter="start" + validate="false"> - + - + - - + + - + + + + + + - + - + - + - + + Index: lams_tool_task/db/model/taskList.clay =================================================================== diff -u -r19d959536ea84101c37b8a6475bd9c561950b302 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/db/model/taskList.clay (.../taskList.clay) (revision 19d959536ea84101c37b8a6475bd9c561950b302) +++ lams_tool_task/db/model/taskList.clay (.../taskList.clay) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -24,11 +24,10 @@ - + - - - + + @@ -621,11 +620,10 @@ - + - - - + + Index: lams_tool_task/db/sql/create_lams_tool_taskList.sql =================================================================== diff -u -r19d959536ea84101c37b8a6475bd9c561950b302 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/db/sql/create_lams_tool_taskList.sql (.../create_lams_tool_taskList.sql) (revision 19d959536ea84101c37b8a6475bd9c561950b302) +++ lams_tool_task/db/sql/create_lams_tool_taskList.sql (.../create_lams_tool_taskList.sql) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -55,7 +55,7 @@ create table tl_latask10_taskList_item ( uid bigint not null auto_increment, sequence_id integer, - description varchar(255), + description text, init_item varchar(255), organization_xml text, title varchar(255), @@ -97,7 +97,7 @@ ); create table tl_latask10_item_comment ( uid bigint not null auto_increment, - comment varchar(255), + comment text, taskList_item_uid bigint, create_by bigint, create_date datetime, Index: lams_tool_task/db/sql/table-schema.sql =================================================================== diff -u -r19d959536ea84101c37b8a6475bd9c561950b302 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/db/sql/table-schema.sql (.../table-schema.sql) (revision 19d959536ea84101c37b8a6475bd9c561950b302) +++ lams_tool_task/db/sql/table-schema.sql (.../table-schema.sql) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -25,10 +25,10 @@ create table tl_latask10_item_instruction (uid bigint not null auto_increment, description varchar(255), sequence_id integer, primary key (uid)); create table tl_latask10_item_log (uid bigint not null auto_increment, access_date datetime, taskList_item_uid bigint, user_uid bigint, complete bit, session_id bigint, primary key (uid)); create table tl_latask10_item_attachment (uid bigint not null auto_increment, file_version_id bigint, file_type varchar(255), file_name varchar(255), file_uuid bigint, create_date datetime, taskList_uid bigint, create_by bigint, primary key (uid)); -create table tl_latask10_item_comment (uid bigint not null auto_increment, comment varchar(255), taskList_item_uid bigint, create_by bigint, create_date datetime, primary key (uid)); +create table tl_latask10_item_comment (uid bigint not null auto_increment, comment text, taskList_item_uid bigint, create_by bigint, create_date datetime, primary key (uid)); create table tl_latask10_session (uid bigint not null auto_increment, session_end_date datetime, session_start_date datetime, status integer, taskList_uid bigint, session_id bigint, session_name varchar(250), primary key (uid)); create table tl_latask10_taskList (uid bigint not null auto_increment, create_date datetime, update_date datetime, create_by bigint, title varchar(255), run_offline bit, instructions text, online_instructions text, offline_instructions text, content_in_use bit, define_later bit, content_id bigint unique, lock_when_finished bit, allow_contribute_tasks bit, is_monitor_verification_required bit, is_sequential_order bit, reflect_instructions varchar(255), reflect_on_activity bit, primary key (uid)); -create table tl_latask10_taskList_item (uid bigint not null auto_increment, description varchar(255), init_item varchar(255), organization_xml text, title varchar(255), create_by bigint, create_date datetime, create_by_author bit, sequence_id integer, is_required bit, is_comments_allowed bit, is_comments_required bit, is_files_allowed bit, is_files_required bit, is_comments_files_allowed bit, show_comments_to_all bit, is_child_task bit, parent_task_name varchar(255), taskList_uid bigint, session_uid bigint, primary key (uid)); +create table tl_latask10_taskList_item (uid bigint not null auto_increment, description text, init_item varchar(255), organization_xml text, title varchar(255), create_by bigint, create_date datetime, create_by_author bit, sequence_id integer, is_required bit, is_comments_allowed bit, is_comments_required bit, is_files_allowed bit, is_files_required bit, is_comments_files_allowed bit, show_comments_to_all bit, is_child_task bit, parent_task_name varchar(255), taskList_uid bigint, session_uid bigint, primary key (uid)); create table tl_latask10_user (uid bigint not null auto_increment, user_id bigint, last_name varchar(255), first_name varchar(255), login_name varchar(255), session_uid bigint, taskList_uid bigint, session_finished bit, is_verified_by_monitor bit, primary key (uid)); alter table tl_latask10_attachment add index FK281134C2994F51CE (taskList_uid), add constraint FK281134C2994F51CE foreign key (taskList_uid) references tl_latask10_taskList (uid); Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/TaskListConstants.java =================================================================== diff -u -r6597e209aaa641c0750075e90a9e18245f398a98 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/TaskListConstants.java (.../TaskListConstants.java) (revision 6597e209aaa641c0750075e90a9e18245f398a98) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/TaskListConstants.java (.../TaskListConstants.java) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -81,6 +81,10 @@ public static final String ATTR_TASK_LIST_ITEM_DESCRIPTION = "taskListItemDescription"; public static final String ATTR_TASK_LIST_ITEM_ATTACHMENT_LIST = "taskListItemAttachmentList"; public static final String ATTR_TASK_LIST_ITEM_COMMENT_LIST = "taskListItemCommentList"; + public static final String ATTR_USER_UID = "userUid"; + public static final String ATTR_TASK_LIST_ITEM_UID = "taskListItemUid"; + public static final String ATTR_USER_LOGIN = "userLogin"; + public static final String ATTR_TASK_LIST_ITEM_DTOS = "itemDTOs"; //error message keys public static final String ERROR_MSG_TITLE_BLANK = "error.resource.item.title.blank"; @@ -95,10 +99,6 @@ public static final String ATTR_REFLECTION_ON = "reflectOn"; public static final String ATTR_REFLECTION_INSTRUCTION = "reflectInstructions"; public static final String ATTR_REFLECTION_ENTRY = "reflectEntry"; - public static final String ATTR_REFLECT_LIST = "reflectList"; - public static final String ATTR_USER_UID = "userUid"; - public static final String ATTR_TASK_LIST_ITEM_UID = "taskListItemUid"; - public static final String ATTR_USER_LOGIN = "userLogin"; } Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dto/TasListItemDTO.java =================================================================== diff -u --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dto/TasListItemDTO.java (revision 0) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/dto/TasListItemDTO.java (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,162 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.taskList.dto; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.lamsfoundation.lams.tool.taskList.model.TaskListItem; +import org.lamsfoundation.lams.tool.taskList.model.TaskListItemAttachment; +import org.lamsfoundation.lams.tool.taskList.model.TaskListItemComment; +import org.lamsfoundation.lams.tool.taskList.model.TaskListUser; + +/** + * DTO object which contains data for displaying learning stuff. + * + * @author Andrey Balan + */ +public class TasListItemDTO { + + private TaskListItem taskListItem; + + private boolean isCommentRequirementsMet; + private boolean isAttachmentRequirementsMet; + private boolean isAllowedByParent; + private boolean isPreviousTaskCompleted; + //shows if this TaskListItem shoud be displayed open or close + private boolean isDisplayedOpen; + + public TasListItemDTO(TaskListItem taskListItem) { + this.taskListItem = taskListItem; + } + + // ********************************************************** + // Get/Set methods + // ********************************************************** + + /** + * Returns taskListItem. + * + * @return taskListItem + */ + public TaskListItem getTaskListItem() { + return taskListItem; + } + /** + * Returns taskListItem. + * + * @param taskListItem + */ + public void setTaskListItem(TaskListItem taskListItem) { + this.taskListItem = taskListItem; + } + + /** + * Returns whether this TaskListItem meets comment requirements. + * + * @return boolean showing whether this TaskListItem meets comment requirements or not + */ + public boolean isCommentRequirementsMet() { + return isCommentRequirementsMet; + } + /** + * Sets whether this TaskListItem meets comment requirements. + * + * @param completed true if this TaskListItem meets comment requirements, false otherwise + */ + public void setCommentRequirementsMet(boolean isCommentRequirementsMet) { + this.isCommentRequirementsMet = isCommentRequirementsMet; + } + + /** + * Returns whether this TaskListItem meets attachment requirements. + * + * @return boolean showing whether this TaskListItem meets attachment requirements or not + */ + public boolean isAttachmentRequirementsMet() { + return isAttachmentRequirementsMet; + } + /** + * Sets whether this TaskListItem meets attachment requirements. + * + * @param completed true if this TaskListItem meets attachment requirements, false otherwise + */ + public void setAttachmentRequirementsMet(boolean isAttachmentRequirementsMet) { + this.isAttachmentRequirementsMet = isAttachmentRequirementsMet; + } + + /** + * Returns whether this TaskListItem is allowed by parent. + * + * @return boolean showing whether this TaskListItem is allowed by parent or not + */ + public boolean isAllowedByParent() { + return isAllowedByParent; + } + /** + * Sets whether this TaskListItem is allowed by parent. + * + * @param completed true if this TaskListItem is allowed by parent, false otherwise + */ + public void setAllowedByParent(boolean isAllowedByParent) { + this.isAllowedByParent = isAllowedByParent; + } + + /** + * Returns whether the previous TaskListItem was completed. + * + * @return boolean showing whether the previous TaskListItem was completed or not + */ + public boolean isPreviousTaskCompleted() { + return isPreviousTaskCompleted; + } + /** + * Sets whether the previous TaskListItem was completed. + * + * @param completed true if the previous TaskListItem was completed, false otherwise + */ + public void setPreviousTaskCompleted(boolean isPreviousTaskCompleted) { + this.isPreviousTaskCompleted = isPreviousTaskCompleted; + } + + /** + * Returns whether this TaskListItem shoud be displayed open or close. + * + * @return boolean showing whether this TaskListItem shoud be displayed open or close + */ + public boolean isDisplayedOpen() { + return isDisplayedOpen; + } + /** + * Sets whether this TaskListItem shoud be displayed open or close. + * + * @param completed true if this TaskListItem shoud be displayed open, false otherwise + */ + public void setDisplayedOpen(boolean isDisplayedOpen) { + this.isDisplayedOpen = isDisplayedOpen; + } + +} + \ No newline at end of file Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/model/TaskListItem.hbm.xml =================================================================== diff -u -r0e7e464ded505f35e6ade3811f3f74658668e13a -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/model/TaskListItem.hbm.xml (.../TaskListItem.hbm.xml) (revision 0e7e464ded505f35e6ade3811f3f74658668e13a) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/model/TaskListItem.hbm.xml (.../TaskListItem.hbm.xml) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -27,7 +27,7 @@ + + + + + + + + getTaskListItemsBySessionId(Long sessionId); - - /** * Get taskList which is relative with the special toolSession. * * @param sessionId @@ -241,7 +233,7 @@ * @param taskListItemList * @param user */ - void retrieveComplete(SortedSet taskListItemList, TaskListUser user); + void retrieveComplete(Set taskListItemList, TaskListUser user); /** * Mark taskListItem as completed. Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java =================================================================== diff -u -r9c5284945798a4bfc0048ad1bbbd7f6c104fc179 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 9c5284945798a4bfc0048ad1bbbd7f6c104fc179) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/service/TaskListServiceImpl.java (.../TaskListServiceImpl.java) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -306,26 +306,6 @@ /** * {@inheritDoc} */ - public List getTaskListItemsBySessionId(Long sessionId) { - TaskListSession session = taskListSessionDao.getSessionBySessionId(sessionId); - if(session == null){ - log.error("Failed get TaskListSession by ID [" +sessionId + "]"); - return null; - } - //add taskList items from Authoring - TaskList taskList = session.getTaskList(); - List items = new ArrayList(); - items.addAll(taskList.getTaskListItems()); - - //add taskList items from TaskListSession - items.addAll(session.getTaskListItems()); - - return items; - } - - /** - * {@inheritDoc} - */ public TaskList getTaskListBySessionId(Long sessionId){ TaskListSession session = taskListSessionDao.getSessionBySessionId(sessionId); //to skip CGLib problem @@ -382,7 +362,7 @@ /** * {@inheritDoc} */ - public void retrieveComplete(SortedSet taskListItemList, TaskListUser user) { + public void retrieveComplete(Set taskListItemList, TaskListUser user) { for(TaskListItem item:taskListItemList){ TaskListItemVisitLog log = taskListItemVisitDao.getTaskListItemLog(item.getUid(),user.getUserId()); if(log == null) Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java =================================================================== diff -u -r473da9f790898ea0f8b4fa15f43210882ba60dec -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 473da9f790898ea0f8b4fa15f43210882ba60dec) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -40,7 +40,6 @@ import javax.servlet.http.HttpSession; import org.apache.commons.beanutils.PropertyUtils; -import org.apache.commons.collections.set.SynchronizedSortedSet; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; @@ -378,33 +377,20 @@ //copy back taskListPO.setAttachments(attPOSet); //************************* Handle taskList items ******************* - - //handle taskList item attachment file: - List delItemAttList = getDeletedItemAttachmentList(sessionMap); - iter = delItemAttList.iterator(); - while(iter.hasNext()){ - TaskListItem delAtt = (TaskListItem) iter.next(); - iter.remove(); - } - - //Handle taskList items Set itemList = new LinkedHashSet(); - SortedSet topics = getTaskListItemList(sessionMap); - iter = topics.iterator(); - while(iter.hasNext()){ - TaskListItem item = (TaskListItem) iter.next(); + SortedSet items = getTaskListItemList(sessionMap); + for(TaskListItem item : items){ if(item != null){ //This flushs user UID info to message if this user is a new user. item.setCreateBy(taskListUser); itemList.add(item); } } taskListPO.setTaskListItems(itemList); + - - //Handle taskList conditions. Also delete conditions that don't contain any taskLIstItems. SortedSet conditionList = getTaskListConditionList(sessionMap); SortedSet conditionListWithoutEmptyElements = new TreeSet(conditionList); @@ -428,36 +414,8 @@ if(condition.getUid() != null) service.deleteTaskListCondition(condition.getUid()); } - - -// //Handle taskList items -// SortedSet conditions = getTaskListConditionList(sessionMap); -// for (TaskListCondition condition:conditions) { -// -// -// Set itemList2 = new LinkedHashSet(); -// Set topics2 = condition.getTaskListItems(); -// iter = topics2.iterator(); -// while(iter.hasNext()){ -// TaskListItem item2 = (TaskListItem) iter.next(); -// if(item2 != null){ -// //This flushs user UID info to message if this user is a new user. -// item2.setCreateBy(taskListUser); -// itemList2.add(item2); -// } -// } -// condition.setTaskListItems(itemList2); -// -// -// } - - - - - - // delete TaskListItems from database. This should be done after // TaskListConditions have been deleted from the database. This is due // to prevent errors with foreign keys. @@ -885,18 +843,7 @@ private List getDeletedTaskListItemList(SessionMap sessionMap) { return getListFromSession(sessionMap,TaskListConstants.ATTR_DELETED_RESOURCE_ITEM_LIST); } - /** - * If a taskList item has attahment file, and the user edit this item and change the attachment - * to new file, then the old file need be deleted when submitting the whole authoring page. - * Save the file uuid and version id into TaskListItem object for temporarily use. - * @param request - * @return - */ - private List getDeletedItemAttachmentList(SessionMap sessionMap) { - return getListFromSession(sessionMap,TaskListConstants.ATTR_DELETED_RESOURCE_ITEM_ATTACHMENT_LIST); - } - /** * Get java.util.List from HttpSession by given name. * Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringTaskListConditionAction.java =================================================================== diff -u -r6597e209aaa641c0750075e90a9e18245f398a98 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringTaskListConditionAction.java (.../AuthoringTaskListConditionAction.java) (revision 6597e209aaa641c0750075e90a9e18245f398a98) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/AuthoringTaskListConditionAction.java (.../AuthoringTaskListConditionAction.java) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -23,10 +23,7 @@ /* $Id$ */ package org.lamsfoundation.lams.tool.taskList.web.action; -import java.sql.Timestamp; import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.SortedSet; @@ -37,7 +34,6 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.beanutils.PropertyUtils; -import org.apache.commons.collections.set.SynchronizedSortedSet; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.apache.struts.action.Action; @@ -58,7 +54,6 @@ import org.lamsfoundation.lams.tool.taskList.util.TaskListItemComparator; import org.lamsfoundation.lams.tool.taskList.web.form.TaskListConditionForm; import org.lamsfoundation.lams.tool.taskList.web.form.TaskListForm; -import org.lamsfoundation.lams.tool.taskList.web.form.TaskListItemForm; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java =================================================================== diff -u -r6f4c8b389a01d5464b637c6ef7486dd321a8aa60 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java (.../LearningAction.java) (revision 6f4c8b389a01d5464b637c6ef7486dd321a8aa60) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/LearningAction.java (.../LearningAction.java) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -26,12 +26,9 @@ import java.io.IOException; import java.sql.Timestamp; -import java.util.ArrayList; +import java.util.Comparator; import java.util.Date; -import java.util.HashSet; -import java.util.List; import java.util.Set; -import java.util.SortedSet; import java.util.TreeSet; import javax.servlet.ServletException; @@ -40,7 +37,6 @@ import javax.servlet.http.HttpSession; import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; import org.apache.struts.action.Action; import org.apache.struts.action.ActionErrors; @@ -49,20 +45,28 @@ import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; +import org.apache.struts.action.ActionRedirect; +import org.apache.struts.upload.FormFile; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; 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.taskList.TaskListConstants; +import org.lamsfoundation.lams.tool.taskList.dto.TasListItemDTO; import org.lamsfoundation.lams.tool.taskList.model.TaskList; import org.lamsfoundation.lams.tool.taskList.model.TaskListItem; +import org.lamsfoundation.lams.tool.taskList.model.TaskListItemAttachment; +import org.lamsfoundation.lams.tool.taskList.model.TaskListItemComment; import org.lamsfoundation.lams.tool.taskList.model.TaskListSession; import org.lamsfoundation.lams.tool.taskList.model.TaskListUser; import org.lamsfoundation.lams.tool.taskList.service.ITaskListService; import org.lamsfoundation.lams.tool.taskList.service.TaskListException; +import org.lamsfoundation.lams.tool.taskList.service.UploadTaskListFileException; import org.lamsfoundation.lams.tool.taskList.util.TaskListItemComparator; import org.lamsfoundation.lams.tool.taskList.web.form.ReflectionForm; import org.lamsfoundation.lams.tool.taskList.web.form.TaskListItemForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.FileValidatorUtil; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -79,7 +83,7 @@ private static Logger log = Logger.getLogger(LearningAction.class); - public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, UploadTaskListFileException { String param = mapping.getParameter(); //-----------------------TaskList Learner function --------------------------- @@ -102,6 +106,13 @@ return saveNewTask(mapping, form, request, response); } + if (param.equals("addNewComment")) { + return addNewComment(mapping, form, request, response); + } + if (param.equals("uploadFile")) { + return uploadFile(mapping, form, request, response); + } + //================ Reflection ======================= if (param.equals("newReflection")) { return newReflection(mapping, form, request, response); @@ -114,21 +125,6 @@ } /** - * Initial page for add taskList item (single file or URL). - * @param mapping - * @param form - * @param request - * @param response - * @return - */ - private ActionForward addTask(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - TaskListItemForm itemForm = (TaskListItemForm) form; - itemForm.setMode(WebUtil.readStrParam(request, AttributeNames.ATTR_MODE)); - itemForm.setSessionMapID(WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID)); - return mapping.findForward(TaskListConstants.SUCCESS); - } - - /** * Read taskList data from database and put them into HttpSession. It will redirect to init.do directly after this * method run successfully. * @@ -150,7 +146,7 @@ request.setAttribute(AttributeNames.ATTR_MODE,mode); request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID,sessionId); -// get back the taskList and item list and display them on page + // get back the taskList and item list and display them on page ITaskListService service = getTaskListService(); TaskListUser taskListUser = null; if ( mode != null && mode.isTeacher() ) { @@ -161,11 +157,10 @@ taskListUser = getCurrentUser(service,sessionId); } - List items = null; - TaskList taskList; - items = service.getTaskListItemsBySessionId(sessionId); - taskList = service.getTaskListBySessionId(sessionId); - + TaskList taskList = service.getTaskListBySessionId(sessionId); + TreeSet items = new TreeSet (new TaskListItemComparator()); + items.addAll(taskList.getTaskListItems()); + //check whehter finish lock is on/off boolean lock = taskList.getLockWhenFinished() && taskListUser !=null && taskListUser.isSessionFinished(); @@ -179,19 +174,72 @@ } } - //basic information - sessionMap.put(TaskListConstants.ATTR_TITLE,taskList.getTitle()); - sessionMap.put(TaskListConstants.ATTR_FINISH_LOCK,lock); - sessionMap.put(TaskListConstants.ATTR_USER_FINISHED, taskListUser !=null && taskListUser.isSessionFinished()); - sessionMap.put(TaskListConstants.ATTR_USER_VERIFIED_BY_MONITOR, taskListUser.isVerifiedByMonitor()); - sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID,sessionId); - sessionMap.put(AttributeNames.ATTR_MODE,mode); - //reflection information - sessionMap.put(TaskListConstants.ATTR_REFLECTION_ON,taskList.isReflectOnActivity()); - sessionMap.put(TaskListConstants.ATTR_REFLECTION_INSTRUCTION,taskList.getReflectInstructions()); - sessionMap.put(TaskListConstants.ATTR_REFLECTION_ENTRY, entryText); + //set complete flag for display purpose + if ( taskListUser !=null ) + service.retrieveComplete(items, taskListUser); + + TreeSet itemDTOs = new TreeSet(new Comparator() { + public int compare(TasListItemDTO o1, TasListItemDTO o2) { + if (o1 != null && o2 != null) { + return o1.getTaskListItem().getSequenceId() - o2.getTaskListItem().getSequenceId(); + } else if (o1 != null) + return 1; + else + return -1; + } + }); + + boolean isPreviousTaskCompleted = true; + for(TaskListItem item : items) { + TasListItemDTO itemDTO = new TasListItemDTO(item); + + // checks if this item met all comment requirements + boolean isCommentRequirementsMet = true; + if (item.isCommentsRequired()) { + isCommentRequirementsMet = false; + Set comments = item.getComments(); + for (TaskListItemComment comment : comments) { + if (taskListUser.getUserId().equals(comment.getCreateBy().getUserId())) isCommentRequirementsMet = true; + } + } + itemDTO.setCommentRequirementsMet(isCommentRequirementsMet); + + // checks if this item met all attachment requirements + boolean isAttachmentRequirementsMet = true; + if (item.isFilesRequired()) { + isAttachmentRequirementsMet = false; + Set attachments = item.getAttachments(); + for (TaskListItemAttachment attachment : attachments) { + if (taskListUser.getUserId().equals(attachment.getCreateBy().getUserId())) isAttachmentRequirementsMet = true; + } + } + itemDTO.setAttachmentRequirementsMet(isAttachmentRequirementsMet); + + // checks if this item is allowed by its parent + boolean isAllowedByParent = true; + if (item.isChildTask()) { + for (TaskListItem parentItem : items) { + if (parentItem.getTitle().equals(item.getParentTaskName()) && !parentItem.isComplete()) isAllowedByParent = false; + } + } + itemDTO.setAllowedByParent(isAllowedByParent); + + //checks whether this TaskListItem shoud be displayed open or close + boolean isDisplayedOpen = true; + if ((item.getDescription() != null) && (item.getDescription().length() > 1000)) { + isDisplayedOpen = false; + } + itemDTO.setDisplayedOpen(isDisplayedOpen); + + // sets whether the previous TaskListItem was completed + itemDTO.setPreviousTaskCompleted(isPreviousTaskCompleted); + isPreviousTaskCompleted = item.isComplete(); + + itemDTOs.add(itemDTO); + } + //add define later support if(taskList.isDefineLater()){ return mapping.findForward("defineLater"); @@ -209,25 +257,21 @@ }else sessionMap.put(TaskListConstants.PARAM_RUN_OFFLINE, false); - //init taskList item list - SortedSet taskListItemList = getTaskListItemList(sessionMap); - taskListItemList.clear(); - if(items != null){ - //remove hidden items. - for(TaskListItem item : items){ - //becuase in webpage will use this login name. Here is just - //initial it to avoid session close error in proxy object. - if(item.getCreateBy() != null) - item.getCreateBy().getLoginName(); - taskListItemList.add(item); - } - } + sessionMap.put(TaskListConstants.ATTR_RESOURCE,taskList); - //set complete flag for display purpose - if ( taskListUser !=null ) - service.retrieveComplete(taskListItemList, taskListUser); + //basic information + sessionMap.put(TaskListConstants.ATTR_TITLE, taskList.getTitle()); + sessionMap.put(TaskListConstants.ATTR_FINISH_LOCK, lock); + sessionMap.put(TaskListConstants.ATTR_USER_FINISHED, taskListUser !=null && taskListUser.isSessionFinished()); + sessionMap.put(TaskListConstants.ATTR_USER_VERIFIED_BY_MONITOR, taskListUser.isVerifiedByMonitor()); + sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId); + sessionMap.put(AttributeNames.ATTR_MODE, mode); + sessionMap.put(TaskListConstants.ATTR_TASK_LIST_ITEM_DTOS, itemDTOs); - sessionMap.put(TaskListConstants.ATTR_RESOURCE,taskList); + //reflection information + sessionMap.put(TaskListConstants.ATTR_REFLECTION_ON, taskList.isReflectOnActivity()); + sessionMap.put(TaskListConstants.ATTR_REFLECTION_INSTRUCTION, taskList.getReflectInstructions()); + sessionMap.put(TaskListConstants.ATTR_REFLECTION_ENTRY, entryText); return mapping.findForward(TaskListConstants.SUCCESS); } @@ -243,12 +287,15 @@ private ActionForward complete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String mode = request.getParameter(AttributeNames.ATTR_MODE); String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + Long sessionId = (Long) sessionMap.get(TaskListConstants.ATTR_TOOL_SESSION_ID); doComplete(request); - request.setAttribute(AttributeNames.ATTR_MODE,mode); - request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID,sessionMapID); - return mapping.findForward(TaskListConstants.SUCCESS); + ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig(TaskListConstants.SUCCESS)); + redirect.addParameter(AttributeNames.ATTR_MODE, mode); + redirect.addParameter(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId); + return redirect; } /** @@ -296,6 +343,21 @@ } /** + * Initial page for add taskList item (single file or URL). + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + private ActionForward addTask(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + TaskListItemForm itemForm = (TaskListItemForm) form; + itemForm.setMode(WebUtil.readStrParam(request, AttributeNames.ATTR_MODE)); + itemForm.setSessionMapID(WebUtil.readStrParam(request, TaskListConstants.ATTR_SESSION_MAP_ID)); + return mapping.findForward(TaskListConstants.SUCCESS); + } + + /** * Save new user task into database. * @param mapping * @param form @@ -307,22 +369,20 @@ //get back SessionMap String sessionMapID = request.getParameter(TaskListConstants.ATTR_SESSION_MAP_ID); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMapID); - Long sessionId = (Long) sessionMap.get(TaskListConstants.ATTR_TOOL_SESSION_ID); - - String mode = request.getParameter(AttributeNames.ATTR_MODE); TaskListItemForm itemForm = (TaskListItemForm)form; ActionErrors errors = validateTaskListItem(itemForm); if(!errors.isEmpty()){ this.addErrors(request,errors); + request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMapID); return mapping.findForward("task"); } //create a new TaskListItem TaskListItem item = new TaskListItem(); ITaskListService service = getTaskListService(); + Long sessionId = (Long) sessionMap.get(TaskListConstants.ATTR_TOOL_SESSION_ID); TaskListUser taskListUser = getCurrentUser(service,sessionId); item.setTitle(itemForm.getTitle()); item.setDescription(itemForm.getDescription()); @@ -331,36 +391,123 @@ item.setCreateBy(taskListUser); //setting SequenceId - SortedSet taskListList = getTaskListItemList(sessionMap); - int maxSeq = 1; - if(taskListList != null && taskListList.size() > 0){ - TaskListItem last = taskListList.last(); - maxSeq = last.getSequenceId()+1; + TaskList taskList = (TaskList) sessionMap.get(TaskListConstants.ATTR_RESOURCE); + Set taskListItems = taskList.getTaskListItems(); + int maxSeq = 0; + for (TaskListItem dbItem : taskListItems) { + if (dbItem.getSequenceId() > maxSeq) maxSeq = dbItem.getSequenceId(); } + maxSeq++; item.setSequenceId(maxSeq); - //save and update session - TaskListSession resSession = service.getTaskListSessionBySessionId(sessionId); - if(resSession == null){ - log.error("Failed update TaskListSession by ID[" + sessionId + "]"); - return mapping.findForward(TaskListConstants.ERROR); + taskListItems.add(item); + service.saveOrUpdateTaskList(taskList); + + //redirect + String mode = request.getParameter(AttributeNames.ATTR_MODE); + request.setAttribute(AttributeNames.ATTR_MODE, mode); + request.setAttribute(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId); + return mapping.findForward(TaskListConstants.SUCCESS); + } + + + /** + * Adds new user commment. + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + private ActionForward addNewComment(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + TaskListItemForm taskListItemForm = (TaskListItemForm) form; + String mode = request.getParameter(AttributeNames.ATTR_MODE); + SessionMap sessionMap = (SessionMap)request.getSession().getAttribute(taskListItemForm.getSessionMapID()); + request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); + Long sessionId = (Long) sessionMap.get(TaskListConstants.ATTR_TOOL_SESSION_ID); + + String commentMessage = taskListItemForm.getComment(); + if(commentMessage == null || StringUtils.isBlank(commentMessage)) + return mapping.findForward(TaskListConstants.SUCCESS); + + TaskListItemComment comment = new TaskListItemComment(); + comment.setComment(commentMessage); + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); + ITaskListService service = getTaskListService(); + TaskListUser taskListUser = service.getUserByIDAndSession(new Long(user.getUserID().intValue()),sessionId); + comment.setCreateBy(taskListUser); + comment.setCreateDate(new Timestamp(new Date().getTime())); + + //persist TaskListItem changes in DB + Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID)); + TaskListItem dbItem = service.getTaskListItemByUid(itemUid); + Set dbComments = dbItem.getComments(); + dbComments.add(comment); + service.saveOrUpdateTaskListItem(dbItem); + + //to make available new changes be visible in jsp page + sessionMap.put(TaskListConstants.ATTR_TASK_LIST_ITEM, dbItem); + +// form.reset(mapping, request); + + ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig(TaskListConstants.SUCCESS)); + redirect.addParameter(AttributeNames.ATTR_MODE, mode); + redirect.addParameter(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId); + return redirect; + } + + /** + * Uploads specified file to repository and associates it with current TaskListItem. + * @param mapping + * @param form + * @param type + * @param request + * @return + * @throws UploadTaskListFileException + */ + private ActionForward uploadFile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws UploadTaskListFileException { + + TaskListItemForm taskListItemForm = (TaskListItemForm) form; + String mode = request.getParameter(AttributeNames.ATTR_MODE); + SessionMap sessionMap = (SessionMap)request.getSession().getAttribute(taskListItemForm.getSessionMapID()); + request.setAttribute(TaskListConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); + Long sessionId = (Long) sessionMap.get(TaskListConstants.ATTR_TOOL_SESSION_ID); + + FormFile file = (FormFile) taskListItemForm.getUploadedFile(); + + if(file == null || StringUtils.isBlank(file.getFileName())) + return mapping.findForward(TaskListConstants.SUCCESS); + + //validate file size + ActionMessages errors = new ActionMessages(); + FileValidatorUtil.validateFileSize(file, true, errors ); + if(!errors.isEmpty()){ + this.saveErrors(request, errors); + return mapping.findForward(TaskListConstants.SUCCESS); } - Set items = resSession.getTaskListItems(); - if(items == null){ - items = new HashSet(); - resSession.setTaskListItems(items); - } - items.add(item); - service.saveOrUpdateTaskListSession(resSession); - //update session value - SortedSet taskListItemList = getTaskListItemList(sessionMap); - taskListItemList.add(item); + //upload to repository + ITaskListService service = getTaskListService(); + UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); + TaskListUser taskListUser = service.getUserByIDAndSession(new Long(user.getUserID().intValue()),sessionId); + TaskListItemAttachment att = service.uploadTaskListItemFile(file, IToolContentHandler.TYPE_ONLINE, taskListUser); - //URL or file upload - request.setAttribute(AttributeNames.ATTR_MODE,mode); - itemForm.reset(mapping, request); - return mapping.findForward(TaskListConstants.SUCCESS); + //persist TaskListItem changes in DB + Long itemUid = new Long(request.getParameter(TaskListConstants.PARAM_RESOURCE_ITEM_UID)); + TaskListItem dbItem = service.getTaskListItemByUid(itemUid); + Set dbAttachments = dbItem.getAttachments(); + dbAttachments.add(att); + service.saveOrUpdateTaskListItem(dbItem); + + //to make available new changes be visible in jsp page + sessionMap.put(TaskListConstants.ATTR_TASK_LIST_ITEM, dbItem); + +// form.reset(mapping, request); + + ActionRedirect redirect = new ActionRedirect(mapping.findForwardConfig(TaskListConstants.SUCCESS)); + redirect.addParameter(AttributeNames.ATTR_MODE, mode); + redirect.addParameter(AttributeNames.PARAM_TOOL_SESSION_ID, sessionId); + return redirect; } /** @@ -444,63 +591,7 @@ WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); return (ITaskListService) wac.getBean(TaskListConstants.RESOURCE_SERVICE); } - /** - * List save current taskList items. - * @param request - * @return - */ - private SortedSet getTaskListItemList(SessionMap sessionMap) { - SortedSet list = (SortedSet) sessionMap.get(TaskListConstants.ATTR_RESOURCE_ITEM_LIST); - if(list == null){ - list = new TreeSet(new TaskListItemComparator()); - sessionMap.put(TaskListConstants.ATTR_RESOURCE_ITEM_LIST,list); - } - return list; - } - /** - * Get java.util.List from HttpSession by given name. - * - * @param request - * @param name - * @return - */ - private List getListFromSession(SessionMap sessionMap,String name) { - List list = (List) sessionMap.get(name); - if(list == null){ - list = new ArrayList(); - sessionMap.put(name,list); - } - return list; - } -// /** -// * Return ActionForward according to taskList item type. -// * @param type -// * @param mapping -// * @return -// */ -// private ActionForward findForward(short type, ActionMapping mapping) { -// ActionForward forward; -// switch (type) { -// case TaskListConstants.RESOURCE_TYPE_URL: -// forward = mapping.findForward("url"); -// break; -// case TaskListConstants.RESOURCE_TYPE_FILE: -// forward = mapping.findForward("file"); -// break; -// case TaskListConstants.RESOURCE_TYPE_WEBSITE: -// forward = mapping.findForward("website"); -// break; -// case TaskListConstants.RESOURCE_TYPE_LEARNING_OBJECT: -// forward = mapping.findForward("learningobject"); -// break; -// default: -// forward = null; -// break; -// } -// return forward; -// } - private TaskListUser getCurrentUser(ITaskListService service, Long sessionId) { //try to get form system session HttpSession ss = SessionManager.getSession(); @@ -552,16 +643,8 @@ UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); Long sessionId = (Long) sessionMap.get(TaskListConstants.ATTR_TOOL_SESSION_ID); - service.setItemComplete(taskListItemUid,new Long(user.getUserID().intValue()),sessionId); - - //set taskList item complete tag - SortedSet taskListItemList = getTaskListItemList(sessionMap); - for(TaskListItem item:taskListItemList){ - if(item.getUid().equals(taskListItemUid)){ - item.setComplete(true); - break; - } - } + service.setItemComplete(taskListItemUid, new Long(user.getUserID().intValue()), sessionId); + sessionMapID = "4"; } } Index: lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/MonitoringAction.java =================================================================== diff -u -r9c5284945798a4bfc0048ad1bbbd7f6c104fc179 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 9c5284945798a4bfc0048ad1bbbd7f6c104fc179) +++ lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -26,14 +26,10 @@ import java.io.IOException; import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.SortedSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.apache.struts.action.Action; @@ -48,13 +44,10 @@ import org.lamsfoundation.lams.tool.taskList.dto.Summary; import org.lamsfoundation.lams.tool.taskList.dto.TaskSummary; import org.lamsfoundation.lams.tool.taskList.model.TaskList; -import org.lamsfoundation.lams.tool.taskList.model.TaskListItem; import org.lamsfoundation.lams.tool.taskList.model.TaskListSession; import org.lamsfoundation.lams.tool.taskList.model.TaskListUser; import org.lamsfoundation.lams.tool.taskList.service.ITaskListService; -import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; -import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; import org.springframework.web.context.WebApplicationContext; Fisheye: Tag 341a816804f6b2b61a5f180479b56d8fd0d1ea29 refers to a dead (removed) revision in file `lams_tool_task/src/java/org/lamsfoundation/lams/tool/taskList/web/action/ViewItemAction.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_task/web/includes/images/tree_closed.gif =================================================================== diff -u Binary files differ Index: lams_tool_task/web/includes/images/tree_open.gif =================================================================== diff -u Binary files differ Index: lams_tool_task/web/includes/javascript/jquery-1.1.4.pack.js =================================================================== diff -u --- lams_tool_task/web/includes/javascript/jquery-1.1.4.pack.js (revision 0) +++ lams_tool_task/web/includes/javascript/jquery-1.1.4.pack.js (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,11 @@ +/* + * jQuery 1.1.4 - New Wave Javascript + * + * Copyright (c) 2007 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date$ + * $Rev: 2862 $ + */ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(9(){6(1f C!="Q")E v=C;E C=19.16=9(a,c){6(19==7||!7.4a)F 1s C(a,c);F 7.4a(a,c)};6(1f $!="Q")E B=$;19.$=C;E q=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;C.15=C.3v={4a:9(a,c){a=a||R;6(1f a=="1E"){E m=q.2d(a);6(m&&(m[1]||!c)){6(m[1])a=C.3c([m[1]]);G{E b=R.37(m[3]);6(b)6(b.2j!=m[3])F C().1F(a);G{7[0]=b;7.H=1;F 7}G a=[]}}G F 1s C(c).1F(a)}G 6(C.1g(a))F 1s C(R)[C.15.1L?"1L":"2f"](a);F 7.5J(a.1b==1K&&a||(a.3w||a.H&&a!=19&&!a.1t&&a[0]!=Q&&a[0].1t)&&C.2V(a)||[a])},3w:"1.1.4",7K:9(){F 7.H},H:0,21:9(a){F a==Q?C.2V(7):7[a]},1O:9(a){E b=C(a);b.5c=7;F b},5J:9(a){7.H=0;1K.3v.Y.T(7,a);F 7},J:9(a,b){F C.J(7,a,b)},45:9(a){E b=-1;7.J(9(i){6(7==a)b=i});F b},1j:9(f,d,e){E c=f;6(f.1b==3n)6(d==Q)F 7.H&&C[e||"1j"](7[0],f)||Q;G{c={};c[f]=d}F 7.J(9(a){I(E b 17 c)C.1j(e?7.S:7,b,C.4Q(7,c[b],e,a,b))})},1h:9(b,a){F 7.1j(b,a,"34")},2Q:9(e){6(1f e!="4P"&&e!=K)F 7.3K().3H(R.60(e));E t="";C.J(e||7,9(){C.J(7.2Z,9(){6(7.1t!=8)t+=7.1t!=1?7.5S:C.15.2Q([7])})});F t},82:9(){E a,2e=1a;F 7.J(9(){6(!a)a=C.3c(2e,7.2I);E b=a[0].3B(O);7.P.2p(b,7);20(b.1k)b=b.1k;b.4p(7)})},3H:9(){F 7.2J(1a,O,1,9(a){7.4p(a)})},5v:9(){F 7.2J(1a,O,-1,9(a){7.2p(a,7.1k)})},5u:9(){F 7.2J(1a,M,1,9(a){7.P.2p(a,7)})},5t:9(){F 7.2J(1a,M,-1,9(a){7.P.2p(a,7.2a)})},3L:9(){F 7.5c||C([])},1F:9(t){E b=C.3M(7,9(a){F C.1F(t,a)});F 7.1O(/[^+>] [^+>]/.1d(t)||t.U("..")>-1?C.4d(b):b)},7o:9(e){e=e!=Q?e:O;E d=7.1r(7.1F("*"));6(C.N.12){d.J(9(){7.2l$1i={};I(E a 17 7.$1i)7.2l$1i[a]=C.14({},7.$1i[a])}).49()}E r=7.1O(C.3M(7,9(a){F a.3B(e)}));6(C.N.12){d.J(9(){E c=7.2l$1i;I(E a 17 c)I(E b 17 c[a])C.1c.1r(7,a,c[a][b],c[a][b].V);7.2l$1i=K})}6(e){E f=r.1r(r.1F(\'*\')).1l(\'2b,39[@L=3i]\');d.1l(\'2b,39[@L=3i]\').J(9(i){6(7.3j)f[i].3j=7.3j;6(7.27)f[i].27=O})}F r},1l:9(t){F 7.1O(C.1g(t)&&C.2B(7,9(b,a){F t.T(b,[a])})||C.2R(t,7))},5l:9(t){F 7.1O(t.1b==3n&&C.2R(t,7,O)||C.2B(7,9(a){F(t.1b==1K||t.3w)?C.4K(a,t)<0:a!=t}))},1r:9(t){F 7.1O(C.29(7.21(),t.1b==3n?C(t).21():t.H!=Q&&(!t.W||t.W=="6s")?t:[t]))},3y:9(a){F a?C.2R(a,7).H>0:M},2G:9(a){F a==Q?(7.H?7[0].2A:K):7.1j("2A",a)},5W:9(a){F a==Q?(7.H?7[0].2W:K):7.3K().3H(a)},3S:9(){F 7.1O(1K.3v.3S.T(7,1a))},2J:9(f,d,g,e){E c=7.H>1,a;F 7.J(9(){6(!a){a=C.3c(f,7.2I);6(g<0)a.8E()}E b=7;6(d&&C.W(7,"1A")&&C.W(a[0],"3O"))b=7.4L("1w")[0]||7.4p(R.6a("1w"));C.J(a,9(){6(C.W(7,"33")){6(7.32)C.31({1G:7.32,2w:M,3G:"33"});G C.4E(7.2Q||7.5Z||7.2W||"")}G e.T(b,[c?7.3B(O):7])})})}};C.14=C.15.14=9(){E c=1a[0]||{},a=1,1M=1a.H,4D=M;6(c.1b==8d){4D=c;c=1a[1]||{}}6(1M==1){c=7;a=0}E b;I(;a<1M;a++)6((b=1a[a])!=K)I(E i 17 b){6(c==b[i])5X;6(4D&&1f b[i]==\'4P\'&&c[i])C.14(c[i],b[i]);G 6(b[i]!=Q)c[i]=b[i]}F c};C.14({8a:9(a){19.$=B;6(a)19.16=v;F C},1g:9(a){F!!a&&1f a!="1E"&&!a.W&&a.1b!=1K&&/9/i.1d(a+"")},3E:9(a){F a.3D&&!a.4z||a.4y&&a.2I&&!a.2I.4z},4E:9(a){a=C.2s(a);6(a){6(19.5N)19.5N(a);G 6(C.N.1H)19.4x(a,0);G 2T.2S(19,a)}},W:9(b,a){F b.W&&b.W.1I()==a.1I()},J:9(a,b,c){6(c){6(a.H==Q)I(E i 17 a)b.T(a[i],c);G I(E i=0,3A=a.H;i<3A;i++)6(b.T(a[i],c)===M)1J}G{6(a.H==Q)I(E i 17 a)b.2S(a[i],i,a[i]);G I(E i=0,3A=a.H,2G=a[0];i<3A&&b.2S(2G,i,2G)!==M;2G=a[++i]){}}F a},4Q:9(c,b,d,e,a){6(C.1g(b))b=b.2S(c,[e]);E f=/z-?45|7S-?7Q|1e|5y|7O-?1u/i;F b&&b.1b==3x&&d=="34"&&!f.1d(a)?b+"4t":b},18:{1r:9(b,c){C.J((c||"").2M(/\\s+/),9(i,a){6(!C.18.2N(b.18,a))b.18+=(b.18?" ":"")+a})},23:9(b,c){b.18=c!=Q?C.2B(b.18.2M(/\\s+/),9(a){F!C.18.2N(c,a)}).5w(" "):""},2N:9(t,c){F C.4K(c,(t.18||t).3s().2M(/\\s+/))>-1}},1V:9(e,o,f){I(E i 17 o){e.S["2U"+i]=e.S[i];e.S[i]=o[i]}f.T(e,[]);I(E i 17 o)e.S[i]=e.S["2U"+i]},1h:9(e,p){6(p=="1u"||p=="24"){E b={},3p,3o,d=["7J","7G","7F","7B"];C.J(d,9(){b["7A"+7]=0;b["7x"+7+"7u"]=0});C.1V(e,b,9(){6(C(e).3y(\':4N\')){3p=e.7t;3o=e.7q}G{e=C(e.3B(O)).1F(":4e").5d("27").3L().1h({3V:"1C",3k:"7n",11:"2m",7h:"0",7e:"0"}).57(e.P)[0];E a=C.1h(e.P,"3k")||"3g";6(a=="3g")e.P.S.3k="76";3p=e.74;3o=e.71;6(a=="3g")e.P.S.3k="3g";e.P.3e(e)}});F p=="1u"?3p:3o}F C.34(e,p)},34:9(h,d,g){E i,1R=[],1V=[];9 2E(a){6(!C.N.1H)F M;E b=R.2L.3b(a,K);F!b||b.44("2E")==""}6(d=="1e"&&C.N.12){i=C.1j(h.S,"1e");F i==""?"1":i}6(d.2k(/3a/i))d=x;6(!g&&h.S[d])i=h.S[d];G 6(R.2L&&R.2L.3b){6(d.2k(/3a/i))d="3a";d=d.1v(/([A-Z])/g,"-$1").2D();E e=R.2L.3b(h,K);6(e&&!2E(h))i=e.44(d);G{I(E a=h;a&&2E(a);a=a.P)1R.42(a);I(a=0;a<1R.H;a++)6(2E(1R[a])){1V[a]=1R[a].S.11;1R[a].S.11="2m"}i=d=="11"&&1V[1R.H-1]!=K?"1T":R.2L.3b(h,K).44(d)||"";I(a=0;a<1V.H;a++)6(1V[a]!=K)1R[a].S.11=1V[a]}6(d=="1e"&&i=="")i="1"}G 6(h.41){E f=d.1v(/\\-(\\w)/g,9(m,c){F c.1I()});i=h.41[d]||h.41[f]}F i},3c:9(a,c){E r=[];c=c||R;C.J(a,9(i,b){6(!b)F;6(b.1b==3x)b=b.3s();6(1f b=="1E"){E s=C.2s(b).2D(),1m=c.6a("1m"),1P=[];E a=!s.U("<1Z")&&[1,"<2b>",""]||!s.U("<6L")&&[1,"<4V>",""]||s.2k(/^<(6I|1w|6H|6F|6D)/)&&[1,"<1A>",""]||!s.U("<3O")&&[2,"<1A><1w>",""]||(!s.U("<6A")||!s.U("<6y"))&&[3,"<1A><1w><3O>",""]||!s.U("<6x")&&[2,"<1A><1w><4T>",""]||C.N.12&&[1,"1m<1m>",""]||[0,"",""];1m.2W=a[1]+b+a[2];20(a[0]--)1m=1m.3Y;6(C.N.12){6(!s.U("<1A")&&s.U("<1w")<0)1P=1m.1k&&1m.1k.2Z;G 6(a[1]=="<1A>"&&s.U("<1w")<0)1P=1m.2Z;I(E n=1P.H-1;n>=0;--n)6(C.W(1P[n],"1w")&&!1P[n].2Z.H)1P[n].P.3e(1P[n]);6(/^\\s/.1d(b))1m.2p(c.60(b.2k(/^\\s*/)[0]),1m.1k)}b=C.2V(1m.2Z)}6(0===b.H&&(!C.W(b,"38")&&!C.W(b,"2b")))F;6(b[0]==Q||C.W(b,"38")||b.6u)r.Y(b);G r=C.29(r,b)});F r},1j:9(c,d,a){E e=C.3E(c)?{}:C.4q;6(d=="28"&&C.N.1H)c.P.3j;6(e[d]){6(a!=Q)c[e[d]]=a;F c[e[d]]}G 6(C.N.12&&d=="S")F C.1j(c.S,"6p",a);G 6(a==Q&&C.N.12&&C.W(c,"38")&&(d=="6n"||d=="6m"))F c.6k(d).5S;G 6(c.4y){6(a!=Q)c.6j(d,a);6(C.N.12&&/5R|32/.1d(d)&&!C.3E(c))F c.3F(d,2);F c.3F(d)}G{6(d=="1e"&&C.N.12){6(a!=Q){c.5y=1;c.1l=(c.1l||"").1v(/5T\\([^)]*\\)/,"")+(3m(a).3s()=="6d"?"":"5T(1e="+a*6c+")")}F c.1l?(3m(c.1l.2k(/1e=([^)]*)/)[1])/6c).3s():""}d=d.1v(/-([a-z])/8I,9(z,b){F b.1I()});6(a!=Q)c[d]=a;F c[d]}},2s:9(t){F(t||"").1v(/^\\s+|\\s+$/g,"")},2V:9(a){E r=[];6(1f a!="8H")I(E i=0,1M=a.H;i<1M;i++)r.Y(a[i]);G r=a.3S(0);F r},4K:9(b,a){I(E i=0,1M=a.H;i<1M;i++)6(a[i]==b)F i;F-1},29:9(a,b){6(C.N.12){I(E i=0;b[i];i++)6(b[i].1t!=8)a.Y(b[i])}G I(E i=0;b[i];i++)a.Y(b[i]);F a},4d:9(a){E r=[],4O=C.1q++;2g{I(E i=0,69=a.H;i<69;i++)6(4O!=a[i].1q){a[i].1q=4O;r.Y(a[i])}}2h(e){r=a}F r},1q:0,2B:9(b,a,c){6(1f a=="1E")a=2T("M||9(a,i){F "+a+"}");E d=[];I(E i=0,3P=b.H;i<3P;i++)6(!c&&a(b[i],i)||c&&!a(b[i],i))d.Y(b[i]);F d},3M:9(c,b){6(1f b=="1E")b=2T("M||9(a){F "+b+"}");E d=[];I(E i=0,3P=c.H;i<3P;i++){E a=b(c[i],i);6(a!==K&&a!=Q){6(a.1b!=1K)a=[a];d=d.8x(a)}}F d}});E u=8w.8u.2D();C.N={6b:(u.2k(/.+(?:8s|8q|8p|8o)[\\/: ]([\\d.]+)/)||[])[1],1H:/61/.1d(u),2t:/2t/.1d(u),12:/12/.1d(u)&&!/2t/.1d(u),3J:/3J/.1d(u)&&!/(8n|61)/.1d(u)};E x=C.N.12?"3I":"4G";C.14({8m:!C.N.12||R.8l=="8k",3I:C.N.12?"3I":"4G",4q:{"I":"8j","8i":"18","3a":x,4G:x,3I:x,2W:"2W",18:"18",2A:"2A",30:"30",27:"27",8h:"8g",28:"28",8f:"8e"}});C.J({5Y:"a.P",4C:"16.4C(a)",8c:"16.25(a,2,\'2a\')",8b:"16.25(a,2,\'4B\')",88:"16.4A(a.P.1k,a)",87:"16.4A(a.1k)"},9(i,n){C.15[i]=9(a){E b=C.3M(7,n);6(a&&1f a=="1E")b=C.2R(a,b);F 7.1O(C.4d(b))}});C.J({57:"3H",86:"5v",2p:"5u",85:"5t"},9(i,n){C.15[i]=9(){E a=1a;F 7.J(9(){I(E j=0,1M=a.H;j<1M;j++)C(a[j])[n](7)})}});C.J({5d:9(a){C.1j(7,a,"");7.84(a)},83:9(c){C.18.1r(7,c)},81:9(c){C.18.23(7,c)},80:9(c){C.18[C.18.2N(7,c)?"23":"1r"](7,c)},23:9(a){6(!a||C.1l(a,[7]).r.H)7.P.3e(7)},3K:9(){20(7.1k)7.3e(7.1k)}},9(i,n){C.15[i]=9(){F 7.J(n,1a)}});C.J(["5Q","5P","5M","5L"],9(i,n){C.15[n]=9(a,b){F 7.1l(":"+n+"("+a+")",b)}});C.J(["1u","24"],9(i,n){C.15[n]=9(h){F h==Q?(7.H?C.1h(7[0],n):K):7.1h(n,h.1b==3n?h:h+"4t")}});E A=C.N.1H&&5K(C.N.6b)<7Z?"(?:[\\\\w*2l-]|\\\\\\\\.)":"(?:[\\\\w\\7Y-\\7V*2l-]|\\\\\\\\.)",5I=1s 3C("^[/>]\\\\s*("+A+"+)"),5H=1s 3C("^("+A+"+)(#)("+A+"+)"),5G=1s 3C("^([#.]?)("+A+"*)");C.14({4w:{"":"m[2]==\'*\'||16.W(a,m[2])","#":"a.3F(\'2j\')==m[2]",":":{5P:"im[3]-0",25:"m[3]-0==i",5Q:"m[3]-0==i",2H:"i==0",2P:"i==r.H-1",5E:"i%2==0",5D:"i%2","2H-3z":"a.P.4L(\'*\')[0]==a","2P-3z":"16.25(a.P.3Y,1,\'4B\')==a","7U-3z":"!16.25(a.P.3Y,2,\'4B\')",5Y:"a.1k",3K:"!a.1k",5L:"(a.5Z||a.7T||\'\').U(m[3])>=0",4N:\'"1C"!=a.L&&16.1h(a,"11")!="1T"&&16.1h(a,"3V")!="1C"\',1C:\'"1C"==a.L||16.1h(a,"11")=="1T"||16.1h(a,"3V")=="1C"\',7R:"!a.30",30:"a.30",27:"a.27",28:"a.28||16.1j(a,\'28\')",2Q:"\'2Q\'==a.L",4e:"\'4e\'==a.L",3i:"\'3i\'==a.L",4v:"\'4v\'==a.L",5C:"\'5C\'==a.L",4u:"\'4u\'==a.L",5B:"\'5B\'==a.L",5A:"\'5A\'==a.L",1X:\'"1X"==a.L||16.W(a,"1X")\',39:"/39|2b|7P|1X/i.1d(a.W)",2N:"16.1F(m[3],a).H"},"[":"16.1F(m[2],a).H"},5x:[/^\\[ *(@)([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1s 3C("^([:.#]*)("+A+"+)")],2R:9(a,c,b){E d,1Y=[];20(a&&a!=d){d=a;E f=C.1l(a,c,b);a=f.t.1v(/^\\s*,\\s*/,"");1Y=b?c=f.r:C.29(1Y,f.r)}F 1Y},1F:9(t,l){6(1f t!="1E")F[t];6(l&&!l.1t)l=K;l=l||R;6(!t.U("//")){t=t.2K(2,t.H)}G 6(!t.U("/")&&!l.2I){l=l.3D;t=t.2K(1,t.H);6(t.U("/")>=1)t=t.2K(t.U("/"),t.H)}E d=[l],2q=[],2P;20(t&&2P!=t){E r=[];2P=t;t=C.2s(t).1v(/^\\/\\//,"");E k=M;E g=5I;E m=g.2d(t);6(m){E o=m[1].1I();I(E i=0;d[i];i++)I(E c=d[i].1k;c;c=c.2a)6(c.1t==1&&(o=="*"||c.W.1I()==o.1I()))r.Y(c);d=r;t=t.1v(g,"");6(t.U(" ")==0)5X;k=O}G{g=/^((\\/?\\.\\.)|([>\\/+~]))\\s*(\\w*)/i;6((m=g.2d(t))!=K){r=[];E o=m[4],1q=C.1q++;m=m[1];I(E j=0,2o=d.H;j<2o;j++)6(m.U("..")<0){E n=m=="~"||m=="+"?d[j].2a:d[j].1k;I(;n;n=n.2a)6(n.1t==1){6(m=="~"&&n.1q==1q)1J;6(!o||n.W.1I()==o.1I()){6(m=="~")n.1q=1q;r.Y(n)}6(m=="+")1J}}G r.Y(d[j].P);d=r;t=C.2s(t.1v(g,""));k=O}}6(t&&!k){6(!t.U(",")){6(l==d[0])d.4s();2q=C.29(2q,d);r=d=[l];t=" "+t.2K(1,t.H)}G{E h=5H;E m=h.2d(t);6(m){m=[0,m[2],m[3],m[1]]}G{h=5G;m=h.2d(t)}m[2]=m[2].1v(/\\\\/g,"");E f=d[d.H-1];6(m[1]=="#"&&f&&f.37&&!C.3E(f)){E p=f.37(m[2]);6((C.N.12||C.N.2t)&&p&&1f p.2j=="1E"&&p.2j!=m[2])p=C(\'[@2j="\'+m[2]+\'"]\',f)[0];d=r=p&&(!m[3]||C.W(p,m[3]))?[p]:[]}G{I(E i=0;d[i];i++){E a=m[1]!=""||m[0]==""?"*":m[2];6(a=="*"&&d[i].W.2D()=="4P")a="2O";r=C.29(r,d[i].4L(a))}6(m[1]==".")r=C.4r(r,m[2]);6(m[1]=="#"){E e=[];I(E i=0;r[i];i++)6(r[i].3F("2j")==m[2]){e=[r[i]];1J}r=e}d=r}t=t.1v(h,"")}}6(t){E b=C.1l(t,r);d=r=b.r;t=C.2s(b.t)}}6(t)d=[];6(d&&l==d[0])d.4s();2q=C.29(2q,d);F 2q},4r:9(r,m,a){m=" "+m+" ";E c=[];I(E i=0;r[i];i++){E b=(" "+r[i].18+" ").U(m)>=0;6(!a&&b||a&&!b)c.Y(r[i])}F c},1l:9(t,r,h){E d;20(t&&t!=d){d=t;E p=C.5x,m;I(E i=0;p[i];i++){m=p[i].2d(t);6(m){t=t.7N(m[0].H);m[2]=m[2].1v(/\\\\/g,"");1J}}6(!m)1J;6(m[1]==":"&&m[2]=="5l")r=C.1l(m[3],r,O).r;G 6(m[1]==".")r=C.4r(r,m[2],h);G 6(m[1]=="@"){E g=[],L=m[3];I(E i=0,2o=r.H;i<2o;i++){E a=r[i],z=a[C.4q[m[2]]||m[2]];6(z==K||/5R|32|28/.1d(m[2]))z=C.1j(a,m[2])||\'\';6((L==""&&!!z||L=="="&&z==m[5]||L=="!="&&z!=m[5]||L=="^="&&z&&!z.U(m[5])||L=="$="&&z.2K(z.H-m[5].H)==m[5]||(L=="*="||L=="~=")&&z.U(m[5])>=0)^h)g.Y(a)}r=g}G 6(m[1]==":"&&m[2]=="25-3z"){E e=C.1q++,g=[],1d=/(\\d*)n\\+?(\\d*)/.2d(m[3]=="5E"&&"2n"||m[3]=="5D"&&"2n+1"||!/\\D/.1d(m[3])&&"n+"+m[3]||m[3]),2H=(1d[1]||1)-0,d=1d[2]-0;I(E i=0,2o=r.H;i<2o;i++){E j=r[i],P=j.P;6(e!=P.1q){E c=1;I(E n=P.1k;n;n=n.2a)6(n.1t==1)n.4o=c++;P.1q=e}E b=M;6(2H==1){6(d==0||j.4o==d)b=O}G 6((j.4o+d)%2H==0)b=O;6(b^h)g.Y(j)}r=g}G{E f=C.4w[m[1]];6(1f f!="1E")f=C.4w[m[1]][m[2]];f=2T("M||9(a,i){F "+f+"}");r=C.2B(r,f,h)}}F{r:r,t:t}},4C:9(c){E b=[];E a=c.P;20(a&&a!=R){b.Y(a);a=a.P}F b},25:9(a,e,c,b){e=e||1;E d=0;I(;a;a=a[c])6(a.1t==1&&++d==e)1J;F a},4A:9(n,a){E r=[];I(;n;n=n.2a){6(n.1t==1&&(!a||n!=a))r.Y(n)}F r}});C.1c={1r:9(f,d,c,b){6(C.N.12&&f.3t!=Q)f=19;6(!c.22)c.22=7.22++;6(b!=Q){E e=c;c=9(){F e.T(7,1a)};c.V=b;c.22=e.22}6(!f.$1i)f.$1i={};6(!f.$1y)f.$1y=9(){E a;6(1f C=="Q"||C.1c.4n)F a;a=C.1c.1y.T(f,1a);F a};E g=f.$1i[d];6(!g){g=f.$1i[d]={};6(f.4m)f.4m(d,f.$1y,M);G f.7M("3r"+d,f.$1y)}g[c.22]=c;7.1D[d]=O},22:1,1D:{},23:9(c,b,a){E d=c.$1i,2c,45;6(d){6(b&&b.L){a=b.4l;b=b.L}6(!b){I(b 17 d)7.23(c,b)}G 6(d[b]){6(a)4k d[b][a.22];G I(a 17 c.$1i[b])4k d[b][a];I(2c 17 d[b])1J;6(!2c){6(c.4j)c.4j(b,c.$1y,M);G c.7L("3r"+b,c.$1y);2c=K;4k d[b]}}I(2c 17 d)1J;6(!2c)c.$1y=c.$1i=K}},1z:9(c,b,d){b=C.2V(b||[]);6(!d){6(7.1D[c])C("*").1r([19,R]).1z(c,b)}G{E a,2c,15=C.1g(d[c]||K);b.42(7.4i({L:c,1S:d}));6(C.1g(d.$1y))a=d.$1y.T(d,b);6(!15&&d["3r"+c]&&d["3r"+c].T(d,b)===M)a=M;6(15&&a!==M&&!(C.W(d,\'a\')&&c=="4h")){7.4n=O;d[c]()}7.4n=M}},1y:9(b){E a;b=C.1c.4i(b||19.1c||{});E c=7.$1i&&7.$1i[b.L],2e=1K.3v.3S.2S(1a,1);2e.42(b);I(E j 17 c){2e[0].4l=c[j];2e[0].V=c[j].V;6(c[j].T(7,2e)===M){b.2u();b.2X();a=M}}6(C.N.12)b.1S=b.2u=b.2X=b.4l=b.V=K;F a},4i:9(c){E a=c;c=C.14({},a);c.2u=9(){6(a.2u)a.2u();a.7I=M};c.2X=9(){6(a.2X)a.2X();a.7H=O};6(!c.1S&&c.5r)c.1S=c.5r;6(C.N.1H&&c.1S.1t==3)c.1S=a.1S.P;6(!c.4g&&c.4F)c.4g=c.4F==c.1S?c.7C:c.4F;6(c.5p==K&&c.66!=K){E e=R.3D,b=R.4z;c.5p=c.66+(e&&e.5o||b.5o||0);c.7z=c.7v+(e&&e.5m||b.5m||0)}6(!c.3Q&&(c.5k||c.5j))c.3Q=c.5k||c.5j;6(!c.5i&&c.5g)c.5i=c.5g;6(!c.3Q&&c.1X)c.3Q=(c.1X&1?1:(c.1X&2?3:(c.1X&4?2:0)));F c}};C.15.14({3l:9(c,a,b){F c=="5f"?7.5e(c,a,b):7.J(9(){C.1c.1r(7,c,b||a,b&&a)})},5e:9(d,b,c){F 7.J(9(){C.1c.1r(7,d,9(a){C(7).49(a);F(c||b).T(7,1a)},c&&b)})},49:9(a,b){F 7.J(9(){C.1c.23(7,a,b)})},1z:9(a,b){F 7.J(9(){C.1c.1z(a,b,7)})},1W:9(){E a=1a;F 7.4h(9(e){7.3T=0==7.3T?1:0;e.2u();F a[7.3T].T(7,[e])||M})},7p:9(f,g){9 3U(e){E p=e.4g;20(p&&p!=7)2g{p=p.P}2h(e){p=7};6(p==7)F M;F(e.L=="3W"?f:g).T(7,[e])}F 7.3W(3U).5b(3U)},1L:9(f){5a();6(C.36)f.T(R,[C]);G C.2C.Y(9(){F f.T(7,[C])});F 7}});C.14({36:M,2C:[],1L:9(){6(!C.36){C.36=O;6(C.2C){C.J(C.2C,9(){7.T(R)});C.2C=K}6(C.N.3J||C.N.2t)R.4j("59",C.1L,M);6(!19.7m.H)C(19).2f(9(){C("#4b").23()})}}});C.J(("7l,7k,2f,7j,7i,5f,4h,7g,"+"7f,7d,7c,3W,5b,7b,2b,"+"4u,7a,79,78,3f").2M(","),9(i,o){C.15[o]=9(f){F f?7.3l(o,f):7.1z(o)}});E w=M;9 5a(){6(w)F;w=O;6(C.N.3J||C.N.2t)R.4m("59",C.1L,M);G 6(C.N.12){R.75("<73"+"72 2j=4b 70=O "+"32=//:><\\/33>");E a=R.37("4b");6(a)a.6Z=9(){6(R.3d!="1x")F;C.1L()};a=K}G 6(C.N.1H)C.48=3t(9(){6(R.3d=="6Y"||R.3d=="1x"){47(C.48);C.48=K;C.1L()}},10);C.1c.1r(19,"2f",C.1L)}C.15.14({6X:9(c,b,a){7.2f(c,b,a,1)},2f:9(g,e,c,d){6(C.1g(g))F 7.3l("2f",g);c=c||9(){};E f="46";6(e)6(C.1g(e)){c=e;e=K}G{e=C.2O(e);f="55"}E h=7;C.31({1G:g,L:f,V:e,2F:d,1x:9(a,b){6(b=="1U"||!d&&b=="54")h.5W(a.43);4x(9(){h.J(c,[a.43,b,a])},13)}});F 7},6W:9(){F C.2O(7)},6V:9(){}});C.J("53,52,51,50,4Z,5h".2M(","),9(i,o){C.15[o]=9(f){F 7.3l(o,f)}});C.14({21:9(e,c,a,d,b){6(C.1g(c)){a=c;c=K}F C.31({L:"46",1G:e,V:c,1U:a,3G:d,2F:b})},6U:9(d,b,a,c){F C.21(d,b,a,c,1)},6T:9(b,a){F C.21(b,K,a,"33")},77:9(c,b,a){F C.21(c,b,a,"56")},6S:9(d,b,a,c){6(C.1g(b)){a=b;b={}}F C.31({L:"55",1G:d,V:b,1U:a,3G:c})},6R:9(a){C.3u.1Q=a},6Q:9(a){C.14(C.3u,a)},3u:{1D:O,L:"46",1Q:0,4Y:"6P/x-6O-38-6N",4X:O,2w:O,V:K},3h:{},31:9(s){s=C.14(O,s,C.14(O,{},C.3u,s));6(s.V){6(s.4X&&1f s.V!="1E")s.V=C.2O(s.V);6(s.L.2D()=="21"){s.1G+=(s.1G.U("?")>-1?"&":"?")+s.V;s.V=K}}6(s.1D&&!C.40++)C.1c.1z("53");E f=M;E h=19.4W?1s 4W("6M.6K"):1s 58();h.6J(s.L,s.1G,s.2w);6(s.V)h.4c("7r-7s",s.4Y);6(s.2F)h.4c("6G-3Z-6E",C.3h[s.1G]||"7w, 6C 7y 6B 4J:4J:4J 6z");h.4c("X-7D-7E","58");6(s.4U)s.4U(h);6(s.1D)C.1c.1z("5h",[h,s]);E g=9(d){6(!f&&h&&(h.3d==4||d=="1Q")){f=O;6(i){47(i);i=K}E c=d=="1Q"&&"1Q"||!C.5n(h)&&"3f"||s.2F&&C.5s(h,s.1G)&&"54"||"1U";6(c=="1U"){2g{E a=C.5q(h,s.3G)}2h(e){c="4I"}}6(c=="1U"){E b;2g{b=h.4f("4S-3Z")}2h(e){}6(s.2F&&b)C.3h[s.1G]=b;6(s.1U)s.1U(a,c);6(s.1D)C.1c.1z("4Z",[h,s])}G C.3X(s,h,c);6(s.1D)C.1c.1z("51",[h,s]);6(s.1D&&!--C.40)C.1c.1z("52");6(s.1x)s.1x(h,c);6(s.2w)h=K}};6(s.2w){E i=3t(g,13);6(s.1Q>0)4x(9(){6(h){h.6w();6(!f)g("1Q")}},s.1Q)}2g{h.6v(s.V)}2h(e){C.3X(s,h,K,e)}6(!s.2w)g();F h},3X:9(s,a,b,e){6(s.3f)s.3f(a,b,e);6(s.1D)C.1c.1z("50",[a,s,e])},40:0,5n:9(r){2g{F!r.26&&6t.6r=="4v:"||(r.26>=4R&&r.26<6q)||r.26==5z||C.N.1H&&r.26==Q}2h(e){}F M},5s:9(a,c){2g{E b=a.4f("4S-3Z");F a.26==5z||b==C.3h[c]||C.N.1H&&a.26==Q}2h(e){}F M},5q:9(r,a){E b=r.4f("6o-L");E c=a=="5F"||!a&&b&&b.U("5F")>=0;V=c?r.7W:r.43;6(c&&V.3D.4y=="4I")7X"4I";6(a=="33")C.4E(V);6(a=="56")V=2T("("+V+")");F V},2O:9(a){E s=[];6(a.1b==1K||a.3w)C.J(a,9(){s.Y(2y(7.6l)+"="+2y(7.2A))});G I(E j 17 a)6(a[j]&&a[j].1b==1K)C.J(a[j],9(){s.Y(2y(j)+"="+2y(7))});G s.Y(2y(j)+"="+2y(a[j]));F s.5w("&")}});C.15.14({1o:9(b,a){F b?7.1B({1u:"1o",24:"1o",1e:"1o"},b,a):7.1l(":1C").J(9(){7.S.11=7.2r?7.2r:"";6(C.1h(7,"11")=="1T")7.S.11="2m"}).3L()},1p:9(b,a){F b?7.1B({1u:"1p",24:"1p",1e:"1p"},b,a):7.1l(":4N").J(9(){7.2r=7.2r||C.1h(7,"11");6(7.2r=="1T")7.2r="2m";7.S.11="1T"}).3L()},5O:C.15.1W,1W:9(a,b){F C.1g(a)&&C.1g(b)?7.5O(a,b):a?7.1B({1u:"1W",24:"1W",1e:"1W"},a,b):7.J(9(){C(7)[C(7).3y(":1C")?"1o":"1p"]()})},6i:9(b,a){F 7.1B({1u:"1o"},b,a)},6h:9(b,a){F 7.1B({1u:"1p"},b,a)},6g:9(b,a){F 7.1B({1u:"1W"},b,a)},6f:9(b,a){F 7.1B({1e:"1o"},b,a)},89:9(b,a){F 7.1B({1e:"1p"},b,a)},6e:9(c,a,b){F 7.1B({1e:a},c,b)},1B:9(d,h,f,g){F 7.1n(9(){E c=C(7).3y(":1C"),1Z=C.5V(h,f,g),5U=7;I(E p 17 d){6(d[p]=="1p"&&c||d[p]=="1o"&&!c)F C.1g(1Z.1x)&&1Z.1x.T(7);6(p=="1u"||p=="24"){1Z.11=C.1h(7,"11");1Z.2z=7.S.2z}}6(1Z.2z!=K)7.S.2z="1C";7.2v=C.14({},d);C.J(d,9(a,b){E e=1s C.2Y(5U,1Z,a);6(b.1b==3x)e.3R(e.1Y()||0,b);G e[b=="1W"?c?"1o":"1p":b](d)});F O})},1n:9(a,b){6(!b){b=a;a="2Y"}F 7.J(9(){6(!7.1n)7.1n={};6(!7.1n[a])7.1n[a]=[];7.1n[a].Y(b);6(7.1n[a].H==1)b.T(7)})}});C.14({5V:9(b,a,c){E d=b&&b.1b==8G?b:{1x:c||!c&&a||C.1g(b)&&b,1N:b,35:c&&a||a&&a.1b!=8F&&a};d.1N=(d.1N&&d.1N.1b==3x?d.1N:{8D:8C,8B:4R}[d.1N])||8A;d.2U=d.1x;d.1x=9(){C.68(7,"2Y");6(C.1g(d.2U))d.2U.T(7)};F d},35:{62:9(p,n,b,a){F b+a*p},4H:9(p,n,b,a){F((-67.8z(p*67.8y)/2)+0.5)*a+b}},1n:{},68:9(b,a){a=a||"2Y";6(b.1n&&b.1n[a]){b.1n[a].4s();E f=b.1n[a][0];6(f)f.T(b)}},3N:[],2Y:9(f,e,g){E z=7;E y=f.S;z.a=9(){6(e.3q)e.3q.T(f,[z.2x]);6(g=="1e")C.1j(y,"1e",z.2x);G{y[g]=5K(z.2x)+"4t";6(g=="1u"||g=="24")y.11="2m"}};z.65=9(){F 3m(C.1h(f,g))};z.1Y=9(){E r=3m(C.34(f,g));F r&&r>-8v?r:z.65()};z.3R=9(c,b){z.4M=(1s 64()).63();z.2x=c;z.a();C.3N.Y(9(){F z.3q(c,b)});6(C.3N.H==1){E d=3t(9(){E a=C.3N;I(E i=0;ie.1N+z.4M){z.2x=c;z.a();6(f.2v)f.2v[g]=O;E b=O;I(E i 17 f.2v)6(f.2v[i]!==O)b=M;6(b){6(e.11!=K){y.2z=e.2z;y.11=e.11;6(C.1h(f,"11")=="1T")y.11="2m"}6(e.1p)y.11="1T";6(e.1p||e.1o)I(E p 17 f.2v)C.1j(y,p,f.2i[p])}6(b&&C.1g(e.1x))e.1x.T(f);F M}G{E n=t-7.4M;E p=n/e.1N;z.2x=C.35[e.35||(C.35.4H?"4H":"62")](p,n,a,(c-a),e.1N);z.a()}F O}}})})();',62,541,'||||||if|this||function|||||||||||||||||||||||||||||||var|return|else|length|for|each|null|type|false|browser|true|parentNode|undefined|document|style|apply|indexOf|data|nodeName||push|||display|msie||extend|fn|jQuery|in|className|window|arguments|constructor|event|test|opacity|typeof|isFunction|css|events|attr|firstChild|filter|div|queue|show|hide|mergeNum|add|new|nodeType|height|replace|tbody|complete|handle|trigger|table|animate|hidden|global|string|find|url|safari|toUpperCase|break|Array|ready|al|duration|pushStack|tb|timeout|stack|target|none|success|swap|toggle|button|cur|opt|while|get|guid|remove|width|nth|status|checked|selected|merge|nextSibling|select|ret|exec|args|load|try|catch|orig|id|match|_|block||rl|insertBefore|done|oldblock|trim|opera|preventDefault|curAnim|async|now|encodeURIComponent|overflow|value|grep|readyList|toLowerCase|color|ifModified|val|first|ownerDocument|domManip|substr|defaultView|split|has|param|last|text|multiFilter|call|eval|old|makeArray|innerHTML|stopPropagation|fx|childNodes|disabled|ajax|src|script|curCSS|easing|isReady|getElementById|form|input|float|getComputedStyle|clean|readyState|removeChild|error|static|lastModified|checkbox|selectedIndex|position|bind|parseFloat|String|oWidth|oHeight|step|on|toString|setInterval|ajaxSettings|prototype|jquery|Number|is|child|ol|cloneNode|RegExp|documentElement|isXMLDoc|getAttribute|dataType|append|styleFloat|mozilla|empty|end|map|timers|tr|el|which|custom|slice|lastToggle|handleHover|visibility|mouseover|handleError|lastChild|Modified|active|currentStyle|unshift|responseText|getPropertyValue|index|GET|clearInterval|safariTimer|unbind|init|__ie_init|setRequestHeader|unique|radio|getResponseHeader|relatedTarget|click|fix|removeEventListener|delete|handler|addEventListener|triggered|nodeIndex|appendChild|props|classFilter|shift|px|submit|file|expr|setTimeout|tagName|body|sibling|previousSibling|parents|deep|globalEval|fromElement|cssFloat|swing|parsererror|00|inArray|getElementsByTagName|startTime|visible|num|object|prop|200|Last|colgroup|beforeSend|fieldset|ActiveXObject|processData|contentType|ajaxSuccess|ajaxError|ajaxComplete|ajaxStop|ajaxStart|notmodified|POST|json|appendTo|XMLHttpRequest|DOMContentLoaded|bindReady|mouseout|prevObject|removeAttr|one|unload|ctrlKey|ajaxSend|metaKey|keyCode|charCode|not|scrollTop|httpSuccess|scrollLeft|pageX|httpData|srcElement|httpNotModified|after|before|prepend|join|parse|zoom|304|reset|image|password|odd|even|xml|quickClass|quickID|quickChild|setArray|parseInt|contains|gt|execScript|_toggle|lt|eq|href|nodeValue|alpha|self|speed|html|continue|parent|textContent|createTextNode|webkit|linear|getTime|Date|max|clientX|Math|dequeue|fl|createElement|version|100|NaN|fadeTo|fadeIn|slideToggle|slideUp|slideDown|setAttribute|getAttributeNode|name|method|action|content|cssText|300|protocol|FORM|location|options|send|abort|col|th|GMT|td|1970|01|cap|Since|colg|If|tfoot|thead|open|XMLHTTP|leg|Microsoft|urlencoded|www|application|ajaxSetup|ajaxTimeout|post|getScript|getIfModified|evalScripts|serialize|loadIfModified|loaded|onreadystatechange|defer|clientWidth|ipt|scr|clientHeight|write|relative|getJSON|keyup|keypress|keydown|change|mousemove|mouseup|left|mousedown|dblclick|right|scroll|resize|focus|blur|frames|absolute|clone|hover|offsetWidth|Content|Type|offsetHeight|Width|clientY|Thu|border|Jan|pageY|padding|Left|toElement|Requested|With|Right|Bottom|cancelBubble|returnValue|Top|size|detachEvent|attachEvent|substring|line|textarea|weight|enabled|font|innerText|only|uFFFF|responseXML|throw|u0128|417|toggleClass|removeClass|wrap|addClass|removeAttribute|insertAfter|prependTo|children|siblings|fadeOut|noConflict|prev|next|Boolean|maxLength|maxlength|readOnly|readonly|class|htmlFor|CSS1Compat|compatMode|boxModel|compatible|ie|ra|it|1px|rv|splice|userAgent|10000|navigator|concat|PI|cos|400|fast|600|slow|reverse|Function|Object|array|ig'.split('|'),0,{})) \ No newline at end of file Index: lams_tool_task/web/includes/javascript/jquery.dimensions.pack.js =================================================================== diff -u --- lams_tool_task/web/includes/javascript/jquery.dimensions.pack.js (revision 0) +++ lams_tool_task/web/includes/javascript/jquery.dimensions.pack.js (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,12 @@ +/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * + * $LastChangedDate: 2007-08-17 13:14:11 -0500 (Fri, 17 Aug 2007) $ + * $Rev: 2759 $ + * + * Version: 1.1.2 + * + * Requires: jQuery 1.1.3+ + */ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(9($){l e=$.1q.C,r=$.1q.r;$.1q.M({C:9(){3(!1[0])f();3(1[0]==p)3($.7.O||($.7.E&&U($.7.13)>11))6 n.19-(($(5).C()>n.19)?i():0);k 3($.7.E)6 n.19;k 6 $.I&&5.P.1E||5.o.1E;3(1[0]==5)6 1C.1y(($.I&&5.P.1w||5.o.1w),5.o.1u);6 e.1T(1,1P)},r:9(){3(!1[0])f();3(1[0]==p)3($.7.O||($.7.E&&U($.7.13)>11))6 n.1b-(($(5).r()>n.1b)?i():0);k 3($.7.E)6 n.1b;k 6 $.I&&5.P.1N||5.o.1N;3(1[0]==5)3($.7.1M){l a=n.1p;n.1a(27,n.1o);l b=n.1p;n.1a(a,n.1o);6 5.o.1c+b}k 6 1C.1y((($.I&&!$.7.E)&&5.P.1L||5.o.1L),5.o.1c);6 r.1T(1,1P)},19:9(){3(!1[0])f();6 1[0]==p||1[0]==5?1.C():1.14(\':N\')?1[0].1u-h(1,\'q\')-h(1,\'1I\'):1.C()+h(1,\'1h\')+h(1,\'1H\')},1b:9(){3(!1[0])f();6 1[0]==p||1[0]==5?1.r():1.14(\':N\')?1[0].1c-h(1,\'s\')-h(1,\'1F\'):1.r()+h(1,\'1v\')+h(1,\'1D\')},21:9(a){3(!1[0])f();a=$.M({A:w},a||{});6 1[0]==p||1[0]==5?1.C():1.14(\':N\')?1[0].1u+(a.A?(h(1,\'L\')+h(1,\'1x\')):0):1.C()+h(1,\'q\')+h(1,\'1I\')+h(1,\'1h\')+h(1,\'1H\')+(a.A?(h(1,\'L\')+h(1,\'1x\')):0)},1Y:9(a){3(!1[0])f();a=$.M({A:w},a||{});6 1[0]==p||1[0]==5?1.r():1.14(\':N\')?1[0].1c+(a.A?(h(1,\'K\')+h(1,\'1U\')):0):1.r()+h(1,\'s\')+h(1,\'1F\')+h(1,\'1v\')+h(1,\'1D\')+(a.A?(h(1,\'K\')+h(1,\'1U\')):0)},m:9(a){3(!1[0])f();3(a!=1S)6 1.1Q(9(){3(1==p||1==5)p.1a(a,$(p).u());k 1.m=a});3(1[0]==p||1[0]==5)6 n.1p||$.I&&5.P.m||5.o.m;6 1[0].m},u:9(a){3(!1[0])f();3(a!=1S)6 1.1Q(9(){3(1==p||1==5)p.1a($(p).m(),a);k 1.u=a});3(1[0]==p||1[0]==5)6 n.1o||$.I&&5.P.u||5.o.u;6 1[0].u},12:9(a){6 1.1O({A:w,J:w,v:1.z()},a)},1O:9(b,c){3(!1[0])f();l x=0,y=0,H=0,G=0,8=1[0],4=1[0],T,10,Z=$.D(8,\'12\'),F=$.7.1M,S=$.7.26,18=$.7.O,1n=$.7.E,R=$.7.E&&U($.7.13)>11,1m=w,1l=w,b=$.M({A:Q,15:w,1k:w,J:Q,1K:w,v:5.o},b||{});3(b.1K)6 1.1J(b,c);3(b.v.1j)b.v=b.v[0];3(8.B==\'Y\'){x=8.V;y=8.X;3(F){x+=h(8,\'K\')+(h(8,\'s\')*2);y+=h(8,\'L\')+(h(8,\'q\')*2)}k 3(18){x+=h(8,\'K\');y+=h(8,\'L\')}k 3((S&&1g.I)){x+=h(8,\'s\');y+=h(8,\'q\')}k 3(R){x+=h(8,\'K\')+h(8,\'s\');y+=h(8,\'L\')+h(8,\'q\')}}k{17{10=$.D(4,\'12\');x+=4.V;y+=4.X;3((F&&!4.B.1G(/^t[d|h]$/i))||S||R){x+=h(4,\'s\');y+=h(4,\'q\');3(F&&10==\'1i\')1m=Q;3(S&&10==\'25\')1l=Q}T=4.z||5.o;3(b.J||F){17{3(b.J){H+=4.m;G+=4.u}3(18&&($.D(4,\'24\')||\'\').1G(/23-22|20/)){H=H-((4.m==4.V)?4.m:0);G=G-((4.u==4.X)?4.u:0)}3(F&&4!=8&&$.D(4,\'1e\')!=\'N\'){x+=h(4,\'s\');y+=h(4,\'q\')}4=4.1B}W(4!=T)}4=T;3(4==b.v&&!(4.B==\'Y\'||4.B==\'1d\')){3(F&&4!=8&&$.D(4,\'1e\')!=\'N\'){x+=h(4,\'s\');y+=h(4,\'q\')}3(((1n&&!R)||18)&&10!=\'1r\'){x-=h(T,\'s\');y-=h(T,\'q\')}1A}3(4.B==\'Y\'||4.B==\'1d\'){3(((1n&&!R)||(S&&$.I))&&Z!=\'1i\'&&Z!=\'1z\'){x+=h(4,\'K\');y+=h(4,\'L\')}3(R||(F&&!1m&&Z!=\'1z\')||(S&&Z==\'1r\'&&!1l)){x+=h(4,\'s\');y+=h(4,\'q\')}1A}}W(4)}l a=j(8,b,x,y,H,G);3(c){$.M(c,a);6 1}k{6 a}},1J:9(b,c){3(!1[0])f();l x=0,y=0,H=0,G=0,4=1[0],z,b=$.M({A:Q,15:w,1k:w,J:Q,v:5.o},b||{});3(b.v.1j)b.v=b.v[0];17{x+=4.V;y+=4.X;z=4.z||5.o;3(b.J){17{H+=4.m;G+=4.u;4=4.1B}W(4!=z)}4=z}W(4&&4.B!=\'Y\'&&4.B!=\'1d\'&&4!=b.v);l a=j(1[0],b,x,y,H,G);3(c){$.M(c,a);6 1}k{6 a}},z:9(){3(!1[0])f();l a=1[0].z;W(a&&(a.B!=\'Y\'&&$.D(a,\'12\')==\'1r\'))a=a.z;6 $(a)}});l f=9(){1Z"1X: 1g 1W 14 1V";};l h=9(a,b){6 U($.D(a.1j?a[0]:a,b))||0};l j=9(a,b,x,y,d,c){3(!b.A){x-=h(a,\'K\');y-=h(a,\'L\')}3(b.15&&(($.7.E&&U($.7.13)<11)||$.7.O)){x+=h(a,\'s\');y+=h(a,\'q\')}k 3(!b.15&&!(($.7.E&&U($.7.13)<11)||$.7.O)){x-=h(a,\'s\');y-=h(a,\'q\')}3(b.1k){x+=h(a,\'1v\');y+=h(a,\'1h\')}3(b.J&&(!$.7.O||a.V!=a.m&&a.X!=a.m)){d-=a.m;c-=a.u}6 b.J?{1f:y-c,1t:x-d,u:c,m:d}:{1f:y,1t:x}};l g=0;l i=9(){3(!g){l a=$(\'<1s>\').D({r:16,C:16,1e:\'2d\',12:\'1i\',1f:-1R,1t:-1R}).2c(\'o\');g=16-a.2b(\'<1s>\').2a(\'1s\').D({r:\'16%\',C:29}).r();a.28()}6 g}})(1g);',62,138,'|this||if|parent|document|return|browser|elem|function|||||||||||else|var|scrollLeft|self|body|window|borderTopWidth|width|borderLeftWidth||scrollTop|relativeTo|false|||offsetParent|margin|tagName|height|css|safari|mo|st|sl|boxModel|scroll|marginLeft|marginTop|extend|visible|opera|documentElement|true|sf3|ie|op|parseInt|offsetLeft|while|offsetTop|BODY|elemPos|parPos|520|position|version|is|border|100|do|oa|innerHeight|scrollTo|innerWidth|offsetWidth|HTML|overflow|top|jQuery|paddingTop|absolute|jquery|padding|relparent|absparent|sf|pageYOffset|pageXOffset|fn|static|div|left|offsetHeight|paddingLeft|scrollHeight|marginBottom|max|fixed|break|parentNode|Math|paddingRight|clientHeight|borderRightWidth|match|paddingBottom|borderBottomWidth|offsetLite|lite|scrollWidth|mozilla|clientWidth|offset|arguments|each|1000|undefined|apply|marginRight|empty|collection|Dimensions|outerWidth|throw|inline|outerHeight|row|table|display|relative|msie|99999999|remove|200|find|append|appendTo|auto'.split('|'),0,{})) \ No newline at end of file Fisheye: Tag 341a816804f6b2b61a5f180479b56d8fd0d1ea29 refers to a dead (removed) revision in file `lams_tool_task/web/pages/learning/addtask.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_task/web/pages/learning/learning.jsp =================================================================== diff -u -rbe42ba5063335619d4e04832ea235f96b82f0e53 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/web/pages/learning/learning.jsp (.../learning.jsp) (revision be42ba5063335619d4e04832ea235f96b82f0e53) +++ lams_tool_task/web/pages/learning/learning.jsp (.../learning.jsp) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -26,15 +26,18 @@ document.location.href = "?mode=${mode}&toolSessionID=${toolSessionID}"; return false; } - function viewItem(itemUid){ - var myUrl = "?sessionMapID=${sessionMapID}&mode=${mode}&toolSessionID=${toolSessionID}&itemUid=" + itemUid; - launchPopup(myUrl,"LearnerView"); + + function completeItem(itemUid){ + document.location.href = "?sessionMapID=${sessionMapID}&mode=${mode}&itemUid=" + itemUid; + return false; } + function finishSession(){ document.getElementById("finishButton").disabled = true; document.location.href =''; return false; } + function continueReflect(){ document.location.href=''; } @@ -65,16 +68,17 @@ if (elem != null) { elem.style.display="block"; } - } + } --> -
+ +

${taskList.title}

@@ -98,70 +102,12 @@ ${taskList.instructions}

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - ${item.title} - - - - ${item.title} - - - - - [${item.createBy.loginName}] - - - - * - - - - - - - - - - -
+ + <%@ include file="/pages/learning/parts/itemlist.jsp"%> + + + * -

@@ -173,6 +119,8 @@



+ + @@ -193,6 +141,7 @@ +
@@ -220,10 +169,11 @@
+ - - + + @@ -252,9 +202,6 @@
- - - Fisheye: Tag 341a816804f6b2b61a5f180479b56d8fd0d1ea29 refers to a dead (removed) revision in file `lams_tool_task/web/pages/learning/notebook.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_task/web/pages/learning/parts/addtask.jsp =================================================================== diff -u --- lams_tool_task/web/pages/learning/parts/addtask.jsp (revision 0) +++ lams_tool_task/web/pages/learning/parts/addtask.jsp (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,47 @@ + + +<%@ include file="/common/taglibs.jsp"%> + + + + <%@ include file="/common/header.jsp"%> + + + + + + + + +
+ +
+ <%@ include file="/common/messages.jsp"%> + +
+ +
+ + + +
+ +
+ + + +
+ + + + + + + + + + + +
Index: lams_tool_task/web/pages/learning/parts/commentlist.jsp =================================================================== diff -u --- lams_tool_task/web/pages/learning/parts/commentlist.jsp (revision 0) +++ lams_tool_task/web/pages/learning/parts/commentlist.jsp (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,43 @@ + + +
+ +
+
+ + + + +
+ + + + + + + + + + + + + +
+ + + + + + + + ${author} + - + +
+
+ +
+
+ +
+
Index: lams_tool_task/web/pages/learning/parts/filelist.jsp =================================================================== diff -u --- lams_tool_task/web/pages/learning/parts/filelist.jsp (revision 0) +++ lams_tool_task/web/pages/learning/parts/filelist.jsp (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,34 @@ +
+ + + +
+ +
+
+ + <%-- Display target file type --%> +
    + + + +
  • + + + + [${file.createBy.loginName}] + + + + + + + + + +
  • +
    +
    +
+
+
Index: lams_tool_task/web/pages/learning/parts/itemdetails.jsp =================================================================== diff -u --- lams_tool_task/web/pages/learning/parts/itemdetails.jsp (revision 0) +++ lams_tool_task/web/pages/learning/parts/itemdetails.jsp (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,51 @@ + + +

${item.description}

+ + + + + + +

+ <%@ include file="commentlist.jsp"%> + + +
+ +
+ +
+ + + + + +
+ +
+
+ + + + <%@ include file="filelist.jsp"%> + + +
+ +
+ + + + + + + + +
+
+ +
+ +
+ Index: lams_tool_task/web/pages/learning/parts/itemlist.jsp =================================================================== diff -u --- lams_tool_task/web/pages/learning/parts/itemlist.jsp (revision 0) +++ lams_tool_task/web/pages/learning/parts/itemlist.jsp (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +   + + ${item.title} + + [${item.createBy.loginName}] + + + * + + + + +
+ + + + + + + + + + + +
+
+ + + + + + + + + + +
+ <%@ include file="/pages/learning/parts/itemdetails.jsp"%> +
+ +
+ + + + + + + + + + + + + <%-- --%> + + + +
Index: lams_tool_task/web/pages/learning/parts/notebook.jsp =================================================================== diff -u --- lams_tool_task/web/pages/learning/parts/notebook.jsp (revision 0) +++ lams_tool_task/web/pages/learning/parts/notebook.jsp (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,53 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + <fmt:message key="label.learning.title" /> + + <%@ include file="/common/header.jsp"%> + + + + + + + + + + + + +
+

+ ${sessionMap.title} +

+ + <%@ include file="/common/messages.jsp"%> + +

+ +

+ + + +
+ + + +
+
+
+ + + + + +
Index: lams_tool_task/web/pages/learning/start.jsp =================================================================== diff -u -r875f56cb6917d1a52bed0545f2933c3b55497a02 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/web/pages/learning/start.jsp (.../start.jsp) (revision 875f56cb6917d1a52bed0545f2933c3b55497a02) +++ lams_tool_task/web/pages/learning/start.jsp (.../start.jsp) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -2,12 +2,13 @@ "http://www.w3.org/TR/html4/loose.dtd"> <%@ include file="/common/taglibs.jsp"%> - + + Fisheye: Tag 341a816804f6b2b61a5f180479b56d8fd0d1ea29 refers to a dead (removed) revision in file `lams_tool_task/web/pages/learning/success.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_task/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -r6c72248f23c28bfb1413f1fba6aae48bc393d7b7 -r341a816804f6b2b61a5f180479b56d8fd0d1ea29 --- lams_tool_task/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 6c72248f23c28bfb1413f1fba6aae48bc393d7b7) +++ lams_tool_task/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -22,11 +22,7 @@ // end optional tab controller stuff selectTab(tabId); } - - function viewItem(itemUid,sessionMapID){ - var myUrl = "?mode=teacher&itemUid=" + itemUid + "&sessionMapID="+sessionMapID; - launchPopup(myUrl,"MonitoringReview"); - } + Fisheye: Tag 341a816804f6b2b61a5f180479b56d8fd0d1ea29 refers to a dead (removed) revision in file `lams_tool_task/web/pages/monitoring/notebook.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_task/web/pages/monitoring/parts/notebook.jsp =================================================================== diff -u --- lams_tool_task/web/pages/monitoring/parts/notebook.jsp (revision 0) +++ lams_tool_task/web/pages/monitoring/parts/notebook.jsp (revision 341a816804f6b2b61a5f180479b56d8fd0d1ea29) @@ -0,0 +1,48 @@ +<%@ include file="/common/taglibs.jsp"%> + + + + + <fmt:message key="label.learning.title" /> + <%@ include file="/common/header.jsp"%> + + + +
+

+ +

+ ${userDTO.fullName}

+ + + + + + + +
+ +
+ + + + + + + + +
+ + + + +
+ +
+
+ + + +
Fisheye: Tag 341a816804f6b2b61a5f180479b56d8fd0d1ea29 refers to a dead (removed) revision in file `lams_tool_task/web/pages/reviewtask/commentlist.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 341a816804f6b2b61a5f180479b56d8fd0d1ea29 refers to a dead (removed) revision in file `lams_tool_task/web/pages/reviewtask/filelist.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 341a816804f6b2b61a5f180479b56d8fd0d1ea29 refers to a dead (removed) revision in file `lams_tool_task/web/pages/reviewtask/reviewtask.jsp'. Fisheye: No comparison available. Pass `N' to diff?