Files
Facilitor/APPL/CAD/InfoBord.asp
Peter Feij 7b4bee8816 FCLT#82642 Teruggefloten door QA: een Aiai is goed genoeg
svn path=/Website/trunk/; revision=64566
2024-05-07 13:38:43 +00:00

574 lines
26 KiB
Plaintext
Raw Blame History

<%@ language="javascript"%>
<% /*
$Revision$
$Id$
File: CAD/infoBord.asp
Description: Toont een verdiepingstekening met verdiepingsnavigator-balk en
presenteer daarin:
x 1) de objecten van gedefinieerde discipline(s)
x 2) of sta toe dat ruimtes worden geselecteerd
x Op de onclick wordt de klik-url van het thema of anders ../pda/reserveringen.asp voor dat object/die ruimte aangeroepen
x Kan o.a. toegepast worden voor Grafisch kiezen "werkplek" als een wp als reserveerbaar object
x is gemodelleerd), maar deze pagina weet zelf niet zoveel van de uiteindelijke toepassing
Parameters:
geb_key optional, gebouw_key of building
floor_key optional, key of floor to be (initially) selected
Either geb_key or floor_key is required (both allowed)
disc_key optional, de discipline voor objecten, leeg voor ruimtes selecteren(?).
discs optional, disciplines waarvan de layers (ook) moeten worden getoond
thema_key optional, default=12, het te tonen kleur thema, -1=geen
themaI optional, default=-1, het te tonen symboolkleurthema, -1=geen
themaW optional, default=-1, het te tonen werkplekkleurthema, -1=geen
label_key optional, default=12, het te tonen label thema, -1=geen
labelI optional, default=-1, het te tonen symboollabelthema, -1=geen
labelW optional, default=-1, het te tonen werkpleklabelthema, -1=geen
fac_usrrap_key optional, default=12, de te tonen rapportage, -1=geen
merk op dat deze kolommen hide_f_alg_gebouw_key en hide_f_alg_verdieping_key moet hebben
floor_rap optional, filter the report of fac_usrrap_key by:
0: filter fac_usrrap_key *altijd* met floor_key van zichtbare plattegrond (default)
1: filter fac_usrrap_key alleen als zichtbare plattegrond anders is dan terugval floor_key
2: filter fac_usrrap_key *nooit* (altijd hele gebouw, dat filteren we wel altijd)
datumfilter optional, date applied to date-aware theme's
bordlabel_key optional, de middels 2d-bordjes te tonen ruimteinfo in 3d tekening (3D-only)
bodyclass optional, extra class die op de <body> wordt gezet. Handig voor css overrules voor een specifiek scherm
hidenav optional, geen verdieping selector tonen (impliceert scherm op deze subverdieping)
showmode optional, 2D or 3D, default=0, 0=automatic (user may toggle), 2=only2d, 3=only3d
antialias optional, default S("fg_antialias")
zoomDWGX,
zoomDWGY optional, centercoordinaten van de tekening
zoomScale optional, zoom in op deel van de verdieping. mm per pixel, begin eens met 40
symbolX,
symbolY optional, coordinaten van een Hier staat u symbool
symbol optional, default urhere.png
wallColor optional, kleur van de zijkant van de muren (default 0xb5b5b5)
ambientLight optional, kleurtoon die over de muren heen gaat (default 0x999999)
directionalLight optional, kleur van de bovenzijde van de muren (default 0xc0c0c0)
Just passing by parameters:
link2res optional, default 1 (passed to pda/reserveringen.asp om een link naar de eigen reservering te tonen(1) of niet (0))
deel2res optional, default 0 (passed to the click-url, maar ER LIJKT NERGENS IETS MEE TE GEBEUREN?
resruimtefilter optional, default 0 (passed to mySLNK2IMG, > 0 = Verwijderde en vervallen ruimten uitsluiten(dan is default 1 logischer?)
restrict2res_disc optional, default [], (passed to pda/reserveringen.asp, res_discipline autorisatie voor (ins_deel)werkplekken)
Context:
Note: Als disc_key meegegeven dan worden alleen de verdiepingen getoond waarop die objecten voorkomen
Bij elke refresh wordt altijd teruggesprongen naar de default verdieping (floor_key).
zoomDWGX etc. is niet per verdieping. Zorg dus dat ze identiek zijn als je er meerdere hebt
Nauwkeurig DWGX DWGY etc bepalen:
- Resize je scherm naar de gewenste grootte en bepaal pixelX (breedte plaatje)
- Zoom in naar het gewenste plattegrond deel
- Rechtsklikken op de tekening voor 'About' SLNDKWF
- Dit toont (x0, y0)-(x1, y1)=sizeX,sizeY: de exacte DWG coordinaten in beeld
- Nu: zoomDWGX = x0+(sizeX/2)
zoomDWGY = y0+(sizeY/2)
zoomScale = sizeX / pixelX
aaen: http://sgf12/facilitor5iwork/appl/cad/showGebouw.asp?geb_key=5404&thema_key=41&label_key=21&floor_key=5563&zoomDWGX=45303&zoomDWGY=19107&zoomScale=0.015
aait: http://sgf12/facilitor5iwork/appl/cad/showGebouw.asp?geb_key=49&thema_key=21&label_key=-1&floor_key=72&zoomDWGX=25190&zoomDWGY=15464&zoomScale=0.02
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="FGII.inc" -->
<%
FCLTHeader.Requires({ js: ["jquery-ui.js", "date.js"]
});
var geb_key = getQParamInt("geb_key", -1);
var disc_key = getQParamInt("disc_key", -1) // De *object* discipline (typisch Bouwkunde)
var restrict2res = getQParamIntArray("restrict2res_disc", []);
var discs = getQParamIntArray("discs", []) // Te tonen disciplines (ondergrond bijvoorbeeld)
var thema_key = getQParamInt("thema_key", S("fg_infobordthema_key")); // In de core is een default thema met key <12> gedefinieerd (cad_v_thema_srtruimtesensor)
if (thema_key == -1) thema_key = S("fg_infobordthema_key"); // alsnog, de code is nog niet bestand tegen themaloos aanroepen
var themai_key = getQParamInt("themai", -1);
var label_key = getQParamInt("label_key", S("fg_infobordlabel_key")); // In de core is een default labelthema met key <12> gedefinieerd (cad_v_label_bezetbareruimtes)
var bordlabel_key = getQParamInt("bordlabel_key", -1);//
var contmode = getQParamInt("contmode", 0); //
var floor_rap = getQParamInt("floor_rap", 0);
var datumfilter = getQParamDate("datumfilter", null);
var bodyclass = getQParamSafe("bodyclass", "");
var floor_key = def_floor_key = getQParamInt("floor_key", -1);
var avail_flrs = getQParamIntArray("avail_flrs", []);
if (geb_key == -1 && floor_key != -1) {
sql = "SELECT alg_gebouw_key FROM alg_verdieping WHERE alg_verdieping_key="+floor_key;
oRs = Oracle.Execute(sql);
geb_key = oRs("alg_gebouw_key").value;
oRs.Close();
}
var hidenav = getQParamInt("hidenav", 0); // optie: toon geen floornavigator
var fac_usrrap_key = getQParamInt("fac_usrrap_key", S("fg_infobordreport_key")); // In de core is een default usrrap (res_v_rap_infobordframe) met key <12> gedefinieerd
var zoomScale = getQParamFloat("zoomScale", -1);
var zoomDWGX = getQParamFloat("zoomDWGX", null);
var zoomDWGY = getQParamFloat("zoomDWGY", null);
var link2res = getQParamInt("link2res", 1);
var deel2res = getQParamInt("deel2res", 0);
var rrfilter = getQParamInt("resruimtefilter", 0);
// floorkey is doorgaans nog niet bekend hier.
//if (floor_key > 0 && getQParamInt("autozoom", 0)== 1 && discs.length)
//{
// var sql = "SELECT MIN(ins_deel_dwgx) xmin, MAX(ins_deel_dwgx) xmax,"
// + " MIN(ins_deel_dwgy) ymin, MAX(ins_deel_dwgy) ymax,"
// + " FROM ins_v_aanwezigdeel, alg_ruimte"
// + " WHERE ins_discipline_key IN (" + discs.join(",") +")"
// + " AND alg_verdieping_key = " + floor_key
// + " AND ins_alg_ruimte_key = ins_alg_ruimte_key"
// + " AND ins_alg_ruimte_type = 'R'";
// __DoLog(sql);
//}
// Voor de 'U staat hier'
// Liever wil ik dat ze het ins_deel ('scherm') tekenen en dan een ins_key meegeven
var symbolX = getQParamFloat("symbolX", null);
var symbolY = getQParamFloat("symbolY", null);
var symbol = getQParam("symbol", null);
// Nieuw
var showmode = getQParamInt("showmode", 0); // 0=automatic (user may toggle), 2=only2d, 3=only3d (mis nog: user may toggle but start with 2d/3d)
var antialias = getQParamInt("antialias", S("fg_antialias"));
var my_cadrechten = user.func_enabled("CAD"); // negeer scope, we kunnen zo maar van verdieping wisselen
var autfunction= "WEB_CADUSE";
var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* verdiepingen
// buildTransitParam met de settings die voor alle verdiepingen gelijk zullen zijn.
var transit = buildTransitParam("symbolX,symbolY,symbol,floor_key,bordlabel_key,werkplek,mode,contmode,nolabel,camx,camy,camz,hpix,vpix,scl,ox,oy,rot,wallColor,ambientLight,directionalLight,labelrot,wallw,wallh,datumfilter,link2res");
var mapper = "3dize.asp?x=1" + transit;
var mapper2D = "../SlnkDWF/ToonIMG.asp?ShowButtons=1" + transit;
if (fac_usrrap_key > -1)
{
// parameters voor de rapportage, typisch de verdieping_key
var params = "&nobuttons=1&bodyclass=rflrscreen"; // ik wil een uniek id tbv css styling
params += "&fclt_f_colname1=hide_f_alg_gebouw_key&fclt_f_colvalue1=" + geb_key;
// rapperBase is zonder floor_key
var rapperBase = "../../appl/fac/fac_usrrap_list.asp?usrrap_key=" + fac_usrrap_key + params;
if (floor_rap==0) // Dan altijd er bij
rapperBase += "&fclt_f_colname2=hide_f_alg_verdieping_key&fclt_f_colvalue2=" + floor_key;
}
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<title><%= L("lcl_facilitor_infobord") %> </title>
<script type="text/javascript">
var floor_key = <%=floor_key%>;
var zoomDWGX = <%=safe.jsfloat(zoomDWGX)%>;
var zoomDWGY = <%=safe.jsfloat(zoomDWGY)%>;
var zoomScale = <%=safe.jsfloat(1 / zoomScale)%>;
var showmode = <%=showmode%>;
var dimension = <%=(showmode == 2 ? 2 : 3)%>;
var autozoomed = false;
function OnFloorChanged(deze, fkey, pdimension)
{
window.dimension = pdimension || window.dimension;
$("input[type=button]").removeClass("selected");
if (deze)
$(deze).addClass("selected");
floor_key = -1; // Eventkes invalid
resetMap();
floor_key = fkey;
window.autozoomed = false;
//myRefresh();
var mapper = window.dimension==2?"<%=safe.jsstring(mapper2D)%>":"<%=safe.jsstring(mapper)%>";
var rapper = "<%=safe.jsstring(rapperBase)%>";
if (floor_key == <%=floor_key%>)
{
mapper += "&showSymbol=1"
}
<% if (floor_rap == 1) { %>
if (floor_key != <%=floor_key%>)
rapper += "&fclt_f_colname2=hide_f_alg_verdieping_key&fclt_f_colvalue2=" + floor_key;
<% } %>
$("#MMap")[0].src = mapper; // Forceer refresh
if ($("#RRap").length)
$("#RRap")[0].src = rapper;
}
/************************************************************\
* We know all we need. Now refresh the image on the right
\************************************************************/
function myRefresh()
{
MMap.SetCustomParameters(getCustomParameters())
if (window.dimension==3)
{
// Eerst een keer het plaatje heel globaal renderen om dwg-info te achterhalen
$.getJSON("../CAD/mySlnk2IMG.asp?AsMap=1&vKey=" + floor_key, { }, function (pSLNKEvent)
{
MMap.gSLNKEvent = pSLNKEvent;
if (window.zoomDWGX === null || window.zoomDWGX === null)
{
window.zoomDWGX = (pSLNKEvent.DWGminX + pSLNKEvent.DWGmaxX) / 2;
window.zoomDWGY = (pSLNKEvent.DWGminY + pSLNKEvent.DWGmaxY) / 2;
}
if (window.zoomScale < 0)
window.zoomScale = Math.min(window.innerWidth / (pSLNKEvent.DWGmaxX - pSLNKEvent.DWGminX),
window.innerHeight / (pSLNKEvent.DWGmaxY - pSLNKEvent.DWGminY));
MMap.zoom2DWG(zoomDWGX, zoomDWGY, zoomScale);
MMap.Refresh(); // Try not to zoom extents
} );
}
else
MMap.Refresh();
}
function to2D()
{
OnFloorChanged(null, floor_key, 2);
}
function to3D()
{
OnFloorChanged(null, floor_key, 3);
}
function getCustomParameters()
{
return "&vKey=" + floor_key +
"&disc_key=<%=disc_key%>" +
"&discs=<%=discs%>" +
"&thema=<%=thema_key%>" +
"&themaI=<%=getQParamInt("themaI", -1)%>" +
"&themaW=<%=getQParamInt("themaW", -1)%>" +
"&label=" + (dimension==2&&<%=label_key%>==-1?<%=bordlabel_key%>:<%=label_key%>) +
"&labelI=<%=getQParamInt("labelI", -1)%>" +
"&labelW=<%=getQParamInt("labelW", -1)%>" +
"&antialias=<%=antialias%>" +
"&contmode=<%=contmode%>" +
"&highlight=" + window.alg_ruimte_key +
"&ins_key=" + window.ins_key // zojuist gereserveerd
+"&deel2res=" + <%=deel2res?deel2res:0%>
+"&resruimtefilter=" + <%=rrfilter?rrfilter:0%>
+"&datumfilter=" + <%= datumfilter?datumfilter.getTime():0 %>;
}
/************************************************************\
* This event gets fired by the SLNKDWF viewer after the user
* clicked on the drawing.
* Note that by now myFindInIMG.asp has already translated
* the room-label or object-label into a ALG_RUIMTE_KEY
* or INS_DEEL_KEY
\************************************************************/
window.ins_key = -1;
window.alg_ruimte_key = -1;
function callback_reserved(json)
{
if (json.cancel)
{
window.ins_key = -1;
window.alg_ruimte_key = -1;
}
myRefresh();
}
function MMap_onClick(SlnkEvent)
{
// Voorkom dat de popup verdwijnt door de reload. Laat wel een timeout staan zodat
// het scherm uiteindelijk zich wel ververst als iemand wegloopt met open popup
if (parent.resetReload)
parent.resetReload();
switch (SlnkEvent.Param)
{
case "onclick":
case "ondblclick":
{
if (SlnkEvent.Key)
{ // Zoek het object/ ruimte
var css_style = (window.innerWidth > 500 ? "min-width: 480px;" : ""); // fix too small modal on wide screen RABO#
if (String(SlnkEvent.Key).match(/^I:/)) // INS_DEEL
{
var intKey = parseInt(SlnkEvent.Key.substring(2),10);
window.ins_key = intKey; // onthouden
window.alg_ruimte_key = -1
var url = (SlnkEvent.click_urlI || "../pda/reserveringen.asp?qrc=1&modal=1&ins_key=") + intKey;
url += "&res_van=" + <%= datumfilter?datumfilter.getTime():0 %>;
url += "&deel2res=" + <%= deel2res %>;
url += "&restrict2res_disc=<%=restrict2res.join(',')%>"
MMap.noAutoResize(true); // rustiger
FcltMgr.openModalDetail(url, "", { callback: callback_reserved, alwaysCallback: true, xnoClose: true, style: css_style });
MMap.noAutoResize(false);
}
if (SlnkEvent.Key > 0 && SlnkEvent.ContourLayer == "SLNK Contours") // RUIMTE
{
var alg_ruimte_key = SlnkEvent.Key;
window.ins_key = -1;
window.alg_ruimte_key = alg_ruimte_key; // onthouden
var url = (SlnkEvent.click_urlR || "../pda/reserveringen.asp?qrc=1&modal=1&alg_ruimte_key=") + alg_ruimte_key;
url += "&res_van=" + <%= datumfilter?datumfilter.getTime():0 %>;
url += "&deel2res=" + <%= deel2res %>;
MMap.noAutoResize(true); // rustiger
FcltMgr.openModalDetail(url, "", { callback: callback_reserved, alwaysCallbackParams: {}, xnoClose: true, style: css_style });
MMap.noAutoResize(false);
}
}
break;
}
}
}
function resetMap()
{
if (!MMap || !MMap.Reset)
return; // Safari: te vroeg
MMap.Reset();
MMap.SetLabelPosition(<%=S("fg_labelPosition")%>);
MMap.SetIMGGenerator("../CAD/mySlnk2IMG.asp");
MMap.SetPaperColor(<%=S("fg_paperColor")%>);
}
function resizeIframes()
{
return; // Hij is toch te laat want 3Dsize heeft al naar innerHeight gekeken
var tabheight = 10; // die is floating $("#theReport").height();
if ($('#MMap').height() != window.innerHeight - tabheight)
{
// $('#MMap').height(window.innerHeight - tabheight);
}
};
var /*global*/ resizeTimerID=null;
function init()
{
// IE11? window.MMap = document.getElementById("MMap");
resizeIframes();
resetMap();
if (floor_key > 0)
myRefresh();
window.onresize = function()
{
if (window.resizeTimerID) clearTimeout(window.resizeTimerID);
window.resizeTimerID = setTimeout(resizeIframes, 100);// use a delay for IE because the resize event fires repeatly
}
<% if (thema_key > 0 || themai_key > 0) { %>
$("#fslegenda").load("legenda.asp?thema=<%=thema_key%>&themai=<%=themai_key%>&scenario_key=0&parentKey="+floor_key+"&mode=0&fulldiscreet=1&showtitle=0&LegendaFilter=L<%= datumfilter?'&datumfilter='+datumfilter.getTime():'' %>");
<% } %>
}
function updateClock()
{
var newDate = new Date();
$('#date').html(toDateString(newDate));
$('#time').html(toTimeString(newDate, true));
}
$(function () {
setInterval( updateClock, 1000);
} );
</script>
</head>
<body id="floorscreen<%=geb_key%>" class="floorscreen <%=bodyclass%>">
<div id='fsmenu'>
<div id='fsnavigation'>
<%
Response.Write("<div id='fslogo'></div>");
sql = "SELECT alg_locatie_omschrijving"
+ " , alg_gebouw_naam"
+ " FROM alg_v_gebouw_gegevens ag"
+ " WHERE ag.alg_gebouw_key = " + geb_key;
var oRs = Oracle.Execute(sql);
Response.Write("<h2 class='floorscreen'>" + safe.html(oRs("alg_locatie_omschrijving").value) + "</h2>");
Response.Write("<h2 class='floorscreen'>" + safe.html(oRs("alg_gebouw_naam").value) + "</h2>");
if (datumfilter)
{
Response.Write("<h2 class='infodatumfilter'>" + toDateString(datumfilter, false, true) + "</h2>");
if (showmode == 0)
{
Response.Write("<button onclick='to2D()'>2D</button'><button onclick='to3D()'>3D</button>");
}
}
oRs.Close();
if (thema_key > 0)
{
sql = "SELECT cad_thema_view, cad_legenda_key"
+ " FROM cad_thema"
+ " WHERE cad_thema_key = " + thema_key;
var oRs = Oracle.Execute(sql);
var thema_view = oRs("cad_thema_view").Value;
var legenda_key = oRs("cad_legenda_key").Value;
oRs.Close();
if (disc_key > 0)
{
var sqlMaxKleur = "SELECT ar.alg_verdieping_key, MAX(thema.waarde) waarde, ti.cad_legendawaarde_rgb, count(*) aantal "
+ " FROM ins_deel id, "
+ " ins_srtdeel isd, "
+ " alg_ruimte ar, "
+ " ( "+ thema_view + ") THEMA, "
+ " cad_legendawaarde TI "
+ " WHERE id.ins_alg_ruimte_key = ar.alg_ruimte_key "
+ " AND id.ins_srtdeel_key = isd.ins_srtdeel_key "
+ " AND ins_deel_verwijder IS NULL "
+ " AND (ins_deel_vervaldatum IS NULL OR ins_deel_vervaldatum > TRUNC(SYSDATE))"
+ " AND ins_deel_parent_key IS NULL "
+ " AND ins_srtdeel_acadsymbol is not null "
+ " AND id.ins_discipline_key = " + disc_key
+ " AND THEMA.ins_deel_key = id.ins_deel_key "
+ " AND thema.waarde >= ti.cad_legendawaarde_value"
+ " AND NOT EXISTS" // geen grotere waarde waar hij onder zou vallen
+ " (SELECT '1' FROM cad_legendawaarde ti2"
+ " WHERE ti2.cad_legendawaarde_value > ti.cad_legendawaarde_value"
+ " AND thema.waarde >= ti2.cad_legendawaarde_value"
+ " AND ti2.cad_legenda_key = " + legenda_key + ")"
+ " AND ti.cad_legenda_key = " + legenda_key
+ " GROUP BY ar.alg_verdieping_key, ti.cad_legendawaarde_rgb, ti.cad_legendawaarde_rgb";
}
else // Ruimte mode
{
var sqlMaxKleur = "SELECT ar.alg_verdieping_key, MAX(thema.waarde) waarde, ti.cad_legendawaarde_rgb, count(*) aantal "
+ " FROM alg_ruimte ar, "
+ " ( "+ thema_view + ") THEMA, "
+ " cad_legendawaarde TI "
+ " WHERE THEMA.alg_ruimte_key = ar.alg_ruimte_key "
+ " AND thema.waarde >= ti.cad_legendawaarde_value"
+ " AND NOT EXISTS"
+ " (SELECT '1' FROM cad_legendawaarde ti2"
+ " WHERE ti2.cad_legendawaarde_value > ti.cad_legendawaarde_value"
+ " AND thema.waarde >= ti2.cad_legendawaarde_value"
+ " AND ti2.cad_legenda_key = " + legenda_key + ")"
+ " AND ti.cad_legenda_key = " + legenda_key
+ " GROUP BY ar.alg_verdieping_key, ti.cad_legendawaarde_rgb, ti.cad_legendawaarde_rgb";
}
} else {
var sqlMaxKleur = "/*TODO indien te ondersteunen*/ SELECT NULL alg_verdieping_key, NULL waarde, NULL cad_legendawaarde_rgb, NULL aantal FROM DUAL";
}
// TODO: Query optimalizeren zodat alleen <20><>n record met de hoogste 'waarde' er uit komen?
// Nu zijn we nog lui en sorteren de hoogste vooraan en negeren in de loop de rest.
sql = "SELECT v.alg_verdieping_key, v.alg_verdieping_code"
+ " , v.alg_verdieping_omschrijving"
+ " , maxkleur.cad_legendawaarde_rgb"
+ " , maxkleur.waarde"
+ " , aantal"
+ " FROM alg_v_aanwezigverdieping v, "
+ " cad_tekening ct," // er moet wel een tekenig voor zijn
+ " (" + sqlMaxKleur + ") maxkleur"
+ " WHERE v.alg_gebouw_key = " + geb_key
+ " AND v.alg_verdieping_key = maxkleur.alg_verdieping_key"
+ " AND ct.alg_verdieping_key = v.alg_verdieping_key";
if (disc_key > 0)
{
sql += " AND EXISTS"
+ " (SELECT ar.alg_verdieping_key"
+ " FROM ins_v_aanwezigdeel idd,"
+ " ins_srtdeel isd,"
+ " alg_ruimte ar"
+ " WHERE idd.ins_discipline_key = " + disc_key
+ " AND idd.ins_srtdeel_key = isd.ins_srtdeel_key"
+ " AND isd.ins_srtdeel_acadsymbol IS NOT NULL"
+ " AND idd.ins_alg_ruimte_type = 'R'"
+ " AND idd.ins_alg_ruimte_key = ar.alg_ruimte_key"
+ " AND ar.alg_verdieping_key = v.alg_verdieping_key"
+ " AND (idd.ins_deel_vervaldatum IS NULL OR idd.ins_deel_vervaldatum > TRUNC(SYSDATE))"
+ ")"
}
if (avail_flrs.length)
sql += " AND v.alg_verdieping_key IN (" + avail_flrs.join(", ") + ")"
sql += " ORDER BY v.alg_verdieping_volgnr, maxkleur.waarde DESC"; // 'Hoogste' waarde vooraan (PF: kleur irrelevant voor volgorde)
var oRs = Oracle.Execute(sql);
Response.Write("<div id='verdiepingen' style='"+(hidenav ? 'display:none': '')+"'>");
var last_floor_key = -1;
var nrfloors = 0;
while (!oRs.Eof)
{
if (last_floor_key == oRs("alg_verdieping_key").Value)
{
oRs.MoveNext();
continue;
}
nrfloors += 1;
var desc = oRs("alg_verdieping_omschrijving").Value;
if (oRs("aantal").Value > 0 && oRs("waarde").Value > 0)
desc += " ("+oRs("aantal").Value+ ")";
Response.Write("\n<input type='button' value='" + safe.htmlattr(desc) + "'"
+ (oRs("alg_verdieping_key").Value == floor_key?" class='selected flrbutton'":"class='flrbutton'")
+ (0 && oRs("cad_legendawaarde_rgb").Value ? " style='background-color:#" + safe.htmlattr(toHexValue(oRs("cad_legendawaarde_rgb").Value)) + "'":"")
+ " onclick='OnFloorChanged(this, "+oRs("alg_verdieping_key").Value+", showmode)'"
+">");
last_floor_key = oRs("alg_verdieping_key").Value;
oRs.MoveNext();
}
oRs.Close()
Response.Write("</div>");
// de default width volgens .flrbutton is 150px. Als er veel verdiepingen zijn wil je comprimeren
// door meer buttons naast elkaar te doen. We gaan uit van 10 button-regels hoogte
if (nrfloors > 20 ) {
%><script>$(".flrbutton").width("38px");</script><%
} else if (nrfloors > 10 ) {
%><script>$(".flrbutton").width("70px");</script><%
}
%>
</div>
<div id='fslegenda'></div>
</div>
<!-- ==========================
HET plaatje
============================ -->
<div id = 'mapCell3D' class="floorscreen">
<iframe id='MMap' name='MMap' src="<%=safe.htmlattr(showmode==2?mapper2D:mapper)%>&showSymbol=1"
frameborder='0' framespacing='0' scrolling='no'
onLoad='init();'
width="100%" height="100%">
</iframe>
</div>
<%
if (fac_usrrap_key > -1)
{
var rapper = rapperBase;
%>
<div id='theReport' class="floorscreen">
<iframe id='RRap' name='RRap' src="<%=safe.htmlattr(rapper)%>"
frameborder='0' framespacing='0' scrolling='no'
onload="FcltMgr.iframeLoaded(this)"
width="100%" height="26px">
</iframe>
</div>
<div id='theClock'>
<span id='date'></span><br>
<span id='time'></span>
</div>
<%
}
%>
</body>
</html>
<% ASPPAGE_END(); %>