mirror of
https://gitlab.aliens-lyon.fr/savrillo/gpens.git
synced 2026-03-18 01:41:02 +01:00
Room research
This commit is contained in:
parent
664389333a
commit
8267dfca69
@ -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);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user