app.config.js 4.36 KB
(function (){
  'use strict';

  angular.module('sbAdminApp')
  
  .config(function ($mdThemingProvider, $mdIconProvider, $httpProvider, USER_ROLES, AUTH_EVENTS) {
    
    $mdThemingProvider
      .theme('default')
      .primaryPalette('blue', {
        'default': '600'
      })
      .accentPalette('teal', {
        'default': '500'
      })
      .warnPalette('defaultPrimary');

    $mdThemingProvider
      .theme('dark', 'default')
      .primaryPalette('defaultPrimary')
      .dark();

    $mdThemingProvider
      .theme('grey', 'default')
      .primaryPalette('grey');

    $mdThemingProvider
      .theme('custom', 'default')
      .primaryPalette('defaultPrimary', {
        'hue-1': '50'
    });

    $mdThemingProvider
    .definePalette('defaultPrimary', {
      '50':  '#FFFFFF',
      '100': 'rgb(255, 198, 197)',
      '200': '#E75753',
      '300': '#E75753',
      '400': '#E75753',
      '500': '#E75753',
      '600': '#E75753',
      '700': '#E75753',
      '800': '#E75753',
      '900': '#E75753',
      'A100': '#E75753',
      'A200': '#E75753',
      'A400': '#E75753',
      'A700': '#E75753'
    });
    $mdIconProvider
      .icon('user', 'assets/images/user.svg', 64);
  })

  .run(['$rootScope', function($rootScope) {
    $rootScope.userDetails = {};
    $rootScope.userDetails.partyDetail = {};
    if(localStorage.getItem("userDetails")){
      $rootScope.userDetails = JSON.parse(localStorage.getItem("userDetails"));
      $rootScope.auth = localStorage.getItem("auth");
    }
  }])

  .config(function ($httpProvider) {
    $httpProvider.interceptors.push('httpRequestInterceptor');
  })

  .factory('httpRequestInterceptor', ['$q', '$rootScope', '$location', function($q, $rootScope, $location) {
    return {
        request: function($config) {
          //$config.headers['Authorization'] = 'Basic ' + $rootScope.auth;
          return $config;
        },
        responseError: function(rejection) {
          if (rejection.status === 401) {
            //localStorage.clear();
            //window.location.reload();
          }
          return $q.reject(rejection);
        }
      }
  }])
  .run(function($rootScope, $window, $state, LoginService, AUTH_EVENTS) {
    $rootScope.$on('$stateChangeStart', function (event, next, nextParams, fromState) {
      if ('data' in next && 'authorizedRoles' in next.data) {
        var authorizedRoles = next.data.authorizedRoles;
        if (!LoginService.isAuthorized(authorizedRoles)) {
          event.preventDefault();
          if($state.current.name.length == 0) {
            $state.go('login')
          } else {
            $state.go($state.current, {}, {reload: true});
            $rootScope.$broadcast(AUTH_EVENTS.notAuthorized);  
            $("background").remove();  
          }
        }
      }
      if (LoginService.isAuthenticated()) {
        if (next.name == 'login') {
          event.preventDefault();
          if($state.current.name.length == 0) {
             $state.go('app.user');
          } else {
             $state.go($state.current, {}, {reload: true});
             $rootScope.$broadcast(AUTH_EVENTS.notAuthorized);    
          } 
        }
      }
    });
  })

  // .directive('apsUploadFile', apsUploadFile);

  // function apsUploadFile() {
  //   var directive = {
  //     restrict: 'E',
  //     template: '<input id="fileInput" type="file" class="ng-hide"> <md-icon class="material-icons" id="uploadButton">attach_file</md-icon> </md-button><md-input-container flex="100" md-no-float>    <input id="textInput" ng-model="fileName" type="text" placeholder="choose file" ng-readonly="true"></md-input-container>',
  //     link: apsUploadFileLink
  //   };
  //   return directive;
  // }

  // function apsUploadFileLink(scope, element, attrs) {
  //   var input = $(element[0].querySelector('#fileInput'));
  //   var button = $(element[0].querySelector('#uploadButton'));
  //   var textInput = $(element[0].querySelector('#textInput'));

  //   if (input.length && button.length && textInput.length) {
  //     button.click(function(e) {
  //       input.click();
  //     });
  //     textInput.click(function(e) {
  //       input.click();
  //     });
  //   }

  //   input.on('change', function(e) {
  //     var files = e.target.files;
  //     if (files[0]) {
  //       scope.fileName = files[0].name;
  //     } else {
  //       scope.fileName = null;
  //     }
  //     scope.$apply();
  //   });
 // }

})();