Files
Facilitor/APPL/Shared/load_lcl.asp
Jos Groot Lipman b5783f7665 FSN#37985 Phonebook API werkte niet op IE11 sinds 'nosniff'
svn path=/Website/branches/v2016.2/; revision=31012
2016-10-09 15:34:51 +00:00

90 lines
3.6 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: load_lcl.asp
Description: Haal een tekst (lcl) op om clientside te gebruiken
Registreer tegelijk in fac_locale_xref dat deze tekst is opgehaald
zodat we de volgende keer zorgen dat de tekst bij voorbaat al
beschikbaar was zodat er geen losse Ajax call nodig is
Note: JSONP compatible (nog niet gebruikt overigens)
*/
var JSON_Result = true;
ANONYMOUS_Allowed = 1;
LCL_Disable = 1; // wij zijn veel slimmer
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<%
var callback = getQParam("callback", null);
result = { success: true };
var p_lcl = getQParam("lcl", "");
if (!p_lcl) // Rond 5.2.2 is deze parameter verplicht geworden. Na een jaar zijn
Response.End; // er nog altijd mensen bij UWVA die de 'oude' aanroep hebben,
// waarschijnlijk een bookmark. Voorkom dat dit in de error-log komt.
var pad = getQParam("pathname"); // bijvoorbeeld /facilitor5iwork/appl/Fac/Facilitor.asp
pad = pad.substring(rooturl.length+1); // die er af, ook eerste slash
pad = pad.toLowerCase().replace(/\\/g,"/");
if (pad.indexOf("/")==0)
{
__DoLog("Menuoptie naar {0} hoort niet met een slash te beginnen".format(pad), "#0ff");
pad = pad.substring(1); // die er af
}
if (!pad || pad.match(/[^a-z0-9\.\_\/]/)) // paranoia
{
INTERNAL_ERROR_BAD_PAD;
}
var sql = "SELECT fac_locale_xsl_key,"
+ " COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst) fac_locale_xsl_tekst"
+ " FROM fac_locale_xsl"
+ " WHERE fac_locale_xsl_lang = " + safe.quoted_sql(user_lang)
+ " AND fac_locale_xsl_label = " + safe.quoted_sql(p_lcl);
var oRs = Oracle.Execute(sql);
locale_xsl_key = -1;
if (oRs.Eof)
{
__DoLog("LCL '" + p_lcl + "' is undefined!", "#FFFF00");
result.lcl = "??" + safe.html(p_lcl) + "??";
}
else
{
result.lcl =oRs("fac_locale_xsl_tekst").Value;
locale_xsl_key = oRs("fac_locale_xsl_key").Value;
lcl.loadLCL(pad); // Bestond hij al (misschien voor serverside)
// Beetje oppassen voor multi-user gebruik-->volgorde
if (!(p_lcl in cache_lcls))
{ // Voortaan ook clientside
sql = "INSERT INTO fac_locale_xref(fac_locale_xref_filepath, fac_locale_xsl_key, fac_locale_xref_client)"
+ " SELECT " + safe.quoted_sql(pad, 100) + ", " + locale_xsl_key + ", 1 FROM DUAL"
+ " WHERE NOT EXISTS"
+ " (SELECT '' FROM fac_locale_xref"
+ " WHERE fac_locale_xref_filepath = " + safe.quoted_sql(pad, 100)
+ " AND fac_locale_xsl_key = " + locale_xsl_key
+ ")";
Oracle.Execute(sql);
}
// nu nog op 1 zetten voor als hij er eventueel al wel was
sql = "UPDATE fac_locale_xref"
+ " SET fac_locale_xref_client = 1"
+ " WHERE fac_locale_xref_filepath = " + safe.quoted_sql(pad)
+ " AND fac_locale_xsl_key = " + locale_xsl_key;
Oracle.Execute(sql);
}
if (callback)
{
Response.ContentType = "application/javascript";
Response.Write(callback + "(" + JSON.stringify(result) + ")");
}
else
Response.Write(JSON.stringify(result));
%>