ninestat/src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/views/Core/home.html.twig

340 lines
13 KiB
Twig

{% extends '@CadolesCore/base.html.twig' %}
{% block beforepage %}
<div id="mapid" style="width:100%;height:500px"></div>
{% endblock %}
{% block pagewrapper %}
{%if by is defined %}
<h1 style="text-align:center">
{% if by=="acad" %}
<a href="{{ path("cadoles_core_acad",{"acad":byname}) }}">
{% else %}
<a href "{{ path("cadoles_core_application",{"application":byname}) }}">
{% endif %}
{{byname}}</a>
{%if ssby is defined and ssby!="all" %}
<br>{{ssby}}
{% endif %}
</h1>
{% endif %}
{%if totalservers is defined %}
<h1 style="text-align:center; margin-top:10px"><i class="fa fa-server fa-fw"></i>Serveurs = {{ totalservers }} </h1>
{% endif %}
{%if totalapplications is defined %}
<h1 style="text-align:center; margin-top:0px""><i class="fa fa-cubes fa-fw"></i>Applications = {{ totalapplications }} </h1>
{% endif %}
<div class="row" style="margin-top:20px">
{% if totalbyapplications is defined %}
{% if totalbyacademies is defined %}
<div class="col-md-4" style="text-align:center;">
{%else%}
<div class="col-md-8" style="text-align:center;">
{%endif%}
<h1>Applications Installées</h1>
<div class="col-md-7" >
<div id='byapplication-chart'></div>
</div>
<div id="byapplication-legend" class="col-md-5"></div>
</div>
{% endif %}
{% if totalbyacademies is defined %}
{% if totalbyapplications is defined %}
<div class="col-md-4" style="text-align:center;">
{%else%}
<div class="col-md-8" style="text-align:center;">
{%endif%}
<h1>Serveurs par Académies</h1>
<div class="col-md-7" >
<div id='byacademie-chart'></div>
</div>
<div id="byacademie-legend" class="col-md-5"></div>
</div>
{% endif %}
<div class="col-md-4" style="text-align:center;">
<h1>Serveurs par Module</h1>
<div id='bymodule-chart' style="height:250px"></div>
<div id="bymodule-legend"></div>
<h1>Serveurs par Version</h1>
<div id='byversion-chart' style="height:250px"></div>
<div id="byversion-legend"></div>
<h1>Serveurs par Secteurs</h1>
<div id='bysecteur-chart' style="height:250px"></div>
<div id="bysecteur-legend"></div>
<h1>Serveurs par Natures</h1>
<div id='bynature-chart' style="height:250px"></div>
<div id="bynature-legend"></div>
</div>
</div>
{% if by is defined and app.user %}
<table class="table table-striped table-bordered table-hover">
<thead>
<th>UAI</th>
<th>Nom</th>
<th>Adresse</th>
<th>Ville</th>
<th>Secteur</th>
<th>Nature</th>
<th>URL</th>
<th>Module</th>
<th>Version</th>
<th>Application</th>
<th>Paquet</th>
</thead>
{% for server in servers %}
{% for serverapplication in server.serverapplications %}
{% if server.etab and ((by=="acad" and (ssby=="all" or ssby==serverapplication.application.name)) or (by=="application" and serverapplication.application.name==byname)) %}
<tr>
<td>{{server.etab.numerouai}}</td>
<td>{{server.etab.appellationofficielle}}</td>
<td>{{server.etab.adresseuai}}</td>
<td>{{server.etab.libellecommune}}</td>
<td>{{server.etab.secteurpublicprivelibe}}</td>
<td>{{server.etab.natureuailibe}}</td>
<td>{{server.url}}</td>
<td>{{server.module}}</td>
<td>{{server.version}}</td>
<td>{{serverapplication.application.name}}</td>
<td>{{serverapplication.version}}</td>
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</table>
{% endif %}
{% endblock %}
{% block localjavascript %}
// On initialise la latitude et la longitude de Paris (centre de la carte)
var lat = 48.852969;
var lon = 2.349903;
var macarte = null;
// Fonction d'initialisation de la carte
function initMap() {
// Créer l'objet "macarte" et l'insèrer dans l'élément HTML qui a l'ID "map"
macarte = L.map('mapid').setView([lat, lon], 3);
// Leaflet ne récupère pas les cartes (tiles) sur un serveur par défaut. Nous devons lui préciser où nous souhaitons les récupérer. Ici, openstreetmap.fr
L.tileLayer('https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {
// Il est toujours bien de laisser le lien vers la source des données
attribution: 'données © <a href="//osm.org/copyright">OpenStreetMap</a>/ODbL - rendu <a href="//openstreetmap.fr">OSM France</a>',
minZoom: 1,
maxZoom: 20
}).addTo(macarte);
}
$(document).ready(function() {
initMap();
marker=[];
{% for etab in etabs %}
{% if not etab.servers is empty and not etab.latitude is null%}
var marker = L.marker([{{ etab.latitude }}, {{ etab.longitude }}]).addTo(macarte);
html ="<h3>Etablissement</h3>";
{% if(etab.id!=-100) %}
html+="<b>UAI</b> = {{etab.numerouai}}<br>";
html+="<b>Nom</b> = {{etab.appellationofficielle}}<br>";
html+="<b>Adresse</b> = {{etab.adresseuai}} {{etab.codecommune}} {{etab.libellecommune}}<br>";
html+="<b>Académie</b> = {{etab.libelleacademie}}<br>";
html+="<b>Secteur</b> = {{etab.secteurpublicprivelibe}}<br>";
html+="<b>Nature</b> = {{etab.natureuailibe}}<br>";
{% else %}
html+="Non Localisé<br>";
{% endif %}
html+="<hr>";
{% for server in etab.servers %}
html+="<a style='cursor:pointer' onClick='showModal({{server.id}})'>Serveur id = {{ server.id}}</a><br>";
{% endfor %}
marker.bindPopup(html);
{% endif %}
{% endfor %}
//== byAcademie
{% if totalbyacademies is defined %}
var byacademie = Morris.Donut({
element: 'byacademie-chart',
data: [
{% for total in totalbyacademies %}
{'label':'{{ total.label }}','value':{{ total.total }}},
{% endfor %}
],
resize: true
});
byacademie.options.data.forEach(function(label, i) {
{% if byname is defined %}
var url = "{{ path("cadoles_core_acad",{"acad":"xx","application":byname}) }}";
{% else %}
var url = "{{ path("cadoles_core_acad",{"acad":"xx"}) }}";
{% endif %}
var url = url.replace("xx",label['label']);
var legendItem = $('<span style="margin:auto; display: block;text-align: left;"></span>').html( "<a href='"+url+"'>"+label['label'] + "</a> ( " +label['value'] + " )" ).prepend('<span>&nbsp;</span>');
legendItem.find('span')
.css('backgroundColor', byacademie.options.colors[i])
.css('width', '20px')
.css('display', 'inline-block')
.css('margin', '5px');
$('#byacademie-legend').append(legendItem)
});
{% endif %}
//== byNature
var bynature = Morris.Donut({
element: 'bynature-chart',
data: [
{% for total in totalbynatures %}
{'label':'{{ total.label }}','value':{{ total.total }}},
{% endfor %}
],
resize: true
});
bynature.options.data.forEach(function(label, i) {
var legendItem = $('<span style="margin:auto; display: block;text-align: left;"></span>').html( label['label'] + " ( " +label['value'] + " )" ).prepend('<span>&nbsp;</span>');
legendItem.find('span')
.css('backgroundColor', bynature.options.colors[i])
.css('width', '20px')
.css('display', 'inline-block')
.css('margin', '5px');
$('#bynature-legend').append(legendItem)
});
//== bySecteur
var bysecteur = Morris.Donut({
element: 'bysecteur-chart',
data: [
{% for total in totalbysecteurs %}
{'label':'{{ total.label }}','value':{{ total.total }}},
{% endfor %}
],
resize: true
});
bysecteur.options.data.forEach(function(label, i) {
var legendItem = $('<span style="margin:auto; display: block;text-align: left;"></span>').html( label['label'] + " ( " +label['value'] + " )" ).prepend('<span>&nbsp;</span>');
legendItem.find('span')
.css('backgroundColor', bysecteur.options.colors[i])
.css('width', '20px')
.css('display', 'inline-block')
.css('margin', '5px');
$('#bysecteur-legend').append(legendItem)
});
//== byModule
var bymodule = Morris.Donut({
element: 'bymodule-chart',
data: [
{% for total in totalbymodules %}
{'label':'{{ total.label }}','value':{{ total.total }}},
{% endfor %}
],
resize: true
});
bymodule.options.data.forEach(function(label, i) {
var legendItem = $('<span style="margin:auto; display: block;text-align: left;"></span>').html( label['label'] + " ( " +label['value'] + " )" ).prepend('<span>&nbsp;</span>');
legendItem.find('span')
.css('backgroundColor', bymodule.options.colors[i])
.css('width', '20px')
.css('display', 'inline-block')
.css('margin', '5px');
$('#bymodule-legend').append(legendItem)
});
//== byVersion
var byversion = Morris.Donut({
element: 'byversion-chart',
data: [
{% for total in totalbyversions %}
{'label':'{{ total.label }}','value':{{ total.total }}},
{% endfor %}
],
resize: true
});
byversion.options.data.forEach(function(label, i) {
var legendItem = $('<span style="margin:auto; display: block;text-align: left;"></span>').html( label['label'] + " ( " +label['value'] + " )" ).prepend('<span>&nbsp;</span>');
legendItem.find('span')
.css('backgroundColor', byversion.options.colors[i])
.css('width', '20px')
.css('display', 'inline-block')
.css('margin', '5px');
$('#byversion-legend').append(legendItem)
});
//== byApplication
{% if totalbyapplications is defined %}
var byapplication = Morris.Donut({
element: 'byapplication-chart',
data: [
{% for total in totalbyapplications %}
{
'label':'{{ total.label }}',
'value':{{ total.total }},
},
{% endfor %}
],
resize: true
});
byapplication.options.data.forEach(function(label, i) {
{% if byname is defined %}
var url = "{{ path("cadoles_core_acad",{"acad":byname,"application":"xx"}) }}";
{% else %}
var url = "{{ path("cadoles_core_application",{"application":"xx"}) }}";
{% endif %}
var url = url.replace("xx",label['label']);
var legendItem = $('<span style="margin:auto; display: block;text-align: left;"></span>').html( "<a href='"+url+"'>"+label['label'] + "</a> ( " +label['value'] + " )" ).prepend('<span>&nbsp;</span>');
legendItem.find('span')
.css('backgroundColor', byapplication.options.colors[i])
.css('width', '20px')
.css('display', 'inline-block')
.css('margin', '0px 5px 5px 0px');
$('#byapplication-legend').append(legendItem)
});
{% endif %}
//= Table
$('.table').DataTable({
columnDefs: [ { "targets": "no-sort", "orderable": false }, { "targets": "no-string", "type" : "num" } ],
responsive: true,
iDisplayLength: 25,
order: [[ 1, "asc" ]],
dom: 'Blfrtip',
buttons: ['csv']
});
});
function showModal(id) {
var url="{{ path('cadoles_core_server',{id:'xx'})}}";
url=url.replace('xx',id);
console.log("pouet");
$("#mymodal .modal-title").html("Informations Serveur");
$("#mymodal #framemodal").attr("src",url);
$("#mymodal").modal('show');
}
{% endblock %}