added search (users and travels), added user network, added all travels visualization

This commit is contained in:
arnaucode
2017-07-28 22:28:19 +02:00
parent 8b8528ba11
commit bb79275133
12 changed files with 439 additions and 39 deletions

View File

@@ -0,0 +1,36 @@
<div class="container">
<div class="row">
<div class="col-sm-3">
<div class="panel">
<div class="panel-heading c_deepPurple300">
<h3 class="panel-title">All users</h3>
</div>
<div class="panel-body" style="max-height: 500px;overflow-y: scroll;">
<div class="list-group">
<a ng-repeat="user in users" ng-click="getUserNetwork(user)" 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>
<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-9">
<div class="panel-heading c_deepPurple300">
<h3 class="panel-title">Network</h3>
</div>
<div class="panel-body">
<div id="mynetwork" style="height:500px;"></div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,98 @@
'use strict';
angular.module('app.userNetwork', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/userNetwork', {
templateUrl: 'views/userNetwork/userNetwork.html',
controller: 'UserNetworkCtrl'
});
}])
.controller('UserNetworkCtrl', function($scope, $http, $routeParams) {
$scope.data = [];
$scope.nodes = [];
$scope.edges = [];
var nodes, edges, container;
var options = {
layout: {
improvedLayout: false
},
interaction: {
hover: true
},
physics: {
stabilization: false,
//enabled: false
}
};
$scope.showMap = function() {
var nodes = $scope.nodes;
var edges = $scope.edges;
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var network = new vis.Network(container, data, options);
network.on("click", function(params) {
params.event = "[original event]";
//$scope.selectedNode = JSON.stringify(params, null, 4);
$scope.selectedNode = params;
console.log($scope.selectedNode);
console.log($scope.selectedNode.nodes);
var options = {
// position: {x:positionx,y:positiony}, // this is not relevant when focusing on nodes
scale: 1,
offset: {
x: 0,
y: 0
},
animation: {
duration: 500,
easingFunction: "easeInOutQuad"
}
};
network.focus($scope.selectedNode.nodes[0], options);
});
};
$http.get(urlapi + 'admin/network')
.then(function(data, status, headers, config) {
console.log('data success');
console.log(data);
$scope.nodes = data.data.nodes;
$scope.edges = data.data.edges;
$scope.showMap();
}, function(data, status, headers, config) {
console.log('data error');
});
$http.get(urlapi + 'users?page=' + $scope.page)
.then(function(data) {
console.log('data success');
console.log(data);
$scope.users=data.data;
}, function(data) {
console.log('data error');
});
$scope.getUserNetwork = function(user) {
console.log(user);
$http.get(urlapi + 'admin/user/network/' + user._id)
.then(function(data, status, headers, config) {
console.log('data success');
console.log(data);
$scope.nodes = data.data.nodes;
$scope.edges = data.data.edges;
$scope.showMap();
}, function(data, status, headers, config) {
console.log('data error');
});
};
});