Advertisement
Guest User

Untitled

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