Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var app = angular.module('view', ['ngRoute','ngResource']);
  2. app.factory('Users',function ($resource) {
  3.     /*var users = [{login: 'Aragorn', pwd:'arwena', email:"aragorn@lotr.com"},
  4.             {login: 'Gimli', pwd:'gloin', email:"gimli@lotr.com"},
  5.             {login: 'Gandalf', pwd:'barlog', email:"gandalf@lotr.com"},
  6.             {login: 'Legolas', pwd:'tauriel', email:"legolas@lotr.com"}];
  7.     this.getUserByLogin = function (user) {
  8.         for(var i = 0; i < users.length; i++){
  9.             if(users[i].login === user){
  10.                 return users[i];
  11.             }
  12.         }
  13.         return false;
  14.     };
  15.     this.save = function (user) {
  16.       users.push(user);
  17.     };
  18.     this.delete = function (user) {
  19.         var i = users.indexOf(user);
  20.         users.splice(i,1);
  21.     };
  22.     this.list = function () {
  23.         return users;
  24.     };
  25.     this.getLength = function () {
  26.         return users.length;
  27.     };*/
  28.     return $resource("api/users")
  29. });
  30. app.factory('Projects',function () {/*
  31.     var projects= [{owner:"Aragorn",name:'Helms Jar', type:'private', access:'admin', coll:['Gimli','Legolas'], pwd:'pass'},
  32.             {owner:"Aragorn",name:'Edoras', type:'private', access:'admin', coll:['Gimli','Legolas'], pwd:'pass'},
  33.             {owner:"Aragorn",name:'Minas Tirith', type:'private', access:'admin', coll:['Gimli','Legolas'], pwd:'pass'},
  34.             {owner:"Aragorn",name:'Moria', type:'private', access:'admin', coll:['Gimli','Legolas','Gandalf'], pwd:'pass'},
  35.             {owner:"Aragorn",name:'Dead Path', type:'private', access:'admin', coll:['Gimli','Legolas','Gandalf'], pwd:'pass'},
  36.  
  37.             {owner:"Gandalf",name:'Rivendell', type:'private', access:'admin', coll:['Gimli','Legolas','Aragorn'], pwd:'pass'},
  38.             {owner:"Gandalf",name:'Caradhras', type:'private', access:'admin', coll:['Gimli','Legolas','Aragorn'], pwd:'pass'},
  39.             {owner:"Gandalf",name:'Dunland', type:'private', access:'admin', coll:['Aragorn'], pwd:'pass'},
  40.  
  41.             {owner:"Legolas",name:'Middle Earth', type:'private', access:'admin', coll:['Gimli'], pwd:'pass'},
  42.  
  43.             {owner:"Gimli",name:'Lorien', type:'private', access:'admin', coll:['Aragorn','Legolas'], pwd:'pass'},
  44.             {owner:"Gimli",name:'Brandywine', type:'private', access:'admin', coll:['Aragorn','Legolas'], pwd:'pass'}];
  45.     this.getUserProjects = function (user) {
  46.         var projectsList=[];
  47.         for (var i=0;i<projects.length;i++){
  48.             if (projects[i].owner == user){
  49.                 projectsList.push(projects[i]);
  50.             }
  51.             else {
  52.                 for(var j = 0 ; j < projects[i].coll.length;j++){
  53.                     if (projects[i].coll[j] == user){
  54.                         projectsList.push(projects[i])
  55.                     }
  56.                 }
  57.             }
  58.         }
  59.         return projectsList;
  60.     };
  61.     this.save = function (project) {
  62.         projects.push(project);
  63.     };
  64.     this.delete = function (project) {
  65.         var i = projects.indexOf(project);
  66.         projects.splice(i,1);
  67.     };
  68.     this.getLength = function () {
  69.         return projects.length;
  70.     };
  71.     this.list = function () {
  72.         return projects;
  73.     };*/
  74.     return
  75. });
  76. var iRP = 1;
  77. app.config(function($routeProvider){
  78.   $routeProvider
  79.       .when('/login', {
  80.           templateUrl:"login/login.html",
  81.           controller:'loginCtrl'})
  82.       .when('/user/:username',{
  83.           templateUrl:'userPanel/userPanel.html',
  84.           controller:'userPanelCtrl'})
  85.       .when('/user/:username/projects',{
  86.           templateUrl:'projects/projects.html',
  87.           controller:'projectsCtrl'})
  88.       .when('/',{
  89.           templateUrl:'registration/registration.html',
  90.           controller:'registrationCtrl'})
  91.       .otherwise({
  92.           redirectTo: '/'});
  93. });
  94. app.controller('loginCtrl', function($scope, $location,Users){
  95.     $scope.isProper = 1;
  96.     $scope.message='bad data!';
  97.     $scope.authenticate = function(user){
  98.         /*var u=Users.getUserByLogin(user.login);
  99.         if(user.pwd == u.pwd){
  100.           $location.path('/user/'+user.login);
  101.         }
  102.         else{
  103.           $scope.isProper=0;
  104.           $location.path('/login');
  105.         }*/
  106.  
  107.     };
  108. });
  109. app.controller('projectsCtrl', function($scope,$routeParams, $location, Projects){
  110.     $scope.login=$routeParams.username;
  111.     $scope.p=Projects.getUserProjects($routeParams.username);
  112.     $scope.redirectToData = function(){
  113.         $location.path('/user/'+$routeParams.username);
  114.     };
  115.     $scope.addProject = function () {
  116.         $scope.np.owner=$routeParams.username;
  117.         Projects.save($scope.np);
  118.         $scope.p.push($scope.np);
  119.         $scope.np={};
  120.     };
  121.     $scope.deleteProject = function (project) {
  122.         Projects.delete(project);
  123.         $scope.p=Projects.getUserProjects($routeParams.username);
  124.     }
  125. });
  126. app.controller('userPanelCtrl', function($scope, $routeParams, $location, Users) {
  127.     $scope.user=Users.get({username : $routeParams.username});
  128.  
  129.     $scope.user.reppwd=$scope.user.pwd;
  130.     $scope.redirectToProjects = function () {
  131.         $location.path('/user/' + $routeParams.username + '/projects');
  132.     }
  133.     $scope.deleteUser = function (user) {
  134.         Users.delete({username:user});
  135.         $location.path('/register');
  136.     }
  137. });
  138. app.controller('registrationCtrl', function($scope, $location, $routeParams, Users) {
  139.     $scope.isRegProper = iRP;
  140.     $scope.acc='0';
  141.     $scope.message='bad data!';
  142.     $scope.registrationAuth = function(){
  143.         Users.save({username : $scope.user});
  144.         /*Bad Data Validation*/
  145.         /*$http.post('/api/regAuth',
  146.             {
  147.                 username: $scope.user.login,
  148.                 password: $scope.user.pwd,
  149.                 email: $scope.user.email
  150.             }).then($scope.successCallback, $scope.errorCallback);
  151.  
  152.         $scope.successCallback = function () {
  153.             $location.path('/login');
  154.         };
  155.  
  156.         $scope.errorCallback = function () {
  157.             iRP = 0;
  158.             $location.path('/register');
  159.         };*/
  160.     };
  161.     $scope.redirect = function(){
  162.         $location.path('/login');
  163.   };
  164.  
  165. });
  166. app.directive("passwordVerify", function() {
  167.   return {
  168.     require: "ngModel",
  169.     scope: {
  170.       passwordVerify: '='
  171.     },
  172.     link: function(scope, element, attrs, ctrl) {
  173.       scope.$watch(function() {
  174.         var combined;
  175.  
  176.         if (scope.passwordVerify || ctrl.$viewValue) {
  177.           combined = scope.passwordVerify + '_' + ctrl.$viewValue;
  178.         }
  179.         return combined;
  180.       }, function(value) {
  181.         if (value) {
  182.           ctrl.$parsers.unshift(function(viewValue) {
  183.             var origin = scope.passwordVerify;
  184.             if (origin !== viewValue) {
  185.               ctrl.$setValidity("passwordVerify", false);
  186.               return undefined;
  187.             } else {
  188.               ctrl.$setValidity("passwordVerify", true);
  189.               return viewValue;
  190.             }
  191.           });
  192.         }
  193.       });
  194.     }
  195.   };
  196. });
  197. app.directive('checkRequired', function(){
  198.   return {
  199.     require: 'ngModel',
  200.     link: function (scope, element, attrs, ngModel) {
  201.       ngModel.$validators.checkRequired = function (modelValue, viewValue) {
  202.         var value = modelValue || viewValue;
  203.         var match = scope.$eval(attrs.ngTrueValue) || true;
  204.         return value && match === value;
  205.       };
  206.     }
  207.   };
  208. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement