Files
Facilitor/APPL/Shared/srtdeelselector.inc
Jos Groot Lipman b4dd7daf63 FSN#38631 Suggestvelden eigen icoon
svn path=/Website/trunk/; revision=31806
2016-12-03 09:46:47 +00:00

143 lines
7.3 KiB
PHP
Raw Blame History

<% /*
$Revision$
$Id$
File: srtdeelselector.inc
Description: Algemene interface functie om een standaard srtdeel suggestbox te maken
parameters: fieldName: veldnaam van het key veld. Dit veld wordt gesubmit.
objectName: naam van het suggest object dat wordt aangemaakt.
params: object met meegegeven parameters.
srtdeel_key Initi<74>le key waarde van de srtgroep die ingevuld moet worden.
srtgroep_key: Srtgroep key (parent)
module: Verplicht: module waarvan de srtdelen zijn
autfunction Verplicht autfunction (fac_function_code)
label: label dat voor het veld wordt weergegeven.
filtercode: extra filtercode voor de query die gebruikt wordt voor de suggest.
onChange: onchange op het textveld.
trclass: wordt ook op de <tr> gezet.
autlevel: autorisatie niveau voor de query die gebruikt wordt voor de suggest.
extraParamField: veldnaam voor een extra hidden parameter veld.
isBad: boolean die aangeeft dat het veld als ongeldig
en leeg weergegeven moet worden (true|false(default)).
readonly: geeft aan of het veld readonly weergegeven moet worden (true|false(default)).
*/ %>
<!-- #include file="./Suggest/srtdeelFilter.inc" -->
<%
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"], js: [] });
function FCLTsrtdeelselector(fieldName, objectName, params)
{
params = params || {};
var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty : (params.readonly ? L("lcl_select_readonly") : L("lcl_select_srtdeel")));
var lsrtdeelName = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
var lextraInit = "";
var filtClause = getFiltClauseSrtdeel(params.filtercode, params);
var orgmodule = params.module || "INS"; // geldige waarden: INS, BES, SLE
var module = (orgmodule == "SLE" ? "INS" : orgmodule); // module SLE wordt verder behandled als INS.
if (orgmodule != "INS" && orgmodule != "BES" && orgmodule != "SLE")
shared.internal_error(L("lcl_obj_bad_value") + " module={0}.".format(orgmodule));
sql = "SELECT COUNT(distinct sd." + module + "_srtdeel_key) aantal"
+ " FROM " + module + "_srtdeel sd"
+ " , " + module + "_v_aanwezigsrtgroep sg"
+ filtClause.from
+ " WHERE sg." + module + "_srtgroep_key = sd." + module + "_srtgroep_key"
+ filtClause.where;
var oRs = Oracle.Execute(sql);
// Als er maar <20><>n srtdeel is, dan deze selecteren.
if (oRs("aantal").value == 1)
{
sql = "SELECT sd." + module + "_srtdeel_key srtdeel_key"
+ ", CASE"
+ " WHEN sd." + module + "_srtdeel_nr IS NULL"
+ " THEN ''"
+ " ELSE sd." + module + "_srtdeel_nr || ' '"
+ " END ||"
+ lcl.xsql ("sd." + module + "_srtdeel_omschrijving", "sd." + module + "_srtdeel_key") + " srtdeel_omschrijving"
+ getExtraInfSrtdeel(params.extracode, module)
+ " FROM " + module + "_srtdeel sd"
+ ", " + module + "_v_aanwezigsrtgroep sg"
+ filtClause.from
+ " WHERE sg." + module + "_srtgroep_key = sd." + module + "_srtgroep_key"
+ " AND sg." + module + "_srtgroep_verwijder IS NULL"
+ filtClause.where;
var oRs = Oracle.Execute(sql);
lsrtdeelName = oRs("srtdeel_omschrijving").value; // bes_srtdeel_omschrijving
lextraInit = oRs("extra").value;
params.srtdeel_key = oRs("srtdeel_key").value;
}
// Bouw de url voor de srtdeel query op
var srtdeelQueryUrl = rooturl + "/appl/shared/suggest/SuggestSrtdeel.asp"
+ "?autfunction=" + params.autfunction
+ (params.srtgroep_key? "&srtgroep_key=" + params.srtgroep_key : "")
+ (params.module? "&module=" + params.module : "")
+ (params.extracode? "&extracode=" + params.extracode : "")
+ (params.filtercode? "&filtcode=" + params.filtercode : "");
if (params.label)
{ %>
<tr <%=params.trclass ? "class='"+params.trclass+"'" : ""%>><td class="label">
<label for="<%=fieldName%>"><%=params.label%>:</label>
</td>
<td>
<%
} %>
<nobr>
<input id="<%=fieldName%>_show" class="fldsrtdeel<%=(!params.readonly && params.required)? " required" : ""%>" value="<%=safe.htmlattr(lsrtdeelName)%>" placeholder="<%=lwhenEmpty%>"
<%=params.readonly? " readonly":""%>
<%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'":""%>
>
<input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.srtdeel_key%>">
<%
if (params.extraParamField)
{ /* het extra parameter veld wordt door suggest object gevuld */%>
<input type="hidden" id="<%=params.extraParamField%>" name="<%=params.extraParamField%>" value="<%=safe.htmlattr(lextraInit)%>">
<%
} %>
</nobr>
<%
if (params.label)
{ %>
</td></tr>
<%
}
if (!params.readonly)
{
if (params.urlAdd)
{
var urlAddTxt = "[";
for (var i = 0; i < params.urlAdd.length; i++)
{
urlAddTxt += (i > 0? ", " : "") + "{ urlParam: \"" + params.urlAdd[i].urlParam + "\", field: \"" + params.urlAdd[i].field + "\" }";
}
urlAddTxt += "]"
}
%>
<script type="text/javascript">
jQuery(document).ready( function()
{
<%=objectName%> = new Suggest({ objectName: "<%=objectName%>",
queryField: $("#<%=fieldName%>_show")[0],
queryUrl: "<%=srtdeelQueryUrl%>",
initKey: <%=params.srtdeel_key? params.srtdeel_key : -1%>,
icon: "fa-tag",
keyField: $("#<%=fieldName%>")[0]
<%=params.urlAdd? ", urlAdd: " + urlAddTxt : ""%>
<%=params.extraParamField? ", extraParamField: $(\"" + "#" + params.extraParamField + "\")[0]" : ""%>
<%=params.extraParamField? ", initExtraParam: \"" + safe.jsstring("" + lextraInit) + "\"": ""%>
<%=params.isBad? ", isBad: true": ""%>
<%=params.readonly? ", fieldReadonly: true": ""%>
,highlightDescript: true
});
}
)
</script>
<%
}
}
%>