diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java index 708b0d1e622..e2f11c34d19 100644 --- a/api/src/org/apache/cloudstack/api/ApiConstants.java +++ b/api/src/org/apache/cloudstack/api/ApiConstants.java @@ -263,6 +263,7 @@ public class ApiConstants { public static final String ISO_ID = "isoid"; public static final String TIMEOUT = "timeout"; public static final String TIMEZONE = "timezone"; + public static final String TIMEZONEOFFSET = "timezoneoffset"; public static final String TYPE = "type"; public static final String TRUST_STORE = "truststore"; public static final String TRUST_STORE_PASSWORD = "truststorepass"; diff --git a/api/src/org/apache/cloudstack/api/response/LoginCmdResponse.java b/api/src/org/apache/cloudstack/api/response/LoginCmdResponse.java index 55eb2c40a38..d2d122efb66 100644 --- a/api/src/org/apache/cloudstack/api/response/LoginCmdResponse.java +++ b/api/src/org/apache/cloudstack/api/response/LoginCmdResponse.java @@ -58,6 +58,10 @@ public class LoginCmdResponse extends AuthenticationCmdResponse { @Param(description = "user time zone") private String timeZone; + @SerializedName(value = ApiConstants.TIMEZONEOFFSET) + @Param(description = "user time zoneoffset") + private String timeZoneOffset; + @SerializedName(value = ApiConstants.REGISTERED) @Param(description = "Is user registered") private String registered; @@ -138,6 +142,12 @@ public class LoginCmdResponse extends AuthenticationCmdResponse { this.timeZone = timeZone; } + public String getTimeZoneOffset() { + return timeZoneOffset; + } + + public void setTimeZoneOffset(String timeZoneOffset) { this.timeZoneOffset = timeZoneOffset; } + public String getRegistered() { return registered; } diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java index 4c39f5093f4..75bf380b135 100644 --- a/server/src/com/cloud/api/ApiServer.java +++ b/server/src/com/cloud/api/ApiServer.java @@ -987,6 +987,9 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer if (ApiConstants.TIMEZONE.equalsIgnoreCase(attrName)) { response.setTimeZone(attrObj.toString()); } + if (ApiConstants.TIMEZONEOFFSET.equalsIgnoreCase(attrName)) { + response.setTimeZoneOffset(attrObj.toString()); + } if (ApiConstants.REGISTERED.equalsIgnoreCase(attrName)) { response.setRegistered(attrObj.toString()); } diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js index b712d6cdfc2..119013326fb 100644 --- a/ui/scripts/cloudStack.js +++ b/ui/scripts/cloudStack.js @@ -120,6 +120,7 @@ g_username = unBoxCookieValue('username'); g_userfullname = unBoxCookieValue('userfullname'); g_timezone = unBoxCookieValue('timezone'); + g_timezoneoffset = unBoxCookieValue('timezoneoffset'); } else { //single-sign-on (bypass login screen) g_sessionKey = encodeURIComponent(g_loginResponse.sessionkey); g_role = g_loginResponse.type; @@ -129,6 +130,7 @@ g_domainid = g_loginResponse.domainid; g_userfullname = g_loginResponse.firstname + ' ' + g_loginResponse.lastname; g_timezone = g_loginResponse.timezone; + g_timezoneoffset = g_loginResponse.timezoneoffset; } var userValid = false; @@ -258,6 +260,7 @@ g_account = loginresponse.account; g_domainid = loginresponse.domainid; g_timezone = loginresponse.timezone; + g_timezoneoffset = loginresponse.timezoneoffset; g_userfullname = loginresponse.firstname + ' ' + loginresponse.lastname; $.cookie('username', g_username, { @@ -275,6 +278,9 @@ $.cookie('timezone', g_timezone, { expires: 1 }); + $.cookie('timezoneoffset', g_timezoneoffset, { + expires: 1 + }); $.cookie('userfullname', g_userfullname, { expires: 1 });