angular.module('starter.controllers', [])

.controller('AppCtrl', function($scope, $ionicModal, $timeout) {

  // With the new view caching in Ionic, Controllers are only called
  // when they are recreated or on app start, instead of every page change.
  // To listen for when this page is active (for example, to refresh data),
  // listen for the $ionicView.enter event:
  //$scope.$on('$ionicView.enter', function(e) {
  //});

  // Form data for the login modal
  $scope.loginData = {};

  // Create the login modal that we will use later
  $ionicModal.fromTemplateUrl('templates/login.html', {
    scope: $scope
  }).then(function(modal) {
    $scope.modal = modal;
  });

  // Triggered in the login modal to close it
  $scope.closeLogin = function() {
    $scope.modal.hide();
  };

  // Open the login modal
  $scope.login = function() {
    $scope.modal.show();
  };

  // Perform the login action when the user submits the login form
  $scope.doLogin = function() {
    console.log('Doing login', $scope.loginData);

    // Simulate a login delay. Remove this and replace with your login
    // code if using a login system
    $timeout(function() {
      $scope.closeLogin();
    }, 1000);
  };
})


.controller('TravelsCtrl', function($scope, $http, $ionicModal, $timeout) {
    $scope.travels="";
    $http.get('http://localhost:3000/api/travels')
    .success(function(data, status, headers,config){
        console.log('data success');
        console.log(data); // for browser console
        $scope.travels = data; // for UI
    })
    .error(function(data, status, headers,config){
        console.log('data error');
    })
    .then(function(result){
        travels = result.data;
    });


    $scope.newtravel={};

  // Create the login modal that we will use later
  $ionicModal.fromTemplateUrl('templates/newtravel.html', {
    scope: $scope
  }).then(function(modal) {
    $scope.modal = modal;
  });
  // Triggered in the login modal to close it
  $scope.closeNewTravel = function() {
    $scope.modal.hide();
  };

  // Open the login modal
  $scope.showNewTravel = function() {
    $scope.modal.show();
  };
  // Perform the login action when the user submits the login form
  $scope.doNewTravel = function() {
    console.log('Doing new travel', $scope.newtravel);
    $scope.newtravel.icon="lorry";
    $scope.newtravel.generateddate=$scope.newtravel.date;
    $scope.newtravel.owner="user";
    console.log($scope.newtravel);
    $http({
        url: 'http://localhost:3000/api/travels',
        method: "POST",
        data: $scope.newtravel
    })
    .then(function(response) {
            // success
            console.log("response: ");
            console.log(response);
            $scope.newtravel._id=response.data._id;
            $scope.travels.push($scope.newtravel);
    },
    function(response) { // optional
            // failed
    });

    // Simulate a login delay. Remove this and replace with your login
    // code if using a login system
    $timeout(function() {
      $scope.closeNewTravel();
    }, 1000);
  };
})

.controller('TravelCtrl', function($scope, $stateParams, $http) {
    $scope.travel="";
    console.log($stateParams.travelId);
    $http.get('http://localhost:3000/api/travels/'+$stateParams.travelId)
        .success(function(data, status, headers,config){
            console.log('data success');
            console.log(data); // for browser console
            $scope.travel = data; // for UI
        })
        .error(function(data, status, headers,config){
            console.log('data error');
        })
        .then(function(result){
            travels = result.data;
    });
});
