Index: lams_central/src/java/org/lamsfoundation/lams/web/tag/UserTag.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/tag/UserTag.java,v
diff -u -r1.10 -r1.10.14.1
--- lams_central/src/java/org/lamsfoundation/lams/web/tag/UserTag.java 17 Sep 2006 06:12:05 -0000 1.10
+++ lams_central/src/java/org/lamsfoundation/lams/web/tag/UserTag.java 11 May 2009 07:22:03 -0000 1.10.14.1
@@ -23,6 +23,8 @@
package org.lamsfoundation.lams.web.tag;
import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.TimeZone;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;
@@ -31,6 +33,7 @@
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
+import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
import org.apache.commons.beanutils.PropertyUtils;
@@ -94,11 +97,19 @@
Object value = null;
try {
- value = PropertyUtils.getProperty(user, property);
- if( property.equals("flashTheme") || property.equals("htmlTheme")) {
+ if(property.equals("timeZoneDisplayName")) {
+ String indexLbl = ((TimeZone) PropertyUtils.getProperty(user, "timeZone")).getID();
+ value = URLEncoder.encode(indexLbl, "UTF8");
+ } else {
+ value = PropertyUtils.getProperty(user, property);
+ }
+
+ if( property.equals("flashTheme") || property.equals("htmlTheme")) {
CSSThemeBriefDTO cssTheme = (CSSThemeBriefDTO) value;
value = (String) cssTheme.getName();
}
+
+
} catch (Exception e) {
log.warn("UserTag unable to write out user details due to exception while accessing property value. User id "+user.getUserID(), e);
}
Index: lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java,v
diff -u -r1.10 -r1.10.6.1
--- lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java 13 Nov 2008 05:19:31 -0000 1.10
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java 11 May 2009 07:22:03 -0000 1.10.6.1
@@ -100,7 +100,7 @@
// 3. schedule lesson
Date date = DateUtil.convertFromLAMSFlashFormat(startDate);
monitoringService.startLessonOnSchedule(lesson.getLessonId(), date, userMap.getUser()
- .getUserId());
+ .getUserId(), null);
return lesson.getLessonId();
} catch (Exception e) {
throw new RemoteException(e.getMessage(), e);
Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java,v
diff -u -r1.24.2.1 -r1.24.2.2
--- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java 21 Apr 2009 02:14:24 -0000 1.24.2.1
+++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java 11 May 2009 07:22:03 -0000 1.24.2.2
@@ -325,7 +325,7 @@
createLessonClass(lesson, orgMap.getOrganisation(), userMap.getUser());
// 3. schedule lesson
Date date = DateUtil.convertFromLAMSFlashFormat(startDate);
- monitoringService.startLessonOnSchedule(lesson.getLessonId(), date, userMap.getUser().getUserId());
+ monitoringService.startLessonOnSchedule(lesson.getLessonId(), date, userMap.getUser().getUserId(), null);
return lesson.getLessonId();
} catch (Exception e) {
throw new RemoteException(e.getMessage(), e);
Index: lams_common/src/java/org/lamsfoundation/lams/util/DateUtil.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/DateUtil.java,v
diff -u -r1.10 -r1.10.16.1
--- lams_common/src/java/org/lamsfoundation/lams/util/DateUtil.java 17 Sep 2006 06:14:16 -0000 1.10
+++ lams_common/src/java/org/lamsfoundation/lams/util/DateUtil.java 11 May 2009 07:22:03 -0000 1.10.16.1
@@ -85,6 +85,34 @@
}
/**
+ * Convert from local time to your client (time zone) time.
+ *
+ * @param targetTimeZone time zone converting to.
+ * @param date date to convert.
+ * @return your time zone date time.
+ */
+ public static Date convertToTimeZoneFromDefault(TimeZone targetTimeZone, Date date) {
+ TimeZone defaultTz = TimeZone.getDefault();
+ Integer rawOffset = new Integer(defaultTz.getOffset(date.getTime()) - targetTimeZone.getOffset(date.getTime()));
+
+ return new Date(date.getTime() - rawOffset);
+ }
+
+ /**
+ * Convert from client (time zone) time to your local time.
+ *
+ * @param targetTimeZone time zone converting from.
+ * @param date date to convert.
+ * @return your local date time.
+ */
+ public static Date convertFromTimeZoneToDefault(TimeZone targetTimeZone, Date date) {
+ TimeZone defaultTz = TimeZone.getDefault();
+ Integer rawOffset = new Integer(defaultTz.getOffset(date.getTime()) - targetTimeZone.getOffset(date.getTime()));
+
+ return new Date(date.getTime() + rawOffset);
+ }
+
+ /**
* Convert from String formatted date to a Date. Tries the following
* date formats:
* (WDDX) YYYY-MM-ddTHH:mm:ss
Index: lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java,v
diff -u -r1.13.4.1 -r1.13.4.2
--- lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java 7 May 2009 11:14:28 -0000 1.13.4.1
+++ lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java 11 May 2009 07:22:04 -0000 1.13.4.2
@@ -213,9 +213,8 @@
private String formatLastModifiedDateTime(TimeZone tz) {
if(this.lastModifiedDateTime != null) {
- Date tzLastModifiedDate = DateUtil.convertFromUTCToLocal(tz, DateUtil.convertToUTC(this.lastModifiedDateTime));
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
- return sdf.format(tzLastModifiedDate);
+ return sdf.format(DateUtil.convertToTimeZoneFromDefault(tz, this.lastModifiedDateTime));
} else {
return null;
}
Index: lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/events/WizardEvent.as
===================================================================
RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/events/WizardEvent.as,v
diff -u -r1.2 -r1.2.2.1
Binary files differ
Index: lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/maps/MainEventMap.mxml
===================================================================
RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/maps/MainEventMap.mxml,v
diff -u -r1.3 -r1.3.2.1
Binary files differ
Index: lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/views/Advanced.mxml
===================================================================
RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/views/Advanced.mxml,v
diff -u -r1.3.2.1 -r1.3.2.2
Binary files differ
Index: lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/views/Lesson.mxml
===================================================================
RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/views/Lesson.mxml,v
diff -u -r1.6 -r1.6.2.1
Binary files differ
Index: lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/vos/WorkspaceCollection.as
===================================================================
RCS file: /usr/local/cvsroot/lams_flash/src/central/flex/CloudWizard/src/org/lamsfoundation/lams/vos/WorkspaceCollection.as,v
diff -u -r1.1 -r1.1.2.1
Binary files differ
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java,v
diff -u -r1.13 -r1.13.10.1
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java 15 Mar 2007 05:13:21 -0000 1.13
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java 11 May 2009 07:22:02 -0000 1.13.10.1
@@ -48,4 +48,5 @@
public static final String KEY_GROUP_ORDER_ID = "orderID";
public static final String KEY_GROUP_LEARNERS = "learners";
public static final Object KEY_USERS = "users";
+ public static final String PARAM_SCHEDULE_TIME_ZONE_IDX = "scheduleTimeZoneIdx";
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java,v
diff -u -r1.85 -r1.85.4.1
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 12 Mar 2009 01:08:58 -0000 1.85
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java 11 May 2009 07:22:02 -0000 1.85.4.1
@@ -208,9 +208,11 @@
* the lesson start date and time.
* @param userId
* checks that the user is a staff member for this lesson
+ * @param timeZoneIdx
+ * the index of the TimeZone to use for the start date
* @see org.lamsfoundation.lams.monitoring.service#startLesson(long)
*/
- public void startLessonOnSchedule(long lessonId, Date startDate, Integer userId) throws UserAccessDeniedException;
+ public void startLessonOnSchedule(long lessonId, Date startDate, Integer userId, Integer timeZoneIdx) throws UserAccessDeniedException;
/**
* Finish a lesson on schedule datetime.
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java,v
diff -u -r1.149.2.4 -r1.149.2.5
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 8 May 2009 07:18:23 -0000 1.149.2.4
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 11 May 2009 07:22:02 -0000 1.149.2.5
@@ -675,7 +675,7 @@
* @see org.lamsfoundation.lams.monitoring.service.IMonitoringService#startLessonOnSchedule(long
* , Date, User)
*/
- public void startLessonOnSchedule(long lessonId, Date startDate, Integer userId) {
+ public void startLessonOnSchedule(long lessonId, Date startDate, Integer userId, Integer timeZoneIdx) {
// we get the lesson just created
Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId));
@@ -703,10 +703,14 @@
User user = (User) baseDAO.find(User.class, userId);
TimeZone tz = TimeZone.getDefault();
- TimeZone userTz = TimeZone.getTimeZone(User.timezoneList[user.getTimeZone()]);
- int rawOffset = tz.getOffset(startDate.getTime()) - userTz.getOffset(startDate.getTime());
+ TimeZone selectedTz;
- Date tzStartLessonDate = DateUtil.convertFromUTCToLocal(tz, DateUtil.convertToUTC(new Date(startDate.getTime() + rawOffset)));
+ if(timeZoneIdx != null)
+ selectedTz = TimeZone.getTimeZone(User.timezoneList[timeZoneIdx]);
+ else
+ selectedTz = TimeZone.getTimeZone(User.timezoneList[user.getTimeZone()]);
+
+ Date tzStartLessonDate = DateUtil.convertFromTimeZoneToDefault(selectedTz, startDate);
JobDetail startLessonJob = getStartScheduleLessonJob();
// setup the message for scheduling job
@@ -1444,18 +1448,16 @@
Locale userLocale = new Locale(user.getLocale().getLanguageIsoCode(), user.getLocale().getCountryIsoCode());
TimeZone tz = TimeZone.getTimeZone(User.timezoneList[user.getTimeZone()]);
- DateFormat indfm = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z", userLocale);
- indfm.setTimeZone(tz);
+ DateFormat indfm = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss", userLocale);
- if (dto.getStartDateTime() != null) {
- Date tzStartDate = DateUtil.convertFromUTCToLocal(tz, DateUtil.convertToUTC(dto.getStartDateTime()));
- dto.setStartDateTimeStr(indfm.format(tzStartDate));
+ if (dto.getStartDateTime() != WDDXTAGS.DATE_NULL_VALUE) {
+ Date tzStartDate = DateUtil.convertToTimeZoneFromDefault(tz, dto.getStartDateTime());
+ dto.setStartDateTimeStr(indfm.format(tzStartDate) + " " + tz.getDisplayName(userLocale));
}
- if (dto.getScheduleStartDate() != null) {
- Date tzScheduleDate = DateUtil.convertFromUTCToLocal(tz, DateUtil.convertToUTC(dto.getScheduleStartDate()));
-
- dto.setScheduleStartDateStr(indfm.format(tzScheduleDate));
+ if (dto.getScheduleStartDate() != WDDXTAGS.DATE_NULL_VALUE) {
+ Date tzScheduleDate = DateUtil.convertToTimeZoneFromDefault(tz, dto.getScheduleStartDate());
+ dto.setScheduleStartDateStr(indfm.format(tzScheduleDate) + " " + tz.getDisplayName(userLocale));
}
MonitoringService.log.debug(dto.toString());
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java,v
diff -u -r1.64.2.3 -r1.64.2.4
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java 24 Apr 2009 02:06:23 -0000 1.64.2.3
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java 11 May 2009 07:22:02 -0000 1.64.2.4
@@ -29,6 +29,8 @@
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
+import java.util.TimeZone;
+
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -43,6 +45,7 @@
import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.tool.exception.LamsToolServiceException;
+import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException;
import org.lamsfoundation.lams.util.DateUtil;
@@ -273,7 +276,9 @@
String dateStr = WebUtil.readStrParam(request, MonitoringConstants.PARAM_LESSON_START_DATE);
Date startDate = DateUtil.convertFromLAMSFlashFormat(dateStr);
- monitoringService.startLessonOnSchedule(lessonId,startDate,getUserId());
+ Integer timeZoneIdx = WebUtil.readIntParam(request, MonitoringConstants.PARAM_SCHEDULE_TIME_ZONE_IDX);
+
+ monitoringService.startLessonOnSchedule(lessonId,startDate,getUserId(),timeZoneIdx);
flashMessage = new FlashMessage("startOnScheduleLesson",Boolean.TRUE);
}catch (Exception e) {
flashMessage = handleException(e, "startOnScheduleLesson", monitoringService);
@@ -756,6 +761,16 @@
languageOutput += "