angular.module('your_app_name.controllers', []) .controller('AuthCtrl', function($scope, $ionicConfig) { }) // APP .controller('AppCtrl', function($scope, $ionicConfig) { $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="15463"; }) //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('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) { $scope.category_sources = []; $scope.categoryId = $stateParams.categoryId; console.log($scope.categoryId); switch($scope.categoryId) { case "addticketwithphoto": { takePicture(); 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; } } }) .controller('CategoryEntriesCtrl', function($scope, $stateParams, $http) { $scope.category_sources = []; $scope.sourceId = $stateParams.sourceId; $scope.entriesTitle = $stateParams.sourceId; console.log("ciao"); }) ;