Example #1
0
 /**
  * Display instance questions report
  *
  * @param  Application  $app
  * @param  Request      $request
  * @return JsonResponse
  */
 public function doReportQuestions(Application $app, Request $request)
 {
     $questions = new \module_report_question($app, $request->request->get('dmin'), $request->request->get('dmax'), $request->request->get('sbasid'), $request->request->get('collection'));
     $conf = ['user' => [$app->trans('report:: utilisateur'), 1, 1, 1, 1], 'search' => [$app->trans('report:: question'), 1, 0, 1, 1], 'ddate' => [$app->trans('report:: date'), 1, 0, 1, 1], 'fonction' => [$app->trans('report:: fonction'), 1, 1, 1, 1], 'activite' => [$app->trans('report:: activite'), 1, 1, 1, 1], 'pays' => [$app->trans('report:: pays'), 1, 1, 1, 1], 'societe' => [$app->trans('report:: societe'), 1, 1, 1, 1]];
     if ($request->request->get('printcsv') == 'on') {
         $questions->setHasLimit(false);
         $questions->setPrettyString(false);
         $this->doReport($app, $request, $questions, $conf);
         return $this->getCSVResponse($app, $questions, 'questions');
     }
     $report = $this->doReport($app, $request, $questions, $conf);
     if ($report instanceof Response) {
         return $report;
     }
     return $app->json(['rs' => $app['twig']->render('report/ajax_data_content.html.twig', ['result' => isset($report['report']) ? $report['report'] : $report, 'is_infouser' => false, 'is_nav' => false, 'is_groupby' => false, 'is_plot' => false, 'is_doc' => false]), 'display_nav' => $report['display_nav'], 'next' => $report['next_page'], 'prev' => $report['previous_page'], 'page' => $report['page'], 'filter' => sizeof($report['filter']) > 0 ? serialize($report['filter']) : '', 'col' => $report['active_column'], 'limit' => $report['nb_record']]);
 }
 /**
  * Display information about a user
  *
  * @param  Request $request
  * @return JsonResponse
  */
 public function doReportInformationUser(Request $request)
 {
     $conf = ['config' => ['photo' => [$this->app->trans('report:: document'), 0, 0, 0, 0], 'record_id' => [$this->app->trans('report:: record id'), 0, 0, 0, 0], 'date' => [$this->app->trans('report:: date'), 0, 0, 0, 0], 'type' => [$this->app->trans('phrseanet:: sous definition'), 0, 0, 0, 0], 'titre' => [$this->app->trans('report:: titre'), 0, 0, 0, 0], 'taille' => [$this->app->trans('report:: poids'), 0, 0, 0, 0]], 'conf' => ['identifiant' => [$this->app->trans('report:: identifiant'), 0, 0, 0, 0], 'nom' => [$this->app->trans('report:: nom'), 0, 0, 0, 0], 'mail' => [$this->app->trans('report:: email'), 0, 0, 0, 0], 'adresse' => [$this->app->trans('report:: adresse'), 0, 0, 0, 0], 'tel' => [$this->app->trans('report:: telephone'), 0, 0, 0, 0]], 'config_cnx' => ['ddate' => [$this->app->trans('report:: date'), 0, 0, 0, 0], 'appli' => [$this->app->trans('report:: modules'), 0, 0, 0, 0]], 'config_dl' => ['ddate' => [$this->app->trans('report:: date'), 0, 0, 0, 0], 'record_id' => [$this->app->trans('report:: record id'), 0, 1, 0, 0], 'final' => [$this->app->trans('phrseanet:: sous definition'), 0, 0, 0, 0], 'coll_id' => [$this->app->trans('report:: collections'), 0, 0, 0, 0], 'comment' => [$this->app->trans('report:: commentaire'), 0, 0, 0, 0]], 'config_ask' => ['search' => [$this->app->trans('report:: question'), 0, 0, 0, 0], 'ddate' => [$this->app->trans('report:: date'), 0, 0, 0, 0]]];
     $report = null;
     $html = $html_info = '';
     $from = $request->request->get('from', '');
     $on = $request->request->get('on', '');
     $selectValue = $request->request->get('user', '');
     if ('' === $selectValue) {
         $this->app->abort(400);
     }
     if ('' !== $on && $this->getConf()->get(['registry', 'modules', 'anonymous-report']) == true) {
         $conf['conf'] = [$on => [$on, 0, 0, 0, 0], 'nb' => [$this->app->trans('report:: nombre'), 0, 0, 0, 0]];
     }
     if ($from == 'CNXU' || $from == 'CNX') {
         $report = new \module_report_connexion($this->app, $request->request->get('dmin'), $request->request->get('dmax'), $request->request->get('sbasid'), $request->request->get('collection'));
         $conf_array = $conf['config_cnx'];
         $title = $this->app->trans('report:: historique des connexions');
     } elseif ($from == 'USR' || $from == 'GEN') {
         $report = new \module_report_download($this->app, $request->request->get('dmin'), $request->request->get('dmax'), $request->request->get('sbasid'), $request->request->get('collection'));
         $conf_array = $conf['config_dl'];
         $title = $this->app->trans('report:: historique des telechargements');
     } elseif ($from == 'ASK') {
         $report = new \module_report_question($this->app, $request->request->get('dmin'), $request->request->get('dmax'), $request->request->get('sbasid'), $request->request->get('collection'));
         $conf_array = $conf['config_ask'];
         $title = $this->app->trans('report:: historique des questions');
     }
     if ($report) {
         $mapColumnTitleToSqlField = $report->getTransQueryString();
         $currentfilter = [];
         if ('' !== ($serializedFilter = $request->request->get('liste_filter', ''))) {
             $currentfilter = @unserialize(urldecode($serializedFilter));
         }
         $filter = new \module_report_filter($this->app, $currentfilter, $mapColumnTitleToSqlField);
         if ('' !== ($filterColumn = $request->request->get('filter_column', ''))) {
             $field = current(explode(' ', $filterColumn));
             $value = $request->request->get('filter_value', '');
             if ($request->request->get('liste') == 'on') {
                 return $this->app->json(['diag' => $this->render('report/colFilter.html.twig', ['result' => $report->colFilter($field), 'field' => $field]), 'title' => $this->app->trans('filtrer les resultats sur la colonne %colonne%', ['%colonne%' => $field])]);
             }
             if ($field === $value) {
                 $filter->removeFilter($field);
             } else {
                 $filter->addFilter($field, '=', $value);
             }
         }
         if ('' !== $selectValue && '' !== $from) {
             $filter->addfilter('usrid', '=', $selectValue);
         } elseif ('' !== $on && '' !== $selectValue) {
             $filter->addfilter($on, '=', $selectValue);
         }
         if ($report instanceof \module_report_download) {
             $report->setIsInformative(true);
         }
         $report->setFilter($filter->getTabFilter());
         $report->setOrder('ddate', 'DESC');
         $report->setConfig(false);
         $report->setTitle($title);
         $report->setHasLimit(false);
         $reportArray = $report->buildReport($conf_array);
         if ($request->request->get('printcsv') == 'on') {
             $report->setPrettyString(false);
             return $this->getCSVResponse($report, 'info_user');
         }
         $html = $this->render('report/ajax_data_content.html.twig', ['result' => isset($reportArray['report']) ? $reportArray['report'] : $reportArray, 'is_infouser' => $report instanceof \module_report_download, 'is_nav' => false, 'is_groupby' => false, 'is_plot' => false, 'is_doc' => false]);
     }
     $info = new \module_report_nav($this->app, $request->request->get('dmin'), $request->request->get('dmax'), $request->request->get('sbasid'), $request->request->get('collection'));
     $info->setPeriode('');
     $info->setCsv(false);
     $infoArray = $info->buildTabGrpInfo(null !== $report ? $report->getReq() : '', null !== $report ? $report->getParams() : [], $selectValue, $conf['conf'], $on);
     if (false == $this->app['conf']->get(['registry', 'modules', 'anonymous-report'])) {
         $html_info = $this->render('report/ajax_data_content.html.twig', ['result' => isset($infoArray['report']) ? $infoArray['report'] : $infoArray, 'is_infouser' => false, 'is_nav' => false, 'is_groupby' => false, 'is_plot' => false, 'is_doc' => false]);
         $title = '' === $on && isset($infoArray['result']) ? $infoArray['result'][0]['identifiant'] : $selectValue;
     } else {
         $title = $selectValue;
     }
     return $this->app->json(['rs' => sprintf('%s%s', $html_info, $html), 'display_nav' => false, 'title' => $title]);
 }