angular.module('app.user', ['pascalprecht.translate']) .controller('UserCtrl', function($scope, $stateParams, $http, $ionicLoading, $filter, $ionicModal) { $scope.storageuser = JSON.parse(localStorage.getItem("cim_app_userdata")); $scope.user = {}; $scope.doRefresh = function() { $http.get(urlapi + 'users/id/' + $stateParams.userid) .then(function(data, status, headers, config) { console.log('data success'); console.log(data); // for browser console $scope.user = data.data; // for UI if ($scope.storageuser._id == $scope.user._id) { localStorage.setItem("cim_app_userdata", JSON.stringify(data.data)); } $scope.$broadcast('scroll.refreshComplete'); //refresher stop }, function(data, status, headers, config) { console.log('data error'); $scope.$broadcast('scroll.refreshComplete'); //refresher stop }); }; $scope.doRefresh(); $scope.likeUser = function() { $http({ //url: urlapi + 'users/'+ $stateParams.username+'/fav', url: urlapi + 'users/id/like/' + $scope.user._id, method: "POST", data: {} }) .then(function(data) { // success if (data.data.success == false) { console.log("failed"); $ionicLoading.show({ template: 'Error on like', noBackdrop: true, duration: 2000 }); } else { $scope.user = data.data; // for UI } }, function(response) { // optional // failed }); }; $scope.unlikeUser = function() { $http({ //url: urlapi + 'users/'+ $stateParams.username+'/fav', url: urlapi + 'users/id/unlike/' + $scope.user._id, method: "POST", data: {} }) .then(function(data) { // success if (data.data.success == false) { console.log("failed"); $ionicLoading.show({ template: 'Error on unlike', noBackdrop: true, duration: 2000 }); } else { $scope.user = data.data; // for UI } }, function(response) { // optional // failed }); }; $scope.favUser = function() { $scope.newfav = { //travelId: $stateParams.travelId, /*userId: localStorage.getItem("c_userid"), username: localStorage.getItem("c_username"), avatar: localStorage.getItem("c_avatar")*/ }; $scope.user.favs.push($scope.newfav); //al unfav no cal fer aquest simulacre pq ja no existeix a l'array i no el resta dos cops en cas de que cliquin dos cops $http({ //url: urlapi + 'users/'+ $stateParams.username+'/fav', url: urlapi + 'users/' + $scope.user._id + '/fav', method: "POST", data: $scope.newfav }) .then(function(response) { // success console.log("response: "); console.log(response); $scope.users = response.data; localStorage.setItem('c_users', JSON.stringify($scope.users)); $scope.user = $filter('filter')($scope.users, { username: $stateParams.username }, true)[0]; }, function(response) { // optional // failed }); }; $scope.unfavUser = function() { console.log("unfav"); $scope.unfav = { /*userId: localStorage.getItem("c_userid"), username: localStorage.getItem("c_username"), avatar: localStorage.getItem("c_avatar")*/ }; $http({ //url: urlapi + 'users/'+ $stateParams.username+'/fav', url: urlapi + 'users/' + $scope.user._id + '/unfav', method: "POST", data: $scope.unfav }) .then(function(response) { // success console.log("response: "); console.log(response); $scope.users = response.data; localStorage.setItem('c_users', JSON.stringify($scope.users)); $scope.user = $filter('filter')($scope.users, { username: $stateParams.username }, true)[0]; }, function(response) { // optional // failed }); }; $ionicModal.fromTemplateUrl('templates/favsList.html', { scope: $scope }).then(function(modal) { $scope.modalFavsList = modal; }); $scope.closeModalFavsList = function() { $scope.modalFavsList.hide(); }; $scope.showFavsList = function() { $scope.modalFavsList.show(); }; $scope.closeModalAndGoUser = function() { $scope.modalFavsList.hide(); }; $scope.arrayObjectIndexOf = function(myArray, searchTerm) { if (myArray) { for (var i = 0, len = myArray.length; i < len; i++) { if (myArray[i] === searchTerm) { return i; } } } return -1; }; //show image $ionicModal.fromTemplateUrl('templates/imgView.html', { scope: $scope, animation: 'slide-in-up' }).then(function(modal) { $scope.modal = modal; }); $scope.openModal = function() { $scope.modal.show(); }; $scope.closeModal = function() { $scope.modal.hide(); }; // Cleanup the modal when we're done with it! $scope.$on('$destroy', function() { $scope.modal.remove(); }); // Execute action on hide modal $scope.$on('modal.hidden', function() { // Execute action }); // Execute action on remove modal $scope.$on('modal.removed', function() { // Execute action }); $scope.showImg = function() { console.log("show image"); $scope.openModal(); }; $scope.openTelegram = function(telegramuser) { window.open('http://telegram.me/' + telegramuser, '_system', 'location=yes'); return false; }; });