Browse Source

Merge branch 'master' into different-accounts-=-different-menus

pull/144/head
Mohammed Tantawy 7 years ago
committed by GitHub
parent
commit
f65bc5f919
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 180 additions and 102 deletions
  1. +23
    -20
      package.json
  2. +2
    -0
      src/assets/scripts/index.js
  3. +32
    -0
      src/assets/scripts/login/controller.js
  4. +12
    -0
      src/assets/scripts/login/index.js
  5. +22
    -0
      src/assets/scripts/login/service.js
  6. +71
    -76
      src/assets/styles/nomit.scss
  7. +1
    -1
      src/index.html
  8. +17
    -5
      src/login.html

+ 23
- 20
package.json View File

@ -15,55 +15,58 @@
},
"devDependencies": {},
"dependencies": {
"angular": "^1.6.4",
"angular-cookies": "^1.6.4",
"babel-core": "^6.26.0",
"babel-eslint": "^8.0.1",
"babel-loader": "^7.1.2",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.6.1",
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.26.0",
"bootstrap": "^4.0.0",
"bootstrap-datepicker": "^1.7.1",
"case-sensitive-paths-webpack-plugin": "^2.1.1",
"chart.js": "^2.7.1",
"copy-webpack-plugin": "^4.2.0",
"cross-env": "^5.1.0",
"css-loader": "^0.28.7",
"datatables": "^1.10.13",
"easy-pie-chart": "^2.1.7",
"eslint": "^4.9.0",
"eslint-config-airbnb-base": "^12.1.0",
"eslint-plugin-import": "2.7.0",
"extract-text-webpack-plugin": "^3.0.1",
"html-webpack-plugin": "^2.30.1",
"file-loader": "^1.1.5",
"fullcalendar": "^3.6.2",
"html-includes": "^4.0.0",
"html-loader": "^0.5.5",
"html-webpack-plugin": "^2.30.1",
"imagemin-webpack-plugin": "^1.5.2",
"jquery": "^3.2.1",
"jquery-sparkline": "^2.4.0",
"jvectormap": "^2.0.4",
"load-google-maps-api": "^1.0.0",
"lodash": "^4.17.4",
"masonry-layout": "^4.2.0",
"moment": "^2.19.1",
"ng-tags-input": "^3.2.0",
"node-sass": "^4.5.3",
"perfect-scrollbar": "^1.1.0",
"popper.js": "^1.12.6",
"postcss-cssnext": "^3.0.2",
"postcss-loader": "^2.0.8",
"sass-loader": "^6.0.6",
"shx": "^0.2.2",
"skycons": "^1.0.0",
"style-loader": "^0.19.0",
"stylelint": "^8.2.0",
"stylelint-config-standard": "^17.0.0",
"webpack": "^3.8.1",
"webpack-dashboard": "^1.0.0",
"webpack-dev-server": "^2.9.3",
"babel-polyfill": "^6.26.0",
"bootstrap": "^4.0.0",
"bootstrap-datepicker": "^1.7.1",
"chart.js": "^2.7.1",
"datatables": "^1.10.13",
"easy-pie-chart": "^2.1.7",
"file-loader": "^1.1.5",
"fullcalendar": "^3.6.2",
"jquery": "^3.2.1",
"jquery-sparkline": "^2.4.0",
"jvectormap": "^2.0.4",
"load-google-maps-api": "^1.0.0",
"lodash": "^4.17.4",
"masonry-layout": "^4.2.0",
"moment": "^2.19.1",
"perfect-scrollbar": "^1.1.0",
"popper.js": "^1.12.6",
"skycons": "^1.0.0"
"webpack-dev-server": "^2.9.3"
}
}

+ 2
- 0
src/assets/scripts/index.js View File

@ -16,3 +16,5 @@ import './fullcalendar';
import './googleMaps';
import './utils';
import './user-form';
import './login';
import './app';

+ 32
- 0
src/assets/scripts/login/controller.js View File

@ -0,0 +1,32 @@
import 'babel-polyfill';
const LoginController = ($scope, LoginService, $cookies) => {
$scope.userLogged = false;
if(typeof $cookies.get('access_token') !== 'undefined' ){
$scope.userLogged = true;
$scope.user = parseJwt( $cookies.get('access_token') );
}
console.log("BEFORE FUNC ");
$scope.userLogin = async () => {
let result = await LoginService.loginUserService($scope.user);
if( $scope.user !== "" || $scope.user !== "undefined"){
console.log(result);
$scope.userLogged = true;
$scope.user = parseJwt( result );
$cookies.put('access_token', result);
console.log('Redirect me to Dashboard.');
} else {
console.log("User is empty");
}
}
};
function parseJwt(token) {
var base64Url = token.split('.')[1];
var base64 = base64Url.replace('-', '+').replace('_', '/');
return JSON.parse(window.atob(base64));
};
export default LoginController;

+ 12
- 0
src/assets/scripts/login/index.js View File

@ -0,0 +1,12 @@
import * as angular from 'angular';
import ngCookies from 'angular-cookies';
import LoginController from './controller';
import LoginService from './service';
angular.module('NomitWisp-Login', [ngCookies])
.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.withCredentials = true;
}])
.controller(LoginController.name, LoginController)
.factory(LoginService.name, LoginService);

+ 22
- 0
src/assets/scripts/login/service.js View File

@ -0,0 +1,22 @@
const LoginService = ($http) => {
let serv = {};
serv.loginUserService = (user) =>{
return $http({
method: 'POST',
url: 'https://nomitwisp-restapi.herokuapp.com/login',
data: user,
headers: { 'Content-Type': 'application/json' }
})
.then( (result) => {
console.log(result.data.token);
return result.data.token;
}, (err) => {
console.log(err.data);
return err.data;
});
}
return serv;
}
export default LoginService;

+ 71
- 76
src/assets/styles/nomit.scss View File

@ -171,85 +171,80 @@ textarea {
}
.modal-content {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
width: 100%;
pointer-events: auto;
background-color: rgb(148, 61, 129);
color: #fff;
font-size: 12px;
background-clip: padding-box;
border: none;
border-radius: 10px;
outline: 0;
margin-bottom: 20px;
height: 350px;
position: absolute;
visibility: visible;
}
.mo-title {
font-size: 40px;
font-weight: bolder;
}
.subtitle-modal {
font-size: 20px;
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
width: 100%;
pointer-events: auto;
background-color: rgb(148, 61, 129);
color: #fff;
font-size: 12px;
background-clip: padding-box;
border: none;
border-radius: 10px;
outline: 0;
margin-bottom: 20px;
height: 350px;
position:absolute;
visibility:visible;
}
.mo-title{
font-size: 28px;
font-weight: bolder;
}
.subtitle-modal{
font-size: 20px;
}
.modal-right {
background-color: #fff;
height: 400px;
color: #000;
width: 350px;
position: absolute;
visibility: visible;
top: -20px;
right: -50px;
border: 2px solid transparent;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;
margin-left: auto;
padding: 100px;
text-align: center;
}
.logo-wisp-right {
width: 174px;
}
.modal-username {
margin-top: 10px;
;
border-radius: 50px;
border-color: #501db9;
width: 180px;
}
.btn-signup {
color: #fff;
background-color: transparent;
border: 1px solid #fff;
border-radius: 50px;
height: 40px;
width: 180px;
margin-top: calc((#{$header-height} - 40px)/2);
margin-left: 15px;
outline: none;
padding: 5px;
}
.mo-title {
text-align: -webkit-center;
margin-top: 20px;
background-color: #fff;
height: 400px;
color: #000;
width: 350px;
position: absolute;
visibility: visible;
top: -20px;
right: -50px;
border: 2px solid transparent;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;
margin-left: auto;
padding: 100px;
text-align: center;
}
.logo-wisp-right{
width: 174px;
}
.modal-username{
font-size: 14px;
margin-top: 10px;
padding-left: 10px;
border-radius: 50px;
border-color: #501db9;
width: 180px;
}
.btn-signup{
color: #fff;
background-color: transparent;
border: 1px solid #fff;
border-radius: 50px;
height: 40px;
width: 180px;
margin-top: calc((#{$header-height} - 40px)/2);
margin-left: 15px;
outline: none;
padding: 5px;
}
.mo-title{
text-align: -webkit-center;
margin-top: 20px;
}
//companies


+ 1
- 1
src/index.html View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<html ng-app="NomitWisp">
<head>
<meta charset="utf-8">


+ 17
- 5
src/login.html View File

@ -55,7 +55,7 @@
</style>
</head>
<body class="app">
<body class="app" ng-app="NomitWisp-Login">
<div id='loader'>
<div class="spinner"></div>
@ -209,10 +209,22 @@
</svg>
</div> <!--logo-->
<h4 class=""><strong>Sign In </strong></p>
<input class="modal-username" type="text" placeholder="Username">
<input class="modal-username" type="password" placeholder="Password">
<button type="button" class="btn btn-gradient btn-centered mt-20">SIGN IN</button>
<div ng-controller="LoginController">
<h4 class=""><strong>Sign In </strong>
<form ng-submit="userLogin()" name="LoginForm">
<input class="modal-username" ng-model="user.email" type="text" placeholder="Email" required>
<input class="modal-username" type="password" ng-model="user.password" placeholder="Password" required>
<button type="submit" class="btn btn-gradient btn-centered mt-2" ng-disabled="LoginForm.$invalid">SIGN IN</button>
</form>
<div ng-show="userLogged">
<h2>Welcome {{user.fullname}}!</h2>
<p ng-show="user.role == 'user'">This text is only visible to Users</p>
<p ng-show="user.role == 'company'">This text is only visible to Companies</p>
<p ng-show="user.role == 'nomit' || user.role == 'admin'">This text is visible to both Nomit and Admin</p>
<p ng-show="user.role == 'nomit'">This text is only visible to Nomit</p>
<p ng-show="user.role == 'admin'">This text is only visible to Admin</p>
</div>
</div>
</div>
</div>


Loading…
Cancel
Save