@ -1,14 +1,32 @@ |
|||||
|
/*@font-face { |
||||
|
font-family: Elianto; |
||||
|
src: url('../fonts/Elianto/Elianto-Regular.otf'); |
||||
|
}*/ |
||||
|
|
||||
body { |
body { |
||||
/*background: #15191e!important;*/ |
/*background: #15191e!important;*/ |
||||
background: #000000!important; |
background: #000000!important; |
||||
color: #ffffff!important; |
color: #ffffff!important; |
||||
|
font-family: 'Open Sans', sans-serif!important; |
||||
} |
} |
||||
|
|
||||
.card { |
.card { |
||||
/*background: #1f262d!important;*/ |
|
||||
|
background: #1f262d!important; |
||||
/*background: #15191e!important; |
/*background: #15191e!important; |
||||
color: #ffffff!important;*/ |
color: #ffffff!important;*/ |
||||
/*border: 1px solid #ffffff!important;*/ |
/*border: 1px solid #ffffff!important;*/ |
||||
|
|
||||
background: #000000!important; |
background: #000000!important; |
||||
color: #ffffff!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]); |
||||
|
} |
||||
|
|
||||
|
}; |
||||
|
}); |