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 2012/09/19 20:15:40 UTC
svn commit: r1387699 - in
/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web:
components/user/calendar/CalendarPanel.html
components/user/calendar/CalendarPanel.java pages/MainPage.java
Author: solomax
Date: Wed Sep 19 18:15:39 2012
New Revision: 1387699
URL: http://svn.apache.org/viewvc?rev=1387699&view=rev
Log:
Wicket: events for September are displayed as expected
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html?rev=1387699&r1=1387698&r2=1387699&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.html Wed Sep 19 18:15:39 2012
@@ -21,24 +21,32 @@
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
<wicket:head>
- <link rel='stylesheet' type='text/css' href='css/fullcalendar.css' />
- <link rel='stylesheet' type='text/css' href='css/fullcalendar.print.css' media='print' />
+ <link media="screen" type="text/css" rel="stylesheet" href='css/fullcalendar.css' />
+ <!-- link media="print" type="text/css" rel="stylesheet" href='css/fullcalendar.print.css' /--> <!-- FIXME incorrectly rendered -->
</wicket:head>
<wicket:panel>
<script type="text/javascript" src="js/fullcalendar.min.js"></script>
+ <div wicket:id="calendar"></div>
+ <!-- bottom section -->
<script type="text/javascript">
+ function getCalendarHeight() {
+ return $(window).height() - $('#calendar').position().top - 20; //FIXME HACK
+ }
$(function() {
$('#calendar').fullCalendar({
header: {
- //FIXME headers
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
}
, editable: true
+ , height: getCalendarHeight()
+ });
+ $(window).resize(function() {
+ $('#calendar').data().fullCalendar.option('height', getCalendarHeight());
});
+ setEventSource();
});
</script>
- <div wicket:id="calendar"></div>
</wicket:panel>
</html>
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.java?rev=1387699&r1=1387698&r2=1387699&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/calendar/CalendarPanel.java Wed Sep 19 18:15:39 2012
@@ -18,12 +18,32 @@
*/
package org.apache.openmeetings.web.components.user.calendar;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.context;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
+import org.apache.openmeetings.data.calendar.daos.AppointmentDaoImpl;
+import org.apache.openmeetings.persistence.beans.calendar.Appointment;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.components.UserPanel;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxCallListener;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.core.util.string.JavaScriptUtils;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.request.handler.TextRequestHandler;
public class CalendarPanel extends UserPanel {
private static final long serialVersionUID = -6536379497642291437L;
-
+ public static SimpleDateFormat ISO8601FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
+
public CalendarPanel(String id) {
super(id);
setOutputMarkupId(true);
@@ -31,6 +51,61 @@ public class CalendarPanel extends UserP
calendar.setOutputMarkupId(true);
calendar.setMarkupId("calendar");
add(calendar);
- }
+ add(new AbstractDefaultAjaxBehavior() {
+ private static final long serialVersionUID = 6880514947331946407L;
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+ super.updateAjaxAttributes(attributes);
+ attributes.setDataType("json");
+ attributes.setWicketAjaxResponse(false);
+ attributes.getAjaxCallListeners().add(new AjaxCallListener() {
+ private static final long serialVersionUID = -2316088040375497938L;
+
+ public CharSequence getSuccessHandler(Component component) {
+ return "callback(data);";
+ }
+ });
+ }
+
+ @Override
+ public void renderHead(Component component, IHeaderResponse response) {
+ super.renderHead(component, response);
+ response.render(JavaScriptHeaderItem.forScript(
+ "function setEventSource(){\n"
+ + " $('#calendar').fullCalendar('addEventSource', \n"
+ + " {\n"
+ + " events: " + this.getCallbackFunction(explicit("start"), explicit("end"), context("callback")) + "\n"
+ //+ " , color: '#4793E6'\n"
+ //+ " , textColor: 'black'\n"
+ + "});\n"
+ + "}", "setEvtSource"));
+
+ }
+
+ @Override
+ protected void respond(AjaxRequestTarget target) {
+ StringBuilder sb = new StringBuilder("[");
+ Calendar start = Calendar.getInstance();
+ start.set(2012, 8, 1);
+ Calendar end = Calendar.getInstance();
+ end.set(2012, 8, 30);
+ String delim = "";
+ for (Appointment a : Application.getBean(AppointmentDaoImpl.class).getAppointmentsByRange(WebSession.getUserId(),
+ start.getTime(), end.getTime())) {
+ sb.append(delim).append("{\n")
+ .append("\"id\": ").append(a.getAppointmentId()).append("\n")
+ .append(", \"title\": \"").append(JavaScriptUtils.escapeQuotes(a.getAppointmentName())).append("\"\n")
+ .append(", \"start\": \"").append(ISO8601FORMAT.format(a.getAppointmentStarttime())).append("\"\n")
+ .append(", \"end\": \"").append(ISO8601FORMAT.format(a.getAppointmentEndtime())).append("\"\n")
+ .append(", \"allDay\": false\n")
+ .append("}\n");
+ delim = ", ";
+ }
+ sb.append("]");
+ getRequestCycle().scheduleRequestHandlerAfterCurrent(
+ new TextRequestHandler("application/json", "UTF-8", sb.toString()));
+ }
+ });
+ }
}
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java?rev=1387699&r1=1387698&r2=1387699&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java Wed Sep 19 18:15:39 2012
@@ -35,7 +35,7 @@ public class MainPage extends BasePage {
public MainPage() {
MarkupContainer contents = new WebMarkupContainer("contents");
- contents.add(new WebMarkupContainer("child")).setOutputMarkupId(true);
+ contents.add(new WebMarkupContainer("child")).setOutputMarkupId(true).setMarkupId("contents");
add(contents);
menu = new MenuPanel("menu", contents);
add(menu);