Guest User

Untitled

a guest
Jul 20th, 2017
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.82 KB | None | 0 0
  1. /**
  2. * Created by SHolmes on 20-Jul-17.
  3. */
  4. angular.module('canvasApp', ['ngStorage', 'ui.router'])
  5. .config(function ($stateProvider, $urlRouterProvider) {
  6. // $locationProvider.html5Mode(true).hashPrefix('!');
  7.  
  8. $urlRouterProvider.otherwise('/');
  9.  
  10. $stateProvider
  11. .state('index', {
  12. url: '/',
  13. templateUrl: 'partial-index.html'
  14. })
  15. .state('dashboard', {
  16. url: '/dashboard',
  17. templateUrl: 'partial-dashboard.html',
  18. controller: 'DashboardController'
  19. // resolve: function ($q, $state, LoginFactory) {
  20. // var defer = $q.defer;
  21. //
  22. // if (LoginFactory.auth1()) {
  23. // defer.resolve();
  24. // } else {
  25. // // $state.go('index');
  26. // defer.reject();
  27. // }
  28. // return defer.promise;
  29. // }
  30. });
  31.  
  32. })
  33. .factory('LoginFactory', ['$http', '$localStorage', function ($http, $localStorage) {
  34. var baseUrl = "http://localhost/CanvasFlip";
  35.  
  36. function changeUser(user) {
  37. angular.extend(currentUser, user);
  38. }
  39.  
  40. function urlBase64Decode(str) {
  41. var output = str.replace('-', '+').replace('_', '/');
  42. switch (output.length % 4) {
  43. case 0:
  44. break;
  45. case 2:
  46. output += '==';
  47. break;
  48. case 3:
  49. output += '=';
  50. break;
  51. default:
  52. throw 'Illegal base64url string!';
  53. }
  54. return window.atob(output);
  55. }
  56.  
  57. function getUserFromToken() {
  58. var token = $localStorage.token;
  59. var user = {};
  60. if (typeof token !== 'undefined') {
  61. var encoded = token.split('.')[1];
  62. user = JSON.parse(urlBase64Decode(encoded));
  63. }
  64. return user;
  65. }
  66.  
  67. var currentUser = getUserFromToken();
  68.  
  69. var config = {
  70. headers: {
  71. 'Content-Type': 'application/json',
  72. 'Authorization': $localStorage.token ? $localStorage.token : null
  73. }
  74. };
  75.  
  76. return {
  77. register: function (data, success, error) {
  78. $http.post(baseUrl + '/signup.php', data, config).then(success, error);
  79. },
  80. login: function (data, success, error) {
  81.  
  82. $http.post(baseUrl + '/signin.php', data, config).then(success, error);
  83. },
  84. auth: function (success, error) {
  85. $http.get(baseUrl + '/plans.php', config).then(success, error);
  86. },
  87. auth1: function ($q) {
  88. var defer = $q.defer;
  89.  
  90. $http.get(baseUrl + '/plans.php', config).then(function (res) {
  91. if (res.status === 200 && res.data.success) {
  92. defer.resolve();
  93. } else {
  94. defer.reject();
  95. }
  96. }, function (err) {
  97. defer.reject();
  98. });
  99.  
  100. return defer.promise;
  101. },
  102. logout: function (success) {
  103. changeUser({});
  104. delete $localStorage.token;
  105. success();
  106. }
  107. };
  108. }])
  109. .controller('DashboardController', ['$scope', '$q', 'LoginFactory', function ($scope, $q, LoginFactory) {
  110.  
  111. $scope.hello = 'ds';
  112.  
  113. console.log(LoginFactory.auth1($q));
  114. console.log('ghjkl');
  115.  
  116.  
  117. }])
  118. .controller('LoginController', ['$scope', '$localStorage', '$location', 'LoginFactory', function ($scope, $localStorage, $location, LoginFactory) {
  119. var loginCtrl = this;
  120.  
  121. loginCtrl.loginBtn = "Login";
  122. loginCtrl.loginFailed = false;
  123.  
  124. loginCtrl.submitForm = function () {
  125.  
  126. //@TODO dont use jQuery
  127.  
  128.  
  129. $("#loginSubmitBtn").hide();
  130. //language=JQuery-CSS
  131. $("#loadingImg").show();
  132.  
  133. var formData = {
  134. email: loginCtrl.email,
  135. password: loginCtrl.password
  136. };
  137.  
  138. // console.log(formData);
  139.  
  140. LoginFactory.login(formData, function (res) {
  141.  
  142. // console.log(res);
  143.  
  144. if (res.status === 200) {
  145. $localStorage.token = res.data.token;
  146. // $location.path('');
  147. // alert(res.data.error);
  148. } else {
  149. loginCtrl.loginFailed = true;
  150. loginCtrl.loginFailedReason = res.data.error ? res.data.error : 'Login Failed...';
  151. $('#loginSubmitBtn').show();
  152. $('#loadingImg').hide();
  153. // $location.path = "/";
  154. }
  155. }, function (error) {
  156. loginCtrl.loginFailed = true;
  157. console.log(error.data);
  158. loginCtrl.loginFailedReason = (error.data.error) ? error.data.error : 'Login Failed...';
  159. $('#loginSubmitBtn').show();
  160. $('#loadingImg').hide();
  161. });
  162. }
  163. }])
  164. .controller('SignupController', ['$scope', '$localStorage', 'LoginFactory', function ($scope, $localStorage, LoginFactory) {
  165. var signupCtrl = this;
  166.  
  167. //signupCtrl.email = "sdasd";
  168. signupCtrl.cpassword = "";
  169. signupCtrl.password = "";
  170. signupCtrl.email = "";
  171. signupCtrl.fullName = "";
  172. signupCtrl.plan = "";
  173. signupCtrl.signupBtn = "Register";
  174.  
  175. signupCtrl.valo = (signupForm.$valid) ? '' : 'disabled';
  176.  
  177.  
  178. signupCtrl.submitForm = function () {
  179. $('#signupSubmitBtn').hide();
  180. $('#loadingImg').show();
  181. signupCtrl.signupBtn = "Register";
  182.  
  183. var formData = {
  184. email: signupCtrl.email,
  185. name: signupCtrl.fullName,
  186. password: signupCtrl.password,
  187. plan: signupCtrl.plan
  188. };
  189.  
  190. LoginFactory.register(formData, function (res) {
  191. console.log(res);
  192.  
  193. $('#signupSubmitBtn').show();
  194. $('#loadingImg').hide();
  195. signupCtrl.signupFailed = true;
  196. if (res.status === 200 && res.data.success) {
  197. signupCtrl.signupSuccess = true;
  198. signupCtrl.signupFailed = false;
  199. signupCtrl.signupSuccessReason = res.data.message;
  200. } else {
  201. $('#signupSubmitBtn').show();
  202. $('#loadingImg').hide();
  203. signupCtrl.signupSuccess = false;
  204. signupCtrl.signupFailed = true;
  205. signupCtrl.signupFailedReason = res.data.error;
  206. }
  207. }, function (error) {
  208. signupCtrl.signupFailed = true;
  209. });
  210.  
  211. }
  212. }])
  213. .directive("compareTo", function () {
  214. return {
  215. require: "ngModel",
  216. scope: {
  217. otherModelValue: "=compareTo"
  218. },
  219. link: function (scope, element, attributes, ngModel) {
  220.  
  221. ngModel.$validators.compareTo = function (modelValue) {
  222. return modelValue == scope.otherModelValue;
  223. };
  224.  
  225. scope.$watch("otherModelValue", function () {
  226. ngModel.$validate();
  227. });
  228. }
  229. }
  230. })
  231. .directive('passwordVerify', function passwordVerify() {
  232. return {
  233. restrict: 'A', // only activate on element attribute
  234. require: '?ngModel', // get a hold of NgModelController
  235. link: function (scope, elem, attrs, ngModel) {
  236. if (!ngModel) return; // do nothing if no ng-model
  237.  
  238. // watch own value and re-validate on change
  239. scope.$watch(attrs.ngModel, function () {
  240. validate();
  241. });
  242.  
  243. // observe the other value and re-validate on change
  244. attrs.$observe('passwordVerify', function (val) {
  245. validate();
  246. });
  247.  
  248. var validate = function () {
  249. // values
  250. var val1 = ngModel.$viewValue;
  251. var val2 = attrs.passwordVerify;
  252.  
  253. // set validity
  254. ngModel.$setValidity('passwordVerify', val1 === val2);
  255. };
  256. }
  257. }
  258. });
Add Comment
Please, Sign In to add comment