Commit 0d5735188673e2253ef43a097abdd5b7ac04e632
1 parent
9d55c675
Fixed problem with calculating dates when client and server were on different time zones.
Fixed invalid rearanging causing invalid forward reference.
Showing
3 changed files
with
43 additions
and
38 deletions
... | ... | @@ -45,6 +45,37 @@ public abstract class UISchedule extends UIComponentBase implements ScheduleComm |
45 | 45 | |
46 | 46 | public static final String COMPONENT_TYPE = "org.richfaces.Schedule"; |
47 | 47 | |
48 | + /** | |
49 | + * Values of switchType attribute | |
50 | + */ | |
51 | + public static final String SWITCH_TYPE_AJAX = "ajax"; | |
52 | + | |
53 | + public static final String SWITCH_TYPE_CLIENT = "client"; | |
54 | + | |
55 | + public static final String SWITCH_TYPE_SERVER = "server"; | |
56 | + | |
57 | + public static final String VIEW_AGENDA_DAY = "agendaDay"; | |
58 | + | |
59 | + public static final String VIEW_AGENDA_WEEK = "agendaWeek"; | |
60 | + | |
61 | + public static final String VIEW_BASIC_DAY = "basicDay"; | |
62 | + | |
63 | + public static final String VIEW_BASIC_WEEK = "basicWeek"; | |
64 | + | |
65 | + /** | |
66 | + * Values of view attribute. | |
67 | + */ | |
68 | + public static final String VIEW_MONTH = "month"; | |
69 | + | |
70 | + /** | |
71 | + * Values of weekMode attribute. | |
72 | + */ | |
73 | + public static final String WEEK_MODE_FIXED = "fixed"; | |
74 | + | |
75 | + public static final String WEEK_MODE_LIQUID = "liquid"; | |
76 | + | |
77 | + public static final String WEEK_MODE_VARIABLE = "variable"; | |
78 | + | |
48 | 79 | public static final boolean DEFAULT_ALL_DAY_DEFAULT = true; |
49 | 80 | |
50 | 81 | public static final boolean DEFAULT_ALL_DAY_SLOT = true; |
... | ... | @@ -93,37 +124,6 @@ public abstract class UISchedule extends UIComponentBase implements ScheduleComm |
93 | 124 | |
94 | 125 | public static final String DEFAULT_WEEK_MODE = WEEK_MODE_FIXED; |
95 | 126 | |
96 | - /** | |
97 | - * Values of switchType attribute | |
98 | - */ | |
99 | - public static final String SWITCH_TYPE_AJAX = "ajax"; | |
100 | - | |
101 | - public static final String SWITCH_TYPE_CLIENT = "client"; | |
102 | - | |
103 | - public static final String SWITCH_TYPE_SERVER = "server"; | |
104 | - | |
105 | - public static final String VIEW_AGENDA_DAY = "agendaDay"; | |
106 | - | |
107 | - public static final String VIEW_AGENDA_WEEK = "agendaWeek"; | |
108 | - | |
109 | - public static final String VIEW_BASIC_DAY = "basicDay"; | |
110 | - | |
111 | - public static final String VIEW_BASIC_WEEK = "basicWeek"; | |
112 | - | |
113 | - /** | |
114 | - * Values of view attribute. | |
115 | - */ | |
116 | - public static final String VIEW_MONTH = "month"; | |
117 | - | |
118 | - /** | |
119 | - * Values of weekMode attribute. | |
120 | - */ | |
121 | - public static final String WEEK_MODE_FIXED = "fixed"; | |
122 | - | |
123 | - public static final String WEEK_MODE_LIQUID = "liquid"; | |
124 | - | |
125 | - public static final String WEEK_MODE_VARIABLE = "variable"; | |
126 | - | |
127 | 127 | private DataModel model; |
128 | 128 | |
129 | 129 | // -------------------------- STATIC METHODS -------------------------- | ... | ... |
... | ... | @@ -27,6 +27,9 @@ import javax.faces.component.UIComponent; |
27 | 27 | import javax.faces.context.FacesContext; |
28 | 28 | import javax.faces.context.ResponseWriter; |
29 | 29 | import java.io.IOException; |
30 | +import java.text.DateFormat; | |
31 | +import java.text.ParseException; | |
32 | +import java.text.SimpleDateFormat; | |
30 | 33 | import java.util.Calendar; |
31 | 34 | import java.util.Collections; |
32 | 35 | import java.util.Date; |
... | ... | @@ -71,6 +74,8 @@ public abstract class ScheduleRendererBase extends AjaxComponentRendererBase { |
71 | 74 | |
72 | 75 | private static final String VIEW_PARAM = "view"; |
73 | 76 | |
77 | + private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | |
78 | + | |
74 | 79 | // -------------------------- STATIC METHODS -------------------------- |
75 | 80 | |
76 | 81 | /** |
... | ... | @@ -157,8 +162,8 @@ public abstract class ScheduleRendererBase extends AjaxComponentRendererBase { |
157 | 162 | |
158 | 163 | try { |
159 | 164 | if (DATE_RANGE_CHANGE_EVENT.equals(eventTypeParam)) { |
160 | - Date startDate = new Date(Long.parseLong(startDateParam) * 1000); | |
161 | - Date endDate = new Date(Long.parseLong(endDateParam) * 1000); | |
165 | + Date startDate = DATE_FORMAT.parse(startDateParam); | |
166 | + Date endDate = DATE_FORMAT.parse(endDateParam); | |
162 | 167 | new ScheduleDateRangeChangeEvent(component, startDate, endDate).queue(); |
163 | 168 | } else if (ITEM_MOVE_EVENT.equals(eventTypeParam)) { |
164 | 169 | int dayDelta = Integer.parseInt(dayDeltaParam); |
... | ... | @@ -174,16 +179,16 @@ public abstract class ScheduleRendererBase extends AjaxComponentRendererBase { |
174 | 179 | } else if (VIEW_CHANGE_EVENT.equals(eventTypeParam)) { |
175 | 180 | new ScheduleViewChangeEvent(component, viewParam).queue(); |
176 | 181 | } else if (DATE_SELECT_EVENT.equals(eventTypeParam)) { |
177 | - Date startDate = new Date(Long.parseLong(startDateParam) * 1000); | |
182 | + Date startDate = DATE_FORMAT.parse(startDateParam); | |
178 | 183 | boolean allDay = Boolean.parseBoolean(allDayParam); |
179 | 184 | new ScheduleDateSelectEvent(component, startDate, allDay).queue(); |
180 | 185 | } else if (DATE_RANGE_SELECT_EVENT.equals(eventTypeParam)) { |
181 | - Date startDate = new Date(Long.parseLong(startDateParam) * 1000); | |
182 | - Date endDate = new Date(Long.parseLong(endDateParam) * 1000); | |
186 | + Date startDate = DATE_FORMAT.parse(startDateParam); | |
187 | + Date endDate = DATE_FORMAT.parse(endDateParam); | |
183 | 188 | boolean allDay = Boolean.parseBoolean(allDayParam); |
184 | 189 | new ScheduleDateRangeSelectEvent(component, startDate, endDate, allDay).queue(); |
185 | 190 | } |
186 | - } catch (NumberFormatException ex) { | |
191 | + } catch (ParseException ex) { | |
187 | 192 | throw new FacesException("Cannot convert request parmeters", ex); |
188 | 193 | } |
189 | 194 | } | ... | ... |
... | ... | @@ -23,7 +23,7 @@ RichFaces.Schedule = function(id, locale, options, dateRangeChangeEventName, ite |
23 | 23 | * for new Date(long) - milliseconds since epoch. |
24 | 24 | */ |
25 | 25 | var formatDateParam = function(date) { |
26 | - return Math.round(date.getTime() / 1000); | |
26 | + return jQuery.fullCalendar.formatDate(date, "yyyy-MM-dd HH:mm:ss"); | |
27 | 27 | }; |
28 | 28 | /** |
29 | 29 | * Compares two dates with with an accuracy of a day. | ... | ... |
Please
register
or
login
to post a comment