Files
Facilitor/APPL/CAD/default.asp
Jos Groot Lipman 0d7de532da AKZA#33670 Contour initieel uit/ uit met behoud van labels
svn path=/Website/trunk/; revision=29156
2016-04-25 09:26:27 +00:00

1553 lines
60 KiB
Plaintext

<%@ language="javascript"%>
<% /*
$Revision$
$Id$
File: CAD/default.asp
Description: Hoofdscherm voor Facilitor Graphics II
Parameters:
mode optional: [MODE_IN] or [MODE_OUT]. Default via fg_startBuiten
loc_key optional locatie key (default eigen werkplek)
scenario_key optional: dan zitten we in PRJ-mode (en impliciet binnen)
floor_key optional (als in scenario_mode)
Context: Geen, wordt geopend in een nieuw window
Note:
*/
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="./tabs.inc" -->
<!-- #include file="FGII.inc" -->
<%
FCLTHeader.Requires({ js: ["jquery-ui.js", "./main.js", "./draganddrop.js"],
css: ["../slnkdwf/slnkdwf.css"]
});
var inoutMode = getQParamInt("mode", S("fg_startBuiten")? MODE_OUT : MODE_IN);
var loc_key = getQParamInt("loc_key", user.alg_locatie_key());
var scenario_key = getQParamInt("scenario_key", 0); // current scenario, 0 voor geen
var concept = getQParamInt("concept", 0) == 1; // concept er naast?
var showcontour = getQParamInt("contour", 1) == 1; // Contour initieel tonen?
var floor_key = getQParamInt("floor_key", user.alg_verdieping_key()); // current floor
if (floor_key > 0)
{
sql = " SELECT g.alg_locatie_key, g.alg_gebouw_key"
+ " FROM alg_verdieping v, alg_gebouw g"
+ " WHERE g.alg_gebouw_key = v.alg_gebouw_key"
+ " AND v.alg_verdieping_key = " + floor_key;
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
loc_key = oRs("alg_locatie_key").value;
this_bld = oRs("alg_gebouw_key").value;
}
}
else
{
this_bld = -1;
}
var my_cadrechten = user.func_enabled("CAD"); // negeer scope, we kunnen zo maar van verdieping wisselen
var autfunction=(scenario_key == 0)? "WEB_CADUSE" : "WEB_PRJBOF";
var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* verdiepingen
cleanup_tempfolder (); // FGII werkt niet zonder schrijfrechten op temp dus
// heb je in ieder geval wel de rechten om op te ruimen
if (scenario_key != 0)
{
var scenario_omschrijving = "";
sql = " SELECT m.mld_melding_omschrijving"
+ " FROM prj_scenario s, mld_melding m"
+ " WHERE s.mld_melding_key = m.mld_melding_key"
+ " AND prj_scenario_key = " + scenario_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
scenario_omschrijving = oRs(0).value;
oRs.Close();
}
// Altijd scrollbar voor lange tabbladen onderin. Voorkom dat
// hij er soms bijkomt en een repaint van het plaatje veroorzaakt.
%>
<html style='overflow-y:scroll'>
<head>
<% FCLTHeader.Generate(); %>
<title><%=(scenario_key == 0)? L("lcl_graphics") : (L("lcl_prj_graphics") + ": " + L("lcl_prj_scenario") + " " + scenario_omschrijving) %> </title>
<script type="text/javascript">
var scenario_key = <%=scenario_key%>;
var floor_key = <%=floor_key%>;
function onScenarioChange(sel)
{
/*global*/scenario_key = sel[sel.selectedIndex].value;
floor_key = $("#verdiepingkey").val();
OnFloorChanged(floor_key, true); // Keep zoom
}
function OnLocationChanged(sel)
{
<% if (inoutMode == MODE_OUT)
{ %>
ter = -1;
loc_key = $("#locatiekey").val();
if (loc_key > 0)
{
$("#terr").load("../Shared/loadTerreinOptions.asp?loc_key=" + loc_key, myRefresh);
}
<% } %>
}
var forceRoom = -1; // dadelijk highlighten (main.js/gotoRoom)
function OnFloorChanged()
{
floor_key = -1; // Eventkes invalid
resetMap();
floor_key = $("#verdiepingkey").val();
if (floor_key > 0)
{
<% if (scenario_key == 0)
{ %>
$("#rooms").load("../Shared/loadRuimteOptions.asp?floor_key=" + floor_key + "&ruimte_key=" + forceRoom, myRefresh);
<% }
else
{ %>
updatePRJRooms(floor_key, scenario_key); // Load the rooms when not loaded yet
<% } %>
}
// else is aanroeper daar zelf verantwoordelijk voor
forceRoom = -1;
RefreshLegenda(); // Deze altijd omdat hij toch onafhankelijk is van de inhoud van het plaatje
}
/************************************************************\
* We know all we need. Now refresh the image on the right
\************************************************************/
function myRefresh()
{ // $("#rooms:option").dblclick(function() { MMap.zoom2DWG(???) });
sDiscsChanged();
<% if (inoutMode == MODE_IN) { %>
myRefreshInside();
<% } else { %>
myRefreshOutside();
<% } %>
}
function getCustomParameters(noVKey)
{
thmSelect = document.getElementById("sThemaIn");
lblSelect = document.getElementById("sLabelIn");
var opts = document.getElementById("sDiscsIn").options;
<% if (inoutMode == MODE_IN) { %>
key = floor_key;
<% } else { %>
key = $("#locatiekey").val();
<% } %>
thmKey = thmSelect[thmSelect.selectedIndex].value;
lblKey = lblSelect[lblSelect.selectedIndex].value;
var keyList = ""
var i;
for(i = 0; i < opts.length; i++)
{
if (opts[i].selected && opts[i].value != "-1")
keyList += "," + opts[i].value;
}
if (keyList != "") keyList = keyList.substring(1);
var c0 = document.getElementById("contour0");
var c1 = document.getElementById("contour1");
var c2 = document.getElementById("contour2");
var contmode = -1; // Welke contour (alt1/alt2) moet ik tonen
if (c0&&c0.checked) contmode = 0;
if (c1&&c1.checked) contmode = 1;
if (c2&&c2.checked) contmode = 2;
<% if (inoutMode == MODE_IN)
{ %>
var wp = document.getElementById("werkplek").checked? 1 : 0;
<% }
else
{ %>
var wp = 0;
<% } %>
var rmList = selectedRoomsList("<%=(inoutMode==MODE_IN)? "rooms" : "terr"%>");
return (noVKey?"":("&vKey=" + key))+
"&gKey=" + $("#gebouwkey").val() + // (voor printen)
"&scenario_key="+scenario_key+
"&thema=" + thmKey +
"&label=" + lblKey +
"&werkplek=" + wp +
"&mode=<%=inoutMode%>"+
"&contmode="+contmode+
(rmList != ""? "&highlight=" + escape(rmList) : "") +
(keyList != ""? "&discs=" + keyList : "");
}
function myRefreshInside()
{
if (floor_key > 0)
{
MMap.SetCustomParameters(getCustomParameters())
MMap.Refresh(false, true); // Try not to zoom extents, wel force
<% if (concept)
{ %>
MMap2.SetCustomParameters(getCustomParameters() + "&concept=1")
MMap2.Refresh(); // Try not to zoom extents
<% } %>
showReport(null);
}
else
{
MMap.SetText("<%=safe.jsstring(L("lcl_fg_select_floor"))%>");
showReport();
}
}
function myRefreshOutside()
{
var loc_key = $("#locatiekey").val();
if (loc_key)
{
MMap.SetCustomParameters(getCustomParameters())
MMap.Refresh(false, true); // Try not to zoom extents, wel force
showReport(null);
}
else
{
MMap.SetText("<%=L("lcl_select_location")%>");
showReport();
}
}
// Gets called by Shared/load_rooms.asp when rooms-listbox has been
// dynamically filled with all rooms on the current floor
function onRoomsLoaded()
{
myRefresh(); // Gaf stack overflow in IE7? Niet meer nodig sinds TUDE#12139 te grote rooms list
}
/************************************************************\
*
\************************************************************/
function MMap_onIMGRefresh()
{
$('#MinMaxBtn').hide(); // Zodat busy.gif zichtbaar
}
function MMap_onMapperLoad(pSLNKEvent)
{
var ob = $('#MinMaxBtn').show(); // Zodat weer zichtbaar
ob.css('left', ($("#mapCell").offset().left + $("#mapCell").width() - ob.outerWidth() -2) + "px");
ob.css('top', ($("#mapCell").offset().top + 2) + "px");
<% if (concept)
{ %>
if (pSLNKEvent.success)
MMap2.zoom2DWG((pSLNKEvent.viewminX+pSLNKEvent.viewmaxX) / 2,
(pSLNKEvent.viewminY+pSLNKEvent.viewmaxY) / 2,
(pSLNKEvent.sizeX) / (pSLNKEvent.viewmaxX - pSLNKEvent.viewminX)
);
<% } %>
}
function MMap_onDblClick()
{
// Liefst willen we 'alles aan buffer toevoegen' maar dat is complexer
}
/************************************************************\
* Gets fired after the user drops something on the drawing.
* Enabled in function EnableDragAndDrop
\************************************************************/
function MMap_onDrop(SlnkEvent)
{
dragAndDropNotify(SlnkEvent);
}
// notifyDrop is de functie die aangeroepen wordt als de drop voltooid is
// html is wat je daadwerkelijk kunt droppen
function EnableDragAndDrop(notifyDrop, html)
{
dragAndDropNotify = notifyDrop;
MMap.EnableDragAndDrop(html);
}
// Pas een symbool (ins_deel of prs_werkplek)(via Ajax) in de database aan
function ChangeSymbol(symbolKey, params)
{
if (symbolKey.match(/^I:/)) // INS_DEEL
{
var url = "./ins_change.asp?deel_key=" + symbolKey.substring(2);
}
else if (symbolKey.match(/^P:/)) // PRJ_DEEL
{
var url = "./ins_change.asp?deel_key=" + symbolKey.substring(2);
}
else if (symbolKey.match(/^IW:/)) // WERKPLEK gebonden INS_DEEL
{
var url = "./ins_change.asp?wpdeel=1&deel_key=" + symbolKey.substring(3);
}
else if (symbolKey.match(/^W:/)) // PRS_WERKPLEK
{
var url = "./wp_change.asp?wp_key=" + symbolKey.substring(2);
}
else
return; // Zeer vreemd
url += "&floor=" + floor_key;
url += "&scenario_key=" + scenario_key;
url += params;
var data = {};
<% protectRequest.dataToken("data"); %>
$.post(url, data, FcltCallbackAndThen(myRefresh), "json");
}
function DoMoveSymbol(deelKey, orgX, orgY, dwgX, dwgY, lblContour)
{
if (true || confirm("Object ("+deelKey+") verplaatsen naar: " + dwgX + "," + dwgY + "?"))
{
var params;
if (orgX)
{
params = "&newX=" + dwgX + "&newY=" + dwgY;
params += "&orgX=" + orgX + "&orgY=" + orgY;
params += "&Contour=" + lblContour;
}
else
params = "&clearXY=1"
ChangeSymbol(deelKey, params)
}
}
function RemoveSymbol(deelKey)
{
if (confirm(L("lcl_obj_del_confirm")))
{
ChangeSymbol(deelKey, "&delete=1")
}
}
var _symbolKey; // wordt gezet in MMap_onPickcontextmenu
function RotateSymbol(symbolKey, angle)
{
if (typeof angle == "undefined")
{
angle = prompt('Geef hoek (0-359)', '0');
if (angle && !isNaN(parseInt(angle)))
ChangeSymbol(symbolKey, "&rot=" + parseInt(angle));
}
else
ChangeSymbol(symbolKey, "&deltarot=" + parseInt(angle));
}
function ScaleSymbol(angle)
{
var scl = prompt('Geef schaal', '1.0');
if (scl && !isNaN(parseFloat(scl)))
ChangeSymbol(_symbolKey, "&scale=" + parseFloat(scl));
}
function AlignSymbol(evt)
{
var params = "&AutoAlign=1" + getCustomParameters();
params += "&findX=" + PickEvtX + "&findY=" + PickEvtY;
params += MMap.qryShow;
ChangeSymbol(_symbolKey, params);
}
// Gebruiker heeft 'eigenschappen' in het contextmenu gekozen.
function showSymbol(SlnkEvent)
{
SlnkEvent = SlnkEvent || {};
var intKey = -1;
if (scenario_key > 0)
{
// TODO: Hier willen we eigenlijk ins_info.asp van het originele symbool tonen
alert("Niet in scenario mode");
return intKey;
}
if (_symbolKey.match(/^IW:/)) // INS_DEEL aan werkplek
{
intKey = _symbolKey.substring(3);
if (SlnkEvent.click_urlI)
FcltMgr.openModalDetail(SlnkEvent.click_urlI + intKey, "<%=L('lcl_shared_object')%>", { callback: myRefresh, alwaysCallback: true });
else
FcltMgr.openDetail("appl/ins/ins_deel.asp?urole=bo&ins_key=" + intKey);
}
if (_symbolKey.match(/^I:/)) // INS_DEEL aan ruimte
{
intKey = _symbolKey.substring(2);
if (SlnkEvent.click_urlI)
FcltMgr.openModalDetail(SlnkEvent.click_urlI + intKey, "<%=L('lcl_shared_object')%>", { callback: myRefresh, alwaysCallback: true });
else
FcltMgr.openDetail("appl/ins/ins_deel.asp?urole=bo&ins_key=" + intKey);
}
if (_symbolKey.match(/^W:/)) // PRS of PRJ_WERKPLEK
{
intKey = _symbolKey.substring(2);
if (SlnkEvent.click_urlW)
FcltMgr.openModalDetail(SlnkEvent.click_urlW + intKey, "<%=L('lcl_workspace')%>: " + SlnkEvent.ContourLabel, { callback: myRefresh, alwaysCallback: true });
else
{
<% if (S("prs_werkplek_implicit") == 0) //Impliciet FLEX ook
{ %>
FcltMgr.openDetail("appl/alg/alg_wp.asp?key=" + intKey);
<% }
else
{ %>
if (window._wp_type == 1) // Impliciet flex
FcltMgr.openDetail("appl/alg/alg_wp.asp?key=" + intKey);
else
{
var url = "../prs/prs_edit_perslidwerkplek.asp?wp_key=" + intKey;
FcltMgr.openModalDetail(url, "<%=L("lcl_change")%>", {callback: myRefresh });
}
<% } %>
}
}
return intKey;
}
/************************************************************\
* 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
\************************************************************/
function MMap_onClick(SlnkEvent)
{ // alert("Geklikt op dwgXY=" + SlnkEvent.dwgX + "," + SlnkEvent.dwgY +
// " \nik denk ruimte " + SlnkEvent.ContourKey + " op laag: " + SlnkEvent.ContourLayer +
// " \nof object " + SlnkEvent.TextLabel + " op laag: " + SlnkEvent.TextLayer +
// " \nmet ruimte/object key=" + SlnkEvent.Key)
switch (SlnkEvent.Param)
{
case "onclick":
case "ondblclick":
{
if (SlnkEvent.Key &&
(SlnkEvent.TextLabel != "" ||
SlnkEvent.ContourLayer == "SLNK Symbols"))
{ // Zoek het object of de werkplek (die staan ook op Symbols)
window._symbolKey = SlnkEvent.Key; // Onthouden
window._wp_type = SlnkEvent.wp_type; // Onthouden
var intKey = showSymbol(SlnkEvent); // Hetzelfde als bij 'Eigenschappen' kiezen in de context
var wp_key = -1;
if (SlnkEvent.Key.match(/^W:/)) // WERKPLEK
{
wp_key = intKey;
intKey = "";
}
// naar de tabjes doorgeven, bijvoorbeeld PRJ werkplek symbool.
showReport(intKey, wp_key);
}
else // Op ruimte geklikt
{ // buiten tekening klikken wist highlight if (SlnkEvent.ContourKey != "")
if (SlnkEvent.click_urlR && SlnkEvent.Key)
{
FcltMgr.openModalDetail(SlnkEvent.click_urlR + SlnkEvent.Key, "<%=L("lcl_room")%>: " +SlnkEvent.ContourLabel, { callback: myRefresh, alwaysCallback: true })
}
else
{
var sl = document.getElementById("<%=inoutMode == MODE_IN? "rooms" : "terr"%>");
if (!SlnkEvent.event.ctrlKey) // Allow Ctrl key for Multi-select
sl.selectedIndex = -1;
var ob = sl.options;
found = false;
for (i = 0; i<ob.length; i++)
{
if (ob[i].value == SlnkEvent.Key)
{
ob[i].selected = true;
}
}
myRefresh(); // (un)highlight selected room
}
}
break;
}
case "ONMOVE":
{
if (SlnkEvent.fromKey != -1 && SlnkEvent.fromDwgX) // Nieuwe plek
{
//if (SlnkEvent.ContourLayer != 'SLNK Contours')
// if (!confirm("Buiten ruimte geplaatst. Doorgaan?"))
// return;
DoMoveSymbol(SlnkEvent.fromKey,
SlnkEvent.fromDwgX, SlnkEvent.fromDwgY,
SlnkEvent.dwgX, SlnkEvent.dwgY, SlnkEvent.ContourKey)
}
break;
}
case "ONCOPY": // Dit kan een symbool zijn of een werkplek
{
newSymbol(SlnkEvent, true); // isCopy
break;
}
case "ONROTATE":
{
if (SlnkEvent.fromKey != -1 && SlnkEvent.fromDwgX) // Nieuwe rotatie
{
var angle = Math.atan((SlnkEvent.dwgY - SlnkEvent.fromDwgY) / (SlnkEvent.dwgX - SlnkEvent.fromDwgX));
var rot = Math.round(0.5 + (360 + angle / 3.1415926 * 180) % 360);
if (SlnkEvent.fromDwgX > SlnkEvent.dwgX)
rot = (rot + 180) % 360;
ChangeSymbol(SlnkEvent.fromKey, "&deltarot=" + rot)
}
break;
}
}
}
/************************************************************\
* Wordt aangeroepen als gebruiker rechts klikt op pickboxje
* van een symbool
* myEvent.symbolKey
* myEvent.event
\************************************************************/
function MMap_onPickcontextmenu(myEvent)
{
_symbolKey = myEvent.symbolKey; // Onthouden
// TODO: Context menu afhankelijk maken van autorisatie en soort geklikt object
PickEvtX = myEvent.event.clientX;
PickEvtY = myEvent.event.clientY;
MMap.showContextMenu(myEvent.event, document.getElementById("PickcontextMenu"));
}
/************************************************************\
* Gets fired after the user presses Print.
\************************************************************/
function MMap_onPrint_callback(data)
{
if (data.cancel) return false; // cancel
if (data.style == "SLNKDWF")
{
MMap.PrintDialog();
return; // Done
}
// Dan maar advanced
var url = "../cad/PrintFG.asp";
url += "?XSLmode=" + data.style;
url += getCustomParameters();
var pngURL = MMap.GetPrintURL(true); // true for current zoom
if (data.allFloor)
{
MMap.SetCustomParameters(getCustomParameters(true)); // Even zonder vKey
var pngURL = MMap.GetPrintURL(true); // true for current zoom
MMap.SetCustomParameters(getCustomParameters());
url += "&allFloor=1";
data.DWGscale = -1; // Altijd FIT
}
if (data.DWGscale == 0) // current
{
data.DWGscale = MMap.gSLNKEvent.scaleY;
}
else if (data.DWGscale == -1) // Maximaal
{
pngURL += "&maximize=1"; // omdat anders -1 een aanduiding is van DWGSchaal 1:1
}
else if (data.DWGscale > 0) // factor gekozen in select-box
{
data.DWGscale = -data.DWGscale; // speel vals: negatief betekent: paperScale (ipv. pixelScale)
}
url += "&DWGscale=" + data.DWGscale;
url += "&pngURL=" + escape(pngURL);
var fwnd = window.open(url);
fwnd.focus();
}
function MMap_onPrint(SlnkEvent)
{
<% if (inoutMode == MODE_OUT)
{ %>
return true; // Altijd alleen de default 'Flexibel' optie
<% }
else
{ %>
var sFeatures="dialogHeight:400px;dialogWidth:600px;status=no";
var url="../cad/printWhat.asp?x=x"+getCustomParameters();
FcltMgr.openModalDetail(url, "<%=L("lcl_print")%>",
{ callback: MMap_onPrint_callback }
);
<% } %>
}
function sThemeChanged()
{
myRefresh(); // Plaatje aanpassen
RefreshLegenda(true); // Legenda aanpassen en in beeld brengen
}
// Updatable thema's kunnen filter uitbreiden
var LegendaFilter = "V"; // Default op verdieping
function onLegendaFilterChange(niveau)
{
LegendaFilter = niveau;
RefreshLegenda();
}
// De legenda is afhankelijk van wat er daadwerkelijk op de verdieping (database)
// voorkomt, daarom wordt hij heel vaak gerefreshed
function RefreshLegenda(scrollintoview)
{
<% if (inoutMode == MODE_IN)
{ %>
pSelect = "verdiepingkey"
<% }
else
{ %>
pSelect = "locatiekey"
<% } %>
sThema = document.getElementById("sThemaIn") // Listboxje
var thmKey = sThema[sThema.selectedIndex].value;
document.getElementById("fLegenda").innerHTML="";
if (thmKey > 0)
{
var pKey = parseInt($("#"+pSelect).val());
if (pKey > 0)
$("#fLegenda").load(
"Legenda.asp?thema=" + thmKey +
"&scenario_key=" + scenario_key +
"&parentKey=" + pKey + "&mode=<%=inoutMode%>" +
"&LegendaFilter="+LegendaFilter,
scrollintoview?function () { scrollview($("#fLegenda"));}:null
)
}
}
function sLabelChanged(newLabel)
{
var thmKey = newLabel[newLabel.selectedIndex].value;
if (scenario_key == 0)
{
var search = document.getElementById("SearchLbl");
search.style.display=(thmKey <= 0)? "none" : ""; // Geen label? Niet zoeken
}
myRefresh();
}
function sDiscsChanged()
{ // Werkt de lijst met toevoeg-disciplines bij
<% if (S("fg_ins_symbols"))
{ %>
$("#dinsAdd").load("LoadInsNew.asp?x=x" + getCustomParameters(),
function(respText) {
var empty = $(respText).find("img").length == 0; // Beetje illegaal
$("tr#tinsAdd").toggle(!empty);
});
$("#dinsLegend").load("LoadInsLegenda.asp?x=x" + getCustomParameters(),
function(respText) {
var empty = $(respText).find("img").length == 0; // Beetje illegaal
$("tr#tinsLegend").toggle(!empty);
});
<% } %>
}
// Toon de locatie mbv Google Maps
function openLocGMaps()
{
var loc_key = $("#locatiekey").val();
if (loc_key >= 0)
{
fwnd = window.open("../cad/ShowGoogleMap.asp?loc_key=" + loc_key, "FGShow",
"width=640,height=480,directories=no,location=no,menubar=no,"
+ "resizable=yes,status=no,titlebar=yes,toolbar=no");
fwnd.focus()
return;
}
}
// Toon het gebouw mbv Google Maps
function openBldGMaps()
{
var bld_key = document.getElementById("gebouwkey");
if (bld_key)
{
fwnd = window.open("../cad/ShowGoogleMap.asp?bld_key=" + bld_key, 'FGShow',
"width=640,height=480,directories=no,location=no,menubar=no,"
+ "resizable=yes,status=no,titlebar=yes,toolbar=no");
fwnd.focus()
return;
}
}
function toggleContour(cnt)
{
if (cnt.checked) // Mogelijk anderen uitzetten
{
var c0 = document.getElementById("contour0");
var c1 = document.getElementById("contour1");
var c2 = document.getElementById("contour2");
if (cnt.id == "contour0")
{
if (c1) c1.checked=false;
if (c2) c2.checked=false;
}
else if (cnt.id == "contour1")
{
if (c0) c0.checked=false;
if (c2) c2.checked=false;
}
else // contour2
{
if (c0) c0.checked=false;
if (c1) c1.checked=false;
}
}
myRefresh();
}
// Zorg dat je met Enter de zoekveldjes kunt activeren
function onEnter(evt, fn)
{
if (!evt) evt = window.event;
if (evt.keyCode == 13)
{
fn();
return false; // Voorkom echte submit van het formulier
}
}
// Zoek naar een objectcode die de gebruiker heeft ingevoerd
function doSearchObj()
{
var zoekcode = document.getElementById("SearchCode").value;
if (zoekcode == "") return false;
var loc = $("#locatiekey").val();
var url="../cad/obj_search.asp?objCode="+escape(zoekcode) + "&loc_key=" + loc;
FcltMgr.openModalDetail(url, "<%= L("lcl_search") %> " + escape(zoekcode) + "%",
{ callback: function (data)
{
gotoRoom(data, data.disc_key);
}
}
)
}
// Zoek naar een label code die de gebruiker heeft ingevoerd
// Er moet/zal een label thema aan staan
function doSearchLbl()
{
var lblSelect = document.getElementById("sLabelIn");
var lblKey = lblSelect[lblSelect.selectedIndex].value;
var zoekcode = document.getElementById("SearchLbl").value;
var loc = $("#locatiekey").val();
var url="../cad/lbl_search.asp?lblCode="+escape(zoekcode)+"&loc_key=" + loc + "&label=" + lblKey
FcltMgr.openModalDetail(url, "<%= L("lcl_search") %> " + escape(zoekcode) + "%",
{ callback: function (data)
{
gotoRoom(data);
}
}
)
}
function showReport(obj_key, wp_key)
{
var tabParam = (obj_key? "obj=" + obj_key : "dummy=")
+ (wp_key? "&wp_key=" + wp_key : "")
+ getCustomParameters();
tabSetParam(tabParam);
tabRefresh();
}
function onFullScreen(evt)
{
FcltMgr.stopPropagation(evt);
if (evt.ctrlKey)
var url = "./InfoBord.asp?floor_key=" + floor_key+getCustomParameters();
else
var url = "./maximize.asp?x=x" + getCustomParameters();
var wnd = window.open(url,'FGShow',
"directories=no,location=no,menubar=no,"
+ "resizable=yes,status=no,titlebar=yes,toolbar=no");
wnd.focus();
}
function scrollview($elm)
{
var navdiv = $('#navigationCell');
var top = $elm.position().top + navdiv.scrollTop();
var bottom = top + $elm.height();
if (bottom > navdiv.height() + navdiv.scrollTop())
navdiv.scrollTop(Math.min(top, bottom - navdiv.height() + 5));
}
// Open/dicht klappen blokje
function toggleFG(elm, idList)
{
$(elm).toggleClass("openFG")
$(elm).toggleClass("closedFG")
var idl = idList.split(",");
for (var i = 0; i < idl.length; i++)
{
$("#"+idl[i]).toggle();
var $lastelm = $("#"+idl[i]);
}
if ($(elm).hasClass("openFG"))
{ // Probeer lastelm in beeld te brengen
scrollview($lastelm);
}
}
function resetMap()
{
if (!MMap || !MMap.Reset)
return; // Safari: te vroeg
MMap.Reset();
MMap.SetLabelPosition(<%=S("fg_labelPosition")%>);
MMap.SetIMGGenerator("../cad/mySlnk2IMG.asp");
// Door de volgende regel kunnen symbolen versleept worden
MMap.SetKeyToSymbol("../cad/mykeyToSymbol.asp");
MMap.SetPaperColor(<%=S("fg_paperColor")%>);
MMap.SetStyleSheet("<%=custpath%>/cust.css");
if ($('#MMap2').length)
{
MMap2.Reset();
MMap2.SetLabelPosition(<%=S("fg_labelPosition")%>);
MMap2.SetIMGGenerator("../cad/mySlnk2IMG.asp");
MMap2.SetPaperColor(<%=S("fg_paperColorCpt")%>);
MMap2.SetStyleSheet("<%=custpath%>/cust.css");
}
}
// Wordt automagisch aangeroepen als tabje wordt geactiveerd
var isVisible = true;
function fcltontabshow()
{
isVisible = true;
}
function fcltontabhide()
{
isVisible = false;
}
var pctImg = 65; // vertical Percentage for image
function resizeIframes()
{
if (!isVisible)
return; // Don't bother
var height = parseInt(document.documentElement.clientHeight);
var td2=document.getElementById("theTabs");
if (td2.style.marginLeft == "")
{
var height2 = Math.floor(height * pctImg / 100);
}
else
{
var height2 = height; // Want de tabjes zijn naar rechts geschoven
}
if (document.getElementById('MMap').style.height != Math.floor(height * pctImg / 100) + "px")
{
$('#MMap').css('height', Math.floor(height * pctImg / 100) + "px");
$('#mapCell').css('height', Math.floor(height * pctImg / 100) + "px");
}
$('#navigationCell').height(height2 - 1);
$("#fgmenutoggler").css("top", $('#MMap').height() - $("#fgmenutoggler").outerHeight() - 3 + "px");
if ($("#fgmenutoggler").hasClass("collapsed"))
$("#fgmenutoggler").css("left", 0);
else
$("#fgmenutoggler").css("left", $("#navigationCell").width() - $("#fgmenutoggler").width() + 2);
$("#fgtabtoggler").css('top' , $('#MMap').height() - (window.pctImg == 100?$("#fgtabtoggler").height():0) + "px");
$("#fgtabtoggler").css('left', $(window).width() - $("#fgtabtoggler").width() - 8 + "px");
resizetabIframe();
};
$(function () { resizeIframes(); });
var needInit = <%= concept?2:1 %>
function init()
{
needInit--;
if (needInit > 0)
return; // concept afwachten
var defOn = $("#sDiscsIn>option").filter(function()
{
return $(this).attr("defaultOn")==4 || $(this).attr("defaultOn")==8;
});
if (defOn.length)
{
defOn.prop("selected", true); // moet nog even gebeuren
$("#sDiscsIn>option[value=-1]").prop("selected", false); // die kan dan uit
}
OnLocationChanged(document.getElementById("loc"));
<% if (floor_key>0) { %>
OnFloorChanged(); // Vullen listbox ruimte
<% } %>
// eerste keer vullen legenda
sDiscsChanged(); // Vullen legenda en 'toevoeg' listbox
draginit();
var timerID=null;
window.onresize = function()
{
if (timerID) clearTimeout(timerID);
timerID = setTimeout(resizeIframes, 100);// use a delay for IE because the resize event fires repeatly
}
fcltontabhide(); // IE8: Eerst fgmenutoggler inklappen...
resizeIframes();
fcltontabshow(); // IE8: en nu weer zichtbaar. Dan klopt de hoogte ook weer.
resetMap();
// Komt vanzelf? myRefresh();
}
// start Symbolen draggen vanuit menu. Zie LoadInsNew.asp
// variant op draganddrop.js/dragstart
// Wij willen bij het starten van het draggen een ander (op schaal) symbool gebruiken
// bronInfo { type:"W" } voor werkplekken,
// { type: "I", key: 1234") ins_srtdeel_key
// { type: "L", key: 1234") ins_legendawaarde_key
function mydragstart(evt, imgHTML, bronInfo)
{
/* global */ naviTop = $("#navigationCell").scrollTop();
if (!evt) evt=window.event;
var elmSymbol = document.getElementById("dragSymbol");
elmSymbol.innerHTML=imgHTML;
elmSymbol.style.display = 'block';
elmSymbol.setAttribute("bronInfoType", bronInfo.type);
elmSymbol.setAttribute("bronInfoKey", bronInfo.key);
dragAndDropNotify = notifyDrop;
dragapproved=true;
dragElement=elmSymbol;
temp1=evt.clientX;
temp2=evt.clientY;
dragStartX=evt.clientX;
dragStartY=evt.clientY;
dragmove(evt);
}
// Start draggen van een nieuw INS_DEEL
function Reposition(elmSymb)
{
elmSymb.style.top = (- (elmSymb.naturalHeight||elmSymb.height) / 2) + "px";
elmSymb.style.left = (- (elmSymb.naturalWidth||elmSymb.width) / 2) + "px";
}
function mydragstartINS(evt, srtdeel_key)
{
// Door de Reposition truc centreert het symbool rond de cursor.
// Dat is niet 100% correct want eigenlijk zouden we rond het zwaartepunt van de symboolcontour moeten centreren
var imgHTML = "<img style='position:absolute;top:-40px;left:-40px' onload='if (parent.Reposition) parent.Reposition(this)'";
imgHTML+= " src =\"../cad/mysymbol.asp?paperColor="+MMap.gSLNKEvent.paperColor+"&srtdeel="+srtdeel_key+"&sdwgScale=" + MMap.gSLNKEvent.scaleY + "\"></img>";
mydragstart(evt, imgHTML, { type:"I", key:srtdeel_key });
}
// Start draggen van een nieuwe werkplek
function mydragstartWP(evt)
{
var imgHTML = "<img style='position:absolute;top:-10px;left:-10px' onload='if (parent.Reposition) parent.Reposition(this)'";
imgHTML+= " src =\"../cad/myWerkplek.asp?paperColor="+MMap.gSLNKEvent.paperColor+"&sdwgScale=" + MMap.gSLNKEvent.scaleY + "\"></img>";
mydragstart(evt, imgHTML, { type:"W" });
}
// Start draggen van een legendawaarde
function mydragstartLegenda(evt, kleur, waarde)
{
var imgHTML = "<div style='position:absolute;top:-10px;left:-10px;border:1px solid black;width:16px;height:16px'>"
+ " <div style='border:8px solid #"+kleur+";line-height:0px;font-size:0px;'>&nbsp;</div>"
+ "</div>"
mydragstart(evt, imgHTML, { type: "L", key:waarde });
}
function selectLegendaCallback(data)
{
var i, j;
var sl = document.getElementById("<%=inoutMode == MODE_IN? "rooms" : "terr"%>");
sl.selectedIndex = -1; // leeg beginnen
var ob = sl.options;
for (i in data.keys)
{
for (j = 0; j<ob.length; j++)
{
if (ob[j].value == data.keys[i])
{
ob[j].selected = true;
}
}
}
myRefresh()
}
// Geklikt op een legendawaarde tekst. Highlight bijbehorende ruimtes
function selectfromLegenda(evt, tekst)
{
//alert("Geklikt op 'kleur': {0}, tijd om die te highlighten".format(tekst));
var url = "cad_selectbylegend.asp?legenddesc=" + escape(tekst);
url += getCustomParameters();
$.post(url, {}, FcltCallbackAndThen(selectLegendaCallback), "json");
}
// Wordt aangeroepen als we boven het plaatje komen met ons dragobject
function drag_onMouseOut(dragElement, evt)
{
EnableDragAndDrop(notifyDrop, dragElement.innerHTML);
}
// Wordt aangeroepen als we klaar zijn met draggen
function drag_onDragEnd(dragElement, evt)
{ // 5.2.1 Met FireFox komen we hier nooit?
var elmSymbol = document.getElementById("dragSymbol");
elmSymbol.style.display = 'none';
$("#navigationCell").scrollTop(naviTop);
if (!evt) evt=window.event;
MMap.doDrop(evt, evt.clientX - $("#mapCell").offset().left, evt.clientY - $("#mapCell").offset().top);
}
// Callback functie: er is iets gedropt op het plaatje
// (een symbool of werkplek vanuit de legenda)
function notifyDrop(SlnkEvent)
{
var ruimteKey = SlnkEvent.Key;
if (!ruimteKey)
{
// niet op herkenbare ruimte gedropt
return;
}
if (dragElement.getAttribute("bronInfoType") == "L") // Legendawaarde
{
var ruimteKey = SlnkEvent.Key; // TODO: oppassen voor droppen op WP's
var url = "legenda_create.asp?room_key=" + ruimteKey; // gedropt op ruimte
url += "&lwkey="+dragElement.getAttribute("bronInfoKey");
if (SlnkEvent.event.shiftKey)
url+="&addmode=1"; // Toevoegen aan de ruimte ipv vervangen
url += getCustomParameters(); // Geeft ook mooi thema-key mee
var data = {};
<% protectRequest.dataToken("data"); %>
$.post(url, data, FcltCallbackAndThen(myRefresh), "json");
}
else
newSymbol(SlnkEvent, false); // !isCopy, isMove dus
dragapproved=false;
dragElement.style.display="none";
document.onmousemove=null;
}
// Kopieer een symbool of werkplek vanuit de tekening (draggen en dan shift indrukken)
// Of maak een nieuw symbool of werkplek aan (draggen vanuit navigate pane)
// symbolen kunnen vervolgens weer gedropt zijn op een werkplek
// isCopy is true voor kopie (vanuit de tekening) en false voor draggen vanuit legenda
// globale dragElement.bronInfo is gezet en daar zien we het onderscheid aan
function newSymbol(SlnkEvent, isCopy)
{
var ruimteKey = SlnkEvent.Key;
if (!ruimteKey || (SlnkEvent.ContourLayer != "SLNK Contours" && !ruimteKey.match(/^W:/)))
{
alert(L("lcl_fg_obj_firstnew")); // Eerst in ruimte of op werkplek
return;
}
var dwgX = SlnkEvent.dwgX;
var dwgY = SlnkEvent.dwgY;
var loc = $("#locatiekey").val();
if (isCopy)
{
if (SlnkEvent.fromKey.match(/^W:/))
var url= "wp_create.asp?wp_key=" + SlnkEvent.fromKey.substring(2);
else
var url= "ins_create.asp?deel_key=" + SlnkEvent.fromKey;
}
else
{
if (dragElement.getAttribute("bronInfoType") == "W")
var url= "wp_create.asp?x=x";
else
var url= "ins_create.asp?srtdeel_key=" + dragElement.getAttribute("bronInfoKey");
}
url += "&loc_key=" + loc + getCustomParameters();
// Werkplek is nog niet vertaald door mySlnk2IMG.asp/myFindKeys()
if (SlnkEvent.ContourKey.match(/^W:/))
url += "&wp_key="+SlnkEvent.ContourKey.substring(2); // gedropt op werkplek
else
url += "&room_key="+ruimteKey; // gedropt op ruimte
if (!SlnkEvent.event.ctrlKey)
url += "&dwgX="+dwgX+"&dwgY="+dwgY;
var data = {};
<% protectRequest.dataToken("data"); %>
$.post(url, data, FcltCallbackAndThen(myRefresh), "json")
}
function toggleLayout(elm)
{
$(elm).toggleClass("collapsed");
$("#navigationCell").toggleClass("collapsed");
if ($("#navigationCell").hasClass("collapsed"))
$("#mapCell").css("margin-left", 0);
else
$("#mapCell").css("margin-left", "");
resizeIframes();
}
function toggleTabLayout(elm)
{
$(elm).toggleClass("collapsed");
window.pctImg = window.pctImg == 65?100:65;
resizeIframes();
}
</script>
</head>
<body>
<div id="dragSymbol" style="display:none;position:absolute;z-index:1;">Hier komt dragsymbool</div>
<div id="PickcontextMenu" class="slnkmenu" style="display:none">
<div class="menuItem" style="margin-top:5px" monClick="parent.RotateSymbol(parent._symbolKey,-90)">Roteer rechts</div>
<div class="menuItem" monClick="parent.RotateSymbol(parent._symbolKey,90)">Roteer links</div>
<div class="menuItem" monClick="parent.RotateSymbol(parent._symbolKey,180)">Roteer 180</div>
<div class="menuItem" monClick="parent.RotateSymbol(parent._symbolKey,0)">Roteer rechtop</div>
<div class="menuItem" monClick="parent.RotateSymbol(parent._symbolKey)">Roteer vrij</div>
<div class="menuItem" monClick="parent.AlignSymbol(event)">Uitlijnen met muur</div>
<hr>
<div class="menuItem" monClick="parent.ScaleSymbol()">Schaal</div>
<hr>
<div class="menuItem" monClick="parent.DoMoveSymbol(parent._symbolKey, null)">Standaard positie</div>
<div class="menuItem" monClick="parent.RemoveSymbol(parent._symbolKey)"><%=L("lcl_delete")%></div>
<hr>
<div class="menuItem" style="margin-bottom:5px" monClick="parent.showSymbol()">Eigenschappen</div>
</div>
<div id='navigationCell'>
<table cellpadding=0 cellspacing=0>
<!-- ==========================
SCENARIOS
============================ -->
<% if (scenario_key > 0)
{ %>
<tr>
<td valign=top align="left" id=scenario_help><label><%=L("lcl_prj_scenario")%>:</label></td>
</tr>
<tr>
<td>
<% // We tonen hier de scenarios die bij dezelfde melding horen, alternatieven voor dezelfde actie dus.
sql = "SELECT prj_scenario_key, prj_scenario_omschrijving FROM prj_scenario "
+ " WHERE mld_melding_key = "
+ " (SELECT mld_melding_key FROM prj_scenario"
+ " WHERE prj_scenario_key = " + scenario_key + ")"
+ " OR (prj_scenario_key = " + scenario_key + " AND mld_melding_key IS NULL)"
+ " ORDER BY 2"
FCLTselector("scenario",
sql,
{ initKey: scenario_key,
onChange: "onScenarioChange(this)"
});
%>
</td>
</tr>
<% } %>
<!-- ==========================
LOKATIES
============================ -->
<tr>
<td class="fixedFG"><% =L("lcl_fg_navigator")%></td>
</tr><tr><td>
<%
FCLTplaatsselector(authparams.ALGreadlevel, {no_table: true,
xcompact: true,
nolabel: true,
locatiekey: loc_key,
gebouwkey: this_bld,
verdiepingkey: floor_key,
startlevel: 2, // Locatie
autoselect: true,
filtercode: "CAD",
moreinfo: true,
eindlevel: inoutMode == MODE_IN? 4 : 2, // Verdieping of locatie
onLocChange: "OnLocationChanged()",
onVerChange: "OnFloorChanged()"
});
%></td></tr>
<% if (inoutMode == MODE_IN)
{
// Hebben ik schrijfrechten op werkplekken?
// We negeren nog even verdieping, dat controleert het wp_create save script wel.
var sql = "SELECT MIN(fac_gebruiker_alg_level_write) lvl"
+ " FROM fac_v_webgebruiker w, fac_functie f"
+ " WHERE w.fac_functie_key = f.fac_functie_key "
+ " AND w.prs_perslid_key = " + user_key
+ " AND fac_functie_code = 'WEB_PRSBOF'";
var oRs = Oracle.Execute(sql);
var canWriteWP = !oRs.Eof && oRs("lvl").Value < 9;
oRs.Close();
%>
<!-- ==========================
RUIMTES
============================ -->
<tr class="openFG" id="rooms_help" onClick="toggleFG(this, 'rooms,conts');">
<td><%=L("lcl_room")%></td>
</tr>
<tr id="conts">
<td style="padding:0;">
<input id=werkplek type=checkbox onclick='myRefresh();'>
<label for=werkplek>
<span <%= canWriteWP ? "style='cursor:pointer;' onmousedown='mydragstartWP(event);'" : "" %>>
<%=L("lcl_fg_thema_werkplek")%>
</span>
</label>
<br>
<input id=contour0 type=checkbox <%=showcontour?"checked":""%> onclick='toggleContour(this)'>
<label for=contour0><%=L("lcl_fg_thema_contour")%></label>
<%
if ((my_cadrechten.canRead('WEB_CADBOF') || my_cadrechten.canRead('WEB_CADFOF')) && inoutMode == MODE_IN)
{ // Gebruik -2 en -3 voor de alternatieve lagen
if (S("fg_contourlayers_alt1")!=""&&S("fg_labellayers_alt1") != "")
{ %>
<br><input id=contour1 type=checkbox onclick='toggleContour(this)'>
<label for=contour1><%=L("lcl_fg_thema_contour_alt1")%></label>
<% }
if (S("fg_contourlayers_alt2")!=""&&S("fg_labellayers_alt2") != "")
{ %>
<br><input id=contour2 type=checkbox onclick='toggleContour(this)'>
<label for=contour2><%=L("lcl_fg_thema_contour_alt2")%></label>
<% }
} %>
</td>
</tr>
<tr>
<td>
<% sql = "";
FCLTselector("rooms",
sql,
{ initKey: -1,
emptyOption: "",
initEmpty: true,
size: 6,
multi: true,
onChange: "myRefresh()"
}); %>
</td>
</tr>
<% }
else
{ // buiten
%>
<!-- ==========================
TERREINEN
============================ -->
<tr class="openFG" id=rooms_help onClick="toggleFG(this, 'terr');">
<td><label><%=L("lcl_terra")%></label></td>
</tr>
<tr>
<td>
<% sql = "";
if (loc_key > 0)
sql = "SELECT alg_terreinsector_key,"
+ " alg_terreinsector_naam"
+ " FROM alg_v_aanwezigterreinsector"
+ " WHERE alg_locatie_key = " + loc_key
+ " ORDER BY 2";
FCLTselector("terr",
sql,
{ initKey: -1,
emptyOption: "",
initEmpty: true,
size: 6,
multi: true,
onChange: "myRefresh()"
});
%>
</td>
</tr>
<% } %>
<!-- ==========================
DISCIPLINES tonen
============================ -->
<tr class="closedFG" onClick="toggleFG(this, 'insDisc<%=(inoutMode == MODE_IN)? ",insZoek" : ""%>');">
<td><%=L("lcl_fg_obj_filter")%></td>
</tr>
<tr id="insDisc" style="display:none">
<td>
<%
if (scenario_key == 0)
var sqlfilter = " fac_functie_code IN ('WEB_INSMAN', 'WEB_INSUSE')" // @??@?SCOPE nog?
else
var sqlfilter = " fac_functie_code = 'WEB_INSPRJ'";
if (S("fg_publiclayers").length)
sqlfilter += " OR d.ins_discipline_key IN (" + S("fg_publiclayers").join(",") + ")"
sql = "SELECT DISTINCT d.ins_discipline_key"
+ ", " + lcl.xsqla('d.ins_discipline_omschrijving', 'd.ins_discipline_key')
+ ", BITAND(dp.ins_disc_params_type, " + (inoutMode == MODE_IN? 4 : 8) + ") defaultOn "
+ " FROM fac_v_my_disciplines m, ins_v_aanwezigdiscipline d, ins_disc_params dp "
+ " WHERE d.ins_discipline_key = m.ins_discipline_key(+)" // outer joins voor S("fg_publiclayers")
+ " AND m.prs_perslid_key (+)="+user_key
+ " AND d.ins_discipline_min_level = 1"
+ " AND dp.ins_disc_params_cadlayers IS NOT NULL"
+ " AND BITAND(dp.ins_disc_params_type, " + (inoutMode == MODE_IN? 1 : 2) + ")>0"
+ " AND dp.ins_discipline_key = d.ins_discipline_key"
+ " AND (" + sqlfilter + ")"
+ " ORDER BY 2";
// in init() worden de default-on's gezet
FCLTselector("sDiscsIn", sql,
{ onChange: "myRefresh()",
size: 6,
extraParamValue: "defaultOn",
emptyOption: L("lcl_none"),
multi: true
});
%> </td>
</tr>
<% if (inoutMode == MODE_IN)
{ // Zoeken kan alleen (nog maar) binnen
%>
<tr id="insZoek" style="display:none">
<td>
<table cellspacing="0">
<tr>
<td><label for="SearchCode"><%=L("lcl_search")%>:</label></td>
<td align="right" title="<%=L("lcl_search")%>">
<input type="text" id="SearchCode" onKeyPress="return onEnter(event, doSearchObj);">
</td>
</tr>
</table>
</td>
</tr>
<% } %>
<!-- ==========================
DISCIPLINES Legenda
============================ -->
<% if (S("fg_ins_symbols"))
{ %>
<tr id='tinsLegend' style="display:none" class="closedFG" onClick="toggleFG(this, 'insLegend');">
<td><%=L("lcl_fg_obj_legend")%></td>
<!-- <td><%=L("lcl_fg_obj_legend")%></td> -->
</tr>
<tr id=insLegend style="display:none">
<td><div id=dinsLegend class="canMaxFG" onclick="this.className=(this.className=='canMaxFG'?'isMaxFG':'canMaxFG');">
<% /* Gevuld in sDiscsChanged/Ajax.Updater/LoadInsLegenda.asp */ %></div>
</td>
</tr>
<% } %>
<!-- ==========================
DISCIPLINES toevoegen
============================ -->
<% if (S("fg_ins_symbols"))
{ %>
<tr id='tinsAdd' style="display:none" class="closedFG" onClick="toggleFG(this, 'insAdd');">
<!-- <td><%=L("lcl_fg_obj_add")%></td> -->
<td><%=L("lcl_fg_obj_add")%></td>
</tr>
<tr id=insAdd style="display:none">
<td>
<div id=dinsAdd class="canMaxFG" onclick="this.className=(this.className=='canMaxFG'?'isMaxFG':'canMaxFG');">
<% /* Gevuld in sDiscsChanged/Ajax.Updater/LoadInsNew.asp */ %>
</div>
</td>
</tr>
<% } %>
<!-- ==========================
LABEL THEMA's
============================ -->
<tr class="closedFG" onClick="toggleFG(this, 'labelIn,thmIn1,thmIn2,thmIn3')">
<td><%=L("lcl_fg_info")%></td>
</tr>
<tr id="labelIn" style="display:none">
<td align="left">
<table cellspacing=0>
<tr>
<td>
<label for="SearchLbl"><%=L("lcl_fg_labels")%>:</label>
</td>
<td title="<%=L("lcl_search")%>">
<% if (scenario_key == 0) { %>
<input type="text" id="SearchLbl" style="display:none;"
onKeyPress="return onEnter(event, doSearchLbl);">
<% } %>
</td>
</tr>
</table>
</td>
</tr>
<tr id="thmIn1" style="display:none">
<td>
<% var bitcode = 0x01; // binnen
if (inoutMode==MODE_OUT)
bitcode = 0x02; // buiten
if (scenario_key>0)
bitcode |= 0x04;
sql = "SELECT CAD_LABEL_KEY,"
+ lcl.xsqla('CAD_LABEL_OMSCHRIJVING', 'cad_label_key')
+ " FROM CAD_LABEL"
+ " WHERE BITAND(CAD_LABEL_TYPE, " + bitcode + ") = " + bitcode
+ (scenario_key == 0? " AND BITAND(CAD_LABEL_TYPE, 4) = 0" : "")
+ " AND (FAC_FUNCTIE_KEY IS NULL"
+ " OR FAC_FUNCTIE_KEY IN "
+ " (SELECT FAC_FUNCTIE_KEY FROM fac_v_webgebruiker"
+ " WHERE prs_perslid_key = " + user_key + "))"
+ " ORDER BY 2";
FCLTselector("sLabelIn", sql,
{ xxlabel: L("lcl_activity"),
emptyOption: L("lcl_fg_nolabels"),
onChange: "sLabelChanged(this)"
}); %>
</td>
</tr>
<!-- ==========================
KLEUREN THEMA's
============================ -->
<tr id="thmIn2" style="display:none">
<td id="sThemaIn_help" align="left" style="margin:0"><label><%=L("lcl_fg_thema")%>:</label>
</td>
</tr>
<tr id="thmIn3" style="display:none">
<td>
<% sql = "SELECT CAD_THEMA_KEY, "
+ lcl.xsqla('cad_thema_omschrijving', 'cad_thema_key')
+ " FROM CAD_THEMA "
+ " WHERE BITAND(CAD_THEMA_TYPE, " + bitcode + ") = " + bitcode
+ (scenario_key == 0? " AND BITAND(CAD_THEMA_TYPE, 4) = 0" : "")
+ " AND (FAC_FUNCTIE_KEY IS NULL"
+ " OR FAC_FUNCTIE_KEY IN "
+ " (SELECT FAC_FUNCTIE_KEY FROM fac_v_webgebruiker"
+ " WHERE prs_perslid_key = " + user_key + "))"
+ " ORDER BY 2";
FCLTselector("sThemaIn", sql,
{ xxlabel: L("lcl_activity"),
emptyOption: L("lcl_fg_nothema"),
onChange: "sThemeChanged(this)"
}); %>
</td>
</tr>
<!-- ==========================
De thema legenda wordt dynamisch gevuld
============================ -->
<tr id="legendCell">
<td>
<div id=fLegenda style='overflow-y:visible;overflow-x:hidden;'>
<% /* Gevuld in Ajax.Updater/Legenda.asp */ %>
</div>
</td>
</tr>
</table>
</div>
<div id="fgmenutoggler" class='toggler' onClick="toggleLayout(this)" title='<%=L("lcl_toggler")%>'>
</div>
<!-- ==========================
HET plaatje
============================ -->
<div id = 'mapCell'>
<img onclick='onFullScreen(event)'
src="../Pictures/fullscreen.gif"
width='21' height='20' id='MinMaxBtn'
style="cursor:pointer;display:none;position:absolute;z-index:1;height:20px;width:20px;"
>
<iframe id=MMap name=MMap src="../SlnkDWF/ToonIMG.asp?ShowButtons=1&ShowLabelMenu=1"
frameborder='0' framespacing='0' scrolling='no'
onLoad='init();'
width="<%=concept? 49 : 100%>%" height="100%">
</iframe>
<% if (concept)
{ %>
<iframe id=MMap2 name=MMap2 src="../SlnkDWF/ToonIMG.asp?ShowButtons=1&ShowLabelMenu=1&concept=1"
frameborder='0' framespacing='0' scrolling='no'
onLoad='init();'
width="49%" height="100%" style="border-left:4px solid #808080">
</iframe>
<% } %>
</div>
<div id="fgtabtoggler" class='toggler' onClick="toggleTabLayout(this)" title='<%=L("lcl_toggler")%>'></div>
<%
if (scenario_key > 0)
{
AddTabItem(L("lcl_room"), 'PRJ7', 'WEB_PRJBOF', '', "../prj/rap_prj7.asp");
AddTabItem(L("lcl_prj_workplacecontrol"), 'PRJ1', 'WEB_PRJBOF', '', "../prj/rap_prj3.asp");
AddTabItem(L("lcl_prj_prsbuffer"), 'PRJ6', 'WEB_PRJBOF', '', "../prj/rap_prj6.asp");
AddTabItem(L("lcl_prj_objbuffer"), 'PRJ5', 'WEB_PRJBOF', '', "../prj/rap_prj5.asp");
AddTabItem(L("lcl_prj_persons"), 'PRJ9', 'WEB_INSMAN', '', "../prj/rap_prj9.asp");
AddTabItem(L("lcl_prj_scenario_notes"), 'PRJ8', 'WEB_PRJBOF', '', "../prj/rap_prj8.asp");
}
else if (inoutMode == MODE_IN)
{
if (concept)
AddTabItem(L("lcl_space_manage_h"), 'ALG', 'WEB_CADBOF', '', S("fg_rap_algc"));
else
AddTabItem(L("lcl_space_manage_h"), 'ALG', 'WEB_CADALG', '', S("fg_rap_alg"));
AddTabItem(L("lcl_search_pers"), 'PRS', 'WEB_CADPRS', '', S("fg_rap_prs"));
AddTabItem(L("lcl_objmanagment_h"), 'INS', 'WEB_CADOBJ', '', S("fg_rap_ins"));
AddTabItem(L("lcl_cleaning_h"), 'SCH', 'WEB_CADSCH', '', S("fg_rap_sch"));
AddTabItem(L("lcl_complains"), 'MLD', 'WEB_CADMLD', '', S("fg_rap_mld"));
AddTabItem(L("lcl_sle_toegang"), 'SLE', 'WEB_CADSLE', '', S("fg_rap_sle"));
AddTabItem(L("lcl_cnt_contracts"), 'CNT', 'WEB_CADCNT', '', S("fg_rap_cnt"));
AddTabItem(L("lcl_fg_verhuizing"), 'MOV', 'WEB_PRSBOF', '', S("fg_rap_mov"), true);
if (S("fg_ins_symbols"))
{
AddTabItem(L("lcl_fg_consistentie"), 'MO2', 'WEB_CADOBJ', '', "../cad/rap_insXY.asp");
}
}
else // inoutMode == MODE_OUT
{
AddTabItem(L("lcl_terra_manage_h"), 'ALG2', 'WEB_CADALG', 'WEB_ALGMAN', S("fg_rap_alg2"));
AddTabItem(L("lcl_objmanagment_h"), 'INS2', 'WEB_CADOBJ', 'WEB_INSMAN', S("fg_rap_ins2"));
AddTabItem(L("lcl_cnt_contracts"), 'CNT', 'WEB_CADCNT', 'WEB_CNTUSE', S("fg_rap_cnt2")); // Stelling: Als je WEB_CNTMAN rechten hebt moet je ook dezelfde WEB_CNTUSE rechten hebben/krijgen.
}
%>
<!-- ==========================
RAPPORT DEEL
============================ -->
<div id='theTabs' class='ui-tabs ui-widget ui-widget-content ui-corner-all'>
<% var nrTabs = CreateTabs();
if (!nrTabs) {
%>
<script>$(function () { toggleTabLayout(document.getElementById("fgtabtoggler")) });</script>
<% } %>
</div>
</body>
</html>