(function () { 'use strict'; angular .module('app') .controller('TopNavbarController', top_navbar) .directive('clickOut', ['$window', '$parse', function ($window, $parse) { return { restrict: 'A', link: function (scope, element, attrs) { var clickOutHandler = $parse(attrs.clickOut); angular.element($window).on('click', function (event) { if (element[0].contains(event.target)) return; clickOutHandler(scope, {$event: event}); scope.$apply(); }); } }; }]); function top_navbar($state, localizationHelper) { var vm = this; vm.isOpenLanguageSwitcher = false; vm.languageSwitcherStyle = {display: 'none'}; vm.languages = [ {image:"images/lang/en.svg", code:"en", alt:"en"}, {image:"images/lang/jp.svg", code:"ja", alt:"jp"} ]; vm.selectedLanguage = {}; if(localizationHelper.getCurrentLanguage()){ vm.selectedLanguage = vm.languages.find(function(lang){ return lang.code == localizationHelper.getCurrentLanguage(); }); } vm.onClickLanguageSwitcher = function(){ vm.isOpenLanguageSwitcher = !vm.isOpenLanguageSwitcher; if(vm.isOpenLanguageSwitcher){ vm.languageSwitcherStyle = {display: 'block'}; }else{ vm.languageSwitcherStyle = {display: 'none'}; } } vm.onChangeLanguages = function(language){ if(language){ localizationHelper.setLanguage(language.code); vm.selectedLanguage = language; } }; vm.updateTopBar = function(){ vm.username = appLocalStorage.get("email"); }; vm.openCurrentProfile = function(){ $state.go("admins.profile"); }; vm.closeLanguageSwitcher = function(){ vm.isOpenLanguageSwitcher = false; vm.languageSwitcherStyle = {display: 'none'}; }; } // IoC container. top_navbar.$inject = [ "$state", "helpers.localization" ]; })();