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: '
Verifico il biglietto...
'
});
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 user’s 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: 'Share 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");
})
;