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