You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2014/12/22 13:19:39 UTC
svn commit: r1647298 - in /openmeetings/branches/3.0.x: ./
src/db/java/org/apache/openmeetings/db/dao/calendar/ src/main/webapp/css/
src/web/java/org/apache/openmeetings/web/pages/
src/web/java/org/apache/openmeetings/web/user/calendar/ src/web/java/or...
Author: solomax
Date: Mon Dec 22 12:19:39 2014
New Revision: 1647298
URL: http://svn.apache.org/r1647298
Log:
[OPENMEETINGS-1126, OPENMEETINGS-1131, OPENMEETINGS-1139] LocalDateTime is used to create/update/display appointments, timezone issues should be fixed
Added:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/CalendarHelper.java
Modified:
openmeetings/branches/3.0.x/ivy.xml
openmeetings/branches/3.0.x/ivysettings.xml
openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
openmeetings/branches/3.0.x/src/main/webapp/css/theme.css
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/MainPage.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/OmCalendarEvent.java
Modified: openmeetings/branches/3.0.x/ivy.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/ivy.xml?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/ivy.xml (original)
+++ openmeetings/branches/3.0.x/ivy.xml Mon Dec 22 12:19:39 2014
@@ -259,12 +259,13 @@
<dependency org="org.apache.wicket" name="wicket-native-websocket-tomcat" rev="6.18.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-core" rev="6.18.0" conf="openmeetings->*" transitive="false"/>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui" rev="6.18.0" conf="openmeetings->*" transitive="false"/>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-calendar" rev="6.18.0" conf="openmeetings->*" transitive="false"/>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-plugins" rev="6.18.0" conf="openmeetings->*" transitive="false"/>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-kendo-ui" rev="6.18.0" conf="openmeetings->*" transitive="false"/>
- <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-kendo-ui-theme-default" rev="6.18.0" conf="openmeetings->*" transitive="false"/>
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-core" rev="6.18.1-20141222.092315-2" conf="openmeetings->*" transitive="false"/>
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui" rev="6.18.1-20141222.092324-2" conf="openmeetings->*" transitive="false"/>
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-calendar" rev="6.18.1-20141222.092622-2" conf="openmeetings->*" transitive="false"/>
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-plugins" rev="6.18.1-20141222.092613-2" conf="openmeetings->*" transitive="false"/>
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-kendo-ui" rev="6.18.1-20141222.092631-2" conf="openmeetings->*" transitive="false"/>
+ <dependency org="com.googlecode.wicket-jquery-ui" name="wicket-kendo-ui-theme-default" rev="6.18.1-20141222.092718-2" conf="openmeetings->*" transitive="false"/>
+ <dependency org="org.threeten" name="threetenbp" rev="1.2" conf="openmeetings->*" transitive="false"/>
<dependency org="ro.fortsoft.wicket.dashboard" name="wicket-dashboard-core" rev="0.12.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
Modified: openmeetings/branches/3.0.x/ivysettings.xml
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/ivysettings.xml?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/ivysettings.xml (original)
+++ openmeetings/branches/3.0.x/ivysettings.xml Mon Dec 22 12:19:39 2014
@@ -38,9 +38,9 @@
<url name="smslib" m2compatible="true">
<artifact pattern="http://smslib.org/maven2/v3/[organisation]/[artifact]/[revision]/[artifact]-[revision].[ext]" />
</url>
- <!--url name="wicket-jquery-ui" m2compatible="true">
- <artifact pattern="https://oss.sonatype.org/content/repositories/snapshots/[organisation]/[artifact]/6.13.1-SNAPSHOT/[artifact]-[revision].[ext]" />
- </url-->
+ <url name="wicket-jquery-ui" m2compatible="true">
+ <artifact pattern="https://oss.sonatype.org/content/repositories/snapshots/[organisation]/[artifact]/6.18.1-SNAPSHOT/[artifact]-[revision].[ext]" />
+ </url>
</chain>
</resolvers>
<triggers>
Modified: openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java (original)
+++ openmeetings/branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java Mon Dec 22 12:19:39 2014
@@ -237,26 +237,17 @@ public class AppointmentDao {
}
public List<Appointment> getAppointmentsByRange(Long userId, Date start, Date end) {
- Calendar calstart = Calendar.getInstance();
- calstart.setTime(start);
- calstart.set(Calendar.HOUR, 0);
-
- Calendar calend = Calendar.getInstance();
- calend.setTime(end);
- calend.set(Calendar.HOUR, 23);
- calend.set(Calendar.MINUTE, 59);
-
- log.debug("Start " + calstart.getTime() + " End " + calend.getTime());
+ log.debug("Start " + start + " End " + end);
TypedQuery<Appointment> query = em.createNamedQuery("appointmentsInRange", Appointment.class);
- query.setParameter("starttime", calstart.getTime());
- query.setParameter("endtime", calend.getTime());
+ query.setParameter("starttime", start);
+ query.setParameter("endtime", end);
query.setParameter("userId", userId);
List<Appointment> listAppoints = new ArrayList<Appointment>(query.getResultList());
TypedQuery<Appointment> q1 = em.createNamedQuery("joinedAppointmentsInRange", Appointment.class);
- q1.setParameter("starttime", calstart.getTime());
- q1.setParameter("endtime", calend.getTime());
+ q1.setParameter("starttime", start);
+ q1.setParameter("endtime", end);
q1.setParameter("userId", userId);
for (Appointment a : q1.getResultList()) {
a.setConnectedEvent(true); //TODO need to be reviewed
Modified: openmeetings/branches/3.0.x/src/main/webapp/css/theme.css
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/css/theme.css?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/css/theme.css (original)
+++ openmeetings/branches/3.0.x/src/main/webapp/css/theme.css Mon Dec 22 12:19:39 2014
@@ -594,3 +594,6 @@ select.messages.selector {
.user.info.panel fieldset table, .user.info.panel fieldset table textarea {
width: 100%;
}
+.date.time.picker {
+ font-size: 12px;
+}
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/MainPage.java Mon Dec 22 12:19:39 2014
@@ -38,6 +38,7 @@ import org.apache.openmeetings.web.util.
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AjaxClientInfoBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
@@ -66,6 +67,7 @@ public class MainPage extends BaseInited
public MainPage(PageParameters pp) {
super();
+ add(new AjaxClientInfoBehavior());
contents = new WebMarkupContainer("contents");
add(contents.add(new WebMarkupContainer(CHILD_ID)).setOutputMarkupId(true).setMarkupId("contents"));
menu = new MenuPanel("menu");
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html Mon Dec 22 12:19:39 2014
@@ -29,11 +29,11 @@
</tr>
<tr>
<td><wicket:ommessage key="570" /></td>
- <td><span wicket:id="start"></span></td>
+ <td><span class="date time picker" wicket:id="start"></span></td>
</tr>
<tr>
<td><wicket:ommessage key="571" /></td>
- <td><span wicket:id="end"></span></td>
+ <td><span class="date time picker" wicket:id="end"></span></td>
</tr>
<tr>
<td><wicket:ommessage key="565" /></td>
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java Mon Dec 22 12:19:39 2014
@@ -46,13 +46,13 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.pages.MainPage;
import org.apache.openmeetings.web.user.rooms.RoomEnterBehavior;
+import org.apache.openmeetings.web.util.CalendarHelper;
import org.apache.openmeetings.web.util.FormatHelper;
import org.apache.openmeetings.web.util.RoomTypeDropDown;
import org.apache.openmeetings.web.util.UserMultiChoice;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
import org.apache.wicket.behavior.AttributeAppender;
-import org.apache.wicket.extensions.yui.calendar.DateTimeField;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import org.apache.wicket.markup.html.form.DropDownChoice;
@@ -61,12 +61,14 @@ import org.apache.wicket.markup.html.for
import org.apache.wicket.markup.html.form.RequiredTextField;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.util.CollectionModel;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
+import org.threeten.bp.LocalDateTime;
import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.toolbar.DefaultWysiwygToolbar;
@@ -76,6 +78,7 @@ import com.googlecode.wicket.jquery.ui.w
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+import com.googlecode.wicket.kendo.ui.form.datetime.local.DateTimePicker;
public class AppointmentDialog extends AbstractFormDialog<Appointment> {
private static final long serialVersionUID = 1L;
@@ -98,22 +101,24 @@ public class AppointmentDialog extends A
return 650;
}
- public void setModelObjectWithAjaxTarget(Appointment object, AjaxRequestTarget target) {
- form.setModelObject(object);
- form.setEnabled(isOwner(object));
- log.debug(" -- setModelObjectWithAjaxTarget -- Current model " + object);
- if (object.getId() != null) {
- delete.setVisible(isOwner(object), target);
- enterRoom.setVisible(object.getRoom() != null, target);
+ public void setModelObjectWithAjaxTarget(Appointment a, AjaxRequestTarget target) {
+ form.setModelObject(a);
+ form.start.setModelObject(CalendarHelper.getDate(a.getStart()));
+ form.end.setModelObject(CalendarHelper.getDate(a.getEnd()));
+ form.setEnabled(isOwner(a));
+ log.debug(" -- setModelObjectWithAjaxTarget -- Current model " + a);
+ if (a.getId() != null) {
+ delete.setVisible(isOwner(a), target);
+ enterRoom.setVisible(a.getRoom() != null, target);
} else {
delete.setVisible(false, target);
enterRoom.setVisible(false, target);
}
- save.setVisible(isOwner(object), target);
- super.setModelObject(object);
+ save.setVisible(isOwner(a), target);
+ super.setModelObject(a);
}
- public AppointmentDialog(String id, String title, CalendarPanel calendarPanel, IModel<Appointment> model) {
+ public AppointmentDialog(String id, String title, CalendarPanel calendarPanel, CompoundPropertyModel<Appointment> model) {
super(id, title, model, true);
log.debug(" -- AppointmentDialog -- Current model " + getModel().getObject());
this.calendarPanel = calendarPanel;
@@ -207,6 +212,8 @@ public class AppointmentDialog extends A
}
}
a.setMeetingMembers(attendees);
+ a.setStart(CalendarHelper.getDate(form.start.getModelObject()));
+ a.setEnd(CalendarHelper.getDate(form.end.getModelObject()));
getBean(AppointmentDao.class).update(a, getUserId());
target.add(feedback);
calendarPanel.refresh(target);
@@ -219,8 +226,8 @@ public class AppointmentDialog extends A
private class AppointmentForm extends Form<Appointment> {
private static final long serialVersionUID = 1L;
private boolean createRoom = true;
- private final DateTimeField start;
- private final DateTimeField end;
+ private DateTimePicker start = new DateTimePicker("start", Model.of(LocalDateTime.now()), "yyyy/MM/dd", "HH:mm:ss"); //FIXME use user locale
+ private DateTimePicker end = new DateTimePicker("end", Model.of(LocalDateTime.now()), "yyyy/MM/dd", "HH:mm:ss"); //FIXME use user locale
private final PasswordTextField pwd = new PasswordTextField("password");
private final Label owner = new Label("aowner", Model.of(""));
private final DropDownChoice<RoomType> roomType = new RoomTypeDropDown("room.roomtype");
@@ -274,7 +281,7 @@ public class AppointmentDialog extends A
owner.setVisible(!isOwner(a));
}
- public AppointmentForm(String id, IModel<Appointment> model) {
+ public AppointmentForm(String id, CompoundPropertyModel<Appointment> model) {
super(id, model);
setOutputMarkupId(true);
add(new AttributeAppender("class", new Model<String>("appointmentPopUp"), " "));
@@ -285,8 +292,8 @@ public class AppointmentDialog extends A
add(toolbar);
add(new WysiwygEditor("description", toolbar));
add(new TextField<String>("location"));
- add(start = new DateTimeField("start"));
- add(end = new DateTimeField("end"));
+ add(start);
+ add(end);
pwd.setEnabled(getModelObject().isPasswordProtected());
pwd.setOutputMarkupId(true);
add(pwd);
@@ -348,7 +355,7 @@ public class AppointmentDialog extends A
@Override
protected void onValidate() {
- if (end.getConvertedInput().before(start.getConvertedInput())) {
+ if (end.getConvertedInput().isBefore(start.getConvertedInput())) {
error(WebSession.getString(1592));
}
}
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java Mon Dec 22 12:19:39 2014
@@ -18,13 +18,15 @@
*/
package org.apache.openmeetings.web.user.calendar;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
import java.util.ArrayList;
import java.util.List;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.util.CalendarHelper;
import com.googlecode.wicket.jquery.ui.calendar.CalendarEvent;
import com.googlecode.wicket.jquery.ui.calendar.CalendarModel;
@@ -40,9 +42,8 @@ public class AppointmentModel extends Ca
@Override
protected List<? extends CalendarEvent> load() {
List<CalendarEvent> list = new ArrayList<CalendarEvent>();
- for (Appointment a : Application.getBean(AppointmentDao.class).getAppointmentsByRange(WebSession.getUserId(), this.getStart(), this.getEnd())) {
- CalendarEvent c = new OmCalendarEvent(a);
- list.add(c);
+ for (Appointment a : Application.getBean(AppointmentDao.class).getAppointmentsByRange(getUserId(), CalendarHelper.getDate(getStart()), CalendarHelper.getDate(getEnd()))) {
+ list.add(new OmCalendarEvent(a));
}
return list;
}
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java Mon Dec 22 12:19:39 2014
@@ -21,7 +21,6 @@ package org.apache.openmeetings.web.user
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CALENDAR_FIRST_DAY;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import static org.apache.openmeetings.web.app.Application.getBean;
-import static org.apache.openmeetings.web.app.WebSession.getClientTimeZone;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import java.util.Date;
@@ -33,6 +32,7 @@ import org.apache.openmeetings.db.dao.us
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.openmeetings.web.util.CalendarHelper;
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.json.JSONArray;
@@ -44,6 +44,9 @@ import org.apache.wicket.model.CompoundP
import org.apache.wicket.util.time.Duration;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
+import org.threeten.bp.LocalDateTime;
+import org.threeten.bp.ZonedDateTime;
+import org.threeten.bp.temporal.ChronoUnit;
import com.googlecode.wicket.jquery.core.Options;
import com.googlecode.wicket.jquery.ui.calendar.Calendar;
@@ -116,9 +119,9 @@ public class CalendarPanel extends UserP
Options options = new Options();
options.set("header", "{left: 'prevYear,prev,next,nextYear today', center: 'title', right: 'month,agendaWeek,agendaDay'}");
options.set("allDaySlot", false);
- options.set("axisFormat", "'HH(:mm)'");
+ options.set("axisFormat", Options.asString("H(:mm)"));
options.set("defaultEventMinutes", 60);
- options.set("timeFormat", "{agenda: 'HH:mm{ - HH:mm}', '': 'HH(:mm)'}");
+ options.set("timeFormat", Options.asString("H(:mm)"));
options.set("buttonText", "{month: '" + WebSession.getString(801) +
"', week: '" + WebSession.getString(800) +
@@ -188,24 +191,16 @@ public class CalendarPanel extends UserP
//no need to override onDayClick
@Override
- public void onSelect(AjaxRequestTarget target, CalendarView view, Date start, Date end, boolean allDay) {
- java.util.Calendar cStart = java.util.Calendar.getInstance(getClientTimeZone());
- cStart.setTime(start);
- target.appendJavaScript(String.format("setDatepickerDate('datepicker', new Date(%s,%s,%s));", cStart.get(java.util.Calendar.YEAR), cStart.get(java.util.Calendar.MONTH), cStart.get(java.util.Calendar.DATE)));
+ public void onSelect(AjaxRequestTarget target, CalendarView view, LocalDateTime start, LocalDateTime end, boolean allDay) {
Appointment a = getDefault();
- if (CalendarView.month == view && start.equals(end)) {
- java.util.Calendar cNow = java.util.Calendar.getInstance(getClientTimeZone());
- cStart.set(java.util.Calendar.HOUR_OF_DAY, cNow.get(java.util.Calendar.HOUR_OF_DAY));
- cStart.set(java.util.Calendar.MINUTE, cNow.get(java.util.Calendar.MINUTE));
- cStart.set(java.util.Calendar.SECOND, 0);
- cStart.set(java.util.Calendar.MILLISECOND, 0);
- a.setStart(cStart.getTime());
- cStart.add(java.util.Calendar.HOUR_OF_DAY, 1);
- a.setEnd(cStart.getTime());
- } else {
- a.setStart(start);
- a.setEnd(end);
+ LocalDateTime s = start, e = end;
+ if (CalendarView.month == view) {
+ LocalDateTime now = ZonedDateTime.now(CalendarHelper.getZoneId()).toLocalDateTime();
+ s = start.withHour(now.getHour()).withMinute(now.getMinute());
+ e = s.plus(1, ChronoUnit.HOURS);
}
+ a.setStart(CalendarHelper.getDate(s));
+ a.setEnd(CalendarHelper.getDate(e));
dialog.setModelObjectWithAjaxTarget(a, target);
dialog.open(target);
Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/OmCalendarEvent.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/OmCalendarEvent.java?rev=1647298&r1=1647297&r2=1647298&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/OmCalendarEvent.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/calendar/OmCalendarEvent.java Mon Dec 22 12:19:39 2014
@@ -18,40 +18,19 @@
*/
package org.apache.openmeetings.web.user.calendar;
-import static org.apache.openmeetings.web.app.WebSession.ISO8601_FORMAT_STRING;
-import static org.apache.openmeetings.web.app.WebSession.getCalendar;
-import static org.apache.openmeetings.web.app.WebSession.getUserTimeZone;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-
import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.web.util.CalendarHelper;
-import com.googlecode.wicket.jquery.core.Options;
import com.googlecode.wicket.jquery.ui.calendar.CalendarEvent;
public class OmCalendarEvent extends CalendarEvent {
private static final long serialVersionUID = 1L;
- private final DateFormat ISO8601;
public OmCalendarEvent(Appointment a) {
- super(a.getId().intValue(), a.getTitle(), a.getStart(), a.getEnd());
+ super(a.getId().intValue(), a.getTitle(), null);
+ setStart(CalendarHelper.getDate(a.getStart()));
+ setEnd(CalendarHelper.getDate(a.getEnd()));
setEditable(AppointmentDialog.isOwner(a));
setAllDay(false);
- ISO8601 = new SimpleDateFormat(ISO8601_FORMAT_STRING);
- ISO8601.setCalendar(getCalendar());
- ISO8601.setTimeZone(getUserTimeZone());
- }
-
- @Override
- protected Options createOptions() {
- Options o = super.createOptions();
- if (getStart() != null) {
- o.set("start", "\"" + ISO8601.format(getStart()) + "\"");
- }
- if (getEnd() != null) {
- o.set("end", "\"" + ISO8601.format(getEnd()) + "\"");
- }
- return o;
}
}
Added: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/CalendarHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/CalendarHelper.java?rev=1647298&view=auto
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/CalendarHelper.java (added)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/CalendarHelper.java Mon Dec 22 12:19:39 2014
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.web.app.WebSession.getUserTimeZone;
+
+import java.util.Date;
+
+import org.threeten.bp.Instant;
+import org.threeten.bp.LocalDate;
+import org.threeten.bp.LocalDateTime;
+import org.threeten.bp.ZoneId;
+
+public class CalendarHelper {
+ public static ZoneId getZoneId() {
+ return ZoneId.of(getUserTimeZone().getID());
+ }
+
+ public static Date getDate(LocalDate d) {
+ return getDate(d.atStartOfDay());
+ }
+
+ public static Date getDate(LocalDateTime d) {
+ return new Date(d.atZone(getZoneId()).toInstant().toEpochMilli());
+ }
+
+ public static LocalDateTime getDate(Date d) {
+ return Instant.ofEpochMilli(d.getTime()).atZone(ZoneId.of(getUserTimeZone().getID())).toLocalDateTime();
+ }
+}