From da4acb5c197ddba22a7546161c14f6ffbf508789 Mon Sep 17 00:00:00 2001 From: afornerot Date: Thu, 25 Jun 2020 10:44:17 +0200 Subject: [PATCH] svg --- .../CoreBundle/Controller/CoreController.php | 126 +++++++++++++++++- .../CoreBundle/Resources/config/routing.yml | 6 +- .../public/js/dataTable.buttons.html5.min.js | 36 +++++ .../public/js/dataTables.buttons.min.js | 43 ++++++ .../Resources/views/Core/home.html.twig | 121 +++++++++-------- .../Resources/views/Include/footer.html.twig | 2 + 6 files changed, 276 insertions(+), 58 deletions(-) create mode 100644 src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/js/dataTable.buttons.html5.min.js create mode 100644 src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/js/dataTables.buttons.min.js diff --git a/src/ninestat-1.0/src/Cadoles/CoreBundle/Controller/CoreController.php b/src/ninestat-1.0/src/Cadoles/CoreBundle/Controller/CoreController.php index 1f7747b..b647894 100644 --- a/src/ninestat-1.0/src/Cadoles/CoreBundle/Controller/CoreController.php +++ b/src/ninestat-1.0/src/Cadoles/CoreBundle/Controller/CoreController.php @@ -147,7 +147,6 @@ class CoreController extends Controller 'totalbyacademies' => $totalbyacademies->getQuery()->getResult(), 'totalbysecteurs' => $totalbysecteurs->getQuery()->getResult(), 'totalbynatures' => $totalbynatures->getQuery()->getResult(), - 'by' => "total", ]); } @@ -266,7 +265,130 @@ class CoreController extends Controller 'totalbynatures' => $totalbynatures->getQuery()->getResult(), 'by' => "acad", 'servers' => $servers->getQuery()->getResult(), - 'acad' => $acad, + 'byname' => $acad, + ]); + } + + public function applicationAction($application,Request $request) + { + $em = $this->getDoctrine()->getManager(); + $user=$this->getUser(); + + // Total servers + $servers = $em->createQueryBuilder() + ->select('s') + ->from('CadolesCoreBundle:Server','s') + ->from('CadolesCoreBundle:ServerApplication','sa') + ->from('CadolesCoreBundle:Application','a') + ->where('sa.server=s') + ->andWhere('sa.application=a') + ->andWhere('a.name=:application') + ->setParameter('application',$application); + + // Total by module + $totalmodules = $em->createQueryBuilder() + ->select('COUNT(s.module) total','s.module label') + ->from('CadolesCoreBundle:Server','s') + ->from('CadolesCoreBundle:ServerApplication','sa') + ->from('CadolesCoreBundle:Application','a') + ->where('sa.server=s') + ->andWhere('sa.application=a') + ->andWhere('a.name=:application') + ->setParameter('application',$application) + ->groupBy('s.module') + ->orderBy('total','DESC') + ->addOrderBy('label','ASC'); + + // Total by version + $totalversions = $em->createQueryBuilder() + ->select('COUNT(s.version) total','s.version label') + ->from('CadolesCoreBundle:Server','s') + ->from('CadolesCoreBundle:ServerApplication','sa') + ->from('CadolesCoreBundle:Application','a') + ->where('sa.server=s') + ->andWhere('sa.application=a') + ->andWhere('a.name=:application') + ->setParameter('application',$application) + ->groupBy('s.version') + ->orderBy('total','DESC') + ->addOrderBy('label','ASC'); + + // Total by Académie + $totalbyacademies = $em->createQueryBuilder() + ->select('COUNT(e.libelle_academie) total','e.libelle_academie label') + ->from('CadolesCoreBundle:Etab','e') + ->from('CadolesCoreBundle:Server','s') + ->from('CadolesCoreBundle:ServerApplication','sa') + ->from('CadolesCoreBundle:Application','a') + ->where('sa.server=s') + ->andWhere('sa.application=a') + ->andWhere('a.name=:application') + ->andwhere('s.etab=e') + ->setParameter('application',$application) + ->groupBy('e.libelle_academie') + ->orderBy('total','DESC') + ->addOrderBy('label','ASC'); + + // Total by Secteur + $totalbysecteurs = $em->createQueryBuilder() + ->select('COUNT(e.secteur_public_prive_libe) total','e.secteur_public_prive_libe label') + ->from('CadolesCoreBundle:Etab','e') + ->from('CadolesCoreBundle:Server','s') + ->from('CadolesCoreBundle:ServerApplication','sa') + ->from('CadolesCoreBundle:Application','a') + ->where('sa.server=s') + ->andWhere('sa.application=a') + ->andWhere('a.name=:application') + ->andwhere('s.etab=e') + ->setParameter('application',$application) + ->groupBy('e.secteur_public_prive_libe') + ->orderBy('total','DESC') + ->addOrderBy('label','ASC'); + + // Total by Nature + $totalbynatures = $em->createQueryBuilder() + ->select('COUNT(e.nature_uai_libe) total','e.nature_uai_libe label') + ->from('CadolesCoreBundle:Etab','e') + ->from('CadolesCoreBundle:Server','s') + ->from('CadolesCoreBundle:ServerApplication','sa') + ->from('CadolesCoreBundle:Application','a') + ->where('sa.server=s') + ->andWhere('sa.application=a') + ->andWhere('a.name=:application') + ->andwhere('s.etab=e') + ->setParameter('application',$application) + ->groupBy('e.nature_uai_libe') + ->orderBy('total','DESC') + ->addOrderBy('label','ASC'); + + // Servers + $etabs = $em->createQueryBuilder() + ->select('e') + ->from('CadolesCoreBundle:Etab','e') + ->from('CadolesCoreBundle:Server','s') + ->from('CadolesCoreBundle:ServerApplication','sa') + ->from('CadolesCoreBundle:Application','a') + ->where('sa.server=s') + ->andWhere('sa.application=a') + ->andWhere('a.name=:application') + ->andWhere('s.etab=e') + ->setParameter('application',$application); + + return $this->render('CadolesCoreBundle:Core:home.html.twig',[ + 'useheader' => true, + 'usemenu' => false, + 'usesidebar' => false, + 'etabs' => $etabs->getQuery()->getResult(), + 'totalservers' => count($servers->getQuery()->getResult()), + 'totalbymodules' => $totalmodules->getQuery()->getResult(), + 'totalbyversions' => $totalversions->getQuery()->getResult(), + 'totalbyacademies' => $totalbyacademies->getQuery()->getResult(), + 'totalbysecteurs' => $totalbysecteurs->getQuery()->getResult(), + 'totalbynatures' => $totalbynatures->getQuery()->getResult(), + 'by' => "application", + 'servers' => $servers->getQuery()->getResult(), + 'byname' => $application, + ]); } diff --git a/src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml b/src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml index 054f4f0..68fe2bf 100644 --- a/src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml +++ b/src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/config/routing.yml @@ -10,7 +10,11 @@ cadoles_core_server: cadoles_core_acad: path: /acad/{acad} defaults: { _controller: CadolesCoreBundle:Core:acad } - + +cadoles_core_application: + path: /application/{application} + defaults: { _controller: CadolesCoreBundle:Core:application } + #== Theme ================================================================================================================ cadoles_core_theme_setconfig: diff --git a/src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/js/dataTable.buttons.html5.min.js b/src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/js/dataTable.buttons.html5.min.js new file mode 100644 index 0000000..2091407 --- /dev/null +++ b/src/ninestat-1.0/src/Cadoles/CoreBundle/Resources/public/js/dataTable.buttons.html5.min.js @@ -0,0 +1,36 @@ +/*! + HTML5 export buttons for Buttons and DataTables. + 2016 SpryMedia Ltd - datatables.net/license + + FileSaver.js (1.3.3) - MIT license + Copyright © 2016 Eli Grey - http://eligrey.com +*/ +(function(f){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(g){return f(g,window,document)}):"object"===typeof exports?module.exports=function(g,l,z,t){g||(g=window);l&&l.fn.dataTable||(l=require("datatables.net")(g,l).$);l.fn.dataTable.Buttons||require("datatables.net-buttons")(g,l);return f(l,g,g.document,z,t)}:f(jQuery,window,document)})(function(f,g,l,z,t,w){function A(a){for(var b="";0<=a;)b=String.fromCharCode(a%26+65)+b,a=Math.floor(a/ +26)-1;return b}function E(a,b){y===w&&(y=-1===C.serializeToString((new g.DOMParser).parseFromString(F["xl/worksheets/sheet1.xml"],"text/xml")).indexOf("xmlns:r"));f.each(b,function(b,c){if(f.isPlainObject(c))b=a.folder(b),E(b,c);else{if(y){var d=c.childNodes[0],e,h=[];for(e=d.attributes.length-1;0<=e;e--){var n=d.attributes[e].nodeName;var k=d.attributes[e].nodeValue;-1!==n.indexOf(":")&&(h.push({name:n,value:k}),d.removeAttribute(n))}e=0;for(n=h.length;e'+c),c=c.replace(/_dt_b_namespace_token_/g,":"),c=c.replace(/xmlns:NS[\d]+="" NS[\d]+:/g,""));c=c.replace(/<([^<>]*?) xmlns=""([^<>]*?)>/g,"<$1 $2>");a.file(b,c)}})}function r(a,b,d){var c=a.createElement(b);d&&(d.attr&&f(c).attr(d.attr),d.children&&f.each(d.children,function(a,b){c.appendChild(b)}),null!==d.text&&d.text!== +w&&c.appendChild(a.createTextNode(d.text)));return c}function L(a,b){var d=a.header[b].length;a.footer&&a.footer[b].length>d&&(d=a.footer[b].length);for(var c=0,f=a.body.length;cd&&(d=e);if(401*a[1]?!0:!1};try{var C=new XMLSerializer,y}catch(a){}var F={"_rels/.rels":'', +"xl/_rels/workbook.xml.rels":'',"[Content_Types].xml":'', +"xl/workbook.xml":'', +"xl/worksheets/sheet1.xml":'',"xl/styles.xml":''}, +K=[{match:/^\-?\d+\.\d%$/,style:60,fmt:function(a){return a/100}},{match:/^\-?\d+\.?\d*%$/,style:56,fmt:function(a){return a/100}},{match:/^\-?\$[\d,]+.?\d*$/,style:57},{match:/^\-?£[\d,]+.?\d*$/,style:58},{match:/^\-?€[\d,]+.?\d*$/,style:59},{match:/^\-?\d+$/,style:65},{match:/^\-?\d+\.\d{2}$/,style:66},{match:/^\([\d,]+\)$/,style:61,fmt:function(a){return-1*a.replace(/[\(\)]/g,"")}},{match:/^\([\d,]+\.\d{2}\)$/,style:62,fmt:function(a){return-1*a.replace(/[\(\)]/g,"")}},{match:/^\-?[\d,]+$/,style:63}, +{match:/^\-?[\d,]+\.\d{2}$/,style:64},{match:/^[\d]{4}\-[\d]{2}\-[\d]{2}$/,style:67,fmt:function(a){return Math.round(25569+Date.parse(a)/864E5)}}];v.ext.buttons.copyHtml5={className:"buttons-copy buttons-html5",text:function(a){return a.i18n("buttons.copy","Copy")},action:function(a,b,d,c){this.processing(!0);var g=this;a=I(b,c);var e=b.buttons.exportInfo(c),h=H(c),n=a.str;d=f("
").css({height:1,width:1,overflow:"hidden",position:"fixed",top:0,left:0});e.title&&(n=e.title+h+h+n);e.messageTop&& +(n=e.messageTop+h+h+n);e.messageBottom&&(n=n+h+h+e.messageBottom);c.customize&&(n=c.customize(n,c,b));c=f("