templates/portfolio/index.html.twig line 1
{% extends 'base-portfolio.html.twig' %}
{% block title %}Portfolio de Surmurthag{% endblock %}
{% block body %}
{#<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet">#}
<style>
/* .modal-backdrop.show {
opacity: 0.5 !important;
background-color: #000;
}
#btnConnexion {
background-color: transparent;
border: none;
padding: 0;
height: 25px;
width: 25px;
}
#btnConnexion:hover, #btnConnexion:focus {
background-color: transparent;
outline: none;
height: 25px;
width: 25px;
}
#chatModal {
background-color: transparent;
border: none;
padding: 0;
height: 25px;
width: 25px;
}
#chatModal:hover, #chatModal:focus {
background-color: transparent;
outline: none;
height: 25px;
width: 25px;
}
*/
</style>
<div class="text-center">
{% for message in app.flashes('error') %}
<div class="alert alert-danger" role="alert">
{{ message }}
</div>
{% endfor %}
</div>
<div class="text-center mt-1">
<img src="{{ asset('build/portfolio/profilFondMath.png') }}" alt="Photo de profil" class="rounded-circle" style="width: 150px; height: 150px;">
<h1>Surmurthag</h1>
<a href="https://github.com/surmurthag" class="btn btn-dark mt-2"><i class="fab fa-github"></i> GitHub</a>
</div>
<div class="container mt-5">
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-4 g-4">
<div class="col">
<div class="card h-100 d-flex flex-column justify-content-between">
<img src="{{ asset('build/portfolio/EpisolBackground.PNG') }}" class="card-img-top" alt="Image du site 1">
<div class="card-body text-center">
<h5 class="card-title">Epicerie</h5>
</div>
<div class="card-footer bg-transparent text-center">
<a href="{{ path('Episol_portfolio') }}" class="btn btn-success">Visiter le site</a>
</div>
</div>
</div>
<div class="col">
<div class="card h-100 d-flex flex-column justify-content-between">
<img src="{{ asset('build/portfolio/LadegustBackground.PNG') }}" class="card-img-top" alt="Image du site 2">
<div class="card-body text-center">
<h5 class="card-title">Dégustation</h5>
</div>
<div class="card-footer bg-transparent text-center">
<button id="monBouton" class="btn btn-success">Visiter le site</button>
</div>
</div>
</div>
<div class="col">
<div class="card h-100 d-flex flex-column justify-content-between">
<img src="{{ asset('build/portfolio/UneTerreEnSoiBackground.PNG') }}" class="card-img-top" alt="Image du site 3">
<div class="card-body text-center">
<h5 class="card-title">Bien-être</h5>
</div>
<div class="card-footer bg-transparent text-center">
<a href="{{ path('uneTerreEnSoi_portfolio') }}" class="btn btn-success">Visiter le site</a>
</div>
</div>
</div>
<div class="col">
<div class="card h-100 d-flex flex-column justify-content-between">
<img src="{{ asset('build/portfolio/EntBatimentBackground.PNG') }}" class="card-img-top" alt="Image du site 4">
<div class="card-body text-center">
<h5 class="card-title">Peinture</h5>
</div>
<div class="card-footer bg-transparent text-center">
<a href="{{ path('app_portfolio_templates_entreprise_du_batiment') }}" class="btn btn-success">Visiter le site</a>
</div>
</div>
</div>
<div class="col">
<div class="card h-100 d-flex flex-column justify-content-between">
<img src="{{ asset('build/portfolio/ConfyUIBackground.PNG') }}" class="card-img-top" alt="Image du site 4">
<div class="card-body text-center">
<h5 class="card-title">ConfyUI</h5>
</div>
<div class="card-footer bg-transparent text-center">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#downloadModal">Télécharger ConfyUI</button>
</div>
</div>
</div>
<div class="col">
<div class="card h-100 d-flex flex-column justify-content-between">
<img src="{{ asset('build/portfolio/SolarBackground.PNG') }}" class="card-img-top" alt="Image du site 4">
<div class="card-body text-center">
<h5 class="card-title">SolarSystem</h5>
</div>
<div class="card-footer bg-transparent text-center">
<a href="{{ path('app_portfolio_solarSystem') }}" class="btn btn-success">Visiter le site</a>
</div>
</div>
</div>
<div class="col">
<div class="card h-100 d-flex flex-column justify-content-between">
<img src="{{ asset('build/portfolio/Llama2Background.PNG') }}" class="card-img-top" alt="Image du site 4">
<div class="card-body text-center">
<h5 class="card-title">Chatbot IA Génération</h5>
</div>
<div class="card-footer bg-transparent text-center">
<a href="{{ path('app_portfolio_show_profil') }}" class="btn btn-success">Visiter le site</a>
</div>
</div>
</div>
{# <button id="btnConnexion" data-is-connected="{{ app.user ? 'true' : 'false' }}" class="btn position-absolute top-0 end-0 m-3 ">
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="currentColor" class="bi bi-power {{ app.user ? 'text-success' : 'text-danger' }}" viewBox="0 0 16 16">
<path d="M7.5 1v7h1V1z"/>
<path d="M3 8.812a5 5 0 0 1 2.578-4.375l-.485-.874A6 6 0 1 0 11 3.616l-.501.865A5 5 0 1 1 3 8.812"/>
</svg>
</button>
<div class="modal fade" id="modalConnexion" tabindex="-1" aria-hidden="true" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Vous souhaitez vous connecter.</h5>
<button type="button" class="btn-close close-modal" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body text-center">
<form id="downloadVerificationForm" >
<a type="submit" class="btn btn-success" href="{{ path('app_login') }}">connexion</a>
</form>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modalDeconnexion" tabindex="-1" aria-hidden="true" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Vous souhaitez vous déconnecter.</h5>
<button type="button" class="btn-close close-modal" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body text-center">
<form id="downloadVerificationForm" >
<a type="submit" class="btn btn-success" href="{{ path('app_logout') }}">déconnexion</a>
</form>
</div>
</div>
</div>
</div>
#}
<div class="modal fade" id="downloadModal" tabindex="-1" aria-hidden="true" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Entrer le code de téléchargement</h5>
<button type="button" class="btn-close close-down-modal" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body text-center">
<form method="post" action="{{ path('verify_download_code_www') }}">
<div class="mb-3">
<label for="downloadverificationCode"></label>
<input type="text" class="form-control" id="downloadverificationCode" name="download-verification_code" placeholder="Code à 4 chiffres" required>
</div>
<button type="submit" class="btn btn-success">Vérifier le code</button>
</form>
</div>
</div>
</div>
</div>
{# <button id="chatModal" class="btn position-absolute bottom-0 end-0 m-3" >
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" class="bi bi-robot" viewBox="0 0 16 16">
<path d="M6 12.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5M3 8.062C3 6.76 4.235 5.765 5.53 5.886a26.6 26.6 0 0 0 4.94 0C11.765 5.765 13 6.76 13 8.062v1.157a.93.93 0 0 1-.765.935c-.845.147-2.34.346-4.235.346s-3.39-.2-4.235-.346A.93.93 0 0 1 3 9.219zm4.542-.827a.25.25 0 0 0-.217.068l-.92.9a25 25 0 0 1-1.871-.183.25.25 0 0 0-.068.495c.55.076 1.232.149 2.02.193a.25.25 0 0 0 .189-.071l.754-.736.847 1.71a.25.25 0 0 0 .404.062l.932-.97a25 25 0 0 0 1.922-.188.25.25 0 0 0-.068-.495c-.538.074-1.207.145-1.98.189a.25.25 0 0 0-.166.076l-.754.785-.842-1.7a.25.25 0 0 0-.182-.135"></path>
<path d="M8.5 1.866a1 1 0 1 0-1 0V3h-2A4.5 4.5 0 0 0 1 7.5V8a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1v1a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-1a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1v-.5A4.5 4.5 0 0 0 10.5 3h-2zM14 7.5V13a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V7.5A3.5 3.5 0 0 1 5.5 4h5A3.5 3.5 0 0 1 14 7.5"></path>
</svg>
</button>
<div class="modal fade" id="chatbotModal" tabindex="-1" aria-hidden="true" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Bienvenue sur le tchatbot </h5>
<button type="button" class="btn-close close-modal" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body text-center">
<form id="promptForm">
<input type="text" id="promptInput" placeholder="Entrez votre question ici">
<button type="submit">Envoyer</button>
</form>
<div id="responseContainer" style="margin-top: 20px; height: 15em;"></div> <!-- Zone pour afficher la réponse -->
<div id="botpress-chat-container"></div> <!-- Conteneur pour le chatbot -->
</div>
</div>
</div>
</div>
#}
</div>
</div>
{#<script src="https://cdn.botpress.cloud/webchat/v1/inject.js"></script>
<script src="https://mediafiles.botpress.cloud/0e76e20f-72e7-48c7-b9be-6ad7817d50a7/webchat/config.js" defer></script>#}
{#<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>#}
<script>
/* document.getElementById('btnConnexion').addEventListener('click', function() {
var isConnected = this.getAttribute('data-is-connected') === 'true';
var modalId = isConnected ? 'modalDeconnexion' : 'modalConnexion';
var modal = new bootstrap.Modal(document.getElementById(modalId));
modal.show();
});
*/
/* document.addEventListener('DOMContentLoaded', function() {
// Configuration de Botpress
window.botpressWebChat.init({
host: 'https://mediafiles.botpress.cloud/be59bd44-3746-46c9-b9bc-f7d1956d2ca3/webchat/bot.html', // Remplacez par votre URL de serveur Botpress
botId: 'bp_pat_irQyeGbmyBSSkeSvtzDVFgeZMa5j2Pr0TxOv', // Remplacez par l'ID de votre bot Botpress
container: document.getElementById('botpress-chat-container'), // Spécifiez le conteneur du chatbot
});
// Affichez le modal lorsque le chatbot est prêt
var modal = new bootstrap.Modal(document.getElementById('chatbotModal'));
document.getElementById('votre_bouton_ou_element_declencheur').addEventListener('click', function() {
modal.show();
});
});
*/
/* document.getElementById('chatModal').addEventListener('click', function() {
var modal = new bootstrap.Modal(document.getElementById('chatbotModal'));
modal.show();
});*/
/* document.getElementById('monBouton').addEventListener('click', function() {
{% if app.user %}
window.location.href = 'https://ladegust.fr/';
{% else %}
window.location.href = '{{ path('app_login') }}';
{% endif %}
});
window.addEventListener('load', function() {
if (document.querySelectorAll('.alert-danger').length > 0) {
var myModal = new bootstrap.Modal(document.getElementById('downloadModal'));
myModal.show();
}
});*/
/* window.addEventListener('chat', function() {
if (document.querySelectorAll('.alert-danger').length > 0) {
var chatModal = new bootstrap.Modal(document.getElementById('chatbotModal'));
chatModal.show();
}
});*/
/* document.addEventListener('DOMContentLoaded', function () {
var closeModalButtons = document.querySelectorAll('.close-modal');
closeModalButtons.forEach(function (button) {
button.addEventListener('click', function () {
window.location.href = "{{ path('app_portfolio') }}";
});
});
});*/
/* document.addEventListener('DOMContentLoaded', function () {
var username = 'surmurthag@outlook.fr'; // Remplacez par le nom d'utilisateur de test
var password = '@USqJnMp0f0BKAaKzIsUy'; // Remplacez par le mot de passe de test
var form = document.getElementById('promptForm');
form.onsubmit = async function (event) {
event.preventDefault();
var promptValue = document.getElementById('promptInput').value;
var requestData = {
"prompt": promptValue
};
try {
const response = await fetch('/post-response-IA', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa(username + ':' + password)
},
body: JSON.stringify(requestData)
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
console.log(data);
// Extraire uniquement la réponse du tchat
const chatResponse = data.response.response;
// Mise à jour de la zone de réponse avec uniquement la réponse du tchat
document.getElementById('responseContainer').innerText = chatResponse;
} catch (error) {
document.getElementById('responseContainer').innerText = 'Erreur : Impossible de récupérer la réponse.';
}
};
});
*/
</script>
{% endblock %}