traduction + alert
This commit is contained in:
@@ -8932,7 +8932,7 @@ a.text-dark:hover, a.text-dark:focus {
|
||||
margin-bottom: 20px; }
|
||||
@media (min-width: 992px) {
|
||||
.az-content-title {
|
||||
margin-bottom: 40px; } }
|
||||
margin-bottom: 30px; } }
|
||||
|
||||
.az-content-label {
|
||||
color: #1c273c;
|
||||
|
||||
@@ -75,6 +75,8 @@ final class BroadcastController extends AbstractController
|
||||
|
||||
$this->stateRepository->addState($investigation, 3, 1, $broadcast);
|
||||
|
||||
$this->addFlash('danger', " <strong>Well done!</strong> You successfully read this important alert message.");
|
||||
|
||||
return $this->redirectToRoute('app_broadcast_index');
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
|
||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||
|
||||
final class DemoController extends AbstractController
|
||||
{
|
||||
#[Route('/demo/index', name: 'app_demo_index')]
|
||||
@@ -18,6 +20,9 @@ final class DemoController extends AbstractController
|
||||
#[Route('/demo/empty', name: 'app_demo_empty')]
|
||||
public function empty(): Response
|
||||
{
|
||||
$this->addFlash('danger', " <strong>Well done!</strong> You successfully read this important alert message.");
|
||||
|
||||
//$this->addFlash('success', $this->translator->trans('conference.success_create_message', array(), 'Admin'));
|
||||
return $this->render('demo/empty.html.twig', []);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
|
||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
||||
use App\Entity\State;
|
||||
@@ -24,16 +26,19 @@ final class InvestigationController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @param EntityManagerInterface $em
|
||||
* @param TranslatorInterface $translator
|
||||
* @param StateRepository $stateRepository
|
||||
* @param InvestigationRepository $investigationRepository
|
||||
* @return $this
|
||||
*/
|
||||
public function __construct(
|
||||
private EntityManagerInterface $em,
|
||||
private TranslatorInterface $translator,
|
||||
private StateRepository $stateRepository,
|
||||
private InvestigationRepository $investigationRepository,
|
||||
) {
|
||||
$this->em = $em;
|
||||
$this->translator = $translator;
|
||||
$this->stateRepository = $stateRepository;
|
||||
$this->investigationRepository = $investigationRepository;
|
||||
}
|
||||
@@ -41,7 +46,7 @@ final class InvestigationController extends AbstractController
|
||||
#[Route('/index', name: 'app_investigation_index')]
|
||||
public function index(): Response
|
||||
{
|
||||
$investigations = $this->investigationRepository->findBy(['create_by' => $this->getUser()], ["id" => 'DESC']);
|
||||
$investigations = $this->investigationRepository->findBy(['create_by' => $this->getUser(), 'last_state' => [10, 11, 12, 20, 21, 22]], ["id" => 'DESC']);
|
||||
|
||||
$invesAdmins = $this->investigationRepository->findBy(['create_by' => $this->getUser(), 'last_state' => 21], ["id" => 'DESC']);
|
||||
|
||||
@@ -65,6 +70,9 @@ final class InvestigationController extends AbstractController
|
||||
|
||||
$this->em->persist($investigation);
|
||||
$this->em->flush();
|
||||
|
||||
$this->addFlash('success', $this->translator->trans('alert_sucess_add', [], 'investigation'));
|
||||
return $this->redirectToRoute('app_investigation_index');
|
||||
}
|
||||
|
||||
return $this->render('investigation/add-index.html.twig', [
|
||||
@@ -86,10 +94,13 @@ final class InvestigationController extends AbstractController
|
||||
$form = $this->createForm(InvestigationType::class, $investigation);
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
if ($form->isSubmitted() && $form->isValid())
|
||||
{
|
||||
$investigation = $form->getData();
|
||||
$this->em->persist($investigation);
|
||||
$this->em->flush();
|
||||
|
||||
$this->addFlash('success', $this->translator->trans('alert_sucess_add', [], 'investigation'));
|
||||
}
|
||||
|
||||
return $this->render('investigation/add-index.html.twig', [
|
||||
@@ -133,6 +144,8 @@ final class InvestigationController extends AbstractController
|
||||
|
||||
$this->stateRepository->addState($investigation, 2, 1);
|
||||
|
||||
$this->addFlash('success', $this->translator->trans('alert_sucess_send_validation', [], 'investigation'));
|
||||
|
||||
return $this->redirectToRoute('app_investigation_index');
|
||||
}
|
||||
|
||||
@@ -153,8 +166,11 @@ final class InvestigationController extends AbstractController
|
||||
{
|
||||
$investigations = $this->investigationRepository->findBy(['last_state' => 21], ["id" => 'DESC']);
|
||||
|
||||
$id = $request->request->get('id');
|
||||
$this->addFlash('success', $this->translator->trans('alert_sucess', array(), 'active'));
|
||||
|
||||
$id = $request->query->get('id');
|
||||
if ($id) {
|
||||
|
||||
$investigation = $this->investigationRepository->find($id);
|
||||
|
||||
$investigation->setLastState(20);
|
||||
@@ -162,6 +178,7 @@ final class InvestigationController extends AbstractController
|
||||
$this->em->flush();
|
||||
|
||||
$this->stateRepository->addState($investigation, 2, 0);
|
||||
|
||||
}
|
||||
|
||||
return $this->render('investigation/admin-active.html.twig', [
|
||||
|
||||
@@ -180,6 +180,11 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
return $this->lastLogin;
|
||||
}
|
||||
|
||||
public function getLastLoginFormat($format): string
|
||||
{
|
||||
return $this->lastLogin->format($format);
|
||||
}
|
||||
|
||||
public function setLastLogin(\DateTimeInterface $lastLogin): self
|
||||
{
|
||||
$this->lastLogin = $lastLogin;
|
||||
|
||||
10
templates/basic/alert.html.twig
Normal file
10
templates/basic/alert.html.twig
Normal file
@@ -0,0 +1,10 @@
|
||||
{% for label, messages in app.flashes %}
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-{{ label }}" role="alert" style="margin-bottom: 30px;">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
{{ message| raw }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
@@ -46,6 +46,7 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<hr class="mg-y-30">
|
||||
|
||||
<div class="az-content-label mg-t-15">en cours de divusion</div>
|
||||
<p class="mg-b-20">Liste des enquêtes en cours de divusion</p>
|
||||
@@ -66,7 +67,7 @@
|
||||
<tbody>
|
||||
{% for broadcast in broadcasts %}
|
||||
<tr>
|
||||
<td>{{ broadcast.getId() }}</td>
|
||||
<td>{{ broadcast.getInvestigation().getId() }}</td>
|
||||
<td>{{ broadcast.getInvestigation().getNameEn() }}</td>
|
||||
<td>{{ broadcast.getDateCreate()|date("d/m/Y") }}</td>
|
||||
<td>{{ broadcast.getDateEnd()|date("d/m/Y") }}</td>
|
||||
|
||||
@@ -20,11 +20,7 @@
|
||||
<div class="az-content-label mg-b-5"></div>
|
||||
<p class="mg-b-20">Liste des -----</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% include 'basic/alert.html.twig' %}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}Page d'accueil{% endblock %}
|
||||
{% trans_default_domain 'home' %}
|
||||
|
||||
{% block title %} {{ 'home'|trans }} {% endblock %}
|
||||
|
||||
{% set navbarTitle = "Page d'accueil" %}
|
||||
{#
|
||||
{% set navbarPages = [{'page':"Page d'accueil", 'url':null }] %}
|
||||
#}
|
||||
{% block content %}
|
||||
|
||||
<!-- az-header -->
|
||||
@@ -14,641 +12,25 @@
|
||||
<div class="az-content-body">
|
||||
<div class="az-dashboard-one-title">
|
||||
<div>
|
||||
<h2 class="az-dashboard-title">Hi, welcome back!</h2>
|
||||
<p class="az-dashboard-text">Your web analytics dashboard template.</p>
|
||||
<h2 class="az-dashboard-title">{{ 'welcome'|trans }}</h2>
|
||||
<p class="az-dashboard-text">{{ app.user.getPseudo() }}</p>
|
||||
</div>
|
||||
<div class="az-content-header-right">
|
||||
<div class="media">
|
||||
<div class="media-body">
|
||||
<label>Start Date</label>
|
||||
<h6>Oct 10, 2018</h6>
|
||||
<label>{{ 'last_login'|trans }}</label>
|
||||
<h6>{{ app.user.getLastLoginFormat('d/m/Y H:i') }}</h6>
|
||||
</div>
|
||||
<!-- media-body -->
|
||||
</div>
|
||||
<!-- media -->
|
||||
<div class="media">
|
||||
<div class="media-body">
|
||||
<label>End Date</label>
|
||||
<h6>Oct 23, 2018</h6>
|
||||
</div>
|
||||
<!-- media-body -->
|
||||
</div>
|
||||
<!-- media -->
|
||||
<div class="media">
|
||||
<div class="media-body">
|
||||
<label>Event Category</label>
|
||||
<h6>All Categories</h6>
|
||||
</div>
|
||||
<!-- media-body -->
|
||||
</div>
|
||||
<!-- media -->
|
||||
<a href="" class="btn btn-purple">Export</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- az-dashboard-one-title -->
|
||||
<div class="az-dashboard-nav">
|
||||
<nav class="nav">
|
||||
<a class="nav-link active" data-toggle="tab" href="#">Overview</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#">Audiences</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#">Demographics</a>
|
||||
<a class="nav-link" data-toggle="tab" href="#">More</a>
|
||||
</nav>
|
||||
<nav class="nav">
|
||||
<a class="nav-link" href="#"><i class="far fa-save"></i> Save Report</a>
|
||||
<a class="nav-link" href="#"><i class="far fa-file-pdf"></i> Export to PDF</a>
|
||||
<a class="nav-link" href="#"><i class="far fa-envelope"></i>Send to Email</a>
|
||||
<a class="nav-link" href="#"><i class="fas fa-ellipsis-h"></i></a>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="row row-sm mg-b-20">
|
||||
<div class="col-lg-7 ht-lg-100p">
|
||||
<div class="card card-dashboard-one">
|
||||
<div class="card-header">
|
||||
<div>
|
||||
<h6 class="card-title">Website Audience Metrics</h6>
|
||||
<p class="card-text">Audience to which the users belonged while on the current date range.</p>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn active">Day</button>
|
||||
<button class="btn">Week</button>
|
||||
<button class="btn">Month</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- card-header -->
|
||||
<div class="card-body">
|
||||
<div class="card-body-top">
|
||||
<div>
|
||||
<label class="mg-b-0">Users</label>
|
||||
<h2>13,956</h2>
|
||||
</div>
|
||||
<div>
|
||||
<label class="mg-b-0">Bounce Rate</label>
|
||||
<h2>33.50%</h2>
|
||||
</div>
|
||||
<div>
|
||||
<label class="mg-b-0">Page Views</label>
|
||||
<h2>83,123</h2>
|
||||
</div>
|
||||
<div>
|
||||
<label class="mg-b-0">Sessions</label>
|
||||
<h2>16,869</h2>
|
||||
</div>
|
||||
</div>
|
||||
<!-- card-body-top -->
|
||||
<div class="flot-chart-wrapper">
|
||||
<div id="flotChart" class="flot-chart"></div>
|
||||
</div>
|
||||
<!-- flot-chart-wrapper -->
|
||||
</div>
|
||||
<!-- card-body -->
|
||||
</div>
|
||||
<!-- card -->
|
||||
</div>
|
||||
<!-- col -->
|
||||
<div class="col-lg-5 mg-t-20 mg-lg-t-0">
|
||||
<div class="row row-sm">
|
||||
<div class="col-sm-6">
|
||||
<div class="card card-dashboard-two">
|
||||
<div class="card-header">
|
||||
<h6>33.50% <i class="icon ion-md-trending-up tx-success"></i> <small>18.02%</small></h6>
|
||||
<p>Bounce Rate</p>
|
||||
</div>
|
||||
<!-- card-header -->
|
||||
<div class="card-body">
|
||||
<div class="chart-wrapper">
|
||||
<div id="flotChart1" class="flot-chart"></div>
|
||||
</div>
|
||||
<!-- chart-wrapper -->
|
||||
</div>
|
||||
<!-- card-body -->
|
||||
</div>
|
||||
<!-- card -->
|
||||
</div>
|
||||
<!-- col -->
|
||||
<div class="col-sm-6 mg-t-20 mg-sm-t-0">
|
||||
<div class="card card-dashboard-two">
|
||||
<div class="card-header">
|
||||
<h6>86k <i class="icon ion-md-trending-down tx-danger"></i> <small>0.86%</small></h6>
|
||||
<p>Total Users</p>
|
||||
</div>
|
||||
<!-- card-header -->
|
||||
<div class="card-body">
|
||||
<div class="chart-wrapper">
|
||||
<div id="flotChart2" class="flot-chart"></div>
|
||||
</div>
|
||||
<!-- chart-wrapper -->
|
||||
</div>
|
||||
<!-- card-body -->
|
||||
</div>
|
||||
<!-- card -->
|
||||
</div>
|
||||
<!-- col -->
|
||||
<div class="col-sm-12 mg-t-20">
|
||||
<div class="card card-dashboard-three">
|
||||
<div class="card-header">
|
||||
<p>All Sessions</p>
|
||||
<h6>16,869 <small class="tx-success"><i class="icon ion-md-arrow-up"></i> 2.87%</small></h6>
|
||||
<small>The total number of sessions within the date range. It is the period time a user is actively engaged with your website, page or app, etc.</small>
|
||||
</div>
|
||||
<!-- card-header -->
|
||||
<div class="card-body">
|
||||
<div class="chart">
|
||||
<canvas id="chartBar5"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- row -->
|
||||
</div>
|
||||
<!--col -->
|
||||
</div>
|
||||
<!-- row -->
|
||||
<div class="row row-sm mg-b-20">
|
||||
<div class="col-lg-4">
|
||||
<div class="card card-dashboard-pageviews">
|
||||
<div class="card-header">
|
||||
<h6 class="card-title">Page Views by Page Title</h6>
|
||||
<p class="card-text">This report is based on 100% of sessions.</p>
|
||||
</div>
|
||||
<!-- card-header -->
|
||||
<div class="card-body">
|
||||
<div class="az-list-item">
|
||||
<div>
|
||||
<h6>Admin Home</h6>
|
||||
<span>/demo/admin/{{ path('app_demo_index') }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="tx-primary">7,755</h6>
|
||||
<span>31.74% (-100.00%)</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- list-group-item -->
|
||||
<div class="az-list-item">
|
||||
<div>
|
||||
<h6>Form Elements</h6>
|
||||
<span>/demo/admin/forms.html</span>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="tx-primary">5,215</h6>
|
||||
<span>28.53% (-100.00%)</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- list-group-item -->
|
||||
<div class="az-list-item">
|
||||
<div>
|
||||
<h6>Utilities</h6>
|
||||
<span>/demo/admin/util.html</span>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="tx-primary">4,848</h6>
|
||||
<span>25.35% (-100.00%)</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- list-group-item -->
|
||||
<div class="az-list-item">
|
||||
<div>
|
||||
<h6>Form Validation</h6>
|
||||
<span>/demo/admin/validation.html</span>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="tx-primary">3,275</h6>
|
||||
<span>23.17% (-100.00%)</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- list-group-item -->
|
||||
<div class="az-list-item">
|
||||
<div>
|
||||
<h6>Modals</h6>
|
||||
<span>/demo/admin/modals.html</span>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="tx-primary">3,003</h6>
|
||||
<span>22.21% (-100.00%)</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- list-group-item -->
|
||||
</div>
|
||||
<!-- card-body -->
|
||||
</div>
|
||||
<!-- card -->
|
||||
</div>
|
||||
<!-- col -->
|
||||
<div class="col-lg-8 mg-t-20 mg-lg-t-0">
|
||||
<div class="card card-dashboard-four">
|
||||
<div class="card-header">
|
||||
<h6 class="card-title">Sessions by Channel</h6>
|
||||
</div>
|
||||
<!-- card-header -->
|
||||
<div class="card-body row">
|
||||
<div class="col-md-6 d-flex align-items-center">
|
||||
<div class="chart">
|
||||
<canvas id="chartDonut"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<!-- col -->
|
||||
<div class="col-md-6 col-lg-5 mg-lg-l-auto mg-t-20 mg-md-t-0">
|
||||
<div class="az-traffic-detail-item">
|
||||
<div>
|
||||
<span>Organic Search</span>
|
||||
<span>1,320 <span>(25%)</span></span>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-purple wd-25p" role="progressbar" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<!-- progress -->
|
||||
</div>
|
||||
<div class="az-traffic-detail-item">
|
||||
<div>
|
||||
<span>Email</span>
|
||||
<span>987 <span>(20%)</span></span>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-primary wd-20p" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<!-- progress -->
|
||||
</div>
|
||||
<div class="az-traffic-detail-item">
|
||||
<div>
|
||||
<span>Referral</span>
|
||||
<span>2,010 <span>(30%)</span></span>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-info wd-30p" role="progressbar" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<!-- progress -->
|
||||
</div>
|
||||
<div class="az-traffic-detail-item">
|
||||
<div>
|
||||
<span>Social</span>
|
||||
<span>654 <span>(15%)</span></span>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-teal wd-15p" role="progressbar" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<!-- progress -->
|
||||
</div>
|
||||
<div class="az-traffic-detail-item">
|
||||
<div>
|
||||
<span>Other</span>
|
||||
<span>400 <span>(10%)</span></span>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-gray-500 wd-10p" role="progressbar" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<!-- progress -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- col -->
|
||||
</div>
|
||||
<!-- card-body -->
|
||||
</div>
|
||||
<!-- card-dashboard-four -->
|
||||
</div>
|
||||
<!-- col -->
|
||||
</div>
|
||||
<!-- row -->
|
||||
<div class="row row-sm mg-b-20 mg-lg-b-0">
|
||||
<div class="col-lg-5 col-xl-4">
|
||||
<div class="row row-sm">
|
||||
<div class="col-md-6 col-lg-12 mg-b-20 mg-md-b-0 mg-lg-b-20">
|
||||
<div class="card card-dashboard-five">
|
||||
<div class="card-header">
|
||||
<h6 class="card-title">Acquisition</h6>
|
||||
<span class="card-text">Tells you where your visitors originated from, such as search engines, social networks or website referrals.</span>
|
||||
</div>
|
||||
<!-- card-header -->
|
||||
<div class="card-body row row-sm">
|
||||
<div class="col-6 d-sm-flex align-items-center">
|
||||
<div class="card-chart bg-primary">
|
||||
<span class="peity-bar" data-peity='{"fill": ["#fff"], "width": 20, "height": 20 }'>6,4,7,5,7</span>
|
||||
</div>
|
||||
<div>
|
||||
<label>Bounce Rate</label>
|
||||
<h4>33.50%</h4>
|
||||
</div>
|
||||
</div>
|
||||
<!-- col -->
|
||||
<div class="col-6 d-sm-flex align-items-center">
|
||||
<div class="card-chart bg-purple">
|
||||
<span class="peity-bar" data-peity='{"fill": ["#fff"], "width": 21, "height": 20 }'>7,4,5,7,2</span>
|
||||
</div>
|
||||
<div>
|
||||
<label>Sessions</label>
|
||||
<h4>9,065</h4>
|
||||
</div>
|
||||
</div>
|
||||
<!-- col -->
|
||||
</div>
|
||||
<!-- card-body -->
|
||||
</div>
|
||||
<!-- card-dashboard-five -->
|
||||
</div>
|
||||
<!-- col -->
|
||||
<div class="col-md-6 col-lg-12">
|
||||
<div class="card card-dashboard-five">
|
||||
<div class="card-header">
|
||||
<h6 class="card-title">Sessions</h6>
|
||||
<span class="card-text"> A session is the period time a user is actively engaged with your website, app, etc.</span>
|
||||
</div>
|
||||
<!-- card-header -->
|
||||
<div class="card-body row row-sm">
|
||||
<div class="col-6 d-sm-flex align-items-center">
|
||||
<div class="mg-b-10 mg-sm-b-0 mg-sm-r-10">
|
||||
<span class="peity-donut" data-peity='{ "fill": ["#007bff", "#cad0e8"], "innerRadius": 14, "radius": 20 }'>4/7</span>
|
||||
</div>
|
||||
<div>
|
||||
<label>% New Sessions</label>
|
||||
<h4>26.80%</h4>
|
||||
</div>
|
||||
</div>
|
||||
<!-- col -->
|
||||
<div class="col-6 d-sm-flex align-items-center">
|
||||
<div class="mg-b-10 mg-sm-b-0 mg-sm-r-10">
|
||||
<span class="peity-donut" data-peity='{ "fill": ["#00cccc", "#cad0e8"], "innerRadius": 14, "radius": 20 }'>2/7</span>
|
||||
</div>
|
||||
<div>
|
||||
<label>Pages/Session</label>
|
||||
<h4>1,005</h4>
|
||||
</div>
|
||||
</div>
|
||||
<!-- col -->
|
||||
</div>
|
||||
<!-- card-body -->
|
||||
</div>
|
||||
<!-- card-dashboard-five -->
|
||||
</div>
|
||||
<!-- col -->
|
||||
</div>
|
||||
<!-- row -->
|
||||
</div>
|
||||
<!-- col-lg-3 -->
|
||||
<div class="col-lg-7 col-xl-8 mg-t-20 mg-lg-t-0">
|
||||
<div class="card card-table-one">
|
||||
<h6 class="card-title">What pages do your users visit</h6>
|
||||
<p class="az-content-text mg-b-20">Part of this date range occurs before the new users metric had been calculated, so the old users metric is displayed.</p>
|
||||
<div class="table-responsive">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="wd-5p"> </th>
|
||||
<th class="wd-45p">Country</th>
|
||||
<th>Entrances</th>
|
||||
<th>Bounce Rate</th>
|
||||
<th>Exits</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><i class="flag-icon flag-icon-us flag-icon-squared"></i></td>
|
||||
<td><strong>United States</strong></td>
|
||||
<td><strong>134</strong> (1.51%)</td>
|
||||
<td>33.58%</td>
|
||||
<td>15.47%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="flag-icon flag-icon-gb flag-icon-squared"></i></td>
|
||||
<td><strong>United Kingdom</strong></td>
|
||||
<td><strong>290</strong> (3.30%)</td>
|
||||
<td>9.22%</td>
|
||||
<td>7.99%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="flag-icon flag-icon-in flag-icon-squared"></i></td>
|
||||
<td><strong>India</strong></td>
|
||||
<td><strong>250</strong> (3.00%)</td>
|
||||
<td>20.75%</td>
|
||||
<td>2.40%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="flag-icon flag-icon-ca flag-icon-squared"></i></td>
|
||||
<td><strong>Canada</strong></td>
|
||||
<td><strong>216</strong> (2.79%)</td>
|
||||
<td>32.07%</td>
|
||||
<td>15.09%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="flag-icon flag-icon-fr flag-icon-squared"></i></td>
|
||||
<td><strong>France</strong></td>
|
||||
<td><strong>216</strong> (2.79%)</td>
|
||||
<td>32.07%</td>
|
||||
<td>15.09%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="flag-icon flag-icon-ph flag-icon-squared"></i></td>
|
||||
<td><strong>Philippines</strong></td>
|
||||
<td><strong>197</strong> (2.12%)</td>
|
||||
<td>32.07%</td>
|
||||
<td>15.09%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- table-responsive -->
|
||||
</div>
|
||||
<!-- card -->
|
||||
</div>
|
||||
<!-- col-lg -->
|
||||
</div>
|
||||
<!-- row -->
|
||||
</div>
|
||||
<!-- az-content-body -->
|
||||
</div>
|
||||
</div>
|
||||
{% block javascripts %}
|
||||
<script src="{{ asset('assets/js/chart.flot.sampledata.js') }}"></script>
|
||||
<script src="{{ asset('assets/js/dashboard.sampledata.js') }}"></script>
|
||||
<script src="{{ asset('assets/lib/chart.js/Chart.bundle.min.js') }}"></script>
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
'use strict'
|
||||
|
||||
var plot = $.plot('#flotChart', [{
|
||||
data: flotSampleData3,
|
||||
color: '#007bff',
|
||||
lines: {
|
||||
fillColor: { colors: [{ opacity: 0 }, { opacity: 0.2 }]}
|
||||
}
|
||||
},{
|
||||
data: flotSampleData4,
|
||||
color: '#560bd0',
|
||||
lines: {
|
||||
fillColor: { colors: [{ opacity: 0 }, { opacity: 0.2 }]}
|
||||
}
|
||||
}], {
|
||||
series: {
|
||||
shadowSize: 0,
|
||||
lines: {
|
||||
show: true,
|
||||
lineWidth: 2,
|
||||
fill: true
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
borderWidth: 0,
|
||||
labelMargin: 8
|
||||
},
|
||||
yaxis: {
|
||||
show: true,
|
||||
min: 0,
|
||||
max: 100,
|
||||
ticks: [[0,''],[20,'20K'],[40,'40K'],[60,'60K'],[80,'80K']],
|
||||
tickColor: '#eee'
|
||||
},
|
||||
xaxis: {
|
||||
show: true,
|
||||
color: '#fff',
|
||||
ticks: [[25,'OCT 21'],[75,'OCT 22'],[100,'OCT 23'],[125,'OCT 24']],
|
||||
}
|
||||
});
|
||||
|
||||
$.plot('#flotChart1', [{
|
||||
data: dashData2,
|
||||
color: '#00cccc'
|
||||
}], {
|
||||
series: {
|
||||
shadowSize: 0,
|
||||
lines: {
|
||||
show: true,
|
||||
lineWidth: 2,
|
||||
fill: true,
|
||||
fillColor: { colors: [ { opacity: 0.2 }, { opacity: 0.2 } ] }
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
borderWidth: 0,
|
||||
labelMargin: 0
|
||||
},
|
||||
yaxis: {
|
||||
show: false,
|
||||
min: 0,
|
||||
max: 35
|
||||
},
|
||||
xaxis: {
|
||||
show: false,
|
||||
max: 50
|
||||
}
|
||||
});
|
||||
|
||||
$.plot('#flotChart2', [{
|
||||
data: dashData2,
|
||||
color: '#007bff'
|
||||
}], {
|
||||
series: {
|
||||
shadowSize: 0,
|
||||
bars: {
|
||||
show: true,
|
||||
lineWidth: 0,
|
||||
fill: 1,
|
||||
barWidth: .5
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
borderWidth: 0,
|
||||
labelMargin: 0
|
||||
},
|
||||
yaxis: {
|
||||
show: false,
|
||||
min: 0,
|
||||
max: 35
|
||||
},
|
||||
xaxis: {
|
||||
show: false,
|
||||
max: 20
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//-------------------------------------------------------------//
|
||||
|
||||
|
||||
// Line chart
|
||||
$('.peity-line').peity('line');
|
||||
|
||||
// Bar charts
|
||||
$('.peity-bar').peity('bar');
|
||||
|
||||
// Bar charts
|
||||
$('.peity-donut').peity('donut');
|
||||
|
||||
var ctx5 = document.getElementById('chartBar5').getContext('2d');
|
||||
new Chart(ctx5, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: [0,1,2,3,4,5,6,7],
|
||||
datasets: [{
|
||||
data: [2, 4, 10, 20, 45, 40, 35, 18],
|
||||
backgroundColor: '#560bd0'
|
||||
}, {
|
||||
data: [3, 6, 15, 35, 50, 45, 35, 25],
|
||||
backgroundColor: '#cad0e8'
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
maintainAspectRatio: false,
|
||||
tooltips: {
|
||||
enabled: false
|
||||
},
|
||||
legend: {
|
||||
display: false,
|
||||
labels: {
|
||||
display: false
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
yAxes: [{
|
||||
display: false,
|
||||
ticks: {
|
||||
beginAtZero:true,
|
||||
fontSize: 11,
|
||||
max: 80
|
||||
}
|
||||
}],
|
||||
xAxes: [{
|
||||
barPercentage: 0.6,
|
||||
gridLines: {
|
||||
color: 'rgba(0,0,0,0.08)'
|
||||
},
|
||||
ticks: {
|
||||
beginAtZero:true,
|
||||
fontSize: 11,
|
||||
display: false
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Donut Chart
|
||||
var datapie = {
|
||||
labels: ['Search', 'Email', 'Referral', 'Social', 'Other'],
|
||||
datasets: [{
|
||||
data: [25,20,30,15,10],
|
||||
backgroundColor: ['#6f42c1', '#007bff','#17a2b8','#00cccc','#adb2bd']
|
||||
}]
|
||||
};
|
||||
|
||||
var optionpie = {
|
||||
maintainAspectRatio: false,
|
||||
responsive: true,
|
||||
legend: {
|
||||
display: false,
|
||||
},
|
||||
animation: {
|
||||
animateScale: true,
|
||||
animateRotate: true
|
||||
}
|
||||
};
|
||||
|
||||
// For a doughnut chart
|
||||
var ctxpie= document.getElementById('chartDonut');
|
||||
var myPieChart6 = new Chart(ctxpie, {
|
||||
type: 'doughnut',
|
||||
data: datapie,
|
||||
options: optionpie
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -1,75 +1,70 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}Enquête{% endblock %}
|
||||
{% block title %}Admin Validation{% endblock %}
|
||||
|
||||
|
||||
{% set navbarTitle = "Enquête" %}
|
||||
{% set navbarPages = [{'page':"Gestion", 'url':null }] %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- Page Content -->
|
||||
<div id="content-page" class="content-page">
|
||||
<div class="container-fluid">
|
||||
<div class="iq-card">
|
||||
<div class="iq-card-header d-flex justify-content-between">
|
||||
<div class="iq-header-title">
|
||||
<h4 class="card-title">Liste des enquêtes à activer</h4>
|
||||
</div>
|
||||
<!-- az-header -->
|
||||
<div class="az-content">
|
||||
<div class="container">
|
||||
<div class="az-content-body d-flex flex-column">
|
||||
|
||||
|
||||
<div class="az-content-breadcrumb">
|
||||
<span>Admin</span>
|
||||
<span>Enquête</span>
|
||||
</div>
|
||||
<div class="iq-card-body">
|
||||
<div class="table-responsive">
|
||||
<table id="user-list-table" class="table table-striped table-bordered" role="grid" aria-describedby="user-list-page-info">
|
||||
<thead>
|
||||
<h2 class="az-content-title">Validation</h2>
|
||||
|
||||
|
||||
{% include 'basic/alert.html.twig' %}
|
||||
|
||||
<p class="mg-b-20">Liste des Enquête a valider par l'admin</p>
|
||||
|
||||
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table mg-b-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Name</th>
|
||||
<th>Date Create</th>
|
||||
<th>Questions</th>
|
||||
<th>Afficher</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for investigation in investigations %}
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Name</th>
|
||||
<th>Date Create</th>
|
||||
<th>Questions</th>
|
||||
<th>Status</th>
|
||||
<th>Action</th>
|
||||
<td>{{ investigation.getId() }}</td>
|
||||
<td>{{ investigation.getNameEn() }}</td>
|
||||
<td>{{ investigation.getDateCreate()|date("d/m/Y H:i") }}</td>
|
||||
<td>{{ investigation.getNbrQuestions() }}</td>
|
||||
<td>
|
||||
<a href=""class="badge badge-warning text-white" >
|
||||
Afficher l'enquête
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ path('app_investigation_admin_active', {id:investigation.getId()}) }}" class="">Activer</a>
|
||||
<a href="#" class="">Réfuser</a>
|
||||
</td>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for investigation in investigations %}
|
||||
<tr>
|
||||
<td>{{ investigation.getId() }}</td>
|
||||
<td>{{ investigation.getNameEn() }}</td>
|
||||
<td>{{ investigation.getDateCreate()|date("d/m/Y H:i") }}</td>
|
||||
<td>{{ investigation.getNbrQuestions() }}</td>
|
||||
<td>
|
||||
{% if investigation.getLastState() == 10 %}
|
||||
<div class="badge badge-info">Création Terminer </div>
|
||||
{% elseif investigation.getLastState() == 11 %}
|
||||
<div class="badge badge-light">Encour de Création</div>
|
||||
{% elseif investigation.getLastState() == 12 %}
|
||||
<div class="badge badge-dark">Dupliquer</div>
|
||||
{% elseif investigation.getLastState() == 20 %}
|
||||
<div class="badge badge-success">Demande Valider</div>
|
||||
{% elseif investigation.getLastState() == 21 %}
|
||||
<div class="badge badge-warning text-white">Demande Envoyer</div>
|
||||
{% elseif investigation.getLastState() == 22 %}
|
||||
<div class="badge badge-danger text-white">Demande Rejeter</div>
|
||||
{% else %}
|
||||
--
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ path('app_investigation_admin_active', {id:investigation.getId()}) }}" class="">activer</a>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Wrapper END -->
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -16,6 +16,8 @@
|
||||
</div>
|
||||
<h2 class="az-content-title">Enquête</h2>
|
||||
|
||||
{% include 'basic/alert.html.twig' %}
|
||||
|
||||
<div class="az-content-label mg-b-5"></div>
|
||||
<p class="mg-b-20">Liste des enquêtes prêt a envoyer à l’administration pour valider</p>
|
||||
|
||||
@@ -23,9 +25,9 @@
|
||||
<table class="table mg-b-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Demande de validation</th>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Demande de validation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -84,10 +86,25 @@
|
||||
</td>
|
||||
<td>
|
||||
<div class="btn-icon-list">
|
||||
<a class="btn btn-indigo btn-icon" title="duplicate" href="{{ path('app_investigation_duplicate', {id:investigation.getId()}) }}"><i class="ion ion-ios-git-branch"></i></a>
|
||||
<a class="btn btn-indigo btn-icon" title="Edit" href="{{ path('app_investigation_edit', {id:investigation.getId()}) }}"><i class="typcn typcn-edit"></i></a>
|
||||
{% if investigation.getLastState() != 12 %}
|
||||
<a class="btn btn-dark btn-icon" title="duplicate" href="{{ path('app_investigation_duplicate', {id:investigation.getId()}) }}"><i class="ion ion-ios-git-branch"></i></a>
|
||||
{% endif %}
|
||||
|
||||
{% if investigation.getLastState() not in [20, 21] %}
|
||||
<a class="btn btn-indigo btn-icon" title="Edit" href="{{ path('app_investigation_edit', {id:investigation.getId()}) }}"><i class="typcn typcn-edit"></i></a>
|
||||
{% endif %}
|
||||
<a class="btn btn-indigo btn-icon" title="Afficher" href="{{ path('app_investigation_show', {id:investigation.getId()}) }}"><i class="ion ion-ios-tv"></i></a>
|
||||
<a class="btn btn-danger btn-icon" title="Delete" href="{{ path('app_investigation_delete', {id:investigation.getId()}) }}"><i class="ion ion-md-trash"></i></a>
|
||||
|
||||
{% if investigation.getLastState() in [10, 11, 12] %}
|
||||
<button type="button"
|
||||
class="btn btn-danger btn-icon"
|
||||
data-toggle="modal"
|
||||
data-target="#deleteModal"
|
||||
data-url="{{ path('app_investigation_delete', {id:investigation.getId()}) }}">
|
||||
<i class="ion ion-md-trash"></i>
|
||||
</button>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -102,4 +119,43 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="deleteModalLabel">Confirmation de suppression</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Êtes-vous sûr de vouloir supprimer cet élément ? cette action est irréversible.
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
|
||||
|
||||
{# Le formulaire de suppression réel #}
|
||||
<form id="delete-form" method="post" action="">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token('delete') }}">
|
||||
<button class="btn btn-danger">Confirmer la suppression</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% block javascripts %}
|
||||
<script type="text/javascript">
|
||||
$('#deleteModal').on('show.bs.modal', function (event) {
|
||||
var button = $(event.relatedTarget); // Bouton qui a déclenché la modal
|
||||
var url = button.data('url'); // Extraction de l'URL via l'attribut data-url
|
||||
console.log(url);
|
||||
var modal = $(this);
|
||||
modal.find('#delete-form').attr('action', url);
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% endblock %}
|
||||
3
translations/home.ar.yaml
Normal file
3
translations/home.ar.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
home: "الصفحة الرئيسية"
|
||||
welcome: "مرحبًا، أهلاً بعودتك!"
|
||||
last_login: "تاريخ آخر اتصال"
|
||||
3
translations/home.en.yaml
Normal file
3
translations/home.en.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
home: "Home"
|
||||
welcome: "Hi, welcome back!"
|
||||
last_login: "Last login date"
|
||||
3
translations/home.fr.yaml
Normal file
3
translations/home.fr.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
home: "Accueil"
|
||||
welcome: "Bonjour, bienvenue à nouveau !"
|
||||
last_login: "Date dernière connection"
|
||||
3
translations/investigation.ar.yaml
Normal file
3
translations/investigation.ar.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
alert_sucess_add: "النجاح"
|
||||
alert_sucess_edit: "النجاح"
|
||||
alert_sucess_send_validation: "النجاح"
|
||||
3
translations/investigation.en.yaml
Normal file
3
translations/investigation.en.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
alert_sucess_add: "sucess"
|
||||
alert_sucess_edit: ""
|
||||
alert_sucess_send_validation: "sucess"
|
||||
3
translations/investigation.fr.yaml
Normal file
3
translations/investigation.fr.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
alert_sucess_add: "succès"
|
||||
alert_sucess_edit: ""
|
||||
alert_sucess_send_validation: "succès "
|
||||
@@ -1,10 +1,11 @@
|
||||
home: ""
|
||||
investigation_create: ""
|
||||
investigation_liste: ""
|
||||
rroadcast: ""
|
||||
rapport: ""
|
||||
home: "الصفحة الرئيسية"
|
||||
investigation: "التحقيق"
|
||||
investigation_create: "إنشاء"
|
||||
investigation_liste: "القائمة"
|
||||
broadcast: "البث"
|
||||
rapport: "تقرير"
|
||||
|
||||
profile: ""
|
||||
profile_edit: ""
|
||||
account_settings: ""
|
||||
sign_out: ""
|
||||
profile: "الملف الشخصي"
|
||||
profile_edit: "تحرير الملف الشخصي"
|
||||
account_settings: "إعدادات الحساب"
|
||||
sign_out: "تسجيل الخروج"
|
||||
@@ -7,5 +7,5 @@ rapport: "Rapport"
|
||||
|
||||
profile: "Profile"
|
||||
profile_edit: "Modifier mon profile"
|
||||
account_settings: "Account Settings"
|
||||
sign_out: "Sign Out"
|
||||
account_settings: "Paramètres du compte"
|
||||
sign_out: "Se déconnecter"
|
||||
Reference in New Issue
Block a user