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

navigation.js 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. $mixpanel.track('Index View');
  12. $rootScope.$on('background:loaded', function() {
  13. if(!$scope.$$phase) {
  14. $scope.$apply(function(){
  15. $scope.navigation = Data.getNavigation();
  16. });
  17. } else {
  18. $scope.navigation = Data.getNavigation();
  19. }
  20. });
  21. $scope.subNavigation = [];
  22. $scope.sub2Navigation = [];
  23. $scope.last_click = "";
  24. $scope.last_click2 = "";
  25. $scope.btnNavclick = function(index){
  26. if($scope.navigation[index].link == 'submenu') {
  27. if($scope.last_click != $scope.navigation[index].title){
  28. console.log("Opening submenu: " + $scope.navigation[index].title);
  29. $scope.sub2Navigation = [];
  30. $scope.subNavigation = $scope.navigation[index].submenu;
  31. } else if ($scope.last_click === $scope.navigation[index].title && $scope.subNavigation.length === 0) {
  32. $scope.subNavigation = $scope.navigation[index].submenu;
  33. console.log("Opening submenu: " + $scope.navigation[index].title);
  34. } else {
  35. $scope.subNavigation = [];
  36. $scope.sub2Navigation = [];
  37. console.log("Closing submenu: " + $scope.navigation[index].title);
  38. }
  39. $scope.last_click = $scope.navigation[index].title;
  40. } else {
  41. console.log("> Redirecting to page " + $scope.navigation[index].link);
  42. $location.path($scope.navigation[index].link);
  43. }
  44. };
  45. $scope.btnSubNavclick = function(index){
  46. if($scope.subNavigation[index].link == "submenu") {
  47. if($scope.last_click2 != $scope.subNavigation[index].title){
  48. $scope.sub2Navigation = [];
  49. $scope.sub2Navigation = $scope.subNavigation[index].submenu;
  50. } else if ($scope.last_click2 === $scope.subNavigation[index].title && $scope.sub2Navigation.length === 0){
  51. $scope.sub2Navigation = $scope.subNavigation[index].submenu;
  52. console.log("Opening submenu: " + $scope.subNavigation[index].title);
  53. } else {
  54. $scope.sub2Navigation = [];
  55. console.log("Closing submenu: " + $scope.subNavigation[index].title);
  56. }
  57. $scope.last_click2 = $scope.subNavigation[index].title;
  58. } else {
  59. console.log("> Redirecting to page " + $scope.subNavigation[index].link);
  60. $location.path($scope.subNavigation[index].link);
  61. }
  62. };
  63. $scope.btnSub2Navclick = function(index) {
  64. if($scope.sub2Navigation[index].link != "submenu") {
  65. console.log("> Redirecting to page " + $scope.sub2Navigation[index].link);
  66. $location.path($scope.sub2Navigation[index].link);
  67. } else {
  68. console.log("* Error: Only 2 levels of submenu allowed.");
  69. }
  70. };
  71. }]);