=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/appmanager/App.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/appmanager/App.java 2013-12-03 07:53:58 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/appmanager/App.java 2013-12-14 13:17:00 +0000 @@ -27,11 +27,38 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.io.Serializable; + import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import java.io.File; -import java.io.Serializable; +/* + * Copyright (c) 2004-2013, University of Oslo + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * Neither the name of the HISP project nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ /** * @author Saptarshi === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSettingService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSettingService.java 2013-11-21 09:28:42 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserSettingService.java 2013-12-14 13:17:00 +0000 @@ -45,14 +45,13 @@ String ID = UserSettingService.class.getName(); final String AUTO_SAVE_DATA_ENTRY_FORM = "autoSaveDataEntryForm"; - final String KEY_CURRENT_DATADICTIONARY = "currentDataDictionary"; final String KEY_CURRENT_DOMAIN_TYPE = "currentDomainType"; final String KEY_STYLE = "stylesheet"; final String KEY_STYLE_DIRECTORY = "stylesheetDirectory"; final String KEY_MESSAGE_EMAIL_NOTIFICATION = "keyMessageEmailNotification"; final String KEY_MESSAGE_SMS_NOTIFICATION = "keyMessageSmsNotification"; - final String KEY_UI_LOCALE = "currentLocale"; - final String KEY_DB_LOCALE = "keyLocaleUserSetting"; + final String KEY_UI_LOCALE = "keyUiLocale"; + final String KEY_DB_LOCALE = "keyDbLocale"; final String KEY_GENERATE_REPORT_INTERFACE = "keyGenerateReportInterface"; final String KEY_ANALYSIS_DISPLAY_PROPERTY = "keyAnalysisDisplayProperty"; final String AUTO_SAVE_CASE_ENTRY_FORM = "autoSaveCaseEntryForm"; === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2013-11-28 19:26:08 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2013-12-14 13:17:00 +0000 @@ -628,7 +628,7 @@ executeSql( "ALTER TABLE dataelement ALTER COLUMN domaintype SET NOT NULL" ); executeSql( "update dataelementcategory set datadimension = false where datadimension is null" ); - executeSql( "UPDATE dataset SET dataelementdecoration=false WHERE dataelementdecoration is null" ); + executeSql( "UPDATE dataset SET dataelementdecoration=false WHERE dataelementdecoration is null" ); executeSql( "alter table validationrulegroup rename column validationgroupid to validationrulegroupid" ); executeSql( "alter table sqlview rename column viewid to sqlviewid" ); @@ -643,15 +643,16 @@ executeSql( "ALTER TABLE message ALTER COLUMN messagetext TYPE text" ); executeSql( "delete from usersetting where name = 'dashboardConfig' or name = 'dashboardConfiguration'" ); + executeSql( "update usersetting set name = 'keyUiLocale' where name = 'currentLocale'" ); + executeSql( "update usersetting set name = 'keyDbLocale' where name = 'keyLocaleUserSetting'" ); executeSql( "ALTER TABLE interpretation ALTER COLUMN userid DROP NOT NULL" ); executeSql( "UPDATE interpretation SET publicaccess='r-------' WHERE publicaccess IS NULL;" ); executeSql( "ALTER TABLE dataset DROP COLUMN symbol" ); + executeSql( "ALTER TABLE users ALTER COLUMN password DROP NOT NULL" ); upgradeMapViewsToAnalyticalObject(); - executeSql( "ALTER TABLE users ALTER COLUMN password DROP NOT NULL" ); - log.info( "Tables updated" ); } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java 2013-12-13 16:03:24 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java 2013-12-14 13:17:00 +0000 @@ -28,28 +28,26 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hisp.dhis.common.AuditLogUtil; -import org.hisp.dhis.common.GenericIdentifiableObjectStore; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.PeriodType; import org.hisp.dhis.system.filter.UserCredentialsCanUpdateFilter; import org.hisp.dhis.system.util.Filter; import org.hisp.dhis.system.util.FilterUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - /** * @author Chau Thu Tran */ === modified file 'dhis-2/dhis-services/dhis-service-i18n/src/main/java/org/hisp/dhis/i18n/locale/UserSettingLocaleManager.java' --- dhis-2/dhis-services/dhis-service-i18n/src/main/java/org/hisp/dhis/i18n/locale/UserSettingLocaleManager.java 2013-09-16 17:07:25 +0000 +++ dhis-2/dhis-services/dhis-service-i18n/src/main/java/org/hisp/dhis/i18n/locale/UserSettingLocaleManager.java 2013-12-14 13:17:00 +0000 @@ -101,7 +101,7 @@ private Locale getUserSelectedLocale() { - return (Locale) userSettingService.getUserSetting( UserSettingService.KEY_UI_LOCALE, null ); + return (Locale) userSettingService.getUserSetting( UserSettingService.KEY_UI_LOCALE ); } public Locale getFallbackLocale() === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/dashboard/impl/DefaultDashboardService.java' --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/dashboard/impl/DefaultDashboardService.java 2013-12-13 12:47:24 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/dashboard/impl/DefaultDashboardService.java 2013-12-14 13:17:00 +0000 @@ -28,6 +28,21 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import static org.hisp.dhis.common.IdentifiableObjectUtils.getUids; +import static org.hisp.dhis.dashboard.DashboardItem.TYPE_CHART; +import static org.hisp.dhis.dashboard.DashboardItem.TYPE_MAP; +import static org.hisp.dhis.dashboard.DashboardItem.TYPE_MESSAGES; +import static org.hisp.dhis.dashboard.DashboardItem.TYPE_PATIENT_TABULAR_REPORTS; +import static org.hisp.dhis.dashboard.DashboardItem.TYPE_REPORTS; +import static org.hisp.dhis.dashboard.DashboardItem.TYPE_REPORT_TABLE; +import static org.hisp.dhis.dashboard.DashboardItem.TYPE_REPORT_TABLES; +import static org.hisp.dhis.dashboard.DashboardItem.TYPE_RESOURCES; +import static org.hisp.dhis.dashboard.DashboardItem.TYPE_USERS; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import org.hisp.dhis.chart.Chart; import org.hisp.dhis.common.IdentifiableObjectManager; import org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore; @@ -37,7 +52,6 @@ import org.hisp.dhis.dashboard.DashboardSearchResult; import org.hisp.dhis.dashboard.DashboardService; import org.hisp.dhis.document.Document; -import org.hisp.dhis.interpretation.Interpretation; import org.hisp.dhis.mapping.Map; import org.hisp.dhis.patientreport.PatientTabularReport; import org.hisp.dhis.report.Report; @@ -46,13 +60,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import static org.hisp.dhis.common.IdentifiableObjectUtils.getUids; -import static org.hisp.dhis.dashboard.DashboardItem.*; - /** * Note: The remove associations methods must be altered if caching is introduced. * === modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/TextUtils.java' --- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/TextUtils.java 2013-11-10 10:00:19 +0000 +++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/TextUtils.java 2013-12-14 13:17:00 +0000 @@ -357,4 +357,16 @@ return builder.toString(); } + + /** + * Returns the string representation of the object, or null if the object is + * null. + * + * @param object the object. + * @return the string representation. + */ + public static String toString( Object object ) + { + return object != null ? object.toString() : null; + } } === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/user/CurrentUserController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/user/CurrentUserController.java 2013-11-19 15:20:52 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/user/CurrentUserController.java 2013-12-14 13:17:00 +0000 @@ -55,11 +55,13 @@ import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.program.Program; import org.hisp.dhis.program.ProgramService; +import org.hisp.dhis.system.util.TextUtils; import org.hisp.dhis.user.CurrentUserService; import org.hisp.dhis.user.User; import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.user.UserGroupService; import org.hisp.dhis.user.UserService; +import org.hisp.dhis.user.UserSettingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -77,6 +79,8 @@ import java.util.Map; import java.util.Set; +import static org.hisp.dhis.user.UserSettingService.*; + /** * @author Morten Olav Hansen */ @@ -115,6 +119,9 @@ private ProgramService programService; @Autowired + private UserSettingService userSettingService; + + @Autowired private ContextUtils contextUtils; @Autowired @@ -200,6 +207,11 @@ userAccount.setEducation( currentUser.getEducation() ); userAccount.setInterests( currentUser.getInterests() ); userAccount.setLanguages( currentUser.getLanguages() ); + + userAccount.getSettings().put( KEY_UI_LOCALE, TextUtils.toString( userSettingService.getUserSetting( KEY_UI_LOCALE ) ) ); + userAccount.getSettings().put( KEY_DB_LOCALE, TextUtils.toString( userSettingService.getUserSetting( KEY_DB_LOCALE ) ) ); + userAccount.getSettings().put( KEY_MESSAGE_EMAIL_NOTIFICATION, TextUtils.toString( userSettingService.getUserSetting( KEY_MESSAGE_EMAIL_NOTIFICATION ) ) ); + userAccount.getSettings().put( KEY_MESSAGE_SMS_NOTIFICATION, TextUtils.toString( userSettingService.getUserSetting( KEY_MESSAGE_SMS_NOTIFICATION ) ) ); JacksonUtils.toJson( response.getOutputStream(), userAccount ); } === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/user/UserAccount.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/user/UserAccount.java 2013-08-23 16:00:30 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/webdomain/user/UserAccount.java 2013-12-14 13:17:00 +0000 @@ -28,6 +28,9 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.util.HashMap; +import java.util.Map; + import com.fasterxml.jackson.annotation.JsonProperty; /** @@ -63,6 +66,8 @@ private String languages; + private Map settings = new HashMap(); + public UserAccount() { } @@ -209,4 +214,15 @@ { this.languages = languages; } + + @JsonProperty + public Map getSettings() + { + return settings; + } + + public void setSettings( Map settings ) + { + this.settings = settings; + } } === modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/settings/user/action/GetGeneralSettingsAction.java' --- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/settings/user/action/GetGeneralSettingsAction.java 2013-10-08 17:16:47 +0000 +++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/settings/user/action/GetGeneralSettingsAction.java 2013-12-14 13:17:00 +0000 @@ -163,7 +163,7 @@ availableLocales = localeManager.getAvailableLocales(); currentLocale = localeManager.getCurrentLocale(); - + // --------------------------------------------------------------------- // Get available DB locales // --------------------------------------------------------------------- === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetGeneralSettingsAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetGeneralSettingsAction.java 2013-11-25 09:51:18 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-settings/src/main/java/org/hisp/dhis/settings/action/system/SetGeneralSettingsAction.java 2013-12-14 13:17:00 +0000 @@ -207,8 +207,7 @@ configuration.setOfflineOrganisationUnitLevel( organisationUnitService .getOrganisationUnitLevel( offlineOrganisationUnitLevel ) ); - // if the level is changed, we need to make sure that the version is - // also changed. + // When level is changed, make sure that the version is updated organisationUnitService.updateVersion(); }