mirror of
https://github.com/arnaucube/openEventsPlatformApp.git
synced 2026-02-07 03:36:44 +01:00
map of events implemented
This commit is contained in:
@@ -10,11 +10,14 @@ angular.module('app', [
|
||||
'app.menu',
|
||||
'app.main',
|
||||
'app.events',
|
||||
'app.mapEvents',
|
||||
'app.event',
|
||||
'app.alerts',
|
||||
'app.savedEvents',
|
||||
'app.categories',
|
||||
'app.byCategory',
|
||||
'app.place',
|
||||
'app.byPlace',
|
||||
'app.users',
|
||||
'app.user',
|
||||
'app.login',
|
||||
@@ -67,6 +70,15 @@ angular.module('app', [
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('app.mapEvents', {
|
||||
url: '/mapEvents',
|
||||
views: {
|
||||
'menuContent': {
|
||||
templateUrl: 'templates/mapEvents.html',
|
||||
controller: 'MapEventsCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('app.event', {
|
||||
url: '/events/:eventid',
|
||||
views: {
|
||||
@@ -112,6 +124,24 @@ angular.module('app', [
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('app.place', {
|
||||
url: '/place',
|
||||
views: {
|
||||
'menuContent': {
|
||||
templateUrl: 'templates/place.html',
|
||||
controller: 'PlaceCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('app.byPlace', {
|
||||
url: '/byPlace/:place',
|
||||
views: {
|
||||
'menuContent': {
|
||||
templateUrl: 'templates/byPlace.html',
|
||||
controller: 'ByPlaceCtrl'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('app.users', {
|
||||
url: '/users',
|
||||
views: {
|
||||
|
||||
68
www/js/byPlace.js
Normal file
68
www/js/byPlace.js
Normal file
@@ -0,0 +1,68 @@
|
||||
angular.module('app.byPlace', ['pascalprecht.translate'])
|
||||
|
||||
.controller('ByPlaceCtrl', function($scope, $http, $ionicModal,
|
||||
$timeout, $ionicLoading, $filter, $stateParams) {
|
||||
|
||||
$scope.category=$stateParams.categoryname;
|
||||
$scope.events=[];
|
||||
$scope.page=0;
|
||||
$scope.doRefresh = function() {
|
||||
/* events refresh: */
|
||||
//$http.get(urlapi + 'events?page=' + $scope.page)
|
||||
$http.get(urlapi + 'events/category/'+ $stateParams.categoryname)
|
||||
.then(function(data){
|
||||
$scope.events=data.data;
|
||||
console.log($scope.events);
|
||||
$scope.$broadcast('scroll.refreshComplete');//refresher stop
|
||||
|
||||
}, function(data){
|
||||
console.log('data error');
|
||||
$scope.$broadcast('scroll.refreshComplete');//refresher stop
|
||||
$ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 });
|
||||
|
||||
});
|
||||
};
|
||||
$scope.doRefresh();
|
||||
|
||||
$scope.share = function(event){
|
||||
var message = "[" + event.title + "]" + event.description;
|
||||
/*var subject = event.title;
|
||||
var file= ['',''];*/
|
||||
var link = "http://duckduckgo.com";
|
||||
$cordovaSocialSharing
|
||||
.share(message, link) // Share via native share sheet
|
||||
.then(function(result) {
|
||||
// Success!
|
||||
}, function(err) {
|
||||
// An error occured. Show a message to the user
|
||||
});
|
||||
};
|
||||
$scope.savedEvents=[];
|
||||
$scope.$on('$ionicView.enter', function(){//per executar-ho cada cop que es carrega el view
|
||||
if (localStorage.getItem("events_app_savedEvents")) {
|
||||
$scope.savedEvents = JSON.parse(localStorage.getItem("events_app_savedEvents"));
|
||||
}
|
||||
});
|
||||
$scope.saveEvent = function(event){
|
||||
$scope.savedEvents.push(event);
|
||||
localStorage.setItem("events_app_savedEvents", JSON.stringify($scope.savedEvents));
|
||||
$ionicLoading.show({ template: 'Event saved', noBackdrop: true, duration: 1000 });
|
||||
};
|
||||
$scope.unsaveEvent = function(event){
|
||||
for(var i=0; i<$scope.savedEvents.length; i++) {
|
||||
if ($scope.savedEvents[i]._id === event._id){
|
||||
$scope.savedEvents.splice(i, 1);
|
||||
}
|
||||
}
|
||||
localStorage.setItem("events_app_savedEvents", JSON.stringify($scope.savedEvents));
|
||||
$ionicLoading.show({ template: 'Event unsaved', noBackdrop: true, duration: 1000 });
|
||||
};
|
||||
$scope.isEventSaved = function(event) {
|
||||
for(var i=0; i<$scope.savedEvents.length; i++) {
|
||||
if ($scope.savedEvents[i]._id === event._id){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
});
|
||||
59
www/js/mapEvents.js
Normal file
59
www/js/mapEvents.js
Normal file
@@ -0,0 +1,59 @@
|
||||
angular.module('app.mapEvents', ['pascalprecht.translate', 'ui-leaflet'])
|
||||
|
||||
.controller('MapEventsCtrl', function($scope, $http, $ionicModal,
|
||||
$timeout, $ionicLoading, $filter,
|
||||
leafletBoundsHelpers, $cordovaSocialSharing) {
|
||||
|
||||
//map
|
||||
$scope.center= {
|
||||
lat: 0,
|
||||
lng: 0,
|
||||
zoom: 1
|
||||
};
|
||||
$scope.markers=[];
|
||||
$scope.tiles= {
|
||||
url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||
options: {
|
||||
attribution: '<a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
||||
}
|
||||
};
|
||||
|
||||
$scope.events=[];
|
||||
$scope.page=0;
|
||||
$http.get(urlapi + 'events')
|
||||
.then(function(data){
|
||||
console.log('data success events');
|
||||
console.log(data); // for browser console
|
||||
//$scope.events = data.data; // for UI
|
||||
$scope.events=data.data;
|
||||
$scope.$broadcast('scroll.refreshComplete');//refresher stop
|
||||
for(var i=0; i<$scope.events.length; i++)
|
||||
{
|
||||
if($scope.events[i].location)
|
||||
{
|
||||
var msg="<a href='#/app/events/"+$scope.events[i]._id+"'>"
|
||||
+"<h4>"+$scope.events[i].title + "</h4>"
|
||||
+"<img src='"+$scope.events[i].img+"' style='width:100%;'>"
|
||||
+$scope.events[i].description+"</a>";
|
||||
|
||||
$scope.markers.push({
|
||||
lat: Number($scope.events[i].location.geo.lat),
|
||||
lng: Number($scope.events[i].location.geo.long),
|
||||
message: msg
|
||||
});
|
||||
$scope.center= {
|
||||
lat: Number($scope.events[i].location.geo.lat),
|
||||
lng: Number($scope.events[i].location.geo.long),
|
||||
zoom: 12
|
||||
};
|
||||
}
|
||||
}
|
||||
}, function(data){
|
||||
console.log('data error');
|
||||
$scope.$broadcast('scroll.refreshComplete');//refresher stop
|
||||
$ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 });
|
||||
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
51
www/js/place.js
Normal file
51
www/js/place.js
Normal file
@@ -0,0 +1,51 @@
|
||||
angular.module('app.place', ['pascalprecht.translate', 'ui-leaflet'])
|
||||
|
||||
.controller('PlaceCtrl', function($scope, $http, $ionicModal, $timeout,
|
||||
$ionicLoading, $filter, leafletData, leafletBoundsHelpers) {
|
||||
|
||||
$scope.center= {
|
||||
lat: 0,
|
||||
lng: 0,
|
||||
zoom: 1
|
||||
};
|
||||
$scope.markers=new Array();
|
||||
$scope.tiles= {
|
||||
url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||
options: {
|
||||
attribution: '<a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
||||
}
|
||||
};
|
||||
$scope.place={
|
||||
location:{
|
||||
direction:"",
|
||||
geo:{
|
||||
lat:"",
|
||||
long:""
|
||||
}
|
||||
}
|
||||
};
|
||||
$scope.getGeo = function(){
|
||||
$scope.markers=[];
|
||||
console.log($scope.place.location.direction);
|
||||
$http.get('http://nominatim.openstreetmap.org/search?q=' + $scope.place.location.direction + '&format=json&limit=1')
|
||||
.then(function(data) {
|
||||
console.log(data);
|
||||
if(data.data[0])
|
||||
{
|
||||
$scope.place.location.geo.lat=data.data[0].lat;
|
||||
$scope.place.location.geo.long=data.data[0].lon;
|
||||
//$scope.newtravel.from.name=data.data[0].display_name;
|
||||
$scope.markers.push({
|
||||
lat: Number(data.data[0].lat),
|
||||
lng: Number(data.data[0].lon),
|
||||
message: $scope.place.location.direction
|
||||
});
|
||||
$scope.center= {
|
||||
lat: Number(data.data[0].lat),
|
||||
lng: Number(data.data[0].lon),
|
||||
zoom: 16
|
||||
};
|
||||
}
|
||||
});
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user