From 266592213b4f55fa30881cb2d64b7672f2be2380 Mon Sep 17 00:00:00 2001 From: Nicolas Le Goff Date: Tue, 18 Mar 2014 16:59:03 +0100 Subject: [PATCH 1/4] Report dashboard is now loaded on demand --- .../Phrasea/Controller/Report/Root.php | 67 ++++--- .../ajax_dashboard_content_child.html.twig | 164 +++++++++--------- templates/web/report/all_content.html.twig | 16 +- .../web/report/form_date_and_base.html.twig | 15 +- .../web/report/report_layout_child.html.twig | 64 +++---- www/skins/report/dash-ajax-loader.gif | Bin 0 -> 21629 bytes www/skins/report/report-table.css | 4 + www/skins/report/report.js | 122 ++++++------- 8 files changed, 225 insertions(+), 227 deletions(-) create mode 100644 www/skins/report/dash-ajax-loader.gif diff --git a/lib/Alchemy/Phrasea/Controller/Report/Root.php b/lib/Alchemy/Phrasea/Controller/Report/Root.php index 2b4c4a4027..621796551d 100644 --- a/lib/Alchemy/Phrasea/Controller/Report/Root.php +++ b/lib/Alchemy/Phrasea/Controller/Report/Root.php @@ -66,38 +66,53 @@ class Root implements ControllerProviderInterface */ public function getDashboard(Application $app, Request $request) { - $dashboard = new \module_report_dashboard($app, $app['authentication']->getUser()); - - if ('json' !== $request->getRequestFormat()) { + if ('json' === $request->getRequestFormat()) { \User_Adapter::updateClientInfos($app, 4); + $dashboard = new \module_report_dashboard($app, $app['authentication']->getUser()); + + $dmin = $request->query->get('dmin'); + $dmax = $request->query->get('dmax'); + + if ($dmin && $dmax) { + $dashboard->setDate($dmin, $dmax); + } + $dashboard->execute(); - return $app['twig']->render('report/report_layout_child.html.twig', array( - 'ajax_dash' => true, - 'dashboard' => $dashboard, - 'home_title' => $app['phraseanet.registry']->get('GV_homeTitle'), - 'module' => 'report', - 'module_name' => 'Report', - 'anonymous' => $app['phraseanet.registry']->get('GV_anonymousReport'), - 'g_anal' => $app['phraseanet.registry']->get('GV_googleAnalytics'), - 'ajax' => false, - 'ajax_chart' => false - )); + return $app->json(array('html' => $app['twig']->render('report/ajax_dashboard_content_child.html.twig', array( + 'dashboard' => $dashboard + )))); } - $dmin = $request->request->get('dmin'); - $dmax = $request->request->get('dmax'); - - if ($dmin && $dmax) { - $dashboard->setDate($dmin, $dmax); + $granted = array(); + foreach($app['authentication']->getUser()->acl()->get_granted_base(array('canreport')) as $collection) { + if (!isset($granted[$collection->get_sbas_id()])) { + $granted[$collection->get_sbas_id()] = array( + 'id' => $collection->get_sbas_id(), + 'name' => $collection->get_databox()->get_viewname(), + 'collections' => array() + ); + } + $granted[$collection->get_sbas_id()]['collections'][] = array( + 'id' => $collection->get_coll_id(), + 'base_id' => $collection->get_base_id(), + 'name' => $collection->get_name() + ); } - $dashboard->execute(); - - return $app->json(array('html' => $app['twig']->render('report/ajax_dashboard_content_child.html.twig', array( - 'dashboard' => $dashboard - )))); + return $app['twig']->render('report/report_layout_child.html.twig', array( + 'ajax_dash' => true, + 'dashboard' => null, + 'granted_bases' => $granted, + 'home_title' => $app['phraseanet.registry']->get('GV_homeTitle'), + 'module' => 'report', + 'module_name' => 'Report', + 'anonymous' => $app['phraseanet.registry']->get('GV_anonymousReport'), + 'g_anal' => $app['phraseanet.registry']->get('GV_googleAnalytics'), + 'ajax' => false, + 'ajax_chart' => false + )); } /** @@ -120,8 +135,8 @@ class Root implements ControllerProviderInterface $dmax = date('d') . '-' . date('m') . '-' . date('Y'); } - $dmin = \DateTime::createFromFormat('d-m-Y H:i:s', sprintf('%s 00:00:00', $dmin)); - $dmax = \DateTime::createFromFormat('d-m-Y H:i:s', sprintf('%s 23:59:59', $dmax)); + $dmin = \DateTime::createFromFormat('Y-m-d H:i:s', sprintf('%s 00:00:00', $dmin)); + $dmax = \DateTime::createFromFormat('Y-m-d H:i:s', sprintf('%s 23:59:59', $dmax)); //get user's sbas & collections selection from popbases $selection = array(); diff --git a/templates/web/report/ajax_dashboard_content_child.html.twig b/templates/web/report/ajax_dashboard_content_child.html.twig index 29e49596ba..91fcb68bc2 100644 --- a/templates/web/report/ajax_dashboard_content_child.html.twig +++ b/templates/web/report/ajax_dashboard_content_child.html.twig @@ -1,90 +1,84 @@ {% extends "report/ajax_dashboard_content.html.twig" %} {% import "report/dashboard_macro.html.twig" as dash %} - - {% block currentDashboard %} - - {% set item = dashboard.dashboard %} - - - {% if "activity"|key_exists(item) %} - {% set title1 = "report:: activite par heure" | trans %} - {% set title2 = "report:: Connexion" | trans %} - {{ dash.table_activity("mytablehour", title1, title2, item.activity)}} - {% endif %} - {% if "activity_day"|key_exists(item) %} - {% set title1 = "report:: activite par jour" | trans %} - {% set title2 = "report:: Connexion" | trans %} - {{dash.table_activity("mytabledaytotal", title1, title2, item.activity_day)}} - {%endif%} - {% if "activity_added"|key_exists(item) %} - {% set title1 = "report:: activite document ajoute" | trans %} - {{ dash.table_activity("mytableadded", title1 , "", item.activity_added)}} - {%endif %} - {% if "activity_edited"|key_exists(item) %} - {% set title1 = "report:: activite document edite" | trans %} - {{ dash.table_activity("mytableedited", title1 , "", item.activity_edited)}} - {% endif %} - {% if "nb_conn"|key_exists(item) and "nb_dl"|key_exists(item)%} - {% set title1 = "report:: Cumul telechargements & connexions" | trans %} - {% set title2 = "report:: telechargements" | trans %} - {% set title3 = "report::Connexion" | trans %} - {{ dash.connexion_download(title1, title2, title3, item.nb_dl, item.nb_conn, dashboard.getTitleDate('dmin'),dashboard.getTitleDate('dmax'))}} - {% endif %} - {% if "top_ten_user_doc"|key_exists(item)%} - {% set title1 = "report:: Utilisateurs les plus actifs" | trans %} - {% set title2 = "report:: utilisateurs" | trans %} - {% set title3 = "report:: telechargements document" | trans %} - {{ dash.table(title1 , title2, title3, item.top_ten_user_doc, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "false") }} - {% endif %} - {% if "top_ten_user_prev"|key_exists(item) %} - {% set title1 = "report:: Utilisateurs les plus actifs" | trans %} - {% set title2 = "report:: utilisateurs" | trans %} - {% set title3 = "report:: telechargements preview" | trans %} - {{ dash.table(title1 , title2, title3, item.top_ten_user_prev, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "false") }} - {%endif %} - {% if "top_ten_user_poiddoc"|key_exists(item) %} - {% set title1 = "report:: Utilisateurs les plus actifs" | trans %} - {% set title2 = "report:: utilisateurs" | trans %} - {% set title3 = "report:: poids document" | trans %} - {{ dash.table(title1 , title2, title3, item.top_ten_user_poiddoc, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "true", "false") }} - {%endif %} - {% if "top_ten_user_poidprev"|key_exists(item) %} - {% set title1 = "report:: Utilisateurs les plus actifs" | trans %} - {% set title2 = "report:: utilisateurs" | trans %} - {% set title3 = "report:: poids preview" | trans %} - {{ dash.table(title1, title2, title3, item.top_ten_user_poidprev, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "true", "false") }} - {%endif %} - {% if "top_dl_doc"|key_exists(item) %} - {% set title1 = "report:: documents les plus telecharges" | trans %} - {% set title2 = "report:: document" | trans %} - {% set title3 = "report:: telechargements" | trans %} - {{ dash.table(title1, title2, title3, item.top_dl_doc, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "true") }} - {%endif %} - {% if "top_dl_preview"|key_exists(item) %} - {% set title1 = "report:: preview les plus telecharges" | trans %} - {% set title2 = "report:: preview" | trans %} - {% set title3 = "report:: telechargements" | trans %} - {{ dash.table(title1, title2, title3, item.top_dl_preview, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "true") }} - {%endif %} - {% if "ask"|key_exists(item) %} - {% set title1 = "report:: Les questions les plus posees" | trans %} - {% set title2 = "report:: utilisateurs" | trans %} - {% set title3 = "report:: question" | trans %} - {{ dash.table(title1, title2, title3, item.ask, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "false") }} - {%endif %} - {% if "top_ten_question"|key_exists(item) %} - {% set title1 = "report:: question" | trans %} - {% set title2 = "report:: poids preview" | trans %} - {{dash.top_ten_question(app['phraseanet.registry'].get('GV_homeTitle'), title1, title2, item.top_ten_question,dashboard.getTitleDate('dmin') , dashboard.getTitleDate('dmax')) }} - {%endif %} - {% if "top_ten_site"|key_exists(item) %} - {% set title1 = "report:: site d\'ou les photo sont les plus consultees" | trans %} - {% set title2 = "report:: site" | trans %} - {% set title3 = "report:: nombre de vue" | trans %} - {{ dash.table(title1, title2, title3, item.top_ten_site, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "false") }} - {%endif %} - - {%endblock currentDashboard %} + {% set item = dashboard.dashboard %} + {% if "activity"|key_exists(item) %} + {% set title1 = "report:: activite par heure" | trans %} + {% set title2 = "report:: Connexion" | trans %} + {{ dash.table_activity("mytablehour", title1, title2, item.activity)}} + {% endif %} + {% if "activity_day"|key_exists(item) %} + {% set title1 = "report:: activite par jour" | trans %} + {% set title2 = "report:: Connexion" | trans %} + {{dash.table_activity("mytabledaytotal", title1, title2, item.activity_day)}} + {%endif%} + {% if "activity_added"|key_exists(item) %} + {% set title1 = "report:: activite document ajoute" | trans %} + {{ dash.table_activity("mytableadded", title1 , "", item.activity_added)}} + {%endif %} + {% if "activity_edited"|key_exists(item) %} + {% set title1 = "report:: activite document edite" | trans %} + {{ dash.table_activity("mytableedited", title1 , "", item.activity_edited)}} + {% endif %} + {% if "nb_conn"|key_exists(item) and "nb_dl"|key_exists(item)%} + {% set title1 = "report:: Cumul telechargements & connexions" | trans %} + {% set title2 = "report:: telechargements" | trans %} + {% set title3 = "report::Connexion" | trans %} + {{ dash.connexion_download(title1, title2, title3, item.nb_dl, item.nb_conn, dashboard.getTitleDate('dmin'),dashboard.getTitleDate('dmax'))}} + {% endif %} + {% if "top_ten_user_doc"|key_exists(item)%} + {% set title1 = "report:: Utilisateurs les plus actifs" | trans %} + {% set title2 = "report:: utilisateurs" | trans %} + {% set title3 = "report:: telechargements document" | trans %} + {{ dash.table(title1 , title2, title3, item.top_ten_user_doc, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "false") }} + {% endif %} + {% if "top_ten_user_prev"|key_exists(item) %} + {% set title1 = "report:: Utilisateurs les plus actifs" | trans %} + {% set title2 = "report:: utilisateurs" | trans %} + {% set title3 = "report:: telechargements preview" | trans %} + {{ dash.table(title1 , title2, title3, item.top_ten_user_prev, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "false") }} + {%endif %} + {% if "top_ten_user_poiddoc"|key_exists(item) %} + {% set title1 = "report:: Utilisateurs les plus actifs" | trans %} + {% set title2 = "report:: utilisateurs" | trans %} + {% set title3 = "report:: poids document" | trans %} + {{ dash.table(title1 , title2, title3, item.top_ten_user_poiddoc, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "true", "false") }} + {%endif %} + {% if "top_ten_user_poidprev"|key_exists(item) %} + {% set title1 = "report:: Utilisateurs les plus actifs" | trans %} + {% set title2 = "report:: utilisateurs" | trans %} + {% set title3 = "report:: poids preview" | trans %} + {{ dash.table(title1, title2, title3, item.top_ten_user_poidprev, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "true", "false") }} + {%endif %} + {% if "top_dl_doc"|key_exists(item) %} + {% set title1 = "report:: documents les plus telecharges" | trans %} + {% set title2 = "report:: document" | trans %} + {% set title3 = "report:: telechargements" | trans %} + {{ dash.table(title1, title2, title3, item.top_dl_doc, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "true") }} + {%endif %} + {% if "top_dl_preview"|key_exists(item) %} + {% set title1 = "report:: preview les plus telecharges" | trans %} + {% set title2 = "report:: preview" | trans %} + {% set title3 = "report:: telechargements" | trans %} + {{ dash.table(title1, title2, title3, item.top_dl_preview, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "true") }} + {%endif %} + {% if "ask"|key_exists(item) %} + {% set title1 = "report:: Les questions les plus posees" | trans %} + {% set title2 = "report:: utilisateurs" | trans %} + {% set title3 = "report:: question" | trans %} + {{ dash.table(title1, title2, title3, item.ask, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "false") }} + {%endif %} + {% if "top_ten_question"|key_exists(item) %} + {% set title1 = "report:: question" | trans %} + {% set title2 = "report:: poids preview" | trans %} + {{dash.top_ten_question(app['phraseanet.registry'].get('GV_homeTitle'), title1, title2, item.top_ten_question,dashboard.getTitleDate('dmin') , dashboard.getTitleDate('dmax')) }} + {%endif %} + {% if "top_ten_site"|key_exists(item) %} + {% set title1 = "report:: site d\'ou les photo sont les plus consultees" | trans %} + {% set title2 = "report:: site" | trans %} + {% set title3 = "report:: nombre de vue" | trans %} + {{ dash.table(title1, title2, title3, item.top_ten_site, dashboard.getTitleDate('dmin'), dashboard.getTitleDate('dmax'), "false", "false") }} + {%endif %} +{%endblock currentDashboard %} diff --git a/templates/web/report/all_content.html.twig b/templates/web/report/all_content.html.twig index 46aee17c58..a67e39fd50 100644 --- a/templates/web/report/all_content.html.twig +++ b/templates/web/report/all_content.html.twig @@ -12,20 +12,15 @@ {% block javascript %}