[pal-cvs 3589] [1324] add/remove users, display categories, and fixed bugs.

Zurück zum Archiv-Index

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;">&nbsp;</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;">&nbsp;</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


pal-cvs メーリングリストの案内
Zurück zum Archiv-Index