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

navigation.js 3.1KB

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