arnaucube
arnaucube/commonroutesAppPublic Self-hosted repository
commonroutesApp/www/js/travel.js
www/js/travel.jsRaw
  1angular.module('app.travel', ['pascalprecht.translate', 'ui-leaflet'])
  2
  3.controller('TravelCtrl', function($scope, $stateParams, $http,
  4        $ionicModal, $ionicLoading, $ionicPopup, $filter) {
  5
  6    $scope.center= {
  7        lat: 0,
  8        lng: 0,
  9        zoom: 1
 10    };
 11    $scope.markers=[];
 12    $scope.tiles= {
 13        url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
 14        options: {
 15            attribution: '<a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
 16        }
 17    };
 18
 19    $scope.travel={};
 20    $scope.doRefresh = function() {
 21      /* travels refresh: */
 22        $http.get(urlapi + 'travels/id/' + $stateParams.travelid)
 23        .then(function(data){
 24            console.log('data success travels');
 25            console.log(data); // for browser console
 26            $scope.travel = data.data; // for UI
 27            $scope.markers=[];
 28            $scope.markers.push({
 29                lat: Number($scope.travel.from.lat),
 30                lng: Number($scope.travel.from.long),
 31                message: $scope.travel.from.name
 32            });
 33            $scope.markers.push({
 34                lat: Number($scope.travel.to.lat),
 35                lng: Number($scope.travel.to.long),
 36                message: $scope.travel.to.name
 37            });
 38            $scope.$broadcast('scroll.refreshComplete');//refresher stop
 39
 40        }, function(data){
 41            console.log('data error');
 42            $scope.$broadcast('scroll.refreshComplete');//refresher stop
 43            $ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 });
 44
 45        });
 46    };
 47    $scope.doRefresh();
 48
 49    $scope.deleteTravel = function(){
 50
 51       var confirmPopup = $ionicPopup.confirm({
 52         title: 'Deleting publication',
 53         template: 'Are you sure you want to delete <b>'+ $scope.travel.title+'</b>?'
 54       });
 55       confirmPopup.then(function(res) {
 56       if(res) {
 57         console.log('You are sure');
 58         console.log("delete travel: " + $stateParams.travelId);
 59         $http({
 60             url: urlapi + 'travels/' + $stateParams.travelId,
 61             method: "DELETE"
 62         })
 63         .then(function(response) {
 64                 console.log(response);
 65                 $scope.travels=response.data;
 66                 localStorage.setItem('c_travels', JSON.stringify($scope.travels));
 67                 localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
 68
 69         },
 70         function(response) { // optional
 71                 // failed
 72         });
 73       } else {
 74         console.log('You are not sure');
 75       }
 76     });
 77
 78
 79    };
 80    $scope.joinTravel = function(){
 81        $http({
 82            url: urlapi + 'travels/join/'+ $stateParams.travelid,
 83            method: "POST",
 84            data: {}
 85        })
 86        .then(function(data) {
 87            console.log("data: ");
 88            console.log(data);
 89            if(data.success==false){
 90                $ionicLoading.show({template: 'Error on unjoin', noBackdrop: true, duration: 2000});
 91            }else{
 92                $scope.travel=data.data;
 93            }
 94        },
 95        function(response) { // optional
 96                // failed
 97        });
 98    };
 99    $scope.unjoinTravel = function(){
100        $http({
101            url: urlapi + 'travels/unjoin/'+ $stateParams.travelid,
102            method: "POST",
103            data: {}
104        })
105        .then(function(data) {
106            console.log("data: ");
107            console.log(data);
108            if(data.success==false){
109                $ionicLoading.show({template: 'Error on unjoin', noBackdrop: true, duration: 2000});
110            }else{
111                $scope.travel=data.data;
112            }
113        },
114        function(response) { // optional
115                // failed
116        });
117    };
118
119    /* adding comment */
120    $scope.doingNewComment=false;
121    $scope.newComment={};
122
123    $scope.showNewComment = function() {
124      $scope.doingNewComment=true;
125    };
126    $scope.closeNewComment = function() {
127        $scope.doingNewComment=false;
128    };
129    $scope.doNewComment = function() {
130        /*$scope.newComment.commentUserId=localStorage.getItem("c_userid");
131        $scope.newComment.commentUsername=localStorage.getItem("c_username");
132        $scope.newComment.commentAvatar=localStorage.getItem("c_avatar");*/
133console.log($scope.newComment);
134        $http({
135          url: urlapi + 'travels/'+ $stateParams.travelId+'/comment',
136          method: "POST",
137          data: $scope.newComment
138        })
139        .then(function(response) {
140              // success
141              console.log("newComment added to server: " + response);
142              console.log(response);
143              $scope.travels=response.data;
144              localStorage.setItem('c_travels', JSON.stringify($scope.travels));
145              localStorage.setItem('c_travelsLastDate', JSON.stringify(new Date()));
146              $scope.travel = $filter('filter')($scope.travels, $stateParams.travelId, true)[0];
147
148              if(response.data.success==false){
149
150                  $ionicLoading.show({ template: 'failed to generate new asking package', noBackdrop: true, duration: 2000 });
151              }
152        },
153        function(response) { // optional
154              // failed
155        });
156        $scope.closeNewComment();
157    };
158
159
160    $scope.userHasJoined = function(myArray, searchTerm) {
161      //console.log(myArray+", "+searchTerm+", "+property);
162        if(myArray)
163        {
164            for(var i = 0, len = myArray.length; i < len; i++) {
165                //console.log(myArray[i] + " - " + searchTerm);
166                if (myArray[i] === searchTerm){
167                    //console.log("i: " + i);
168                    return i;
169                }
170            }
171        }
172        //console.log("i: -1");
173        return -1;
174    };
175});