server and webapp working

This commit is contained in:
arnaucode
2017-10-18 21:57:44 +02:00
parent e3ad14cf5c
commit 6f77a9a5f0
23 changed files with 1535 additions and 0 deletions

32
webapp/views/login/login.html Executable file
View File

@@ -0,0 +1,32 @@
<div class="container">
<div class="row">
<div class="col-sm-4">
</div>
<div class="col-sm-4">
<div class="panel-body">
<h2>MEANseed - webapp</h2>
</div>
<div class="panel">
<div class="panel-heading c_blue300">
<h3 class="panel-title">Login</h3>
</div>
<div class="panel-body">
<div class="form-group label-floating">
<input ng-model="user.username" abmFormControl class="form-control" id="inputUsername" placeholder="Username" type="text">
</div>
<div class="form-group">
<input ng-model="user.password" abmFormControl class="form-control" id="inputPassword" placeholder="Password" type="password">
</div>
<a ng-href="#!/signup" class="btn btn-raised c_grey500">Signup</a>
<div ng-click="doLogin()" class="btn btn-raised c_blue300 pull-right">Login</div>
</div>
</div>
</div>
<div class="col-sm-4">
</div>
</div>
</div>

42
webapp/views/login/login.js Executable file
View File

@@ -0,0 +1,42 @@
'use strict';
angular.module('app.login', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/login', {
templateUrl: 'views/login/login.html',
controller: 'LoginCtrl'
});
}])
.controller('LoginCtrl', function($scope, $http, $routeParams) {
$scope.user = {};
$scope.doLogin = function() {
console.log('Doing login', $scope.user);
$http({
url: urlapi + 'login',
method: "POST",
data: $scope.user
})
.then(function(response) {
console.log("response: ");
console.log(response.data);
if (response.data.success == true)
{
localStorage.setItem("meanseed_token", response.data.token);
localStorage.setItem("meanseed_userdata", JSON.stringify(response.data.user));
window.location.reload();
}else{
console.log("login failed");
}
},
function(response) { // optional
// failed
console.log(response);
});
};
});

58
webapp/views/main/main.html Executable file
View File

@@ -0,0 +1,58 @@
<div class="container">
<div class="row">
<div class="col-sm-4">
<div class="panel">
<div class="panel-heading c_blue300">
<h3 class="panel-title">
All users
<span class="badge badge-secondary pull-right c_blue300">{{users.length}}</span>
</h3>
</div>
<div class="panel-body" style="max-height: 500px;overflow-y: scroll;">
<div class="list-group">
<a ng-repeat="user in users" ng-href="#!/user/{{user._id}}" class="list-group-item">
<div class="row-picture">
<img class="circle" ng-src="{{user.avatar}}" alt="icon">
</div>
<div class="row-content">
<h4 class="list-group-item-heading">
{{user.username}}
<span ng-show="user.validated" class="badge badge-secondary c_blue300">Validated</span>
</h4>
<p class="list-group-item-text">{{user.description}}</p>
<p class="list-group-item-text">{{user.travels.length}} published travels</p>
<p class="list-group-item-text">{{user.likes.length}} likes</p>
</div>
<div class="list-group-separator"></div>
</a>
</div>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="panel">
<div class="panel-heading c_blue300">
<h3 class="panel-title">
All posts
<span class="badge badge-secondary pull-right c_blue300">{{travels.length}}</span>
</h3>
</div>
<div class="panel-body" style="max-height: 500px;overflow-y: scroll;">
</div>
</div>
</div>
<div class="col-sm-2">
<div class="panel">
<div class="panel-heading c_blue300">
<h3 class="panel-title">Actions</h3>
</div>
<div class="panel-body">
<div class="btn btn-block btn-sm c_blue300">Create new post</div>
<a href="#!/network" class="btn btn-block btn-sm c_blue300">View network</a>
</div>
</div>
</div>
</div>
</div>

26
webapp/views/main/main.js Executable file
View File

@@ -0,0 +1,26 @@
'use strict';
angular.module('app.main', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/main', {
templateUrl: 'views/main/main.html',
controller: 'MainCtrl'
});
}])
.controller('MainCtrl', function($scope, $http) {
$scope.users = [];
$scope.loadMorePagination = true;
$scope.pageUsers = 0;
$http.get(urlapi + 'users?page=' + $scope.pageUsers)
.then(function(data) {
console.log('data success');
console.log(data);
$scope.users = data.data;
}, function(data) {
console.log('data error');
});
});

44
webapp/views/navbar.html Executable file
View File

@@ -0,0 +1,44 @@
<div ng-controller="NavbarCtrl">
<div ng-show="storageuser" class="navbar c_grey700">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">MEANseed Dashboard</a>
</div>
<div class="navbar-collapse collapse navbar-responsive-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="javascript:void(0)">Users</a></li>
<li><a href="#!/network">Network</a></li>
<li><a href="#!/userNetwork">User network</a></li>
</ul>
<form ng-submit="search()" class="navbar-form navbar-left">
<div class="form-group">
<input ng-model="searchString" class="form-control col-md-8" placeholder="Search" type="text">
</div>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="javascript:void(0)">Info</a></li>
<li class="dropdown">
<a href="" data-target="#" class="dropdown-toggle" data-toggle="dropdown">Settings
<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="javascript:void(0)">Action</a></li>
<li><a href="javascript:void(0)">Another action</a></li>
<li><a href="javascript:void(0)">Something else here</a></li>
<li class="divider"></li>
<li><a href="javascript:void(0)">Separated link</a></li>
</ul>
</li>
<li><a href="" ng-click="logout()">Logout</a></li>
</ul>
</div>
</div>
</div>
<!--
<div ng-click="goBack()" class="btn"><span class="glyphicon glyphicon-arrow-left"></span> Back</div>
-->
</div>

35
webapp/views/navbar.js Executable file
View File

@@ -0,0 +1,35 @@
'use strict';
angular.module('app.navbar', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/navbar', {
templateUrl: 'views/navbar/navbar.html',
controller: 'NavbarCtrl'
});
}])
.controller('NavbarCtrl', function($scope, $http, $routeParams, $location) {
$scope.searchString = "";
$scope.locationHash = $location.path();
console.log($scope.locationHash);
$scope.goBack = function() {
console.log("goBack");
window.history.back();
};
$scope.search = function() {
console.log($scope.searchString);
window.location.href = "#!/search/" + $scope.searchString;
};
if (localStorage.getItem("meanseed_userdata")) {
$scope.storageuser = JSON.parse(localStorage.getItem("meanseed_userdata"));
console.log($scope.storageuser);
}
$scope.logout = function() {
localStorage.removeItem("meanseed_token");
localStorage.removeItem("meanseed_userdata");
window.location.reload();
};
});

38
webapp/views/signup/signup.html Executable file
View File

@@ -0,0 +1,38 @@
<div class="container">
<div class="row">
<div class="col-sm-4">
</div>
<div class="col-sm-4">
<div class="panel-body">
<h2>MEANseed - webapp</h2>
</div>
<div class="panel">
<div class="panel-heading c_blue300">
<h3 class="panel-title">Signup</h3>
</div>
<div class="panel-body">
<div class="form-group label-floating">
<input ng-model="user.username" abmFormControl class="form-control" id="inputUsername" placeholder="Username" type="text">
</div>
<div class="form-group">
<input ng-model="user.password" abmFormControl class="form-control" id="inputPassword" placeholder="Password" type="password">
</div>
<div class="form-group label-floating">
<input ng-model="user.email" abmFormControl class="form-control" id="inputEmail" placeholder="Email" type="text">
</div>
<div class="form-group label-floating">
<input ng-model="user.phone" abmFormControl class="form-control" id="inputPhone" placeholder="Phone" type="text">
</div>
<a ng-href="#!/login" class="btn btn-raised c_grey500">Back</a>
<div ng-click="doLogin()" class="btn btn-raised c_blue300 pull-right">Signup</div>
</div>
</div>
</div>
<div class="col-sm-4">
</div>
</div>
</div>

42
webapp/views/signup/signup.js Executable file
View File

@@ -0,0 +1,42 @@
'use strict';
angular.module('app.signup', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/signup', {
templateUrl: 'views/signup/signup.html',
controller: 'SignupCtrl'
});
}])
.controller('SignupCtrl', function($scope, $http, $routeParams) {
$scope.user = {};
$scope.doLogin = function() {
console.log('Doing login', $scope.user);
$http({
url: urlapi + 'signup',
method: "POST",
data: $scope.user
})
.then(function(response) {
console.log("response: ");
console.log(response.data);
if (response.data.success == true)
{
localStorage.setItem("meanseed_token", response.data.token);
localStorage.setItem("meanseed_userdata", JSON.stringify(response.data.user));
window.location.reload();
}else{
console.log("login failed");
}
},
function(response) { // optional
// failed
console.log(response);
});
};
});

47
webapp/views/user/user.html Executable file
View File

@@ -0,0 +1,47 @@
<div class="container">
<div class="row">
<div class="col-sm-6">
<div class="panel">
<div class="panel-heading c_blue300">
<h3 class="panel-title">User profile</h3>
</div>
<div class="panel-body">
<div class="list-group">
<a class="list-group-item">
<div class="row-picture">
<img class="circle" ng-src="{{user.avatar}}" alt="icon">
</div>
<div class="row-content">
<h4 class="list-group-item-heading">
{{user.username}}
<span ng-show="user.validated" class="badge badge-secondary c_blue300">Validated</span>
</h4>
<p class="list-group-item-text">{{user.description}}</p>
</div>
</a>
</div>
<p>
{{user.email}}
</p>
<p>
{{user.telegram}}
</p>
<p>
{{user.phone}}
</p>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="panel">
<div class="panel-heading c_blue300">
<h3 class="panel-title">User posts</h3>
</div>
<div class="panel-body">
</div>
</div>
</div>
</div>
</div>

23
webapp/views/user/user.js Executable file
View File

@@ -0,0 +1,23 @@
'use strict';
angular.module('app.user', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/user/:userid', {
templateUrl: 'views/user/user.html',
controller: 'UserCtrl'
});
}])
.controller('UserCtrl', function($scope, $http, $routeParams) {
$scope.user = {};
$http.get(urlapi + 'users/id/' + $routeParams.userid)
.then(function(data, status, headers, config) {
console.log('data success');
console.log(data);
$scope.user = data.data;
}, function(data, status, headers, config) {
console.log('data error');
});
});