arnaucube
arnaucube/commonroutesAppPublic Self-hosted repository
commonroutesApp/www/js/editTravel.js
www/js/editTravel.jsRaw
  1angular.module('app.editTravel', ['pascalprecht.translate', 'ui-leaflet'])
  2
  3.controller('EditTravelCtrl', function($scope, $stateParams, $translate,
  4        $http, $filter, $ionicLoading) {
  5  $scope.center = {};
  6  $scope.bounds = {};
  7  $scope.markers = [];
  8  $scope.tiles= {
  9      url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
 10      options: {
 11          attribution: '<a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
 12      }
 13  };
 14  $scope.travel={};
 15  // get the travel
 16  $http.get(urlapi + 'travels/id/' + $stateParams.travelid)
 17    .then(function(data) {
 18      console.log('data success travels');
 19      console.log(data); // for browser console
 20      $scope.travel = data.data; // for UI
 21      $scope.travel.date = new Date($scope.travel.date);
 22      $scope.markers = [];
 23      $scope.markers.push({
 24        lat: Number($scope.travel.from.lat),
 25        lng: Number($scope.travel.from.long),
 26        message: $scope.travel.from.name
 27      });
 28      $scope.markers.push({
 29        lat: Number($scope.travel.to.lat),
 30        lng: Number($scope.travel.to.long),
 31        message: $scope.travel.to.name
 32      });
 33      $scope.center = {
 34        lat: (Number($scope.travel.from.lat) + Number($scope.travel.to.lat)) / 2,
 35        lng: (Number($scope.travel.from.long) + Number($scope.travel.to.long)) / 2,
 36        zoom: 4
 37      };
 38      $scope.$broadcast('scroll.refreshComplete'); //refresher stop
 39    }, function(data) {
 40      console.log('data error');
 41      $scope.$broadcast('scroll.refreshComplete'); //refresher stop
 42      $ionicLoading.show({
 43        template: 'Error connecting server',
 44        noBackdrop: true,
 45        duration: 2000
 46      });
 47    });
 48
 49    $scope.updateTravel =function(){
 50        $http({
 51            url: urlapi + 'travels/id/modify/' + $scope.travel._id,
 52            method: "PUT",
 53            data: $scope.travel
 54        })
 55        .then(function(data) {
 56            console.log(data);
 57
 58            window.location="#app/travels/" + $scope.travel._id;
 59        },
 60        function(data) { // optional
 61            // failed
 62            console.log(data);
 63            $ionicLoading.show({ template: 'Error updating travel. ' + data.data, noBackdrop: true, duration: 2000 });
 64
 65        });
 66    };
 67    $scope.getGeo = function(){
 68
 69        $scope.markers=[];
 70        console.log($scope.travel.from.name);
 71        console.log($scope.travel.to.name);
 72        $http.get('https://nominatim.openstreetmap.org/search?q=' + $scope.travel.from.name + '&format=json&limit=1')
 73        .then(function(data) {
 74            console.log(data);
 75            if(data.data[0])
 76            {
 77                $scope.travel.from.lat=data.data[0].lat;
 78                $scope.travel.from.long=data.data[0].lon;
 79                $scope.travel.from.name=data.data[0].display_name;
 80                $scope.markers.push({
 81                    lat: Number(data.data[0].lat),
 82                    lng: Number(data.data[0].lon),
 83                    message: data.data[0].display_name
 84                });
 85            }
 86            $http.get('https://nominatim.openstreetmap.org/search?q=' + $scope.travel.to.name + '&format=json&limit=1')
 87            .then(function(data) {
 88                if(data.data[0])
 89                {
 90                    $scope.travel.to.lat=data.data[0].lat;
 91                    $scope.travel.to.long=data.data[0].lon;
 92                    $scope.travel.to.name=data.data[0].display_name;
 93                    $scope.markers.push({
 94                        lat: Number(data.data[0].lat),
 95                        lng: Number(data.data[0].lon),
 96                        message: data.data[0].display_name
 97                    });
 98                }
 99            });
100        });
101
102    };
103});