svn path=/Website/trunk/; revision=37814
This commit is contained in:
Erik Groener
2018-05-01 11:59:21 +00:00
parent 7e3e092182
commit f1c53e6e18
2 changed files with 72 additions and 61 deletions

View File

@@ -20,6 +20,7 @@
<%
FCLTHeader.Requires({js: []});
var faqnum = getQParamInt("faqnum", -1, true);
var searchtext = getQParam("searchtext", null);
var disc_key_arr = getQParamIntArray("discmulti", []); // Productgroep
var stdm_key_arr = getQParamIntArray("stdmmulti", []); // Melding (Stdmelding)
@@ -112,78 +113,85 @@ function make_faq_list (searchtext, ororand)
+ " FROM fac_faq f"
+ " WHERE 1 = 1";
if (ororand)
{
sql += " AND (" + fac.createOrOrClause("UPPER(fac_faq_hint)", supper, 0, wholeword)
if (S("faq_search_hints_only") <= 0)
sql += " OR " + fac.createOrOrClause("UPPER(fac_faq_question)", supper, wholeword)
+ " OR " + fac.createOrOrClause("UPPER(fac_faq_answer)", supper, wholeword);
sql += ")";
if (faqnum != -1)
{ // Selectie op nummer negeert alle andere filters
sql += " AND f.fac_faq_key = " + faqnum;
}
else
{
var fieldstrarr = ["UPPER(fac_faq_hint)"];
if (S("faq_search_hints_only") <= 0) fieldstrarr.push("UPPER(fac_faq_question)","UPPER(fac_faq_answer)");
sql += " AND " + fac.createOrClause2(fieldstrarr, supper, wholeword);
}
if (ororand)
{
sql += " AND (" + fac.createOrOrClause("UPPER(fac_faq_hint)", supper, 0, wholeword)
if (S("faq_search_hints_only") <= 0)
sql += " OR " + fac.createOrOrClause("UPPER(fac_faq_question)", supper, wholeword)
+ " OR " + fac.createOrOrClause("UPPER(fac_faq_answer)", supper, wholeword);
sql += ")";
}
else
{
var fieldstrarr = ["UPPER(fac_faq_hint)"];
if (S("faq_search_hints_only") <= 0) fieldstrarr.push("UPPER(fac_faq_question)","UPPER(fac_faq_answer)");
sql += " AND " + fac.createOrClause2(fieldstrarr, supper, wholeword);
}
if (stdm_key_arr)
sql += " AND EXISTS (SELECT ''"
+ " FROM mld_stdmeldingfaq"
+ " WHERE mld_stdmelding_key IN (" + stdm_key_arr + ") "
+ " AND fac_faq_key = f.fac_faq_key"
+ ")";
else
if (disc_key_arr)
if (stdm_key_arr)
sql += " AND EXISTS (SELECT ''"
+ " FROM mld_stdmeldingfaq"
+ " WHERE ins_discipline_key IN (" + disc_key_arr + ")"
+ " WHERE mld_stdmelding_key IN (" + stdm_key_arr + ") "
+ " AND fac_faq_key = f.fac_faq_key"
+ ")";
else
if (disc_key_arr)
sql += " AND EXISTS (SELECT ''"
+ " FROM mld_stdmeldingfaq"
+ " WHERE ins_discipline_key IN (" + disc_key_arr + ")"
+ " AND fac_faq_key = f.fac_faq_key"
+ ")";
var sqlOnroer = "";
if (room_key > -1)
sqlOnroer = "alg_onroerendgoed_keys = " + room_key
else if (flr_key > -1)
sqlOnroer = "alg_onroerendgoed_keys = " + flr_key
else if (bld_key > -1)
sqlOnroer = "alg_onroerendgoed_keys = " + bld_key
else if (loc_key > -1)
sqlOnroer = "alg_onroerendgoed_keys IS NULL"
if (sqlOnroer != "")
sql += " AND EXISTS (SELECT ''"
+ " FROM alg_algfaq"
+ " WHERE " + sqlOnroer
+ " AND alg_locatie_key = " + loc_key
+ " AND fac_faq_key = f.fac_faq_key"
+ ")";
var sqlOnroer = "";
if (room_key > -1)
sqlOnroer = "alg_onroerendgoed_keys = " + room_key
else if (flr_key > -1)
sqlOnroer = "alg_onroerendgoed_keys = " + flr_key
else if (bld_key > -1)
sqlOnroer = "alg_onroerendgoed_keys = " + bld_key
else if (loc_key > -1)
sqlOnroer = "alg_onroerendgoed_keys IS NULL"
if (fac_faq_level > 0)
sql += " AND BITAND(f.fac_faq_level, " + fac_faq_level +") = " + fac_faq_level;
if (sqlOnroer != "")
sql += " AND EXISTS (SELECT ''"
+ " FROM alg_algfaq"
+ " WHERE " + sqlOnroer
+ " AND alg_locatie_key = " + loc_key
+ " AND fac_faq_key = f.fac_faq_key"
+ ")";
if (fac_faq_lang != null)
sql += " AND f.fac_faq_lang LIKE " + safe.quoted_sql(fac_faq_lang);
else
{
if (!authparamsBOF && !authparamsFOF)
sql += " AND (f.fac_faq_lang = " + safe.quoted_sql(user.lang()) + " OR f.fac_faq_lang IS NULL)";
}
if (fac_faq_level > 0)
sql += " AND BITAND(f.fac_faq_level, " + fac_faq_level +") = " + fac_faq_level;
if (!authparamsBOF)
{
var bits = 0;
if (authparamsFOF)
bits |= (urole=="fo"?3:2);
if (authparamsUSE)
bits |= 1;
sql += " AND BITAND (fac_faq_level, " + bits + ") <> 0";
if (!authparamsFOF)
sql += " AND (fac_faq_datum < SYSDATE OR prs_perslid_key = " + user_key + ")"; // zelf ingevoerd zie je wel terug
}
if (fac_faq_lang != null)
sql += " AND f.fac_faq_lang LIKE " + safe.quoted_sql(fac_faq_lang);
else
{
if (!authparamsBOF && !authparamsFOF)
sql += " AND (f.fac_faq_lang = " + safe.quoted_sql(user.lang()) + " OR f.fac_faq_lang IS NULL)";
sql += getKenmerkSql("FAQ", "f.fac_faq_key"); // Zoeken op kenmerken, indien geavanceerd ingevuld
}
if (!authparamsBOF)
{
var bits = 0;
if (authparamsFOF)
bits |= (urole=="fo"?3:2);
if (authparamsUSE)
bits |= 1;
sql += " AND BITAND (fac_faq_level, " + bits + ") <> 0";
if (!authparamsFOF)
sql += " AND (fac_faq_datum < SYSDATE OR prs_perslid_key = " + user_key + ")"; // zelf ingevoerd zie je wel terug
}
sql += getKenmerkSql("FAQ", "f.fac_faq_key"); // Zoeken op kenmerken, indien geavanceerd ingevuld
sql += " ORDER BY fac_faq_rank DESC NULLS LAST"
+ " , fac_faq_datum DESC"
+ " , fac_faq_question";
@@ -307,6 +315,7 @@ function make_faq_list (searchtext, ororand)
filterParams: params,
buttons: buttons
});
rst.addColumn(new Column({caption: L("lcl_faq_nr"), content: "fac_faq_key"}));
rst.addColumn(new Column({hasActions: true, caption: L("lcl_faq_question"), content: fnQuestion}));
rst.addColumn(new Column({caption: L("lcl_faq_answer"), combine: true, content: "fac_faq_answer"}));

View File

@@ -25,6 +25,7 @@ var backo = (urole == "bo");
var minfo = (urole == "mi");
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
var autosearch = getQParamInt("autosearch", -1) == 1;
var faq_key = getQParamInt("faq_key", -1);
var disc_key_arr = getQParamIntArray("disc_key_str", []); // Productgroep
var stdm_arr = getQParamIntArray("stdm_str", []); // Melding (Stdmelding)
var locatie_key = getQParamInt("locatie_key", -1); // Locatie
@@ -97,9 +98,10 @@ oRs.close();
<td class="searchkolom1">
<input type="hidden" name="urole" value="<%=urole%>">
<table><!-- x rijen, 2 kolommen: label + veld -->
<% RWFIELDTR ('searchtext', 'fld', L("lcl_search_diff_fields"), sstring);
RWCHECKBOXTR("wholeword", "fldwholeword", L("lcl_faq_wholeword"), false );
<%
RWFIELDTR("faqnum", "fld", L("lcl_faq_nr"), (faq_key != -1 ? faq_key : "") );
RWFIELDTR ('searchtext', 'fld', L("lcl_search_diff_fields"), sstring);
RWCHECKBOXTR("wholeword", "fldwholeword", L("lcl_faq_wholeword"), false );
if (authparamsBOF && anymldfaq)
{