Index: lams_admin/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -ra0e86d739df8fd8659a5676dddafcd6c87723baf -rb4c7cf180245db7c4d9d5c600eaf294a4c570286 --- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision a0e86d739df8fd8659a5676dddafcd6c87723baf) +++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision b4c7cf180245db7c4d9d5c600eaf294a4c570286) @@ -376,7 +376,7 @@ sysadmin.lessonFinishUrl = Lesson finish callback URL admin.servertimezone.server.timezone.management = Server timezone management admin.servertimezone.title = Server timezone management -admin.servertimezone.select.server.timezone = Select server timezone +admin.servertimezone.select.server.timezone = Server timezone admin.servertimezone.raw.offset = Raw offset: {0} admin.servertimezone.dst.offset = DST offset: {0} admin.servertimezone.name = Name: {0} @@ -699,4 +699,4 @@ admin.user.add.to.lessons = Add user to existing lessons ai.config.title = Artificial Intelligence ai.config.link = AI management -sysadmin.maintain.session.delete = Delete user session +sysadmin.maintain.session.delete = Delete user session \ No newline at end of file Index: lams_admin/conf/language/lams/ApplicationResources_en_AU.properties =================================================================== diff -u -ra0e86d739df8fd8659a5676dddafcd6c87723baf -rb4c7cf180245db7c4d9d5c600eaf294a4c570286 --- lams_admin/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision a0e86d739df8fd8659a5676dddafcd6c87723baf) +++ lams_admin/conf/language/lams/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision b4c7cf180245db7c4d9d5c600eaf294a4c570286) @@ -376,7 +376,7 @@ sysadmin.lessonFinishUrl = Lesson finish callback URL admin.servertimezone.server.timezone.management = Server timezone management admin.servertimezone.title = Server timezone management -admin.servertimezone.select.server.timezone = Select server timezone +admin.servertimezone.select.server.timezone = Server timezone admin.servertimezone.raw.offset = Raw offset: {0} admin.servertimezone.dst.offset = DST offset: {0} admin.servertimezone.name = Name: {0} @@ -699,4 +699,4 @@ admin.user.add.to.lessons = Add user to existing lessons ai.config.title = Artificial Intelligence ai.config.link = AI management -sysadmin.maintain.session.delete = Delete user session +sysadmin.maintain.session.delete = Delete user session \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/admin/adminApplicationContext.xml =================================================================== diff -u -r01c2a55767c613282c319ed8b38a0c78712e3661 -rb4c7cf180245db7c4d9d5c600eaf294a4c570286 --- lams_admin/src/java/org/lamsfoundation/lams/admin/adminApplicationContext.xml (.../adminApplicationContext.xml) (revision 01c2a55767c613282c319ed8b38a0c78712e3661) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/adminApplicationContext.xml (.../adminApplicationContext.xml) (revision b4c7cf180245db7c4d9d5c600eaf294a4c570286) @@ -23,8 +23,5 @@ - - - \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java =================================================================== diff -u -r5b0ba932e4d5b0a247b24004ea21b48a0627ec15 -rb4c7cf180245db7c4d9d5c600eaf294a4c570286 --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision 5b0ba932e4d5b0a247b24004ea21b48a0627ec15) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision b4c7cf180245db7c4d9d5c600eaf294a4c570286) @@ -34,8 +34,7 @@ import org.lamsfoundation.lams.logevent.LogEvent; import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.themes.Theme; -import org.lamsfoundation.lams.timezone.Timezone; -import org.lamsfoundation.lams.timezone.service.ITimezoneService; +import org.lamsfoundation.lams.timezone.TimeZoneUtil; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.ForgotPasswordRequest; import org.lamsfoundation.lams.usermanagement.Organisation; @@ -67,7 +66,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.TimeZone; /** *

@@ -83,7 +81,6 @@ private IUserManagementService service; private MessageService messageService; private ILogEventService logEventService; - private ITimezoneService timezoneService; // spreadsheet column indexes for user spreadsheet private static final short LOGIN = 0; @@ -708,26 +705,9 @@ user.setCreateDate(new Date()); user.setFirstLogin(true); - // convert timezone like "Europe/Warsaw" to "Etc/GMT-1", if provided String timeZoneColumn = parseStringCell(row.getCell(ImportService.TIME_ZONE)); - TimeZone javaTimeZone = TimeZone.getTimeZone(timeZoneColumn); - Timezone userTimezone = timezoneService.getServerTimezone(); - if (javaTimeZone != null) { - int offset = javaTimeZone.getRawOffset() / 3600000; - String lamsTimezoneName = "Etc/GMT"; - if (offset > 0) { - lamsTimezoneName += "-" + offset; - } else if (offset < 0) { - lamsTimezoneName += "+" + Math.abs(offset); - } - for (Timezone lamsTimezone : timezoneService.getDefaultTimezones()) { - if (lamsTimezone.getTimezoneId().equalsIgnoreCase(lamsTimezoneName)) { - userTimezone = lamsTimezone; - break; - } - } - } - user.setTimeZone(userTimezone.getTimezoneId()); + user.setTimeZone( + TimeZoneUtil.isTimezoneValid(timeZoneColumn) ? timeZoneColumn : TimeZoneUtil.getServerTimezone()); service.updatePassword(user, password); @@ -972,8 +952,4 @@ public void setLogEventService(ILogEventService logEventService) { this.logEventService = logEventService; } - - public void setTimezoneService(ITimezoneService timezoneService) { - this.timezoneService = timezoneService; - } } \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/AppAdminStartController.java =================================================================== diff -u -r1e85a36d6397d66fa9cc46b334e2ef2bef8af4f6 -rb4c7cf180245db7c4d9d5c600eaf294a4c570286 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/AppAdminStartController.java (.../AppAdminStartController.java) (revision 1e85a36d6397d66fa9cc46b334e2ef2bef8af4f6) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/AppAdminStartController.java (.../AppAdminStartController.java) (revision b4c7cf180245db7c4d9d5c600eaf294a4c570286) @@ -22,10 +22,6 @@ package org.lamsfoundation.lams.admin.web.controller; -import java.util.ArrayList; - -import javax.servlet.http.HttpServletRequest; - import org.lamsfoundation.lams.admin.AdminConstants; import org.lamsfoundation.lams.admin.web.dto.LinkBean; import org.lamsfoundation.lams.usermanagement.Role; @@ -38,6 +34,9 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; + /** * @author jliew * @@ -67,7 +66,6 @@ if (request.isUserInRole(Role.APPADMIN) || request.isUserInRole(Role.SYSADMIN)) { links = new ArrayList<>(); - links.add(new LinkBean("timezonemanagement/start.do", "admin.timezone.title")); links.add(new LinkBean("loginmaintain.do", "appadmin.maintain.loginpage")); links.add(new LinkBean("signupManagement/start.do", "admin.signup.title")); links.add(new LinkBean("policyManagement/list.do", "admin.policies.title")); @@ -124,4 +122,4 @@ return "appadmin"; } -} +} \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ConfigController.java =================================================================== diff -u -rc7c5d74f9c402bdab97bd3fd46436adbfa9202b8 -rb4c7cf180245db7c4d9d5c600eaf294a4c570286 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ConfigController.java (.../ConfigController.java) (revision c7c5d74f9c402bdab97bd3fd46436adbfa9202b8) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/ConfigController.java (.../ConfigController.java) (revision b4c7cf180245db7c4d9d5c600eaf294a4c570286) @@ -22,12 +22,6 @@ */ package org.lamsfoundation.lams.admin.web.controller; -import java.util.LinkedHashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - import org.apache.commons.lang.StringUtils; import org.lamsfoundation.lams.admin.web.form.ConfigForm; import org.lamsfoundation.lams.config.ConfigurationItem; @@ -36,6 +30,7 @@ import org.lamsfoundation.lams.security.ISecurityService; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.web.filter.AuditLogFilter; @@ -48,6 +43,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.TimeZone; + /** * ConfigAction * @@ -81,6 +82,8 @@ smtpAuthTypes.put("ssl", "SSL"); request.setAttribute("smtpAuthTypes", smtpAuthTypes); + request.setAttribute("timezones", TimeZone.getAvailableIDs()); + return "config/editconfig"; } @@ -132,15 +135,18 @@ .append("\" from \"").append(currentValue).append("\" to \"").append(newValue) .append("\", "); } + if (key.equals(ConfigurationKeys.SERVER_TIMEZONE) && StringUtils.isBlank(newValue)) { + newValue = null; + } Configuration.updateItem(key, newValue); } } configuration.persistUpdate(); if (changeLog.length() > 0) { // if there were any changes made, log it - String changeLogString = changeLog.insert(0, "Configuration changed: ").substring(0, - changeLog.length() - 2); + String changeLogString = changeLog.insert(0, "Configuration changed: ") + .substring(0, changeLog.length() - 2); logEventService.logEvent(LogEvent.TYPE_CONFIG_CHANGE, getUserId(), null, null, null, changeLogString); AuditLogFilter.log(AuditLogFilter.CONFIG_CHANGE_ACTION, changeLogString); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/LtiConsumerManagementController.java =================================================================== diff -u -r1e85a36d6397d66fa9cc46b334e2ef2bef8af4f6 -rb4c7cf180245db7c4d9d5c600eaf294a4c570286 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/LtiConsumerManagementController.java (.../LtiConsumerManagementController.java) (revision 1e85a36d6397d66fa9cc46b334e2ef2bef8af4f6) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/LtiConsumerManagementController.java (.../LtiConsumerManagementController.java) (revision b4c7cf180245db7c4d9d5c600eaf294a4c570286) @@ -1,35 +1,22 @@ package org.lamsfoundation.lams.admin.web.controller; -import java.util.Collections; -import java.util.List; -import java.util.TimeZone; -import java.util.TreeSet; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.admin.web.form.LtiConsumerForm; import org.lamsfoundation.lams.integration.ExtServer; import org.lamsfoundation.lams.integration.service.IIntegrationService; import org.lamsfoundation.lams.security.ISecurityService; -import org.lamsfoundation.lams.timezone.Timezone; -import org.lamsfoundation.lams.timezone.dto.TimezoneDTO; -import org.lamsfoundation.lams.timezone.service.ITimezoneService; -import org.lamsfoundation.lams.timezone.util.TimezoneIDComparator; import org.lamsfoundation.lams.usermanagement.SupportedLocale; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.filter.AuditLogFilter; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; -import org.lamsfoundation.lams.web.filter.AuditLogFilter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; @@ -39,6 +26,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.util.Collections; +import java.util.List; +import java.util.TimeZone; + /** * @author Andrey Balan */ @@ -52,8 +46,6 @@ @Autowired private IUserManagementService userManagementService; @Autowired - private ITimezoneService timezoneService; - @Autowired private ISecurityService securityService; @Autowired @Qualifier("adminMessageService") @@ -105,17 +97,7 @@ request.setAttribute("locales", locales); request.setAttribute("countryCodes", LanguageUtil.getCountryCodes(false)); - - List availableTimeZones = timezoneService.getDefaultTimezones(); - TreeSet timezoneDtos = new TreeSet<>(new TimezoneIDComparator()); - for (Timezone availableTimeZone : availableTimeZones) { - String timezoneId = availableTimeZone.getTimezoneId(); - TimezoneDTO timezoneDto = new TimezoneDTO(); - timezoneDto.setTimeZoneId(timezoneId); - timezoneDto.setDisplayName(TimeZone.getTimeZone(timezoneId).getDisplayName()); - timezoneDtos.add(timezoneDto); - } - request.setAttribute("timezoneDtos", timezoneDtos); + request.setAttribute("timezones", TimeZone.getAvailableIDs()); } integrationService.clearLessonFinishUrlCache(); Fisheye: Tag b4c7cf180245db7c4d9d5c600eaf294a4c570286 refers to a dead (removed) revision in file `lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/TimezoneManagementController.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserController.java =================================================================== diff -u -r1713042dda0682a11a40bd58cb3bbb8b30238786 -rb4c7cf180245db7c4d9d5c600eaf294a4c570286 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserController.java (.../UserController.java) (revision 1713042dda0682a11a40bd58cb3bbb8b30238786) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserController.java (.../UserController.java) (revision b4c7cf180245db7c4d9d5c600eaf294a4c570286) @@ -23,15 +23,6 @@ package org.lamsfoundation.lams.admin.web.controller; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.TimeZone; -import java.util.TreeSet; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - import org.apache.commons.beanutils.BeanUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.admin.web.dto.UserOrgRoleDTO; @@ -40,10 +31,7 @@ import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.themes.Theme; import org.lamsfoundation.lams.themes.service.IThemeService; -import org.lamsfoundation.lams.timezone.Timezone; -import org.lamsfoundation.lams.timezone.dto.TimezoneDTO; -import org.lamsfoundation.lams.timezone.service.ITimezoneService; -import org.lamsfoundation.lams.timezone.util.TimezoneIDComparator; +import org.lamsfoundation.lams.timezone.TimeZoneUtil; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationState; @@ -68,6 +56,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.TimeZone; + /** * @author Jun-Dir Liew */ @@ -84,8 +79,6 @@ @Autowired private IThemeService themeService; @Autowired - private ITimezoneService timezoneService; - @Autowired private IUserManagementService userManagementService; private static List locales; @@ -191,8 +184,7 @@ log.debug(e); } - Timezone serverTimezone = timezoneService.getServerTimezone(); - userForm.setTimeZone(serverTimezone.getTimezoneId()); + userForm.setTimeZone(TimeZoneUtil.getServerTimezone()); } userForm.setOrgId(org == null ? null : org.getOrganisationId()); @@ -206,17 +198,7 @@ request.setAttribute("canSetTwoFactorAuthentication", true); } - // Get all available time zones - List availableTimeZones = timezoneService.getDefaultTimezones(); - TreeSet timezoneDtos = new TreeSet<>(new TimezoneIDComparator()); - for (Timezone availableTimeZone : availableTimeZones) { - String timezoneId = availableTimeZone.getTimezoneId(); - TimezoneDTO timezoneDto = new TimezoneDTO(); - timezoneDto.setTimeZoneId(timezoneId); - timezoneDto.setDisplayName(TimeZone.getTimeZone(timezoneId).getDisplayName()); - timezoneDtos.add(timezoneDto); - } - request.setAttribute("timezoneDtos", timezoneDtos); + request.setAttribute("timezones", TimeZone.getAvailableIDs()); // for breadcrumb links if (org != null) { Index: lams_admin/web/config/editconfig.jsp =================================================================== diff -u -r4dfac2d5a56db552565f34ac9fa2398bc01838b5 -rb4c7cf180245db7c4d9d5c600eaf294a4c570286 --- lams_admin/web/config/editconfig.jsp (.../editconfig.jsp) (revision 4dfac2d5a56db552565f34ac9fa2398bc01838b5) +++ lams_admin/web/config/editconfig.jsp (.../editconfig.jsp) (revision b4c7cf180245db7c4d9d5c600eaf294a4c570286) @@ -68,6 +68,16 @@ + + +