Files
Facilitor/APPL/Shared/bedrijfselector.inc
Gijs Wassink 1c6fabf9bc Dubbele punten #64018
svn path=/Website/trunk/; revision=51788
2021-06-07 13:01:29 +00:00

172 lines
8.5 KiB
C++

<% /*
$Revision$
$Id$
File: bedrijfselector.inc
Description: Algemene interface functie om een bedrijf suggestbox te maken
Deze moet je kunnen includen en aanroepen.
Resulteert dan uiteindelijk in een zichtbaar textveld aangemaakt die de bedrijfsnaam bevat (bedrijfsnaam veld)
en een hidden keyveld die de key van het bedrijf bevat (bedrijfskey veld).
Het bedrijfsnaam veld heeft geen naam en wordt niet meegesubmit.
Het bedrijfskey veld heeft een naam en wordt meegesubmit.
Het resultaat heeft de vorm "[<td>label</td><td>]selectveld[</td>]"
parameters fieldName: veldnaam van het bedrijfskey veld. Dit veld wordt gesubmit.
objectName: naam van het suggest object dat wordt aangemaakt.
params: object met meegegeven parameters.
companyKey: initiële key waarde van de bedrijf die ingevuld moet worden.
label: label dat voor het bedrijfsnaam 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 bedrijfsnaam veld als ongeldig
en leeg weergegeven moet worden (true|false(default)).
readonly: geeft aan of het bedrijf veld readonly weergegeven moet worden (true|false(default)).
moreinfo: geeft een extra informatie button achter het suggest veld. Klikken hierop geeft informatie
over de geselecteerde waarde
startempty start with an empty bedrijfselector suggestbox.
*/ %>
<!-- #include file="./Suggest/bedrijfFilter.inc" -->
<%
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"], js: [] });
function FCLTbedrijfselector(fieldName, objectName, params)
{
if (typeof params=="undefined") params = {};
if (!(params.companyKey && params.companyKey > 0) && params.readonly && params.suppressEmpty) return;
var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty : (params.readonly ? L("lcl_select_readonly") : L("lcl_select_bedrijf")));
var lcompanyName = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
var lextraInit = "";
if (params.companyKey && params.companyKey > 0)
{
var filtClause = getFiltClauseBedrijf(params.filtercode);
sql = "SELECT prs_bedrijf_naam comp, 'dummy' extra"
+ " FROM prs_v_aanwezigbedrijf b"
+ " WHERE b.prs_bedrijf_key = " + params.companyKey
+ filtClause;
var oRs = Oracle.Execute(sql);
if (!oRs.eof) {
lcompanyName = oRs("comp").Value;
lextraInit = oRs("extra").Value
}
oRs.Close(); // close the recordset, oRs will be reused
}
else if (!params.startempty)
{
var filtClause = getFiltClauseBedrijf(params.filtercode, params);
var extraInf = getExtraInfbedrijf(params.extracode);
sql = "SELECT COUNT(*) aantal"
+ " FROM prs_v_aanwezigbedrijf b"
+ " WHERE 1 = 1"
+ filtClause;
var oRs = Oracle.Execute(sql);
// Als er maar één vakgroep is, dan deze selecteren.
if (oRs("aantal").Value == 1)
{
oRs.Close(); // close the recordset, oRs will be reused
sql = "SELECT b.prs_bedrijf_key"
+ ", " + lcl.xsqla('prs_bedrijf_naam', 'prs_bedrijf_key')
+ extraInf
+ " FROM prs_v_aanwezigbedrijf b"
+ " WHERE 1 = 1"
+ filtClause;
var oRs = Oracle.Execute(sql);
lcompanyName = oRs("prs_bedrijf_naam").Value;
lextraInit = oRs("extra").Value;
params.companyKey = oRs("prs_bedrijf_key").Value;
}
oRs.Close(); // At this point there is always 1 open recordSet named oRs
}
// Bouw de url voor de persoons query op
var compQueryUrl = rooturl + "/appl/shared/suggest/SuggestBedrijf.asp"
+ ((typeof params.autlevel != "undefined")? "?autlevel=" + params.autlevel : "?autlevel=-1")
+ (params.filtercode? "&filtcode=" + params.filtercode : "")
+ (params.extracode? "&extracode=" + params.extracode : "");
if (params.label)
{ %><tr <%=params.trclass?"class='"+params.trclass+"'":""%>>
<td class="label">
<label class='selector' for="<%=fieldName%>_show"><%=params.label%></label>
<% = params.moreinfo && !params.readonly ? "<span class='labelextra details' onclick='bedrijfdetails_" + fieldName + "()'>"+I("fa-info-circle")+"</span>" : ""%>
</td>
<td>
<%
}
if (params.readonly) { %>
<span id="<%=fieldName%>_show" class="readonly fld<%=params.moreinfo ? " details" : ""%>"
<%=params.moreinfo ? " onclick='bedrijfdetails_" + fieldName + "()'" : "" %>>
<%=safe.html(lcompanyName)%>
</span>
<input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.companyKey%>">
<%} else { %>
<nobr>
<input id="<%=fieldName%>_show" class="fld<%=!params.readonly&&params.required? " required" : ""%><%=params.readonly && params.moreinfo ? " details" : ""%>"
<% =params.moreinfo && params.readonly ? " title='" + L("lcl_details") + "' onclick='bedrijfdetails_" + fieldName + "()'" : ""%>
value="<%=safe.htmlattr(lcompanyName)%>" placeholder="<%=lwhenEmpty%>"
<%=params.readonly? " readonly" : ""%>
<%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'" : ""%>>
<input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.companyKey%>">
<% = params.moreinfo && !params.readonly && !params.label ? "<span class='details' onclick='bedrijfdetails_" + fieldName + "()'>" + I("fa-info-circle") + "</span>" : ""%>
<%
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>
<%
} %>
<script type="text/javascript">
function bedrijfdetails_<%=fieldName%> ()
{
if ($('#<%=fieldName%>')[0].value != -1) {
FcltMgr.openDetail("appl/prs/prs_bedrijf.asp?bedrijf_key=" + $('#<%=fieldName%>')[0].value, $('#<%=fieldName%>')[0].value);
} else {
// FcltMgr.alert("Wat wil je nou?");
}
}
</script>
<%
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">
$(function()
{
<%=objectName%> = new Suggest({ objectName: "<%=objectName%>",
queryField: $("#<%=fieldName%>_show")[0],
queryUrl: "<%=compQueryUrl%>",
icon: "fa-industry",
initKey: <%=params.companyKey? params.companyKey : -1%>,
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": ""%>
});
});
</script>
<%
}
}
%>