From 64453ab68d069433eeef113da2c0f77b1553225c Mon Sep 17 00:00:00 2001 From: Javier Iserte Date: Tue, 27 Aug 2024 12:34:36 -0300 Subject: [PATCH] [#117] Language Change FrontEnd --- .../javascripts/home/headerController.js | 153 +++++++++++++----- app/assets/javascripts/home/main.js | 99 +++++++++--- .../home/notificationsController.js | 10 +- .../javascripts/home/views/aboutModal.html | 4 +- app/assets/javascripts/home/views/nav.html | 36 ++--- public/locales/en/translation.json | 4 +- public/locales/es-AR/translation.json | 8 +- 7 files changed, 217 insertions(+), 97 deletions(-) diff --git a/app/assets/javascripts/home/headerController.js b/app/assets/javascripts/home/headerController.js index b57982c..6a1f42f 100755 --- a/app/assets/javascripts/home/headerController.js +++ b/app/assets/javascripts/home/headerController.js @@ -1,51 +1,120 @@ -define([], function() { -'use strict'; - -function HeaderController($scope, userService, $location, $modal, hotkeys, appConf) { - - var modalInstance = null; - - $scope.version = appConf.version; - - hotkeys.bindTo($scope).add({ - combo : 'ctrl+alt+b', - allowIn : [ 'INPUT', 'SELECT', 'TEXTAREA' ], - callback : function() { - modalInstance = $modal.open({ - templateUrl : '/assets/javascripts/home/views/ee.html', - scope : $scope +define( + [], + function() { + 'use strict'; + + function HeaderController( + $scope, + userService, + $location, + $modal, + $timeout, + hotkeys, + appConf + ) { + var modalInstance = null; + $scope.version = appConf.version; + hotkeys.bindTo($scope).add({ + combo : 'ctrl+alt+b', + allowIn : [ 'INPUT', 'SELECT', 'TEXTAREA' ], + callback : function() { + modalInstance = $modal.open({ + templateUrl : '/assets/javascripts/home/views/ee.html', + scope : $scope + }); + } }); - } - }); - // Wrap the current user from the service in a watch expression - $scope.$watch(function() { - var user = userService.getUser(); - return user; - }, function(user) { - $scope.user = user; - }, true); + // Wrap the current user from the service in a watch expression + $scope.$watch( + function() { + var user = userService.getUser(); + return user; + }, + function(user) { + $scope.user = user; + }, + true + ); - $scope.showAbout = function() { - modalInstance = $modal.open({ - templateUrl : '/assets/javascripts/home/views/aboutModal.html', - scope : $scope - }); - }; + $scope.showAbout = function() { + modalInstance = $modal.open({ + templateUrl : '/assets/javascripts/home/views/aboutModal.html', + scope : $scope + }); + }; - $scope.closeModal = function() { - modalInstance.close(); - }; + $scope.closeModal = function() { + modalInstance.close(); + }; - $scope.logout = function() { - $scope.selectedMenu = undefined; - userService.logout(); - $scope.user = undefined; - }; + $scope.logout = function() { + $scope.selectedMenu = undefined; + userService.logout(); + $scope.user = undefined; + }; + var set_menu_titles = function() { + $scope.menu_profiles= "menu.profiles"; + $scope.menu_profilesList= "menu.profilesList"; + $scope.menu_bulkUpload= "menu.bulkUpload"; + $scope.menu_bulkAcceptance= "menu.bulkAcceptance"; + $scope.menu_inferiorInstanceProfileApproval= "menu.inferiorInstanceProfileApproval"; + $scope.menu_profileComparison= "menu.profileComparison"; + $scope.menu_profileExporter= "menu.profileExporter"; + $scope.menu_profileLIMSExporter= "menu.profileLIMSExporter"; + $scope.menu_mpiDvi= "menu.mpiDvi"; + $scope.menu_matches= "menu.matches"; + $scope.menu_forensic= "menu.forensic"; + $scope.menu_mpi= "menu.mpi"; + $scope.menu_monitoring= "menu.monitoring"; + $scope.menu_reports= "menu.reports"; + $scope.menu_operationLog= "menu.operationLog"; + $scope.menu_interconnection_inferiorInstances= "menu.interconnection.inferiorInstances"; + $scope.menu_configuration= "menu.configuration"; + $scope.menu_logout= "menu.logout"; + $scope.generics_close = "generics.close"; + $scope.about_version = "about.version"; + }; + set_menu_titles(); -} + var clear_menu_titles = function() { + $scope.menu_profiles= ""; + $scope.menu_profilesList= ""; + $scope.menu_bulkUpload= ""; + $scope.menu_bulkAcceptance= ""; + $scope.menu_inferiorInstanceProfileApproval= ""; + $scope.menu_profileComparison= ""; + $scope.menu_profileExporter= ""; + $scope.menu_profileLIMSExporter= ""; + $scope.menu_mpiDvi= ""; + $scope.menu_matches= ""; + $scope.menu_forensic= ""; + $scope.menu_mpi= ""; + $scope.menu_monitoring= ""; + $scope.menu_reports= ""; + $scope.menu_operationLog= ""; + $scope.menu_interconnection_inferiorInstances= ""; + $scope.menu_configuration= ""; + $scope.menu_logout= ""; + $scope.generics_close = ""; + $scope.about_version = ""; + }; -return HeaderController; + $scope.$on( + "i18nextLanguageChange", + function(event, args) { + clear_menu_titles(); + $timeout( + function() { + set_menu_titles(); + }, + 1 + ); + } + ); -}); + } + return HeaderController; + } +); diff --git a/app/assets/javascripts/home/main.js b/app/assets/javascripts/home/main.js index 6ecf17f..a847a3b 100755 --- a/app/assets/javascripts/home/main.js +++ b/app/assets/javascripts/home/main.js @@ -1,23 +1,76 @@ -define(['angular', './loadingAppController', './totpPromptService', './totpPromptController', './errorService', './errorController', './headerController', './notificationsService', './notificationsController'], -function(angular, LoadingAppController, TotpPromptService, TotpPromptController, ErrorService, ErrorController, HeaderController, NotificationsService, NotificationsController) { -'use strict'; - -angular - .module('pdg.home', ['jm.i18next']) - .controller('loadingAppController', ['$scope', LoadingAppController]) - .service('totpPromptService', ['$log', '$rootScope', '$q', TotpPromptService]) - .controller('totpPromptController', ['$scope', 'totpPromptService', TotpPromptController]) - .service('errorService', ['$log', ErrorService]) - .controller('errorController', ['$scope', 'errorService', 'alertService', ErrorController]) - .controller('headerController', ['$scope', 'userService', '$location', '$modal', 'hotkeys','appConf', HeaderController]) - .service('notificationsService', ['$log','$rootScope', 'cryptoService', 'userService', NotificationsService]) - .controller('notificationsController', [ '$scope', '$rootScope', '$log', '$timeout', '$route', '$i18next', 'notificationsService', 'userService', 'inboxService', NotificationsController]) - .config(['$routeProvider', function($routeProvider) { - $routeProvider - .when('/configuracion', {templateUrl: '/assets/javascripts/home/views/configuracion.html'}); - }]); - - - return undefined; - -}); +define( + [ + 'angular', + './loadingAppController', + './totpPromptService', + './totpPromptController', + './errorService', + './errorController', + './headerController', + './notificationsService', + './notificationsController' + ], + function ( + angular, + LoadingAppController, + TotpPromptService, + TotpPromptController, + ErrorService, + ErrorController, + HeaderController, + NotificationsService, + NotificationsController + ) { + 'use strict'; + angular + .module('pdg.home', ['jm.i18next']) + .controller( + 'loadingAppController', + ['$scope', LoadingAppController] + ) + .service( + 'totpPromptService', + ['$log', '$rootScope', '$q', TotpPromptService] + ) + .controller( + 'totpPromptController', + ['$scope', 'totpPromptService', TotpPromptController] + ) + .service( + 'errorService', + ['$log', ErrorService] + ) + .controller( + 'errorController', + ['$scope', 'errorService', 'alertService', ErrorController] + ) + .controller( + 'headerController', + ['$scope', 'userService', '$location', '$modal', '$timeout', 'hotkeys', 'appConf', HeaderController] + ) + .service( + 'notificationsService', + ['$log', '$rootScope', 'cryptoService', 'userService', NotificationsService] + ) + .controller( + 'notificationsController', + [ + '$scope', '$rootScope', '$log', '$timeout', '$route', + '$i18next', 'notificationsService', 'userService', 'inboxService', NotificationsController + ] + ) + .config( + [ + '$routeProvider', + function ($routeProvider) { + $routeProvider + .when( + '/configuracion', + {templateUrl: '/assets/javascripts/home/views/configuracion.html'} + ); + } + ] + ); + return undefined; + } +); diff --git a/app/assets/javascripts/home/notificationsController.js b/app/assets/javascripts/home/notificationsController.js index 209e802..271b6c8 100755 --- a/app/assets/javascripts/home/notificationsController.js +++ b/app/assets/javascripts/home/notificationsController.js @@ -69,15 +69,9 @@ function NotificationsController($scope, $rootScope, $log, $timeout, $route, $i1 } $i18next.options.lng = nextLangFront; // userService.setLanguage(nextLangBack); - $rootScope.language = nextLangFront; + $scope.$emit("i18nextLanguageChange", { lang: nextLangFront }); $route.reload(); - $rootScope.$apply(); - $timeout(function() { - $rootScope.$broadcast('languageChanged'); - $rootScope.$broadcast('languageChanged'); - $rootScope.$digest(); - }); - $scope.apply(); + }; } diff --git a/app/assets/javascripts/home/views/aboutModal.html b/app/assets/javascripts/home/views/aboutModal.html index 35f9020..fc11dca 100755 --- a/app/assets/javascripts/home/views/aboutModal.html +++ b/app/assets/javascripts/home/views/aboutModal.html @@ -4,8 +4,8 @@ \ No newline at end of file diff --git a/app/assets/javascripts/home/views/nav.html b/app/assets/javascripts/home/views/nav.html index 04454c5..3312caf 100755 --- a/app/assets/javascripts/home/views/nav.html +++ b/app/assets/javascripts/home/views/nav.html @@ -5,29 +5,29 @@