@ -1,14 +1,32 @@ |
|||
/*@font-face { |
|||
font-family: Elianto; |
|||
src: url('../fonts/Elianto/Elianto-Regular.otf'); |
|||
}*/ |
|||
|
|||
body { |
|||
/*background: #15191e!important;*/ |
|||
background: #000000!important; |
|||
color: #ffffff!important; |
|||
font-family: 'Open Sans', sans-serif!important; |
|||
} |
|||
|
|||
.card { |
|||
/*background: #1f262d!important;*/ |
|||
background: #1f262d!important; |
|||
/*background: #15191e!important; |
|||
color: #ffffff!important;*/ |
|||
/*border: 1px solid #ffffff!important;*/ |
|||
|
|||
background: #000000!important; |
|||
color: #ffffff!important; |
|||
} |
|||
|
|||
h1, h2, h3, h4, h5, h6 { |
|||
/*font-family: 'Raleway', sans-serif!important;*/ |
|||
font-family: 'Overpass Mono', monospace!important; |
|||
} |
|||
|
|||
.navbar-brand, .card-title { |
|||
font-family: 'Overpass Mono', monospace!important; |
|||
} |
|||
.btn { |
|||
font-family: 'Overpass Mono', monospace!important; |
|||
} |
@ -0,0 +1,15 @@ |
|||
{\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf190 |
|||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;} |
|||
{\colortbl;\red255\green255\blue255;} |
|||
\paperw11900\paperh16840\margl1440\margr1440\vieww10800\viewh8400\viewkind0 |
|||
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural |
|||
|
|||
\f0\fs24 \cf0 Thanks for downloading BLANKA FONT !\ |
|||
\ |
|||
You can use it for free and commercial.\ |
|||
\ |
|||
Feedbacks are welcome !\ |
|||
\ |
|||
\'97\ |
|||
Emmeran RICHARD.\ |
|||
www.emmeranrichard.fr} |
@ -0,0 +1,39 @@ |
|||
<div class="container"> |
|||
<div class="row"> |
|||
<div class="col-sm-2"> |
|||
|
|||
</div> |
|||
<div class="col-sm-8"> |
|||
<h4 class="card-title"> |
|||
Stats |
|||
</h4> |
|||
<div class="card"> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<canvas id="line" class="chart chart-line" chart-data="chart1.data" |
|||
chart-labels="chart1.labels" |
|||
chart-colors="chart1.colours"> |
|||
</canvas> |
|||
</div> |
|||
<div class="row"> |
|||
<canvas id="line" class="chart chart-pie" chart-data="chart2.data" |
|||
chart-labels="chart2.labels" |
|||
chart-colors="chart2.colours"> |
|||
</canvas> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
<div class="row"> |
|||
<div class="progress progress-striped" ng-show="generatingID"> |
|||
<div class="progress-bar progress-bar-success active" style="width: 100%"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-sm-2"> |
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
@ -0,0 +1,136 @@ |
|||
'use strict'; |
|||
|
|||
angular.module('app.stats', ['ngRoute']) |
|||
|
|||
.config(['$routeProvider', function($routeProvider) { |
|||
$routeProvider.when('/stats', { |
|||
templateUrl: 'views/stats/stats.html', |
|||
controller: 'StatsCtrl' |
|||
}); |
|||
}]) |
|||
|
|||
.controller('StatsCtrl', function($scope, $rootScope, $http, $filter) { |
|||
|
|||
$rootScope.server = JSON.parse(localStorage.getItem("darkID_server")); |
|||
|
|||
$scope.generatingID = false; |
|||
$scope.ids = []; |
|||
$http.get(clientapi + 'ids') |
|||
.then(function(data) { |
|||
console.log('data success'); |
|||
console.log(data); |
|||
$scope.ids = data.data; |
|||
$scope.idsToChart(); |
|||
}, function(data) { |
|||
console.log('data error'); |
|||
}); |
|||
|
|||
$scope.newID = function() { |
|||
$scope.generatingID = true; |
|||
$http.get(clientapi + 'newid') |
|||
.then(function(data) { |
|||
console.log('data success'); |
|||
console.log(data); |
|||
$scope.ids = data.data; |
|||
$scope.generatingID = false; |
|||
|
|||
}, function(data) { |
|||
console.log('data error'); |
|||
}); |
|||
}; |
|||
|
|||
$scope.blindAndSendToSign = function(id) { |
|||
$http.get(clientapi + 'blindandsendtosign/' + id) |
|||
.then(function(data) { |
|||
console.log('data success'); |
|||
console.log(data); |
|||
$scope.ids = data.data; |
|||
|
|||
}, function(data) { |
|||
console.log('data error'); |
|||
}); |
|||
}; |
|||
$scope.verify = function(id) { |
|||
$http.get(clientapi + 'verify/' + id) |
|||
.then(function(data) { |
|||
console.log('data success'); |
|||
console.log(data); |
|||
$scope.ids = data.data; |
|||
|
|||
}, function(data) { |
|||
console.log('data error'); |
|||
}); |
|||
}; |
|||
$scope.clientApp = function(route, param) { |
|||
$http.get(clientapi + route + '/' + param) |
|||
.then(function(data) { |
|||
console.log('data success'); |
|||
console.log(data); |
|||
$scope.ids = data.data; |
|||
|
|||
}, function(data) { |
|||
console.log('data error'); |
|||
}); |
|||
}; |
|||
|
|||
//chartjs
|
|||
$scope.chart1 = { |
|||
colours: ['#4DD0E1', '#9575CD', '#F06292', '#FFF176'], |
|||
labels: [], |
|||
data: [] |
|||
}; |
|||
$scope.chart2 = { |
|||
colours: ['#4DD0E1', '#9575CD', '#F06292', '#FFF176'], |
|||
labels: [], |
|||
data: [] |
|||
}; |
|||
$scope.idsToChart = function() { |
|||
//chart1
|
|||
var dictionary = {}; |
|||
var ids = $scope.ids; |
|||
for(var i=0; i<ids.length; i++) { |
|||
var day = $filter('date')(ids[i].date, 'dd.MM.y, HH:mm'); |
|||
if(dictionary[day]==undefined) { |
|||
dictionary[day] = 1 |
|||
} else { |
|||
dictionary[day]++; |
|||
} |
|||
} |
|||
console.log(dictionary); |
|||
for(var key in dictionary) { |
|||
$scope.chart1.labels.push(key); |
|||
$scope.chart1.data.push(dictionary[key]); |
|||
} |
|||
|
|||
|
|||
//chart2
|
|||
var dictionary = {}; |
|||
for(var i=0; i<ids.length; i++) { |
|||
if(ids[i].blockchainref) { |
|||
if(dictionary['in blockchain']==undefined) { |
|||
dictionary['in blockchain'] = 1 |
|||
} else { |
|||
dictionary['in blockchain']++; |
|||
} |
|||
} else if(ids[i].unblindedsig) { |
|||
if(dictionary['signed']==undefined) { |
|||
dictionary['signed'] = 1 |
|||
} else { |
|||
dictionary['signed']++; |
|||
} |
|||
} else { |
|||
if(dictionary['unsigned']==undefined) { |
|||
dictionary['unsigned'] = 1 |
|||
} else { |
|||
dictionary['unsigned']++; |
|||
} |
|||
} |
|||
} |
|||
console.log(dictionary); |
|||
for(var key in dictionary) { |
|||
$scope.chart2.labels.push(key); |
|||
$scope.chart2.data.push(dictionary[key]); |
|||
} |
|||
|
|||
}; |
|||
}); |