signup and login working

This commit is contained in:
arnaucode
2018-02-01 13:14:51 +01:00
parent ad76d73e12
commit bad807b79d
33 changed files with 1040 additions and 0 deletions

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

@@ -0,0 +1,35 @@
<div class="container" style="margin-top: -60px;">
<div class="row">
<div class="col-sm-3">
</div>
<div class="col-sm-6">
<div class="card">
<div class="card-body">
<h4 class="card-title">
Login
</h4>
<div class="form-group">
<input ng-model="user.email" type="email" class="form-control" placeholder="Email">
</div>
<div class="form-group">
<input ng-model="user.password" type="password" class="form-control" placeholder="Password">
</div>
<div class="row">
<div class="col-sm-6">
<a href="#!/signup" class="btn btn-raised btn-block c_o_pink300">Signup</a>
</div>
<div class="col-sm-6">
<div ng-click="login()" class="btn btn-raised btn-block c_o_cyan300 pull-right">Login</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-3">
</div>
</div>
</div>

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

@@ -0,0 +1,36 @@
'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, $rootScope, $http, $routeParams, toastr) {
$rootScope.server = ""
$scope.user = {};
$scope.login = function() {
$http({
url: apiurl + 'login',
method: "POST",
headers: {
"Content-Type": undefined
},
data: $scope.user
})
.then(function(data) {
console.log("data: ");
console.log(data.data);
localStorage.setItem("dblog_user", JSON.stringify(data.data));
window.location.reload();
},
function(data) {
console.log(data);
});
};
});

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

@@ -0,0 +1,14 @@
<div class="container">
<div class="row">
<div class="col-sm-3">
<div class="card" style="width: 18rem;">
<img class="card-img-top" ng-src="http://localhost:8080/ipfs/QmUE6hhNsyUA5emj2dviVDNYK7mSbPeZmRKeCYthmtemeA" alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Post1</h5>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
</div>
</div>
</div>

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

@@ -0,0 +1,16 @@
'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, $rootScope, $http) {
});

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

@@ -0,0 +1,49 @@
<div ng-controller="NavbarCtrl">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">
<i title="Server" class="fa fa-cube fa-1x"></i> decentralized-blogging-platform
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Top Posts <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Top Writters</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
<ul class="navbar-nav" ng-show="user">
<li class="nav-item">
<a href="#!/profile" class="nav-link">
<i title="Profile" class="fa fa-user fa-1x"></i> {{user.username}}
</a>
</li>
<li class="nav-item">
<a ng-click="logout()" class="nav-link">
<i title="Logout" class="fa fa-power-off fa-1x"></i>
</a>
</li>
</ul>
<ul class="navbar-nav" ng-show="!user">
<li class="nav-item">
<a href="#!/signup" class="nav-link">
<i title="Signup" class="fa fa-sign-in fa-1x"></i> Signup
</a>
</li>
<li class="nav-item">
<a href="#!/login" class="nav-link">
<i title="Login" class="fa fa-sign-in fa-1x"></i> Login
</a>
</li>
</ul>
</div>
</nav>
</div>

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

@@ -0,0 +1,20 @@
'use strict';
angular.module('app.navbar', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/navbar', {
templateUrl: 'views/navbar.html',
controller: 'NavbarCtrl'
});
}])
.controller('NavbarCtrl', function($scope) {
$scope.user = JSON.parse(localStorage.getItem("dblog_user"));
console.log("user", $scope.user);
$scope.logout = function() {
localStorage.removeItem("dblog_user");
window.location.reload();
};
});

View File

@@ -0,0 +1,51 @@
<div ng-controller="NavbarCtrl">
<nav class="navbar navbar-fixed-top o_nav">
<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="#!/" title="darkID">
<i title="Server" class="fa fa-cube fa-1x"></i> decentralized-blogging-platform
</a>
</div>
<div class="navbar-collapse collapse navbar-responsive-collapse">
<ul class="nav navbar-nav">
<li>
<a href="#!/stats" title="Stats">
<i title="Server" class="fa fa-th-large fa-1x"></i> Models
</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right" ng-show="user"><!--logged-->
<li>
<a href="#!/profile">
<i title="Profile" class="fa fa-user fa-1x"></i> {{user.username}}
</a>
</li>
<li>
<a href="" ng-click="logout()">
<i title="Create Account" class="fa fa-sign-out fa-1x"></i> Logout
</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right" ng-show="!user"><!--unlogged-->
<li>
<a href="#!/signup">
<i title="Create Account" class="fa fa-sign-in fa-1x"></i> Signup
</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right" ng-show="!user"><!--unlogged-->
<li>
<a href="#!/login">
<i title="Login" class="fa fa-sign-in fa-1x"></i> Login
</a>
</li>
</ul>
</div>
</div>
</nav>
</div>

View File

@@ -0,0 +1,18 @@
<div class="container">
<div class="row">
<div class="col-sm-6 col-sm-offset-3">
<div class="card">
<div class="card-body">
<h4>New model</h4>
<input ng-model="model.title" placeholder="Title" type="text" class="form-control">
<input ng-model="model.description" placeholder="Description" type="text" class="form-control">
<input type="file" file-model="file"/>
<input ng-model="model.accuracy" placeholder="Accuracy" type="text" class="form-control">
<a ng-click="upload()" class="btn btn-raised pull-right c_o_pink300">Upload</a>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,79 @@
'use strict';
angular.module('app.newmodel', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/newmodel', {
templateUrl: 'views/newmodel/newmodel.html',
controller: 'NewModelCtrl'
});
}])
.controller('NewModelCtrl', function($scope, $rootScope, $http, toastr) {
$scope.file = {};
$scope.upload = function() {
console.log("upload model");
var formdata = new FormData();
formdata.append("file", $scope.file);
//add the file to ipfs
/*$http({
url: ipfs_url + 'add',
method: "POST",
headers: {
"Content-Type": undefined
},
data: formdata
})
.then(function(data) {
console.log("data: ");
console.log(data.data);
toastr.success("Model added to IPFS");
},
function(data) {
console.log(data);
toastr.error("Error adding Model to IPFS");
});*/
//add the data to userdata
$http({
url: clienturl + 'model',
method: "POST",
headers: {
"Content-Type": undefined
},
data: $scope.model
})
.then(function(data) {
console.log("data: ");
console.log(data.data);
window.location="/";
toastr.success("Model uploaded");
},
function(data) {
console.log(data);
});
};
})
.directive('fileModel', ['$parse', function($parse) {
//directive code from https://www.tutorialspoint.com/angularjs/angularjs_upload_file.htm
return {
restrict: 'A',
link: function(scope, element, attrs) {
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
element.bind('change', function() {
scope.$apply(function() {
modelSetter(scope, element[0].files[0]);
});
});
}
};
}]);

View File

@@ -0,0 +1,31 @@
<div class="container">
<div class="row">
<div class="col-sm-4">
<div ng-include="'views/user_template.html'"></div>
</div>
<div class="col-sm-8">
<div class="card">
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>#</th>
<th>Title</th>
<th>Description</th>
<th>Accuracy</th>
<th>Rating</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="model in user.models">
<td>1</td>
<td>{{model.title}}</td>
<td>{{model.description}}</td>
<td>{{model.accuracy}}</td>
<td>{{model.rating}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,24 @@
'use strict';
angular.module('app.profile', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/profile', {
templateUrl: 'views/profile/profile.html',
controller: 'ProfileCtrl'
});
}])
.controller('ProfileCtrl', function($scope, $rootScope, $http) {
$http.get(clienturl + 'user')
.then(function(data) {
console.log('data success');
console.log(data);
$scope.user = data.data;
localStorage.setItem("ai_user", JSON.stringify($scope.user));
}, function(data) {
console.log('no user');
});
});

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

@@ -0,0 +1,38 @@
<div class="container" style="margin-top: -80px;">
<div class="row">
<div class="col-sm-3">
</div>
<div class="col-sm-6">
<div class="card">
<div class="card-body">
<h4 class="card-title">
Signup
</h4>
<div class="form-group">
<input ng-model="user.username" class="form-control" placeholder="Username">
</div>
<div class="form-group">
<input ng-model="user.email" type="email" class="form-control" placeholder="Email">
</div>
<div class="form-group">
<input ng-model="user.password" type="password" class="form-control" placeholder="Password">
</div>
<div class="row">
<div class="col-sm-6">
<a href="#!/login" class="btn btn-raised btn-block c_o_blue300">Cancel</a>
</div>
<div class="col-sm-6">
<div ng-click="signup()" class="btn btn-raised btn-block c_o_green300 pull-right">Signup</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-3">
</div>
</div>
</div>

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

@@ -0,0 +1,34 @@
'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, $rootScope) {
$scope.signup = function() {
console.log('Doing signup', $scope.user);
$http({
url: apiurl + 'signup',
method: "POST",
headers: {
"Content-Type": undefined
},
data: $scope.user
})
.then(function(data) {
console.log("data: ");
console.log(data.data);
window.location="/#!/login";
},
function(data) {
console.log(data);
});
};
});