Ajout du popup de connexion et correction affichage des actions en fonction du connecté

This commit is contained in:
nox 2019-11-04 23:26:02 +01:00
parent 873a353243
commit 14cba978fe
7 changed files with 165 additions and 70 deletions

28
public/ajax/connexion.php Normal file
View File

@ -0,0 +1,28 @@
<?php
include '../../config/conf.php';
try {
$bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
if (isset($_POST['nom_connecte']) && isset($_POST['mdp']) != "") {
$params["username"] = $_POST['nom_connecte'];
$requete = "SELECT username, password
FROM users
WHERE username = :username";
$query = $bdd->prepare($requete);
$query->execute($params);
$row = $query->fetch(PDO::FETCH_ASSOC);
if (password_verify($_POST['mdp'],$row['password'])) {
echo '{"valide":true,"username":"'.$row['username'].'"}';
} else {
echo '{"valide":false}';
}
} else {
$response['status'] = 200;
$response['message'] = "Invalid Request!";
}
} catch (PDOException $e) {
echo "Erreur : " . $e->getMessage() . "<br/>";
}

View File

@ -2,10 +2,11 @@
ini_set('display_errors', 0);
include '../../config/conf.php';
$antenne_slug = $_GET['antenne_slug'];
$nom_connecte = $_GET['nom_connecte'];
$bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
// Design initial table header
$data = '<table class="table table-bordered table-striped">
<tr style="color: black;">
<th>No.</th>
@ -14,9 +15,8 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
<th>Vendeur</th>
<th>Clé publique</th>
<th>Quantité</th>
<th>Prix en junes</th>
<th colspan="2" style="text-align: center;">Actions</th>
</tr>';
<th>Prix en junes</th>';
$params["antenne_slug"] = $antenne_slug;
$requete = "SELECT products.*, users.username
@ -27,9 +27,23 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
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();
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
if ($row2['username'] == $nom_connecte) {
$affich_actions = true;
} else {
$affich_actions = false;
}
}
if ($affich_actions) {
$data .= '<th colspan="2" style="text-align: center;">Actions</th>';
$data .= '</tr>';
} else {
$data .= '</tr>';
}
if ($count > 0)
{
$number = 1;
@ -44,38 +58,42 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
$data .= '<td></td>';
$data .= '<td>'.$row['quantite'].'</td>';
$data .= '<td>'.$row['prix'].'</td>';
$data .= '<td>';
$data .= '<button onclick="GetProduitsDetails(\'';
$data .= $row['id'];
$data .= "'";
$data .= ',';
$data .= "'$antenne_slug'";
$data .= ",'";
$data .= $row['image'];
$data .= "'";
if ($row['username'] == $_GET['nom_connecte'] ) {
if ($row['username'] == $_GET['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\'';
} else {
$data .= ')" class=\'btn btn-info\' disabled=true';
}
$data .= '>Modifier';
$data .= '</button>';
$data .= '</td><td>';
$data .= '<button onclick="DeleteProduits(\'';
$data .= $row['id'];
$data .= "'";
$data .= ',';
$data .= "'$antenne_slug'";
$data .= ",'";
$data .= $row['image'];
$data .= "'";
if ($row['username'] == $_GET['nom_connecte'] ) {
$data .= ')" class=\'btn btn-danger\'';
//} else {
// $data .= ')" class=\'btn btn-info\' disabled=true';
// }
$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 .= ')" class=\'btn btn-info\' disabled=true';
$data .= '>Supprimer</button>';
$data .= '</td>';
} else {
$data .= ')" class=\'btn btn-info\' disabled=true';
if ($affich_actions) {
$data .= '<td></td><td></td>';
}
}
$data .= '>Supprimer</button>';
$data .= '</td>';
$data .= '</tr>';
$number++;

30
public/js/connex.js Normal file
View File

@ -0,0 +1,30 @@
function connexion(nom_connecte, mdp) {
//$("#hidden_user_id").val(id_user);
$.post("/ajax/connexion.php", {
nom_connecte: nom_connecte,
mdp: mdp
}, function (data, status) {
// Fermer la fenêtre modale
$("#connexion_modal").modal("hide");
var result = JSON.parse(data);
if (result.valide) {
$("#bouton-connexion").html('');
$("#bouton-connexion").append('<span><img src="\avatar_user.png" width="22" height="22" />');
$("#bouton-connexion").append('</span>');
$("#nom_connecte").css('display',"block");
$("#deconnexion").css('display',"block");
$("#inscription").css('display',"none");
$("#nom_connecte").append(result.username);
} else {
$('.alert-danger').html('');
$(".alert-danger").css('display',"block");
$('.alert-danger').append("Identifiant ou mot de passe invalide");
}
});
}
$(document).ready(function () {
// connexion(nom_connecte, mdp);
});

View File

@ -239,7 +239,6 @@ $(document).ready(function () {
var source = 'recherches';
}
$('#add_image').change(function(){
alert("ça passe le add change");
var fd_add = new FormData();
var files = $('#add_image')[0].files[0];
fd_add.append('add_image',files);
@ -272,10 +271,8 @@ $(document).ready(function () {
});
});
$('#image').change(function(){
alert('ça passe le modif image');
var fd = new FormData();
var files = $('#image')[0].files[0];
//var source = 'recherches';
fd.append('image',files);
fd.append('nom_user',nom_connecte);
fd.append('nom_antenne',antenne_slug);

View File

@ -45,7 +45,7 @@
overflow: hidden;
padding: 0 !important;
border-radius: 50px;
height: 26px;
height: 28px;
width: 215px;
}
.toggle_radio > * {
@ -71,7 +71,7 @@
width: 100px;
height: 20px;
position: absolute;
top: 3px;
top: 4px;
border-radius: 50px;
transition: all .4s ease;
}
@ -107,12 +107,7 @@
</label>
<div class="toggle_option_slider">
</div>
<!--<li class="breadcrumb-item active">PRODUITS</li>
<span style="margin-left:20px;">
<li class="breadcrumb-item"><a href="/gmarche/{{ region_slug }}/{{ antenne_slug }}/1">RECHERCHES</a></li>
</span>-->
</div>
</ol>
</nav>
</div>
@ -143,15 +138,14 @@
{% if current_user() %}
<button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#add_new_record_modal">Ajouter un bien ou service
{% else %}
<div class="btn btn-primary">
<a class="nav-link" style="color: white; font-size: 14px;" href="{{ path('auth.login') }}">Veuillez vous identifier pour ajouter un bien/service</a>
</div>
<p>
<span style="color:lightgray;">Veuillez vous identifier dans la barre à droite
ci-dessus pour ajouter/modifier/supprimer des éléments</span>
</p>
{% endif %}
</button>
</p>
<div class="records_content"></div>
<div class="records_content2"></div>
</div>
</div>
</div>

View File

@ -45,7 +45,7 @@
overflow: hidden;
padding: 0 !important;
border-radius: 50px;
height: 26px;
height: 28px;
width: 215px;
}
.toggle_radio > * {
@ -71,7 +71,7 @@
width: 100px;
height: 20px;
position: absolute;
top: 3px;
top: 4px;
border-radius: 50px;
transition: all .4s ease;
}
@ -107,19 +107,11 @@
</label>
<div class="toggle_option_slider">
</div>
<!--<li class="breadcrumb-item active">PRODUITS</li>
<span style="margin-left:20px;">
<li class="breadcrumb-item"><a href="/gmarche/{{ region_slug }}/{{ antenne_slug }}/1">RECHERCHES</a></li>
</span>-->
</div>
</ol>
</nav>
</div>
<div id="la_page">
<!--<div class="label" style="background-color: white;">
<h4>G-Marché de antenne_name </h4>
</div>-->
{% if antenne_name == 'Paris' %}
<script type="text/javascript">
$('.fond').css('background-image', "url('/images/toureiffel.jpeg')");
@ -143,9 +135,10 @@
{% if current_user() %}
<button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#add_new_record_modal">Ajouter un bien ou service
{% else %}
<div class="btn btn-primary">
<a class="nav-link" style="color: white; font-size: 14px;" href="{{ path('auth.login') }}">Veuillez vous identifier pour ajouter un bien/service</a>
</div>
<p>
<span style="color:lightgray;">Veuillez vous identifier dans la barre à droite
ci-dessus pour ajouter/modifier/supprimer des éléments</span>
</p>
{% endif %}
</button>
</p>

View File

@ -27,6 +27,8 @@
grid-column: 2 / 3;
}
</style>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="/js/connex.js"></script>
</head>
<body class="fond page">
<div class="site">
@ -47,18 +49,26 @@
{{ "now"|date('d/m/y') }}
</div>
{% if current_user() %}
<div class="navbar-text"><span><img src="\avatar_user.png" width="22" height="22" /></span>
<span id="nom_connecte">{{ current_user().username }}</span></div>
&nbsp; &nbsp;
<div class="navbar-text" id="user"><span><img src="\avatar_user.png" width="22" height="22" /></span>
<span id="nom_connecte">{{ current_user().username }}</span>
</div>
<form method="post" action="{{ path('auth.logout') }}">
<!-- csrf_input() }}-->
<button class="btn btn-danger" style="font-size:14px;">Se déconnecter</button>
</form>
{% else %}
<div class="nav-item">
<a class="nav-link" href="{{ path('auth.login') }}" style="font-size:14px;">Se connecter</a>
<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
</div>
<div class="nav-item">
<div id="nom_connecte" style="display:none;margin-left:10px;margin-top:6px;margin-right:8px;">
</div>
<div id="deconnexion" style="display:none;">
<form method="post" action="{{ path('auth.logout') }}">
<!-- csrf_input() }}-->
<button class="btn btn-danger" style="font-size:14px;">Se déconnecter</button>
</form>
</div>
<div class="nav-item" id="inscription">
<a class="nav-link" href="{{ path('account.signup') }}" style="font-size:14px;">S'inscrire</a>
</div>
{% endif %}
@ -69,11 +79,36 @@
{{ flash('success') }}
</div>
{% endif %}
<div class="alert alert-danger" style="display:none;">
</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
{% block body %}{% endblock %}
<div class="modal fade" id="connexion_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document" style="color: black;">
<div class="modal-content" style="text-align: left;">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Se connecter</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="pseudo">Pseudo</label>
<input type="text" id="pseudo" placeholder="{{ current_user().username }}" class="form-control"/>
</div>
<div class="form-group">
<label for="mdp">Mot de passe</label>
<input type="password" id="mdp" class="form-control"/>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-primary"
onclick="connexion(document.getElementById('pseudo').value,document.getElementById('mdp').value)">Valider</button>
</div>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
</div>