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