176 lines
8.6 KiB
C++
176 lines
8.6 KiB
C++
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: contactpersoonselector.inc
|
|
Description: Algemene interface functie om een contactpersonen suggestbox te maken
|
|
Deze moet je kunnen includen en aanroepen.
|
|
Resulteert dan uiteindelijk in een zichtbaar textveld aangemaakt die de contactpersoonnaam bevat (contactpersoonnaam veld)
|
|
en een hidden keyveld die de key van de contactpersoon bevat (contactpersoonkey veld).
|
|
Het contactpersoonnaam veld heeft geen naam en wordt niet meegesubmit.
|
|
Het contactpersoonkey veld heeft een naam en wordt meegesubmit.
|
|
Het resultaat heeft de vorm "[<td>label</td><td>]selectveld[</td>]"
|
|
parameters: fieldName: veldnaam van het contactpersoonkey veld. Dit veld wordt gesubmit.
|
|
objectName: naam van het suggest object dat wordt aangemaakt.
|
|
params: object met meegegeven parameters.
|
|
contactpersoonKey: initiële key waarde van de contactpersoon die ingevuld moet worden.
|
|
label: label dat voor het contactpersoonnaam veld wordt weergegeven.
|
|
filtercode: extra filtercode voor de query die gebruikt wordt voor de suggest.
|
|
onChange: onchange op het textveld.
|
|
extraParamField: veldnaam voor een extra hidden parameter veld.
|
|
locatiekey Alleen uitvoerende tonen die op deze locatie leveren.
|
|
gebouwkey Alleen uitvoerende tonen die in dit gebouw leveren.
|
|
aanvragerkey Alleen contactpersonen van de uitvoerende tonen die voldoen aan de bedrijfdienstlocatie "Voor opdrachtgever/bedrijf" voorwaarden
|
|
isBad: boolean die aangeeft dat het contactpersoonnaam veld als ongeldig
|
|
en leeg weergegeven moet worden (true|false(default)).
|
|
readonly: geeft aan of het contactpersoonnaam veld readonly weergegeven moet worden (true|false(default)).
|
|
filtercode: filtercode van extra filter clausule voor initiële waarde
|
|
moreinfo: geeft een extra informatie button achter het suggest veld. Klikken hierop geeft informatie
|
|
over de geselecteerde waarde
|
|
suppressEmpty: niets tonen als suppressEmpty en readonly
|
|
*/ %>
|
|
|
|
<!-- #include file="./Suggest/contactpersoonFilter.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"], js: [] });
|
|
|
|
function FCLTcontactpersoonselector(fieldName, objectName, params)
|
|
{
|
|
if (typeof params == "undefined") params = {};
|
|
if (!(params.contactpersoonKey && params.contactpersoonKey > 0) && params.readonly && params.suppressEmpty) return;
|
|
|
|
var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty : (params.readonly ? L("lcl_select_readonly") : L("lcl_select_contactpersoon")));
|
|
var lcontactpersoonName = "";
|
|
|
|
// Bijvoorbeeld params.perslidKey ook meegeven aan getFiltClauseStdmelding.
|
|
// params.perslidKey kan ook meegegeven worden met urlAdd zodat de waarde uit een veld wordt gehaald
|
|
if (params.urlAdd)
|
|
{
|
|
for (i in params.urlAdd)
|
|
{
|
|
if (params.urlAdd[i].init)
|
|
params[params.urlAdd[i].urlParam] = params.urlAdd[i].init;
|
|
}
|
|
}
|
|
|
|
var lextraInit = "";
|
|
if (params.contactpersoonKey && params.contactpersoonKey > 0)
|
|
{
|
|
var filtClause = getFiltClauseContactpersoon(params.filtercode);
|
|
|
|
sql = "SELECT cp.prs_contactpersoon_key"
|
|
+ ", " + S("prs_contactpers_string") + " naam"
|
|
+ ", b.prs_bedrijf_naam"
|
|
+ " FROM prs_contactpersoon cp"
|
|
+ " , prs_bedrijf b"
|
|
+ " WHERE cp.prs_bedrijf_key = b.prs_bedrijf_key"
|
|
+ " AND cp.prs_contactpersoon_key = " + params.contactpersoonKey
|
|
+ filtClause;
|
|
var oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{
|
|
lcontactpersoonName = oRs("naam").value;
|
|
lextraInit = oRs("prs_bedrijf_naam").value;
|
|
}
|
|
oRs.Close(); // close the recordset
|
|
}
|
|
|
|
// Bouw de url voor de contactpersoons query op
|
|
var contactpersoonQueryUrl = rooturl+"/appl/shared/suggest/SuggestContactpersoon.asp"
|
|
+ ((typeof params.autlevel != "undefined")? "?autlevel=" + params.autlevel : "?autlevel=-1")
|
|
+ (params.locatiekey? "&loc_key=" + params.locatiekey : "")
|
|
+ (params.gebouwkey? "&bld_key=" + params.gebouwkey : "")
|
|
+ (params.aanvragerkey? "&aanvrager_key=" + params.aanvragerkey : "")
|
|
+ (params.filtercode? "&filtcode=" + params.filtercode : "");
|
|
if (params.label)
|
|
{ %><tr>
|
|
<td class="label">
|
|
<label class='selector' for="<%=fieldName%>"><%=params.label%></label>
|
|
<%=params.moreinfo && !params.readonly ? "<span class='labelextra'><span class='details' onclick='" + objectName + "_contactpersoondetails(\"" + fieldName + "\")'>" + I("fa-info-circle") + "</span></span>" : ""%>
|
|
</td>
|
|
<td class="nowrap">
|
|
<%
|
|
}
|
|
if (params.readonly)
|
|
{ %>
|
|
<span id="<%=fieldName%>_show" class="fld<%=params.moreinfo ? " details" : ""%>"
|
|
<%=(params.moreinfo ? " onclick='" + objectName + "_contactpersoondetails(\"" + fieldName + "\")'" : "")%>>
|
|
<%=safe.html(lcontactpersoonName)%>
|
|
</span>
|
|
<%}
|
|
else
|
|
{ %>
|
|
<input id="<%=fieldName%>_show" class="fld <%=params.required? " required" : ""%>" value="<%=safe.htmlattr(lcontactpersoonName)%>" placeholder="<%=safe.htmlattr(lwhenEmpty)%>"
|
|
<%=params.onChange ? " sgonChange='" + params.onChange + "'" : ""%>>
|
|
|
|
<%=(params.moreinfo && !params.label ? "<span class='details' onclick='" + objectName + "_contactpersoondetails(\"" + fieldName + "\")'>" + I("fa-info-circle") + "</span>" : "")%>
|
|
<%} %>
|
|
<input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.contactpersoonKey%>">
|
|
|
|
|
|
<% 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)%>">
|
|
<%
|
|
} %>
|
|
<%
|
|
if (params.label)
|
|
{ %>
|
|
</td></tr>
|
|
<%
|
|
}
|
|
%>
|
|
|
|
<script type="text/javascript">
|
|
function <%=objectName%>_contactpersoondetails(fieldName)
|
|
{
|
|
var pkey=$('#'+fieldName)[0].value;
|
|
var pname=$('#'+fieldName+'_show')[0].value;
|
|
if (pkey != -1) {
|
|
FcltMgr.openDetail("appl/prs/prs_contactpersoon.asp?cps_key=" + pkey, pname);
|
|
} else {
|
|
// FcltMgr.alert("Kies eerst een persoon?");
|
|
}
|
|
}
|
|
</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: "<%=contactpersoonQueryUrl%>",
|
|
initKey: <%=params.contactpersoonKey? params.contactpersoonKey : -1%>,
|
|
keyField: $("#<%=fieldName%>")[0],
|
|
highlightDescript: true
|
|
<%=params.urlAdd? ", urlAdd: " + urlAddTxt : ""%>
|
|
<%=params.extraParamField? ", extraParamField: $(\"" + "#" + params.extraParamField + "\")[0]" : ""%>
|
|
<%=params.extraParamField? ", initExtraParam: \"" + safe.jsstring("" + lextraInit) + "\"": ""%>
|
|
<%=params.isBad? ", isBad: true": ""%>
|
|
<%=params.readonly? ", fieldReadonly: true": ""%>
|
|
<%=params.ismodal? ", fieldModal: true": ""%>
|
|
});
|
|
if (FcltMgr.getCaller())
|
|
{
|
|
$("#<%=fieldName%>_caller").show();
|
|
}
|
|
});
|
|
</script>
|
|
<%
|
|
}
|
|
}
|
|
%> |