Merge 5.2.2b patches

svn path=/Website/trunk/; revision=12461
This commit is contained in:
Jos Groot Lipman
2012-09-20 13:30:24 +00:00
parent 78e5520397
commit d2765018db
16 changed files with 393 additions and 108 deletions

View File

@@ -123,7 +123,7 @@ function L(p_lcl)
var jumpto = window.facilitor.phonebook_options.detailurl;
jumpto += (jumpto.indexOf("?")>=0)?"&":"?";
jumpto += "prs_key="+data.prs_perslid_key;
var link = window.facilitor.phonebook_options.deeplinkurl + escape(jumpto) + "<%=transitParam%>";
var link = window.facilitor.phonebook_options.deeplinkurl + escape(jumpto) + "&fac_id=<%=Session("customerId")%>";
var ahref = "<a href='"+link+"' target='_new'>"+data.naam+"</a>"
}
else

View File

@@ -61,30 +61,99 @@ bez =
bez_prkinfo:
function(loc_key, bez_afspraak_begin, bez_afspraak_eind)
{
var gebtersql = bez.getgebouwterrein_sql(bez_afspraak_begin, bez_afspraak_eind, loc_key);
oRs = Oracle.Execute(gebtersql);
var where_from = bez.getgebouwterrein_sql(bez_afspraak_begin, bez_afspraak_eind, loc_key);
var pafparams = user.checkAutorisation("WEB_BEZPAF", true);
var autlevel = 9;
if (pafparams)
{
autlevel = pafparams.PRSwritelevel;
}
if (autlevel > 0)
{
where_paf = " AND (t.prs_afdeling_key is null or t.prs_afdeling_key IN "
+ " (SELECT prs_afdeling_key FROM prs_v_afdeling_familie a"
+ " WHERE a.prs_afdeling_elder_key IN"
+ " (SELECT aa.prs_afdeling_elder_key"
+ " FROM prs_v_afdeling_familie aa"
+ " WHERE aa.prs_afdeling_key = " + user.prs_afdeling_key()
+ " AND aa.niveau = " + autlevel + ")))";
}
else if (autlevel == 0)
{
where_paf = " AND (t.prs_afdeling_key is null or t.prs_afdeling_key IN (SELECT a.prs_afdeling_key"
+ " FROM prs_v_afdeling a"
+ " WHERE a.prs_bedrijf_key = " + user.afdeling().prs_bedrijf_key() + " ))";
}
var where_terr = " AND parkgebter.alg_terreinsector_key = t.alg_terreinsector_key"
+ where_paf;
var prk_bezet = 0;
var prk_vrij = 0;
var prk_array = [];
while (!oRs.eof)
{
prk_bezet += parseInt(oRs("bezet").value, 10);
prk_vrij += parseInt(oRs("vrij").value, 10);
var alg_type = oRs("alg_type").value;
prk_array.push({key: (alg_type == "R"? oRs("alg_gebouw_key").value : oRs("alg_terreinsector_key").value),
naam: (alg_type == "R"? oRs("gebouw_naam").value : oRs("terreinsector_naam").value) + " [" + (parseInt(oRs("vrij").value, 10) > 0? parseInt(oRs("vrij").value, 10) + " - " + L("lcl_bez_vrij") : L("lcl_bez_vol")) + "]",
bezet: parseInt(oRs("bezet").value, 10),
vrij: parseInt(oRs("vrij").value, 10)
});
oRs.MoveNext();
}
result = {prk_aantal: prk_bezet + prk_vrij,
prk_bezet: prk_bezet,
prk_vrij: prk_vrij,
prk_array: prk_array};
var where_filt = "";
if (loc_key > 0)
{ // Locatie (parent) gegeven
// where_filt += " AND l.alg_locatie_key = " + loc_key;
}
else
if (autlevel > -1)
{
where_filt +=" AND l.alg_locatie_key IN"
+ " (SELECT alg_locatie_key FROM fac_v_my_locations"
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + autlevel + ")";
}
return result;
sql = " SELECT t.alg_terreinsector_key alg_key"
+ " , " + lcl.xsql('st.alg_srtterreinsec_omschrijving', 'st.alg_srtterreinsector_key') + " naam"
+ " , t.alg_terreinsector_code || ' ' ||"
+ " t.alg_terreinsector_naam || ' [' ||"
+ " CASE parkgebter.vrij"
+ " WHEN 0"
+ " THEN '" + L("lcl_bez_vol") + "'"
+ " ELSE TO_CHAR(parkgebter.vrij) || ' - " + L("lcl_bez_vrij") + "'"
+ " END"
+ " || ']' code"
+ " , 'T' extra"
+ " , 3 niveau"
+ " , parkgebter.bezet"
+ " , parkgebter.vrij"
+ " FROM alg_v_aanwezigterreinsector t"
+ " , alg_locatie l"
+ " , alg_srtterreinsector st"
+ " , (" + where_from + ") parkgebter"
+ " WHERE l.alg_locatie_key = t.alg_locatie_key"
+ " AND t.alg_srtterreinsector_key = st.alg_srtterreinsector_key(+)"
+ where_terr
+ where_filt
+ " ORDER BY 5, 3";
// De oude versie:
// sql = "SELECT * FROM " + where_from;
oRs = Oracle.Execute(sql);
var prk_naam = "";
var prk_bezet = 0;
var prk_vrij = 0;
var prk_array = [];
while (!oRs.eof)
{
prk_bezet += parseInt(oRs("bezet").value, 10);
prk_vrij += parseInt(oRs("vrij").value, 10);
prk_naam = ( parseInt(oRs("vrij").value, 10) > 0
? parseInt(oRs("vrij").value, 10) + " - " + L("lcl_bez_vrij")
: L("lcl_bez_vol"));
prk_array.push({key: oRs("alg_key").value,
naam: oRs("naam").value + " [" + prk_naam + "]",
bezet: parseInt(oRs("bezet").value, 10),
vrij: parseInt(oRs("vrij").value, 10)
});
oRs.MoveNext();
}
result = {prk_aantal: prk_bezet + prk_vrij,
prk_bezet: prk_bezet,
prk_vrij: prk_vrij,
prk_array: prk_array};
return result;
},
deleteAfspraak:

View File

@@ -250,6 +250,7 @@ function buildSymbols(cHandle, symbolProps)
// labelProps
// symbols is null voor ruimtes en bevat array van symbolen voor werkplek/objecten
// JGL 09-2012: Volgens mij helemaal niet gebruikt voor ruimtes? Die doen het in myContourProcessor?
// labelThema: key in CAD_LABEL
// fnSQL(viewname) levert key en waarde op
function labelThema(cHandle, labelProps)
@@ -260,23 +261,32 @@ function labelThema(cHandle, labelProps)
+ " WHERE CAD_LABEL_KEY = " + labelProps.labelThema
var oRs = Oracle.Execute(sql)
var viewName = oRs("CAD_LABEL_VIEW").value;
var lh = (oRs("CAD_LABEL_SIZE").value * 100 / S("fg_inLabelSize") ).toFixed(0);
var ls = oRs("CAD_LABEL_SIZE").value; // negatief als we default label niet willen hebben
var lh = (Math.abs(ls) * 100 / S("fg_inLabelSize") ).toFixed(0);
var lhs = "[s"+lh+"]";
oRs.Close();
var labelCleared = [];
var sql = labelProps.fnSql(viewName);
var oRs = Oracle.Execute(sql);
while (!oRs.EOF)
{
if (labelProps.symbols)
{
var cnt=labelProps.symbols[oRs("KEY")];
var cnt=labelProps.symbols[oRs("KEY").Value];
if (cnt) cnt = cnt.Contour;
}
else
{
var cnt=cHandle.Contour(oRs("CADLABEL"));
var cnt=cHandle.Contour(oRs("CADLABEL").Value);
}
if (cnt)
if (cnt && ls < 0)
{
if (!labelCleared[oRs("KEY").Value])
cnt.Label = "";
labelCleared[oRs("KEY").Value] = true;
}
if (cnt && oRs("WAARDE").value !== null)
{
var w = String(oRs("WAARDE").value);
if (w.substring(0,1)=="[") w = "[" + w;
@@ -336,7 +346,11 @@ function kleurThema(cHandle, kleurProps)
if (kleurProps.colorSymbol)
cntS.SetColor(kleur, 255); // Het symbool
else
{
cnt.SetColor(kleur, S("fg_ThemaAlpha")); // De contour
if (kleurProps.symbols) // ook randje meekleuren
cnt.SetoutlineColor(kleur, S("fg_ThemaAlpha"));
}
//cntS.SetColor(kleur ^ 0xFFFFFF, 128);
// URL tekst komt uiteindelijk in de tooltip
cnt.SetUrl("", rs_r("CAD_LEGENDAWAARDE_OMSCHR"));
@@ -385,8 +399,12 @@ function kleurThema(cHandle, kleurProps)
if (kleurProps.colorSymbol)
cntS.SetColor(prevColor, 255); // Het symbool
else
{
cnt.SetColor(prevColor, S("fg_ThemaAlpha")); // De contour
cnt.SetUrl("", rs_r("WAARDE"));
if (kleurProps.symbols) // ook randje meekleuren
cnt.SetoutlineColor(prevColor, S("fg_ThemaAlpha"));
}
cnt.SetUrl("", rs_r("WAARDE").Value||"");
}
rs_r.MoveNext();
}

View File

@@ -132,7 +132,7 @@ function fnHighlight(rs, cHandle, dwgX, dwgY, scl, params)
{
var scl = scl||1;
var star = cHandle.AddSymbol(dwgX, dwgY,"*OCTAGON"); // of *STAR
star.scale = 4*scl;
star.scale = 2*scl;
//star.Contour.Label = "[cff0000]"+safe.nvl(rs("oms").Value);
star.Contour.SetColor(0xFF0000, 32);
star.SetColor(0xFF0000, 0);
@@ -176,20 +176,25 @@ function addObjecten(cHandle, highlight_ins_deel_key)
var symbols =
buildDobbel(cHandle,
{ aantal: oRsRuimte("aantal").value, // Zoveel symbolen voor onze dobbelsteen
ruimte: oRsRuimte("cadlabel"),
ruimte: oRsRuimte("cadlabel").value,
highlight_ins_deel_key: highlight_ins_deel_key,
fnPreProcess: fnHighlight,
fnLabel: function (rs)
{ return "[c][S"+S("fg_dobbelScale")*S("fg_inINSLabelSize")+"][c808080]" + safe.nvl(rs("oms").Value);
{
if (rs("ins_disc_params_type").Value & 16) // Hide default label
return "";
return "[c][S"+S("fg_dobbelScale")*S("fg_inINSLabelSize")+"][c808080]" + safe.nvl(rs("oms").Value + rs("ins_disc_params_type").Value);
},
sql : "SELECT 'I:'||ins_deel_key key, ins_deel_omschrijving oms,"
+ " ins_srtdeel_acadsymbol symbolname"
+ " FROM ins_deel id, ins_srtdeel isd, ins_srtgroep isg"
+ " ins_srtdeel_acadsymbol symbolname, ins_disc_params_type"
+ " FROM ins_deel id, ins_srtdeel isd, ins_srtgroep isg,"
+ " ins_disc_params isdp"
+ " WHERE id.ins_alg_ruimte_key = " + oRsRuimte("alg_ruimte_key")
+ " AND id.ins_srtdeel_key = isd.ins_srtdeel_key"
+ " AND ins_deel_dwgx IS NULL AND ins_deel_dwgy IS NULL"
+ " AND isd.ins_srtgroep_key = isg.ins_srtgroep_key"
+ " AND ins_srtdeel_acadsymbol IS NOT NULL"
+ " AND isdp.ins_discipline_key = id.ins_discipline_key"
+ " AND isg.ins_discipline_key in (" + pDiscs_arr.join(",") + ")"
+ " AND id.ins_discipline_key in (" + pDiscs_arr.join(",") + ")"
+ " AND ins_deel_verwijder IS NULL"
@@ -211,8 +216,9 @@ function addObjecten(cHandle, highlight_ins_deel_key)
sql = "SELECT 'I:'||ins_deel_key key, ins_deel_omschrijving oms, "+ lcl.xsqla('isd.ins_srtdeel_omschrijving', 'isd.ins_srtdeel_key')+","
+ " ins_deel_dwgx dwgx, ins_deel_dwgy dwgy,"
+ " ins_deel_dwgrotatie rot, ins_deel_dwgschaal scl,"
+ " ins_srtdeel_acadsymbol symbolname, cadlabel"
+ " FROM ins_deel id, ins_srtdeel isd, ins_srtgroep isg, "+syncView+" SYNC"
+ " ins_srtdeel_acadsymbol symbolname, cadlabel, ins_disc_params_type"
+ " FROM ins_deel id, ins_srtdeel isd, ins_srtgroep isg, "+syncView+" SYNC,"
+ " ins_disc_params isdp"
+ " WHERE id.ins_alg_ruimte_key = SYNC."+colKey
+ " AND id.ins_srtdeel_key = isd.ins_srtdeel_key"
// + " AND id.ins_alg_ruimte_type = 'R'"
@@ -222,12 +228,15 @@ function addObjecten(cHandle, highlight_ins_deel_key)
+ " AND ins_deel_parent_key IS NULL"
+ " AND isd.ins_srtgroep_key = isg.ins_srtgroep_key"
+ " AND INS_SRTDEEL_ACADSYMBOL IS NOT NULL"
+ " AND isdp.ins_discipline_key = id.ins_discipline_key"
+ " AND isg.ins_discipline_key in (" + pDiscs_arr.join(",") +")"
+ " AND id.ins_discipline_key in (" + pDiscs_arr.join(",") +")"
+ " ORDER BY isd.ins_srtdeel_key"
symbols = buildSymbols(cHandle, { sql : sql,
fnLabel: function (rs)
{
if (rs("ins_disc_params_type").Value & 16) // Hide default label
return "";
if ("I:"+highlight_ins_deel_key == rs(0).value)
return "[cff0000][S"+4*S("fg_inINSLabelSize")+"]" + safe.nvl(rs("oms").Value);
else
@@ -400,7 +409,7 @@ function addPRJObjecten(cHandle)
var symbols =
buildDobbel(cHandle,
{ aantal: oRsRuimte("aantal").value, // Zoveel symbolen voor onze dobbelsteen
ruimte: oRsRuimte("cadlabel"),
ruimte: oRsRuimte("cadlabel").Value,
fnLabel: function (rs)
{ return "[c][S"+S("fg_dobbelScale")*S("fg_inINSLabelSize")+"][c808080]" + safe.nvl(rs("oms").Value);
},

View File

@@ -56,9 +56,6 @@
var legenda_key=oRs("CAD_LEGENDA_KEY").value;
var viewName = oRs("CAD_THEMA_VIEW").value;
if ((themaType & 0x18) == 0x10) // Objecten
Response.end; // (Nog) te ingewikkeld. Houd ook rekening met disc en zo
var isUpdatable = (themaType & 0x80) == 0x80;
// TODO: als updatable dan ook testen of FAC_FUNCTIE_KEY wel schrijfrechten heeft en of het locatiegebonden rechten zijn
@@ -72,7 +69,13 @@
{
if (scenario_key==0)
{
if ((themaType & 0x18) != 0x08) // ruimtes
if ((themaType & 0x18) == 0x10) // Objecten
{
// Toon legendawaarden die bij *een* object voorkomen, anders te ingewikkeld met disc en zo
var waardenSQL = "select distinct waarde, null waarde_key"
+ " from " + viewName + " th";
}
else if ((themaType & 0x18) != 0x08) // ruimtes
{
if (isUpdatable && LegendaFilter=="L") // alles op locatie
{
@@ -213,7 +216,7 @@
<% if (isUpdatable && v_waarde_key != null) { %>
onmousedown='mydragstartLegenda(event, "<%=v_kleur%>", "<%=v_waarde_key%>");'
<% } else { %>
onclick='selectfromLegenda(event, "<%=safe.jsstring(v_waarde)%>");'
onclick='if (window.selectfromLegenda) selectfromLegenda(event, "<%=safe.jsstring(v_waarde)%>");'
<% } %>
>
<TD style="width:25px;padding:0;vertical-align=top">

View File

@@ -219,7 +219,8 @@ function myContourProcessor(cHandle)
+ " WHERE cad_label_key = " + pLabel
oRs = Oracle.Execute(sql)
viewName = oRs("cad_label_view").value;
var lh = (oRs("cad_label_size").value * 100 / S("fg_inLabelSize") ).toFixed(0);
var ls = oRs("cad_label_size").value; // negatief als we default label niet willen hebben
var lh = (Math.abs(ls) * 100 / S("fg_inLabelSize") ).toFixed(0);
var lhs = "[s" + lh + "]";
oRs.Close();
@@ -257,7 +258,10 @@ function myContourProcessor(cHandle)
urltxt = rs_r("dbNummer").value;
if (prevContour)
{
prevContour.Label = "[u]"+rs_r("dbNummer").value;
if (ls > 0)
prevContour.Label = "[u]"+rs_r("dbNummer").value;
else
prevContour.Label = "";
if (getQParamInt("labelPos", -1) == 2)
{ // Als gecentreerd dan individuele tekstregels
// ook centreren binnen de bounding-box

View File

@@ -3,22 +3,38 @@
$Revision$
$Id$
File: CAD/showGebouw.asp (beter:Verdiepingscherm.asp oid?)
Description:
Toont een verdiepingstekening (evt met verdiepingsnavigator-balk) en
presenteer daarin de objecten van gedefinieerde discipline(s)
en een gedefinieerd thema.
Kan o.a. toegepast worden voor Grafisch kiezen "werkplek" als een wp als reserveerbaar object is gemodelleerd),
maar deze pagina weet zelf niet zoveel van de uiteindelijke toepassing
File: CAD/showGebouw.asp (beter:Verdiepingscherm.asp oid?)
Description: Toont een verdiepingstekening (evt met verdiepingsnavigator-balk) en
presenteer daarin
1) de objecten van gedefinieerde discipline(s)
2) of sta toe dat ruimtes worden geselecteerd
Op de onclick wordt ../pda/reserveringen.asp voor dat object/die ruimte aangeroepen
Kan o.a. toegepast worden voor Grafisch kiezen "werkplek" als een wp als reserveerbaar object
is gemodelleerd), maar deze pagina weet zelf niet zoveel van de uiteindelijke toepassing
Parameters:
geb_key
floor_key optional, default verdieping
disk_key optional, de discipline (meerdere?)
thema_key optional, het thema
label_key
floor_key optional, default verdieping
disc_key optional, de discipline voor objecten, leeg voor ruimtes selecteren.
thema_key optional, het te tonen kleur thema
label_key optional, het te tonen label thema
hidenav optional, geen verdieping selector tonen
refresh optional, autorefresh. default 600 seconds
zoomDWGX
zoomDWGY
zoomScale Zoomt initieel in op deel van de verdieping. Pixel per mm, begin eens met 0.0250
Context:
Note:
Als disc_key meegegeven dan alleen de verdiepingen tonen waarop die voorkomen
Note: Als disc_key meegegeven dan worden alleen de verdiepingen tonen waarop die objecten voorkomen
Bij een refresh wordt altijd teruggesprongen naar de default verdieping.
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 = pixelX / sizeX
*/
%>
@@ -32,19 +48,26 @@ FCLTHeader.Requires({ js: ["jquery-ui.js"],
});
var geb_key = getQParamInt("geb_key", user.alg_gebouw_key());
var disc_key = getQParamInt("disc_key", 104) // TODO Hardcoded UWVA beamers
var thema_key = getQParamInt("thema", 202); // TODO Hardcoded UWVA thema daarop
var label_key = getQParamInt("label", -1);
var disc_key = getQParamInt("disc_key", -1) // De *object* discipline
var thema_key = getQParamInt("thema_key", -1); // Thema daarop
var label_key = getQParamInt("label_key", -1);
var floor_key = getQParamInt("floor_key", user.alg_verdieping_key()); // current floor
var floor_key = def_floor_key = getQParamInt("floor_key", user.alg_verdieping_key()); // current floor
var hidenav = getQParamInt("hidenav", 0); // optie: toon geen floornavigator
var refresh = getQParamInt("refresh", 600); // optie: refresh in secondes
var zoomScale = getQParamFloat("zoomScale", -1);
if (zoomScale > 0)
{
var zoomDWGX = getQParamFloat("zoomDWGX");
var zoomDWGY = getQParamFloat("zoomDWGY");
}
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
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
@@ -52,7 +75,7 @@ var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* ve
<script type="text/javascript">
var floor_key = <%=floor_key%>;
var autozoomed = false;
function OnFloorChanged(deze, fkey)
{
$("input[type=button]").removeClass("selected");
@@ -60,6 +83,7 @@ var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* ve
floor_key = -1; // Eventkes invalid
resetMap();
floor_key = fkey;
window.autozoomed = false;
myRefresh();
}
@@ -70,6 +94,7 @@ var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* ve
{
MMap.SetCustomParameters(getCustomParameters())
MMap.Refresh(); // Try not to zoom extents
resetReload();
}
function getCustomParameters()
@@ -100,11 +125,10 @@ var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* ve
}
myRefresh();
}
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)
{
resetReload();
switch (SlnkEvent.Param)
{
case "onclick":
@@ -112,33 +136,51 @@ var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* ve
{
if (SlnkEvent.Key)
{ // Zoek het object/ ruimte
<% if (disc_key > 0) { %>
if (SlnkEvent.Key.match(/^I:/)) // INS_DEEL
{
var intKey = parseInt(SlnkEvent.Key.substring(2),10);
window.ins_key = intKey; // onthouden
window.alg_ruimte_key = -1
MMap.SetCustomParameters(getCustomParameters());
//var url = "../res/res_claim_obj.asp?ins_key=" + intKey;
myRefresh();
var url = "../pda/reserveringen.asp?qrc=1&ins_key=" + intKey;
// alwaysCall zetten lijkt niet genoeg: die reageert niet op het kruisje? alwaysCallbackParams: {} werkt wel
MMap.noAutoResize(true); // rustiger
FcltMgr.openModalDetail(url, "", { callback: callback_reserved, alwaysCallbackParams: {}, xnoClose: true });
MMap.noAutoResize(false);
}
else if (SlnkEvent.Key > 0 && SlnkEvent.ContourLayer == "SLNK Contours") // RUIMTE
<% } else { %>
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
MMap.SetCustomParameters(getCustomParameters());
//var url = "../res/res_claim_obj.asp?ins_key=" + intKey;
myRefresh();
var url = "../pda/reserveringen.asp?qrc=1&alg_ruimte_key=" + alg_ruimte_key;
MMap.noAutoResize(true); // rustiger
FcltMgr.openModalDetail(url, "", { callback: callback_reserved, alwaysCallbackParams: {}, xnoClose: true });
MMap.noAutoResize(false);
}
<% } %>
}
break;
}
}
}
<% if (zoomScale > 0) { %>
// Liefst zou ik de autozoom direct doen.
// De DLL kan echter pas met DWG-coordinaten werken *na* de eerste keer tonen
// Daarom in de onMapperLoad
function MMap_onMapperLoad(pSLNKEvent)
{
if (window.autozoomed)
return; // niet nog een keer
MMap.zoom2DWG(<%=safe.jsfloat(zoomDWGX)%>, <%=safe.jsfloat(zoomDWGY)%>, <%=safe.jsfloat(zoomScale)%>);
window.autozoomed = true;
}
<% } %>
function resetMap()
{
if (!MMap || !MMap.Reset)
@@ -161,26 +203,31 @@ var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* ve
}
};
var /*global*/ reloadTimerID=null;
function resetReload()
{
if (window.reloadTimerID) clearTimeout(window.reloadTimerID);
window.reloadTimerID = setTimeout(FcltMgr.reload, <%=refresh%> * 1000);
}
var /*global*/ resizeTimerID=null;
function init()
{
resetReload();
resizeIframes();
resetMap();
myRefresh();
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
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) { %>
$("#legenda").load("Legenda.asp?thema=<%=thema_key%>&scenario_key=0&parentKey="+floor_key+"&mode=0&LegendaFilter=L");
<% } %>
}
</script>
<style type="text/css">
input[type=button] { width: 180px; margin: 2px;}
input[type=button]:hover { background-color:#fff; }
input[type=button].selected { background-color:#f00; }
#navigationCell { text-align: center; }
</style>
</head>
<body id="floorscreen">
@@ -194,28 +241,105 @@ var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* ve
var oRs = Oracle.Execute(sql);
Response.Write("<h2>" + safe.html(oRs("alg_locatie_omschrijving").value) + "</h2>");
Response.Write("<h1>" + safe.html(oRs("alg_gebouw_naam").value) + "</h1>");
oRs.Close();
// TODO: Alleen waar ook reserveerbare objecten aanwezig zijn
// Ook: tellen wat beschikbaar is zodat buttons te kleuren
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_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"
+ " (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";
}
// 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"
+ " FROM alg_v_aanwezigverdieping v"
+ " , 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 EXISTS"
+ " (SELECT ct.alg_verdieping_key"
+ " FROM cad_tekening ct"
+ " WHERE ct.alg_verdieping_key = v.alg_verdieping_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"
+ ")"
+ " ORDER BY v.alg_verdieping_volgnr";
}
sql += " ORDER BY v.alg_verdieping_volgnr, maxkleur.waarde DESC"; // 'Hoogste' waarde vooraan
var oRs = Oracle.Execute(sql);
Response.Write("<div id='verdiepingen' style='"+(hidenav ? 'display:none': '')+"'>");
var last_floor_key = -1;
while (!oRs.Eof)
{
if (last_floor_key == oRs("alg_verdieping_key").Value)
{
oRs.MoveNext();
continue;
}
var desc = oRs("alg_verdieping_code").Value + " - " + 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'":"")
+ (oRs("cad_legendawaarde_rgb").Value ? " style='background-color:#" + oRs("cad_legendawaarde_rgb") + "'":"")
+ " onclick='OnFloorChanged(this, "+oRs("alg_verdieping_key").Value+")'"
+">");
last_floor_key = oRs("alg_verdieping_key").Value;
oRs.MoveNext();
}
oRs.Close()
@@ -226,6 +350,7 @@ var authparams = user.checkAutorisation(autfunction); // voor kiezen *andere* ve
<!-- ==========================
HET plaatje
============================ -->
<div id='legenda'></div>
<div id = 'mapCell'>
<iframe id=MMap name=MMap src="../SlnkDWF/ToonIMG.asp"
frameborder='0' framespacing='0' scrolling='no'

View File

@@ -26,6 +26,7 @@ disc_key_arr = (disc_key_arr.length > 0 && disc_key_arr.join(",").indexOf("-1")
stdm_key_arr = (stdm_key_arr.length > 0 && stdm_key_arr.join(",").indexOf("-1") == -1? stdm_key_arr : null);
var urole = getQParamSafe("urole", "fe");
var showall = getQParamInt("showall", 0) == 1;
var authparamsBOF = user.checkAutorisation("WEB_FAQBOF", true); // ziet alles
var authparamsFOF = user.checkAutorisation("WEB_FAQFOF", true); // ziet ook FO-items (en eigen items)
@@ -111,6 +112,7 @@ function fnSource(oRs)
ID: "faqtable",
noPrint: true,
title: L("lcl_faq_items"),
showAll: showall,
buttons: buttons
});
rst.addColumn(new Column({hasActions: true, caption: L("lcl_faq_question"), content: fnQuestion}));

View File

@@ -33,6 +33,7 @@
var RuimteMode = false;
var DeelMode = false;
var res_noshowgrace = 5*60*1000 ; // hoeveel milliseconden na aanvang mag je een (lege) bezette ruimte afpakken?
var now = new Date;
var ins_key = getQParamInt("ins_key", -1);
var res_ruimte_key = -1;
@@ -41,12 +42,16 @@
{
// Objectenmode
DeelMode = true;
if (res_deel_key == -1) {
if (res_deel_key == -1)
{
sql = "SELECT MAX(res_deel_key) res_deel_key FROM res_deel WHERE res_deel_verwijder IS NULL AND res_ins_deel_key="+ins_key;
oRs = Oracle.Execute(sql);
if (!oRs.eof) {
res_deel_key = oRs("res_deel_key").value;
if (!oRs("res_deel_key").value)
{
Response.Write(L("lcl_pda_res_nietres"));
Response.End;
}
res_deel_key = oRs("res_deel_key").value;
oRs.Close();
}
var sql = "SELECT ins_deel_omschrijving, ins_alg_ruimte_key"
@@ -86,7 +91,6 @@
if (res_ruimte_key < 0 && res_deel_key < 0)
{
//shared.internal_error("Niet reserveerbaar");
Response.Write(L("lcl_pda_res_nietres"));
Response.End;
}
@@ -125,8 +129,8 @@
restype: "CV",
ruimtekey: <%=alg_ruimte_key%>,
<% } %>
date_from: (new Date).getTime(),
date_to: tot,
date_from: <%=now.getTime()%>, // Tijd waarop dialoog geopend. Voorkomt dat als je na een paar
date_to: tot, // minuten klikt de tijdsduur mogelijk te kort geworden is
sel_activity: <%=res_activiteit_key%>,
ab_mode: 1, // altijd 'afhalen' in de ruimte zelf
status_fo: 2,
@@ -134,8 +138,8 @@
nodirty: 1, // willen we echt niet
person: $("#person").val(),
personH: $("#person").val(),
descript: "<%=L("lcl_pda_res_gereserveerd")%>",
opmerk: "<%=L("lcl_pda_res_geresopmerk")%>"
descript: "<%=safe.jsstring(L("lcl_pda_res_gereserveerd"))%>",
opmerk: "<%=safe.jsstring(L("lcl_pda_res_geresopmerk"))%>"
};
$.post("../res/res_edit_rsv_ruimte_save.asp?urole=fo&res_deel_key=<%=res_deel_key%>", data, McltCallbackRefresh, "json");
@@ -254,11 +258,12 @@
// BLOCK_START({collapsed: false, title: L("lcl_mobile_res_today")});
if (RuimteMode)
var periods = [30, 60, 120]; // Let op: alles moet deelbaar zijn door 'blokgrootte' S("res_h")
var periods = S("res_pda_room_times"); // Let op: alles moet deelbaar zijn door 'blokgrootte' S("res_h") en groter zijn dan S("res_block")
else
var periods = [15, 30, 60, 120, 240];
var periods = S("res_pda_deel_times"); // ['15','30','60','120','240']
for (var i in periods) // Het zijn altijd strings
periods[i] = parseInt(periods[i]);
var now = new Date;
var maxTime = now.setFloatHours(reindtijd);
var minuten = now.getHours() * 60 + now.getMinutes();
var blokstart = Math.ceil(minuten / (S("res_h")*60)) * S("res_h")*60; // omhoog afgerond op period[0]

View File

@@ -137,6 +137,14 @@ else // nieuw
{
FcltMgr.closeDetail(window, { cancel: true } );
}
function edit_werklocatie(img, prs_key)
{
var url = "../../appl/prs/prs_move_huidigewerkplek.asp?prs_key=" + prs_key;
FcltMgr.openModalDetail(url, "<%=safe.jsstring(thisUser.naam())%>",
{ callback: function (data) { if (data.wp_aanduiding) {$(img).closest("tr").find("input").val(data.wp_aanduiding);} } });
}
function edit_photo(img)
{
var url = "<%=protectQS.create("../../appl/shared/BijlagenForm.asp?module=SML&key="+prs_key)%>";
@@ -207,6 +215,23 @@ BLOCK_START("prsPerslid", L("lcl_prs_basisblok"));
RWFIELDTR("prs_oslog", "fld", L("lcl_prs_person_login"), prs_oslog, {maxlength: 30});
RWFIELDTR("prs_oslog2", "fld", L("lcl_prs_person_login2"), prs_oslog2, {maxlength: 30});
}
var thisPrs = prs.prs_perslid(prs_key, { withWL: true }); // geeft ook alle informatie
var wl = thisPrs.werklocatie.alg_locatie_key? thisPrs.werklocatie.aanduiding : "";
if (prsauthparams.writeuse)
{ %><tr><td class="label">
<label class="selector"><%=L("lcl_prs_work_location")%></label>
<span class='labelextra'>
<img class='details' src='../../appl/Pictures/wijzigen.png'
title='<%=L("lcl_change")%>'
onclick='edit_werklocatie(this, <%=prs_key%>)'>
</span></td>
<td><%ROFIELD('fldworklocation', null, wl); %></td>
</tr><%
}
else
ROFIELDTR('fld', L("lcl_prs_work_location"), wl, {suppressEmpty: true});
BLOCK_END();
BLOCK_START("prsPerslid2", L("lcl_prs_organisatieblok"));

View File

@@ -27,7 +27,11 @@
FCLTHeader.Requires({ plugins:["jQuery"] })
var prs_key = getQParamInt("prs_key"); // De te verplaatsen werklocaie
var perslidInfo = prs.prs_perslid(user_key);
var prsauthparams = prs.checkAutorisation(prs_key);
user.auth_required_or_abort(prsauthparams.writeman || prsauthparams.writeuse || prsauthparams.writeself);
var perslidInfo = prs.prs_perslid(prs_key);
var aog_key = perslidInfo.alg_onroerendgoed_keys; // De te verplaatsen werklocaie
var aog_type = perslidInfo.alg_onroerendgoed_type; // Type van de te verplaatsen werklocaie
@@ -141,10 +145,10 @@ else
+ " SET alg_onroerendgoed_keys = " + aogkey
+ " , alg_onroerendgoed_type = " + safe.quoted_sql(aogtype)
+ " , prs_perslid_bezetdatum = " + bezetdatum
+ " WHERE prs_perslid_key = " + user_key;
+ " WHERE prs_perslid_key = " + prs_key;
var err = Oracle.Execute(sql);
var perslidInfo = prs.prs_perslid(user_key, { withWL: true });
var perslidInfo = prs.prs_perslid(prs_key, { withWL: true });
%> <script type="text/javascript">
FcltMgr.closeDetail(window, { refresh: true,

View File

@@ -177,12 +177,12 @@ oRs.Close();
<div id="show">
<form name=u2>
<% BLOCK_START("prsPerslid", L("lcl_prs_basisblok"));
var thisPrs = new Perslid(prs_key); // voor de naam in de titel
var thisPrs = prs.prs_perslid(prs_key, { withWL: true, withPhoto: true }); // geeft ook alle informatie
%> <tr valign="center"><td colspan="2"></td><td rowspan="20">
<img id='photo' src="<%=thisPrs.photoinfo().photopaththumb %>">
<img id='photo' src="<%=thisPrs.photopaththumb %>">
</td></tr>
<% var params = { infoPointer: { Url: "appl/shared/status_info.asp?prs_key=" + prs_key,
Title: L("lcl_status_details") + " " + thisPrs.naam() }};
Title: L("lcl_status_details") + " " + thisPrs.naam }};
ROFIELDTR("fld", L("lcl_prs_person_name"), prs_naam, params);
ROFIELDTR("fld", L("lcl_prs_person_geslacht"), { 0: L("lcl_prs_person_geslachtV"), 1: L("lcl_prs_person_geslachtM") }[prs_geslacht] , {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_prs_person_tussen"), prs_tussen, {suppressEmpty: true});
@@ -199,6 +199,9 @@ oRs.Close();
ROFIELDTR("fld", L("lcl_prs_person_login"), prs_oslog, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_prs_person_login2"), prs_oslog2, {suppressEmpty: true});
}
var wl = thisPrs.werklocatie.alg_locatie_key? thisPrs.werklocatie.aanduiding : "";
ROFIELDTR('fld', L("lcl_prs_work_location"), wl, {suppressEmpty: true});
BLOCK_END();
BLOCK_START("prsPerslid2", L("lcl_prs_organisatieblok"));

View File

@@ -46,6 +46,8 @@ if (!date_from)
}
else
{
if (date_from.getSeconds() > 0 || date_from.getMilliseconds() > 0)
date_from.setSeconds(59, 1000); // Omhoog afronden op minuten, minimaliseert conflicten
var date_to = getFParamDate("date_to"); // die hebben we vaak nodig
}

View File

@@ -34,7 +34,7 @@ oRs = Oracle.Execute(sql);
var regbez = oRs("res_rsv_ruimte_bezoekers").value;
sql = "UPDATE res_rsv_ruimte"
+ " SET res_rsv_ruimte_bezoekers_shown = " + (resetshown?"NULL":bezshown)
+ (reseteindtijd?" , res_rsv_ruimte_tot = GREATEST(res_rsv_ruimte_van, LEAST(res_rsv_ruimte_tot, SYSDATE))":"")
+ (reseteindtijd?" , res_rsv_ruimte_tot = GREATEST(res_rsv_ruimte_van, LEAST(res_rsv_ruimte_tot, TRUNC(SYSDATE, 'MI')))":"")
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
Oracle.Execute(sql);
if (reseteindtijd)

View File

@@ -2321,4 +2321,10 @@ input:focus, textarea:focus, select:focus {
-webkit-box-shadow: 0 0 5px rgba(0, 0, 255, 1);
-moz-box-shadow: 0 0 5px rgba(0, 0, 255, 1);
border:1px solid rgba(0,0,255, 0.8);
}
}
#floorscreen input[type=button] { width: 180px; margin: 2px;}
#floorscreen input[type=button]:hover { background-color:#fff; }
#floorscreen input[type=button].selected { background-color:#f00; font-weight:bold;}
#floorscreen #navigationCell { text-align: center; }
#floorscreen #legenda { position:absolute;bottom:20px; left:10px }

View File

@@ -42,6 +42,8 @@ var gSLNKEvent;
var dragStartX, dragStartY;
var ignoreNextClick = false; // Voorkom onClick event na draggen
var _noAutoResize = false; // Geen resize als grootte veranderd.
panning=false;
gesturing=false;
function _onTouchStart(e)
@@ -352,10 +354,18 @@ function Refresh(bZoomExtents)
* ZoomExtents omdat we toch niet goed zoom/pan kunnen vasthouden
\************************************************************/
var timerID;
function noAutoResize(nor)
{
window._noAutoResize = nor;
}
function scheduleRefresh()
{
if (window._noAutoResize)
return;
if (!elemIMG.parentElement)
return;
// Deze stonden al lang niet meer op '100%' en autosizen dus niet.
elemIMG.style.width = elemIMG.parentElement.clientWidth + "px";
elemIMG.style.height = elemIMG.parentElement.clientHeight + "px";