var clearResult = function() {}; var mymap; var curLevel = ""; var marker = { '1' : [ { level : '1', room_id : '5-120', name : '', pos : [287, 579], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-122', name : '', pos : [352, 402], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-117', name : '', pos : [217, 414], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-119', name : '', pos : [254, 579], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-106', name : '', pos : [113, 668], rotation : 0, members : ` Annika Kotulla (FW)
Prof. Dr. Mirko Kraft (FW)
`, display : true, modified : false }, { level : '1', room_id : '5-107', name : '', pos : [113, 736], rotation : 0, members : ` Prof. Dr. Christian Eckert (FW)
Prof. Dr. Jochen Leidner (FW)
`, display : true, modified : false }, { level : '1', room_id : '5-108', name : '', pos : [227, 714], rotation : 0, members : ` Tim Menzner (FW)
Florian Neuland (FW)
Tim Brasch (FW)
Tim Menzner (FW)
`, display : true, modified : false }, { level : '1', room_id : '5-109', name : '', pos : [303, 714], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-110', name : '', pos : [385, 713], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-111', name : '', pos : [489, 710], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-112', name : '', pos : [488, 529], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-113', name : '', pos : [486, 409], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-114', name : '', pos : [486, 287], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-118', name : '', pos : [227, 484], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-121', name : '', pos : [322, 483], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-115', name : '', pos : [250, 360], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-116', name : '', pos : [214, 358], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-123', name : '', pos : [273, 639], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-124', name : '', pos : [559, 613], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-125', name : '', pos : [370, 362], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-126', name : '', pos : [287, 414], rotation : 0, members : ``, display : true, modified : false }, { level : '1', room_id : '5-101', name : '', pos : [114, 328], rotation : 0, members : ` Annelie Herold (FW)
Christin Fichtmüller (FW)
`, display : true, modified : false }, { level : '1', room_id : '5-102', name : '', pos : [113, 394], rotation : 0, members : ` Kerstin Buhl (SfW)
Annika Koch (SfW)
`, display : true, modified : false }, { level : '1', room_id : '5-103', name : '', pos : [113, 461], rotation : 0, members : ` Chantal Adam (FW)
Kerstin Kroner (FW)
`, display : true, modified : false }, { level : '1', room_id : '5-104', name : '', pos : [113, 531], rotation : 0, members : ` Prof. Dr. Uwe Gail (FW)
Prof. Dr. Michael Hartmann (FW)
`, display : true, modified : false }, { level : '1', room_id : '5-105', name : '', pos : [113, 598], rotation : 0, members : ` Prof. Dr. Lutz Schneider (FW)
Prof. Dr. Jutta Michel (FW)
`, display : true, modified : false }, ], '2' : [ { level : '2', room_id : '5-215', name : '', pos : [250, 361], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-216', name : '', pos : [213, 361], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-217', name : '', pos : [216, 417], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-218', name : '', pos : [207, 468], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-220', name : '', pos : [254, 583], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-221', name : '', pos : [288, 583], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-223', name : '', pos : [362, 398], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-201', name : '', pos : [113, 327], rotation : 0, members : ` Prof. Dr. Ulrich Heil (FW)
Prof. Dr. Christian Wallasch (FW)
`, display : true, modified : false }, { level : '2', room_id : '5-202', name : '', pos : [113, 397], rotation : 0, members : ` Elisabeth Haust-Gottschlich (FW)
Alexandra Wolf (FW)
`, display : true, modified : false }, { level : '2', room_id : '5-203', name : '', pos : [113, 464], rotation : 0, members : ` Prof. Dr. Thomas Schauerte (FW)
`, display : true, modified : false }, { level : '2', room_id : '5-204', name : '', pos : [113, 533], rotation : 0, members : ` Dr. Detlef Bittner (FW)
Prof. Dr. Hedwig Schmid (FW)
`, display : true, modified : false }, { level : '2', room_id : '5-205', name : '', pos : [113, 599], rotation : 0, members : ` Prof. Dr. Victor Randall (FW)
Prof. Dr. Uwe Demmler (FW)
`, display : true, modified : false }, { level : '2', room_id : '5-208', name : '', pos : [225, 713], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-209', name : '', pos : [302, 711], rotation : 0, members : ` Norbert Böhm (FW)
Stefan Buff (FW)
`, display : true, modified : false }, { level : '2', room_id : '5-210', name : '', pos : [385, 710], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-211', name : '', pos : [488, 709], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-212', name : '', pos : [489, 531], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-213', name : '', pos : [489, 409], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-214', name : '', pos : [488, 286], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-222', name : '', pos : [299, 486], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-224', name : '', pos : [274, 640], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-225', name : '', pos : [559, 613], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-226', name : '', pos : [370, 361], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-227', name : '', pos : [303, 416], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-219', name : '', pos : [209, 520], rotation : 0, members : ``, display : true, modified : false }, { level : '2', room_id : '5-206', name : '', pos : [114, 668], rotation : 0, members : ` Prof. Dr. Claus-Burkard Böhnlein (FW)
Prof. Dr. Eduard Gerhardt (FW)
`, display : true, modified : false }, { level : '2', room_id : '5-207', name : '', pos : [116, 737], rotation : 0, members : ` Prof. Dr. Antje Kick (FW)
Prof. Dr. Andreas Helmut Grün (FW)
`, display : true, modified : false }, ], '0' : [ { level : '0', room_id : '5-022', name : '', pos : [60, 234], rotation : 0, members : ` Ulrike Kirchner (ID)
`, display : true, modified : false }, { level : '0', room_id : '5-023', name : '', pos : [60, 258], rotation : 0, members : ` Jutta Ultsch (ID)
`, display : true, modified : false }, { level : '0', room_id : '5-005', name : '', pos : [301, 227], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-004', name : '', pos : [302, 300], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-006', name : '', pos : [259, 160], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-024', name : '', pos : [64, 293], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-025', name : '', pos : [157, 271], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-026', name : '', pos : [116, 180], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-028', name : '', pos : [345, 356], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-029', name : '', pos : [224, 195], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-001', name : '', pos : [89, 387], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-003', name : '', pos : [300, 411], rotation : 0, members : ``, display : true, modified : false }, { level : '0', room_id : '5-002', name : '', pos : [198, 399], rotation : 0, members : ``, display : true, modified : false }, ], '-1' : [ { level : '-1', room_id : '5-U10a', name : '', pos : [600, 560], rotation : 0, members : ` Kilian Krug (ZA)
Falk Berger (ZA)
`, display : true, modified : false }, { level : '-1', room_id : '5-U10b', name : '', pos : [600, 480], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U11b', name : '', pos : [601, 639], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U12', name : '', pos : [596, 911], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U11', name : '', pos : [505, 707], rotation : -90, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U05', name : '', pos : [396, 872], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U01', name : '', pos : [335, 490], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U02', name : '', pos : [210, 600], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U03', name : '', pos : [133, 404], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U04', name : '', pos : [174, 877], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U06', name : '', pos : [338, 640], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U07', name : '', pos : [391, 618], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U08', name : '', pos : [437, 640], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U09', name : '', pos : [383, 665], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U22', name : '', pos : [243, 461], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U23', name : '', pos : [383, 551], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U24', name : '', pos : [403, 413], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U26', name : '', pos : [690, 787], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U27', name : '', pos : [452, 468], rotation : 0, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U10', name : '', pos : [510, 540], rotation : 90, members : ``, display : true, modified : false }, { level : '-1', room_id : '5-U11a', name : '', pos : [602, 711], rotation : 0, members : ``, display : true, modified : false }, ], }; var sel_marker = null; var map_modus = "normal"; var levels = { "1" : { "bounds" : [579, 792], "image" : "https://meine-dienste.hs-coburg.de/raumplan/img-floor/467", "id" : 467}, "2" : { "bounds" : [579, 792], "image" : "https://meine-dienste.hs-coburg.de/raumplan/img-floor/466", "id" : 466}, "0" : { "bounds" : [614, 457], "image" : "https://meine-dienste.hs-coburg.de/raumplan/img-floor/465", "id" : 465}, "-1" : { "bounds" : [1242, 994], "image" : "https://meine-dienste.hs-coburg.de/raumplan/img-floor/468", "id" : 468}, }; function clickMarker(m, data){ sel_marker = m; selectMarker(m.level, m.room_id); } function addMarker(level){ for(var i = 0; i < marker[level].length; i++){ var m = marker[level][i]; var className = 'marker'; if(m.members.length > 0){ className += ' staff'; } var myIcon = L.divIcon({className: className, html: '
' + m["room_id"] + '
'}); if (m["pos"][0] == null || m["pos"][1] == null){ continue; } var x = m['pos'][0]; var y = m['pos'][1]; m["marker"] = L.marker({lon: x, lat: y}, {icon: myIcon}); m["marker"].on("click", clickMarker.bind(null, m)); m["marker"].addTo(mymap); } mymap.on('zoom', function() { $(".marker").css("font-size", getFontSize()); }); } function getFontSize(){ var maxZoom = mymap.getMaxZoom(); var minZoom = mymap.getMinZoom(); var zoom = mymap.getZoom(); return (1 + (zoom - minZoom) / (maxZoom - minZoom) * 0.9) * 10; } function selectMarker(level, room_id){ $("#rooms .room").removeClass("text-primary"); $("#room" + room_id).addClass("text-primary"); mymap.invalidateSize() $(".marker div").removeClass("text-primary"); var divs = $(".marker div"); for(var i = 0; i < divs.length; i++){ if($(divs[i]).html() == room_id){ $(divs[i]).addClass("text-primary"); break; } } var ms = marker[level]; for(var i = 0; i < ms.length; i++){ if(ms[i]['room_id'] == room_id){ var x = ms[i]['pos'][0]; var y = ms[i]['pos'][1]; var center = L.latLng(y, x); if(map_modus == "normal"){ mymap.setView(center, mymap.getMaxZoom()); }else{ return; } if(ms[i].members.length > 0){ var offset_x = 0; var offset_y = -10; if(ms[i]["rotation"] == -90){ offset_y = -40; offset_x = -10; } }else{ return; } var popup = ms[i].members; if(ms[i].name){ popup = '' + ms[i].name + '
' + popup; } ms[i]["marker"].unbindPopup(); ms[i]["marker"].bindPopup(popup, {offset : [offset_x, offset_y]}); ms[i]["marker"].openPopup(); return; } } } function switchLevel(level){ if (level == curLevel){ return; } curLevel = level; if(mymap){ mymap.off(); mymap.remove(); } var bounds = [[0, 0], [levels[level]["bounds"][1], levels[level]["bounds"][0]]]; // set up the map mymap = new L.Map('floor_map',{ crs: L.CRS.Simple, maxBounds : bounds, maxZoom: 3, keyboard: false, zoomSnap: 0.05 }); var image = L.imageOverlay(levels[level]["image"], bounds).addTo(mymap); addMarker(level); mymap.fitBounds(bounds); $("#levels .level").removeClass("text-primary"); $("#level" + level).addClass("text-primary"); } document.onkeydown = function(e) { if (sel_marker == null || map_modus != 'position'){ return; } var x = parseInt(sel_marker.marker.getLatLng()["lng"]); var y = parseInt(sel_marker.marker.getLatLng()["lat"]); switch(e.which) { case 65: // a x -= 10; break; case 87: // w y += 10; break; case 68: // d x += 10; break; case 83: // s y -= 10; break; case 37: // left x -= 1; break; case 38: // up y += 1; break; case 39: // right x += 1; break; case 40: // down y -= 1; break; case 72: sel_marker.display = !sel_marker.display; $(sel_marker.marker._icon).hide(); break; case 82: if (sel_marker.rotation == 0){ $(sel_marker.marker._icon).children("div").css("transform","rotate(-90deg)"); sel_marker.rotation = -90; }else{ $(sel_marker.marker._icon).children("div").css("transform","rotate(0deg)"); sel_marker.rotation = 0; } break; default: return; // exit this handler for other keys } sel_marker.marker.setLatLng({lng: x, lat: y}); sel_marker.pos = [x, y]; sel_marker.modified = true; e.preventDefault(); // prevent the default action (scroll / move caret) }; function startPositionMode(){ alert("Positionierungs Modus wurde aktiviert.\nDie Marker können durch klicken ausgewählt werden.\nDie grobe Positionierung erfolgt mit Hilfe der wasd-Taste.\nDie feine Positionieren erfolgt mit Hilfe der Pfeiltasten.\nMarker können mit der r-Taste rotiert werden.\nMarker können mit der h-Taste ausgeblendet werden"); map_modus = "position"; $('#position-safe-button').removeClass('d-none'); } function endPositionMode(){ map_modus = "normal"; $('#position-safe-button').addClass('d-none'); } function savePositions(){ var sql = ""; let store = []; for (let level in levels) { console.log("Iterating " + level + " found " + marker[level].length + " marker"); for (var m = 0; m < marker[level].length; m++){ if (marker[level][m]["modified"]){ let x = marker[level][m]["pos"][0]; let y = marker[level][m]["pos"][1]; let code = marker[level][m]["room_id"]; let rotation = marker[level][m].rotation; let display = marker[level][m].display; store.push({"pos_x" : x, "pos_y" : y, "rotation" : rotation, "display" : display, "code" : code}); } } } $('#position-safe-spinner').removeClass('d-none'); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': 'ZC5VsiHYLrO2sVn2yCdNxK16MD2zJX2EZGH3yeTY' } }); $.ajax('https://meine-dienste.hs-coburg.de/raumplan/admin/save-position', { data : JSON.stringify(store), contentType : 'application/json', type : 'POST' }) .done(function(data) { if(data == "1"){ alert('Positionen wurden erfolgreich gespeichert'); }else{ alert('Positionen konnten nicht gespeichert werden. ' + data); } }) .fail(function(jqXHR, textStatus, errorThrown) { alert(errorThrown + " " + jqXHR.responseText); }) .always(function(){ $('#position-safe-spinner').addClass('d-none'); }); }