thingsboard-aplcache
Changes
ui/src/app/api/user.service.js 7(+7 -0)
ui/src/app/app.config.js 22(+12 -10)
ui/src/app/profile/profile.controller.js 10(+7 -3)
ui/src/app/profile/profile.tpl.html 2(+1 -1)
Details
ui/src/app/api/user.service.js 7(+7 -0)
diff --git a/ui/src/app/api/user.service.js b/ui/src/app/api/user.service.js
index 3e552dc..1785582 100644
--- a/ui/src/app/api/user.service.js
+++ b/ui/src/app/api/user.service.js
@@ -283,6 +283,12 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, logi
);
}
+ function updateUserLang() {
+ if (currentUserDetails.additionalInfo && currentUserDetails.additionalInfo.lang) {
+ $translate.use(currentUserDetails.additionalInfo.lang);
+ }
+ }
+
function procceedJwtTokenValidate() {
validateJwtToken(doTokenRefresh).then(function success() {
var jwtToken = store.get('jwt_token');
@@ -299,6 +305,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, logi
getUser(currentUser.userId).then(
function success(user) {
currentUserDetails = user;
+ updateUserLang();
$rootScope.forceFullscreen = false;
if (userForceFullscreen()) {
$rootScope.forceFullscreen = true;
ui/src/app/app.config.js 22(+12 -10)
diff --git a/ui/src/app/app.config.js b/ui/src/app/app.config.js
index 074437d..102c41a 100644
--- a/ui/src/app/app.config.js
+++ b/ui/src/app/app.config.js
@@ -46,7 +46,7 @@ export default function AppConfig($provide,
$urlRouterProvider.otherwise(UrlHandler);
storeProvider.setCaching(false);
- $translateProvider.useSanitizeValueStrategy('sce');
+ $translateProvider.useSanitizeValueStrategy(null);
$translateProvider.preferredLanguage('en_US');
$translateProvider.useLocalStorage();
$translateProvider.useMissingTranslationHandler('tbMissingTranslationHandler');
@@ -59,15 +59,17 @@ export default function AppConfig($provide,
var $window = angular.injector(['ng']).get('$window');
var lang = $window.navigator.language || $window.navigator.userLanguage;
- if (lang === 'ko') {
- $translateProvider.useSanitizeValueStrategy(null);
- $translateProvider.preferredLanguage('ko_KR');
- } else if (lang === 'zh') {
- $translateProvider.useSanitizeValueStrategy(null);
- $translateProvider.preferredLanguage('zh_CN');
- } else if (lang === 'es') {
- $translateProvider.useSanitizeValueStrategy(null);
- $translateProvider.preferredLanguage('es_ES');
+ if (lang) {
+ lang = lang.toLowerCase();
+ if (lang.startsWith('ko')) {
+ $translateProvider.preferredLanguage('ko_KR');
+ } else if (lang.startsWith('zh')) {
+ $translateProvider.preferredLanguage('zh_CN');
+ } else if (lang.startsWith('es')) {
+ $translateProvider.preferredLanguage('es_ES');
+ } else if (lang.startsWith('ru')) {
+ $translateProvider.preferredLanguage('ru_RU');
+ }
}
for (var langKey in locales) {
ui/src/app/profile/profile.controller.js 10(+7 -3)
diff --git a/ui/src/app/profile/profile.controller.js b/ui/src/app/profile/profile.controller.js
index 187a9d2..2fec403 100644
--- a/ui/src/app/profile/profile.controller.js
+++ b/ui/src/app/profile/profile.controller.js
@@ -40,15 +40,19 @@ export default function ProfileController(userService, $scope, $document, $mdDia
function loadProfile() {
userService.getUser(userService.getCurrentUser().userId).then(function success(user) {
vm.profileUser = user;
- vm.profileUser.lang = $translate.use();
+ if (!vm.profileUser.additionalInfo) {
+ vm.profileUser.additionalInfo = {};
+ }
+ if (!vm.profileUser.additionalInfo.lang) {
+ vm.profileUser.additionalInfo.lang = $translate.use();
+ }
});
}
function save() {
userService.saveUser(vm.profileUser).then(function success(user) {
- $translate.use(vm.profileUser.lang);
+ $translate.use(vm.profileUser.additionalInfo.lang);
vm.profileUser = user;
- vm.profileUser.lang = $translate.use();
$scope.theForm.$setPristine();
});
}
ui/src/app/profile/profile.tpl.html 2(+1 -1)
diff --git a/ui/src/app/profile/profile.tpl.html b/ui/src/app/profile/profile.tpl.html
index 5d59047..39401f7 100644
--- a/ui/src/app/profile/profile.tpl.html
+++ b/ui/src/app/profile/profile.tpl.html
@@ -42,7 +42,7 @@
</md-input-container>
<md-input-container class="md-block">
<label translate>language.language</label>
- <md-select name="language" ng-model="vm.profileUser.lang">
+ <md-select name="language" ng-model="vm.profileUser.additionalInfo.lang">
<md-option ng-repeat="lang in vm.languageList" ng-value="lang.value">
{{lang.name | translate}}
</md-option>