@ -0,0 +1,78 @@ |
|||||
|
angular.module('app.byCategories', ['pascalprecht.translate']) |
||||
|
|
||||
|
.controller('ByCategoriesCtrl', function($scope, $http, $ionicModal, |
||||
|
$timeout, $ionicLoading, $filter) { |
||||
|
|
||||
|
|
||||
|
$scope.events=[]; |
||||
|
$scope.alerts=[]; |
||||
|
$scope.page=0; |
||||
|
$scope.doRefresh = function() { |
||||
|
/* events refresh: */ |
||||
|
//$http.get(urlapi + 'events?page=' + $scope.page)
|
||||
|
$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
|
||||
|
|
||||
|
}, function(data){ |
||||
|
console.log('data error'); |
||||
|
$scope.$broadcast('scroll.refreshComplete');//refresher stop
|
||||
|
$ionicLoading.show({ template: 'Error connecting server', noBackdrop: true, duration: 2000 }); |
||||
|
|
||||
|
}); |
||||
|
$http.get(urlapi + 'alerts') |
||||
|
.then(function(data){ |
||||
|
$scope.alerts=data.data; |
||||
|
}, function(data){ |
||||
|
}); |
||||
|
}; |
||||
|
$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")); |
||||
|
console.log("savedEvents"); |
||||
|
console.log($scope.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; |
||||
|
}; |
||||
|
}); |
@ -0,0 +1,39 @@ |
|||||
|
angular.module('app.login', ['pascalprecht.translate']) |
||||
|
|
||||
|
.controller('LoginCtrl', function($scope, $ionicModal, $timeout, $http, $window, $ionicLoading) { |
||||
|
|
||||
|
// Form data for the login modal
|
||||
|
$scope.loginData = {}; |
||||
|
// Perform the login action when the user submits the login form
|
||||
|
$scope.doLogin = function() { |
||||
|
console.log('Doing login', $scope.loginData); |
||||
|
|
||||
|
$http({ |
||||
|
url: urlapi + 'login', |
||||
|
method: "POST", |
||||
|
data: $scope.loginData |
||||
|
}) |
||||
|
.then(function(response) { |
||||
|
// success
|
||||
|
console.log("response: "); |
||||
|
console.log(response.data); |
||||
|
if (response.data.success == true) |
||||
|
{ |
||||
|
localStorage.setItem("events_app_token", response.data.token); |
||||
|
localStorage.setItem("events_app_userdata", JSON.stringify(response.data.user)); |
||||
|
window.location.href="#/app/main"; |
||||
|
window.location.reload(); |
||||
|
}else{ |
||||
|
console.log("login failed"); |
||||
|
$ionicLoading.show({ template: 'Login failed, user or password error.', noBackdrop: true, duration: 2000 }); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
}, |
||||
|
function(response) { // optional
|
||||
|
// failed
|
||||
|
console.log(response); |
||||
|
}); |
||||
|
|
||||
|
}; |
||||
|
}); |
@ -0,0 +1,42 @@ |
|||||
|
<ion-view view-title="Events By Categories"> |
||||
|
<ion-content class="c_blueGrey100"> |
||||
|
<ion-refresher pulling-text="{{'Pull_to_refresh' | translate}}..." on-refresh="doRefresh()"> |
||||
|
</ion-refresher> |
||||
|
<a href="#/app/alerts" class="item item-icon-left c_red400" |
||||
|
ng-show="alerts"> |
||||
|
<i class="icon ion-android-alert"></i> <b>{{alerts.length}}</b> Emergency alerts! |
||||
|
</a> |
||||
|
<div class="card" ng-repeat="event in events"> |
||||
|
<a class="item item-avatar" ng-href="#/app/users/{{event.user._id}}"> |
||||
|
<img ng-src="{{event.user.img}}"> |
||||
|
<h2>{{event.user.username}}</h2> |
||||
|
<p>{{event.user.shortDescription}}</p> |
||||
|
</a> |
||||
|
<a ng-href="#/app/events/{{event._id}}" class="item item-image" |
||||
|
ng-show="event.img"> |
||||
|
<img ng-src="{{event.img}}"> |
||||
|
</a> |
||||
|
<a ng-href="#/app/events/{{event._id}}" class="item item-text-wrap"> |
||||
|
<h2>{{event.title}}</h2> |
||||
|
<p>{{event.description}}</p> |
||||
|
<p>{{event.date | date: 'HH:mm, dd/MM/yyyy'}}</p> |
||||
|
</a> |
||||
|
<div class="item tabs tabs-icon-only"> |
||||
|
<a class="tab-item" ng-click="share(event)"> |
||||
|
<i class="icon ion-android-share-alt"></i> |
||||
|
</a> |
||||
|
<a class="tab-item"> |
||||
|
|
||||
|
</a> |
||||
|
<a class="tab-item" ng-click="unsaveEvent(event)" |
||||
|
ng-show="isEventSaved(event)"> |
||||
|
<i class="icon ion-heart ctext_red600"></i> |
||||
|
</a> |
||||
|
<a class="tab-item" ng-click="saveEvent(event)" |
||||
|
ng-hide="isEventSaved(event)"> |
||||
|
<i class="icon ion-heart"></i> |
||||
|
</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</ion-content> |
||||
|
</ion-view> |
@ -0,0 +1,36 @@ |
|||||
|
<ion-view view-title="Login"> |
||||
|
<ion-content class="o_loginBackground"> |
||||
|
<div> |
||||
|
<div class="o_loginDivForm"> |
||||
|
<h1>Log in to post</h1> |
||||
|
|
||||
|
<span class="item-note">v0.0.1</span> |
||||
|
<br><br> |
||||
|
<p> |
||||
|
<i class="icon ion-person"></i> |
||||
|
<input ng-model="loginData.email" class="o_loginInput" |
||||
|
placeholder="{{'Email' | translate}}"> |
||||
|
</p> |
||||
|
<br> |
||||
|
<p> |
||||
|
<i class="icon ion-locked"></i> |
||||
|
<input ng-model="loginData.password" class="o_loginInput" |
||||
|
placeholder="{{'Password' | translate}}" style="-webkit-text-security: disc;"> |
||||
|
</p> |
||||
|
<br> |
||||
|
<p> |
||||
|
<a class="o_loginButton button button-block c_blueGrey400" ng-click="doLogin()"> |
||||
|
{{'LOG_IN' | translate}} |
||||
|
</a> |
||||
|
</p> |
||||
|
<br> |
||||
|
<p> |
||||
|
|
||||
|
<a class="o_signupLink" ng-href="#/app/signup"> |
||||
|
Need account? Contact us! |
||||
|
</a> |
||||
|
</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</ion-content> |
||||
|
</ion-view> |