mirror of
https://gitlab.aliens-lyon.fr/savrillo/gpens.git
synced 2026-03-18 00:21:03 +01:00
Room research
This commit is contained in:
parent
664389333a
commit
8267dfca69
@ -26,19 +26,6 @@ function researchRoom()
|
||||
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)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
var plan = document.getElementById('plan');
|
||||
@ -65,41 +105,12 @@ function initSvgSupport()
|
||||
svgPanZoom(plan, {zoomEnabled: true, controlIconsEnabled: true});
|
||||
|
||||
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++) {
|
||||
salles[i].addEventListener('click', selectSalle);
|
||||
salles[i].addEventListener('click', function(e) {
|
||||
var id = e.target.id.substring('path-salle-'.length); // Remove prefix
|
||||
selectRoom(id);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user