Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * PS: Code uploaded for portfolio example
- * These code snippets came from three different files and were put here just as example.
- */
- // app.js
- var app = angular.module('OiComunicados', ['ionic', 'OiComunicados.services', 'OiComunicados.controllers']);
- app.run(['$http', '$ionicLoading', '$ionicPlatform', '$ionicPopup', 'DB', function($http, $ionicLoading, $ionicPlatform, $ionicPopup, DB) {
- $ionicPlatform.ready(function() {
- DB.init();
- /**
- * Push Setup
- */
- var push = PushNotification.init({
- android: {},
- browser: {
- pushService: 'https://fcm.googleapis.com/fcm/send'
- },
- ios: {
- alert: 'true',
- badge: 'true',
- sound: 'true'
- },
- windows: {}
- });
- push.on('registration', function (data) {
- var userEmail = localStorage.getItem('user-email');
- $http({
- method: 'POST',
- url: window.G.WS_URL + '/register/push',
- headers: {
- 'user-email': userEmail,
- },
- data: {
- email: userEmail,
- token: data.registrationId
- }
- })
- .then(
- response => { console.log(response); },
- error => { console.log('error registering device token'); })
- });
- push.on('error', function (err) {
- console.log('Error: ' + err.message);
- });
- // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
- // for form inputs)
- if (window.cordova && window.cordova.plugins.Keyboard) {
- cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
- cordova.plugins.Keyboard.disableScroll(true);
- cordova.plugins.Keyboard.shrinkView(false);
- }
- if (window.StatusBar) {
- // org.apache.cordova.statusbar required
- StatusBar.styleDefault();
- }
- });
- }]);
- app.config(['$httpProvider', function ($httpProvider) {
- $httpProvider.defaults.useXDomain = false;
- delete $httpProvider.defaults.headers.common['X-Requested-With'];
- $httpProvider.defaults.headers.common['user-email'] = G.USER_EMAIL;
- $httpProvider.defaults.headers.common['user-token'] = G.USER_TOKEN;
- }]);
- app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
- $stateProvider
- /*
- * Absctract state for login screen
- */
- .state('loginStage', {
- url: '/',
- abstract: true,
- templateUrl: 'templates/loginStage.html',
- controller: 'MainController',
- })
- .state('loginStage.login', {
- url: 'login/',
- views: {
- 'mainContent': {
- templateUrl: 'templates/login.html',
- controller: 'LoginController',
- },
- }
- })
- .state('loginStage.tuto', {
- url: 'tuto/',
- views: {
- 'mainContent': {
- templateUrl: 'templates/tutorial.html',
- controller: 'TutorialController',
- },
- }
- })
- .state('app', {
- url: '/app',
- abstract: true,
- templateUrl: 'templates/main.html',
- controller: 'MainController',
- })
- /*
- * Comunicados list Screen
- */
- .state('app.home', {
- url: '/home/',
- cache: false,
- views: {
- 'menuNavbarContent': {
- templateUrl: 'templates/components/defaultNav.html',
- },
- 'mainContent': {
- templateUrl: 'templates/home.html',
- controller: 'HomeController',
- },
- 'footerContent': {
- templateUrl: null,
- }
- }
- })
- /*
- * Comunicados list Screen
- */
- .state('app.comunicadosList', {
- url: '/comunicados/:page',
- cache: false,
- views: {
- 'menuNavbarContent': {
- templateUrl: 'templates/components/defaultNav.html',
- },
- 'mainContent': {
- templateUrl: 'templates/comunicadosList.html',
- controller: 'ComunicadoListController',
- },
- 'footerContent': {
- templateUrl: 'templates/components/pagination.html',
- controller: 'ComunicadoListController',
- }
- }
- })
- /*
- * Comunicados Search List Screen
- */
- .state('app.comunicadosListSearch', {
- url: '/comunicados/search/:page',
- cache: false,
- params: {
- 'formData': null,
- },
- views: {
- 'menuNavbarContent': {
- templateUrl: 'templates/components/defaultNav.html',
- controller: 'ComunicadoListSearchController',
- },
- 'mainContent': {
- templateUrl: 'templates/comunicadosListSearch.html',
- controller: 'ComunicadoListSearchController',
- },
- 'footerContent': {
- templateUrl: 'templates/components/pagination.html',
- controller: 'ComunicadoListSearchController',
- }
- }
- })
- /*
- * Comunicados list Screen
- */
- .state('app.comunicadosShow', {
- url: '/comunicado/:comunicado_id',
- views: {
- 'menuNavbarContent': {
- templateUrl: 'templates/components/defaultNav.html',
- },
- 'mainContent': {
- templateUrl: 'templates/comunicadoShow.html',
- controller: 'ComunicadoShowController'
- },
- 'footerContent': {
- templateUrl: null,
- }
- }
- })
- .state('app.canaisList', {
- url: '/canais/list/',
- views: {
- 'menuNavbarContent': {
- templateUrl: null,
- },
- 'mainContent': {
- templateUrl: 'templates/canaisList.html',
- controller: 'CanaisListController',
- },
- 'footerContent': {
- templateUrl: null,
- }
- }
- })
- .state('app.canalShow', {
- url: '/comunicados/list/canal/:canal_id/page/:page',
- views: {
- 'menuNavbarContent': {
- templateUrl: 'templates/components/defaultNav.html',
- },
- 'mainContent': {
- templateUrl: 'templates/canaisListComunicados.html',
- controller: 'CanaisListComunicadosController',
- },
- 'footerContent': {
- templateUrl: 'templates/components/pagination.html',
- }
- }
- })
- .state('app.videoList', {
- url: '/videos/:page',
- views: {
- 'menuNavbarContent': {
- templateUrl: 'templates/components/defaultNav.html',
- },
- 'mainContent': {
- templateUrl: 'templates/videosList.html',
- controller: 'VideosController',
- },
- 'footerContent': {
- templateUrl: 'templates/components/pagination.html',
- controller: 'VideosController',
- }
- }
- })
- .state('app.videoDetail', {
- url: '/video/detail/:id',
- cache: false,
- views: {
- 'menuNavbarContent': {
- templateUrl: 'templates/components/defaultNav.html',
- },
- 'mainContent': {
- templateUrl: 'templates/videoDetail.html',
- controller: 'VideoDetailController',
- },
- 'footerContent': {
- templateUrl: null,
- }
- }
- })
- .state('app.DocumentList', {
- url: '/documents/:page',
- views: {
- 'menuNavbarContent': {
- templateUrl: 'templates/components/defaultNav.html',
- },
- 'mainContent': {
- templateUrl: 'templates/documentsList.html',
- controller: 'DocumentController',
- },
- 'footerContent': {
- templateUrl: 'templates/components/pagination.html',
- controller: 'DocumentController',
- }
- }
- })
- .state('app.privacyPolicy', {
- url: '/privacypolicy',
- views: {
- 'menuNavbarContent': {
- templateUrl: 'templates/components/defaultNav.html',
- },
- 'mainContent': {
- templateUrl: 'templates/privacypolicy.html',
- },
- 'footerContent': {
- templateUrl: null,
- }
- }
- })
- // fallback url
- $urlRouterProvider.otherwise('/login/');
- }]);
- // MainController.js
- angular.module('OiComunicados.controllers', []);
- app.controller('MainController', function($scope, $ionicModal, $state, $log, $location, $rootScope, $http, $http, $ionicPopup, $ionicHistory, DB, User, Config, $ionicLoading)
- {
- DB.init();
- $rootScope.page = 1;
- $rootScope.csrfToken = '';
- var first_visit = localStorage.getItem('first-visit');
- if (!first_visit) {
- $location.url('/tuto/');
- }
- // With the new view caching in Ionic, Controllers are only called
- // when they are recreated or on app start, instead of every page change.
- // To listen for when this page is active (for example, to refresh data),
- // listen for the $ionicView.enter event:
- $scope.$on('$ionicView.enter', (e) => {
- var first_visit = localStorage.getItem('first-visit');
- if (!first_visit && first_visit != 0 && $state.current.name == 'loginStage.login') localStorage.setItem('first-visit', 1);
- // Verify if the user is logged in
- var is_logged = localStorage.getItem('user-logged');
- if (!is_logged && !first_visit == null) $location.url('/login/')
- $rootScope.$on('$stateChangeStart', function (event, next, current) {
- $rootScope.showPagination = false;
- });
- // clearing search flag for result-search-title-bar
- // $scope.searchResult = undefined;
- });
- /**
- * Modal for search modal
- */
- $ionicModal.fromTemplateUrl('templates/components/searchModal.html', {
- scope: $scope,
- animation: 'slide-in-top'
- }).then((modal) => {
- $scope.modal = modal;
- });
- /**
- * Open Search Modal
- */
- $scope.openSearchModal = () => {
- $scope.modal.show();
- };
- /**
- * Close Modal
- */
- $scope.closeSearchModal = () => {
- $scope.modal.hide();
- };
- /**
- * Back to previous page
- */
- $scope.goBack = () => {
- $ionicHistory.goBack();
- }
- $scope.clearComunicados = function() {
- console.log('clear');
- $rootScope.searchResult = 0;
- $state.go('app.comunicadosList');
- }
- /*
- * Search Form
- */
- // Form data for the search modal
- {
- $scope.searchData = {in_title: true};
- $scope.doSearch = () => {
- $rootScope.comunicados = null;
- $scope.closeSearchModal();
- $ionicLoading.show({
- noBackdrop: true,
- template: '<ion-spinner icon="lines" class="spinner-energized"></ion-spinner> <br/>'
- });
- var formData = $scope.searchData;
- $state.go('app.comunicadosListSearch', { page: 1, formData: formData }, {reload: true } );
- }
- }
- /*
- * Log out button in side manu
- * Clear session storage and redirects to login
- */
- $scope.logout = () => {
- localStorage.clear();
- localStorage.setItem('first-visit', 1);
- User.logOff();
- $location.url('/login/');
- }
- // Events
- // Cleanup the modal when we're done with it!
- $scope.$on('$destroy', () => {
- $scope.modal.remove();
- });
- // Execute action on hide modal
- $scope.$on('modal.hidden', () => {
- // Execute action
- });
- // Execute action on remove modal
- $scope.$on('modal.removed', () => {
- // Execute action
- });
- });
- // LoginController.js
- /*
- * LoginController
- * Handle Login screen flow
- */
- app.controller('LoginController', function($scope, $rootScope, $sanitize, $ionicPopup, $ionicModal, $injector, $location, $http, $log, $ionicLoading, User, DB)
- {
- DB.init();
- var user_token = localStorage.getItem('user-token');
- $scope.email = localStorage.getItem('user-email')? localStorage.getItem('user-email'): '';
- is_logged = localStorage.getItem('user-logged');
- if (is_logged) $location.url('/app/home/');
- var $callSubscribeValidation = function (email) {
- $http({
- method: 'POST',
- url: G.WS_URL + '/login',
- headers: {
- 'X-CSRF-TOKEN': $rootScope.csrfToken,
- },
- data: {
- email: email,
- uuid: G.DEVICE.UUID,
- model: G.DEVICE.MODEL,
- serial: G.DEVICE.SERIAL,
- },
- }).then(function onSuccess(response) {
- $ionicLoading.hide();
- if (response.data.success == false) return;
- var data = response.data;
- // if we recognize a user witha valid token but its not sotred in the app sesssion
- if (data.data.account == 'active') {
- User.setUser({
- user_id: data.data.id,
- user_email: data.data.email,
- user_name: data.data.name,
- user_token: data.data.token,
- user_logged: true,
- }).then(function(result) {
- });
- localStorage.setItem('user-id', data.data.id);
- localStorage.setItem('user-email', data.data.email);
- localStorage.setItem('user-name', data.data.name);
- localStorage.setItem('user-logged', true);
- localStorage.setItem('user-token', data.data.token);
- // Set User Info
- G.USER_ID = data.data.id;
- G.USER_NAME = data.data.name;
- G.USER_EMAIL = data.data.email;
- G.USER_TOKEN = data.data.token;
- // redirect
- $location.url('/app/home/');
- }
- $ionicPopup.alert({
- title: 'Inscrição verificada!',
- template: data.data.message,
- });
- },
- error => {
- localStorage.clear();
- $ionicLoading.hide();
- $ionicPopup.alert({
- title: 'Atenção',
- template: error.data.message,
- });
- });
- }
- var $callLoginViaToken = function (user_token) {
- $http({
- method: 'POST',
- url: G.WS_URL + '/login/' + user_token,
- headers: {
- 'X-CSRF-TOKEN': $rootScope.csrfToken,
- },
- data: {
- uuid: G.DEVICE.UUID,
- model: G.DEVICE.MODEL,
- serial: G.DEVICE.SERIAL,
- }
- }).then(function onSuccess(response) {
- $ionicLoading.hide();
- if (response.data.success == false) return;
- var data = response.data.data;
- if (data.account === 'expired') $callSubscribeValidation();
- User.setUser({
- user_id: data.id,
- user_email: data.email,
- user_name: data.name,
- user_token: data.token,
- user_logged: true,
- }).then(function(result) {
- User.logOn();
- });
- localStorage.setItem('user-id', data.id);
- localStorage.setItem('user-email', data.email);
- localStorage.setItem('user-name', data.name);
- localStorage.setItem('user-logged', true);
- localStorage.setItem('user-token', data.token);
- // Set User Info
- G.USER_ID = data.id;
- G.USER_NAME = data.name;
- G.USER_EMAIL = data.email;
- G.USER_EMAIL = data.token;
- // redirect
- $location.url('/app/home/');
- },
- error => {
- localStorage.clear();
- $ionicLoading.hide();
- $ionicPopup.alert({
- title: 'Atenção',
- template: error.data.message,
- });
- });
- }
- // Triggered in the login modal to close it
- $scope.closeApp = function() {
- $scope.modal.hide();
- };
- // Perform the login action when the user submits the login form
- $scope.doLogin = function() {
- var $formData = $scope.loginData,
- email = $formData.email,
- user_token = localStorage.getItem('user-token');
- $ionicLoading.show({noBackdrop: true,
- template: '<ion-spinner icon="lines" class="spinner-energized"></ion-spinner> <br/>'
- });
- // If user doesn't have the token
- if (!user_token) $callSubscribeValidation(email);
- // If the user has the token
- if (user_token) $callLoginViaToken(user_token);
- };
- // Form data for the login modal
- $scope.loginData = {};
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement