#14; Prototype du graphique pour le 'type de communication' (appel, sms)
This commit is contained in:
parent
86e6156282
commit
d5d6887a58
|
@ -106,6 +106,14 @@
|
|||
|
||||
"chart": {
|
||||
|
||||
"communication_direction": {
|
||||
"description": "Renvoie les données pour un graphique sur les sens de communications",
|
||||
"permissions": ["admin"],
|
||||
"parameters": {
|
||||
"subject": { "description": "Identifiant du sujet à étudier,", "type": "id" }
|
||||
}
|
||||
},
|
||||
|
||||
"communication_type": {
|
||||
"description": "Renvoie les données pour un graphique sur les types de communications",
|
||||
"permissions": ["admin"],
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
class chart{
|
||||
|
||||
|
||||
/* RETOURNE UN JEU DE DONNEES POUR LE TYPE DE COMMUNICATION (MANQUE/ENTRANT/SORTANT)
|
||||
/* RETOURNE UN JEU DE DONNEES POUR LE SENS DE COMMUNICATION (MANQUE/ENTRANT/SORTANT)
|
||||
*
|
||||
*/
|
||||
public static function communication_type($params){
|
||||
public static function communication_direction($params){
|
||||
extract($params);
|
||||
|
||||
$subject = intval($subject);
|
||||
|
@ -73,6 +73,66 @@
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RETOURNE UN JEU DE DONNEES POUR LE TYPE DE COMMUNICATION (APPEL/SMS)
|
||||
*
|
||||
*/
|
||||
public static function communication_type($params){
|
||||
extract($params);
|
||||
|
||||
$subject = intval($subject);
|
||||
|
||||
|
||||
/* [1] On récupère les données de ce sujet
|
||||
=========================================================*/
|
||||
$db = new lightdb('phone_db', __ROOT__.'/src/dynamic/');
|
||||
$data = $db->fetch($subject);
|
||||
$db->close();
|
||||
|
||||
// Si erreur
|
||||
if( $data === false )
|
||||
return array( 'ModuleError' => ManagerError::ModuleError );
|
||||
|
||||
|
||||
/* [2] S'il a un journal d'appel, on renvoie les données
|
||||
=========================================================*/
|
||||
if( isset($data['logs']) && is_array($data['logs']) ){
|
||||
|
||||
/* (1) On initialise les compteurs */
|
||||
$PHONE = 0;
|
||||
$SMS = 0;
|
||||
|
||||
/* (2) On incrémente les compteurs */
|
||||
foreach($data['logs'] as $log){
|
||||
|
||||
/* (3) On incrémente les compteurs */
|
||||
$PHONE += ($log['type']==0) ? 1 : 0;
|
||||
$SMS += ($log['type']==1) ? 1 : 0;
|
||||
|
||||
}
|
||||
|
||||
/* [3] Si aucun journal d'appel
|
||||
=========================================================*/
|
||||
}else{
|
||||
|
||||
/* (1) On initialise les compteurs */
|
||||
$MISSED = 0;
|
||||
$OUTGOING = 0;
|
||||
$INCOMING = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
return array(
|
||||
'ModuleError' => ManagerError::Success,
|
||||
'labels' => array('APPELS', 'SMS'),
|
||||
'data' => array($PHONE, $SMS)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Chart sens de communication (MANQUE/ENTRANT/SORTANT)</title>
|
||||
<script type='text/javascript' src='/f/js/api-min/js/lib'></script> <!-- Gestion des transactions avec le serveur -->
|
||||
<script type='text/javascript' src='/f/js/_charts-min/js/lib'></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<canvas id="container" width="400" height="400"></canvas>
|
||||
|
||||
|
||||
<script type='text/javascript'>
|
||||
var api = new APIClass('/api/');
|
||||
var ctx = document.getElementById('container').getContext('2d');
|
||||
|
||||
|
||||
|
||||
/* [1] On récupére les données
|
||||
=========================================================*/
|
||||
/* (1) On rédige la requête */
|
||||
var request = {
|
||||
path: 'chart/communication_direction',
|
||||
subject: 273
|
||||
}
|
||||
|
||||
/* (2) On lance la requête */
|
||||
api.send(request, function(response){
|
||||
/* (3) Si erreur, on quitte */
|
||||
if( response.ModuleError != 0 )
|
||||
return false;
|
||||
|
||||
/* [2] On construit les données
|
||||
=========================================================*/
|
||||
var data = {
|
||||
labels: response.labels,
|
||||
datasets: [{
|
||||
data: response.data,
|
||||
backgroundColor: [ "#FF6384", "#36A2EB", "#FFCE56" ],
|
||||
hoverBackgroundColor: [ "#E65977", "#3090D1", "#E6B94D" ]
|
||||
}]
|
||||
}
|
||||
|
||||
/* [3] On construit notre graphique
|
||||
=========================================================*/
|
||||
var myDoughnutChart = new Chart(ctx, {
|
||||
type: 'doughnut',
|
||||
animation: { animateScale: true },
|
||||
data: data
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -2,7 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Chart type de communication (MANQUE/ENTRANT/SORTANT)</title>
|
||||
<title>Chart type de communication (APPEL/SMS)</title>
|
||||
<script type='text/javascript' src='/f/js/api-min/js/lib'></script> <!-- Gestion des transactions avec le serveur -->
|
||||
<script type='text/javascript' src='/f/js/_charts-min/js/lib'></script>
|
||||
</head>
|
||||
|
@ -37,8 +37,8 @@
|
|||
labels: response.labels,
|
||||
datasets: [{
|
||||
data: response.data,
|
||||
backgroundColor: [ "#FF6384", "#36A2EB", "#FFCE56" ],
|
||||
hoverBackgroundColor: [ "#E65977", "#3090D1", "#E6B94D" ]
|
||||
backgroundColor: [ "#FF6384", "#36A2EB" ],
|
||||
hoverBackgroundColor: [ "#E65977", "#3090D1" ]
|
||||
}]
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue