Merge 2015.3 patches
svn path=/Website/trunk/; revision=27897
This commit is contained in:
@@ -109,7 +109,7 @@ else
|
||||
|
||||
var page3 ="../prs/prs_afdeling_search_list.asp?tiny=1&room_key=" + room_key;// Alle afdelingen van alle niveau's (1 en hoger) laten zien dus afd_niveau=nr niet meegegeven
|
||||
IFRAMER("wpFrame", page3, { initHeight: "450px" } );
|
||||
}
|
||||
|
||||
var authparamsINSMAN = user.checkAutorisation("WEB_INSMAN", true);
|
||||
var insman_read = authparamsINSMAN;
|
||||
if (insman_read)
|
||||
@@ -117,6 +117,7 @@ else
|
||||
var page4="../INS/ins_list.asp?embedded=1&tiny=1&ruimtekey=" + room_key
|
||||
IFRAMER("insdeel", page4, { initHeight: "450px" } );
|
||||
}
|
||||
}
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -18,6 +18,11 @@
|
||||
<!-- #include file="./model_tracking.inc"-->
|
||||
<%
|
||||
|
||||
function fnApiToken(oRs, field, model)
|
||||
{
|
||||
var hmac = protectHMAC.create(oRs("prs_perslid_oslogin").Value, { sleutel: oRs("prs_perslid_apikey").Value });
|
||||
return hmac;
|
||||
}
|
||||
model_persons =
|
||||
{
|
||||
table: "prs_perslid",
|
||||
@@ -48,6 +53,13 @@ model_persons =
|
||||
//var urole = "fe"; // TODO: Moet echt niet ter zake doen
|
||||
//var autfunction = urole == "fe"? "WEB_ALGUSE" : "WEB_ALGMAN";
|
||||
//params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
|
||||
//if (params.filter.id == user_key)
|
||||
{
|
||||
if (user.prs_perslid_apikey() && user.oslogin())
|
||||
{
|
||||
this.fields["authtoken"] = { dbs: "prs_perslid_apikey", typ: "varchar", val: fnApiToken };
|
||||
}
|
||||
}
|
||||
|
||||
var query = api2.sqlfields(params, model_persons );
|
||||
query.tables.push("prs_v_werkplek_gegevens");
|
||||
|
||||
@@ -41,7 +41,7 @@ model_res_disc_params =
|
||||
"res_disc_params_notify": {
|
||||
"dbs": "res_disc_params_notify",
|
||||
"label": L("res_catalogus_notify"),
|
||||
"typ": "check"
|
||||
"typ": "check0"
|
||||
},
|
||||
"res_disc_params_kosten": {
|
||||
"dbs": "res_disc_params_kosten",
|
||||
|
||||
@@ -51,7 +51,8 @@ function model_res_ruimte_opstelling(fnparams)
|
||||
"foreign": {
|
||||
"tbl": "RES_OPSTELLING",
|
||||
"key": "RES_OPSTELLING_KEY",
|
||||
"desc": "RES_OPSTELLING_OMSCHRIJVING"
|
||||
"desc": "RES_OPSTELLING_OMSCHRIJVING",
|
||||
"where": "RES_OPSTELLING_VERWIJDER IS NULL"
|
||||
},
|
||||
"filter": "exact"
|
||||
},
|
||||
|
||||
@@ -118,7 +118,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " AND isd2.bes_srtdeel_nr LIKE sd.bes_srtdeel_nr"
|
||||
+ " AND bes_srtdeel_verwijder IS NULL"
|
||||
+ " AND bd2.ins_discipline_key = dp.bes_ins_discipline_key_inkoop) voorraadmin" // Voorraadmin van gekoppelde discipline
|
||||
+ " , SUM (bi.bes_bestelling_item_aantal) aantal_intern"
|
||||
+ " , SUM (bo.bes_bestelopdr_item_aantal) aantal_intern"
|
||||
+ " , TO_NUMBER (NULL) aantal_open_order"
|
||||
+ " , TO_NUMBER (NULL) aantal_extern_geleverd"
|
||||
+ " , (SELECT isd2.bes_srtdeel_maxbestel"
|
||||
@@ -153,10 +153,12 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " , bes_v_aanwezigsrtdeel sd"
|
||||
+ " , bes_bestelling b"
|
||||
+ " , bes_bestelling_item bi"
|
||||
+ " , bes_bestelopdr_item bo"
|
||||
+ " , bes_disc_params dp"
|
||||
+ " WHERE sd.bes_srtgroep_key = g.bes_srtgroep_key"
|
||||
+ " AND bi.bes_srtdeel_key = sd.bes_srtdeel_key"
|
||||
+ " AND b.bes_bestelling_key = bi.bes_bestelling_key"
|
||||
+ " AND bi.bes_bestelopdr_item_key = bo.bes_bestelopdr_item_key"
|
||||
+ " AND g.ins_discipline_key = bd.ins_discipline_key"
|
||||
+ " AND bd.ins_discipline_key = dp.bes_ins_discipline_key"
|
||||
+ " AND sd.bes_srtdeel_verwijder IS NULL"
|
||||
@@ -209,7 +211,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " , bes_srtdeel_voorraadmax voorraadmax"
|
||||
+ " , bes_srtdeel_voorraadmin voorraadmin"
|
||||
+ " , TO_NUMBER (NULL) aantal_intern"
|
||||
+ " , SUM (bi.bes_bestelling_item_aantal) - SUM (bi.bes_bestelling_item_aantalontv) aantal_open_order"
|
||||
+ " , SUM (bi.bes_bestelling_item_aantal) - SUM (COALESCE(bi.bes_bestelling_item_aantalontv, 0)) aantal_open_order"
|
||||
+ " , TO_NUMBER (NULL) aantal_extern_geleverd"
|
||||
+ " , sd.bes_srtdeel_maxbestel maxbestel"
|
||||
+ " , sd.bes_srtdeel_minimum bestelmin"
|
||||
@@ -267,7 +269,7 @@ function bes_voorraad_list (pautfunction, params)
|
||||
+ " , bes_srtdeel_voorraadmin voorraadmin"
|
||||
+ " , TO_NUMBER (NULL) aantal_intern"
|
||||
+ " , TO_NUMBER (NULL) aantal_open_order"
|
||||
+ " , SUM (bi.bes_bestelling_item_aantalontv) aantal_extern_geleverd"
|
||||
+ " , SUM (COALESCE(bi.bes_bestelling_item_aantalontv, 0)) aantal_extern_geleverd"
|
||||
+ " , sd.bes_srtdeel_maxbestel maxbestel"
|
||||
+ " , sd.bes_srtdeel_minimum bestelmin"
|
||||
+ " , sd.bes_srtdeel_veelvoud bestelveelvoud"
|
||||
@@ -455,11 +457,11 @@ function bes_voorraad_list (pautfunction, params)
|
||||
var maxbestel = oRs("maxbestel").Value || 0; // Setting "Maximum bestelaantal is voorraad" 0=Nee, 1=Ja.
|
||||
var voorraadmin = oRs("voorraadmin").Value;
|
||||
var voorraadmax = oRs("voorraadmax").Value || 0;
|
||||
var bestelveelvoud = oRs("bestelveelvoud").Value;
|
||||
var bestelveelvoud = oRs("bestelveelvoud").Value || 1;
|
||||
var srtdeelkey = oRs("bes_srtdeel_key").Value;
|
||||
|
||||
if (tebestellen == 0 || (maxbestel > 0 && voorraad <= 0))
|
||||
return "";
|
||||
return null;
|
||||
|
||||
// Onderstaande testen zie ook function checkAmount in sel_items_tab.js.
|
||||
// 1) Is het bestelaantal maximaal de voorraad indien de setting is gezet?
|
||||
|
||||
@@ -46,7 +46,7 @@ if (afspr_key < 0) // Misschien pool reservering?
|
||||
sql = "SELECT MIN (bez_afspraak_key) bez_afspraak_key"
|
||||
+ " , MIN (rr.res_rsv_ruimte_key) res_rsv_ruimte_key"
|
||||
+ " FROM bez_afspraak ba"
|
||||
+ " , res_rsv_ruimte rr"
|
||||
+ " , res_v_aanwezigrsv_ruimte rr"
|
||||
+ " , res_reservering rrr"
|
||||
+ " WHERE rr.res_rsv_ruimte_key = ba.res_rsv_ruimte_key(+)"
|
||||
+ " AND rr.res_reservering_key = rrr.res_reservering_key"
|
||||
|
||||
@@ -300,7 +300,7 @@ function addObjecten(cHandle, highlight_ins_deel_key)
|
||||
|
||||
if (pLabelI_key > 0)
|
||||
{
|
||||
themaProps.labelThema = pLabelI_key;
|
||||
themaProps.labelThema_key = pLabelI_key;
|
||||
labelThema(cHandle, themaProps);
|
||||
}
|
||||
|
||||
|
||||
@@ -598,14 +598,76 @@
|
||||
<td class="tekst"><xsl:value-of select="TIJDSEENHEIDZORGPERIODE"/></td>
|
||||
<td class="tekst"><xsl:value-of select="DECLARATIEBEDRAG"/></td>
|
||||
<td class="tekst"><xsl:value-of select="DEBETCREDIT"/></td>
|
||||
<td class="tekst"><xsl:value-of select="REFERENTIENUMMERCREDIT"/></td>
|
||||
|
||||
|
||||
<td class="tekst"><xsl:value-of select="REFERENTIENUMMERCREDIT"/></td>
|
||||
</tr>
|
||||
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="@view = 'care_v_rap2_factuur_uren_R'">
|
||||
<style>
|
||||
.num0dec {mso-number-format:0;} .num2dec {mso-number-format:Fixed;} .tekst {mso-number-format:"\@";}
|
||||
</style>
|
||||
<table border="0" bordercolor="#ffffff" width="100%">
|
||||
<xsl:for-each select="//facilitor/rapport/rapport_data/data_row">
|
||||
|
||||
|
||||
<xsl:if test="position() = 1">
|
||||
<tr>
|
||||
<td>Factuurnr</td>
|
||||
<td>BSN</td>
|
||||
<td>NAAM</td>
|
||||
<td>Meisjesnaam</td>
|
||||
<td>Geboortedatum</td>
|
||||
<td>Geslacht</td>
|
||||
<td>Straat</td>
|
||||
<td>Huisnummer</td>
|
||||
<td>Postcode</td>
|
||||
<td>Woonplaats</td>
|
||||
<td>Telefoonnummer</td>
|
||||
<td>Mobielnummer</td>
|
||||
<td>Contactpersoon</td>
|
||||
<td>Email</td>
|
||||
<td>Opmerking</td>
|
||||
<td>Bijzonderheden</td>
|
||||
<td>Beschikkingsnummer</td>
|
||||
<td>Start indiciatie</td>
|
||||
<td>Eind indicatie</td>
|
||||
<td>Soort HV</td>
|
||||
<td>Indicatie uren</td>
|
||||
<td>Uren besteed</td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
<tr>
|
||||
<td class="tekst"><xsl:value-of select="FACTUURNUMMER"/></td>
|
||||
<td class="tekst"><xsl:value-of select="BSN"/></td>
|
||||
<td class="tekst"><xsl:value-of select="NAAM"/></td>
|
||||
<td class="tekst"><xsl:value-of select="MEISJES_NAAM"/></td>
|
||||
<td class="tekst"><xsl:value-of select="GEBOORTEDATUM"/></td>
|
||||
<td class="tekst"><xsl:value-of select="GESLACHT"/></td>
|
||||
<td class="tekst"><xsl:value-of select="STRAAT"/></td>
|
||||
<td class="tekst"><xsl:value-of select="HUISNUMMER"/></td>
|
||||
<td class="tekst"><xsl:value-of select="POSTCODE"/></td>
|
||||
<td class="tekst"><xsl:value-of select="WOONPLAATS"/></td>
|
||||
<td class="tekst"><xsl:value-of select="TELEFOONNUMMER"/></td>
|
||||
<td class="tekst"><xsl:value-of select="MOBIELNUMMER"/></td>
|
||||
<td class="tekst"><xsl:value-of select="CONTACTPERSOON"/></td>
|
||||
<td class="tekst"><xsl:value-of select="EMAIL"/></td>
|
||||
<td class="tekst"><xsl:value-of select="OPMERKING"/></td>
|
||||
<td class="tekst"><xsl:value-of select="BIJZONDERHEDEN"/></td>
|
||||
<td class="tekst"><xsl:value-of select="BESCHIKKINGSNUMMER"/></td>
|
||||
<td class="tekst"><xsl:value-of select="START_INDICATIE"/></td>
|
||||
<td class="tekst"><xsl:value-of select="EIND_INDICATIE"/></td>
|
||||
<td class="tekst"><xsl:value-of select="SOORT_HV"/></td>
|
||||
<td class="tekst"><xsl:value-of select="INDICATIE_UREN"/></td>
|
||||
<td class="tekst"><xsl:value-of select="UREN_BESTEED"/></td>
|
||||
</tr>
|
||||
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
</xsl:if>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
<%
|
||||
var cnt_key = getQParamInt("cnt_key");
|
||||
var this_cnt = cnt.func_enabled_contract(cnt_key); // Wat heb ik zoal aan rechten op dit contract?
|
||||
user.auth_required_or_abort(this_cnt.canReadAny);
|
||||
|
||||
var showall = getQParamInt("showall", 0) == 1;
|
||||
var outputmode = getQParamInt("outputmode", 0);
|
||||
%>
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
<%
|
||||
var cnt_key = getQParamInt("cnt_key", -1);
|
||||
|
||||
var this_cnt = cnt.func_enabled_contract(cnt_key); // klapt wel als geen rechten
|
||||
var this_cnt = cnt.func_enabled_contract(cnt_key);
|
||||
user.auth_required_or_abort(this_cnt.canReadAny);
|
||||
|
||||
FCLT2XMLResponse( {xmlnode:'contract', key: cnt_key });
|
||||
%>
|
||||
|
||||
@@ -38,7 +38,8 @@ var removed = false;
|
||||
for (var i = 0; i < autoopen.length; i++)
|
||||
{
|
||||
if (autoopen[i].u == autoopenurl ||
|
||||
autoopen[i].u == autoopenurl ||
|
||||
autoopen[i].u == "/" + autoopenurl ||
|
||||
"/" + autoopen[i].u == autoopenurl ||
|
||||
autoopen[i].u == "../../" + autoopenurl)
|
||||
{
|
||||
autoopen.splice(i, 1);
|
||||
|
||||
@@ -23,9 +23,13 @@ DOCTYPE_Disable = 1;
|
||||
protectRequest.validateToken();
|
||||
// TODO: Nauwkeuriger controleren
|
||||
var autfunction="WEB_PRSSYS";
|
||||
var level = getFParam("level");
|
||||
if (level == "AD")
|
||||
var autfunction="WEB_ALGMSU";
|
||||
|
||||
var authParams = user.checkAutorisation(autfunction);
|
||||
|
||||
var level = getFParam("level");
|
||||
|
||||
if (level == "BM")
|
||||
var bmname = getFParam("key");
|
||||
else
|
||||
|
||||
@@ -1001,8 +1001,10 @@ FcltMgr.window = window;
|
||||
FcltMgr._pageManager = FcltMgr.defaultManager;
|
||||
FcltMgr.IsTheManager = true;
|
||||
try
|
||||
{
|
||||
if (this.userId && parent && parent.userId && this.userId != parent.userId)
|
||||
{ // Als een van beide op /-1 eindigt niet al te hard klagen
|
||||
if (this.userId && !String(this.userId).match(/\/\-1$/)
|
||||
&& parent && parent.userId && !String(parent.userId).match(/\/\-1$/)
|
||||
&& this.userId != parent.userId)
|
||||
alert("Unexpected change from user " + parent.userId + " to " + this.userId);
|
||||
|
||||
if (parent && parent.FcltMgr && parent.FcltMgr != FcltMgr)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* $Revision$
|
||||
* $Id$
|
||||
*
|
||||
@@ -85,10 +85,27 @@ label.ed {font-weight: lighter; color: #d14b1c;}
|
||||
}
|
||||
.missing { background-color: #FFD0D0!important; }
|
||||
.attention {color: #E63600 !important;}
|
||||
.bezet, .vrij {font-weight: bold; text-align: center; padding:14px; text-transform: uppercase;}
|
||||
.bezet {background-color: #E63600; margin-bottom:6px; color: #fff;}
|
||||
.vrij {background-color: #36E600;}
|
||||
|
||||
.resruimte .ui-page,
|
||||
.resruimte .ui-content {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.bezet, .vrij {font-weight: bold; text-align: center; text-transform: uppercase;}
|
||||
.bezet {background-color: transparent; margin-bottom:6px;}
|
||||
.vrij {background-color: transparent;}
|
||||
.bezetinfo {font-size: 0.9em;}
|
||||
.resruimte div.dbezet,
|
||||
.resruimte div.dvrij {
|
||||
padding: 0 10%;
|
||||
}
|
||||
div.dbezet {background-color: #E63600; color: white;}
|
||||
div.pbezet {background-color: #E63600 !important; color: white;}
|
||||
div.dbezet .bezetinfo {color: white;}
|
||||
div.dbezet .plantime {color: #333;}
|
||||
.cvrij, .cbezet {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
#fbanner, #hbanner {
|
||||
height: 40px;
|
||||
@@ -197,6 +214,7 @@ div.subheader {
|
||||
|
||||
/* reserveringsinfoschermpje */
|
||||
.resruimte {
|
||||
text-align: center;
|
||||
}
|
||||
.resphoto {
|
||||
width: 100%;
|
||||
@@ -212,10 +230,13 @@ table.planbord {
|
||||
.resphoto img {
|
||||
margin: 0;
|
||||
max-width: 100%;
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
@media all and (min-width: 480px) {
|
||||
.resphoto img {
|
||||
min-width: 400px;
|
||||
max-height: 400px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,13 +252,39 @@ div.plantime {
|
||||
}
|
||||
.resoms {
|
||||
background-color: white;
|
||||
color: #333;
|
||||
line-height: 1.2em;
|
||||
padding: 1em;
|
||||
font-size: 0.9em;
|
||||
padding: 0.5em 1em;
|
||||
font-size: 0.95em;
|
||||
text-align: center;
|
||||
box-shadow: 2px 2px 2px #888888;
|
||||
max-width: 450px;
|
||||
max-width: 100%;
|
||||
margin: auto;
|
||||
}
|
||||
div.dbezet .resoms {
|
||||
background: none;
|
||||
color: #fff;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
@media all and (min-width: 720px) {
|
||||
.vrij, .bezet,
|
||||
.resruimte .ui-btn {
|
||||
font-size: 2em;
|
||||
}
|
||||
.bezetinfo {font-size: 1em;}
|
||||
.resoms {
|
||||
line-height: 2em;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
.resphoto img {
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
.resplan {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Set de default jQuery mobile font-weight naar lighter */
|
||||
body,
|
||||
|
||||
@@ -145,7 +145,8 @@ function FOOTER(params)
|
||||
function PAGE_START(params)
|
||||
{
|
||||
if (!params) params = {};
|
||||
%><div data-role="page" id="<%=params.id ? params.id : 'page'%>" data-theme="<%= params.datatheme ? params.datatheme : jQDataTheme%>"><%
|
||||
%><div data-role="page" id="<%=params.id ? params.id : 'page'%>" data-theme="<%= params.datatheme ? params.datatheme : jQDataTheme%>"
|
||||
<%= params.pclass?" class='"+params.pclass+"'":"" %> ><%
|
||||
}
|
||||
function PAGE_END()
|
||||
{
|
||||
@@ -154,7 +155,8 @@ function PAGE_END()
|
||||
function CONTENT_START(params)
|
||||
{
|
||||
if (!params) params = {};
|
||||
%><div data-role="content" data-theme="<%= params.datatheme ? params.datatheme : ""%>"><%
|
||||
%><div data-role="content" data-theme="<%= params.datatheme ? params.datatheme : ""%>"
|
||||
<%= params.pclass?" class='"+params.pclass+"'":"" %> ><%
|
||||
}
|
||||
function CONTENT_END()
|
||||
{
|
||||
|
||||
@@ -106,6 +106,17 @@ if (srtcontrole_key < 0 || defaultmode_key > 0)
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTMHeader.Generate({}); %>
|
||||
<style>
|
||||
.prefixcol { height: 40px;
|
||||
background-color: #00ff00;
|
||||
padding: 10px;
|
||||
}
|
||||
.ui-listview > .ui-li-has-thumb > .ui-btn,
|
||||
.ui-listview > .ui-li-static.ui-li-has-thumb {
|
||||
min-height: auto;
|
||||
padding-left: 60px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<%
|
||||
@@ -148,20 +159,16 @@ if (srtcontrole_key < 0 || defaultmode_key > 0)
|
||||
+ " WHERE COALESCE (ins_srtcontroledl_xcp_eenheid, ins_srtcontrole_eenheid) <> 0"
|
||||
+ (today != -1 ? " AND TRUNC(FAC.nextcyclusdate (i.ins_deel_key, i.ins_srtcontrole_key, 1)) <= TRUNC(sysdate) " : "");
|
||||
|
||||
function fnDetail(oRs, params)
|
||||
function fnPrefix(oRs, params)
|
||||
{
|
||||
var klikker = "";
|
||||
if (defaultmode_key > 0)
|
||||
{
|
||||
var klikker = "<img src='../Pictures/innemen.png' onclick='default_inspect({0});return false;' style='margin-right:10px;'>".format(oRs.Fields("ins_srtcontrole_key").Value)
|
||||
}
|
||||
return klikker + safe.html(oRs.Fields("ins_srtcontrole_omschrijving").Value);
|
||||
return "<img src='../Pictures/accept.png' onclick='default_inspect({0});return false;' class='prefixcol'>".format(oRs.Fields("ins_srtcontrole_key").Value)
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({sql: sql,
|
||||
keyColumn: "ins_srtcontrole_key",
|
||||
linkColumn: fncolLink,
|
||||
detailColumn: fnDetail, //"ins_srtcontrole_omschrijving",
|
||||
prefixColumn: defaultmode_key > 0?fnPrefix:null,
|
||||
detailColumn: "ins_srtcontrole_omschrijving",
|
||||
ID: "srtcontroletable",
|
||||
showAll: true,
|
||||
noSearch: true
|
||||
|
||||
@@ -302,9 +302,6 @@ NOTES/SUGGESTIONS:
|
||||
%>
|
||||
<body class="resruimte">
|
||||
<%
|
||||
PAGE_START();
|
||||
HEADER ({title: safe.html(RuimteMode ? res_ruimte_nr : res_deel_omschrijving), back:!qrc, home: !qrc});
|
||||
CONTENT_START();
|
||||
|
||||
// TODO: een list(!) van de reserveringen vanaf nu (reeds begonnen) tot einde van de dag
|
||||
// Daar kan ik op klikken en dan.... of...?
|
||||
@@ -347,6 +344,7 @@ NOTES/SUGGESTIONS:
|
||||
// times bevat nu potentiele start-tijdstippen
|
||||
|
||||
var nubezet = false;
|
||||
var helemaalvrij = false;
|
||||
var oRs = Oracle.Execute( sql );
|
||||
if (!oRs.eof)
|
||||
{
|
||||
@@ -356,34 +354,52 @@ NOTES/SUGGESTIONS:
|
||||
var schoonvan = new Date(van);
|
||||
schoonvan.setMinutes(schoonvan.getMinutes() - prepost * 60);
|
||||
if (schoonvan < times[0] && tot > now) // Bezig of begin binnen half uur
|
||||
{
|
||||
{
|
||||
var nubezet = true;
|
||||
%><div class="cbezet"><%
|
||||
}
|
||||
}
|
||||
else { // helemaal vrij
|
||||
helemaalvrij = true;
|
||||
}
|
||||
|
||||
PAGE_START({pclass: (nubezet ? "pbezet" : "pvrij") });
|
||||
HEADER ({title: safe.html(RuimteMode ? res_ruimte_nr : res_deel_omschrijving), back:!qrc, home: !qrc});
|
||||
CONTENT_START({pclass: (nubezet ? "dbezet" : "dvrij") });
|
||||
|
||||
if (nubezet)
|
||||
{
|
||||
%><div class="cbezet"><%
|
||||
// We zeggen tot wanneer de huidige reservering loopt. Garandeert niet dat die erna wel vrij is
|
||||
// Functioneel zou je je het einde van de laatste (aansluitende) reservering willen laten zien
|
||||
// Dus wanneer is-ie weer vrij (binnen de openingstijden).
|
||||
Response.write("<div class='bezet'>"+L("lcl_mobile_ruimtebezet").format(toTimeString(tot))+"</div>");
|
||||
// Dit is eigenlijk niet relevant voor een normale gebruiker
|
||||
// maar voor een eventuele noshow wel!
|
||||
if (user.checkAutorisation( "WEB_RESNOS", true))
|
||||
// KFNS#35010: ook tonen als het toch geen geheim is
|
||||
if (user.checkAutorisation( "WEB_RESNOS", true) || S("res_fe_show_plantooltip") == 1)
|
||||
{
|
||||
Response.write("<span class='bezetinfo'>"+toTimeString(van)+" - "+toTimeString(tot)+": "+ safe.html(oRs("res_rsv_ruimte_omschrijving").Value)+"/"+safe.html(oRs("contact").Value)+"</span>");
|
||||
}
|
||||
%></div><%
|
||||
}
|
||||
else {
|
||||
// nu vrij, maar naderende reservering om 'van' (dat ligt binnen ???)
|
||||
%><span class="cvrij"><%
|
||||
Response.write("<div class='vrij'>"+L("lcl_mobile_res_next").format(toTimeString(van))+"</div>");
|
||||
%></span><%
|
||||
}
|
||||
}
|
||||
else { // helemaal vrij
|
||||
%><div class="cvrij"><%
|
||||
Response.write("<div class='vrij'>"+L("lcl_mobile_res_ruimtevrij")+"</div>");
|
||||
%></div><%
|
||||
van = null; // er is geen eerstvolgende in de weg
|
||||
}
|
||||
else {
|
||||
if ( !helemaalvrij )
|
||||
{
|
||||
// nu vrij, maar naderende reservering om 'van' (dat ligt binnen ???)
|
||||
%><span class="cvrij"><%
|
||||
Response.write("<div class='vrij'>"+L("lcl_mobile_res_next").format(toTimeString(van))+"</div>");
|
||||
%></span><%
|
||||
}
|
||||
else
|
||||
{
|
||||
%><div class="cvrij"><%
|
||||
Response.write("<div class='vrij'>"+safe.html(RuimteMode ? res_ruimte_nr : res_deel_omschrijving)+"</div>")
|
||||
//Response.write("<div class='vrij'>"+L("lcl_mobile_res_ruimtevrij")+"</div>");
|
||||
%></div><%
|
||||
van = null; // er is geen eerstvolgende in de weg
|
||||
}
|
||||
}
|
||||
|
||||
// BLOCK_END();
|
||||
|
||||
%><form id="resform" name="resform" action="reserveringen.asp?submit=1<%=transitParam%>" method="post"><%
|
||||
|
||||
@@ -177,6 +177,11 @@ function __rsMakeTableRow(oRs, cnt)
|
||||
// HIER START EEN NIEUWE REGEL
|
||||
var line = "";
|
||||
|
||||
if (this.prefixColumn)
|
||||
{
|
||||
line += __fnContent(this.prefixColumn)(oRs, this.prefixColumn);
|
||||
}
|
||||
|
||||
if (this.iconColumn)
|
||||
{
|
||||
var icon = __fnContent(this.iconColumn)(oRs, this.processParams)
|
||||
|
||||
@@ -826,6 +826,10 @@ res = {
|
||||
|
||||
// PAS OP!!!: WEB_RESMSU is disciplineloos dus niet in cresult! Daardoor zijn cresult.canWrite("WEB_RESMSU") en cresult.canRead("WEB_RESMSU") altijd false.
|
||||
var haveRESMSUrights = user.checkAutorisation("WEB_RESMSU", true) != null; // Pas op: disciplineloos dus niet in cresult!
|
||||
// NYBU#33454/NYBU#34977: WEB_RESAFR moet aangemaakt worden als extra autorisatie om reserveringen te mogen aanpassen na goedkeuring.
|
||||
// Nu worden WEB_RESMSU rechten daarvoor gebruikt. Voor 2015.3 haveRESMSUrights vervangen door haveUSER50rights.
|
||||
// Met 2016.1 maken we wel een echte autorisatie.
|
||||
var haveUSER50rights = user.checkAutorisation("WEB_USER50", true) != null; // Pas op: disciplineloos dus niet in cresult!
|
||||
|
||||
var vandaag = new Date();
|
||||
var flike_days = vandaag.getTime() - rsv_ruimte_tot.getTime();
|
||||
@@ -870,7 +874,7 @@ res = {
|
||||
rresult.canWrite("WEB_RESBOF") ||
|
||||
rresult.canWrite("WEB_RESUSE")) &&
|
||||
canWritePresentPrk &&
|
||||
(!res_goedgekeurd || (res_goedgekeurd && haveRESMSUrights)) &&
|
||||
(!res_goedgekeurd || (res_goedgekeurd && haveUSER50rights)) &&
|
||||
(!notfrontend || rresult.canWrite("WEB_RESFOF") || rresult.canWrite("WEB_RESBOF"));
|
||||
rresult.canChangeCV = rresult.canChange;
|
||||
|
||||
@@ -894,6 +898,7 @@ res = {
|
||||
// Vanaf hier heeft canChange betrekking op het bovenste deel van het scherm
|
||||
// canChangeCV gaat over het onderste deel
|
||||
rresult.canChange = rresult.canChange && canWrite_ruimte;
|
||||
// MGE TODO: Onderstaande regel kan volgens mij verwijderd worden.
|
||||
rresult.canDelete = rresult.canDelete && canWrite_ruimte && !res_ruimte_extern;
|
||||
|
||||
// Had ik deze kunnen aanmaken? Dan mag hij als bron van multi's dienen
|
||||
@@ -913,7 +918,7 @@ res = {
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
rresult.canDelete = rresult.canChange && !openstaandemld && !res_ruimte_extern; // Dan kun je ook alles er afhalen tenslotte met hetzelfde effect
|
||||
rresult.canDelete = rresult.canChange && !openstaandemld && (!res_ruimte_extern || haveRESMSUrights); // Dan kun je ook alles er afhalen tenslotte met hetzelfde effect
|
||||
|
||||
rresult.canChangeFEOnly = false;
|
||||
// (als alleen) Frontend-rechten-->we controleren nog strenger
|
||||
|
||||
@@ -174,7 +174,7 @@ if (S("auto_https") && Request.ServerVariables("SERVER_PORT") != "443")
|
||||
}
|
||||
else
|
||||
{
|
||||
if (S("hsts_maxage") > 0)
|
||||
if (typeof NO_ADDHEADER == "undefined" && S("hsts_maxage") > 0)
|
||||
Response.AddHeader("Strict-Transport-Security", "max-age=" + S("hsts_maxage")); // Geen includeSubDomains, dat nekt http://facilitor.nl
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ if (Request.QueryString("orghome").Count>0) // Remember it. Share&Meet's
|
||||
|
||||
// Merk op: door onze Server.Transfer's met API's of inloggen zie je in Fiddler wel
|
||||
// eens dat X-FRAME-OPTIONS twee keer in de header komt. Slordig maar acceptabel.
|
||||
if (!S("allow_framed_facilitor"))
|
||||
if (typeof NO_ADDHEADER == "undefined" && !S("allow_framed_facilitor"))
|
||||
Response.AddHeader ("X-FRAME-OPTIONS", "SAMEORIGIN"); // voorkom ClickJacking
|
||||
|
||||
// Opdat share-and-meet cross-domain cookies werken tussen sgf12.dijkoraad.local en gewoon sgf12
|
||||
|
||||
@@ -298,6 +298,8 @@ function testpassword(prs_key, wachtwoord, pmobile)
|
||||
+ " , prs_perslid_wachtwoord_hash"
|
||||
+ " , prs_perslid_otpsecret"
|
||||
+ " , prs_perslid_otpcounter"
|
||||
+ " , prs_perslid_oslogin"
|
||||
+ " , prs_perslid_apikey"
|
||||
+ " FROM prs_perslid"
|
||||
+ " WHERE prs_perslid_key = " + prs_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
@@ -308,6 +310,8 @@ function testpassword(prs_key, wachtwoord, pmobile)
|
||||
var mobauthexp = new Date(oRs("prs_perslid_authenticatie_exp").Value);
|
||||
var otpsecret = oRs("prs_perslid_otpsecret").Value;
|
||||
var otpcounter = oRs("prs_perslid_otpcounter").Value || -1;
|
||||
var apikey = oRs("prs_perslid_apikey").Value;
|
||||
var oslogin = oRs("prs_perslid_oslogin").Value;
|
||||
oRs.Close();
|
||||
|
||||
if (otpsecret) // Die eerst maar eens controleren
|
||||
@@ -345,17 +349,25 @@ function testpassword(prs_key, wachtwoord, pmobile)
|
||||
}
|
||||
if (pmobile==1) // Mobile 'verzonnen' wachtwoord
|
||||
{
|
||||
if (mobauth != wachtwoord || !mobauth_exp || new Date() > mobauth_exp)
|
||||
if (mobauth == wachtwoord && mobauthexp && new Date() <= mobauthexp)
|
||||
{
|
||||
__Log("Mobile token check failed");
|
||||
return false;
|
||||
return true; // Goed
|
||||
}
|
||||
__Log("Mobile token check failed");
|
||||
// Wel doorgaan met gewoon wachtwoord controle, dat staan we ook toe
|
||||
}
|
||||
|
||||
// geen wachtwoord
|
||||
if (!passhash)
|
||||
return false;
|
||||
|
||||
// APItoken wachtwoord 1452611295:0pBCO67Br4Cs7kkm+zszW0JhjlM
|
||||
if (apikey && wachtwoord.match(/[0-9]{10}\:.*/))
|
||||
{
|
||||
if (protectHMAC.verify(oslogin, wachtwoord, { sleutel: apikey, expire: 60*24*30, relaxed: true })) // 30 dagen. TODO: S("fac_apitoken_auth_expire")
|
||||
return true;
|
||||
}
|
||||
|
||||
// gewoon wachtwoord
|
||||
// Noot: we zouden hier kunnen testen op
|
||||
// AND (prs_perslid_wachtwoord_exp IS NULL OR prs_perslid_wachtwoord_exp > SYSDATE)
|
||||
|
||||
@@ -997,8 +997,9 @@ var protectHMAC =
|
||||
|
||||
var sha1 = GetObject("script:"+Server.MapPath(rooturl + "/appl/shared/sha1.wsc"));
|
||||
__Log("testing hmacdata: " + str);
|
||||
//__Log("testing sleutel: "+ protectHMAC.getProtectSecret());
|
||||
var should_hmac = sha1.b64_hmac_sha1(protectHMAC.getProtectSecret(), hmacArr[0] + ":" + str);
|
||||
params.sleutel = params.sleutel || protectHMAC.getProtectSecret();
|
||||
//__Log("testing sleutel: "+ params.sleutel);
|
||||
var should_hmac = sha1.b64_hmac_sha1(params.sleutel, hmacArr[0] + ":" + str);
|
||||
sha1 = null;
|
||||
|
||||
if (hmacArr[1] != should_hmac)
|
||||
@@ -1084,7 +1085,7 @@ var protectQS =
|
||||
// Let op dat create dezelfde data hasht
|
||||
var data = user_key + ":" + file.toUpperCase() + "?" +qs;
|
||||
//__Log("testing hmacdata: " + data);
|
||||
//__Log("testing sleutel: "+ protectHMAC.getProtectSecret());
|
||||
//__Log("testing sleutel: "+ params.sleutel);
|
||||
if (params.allow_anonymous)
|
||||
params.relaxed = true;
|
||||
var is_ok = protectHMAC.verify(data, getQParam("hmac"), params); // klapt er uit bij hmac-tampering en relaxed==false
|
||||
|
||||
@@ -27,8 +27,10 @@ var chars = getQParam("k", "");
|
||||
var bAll = getQParamInt("SuggestAll", 0) == 1;
|
||||
var pModule = getQParam("flexmodule");
|
||||
|
||||
var regchars = chars.replace(/[\-\[\]\/\{\}\(\)\+\.\\\^\$\|]/g, "\\$&"); // Let op: ? en * mag blijven
|
||||
|
||||
var flexparam = flexProps(pModule, -1, null, null,
|
||||
{ getFiles: true, api2name: null, filter: chars.replace(/\*/g, '.*') });
|
||||
{ getFiles: true, api2name: null, filter: regchars.replace(/\*/g, '.*').replace(/\?/g, '.') });
|
||||
|
||||
var params = { bAll: bAll };
|
||||
var jsonResult = { } ;
|
||||
|
||||
@@ -86,7 +86,7 @@ function get_objecten_sql(alg_key, alg_niveau, prs_key, dept_key, stdmld_key)
|
||||
+ " END"
|
||||
: "''");
|
||||
sql = "SELECT d.ins_deel_key"
|
||||
+ " , " + plaatsaanduiding + " || d.ins_deel_omschrijving || ' (' || " + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key') + " || ')' deel"
|
||||
+ " , " + plaatsaanduiding + " || d.ins_deel_omschrijving || ' (' || " + lcl.xsql('s.ins_srtdeel_omschrijving', 's.ins_srtdeel_key') + " || ') '||d.ins_deel_opmerking deel"
|
||||
+ " , d.ins_alg_ruimte_key"
|
||||
+ " , d.ins_alg_ruimte_type"
|
||||
+ " , a.alg_ruimte_nr" // JGL: Ik vermoed dat deze effectief niet gebruikt wordt
|
||||
|
||||
@@ -98,7 +98,7 @@ if (device.test(device.isMobile))
|
||||
<tr><td><input class="required" type="text" maxlength="100" id="visname" name="vis_name"></td></tr>
|
||||
<tr>
|
||||
<td class="label"><label><%=L("lcl_vis_log_psw")%></label></td></tr>
|
||||
<tr><td><input type="Password" <%=(S("mobile_password") == 1?" readonly ":"")%> maxlength="30" id="vispswd" name="vis_pswd">
|
||||
<tr><td><input type="Password" <%=(S("mobile_password") == 1?" readonly ":"")%> maxlength="50" id="vispswd" name="vis_pswd">
|
||||
</td>
|
||||
</tr>
|
||||
<% if (S("login_remember_days") > 0)
|
||||
|
||||
@@ -69,7 +69,9 @@ if (user_key < 0)
|
||||
var plain = decode_b64(b64);
|
||||
if (plain.split(":").length > 1)
|
||||
{
|
||||
tryLogin(plain.split(":")[0], plain.split(":")[1]);
|
||||
var ww = plain.split(":");
|
||||
ww.shift();
|
||||
tryLogin(plain.split(":")[0], ww.join(":")); // Behoudt eventuele ':' in wachtwoord
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,8 @@ oRs.Close()
|
||||
for (var n = 1; n <= aantal_kenm; n++)
|
||||
{
|
||||
var kw = new kenmerkValues(n);
|
||||
if (typeof kw.val == 'number')
|
||||
kw.val = String(kw.val);
|
||||
var keyname = ":flex" + kw.key;
|
||||
if (kw.op == 'IS NOT NULL' || kw.op == 'IS NULL')
|
||||
sqlarr.push(keyname + " " + kw.op)
|
||||
|
||||
@@ -99,7 +99,7 @@ function send1Order(Bedrijf_key, XMLnode, OpdrKey, ordernr, Sender, cust)
|
||||
|
||||
var sqlB = "SELECT prs_bedrijfadres_url, "
|
||||
+ " NVL(prs_bedrijfadres_ordermode, 0) prs_bedrijfadres_ordermode, "
|
||||
+ " NVL(prs_bedrijfadres_xsl, 'xsl/cust.xsl') prs_bedrijfadres_xsl, "
|
||||
+ " NVL(replace(prs_bedrijfadres_xsl, '\', '/'), 'xsl/cust.xsl') prs_bedrijfadres_xsl, "
|
||||
+ " prs_bedrijfadres_certificate, "
|
||||
+ " prs_bedrijfadres_attachfile,"
|
||||
+ " prs_bedrijfadres_flexfiles,"
|
||||
@@ -180,7 +180,7 @@ function send1Order(Bedrijf_key, XMLnode, OpdrKey, ordernr, Sender, cust)
|
||||
// kan worden levert de functie een lege string. Voor orders gaan we dit blijven
|
||||
// herhalen totdat de order wel verstuurd kan worden.
|
||||
var xml_content = fetchXMLContent(XMLnode, OpdrKey, -1, "", "");
|
||||
if (xml_content != "")
|
||||
if (xml_content)
|
||||
{
|
||||
var addflexfiles = (bedrijfadres.flexfiles||S("puo_order_flexfiles")) == 1;
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@ function notificationMail(rec, p_notificationXSL, params)
|
||||
, rec("fac_notificatie_lang").value
|
||||
);
|
||||
|
||||
if (xml_content != "")
|
||||
if (xml_content)
|
||||
{
|
||||
var SubjectText = "";
|
||||
var SubjectTextXSL = "";
|
||||
@@ -298,7 +298,7 @@ function notificationSMS(rec, p_notificationXSL, params)
|
||||
, rec("fac_notificatie_lang").value
|
||||
);
|
||||
|
||||
if (xml_content != "")
|
||||
if (xml_content)
|
||||
{
|
||||
Log2File(2, "XSL file used=" + p_notificationXSL)
|
||||
SMSTextXSL = XML2HTML( xml_content
|
||||
@@ -391,7 +391,7 @@ function notificationSYS(rec, params)
|
||||
, ""
|
||||
, taal
|
||||
);
|
||||
if (xml_content != "")
|
||||
if (xml_content)
|
||||
{
|
||||
var AttachPath = "";
|
||||
var ordernr = "Onbekend";
|
||||
|
||||
@@ -38,7 +38,7 @@ function submitHTTP( p_connect
|
||||
XMLhttp.SetOption(SXH_OPTION_SELECT_CLIENT_SSL_CERT, p_bedrijfadres.certificateName);
|
||||
}
|
||||
XMLhttp.open("POST", endpoint, false, p_bedrijfadres.username, p_bedrijfadres.password);
|
||||
Log2File(1, "connect.CurrentAddress: " + endpoint);
|
||||
Log2File(2, "connect.CurrentAddress: " + endpoint);
|
||||
|
||||
// De volgende regels zijn alleen nodig als het certificaat (nog) niet vertrouwd wordt.
|
||||
// Op te lossen door cacert.der van csnet te installeren
|
||||
|
||||
@@ -74,7 +74,7 @@ function submitDOMXSLSOAP( p_connect
|
||||
XMLhttp.setOption(SXH_OPTION_SELECT_CLIENT_SSL_CERT, p_bedrijfadres.certificateName);
|
||||
}
|
||||
XMLhttp.open("POST", endpoint, false, p_bedrijfadres.username, p_bedrijfadres.password); // async=false dus synchroon
|
||||
Log2File(1, "connect.CurrentAddress: " + endpoint);
|
||||
Log2File(2, "connect.CurrentAddress: " + endpoint);
|
||||
|
||||
// De volgende regels zijn alleen nodig als het certificaat (nog) niet vertrouwd wordt.
|
||||
// Op te lossen door cacert.der van csnet te installeren
|
||||
|
||||
@@ -123,7 +123,7 @@ function fetchXMLContent( node
|
||||
var sql = "SELECT xml.make_xml2(" + sql_params + ") xml_blob FROM dual";
|
||||
Log2File(2, sql);
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var xml_content = oRs("xml_blob").Value;
|
||||
var xml_content = oRs("xml_blob").Value||"";
|
||||
oRs.Close();
|
||||
if (xml_content)
|
||||
Log2File(2, "XML blob is {0} karakters.".format(xml_content.length));
|
||||
|
||||
Reference in New Issue
Block a user