Browse Source

signup new user from webapp implemented

master
nau 8 years ago
parent
commit
8a6f3bf221
5 changed files with 169 additions and 3 deletions
  1. +32
    -0
      web/controllers.js
  2. +1
    -1
      web/login.html
  3. +2
    -2
      web/menu.htm
  4. +75
    -0
      web/signup.html
  5. +59
    -0
      web/user.html

+ 32
- 0
web/controllers.js

@ -1,10 +1,12 @@
var url="http://localhost:3000/api/"; var url="http://localhost:3000/api/";
angular.module('thoughtsApp', []) angular.module('thoughtsApp', [])
.controller('ThoughtsController', function( .controller('ThoughtsController', function(
$scope, $scope,
$http $http
) { ) {
var thoughtsList = this; var thoughtsList = this;
if(window.sessionStorage.getItem('thoughtsToken')) if(window.sessionStorage.getItem('thoughtsToken'))
{ {
@ -13,6 +15,11 @@ angular.module('thoughtsApp', [])
$scope.userLogged=false; $scope.userLogged=false;
} }
$scope.availableAvatars=[
"img/icons/animals/cat.png",
"img/icons/animals/crab.png",
"img/icons/animals/toucan.png"
];
$http({ $http({
method : "GET", method : "GET",
url : url + "thoughts" url : url + "thoughts"
@ -22,11 +29,36 @@ angular.module('thoughtsApp', [])
$scope.myWelcome = response.statusText; $scope.myWelcome = response.statusText;
}); });
thoughtsList.addTodo = function() { thoughtsList.addTodo = function() {
todoList.todos.push({text:todoList.todoText, done:false}); todoList.todos.push({text:todoList.todoText, done:false});
todoList.todoText = ''; todoList.todoText = '';
}; };
$scope.signin = function(){
ActivateLoadBar();
var obj = {
username: $scope.username,
password: $scope.password,
description: $scope.description,
mail: $scope.mail,
avatar: $scope.avatar
};
$http({
method : "POST",
url : url + "users",
data: obj
}).then(function mySucces(response) {
toastr.success("Signed in, now login");
setTimeout(function(){
window.location="login.html";
}, 1000);
}, function myError(response) {
toastr.error(response.statusText);
});
};
$scope.login = function(){ $scope.login = function(){
ActivateLoadBar(); ActivateLoadBar();

+ 1
- 1
web/login.html

@ -9,7 +9,7 @@
<!--Let browser know website is optimized for mobile--> <!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Thoughts - new thought</title>
<title>Thoughts - login</title>
<!-- ANGULAR --> <!-- ANGULAR -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>

+ 2
- 2
web/menu.htm

@ -24,8 +24,8 @@
</ul> </ul>
<ul class='right' ng-hide="userLogged"> <ul class='right' ng-hide="userLogged">
<li><a href='login.html'><i class='material-icons'>input</i></a></li>
<li><a href='signup.html'><i class='material-icons'>person_pin</i></a></li>
<li><a href='login.html'><i class='material-icons'>vpn_key</i></a></li>
</ul> </ul>

+ 75
- 0
web/signup.html

@ -0,0 +1,75 @@
<!DOCTYPE html>
<html ng-app="thoughtsApp">
<head>
<!--Import Google Icon Font-->
<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!--Import materialize.css-->
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection"/>
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Thoughts - signup</title>
<!-- ANGULAR -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
</head>
<body ng-controller="ThoughtsController">
<div ng-include="'menu.htm'"></div>
<div class="container">
<div class="row">
<div class="input-field col s12">
<input ng-model="username" id="username" type="text" class="validate">
<label for="username">Username</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input ng-model="password" id="password" type="password" class="validate">
<label for="password">Password</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input ng-model="description" id="description" type="text" class="validate">
<label for="description">Description</label>
</div>
</div>
<div class="row">
<div class="input-field col s6">
<input ng-model="mail" id="mail" type="email" class="validate">
<label for="mail">Mail</label>
</div>
<div class="input-field col s6">
<input ng-model="avatar" id="avatar" type="email" class="validate">
<label for="avatar">Avatar</label>
</div>
</div>
<a href="index.html" class="waves-effect waves-light btn red lighten-2 ">Cancel</a>
<a ng-click="signin()" class="waves-effect waves-light btn indigo lighten-2 right">Login</a>
</div>
<!--Import jQuery before materialize.js-->
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="js/materialize.min.js"></script>
<script src="jslib/toastr.js"></script>
<link type="text/css" rel="stylesheet" href="jslib/toastr.css"/>
<script src="controllers.js"></script>
</body>
</html>

+ 59
- 0
web/user.html

@ -0,0 +1,59 @@
<!DOCTYPE html>
<html ng-app="thoughtsApp">
<head>
<!--Import Google Icon Font-->
<link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!--Import materialize.css-->
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection"/>
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Thoughts</title>
<!-- ANGULAR -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
</head>
<body ng-controller="ThoughtsController as thoughtsList">
<div ng-include="'menu.htm'"></div>
<div class="container">
<div>
<ul class="collection">
<li class="collection-item avatar" ng-repeat="thought in thoughtsList.thoughts | orderBy: '-time'">
<img ng-src="img/icons/animals/{{thought.avatar}}.png" class="circle">
<a ng-href="user.html?={{thought.username}}" class="title">
{{thought.username}}
</a>
<div class="chip">{{thought.time | date:'HH:mm'}}</div>
<p>{{thought.content}}</p>
<a href="#!" class="secondary-content"><i class="material-icons indigo-text text-lighten-2">grade</i></a>
</li>
</ul>
</div>
</div>
<!--Import jQuery before materialize.js-->
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="js/materialize.min.js"></script>
<script src="jslib/toastr.js"></script>
<link type="text/css" rel="stylesheet" href="jslib/toastr.css"/>
<script src="controllers.js"></script>
</body>
</html>

Loading…
Cancel
Save