306 lines
No EOL
12 KiB
JavaScript
306 lines
No EOL
12 KiB
JavaScript
|
|
// fetch l'api et afficher tout ce qu'elle nous rend
|
|
function querystring(key) {
|
|
var re = new RegExp("(?:\\?|&)" + key + "=(.*?)(?=&|$)", "gi");
|
|
var r = [],
|
|
m;
|
|
while ((m = re.exec(document.location.search)) != null) r[r.length] = m[1];
|
|
return r;
|
|
}
|
|
|
|
|
|
/*async function gen_contenu() {
|
|
try {
|
|
const response = await fetch('api.php/decomposer_ensemble?ensemble_id='+querystring("ensemble_id"));
|
|
const data = await response.json();
|
|
console.log(data);
|
|
|
|
if (data.status === "1" && data.msg.documents.length > 0) {
|
|
const table = document.createElement('table');
|
|
const thead = document.createElement('thead');
|
|
const tbody = document.createElement('tbody');
|
|
|
|
const headerRow = document.createElement('tr');
|
|
const idHeader = document.createElement('th');
|
|
idHeader.textContent = 'ID';
|
|
const titreHeader = document.createElement('th');
|
|
titreHeader.textContent = 'Titre';
|
|
const typeHeader = document.createElement('th');
|
|
typeHeader.textContent = 'Type';
|
|
const uploadPathHeader = document.createElement('th');
|
|
uploadPathHeader.textContent = 'Upload Path';
|
|
const previewHeader = document.createElement('th');
|
|
previewHeader.textContent = 'Preview';
|
|
const commentaireHeader = document.createElement('th');
|
|
commentaireHeader.textContent = 'Commentaire Auteur';
|
|
const exerciceHeader = document.createElement('th');
|
|
exerciceHeader.textContent = 'Exercices';
|
|
|
|
headerRow.appendChild(idHeader);
|
|
headerRow.appendChild(titreHeader);
|
|
headerRow.appendChild(typeHeader);
|
|
headerRow.appendChild(uploadPathHeader);
|
|
headerRow.appendChild(previewHeader);
|
|
headerRow.appendChild(commentaireHeader);
|
|
headerRow.appendChild(exerciceHeader);
|
|
|
|
thead.appendChild(headerRow);
|
|
|
|
data.msg.documents.forEach(doc => {
|
|
const row = document.createElement('tr');
|
|
const idCell = document.createElement('td');
|
|
idCell.textContent = doc.id;
|
|
const titreCell = document.createElement('td');
|
|
titreCell.textContent = doc.titre;
|
|
const typeCell = document.createElement('td');
|
|
typeCell.textContent = doc.type;
|
|
const uploadPathCell = document.createElement('td');
|
|
uploadPathCell.textContent = doc.upload_path;
|
|
|
|
let previewCell;
|
|
let ext = doc.upload_path.toString().split(".").pop();
|
|
|
|
let image_extensions = [
|
|
'jpg',
|
|
'jpeg',
|
|
'png',
|
|
'gif',
|
|
'bmp',
|
|
'tiff',
|
|
'tif',
|
|
'webp',
|
|
'svg',
|
|
'ico',
|
|
'raw'];
|
|
|
|
switch (true) {
|
|
case image_extensions.includes(ext): // image
|
|
previewCell = document.createElement('td');
|
|
const img = document.createElement('img');
|
|
img.src = doc.upload_path;
|
|
img.alt = doc.titre;
|
|
previewCell.appendChild(img);
|
|
|
|
let lien_img = document.createElement('a');
|
|
lien_img.href = doc.upload_path;
|
|
lien_img.textContent = 'Voir image';
|
|
lien_img.target = '_blank';
|
|
previewCell.appendChild(lien_img);
|
|
|
|
break;
|
|
case ext=="pdf": // pdf
|
|
previewCell = document.createElement('td');
|
|
const pdfLink = document.createElement('a');
|
|
pdfLink.href = doc.upload_path;
|
|
pdfLink.textContent = 'Voir PDF';
|
|
pdfLink.target = '_blank';
|
|
previewCell.appendChild(pdfLink);
|
|
break;
|
|
case ext == "mp4": // video
|
|
previewCell = document.createElement('td');
|
|
const video = document.createElement('video');
|
|
video.src = doc.upload_path;
|
|
video.controls = true;
|
|
previewCell.appendChild(video);
|
|
break;
|
|
case ext == "html":
|
|
previewCell = document.createElement('td');
|
|
const iframe = document.createElement('iframe');
|
|
iframe.href = doc.upload_path;
|
|
//iframe.textContent = doc.titre;
|
|
previewCell.appendChild(iframe);
|
|
break;
|
|
|
|
default :
|
|
previewCell = document.createElement('td');
|
|
let lien = document.createElement('a');
|
|
lien.href = doc.upload_path;
|
|
lien.textContent = 'Type de fichier non supporté.';
|
|
lien.target = '_blank';
|
|
previewCell.appendChild(lien);
|
|
break;
|
|
|
|
}
|
|
|
|
const commentaireCell = document.createElement('td');
|
|
commentaireCell.textContent = data.msg.commentaire_auteur || '';
|
|
|
|
const exerciceCell = document.createElement('td');
|
|
if (doc.exercices && doc.exercices.length > 0) {
|
|
const exerciceList = document.createElement('ul');
|
|
doc.exercices.forEach(exercice => {
|
|
const exerciceItem = document.createElement('li');
|
|
exerciceItem.textContent = `Exo n°${exercice.id} ${exercice.commentaire_auteur}, Duree: ${exercice.duree}`;
|
|
exerciceList.appendChild(exerciceItem);
|
|
});
|
|
exerciceCell.appendChild(exerciceList);
|
|
} else {
|
|
exerciceCell.textContent = 'Pas de détails sur les exercices';
|
|
}
|
|
|
|
row.appendChild(idCell);
|
|
row.appendChild(titreCell);
|
|
row.appendChild(typeCell);
|
|
row.appendChild(uploadPathCell);
|
|
row.appendChild(previewCell);
|
|
row.appendChild(commentaireCell);
|
|
row.appendChild(exerciceCell);
|
|
|
|
tbody.appendChild(row);
|
|
});
|
|
|
|
table.appendChild(thead);
|
|
table.appendChild(tbody);
|
|
|
|
const dataContainer = document.getElementById('data-container');
|
|
dataContainer.appendChild(table);
|
|
} else {
|
|
const dataContainer = document.getElementById('data-container');
|
|
dataContainer.textContent = data.msg;
|
|
}
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
}*/
|
|
|
|
async function gen_contenu() {
|
|
try {
|
|
const response = await fetch('api.php/decomposer_ensemble?ensemble_id=' + querystring("ensemble_id"));
|
|
const data = await response.json();
|
|
console.log(data);
|
|
|
|
|
|
const dataContainer = document.getElementById('data-container');
|
|
|
|
if (data.status === "1" && data.msg.documents.length > 0) {
|
|
data.msg.documents.forEach(doc => {
|
|
// Création d'une carte (card)
|
|
const card = document.createElement('div');
|
|
card.classList.add('card');
|
|
|
|
// Construction du contenu de la carte
|
|
/*const idDiv = document.createElement('div');
|
|
idDiv.textContent = `ID: ${doc.id}`;
|
|
card.appendChild(idDiv);*/
|
|
|
|
const titreDiv = document.createElement('div');
|
|
titreDiv.classList.add('title');
|
|
titreDiv.textContent = `Titre: ${doc.titre}`;
|
|
card.appendChild(titreDiv);
|
|
|
|
const typeDiv = document.createElement('div');
|
|
typeDiv.textContent = `Type: ${doc.type}`;
|
|
card.appendChild(typeDiv);
|
|
|
|
/*const uploadPathDiv = document.createElement('div');
|
|
uploadPathDiv.textContent = `Upload Path: ${doc.upload_path}`;
|
|
card.appendChild(uploadPathDiv);*/
|
|
|
|
switch (doc.type) {
|
|
case 2: // image
|
|
const img = document.createElement('img');
|
|
img.src = doc.upload_path;
|
|
img.alt = doc.titre;
|
|
card.appendChild(img);
|
|
|
|
const imageLink = document.createElement('a');
|
|
imageLink.href = doc.upload_path;
|
|
imageLink.classList.add('lien');
|
|
imageLink.textContent = 'Voir image';
|
|
imageLink.target = '_blank';
|
|
card.appendChild(imageLink);
|
|
break;
|
|
case 3: // pdf
|
|
const embed = document.createElement('embed');
|
|
embed.src = doc.upload_path;
|
|
card.appendChild(embed);
|
|
|
|
const pdfLink = document.createElement('a');
|
|
pdfLink.href = doc.upload_path;
|
|
pdfLink.classList.add('lien');
|
|
pdfLink.textContent = 'Voir PDF en grand';
|
|
pdfLink.target = '_blank';
|
|
card.appendChild(pdfLink);
|
|
break;
|
|
case 4: // video
|
|
const video = document.createElement('video');
|
|
video.src = doc.upload_path;
|
|
video.controls = true;
|
|
card.appendChild(video);
|
|
break;
|
|
case 5:
|
|
const iframe = document.createElement('iframe');
|
|
iframe.src = doc.upload_path;
|
|
card.appendChild(iframe);
|
|
break;
|
|
|
|
case 1:
|
|
const textarea = document.createElement('textarea');
|
|
var xmlhttp, text;
|
|
xmlhttp = new XMLHttpRequest();
|
|
xmlhttp.open('GET', doc.upload_path, false);
|
|
xmlhttp.send();
|
|
text = xmlhttp.responseText;
|
|
textarea.value = text;
|
|
card.appendChild(textarea)
|
|
default:
|
|
const unsupportedLink = document.createElement('a');
|
|
unsupportedLink.href = doc.upload_path;
|
|
unsupportedLink.classList.add('lien');
|
|
unsupportedLink.textContent = 'Type de fichier non supporté.';
|
|
unsupportedLink.target = '_blank';
|
|
card.appendChild(unsupportedLink);
|
|
break;
|
|
}
|
|
|
|
// Ajout du contenu restant de la carte
|
|
const commentaireDiv = document.createElement('div');
|
|
commentaireDiv.classList.add('title');
|
|
commentaireDiv.textContent = `Commentaire Auteur: ${data.msg.commentaire_auteur || ''}`;
|
|
card.appendChild(commentaireDiv);
|
|
|
|
// Exercices
|
|
if (doc.exercices && doc.exercices.length > 0) {
|
|
const exercicesTitle = document.createElement('div');
|
|
exercicesTitle.classList.add('title');
|
|
exercicesTitle.textContent = 'Exercices:';
|
|
card.appendChild(exercicesTitle);
|
|
|
|
const exercicesList = document.createElement('ul');
|
|
doc.exercices.forEach(exercice => {
|
|
const exerciceItem = document.createElement('li');
|
|
exerciceItem.classList.add('main-text');
|
|
exerciceItem.textContent = `Exo n°${exercice.id} ${exercice.commentaire_auteur}, Durée: ${exercice.duree} min`;
|
|
exercicesList.appendChild(exerciceItem);
|
|
});
|
|
card.appendChild(exercicesList);
|
|
} else {
|
|
const noExercicesDiv = document.createElement('div');
|
|
noExercicesDiv.textContent = 'Pas de détails sur les exercices';
|
|
card.appendChild(noExercicesDiv);
|
|
}
|
|
|
|
// Ajout de la carte au conteneur principal
|
|
dataContainer.appendChild(card);
|
|
});
|
|
} else {
|
|
dataContainer.textContent = data.msg;
|
|
}
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
document.addEventListener("DOMContentLoaded", (event)=>{
|
|
|
|
gen_contenu();
|
|
|
|
document.getElementById("titre").addEventListener("click", (event) => {
|
|
window.location.pathname = "/archinsa";
|
|
});
|
|
|
|
}); |