340 lines
13 KiB
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> </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> </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> </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> </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> </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> </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 %}
|