Advertisement
Guest User

Untitled

a guest
May 19th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // js, angular
  2.  
  3. const API_SERVER = 'http://test-api.jashka/'; // local server
  4. const API_PREFIX = 'api';
  5. const API_URL = API_SERVER + API_PREFIX;
  6. var app = angular
  7.     .module('app', [
  8.     'ngRoute',
  9.     'ngMaterial',
  10.     'satellizer'
  11. ])
  12.     .config(Config)
  13.     .run(Run)
  14.  
  15.     .controller('BaseController',           BaseController)
  16.     .controller('LoginController',          LoginController)
  17.     .controller('MainController',           MainController)
  18.     .controller('PanelController',          PanelController)
  19.     .controller('SigninController',         SigninController)
  20.     .controller('MenuController',           MenuController)
  21.     .controller('AccountController',        AccountController)
  22.     .controller('ResetPasswordController',  ResetPasswordController)
  23.  
  24.     .factory('AuthFactory',         AuthFactory)
  25.     .factory('AppSettingsFactory',  AppSettingsFactory)
  26.     .factory('flashFactory',        flashFactory)
  27.     .factory('JSONSettingsFactory', JSONSettingsFactory)
  28.     .factory('TestFactory',         TestFactory)
  29.  
  30.     .service('JSONEditorService',   JSONEditorService)
  31.     .service('RedirectService',     RedirectService)
  32.     .service('LogoutService',       LogoutService)
  33.  
  34.     .directive('menu', Menu)
  35.     .directive('back', Back);
  36.  
  37. function Menu () {
  38.     return {
  39.         templateUrl: '/js/components/menu/directives/menu.html',
  40.     }
  41. }
  42.  
  43. Back.$inject = ['$window'];
  44. function Back ($window) {
  45.     return {
  46.         templateUrl: '/js/components/panel/Directive/back.html',
  47.  
  48.         link: function (scope, element) {
  49.             element.on('click', function () {
  50.                 $window.history.back();
  51.             })
  52.         }
  53.     }
  54. }
  55.  
  56. Run.$inject = ['$rootScope', '$location', 'AuthFactory'];
  57. function Run($rootScope, $location, AuthFactory) {
  58.     $rootScope.$on('$routeChangeStart', function(event, next){
  59.         if (next.security) {
  60.             var isAuth = AuthFactory.getAuthenticated();
  61.             if (!isAuth) {
  62.                 $location.path('/login');
  63.             }
  64.         }
  65.     });
  66. }
  67.  
  68. Config.$inject = ['$compileProvider', '$logProvider', '$authProvider', '$locationProvider', '$routeProvider'];
  69. function Config ( $compileProvider, $logProvider, $authProvider, $locationProvider, $routeProvider) {
  70.  
  71.     $logProvider.debugEnabled(false);
  72.     $compileProvider.debugInfoEnabled(false);
  73.     $authProvider.loginUrl = API_URL + '/login';
  74.  
  75.     for( var i = 0; i < ROUTES.routes.length; i++) {
  76.         $routeProvider.when(ROUTES.routes[i].path, ROUTES.routes[i].data);
  77.     }
  78.  
  79.     $routeProvider
  80.         .otherwise({
  81.             redirectTo: '/'
  82.         });
  83.  
  84.     $locationProvider.html5Mode({
  85.         enabled: true,
  86.         requireBase: true
  87.     });
  88.  
  89. }
  90.  
  91. RedirectService.$inject = ['$location', 'AuthFactory'];
  92. function RedirectService ($location, AuthFactory) {
  93.     var routesAfter = [
  94.         '/',
  95.         '/login',
  96.         '/signin',
  97.         '/logout'
  98.     ];
  99.  
  100.     if (AuthFactory.getAuthenticated() && (routesAfter.indexOf($location.path()) !== -1))
  101.         $location.url('/my-panel');
  102. }
  103.  
  104. LogoutService.$inject = [ 'AuthFactory', '$auth'];
  105. function LogoutService (AuthFactory, $auth) {
  106.     $auth.logout().then(function() {
  107.         AuthFactory.setUser({});
  108.     });
  109. }
  110.  
  111. BaseController.$inject = ['$window'];
  112. function BaseController ($window) {
  113.     var vm = this;
  114.     vm.pageClass = 'page-home';
  115.     vm.back = back;
  116.  
  117.     function back () {
  118.         $window.history.back();
  119.     }
  120. }
  121.  
  122.  
  123.  
  124.  
  125. LoginController.$inject = ['$mdToast', '$rootScope', '$location', '$auth', '$http', 'AuthFactory'];
  126. function LoginController ($mdToast, $rootScope, $location, $authService, $http, AuthFactory) {
  127.  
  128.     var login = this;
  129.  
  130.     login.password = null;
  131.     login.email = null;
  132.     login.pageClass = 'page-home';
  133.     login.error = null;
  134.     login.loginError = false;
  135.     login.loginErrorText = null;
  136.     login.issetEmail = false;
  137.    
  138.     login.login = _login;
  139.     login.logout = logout;
  140.     login.showSimpleToast = showSimpleToast;
  141.     login.redirectToSignIn = redirectToSignIn;
  142.  
  143.     $rootScope.$on('profile-updated', toast);
  144.    
  145.     function _login() {
  146.         $authService.login({
  147.             email: login.email,
  148.             password: login.password
  149.         }).then(errorAuth, auth);
  150.     }
  151.  
  152.     function me() {
  153.         return $http.get(API_URL + 'user/me');
  154.     }
  155.  
  156.     function errorAuth(response) {
  157.         return response;
  158.     }
  159.  
  160.     function auth(response) {
  161.         switch (response.status) {
  162.             case 200:
  163.                 login.loginError = false;
  164.                 var user = JSON.stringify(response.data.user);
  165.                 AuthFactory.setUser(user);
  166.                 $location.url('/my-panel');
  167.                 break;
  168.             case 401:
  169.             case 403:
  170.                 login.loginError = true;
  171.                 login.loginErrorText = response.data.error;
  172.                 break;
  173.             default:
  174.                 alert('Service unavailable');
  175.                 break;
  176.         }
  177.     }
  178.  
  179.     function logout() {
  180.         $auth.logout().then(setUser);
  181.     }
  182.  
  183.     function setUser() {
  184.         AuthFactory.setUser({});
  185.     }
  186.  
  187.     function showSimpleToast(text) {
  188.         text  = text || 'Login or Sign In!';
  189.         var toast = $mdToast
  190.             .simple()
  191.             .action('Ok')
  192.             .hideDelay(5000)
  193.             .position('top left')
  194.             .textContent(text);
  195.  
  196.         $mdToast.show(toast);
  197.     }
  198.  
  199.     function redirectToSignIn() {
  200.         $location.path('/signin');
  201.     }
  202.  
  203.     function toast () {
  204.         login.showSimpleToast();
  205.     }
  206. }
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213. AppSettingsFactory.$inject = ['$http'];
  214. function AppSettingsFactory($http){
  215.  
  216.     return {
  217.         appSettings: appSettings,
  218.         getPlans: getPlans
  219.     };
  220.  
  221.     function getPlans(callback) {
  222.         $http.get('SERVER/plans.json')
  223.             .success(callback);
  224.     }
  225.  
  226.     function appSettings(callback) {
  227.         $http.get('SERVER/menu.json')
  228.             .success(callback);
  229.     }
  230.  
  231. }
  232.  
  233.  
  234.  
  235.  
  236. JSONEditorService.$inject = [ 'JSONSettingsFactory'];
  237. function JSONEditorService(JSONSettingsFactory) {
  238.  
  239.     var editor = null;
  240.  
  241.     __locale = null;
  242.  
  243.     var jsonEditor = {
  244.         scheme: {},
  245.         locale: {}
  246.     };
  247.  
  248.     this.initEditor = initEditor;
  249.     this.destroy = destroy;
  250.     this.createNewTest = createNewTest;
  251.     this.getTest = getTest;
  252.     this.getJsonEditorSettings = getJsonEditorSettings;
  253.  
  254.     function initEditor(locale, scheme) {
  255.  
  256.         __locale = jLocale;
  257.         __locale.changeLocale(locale);
  258.  
  259.         editor = new JSONEditor(document.getElementById('editorTest'), scheme);
  260.  
  261.         editor.on('change',function() {
  262.             var errors = editor.validate();
  263.  
  264.             var indicator = document.getElementById('valid_indicator');
  265.  
  266.             if(errors.length) {
  267.                 indicator.style.color = 'red';
  268.                 indicator.textContent = "not valid";
  269.             }
  270.             else {
  271.                 indicator.style.color = 'green';
  272.                 indicator.textContent = "valid";
  273.             }
  274.         });
  275.  
  276.     }
  277.  
  278.     function destroy() {
  279.         editor.destroy();
  280.     }
  281.  
  282.     function createNewTest() {
  283.         initEditor(
  284.             jsonEditor.locale,
  285.             jsonEditor.scheme
  286.         );
  287.     }
  288.  
  289.     function getTest() {
  290.         return editor.getValue();
  291.     }
  292.  
  293.     function getJsonEditorSettings() {
  294.  
  295.         var settingsFactory = JSONSettingsFactory;
  296.  
  297.         settingsFactory.localeJsonEditor(function (response) {
  298.             jsonEditor.locale = response;
  299.         });
  300.         settingsFactory.schemeJsonEditor(function (response) {
  301.             jsonEditor.scheme = response;
  302.         });
  303.     }
  304.  
  305. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement