arnaucube
arnaucube/commonroutesWebAppPublic Self-hosted repository
commonroutesWebApp/views/travel/travel.js
views/travel/travel.jsRaw
  1'use strict';
  2
  3angular.module('app.travel', ['ngRoute', 'ui-leaflet'])
  4
  5    .config(['$routeProvider', function($routeProvider) {
  6        $routeProvider.when('/travel/:travelid', {
  7            templateUrl: 'views/travel/travel.html',
  8            controller: 'TravelCtrl'
  9        });
 10    }])
 11
 12    .controller('TravelCtrl', function($scope, $http, $routeParams,
 13        leafletData, leafletBoundsHelpers, toastr) {
 14
 15        $scope.storageuser = JSON.parse(localStorage.getItem("cr_webapp_userdata"));
 16        $scope.travel = {};
 17
 18
 19        //map
 20        $scope.center = {
 21            /*lat: 0,
 22            lng: 0,
 23            zoom: 1*/
 24        };
 25        $scope.bounds = {};
 26        $scope.markers = [];
 27        $scope.tiles = {
 28            url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
 29            options: {
 30                attribution: '<a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
 31            }
 32        };
 33
 34        $http.get(urlapi + 'travels/id/' + $routeParams.travelid)
 35            .then(function(data, status, headers, config) {
 36                console.log('data success');
 37                console.log(data);
 38
 39                $scope.travel = data.data;
 40
 41                //map
 42                $scope.markers = [];
 43                $scope.markers.push({
 44                    lat: Number($scope.travel.from.lat),
 45                    lng: Number($scope.travel.from.long),
 46                    message: $scope.travel.from.name
 47                });
 48                $scope.markers.push({
 49                    lat: Number($scope.travel.to.lat),
 50                    lng: Number($scope.travel.to.long),
 51                    message: $scope.travel.to.name
 52                });
 53                $scope.center = {
 54                    lat: (Number($scope.travel.from.lat) + Number($scope.travel.to.lat)) / 2,
 55                    lng: (Number($scope.travel.from.long) + Number($scope.travel.to.long)) / 2,
 56                    zoom: 4
 57                };
 58            }, function(data, status, headers, config) {
 59                console.log('data error');
 60            });
 61
 62
 63        //delete travel
 64        $scope.deleteTravel = function() {
 65            console.log("delete travel: " + $routeParams.travelid);
 66            $http({
 67                    url: urlapi + '/admin/travels/id/' + $routeParams.travelid,
 68                    method: "DELETE"
 69                })
 70                .then(function(data) {
 71                        console.log(data);
 72                        $scope.travels = data.data;
 73                          toastr.info('Travel deleted');
 74
 75                        window.location = "#!/main/";
 76                    },
 77                    function(data) { // optional
 78                        // failed
 79                          toastr.error('Error on delete travel');
 80                    });
 81        };
 82
 83        $scope.joinTravel = function() {
 84          $http({
 85              url: urlapi + 'travels/join/' + $routeParams.travelid,
 86              method: "POST",
 87              data: {}
 88            })
 89            .then(function(data) {
 90                console.log("data: ");
 91                console.log(data);
 92                if (data.data.success == false) {
 93                  toastr.error('Error on join');
 94                } else {
 95                  $scope.travel = data.data;
 96                    toastr.success('Joined travel');
 97                }
 98              },
 99              function(response) { // optional
100                // failed
101              });
102        };
103        $scope.unjoinTravel = function() {
104          $http({
105              url: urlapi + 'travels/unjoin/' + $routeParams.travelid,
106              method: "POST",
107              data: {}
108            })
109            .then(function(data) {
110                console.log("data: ");
111                console.log(data);
112                if (data.data.success == false) {
113                  toastr.error('Error on unjoin');
114                } else {
115                  $scope.travel = data.data;
116                    toastr.success('Unjoined travel');
117                }
118              },
119              function(response) { // optional
120                // failed
121              });
122        };
123
124        $scope.declineJoin = function(joinPetition) {
125          $http({
126              url: urlapi + 'travels/declineJoin/' + $routeParams.travelid,
127              method: "POST",
128              data: {
129                userid: joinPetition._id
130              }
131            })
132            .then(function(data) {
133                console.log("data: ");
134                console.log(data);
135                if (data.data.success == false) {
136                  toastr.error('Error on declining');
137                } else {
138                  $scope.travel = data.data;
139                  console.log("success");
140                  toastr.success('Join declined');
141                }
142              },
143              function(response) { // optional
144                // failed
145              });
146        };
147
148        $scope.acceptJoin = function(joinPetition) {
149          $http({
150              url: urlapi + 'travels/acceptJoin/' + $routeParams.travelid,
151              method: "POST",
152              data: {
153                userid: joinPetition._id
154              }
155            })
156            .then(function(data) {
157                console.log("data: ");
158                console.log(data);
159                if (data.data.success == false) {
160                  toastr.error('Error on accepting');
161                } else {
162                  $scope.travel = data.data;
163                  console.log("success");
164                  toastr.success('Join accepted');
165                }
166              },
167              function(response) { // optional
168                // failed
169              });
170        };
171
172        $scope.leaveTravel = function() {
173
174          $http({
175              url: urlapi + 'travels/leave/' + $routeParams.travelid,
176              method: "POST",
177              data: {}
178            })
179            .then(function(data) {
180                console.log("data: ");
181                console.log(data);
182                if (data.data.success == false) {
183                  toastr.error('Error on leave');
184                } else {
185                  $scope.travel = data.data;
186                  toastr.success('Travel leaved');
187                }
188              },
189              function(response) { // optional
190                // failed
191              });
192        };
193
194
195        $scope.userHasJoined = function(myArray, searchTerm) {
196          //console.log(myArray+", "+searchTerm);
197          if (myArray) {
198            for (var i = 0, len = myArray.length; i < len; i++) {
199              //console.log(myArray[i] + " - " + searchTerm);
200              if (myArray[i]._id === searchTerm) {
201                //console.log("i: " + i);
202                return i;
203              }
204            }
205          }
206          //console.log("i: -1");
207          return -1;
208        };
209
210    });