hackaton-toscana-mobility/hackatonApp/www/js/controllers.js
Lorenzo Iovino a435a1e34d Last commit
2016-01-31 03:51:15 +01:00

668 lines
16 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

angular.module('your_app_name.controllers', [])
.controller('AuthCtrl', function($scope, $ionicConfig) {
})
// APP
.controller('AppCtrl', function($scope, $ionicConfig, $ionicLoading, $state, $rootScope) {
$scope.user={};
$scope.user.name="Laura";
$scope.user.surname="Rossi";
$scope.user.email="laura.rossi@email.it";
$scope.user.telephone="3477608470";
$scope.user.picture="img/laura.jpg";
$scope.user.score=2450;
$rootScope.fine=false;
function startTimer(duration, $scope, $state) {
$rootScope.fine=false;
var timer = duration, minutes, seconds;
var a = setInterval(function ($scope, $state) {
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
console.log(seconds);
$ionicLoading.show({
template: '<p>Verifico il biglietto...</p><ion-spinner></ion-spinner>'
});
if (--timer < 0) {
timer = duration;
console.log("diidi");
clearInterval(a);
$ionicLoading.hide();
$rootScope.fine=true;
}
}, 1000);
}
$scope.takePicture = function($scope, $state){
/* var cameraOptions = {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL
};
var success = function(data){
$scope.$apply(function () {
$scope.cameraPic = "data:image/jpeg;base64," + data;
});
};
var failure = function(message){
alert('Failed because: ' + message);
};
//call the cordova camera plugin to open the device's camera
navigator.camera.getPicture( success , failure , cameraOptions ); */
var fiveMinutes = 3;
startTimer(fiveMinutes, $scope, $state);
};
})
//LOGIN
/*.controller('LoginCtrl', function($scope, $state, $templateCache, $q, $rootScope) {
$scope.doLogIn = function(){
$state.go('app.feeds-categories');
};
$scope.user = {};
$scope.user.email = "john@doe.com";
$scope.user.pin = "12345";
// We need this for the form validation
$scope.selected_tab = "";
$scope.$on('my-tabs-changed', function (event, data) {
$scope.selected_tab = data.title;
});
})*/
.controller('LoginCtrl', function($scope, $state, $templateCache, $q, $rootScope) {
$scope.doLogIn = function(){
$state.go('app.home');
};
$scope.user = {};
$scope.user.email = "tuaemail@dominio.com";
$scope.user.pin = "12345";
// We need this for the form validation
$scope.selected_tab = "";
$scope.$on('my-tabs-changed', function (event, data) {
$scope.selected_tab = data.title;
});
})
/*.controller('SignupCtrl', function($scope, $state) {
$scope.user = {};
$scope.user.email = "john@doe.com";
$scope.doSignUp = function(){
$state.go('app.feeds-categories');
};
})*/
.controller('SignupCtrl', function($scope, $state) {
$scope.user = {};
$scope.user.email = "tuaemail@dominio.com";
$scope.doSignUp = function(){
$state.go('app.home');
};
})
/*.controller('ForgotPasswordCtrl', function($scope, $state) {
$scope.recoverPassword = function(){
$state.go('app.feeds-categories');
};
$scope.user = {};
})*/
.controller('ForgotPasswordCtrl', function($scope, $state) {
$scope.recoverPassword = function(){
//$state.go('app.home');
alert("non implementato");
};
$scope.user = {};
})
.controller('RateApp', function($scope) {
$scope.rateApp = function(){
if(ionic.Platform.isIOS()){
//you need to set your own ios app id
AppRate.preferences.storeAppURL.ios = '1234555553>';
AppRate.promptForRating(true);
}else if(ionic.Platform.isAndroid()){
//you need to set your own android app id
AppRate.preferences.storeAppURL.android = 'market://details?id=ionFB';
AppRate.promptForRating(true);
}
};
})
.controller('SendMailCtrl', function($scope) {
$scope.sendMail = function(){
cordova.plugins.email.isAvailable(
function (isAvailable) {
// alert('Service is not available') unless isAvailable;
cordova.plugins.email.open({
to: 'envato@startapplabs.com',
cc: 'hello@startapplabs.com',
// bcc: ['john@doe.com', 'jane@doe.com'],
subject: 'Greetings',
body: 'How are you? Nice greetings from IonFullApp'
});
}
);
};
})
.controller('MapsCtrl', function($scope, $ionicLoading) {
$scope.info_position = {
lat: 43.07493,
lng: -89.381388
};
$scope.center_position = {
lat: 43.07493,
lng: -89.381388
};
$scope.my_location = "";
$scope.$on('mapInitialized', function(event, map) {
$scope.map = map;
});
$scope.centerOnMe= function(){
$scope.positions = [];
$ionicLoading.show({
template: 'Loading...'
});
// with this function you can get the users current position
// we use this plugin: https://github.com/apache/cordova-plugin-geolocation/
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
$scope.current_position = {lat: pos.G,lng: pos.K};
$scope.my_location = pos.G+", "+pos.K;
$scope.map.setCenter(pos);
$ionicLoading.hide();
});
};
})
.controller('AdsCtrl', function($scope, $ionicActionSheet, AdMob, iAd) {
$scope.manageAdMob = function() {
// Show the action sheet
var hideSheet = $ionicActionSheet.show({
//Here you can add some more buttons
buttons: [
{ text: 'Show Banner' },
{ text: 'Show Interstitial' }
],
destructiveText: 'Remove Ads',
titleText: 'Choose the ad to show',
cancelText: 'Cancel',
cancel: function() {
// add cancel code..
},
destructiveButtonClicked: function() {
console.log("removing ads");
AdMob.removeAds();
return true;
},
buttonClicked: function(index, button) {
if(button.text == 'Show Banner')
{
console.log("show banner");
AdMob.showBanner();
}
if(button.text == 'Show Interstitial')
{
console.log("show interstitial");
AdMob.showInterstitial();
}
return true;
}
});
};
$scope.manageiAd = function() {
// Show the action sheet
var hideSheet = $ionicActionSheet.show({
//Here you can add some more buttons
buttons: [
{ text: 'Show iAd Banner' },
{ text: 'Show iAd Interstitial' }
],
destructiveText: 'Remove Ads',
titleText: 'Choose the ad to show - Interstitial only works in iPad',
cancelText: 'Cancel',
cancel: function() {
// add cancel code..
},
destructiveButtonClicked: function() {
console.log("removing ads");
iAd.removeAds();
return true;
},
buttonClicked: function(index, button) {
if(button.text == 'Show iAd Banner')
{
console.log("show iAd banner");
iAd.showBanner();
}
if(button.text == 'Show iAd Interstitial')
{
console.log("show iAd interstitial");
iAd.showInterstitial();
}
return true;
}
});
};
})
// FEED
//brings all feed categories
.controller('FeedsCategoriesCtrl', function($scope, $http) {
$scope.feeds_categories = [];
$http.get('feeds-categories.json').success(function(response) {
$scope.feeds_categories = response;
});
})
//bring specific category providers
.controller('CategoryFeedsCtrl', function($scope, $http, $stateParams) {
$scope.category_sources = [];
$scope.categoryId = $stateParams.categoryId;
$http.get('feeds-categories.json').success(function(response) {
var category = _.find(response, {id: $scope.categoryId});
$scope.categoryTitle = category.title;
$scope.category_sources = category.feed_sources;
});
})
//this method brings posts for a source provider
.controller('FeedEntriesCtrl', function($scope, $stateParams, $http, FeedList, $q, $ionicLoading, BookMarkService) {
$scope.feed = [];
var categoryId = $stateParams.categoryId,
sourceId = $stateParams.sourceId;
$scope.doRefresh = function() {
$http.get('feeds-categories.json').success(function(response) {
$ionicLoading.show({
template: 'Loading entries...'
});
var category = _.find(response, {id: categoryId }),
source = _.find(category.feed_sources, {id: sourceId });
$scope.sourceTitle = source.title;
FeedList.get(source.url)
.then(function (result) {
$scope.feed = result.feed;
$ionicLoading.hide();
$scope.$broadcast('scroll.refreshComplete');
}, function (reason) {
$ionicLoading.hide();
$scope.$broadcast('scroll.refreshComplete');
});
});
};
$scope.doRefresh();
$scope.bookmarkPost = function(post){
$ionicLoading.show({ template: 'Post Saved!', noBackdrop: true, duration: 1000 });
BookMarkService.bookmarkFeedPost(post);
};
})
// SETTINGS
.controller('SettingsCtrl', function($scope, $ionicActionSheet, $state) {
$scope.airplaneMode = true;
$scope.wifi = false;
$scope.bluetooth = true;
$scope.personalHotspot = true;
$scope.checkOpt1 = true;
$scope.checkOpt2 = true;
$scope.checkOpt3 = false;
$scope.radioChoice = 'B';
// Triggered on a the logOut button click
$scope.showLogOutMenu = function() {
// Show the action sheet
var hideSheet = $ionicActionSheet.show({
//Here you can add some more buttons
// buttons: [
// { text: '<b>Share</b> This' },
// { text: 'Move' }
// ],
destructiveText: 'Logout',
titleText: 'Are you sure you want to logout? This app is awsome so I recommend you to stay.',
cancelText: 'Cancel',
cancel: function() {
// add cancel code..
},
buttonClicked: function(index) {
//Called when one of the non-destructive buttons is clicked,
//with the index of the button that was clicked and the button object.
//Return true to close the action sheet, or false to keep it opened.
return true;
},
destructiveButtonClicked: function(){
//Called when the destructive button is clicked.
//Return true to close the action sheet, or false to keep it opened.
$state.go('auth.walkthrough');
}
});
};
})
// TINDER CARDS
.controller('TinderCardsCtrl', function($scope, $http) {
$scope.cards = [];
$scope.addCard = function(img, name) {
var newCard = {image: img, name: name};
newCard.id = Math.random();
$scope.cards.unshift(angular.extend({}, newCard));
};
$scope.addCards = function(count) {
$http.get('http://api.randomuser.me/?results=' + count).then(function(value) {
angular.forEach(value.data.results, function (v) {
$scope.addCard(v.user.picture.large, v.user.name.first + " " + v.user.name.last);
});
});
};
$scope.addFirstCards = function() {
$scope.addCard("https://dl.dropboxusercontent.com/u/30675090/envato/tinder-cards/left.png","Nope");
$scope.addCard("https://dl.dropboxusercontent.com/u/30675090/envato/tinder-cards/right.png", "Yes");
};
$scope.addFirstCards();
$scope.addCards(5);
$scope.cardDestroyed = function(index) {
$scope.cards.splice(index, 1);
$scope.addCards(1);
};
$scope.transitionOut = function(card) {
console.log('card transition out');
};
$scope.transitionRight = function(card) {
console.log('card removed to the right');
console.log(card);
};
$scope.transitionLeft = function(card) {
console.log('card removed to the left');
console.log(card);
};
})
// BOOKMARKS
.controller('BookMarksCtrl', function($scope, $rootScope, BookMarkService, $state) {
$scope.bookmarks = BookMarkService.getBookmarks();
// When a new post is bookmarked, we should update bookmarks list
$rootScope.$on("new-bookmark", function(event){
$scope.bookmarks = BookMarkService.getBookmarks();
});
$scope.goToFeedPost = function(link){
window.open(link, '_blank', 'location=yes');
};
$scope.goToWordpressPost = function(postId){
$state.go('app.post', {postId: postId});
};
})
// WORDPRESS
.controller('WordpressCtrl', function($scope, $http, $ionicLoading, PostService, BookMarkService) {
$scope.posts = [];
$scope.page = 1;
$scope.totalPages = 1;
$scope.doRefresh = function() {
$ionicLoading.show({
template: 'Loading posts...'
});
//Always bring me the latest posts => page=1
PostService.getRecentPosts(1)
.then(function(data){
$scope.totalPages = data.pages;
$scope.posts = PostService.shortenPosts(data.posts);
$ionicLoading.hide();
$scope.$broadcast('scroll.refreshComplete');
});
};
$scope.loadMoreData = function(){
$scope.page += 1;
PostService.getRecentPosts($scope.page)
.then(function(data){
//We will update this value in every request because new posts can be created
$scope.totalPages = data.pages;
var new_posts = PostService.shortenPosts(data.posts);
$scope.posts = $scope.posts.concat(new_posts);
$scope.$broadcast('scroll.infiniteScrollComplete');
});
};
$scope.moreDataCanBeLoaded = function(){
return $scope.totalPages > $scope.page;
};
$scope.bookmarkPost = function(post){
$ionicLoading.show({ template: 'Post Saved!', noBackdrop: true, duration: 1000 });
BookMarkService.bookmarkWordpressPost(post);
};
$scope.doRefresh();
})
// WORDPRESS POST
.controller('WordpressPostCtrl', function($scope, post_data, $ionicLoading) {
$scope.post = post_data.post;
$ionicLoading.hide();
$scope.sharePost = function(link){
window.plugins.socialsharing.share('Check this post here: ', null, null, link);
};
})
.controller('ImagePickerCtrl', function($scope, $rootScope, $cordovaCamera) {
/*$scope.images = [];
$scope.selImages = function() {
window.imagePicker.getPictures(
function(results) {
for (var i = 0; i < results.length; i++) {
console.log('Image URI: ' + results[i]);
$scope.images.push(results[i]);
}
if(!$scope.$$phase) {
$scope.$apply();
}
}, function (error) {
console.log('Error: ' + error);
}
);
};
$scope.removeImage = function(image) {
$scope.images = _.without($scope.images, image);
};
$scope.shareImage = function(image) {
window.plugins.socialsharing.share(null, null, image);
};
$scope.shareAll = function() {
window.plugins.socialsharing.share(null, null, $scope.images);
};*/
})
.controller('BookingCtrl', function($scope, $http) {
})
.controller('RanksCtrl', function($scope, $http) {
})
.controller('ShopCtrl', function($scope, $http) {
console.log("icic");
})
.controller('BookingCtrl', function($scope, $http) {
})
.controller('AddTicketWithPhotoCtrl', function($scope, $http) {
console.log("OSOSSOS");
})
.controller('AllTicketsCtrl', function($scope, $http) {
})
.controller('AllShopCtrl', function($scope, $http) {
})
.controller('HomeCtrl', function($scope, $http) {
$scope.home_categories = [];
$http.get('home-categories.json').success(function(response) {
$scope.home_categories = response;
});
console.log("HOME");
})
.controller('CategoryCtrl', function($scope, $http, $stateParams, $state, $rootScope, $location) {
$scope.category_sources = [];
$rootScope.fine=false;
$scope.categoryId = $stateParams.categoryId;
console.log($scope.categoryId);
$scope.modifica=false;
$scope.cambiaModifica = function()
{
$scope.modifica=!$scope.modifica;
};
$scope.clickFine = function()
{
$rootScope.fine=false;
$location.url('/app/home');
$scope.user.score+=100;
};
$scope.compra= function()
{
alert("comprato");
};
switch($scope.categoryId)
{
case "addticketwithphoto":
{
$scope.categoryTitle = "Aggiungi Un Biglietto";
break;
}
case "booking":
{
$http.get('home-categories.json').success(function(response) {
var category = _.find(response, {id: $scope.categoryId});
$scope.categoryTitle = category.title;
$scope.category_sources = category.home_sources;
});
break;
}
case "shop":
{
$http.get('home-categories.json').success(function(response) {
var category = _.find(response, {id: $scope.categoryId});
$scope.categoryTitle = category.title;
$scope.category_sources = category.home_sources;
});
break;
}
case "settings":
{
$scope.categoryTitle = "Impostazioni";
console.log("odod");
break;
}
case "alltickets":
{
$scope.categoryTitle = "Tutti I Biglietti";
break;
}
case "allshop":
{
$scope.categoryTitle = "Tutti Gli Acquisti";
break;
}
}
})
.controller('CategoryEntriesCtrl', function($scope, $stateParams, $http) {
$scope.category_sources = [];
$scope.sourceId = $stateParams.sourceId;
$scope.entriesTitle = $stateParams.sourceId;
console.log("ciao");
})
;