[pal-cvs 3628] [1363] select mulitiple groups/roles.

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2008年 11月 18日 (火) 14:48:03 JST


Revision: 1363
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1363
Author:   shinsuke
Date:     2008-11-18 14:48:03 +0900 (Tue, 18 Nov 2008)

Log Message:
-----------
select mulitiple groups/roles.

Modified Paths:
--------------
    userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java
    userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java
    userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java
    userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java
    userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java
    userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java
    userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java
    userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java
    userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java
    userinfo/trunk/src/main/resources/application.properties
    userinfo/trunk/src/main/resources/application_ja.properties
    userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp
    userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp

Added Paths:
-----------
    userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp
    userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp


-------------- next part --------------
Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/action/UserInfoAction.java	2008-11-18 05:48:03 UTC (rev 1363)
@@ -1,6 +1,7 @@
 package jp.sf.pal.userinfo.action;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
@@ -249,6 +250,110 @@
         }
     }
 
+    @Execute(validator = false, input = "error.jsp")
+    public String selectroles() {
+        return "rolelist.jsp";
+    }
+
+    @Execute(validator = false, input = "error.jsp")
+    public String setroles() {
+        return "edit.jsp";
+    }
+
+    @Execute(validator = false, input = "error.jsp")
+    public String addroles() {
+        List<String> userList = new ArrayList<String>();
+        if (userInfoForm.selectedRoles != null) {
+            for (String userId : userInfoForm.selectedRoles) {
+                userList.add(userId);
+            }
+        }
+        if (userInfoForm.addedRoles != null) {
+            for (String userId : userInfoForm.addedRoles) {
+                userList.add(userId);
+            }
+        }
+        if (!userList.isEmpty()) {
+            userInfoForm.selectedRoles = userList.toArray(new String[0]);
+        } else {
+            userInfoForm.selectedRoles = null;
+        }
+        return "rolelist.jsp";
+    }
+
+    @Execute(validator = false, input = "error.jsp")
+    public String removeroles() {
+        List<String> userList = new ArrayList<String>();
+        if (userInfoForm.selectedRoles != null) {
+            for (String userId : userInfoForm.selectedRoles) {
+                userList.add(userId);
+            }
+        }
+        if (userInfoForm.removedRoles != null) {
+            for (String userId : userInfoForm.removedRoles) {
+                userList.remove(userId);
+            }
+        }
+        if (!userList.isEmpty()) {
+            userInfoForm.selectedRoles = userList.toArray(new String[0]);
+        } else {
+            userInfoForm.selectedRoles = null;
+        }
+        return "rolelist.jsp";
+    }
+
+    @Execute(validator = false, input = "error.jsp")
+    public String selectgroups() {
+        return "grouplist.jsp";
+    }
+
+    @Execute(validator = false, input = "error.jsp")
+    public String setgroups() {
+        return "edit.jsp";
+    }
+
+    @Execute(validator = false, input = "error.jsp")
+    public String addgroups() {
+        List<String> userList = new ArrayList<String>();
+        if (userInfoForm.selectedGroups != null) {
+            for (String userId : userInfoForm.selectedGroups) {
+                userList.add(userId);
+            }
+        }
+        if (userInfoForm.addedGroups != null) {
+            for (String userId : userInfoForm.addedGroups) {
+                userList.add(userId);
+            }
+        }
+        if (!userList.isEmpty()) {
+            userInfoForm.selectedGroups = userList.toArray(new String[0]);
+        } else {
+            userInfoForm.selectedGroups = null;
+        }
+        return "grouplist.jsp";
+    }
+
+    @Execute(validator = false, input = "error.jsp")
+    public String removegroups() {
+        List<String> userList = new ArrayList<String>();
+        if (userInfoForm.selectedGroups != null) {
+            for (String userId : userInfoForm.selectedGroups) {
+                userList.add(userId);
+            }
+        }
+        if (userInfoForm.removedGroups != null) {
+            for (String userId : userInfoForm.removedGroups) {
+                userList.remove(userId);
+            }
+        }
+        if (!userList.isEmpty()) {
+            userInfoForm.selectedGroups = userList.toArray(new String[0]);
+        } else {
+            userInfoForm.selectedGroups = null;
+        }
+        return "grouplist.jsp";
+    }
+
     private void loadUserInfo() {
 
         UserInfo userInfo = userInfoService.getUserInfo(userInfoForm.userId);
@@ -299,6 +404,31 @@
         return ConfigUtil.getBoolean(UserInfoConstants.GROUP_AVAILABLE, true);
     }
 
+    public List<RoleInfo> getAvailableRoleItems() {
+        return roleInfoService.getAvailableRoleList(userInfoForm.selectedRoles,
+                null);
+    }
+
+    public List<RoleInfo> getSelectedRoleItems() {
+        if (userInfoForm.selectedRoles == null) {
+            return null;
+        }
+        return roleInfoService.getSelectedRoleList(userInfoForm.selectedRoles);
+    }
+
+    public List<GroupInfo> getAvailableGroupItems() {
+        return groupInfoService.getAvailableGroupList(
+                userInfoForm.selectedGroups, null);
+    }
+
+    public List<GroupInfo> getSelectedGroupItems() {
+        if (userInfoForm.selectedGroups == null) {
+            return null;
+        }
+        return groupInfoService
+                .getSelectedGroupList(userInfoForm.selectedGroups);
+    }
+
     /**
      * @return the request
      */

Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/GroupMapping.java	2008-11-18 05:48:03 UTC (rev 1363)
@@ -14,4 +14,14 @@
 
     /** Serial version UID. (Default) */
     private static final long serialVersionUID = 1L;
+
+    private boolean delete = false;
+
+    public boolean isDelete() {
+        return delete;
+    }
+
+    public void setDelete(boolean delete) {
+        this.delete = delete;
+    }
 }

Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/RoleMapping.java	2008-11-18 05:48:03 UTC (rev 1363)
@@ -14,4 +14,15 @@
 
     /** Serial version UID. (Default) */
     private static final long serialVersionUID = 1L;
+
+    private boolean delete = false;
+
+    public boolean isDelete() {
+        return delete;
+    }
+
+    public void setDelete(boolean delete) {
+        this.delete = delete;
+    }
+
 }

Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/db/exentity/UserInfo.java	2008-11-18 05:48:03 UTC (rev 1363)
@@ -1,5 +1,9 @@
 package jp.sf.pal.userinfo.db.exentity;
 
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
 import org.apache.commons.lang.StringUtils;
 
 /**
@@ -44,4 +48,80 @@
     public String getNameArg4() {
         return getFamilyNameDesc() != null ? getFamilyNameDesc() : "";
     }
+
+    public String[] getSelectedRoles() {
+        if (getRoleMappingList() != null && !getRoleMappingList().isEmpty()) {
+            List<String> list = new ArrayList<String>();
+            for (RoleMapping mapping : getRoleMappingList()) {
+                list.add(mapping.getRoleId());
+            }
+            return list.toArray(new String[0]);
+        }
+        return null;
+    }
+
+    public void setSelectedRoles(String[] roles) {
+        if (roles != null && getRoleMappingList() != null) {
+            List<String> roleList = new LinkedList<String>();
+            for (String roleId : roles) {
+                roleList.add(roleId);
+            }
+            for (RoleMapping mapping : getRoleMappingList()) {
+                boolean delete = true;
+                for (String roleId : roleList) {
+                    if (mapping.getRoleId().equals(roleId)) {
+                        delete = false;
+                        roleList.remove(roleId);
+                        break;
+                    }
+                }
+                if (delete) {
+                    mapping.setDelete(true);
+                }
+            }
+            for (String roleId : roleList) {
+                RoleMapping mapping = new RoleMapping();
+                mapping.setRoleId(roleId);
+                getRoleMappingList().add(mapping);
+            }
+        }
+    }
+
+    public String[] getSelectedGroups() {
+        if (getGroupMappingList() != null && !getGroupMappingList().isEmpty()) {
+            List<String> list = new ArrayList<String>();
+            for (GroupMapping mapping : getGroupMappingList()) {
+                list.add(mapping.getGroupId());
+            }
+            return list.toArray(new String[0]);
+        }
+        return null;
+    }
+
+    public void setSelectedGroups(String[] groups) {
+        if (groups != null && getGroupMappingList() != null) {
+            List<String> groupList = new LinkedList<String>();
+            for (String groupId : groups) {
+                groupList.add(groupId);
+            }
+            for (GroupMapping mapping : getGroupMappingList()) {
+                boolean delete = true;
+                for (String groupId : groupList) {
+                    if (mapping.getGroupId().equals(groupId)) {
+                        delete = false;
+                        groupList.remove(groupId);
+                        break;
+                    }
+                }
+                if (delete) {
+                    mapping.setDelete(true);
+                }
+            }
+            for (String groupId : groupList) {
+                GroupMapping mapping = new GroupMapping();
+                mapping.setGroupId(groupId);
+                getGroupMappingList().add(mapping);
+            }
+        }
+    }
 }

Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/dxo/UserInfoDxo.java	2008-11-18 05:48:03 UTC (rev 1363)
@@ -34,6 +34,8 @@
             + ", deletedTime : deletedTime" //
             + ", deletedBy : deletedBy" //
             // + ", versionno : versionno" //
+            + ", selectedRoles : selectedRoles" //
+            + ", selectedGroups : selectedGroups" //
     )
     public void convertFromUserInfoToForm(UserInfo userInfo, UserInfoForm form);
 
@@ -54,12 +56,14 @@
             + ", roleId : roleId" //
             + ", groupId : groupId" //
             // + ", createdTime : createdTime" //
-    // + ", createdBy : createdBy" //
-    // + ", updatedTime : updatedTime" //
-    // + ", updatedBy : updatedBy" //
-    // + ", deletedTime : deletedTime" //
-    // + ", deletedBy : deletedBy" //
-    // + ", versionno : versionno" //
+            // + ", createdBy : createdBy" //
+            // + ", updatedTime : updatedTime" //
+            // + ", updatedBy : updatedBy" //
+            // + ", deletedTime : deletedTime" //
+            // + ", deletedBy : deletedBy" //
+            // + ", versionno : versionno" //
+            + ", selectedRoles : selectedRoles" //
+            + ", selectedGroups : selectedGroups" //
     )
     public void convertFromFormToUserInfo(UserInfoForm form, UserInfo userInfo);
 

Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/form/UserInfoForm.java	2008-11-18 05:48:03 UTC (rev 1363)
@@ -77,6 +77,18 @@
     @Maxbytelength(maxbytelength = 255)
     public String deletedBy;
 
+    public String[] addedRoles;
+
+    public String[] removedRoles;
+
+    public String[] selectedRoles;
+
+    public String[] addedGroups;
+
+    public String[] removedGroups;
+
+    public String[] selectedGroups;
+
     @IntegerType
     public String pageNumber;
 
@@ -101,5 +113,11 @@
         updatedBy = null;
         deletedTime = null;
         deletedBy = null;
+        addedRoles = null;
+        removedRoles = null;
+        selectedRoles = null;
+        addedGroups = null;
+        removedGroups = null;
+        selectedGroups = null;
     }
 }

Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/GroupInfoService.java	2008-11-18 05:48:03 UTC (rev 1363)
@@ -2,6 +2,7 @@
 
 import java.io.Serializable;
 import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -99,6 +100,45 @@
         groupInfoBhv.update(groupInfo);
     }
 
+    public List<GroupInfo> getAvailableGroupList(String[] selectedGroups,
+            String groupId) {
+        GroupInfoCB cb = new GroupInfoCB();
+
+        // setup
+
+        if (groupId != null) {
+            cb.query().setGroupId_Equal(groupId);
+        }
+        if (selectedGroups != null) {
+            List<String> excludedGroupIdList = new ArrayList<String>();
+            for (String uid : selectedGroups) {
+                excludedGroupIdList.add(uid);
+            }
+            cb.query().setGroupId_NotInScope(excludedGroupIdList);
+        }
+        cb.query().addOrderBy_GroupId_Asc();
+        return groupInfoBhv.selectList(cb);
+    }
+
+    public List<GroupInfo> getSelectedGroupList(String[] selectedGroups) {
+        GroupInfoCB cb = new GroupInfoCB();
+
+        // setup
+
+        if (selectedGroups != null) {
+            List<String> groupIdList = new ArrayList<String>(
+                    selectedGroups.length);
+            for (String groupId : selectedGroups) {
+                groupIdList.add(groupId);
+            }
+            cb.query().setGroupId_InScope(groupIdList);
+        }
+
+        cb.query().addOrderBy_GroupId_Asc();
+
+        return groupInfoBhv.selectList(cb);
+    }
+
     public GroupInfoBhv getGroupInfoBhv() {
         return groupInfoBhv;
     }

Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/RoleInfoService.java	2008-11-18 05:48:03 UTC (rev 1363)
@@ -2,6 +2,7 @@
 
 import java.io.Serializable;
 import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -98,6 +99,45 @@
         roleInfoBhv.update(roleInfo);
     }
 
+    public List<RoleInfo> getAvailableRoleList(String[] selectedRoles,
+            String roleId) {
+        RoleInfoCB cb = new RoleInfoCB();
+
+        // setup
+
+        if (roleId != null) {
+            cb.query().setRoleId_Equal(roleId);
+        }
+        if (selectedRoles != null) {
+            List<String> excludedRoleIdList = new ArrayList<String>();
+            for (String uid : selectedRoles) {
+                excludedRoleIdList.add(uid);
+            }
+            cb.query().setRoleId_NotInScope(excludedRoleIdList);
+        }
+        cb.query().addOrderBy_RoleId_Asc();
+        return roleInfoBhv.selectList(cb);
+    }
+
+    public List<RoleInfo> getSelectedRoleList(String[] selectedRoles) {
+        RoleInfoCB cb = new RoleInfoCB();
+
+        // setup
+
+        if (selectedRoles != null) {
+            List<String> roleIdList = new ArrayList<String>(
+                    selectedRoles.length);
+            for (String roleId : selectedRoles) {
+                roleIdList.add(roleId);
+            }
+            cb.query().setRoleId_InScope(roleIdList);
+        }
+
+        cb.query().addOrderBy_RoleId_Asc();
+
+        return roleInfoBhv.selectList(cb);
+    }
+
     public RoleInfoBhv getRoleInfoBhv() {
         return roleInfoBhv;
     }

Modified: userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java
===================================================================
--- userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/java/jp/sf/pal/userinfo/service/UserInfoService.java	2008-11-18 05:48:03 UTC (rev 1363)
@@ -8,8 +8,14 @@
 import jp.sf.pal.userinfo.common.dxo.PagerDxo;
 import jp.sf.pal.userinfo.common.util.PagingResultBeanWrapper;
 import jp.sf.pal.userinfo.db.allcommon.cbean.PagingResultBean;
+import jp.sf.pal.userinfo.db.cbean.GroupMappingCB;
+import jp.sf.pal.userinfo.db.cbean.RoleMappingCB;
 import jp.sf.pal.userinfo.db.cbean.UserInfoCB;
+import jp.sf.pal.userinfo.db.exbhv.GroupMappingBhv;
+import jp.sf.pal.userinfo.db.exbhv.RoleMappingBhv;
 import jp.sf.pal.userinfo.db.exbhv.UserInfoBhv;
+import jp.sf.pal.userinfo.db.exentity.GroupMapping;
+import jp.sf.pal.userinfo.db.exentity.RoleMapping;
 import jp.sf.pal.userinfo.db.exentity.UserInfo;
 import jp.sf.pal.userinfo.pager.UserInfoPager;
 
@@ -22,6 +28,10 @@
 
     private transient UserInfoBhv userInfoBhv;
 
+    private transient RoleMappingBhv roleMappingBhv;
+
+    private transient GroupMappingBhv groupMappingBhv;
+
     private PagerDxo pagerDxo;
 
     public List<UserInfo> getUserInfoList(UserInfoPager userInfoPager) {
@@ -58,7 +68,20 @@
 
         cb.query().setDeletedBy_IsNull();
         cb.query().setUserId_Equal(userId);
-        return userInfoBhv.selectEntity(cb);
+        UserInfo userInfo = userInfoBhv.selectEntity(cb);
+        if (userInfo == null) {
+            return null;
+        }
+
+        RoleMappingCB cb2 = new RoleMappingCB();
+        cb2.query().setUserId_Equal(userId);
+        userInfo.setRoleMappingList(roleMappingBhv.selectList(cb2));
+
+        GroupMappingCB cb3 = new GroupMappingCB();
+        cb3.query().setUserId_Equal(userId);
+        userInfo.setGroupMappingList(groupMappingBhv.selectList(cb3));
+
+        return userInfo;
     }
 
     public void store(UserInfo userInfo) {
@@ -77,6 +100,36 @@
             userInfo.setCreatedTime(now);
         }
         userInfoBhv.insertOrUpdate(userInfo);
+
+        // role mapping
+        List<RoleMapping> roleMappingList = userInfo.getRoleMappingList();
+        if (roleMappingList != null) {
+            for (RoleMapping mapping : roleMappingList) {
+                if (mapping.isDelete()) {
+                    // delete
+                    roleMappingBhv.delete(mapping);
+                } else if (mapping.getId() == null) {
+                    // create
+                    mapping.setUserId(userInfo.getUserId());
+                    roleMappingBhv.insert(mapping);
+                }
+            }
+        }
+
+        // group mapping
+        List<GroupMapping> groupMappingList = userInfo.getGroupMappingList();
+        if (groupMappingList != null) {
+            for (GroupMapping mapping : groupMappingList) {
+                if (mapping.isDelete()) {
+                    // delete
+                    groupMappingBhv.delete(mapping);
+                } else if (mapping.getId() == null) {
+                    // create
+                    mapping.setUserId(userInfo.getUserId());
+                    groupMappingBhv.insert(mapping);
+                }
+            }
+        }
     }
 
     public void disable(String userId, String name) {
@@ -109,4 +162,20 @@
         this.pagerDxo = pagerDxo;
     }
 
+    public RoleMappingBhv getRoleMappingBhv() {
+        return roleMappingBhv;
+    }
+
+    public void setRoleMappingBhv(RoleMappingBhv roleMappingBhv) {
+        this.roleMappingBhv = roleMappingBhv;
+    }
+
+    public GroupMappingBhv getGroupMappingBhv() {
+        return groupMappingBhv;
+    }
+
+    public void setGroupMappingBhv(GroupMappingBhv groupMappingBhv) {
+        this.groupMappingBhv = groupMappingBhv;
+    }
+
 }

Modified: userinfo/trunk/src/main/resources/application.properties
===================================================================
--- userinfo/trunk/src/main/resources/application.properties	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/resources/application.properties	2008-11-18 05:48:03 UTC (rev 1363)
@@ -9,6 +9,8 @@
 display.name={0} {2} {1}
 # 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading)
 long.display.name={0} {2} {1}
+# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name
+phonetic.display.name={0} {2} {1}
 
 errors.invalid={0} is invalid.
 errors.maxlength={0} can not be greater than {1} characters.
@@ -111,4 +113,24 @@
 
 labels.user_detail=User Detail
 
-labels.create_new_user=Create New User
\ No newline at end of file
+labels.create_new_user=Create New User
+
+labels.roles=Roles
+labels.role_name=Role Name
+labels.role_name=ID
+labels.select_roles=Select Roles
+labels.groups=Groups
+labels.group_name=Group Name
+labels.group_name=ID
+labels.select_groups=Select Groups
+
+labels.role_list=Role List
+labels.selected_roles=Selected Roles
+labels.add_roles=Add &gt;&gt;
+labels.remove_roles=&lt;&lt; Remove
+labels.ok=OK
+labels.group_list=Group List
+labels.selected_groups=Selected Groups
+labels.add_groups=Add &gt;&gt;
+labels.remove_groups=&lt;&lt; Remove
+

Modified: userinfo/trunk/src/main/resources/application_ja.properties
===================================================================
--- userinfo/trunk/src/main/resources/application_ja.properties	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/resources/application_ja.properties	2008-11-18 05:48:03 UTC (rev 1363)
@@ -2,6 +2,8 @@
 display.name={1} {0}
 # 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading)
 long.display.name={1} {0} ({4} {3})
+# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name
+phonetic.display.name={1} {0}
 
 errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
 errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002
@@ -104,4 +106,24 @@
 
 labels.user_detail=\u30e6\u30fc\u30b6\u30fc\u306e\u8a73\u7d30
 
-labels.create_new_user=\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210
\ No newline at end of file
+labels.create_new_user=\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210
+
+labels.roles=\u30ed\u30fc\u30eb
+labels.role_name=\u30ed\u30fc\u30eb\u540d
+labels.role_name=ID
+labels.select_roles=\u30ed\u30fc\u30eb\u306e\u9078\u629e
+labels.groups=\u30b0\u30eb\u30fc\u30d7
+labels.group_name=\u30b0\u30eb\u30fc\u30d7\u540d
+labels.group_name=ID
+labels.select_groups=\u30b0\u30eb\u30fc\u30d7\u306e\u9078\u629e
+
+labels.role_list=\u30ed\u30fc\u30eb\u4e00\u89a7
+labels.selected_roles=\u9078\u629e\u6e08\u307f\u30ed\u30fc\u30eb
+labels.add_roles=\u8ffd\u52a0 &gt;&gt;
+labels.remove_roles=&lt;&lt; \u524a\u9664
+labels.ok=\u4e86\u89e3
+labels.group_list=\u30b0\u30eb\u30fc\u30d7\u4e00\u89a7
+labels.selected_groups=\u9078\u629e\u6e08\u307f\u30b0\u30eb\u30fc\u30d7
+labels.add_groups=\u8ffd\u52a0 &gt;&gt;
+labels.remove_groups=&lt;&lt; \u524a\u9664
+

Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp
===================================================================
--- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/confirm.jsp	2008-11-18 05:48:03 UTC (rev 1363)
@@ -87,27 +87,75 @@
                 </tr>
 <c:if test="${roleAvailable}">
                 <tr>
-                    <th><bean:message key="labels.role"/></th>
+                    <th><bean:message key="labels.default_role"/></th>
                     <td>
-<c:forEach var="r" varStatus="s" items="${roleInfoItems}">
-	<c:if test="${roleId==r.roleId}">${f:h(r.name)}</c:if>
+<c:forEach var="r" varStatus="s" items="${selectedRoleItems}">
+	<c:if test="${roleId==r.roleId}"><c:if test="${r.name!=''}">${f:h(r.name)}</c:if><c:if test="${r.name==''}">${f:h(r.roleId)}</c:if></c:if>
 </c:forEach>
 <c:if test="${roleId==''}"><bean:message key="labels.none"/></c:if>
 <html:hidden property="roleId"/>
 					</td>
                 </tr>
+                <tr>
+                    <th><bean:message key="labels.roles"/></th>
+                    <td>
+<table>
+	<tbody>
+		<tr>
+			<th style="width:100px;"><bean:message key="labels.role_id"/></th>
+			<th style="width:100px;"><bean:message key="labels.role_name"/></th>
+		</tr>
+		<c:forEach var="r" varStatus="s" items="${selectedRoleItems}">
+		<tr>
+			<td>${f:h(r.roleId)}</td>
+			<td>${f:h(r.name)}</td>
+		</tr>
+		</c:forEach>
+	</tbody>
+</table>
+<html:select property="selectedRoles" multiple="true" style="display:none;">
+	<c:forEach var="u" varStatus="s" items="${selectedRoleItems}">
+		<html:option value="${f:u(u.roleId)}">${f:u(u.roleId)}</html:option>
+	</c:forEach>
+</html:select>
+					</td>
+                </tr>
 </c:if>
 <c:if test="${groupAvailable}">
                 <tr>
-                    <th><bean:message key="labels.group"/></th>
+                    <th><bean:message key="labels.default_group"/></th>
                     <td>
-<c:forEach var="g" varStatus="s" items="${groupInfoItems}">
-	<c:if test="${groupId==g.groupId}">${f:h(g.name)}</c:if>
+<c:forEach var="g" varStatus="s" items="${selectedGroupItems}">
+	<c:if test="${groupId==g.groupId}"><c:if test="${g.name!=''}">${f:h(g.name)}</c:if><c:if test="${g.name==''}">${f:h(g.roleId)}</c:if></c:if>
 </c:forEach>
 <c:if test="${groupId==''}"><bean:message key="labels.none"/></c:if>
 <html:hidden property="groupId"/>
 					</td>
                 </tr>
+                <tr>
+                    <th><bean:message key="labels.groups"/></th>
+                    <td>
+<table>
+	<tbody>
+		<tr>
+			<th style="width:100px;"><bean:message key="labels.group_id"/></th>
+			<th style="width:100px;"><bean:message key="labels.group_name"/></th>
+		</tr>
+		<c:forEach var="r" varStatus="s" items="${selectedGroupItems}">
+		<tr>
+			<td>${f:h(r.groupId)}</td>
+			<td>${f:h(r.name)}</td>
+		</tr>
+		</c:forEach>
+	</tbody>
+</table>
+<html:select property="selectedGroups" multiple="true" style="display:none;">
+	<c:forEach var="u" varStatus="s" items="${selectedGroupItems}">
+		<html:option value="${f:u(u.groupId)}">${f:u(u.groupId)}</html:option>
+	</c:forEach>
+</html:select>
+					</td>
+                </tr>
 </c:if>
 			</tbody>
 			<tfoot>

Modified: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp
===================================================================
--- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp	2008-11-18 04:50:49 UTC (rev 1362)
+++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/edit.jsp	2008-11-18 05:48:03 UTC (rev 1363)
@@ -92,12 +92,43 @@
                     <td>
                         <html:select property="roleId">
 <option value=""><bean:message key="labels.none"/></option>
-							<c:forEach var="r" varStatus="s" items="${roleInfoItems}">
-								<html:option value="${f:h(r.roleId)}">${f:h(r.name)}</html:option>
+							<c:forEach var="r" varStatus="s" items="${selectedRoleItems}">
+								<html:option value="${f:h(r.roleId)}"><c:if test="${r.name!=''}">${f:h(r.name)}</c:if><c:if test="${r.name==''}">${f:h(r.roleId)}</c:if></html:option>
 							</c:forEach>
                         </html:select>
 					</td>
                 </tr>
+                <tr>
+                    <th><bean:message key="labels.roles"/></th>
+                    <td>
+<table>
+	<tbody>
+		<tr>
+			<th style="width:100px;"><bean:message key="labels.role_id"/></th>
+			<th style="width:100px;"><bean:message key="labels.role_name"/></th>
+		</tr>
+		<c:forEach var="r" varStatus="s" items="${selectedRoleItems}">
+		<tr>
+			<td>${f:h(r.roleId)}</td>
+			<td>${f:h(r.name)}</td>
+		</tr>
+		</c:forEach>
+	</tbody>
+	<tfoot>
+		<tr>
+			<td colspan="2">
+<input type="submit" name="selectroles" value="<bean:message key="labels.select_roles"/>"/>
+			</td>
+		</tr>
+	</tfoot>
+</table>
+<html:select property="selectedRoles" multiple="true" style="display:none;">
+	<c:forEach var="u" varStatus="s" items="${selectedRoleItems}">
+		<html:option value="${f:u(u.roleId)}">${f:u(u.roleId)}</html:option>
+	</c:forEach>
+</html:select>
+					</td>
+                </tr>
 </c:if>
 <c:if test="${groupAvailable}">
                 <tr>
@@ -105,12 +136,43 @@
                     <td>
                         <html:select property="groupId">
 <option value=""><bean:message key="labels.none"/></option>
-							<c:forEach var="g" varStatus="s" items="${groupInfoItems}">
-								<html:option value="${f:h(g.groupId)}">${f:h(g.name)}</html:option>
+							<c:forEach var="g" varStatus="s" items="${selectedGroupItems}">
+								<html:option value="${f:h(g.groupId)}"><c:if test="${g.name!=''}">${f:h(g.name)}</c:if><c:if test="${g.name==''}">${f:h(g.groupId)}</c:if></html:option>
 							</c:forEach>
                         </html:select>
 					</td>
                 </tr>
+                <tr>
+                    <th><bean:message key="labels.groups"/></th>
+                    <td>
+<table>
+	<tbody>
+		<tr>
+			<th style="width:100px;"><bean:message key="labels.group_id"/></th>
+			<th style="width:100px;"><bean:message key="labels.group_name"/></th>
+		</tr>
+		<c:forEach var="r" varStatus="s" items="${selectedGroupItems}">
+		<tr>
+			<td>${f:h(r.groupId)}</td>
+			<td>${f:h(r.name)}</td>
+		</tr>
+		</c:forEach>
+	</tbody>
+	<tfoot>
+		<tr>
+			<td colspan="2">
+<input type="submit" name="selectgroups" value="<bean:message key="labels.select_groups"/>"/>
+			</td>
+		</tr>
+	</tfoot>
+</table>
+<html:select property="selectedGroups" multiple="true" style="display:none;">
+	<c:forEach var="u" varStatus="s" items="${selectedGroupItems}">
+		<html:option value="${f:u(u.groupId)}">${f:u(u.groupId)}</html:option>
+	</c:forEach>
+</html:select>
+					</td>
+                </tr>
 </c:if>
             </tbody>
             <tfoot>

Added: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp
===================================================================
--- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp	                        (rev 0)
+++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp	2008-11-18 05:48:03 UTC (rev 1363)
@@ -0,0 +1,115 @@
+<%@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><bean:message key="labels.user"/></span></li>
+<c:if test="${roleAvailable}">
+    <li class="spacer"></li>
+    <li class="selectable"><s:link href="/roleInfo/" style="text-decoration: none;"><bean:message key="labels.role"/></s:link></li>
+</c:if>
+<c:if test="${groupAvailable}">
+    <li class="spacer"></li>
+    <li class="selectable"><s:link href="/groupInfo/" style="text-decoration: none;"><bean:message key="labels.group"/></s:link></li>
+</c:if>
+    <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>
+
+<s:form>
+<div style="margin-top:3px;">
+<html:hidden property="mode"/>
+<html:hidden property="userId"/>
+<html:hidden property="familyName"/>
+<html:hidden property="familyNameDesc"/>
+<html:hidden property="givenName"/>
+<html:hidden property="givenNameDesc"/>
+<html:hidden property="middleName"/>
+<html:hidden property="nickname"/>
+<html:hidden property="gender"/>
+<html:hidden property="birthDate"/>
+<html:hidden property="email"/>
+<html:hidden property="url"/>
+<html:hidden property="telephone"/>
+<html:hidden property="roleId"/>
+<html:hidden property="groupId"/>
+<html:select property="selectedRoles" multiple="true" style="display:none;">
+	<c:forEach var="u" varStatus="s" items="${selectedRoleItems}">
+		<html:option value="${f:u(u.roleId)}">${f:u(u.roleId)}</html:option>
+	</c:forEach>
+</html:select>
+<div class="form-table" style="float:left;width: 200px;">
+<table>
+	<thead>
+		<tr>
+			<th><bean:message key="labels.group_list"/></th>
+		</tr>
+	</thead>
+	<tbody>
+		<tr>
+			<td>
+<html:select property="addedGroups" multiple="true" size="10" style="width:180px;">
+<!-- TODO i18n -->
+	<c:forEach var="group" varStatus="s" items="${availableGroupItems}">
+		<html:option value="${f:u(group.groupId)}"><c:if test="${group.name==''}">${f:h(group.groupId)}</c:if><c:if test="${group.name!=''}">${f:h(group.name)}(${f:h(group.groupId)})</c:if></html:option>
+	</c:forEach>
+</html:select>
+			</td>
+		</tr>
+	</tbody>
+</table>
+</div>
+<div style="float:left;width: 100px;height: 200px;text-align: center;padding-top:60px;">
+<input type="submit" name="addgroups" value="<bean:message key="labels.add_groups"/>"/>
+<input type="submit" name="removegroups" value="<bean:message key="labels.remove_groups"/>"/>
+</div>
+<div class="form-table" style="float:left;width: 200px;">
+<table>
+	<thead>
+		<tr>
+			<th><bean:message key="labels.selected_groups"/></th>
+		</tr>
+	</thead>
+	<tbody>
+		<tr>
+			<td>
+<html:select property="removedGroups" multiple="true" size="10" style="width:180px;">
+<!-- TODO i18n -->
+	<c:forEach var="group" varStatus="s" items="${selectedGroupItems}">
+		<html:option value="${f:u(group.groupId)}"><c:if test="${group.name==''}">${f:h(group.groupId)}</c:if><c:if test="${group.name!=''}">${f:h(group.name)}(${f:h(group.groupId)})</c:if></html:option>
+	</c:forEach>
+</html:select>
+<html:select property="selectedGroups" multiple="true" style="display:none;">
+	<c:forEach var="u" varStatus="s" items="${selectedGroupItems}">
+		<html:option value="${f:u(u.groupId)}">${f:u(u.groupId)}</html:option>
+	</c:forEach>
+</html:select>
+			</td>
+		</tr>
+	</tbody>
+	<tfoot>
+		<tr>
+			<td>
+<input type="submit" name="setgroups" value="<bean:message key="labels.ok"/>"/>
+			</td>
+		</tr>
+	</tfoot>
+</table>
+</div>
+</div>
+</s:form>
+
+</div>
+
+</body>
+</html>


Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/grouplist.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp
===================================================================
--- userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp	                        (rev 0)
+++ userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp	2008-11-18 05:48:03 UTC (rev 1363)
@@ -0,0 +1,115 @@
+<%@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><bean:message key="labels.user"/></span></li>
+<c:if test="${roleAvailable}">
+    <li class="spacer"></li>
+    <li class="selectable"><s:link href="/roleInfo/" style="text-decoration: none;"><bean:message key="labels.role"/></s:link></li>
+</c:if>
+<c:if test="${groupAvailable}">
+    <li class="spacer"></li>
+    <li class="selectable"><s:link href="/groupInfo/" style="text-decoration: none;"><bean:message key="labels.group"/></s:link></li>
+</c:if>
+    <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>
+
+<s:form>
+<div style="margin-top:3px;">
+<html:hidden property="mode"/>
+<html:hidden property="userId"/>
+<html:hidden property="familyName"/>
+<html:hidden property="familyNameDesc"/>
+<html:hidden property="givenName"/>
+<html:hidden property="givenNameDesc"/>
+<html:hidden property="middleName"/>
+<html:hidden property="nickname"/>
+<html:hidden property="gender"/>
+<html:hidden property="birthDate"/>
+<html:hidden property="email"/>
+<html:hidden property="url"/>
+<html:hidden property="telephone"/>
+<html:hidden property="roleId"/>
+<html:hidden property="groupId"/>
+<html:select property="selectedGroups" multiple="true" style="display:none;">
+	<c:forEach var="u" varStatus="s" items="${selectedGroupItems}">
+		<html:option value="${f:u(u.groupId)}">${f:u(u.groupId)}</html:option>
+	</c:forEach>
+</html:select>
+<div class="form-table" style="float:left;width: 200px;">
+<table>
+	<thead>
+		<tr>
+			<th><bean:message key="labels.role_list"/></th>
+		</tr>
+	</thead>
+	<tbody>
+		<tr>
+			<td>
+<html:select property="addedRoles" multiple="true" size="10" style="width:180px;">
+<!-- TODO i18n -->
+	<c:forEach var="role" varStatus="s" items="${availableRoleItems}">
+		<html:option value="${f:u(role.roleId)}"><c:if test="${role.name==''}">${f:h(role.roleId)}</c:if><c:if test="${role.name!=''}">${f:h(role.name)}(${f:h(role.roleId)})</c:if></html:option>
+	</c:forEach>
+</html:select>
+			</td>
+		</tr>
+	</tbody>
+</table>
+</div>
+<div style="float:left;width: 100px;height: 200px;text-align: center;padding-top:60px;">
+<input type="submit" name="addroles" value="<bean:message key="labels.add_roles"/>"/>
+<input type="submit" name="removeroles" value="<bean:message key="labels.remove_roles"/>"/>
+</div>
+<div class="form-table" style="float:left;width: 200px;">
+<table>
+	<thead>
+		<tr>
+			<th><bean:message key="labels.selected_roles"/></th>
+		</tr>
+	</thead>
+	<tbody>
+		<tr>
+			<td>
+<html:select property="removedRoles" multiple="true" size="10" style="width:180px;">
+<!-- TODO i18n -->
+	<c:forEach var="role" varStatus="s" items="${selectedRoleItems}">
+		<html:option value="${f:u(role.roleId)}"><c:if test="${role.name==''}">${f:h(role.roleId)}</c:if><c:if test="${role.name!=''}">${f:h(role.name)}(${f:h(role.roleId)})</c:if></html:option>
+	</c:forEach>
+</html:select>
+<html:select property="selectedRoles" multiple="true" style="display:none;">
+	<c:forEach var="u" varStatus="s" items="${selectedRoleItems}">
+		<html:option value="${f:u(u.roleId)}">${f:u(u.roleId)}</html:option>
+	</c:forEach>
+</html:select>
+			</td>
+		</tr>
+	</tbody>
+	<tfoot>
+		<tr>
+			<td>
+<input type="submit" name="setroles" value="<bean:message key="labels.ok"/>"/>
+			</td>
+		</tr>
+	</tfoot>
+</table>
+</div>
+</div>
+</s:form>
+
+</div>
+
+</body>
+</html>


Property changes on: userinfo/trunk/src/main/webapp/WEB-INF/view/userInfo/rolelist.jsp
___________________________________________________________________
Name: svn:eol-style
   + native


pal-cvs メーリングリストの案内
Back to archive index