var apiRoot = '../api/api.php?token=saharacentre-Qx5LNaFoaV1gYdzA'; var cacheFloors; window.addEventListener("message",function(e){ var message = e.data; if(message.action == 'log') { var id = message.id; var type = message.type; var data = message.data; switch(type){ case 'mapIt': if(data && data.room){ var room = data.room; var key = encodeURIComponent(room); var apiUrl = apiRoot + '&com=getRoomByKey&key=' + key; $.get(apiUrl, function(rst){ var rst = JSON.parse(rst).data; var buildingName = rst.bname; var floorName = rst.fname; var room_id_number_name = rst.name; if(rst.description && rst.description != '') { room_id_number_name = rst.description; } var display = ''; var roomTag = ''; var responseMessage = {}; responseMessage.action = 'log'; responseMessage.id = id; responseMessage.args = [ "MapIt", "method", "mapit", "buildingName", buildingName, "floorName", floorName, "roomNumName", room_id_number_name, "display", display, "tag", roomTag, "id", "" ]; window.parent.postMessage(responseMessage, "*"); }); } break; case 'multiMapIt': var points = message.points; var allPromise = []; if(points && points.length > 0){ for(let i in points) { allPromise[i] = new Promise((resolve, reject) => { var data = points[i]; var room = data.room; var key = encodeURIComponent(room); var apiUrl = apiRoot + '&com=getRoomByKey&key=' + key; $.get(apiUrl, function(rst){ var rst = JSON.parse(rst).data; var buildingName = rst.bname; var floorName = rst.fname; var room_id_number_name = rst.name; if(rst.description && rst.description != '') { room_id_number_name = rst.description; } var display = ''; var roomTag = ''; var args = [ "MapIt", "method", "mapit", "buildingName", buildingName, "floorName", floorName, "roomNumName", room_id_number_name, "display", display, "tag", roomTag, "id", "" ]; resolve(args); }); }); } Promise.all(allPromise).then(function(args) { var responseMessage = {}; responseMessage.action = 'log'; responseMessage.id = id; responseMessage.args = args; window.parent.postMessage(responseMessage, "*"); }); } break; case 'locate': if(data && data.room){ var room = data.room; var key = encodeURIComponent(room); var apiUrl = apiRoot + '&com=getRoomByKey&key=' + key; $.get(apiUrl, function(rst){ var rst = JSON.parse(rst).data; var buildingName = rst.bname; var floorName = rst.fname; var room_id_number_name = rst.name; if(rst.description && rst.description != '') { room_id_number_name = rst.description; } var display = ''; var roomTag = ''; var responseMessage = {}; responseMessage.action = 'log'; responseMessage.id = id; responseMessage.args = [ "MapIt", "method", "locate", "buildingName", buildingName, "floorName", floorName, "roomNumName", room_id_number_name, "display", display, "tag", roomTag, "id", "" ]; window.parent.postMessage(responseMessage, "*"); }); }else if(data && data.floor) { var floor = data.floor; var fname = encodeURIComponent(floor); var apiUrl = apiRoot + '&com=getFloors'; $.get(apiUrl, function(rst){ var rsts = JSON.parse(rst).data; for(f of rsts){ if(f.name == floor){ var buildingName = f.bname; var floorName = f.name; var display = ''; var roomTag = ''; var responseMessage = {}; responseMessage.action = 'log'; responseMessage.id = id; responseMessage.args = [ "MapIt", "method", "locate", "buildingName", buildingName, "floorName", floorName, "roomNumName", "", "display", display, "tag", roomTag, "id", "" ]; window.parent.postMessage(responseMessage, "*"); break; } } }); } break; case 'icon': if(data && data.icon){ var responseMessage = {}; responseMessage.action = 'log'; responseMessage.id = id; responseMessage.args = [ "MapIt", "method", "icon", "buildingName", '', "floorName", '', "icon", data.icon, "display", '' ]; window.parent.postMessage(responseMessage, "*"); } break; } } });