20 Commits

Author SHA1 Message Date
Jos Groot Lipman
7bad3e81eb FCLT#61926 Aanmaken gebruiker via JWT/SAML geeft eerste keer 'Expired' melding
svn path=/Website/branches/v2019.2/; revision=46353
2020-03-24 15:09:07 +00:00
Jos Groot Lipman
f608627448 FCLT#61700 hot news alleen voor WEB_PRSSYS en WEB_FACMGT
svn path=/Website/branches/v2019.2/; revision=46168
2020-03-09 11:42:07 +00:00
Suzan Wiegerinck
051f08eb60 FCLT#61555: Mogelijkheid voor posten notities naar Topdesk Change via TD API
svn path=/Website/branches/v2019.2/; revision=45995
2020-02-26 15:13:08 +00:00
Jos Groot Lipman
dc490bb8fe Release 2019.2 Gold E
svn path=/Website/branches/v2019.2/; revision=45921
2020-02-20 14:07:45 +00:00
Erik Groener
b46fdb89e0 UWVA#61386 Extra release 2019.2 voor UWV
svn path=/Website/branches/v2019.2/; revision=45885
2020-02-18 15:56:54 +00:00
Alex Tiehuis
95d95cd57d FCLT#57249 Push berichten komen niet aan
svn path=/Website/branches/v2019.2/; revision=45729
2020-02-06 10:50:07 +00:00
Jos Groot Lipman
ad1ca3bb40 FCLT#61209 Import van ARAI_TEST kon tot productieverstoring leiden
svn path=/Website/branches/v2019.2/; revision=45691
2020-02-05 08:14:54 +00:00
Jos Groot Lipman
8b014fdbf6 Fac-verify ook laten windows (C:) drive laten controleren
svn path=/Website/branches/v2019.2/; revision=45630
2020-01-30 13:14:23 +00:00
Jos Groot Lipman
656b6582ea Fac-verify ook laten controleren of een externe url is te benaderen
svn path=/Website/branches/v2019.2/; revision=45624
2020-01-30 08:41:53 +00:00
Marcel Bourseau
dbebb8eca6 MARX#60974: Filenaam van embedded PDF in de UBL
svn path=/Website/branches/v2019.2/; revision=45611
2020-01-28 14:31:19 +00:00
Suzan Wiegerinck
144cbc53b3 FCLT#61112: Reserveren van vervallen objecten via mobile mogelijk
svn path=/Website/branches/v2019.2/; revision=45601
2020-01-28 08:44:18 +00:00
Arthur Egberink
a1fc8ffdbb YKPN#60847 -- Projecten in calendar tonen
svn path=/Website/branches/v2019.2/; revision=45600
2020-01-28 08:40:25 +00:00
Jos Groot Lipman
b89167fd85 FCLT#61003 Infobord zonder rapport wisselde niet goed van verdieping
svn path=/Website/branches/v2019.2/; revision=45598
2020-01-28 08:10:03 +00:00
Erik Groener
f395f12f71 AADS#61082 Reservering komt meerdere malen terug in overzicht
svn path=/Website/branches/v2019.2/; revision=45583
2020-01-27 08:51:16 +00:00
Jos Groot Lipman
fb941d7ee3 FCLT#61056 lek in authenticatie via X-FACILITOR-ACCESS-TOKEN
svn path=/Website/branches/v2019.2/; revision=45544
2020-01-22 14:24:52 +00:00
Jos Groot Lipman
20b2cff17f FCLT#60353 Allereerste app-registratie is natuurlijk ook meteen een 'login'
svn path=/Website/branches/v2019.2/; revision=45542
2020-01-22 12:24:22 +00:00
Jos Groot Lipman
e70971d111 KFSG#60873 RES_DEEL foto niet goed aanklikbaar
svn path=/Website/branches/v2019.2/; revision=45526
2020-01-21 09:43:27 +00:00
Jos Groot Lipman
d6207ac5ca FCLT#60353 Notificaties nieuwe App via Firebase
svn path=/Website/branches/v2019.2/; revision=45524
2020-01-21 08:46:42 +00:00
Jos Groot Lipman
783c274781 Verify-files ook controleren op readonly zodat je weet of het netjes gecommit is.
Daarnaast filenamen voor de zekerheid HTML-safe maken

svn path=/Website/branches/v2019.2/; revision=45521
2020-01-20 16:12:04 +00:00
Jos Groot Lipman
df29d6954b FCLT#60353 Notificaties nieuwe App via Firebase
svn path=/Website/branches/v2019.2/; revision=45514
2020-01-20 14:31:12 +00:00
31 changed files with 202 additions and 97 deletions

View File

@@ -62,12 +62,14 @@ function model_aut_client_perslid(params)
"pushtoken": {
"dbs": "aut_client_perslid_pushtoken",
"label": L("aut_client_perslid_pushtoken"),
"typ": "varchar"
"typ": "varchar",
"filter": "exact"
},
"refreshtoken": {
"dbs": "aut_client_perslid_refreshtkn",
"label": L("aut_client_perslid_refreshtoken"),
"typ": "varchar"
"typ": "varchar",
"filter": "exact"
},
"refreshdate": {
"dbs": "aut_client_perslid_refreshdate",
@@ -77,7 +79,8 @@ function model_aut_client_perslid(params)
"accesstoken": {
"dbs": "aut_client_perslid_accesstoken",
"label": L("aut_client_perslid_accesstoken"),
"typ": "varchar"
"typ": "varchar",
"filter": "exact"
},
"accessdate": {
"dbs": "aut_client_perslid_accessdate",

View File

@@ -256,7 +256,7 @@ function model_prs_perslid(params)
{
if (user.prs_perslid_apikey() && user.oslogin())
{
this.fields["authtoken"] = { dbs: "prs_perslid_apikey", typ: "varchar", val: fnApiToken };
this.fields["authtoken"] = { dbs: "prs_perslid_apikey", typ: "varchar", val: fnApiToken, filter: "exact" };
}
}

View File

@@ -1218,8 +1218,8 @@ function process_claim(claim, idp_data, params)
// We zijn nu in principe ingelogd maar er kunnen nog extra voorwaarden zijn waarom het toch niet mag
// Dan wordt je alsnog uitgelogd
var alles_ok = user_key > 0;
if (alles_ok && idp_data.authorization && !user.has(idp_data.authorization.id)) // gebruiker moet deze autorisatie hebben
var alles_ok = user_key > 0 || (idp_data.autocreate.id & 1);
if (user_key > 0 && idp_data.authorization && !user.has(idp_data.authorization.id)) // gebruiker moet deze autorisatie hebben
alles_ok = false;
if (alles_ok)

View File

@@ -64,6 +64,7 @@ var JSON_Result = true;
"refreshdate" : new Date(),
"accesstoken" : '1$' + customerId + "_" + shared.random(32), // Does not expire yet?
"accessdate" : new Date(),
"login" : new Date(),
"person" : user_key,
"pushtoken" : push_token || (customerId + "_" + shared.random(32))
}

View File

@@ -346,7 +346,8 @@ if (user_key < 0 && S("os_logon")
}
// Tenslotte proberen we automatische iDP's
if (user_key < 0
var nosso = getQParamInt("nosso", 0) == 1;
if (user_key < 0 && !nosso
&& typeof Session("no_sso") == "undefined"
&& !Request.ServerVariables("HTTP_X_FACILITOR_API_KEY").Count
&& !Request.QueryString("APIKEY").Count)

View File

@@ -355,6 +355,9 @@ function bez_list(pautfunction, params)
sql += ", 0 authorized"; // zou niet voor moeten komen dus niet geautoriseerd
}
sql += ", rr.res_ruimte_extern_id"
+ ", rrr.res_rsv_ruimte_externnr";
sql += ", (SELECT COUNT (ins_deel_key)"
+ " FROM (SELECT i.ins_deel_key"
+ " , i.ins_alg_ruimte_key"
@@ -840,9 +843,10 @@ function bez_list(pautfunction, params)
tExpire = oRs("tExpire").Value;
}
var ruimte_extern = ((oRs("res_ruimte_extern_id").Value != null) || (oRs("res_rsv_ruimte_externnr").Value != null));
var aantaldone = oRs("aantaldone").Value;
var eEdit = (fronto || backo || (tVan > tExpire));
var eDelete = (canDelete || (tVan > tExpire)) && aantaldone == 0;
var eDelete = (canDelete || (tVan > tExpire)) && !ruimte_extern && aantaldone == 0;
var data = {eEdit: eEdit, eDelete: eDelete };
return data;

View File

@@ -41,10 +41,17 @@ if (afspraak_key == -1)
if (!oRs.eof)
{
afspraak_key = oRs("bez_afspraak_key").Value;
var sql_r = "SELECT rrr.res_rsv_ruimte_externnr"
+ " FROM res_rsv_ruimte rrr"
+ " WHERE rrr.res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRs_r = Oracle.Execute(sql_r);
canChange = oRs_r("res_rsv_ruimte_externnr").Value != null;
oRs_r.Close();
}
else // Eerste bezoeker bij een reservering niet toestaan voor externe reserveringen
{
sql = "SELECT res_ruimte_extern_id"
+ " , rrr.res_rsv_ruimte_externnr"
+ " FROM res_rsv_ruimte rrr"
+ " , res_ruimte_opstelling ro"
+ " , res_ruimte rr"
@@ -52,7 +59,7 @@ if (afspraak_key == -1)
+ " AND rr.res_ruimte_key = ro.res_ruimte_key"
+ " AND rrr.res_rsv_ruimte_key = " + rsv_ruimte_key;
oRs = Oracle.Execute(sql);
if (!oRs.Eof && oRs("res_ruimte_extern_id").Value != null)
if (!oRs.Eof && (oRs("res_ruimte_extern_id").Value != null || oRs("res_rsv_ruimte_externnr").Value != null))
canChange = false;
oRs.Close();
}

View File

@@ -162,6 +162,7 @@ if (fac_usrrap_key > -1)
$("#MMap")[0].src = mapper; // Forceer refresh
if ($("#RRap").length)
$("#RRap")[0].src = rapper;
}

View File

@@ -15,6 +15,7 @@ DOCTYPE_Disable = true;
ANONYMOUS_Allowed = 1;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/xml_converter.inc" -->
<%
@@ -61,7 +62,10 @@ ANONYMOUS_Allowed = 1;
case "change": topdesk_url = "/tas/api/operatorChanges";
switch (methode)
{
case "POST":
case "POST": topdesk_url += "";
break;
case "PATCH": topdesk_url += "/number/" + params.data.get_id;
break;
}
break;
}
@@ -76,7 +80,7 @@ ANONYMOUS_Allowed = 1;
http_request.open(methode, topdesk_url, false); // Synchroon
http_request.setRequestHeader("Authorization", topdesk_aut);
http_request.setRequestHeader("Accept", "application/json");
if (methode == "PUT" || methode == "POST")
if (methode == "PUT" || methode == "POST" || methode == "PATCH")
{
http_request.setRequestHeader("Content-Type", "application/json");
http_request.send(JSON.stringify(params.data));

View File

@@ -657,6 +657,7 @@ function sqlTracking(refkey, node)
+ " , res_v_aanwezigrsv_deel dd"
+ " WHERE rr.res_status_bo_key IS NULL AND dd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
+ " AND (rr.res_rsv_ruimte_van BETWEEN SYSDATE - " + S("facilitiespast_res") + " AND SYSDATE + " + S("facilitiesfuture_res") + " OR rr.res_rsv_ruimte_van IS NULL)"
+ " AND rr.res_rsv_ruimte_host_key <> rr.res_rsv_ruimte_contact_key"
+ " UNION ALL " // 5 Host cateringreservering dirtlevel van de onderliggenden bepalen?
+ "SELECT rr.res_rsv_ruimte_host_key prs_perslid_key"
+ " , TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr"
@@ -681,6 +682,7 @@ function sqlTracking(refkey, node)
+ " , res_v_aanwezigrsv_artikel dd"
+ " WHERE rr.res_status_bo_key IS NULL AND dd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key "
+ " AND (rr.res_rsv_ruimte_van BETWEEN SYSDATE - " + S("facilitiespast_res") + " AND SYSDATE + " + S("facilitiesfuture_res") + " OR rr.res_rsv_ruimte_van IS NULL)"
+ " AND rr.res_rsv_ruimte_host_key <> rr.res_rsv_ruimte_contact_key"
+ " UNION " // 6 Contact cateringreservering dirtlevel van de onderliggenden bepalen?
+ "SELECT rr.res_rsv_ruimte_contact_key prs_perslid_key"
+ " , TO_CHAR (rr.res_reservering_key) || '/' || rr.res_rsv_ruimte_volgnr"

View File

@@ -21,6 +21,9 @@ if (hasNews)
function injectNews ()
{
if (!user.has("WEB_PRSSYS") && !user.has("WEB_FACMGT"))
return;
// Hot news overruled forum berichten
if (Application("portalalert"))
{
@@ -33,7 +36,7 @@ function injectNews ()
Response.Write('</script>');
}
return; // uitgeschakeld
return; // rest is uitgeschakeld
var hasNews = S("fac_nieuws_forum_url") && S("fac_nieuws_forum_max") > 0 &&
(user.checkAutorisation("WEB_PRSSYS", true) || user.checkAutorisation("WEB_FACMGT", true));

View File

@@ -701,15 +701,11 @@ if (0) checker("Charset",
}
)
checker("Free diskspace",
function ()
{
function driveInfo(drvPath)
{
res = resultcodes.unknown;
try
{
drvPath = Server.MapPath("../../");
//return { message: drvPath};
var d = fso.GetDrive(fso.GetDriveName(drvPath));
var totaltxt = (d.TotalSize/1024/1024/1024).toFixed(1) + " GB";
var free = d.AvailableSpace / d.TotalSize * 100;
@@ -720,7 +716,7 @@ checker("Free diskspace",
var availtxt = (d.AvailableSpace/1024/1024/1024).toFixed(1) + " GB (" + free + "%)";
txt = "Drive " + drvPath.toUpperCase();
//txt += "<br>Volumename " + d.VolumeName;
txt += "<br>Volumename " + d.VolumeName;
//txt += "<br>Free Space: " + (d.FreeSpace/1024/1024/1024).toFixed(1) + " GB";
txt += "<br>Total Space: " + totaltxt
+ "<br>Available Space: " + availtxt;
@@ -747,6 +743,20 @@ checker("Free diskspace",
info: "Could not read"};
}
return { result: res, message: txt, info: availtxt };
}
checker("Free diskspace Windows",
function ()
{
var drvPath = "C:";
return driveInfo(drvPath);
}
)
checker("Free diskspace",
function ()
{
var drvPath = Server.MapPath("../../");
return driveInfo(drvPath);
}
)
@@ -1079,7 +1089,7 @@ if (this.S) // (deze test werkt niet vanuit verify.asp.inc)
if (http_request.status < 200 || http_request.status > 299)
{
result.result = resultcodes.error;
result.message += "<br>http_request error " + http_request.status + ": (" + http_request.statusText + ")";
result.message += "<br>http_request error: " + http_request.status + " " + http_request.statusText;
}
else
{
@@ -1095,13 +1105,50 @@ if (this.S) // (deze test werkt niet vanuit verify.asp.inc)
catch(e)
{
result.result = resultcodes.error;
result.message += "<br>http_request error " + e.description;
result.message += "<br>http_request error: " + e.description;
}
return result;
}
)
}
checker("External url (testing https://facilitor.nl)",
function ()
{
var puo_web_url = "https://facilitor.nl/";
var result = { result: resultcodes.ok, message: "Checking external url: " + puo_web_url };
try
{
var http_request = new ActiveXObject("Msxml2.ServerXMLHTTP.6.0");
http_request.open("GET", puo_web_url, false); // Synchroon
// Het hoeft niet echt lang te duren!
var lResolve = 1 * 1000;
var lConnect = 1 * 1000;
var lSend = 2 * 1000;
var lReceive = 2 * 1000;
http_request.setTimeouts(lResolve, lConnect, lSend, lReceive);
http_request.send();
if (http_request.status < 200 || http_request.status > 299)
{
result.result = resultcodes.warning;
result.message += "<br>http_request response: " + http_request.status + " " + http_request.statusText;
}
else
{
result.message += "<br>" + http_request.status + " " + http_request.statusText;
}
}
catch(e)
{
result.result = resultcodes.warning;
result.message += "<br>http_request error: " + e.description;
result.message += "<br>Is a firewall blocking traffic? Sending orders to external systems may fail.";
}
return result;
}
)
checker("Logfiles",
function ()
{

View File

@@ -47,13 +47,14 @@ if (SHAinfo.changed.length)
{
%><h2>Changed files (<%=SHAinfo.changed.length%>)</h2>
<table class='rstable'>
<thead><tr><th>File</th><th>Message</th><th>Date</th></tr></thead>
<thead><tr><th>File</th><th>Message</th><th>Date</th><th>Readonly</th></tr></thead>
<%
var cntbad = 0;
for (var i in SHAinfo.changed)
{
var file = SHAinfo.changed[i];
Response.Write("<tr><td>" + file.fname + "</td><td>" + file.message + "</td><td>" + toDateTimeString(file.date, true) + "</td></tr>");
Response.Write("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td></tr>".format(safe.html(file.fname), safe.html(file.message),
toDateTimeString(file.date, true), file.readonly?"ok":"false"));
}
%></table><%
}
@@ -70,7 +71,7 @@ if (SHAinfo.missing.length)
for (var i in SHAinfo.missing)
{
var file = SHAinfo.missing[i];
Response.Write("<tr><td>" + file.fname + "</td></tr>");
Response.Write("<tr><td>{0}</td></tr>".format(safe.html(file.fname)));
}
%></table><%
}
@@ -79,13 +80,13 @@ if (SHAinfo.unknown.length)
{
%><h2>Unknown files (<%=SHAinfo.unknown.length%>)</h2>
<table class='rstable'>
<thead><tr><th>File</th><th>Date</th></tr></thead>
<thead><tr><th>File</th><th>Date</th><th>Readonly</th></tr></thead>
<%
var cntbad = 0;
for (var i in SHAinfo.unknown)
{
var file = SHAinfo.unknown[i];
Response.Write("<tr><td>" + file.fname + "</td><td>" + toDateTimeString(file.date, true) + "</td></tr>");
Response.Write("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>".format(safe.html(file.fname), toDateTimeString(file.date, true), file.readonly?"ok":"false"));
}
%></table><%
}

View File

@@ -83,6 +83,7 @@ function findSHAinfo()
{
var ff = fso.GetFile(Server.MapPath("../" + fname));
file.date = new Date(ff.DateLastModified);
file.readonly = (ff.attributes & 1) == 1;
try
{
var sha_is = oCrypto.hex_sha1_file(Server.MapPath("../" + fname));
@@ -129,7 +130,10 @@ function findSHAinfo()
// We zouden kunnen zoeken of zijn sha bij de 'missing' voorkomt
// wat een rename aangeeft.
//var sha1 = oCrypto.hex_sha1_file(rootdir + scanDir + filename);
shainfo.unknown.push ({ fname: "/" + scanDir + filename, date: new Date(fil.DateLastModified) });
shainfo.unknown.push ({ fname: "/" + scanDir + filename,
date: new Date(fil.DateLastModified),
readonly: (fil.attributes & 1) == 1
});
}
}
// En nu recursief alle subfolders.

View File

@@ -572,12 +572,14 @@ function extractAttachments(safeSourceXML, filename, flexcode)
__Log("Variabele nr_att_2: " + nr_att_2);
for (var i=0; i < Attachments.length; i++)
{
var filename = XMLval(Attachments[i], "cbc:ID");
if (!filename)
{ // Dan als attribute 'filename' zoeken
// Eerst maar eens het attribute 'filename' zoeken
var filename = "";
var Attachment = Attachments[i].getElementsByTagName("cbc:EmbeddedDocumentBinaryObject");
if (Attachment.length)
var filename = Attachment[0].getAttribute("filename");
filename = Attachment[0].getAttribute("filename");
if (!filename)
{ // Als geen filenaam-attribuut aanwezig, dan proberen we element ID
filename = XMLval(Attachments[i], "cbc:ID");
}
var safefilename = safe.filename(filename);
if (!params.isAllowedName(safefilename))

View File

@@ -19,7 +19,7 @@ var JSON_Result = true;
protectRequest.validateToken();
var msg = "Facilitor {0} test notification\nSent from {1}\nSent to {2} ({3})\nSubmitted at {4}".format(customerId, HTTP.urlzelf(), user.naam(), user_key, toDateTimeString(new Date(), true));
var puo_result = putorders.sendAPP(user_key, msg);
var puo_result = putorders.sendAPP(user_key, msg, "appl/pda/user_info.asp");
var result = { success: true };

View File

@@ -18,6 +18,7 @@ var JSON_Result = true;
var date_from = new Date(getQParamInt("start") * 1000);
var date_to = new Date(getQParamInt("end") * 1000);
var behkey = getQParamInt("bk");
var disckey = getQParamInt("disc");
function fnNodeColor(oRs) {
var lecolor = "#ccc";
@@ -42,7 +43,7 @@ var JSON_Result = true;
+ " FROM ("
+ "SELECT mld_melding_key item_key"
+ ", sd.ins_srtdiscipline_prefix||mld_melding_key item" // +prefix
+ ", mld_stdmelding_omschrijving detail"
+ ", mld_melding_onderwerp detail"
+ ", mld_melding_datum datum1"
+ ", mld_melding_einddatum datum2"
+ ", mld_melding_status"
@@ -52,10 +53,11 @@ var JSON_Result = true;
+ ", ins_srtdiscipline sd"
+ " WHERE m.mld_stdmelding_key = s.mld_stdmelding_key"
+ " AND s.mld_ins_discipline_key = d.ins_discipline_key"
+ (disckey==-1?"":" AND d.ins_discipline_key = " + disckey)
+ " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND m.mld_melding_status IN (0,2,4,7)" // lopende
+ " AND m.fac_activiteit_key IS NULL"
+ " AND m.mld_melding_behandelaar_key = " + behkey
+ (behkey==-1?"":" AND m.mld_melding_behandelaar_key = " + behkey)
+ " AND m.mld_melding_datum <= " + date_to.toSQL(true)
+ " AND m.mld_melding_einddatum >= " + date_from.toSQL(true)
+ ")";

View File

@@ -55,7 +55,7 @@ FCLTHeader.Requires({ js: [rooturl+"/appl/pda/modernizr-3.3.0.custom.min.js"],
DeelMode = true;
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;
sql = "SELECT MAX(res_deel_key) res_deel_key FROM res_deel WHERE res_deel_verwijder IS NULL AND (res_deel_vervaldatum IS NULL or res_deel_vervaldatum > sysdate ) AND res_ins_deel_key="+ins_key;
var oRs = Oracle.Execute(sql);
if (!oRs("res_deel_key").value)
{

View File

@@ -201,6 +201,7 @@ table.planbord input[type=radio] { height:16px; width: 16px; }
border-right-style: solid;
border-right-color: #808080;
}
.res_extern { background-color: #4287F5; color: #fff;} /* Via API (extern_id) gereserveerd */
div.gepland { border-left: 1px solid #999; border-right: 1px solid #999; }
table.planbord4 div.gepland { border-left: 0px solid #999; border-right: 0px solid #999; }

View File

@@ -670,6 +670,7 @@ res = {
+ " , r.res_rsv_ruimte_verwijder"
+ " , r.res_activiteit_key"
+ " , r.res_rsv_ruimte_afgerond"
+ " , r.res_rsv_ruimte_externnr"
+ " , ra.res_activiteit_notfrontend"
+ " , ra.res_activiteit_meteindtijd"
+ " FROM res_rsv_ruimte r,"
@@ -692,6 +693,7 @@ res = {
var res_opstel_key = roRs("res_ruimte_opstel_key").Value;
var notfrontend = roRs("res_activiteit_notfrontend").Value;
var met_eindtijd = roRs("res_activiteit_meteindtijd").Value == 1;
var res_ruimte_extern = roRs("res_rsv_ruimte_externnr").Value != null;
// Bepaal discipline parkeerplaatsen voor reserveringen. Deze moet uitgesloten worden voor de autorisatie controle.
// Als de reservering *voor* earliest_expire ligt gaan we moeilijk doen
@@ -828,7 +830,6 @@ res = {
// Na de disciplines van de voorzieningen nu als laatste de discipline van de ruimte van de reservering.
var canWrite_ruimte = true;
var res_ruimte_extern = false;
if (alg_ruimte_key == null && (typeof pdisc_key == "undefined" || pdisc_key == null))
{ // "R" reservering, bepaal *ook* discipline van de ruimte en alg_ruimte_key
var sql = "SELECT MIN (alg_ruimte_key) alg_ruimte_key"
@@ -862,7 +863,7 @@ res = {
}
var disc_key_r = oRs("res_discipline_key").Value;
alg_ruimte_key = oRs("alg_ruimte_key").Value;
res_ruimte_extern = oRs("res_ruimte_extern_id").Value != null;
res_ruimte_extern = res_ruimte_extern || oRs("res_ruimte_extern_id").Value != null;
disc_key_arr.push(disc_key_r);
oRs.Close();
// Rechten op ruimte controleren met afzonderlijke query (niet samen met catering).
@@ -907,6 +908,7 @@ res = {
rresult.res_reservering_key = res_reservering_key;
rresult.rsv_ruimte_verwijder = rsv_ruimte_verwijder;
rresult.res_met_eindtijd = met_eindtijd;
rresult.res_ruimte_extern = res_ruimte_extern;
rresult.canReadNoShow = rresult.canRead("WEB_RESNOS");
rresult.canWriteNoShow = rresult.canWrite("WEB_RESNOS");
@@ -1553,6 +1555,7 @@ res = {
+ " , rsv_prepost.res_disc_params_preposttime"
+ " , ro.res_ruimte_opstel_key"
+ " , ro.res_ruimte_opstel_tijd"
+ " , rv.res_rsv_ruimte_externnr"
+ " FROM res_v_aanwezigrsv_ruimte rv"
+ " , res_ruimte_opstelling ro"
+ " , res_activiteit ra"
@@ -1619,6 +1622,8 @@ res = {
data.na_koppel = 1;
if (oRs("res_rsv_ruimte_dirtlevel").Value)
data.dirtlevel = oRs("res_rsv_ruimte_dirtlevel").Value;
if (oRs("res_rsv_ruimte_externnr").Value)
data.extern_api = true;
if (params.anonymous && data.dirtlevel > 0)
{

View File

@@ -1686,7 +1686,7 @@ var timeFrom = getQParamFloat("timefrom", S("res_t1"));
autlevel: authparams.PRSwritelevel,
onChange: "changeNameH",
moreinfo: urole!='fe',
readonly: authparams.PRSwritelevel==9 || ordernr_reado,
readonly: authparams.PRSwritelevel==9 || ordernr_reado || rrr.res_ruimte_extern,
required: true,
trclass: (S("res_allow_for_others")?"":"hidden")
});
@@ -1701,10 +1701,10 @@ var timeFrom = getQParamFloat("timefrom", S("res_t1"));
kostenplaatsKey: rrr.kostenplaats_key,
filtercode: "AA", // Alleen actieve kostenplaatsen kunnen selecteren "All Active". Huidige waarde als initi<74>le waarde kan bij kostenplaatsen altijd.
urlAdd: [{ urlParam: "prs_key", field: "person" }],
readonly: ordernr_reado,
readonly: ordernr_reado || rrr.res_ruimte_extern,
kptoggle: { ischecked: rrr.kosten_klant,
onChange: "changeKostK(this);",
readonly: ordernr_reado,
readonly: ordernr_reado || rrr.res_ruimte_extern,
hidden: (frontend) },
required: rrr.srtactiviteit_kpnverplicht == 1 ||
((rrr.res_ruimte_key > 0 && restype == "R" && rri.kpnverplicht) ||
@@ -1729,7 +1729,7 @@ var timeFrom = getQParamFloat("timefrom", S("res_t1"));
}
if (rrr.srtactiviteit_metopmerk)
{
RWTEXTAREATR("opmerk", "fldomschr", L("lcl_remark"), rrr.rsv_ruimte_opmerking, {html: "rows='4'" + (ordernr_reado ? " readonly" : ""), maxlength: 2000});
RWTEXTAREATR("opmerk", "fldomschr", L("lcl_remark"), rrr.rsv_ruimte_opmerking, {html: "rows='4'" + (ordernr_reado || rrr.res_ruimte_extern ? " readonly" : ""), maxlength: 2000});
}
%>
@@ -1763,6 +1763,7 @@ var timeFrom = getQParamFloat("timefrom", S("res_t1"));
, { initKey: rrr.status_flag
, label: L("lcl_res_flags")
, onChange: "OnChangeSubstatus()"
, readonly: rrr.res_ruimte_extern
, trclass: "showflag"
}
);

View File

@@ -320,7 +320,10 @@ function make_plan_regel(room, ar, params, nr_days, hour_px)
res_flag = "<div style=\"float:left\">" + I("fa-circle fa-fw respl resflag"+ar[ci].flag_status) + "</div>";
}
if (!ar[ci].na_koppel && !not_available && !params.forSelectRoom)
if (ar[ci].extern_api)
theClass += " res_extern";
if (!ar[ci].na_koppel && !ar[ci].extern_api && !not_available && !params.forSelectRoom)
theClass += " click";
var div = "<div class='"+theClass+"'";

View File

@@ -151,7 +151,7 @@ hour_px = res.hour_px(width_px - 400, nr_days);
var blokje = hour_px * <%=safe.jsfloat(S("res_h"))%>;
var startx; // start positie van het slepen (left);
var starty; // start positie van het slepen (top);
$('div.gepland:not(.res_nietvrij,.res_lunchblok,.overflowright,.overflowleft.continueright,.continueleft,.extern)').resizable(
$('div.gepland:not(.res_nietvrij,.res_lunchblok,.overflowright,.overflowleft.continueright,.continueleft,.extern,.res_extern)').resizable(
{ containment: '#tab_room_sched',
grid: [blokje, 12],
handles: 'e, w',
@@ -244,7 +244,7 @@ hour_px = res.hour_px(width_px - 400, nr_days);
$('table.planbord').each(function ()
{
var x, y;
var element = $(this).find('div.gepland:not(.overflowleft,.overflowright)');
var element = $(this).find('div.gepland:not(.overflowleft,.overflowright,.res_extern)');
element.draggable(
{ cursor: 'crosshair' ,
containment: $(this), //.find(".plantd.reserv"),
@@ -410,6 +410,7 @@ while (nnregels < 8)
<tr><td class="res_vervallen"><%= L("lcl_vervallen") %></td></tr>
<tr><td class="res_blok"><%= L("lcl_blokkade") %></td></tr>
<tr><td class="res_nietvrij"><%= L("lcl_niet_beschikbaar") %></td></tr>
<tr><td class="res_extern"><%= L("lcl_reservation_extern") %></td></tr>
<tr><td class="res_fatalicon"><%=I("fa-times")%>&nbsp;<% = L("lcl_dirty") %></td></tr>
<% if (urole != 'fe') { %>
<tr><td><%=I("fa-wrench")%>&nbsp;<% = L("lcl_complains") %></td></tr>

View File

@@ -61,6 +61,7 @@ FCLTHeader.Requires({plugins: ["jQuery"]})
+ " rrr.res_rsv_ruimte_tot, "
+ " trunc(rrr.res_rsv_ruimte_tot) - trunc(rrr.res_rsv_ruimte_van) meerdaags, "
+ " rrr.res_activiteit_key, "
+ " rrr.res_rsv_ruimte_externnr,"
+ " sa.res_srtactiviteit_prefix, "
+ " sa.res_srtactiviteit_key,"
+ " res_rsv_ruimte_noshow, " // Oude stijl
@@ -68,7 +69,8 @@ FCLTHeader.Requires({plugins: ["jQuery"]})
+ " res_rsv_ruimte_volgnr, "
+ " res_rsv_ruimte_dirtlevel, "
+ " res_rsv_ruimte_aanmaak, "
+ " alg_ruimte_key, res_ruimte_opstel_key,"
+ " alg_ruimte_key,"
+ " res_ruimte_opstel_key,"
+ " COALESCE(res_rsv_ruimte_opmerking,'') res_rsv_ruimte_opmerking,"
+ " rrr.res_rsv_ruimte_contact_key,"
+ " rrr.res_rsv_ruimte_host_key,"
@@ -110,6 +112,7 @@ FCLTHeader.Requires({plugins: ["jQuery"]})
status_bo_key : oRs("res_status_bo_key").value || 2, // let op: bij CV is deze NULL
status_flag : oRs("res_rsv_ruimte_flag").value||0,
activiteit_key : oRs("res_activiteit_key").value,
res_ruimte_extern : oRs("res_rsv_ruimte_externnr").Value != null,
rsv_ruimte_van : new Date(oRs("res_rsv_ruimte_van").value),
rsv_ruimte_tot : new Date(oRs("res_rsv_ruimte_tot").value),
rsv_ruimte_meerdaags: oRs("meerdaags").value!=0,
@@ -167,7 +170,7 @@ FCLTHeader.Requires({plugins: ["jQuery"]})
oRs = Oracle.Execute(sql);
rrr.res_ruimte_key = oRs("res_ruimte_key").Value;
rrr.alg_locatie_key = oRs("alg_locatie_key").Value;
rrr.res_ruimte_extern = oRs("res_ruimte_extern_id").Value != null;
rrr.res_ruimte_extern = rrr.res_ruimte_extern || oRs("res_ruimte_extern_id").Value != null;
oRs.close();
}
else
@@ -345,12 +348,12 @@ FCLTHeader.Requires({plugins: ["jQuery"]})
buttons.push( {title: "Touch", icon: "hand_point.png", action: "res_touch()" });
}
if (this_res.canChange || this_res.canChangeFEExtended)
if ((this_res.canChange && !this_res.res_ruimte_extern) || this_res.canChangeFEExtended)
buttons.push( {title: L("lcl_change"), icon: "wijzigen.png", action: "res_change()"});
else if (this_res.canWriteNoShow)
buttons.push({action: "resNoShow()", title: L("lcl_res_no_show"), icon: "noshow.png"});
if (this_res.canDelete)
if (this_res.canDelete && !this_res.res_ruimte_extern)
buttons.push( {title: L("lcl_delete"), icon: "delete.png", action: "res_delete()"});
if (this_res.canGoedkeur)

View File

@@ -710,8 +710,13 @@ function oneFileInfo(fsoFile, result, pModule, pKey, pSubpath, pNiveau, params)
{
if (result.directlink)
{
filedata.deepurl = HTTP.urlzelfnoroot() + S("res_image_path") + filedata.name;
var root = HTTP.urlzelfnoroot() + S("res_image_path");
if (pModule == "RESPHA")
root += 'artikel/';
if (pModule == "RESPHD")
root += 'deel/';
filedata.deepurl = root + filedata.name;
}
else // Alleen streaming, bestand staat buiten webroot?
{

View File

@@ -69,11 +69,11 @@ var putorders = {
return result;
},
sendAPP:
function _sendAPP(prs_key, msg)
function _sendAPP(prs_key, msg, url)
{
var hook = putorders._puo_hook();
__Log("APP message {0} to {1}".format(msg, prs_key));
var result = hook.puo_sendAPP(prs_key, msg);
__Log("APP message {0} to {1} with url {2}".format(msg, prs_key, url));
var result = hook.puo_sendAPP(prs_key, msg, url);
hook = null;
return result;
}

View File

@@ -8,7 +8,7 @@
Context: Vanuit ELK asp bestand
*/
var FCLTVersion="2019.2d";
var FCLTVersion="2019.2e";
var FCLTMinDatabaseSchema="37";
var custpath = rooturl + "/cust/" + customerId; // path to customer files

View File

@@ -24,7 +24,7 @@ DOCTYPE_Disable = 1;
switch (pworker)
{
case "faclist" : lworker = "../fac/fac_list_worker.asp"; break;
case "mldlist" : lworker = "../mld/mld_melding_worker.asp?bk="+getQParamInt("bk");
case "mldlist" : lworker = "../mld/mld_melding_worker.asp?bk="+getQParamInt("bk",-1)+"&disc="+getQParamInt("disc",-1);
break;
case "opdrlist" : lworker = "../mld/mld_opdr_worker.asp"; break;
// Leuk zou zijn om hier een exit te hebben die een usrrap als worker kan definieren worker=usrrap en workerkey=usrrapkey

View File

@@ -48,6 +48,7 @@
<method name="puo_sendAPP">
<PARAMETER name="prs_key"/>
<PARAMETER name="msg"/>
<PARAMETER name="url"/>
</method>
</public>
@@ -202,10 +203,10 @@ function puo_sendSMS(telnr, msg)
}
// Vanuit ASP mgt/aut_app_test_notification.asp
function puo_sendAPP(prs_key, msg)
function puo_sendAPP(prs_key, msg, url)
{
Log2File(1, "\n====== Sending APP (" + toDateTimeString(new Date()) + ")");
return sendAPP( prs_key, msg, "", {})
return sendAPP( prs_key, msg, url, {})
}

View File

@@ -95,7 +95,10 @@ function sendAPP( p_perslid_key
"body" : p_msg
},
"to" : oRs("aut_client_perslid_pushtoken").Value,
"data" : { }
"data" : {
"title" : "Facilitor",
"body" : p_msg
}
};
if (S("puo_forceapppushtoken"))
@@ -137,7 +140,7 @@ function sendAPP( p_perslid_key
forcemsg += "\n (effective to pushtoken: " + json.Tag + ")";
}
Log2File(1, forcemsg);
Log2File(2, "Payload: " + body);
Log2File(1, "Payload: " + body);
var params = bedrijfadres;
params.data = body;
params.headers = { "Content-Type": "application/json" };

View File

@@ -19,7 +19,7 @@ del %1
sqlplus.exe %oracle_login%@%targetSERVER% @CreateUserTEST.sql %targetUSER% %targetPASS%
IF errorlevel 1 GOTO nocreate
imp %oracle_login%@%targetSERVER% file=%dmpfile% toid_novalidate=%targetUSER%.MLD_T_UITVOERTIJD fromuser=%sourceUSER% touser=%targetUSER% log=%targetUSER%.log
imp %oracle_login%@%targetSERVER% file=%dmpfile% toid_novalidate=%targetUSER%.MLD_T_UITVOERTIJD fromuser=%sourceUSER% touser=%targetUSER% log=%targetUSER%.log COMPILE=N
EXIT | sqlplus.exe %targetUSER%/%targetPASS%@%targetSERVER% @%postrefreshsql%