Files
Facilitor/APPL/FAC/fac_faq_search.asp
Ruud Lipper a45cef2ab0 FSN#35297 geen vakgroep+stdmelding filter tonen als er geen gekoppelde FAQs zijn
svn path=/Website/trunk/; revision=28168
2016-02-15 12:41:54 +00:00

231 lines
9.8 KiB
Plaintext

<%@ language = "JavaScript" %>
<% /*
$Revision$
$Id$
File: fac_faq_search.asp (FSN#15947)
Description: Zoekt in FAQ
Parameters: -
Context:
Note:
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/faqselector.inc" -->
<%
FCLTHeader.Requires({ plugins:["kenmerk"],
js: ["../FAC/fac_faq_search.js"]
});
var sstring = getQParam("s","");
var urole = getQParamSafe("urole", "fe");
var fronto = (urole == "fo");
var backo = (urole == "bo");
var minfo = (urole == "mi");
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
var autosearch = getQParamInt("autosearch", -1) == 1;
var disc_key_arr = getQParamIntArray("disc_key_str", []); // Productgroep
var stdm_arr = getQParamIntArray("stdm_str", []); // Melding (Stdmelding)
if (disc_key_arr.length == 0 && stdm_arr.length != 0)
{
var sql = "SELECT stdm.mld_ins_discipline_key FROM mld_stdmelding stdm WHERE stdm.mld_stdmelding_key = " + stdm_arr.join(",")
oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
disc_key_arr[disc_key_arr.length] = oRs("mld_ins_discipline_key").Value;
oRs.MoveNext();
}
}
var authparamsBOF = user.checkAutorisation("WEB_FAQBOF", true); // ziet alles
var authparamsFOF = user.checkAutorisation("WEB_FAQFOF", true); // ziet ook FO-items (en eigen items)
var authparamsUSE = user.checkAutorisation("WEB_FAQUSE", true); // ziet ook FO-items (en eigen items)
user.auth_required_or_abort(authparamsBOF || authparamsFOF || authparamsUSE);
sql= "SELECT 1 FROM mld_stdmeldingfaq WHERE ROWNUM = 1";
oRs = Oracle.Execute(sql);
var anymldfaq = !oRs.eof;
oRs.close();
%>
<html>
<head>
<% FCLTHeader.Generate() %>
<script type="text/javascript">
function doSubmit()
{
if (!validateForm("u2"))
return false;
// Submitten met kenmerken
doSubmitWithKenmerken();
}
<% if (autosearch && (sstring != "" || disc_key_arr.length != 0 || stdm_arr.length != 0)) { %>
$(document).ready(function (){doSubmit()} )
<% } %>
function myModal()
{
var url = "load_kenmerk.asp?act_key=-1"
+ "&urole=<%=urole%>"
+ "&advanced=1";
var titel = "<%=L("lcl_faq_kenmerken")%>";
showKenmerkModal(url, titel);
}
</script>
</head>
<body id="searchbody">
<div id="search">
<form name="u2" method="get" action="fac_faq_list.asp" target="workFrame">
<% BLOCK_START("searchtable", L("lcl_fac_filterblok"));%>
<tr>
<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 );
if (authparamsBOF && anymldfaq)
{
// <!-- Productgroep -->
// LET OP!!
// De options van deze selector wordt on-change dynamisch vervangen door ../shared/loadDisc.asp!
// Wat hier staat is dus alleen de initiele situatue.
// SQL-queries uit loadDisc:
var discsql = " SELECT m1.ins_discipline_key"
+ ", CASE "
+ " WHEN sd.ins_srtdiscipline_prefix IS NULL"
+ " THEN ''"
+ " ELSE sd.ins_srtdiscipline_prefix || '-'"
+ " END"
+ " || "+ lcl.xsqla('m1.ins_discipline_omschrijving', 'm1.ins_discipline_key')
+ " FROM mld_v_aanwezigdiscipline m1"
+ ", ins_srtdiscipline sd"
+ " WHERE EXISTS (SELECT 'x'"
+ " FROM mld_stdmelding ms"
+ " WHERE m1.ins_discipline_key = ms.mld_ins_discipline_key"
+ " AND ms.mld_stdmelding_verwijder IS NULL)"
+ " AND m1.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+)"
+ (disc_key_arr.length != 0
? " AND m1.ins_discipline_key IN (" + disc_key_arr.join(",") + ")"
: "")
+ " AND EXISTS (SELECT ''"
+ " FROM mld_stdmeldingfaq f"
+ " WHERE f.ins_discipline_key = m1.ins_discipline_key)" // Alleen waar faqs van zijn
+ " ORDER BY 2"
FCLTselector("discmulti",
discsql,
{ initKey: disc_key_arr.join(","),
label: L("lcl_vakgroup"),
onChange: 'updateStdm("' + urole + '");',
trclass: "primsearch",
multi: true,
emptyOption: (disc_key_arr.length==0? L("lcl_all") : null) // Als een disc_key_arr is meegegeven dan geen lege optie
})
// <!-- Melding (Stdmelding) -->
// LET OP!!
// deze selector wordt on-change dynamisch en totaal vervangen door ../Shared/loadStdmelding.asp!
// Wat hier staat is dus alleen de initiele situatie.
// SQL-queries uit loadStdmelding:
var stdmsql = "SELECT stdm.mld_stdmelding_key"
+ " , " + lcl.xsqla('stdm.mld_stdmelding_omschrijving', 'stdm.mld_stdmelding_key')
+ " , stdm.mld_ins_discipline_key"
+ " FROM mld_stdmelding stdm"
+ " WHERE mld_stdmelding_verwijder IS NULL"
// Vervallen stdmeldingen niet tonen
+ " AND (stdm.mld_stdmelding_vervaldatum IS NULL"
+ " OR stdm.mld_stdmelding_vervaldatum > SYSDATE)"
+ (frontend
? " AND stdm.mld_stdmelding_notfrontend = 0"
: "")
+ (disc_key_arr.length != 0
? " AND stdm.mld_ins_discipline_key IN (" + disc_key_arr.join(",") + ")"
: "")
+ " AND EXISTS (SELECT ''"
+ " FROM mld_stdmeldingfaq f"
+ " WHERE (f.mld_stdmelding_key = stdm.mld_stdmelding_key"
+ " OR (f.ins_discipline_key = stdm.mld_ins_discipline_key"
+ " AND f.mld_stdmelding_key IS NULL)))" // Alleen waar faqs van zijn
+ " ORDER BY " + lcl.xsql('stdm.mld_stdmelding_omschrijving', 'stdm.mld_stdmelding_key');
FCLTselector("stdmmulti",
stdmsql,
{ initKey: stdm_arr.length == 0? -1 : stdm_arr.join(","),
label: L("lcl_complain"),
trclass: "primsearch",
multi: true,
emptyOption: L("lcl_all")
});
} %>
</table>
</td><!-- end column 1 -->
<!-- Second column -->
<td class="searchkolom2">
<table><!-- x rijen, 2 kolommen: label + veld -->
<%
if (!frontend)
{
// Zichtbaar voor (faq level)
sql = " SELECT 1, " + safe.quoted_sql(L("lcl_faq_level1")) + " FROM DUAL"
+ " UNION ALL SELECT 2, " + safe.quoted_sql(L("lcl_faq_level2")) + " FROM DUAL"
+ " UNION ALL SELECT 3, " + safe.quoted_sql(L("lcl_faq_level3")) + " FROM DUAL"
FCLTselector("fac_faq_level",
sql,
{ initKey: -1,
label: L("lcl_faq_level"),
emptyOption: L("lcl_all")
});
if (S("language_toggles").length > 0)
{
sql = "";
for (var i = 0; i < S("language_toggles").length; i++)
{
sql += (sql != ""? " UNION ": "") + "SELECT " + safe.quoted_sql(S("language_toggles")[i]) + ", " + safe.quoted_sql(S("language_toggles")[i]) + ", 2 FROM DUAL";
}
sql += " ORDER BY 3, 2";
FCLTselector("fac_faq_lang",
sql,
{ initKey: -1,
label: L("lcl_faq_lang"),
emptyOption: L("lcl_all")
});
}
}
%>
</table>
</td><!-- end column 1 or 2 -->
</tr>
<% BLOCK_END();
var buttons = [];
buttons.push ( {title: L("lcl_search"), action:"doSubmit()" } ); // Overzicht
buttons.push ( {title: L("lcl_obj_advanced"), action: "myModal()" } );
CreateButtons(buttons, { entersubmit: true });
%>
</form>
</div>
<div id="result">
<iframe width="100%" height="100%"
src="../Shared/empty.asp"
name="workFrame" id="workFrame"
onload="FcltMgr.iframeLoaded(this)"
frameborder="0" scrolling="no">
</iframe>
</div>
</body>
</html>