KFNS#38663 adding alg scoping to kennisbank items

svn path=/Website/branches/v2017.1/; revision=34007
This commit is contained in:
2017-05-26 11:36:58 +00:00
parent 71a52686e2
commit aa1f2aba1b
10 changed files with 262 additions and 180 deletions

View File

@@ -122,7 +122,7 @@ else
label: L("lcl_faq_level")
});
RWCHECKBOXTR("fac_faq_displaymode", "fldcheck", L("lcl_faq_displaymode"), displaymode);
RWCHECKBOXTR("fac_faq_displaymode", "fldcheck", L("lcl_faq_displaymode"), !displaymode); // KFNS#38663 inverted
RWFIELDTR("fac_bron", "fld", L("lcl_faq_bron"), source);
RWFIELDTR("fac_url", "fld", L("lcl_faq_link"), url);
if (!canWriteFAQBOF && datum==null)

View File

@@ -30,12 +30,14 @@ var authparamsFAQBOF = user.checkAutorisation("WEB_FAQBOF", true); // Backoffice
var canWriteFAQFOF = authparamsFAQFOF && authparamsFAQFOF.PRSwritelevel < 9 && authparamsFAQFOF.ALGwritelevel < 9;
var canWriteFAQBOF = authparamsFAQBOF && authparamsFAQBOF.PRSwritelevel < 9 && authparamsFAQBOF.ALGwritelevel < 9;
var displaymode = getFParam("fac_faq_displaymode", "off") == "on" ? 0 : 1; // KFNS#38663 inverted
var fields = [ { dbs: "fac_faq_question", typ: "varchar", frm: "fac_question", len: 200 },
{ dbs: "fac_faq_answer", typ: "varchar", frm: "fac_answer" },
{ dbs: "fac_faq_source", typ: "varchar", frm: "fac_bron", len: 60 },
{ dbs: "fac_faq_url", typ: "varchar", frm: "fac_url" },
{ dbs: "fac_faq_level", typ: "number", frm: "fac_faq_level" },
{ dbs: "fac_faq_displaymode", typ: "check0", frm: "fac_faq_displaymode" },
{ dbs: "fac_faq_displaymode", typ: "number", val: displaymode },
{ dbs: "prs_perslid_key", typ: "key", val: user_key },
{ dbs: "fac_faq_datum", typ: "date", frm: "date_from" },
{ dbs: "fac_faq_lang", typ: "varchar", frm: "fac_faq_lang" },

View File

@@ -138,7 +138,7 @@ var canChange = canWriteFAQBOF || (canWriteFAQFOF && datum == null)
{
BLOCK_START("mldInfo", L("lcl_faq_itemadm"));
ROFIELDTR("fld", L("lcl_faq_level"), fac.getfaqleveltext(level));
ROCHECKBOXTR("fldcheck", L("lcl_faq_displaymode"), displaymode);
ROCHECKBOXTR("fldcheck", L("lcl_faq_displaymode"), !displaymode);
ROFIELDTR("fld", L("lcl_faq_bron"), source, { suppressEmpty: true});
ROFIELDTR("fld", L("lcl_faq_link"), url, { infoPointer: {Url: url, Title: L("lcl_faq_item"), NewWindow: true}, suppressEmpty: true});
FCLTpersoonselector("sgPers",

View File

@@ -98,13 +98,18 @@ switch (req_info)
}
case "faq_info":
{
var ins_disc_key = getQParamInt("ins_disc_key", -1); // vakgroep
var stdm_key = getQParamInt("stdm_key", -1);
var loc_key = getQParamInt("loc_key", -1);
var alg_key_arr = getQParamIntArray("alg_key_arr", []);
var changed = getQParamInt("changed", 2);
var ins_disc_key = getQParamInt("ins_disc_key", -1); // vakgroep
var stdm_key = getQParamInt("stdm_key", -1);
var result = mld.faq_info(loc_key, alg_key_arr, ins_disc_key, stdm_key, changed);
result.ins_disc_key = ins_disc_key;
result.stdm_key = stdm_key;
result.loc_key = loc_key;
result.alg_key_arr = alg_key_arr;
result.changed = changed;
break;

View File

@@ -2701,9 +2701,14 @@ mld = {setmeldingstatus:
},
faq_info:
function _alg_faq(loc_key, alg_key_arr, ins_disc_key, stdm_key, changed) {
if ((!loc_key || loc_key == -1) &&
(!ins_disc_key || ins_disc_key == -1)) // Minimal requirement
return;
var has = { ins: ins_disc_key && ins_disc_key != -1,
stdm: stdm_key && stdm_key != -1,
loc: loc_key && loc_key != -1,
alg: alg_key_arr.length && alg_key_arr.length > 0 };
if (!has.ins && !has.stdm && !has.loc)
return {};
var canFAQUSEread = user.checkAutorisation("WEB_FAQUSE", true);
var canFAQFOFread = user.checkAutorisation("WEB_FAQFOF", true);
@@ -2713,113 +2718,161 @@ mld = {setmeldingstatus:
if (canFAQFOFread)
faq_bits += 2;
var filtFROM = ""
var filtWHERE = "";
var plaatsChanged = changed >= 2 && changed <= 5;
var show = changed == -1;
var sql = [];
var filtSELECT = " , DECODE (sf.mld_stdmelding_key,"
+ " NULL, DECODE (sf.ins_discipline_key,"
+ " NULL, 'X', 'I'),"
+ " 'S') stdm_type "
+ " , DECODE (og.alg_onroerendgoed_keys,"
+ " NULL, DECODE (af.alg_locatie_key,"
+ " NULL, 'X', 'L'),"
+ " og.alg_type) alg_type ";
if ((has.ins || has.stdm) && (has.loc || has.alg)) // kennisbank items gekoppeld aan vakgroep/stdm en plaats
{
var filtSELECT = " , DECODE (sf.mld_stdmelding_key,"
+ " NULL, DECODE (sf.ins_discipline_key,"
+ " NULL, 'X', 'I'),"
+ " 'S') stdm_type"
+ " , DECODE (og.alg_onroerendgoed_keys,"
+ " NULL, DECODE (af.alg_locatie_key,"
+ " NULL, 'X', 'L'),"
+ " og.alg_type) alg_type "
+ " , 1 displaymode ";
var filtFROM = " , alg_algfaq af"
+ " , mld_stdmeldingfaq sf"
+ " , alg_v_onroerendgoed og";
var filtFROM = " , alg_algfaq af"
+ " , mld_stdmeldingfaq sf"
+ " , alg_v_onroerendgoed og";
var filtWHERE = " AND ff.fac_faq_key = sf.fac_faq_key(+)"
+ " AND ff.fac_faq_key = af.fac_faq_key(+)"
+ " AND af.alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)";
var filtWHERE = " AND ff.fac_faq_key = sf.fac_faq_key"
+ " AND ff.fac_faq_key = af.fac_faq_key"
+ " AND af.alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)"
+ " AND ";
// Stdmfilter
if (has.ins) // Vakgroep
filtWHERE += " ((sf.ins_discipline_key = " + ins_disc_key
+ " AND sf.mld_stdmelding_key IS NULL)";
if (has.stdm) // Stdmelding
filtWHERE += (has.ins ? " OR " : "")
+ " sf.mld_stdmelding_key = " + stdm_key;
if (has.ins)
filtWHERE += " )";
if (ins_disc_key && ins_disc_key != -1)
filtWHERE += " AND (sf.ins_discipline_key = " + ins_disc_key
+ (changed == 0 ? ")" : " OR sf.ins_discipline_key IS NULL)");
else
filtWHERE += (changed == 1 ? "" : " AND sf.ins_discipline_key IS NULL");
filtWHERE += " AND ";
if (stdm_key && stdm_key != -1)
filtWHERE += " AND (sf.mld_stdmelding_key = " + stdm_key
+ (changed == 1 ? ")" : " OR sf.mld_stdmelding_key IS NULL)");
else
filtWHERE += " AND sf.mld_stdmelding_key IS NULL";
// Plaatsfilter
if (has.loc)
filtWHERE += " ((af.alg_locatie_key = " + loc_key
+ " AND af.alg_onroerendgoed_keys IS NULL)";
if (has.alg)
filtWHERE += (has.loc ? " OR " : "")
+ " af.alg_onroerendgoed_keys IN (" + alg_key_arr + ")";
if (has.loc)
filtWHERE += " )";
if (loc_key && loc_key != -1)
filtWHERE += " AND (af.alg_locatie_key = " + loc_key
+ (changed == 2 ? ")" : " OR af.alg_locatie_key IS NULL)");
else
filtWHERE += (changed > 2 ? "" : " AND af.alg_locatie_key IS NULL");
sql.push(mld.getkennisbank_sql(filtSELECT, filtFROM, filtWHERE, faq_bits));
}
if (alg_key_arr.length && alg_key_arr.length > 0)
filtWHERE += " AND (af.alg_onroerendgoed_keys IN (" + alg_key_arr + ")"
+ (changed > 2 ? ")" : " OR af.alg_onroerendgoed_keys IS NULL)");
else
filtWHERE += " AND af.alg_onroerendgoed_keys IS NULL";
if ((plaatsChanged || show) && (has.loc || has.alg)) // kennisbank items gekoppeld aan plaats en niet aan vakgroep/stdm
{
var filtSELECT = " , 'X' stdm_type"
+ " , DECODE (og.alg_onroerendgoed_keys,"
+ " NULL, 'L', og.alg_type) alg_type "
+ " , 1 displaymode ";
var filtFROM = " , alg_algfaq af"
+ " , alg_v_onroerendgoed og";
var filtWHERE = " AND ff.fac_faq_key = af.fac_faq_key"
+ " AND af.alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)";
// Stdmfilter
filtWHERE += " AND NOT EXISTS (SELECT ''"
+ " FROM mld_stdmeldingfaq sf "
+ " WHERE sf.fac_faq_key = ff.fac_faq_key)"
+ " AND ";
// Plaatsfilter
if (has.loc)
filtWHERE += " ((af.alg_locatie_key = " + loc_key
+ " AND af.alg_onroerendgoed_keys IS NULL)";
if (has.alg)
filtWHERE += (has.loc ? " OR " : "")
+ " af.alg_onroerendgoed_keys IN (" + alg_key_arr + ")";
if (has.loc)
filtWHERE += " )";
sql.push(mld.getkennisbank_sql(filtSELECT, filtFROM, filtWHERE, faq_bits));
}
if ((!plaatsChanged || show) && (has.ins || has.stdm)) // kennisbank items gekoppeld aan vakgroep/stdm en niet aan plaats
{
var filtSELECT = " , DECODE (sf.mld_stdmelding_key,"
+ " NULL, DECODE (sf.ins_discipline_key,"
+ " NULL, 'X', 'I'),"
+ " 'S') stdm_type"
+ " , 'X' alg_type "
+ " , fac_faq_displaymode displaymode ";
var filtFROM = " , mld_stdmeldingfaq sf";
var filtWHERE = " AND ff.fac_faq_key = sf.fac_faq_key"
+ " AND ";
// Stdmfilter
if (has.ins) // Vakgroep
filtWHERE += " ((sf.ins_discipline_key = " + ins_disc_key
+ " AND sf.mld_stdmelding_key IS NULL)";
if (has.stdm) // Stdmelding
filtWHERE += (has.ins ? " OR " : "")
+ " sf.mld_stdmelding_key = " + stdm_key;
if (has.ins)
filtWHERE += " )";
// Plaatsfilter
filtWHERE += " AND NOT EXISTS (SELECT ''"
+ " FROM alg_algfaq af"
+ " WHERE af.fac_faq_key = ff.fac_faq_key)";
sql.push(mld.getkennisbank_sql(filtSELECT, filtFROM, filtWHERE, faq_bits));
}
sql = sql.join(" UNION ALL ")
+ " ORDER BY fac_faq_rank DESC NULLS LAST"
+ " , fac_faq_datum DESC"
+ " , fac_faq_question";
var sql = "SELECT ff.fac_faq_key, "
+ " fac_faq_question, "
+ " fac_faq_answer, "
+ " fac_faq_url, "
+ " fac_faq_level, "
+ " fac_faq_displaymode"
+ filtSELECT
+ " FROM fac_faq ff"
+ filtFROM
+ " WHERE fac_faq_datum < SYSDATE"
+ " AND BITAND(fac_faq_level," + faq_bits + ") <> 0"
+ " AND (fac_faq_lang = " + safe.quoted_sql(user_lang) + " OR fac_faq_lang IS NULL)"
+ filtWHERE
+ " ORDER BY fac_faq_rank DESC NULLS LAST"
+ " , fac_faq_datum DESC"
+ " , fac_faq_question";
var oRs = Oracle.Execute(sql);
var result = { fixed_faq: [],
popup_faq: false,
loc_key: loc_key,
alg_key_arr: alg_key_arr,
stdm_key: stdm_key,
ins_disc_key: ins_disc_key
};
popup_faq: false };
while (!oRs.EOF)
{
var displaymode = oRs("fac_faq_displaymode").Value;
if (displaymode == 0) // Auto
{
if ( ((S("faq_kennisbank_popup") & 1) && canFAQUSEread) // Voor FE
|| ((S("faq_kennisbank_popup") & 2) && canFAQFOFread)) // Voor FO
result.popup_faq = true;
result.loc_key = loc_key || -1;
result.alg_key_arr = alg_key_arr || [];
result.stdm_key = stdm_key || -1;
result.ins_disc_key = ins_disc_key || -1;
}
else
{
var data = { question: oRs("fac_faq_question").Value,
answer: safe.fclthtml(oRs("fac_faq_answer").Value),
displaymode: oRs("fac_faq_displaymode").Value
};
var displaymode = oRs("displaymode").Value;
if (displaymode == 0) // Popup
{
if ( ((S("faq_kennisbank_popup") & 1) && canFAQUSEread) // Voor FE
|| ((S("faq_kennisbank_popup") & 2) && canFAQFOFread)) // Voor FO
result.popup_faq = true;
}
// KFNS#38663 -> always 'inline'
var data = { question: oRs("fac_faq_question").Value,
answer: safe.fclthtml(oRs("fac_faq_answer").Value),
displaymode: oRs("displaymode").Value };
data.faq_type = "faq_" + oRs("stdm_type") + oRs("alg_type");
data.faq_type = "faq_" + oRs("stdm_type") + oRs("alg_type");
var fac_url = oRs("fac_faq_url").value;
if (fac_url)
{
var arr = fac_url.split("|");
var hurl = arr[0];
data.hlnk = arr.length>1?arr[1]:hurl;
var fac_url = oRs("fac_faq_url").value;
if (fac_url)
{
var arr = fac_url.split("|");
var hurl = arr[0];
data.hlnk = arr.length>1?arr[1]:hurl;
if (hurl.slice(0,4) == "http") // extern
data.hurl = hurl;
else // in cust subdir
data.hurl = custpath + "/" + hurl;
}
result.fixed_faq.push(data);
}
oRs.MoveNext();
if (hurl.slice(0,4) == "http") // extern
data.hurl = hurl;
else // in cust subdir
data.hurl = custpath + "/" + hurl;
}
result.fixed_faq.push(data);
oRs.MoveNext();
}
oRs.Close();
return result;
@@ -5345,8 +5398,27 @@ mld = {setmeldingstatus:
}
return sql;
}
},
getkennisbank_sql:
function (sqlSelect, sqlFrom, sqlWhere, faq_bits)
{ // Lever kennisbank items overzicht sql op.
return "SELECT ff.fac_faq_key, "
+ " fac_faq_rank, "
+ " fac_faq_datum, "
+ " fac_faq_question, "
+ " fac_faq_answer, "
+ " fac_faq_url, "
+ " fac_faq_level "
+ sqlSelect
+ " FROM fac_faq ff"
+ sqlFrom
+ " WHERE fac_faq_datum < SYSDATE"
+ " AND BITAND(fac_faq_level," + faq_bits + ") <> 0"
+ " AND (fac_faq_lang = " + safe.quoted_sql(user_lang) + " OR fac_faq_lang IS NULL)"
+ sqlWhere;
}
}
%>

View File

@@ -441,7 +441,6 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
readonly: (mld_key > 0 && !this_mld.canPlaatsChange),
filtercode: mld_melding.alg_level <= 2 ? null : "FAC", /*strict genomen alleen voor FE/FO, maar readonly maakt dit vanzelf goed toch? */
suppressEmpty: true,
escalateOnChUp: true,
eindlevel: (mld_melding.alg_level ? mld_melding.alg_level : 2), // Minimaal Locatie
cadSelect: true,
cadShowdiscfn: "cadShowdiscfn",

View File

@@ -391,8 +391,8 @@ function getObjectInfo(changed_niveau, noRecalcEinddatum)
function onChangeLocatie(locbld_changed)
{
onChangeAlg(2);
onChangeGebouw(locbld_changed);
onChangeAlg(2, -1);
}
// Op de onchange van een gebouw controleren of er misschien een kostenplaats
@@ -400,8 +400,7 @@ function onChangeLocatie(locbld_changed)
// De functie onChangeGebouw() wordt ook aangeroepen bij wijzigen van melder
function onChangeGebouw(locbld_changed, do_not_change_kp) // sl is de gebouw selectbox
{
if (!locbld_changed)
onChangeAlg(3, $("#gebouwkey").val());
onChangeAlg(3);
if (window.stdm_info.regime == 2) // openingstijden
{
@@ -434,34 +433,45 @@ function onChangeGebouw(locbld_changed, do_not_change_kp) // sl is de gebouw sel
function onChangeVerdieping()
{
onChangeAlg(4, $("#verdiepingkey").val());
onChangeAlg(4);
}
function onChangeRuimte()
{
onChangeAlg(5, $("#ruimtekey").val());
onChangeAlg(5);
}
function onChangeAlg(level, alg)
function onChangeAlg(level)
{
var loc = $("#locatiekey").val();
var alg = [];
var loc = -1;
var temp = "";
switch (level) {
case 5: temp = $("#ruimtekey").val(); if (temp && temp != -1) alg.push(temp);
case 4: temp = $("#verdiepingkey").val(); if (temp && temp != -1) alg.push(temp);
case 3: temp = $("#gebouwkey").val(); if (temp && temp != -1) alg.push(temp);
case 2: temp = $("#locatiekey").val(); if (temp && temp != -1) loc = temp;
break;
default: return; // Error
}
var stdm = $("#stdm").val();
var ins_disc = $("#disc").val();
if ((level == 2 && loc && loc > 0) ||
(level > 2 && alg && alg > 0))
(level > 2 && alg.length && alg.length == (level - 2)))
{
$.getJSON("./get_mld_info_ajax.asp",
{ req_info: "faq_info",
loc_key: loc,
alg_key_arr: [alg],
alg_key_arr: alg.join(","),
changed: level,
ins_disc_key: (ins_disc || -1),
stdm_key: stdm || -1 },
callback_faq_info);
}
else
show_fixed_faq(level, []);
show_fixed_faq(level);
}
var faq_info = {};
@@ -483,39 +493,39 @@ function callback_faq_info(data)
show_fixed_faq(data.changed, data.fixed_faq);
}
function show_fixed_faq(changed, data_fixed_faq)
function show_fixed_faq(changed, fixed_faq)
{
var $tbl = $("#mldFaq").find("table");
var stdm = ['I', 'S', 'X'];
var alg = [null, 'X', 'L', 'G', 'V', 'R'];
var error = fixed_faq == null; // veld verkeerd of leeg 'ingevuld'
var plaatsChanged = changed >= 2 && changed <= 5;
if (changed == 0 || changed == 1)
for (var a = 0; a <= 5; a++) {
$tbl.find("tr.faq_" + stdm[changed] + alg[a]).remove();
}
else // changed >= 2 && changed <= 5
for (var s = 0; s < 3; s++) {
for (var a = changed; a <= 5; a++) {
$tbl.find("tr.faq_" + stdm[s] + alg[a]).remove();
}
}
if (data_fixed_faq.length > 0)
for (var a = (plaatsChanged ? (error ? changed : 2) : 1); a <= 5; a++)
{
for (var i = 0; i < data_fixed_faq.length; i++)
if (plaatsChanged)
$tbl.find("tr.faq_X" + alg[a]).remove();
$tbl.find("tr.faq_I" + alg[a]).remove();
$tbl.find("tr.faq_S" + alg[a]).remove();
}
if (fixed_faq && fixed_faq.length)
{
for (var i = 0; i < fixed_faq.length; i++)
{
var safequestion = $("<span>").text(data_fixed_faq[i].question).html().replace(/\n/g, "<br>");
var $newrow = $("<tr class='trlabel flexlabel flexcollapsable flexcollapsed "+data_fixed_faq[i].faq_type+"'><td class='fixedfaqquestion lhint'>" + safequestion + "</td></tr>")
var safequestion = $("<span>").text(fixed_faq[i].question).html().replace(/\n/g, "<br>");
var $newrow = $("<tr class='trlabel flexlabel flexcollapsable flexcollapsed "+fixed_faq[i].faq_type+"'><td class='fixedfaqquestion lhint'>" + safequestion + "</td></tr>")
.click(function () {
$(this).next().toggle();
$(this).toggleClass('flexcollapsed');
FcltMgr.resized(window);
});
$tbl.append($newrow)
var safeanswer = $("<span>").text(data_fixed_faq[i].answer).text().replace(/\n/g, "<br>");
if (data_fixed_faq[i].hurl)
safeanswer += "<br><a href={0} target='_new'>{1}</a>".format(data_fixed_faq[i].hurl, data_fixed_faq[i].hlnk);
$tbl.append("<tr style='display:none' class='"+data_fixed_faq[i].faq_type+"'><td class='fixedfaqanswer'><span='fclthtml'>" + safeanswer + "</span></td></tr>");
var safeanswer = $("<span>").text(fixed_faq[i].answer).text().replace(/\n/g, "<br>");
if (fixed_faq[i].hurl)
safeanswer += "<br><a href={0} target='_new'>{1}</a>".format(fixed_faq[i].hurl, fixed_faq[i].hlnk);
$tbl.append("<tr style='display:none' class='"+fixed_faq[i].faq_type+"'><td class='fixedfaqanswer'><span='fclthtml'>" + safeanswer + "</span></td></tr>");
}
$("#mldFaq").show();
}

View File

@@ -24,7 +24,7 @@ var ins_disc_key = getQParamInt("ins_disc_key", -1);
var stdm_key = getQParamInt("stdm_key", -1);
var loc_key = getQParamInt("loc_key", -1);
var alg_key_arr = getQParamIntArray("alg_key_arr", []);
var changed = getQParamInt("changed", 2);
var changed = getQParamInt("changed", 1);
var authparamsFOF = user.checkAutorisation("WEB_FAQFOF", true); // ziet (ook) FO-items
var authparamsUSE = user.checkAutorisation("WEB_FAQUSE", true); // ziet (ook) FE-items
@@ -74,56 +74,34 @@ user.auth_required_or_abort(authparamsUSE || authparamsFOF);
if (authparamsUSE)
faq_bits += 1;
var filtSELECT = " , DECODE (sf.mld_stdmelding_key,"
+ " NULL, DECODE (sf.ins_discipline_key,"
+ " NULL, 'X', 'I'),"
+ " 'S') stdm_type "
+ " , DECODE (og.alg_onroerendgoed_keys,"
+ " NULL, DECODE (af.alg_locatie_key,"
+ " NULL, 'X', 'L'),"
+ " og.alg_type) alg_type ";
var has = { ins: ins_disc_key && ins_disc_key != -1,
stdm: stdm_key && stdm_key != -1 };
var filtFROM = " , alg_algfaq af"
+ " , mld_stdmeldingfaq sf"
+ " , alg_v_onroerendgoed og";
var filtWHERE = " AND ff.fac_faq_key = sf.fac_faq_key"
+ " AND ";
var filtWHERE = " AND ff.fac_faq_key = sf.fac_faq_key(+)"
+ " AND ff.fac_faq_key = af.fac_faq_key(+)"
+ " AND af.alg_onroerendgoed_keys = og.alg_onroerendgoed_keys(+)";
// Stdmfilter, at least: (has.ins || has.stdm) == true
if (has.ins) // Vakgroep
filtWHERE += " ((sf.ins_discipline_key = " + ins_disc_key
+ " AND sf.mld_stdmelding_key IS NULL)";
if (has.stdm) // Stdmelding
filtWHERE += (has.ins ? " OR " : "")
+ " sf.mld_stdmelding_key = " + stdm_key;
if (has.ins)
filtWHERE += " )";
if (ins_disc_key && ins_disc_key != -1)
filtWHERE += " AND (sf.ins_discipline_key = " + ins_disc_key
+ (changed == 0 ? ")" : " OR sf.ins_discipline_key IS NULL)");
else
filtWHERE += (changed == 1 ? "" : " AND sf.ins_discipline_key IS NULL");
if (stdm_key && stdm_key != -1)
filtWHERE += " AND (sf.mld_stdmelding_key = " + stdm_key
+ (changed == 1 ? ")" : " OR sf.mld_stdmelding_key IS NULL)");
else
filtWHERE += " AND sf.mld_stdmelding_key IS NULL";
if (loc_key && loc_key != -1)
filtWHERE += " AND (af.alg_locatie_key = " + loc_key
+ (changed == 2 ? ")" : " OR af.alg_locatie_key IS NULL)");
else
filtWHERE += (changed > 2 ? "" : " AND af.alg_locatie_key IS NULL");
if (alg_key_arr.length && alg_key_arr.length > 0)
filtWHERE += " AND (af.alg_onroerendgoed_keys IN (" + alg_key_arr + ")"
+ (changed > 2 ? ")" : " OR af.alg_onroerendgoed_keys IS NULL)");
else
filtWHERE += " AND af.alg_onroerendgoed_keys IS NULL";
// Plaatsfilter
filtWHERE += " AND NOT EXISTS (SELECT ''"
+ " FROM alg_algfaq af"
+ " WHERE af.fac_faq_key = ff.fac_faq_key)";
var sql = "SELECT ff.fac_faq_key, "
+ " fac_faq_question, "
+ " fac_faq_answer, "
+ " fac_faq_url, "
+ " fac_faq_level "
+ filtSELECT
+ " FROM fac_faq ff"
+ filtFROM
+ " FROM fac_faq ff, "
+ " mld_stdmeldingfaq sf"
+ " WHERE fac_faq_datum < SYSDATE"
+ " AND fac_faq_displaymode = 0"
+ " AND BITAND(fac_faq_level," + faq_bits + ") <> 0"
@@ -132,6 +110,7 @@ user.auth_required_or_abort(authparamsUSE || authparamsFOF);
+ " ORDER BY fac_faq_rank DESC NULLS LAST"
+ " , fac_faq_datum DESC"
+ " , fac_faq_question";
var oRs = Oracle.Execute(sql);
var faq_url = '';
while (!oRs.eof) {

View File

@@ -388,15 +388,13 @@ function parentButton()
}
var alg_key_arr = [];
if (mld_melding.loc_key)
alg_key_arr.push(-1); // nodig zodat hij ook alleen loc checkt
if (mld_melding.bld_key && mld_melding.bld_key != -1)
alg_key_arr.push(mld_melding.bld_key);
if (mld_melding.flr_key && mld_melding.flr_key != -1)
alg_key_arr.push(mld_melding.flr_key);
if (mld_melding.room_key && mld_melding.room_key != -1)
alg_key_arr.push(mld_melding.room_key);
var faq_info = mld.faq_info(mld_melding.loc_key, alg_key_arr, mld_melding.disc, mld_melding.stdm);
var faq_info = mld.faq_info(mld_melding.loc_key, alg_key_arr, mld_melding.disc, mld_melding.stdm, -1);
if (mld_melding.show_alg && S("mld_edit_layout") == 0)
{

View File

@@ -279,10 +279,24 @@ function mld_add2faq()
function mld_show_kennisbank(data)
{
if (data.fixed_faq.length > 0)
var $tbl = $("#mldFaq").find("table");
var stdm = ['I', 'S', 'X'];
var alg = [null, 'X', 'L', 'G', 'V', 'R'];
var changed = data.changed;
var error = data.fixed_faq == null; // veld verkeerd of leeg 'ingevuld'
var plaatsChanged = changed >= 2 && changed <= 5;
for (var a = (plaatsChanged ? (error ? changed : 2) : 1); a <= 5; a++)
{
if (plaatsChanged)
$tbl.find("tr.faq_X" + alg[a]).remove();
$tbl.find("tr.faq_I" + alg[a]).remove();
$tbl.find("tr.faq_S" + alg[a]).remove();
}
if (data.fixed_faq && data.fixed_faq.length)
{
var $tbl = $("#mldFaq").find("table");
$tbl.empty();
for (var i = 0; i < data.fixed_faq.length; i++)
{
var safequestion = $("<span>").text(data.fixed_faq[i].question).html().replace(/\n/g, "<br>");
@@ -300,6 +314,9 @@ function mld_show_kennisbank(data)
}
$("#mldFaq").show();
}
else
$("#mldFaq").hide();
if (!$tbl.find("tr").length)
{
$tbl.empty(); // Redundant ?
$("#mldFaq").hide();
}
}