Files
Facilitor/APPL/Shared/contactpersoonselector.inc
Jos Groot Lipman f362b4d84f FSN#35094 Opfrissen icon-set font-awesome IE8
svn path=/Website/trunk/; revision=31620
2016-11-22 15:46:30 +00:00

150 lines
8.0 KiB
PHP

<% /*
$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.
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 = (device.test(device.supportsPlaceholder) ? "" : lwhenEmpty);
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;
}
}
// 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.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'><i class='fa fa-info-circle details' onclick='" + objectName + "_contactpersoondetails(\"" + fieldName + "\")'></i></span>" : ""%>
</td>
<td>
<%
} %>
<nobr>
<input id="<%=fieldName%>_show" class="fldcontactpers<%=!params.readonly&&params.required? " required" : ""%><%=params.readonly && params.moreinfo ? " details" : ""%>" value="<%=safe.htmlattr(lcontactpersoonName)%>" placeholder="<%=lwhenEmpty%>"
<%=params.readonly? " readonly" : ""%>
<%=params.moreinfo && params.readonly ? " onclick='" + objectName + "_contactpersoondetails(\"" + fieldName + "\")'" : "" %>
<%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'" : ""%>>
<input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.contactpersoonKey%>">
<%=params.moreinfo && !params.readonly && !params.label ? "<i class='fa fa-info-circle details' onclick='" + objectName + "_contactpersoondetails(\"" + fieldName + "\")'></i>" : ""%>
<% 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 <%=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">
jQuery(document).ready( 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": ""%>
});
if (FcltMgr.getCaller())
{
$("#<%=fieldName%>_caller").show();
}
}
)
</script>
<%
}
}
%>