diff --git a/resources/script.js b/resources/script.js
index 90abba2..2e3684d 100644
--- a/resources/script.js
+++ b/resources/script.js
@@ -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)?("
"+salle.aliaz.join("
ou ")+"
"):"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 samy.avrillon@ens-lyon.fr 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 samy.avrillon@ens-lyon.fr 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);
+ });
}
}