[pal-cvs 3656] [1391] added group view on week.

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2008年 11月 21日 (金) 17:04:12 JST


Revision: 1391
          http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1391
Author:   shinsuke
Date:     2008-11-21 17:04:12 +0900 (Fri, 21 Nov 2008)

Log Message:
-----------
added group view on week.

Modified Paths:
--------------
    scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java
    scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java
    scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java
    scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java
    scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java
    scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java
    scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp
    scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp


-------------- next part --------------
Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java
===================================================================
--- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/CalendarAction.java	2008-11-21 08:04:12 UTC (rev 1391)
@@ -1,13 +1,10 @@
 package jp.sf.pal.scheduler.action.user.schedule;
 
 import java.io.Serializable;
-import java.sql.Time;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.Date;
 import java.util.HashMap;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
@@ -16,13 +13,17 @@
 import jp.sf.pal.scheduler.SchedulerConstants;
 import jp.sf.pal.scheduler.common.util.CalendarUtil;
 import jp.sf.pal.scheduler.common.util.ConfigUtil;
-import jp.sf.pal.scheduler.common.util.DateUtil;
-import jp.sf.pal.scheduler.db.exentity.EventSchedule;
 import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping;
+import jp.sf.pal.scheduler.db.exentity.GroupMapping;
+import jp.sf.pal.scheduler.db.exentity.RoleMapping;
+import jp.sf.pal.scheduler.db.exentity.UserInfo;
 import jp.sf.pal.scheduler.form.user.schedule.CalendarForm;
 import jp.sf.pal.scheduler.service.OnetimeScheduleService;
 import jp.sf.pal.scheduler.service.RepeatScheduleService;
+import jp.sf.pal.scheduler.service.UserInfoService;
+import jp.sf.pal.scheduler.util.SchedulerUtil;
 
+import org.apache.commons.lang.StringUtils;
 import org.seasar.struts.annotation.ActionForm;
 import org.seasar.struts.annotation.Execute;
 
@@ -42,6 +43,8 @@
 
     public List<Map<String, Object>> allDayEventInDayItems;
 
+    public List<Map<String, Object>> groupMemberInWeekItems;
+
     public int maxCols;
 
     @ActionForm
@@ -51,135 +54,14 @@
 
     private RepeatScheduleService repeatScheduleService;
 
+    private UserInfoService userInfoService;
+
     private transient HttpServletRequest request;
 
-    private void createSideCalendar() {
-        calendarDayItems = new LinkedList<Map<String, Object>>();
-        Calendar targetCalendar = calendarForm.getTargetCalendar();
-        int targetYear = CalendarUtil.getYear(targetCalendar);
-        int targetMonth = CalendarUtil.getMonth(targetCalendar) + 1;
-        int targetDate = CalendarUtil.getDate(targetCalendar);
-
-        // create a previous month
-        Calendar cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar);
-        int count = CalendarUtil.getDay(cal) - 1;
-        while (count > 0) {
-            cal = CalendarUtil.getPrev(cal);
-            calendarDayItems.add(0, createCalendarDayItem(cal, false));
-            count--;
-        }
-
-        // create this month
-        cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar);
-        int lastDayOfMonth = CalendarUtil.getDate(CalendarUtil
-                .getLastCalendarInMonth(targetCalendar));
-        for (int i = 0; i < lastDayOfMonth; i++) {
-            calendarDayItems.add(createCalendarDayItem(cal, targetYear,
-                    targetMonth, targetDate, true));
-            cal = CalendarUtil.getNext(cal);
-        }
-
-        // create a next month
-        count = CalendarUtil.getDay(cal);
-        while (count != 1) {
-            calendarDayItems.add(createCalendarDayItem(cal, false));
-            cal = CalendarUtil.getNext(cal);
-            count = CalendarUtil.getDay(cal);
-        }
-
-    }
-
-    private boolean compare(int year1, int month1, int date1, int year2,
-            int month2, int date2) {
-        if (year1 == year2 && month1 == month2 && date1 == date2) {
-            return true;
-        }
-        return false;
-    }
-
-    private Map<String, Object> createEmptyEvent() {
-        Map<String, Object> emptyEvent = new HashMap<String, Object>();
-        emptyEvent.put("startEvent", "true");
-        emptyEvent.put("cols", "1");
-        emptyEvent.put("rows", "1");
-        emptyEvent.put("time", "none");
-        return emptyEvent;
-    }
-
-    private void putEventSchedule(EventSchedule eventSchedule, Time startTime,
-            Time endTime) {
-        if (startTime != null && endTime != null) {
-            int sIdx = DateUtil.getHours(startTime);
-            int eIdx = DateUtil.getHours(endTime) - 1;
-            if (DateUtil.getMinutes(endTime) != 0) {
-                eIdx++;
-            }
-            if (eIdx > 23) {
-                eIdx = 23;
-            }
-            for (int i = sIdx; i <= eIdx; i++) {
-                Map<String, Object> eventMap = createEvent(eventSchedule, true,
-                        true);
-                if (i == sIdx) {
-                    eventMap.put("startEvent", "true");
-                    int size = eIdx - sIdx + 1;
-                    eventMap.put("rows", String.valueOf(size));
-                    eventMap.put("lastEvent", "true");
-                } else {
-                    eventMap.put("startEvent", "false");
-                }
-                eventMap.put("cols", "1");
-                eventInDayItems.get(i).add(eventMap);
-            }
-        } else if (startTime != null && endTime == null) {
-            int sIdx = DateUtil.getHours(startTime);
-            for (int i = sIdx; i <= 23; i++) {
-                Map<String, Object> eventMap = createEvent(eventSchedule, true,
-                        false);
-                if (i == sIdx) {
-                    eventMap.put("startEvent", "true");
-                    int size = 23 - sIdx + 1;
-                    eventMap.put("rows", String.valueOf(size));
-                    eventMap.put("lastEvent", "true");
-                } else {
-                    eventMap.put("startEvent", "false");
-                }
-                eventMap.put("cols", "1");
-                eventInDayItems.get(i).add(eventMap);
-            }
-        } else if (startTime == null && endTime != null) {
-            int eIdx = DateUtil.getHours(endTime) - 1;
-            if (DateUtil.getMinutes(endTime) != 0) {
-                eIdx++;
-            }
-            if (eIdx > 23) {
-                eIdx = 23;
-            }
-            for (int i = 0; i <= eIdx; i++) {
-                Map<String, Object> eventMap = createEvent(eventSchedule,
-                        false, true);
-                if (i == 0) {
-                    eventMap.put("startEvent", "true");
-                    int size = eIdx + 1;
-                    eventMap.put("rows", String.valueOf(size));
-                    eventMap.put("lastEvent", "true");
-                } else {
-                    eventMap.put("startEvent", "false");
-                }
-                eventMap.put("cols", "1");
-                eventInDayItems.get(i).add(eventMap);
-            }
-        } else {
-            // all day
-            allDayEventInDayItems.add(createEvent(eventSchedule, false, false));
-        }
-
-    }
-
     private String displayPersonalDay() {
-        createSideCalendar();
-
         Calendar cal = calendarForm.getTargetCalendar();
+        calendarDayItems = SchedulerUtil.createSideCalendar(cal);
+
         Calendar nextCal = cal;
         int tYear = CalendarUtil.getYear(cal);
         int tMonth = CalendarUtil.getMonth(cal) + 1;
@@ -195,36 +77,9 @@
         List<EventScheduleMapping> ssmList = onetimeScheduleService
                 .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal
                         .getTime());
-        for (EventScheduleMapping ssm : ssmList) {
-            EventSchedule eventSchedule = ssm.getEventSchedule();
-            Date startDate = eventSchedule.getStartDate();
-            int sYear = DateUtil.getYear(startDate) + 1900;
-            int sMonth = DateUtil.getMonth(startDate) + 1;
-            int sDate = DateUtil.getDate(startDate);
+        SchedulerUtil.createPersonalDayForOnetime(tYear, tMonth, tDate,
+                ssmList, eventInDayItems, allDayEventInDayItems);
 
-            Date endDate = eventSchedule.getEndDate();
-            int eYear = DateUtil.getYear(endDate) + 1900;
-            int eMonth = DateUtil.getMonth(endDate) + 1;
-            int eDate = DateUtil.getDate(endDate);
-
-            Time startTime = eventSchedule.getStartTime();
-            Time endTime = eventSchedule.getEndTime();
-            if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate)
-                    && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) {
-                putEventSchedule(eventSchedule, startTime, endTime);
-            } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate)
-                    && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) {
-                putEventSchedule(eventSchedule, startTime, null);
-            } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate)
-                    && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) {
-                putEventSchedule(eventSchedule, null, endTime);
-            } else {
-                // all day
-                allDayEventInDayItems.add(createEvent(eventSchedule, false,
-                        false));
-            }
-        }
-
         maxCols = 0;
         for (List<Map<String, Object>> events : eventInDayItems) {
             if (!events.isEmpty() && events.size() > maxCols) {
@@ -236,7 +91,7 @@
             if (!events.isEmpty()) {
                 int idx = events.size() - 1;
                 for (int i = idx; i < maxCols - 1; i++) {
-                    events.add(createEmptyEvent());
+                    events.add(SchedulerUtil.createEmptyEvent());
                 }
             }
         }
@@ -244,46 +99,9 @@
         List<EventScheduleMapping> rsmList = repeatScheduleService
                 .getPersonalScheduleMappingList(userId, cal.getTime(), nextCal
                         .getTime());
-        for (EventScheduleMapping rsm : rsmList) {
-            EventSchedule eventSchedule = rsm.getEventSchedule();
-            Date startDate = eventSchedule.getStartDate();
-            // int sYear = DateUtil.getYear(startDate) + 1900;
-            int sMonth = DateUtil.getMonth(startDate) + 1;
-            int sDate = DateUtil.getDate(startDate);
+        SchedulerUtil.createPersonalDayForRepeat(tYear, tMonth, tDate, tDay,
+                rsmList, eventInDayItems, allDayEventInDayItems);
 
-            Time startTime = eventSchedule.getStartTime();
-            Time endTime = eventSchedule.getEndTime();
-            String type = eventSchedule.getType();
-            if ("MTWTFSS".equals(type)) {
-                putEventSchedule(eventSchedule, startTime, endTime);
-            } else if ("MTWTF".equals(type)) {
-                if (tDay > 1 && tDay < 7) {
-                    putEventSchedule(eventSchedule, startTime, endTime);
-                }
-            } else if ("MWF".equals(type)) {
-                if (tDay == 2 || tDay == 4 || tDay == 6) {
-                    putEventSchedule(eventSchedule, startTime, endTime);
-                }
-            } else if ("TT".equals(type)) {
-                if (tDay == 3 || tDay == 5) {
-                    putEventSchedule(eventSchedule, startTime, endTime);
-                }
-            } else if ("WEEKLY".equals(type)) {
-                if (tDay == DateUtil.getDay(startDate) + 1) {
-                    putEventSchedule(eventSchedule, startTime, endTime);
-                }
-            } else if ("MONTHLY".equals(type)) {
-                if (tDate == sDate) {
-                    putEventSchedule(eventSchedule, startTime, endTime);
-                }
-            } else if ("YEARLY".equals(type)) {
-                if (tDate == sDate && tMonth == sMonth) {
-                    putEventSchedule(eventSchedule, startTime, endTime);
-                }
-            }
-
-        }
-
         for (List<Map<String, Object>> events : eventInDayItems) {
             if (!events.isEmpty() && events.size() > maxCols) {
                 maxCols = events.size();
@@ -294,7 +112,7 @@
             if (!events.isEmpty()) {
                 int idx = events.size() - 1;
                 for (int i = idx; i < maxCols - 1; i++) {
-                    events.add(createEmptyEvent());
+                    events.add(SchedulerUtil.createEmptyEvent());
                 }
             } else {
                 Map<String, Object> emptyEvent = new HashMap<String, Object>();
@@ -307,13 +125,14 @@
     }
 
     private String displayPersonalWeek() {
-        createSideCalendar();
+        calendarDayItems = SchedulerUtil.createSideCalendar(calendarForm
+                .getTargetCalendar());
 
         List<Calendar> calendarList = new ArrayList<Calendar>(7);
         eventInWeekItems = new ArrayList<List<List<Map<String, Object>>>>(7);
         allDayEventInWeekItems = new ArrayList<List<Map<String, Object>>>(7);
         Calendar cal = calendarForm.getTargetCalendar();
-        calendarList.add(cal);
+        // calendarList.add(cal);
         weekDayItems = new ArrayList<Map<String, Object>>();
         Map<String, Integer> indexMap = new HashMap<String, Integer>(7);
         SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n
@@ -349,239 +168,21 @@
         List<EventScheduleMapping> ssmList = onetimeScheduleService
                 .getPersonalScheduleMappingList(userId, calendarList.get(0)
                         .getTime(), calendarList.get(6).getTime());
-        for (EventScheduleMapping ssm : ssmList) {
-            EventSchedule eventSchedule = ssm.getEventSchedule();
-            Date startDate = eventSchedule.getStartDate();
-            int sYear = DateUtil.getYear(startDate) + 1900;
-            int sMonth = DateUtil.getMonth(startDate) + 1;
-            int sDate = DateUtil.getDate(startDate);
-            Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate);
-            if (sIndex == null) {
-                sIndex = Integer.valueOf(-1);
-            }
+        SchedulerUtil.createPersonalWeekForOnetime(indexMap, ssmList,
+                eventInWeekItems, allDayEventInWeekItems);
 
-            Date endDate = eventSchedule.getEndDate();
-            int eYear = DateUtil.getYear(endDate) + 1900;
-            int eMonth = DateUtil.getMonth(endDate) + 1;
-            int eDate = DateUtil.getDate(endDate);
-            Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate);
-            if (eIndex == null) {
-                eIndex = Integer.valueOf(7);
-            }
-
-            int startIdx = sIndex.intValue();
-            if (startIdx < 0) {
-                startIdx = 0;
-            }
-            int endIdx = eIndex.intValue();
-            if (endIdx > 6) {
-                endIdx = 6;
-            }
-
-            Time time = eventSchedule.getStartTime();
-            for (int i = startIdx; i < endIdx + 1; i++) {
-                if (i == sIndex.intValue() && i == eIndex.intValue()) {
-                    if (time == null) {
-                        // all day
-                        allDayEventInWeekItems.get(i).add(
-                                createEvent(eventSchedule, false, false));
-                    } else {
-                        int timeIndex = DateUtil.getHours(time);
-                        eventInWeekItems.get(i).get(timeIndex).add(
-                                createEvent(eventSchedule, true, true));
-                    }
-                } else if (i == sIndex.intValue() && i != eIndex.intValue()) {
-                    if (time == null) {
-                        allDayEventInWeekItems.get(i).add(
-                                createEvent(eventSchedule, false, false));
-                    } else {
-                        int timeIndex = DateUtil.getHours(time);
-                        eventInWeekItems.get(i).get(timeIndex).add(
-                                createEvent(eventSchedule, true, false));
-                    }
-                } else if (i != sIndex.intValue() && i == eIndex.intValue()) {
-                    if (eventSchedule.getEndTime() == null) {
-                        allDayEventInWeekItems.get(i).add(
-                                createEvent(eventSchedule, false, false));
-                    } else {
-                        int timeIndex = DateUtil.getHours(eventSchedule
-                                .getEndTime()) - 1;
-                        if (timeIndex < 0) {
-                            timeIndex = 0;
-                        }
-                        eventInWeekItems.get(i).get(timeIndex).add(
-                                createEvent(eventSchedule, false, true));
-                    }
-                } else if (i != sIndex.intValue() && i != eIndex.intValue()) {
-                    // all day
-                    allDayEventInWeekItems.get(i).add(
-                            createEvent(eventSchedule, false, false));
-                }
-            }
-        }
-
         List<EventScheduleMapping> rsmList = repeatScheduleService
                 .getPersonalScheduleMappingList(userId, calendarList.get(0)
                         .getTime(), calendarList.get(6).getTime());
-        for (EventScheduleMapping rsm : rsmList) {
-            EventSchedule eventSchedule = rsm.getEventSchedule();
-            Date startDate = eventSchedule.getStartDate();
-            int sYear = DateUtil.getYear(startDate) + 1900;
-            int sMonth = DateUtil.getMonth(startDate) + 1;
-            int sDate = DateUtil.getDate(startDate);
-            Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate);
-            if (sIndex == null) {
-                sIndex = Integer.valueOf(0);
-            }
+        SchedulerUtil.createPersonalWeekForRepeat(indexMap, rsmList,
+                eventInWeekItems, allDayEventInWeekItems, weekDayItems);
 
-            Date endDate = eventSchedule.getEndDate();
-            Integer eIndex;
-            if (endDate != null) {
-                int eYear = DateUtil.getYear(endDate) + 1900;
-                int eMonth = DateUtil.getMonth(endDate) + 1;
-                int eDate = DateUtil.getDate(endDate);
-                eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate);
-                if (eIndex == null) {
-                    eIndex = Integer.valueOf(6);
-                }
-            } else {
-                eIndex = Integer.valueOf(6);
-            }
-
-            Time time = eventSchedule.getStartTime();
-            for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) {
-                String type = eventSchedule.getType();
-                if ("MTWTFSS".equals(type)) {
-                    if (time != null) {
-                        int timeIndex = DateUtil.getHours(time);
-                        eventInWeekItems.get(i).get(timeIndex).add(
-                                createEvent(eventSchedule, true, true));
-                    } else {
-
-                        // all day
-                        allDayEventInWeekItems.get(i).add(
-                                createEvent(eventSchedule, false, false));
-                    }
-                } else if ("MTWTF".equals(type)) {
-                    String d = (String) weekDayItems.get(i).get("dayOfWeek");
-                    if (d != null) {
-                        int dayOfWeek = Integer.parseInt(d);
-                        if (dayOfWeek > 1 && dayOfWeek < 7) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                eventInWeekItems.get(i).get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                allDayEventInWeekItems.get(i)
-                                        .add(
-                                                createEvent(eventSchedule,
-                                                        false, false));
-                            }
-                        }
-                    }
-                } else if ("MWF".equals(type)) {
-                    String d = (String) weekDayItems.get(i).get("dayOfWeek");
-                    if (d != null) {
-                        int dayOfWeek = Integer.parseInt(d);
-                        if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                eventInWeekItems.get(i).get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                allDayEventInWeekItems.get(i)
-                                        .add(
-                                                createEvent(eventSchedule,
-                                                        false, false));
-                            }
-                        }
-                    }
-                } else if ("TT".equals(type)) {
-                    String d = (String) weekDayItems.get(i).get("dayOfWeek");
-                    if (d != null) {
-                        int dayOfWeek = Integer.parseInt(d);
-                        if (dayOfWeek == 3 || dayOfWeek == 5) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                eventInWeekItems.get(i).get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                allDayEventInWeekItems.get(i)
-                                        .add(
-                                                createEvent(eventSchedule,
-                                                        false, false));
-                            }
-                        }
-                    }
-                } else if ("WEEKLY".equals(type)) {
-                    String d = (String) weekDayItems.get(i).get("dayOfWeek");
-                    if (d != null) {
-                        int dayOfWeek = Integer.parseInt(d);
-                        if (dayOfWeek == DateUtil.getDay(startDate) + 1) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                eventInWeekItems.get(i).get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                allDayEventInWeekItems.get(i)
-                                        .add(
-                                                createEvent(eventSchedule,
-                                                        false, false));
-                            }
-                        }
-                    }
-                } else if ("MONTHLY".equals(type)) {
-                    String d = (String) weekDayItems.get(i).get("date");
-                    if (d != null) {
-                        int date = Integer.parseInt(d);
-                        if (date == sDate) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                eventInWeekItems.get(i).get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                allDayEventInWeekItems.get(i)
-                                        .add(
-                                                createEvent(eventSchedule,
-                                                        false, false));
-                            }
-                        }
-                    }
-                } else if ("YEARLY".equals(type)) {
-                    String d = (String) weekDayItems.get(i).get("date");
-                    String m = (String) weekDayItems.get(i).get("month");
-                    if (d != null && m != null) {
-                        int date = Integer.parseInt(d);
-                        int month = Integer.parseInt(m);
-                        if (date == sDate && month == sMonth) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                eventInWeekItems.get(i).get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                allDayEventInWeekItems.get(i)
-                                        .add(
-                                                createEvent(eventSchedule,
-                                                        false, false));
-                            }
-                        }
-                    }
-                }
-            }
-
-        }
-
         return "personalweek.jsp";
     }
 
     private String displayPersonalMonth() {
-        createSideCalendar();
+        Calendar cal = calendarForm.getTargetCalendar();
+        calendarDayItems = SchedulerUtil.createSideCalendar(cal);
 
         Map<String, Integer> indexMap = new HashMap<String, Integer>(50);
         int count = 0;
@@ -600,7 +201,6 @@
             count++;
         }
 
-        Calendar cal = calendarForm.getTargetCalendar();
         Calendar startCal = CalendarUtil.getFirstCalendarInMonth(cal);
         int firstYear = CalendarUtil.getYear(startCal);
         int firstMonth = CalendarUtil.getMonth(startCal) + 1;
@@ -618,270 +218,137 @@
         List<EventScheduleMapping> ssmList = onetimeScheduleService
                 .getPersonalScheduleMappingList(userId, startCal.getTime(),
                         endCal.getTime());
-        for (EventScheduleMapping ssm : ssmList) {
-            EventSchedule eventSchedule = ssm.getEventSchedule();
-            Date startDate = eventSchedule.getStartDate();
-            int sYear = DateUtil.getYear(startDate) + 1900;
-            int sMonth = DateUtil.getMonth(startDate) + 1;
-            int sDate = DateUtil.getDate(startDate);
-            Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate);
-            if (sIndex == null) {
-                sIndex = Integer.valueOf(firstDateIndex - 1);
-            }
+        SchedulerUtil.createPersonalMonthForOnetime(firstDateIndex,
+                endDateIndex, indexMap, ssmList, calendarDayItems);
 
-            Date endDate = eventSchedule.getEndDate();
-            int eYear = DateUtil.getYear(endDate) + 1900;
-            int eMonth = DateUtil.getMonth(endDate) + 1;
-            int eDate = DateUtil.getDate(endDate);
-            Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate);
-            if (eIndex == null) {
-                eIndex = Integer.valueOf(endDateIndex);
-            }
+        List<EventScheduleMapping> rsmList = repeatScheduleService
+                .getPersonalScheduleMappingList(userId, startCal.getTime(),
+                        endCal.getTime());
+        SchedulerUtil.createPersonalMonthForRepeat(firstDateIndex,
+                endDateIndex, indexMap, rsmList, calendarDayItems);
 
-            int startIdx = sIndex.intValue();
-            if (startIdx < firstDateIndex) {
-                startIdx = firstDateIndex;
+        return "personalmonth.jsp";
+    }
+
+    private String displayGroupWeek() {
+        Calendar cal = calendarForm.getTargetCalendar();
+        calendarDayItems = SchedulerUtil.createSideCalendar(cal);
+
+        String userId = request.getRemoteUser();
+        UserInfo userInfo = userInfoService.getUserInfo(userId);
+        if (StringUtils.isEmpty(calendarForm.userGroup)) {
+            if (userInfo.getRoleId() != null) {
+                calendarForm.userGroup = SchedulerConstants.ROLE_PREFIX
+                        + userInfo.getRoleId();
+            } else if (userInfo.getGroupId() != null) {
+                calendarForm.userGroup = SchedulerConstants.GROUP_PREFIX
+                        + userInfo.getGroupId();
             }
-            int endIdx = eIndex.intValue();
-            if (endIdx > endDateIndex) {
-                endIdx = endDateIndex;
-            }
+        }
 
-            Time time = eventSchedule.getStartTime();
-            for (int i = startIdx; i < endIdx + 1; i++) {
-                if (i == sIndex.intValue() && i == eIndex.intValue()) {
-                    if (time == null) {
-                        // all day
-                        List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                .get(i).get("allDayEventItems");
-                        allDayEventInMonthItems.add(createEvent(eventSchedule,
-                                false, false));
-                    } else {
-                        int timeIndex = DateUtil.getHours(time);
-                        List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                .get(i).get("eventItems");
-                        eventInMonthItems.get(timeIndex).add(
-                                createEvent(eventSchedule, true, true));
+        Calendar startCal = cal;
+        weekDayItems = new ArrayList<Map<String, Object>>();
+        Map<String, Integer> indexMap = new HashMap<String, Integer>(7);
+        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd(E)");// TODO i18n
+        for (int i = 0; i < 7; i++) {
+            int year = CalendarUtil.getYear(cal);
+            int month = CalendarUtil.getMonth(cal) + 1;
+            int date = CalendarUtil.getDate(cal);
+
+            Map<String, Object> map = new HashMap<String, Object>();
+            map.put("displayedDate", sdf.format(cal.getTime()));
+            map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal)));
+            map.put("date", String.valueOf(date));
+            map.put("month", String.valueOf(month));
+            map.put("year", String.valueOf(year));
+            weekDayItems.add(map);
+            cal = CalendarUtil.getNext(cal);
+
+            indexMap.put(year + "-" + month + "-" + date, i);
+        }
+        Calendar endCal = cal;
+
+        List<UserInfo> groupMemberList = new ArrayList<UserInfo>();
+        groupMemberList.add(userInfo);
+        if (!StringUtils.isEmpty(calendarForm.userGroup)) {
+            if (calendarForm.userGroup
+                    .startsWith(SchedulerConstants.ROLE_PREFIX)) {
+                String roleId = calendarForm.userGroup
+                        .substring(SchedulerConstants.ROLE_PREFIX.length());
+                List<RoleMapping> roleMappingList = userInfoService
+                        .getUserInfoListByRole(roleId);
+                for (RoleMapping roleMapping : roleMappingList) {
+                    if (!userId.equals(roleMapping.getUserId())) {
+                        groupMemberList.add(roleMapping.getUserInfo());
                     }
-                } else if (i == sIndex.intValue() && i != eIndex.intValue()) {
-                    if (time == null) {
-                        List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                .get(i).get("allDayEventItems");
-                        allDayEventInMonthItems.add(createEvent(eventSchedule,
-                                false, false));
-                    } else {
-                        int timeIndex = DateUtil.getHours(time);
-                        List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                .get(i).get("eventItems");
-                        eventInMonthItems.get(timeIndex).add(
-                                createEvent(eventSchedule, true, false));
+                }
+            } else if (calendarForm.userGroup
+                    .startsWith(SchedulerConstants.GROUP_PREFIX)) {
+                String groupId = calendarForm.userGroup
+                        .substring(SchedulerConstants.GROUP_PREFIX.length());
+                List<GroupMapping> groupMappingList = userInfoService
+                        .getUserInfoListByGroup(groupId);
+                for (GroupMapping groupMapping : groupMappingList) {
+                    if (!userId.equals(groupMapping.getUserId())) {
+                        groupMemberList.add(groupMapping.getUserInfo());
                     }
-                } else if (i != sIndex.intValue() && i == eIndex.intValue()) {
-                    if (eventSchedule.getEndTime() == null) {
-                        List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                .get(i).get("allDayEventItems");
-                        allDayEventInMonthItems.add(createEvent(eventSchedule,
-                                false, false));
-                    } else {
-                        int timeIndex = DateUtil.getHours(eventSchedule
-                                .getEndTime()) - 1;
-                        if (timeIndex < 0) {
-                            timeIndex = 0;
-                        }
-                        List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                .get(i).get("eventItems");
-                        eventInMonthItems.get(timeIndex).add(
-                                createEvent(eventSchedule, false, true));
-                    }
-                } else if (i != sIndex.intValue() && i != eIndex.intValue()) {
-                    // all day
-                    List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                            .get(i).get("allDayEventItems");
-                    allDayEventInMonthItems.add(createEvent(eventSchedule,
-                            false, false));
                 }
             }
         }
 
-        List<EventScheduleMapping> rsmList = repeatScheduleService
-                .getPersonalScheduleMappingList(userId, startCal.getTime(),
-                        endCal.getTime());
-        for (EventScheduleMapping rsm : rsmList) {
-            EventSchedule eventSchedule = rsm.getEventSchedule();
-            Date startDate = eventSchedule.getStartDate();
-            int sYear = DateUtil.getYear(startDate) + 1900;
-            int sMonth = DateUtil.getMonth(startDate) + 1;
-            int sDate = DateUtil.getDate(startDate);
-            Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate);
-            if (sIndex == null) {
-                sIndex = Integer.valueOf(firstDateIndex);
-            }
+        groupMemberInWeekItems = new ArrayList<Map<String, Object>>();
+        for (UserInfo member : groupMemberList) {
+            groupMemberInWeekItems.add(createWeekScheduleMap(member, indexMap,
+                    startCal, endCal));
+        }
 
-            Date endDate = eventSchedule.getEndDate();
-            Integer eIndex;
-            if (endDate != null) {
-                int eYear = DateUtil.getYear(endDate) + 1900;
-                int eMonth = DateUtil.getMonth(endDate) + 1;
-                int eDate = DateUtil.getDate(endDate);
-                eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate);
-                if (eIndex == null) {
-                    eIndex = Integer.valueOf(endDateIndex);
-                }
-            } else {
-                eIndex = Integer.valueOf(endDateIndex);
+        return "groupweek.jsp";
+    }
+
+    private Map<String, Object> createWeekScheduleMap(UserInfo userInfo,
+            Map<String, Integer> indexMap, Calendar startCal, Calendar endCal) {
+        Map<String, Object> memberMap = new HashMap<String, Object>();
+
+        memberMap.put("userInfo", userInfo);
+
+        List<List<List<Map<String, Object>>>> eventInWeekItems = new ArrayList<List<List<Map<String, Object>>>>(
+                7);
+        List<List<Map<String, Object>>> allDayEventInWeekItems = new ArrayList<List<Map<String, Object>>>(
+                7);
+        for (int i = 0; i < 7; i++) {
+            List<List<Map<String, Object>>> eventInDayItems = new ArrayList<List<Map<String, Object>>>(
+                    24);
+            for (int j = 0; j < 24; j++) {
+                eventInDayItems.add(new ArrayList<Map<String, Object>>());
             }
+            eventInWeekItems.add(eventInDayItems);
 
-            Time time = eventSchedule.getStartTime();
-            for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) {
-                String type = eventSchedule.getType();
-                if ("MTWTFSS".equals(type)) {
-                    if (time != null) {
-                        int timeIndex = DateUtil.getHours(time);
-                        List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                .get(i).get("eventItems");
-                        eventInMonthItems.get(timeIndex).add(
-                                createEvent(eventSchedule, true, true));
-                    } else {
-                        // all day
-                        List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                .get(i).get("allDayEventItems");
-                        allDayEventInMonthItems.add(createEvent(eventSchedule,
-                                false, false));
-                    }
-                } else if ("MTWTF".equals(type)) {
-                    String d = (String) calendarDayItems.get(i)
-                            .get("dayOfWeek");
-                    if (d != null) {
-                        int dayOfWeek = Integer.parseInt(d);
-                        if (dayOfWeek > 1 && dayOfWeek < 7) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                        .get(i).get("eventItems");
-                                eventInMonthItems.get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                        .get(i).get("allDayEventItems");
-                                allDayEventInMonthItems.add(createEvent(
-                                        eventSchedule, false, false));
-                            }
-                        }
-                    }
-                } else if ("MWF".equals(type)) {
-                    String d = (String) calendarDayItems.get(i)
-                            .get("dayOfWeek");
-                    if (d != null) {
-                        int dayOfWeek = Integer.parseInt(d);
-                        if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                        .get(i).get("eventItems");
-                                eventInMonthItems.get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                        .get(i).get("allDayEventItems");
-                                allDayEventInMonthItems.add(createEvent(
-                                        eventSchedule, false, false));
-                            }
-                        }
-                    }
-                } else if ("TT".equals(type)) {
-                    String d = (String) calendarDayItems.get(i)
-                            .get("dayOfWeek");
-                    if (d != null) {
-                        int dayOfWeek = Integer.parseInt(d);
-                        if (dayOfWeek == 3 || dayOfWeek == 5) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                        .get(i).get("eventItems");
-                                eventInMonthItems.get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                        .get(i).get("allDayEventItems");
-                                allDayEventInMonthItems.add(createEvent(
-                                        eventSchedule, false, false));
-                            }
-                        }
-                    }
-                } else if ("WEEKLY".equals(type)) {
-                    String d = (String) calendarDayItems.get(i)
-                            .get("dayOfWeek");
-                    if (d != null) {
-                        int dayOfWeek = Integer.parseInt(d);
-                        if (dayOfWeek == DateUtil.getDay(startDate) + 1) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                        .get(i).get("eventItems");
-                                eventInMonthItems.get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                        .get(i).get("allDayEventItems");
-                                allDayEventInMonthItems.add(createEvent(
-                                        eventSchedule, false, false));
-                            }
-                        }
-                    }
-                } else if ("MONTHLY".equals(type)) {
-                    String d = (String) calendarDayItems.get(i).get(
-                            "dayOfMonth");
-                    if (d != null) {
-                        int date = Integer.parseInt(d);
-                        if (date == sDate) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                        .get(i).get("eventItems");
-                                eventInMonthItems.get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                        .get(i).get("allDayEventItems");
-                                allDayEventInMonthItems.add(createEvent(
-                                        eventSchedule, false, false));
-                            }
-                        }
-                    }
-                } else if ("YEARLY".equals(type)) {
-                    String d = (String) calendarDayItems.get(i).get(
-                            "dayOfMonth");
-                    String m = (String) calendarDayItems.get(i).get("month");
-                    if (d != null && m != null) {
-                        int date = Integer.parseInt(d);
-                        int month = Integer.parseInt(m);
-                        if (date == sDate && month == sMonth) {
-                            if (time != null) {
-                                int timeIndex = DateUtil.getHours(time);
-                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
-                                        .get(i).get("eventItems");
-                                eventInMonthItems.get(timeIndex).add(
-                                        createEvent(eventSchedule, true, true));
-                            } else {
-                                // all day
-                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
-                                        .get(i).get("allDayEventItems");
-                                allDayEventInMonthItems.add(createEvent(
-                                        eventSchedule, false, false));
-                            }
-                        }
-                    }
+            allDayEventInWeekItems.add(new ArrayList<Map<String, Object>>());
+        }
+
+        List<EventScheduleMapping> ssmList = onetimeScheduleService
+                .getPersonalScheduleMappingList(userInfo.getUserId(), startCal
+                        .getTime(), endCal.getTime());
+        SchedulerUtil.createPersonalWeekForOnetime(indexMap, ssmList,
+                eventInWeekItems, allDayEventInWeekItems);
+
+        List<EventScheduleMapping> rsmList = repeatScheduleService
+                .getPersonalScheduleMappingList(userInfo.getUserId(), startCal
+                        .getTime(), endCal.getTime());
+        SchedulerUtil.createPersonalWeekForRepeat(indexMap, rsmList,
+                eventInWeekItems, allDayEventInWeekItems, weekDayItems);
+
+        for (int i = 0; i < 7; i++) {
+            for (int j = 0; j < 24; j++) {
+                if (eventInWeekItems.get(i).get(j) != null) {
+                    allDayEventInWeekItems.get(i).addAll(
+                            eventInWeekItems.get(i).get(j));
                 }
             }
-
         }
+        memberMap.put("eventInWeekItems", allDayEventInWeekItems);
 
-        return "personalmonth.jsp";
+        return memberMap;
     }
 
     @Execute(validator = false, input = "error.jsp")
@@ -905,6 +372,11 @@
         return displayPersonalMonth();
     }
 
+    @Execute(validator = true, input = "error.jsp", urlPattern = "selectgroupweek/{year}/{month}/{date}")
+    public String selectgroupweek() {
+        return displayGroupWeek();
+    }
+
     @Execute(validator = true, input = "error.jsp", urlPattern = "movepersonalmonthprevmonth/{year}/{month}/{date}")
     public String movepersonalmonthprevmonth() {
         calendarForm.changeCalendarToPrevMonth();
@@ -959,65 +431,34 @@
         return displayPersonalDay();
     }
 
-    private Map<String, Object> createCalendarDayItem(Calendar cal,
-            boolean thisMonth) {
-        Map<String, Object> map = new HashMap<String, Object>();
-        map.put("year", String.valueOf(CalendarUtil.getYear(cal)));
-        map.put("month", String.valueOf(CalendarUtil.getMonth(cal) + 1));
-        map.put("dayOfMonth", String.valueOf(CalendarUtil.getDate(cal)));
-        map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal)));
-        map.put("thisMonth", String.valueOf(thisMonth));
-        map.put("target", "false");
-        return map;
+    @Execute(validator = true, input = "error.jsp", urlPattern = "movegroupweekprevmonth/{year}/{month}/{date}")
+    public String movegroupweekprevmonth() {
+        calendarForm.changeCalendarToPrevMonth();
+        return displayGroupWeek();
     }
 
-    private Map<String, Object> createCalendarDayItem(Calendar cal, int tYear,
-            int tMonth, int tDate, boolean thisMonth) {
-        int year = CalendarUtil.getYear(cal);
-        int month = CalendarUtil.getMonth(cal) + 1;
-        int dayOfMonth = CalendarUtil.getDate(cal);
-        int dayOfWeek = CalendarUtil.getDay(cal);
-        Map<String, Object> map = new HashMap<String, Object>();
-        map.put("year", String.valueOf(year));
-        map.put("month", String.valueOf(month));
-        map.put("dayOfMonth", String.valueOf(dayOfMonth));
-        map.put("dayOfWeek", String.valueOf(dayOfWeek));
-        map.put("thisMonth", String.valueOf(thisMonth));
-        if (year == tYear && month == tMonth && dayOfMonth == tDate) {
-            map.put("target", "true");
-        } else {
-            map.put("target", "false");
-        }
-        return map;
+    @Execute(validator = false, input = "error.jsp")
+    public String movegroupweekthismonth() {
+        calendarForm.changeCalendarToToday();
+        return displayGroupWeek();
     }
 
-    private Map<String, Object> createEvent(EventSchedule eventSchedule,
-            boolean start, boolean end) {
-        Map<String, Object> map = new HashMap<String, Object>();
-        map.put("id", eventSchedule.getId().toString());
-        map.put("title", eventSchedule.getTitle());
-        if (start || end) {
-            StringBuilder buf = new StringBuilder();
-            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); // TODO i18n
-            if (start && eventSchedule.getStartTime() != null) {
-                buf.append(sdf.format(eventSchedule.getStartTime()));
-            }
-            buf.append("-");
-            if (end && eventSchedule.getEndTime() != null) {
-                buf.append(sdf.format(eventSchedule.getEndTime()));
-            }
-            map.put("time", buf.toString());
-        }
-        if (SchedulerConstants.ONETIME_SCHEDULE.equals(eventSchedule.getType())) {
-            map.put("repeat", "false");
-        } else {
-            map.put("repeat", "true");
-            map.put("type", ((EventSchedule) eventSchedule).getType());
-        }
+    @Execute(validator = true, input = "error.jsp", urlPattern = "movegroupweeknextmonth/{year}/{month}/{date}")
+    public String movegroupweeknextmonth() {
+        calendarForm.changeCalendarToNextMonth();
+        return displayGroupWeek();
+    }
 
-        return map;
+    @Execute(validator = false, input = "error.jsp")
+    public String changeusergroup() {
+        return displayGroupWeek();
     }
 
+    public List<Map<String, String>> getUserGroupItems() {
+        String userId = request.getRemoteUser();
+        return userInfoService.getUserGroupList(userId);
+    }
+
     public CalendarForm getCalendarForm() {
         return calendarForm;
     }
@@ -1052,4 +493,12 @@
         this.request = request;
     }
 
+    public UserInfoService getUserInfoService() {
+        return userInfoService;
+    }
+
+    public void setUserInfoService(UserInfoService userInfoService) {
+        this.userInfoService = userInfoService;
+    }
+
 }

Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java
===================================================================
--- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java	2008-11-21 08:04:12 UTC (rev 1391)
@@ -45,6 +45,8 @@
 
     // for edit/confirm/delete
 
+    public boolean editable;
+
     @ActionForm
     private OnetimeScheduleForm onetimeScheduleForm;
 
@@ -110,14 +112,16 @@
         // reset edit page
         loadListPageParameters();
 
-        return "/user/calendar/" + onetimeScheduleForm.returnType + "/"
-                + onetimeScheduleForm.year + "/" + onetimeScheduleForm.month
-                + "/" + onetimeScheduleForm.date + "?redirect=true";
+        return "/user/schedule/calendar/" + onetimeScheduleForm.returnType
+                + "/" + onetimeScheduleForm.year + "/"
+                + onetimeScheduleForm.month + "/" + onetimeScheduleForm.date
+                + "?redirect=true";
         // return displayList();
     }
 
     @Execute(validator = false, input = "error.jsp")
     public String editagain() {
+        editable = true;
         return "edit.jsp";
     }
 
@@ -140,6 +144,18 @@
         return "confirm.jsp";
     }
 
+    @Execute(validator = false, input = "error.jsp")
+    public String confirmpagefromdelete() {
+        onetimeScheduleForm.mode = CommonConstants.CONFIRM_MODE;
+
+        // update edit page
+        loadDetailsPageParameters();
+
+        loadEventSchedule();
+
+        return "confirm.jsp";
+    }
+
     @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}")
     public String createpage() {
         // page navi
@@ -187,6 +203,7 @@
 
     @Execute(validator = true, input = "edit.jsp")
     public String confirm() {
+        editable = true;
         return "confirm.jsp";
     }
 
@@ -280,8 +297,8 @@
             // reset edit page
             loadListPageParameters();
 
-            return "/user/calendar/" + onetimeScheduleForm.returnType + "/"
-                    + onetimeScheduleForm.year + "/"
+            return "/user/schedule/calendar/" + onetimeScheduleForm.returnType
+                    + "/" + onetimeScheduleForm.year + "/"
                     + onetimeScheduleForm.month + "/"
                     + onetimeScheduleForm.date + "?redirect=true";
             // return displayList();
@@ -327,6 +344,7 @@
 
     @Execute(validator = false, input = "error.jsp")
     public String setusers() {
+        editable = true;
         return "edit.jsp";
     }
 
@@ -402,6 +420,7 @@
 
     @Execute(validator = false, input = "error.jsp")
     public String setfacilities() {
+        editable = true;
         return "edit.jsp";
     }
 
@@ -462,7 +481,15 @@
         onetimeScheduleDxo.convertFromEventScheduleToForm(eventSchedule,
                 onetimeScheduleForm);
 
-        onetimeScheduleForm.selectedUsers = eventSchedule.getSelectedUsers();
+        String userId = request.getRemoteUser();
+        editable = false;
+        if (userId != null) {
+            for (String uid : onetimeScheduleForm.selectedUsers) {
+                if (userId.equals(uid)) {
+                    editable = true;
+                }
+            }
+        }
     }
 
     private EventSchedule createEventSchedule() {

Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java
===================================================================
--- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java	2008-11-21 08:04:12 UTC (rev 1391)
@@ -44,6 +44,7 @@
     public List<EventSchedule> eventScheduleItems;
 
     // for edit/confirm/delete
+    public boolean editable;
 
     @ActionForm
     private RepeatScheduleForm repeatScheduleForm;
@@ -110,7 +111,7 @@
         // reset edit page
         loadListPageParameters();
 
-        return "/user/calendar/" + repeatScheduleForm.returnType + "/"
+        return "/user/schedule/calendar/" + repeatScheduleForm.returnType + "/"
                 + repeatScheduleForm.year + "/" + repeatScheduleForm.month
                 + "/" + repeatScheduleForm.date + "?redirect=true";
         // return displayList();
@@ -118,6 +119,7 @@
 
     @Execute(validator = false, input = "error.jsp")
     public String editagain() {
+        editable = true;
         return "edit.jsp";
     }
 
@@ -140,6 +142,18 @@
         return "confirm.jsp";
     }
 
+    @Execute(validator = false, input = "error.jsp")
+    public String confirmpagefromdelete() {
+        repeatScheduleForm.mode = CommonConstants.CONFIRM_MODE;
+
+        // update edit page
+        loadDetailsPageParameters();
+
+        loadEventSchedule();
+
+        return "confirm.jsp";
+    }
+
     @Execute(validator = false, input = "error.jsp", urlPattern = "createpage/{returnType}/{year}/{month}/{date}")
     public String createpage() {
         // page navi
@@ -187,6 +201,7 @@
 
     @Execute(validator = true, input = "edit.jsp")
     public String confirm() {
+        editable = true;
         return "confirm.jsp";
     }
 
@@ -280,9 +295,10 @@
             // reset edit page
             loadListPageParameters();
 
-            return "/user/calendar/" + repeatScheduleForm.returnType + "/"
-                    + repeatScheduleForm.year + "/" + repeatScheduleForm.month
-                    + "/" + repeatScheduleForm.date + "?redirect=true";
+            return "/user/schedule/calendar/" + repeatScheduleForm.returnType
+                    + "/" + repeatScheduleForm.year + "/"
+                    + repeatScheduleForm.month + "/" + repeatScheduleForm.date
+                    + "?redirect=true";
             // return displayList();
         } catch (ActionMessagesException e) {
             log.error(e.getMessage(), e);
@@ -324,6 +340,7 @@
 
     @Execute(validator = false, input = "error.jsp")
     public String setusers() {
+        editable = true;
         return "edit.jsp";
     }
 
@@ -399,6 +416,7 @@
 
     @Execute(validator = false, input = "error.jsp")
     public String setfacilities() {
+        editable = true;
         return "edit.jsp";
     }
 
@@ -459,7 +477,15 @@
         repeatScheduleDxo.convertFromEventScheduleToForm(eventSchedule,
                 repeatScheduleForm);
 
-        repeatScheduleForm.selectedUsers = eventSchedule.getSelectedUsers();
+        String userId = request.getRemoteUser();
+        editable = false;
+        if (userId != null) {
+            for (String uid : repeatScheduleForm.selectedUsers) {
+                if (userId.equals(uid)) {
+                    editable = true;
+                }
+            }
+        }
     }
 
     private EventSchedule createEventSchedule() {

Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java
===================================================================
--- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/form/user/schedule/CalendarForm.java	2008-11-21 08:04:12 UTC (rev 1391)
@@ -23,6 +23,8 @@
     @IntegerType
     public String date;
 
+    public String userGroup;
+
     public Calendar getTargetCalendar() {
         if (!StringUtils.isEmpty(year) && !StringUtils.isEmpty(month)
                 && !StringUtils.isEmpty(date)) {

Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java
===================================================================
--- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/service/UserInfoService.java	2008-11-21 08:04:12 UTC (rev 1391)
@@ -46,6 +46,55 @@
         }
     }
 
+    public UserInfo getUserInfo(String userId) {
+        UserInfoCB cb = new UserInfoCB();
+
+        // setup
+
+        cb.query().setDeletedBy_IsNull();
+        cb.query().setUserId_Equal(userId);
+        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 List<RoleMapping> getUserInfoListByRole(String roleId) {
+        RoleMappingCB cb = new RoleMappingCB();
+
+        // setup
+        cb.setupSelect_UserInfo();
+
+        cb.query().setRoleId_Equal(roleId);
+
+        cb.query().queryUserInfo().addOrderBy_UserId_Asc();
+
+        return roleMappingBhv.selectList(cb);
+    }
+
+    public List<GroupMapping> getUserInfoListByGroup(String groupId) {
+        GroupMappingCB cb = new GroupMappingCB();
+
+        // setup
+        cb.setupSelect_UserInfo();
+
+        cb.query().setGroupId_Equal(groupId);
+
+        cb.query().queryUserInfo().addOrderBy_UserId_Asc();
+
+        return groupMappingBhv.selectList(cb);
+    }
+
     public List<UserInfo> getAvailableUserList(String roleId, String groupId,
             String[] selectedUsers, String userId) {
         if (roleId == null && groupId == null) {

Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java
===================================================================
--- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java	2008-11-21 08:04:12 UTC (rev 1391)
@@ -1,5 +1,803 @@
 package jp.sf.pal.scheduler.util;
 
+import java.sql.Time;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import jp.sf.pal.scheduler.SchedulerConstants;
+import jp.sf.pal.scheduler.common.util.CalendarUtil;
+import jp.sf.pal.scheduler.common.util.DateUtil;
+import jp.sf.pal.scheduler.db.exentity.EventSchedule;
+import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping;
+
 public class SchedulerUtil {
+    public static List<Map<String, Object>> createSideCalendar(
+            Calendar targetCalendar) {
+        List<Map<String, Object>> calendarDayItems = new LinkedList<Map<String, Object>>();
+        int targetYear = CalendarUtil.getYear(targetCalendar);
+        int targetMonth = CalendarUtil.getMonth(targetCalendar) + 1;
+        int targetDate = CalendarUtil.getDate(targetCalendar);
 
+        // create a previous month
+        Calendar cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar);
+        int count = CalendarUtil.getDay(cal) - 1;
+        while (count > 0) {
+            cal = CalendarUtil.getPrev(cal);
+            calendarDayItems.add(0, createCalendarDayItem(cal, false));
+            count--;
+        }
+
+        // create this month
+        cal = CalendarUtil.getFirstCalendarInMonth(targetCalendar);
+        int lastDayOfMonth = CalendarUtil.getDate(CalendarUtil
+                .getLastCalendarInMonth(targetCalendar));
+        for (int i = 0; i < lastDayOfMonth; i++) {
+            calendarDayItems.add(createCalendarDayItem(cal, targetYear,
+                    targetMonth, targetDate, true));
+            cal = CalendarUtil.getNext(cal);
+        }
+
+        // create a next month
+        count = CalendarUtil.getDay(cal);
+        while (count != 1) {
+            calendarDayItems.add(createCalendarDayItem(cal, false));
+            cal = CalendarUtil.getNext(cal);
+            count = CalendarUtil.getDay(cal);
+        }
+        return calendarDayItems;
+    }
+
+    public static Map<String, Object> createCalendarDayItem(Calendar cal,
+            boolean thisMonth) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("year", String.valueOf(CalendarUtil.getYear(cal)));
+        map.put("month", String.valueOf(CalendarUtil.getMonth(cal) + 1));
+        map.put("dayOfMonth", String.valueOf(CalendarUtil.getDate(cal)));
+        map.put("dayOfWeek", String.valueOf(CalendarUtil.getDay(cal)));
+        map.put("thisMonth", String.valueOf(thisMonth));
+        map.put("target", "false");
+        return map;
+    }
+
+    public static Map<String, Object> createCalendarDayItem(Calendar cal,
+            int tYear, int tMonth, int tDate, boolean thisMonth) {
+        int year = CalendarUtil.getYear(cal);
+        int month = CalendarUtil.getMonth(cal) + 1;
+        int dayOfMonth = CalendarUtil.getDate(cal);
+        int dayOfWeek = CalendarUtil.getDay(cal);
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("year", String.valueOf(year));
+        map.put("month", String.valueOf(month));
+        map.put("dayOfMonth", String.valueOf(dayOfMonth));
+        map.put("dayOfWeek", String.valueOf(dayOfWeek));
+        map.put("thisMonth", String.valueOf(thisMonth));
+        if (year == tYear && month == tMonth && dayOfMonth == tDate) {
+            map.put("target", "true");
+        } else {
+            map.put("target", "false");
+        }
+        return map;
+    }
+
+    public static boolean compare(int year1, int month1, int date1, int year2,
+            int month2, int date2) {
+        if (year1 == year2 && month1 == month2 && date1 == date2) {
+            return true;
+        }
+        return false;
+    }
+
+    public static Map<String, Object> createEmptyEvent() {
+        Map<String, Object> emptyEvent = new HashMap<String, Object>();
+        emptyEvent.put("startEvent", "true");
+        emptyEvent.put("cols", "1");
+        emptyEvent.put("rows", "1");
+        emptyEvent.put("time", "none");
+        return emptyEvent;
+    }
+
+    public static void putEventSchedule(EventSchedule eventSchedule,
+            Time startTime, Time endTime,
+            List<List<Map<String, Object>>> eventInDayItems,
+            List<Map<String, Object>> allDayEventInDayItems) {
+        if (startTime != null && endTime != null) {
+            int sIdx = DateUtil.getHours(startTime);
+            int eIdx = DateUtil.getHours(endTime) - 1;
+            if (DateUtil.getMinutes(endTime) != 0) {
+                eIdx++;
+            }
+            if (eIdx > 23) {
+                eIdx = 23;
+            }
+            for (int i = sIdx; i <= eIdx; i++) {
+                Map<String, Object> eventMap = createEvent(eventSchedule, true,
+                        true);
+                if (i == sIdx) {
+                    eventMap.put("startEvent", "true");
+                    int size = eIdx - sIdx + 1;
+                    eventMap.put("rows", String.valueOf(size));
+                    eventMap.put("lastEvent", "true");
+                } else {
+                    eventMap.put("startEvent", "false");
+                }
+                eventMap.put("cols", "1");
+                eventInDayItems.get(i).add(eventMap);
+            }
+        } else if (startTime != null && endTime == null) {
+            int sIdx = DateUtil.getHours(startTime);
+            for (int i = sIdx; i <= 23; i++) {
+                Map<String, Object> eventMap = createEvent(eventSchedule, true,
+                        false);
+                if (i == sIdx) {
+                    eventMap.put("startEvent", "true");
+                    int size = 23 - sIdx + 1;
+                    eventMap.put("rows", String.valueOf(size));
+                    eventMap.put("lastEvent", "true");
+                } else {
+                    eventMap.put("startEvent", "false");
+                }
+                eventMap.put("cols", "1");
+                eventInDayItems.get(i).add(eventMap);
+            }
+        } else if (startTime == null && endTime != null) {
+            int eIdx = DateUtil.getHours(endTime) - 1;
+            if (DateUtil.getMinutes(endTime) != 0) {
+                eIdx++;
+            }
+            if (eIdx > 23) {
+                eIdx = 23;
+            }
+            for (int i = 0; i <= eIdx; i++) {
+                Map<String, Object> eventMap = createEvent(eventSchedule,
+                        false, true);
+                if (i == 0) {
+                    eventMap.put("startEvent", "true");
+                    int size = eIdx + 1;
+                    eventMap.put("rows", String.valueOf(size));
+                    eventMap.put("lastEvent", "true");
+                } else {
+                    eventMap.put("startEvent", "false");
+                }
+                eventMap.put("cols", "1");
+                eventInDayItems.get(i).add(eventMap);
+            }
+        } else {
+            // all day
+            allDayEventInDayItems.add(createEvent(eventSchedule, false, false));
+        }
+
+    }
+
+    public static Map<String, Object> createEvent(EventSchedule eventSchedule,
+            boolean start, boolean end) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("id", eventSchedule.getId().toString());
+        map.put("title", eventSchedule.getTitle());
+        map.put("secret", eventSchedule.getSecret());
+        if (start || end) {
+            StringBuilder buf = new StringBuilder();
+            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); // TODO i18n
+            if (start && eventSchedule.getStartTime() != null) {
+                buf.append(sdf.format(eventSchedule.getStartTime()));
+            }
+            buf.append("-");
+            if (end && eventSchedule.getEndTime() != null) {
+                buf.append(sdf.format(eventSchedule.getEndTime()));
+            }
+            map.put("time", buf.toString());
+        }
+        if (SchedulerConstants.ONETIME_SCHEDULE.equals(eventSchedule.getType())) {
+            map.put("repeat", "false");
+        } else {
+            map.put("repeat", "true");
+            map.put("type", ((EventSchedule) eventSchedule).getType());
+        }
+
+        return map;
+    }
+
+    public static void createPersonalDayForOnetime(int tYear, int tMonth,
+            int tDate, List<EventScheduleMapping> ssmList,
+            List<List<Map<String, Object>>> eventInDayItems,
+            List<Map<String, Object>> allDayEventInDayItems) {
+        for (EventScheduleMapping ssm : ssmList) {
+            EventSchedule eventSchedule = ssm.getEventSchedule();
+            Date startDate = eventSchedule.getStartDate();
+            int sYear = DateUtil.getYear(startDate) + 1900;
+            int sMonth = DateUtil.getMonth(startDate) + 1;
+            int sDate = DateUtil.getDate(startDate);
+
+            Date endDate = eventSchedule.getEndDate();
+            int eYear = DateUtil.getYear(endDate) + 1900;
+            int eMonth = DateUtil.getMonth(endDate) + 1;
+            int eDate = DateUtil.getDate(endDate);
+
+            Time startTime = eventSchedule.getStartTime();
+            Time endTime = eventSchedule.getEndTime();
+            if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate)
+                    && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) {
+                putEventSchedule(eventSchedule, startTime, endTime,
+                        eventInDayItems, allDayEventInDayItems);
+            } else if (compare(tYear, tMonth, tDate, sYear, sMonth, sDate)
+                    && !compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) {
+                putEventSchedule(eventSchedule, startTime, null,
+                        eventInDayItems, allDayEventInDayItems);
+            } else if (!compare(tYear, tMonth, tDate, sYear, sMonth, sDate)
+                    && compare(tYear, tMonth, tDate, eYear, eMonth, eDate)) {
+                putEventSchedule(eventSchedule, null, endTime, eventInDayItems,
+                        allDayEventInDayItems);
+            } else {
+                // all day
+                allDayEventInDayItems.add(createEvent(eventSchedule, false,
+                        false));
+            }
+        }
+    }
+
+    public static void createPersonalDayForRepeat(int tYear, int tMonth,
+            int tDate, int tDay, List<EventScheduleMapping> rsmList,
+            List<List<Map<String, Object>>> eventInDayItems,
+            List<Map<String, Object>> allDayEventInDayItems) {
+        for (EventScheduleMapping rsm : rsmList) {
+            EventSchedule eventSchedule = rsm.getEventSchedule();
+            Date startDate = eventSchedule.getStartDate();
+            // int sYear = DateUtil.getYear(startDate) + 1900;
+            int sMonth = DateUtil.getMonth(startDate) + 1;
+            int sDate = DateUtil.getDate(startDate);
+
+            Time startTime = eventSchedule.getStartTime();
+            Time endTime = eventSchedule.getEndTime();
+            String type = eventSchedule.getType();
+            if ("MTWTFSS".equals(type)) {
+                putEventSchedule(eventSchedule, startTime, endTime,
+                        eventInDayItems, allDayEventInDayItems);
+            } else if ("MTWTF".equals(type)) {
+                if (tDay > 1 && tDay < 7) {
+                    putEventSchedule(eventSchedule, startTime, endTime,
+                            eventInDayItems, allDayEventInDayItems);
+                }
+            } else if ("MWF".equals(type)) {
+                if (tDay == 2 || tDay == 4 || tDay == 6) {
+                    putEventSchedule(eventSchedule, startTime, endTime,
+                            eventInDayItems, allDayEventInDayItems);
+                }
+            } else if ("TT".equals(type)) {
+                if (tDay == 3 || tDay == 5) {
+                    putEventSchedule(eventSchedule, startTime, endTime,
+                            eventInDayItems, allDayEventInDayItems);
+                }
+            } else if ("WEEKLY".equals(type)) {
+                if (tDay == DateUtil.getDay(startDate) + 1) {
+                    putEventSchedule(eventSchedule, startTime, endTime,
+                            eventInDayItems, allDayEventInDayItems);
+                }
+            } else if ("MONTHLY".equals(type)) {
+                if (tDate == sDate) {
+                    putEventSchedule(eventSchedule, startTime, endTime,
+                            eventInDayItems, allDayEventInDayItems);
+                }
+            } else if ("YEARLY".equals(type)) {
+                if (tDate == sDate && tMonth == sMonth) {
+                    putEventSchedule(eventSchedule, startTime, endTime,
+                            eventInDayItems, allDayEventInDayItems);
+                }
+            }
+
+        }
+
+    }
+
+    public static void createPersonalWeekForOnetime(
+            Map<String, Integer> indexMap, List<EventScheduleMapping> ssmList,
+            List<List<List<Map<String, Object>>>> eventInWeekItems,
+            List<List<Map<String, Object>>> allDayEventInWeekItems) {
+        for (EventScheduleMapping ssm : ssmList) {
+            EventSchedule eventSchedule = ssm.getEventSchedule();
+            Date startDate = eventSchedule.getStartDate();
+            int sYear = DateUtil.getYear(startDate) + 1900;
+            int sMonth = DateUtil.getMonth(startDate) + 1;
+            int sDate = DateUtil.getDate(startDate);
+            Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate);
+            if (sIndex == null) {
+                sIndex = Integer.valueOf(-1);
+            }
+
+            Date endDate = eventSchedule.getEndDate();
+            int eYear = DateUtil.getYear(endDate) + 1900;
+            int eMonth = DateUtil.getMonth(endDate) + 1;
+            int eDate = DateUtil.getDate(endDate);
+            Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate);
+            if (eIndex == null) {
+                eIndex = Integer.valueOf(7);
+            }
+
+            int startIdx = sIndex.intValue();
+            if (startIdx < 0) {
+                startIdx = 0;
+            }
+            int endIdx = eIndex.intValue();
+            if (endIdx > 6) {
+                endIdx = 6;
+            }
+
+            Time time = eventSchedule.getStartTime();
+            for (int i = startIdx; i < endIdx + 1; i++) {
+                if (i == sIndex.intValue() && i == eIndex.intValue()) {
+                    if (time == null) {
+                        // all day
+                        allDayEventInWeekItems.get(i).add(
+                                createEvent(eventSchedule, false, false));
+                    } else {
+                        int timeIndex = DateUtil.getHours(time);
+                        eventInWeekItems.get(i).get(timeIndex).add(
+                                createEvent(eventSchedule, true, true));
+                    }
+                } else if (i == sIndex.intValue() && i != eIndex.intValue()) {
+                    if (time == null) {
+                        allDayEventInWeekItems.get(i).add(
+                                createEvent(eventSchedule, false, false));
+                    } else {
+                        int timeIndex = DateUtil.getHours(time);
+                        eventInWeekItems.get(i).get(timeIndex).add(
+                                createEvent(eventSchedule, true, false));
+                    }
+                } else if (i != sIndex.intValue() && i == eIndex.intValue()) {
+                    if (eventSchedule.getEndTime() == null) {
+                        allDayEventInWeekItems.get(i).add(
+                                createEvent(eventSchedule, false, false));
+                    } else {
+                        int timeIndex = DateUtil.getHours(eventSchedule
+                                .getEndTime()) - 1;
+                        if (timeIndex < 0) {
+                            timeIndex = 0;
+                        }
+                        eventInWeekItems.get(i).get(timeIndex).add(
+                                createEvent(eventSchedule, false, true));
+                    }
+                } else if (i != sIndex.intValue() && i != eIndex.intValue()) {
+                    // all day
+                    allDayEventInWeekItems.get(i).add(
+                            createEvent(eventSchedule, false, false));
+                }
+            }
+        }
+
+    }
+
+    public static void createPersonalWeekForRepeat(
+            Map<String, Integer> indexMap, List<EventScheduleMapping> rsmList,
+            List<List<List<Map<String, Object>>>> eventInWeekItems,
+            List<List<Map<String, Object>>> allDayEventInWeekItems,
+            List<Map<String, Object>> weekDayItems) {
+        for (EventScheduleMapping rsm : rsmList) {
+            EventSchedule eventSchedule = rsm.getEventSchedule();
+            Date startDate = eventSchedule.getStartDate();
+            int sYear = DateUtil.getYear(startDate) + 1900;
+            int sMonth = DateUtil.getMonth(startDate) + 1;
+            int sDate = DateUtil.getDate(startDate);
+            Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate);
+            if (sIndex == null) {
+                sIndex = Integer.valueOf(0);
+            }
+
+            Date endDate = eventSchedule.getEndDate();
+            Integer eIndex;
+            if (endDate != null) {
+                int eYear = DateUtil.getYear(endDate) + 1900;
+                int eMonth = DateUtil.getMonth(endDate) + 1;
+                int eDate = DateUtil.getDate(endDate);
+                eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate);
+                if (eIndex == null) {
+                    eIndex = Integer.valueOf(6);
+                }
+            } else {
+                eIndex = Integer.valueOf(6);
+            }
+
+            Time time = eventSchedule.getStartTime();
+            for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) {
+                String type = eventSchedule.getType();
+                if ("MTWTFSS".equals(type)) {
+                    if (time != null) {
+                        int timeIndex = DateUtil.getHours(time);
+                        eventInWeekItems.get(i).get(timeIndex).add(
+                                createEvent(eventSchedule, true, true));
+                    } else {
+
+                        // all day
+                        allDayEventInWeekItems.get(i).add(
+                                createEvent(eventSchedule, false, false));
+                    }
+                } else if ("MTWTF".equals(type)) {
+                    String d = (String) weekDayItems.get(i).get("dayOfWeek");
+                    if (d != null) {
+                        int dayOfWeek = Integer.parseInt(d);
+                        if (dayOfWeek > 1 && dayOfWeek < 7) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                eventInWeekItems.get(i).get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                allDayEventInWeekItems.get(i)
+                                        .add(
+                                                createEvent(eventSchedule,
+                                                        false, false));
+                            }
+                        }
+                    }
+                } else if ("MWF".equals(type)) {
+                    String d = (String) weekDayItems.get(i).get("dayOfWeek");
+                    if (d != null) {
+                        int dayOfWeek = Integer.parseInt(d);
+                        if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                eventInWeekItems.get(i).get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                allDayEventInWeekItems.get(i)
+                                        .add(
+                                                createEvent(eventSchedule,
+                                                        false, false));
+                            }
+                        }
+                    }
+                } else if ("TT".equals(type)) {
+                    String d = (String) weekDayItems.get(i).get("dayOfWeek");
+                    if (d != null) {
+                        int dayOfWeek = Integer.parseInt(d);
+                        if (dayOfWeek == 3 || dayOfWeek == 5) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                eventInWeekItems.get(i).get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                allDayEventInWeekItems.get(i)
+                                        .add(
+                                                createEvent(eventSchedule,
+                                                        false, false));
+                            }
+                        }
+                    }
+                } else if ("WEEKLY".equals(type)) {
+                    String d = (String) weekDayItems.get(i).get("dayOfWeek");
+                    if (d != null) {
+                        int dayOfWeek = Integer.parseInt(d);
+                        if (dayOfWeek == DateUtil.getDay(startDate) + 1) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                eventInWeekItems.get(i).get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                allDayEventInWeekItems.get(i)
+                                        .add(
+                                                createEvent(eventSchedule,
+                                                        false, false));
+                            }
+                        }
+                    }
+                } else if ("MONTHLY".equals(type)) {
+                    String d = (String) weekDayItems.get(i).get("date");
+                    if (d != null) {
+                        int date = Integer.parseInt(d);
+                        if (date == sDate) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                eventInWeekItems.get(i).get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                allDayEventInWeekItems.get(i)
+                                        .add(
+                                                createEvent(eventSchedule,
+                                                        false, false));
+                            }
+                        }
+                    }
+                } else if ("YEARLY".equals(type)) {
+                    String d = (String) weekDayItems.get(i).get("date");
+                    String m = (String) weekDayItems.get(i).get("month");
+                    if (d != null && m != null) {
+                        int date = Integer.parseInt(d);
+                        int month = Integer.parseInt(m);
+                        if (date == sDate && month == sMonth) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                eventInWeekItems.get(i).get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                allDayEventInWeekItems.get(i)
+                                        .add(
+                                                createEvent(eventSchedule,
+                                                        false, false));
+                            }
+                        }
+                    }
+                }
+            }
+
+        }
+
+    }
+
+    public static void createPersonalMonthForOnetime(int firstDateIndex,
+            int endDateIndex, Map<String, Integer> indexMap,
+            List<EventScheduleMapping> ssmList,
+            List<Map<String, Object>> calendarDayItems) {
+        for (EventScheduleMapping ssm : ssmList) {
+            EventSchedule eventSchedule = ssm.getEventSchedule();
+            Date startDate = eventSchedule.getStartDate();
+            int sYear = DateUtil.getYear(startDate) + 1900;
+            int sMonth = DateUtil.getMonth(startDate) + 1;
+            int sDate = DateUtil.getDate(startDate);
+            Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate);
+            if (sIndex == null) {
+                sIndex = Integer.valueOf(firstDateIndex - 1);
+            }
+
+            Date endDate = eventSchedule.getEndDate();
+            int eYear = DateUtil.getYear(endDate) + 1900;
+            int eMonth = DateUtil.getMonth(endDate) + 1;
+            int eDate = DateUtil.getDate(endDate);
+            Integer eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate);
+            if (eIndex == null) {
+                eIndex = Integer.valueOf(endDateIndex);
+            }
+
+            int startIdx = sIndex.intValue();
+            if (startIdx < firstDateIndex) {
+                startIdx = firstDateIndex;
+            }
+            int endIdx = eIndex.intValue();
+            if (endIdx > endDateIndex) {
+                endIdx = endDateIndex;
+            }
+
+            Time time = eventSchedule.getStartTime();
+            for (int i = startIdx; i < endIdx + 1; i++) {
+                if (i == sIndex.intValue() && i == eIndex.intValue()) {
+                    if (time == null) {
+                        // all day
+                        List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                .get(i).get("allDayEventItems");
+                        allDayEventInMonthItems.add(createEvent(eventSchedule,
+                                false, false));
+                    } else {
+                        int timeIndex = DateUtil.getHours(time);
+                        List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                .get(i).get("eventItems");
+                        eventInMonthItems.get(timeIndex).add(
+                                createEvent(eventSchedule, true, true));
+                    }
+                } else if (i == sIndex.intValue() && i != eIndex.intValue()) {
+                    if (time == null) {
+                        List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                .get(i).get("allDayEventItems");
+                        allDayEventInMonthItems.add(createEvent(eventSchedule,
+                                false, false));
+                    } else {
+                        int timeIndex = DateUtil.getHours(time);
+                        List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                .get(i).get("eventItems");
+                        eventInMonthItems.get(timeIndex).add(
+                                createEvent(eventSchedule, true, false));
+                    }
+                } else if (i != sIndex.intValue() && i == eIndex.intValue()) {
+                    if (eventSchedule.getEndTime() == null) {
+                        List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                .get(i).get("allDayEventItems");
+                        allDayEventInMonthItems.add(createEvent(eventSchedule,
+                                false, false));
+                    } else {
+                        int timeIndex = DateUtil.getHours(eventSchedule
+                                .getEndTime()) - 1;
+                        if (timeIndex < 0) {
+                            timeIndex = 0;
+                        }
+                        List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                .get(i).get("eventItems");
+                        eventInMonthItems.get(timeIndex).add(
+                                createEvent(eventSchedule, false, true));
+                    }
+                } else if (i != sIndex.intValue() && i != eIndex.intValue()) {
+                    // all day
+                    List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                            .get(i).get("allDayEventItems");
+                    allDayEventInMonthItems.add(createEvent(eventSchedule,
+                            false, false));
+                }
+            }
+        }
+    }
+
+    public static void createPersonalMonthForRepeat(int firstDateIndex,
+            int endDateIndex, Map<String, Integer> indexMap,
+            List<EventScheduleMapping> rsmList,
+            List<Map<String, Object>> calendarDayItems) {
+        for (EventScheduleMapping rsm : rsmList) {
+            EventSchedule eventSchedule = rsm.getEventSchedule();
+            Date startDate = eventSchedule.getStartDate();
+            int sYear = DateUtil.getYear(startDate) + 1900;
+            int sMonth = DateUtil.getMonth(startDate) + 1;
+            int sDate = DateUtil.getDate(startDate);
+            Integer sIndex = indexMap.get(sYear + "-" + sMonth + "-" + sDate);
+            if (sIndex == null) {
+                sIndex = Integer.valueOf(firstDateIndex);
+            }
+
+            Date endDate = eventSchedule.getEndDate();
+            Integer eIndex;
+            if (endDate != null) {
+                int eYear = DateUtil.getYear(endDate) + 1900;
+                int eMonth = DateUtil.getMonth(endDate) + 1;
+                int eDate = DateUtil.getDate(endDate);
+                eIndex = indexMap.get(eYear + "-" + eMonth + "-" + eDate);
+                if (eIndex == null) {
+                    eIndex = Integer.valueOf(endDateIndex);
+                }
+            } else {
+                eIndex = Integer.valueOf(endDateIndex);
+            }
+
+            Time time = eventSchedule.getStartTime();
+            for (int i = sIndex.intValue(); i < eIndex.intValue() + 1; i++) {
+                String type = eventSchedule.getType();
+                if ("MTWTFSS".equals(type)) {
+                    if (time != null) {
+                        int timeIndex = DateUtil.getHours(time);
+                        List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                .get(i).get("eventItems");
+                        eventInMonthItems.get(timeIndex).add(
+                                createEvent(eventSchedule, true, true));
+                    } else {
+                        // all day
+                        List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                .get(i).get("allDayEventItems");
+                        allDayEventInMonthItems.add(createEvent(eventSchedule,
+                                false, false));
+                    }
+                } else if ("MTWTF".equals(type)) {
+                    String d = (String) calendarDayItems.get(i)
+                            .get("dayOfWeek");
+                    if (d != null) {
+                        int dayOfWeek = Integer.parseInt(d);
+                        if (dayOfWeek > 1 && dayOfWeek < 7) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                        .get(i).get("eventItems");
+                                eventInMonthItems.get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                        .get(i).get("allDayEventItems");
+                                allDayEventInMonthItems.add(createEvent(
+                                        eventSchedule, false, false));
+                            }
+                        }
+                    }
+                } else if ("MWF".equals(type)) {
+                    String d = (String) calendarDayItems.get(i)
+                            .get("dayOfWeek");
+                    if (d != null) {
+                        int dayOfWeek = Integer.parseInt(d);
+                        if (dayOfWeek == 2 || dayOfWeek == 4 || dayOfWeek == 6) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                        .get(i).get("eventItems");
+                                eventInMonthItems.get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                        .get(i).get("allDayEventItems");
+                                allDayEventInMonthItems.add(createEvent(
+                                        eventSchedule, false, false));
+                            }
+                        }
+                    }
+                } else if ("TT".equals(type)) {
+                    String d = (String) calendarDayItems.get(i)
+                            .get("dayOfWeek");
+                    if (d != null) {
+                        int dayOfWeek = Integer.parseInt(d);
+                        if (dayOfWeek == 3 || dayOfWeek == 5) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                        .get(i).get("eventItems");
+                                eventInMonthItems.get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                        .get(i).get("allDayEventItems");
+                                allDayEventInMonthItems.add(createEvent(
+                                        eventSchedule, false, false));
+                            }
+                        }
+                    }
+                } else if ("WEEKLY".equals(type)) {
+                    String d = (String) calendarDayItems.get(i)
+                            .get("dayOfWeek");
+                    if (d != null) {
+                        int dayOfWeek = Integer.parseInt(d);
+                        if (dayOfWeek == DateUtil.getDay(startDate) + 1) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                        .get(i).get("eventItems");
+                                eventInMonthItems.get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                        .get(i).get("allDayEventItems");
+                                allDayEventInMonthItems.add(createEvent(
+                                        eventSchedule, false, false));
+                            }
+                        }
+                    }
+                } else if ("MONTHLY".equals(type)) {
+                    String d = (String) calendarDayItems.get(i).get(
+                            "dayOfMonth");
+                    if (d != null) {
+                        int date = Integer.parseInt(d);
+                        if (date == sDate) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                        .get(i).get("eventItems");
+                                eventInMonthItems.get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                        .get(i).get("allDayEventItems");
+                                allDayEventInMonthItems.add(createEvent(
+                                        eventSchedule, false, false));
+                            }
+                        }
+                    }
+                } else if ("YEARLY".equals(type)) {
+                    String d = (String) calendarDayItems.get(i).get(
+                            "dayOfMonth");
+                    String m = (String) calendarDayItems.get(i).get("month");
+                    if (d != null && m != null) {
+                        int date = Integer.parseInt(d);
+                        int month = Integer.parseInt(m);
+                        if (date == sDate && month == sMonth) {
+                            if (time != null) {
+                                int timeIndex = DateUtil.getHours(time);
+                                List<List<Map<String, Object>>> eventInMonthItems = (List<List<Map<String, Object>>>) calendarDayItems
+                                        .get(i).get("eventItems");
+                                eventInMonthItems.get(timeIndex).add(
+                                        createEvent(eventSchedule, true, true));
+                            } else {
+                                // all day
+                                List<Map<String, Object>> allDayEventInMonthItems = (List<Map<String, Object>>) calendarDayItems
+                                        .get(i).get("allDayEventItems");
+                                allDayEventInMonthItems.add(createEvent(
+                                        eventSchedule, false, false));
+                            }
+                        }
+                    }
+                }
+            }
+
+        }
+
+    }
 }

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/facilitylist.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -31,6 +31,7 @@
 <html:hidden property="endDate"/>
 <html:hidden property="endTime"/>
 <html:hidden property="content"/>
+<html:hidden property="secret"/>
 <html:select property="selectedUsers" multiple="true" style="display:none;">
 	<c:forEach var="u" varStatus="s" items="${selectedUserItems}">
 		<html:option value="${f:u(u.userId)}">${f:u(u.userId)}</html:option>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/onetimeSchedule/userlist.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -31,6 +31,7 @@
 <html:hidden property="endDate"/>
 <html:hidden property="endTime"/>
 <html:hidden property="content"/>
+<html:hidden property="secret"/>
 <html:select property="selectedFacilities" multiple="true" style="display:none;">
 	<c:forEach var="f" varStatus="s" items="${selectedFacilityItems}">
 		<html:option value="${f:u(f.id)}">${f:u(f.id)}</html:option>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/facilitylist.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -31,6 +31,7 @@
 <html:hidden property="endDate"/>
 <html:hidden property="endTime"/>
 <html:hidden property="content"/>
+<html:hidden property="secret"/>
 <html:select property="selectedUsers" multiple="true" style="display:none;">
 	<c:forEach var="u" varStatus="s" items="${selectedUserItems}">
 		<html:option value="${f:u(u.userId)}">${f:u(u.userId)}</html:option>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/admin/schedule/repeatSchedule/userlist.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -32,6 +32,7 @@
 <html:hidden property="endTime"/>
 <html:hidden property="content"/>
 <html:hidden property="type"/>
+<html:hidden property="secret"/>
 <html:select property="selectedFacilities" multiple="true" style="display:none;">
 	<c:forEach var="f" varStatus="s" items="${selectedFacilityItems}">
 		<html:option value="${f:u(f.id)}">${f:u(f.id)}</html:option>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalday.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -15,6 +15,8 @@
 	<li class="selectable"><s:link href="selectpersonalweek/${year}/${month}/${date}" style="text-decoration: none;">Week</s:link></li>
 	<li class="spacer"></li>
 	<li class="selectable"><s:link href="selectpersonalmonth/${year}/${month}/${date}" style="text-decoration: none;">Month</s:link></li>
+	<li class="spacer"></li>
+	<li class="selectable"><s:link href="selectgroupweek/${year}/${month}/${date}" style="text-decoration: none;">Group(Week)</s:link></li>
 	<li class="last"></li>
   </ul>
 </div>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalmonth.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -15,6 +15,8 @@
 	<li class="selectable"><s:link href="selectpersonalweek/${year}/${month}/${date}" style="text-decoration: none;">Week</s:link></li>
 	<li class="spacer"></li>
 	<li class="selected"><span>Month</span></li>
+	<li class="spacer"></li>
+	<li class="selectable"><s:link href="selectgroupweek/${year}/${month}/${date}" style="text-decoration: none;">Group(Week)</s:link></li>
 	<li class="last"></li>
   </ul>
 </div>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/calendar/personalweek.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -15,6 +15,8 @@
 	<li class="selected"><span>Week</span></li>
 	<li class="spacer"></li>
 	<li class="selectable"><s:link href="selectpersonalmonth/${year}/${month}/${date}" style="text-decoration: none;">Month</s:link></li>
+	<li class="spacer"></li>
+	<li class="selectable"><s:link href="selectgroupweek/${year}/${month}/${date}" style="text-decoration: none;">Group(Week)</s:link></li>
 	<li class="last"></li>
   </ul>
 </div>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/confirm.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -115,6 +115,7 @@
 					</td>
 				</tr>
 			</tbody>
+<c:if test="${editable}">
 			<tfoot>
 				<tr>
 					<td colspan="2">
@@ -128,7 +129,7 @@
         </c:if>
         <c:if test="${mode == 3}">
             <input type="submit" name="delete" value="<bean:message key="labels.delete"/>"/>
-            <input type="submit" name="back" value="<bean:message key="labels.back"/>"/>
+            <input type="submit" name="confirmpagefromdelete" value="<bean:message key="labels.back"/>"/>
         </c:if>
         <c:if test="${mode == 4}">
             <!-- input type="submit" name="back" value="<bean:message key="labels.back"/>"/ -->
@@ -138,6 +139,7 @@
 					</td>
 				</tr>
 			</tfoot>
+</c:if>
 		</table>
 		</div>
 	</s:form>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/facilitylist.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -39,6 +39,7 @@
 <html:hidden property="endDate"/>
 <html:hidden property="endTime"/>
 <html:hidden property="content"/>
+<html:hidden property="secret"/>
 <html:select property="selectedUsers" multiple="true" style="display:none;">
 	<c:forEach var="u" varStatus="s" items="${selectedUserItems}">
 		<html:option value="${f:u(u.userId)}">${f:u(u.userId)}</html:option>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/onetimeSchedule/userlist.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -39,6 +39,7 @@
 <html:hidden property="endDate"/>
 <html:hidden property="endTime"/>
 <html:hidden property="content"/>
+<html:hidden property="secret"/>
 <html:select property="selectedFacilities" multiple="true" style="display:none;">
 	<c:forEach var="f" varStatus="s" items="${selectedFacilityItems}">
 		<html:option value="${f:u(f.id)}">${f:u(u.id)}</html:option>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/confirm.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -128,6 +128,7 @@
 					</td>
 				</tr>
 			</tbody>
+<c:if test="${editable}">
 			<tfoot>
 				<tr>
 					<td colspan="2">
@@ -141,7 +142,7 @@
         </c:if>
         <c:if test="${mode == 3}">
             <input type="submit" name="delete" value="<bean:message key="labels.delete"/>"/>
-            <input type="submit" name="back" value="<bean:message key="labels.back"/>"/>
+            <input type="submit" name="confirmpagefromdelete" value="<bean:message key="labels.back"/>"/>
         </c:if>
         <c:if test="${mode == 4}">
             <!-- input type="submit" name="back" value="<bean:message key="labels.back"/>"/ -->
@@ -151,6 +152,7 @@
 					</td>
 				</tr>
 			</tfoot>
+</c:if>
 		</table>
 		</div>
 	</s:form>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/facilitylist.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -39,6 +39,7 @@
 <html:hidden property="endDate"/>
 <html:hidden property="endTime"/>
 <html:hidden property="content"/>
+<html:hidden property="secret"/>
 <html:select property="selectedUsers" multiple="true" style="display:none;">
 	<c:forEach var="u" varStatus="s" items="${selectedUserItems}">
 		<html:option value="${f:u(u.userId)}">${f:u(u.userId)}</html:option>

Modified: scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp
===================================================================
--- scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp	2008-11-21 02:50:56 UTC (rev 1390)
+++ scheduler/trunk/src/main/webapp/WEB-INF/view/user/schedule/repeatSchedule/userlist.jsp	2008-11-21 08:04:12 UTC (rev 1391)
@@ -40,6 +40,7 @@
 <html:hidden property="endTime"/>
 <html:hidden property="content"/>
 <html:hidden property="type"/>
+<html:hidden property="secret"/>
 <html:select property="selectedFacilities" multiple="true" style="display:none;">
 	<c:forEach var="f" varStatus="s" items="${selectedFacilityItems}">
 		<html:option value="${f:u(f.id)}">${f:u(u.id)}</html:option>


pal-cvs メーリングリストの案内
アーカイブの一覧に戻る