Personal portfolio website for Regina Carvalho. Built with Famous.js library.

navigation.js 3.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /**
  2. * @ngdoc function
  3. * @name domainManagerApp.controller:AboutCtrl
  4. * @description
  5. * # AboutCtrl
  6. * Controller of the domainManagerApp
  7. */
  8. angular.module('goApp.navigation', ['famous.angular', 'ngRoute', 'ngFx', 'ngAnimate', 'goApp.data'])
  9. .controller('NavigationController',['$scope', '$rootScope', '$famous', '$timeline', '$http', '$location', '$route', '$timeout', 'Data', '$mixpanel', function ($scope, $rootScope, $famous, $timeline, $http, $location, $route, $timeout, Data, $mixpanel) {
  10. 'use strict';
  11. $rootScope.$on('background:loaded', function() {
  12. if(!$scope.$$phase) {
  13. $scope.$apply(function(){
  14. $scope.navigation = Data.getNavigation();
  15. $scope.track();
  16. });
  17. } else {
  18. $scope.navigation = Data.getNavigation();
  19. $scope.track();
  20. }
  21. });
  22. $scope.subNavigation = [];
  23. $scope.sub2Navigation = [];
  24. $scope.last_click = "";
  25. $scope.last_click2 = "";
  26. $scope.btnNavclick = function(index){
  27. if($scope.navigation[index].link == 'submenu') {
  28. if($scope.last_click != $scope.navigation[index].title){
  29. console.log("Opening submenu: " + $scope.navigation[index].title);
  30. $scope.sub2Navigation = [];
  31. $scope.subNavigation = $scope.navigation[index].submenu;
  32. } else if ($scope.last_click === $scope.navigation[index].title && $scope.subNavigation.length === 0) {
  33. $scope.subNavigation = $scope.navigation[index].submenu;
  34. console.log("Opening submenu: " + $scope.navigation[index].title);
  35. } else {
  36. $scope.subNavigation = [];
  37. $scope.sub2Navigation = [];
  38. console.log("Closing submenu: " + $scope.navigation[index].title);
  39. }
  40. $scope.last_click = $scope.navigation[index].title;
  41. } else {
  42. console.log("> Redirecting to page " + $scope.navigation[index].link);
  43. $location.path($scope.navigation[index].link);
  44. }
  45. };
  46. $scope.btnSubNavclick = function(index){
  47. if($scope.subNavigation[index].link == "submenu") {
  48. if($scope.last_click2 != $scope.subNavigation[index].title){
  49. $scope.sub2Navigation = [];
  50. $scope.sub2Navigation = $scope.subNavigation[index].submenu;
  51. } else if ($scope.last_click2 === $scope.subNavigation[index].title && $scope.sub2Navigation.length === 0){
  52. $scope.sub2Navigation = $scope.subNavigation[index].submenu;
  53. console.log("Opening submenu: " + $scope.subNavigation[index].title);
  54. } else {
  55. $scope.sub2Navigation = [];
  56. console.log("Closing submenu: " + $scope.subNavigation[index].title);
  57. }
  58. $scope.last_click2 = $scope.subNavigation[index].title;
  59. } else {
  60. console.log("> Redirecting to page " + $scope.subNavigation[index].link);
  61. $location.path($scope.subNavigation[index].link);
  62. }
  63. };
  64. $scope.btnSub2Navclick = function(index) {
  65. if($scope.sub2Navigation[index].link != "submenu") {
  66. console.log("> Redirecting to page " + $scope.sub2Navigation[index].link);
  67. $location.path($scope.sub2Navigation[index].link);
  68. } else {
  69. console.log("* Error: Only 2 levels of submenu allowed.");
  70. }
  71. };
  72. $scope.track = function(){
  73. $mixpanel.track('Index View');
  74. }
  75. }]);