Files
Facilitor/APPL/Shared/load_lcl.asp
Jos Groot Lipman 4b7c8d4562 Merge 2023.1 RC3 patches
svn path=/Website/trunk/; revision=59298
2023-02-23 16:04:29 +00:00

88 lines
3.5 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:
*/
var JSON_Result = true;
ANONYMOUS_Allowed = 1;
LCL_Disable = 1; // wij zijn veel slimmer
%>
<!-- #include file="../Shared/common.inc" -->
<%
result = { success: true };
var p_lcl = getQParam("lcl", "");
var p_hide_error = getQParamInt("hide_error", 0) == 1;
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)
{
if (!p_hide_error)
__DoLog("{0} LCL '{1}' is undefined!".format(user_lang, p_lcl), "#F00");
if (p_lcl in overrule_lcl)
result.lcl = overrule_lcl[p_lcl];
else
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);
}
oRs.Close();
Response.Write(JSON.stringify(result));
%>
<% ASPPAGE_END(); %>