Room research

This commit is contained in:
Adrien Vannson 2021-10-16 16:24:33 +02:00
parent 664389333a
commit 8267dfca69

View File

@ -26,19 +26,6 @@ function researchRoom()
xhr.send(null); xhr.send(null);
} }
// Update the current room based on the current anchor
function updateCurrentRoom()
{
// Hide room research modal
var modal = bootstrap.Modal.getInstance(document.getElementById('room-research-modal'));
if (modal != null) {
modal.hide();
}
var id = window.location.hash;
console.log(id);
}
function salleInfosToHtml(salle) function salleInfosToHtml(salle)
{ {
titres = ((salle.aliaz.length!=0)?("<h2>"+salle.aliaz.join("</h2> ou <h2>")+"</h2>"):"Aucun alias connu."); titres = ((salle.aliaz.length!=0)?("<h2>"+salle.aliaz.join("</h2> ou <h2>")+"</h2>"):"Aucun alias connu.");
@ -58,6 +45,59 @@ function httpGetAsync(theUrl, callback)
xmlHttp.send(null); xmlHttp.send(null);
} }
function selectRoom(roomId) {
if (document.lastSelectedSalle != null) {
document.lastSelectedSalle.classList.remove('current-room');
}
var svg = document.getElementById('plan');
var room = svg.contentDocument.getElementById('path-salle-' + roomId);
if (room == null) {
console.log('Error: the room does not exist');
return;
}
var outputDiv = document.getElementById('selectedSalleInfos');
document.lastSelectedSalle = room;
httpGetAsync("api/request.php?salle="+room.id.substring("path-salle-".length), function (s,errcode){
window.clearTimeout(document.wnsTimeout);
try{
if (s=="404") {
outputDiv.innerHTML = "Aucune information disponible pour cette salle. Si vous en avez, indiquez-les à l'adresse <a href=mailto:samy.avrillon@ens-lyon.fr>samy.avrillon@ens-lyon.fr</a> en indiquant l'identifiant de la salle : "+document.lastSelectedSalle.id.substring("path-salle-".length);
return;
}
ss = JSON.parse(s)
if (document.lastSelectedSalle.id==("path-salle-"+ss["id"])) {
if (errcode==200) {
outputDiv.innerHTML = salleInfosToHtml(ss);
} else {
outputDiv.innerHTML = "Erreur lors de l'appel à l'interface php: ERREUR "+errcode;
}
}
} catch(err) {
console.error("Les données récupéréés de cette salle ne sont pas valides.");
console.error(err);
}
});
room.classList.add('current-room');
}
// Update the current room based on the current anchor
function updateCurrentRoom()
{
// Hide room research modal
var modal = bootstrap.Modal.getInstance(document.getElementById('room-research-modal'));
if (modal != null) {
modal.hide();
}
var id = window.location.hash.substring(1); // Remove #
selectRoom(id);
}
function initSvgSupport() function initSvgSupport()
{ {
var plan = document.getElementById('plan'); var plan = document.getElementById('plan');
@ -65,41 +105,12 @@ function initSvgSupport()
svgPanZoom(plan, {zoomEnabled: true, controlIconsEnabled: true}); svgPanZoom(plan, {zoomEnabled: true, controlIconsEnabled: true});
var salles = plan.contentDocument.getElementsByClassName('svg-salle'); var salles = plan.contentDocument.getElementsByClassName('svg-salle');
var outputDiv = document.getElementById('selectedSalleInfos');
function selectSalle(e) {
if(document.lastSelectedSalle != null) {
document.lastSelectedSalle.classList.remove('current-room');
}
document.lastSelectedSalle = e.target;
httpGetAsync("api/request.php?salle="+e.target.id.substring("path-salle-".length), function (s,errcode){
window.clearTimeout(document.wnsTimeout);
try{
if (s=="404") {
outputDiv.innerHTML = "Aucune information disponible pour cette salle. Si vous en avez, indiquez-les à l'adresse <a href=mailto:samy.avrillon@ens-lyon.fr>samy.avrillon@ens-lyon.fr</a> en indiquant l'identifiant de la salle : "+document.lastSelectedSalle.id.substring("path-salle-".length);
return;
}
ss = JSON.parse(s)
if (document.lastSelectedSalle.id==("path-salle-"+ss["id"])) {
if (errcode==200) {
outputDiv.innerHTML = salleInfosToHtml(ss);
} else {
outputDiv.innerHTML = "Erreur lors de l'appel à l'interface php: ERREUR "+errcode;
}
}
} catch(err) {
console.error("Les données récupéréés de cette salle ne sont pas valides.");
console.error(err);
}
});
e.target.classList.add('current-room');
}
for (var i = 0; i < salles.length; i++) { for (var i = 0; i < salles.length; i++) {
salles[i].addEventListener('click', selectSalle); salles[i].addEventListener('click', function(e) {
var id = e.target.id.substring('path-salle-'.length); // Remove prefix
selectRoom(id);
});
} }
} }