{# templates/blog/index.html.twig #}
{% extends "base.html.twig" %}
{% block stylesheets %}
{{ encore_entry_link_tags('app') }}
{% endblock %}
{% block title %}Accueil |
{{ parent() }}
{% endblock %}
{% block content %}
<div class="screen">
<div class="entete">
<div class="text">
<h1>LUNE</h1>
<h3>portaiL des Usages du Numérique Éducatif</h3>
<p class="accroche">LUNE est un portail qui intègre de l'intelligence artificielle
pour faciliter l'accès au personnel de l'éducation nationale à
des ressources pédagogiques. Grâce à LUNE, trouvez depuis
un seul endroit vos ressources pédagogiques pour les usages du
numérique.</p>
</div>
<div class="img_logo">
<img class="img_text" src="{{ asset('build/images/ICONE-Turquoise.png') }}"/>
</div>
</div>
<!--Telescope-->
<div class="telescope">
<h2><img class="img_titre" src="{{ asset('build/images/TELESCOPE_blue.png') }}"/>Le téléscope</h2>
<p>Vous cherchez quelque chose ? Le télécsope est là pour vous aider ! Pensez, écrivez et laissez le chercher! Le téléscope vous emmènera découvrir de nombreuses
ressources issues de sites internets d'intérêts. Vous pouvez également vous laisser guider dans votre recherhe en sélectionnant des thématiques.</p>
<div class="ContainerTelescope">
<div class="SousTitre-Telescope">Je recherche:</div>
<div class="ChoixContainer">
{% set i = 1 %}
{% for chx in choix %}
<button class="Btn_second ChoixTelescope" onclick="rechercheGuideeChx('{{i}}')">{{chx.nom}}</button>
{% set i = i + 1 %}
{% endfor %}
</div>
{% set j = 2 %}
<div class="RequeteContainer">
{% for chx in choix %}
<div style="inline" class='Requete'>
{% for req in requete %}
{% if req.choix == chx %}
<button class="Btn_second RequeteTelescope" onclick="rechercheGuideeReq('{{req.nom}}', '{{j}}')">{{req.nom}}</button>
{% endif %}
{% endfor %}
</div>
{% set j = j + 1 %}
{% endfor %}
</div>
<form method="get" action="/search">
<div class="RechercheContainer">
<input class="form-control je-recherche-une-sq" id="searchbar" type="text" style="" placeholder="Recherche" name="q" required>
</div>
<div class="BtnRechercheContainer">
<button class="Btn_primary BtnRecherche" type="submit">Lancer la Recherche</button>
</div>
</form>
</div>
</div>
<div class="recommandationContainer">
<h2 class="parcours-recommand h2"><img class="img_titre" src="{{ asset('build/images/TRAJECTOIRE_blue.png') }}"/>Trajectoires recommandées!</h2>
<p class="lorem-ipsum-dolor-si">
Ces parcours de navigation vous sont proposés sur la base de votre utilisation de LUNE. N'hésitez pas à les suivres. Ils pourraient vous intéresser! Ils se construisent
au fur et à mesure de vos recherches et de votre navigation. Grâce à ces trajectoires, visitez des ressources auxquelles nous n'auriez pas pensés !
</p>
{{ render(controller('App\\Controller\\RecoController::index')) }}
</div>
<h2>Les dernières découvertes!</h2>
<p>
Toutes les nouvelles ressources sont disponibles ici ! Voyagez à travers ces découvertes pour découvertes pour découvrir des nouveautés !
</p>
<div id="newArticlesContainer"></div>
{% if is_mobile() %}
<div style="display: flex; justify-content: center; margin-top: 1em">
<a class="prev" onclick="plusArticle(-1)">❮</a>
<a class="next" onclick="plusArticle(1)">❯</a>
</div>
{% endif %}
<div id="verif_container" class="popup">
<div class="popup-box">
<h5 class="popup-title">Voulez-vous vraiment supprimer ?</h5>
<p class="popup-content">Il ne sera pas possible de revenir en arrière.</p>
<!--initialisation du bouton supprimer et retour pour annuler l'opération-->
<div class="popup-bottom">
<button id="supr" type="button" class="popup-button">
<strong>Supprimer</strong>
</button>
<button id="retour" type="button" class="popup-button" data-bs-dismiss="modal">retour</button>
</div>
</div>
</div>
</div>
{% include "footer/index.html.twig" %}
{% include "includes/volet.html.twig" %}
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.js"></script>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
let articleIndex = 0;
function plusArticle(n) {
showArticle(articleIndex += n);
}
function showArticle(n) {
let articles = $('#newArticlesContainer .article');
if (n >= articles.length) {
articleIndex = 0
}
if (n < 0) {
articleIndex = articles.length - 1
}
for (i = 0; i < articles.length; i ++) {
articles[i].style.display = "none";
}
articles[articleIndex].style.display = "block";
}
</script>
<script type="module">
import ui_article from "/assets/js/ui/ui_article.js";
import gestionVue from "/assets/js/gestionVue.js";
import gestionSignal from "/assets/js/gestionSignal.js";
import gestionIndicateur from "/assets/js/gestion_indicateurs.js";
import article from "/assets/js/article.js";
import favoris from "/assets/js/favoris.js";
import affichage from "/assets/js/affichage.js";
$(document).ready(function () {
loadNewArticles();
// ------------ Functions
function loadNewArticles() {
$('#newArticlesContainer').append(affichage.preloader())
$.ajax({
url: '/search/ajaxNews',
type: 'POST',
dataType: 'json',
async: true,
success: function (data, status) {
showNewArticles(data);
},
error: function (xhr, textStatus, errorThrown) {
showErrorMessage();
}
});
}
function showNewArticles(data) {
let articlesContainer = $('#newArticlesContainer');
let string = '';
let connecte = false
{% if app.user != null %}
connecte = true
{% endif %}
let favs = {{ favs|serialize(format='json') }}
{% if is_mobile() %}
for (let i = 0; i < 3; i++) {
if (i > 0) {
string += '<div id="new-article" class="article" style="display: none">';
} else {
string += '<div id="new-article" class="article">';
} data[i]['date'] = data[i]['date']['date'];
string += ui_article.creerCarteArticle(data[i], connecte, favs);
string += '</div>'
}
{% else %}
for (let i = 0; i < 3; i++) {
data[i]['date'] = data[i]['date']['date'];
string += '<div class="article">';
string += ui_article.creerCarteArticle(data[i], connecte, favs);
string += '</div>'
}
{% endif %}
// remove loading
$('#loading').remove();
// add articles
articlesContainer.append(string);
article.init();
favoris.initAddFavoriteEvents();
gestionVue.initialisation();
gestionSignal.initialisation();
gestionIndicateur.initialisation();
}
function showErrorMessage() {
$('#loading').remove();
$('#newArticlesContainer').append(`<div class="center-align" id="loading" style="margin-bottom: 1.5em">
Erreur lors du chargement
<br/>
<a class="btn" style="margin-top: 0.5em">Réessayer</a>
</div>`);
$('#loading').on('click', event => {
$('#loading').remove();
loadNewArticles();
})
}
});
</script>
<script>
function CacherRequete(cls) {
let block = document.getElementsByClassName(cls);
let i = 0;
for (requete in block) {
if (block[i] != undefined) {
block[i].style.display = "none";
}
i = i + 1;
}
}
function AfficherRequete(cls, id) {
let block = document.getElementsByClassName(cls);
let i = id;
i=i-1;
if (block[i] != undefined) {
block[i].style.display = "inline";
}
}
function rechercheGuideeChx(id1) {
CacherRequete('Requete');
AfficherRequete('Requete',id1);
}
function rechercheGuideeReq(msg, id1) {
document.getElementById("searchbar").value = document.getElementById("searchbar").value + " " + msg;
CacherRequete('Requete');
AfficherRequete('Requete',id1);
}
function reinitRechercheGuidee() {
document.getElementById("searchbar").value = "";
CacherRequete('Requete');
AfficherRequete('Requete', '1');
}
</script>
{% endblock %}