implemented admin login, added map to travel, added user received likes, added controller to navbar

This commit is contained in:
arnaucode
2017-07-26 12:30:15 +02:00
parent 9046f0e41f
commit 6dd11e1a4c
24 changed files with 335 additions and 78 deletions

29
views/login/login.html Normal file
View File

@@ -0,0 +1,29 @@
<div class="container">
<div class="row">
<div class="col-sm-4">
</div>
<div class="col-sm-4">
<div class="panel">
<div class="panel-heading c_deepPurple300">
<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>
<div ng-click="doLogin()" class="btn btn-raised c_deepPurple300 pull-right">Login</div>
</div>
</div>
</div>
<div class="col-sm-4">
</div>
</div>
</div>

42
views/login/login.js Normal 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 + 'admin/login',
method: "POST",
data: $scope.user
})
.then(function(response) {
console.log("response: ");
console.log(response.data);
if (response.data.success == true)
{
localStorage.setItem("cic_admin_token", response.data.token);
localStorage.setItem("cic_admin_userdata", JSON.stringify(response.data.user));
window.location.reload();
}else{
console.log("login failed");
}
},
function(response) { // optional
// failed
console.log(response);
});
};
});

View File

@@ -1,6 +1,3 @@
<div ng-include="'views/navbar.html'"></div>
<div class="container">
<div class="row">
<div class="col-sm-4">
@@ -18,6 +15,8 @@
<h4 class="list-group-item-heading">{{user.username}}</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>
@@ -46,7 +45,11 @@
</thead>
<tbody>
<tr ng-repeat="travel in travels">
<td>{{travel.type}}</td>
<td>
<i ng-show="travel.type=='offering'" class="fa fa-car fa-2x"></i>
<i ng-show="travel.type=='asking'" class="fa fa-question fa-2x"></i>
<i ng-show="travel.type=='package'" class="fa fa-archive fa-2x"></i>
</td>
<td>{{travel.title}}</td>
<td>{{travel.date | date}}</td>
<td>

View File

@@ -1,4 +1,4 @@
<div ng-controller="NavbarCtrl">
<div class="navbar c_grey700">
<div class="container-fluid">
<div class="navbar-header">
@@ -36,3 +36,7 @@
</div>
</div>
</div>
<!--
<div ng-click="goBack()" class="btn"><span class="glyphicon glyphicon-arrow-left"></span> Back</div>
-->
</div>

19
views/navbar.js Normal file
View File

@@ -0,0 +1,19 @@
'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.locationHash = $location.path();
console.log($scope.locationHash);
$scope.goBack = function() {
console.log("goBack");
window.history.back();
};
});

View File

@@ -1,6 +1,3 @@
<div ng-include="'views/navbar.html'"></div>
<div class="container">
<div class="row">
<div class="col-sm-4">
@@ -9,11 +6,25 @@
<h3 class="panel-title">{{travel.title}}</h3>
</div>
<div class="panel-body">
<div class="list-group">
<a ng-href="#!/user/{{user._id}}" class="list-group-item">
<div class="row-picture">
<img class="circle" ng-src="{{travel.user.avatar}}" alt="icon">
</div>
<div class="row-content">
<h4 class="list-group-item-heading">{{travel.user.username}}</h4>
<p class="list-group-item-text">@{{travel.user.telegram}}</p>
<p class="list-group-item-text">{{travel.user.phone}}</p>
</div>
<div class="list-group-separator"></div>
</a>
</div>
<p>
From: {{travel.from.name}}
From: <b>{{travel.from.name}}</b>
</p>
<p>
To: {{travel.from.name}}
To: <b>{{travel.from.name}}</b>
</p>
<p ng-show="travel.package">
Can transport package
@@ -25,11 +36,12 @@
<h3 class="panel-title">Map</h3>
</div>
<div class="panel-body">
here the map
<leaflet width="100%" height="300px" markers="markers" center="center"
tiles="tiles" id="map-simple-map"></leaflet>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="col-sm-3">
<div class="panel">
<div class="panel-heading c_deepPurple300">
<h3 class="panel-title">{{travel.joinPetitions.length}} Pendent joins</h3>
@@ -52,7 +64,7 @@
</div>
</div>
<div class="col-sm-4">
<div class="col-sm-3">
<div class="panel">
<div class="panel-heading c_deepPurple300">
<h3 class="panel-title">Accepted users {{travel.joins.length}}/{{travel.seats}}</h3>
@@ -74,4 +86,16 @@
</div>
</div>
</div>
<div class="col-sm-2">
<div class="panel">
<div class="panel-heading c_deepPurple500">
<h3 class="panel-title">Admin actions</h3>
</div>
<div class="panel-body">
<div class="btn btn-block btn-sm c_orange300">Ban travel</div>
<div class="btn btn-block btn-sm c_red300">Delete travel</div>
</div>
</div>
</div>
</div>

View File

@@ -1,23 +1,60 @@
'use strict';
angular.module('app.travel', ['ngRoute'])
angular.module('app.travel', ['ngRoute', 'ui-leaflet'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/travel/:travelid', {
templateUrl: 'views/travel/travel.html',
controller: 'TravelCtrl'
});
}])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/travel/:travelid', {
templateUrl: 'views/travel/travel.html',
controller: 'TravelCtrl'
});
}])
.controller('TravelCtrl', function($scope, $http, $routeParams) {
$scope.travel = {};
$http.get(urlapi + 'travels/id/' + $routeParams.travelid)
.then(function(data, status, headers, config) {
console.log('data success');
console.log(data);
.controller('TravelCtrl', function($scope, $http, $routeParams,
leafletData, leafletBoundsHelpers) {
$scope.travel = {};
$scope.travel = data.data;
}, function(data, status, headers, config) {
console.log('data error');
});
});
//map
$scope.center = {
/*lat: 0,
lng: 0,
zoom: 1*/
};
$scope.bounds = {};
$scope.markers = [];
$scope.tiles = {
url: "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
options: {
attribution: '<a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}
};
$http.get(urlapi + 'travels/id/' + $routeParams.travelid)
.then(function(data, status, headers, config) {
console.log('data success');
console.log(data);
$scope.travel = data.data;
//map
$scope.markers = [];
$scope.markers.push({
lat: Number($scope.travel.from.lat),
lng: Number($scope.travel.from.long),
message: $scope.travel.from.name
});
$scope.markers.push({
lat: Number($scope.travel.to.lat),
lng: Number($scope.travel.to.long),
message: $scope.travel.to.name
});
$scope.center = {
lat: (Number($scope.travel.from.lat) + Number($scope.travel.to.lat)) / 2,
lng: (Number($scope.travel.from.long) + Number($scope.travel.to.long)) / 2,
zoom: 4
};
}, function(data, status, headers, config) {
console.log('data error');
});
});

View File

@@ -1,6 +1,3 @@
<div ng-include="'views/navbar.html'"></div>
<div class="container">
<div class="row">
<div class="col-sm-4">
@@ -10,7 +7,7 @@
</div>
<div class="panel-body">
<div class="list-group">
<a ng-href="#!/user" class="list-group-item">
<a class="list-group-item">
<div class="row-picture">
<img class="circle" ng-src="{{user.avatar}}" alt="icon">
</div>
@@ -34,14 +31,26 @@
</div>
<div class="panel">
<div class="panel-heading c_deepPurple300">
<h3 class="panel-title">User likes</h3>
<h3 class="panel-title">User received likes ({{user.likes.length}})</h3>
</div>
<div class="panel-body">
Panel content
<div class="list-group">
<a ng-repeat="user in likes" 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}}</h4>
<p class="list-group-item-text">{{user.description}}</p>
</div>
<div class="list-group-separator"></div>
</a>
</div>
</div>
</div>
</div>
<div class="col-sm-8">
<div class="col-sm-6">
<div class="panel">
<div class="panel-heading c_deepPurple300">
<h3 class="panel-title">User travels</h3>
@@ -60,7 +69,11 @@
</thead>
<tbody>
<tr ng-repeat="travel in user.travels">
<td>{{travel.type}}</td>
<td>
<i ng-show="travel.type=='offering'" class="fa fa-car fa-2x"></i>
<i ng-show="travel.type=='asking'" class="fa fa-question fa-2x"></i>
<i ng-show="travel.type=='package'" class="fa fa-archive fa-2x"></i>
</td>
<td>{{travel.title}}</td>
<td>{{travel.date | date}}</td>
<td>
@@ -76,5 +89,18 @@
</div>
</div>
</div>
<div class="col-sm-2">
<div class="panel">
<div class="panel-heading c_deepPurple500">
<h3 class="panel-title">Admin actions</h3>
</div>
<div class="panel-body">
<div class="btn btn-block btn-sm c_orange300">Ban user</div>
<div class="btn btn-block btn-sm c_red300">Delete user</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -2,22 +2,33 @@
angular.module('app.user', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/user/:userid', {
templateUrl: 'views/user/user.html',
controller: 'UserCtrl'
});
}])
.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);
.controller('UserCtrl', function($scope, $http, $routeParams) {
$scope.user = {};
$scope.likes = {};
$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');
});
});
$scope.user = data.data;
}, function(data, status, headers, config) {
console.log('data error');
});
$http.get(urlapi + 'users/id/likes/' + $routeParams.userid)
.then(function(data, status, headers, config) {
console.log('data success');
console.log(data);
$scope.likes = data.data;
$scope.$broadcast('scroll.refreshComplete'); //refresher stop
}, function(data, status, headers, config) {
console.log('data error');
$scope.$broadcast('scroll.refreshComplete'); //refresher stop
});
});