svnno****@sourc*****
svnno****@sourc*****
2008年 11月 11日 (火) 11:08:17 JST
Revision: 1324 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1324 Author: shinsuke Date: 2008-11-11 11:08:17 +0900 (Tue, 11 Nov 2008) Log Message: ----------- add/remove users, display categories, and fixed bugs. Modified Paths: -------------- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java todolist/trunk/src/main/resources/application.properties todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp Added Paths: ----------- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/ todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp -------------- next part -------------- Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/CategoryAction.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -100,7 +100,7 @@ return "edit.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{groupId}") + @Execute(validator = false, input = "error.jsp", urlPattern = "confirmpage/{mode}/{id}") public String confirmpage() { if (categoryForm.mode != CommonConstants.CONFIRM_MODE) { throw new ActionMessagesException("errors.invalid.mode", @@ -128,7 +128,7 @@ return "edit.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{groupId}") + @Execute(validator = false, input = "error.jsp", urlPattern = "editpage/{mode}/{id}") public String editpage() { if (categoryForm.mode != CommonConstants.EDIT_MODE) { throw new ActionMessagesException( @@ -161,7 +161,7 @@ return "confirm.jsp"; } - @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{groupId}") + @Execute(validator = false, input = "error.jsp", urlPattern = "deletepage/{mode}/{id}") public String deletepage() { if (categoryForm.mode != CommonConstants.DELETE_MODE) { throw new ActionMessagesException("errors.invalid.mode", Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/TodoAction.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -38,7 +38,7 @@ // for list - public List<TodoMapping> todoItems; + public List<TodoMapping> todoMappingItems; // for edit/confirm/delete @@ -60,7 +60,7 @@ protected String displayList() { // page navi String userId = ToDoListUtil.getUserId(request); - todoItems = todoService.getTodoMappingList(todoPager, userId); + todoMappingItems = todoService.getTodoMappingList(todoPager, userId); // restore from pager // todoForm.todoname = todoPager.getGroupInfoname(); @@ -97,6 +97,22 @@ } @Execute(validator = false, input = "error.jsp") + public String allcategory() { + // page navi + todoPager.setCategoryId(null); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp", urlPattern = "selectcategory/{categoryId}") + public String selectcategory() { + // page navi + todoPager.setCategoryId(Long.parseLong(todoForm.categoryId)); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") public String back() { // reset edit page loadListPageParameters(); @@ -106,6 +122,8 @@ @Execute(validator = false, input = "error.jsp") public String editagain() { + todoMappingItems = todoService.getTodoMappingList(Long + .parseLong(todoForm.idForTodo), null); return "edit.jsp"; } @@ -281,8 +299,8 @@ @Execute(validator = false, input = "error.jsp") public String delete() { try { - todoService.disable(Long.parseLong(todoForm.idForTodo), request - .getRemoteUser()); + String userId = ToDoListUtil.getUserId(request); + todoService.disable(Long.parseLong(todoForm.idForTodo), userId); SAStrutsUtil.addMessage(request, "success.delete_todo"); // reset edit page @@ -298,9 +316,9 @@ @Execute(validator = false, input = "error.jsp") public String deletemapping() { try { - todoService.disableMapping(Long.parseLong(todoForm.id), request - .getRemoteUser()); - SAStrutsUtil.addMessage(request, "success.delete_todo"); + String userId = ToDoListUtil.getUserId(request); + todoService.disableMapping(Long.parseLong(todoForm.id), userId); + SAStrutsUtil.addMessage(request, "success.delete_todo_mapping"); // reset edit page loadListPageParameters(); @@ -308,21 +326,40 @@ return displayList(); } catch (Exception e) { log.error(e.getMessage(), e); - throw new ActionMessagesException("errors.failed_to_delete_todo"); + throw new ActionMessagesException( + "errors.failed_to_delete_todo_mapping"); } } + @Execute(validator = false, input = "error.jsp", urlPattern = "removemapping/{id}") + public String removemapping() { + try { + String userId = ToDoListUtil.getUserId(request); + todoService.disableMapping(Long.parseLong(todoForm.id), userId); + SAStrutsUtil.addMessage(request, "success.delete_todo_mapping"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_delete_todo_mapping"); + } + } + private void loadTodoMapping() { String userId = ToDoListUtil.getUserId(request); - TodoMapping todo = todoService.getTodoMapping(Long + TodoMapping todoMapping = todoService.getTodoMapping(Long .parseLong(todoForm.id), userId); - if (todo == null) { + if (todoMapping == null) { // throw an exception throw new ActionMessagesException("errors.could_not_find_todo", new Object[] { todoForm.id }); } - todoDxo.convertFromTodoMappingToForm(todo, todoForm); - + todoDxo.convertFromTodoMappingToForm(todoMapping, todoForm); + todoMappingItems = todoMapping.getTodo().getTodoMappingList(); } private Todo createTodo() { Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,208 @@ +package jp.sf.pal.todolist.action.user; + +import java.io.Serializable; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import jp.sf.pal.todolist.ToDoListConstants; +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.ConfigUtil; +import jp.sf.pal.todolist.common.util.SAStrutsUtil; +import jp.sf.pal.todolist.db.exentity.Todo; +import jp.sf.pal.todolist.db.exentity.TodoMapping; +import jp.sf.pal.todolist.db.exentity.UserInfo; +import jp.sf.pal.todolist.form.user.UserInfoForm; +import jp.sf.pal.todolist.pager.UserInfoPager; +import jp.sf.pal.todolist.service.TodoService; +import jp.sf.pal.todolist.service.UserInfoService; +import jp.sf.pal.todolist.util.ToDoListUtil; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.seasar.struts.annotation.ActionForm; +import org.seasar.struts.annotation.Execute; +import org.seasar.struts.exception.ActionMessagesException; + +public class UserInfoAction implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final Log log = LogFactory.getLog(UserInfoAction.class); + + // for list + + public List<UserInfo> userInfoItems; + + // for edit/confirm/delete + + @ActionForm + private UserInfoForm userInfoForm; + + private UserInfoService userInfoService; + + private TodoService todoService; + + private UserInfoPager userInfoPager; + + private PagerDxo pagerDxo; + + private transient HttpServletRequest request; + + protected String displayList() { + // page navi + userInfoItems = userInfoService.getUserInfoList(userInfoPager); + + // restore from pager + // userInfoForm.userInfoname = userInfoPager.getUserInfoname(); + + return "index.jsp"; + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "index/{todoId}/{todoMappingId}") + public String index() { + ConfigUtil.init(request); + return displayList(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "list/{todoId}/{todoMappingId}/{pageNumber}") + public String list() { + // page navi + pagerDxo.convert(userInfoForm, userInfoPager); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String search() { + // userInfoPager.setUserInfoname(userInfoForm.userInfoname); + + return displayList(); + } + + @Execute(validator = false, input = "error.jsp") + public String reset() { + userInfoPager.clear(); + + return displayList(); + } + + @Execute(validator = true, input = "error.jsp", urlPattern = "adduser/{todoId}/{todoMappingId}/{userId}") + public String adduser() { + TodoMapping todoMapping = createTodoMapping(); + try { + + todoService.store(todoMapping); + + SAStrutsUtil.addMessage(request, "success.add_userInfo_to_task"); + + // reset edit page + loadListPageParameters(); + + return displayList(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ActionMessagesException( + "errors.failed_to_add_userInfo_to_task"); + } + } + + private TodoMapping createTodoMapping() { + Long id = Long.parseLong(userInfoForm.todoId); + Todo todo = todoService.getTodo(id, null); + if (todo == null) { + throw new ActionMessagesException("errors.could_not_find_todo"); + } + + for (TodoMapping tm : todo.getTodoMappingList()) { + if (tm.getUserId().equals(userInfoForm.userId)) { + throw new ActionMessagesException( + "errors.user_already_exists_in_task"); + } + } + + UserInfo userInfo = createUserInfo(); + + String userId = ToDoListUtil.getUserId(request); + + TodoMapping todoMapping = new TodoMapping(); + todoMapping.setStatus(ToDoListConstants.WORKING); + todoMapping.setTodoId(id); + todoMapping.setUserId(userInfo.getUserId()); + todoMapping.setCreatedBy(userId); + todoMapping.setUpdatedBy(userId); + + return todoMapping; + } + + private UserInfo createUserInfo() { + UserInfo userInfo; + userInfo = userInfoService.getUserInfo(userInfoForm.userId); + if (userInfo == null) { + throw new ActionMessagesException("errors.could_not_find_userInfo"); + } + + return userInfo; + } + + private void loadListPageParameters() { + } + + private void loadDetailsPageParameters() { + } + + /** + * @return the request + */ + public HttpServletRequest getRequest() { + return request; + } + + /** + * @param request the request to set + */ + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public UserInfoForm getUserInfoForm() { + return userInfoForm; + } + + public void setUserInfoForm(UserInfoForm userInfoForm) { + this.userInfoForm = userInfoForm; + } + + public UserInfoService getUserInfoService() { + return userInfoService; + } + + public void setUserInfoService(UserInfoService userInfoService) { + this.userInfoService = userInfoService; + } + + public UserInfoPager getUserInfoPager() { + return userInfoPager; + } + + public void setUserInfoPager(UserInfoPager userInfoPager) { + this.userInfoPager = userInfoPager; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + + public TodoService getTodoService() { + return todoService; + } + + public void setTodoService(TodoService todoService) { + this.todoService = todoService; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/action/user/UserInfoAction.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/db/exentity/TodoMapping.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -2,6 +2,8 @@ import jp.sf.pal.todolist.ToDoListConstants; +import org.apache.commons.lang.StringUtils; + /** * The entity of TODO_MAPPING. * <p> @@ -26,4 +28,29 @@ setUserId(userId); setStatus(ToDoListConstants.WORKING); } + + public String getUserIdFromUserInfo() { + StringBuilder buf = new StringBuilder(); + if (getUserInfo() != null) { + // TODO i18n name order + if (getUserInfo().getFamilyName() != null) { + buf.append(getUserInfo().getFamilyName()); + } + if (getUserInfo().getFamilyName() != null + && getUserInfo().getGivenName() != null) { + buf.append(" "); + } + if (getUserInfo().getGivenName() != null) { + buf.append(getUserInfo().getGivenName()); + } + + if (StringUtils.isEmpty(buf.toString())) { + buf.append(getUserId()); + } + } else { + buf.append(getUserId()); + } + + return buf.toString(); + } } Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/TodoForm.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -33,6 +33,7 @@ @Maxbytelength(maxbytelength = 255) public String userId; + @Required(target = "selectcategory") @LongType public String categoryId; Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,36 @@ +package jp.sf.pal.todolist.form.user; + +import java.io.Serializable; + +import jp.sf.pal.todolist.common.form.PagingResultForm; + +import org.seasar.struts.annotation.IntegerType; +import org.seasar.struts.annotation.LongType; +import org.seasar.struts.annotation.Maxbytelength; +import org.seasar.struts.annotation.Required; + +public class UserInfoForm implements Serializable, PagingResultForm { + + private static final long serialVersionUID = -8519727811159440695L; + + @Required(target = "adduser") + @Maxbytelength(maxbytelength = 255) + public String userId; + + @Required + @LongType + public String todoId; + + @Required + @LongType + public String todoMappingId; + + @IntegerType + public String pageNumber; + + public void initialize() { + userId = null; + todoId = null; + todoMappingId = null; + } +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/form/user/UserInfoForm.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/TodoPager.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -6,16 +6,27 @@ private static final long serialVersionUID = 208357552837282806L; + private Long categoryId; + public TodoPager() { - + categoryId = null; } public void clear() { super.clear(); + categoryId = null; } protected int getDefaultPageSize() { return 50; } + public Long getCategoryId() { + return categoryId; + } + + public void setCategoryId(Long categoryId) { + this.categoryId = categoryId; + } + } Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,21 @@ +package jp.sf.pal.todolist.pager; + +import jp.sf.pal.todolist.common.pager.DefaultPager; + +public class UserInfoPager extends DefaultPager { + + private static final long serialVersionUID = -1518841728377756219L; + + public UserInfoPager() { + + } + + public void clear() { + super.clear(); + } + + protected int getDefaultPageSize() { + return 50; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/pager/UserInfoPager.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/service/CategoryService.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -128,7 +128,7 @@ TodoCategoryCB cb = new TodoCategoryCB(); cb.query().setId_Equal(id); - cb.query().setDeletedBy_IsNotNull(); + cb.query().setDeletedBy_IsNull(); TodoCategory category = todoCategoryBhv.selectEntity(cb); // TODO throw an exception Modified: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/service/TodoService.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -68,6 +68,9 @@ if (userId != null) { cb.query().setUserId_Equal(userId); } + if (todoPager.getCategoryId() != null) { + cb.query().setCategoryId_Equal(todoPager.getCategoryId()); + } cb.query().queryTodo().addOrderBy_EndDate_Asc(); PagingResultBean<TodoMapping> todoMappingList = todoMappingBhv @@ -83,6 +86,24 @@ return todoMappingList; } + public List<TodoMapping> getTodoMappingList(Long todoId, String userId) { + + TodoMappingCB cb = new TodoMappingCB(); + + // setup + cb.setupSelect_UserInfo(); + + cb.query().setDeletedBy_IsNull(); + if (userId != null) { + cb.query().setUserId_Equal(userId); + } + cb.query().setTodoId_Equal(todoId); + cb.query().queryTodo().addOrderBy_EndDate_Asc(); + + return todoMappingBhv.selectList(cb); + + } + public TodoMapping getTodoMapping(Long id, String userId) { TodoMappingCB cb = new TodoMappingCB(); @@ -103,6 +124,8 @@ // bind mapping TodoMappingCB cb2 = new TodoMappingCB(); + cb2.setupSelect_UserInfo(); + cb2.query().setDeletedBy_IsNull(); cb2.query().setTodoId_Equal(todoMapping.getTodoId()); todoMapping.getTodo() .setTodoMappingList(todoMappingBhv.selectList(cb2)); @@ -110,6 +133,27 @@ return todoMapping; } + public Todo getTodo(Long id, String userId) { + TodoCB cb = new TodoCB(); + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setId_Equal(id); + if (userId != null) { + cb.query().setCreatedBy_Equal(userId); + } + Todo todo = todoBhv.selectEntity(cb); + if (todo == null) { + return null; + } + + TodoMappingCB cb2 = new TodoMappingCB(); + cb2.query().setDeletedBy_IsNull(); + cb2.query().setTodoId_Equal(id); + todo.setTodoMappingList(todoMappingBhv.selectList(cb2)); + return todo; + } + public void store(Todo todo) { Timestamp now = new Timestamp(System.currentTimeMillis()); todo.setUpdatedTime(now); @@ -146,34 +190,37 @@ initUserInfo(todoMapping.getUserId()); + Todo todo; if (todoMapping.getCreatedTime() == null) { // create todoMapping.setCreatedTime(now); todoMappingBhv.insert(todoMapping); + + todo = getTodo(todoMapping.getTodoId(), null); } else { // update todoMappingBhv.update(todoMapping); + todo = todoMapping.getTodo(); + } - // check TodoMapping status - TodoMappingCB cb2 = new TodoMappingCB(); - cb2.query().setDeletedBy_IsNotNull(); - cb2.query().setTodoId_Equal(todoMapping.getTodoId()); - boolean finished = true; - for (TodoMapping tm : todoMappingBhv.selectList(cb2)) { - if (ToDoListConstants.WORKING == tm.getStatus()) { - finished = false; - } + // check TodoMapping status + TodoMappingCB cb2 = new TodoMappingCB(); + cb2.query().setDeletedBy_IsNull(); + cb2.query().setTodoId_Equal(todoMapping.getTodoId()); + boolean finished = true; + for (TodoMapping tm : todoMappingBhv.selectList(cb2)) { + if (ToDoListConstants.WORKING == tm.getStatus()) { + finished = false; } - Todo todo = todoMapping.getTodo(); - if (finished && todo.getStatus() == ToDoListConstants.WORKING) { - todo.setStatus(ToDoListConstants.COMPLETED); - todoBhv.update(todo); - } else if (!finished - && todo.getStatus() == ToDoListConstants.COMPLETED) { - todo.setStatus(ToDoListConstants.WORKING); - todoBhv.update(todo); - } } + + if (finished && todo.getStatus() == ToDoListConstants.WORKING) { + todo.setStatus(ToDoListConstants.COMPLETED); + todoBhv.update(todo); + } else if (!finished && todo.getStatus() == ToDoListConstants.COMPLETED) { + todo.setStatus(ToDoListConstants.WORKING); + todoBhv.update(todo); + } } public void disable(Long id, String name) { @@ -191,7 +238,7 @@ // todomapping TodoMappingCB cb2 = new TodoMappingCB(); - cb2.query().setDeletedBy_IsNotNull(); + cb2.query().setDeletedBy_IsNull(); cb2.query().setTodoId_Equal(id); for (TodoMapping todoMapping : todoMappingBhv.selectList(cb2)) { todoMapping.setDeletedBy(name); @@ -219,17 +266,10 @@ // check if todo has mapping Todo todo = todoMapping.getTodo(); TodoMappingCB cb2 = new TodoMappingCB(); - cb2.query().setDeletedBy_IsNotNull(); + cb2.query().setDeletedBy_IsNull(); cb2.query().setTodoId_Equal(todo.getId()); List<TodoMapping> todoMappingList = todoMappingBhv.selectList(cb2); - boolean delete = true; - for (TodoMapping tm : todoMappingList) { - if (tm.getDeletedBy() == null) { - delete = false; - break; - } - } - if (delete) { + if (todoMappingList.isEmpty()) { todo.setDeletedBy(name); todo.setDeletedTime(new Timestamp(new Date().getTime())); todoBhv.update(todo); Added: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java =================================================================== --- todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java (rev 0) +++ todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,77 @@ +package jp.sf.pal.todolist.service; + +import java.io.Serializable; +import java.util.List; + +import jp.sf.pal.todolist.common.dxo.PagerDxo; +import jp.sf.pal.todolist.common.util.PagingResultBeanWrapper; +import jp.sf.pal.todolist.db.allcommon.cbean.PagingResultBean; +import jp.sf.pal.todolist.db.cbean.UserInfoCB; +import jp.sf.pal.todolist.db.exbhv.UserInfoBhv; +import jp.sf.pal.todolist.db.exentity.UserInfo; +import jp.sf.pal.todolist.pager.UserInfoPager; + +import org.seasar.framework.container.hotdeploy.HotdeployUtil; + +public class UserInfoService implements Serializable { + + private static final long serialVersionUID = 1L; + + private transient UserInfoBhv userInfoBhv; + + private PagerDxo pagerDxo; + + public List<UserInfo> getUserInfoList(UserInfoPager userInfoPager) { + + HotdeployUtil.rebuildValue(userInfoPager); + + UserInfoCB cb = new UserInfoCB(); + + cb.fetchFirst(userInfoPager.getPageSize()); + cb.fetchPage(userInfoPager.getCurrentPageNumber()); + + // setup + + cb.query().setDeletedBy_IsNull(); + + cb.query().addOrderBy_UserId_Asc(); + + PagingResultBean<UserInfo> userInfoList = userInfoBhv.selectPage(cb); + + // update pager + pagerDxo.convert(new PagingResultBeanWrapper(userInfoList), + userInfoPager); + userInfoList.setPageRangeSize(5); + userInfoPager.setPageNumberList(userInfoList.pageRange() + .createPageNumberList()); + + return userInfoList; + } + + public UserInfo getUserInfo(String userId) { + UserInfoCB cb = new UserInfoCB(); + + // setup + + cb.query().setDeletedBy_IsNull(); + cb.query().setUserId_Equal(userId); + return userInfoBhv.selectEntity(cb); + } + + public UserInfoBhv getUserInfoBhv() { + return userInfoBhv; + } + + public void setUserInfoBhv(UserInfoBhv messageBhv) { + this.userInfoBhv = messageBhv; + } + + public PagerDxo getPagerDxo() { + return pagerDxo; + } + + public void setPagerDxo(PagerDxo pagerDxo) { + this.pagerDxo = pagerDxo; + } + +} Property changes on: todolist/trunk/src/main/java/jp/sf/pal/todolist/service/UserInfoService.java ___________________________________________________________________ Name: svn:eol-style + native Modified: todolist/trunk/src/main/resources/application.properties =================================================================== --- todolist/trunk/src/main/resources/application.properties 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/resources/application.properties 2008-11-11 02:08:17 UTC (rev 1324) @@ -28,12 +28,14 @@ success.create_userInfo=Created a user information. success.update_userInfo=Updated the user information. success.delete_userInfo=Deleted the user information. -success.create_roleInfo=Created a role information. -success.update_roleInfo=Updated the role information. -success.delete_roleInfo=Deleted the role information. -success.create_groupInfo=Created a group information. -success.update_groupInfo=Updated the group information. -success.delete_groupInfo=Deleted the group information. +success.create_todo=Created a task. +success.update_todo=Updated the task. +success.delete_todo=Deleted the task. +success.create_category=Created a category information. +success.update_category=Updated the category information. +success.delete_category=Deleted the category information. +success.add_userInfo_to_task=Added the user to the task. +success.delete_todo_mapping=Removed the user from this task. errors.failed_to_update_config=Failed to update the configuration. errors.invalid.mode=Invalid mode(expected value is {0}, but it's {1}). @@ -41,12 +43,15 @@ errors.failed_to_update_userInfo=Failed to update the user information. errors.failed_to_delete_userInfo=Failed to delete the user information. errors.could_not_find_userInfo=Could not find the user information({0}). -errors.failed_to_create_roleInfo=Failed to create a new role information. -errors.failed_to_update_roleInfo=Failed to update the role information. -errors.failed_to_delete_roleInfo=Failed to delete the role information. -errors.could_not_find_roleInfo=Could not find the role information({0}). -errors.failed_to_create_groupInfo=Failed to create a new group information. -errors.failed_to_update_groupInfo=Failed to update the group information. -errors.failed_to_delete_groupInfo=Failed to delete the group information. -errors.could_not_find_groupInfo=Could not find the group information({0}). - +errors.failed_to_create_todo=Failed to create a new task. +errors.failed_to_update_todo=Failed to update the task. +errors.failed_to_delete_todo=Failed to delete the task. +errors.could_not_find_todo=Could not find the task({0}). +errors.failed_to_create_category=Failed to create a new category information. +errors.failed_to_update_category=Failed to update the category information. +errors.failed_to_delete_category=Failed to delete the category information. +errors.could_not_find_category=Could not find the category information({0}). +errors.failed_to_add_userInfo_to_task=Failed to add the user to the task. +errors.could_not_find_userInfo=Could not find the user information({0}). +errors.failed_to_delete_todo_mapping=Failed to remove the user. +errors.user_already_exists_in_task=The user already exists in this task. Modified: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/confirm.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -112,7 +112,7 @@ </tr> <c:if test="${mode!=1}"> <tr> - <th>Assigned</th> + <th>Personal</th> <td> <table> <tbody> @@ -142,7 +142,31 @@ </table> </td> </tr> +<c:if test="${mode == 4}"> + <tr> + <th>Assigned</th> + <td> +<table> + <tbody> + <tr> + <th style="width: 140px;">Name</th> + <th style="width: 80px;">Status</th> + </tr> +<c:forEach var="t" varStatus="s" items="${todoMappingItems}"> + <tr class="${s.index %2 == 0 ? 'row1' : 'row2'}"> + <td>${f:h(t.userIdFromUserInfo)}</td> + <td style="text-align: center;"> +<c:if test="${t.status == '1'}">Working</c:if> +<c:if test="${t.status == '10'}">Completed</c:if> + </td> + </tr> +</c:forEach> + </tbody> +</table> + </td> + </tr> </c:if> +</c:if> </tbody> <tfoot> <tr> Modified: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/edit.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -117,7 +117,7 @@ </tr> <c:if test="${mode!=1}"> <tr> - <th>Assigned</th> + <th>Personal</th> <td> <table> <tbody> @@ -149,6 +149,33 @@ </table> </td> </tr> + <tr> + <th>Assigned</th> + <td> +<table> + <tbody> + <tr> + <th style="width: 140px;">Name</th> + <th style="width: 80px;">Status</th> + <th style="width: 100px;"> </th> + </tr> +<c:forEach var="t" varStatus="s" items="${todoMappingItems}"> + <tr class="${s.index %2 == 0 ? 'row1' : 'row2'}"> + <td>${f:h(t.userIdFromUserInfo)}</td> + <td style="text-align: center;"> +<c:if test="${t.status == '1'}">Working</c:if> +<c:if test="${t.status == '10'}">Completed</c:if> + </td> + <td style="text-align: center;"><s:link href="removemapping/${t.id}">Remove</s:link></td> + </tr> +</c:forEach> + </tbody> +</table> +<div> +<s:link href="/user/userInfo/index/${f:u(idForTodo)}/${f:u(id)}">Add User to This Task</s:link> +</div> + </td> + </tr> </c:if> </tbody> <tfoot> Modified: todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp 2008-11-10 11:28:11 UTC (rev 1323) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/todo/index.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -20,7 +20,29 @@ <div><html:messages id="msg" message="true"><bean:write name="msg" ignore="true"/></html:messages><html:errors/></div> -<div class="list-table" style="margin-top:3px;"> +<div class="list-table" style="float: left;margin: 5px;"> +<table> + <thead> + <tr> + <th style="width: 100px;">Category</th> + </tr> + </thead> + <tbody> + <tr> + <td style="text-align: center;"> +<ul style="margin: 0;padding: 0;"> + <li style="list-style-type: none;"><s:link href="allcategory">All</s:link></li> +<c:forEach var="c" varStatus="s" items="${categoryItems}"> + <li style="list-style-type: none;"><s:link href="selectcategory/${f:u(c.id)}">${f:h(c.name)}</s:link></li> +</c:forEach> +</ul> + </td> + </tr> + </tbody> +</table> +</div> + +<div class="list-table" style="margin-top:3px;float: left;"> <div> <s:link href="createpage">Create New Task</s:link> </div> @@ -35,7 +57,7 @@ </tr> </thead> <tbody> - <c:forEach var="t" varStatus="s" items="${todoItems}"> + <c:forEach var="t" varStatus="s" items="${todoMappingItems}"> <tr class="${s.index %2 == 0 ? 'row1' : 'row2'}"> <td style="text-align: center;"> <c:if test="${t.todo.priority == '5'}">Blocker</c:if> @@ -46,7 +68,7 @@ </td> <td><s:link href="confirmpage/4/${f:u(t.id)}">${f:h(t.todo.name)}</s:link></td> <td style="text-align: center;">${f:h(t.todo.createdByFromUserInfo)}</td> - <td> + <td style="text-align: center;"> <c:if test="${t.todo.endDate!=null}"> <fmt:formatDate value="${t.todo.endDate}" pattern="yyyy/MM/dd"/> </c:if> @@ -94,6 +116,6 @@ </div> </div> </div> - +<div style="clear: both;"></div> </body> </html> Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,25 @@ +<%@page pageEncoding="UTF-8" %> +<html> +<head> +<title></title> +</head> +<body> +<div style="padding:3px;"> +<!-- tab: BEGIN --> +<div class="tab-nav"> + <ul> + <li class="first"></li> + <li class="selected"><span>Tasks</span></li> + <li class="spacer"></li> + <li class="selectable"><s:link href="/user/category/" style="text-decoration: none;">Category</s:link></li> + <li class="last"></li> + </ul> +</div> +<!-- tab: END --> + +<html:errors/> +<br> +<s:link href="/user/userInfo/index/${f:u(todoId)}/${f:u(todoMappingId)}">Back</s:link> +</div> +</body> +</html> Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/error.jsp ___________________________________________________________________ Name: svn:eol-style + native Added: todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp =================================================================== --- todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp (rev 0) +++ todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp 2008-11-11 02:08:17 UTC (rev 1324) @@ -0,0 +1,83 @@ +<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> +<title></title> +</head> +<body> +<div style="padding:3px;"> +<!-- tab: BEGIN --> +<div class="tab-nav"> + <ul> + <li class="first"></li> + <li class="selected"><span>Tasks</span></li> + <li class="spacer"></li> + <li class="selectable"><s:link href="/user/category/" style="text-decoration: none;">Category</s:link></li> + <li class="last"></li> + </ul> +</div> +<!-- tab: END --> + +<div><html:messages id="msg" message="true"><bean:write name="msg" ignore="true"/></html:messages><html:errors/></div> + +<div class="list-table" style="margin-top:3px;"> +<div> +<s:link href="/user/todo/confirmpage/4/${f:u(todoMappingId)}">Back to Task Detail</s:link> +</div> +<table> + <thead> + <tr> + <th style="width:100px;text-align: center;">User ID</th> + <th style="width:150px;text-align: center;">Name</th> + <th style="width:200px;text-align: center;">Email</th> + <th style="width:100px;text-align: center;"> </th> + </tr> + </thead> + <tbody> + <c:forEach var="u" varStatus="s" items="${userInfoItems}"> + <tr class="${s.index %2 == 0 ? 'row1' : 'row2'}"> + <td>${f:h(u.userId)}</td> + <td>${f:h(u.familyName)} ${f:h(u.givenName)}</td> + <td>${f:h(u.email)}</td> + <td align="center"> + <s:link href="adduser/${f:u(todoId)}/${f:u(todoMappingId)}/${f:u(u.userId)}">Add</s:link> + </td> + </tr> + </c:forEach> + </tbody> +</table> +<!-- page navi --> +<div style="width: 450px;text-align: center;"> + <span> + <c:if test="${userInfoPager.existPrePage}"> + <s:link href="list/${f:u(todoId)}/${f:u(todoMappingId)}/${userInfoPager.currentPageNumber - 1}">前へ</s:link> + </c:if> + </span> + <span> + <c:forEach var="p" varStatus="s" items="${userInfoPager.pageNumberList}"> + <span> + <c:if test="${p == userInfoPager.currentPageNumber}"> + ${p} + </c:if> + <c:if test="${p != userInfoPager.currentPageNumber}"> + <s:link href="list/${f:u(todoId)}/${f:u(todoMappingId)}/${p}">${p}</s:link> + </c:if> + </span> + </c:forEach> + </span> + <span> + <c:if test="${userInfoPager.existNextPage}"> + <s:link href="list/${f:u(todoId)}/${f:u(todoMappingId)}/${userInfoPager.currentPageNumber + 1}">次へ</s:link> + </c:if> + </span> +</div> +<div style="width: 450px;text-align: center;"> + <span> + ${userInfoPager.currentPageNumber}/${userInfoPager.allPageCount} (${userInfoPager.allRecordCount}) + </span> +</div> +</div> +</div> + +</body> +</html> Property changes on: todolist/trunk/src/main/webapp/WEB-INF/view/user/userInfo/index.jsp ___________________________________________________________________ Name: svn:eol-style + native