90 lines
3.6 KiB
Plaintext
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));
|
|
%>
|