Avancement sur Tableau de bord Admin et User
This commit is contained in:
parent
2f38ff0776
commit
ef9e63d898
|
@ -145,18 +145,24 @@ header.header img {
|
|||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
/******************************************************************/
|
||||
/* dashboard.twig */
|
||||
/******************************************************************/
|
||||
.tab-de-bord {
|
||||
background-color: brown;
|
||||
padding: 1rem;
|
||||
min-width: 350px;
|
||||
}
|
||||
/******************************************************************/
|
||||
/* layout.twig */
|
||||
/******************************************************************/
|
||||
|
||||
.mdp_oublie:hover {
|
||||
background-color: deepskyblue;
|
||||
}
|
||||
|
||||
/******************************************************************/
|
||||
/* LOADING PUBKEY */
|
||||
/******************************************************************/
|
||||
|
||||
#cle_pub {
|
||||
display: none;
|
||||
}
|
||||
|
@ -178,7 +184,17 @@ body.loading .loadingPubkey {
|
|||
/* POUR MOBILES */
|
||||
/******************************************************************/
|
||||
@media only screen and (max-width:560px) {
|
||||
|
||||
/******************************************************************/
|
||||
/* dashboard.twig */
|
||||
/******************************************************************/
|
||||
.tab-de-bord {
|
||||
background-color: brown;
|
||||
padding: 1rem;
|
||||
min-width: 280px;
|
||||
}
|
||||
/******************************************************************/
|
||||
/* layout.twig */
|
||||
/******************************************************************/
|
||||
.fond {
|
||||
background-color: black;
|
||||
background-image: url("../images/bildreich_1275.jpg");
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
session_start();
|
||||
ini_set('display_errors', 0);
|
||||
include '../../config/config.php';
|
||||
$antenne_slug = $_GET['antenne_slug'];
|
||||
$nom_connecte = $_SESSION['user'];
|
||||
$bdd = new \PDO("mysql:host=$db_server;dbname=$db_name", $db_username, $db_password);
|
||||
$antenne_slug = $_GET['antenne_slug'];
|
||||
$nom_connecte = $_SESSION['user'];
|
||||
$bdd = new \PDO("mysql:host=$db_server;dbname=$db_name", $db_username, $db_password);
|
||||
|
||||
// Affichage des intitulés de colonnes
|
||||
$data = '<table class="table table-bordered table-striped">
|
||||
// Affichage des intitulés de colonnes
|
||||
$data = '<table class="table table-bordered table-striped">
|
||||
<tr style="color: black;">
|
||||
<th>No.</th>
|
||||
<th>Bien / service</th>
|
||||
|
@ -17,88 +17,88 @@
|
|||
<th>Quantité</th>
|
||||
<th>Prix en junes</th>';
|
||||
|
||||
$params["antenne_slug"] = $antenne_slug;
|
||||
$requete = "SELECT products.*, users.username, users.pubkey
|
||||
$params["antenne_slug"] = $antenne_slug;
|
||||
$requete = "SELECT products.*, users.username, users.pubkey
|
||||
FROM products
|
||||
LEFT JOIN antennes
|
||||
ON antennes.id = products.antenne_id
|
||||
LEFT JOIN users
|
||||
ON users.id = products.user_id
|
||||
WHERE antennes.slug = :antenne_slug";
|
||||
$stmt = $bdd->prepare($requete);
|
||||
$stmt2 = $bdd->prepare($requete);
|
||||
$stmt->execute($params);
|
||||
$stmt2->execute($params);
|
||||
$count = $stmt->rowCount();
|
||||
$affich_actions = false;
|
||||
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
|
||||
if ($row2['username'] == $nom_connecte) {
|
||||
$affich_actions = true;
|
||||
}
|
||||
$stmt = $bdd->prepare($requete);
|
||||
$stmt2 = $bdd->prepare($requete);
|
||||
$stmt->execute($params);
|
||||
$stmt2->execute($params);
|
||||
$count = $stmt->rowCount();
|
||||
$affich_actions = false;
|
||||
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
|
||||
if ($row2['username'] == $nom_connecte) {
|
||||
$affich_actions = true;
|
||||
}
|
||||
if ($affich_actions) {
|
||||
$data .= '<th colspan="2" style="text-align: center;">Actions</th>';
|
||||
$data .= '</tr>';
|
||||
} else {
|
||||
$data .= '</tr>';
|
||||
}
|
||||
if ($count > 0)
|
||||
{
|
||||
$number = 1;
|
||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
}
|
||||
if ($affich_actions) {
|
||||
$data .= '<th colspan="2" style="text-align: center;">Actions</th>';
|
||||
$data .= '</tr>';
|
||||
} else {
|
||||
$data .= '</tr>';
|
||||
}
|
||||
if ($count > 0)
|
||||
{
|
||||
$number = 1;
|
||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
|
||||
$data .= "<tr style='background:lightblue;color:black;'>
|
||||
$data .= "<tr style='background:lightblue;color:black;'>
|
||||
<td>$number</td>";
|
||||
$prix = $row['prix'];
|
||||
$vendeur = $row['username'];
|
||||
$produit = $row['name'];
|
||||
$pubkey = $row['pubkey'];
|
||||
$pubkeyShort = substr($pubkey, 0, 8);
|
||||
$vendeur_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/#/app/wot/$pubkey/\">$vendeur</a>";
|
||||
$cle_pub_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/api/#/v1/payment/$pubkey?amount=$prix&name=$vendeur&comment=[Achat GMarche] : $produit&preferred_node=https://g1.librelois.fr&redirect_url=https://gmarche.monnaie-libre.fr\" title=$pubkey> $pubkeyShort... </a>";
|
||||
$data .= '<td>'.$produit.'</td>';
|
||||
$data .= '<td><img src="/uploads/products/'.$antenne_slug.'/'.$row['image'].'" width="100" height="100" /></td>';
|
||||
$data .= '<td>'.$vendeur_format.'</td>';
|
||||
$data .= '<td>'.$cle_pub_format.'</td>';
|
||||
$data .= '<td>'.$row['quantite'].'</td>';
|
||||
$data .= '<td>'.$prix.'</td>';
|
||||
if ($row['username'] == $nom_connecte ) {
|
||||
$data .= '<td>';
|
||||
$data .= '<button onclick="GetProduitsDetails(\'';
|
||||
$data .= $row['id'];
|
||||
$data .= "'";
|
||||
$data .= ',';
|
||||
$data .= "'$antenne_slug'";
|
||||
$data .= ",'";
|
||||
$data .= $row['image'];
|
||||
$data .= "'";
|
||||
$data .= ')" class=\'btn btn-primary\'';
|
||||
$data .= '>Modifier';
|
||||
$data .= '</button>';
|
||||
$data .= '</td><td>';
|
||||
$data .= '<button onclick="DeleteProduits(\'';
|
||||
$data .= $row['id'];
|
||||
$data .= "'";
|
||||
$data .= ',';
|
||||
$data .= "'$antenne_slug'";
|
||||
$data .= ",'";
|
||||
$data .= $row['image'];
|
||||
$data .= "'";
|
||||
$data .= ')" class=\'btn btn-danger\'';
|
||||
$data .= '>Supprimer</button>';
|
||||
$data .= '</td>';
|
||||
} else {
|
||||
if ($affich_actions) {
|
||||
$data .= '<td></td><td></td>';
|
||||
}
|
||||
$prix = $row['prix'];
|
||||
$vendeur = $row['username'];
|
||||
$produit = $row['name'];
|
||||
$pubkey = $row['pubkey'];
|
||||
$pubkeyShort = substr($pubkey, 0, 8);
|
||||
$vendeur_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/#/app/wot/$pubkey/\">$vendeur</a>";
|
||||
$cle_pub_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/api/#/v1/payment/$pubkey?amount=$prix&name=$vendeur&comment=[Achat GMarche] : $produit&preferred_node=https://g1.librelois.fr&redirect_url=https://gmarche.monnaie-libre.fr\" title=$pubkey> $pubkeyShort... </a>";
|
||||
$data .= '<td>'.$produit.'</td>';
|
||||
$data .= '<td><img src="/uploads/products/'.$antenne_slug.'/'.$row['image'].'" width="100" height="100" /></td>';
|
||||
$data .= '<td>'.$vendeur_format.'</td>';
|
||||
$data .= '<td>'.$cle_pub_format.'</td>';
|
||||
$data .= '<td>'.$row['quantite'].'</td>';
|
||||
$data .= '<td>'.$prix.'</td>';
|
||||
if ($row['username'] == $nom_connecte ) {
|
||||
$data .= '<td>';
|
||||
$data .= '<button onclick="GetProduitsDetails(\'';
|
||||
$data .= $row['id'];
|
||||
$data .= "'";
|
||||
$data .= ',';
|
||||
$data .= "'$antenne_slug'";
|
||||
$data .= ",'";
|
||||
$data .= $row['image'];
|
||||
$data .= "'";
|
||||
$data .= ')" class=\'btn btn-primary\'';
|
||||
$data .= '>Modifier';
|
||||
$data .= '</button>';
|
||||
$data .= '</td><td>';
|
||||
$data .= '<button onclick="DeleteProduits(\'';
|
||||
$data .= $row['id'];
|
||||
$data .= "'";
|
||||
$data .= ',';
|
||||
$data .= "'$antenne_slug'";
|
||||
$data .= ",'";
|
||||
$data .= $row['image'];
|
||||
$data .= "'";
|
||||
$data .= ')" class=\'btn btn-danger\'';
|
||||
$data .= '>Supprimer</button>';
|
||||
$data .= '</td>';
|
||||
} else {
|
||||
if ($affich_actions) {
|
||||
$data .= '<td></td><td></td>';
|
||||
}
|
||||
$data .= '</tr>';
|
||||
$number++;
|
||||
}
|
||||
} else {
|
||||
// Il n'y a pas encore de biens/services saisis
|
||||
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
|
||||
$data .= '</tr>';
|
||||
$number++;
|
||||
}
|
||||
$data .= '</table>';
|
||||
echo $data;
|
||||
} else {
|
||||
// Il n'y a pas encore de biens/services saisis
|
||||
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
|
||||
}
|
||||
$data .= '</table>';
|
||||
echo $data;
|
||||
?>
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
namespace App\Admin;
|
||||
|
||||
use App\Admin\Table\UserTable;
|
||||
use Framework\Auth;
|
||||
use Framework\Module;
|
||||
use Framework\Renderer\RendererInterface;
|
||||
use Framework\Renderer\TwigRenderer;
|
||||
|
@ -11,43 +9,19 @@ use Framework\Router;
|
|||
|
||||
class AdminModule extends Module
|
||||
{
|
||||
|
||||
const DEFINITIONS = __DIR__ . '/config.php';
|
||||
/**
|
||||
* @var Auth
|
||||
*/
|
||||
private $auth;
|
||||
|
||||
public function __construct(
|
||||
RendererInterface $renderer,
|
||||
Router $router,
|
||||
AdminTwigExtension $adminTwigExtension,
|
||||
UserTable $userTable,
|
||||
Auth $auth,
|
||||
string $prefix
|
||||
)
|
||||
{
|
||||
$this->userTable = $userTable;
|
||||
$this->auth = $auth;
|
||||
$renderer->addPath('admin', __DIR__ . '/views');
|
||||
$name_user = $this->auth->getUser()->username;
|
||||
//$role = $user->getRoles();
|
||||
$role = $_SESSION['role'];
|
||||
$page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
|
||||
//$liste_users = $this->userTable->findAll()->paginate(25, $page);
|
||||
$liste_adminGeneral = $this->userTable->findAdminUsers('1');
|
||||
$liste_adminAntenne = $this->userTable->findAdminUsers('2');
|
||||
$liste_users = $this->userTable->findAdminUsers('3');
|
||||
|
||||
$router->get($prefix, DashboardAction::class, 'admin');
|
||||
$router->post($prefix, DashboardAction::class);
|
||||
$router->get('/dashboard', DashboardAction::class, 'dashboard');
|
||||
$router->get('/dashboard/{user:[a-zA-Z\-0-9]+}', DashboardUserAction::class, 'dashboard.user');
|
||||
if ($renderer instanceof TwigRenderer) {
|
||||
$renderer->getTwig()->addExtension($adminTwigExtension);
|
||||
$renderer->getTwig()->addGlobal('role',$role);
|
||||
$renderer->getTwig()->addGlobal('name_user',$name_user);
|
||||
$renderer->getTwig()->addGlobal('liste_adminGeneral',$liste_adminGeneral);
|
||||
$renderer->getTwig()->addGlobal('liste_adminAntenne',$liste_adminAntenne);
|
||||
$renderer->getTwig()->addGlobal('liste_users',$liste_users);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
<?php
|
||||
namespace App\Admin;
|
||||
|
||||
use App\Admin\Table\UserTable;
|
||||
use App\Gmarche\Table\AntenneTable;
|
||||
use Framework\Renderer\RendererInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
|
||||
class DashboardAction
|
||||
{
|
||||
|
@ -10,22 +13,54 @@ class DashboardAction
|
|||
* @var RendererInterface
|
||||
*/
|
||||
private $renderer;
|
||||
/**
|
||||
* @var AntenneTable
|
||||
*/
|
||||
private $antenneTable;
|
||||
|
||||
//private $widgets;
|
||||
|
||||
public function __construct(RendererInterface $renderer)
|
||||
/**
|
||||
* @var UserTable
|
||||
*/
|
||||
private $userTable;
|
||||
|
||||
public function __construct(
|
||||
RendererInterface $renderer,
|
||||
AntenneTable $antenneTable,
|
||||
UserTable $userTable)
|
||||
{
|
||||
$this->renderer = $renderer;
|
||||
// $this->widgets = $widgets;
|
||||
$this->antenneTable = $antenneTable;
|
||||
$this->userTable = $userTable;
|
||||
}
|
||||
|
||||
public function __invoke()
|
||||
/**
|
||||
* @param ServerRequestInterface $request
|
||||
* @return string
|
||||
*/
|
||||
public function __invoke(ServerRequestInterface $request)
|
||||
{
|
||||
if ($request->getMethod() === 'GET') {
|
||||
/*$widgets = array_reduce($this->widgets, function (string $html, AdminWidgetInterface $widget) {
|
||||
return $html . $widget->render();
|
||||
}, '');*/
|
||||
return $this->renderer->render('@admin/dashboard');
|
||||
|
||||
$this->renderer->addPath('admin', __DIR__ . '/views');
|
||||
$page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
|
||||
$liste_adminGeneral = $this->userTable->findAdminUsers('1');
|
||||
$liste_adminAntenne = $this->userTable->findAdminUsers('2');
|
||||
$liste_users_suivi = $this->userTable->findUsers('3');
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||
if (!isset($_SESSION)) {
|
||||
session_start();
|
||||
}
|
||||
if (isset($_SESSION['user'])) {
|
||||
$nom_user = $_SESSION['user'];
|
||||
$role = $_SESSION['role'];
|
||||
} else {
|
||||
$nom_user = '';
|
||||
$role = '3';
|
||||
}
|
||||
return $this->renderer->render('@admin/dashboard',
|
||||
compact('nom_user','role', 'liste_adminGeneral', 'liste_users_suivi',
|
||||
'liste_adminAntenne', 'listeAntennes'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
namespace App\Admin;
|
||||
|
||||
use App\Auth\UserTable;
|
||||
use App\Admin\Table\UserTable as UserTableAdmin;
|
||||
use App\Gmarche\Table\AntenneTable;
|
||||
use Framework\Auth;
|
||||
use Framework\Renderer\RendererInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
|
||||
class DashboardUserAction
|
||||
{
|
||||
|
||||
/**
|
||||
* @var RendererInterface
|
||||
*/
|
||||
private $renderer;
|
||||
/**
|
||||
* @var Auth
|
||||
*/
|
||||
private $auth;
|
||||
/**
|
||||
* @var AntenneTable
|
||||
*/
|
||||
private $antenneTable;
|
||||
/**
|
||||
* @var UserTable
|
||||
*/
|
||||
private $userTable;
|
||||
|
||||
public function __construct(
|
||||
RendererInterface $renderer,
|
||||
Auth $auth,
|
||||
AntenneTable $antenneTable,
|
||||
UserTable $userTable,
|
||||
UserTableAdmin $userTableAdmin)
|
||||
{
|
||||
$this->renderer = $renderer;
|
||||
$this->auth = $auth;
|
||||
$this->antenneTable = $antenneTable;
|
||||
$this->userTable = $userTable;
|
||||
$this->userTableAdmin = $userTableAdmin;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ServerRequestInterface $request
|
||||
* @return string
|
||||
*/
|
||||
public function __invoke(ServerRequestInterface $request)
|
||||
{
|
||||
if ($request->getMethod() === 'GET') {
|
||||
$this->renderer->addPath('admin', __DIR__ . '/views');
|
||||
$liste_users_suivi = $this->userTableAdmin->findUsers('3');
|
||||
|
||||
$username = $request->getAttribute('user');
|
||||
|
||||
$profil_user = $this->userTable->findBy('username', $username);
|
||||
// var_dump($profil_user);
|
||||
// die();
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||
if (!isset($_SESSION)) {
|
||||
session_start();
|
||||
}
|
||||
if (isset($_SESSION['user'])) {
|
||||
$nom_user = $_SESSION['user'];
|
||||
$role = $_SESSION['role'];
|
||||
} else {
|
||||
$nom_user = '';
|
||||
$role = '3';
|
||||
}
|
||||
|
||||
return $this->renderer->render('@admin/dashboard_user',
|
||||
compact('nom_user','role','username','profil_user','liste_users_suivi','listeAntennes'));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -29,4 +29,5 @@ class User
|
|||
|
||||
public $avatar;
|
||||
|
||||
public $suiviantenne;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
namespace App\Admin\Table;
|
||||
|
||||
use App\Admin\Entity\User;
|
||||
use App\Gmarche\Table\AntenneTable;
|
||||
use App\Gmarche\Table\RegionTable;
|
||||
use Framework\Database\Query;
|
||||
use Framework\Database\Table;
|
||||
|
||||
|
@ -12,19 +14,50 @@ class UserTable extends Table
|
|||
|
||||
protected $table = 'users';
|
||||
|
||||
public function findList(): array
|
||||
{
|
||||
$results = $this->pdo
|
||||
->query("SELECT id, name FROM {$this->table}")
|
||||
->fetchAll(\PDO::FETCH_NUM);
|
||||
$list = [];
|
||||
foreach ($results as $result) {
|
||||
$list[$result[0]] = $result[1];
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
public function findAntennebyId(int $id_antenne): Query
|
||||
{
|
||||
$antenne = new AntenneTable($this->pdo);
|
||||
return $this->makeQuery()
|
||||
->select('a.name as nameAntenne')
|
||||
->where("a.id = $id_antenne");
|
||||
}
|
||||
public function findUsers($role): Query
|
||||
{
|
||||
return $this->makeQuery()
|
||||
->select('u.*')
|
||||
->where("u.role = '".$role."'")
|
||||
->order('u.username ASC');
|
||||
}
|
||||
/*public function findUsersSuivi($role): Query
|
||||
{
|
||||
$antenne = new AntenneTable($this->pdo);
|
||||
return $this->makeQuery()
|
||||
->join($antenne->getTable() . ' as a', 'substring(u.suiviantenne,1,1) = a.id')
|
||||
->select('u.*,a.name as nameAntenne')
|
||||
->where("u.role = '".$role."'")
|
||||
->order('u.username, nameAntenne ASC');
|
||||
}*/
|
||||
public function findAdminUsers($role): Query
|
||||
{
|
||||
//$region = new RegionTable($this->pdo);
|
||||
return $this->makeQuery()
|
||||
->select('u.*')
|
||||
->where("u.role = $role")
|
||||
->order('u.username ASC');
|
||||
}
|
||||
|
||||
public function findRole($username): Query
|
||||
{
|
||||
//$region = new RegionTable($this->pdo);
|
||||
return $this->makeQuery()
|
||||
return $this->makeQuery()
|
||||
->select('u.role')
|
||||
->where("u.username = $username");
|
||||
}
|
||||
|
|
|
@ -1,59 +1,105 @@
|
|||
{% extends '@admin/layout.twig' %}
|
||||
{% extends 'layout.twig' %}
|
||||
|
||||
{% block title "Ğ1-Marché - Tableau de bord" %}
|
||||
|
||||
{% block body %}
|
||||
<h3 style="display:inline-block;">Tableau de bord - </h3>
|
||||
<h4 style="display:inline-block;">
|
||||
{% if role == '0' %} Super Admin{% endif %}
|
||||
{% if role == '1' %} Admin général{% endif %}
|
||||
{% if role == '2' %} Admin Antenne{% endif %}
|
||||
</h4>
|
||||
</h3>
|
||||
<p></p>
|
||||
{% if role == '0' %}
|
||||
<h4>Liste des admins généraux</h4>
|
||||
<ul class="list-group list-group-flush">
|
||||
{% for admin_gen in liste_adminGeneral %}
|
||||
<a style="color:black;" href="" title="{{ admin_gen.username }}">
|
||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||
{{ admin_gen.username }}
|
||||
</li>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% if (role == '0' or role == '1') %}
|
||||
<h4>Liste des admins Antenne</h4>
|
||||
<ul class="list-group list-group-flush">
|
||||
{% for admin_ant in liste_adminAntenne %}
|
||||
<a style="color:black;" href="" title="{{ admin_ant.username }}">
|
||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||
{{ admin_ant.username }}
|
||||
</li>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% if (role == '0' or role == '1' or role == '2') %}
|
||||
<h4>Liste des utilisateurs</h4>
|
||||
<ul class="list-group list-group-flush">
|
||||
{% for user in liste_users %}
|
||||
<a style="color:black;" href="" title="{{ user.username }}">
|
||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||
{{ user.username }}
|
||||
</li>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<p></p>
|
||||
{% if (role == '0' or role == '1') %}
|
||||
<h4>Gestion d'une antenne</h4>
|
||||
{% endif %}
|
||||
<p></p>
|
||||
{% if (role == '0' or role == '1' or role == '2') %}
|
||||
<h4>Gestion d'un G-Marché</h4>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
{{ widgets | raw }}
|
||||
<div class="container" style="color:floralwhite;background-color: #333333;padding: 1rem;">
|
||||
<div class="container tab-de-bord">
|
||||
<h3 style="display:inline-block;">Tableau de bord - </h3>
|
||||
<h4 style="display:inline-block;">
|
||||
{% if role == '0' %} Super Admin{% endif %}
|
||||
{% if role == '1' %} Admin général{% endif %}
|
||||
{% if role == '2' %} Admin Antenne{% endif %}
|
||||
</h4>
|
||||
</h3>
|
||||
</div>
|
||||
<p></p>
|
||||
{% if role == '0' %}
|
||||
<h4>Liste des admins généraux</h4>
|
||||
<ul class="list-group list-group-flush">
|
||||
{% for admin_gen in liste_adminGeneral %}
|
||||
<a style="color:black;" href="" title="{{ admin_gen.username }}">
|
||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||
{{ admin_gen.username }}
|
||||
</li>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<p></p>
|
||||
{% if (role == '0' or role == '1') %}
|
||||
<h4>Liste des admins Antenne</h4>
|
||||
<ul class="list-group list-group-flush">
|
||||
{% for admin_ant in liste_adminAntenne %}
|
||||
<a style="color:black;" href="" title="{{ admin_ant.username }}">
|
||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||
{{ admin_ant.username }}
|
||||
</li>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<p></p>
|
||||
{% if (role == '0' or role == '1' or role == '2') %}
|
||||
<h4>Liste des régions/antennes</h4>
|
||||
<ul class="list-group list-group-flush">
|
||||
{% set antenne = '' %}
|
||||
{% set region = '' %}
|
||||
{% for item in listeAntennes %}
|
||||
{% if (item.regionName != region) %}
|
||||
<li class="liste_antennes list-group-item" style="color:black;
|
||||
background-color:lightgoldenrodyellow;padding: .2rem 1.25rem;">
|
||||
{{ item.regionName }}
|
||||
</li>
|
||||
<a style="color:black;" href="" title="{{ item.regionName }}">
|
||||
<li class="liste_antennes list-group-item" style="background-color:#8fbc8f;padding: .2rem 1.25rem;">
|
||||
► {{ item.antenneName }}
|
||||
</li>
|
||||
</a>
|
||||
{% else %}
|
||||
<a style="color:black;" href="" title="{{ item.regionName }}">
|
||||
<li class="liste_antennes list-group-item" style="background-color:#8fbc8f;padding: .2rem 1.25rem;">
|
||||
► {{ item.antenneName }}
|
||||
</li>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% set antenne = item.antenneName %}
|
||||
{% set region = item.regionName %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<p></p>
|
||||
{% if (role == '0' or role == '1' or role == '2') %}
|
||||
<h4>Liste des utilisateurs</h4>
|
||||
|
||||
<ul class="list-group list-group-flush">
|
||||
{% for item2 in liste_users_suivi %}
|
||||
<a style="color:black;" href="{{ path('dashboard.user',{user:item2.username}) }}" title="{{ item2.username }}">
|
||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||
{{ item2.username }}
|
||||
{% set antenne_suivie = item2.suiviantenne|split('|') %}
|
||||
{% for antenn in antenne_suivie %}
|
||||
{% for item in listeAntennes %}
|
||||
{% if (item.id == antenn) %}
|
||||
- {{ item.antenneName }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</li>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<p></p>
|
||||
{% if (role == '0' or role == '1') %}
|
||||
<h4>Gestion d'une antenne</h4>
|
||||
{% endif %}
|
||||
<p></p>
|
||||
{% if (role == '0' or role == '1' or role == '2') %}
|
||||
<h4>Gestion d'un G-Marché</h4>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
{{ widgets | raw }}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -0,0 +1,63 @@
|
|||
{% extends 'layout.twig' %}
|
||||
|
||||
{% block title "Ğ1-Marché - Tableau de bord User" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container" style="color:floralwhite;background-color: #333333;padding: 1rem;">
|
||||
<div class="container tab-de-bord">
|
||||
<h3 style="display:inline-block;">Tableau de bord User - {{ username }}</h3>
|
||||
</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<div class="container" style="color:black;background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
|
||||
<form action="" method="post">
|
||||
<button class="btn btn-primary">Désactiver l'utilisateur</button>
|
||||
</form>
|
||||
</div>
|
||||
</ul>
|
||||
<p></p>
|
||||
<h4>Profil</h4>
|
||||
|
||||
<ul class="list-group list-group-flush">
|
||||
|
||||
<div class="container" style="color:black;background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
|
||||
<form action="" method="post">
|
||||
<!-- csrf_input() -->
|
||||
{{ field('firstname', profil_user.firstname, 'Prénom') }}
|
||||
{{ field('lastname', profil_user.lastname, 'Nom') }}
|
||||
Adresse mail {{ profil_user.email }}<p></p>
|
||||
Clé publique {{ profil_user.pubkey }}
|
||||
<p></p>
|
||||
<button class="btn btn-primary">Modifier les informations</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</ul>
|
||||
<ul class="list-group list-group-flush">
|
||||
<div class="container" style="color:black;background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
|
||||
<form action="" method="post">
|
||||
<button class="btn btn-primary">Renvoyer un mot de passe</button>
|
||||
</form>
|
||||
</div>
|
||||
</ul>
|
||||
<p></p>
|
||||
<h4>Liste des antennes suivies</h4>
|
||||
|
||||
<ul class="list-group list-group-flush">
|
||||
<li class="liste_antennes list-group-item" style="color:black;padding: .2rem 1.25rem;">
|
||||
{% set antenne_suivie = profil_user.suiviantenne|split('|') %}
|
||||
{% for antenne in antenne_suivie %}
|
||||
{% for item in listeAntennes %}
|
||||
{% if (item.id == antenne) %}
|
||||
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
|
||||
<a style="color:black;" href="" title="{{ item.antenneName }}">
|
||||
{{ item.antenneName }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</li>
|
||||
</ul>
|
||||
<p></p>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -26,13 +26,17 @@
|
|||
{% if name_user != '' %}
|
||||
<form method="post" style="margin-top:5px;" action="{{ path('account.profil') }}">
|
||||
<span><img src="\avatar_user.png" width="22" height="22" /></span>
|
||||
<button style="color:white;font-size: 14px;" class="btn-primary">{{ name_user }}</button>
|
||||
<button style="color:white;font-size: 14px;" class="btn-primary">user = {{ name_user }}</button>
|
||||
<button style="color:white;font-size: 14px;" class="btn-primary">user2 = {{ name_user2 }}</button>
|
||||
</form>
|
||||
<form method="post" action="{{ path('auth.logout') }}">
|
||||
<!-- csrf_input() }}-->
|
||||
<button class="btn btn-danger" style="margin-left: 7px; font-size:14px;">Se déconnecter</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<span style="color:white;">
|
||||
name_user = {{ name_user }}
|
||||
name_user2 = {{ name_user2 }}</span>
|
||||
<div class="nav-item" id="bouton-connexion">
|
||||
<button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#connexion_modal">Se connecter</button>
|
||||
</div>
|
||||
|
|
|
@ -52,7 +52,7 @@ class ForbiddenMiddleware implements MiddlewareInterface
|
|||
public function redirectLogin(ServerRequestInterface $request): ResponseInterface
|
||||
{
|
||||
$this->session->set('auth.redirect', $request->getUri()->getPath());
|
||||
(new FlashService($this->session))->error('Vous devez posséder un compte pour accéder à cette page');
|
||||
//(new FlashService($this->session))->error('Vous devez posséder un compte pour accéder à cette page');
|
||||
return new RedirectResponse($this->loginPath);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,10 +31,12 @@ class ContactAction
|
|||
}
|
||||
if (isset($_SESSION['user'])) {
|
||||
$nom_user = $_SESSION['user'];
|
||||
$role = $_SESSION['role'];
|
||||
} else {
|
||||
$nom_user = '';
|
||||
$role = '3';
|
||||
}
|
||||
return $this->renderer->render('@contact/contact',compact('nom_user'));
|
||||
return $this->renderer->render('@contact/contact',compact('nom_user','role'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,14 +3,6 @@
|
|||
{% block title "Ğ1-Marché - Contact" %}
|
||||
{% block body %}
|
||||
<style>
|
||||
/*body .fond {
|
||||
background-image: url("../../images/background_contacts.jpg");
|
||||
background-repeat: no-repeat;
|
||||
background-attachment:fixed;
|
||||
background-position: center;
|
||||
background-size: 100% auto;
|
||||
font-family: Bree serif,"Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
}*/
|
||||
.main {
|
||||
width: 900px;
|
||||
font-family: "Bree Serif", Arial;
|
||||
|
@ -91,6 +83,7 @@
|
|||
</script>
|
||||
{% endif %}
|
||||
<div class="main" style="background:none;">
|
||||
nom_user = {{ nom_user }}
|
||||
<div class="header">
|
||||
<img class="img_header" src="/images/logo_contacts.jpg" style="width: 294px;height: 294px;" alt="Ğ1-Marché" title="Logo Contact" />
|
||||
</div>
|
||||
|
|
|
@ -12,7 +12,6 @@ class AntenneTable extends Table
|
|||
|
||||
protected $table = 'antennes';
|
||||
|
||||
|
||||
public function findAllbyRegion(int $region_id): Query
|
||||
{
|
||||
$region = new RegionTable($this->pdo);
|
||||
|
@ -22,22 +21,12 @@ class AntenneTable extends Table
|
|||
->where("a.region_id = $region_id")
|
||||
->order('a.name ASC');
|
||||
}
|
||||
/* public function getAntenne(string $antenne_slug): Query
|
||||
public function findAllAntennes(): Query
|
||||
{
|
||||
//$antenne = new AntenneTable($this->pdo);
|
||||
return $this->makeQuery()
|
||||
->select('a.*')
|
||||
->where("a.slug = $antenne_slug")
|
||||
->order('a.name ASC');
|
||||
$region = new RegionTable($this->pdo);
|
||||
return $this->makeQuery()
|
||||
->join($region->getTable() . ' as r', 'a.region_id = r.id')
|
||||
->select('a.id, r.name as regionName, a.name as antenneName')
|
||||
->order('r.name, a.name ASC');
|
||||
}
|
||||
public function findPublic(): Query
|
||||
{
|
||||
return $this->findAll();
|
||||
}
|
||||
|
||||
|
||||
public function findWithAntenne(int $antenne_slug): Antenne
|
||||
{
|
||||
return $this->findPublic()->where("a.slug = $antenne_slug")->fetch();
|
||||
}*/
|
||||
}
|
||||
|
|
|
@ -46,13 +46,14 @@
|
|||
</li>
|
||||
{% if role=='0' or role=='1' or role=='2' %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if admin %} active{% endif %}" style="font-size:14px;"
|
||||
href="{{ path('admin') }}">Administration</a>
|
||||
<a class="nav-link {% if explodeUrl()[1]=='dashboard' %} active{% endif %}" style="font-size:14px;"
|
||||
href="{{ path('dashboard') }}">Administration</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if explodeUrl()[1]=='contact' %} active{% endif %}" style="font-size:14px;"
|
||||
href="{{ path('contact') }}">Qui sommes-nous ?</a>
|
||||
href="{{ path('contact') }}">Qui sommes-nous ?
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="navbar-nav">
|
||||
|
|
Loading…
Reference in New Issue