(function () { "use strict"; angular.module("enrNavBarModule", []) .directive("enrNavBar", [function () { return { templateUrl: "Scripts/EnrAngular/Directives/enrNavBar.html", scope: {}, controller: "enrNavBarController", restrict: "E" }; }]) .directive("enrRefSelect", [function () { return { templateUrl: "Scripts/EnrAngular/Directives/enrRefSelect.html", scope: {}, controller: "enrNavBarController", restrict: "E" }; }]) .controller("enrNavBarController", ["$scope", "$rootScope", "$timeout", "enrModeManager", "exportService", function ($scope, $rootScope, $timeout, enrModeManager) { $scope.turnOutModeValue = enrModeManager.modeEnum.turnout; $scope.referendumsValue = enrModeManager.modeEnum.referendums; $scope.officesValue = enrModeManager.modeEnum.offices; var setActiveNavItem = function (newMode) { $scope.officeItemClass = "nav"; $scope.refItemClass = "nav"; $scope.turnoutItemClass = "nav"; $scope.downloadItemClass = "nav"; $scope.currentMode = newMode; if (newMode === enrModeManager.modeEnum.offices) { $scope.officeItemClass += " active"; } else if (newMode === enrModeManager.modeEnum.referendums) { $scope.refItemClass += " active"; } else if (newMode === enrModeManager.modeEnum.turnout) { $scope.turnoutItemClass += " active"; } else if (newMode === enrModeManager.modeEnum.downloadResults) { $scope.downloadItemClass += " active"; } } setActiveNavItem(enrModeManager.getCurMode()); $scope.badgeClassG = "party-badge-ref header-badge-ref"; $scope.$on("SELECT_FROM_SPLASH", function (event, index) { $scope.navItemClicked(index, true); }); $scope.navItemClicked = function (newMode, isSplash) { $scope.currentMode = newMode; // Return early if not actually changing modes if (newMode === enrModeManager.getCurMode()) return; if (!isSplash) { // This could take some time. Show busy working. $rootScope.$broadcast("PUSH_BUSY_WORKING"); } // Delay execution of syncronous logic to give the busy working effect time to appear before causing ui-locking. $timeout(function () { enrModeManager.setCurMode(newMode); }, 500); } $scope.$on(enrModeManager.modeChangeEventName, function (event, newMode) { setActiveNavItem(newMode); }); } ]); }());