mirror of
https://github.com/arnaucube/decentralized-blogging-platform.git
synced 2026-02-07 03:16:41 +01:00
signup and login working
This commit is contained in:
35
webapp/views/login/login.html
Executable file
35
webapp/views/login/login.html
Executable 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
36
webapp/views/login/login.js
Executable 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
14
webapp/views/main/main.html
Executable 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
16
webapp/views/main/main.js
Executable 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
49
webapp/views/navbar.html
Executable 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
20
webapp/views/navbar.js
Executable 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();
|
||||
};
|
||||
|
||||
});
|
||||
51
webapp/views/navbarOLD.html
Normal file
51
webapp/views/navbarOLD.html
Normal 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>
|
||||
18
webapp/views/newmodel/newmodel.html
Normal file
18
webapp/views/newmodel/newmodel.html
Normal 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>
|
||||
79
webapp/views/newmodel/newmodel.js
Normal file
79
webapp/views/newmodel/newmodel.js
Normal 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]);
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
31
webapp/views/profile/profile.html
Normal file
31
webapp/views/profile/profile.html
Normal 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>
|
||||
24
webapp/views/profile/profile.js
Normal file
24
webapp/views/profile/profile.js
Normal 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
38
webapp/views/signup/signup.html
Executable 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
34
webapp/views/signup/signup.js
Executable 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);
|
||||
});
|
||||
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user