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 += "" + messageService.getMessage(languageCollection.get(i)) + ""; } + if(module.equals("wizard")) { + String ids[] = User.timezoneList; + int idx = 0; + for(String id: ids) { + languageOutput += "" + id + ""; + idx++; + } + + } + languageOutput += ""; response.setContentType("text/xml"); Index: lams_monitoring/web/CloudWizard.swf =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/web/CloudWizard.swf,v diff -u -r1.6.2.4 -r1.6.2.5 Binary files differ Index: lams_monitoring/web/addLesson.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/web/Attic/addLesson.jsp,v diff -u -r1.17 -r1.17.2.1 --- lams_monitoring/web/addLesson.jsp 31 Mar 2009 03:19:40 -0000 1.17 +++ lams_monitoring/web/addLesson.jsp 11 May 2009 07:22:03 -0000 1.17.2.1 @@ -48,8 +48,8 @@ <% String clientVersion = Configuration.get(ConfigurationKeys.MONITOR_CLIENT_VERSION); %> - - organisationID=&orgName=&serverUrl=&userID=&buildID=<%= clientVersion %> + + organisationID=&orgName=&serverUrl=&userID=&tz=&buildID=<%= clientVersion %>