Files
Facilitor/APPL/Shared/afdelingselector.inc
Koen Reefman 1d880a9129 AREO#83998 Savepoint
svn path=/Website/trunk/; revision=68748
2025-04-14 15:08:34 +00:00

166 lines
8.2 KiB
PHP

<% /*
$Revision$
$Id$
File: afdelingsselector.inc
Description: Algemene interface functie om een afdeling suggestbox te maken
Deze moet je kunnen includen en aanroepen.
Resulteert dan uiteindelijk in een zichtbaar textveld aangemaakt die de afdelingsnaam bevat (afdelingsnaam veld)
en een hidden keyveld die de key van de afdeling bevat (afdelingskey veld).
Het afdelingsnaam veld heeft geen naam en wordt niet meegesubmit.
Het afdelingskey veld heeft een naam en wordt meegesubmit.
Het resultaat heeft de vorm "[<td>label</td><td>]selectveld[</td>]"
parameters fieldName: veldnaam van het afdelingskey veld. Dit veld wordt gesubmit.
objectName: naam van het suggest object dat wordt aangemaakt.
params: object met meegegeven parameters.
departmentKey: initiële key waarde van de afdeling die ingevuld moet worden.
label: label dat voor het afdelingsnaam 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.
suppressEmpty Onderdrukt het veld helemaal indien EN readonly EN leeg
suppressJustOne Hide het veld helemaal indien er één resultaat is (en vul die in).
isBad: boolean die aangeeft dat het afdelingsnaam veld als ongeldig
en leeg weergegeven moet worden (true|false(default)).
readonly: geeft aan of het afdeling 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
*/ %>
<!-- #include file="./Suggest/afdelingFilter.inc" -->
<%
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"], js: [] });
function FCLTafdelingselector(fieldName, objectName, params)
{
if (!(params.departmentKey && params.departmentKey > 0) && params.readonly && params.suppressEmpty)
return;
var sgType = "afdeling";
if (typeof params == "undefined") params = {};
var isMobile = ("mobile" in params) ? params.mobile : (typeof mobile != "undefined");
if (params.moreinfo)
{
var authparamsPRS = user.checkAutorisation("WEB_PRSUSE", true);
params.moreinfo = authparamsPRS && authparamsPRS.PRSreadlevel < 9;
}
var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty : (params.readonly ? L("lcl_select_readonly") : L("lcl_select_afdeling")));
var ldepartmentName = "";
var lextraInit = "";
if (params.departmentKey && params.departmentKey > 0)
{
var filtClause = getFiltClauseAfdeling(params.filtercode);
sql = "SELECT " + S("prs_dep_string") + " dep"
+ ", " + S("prs_kpn_string") + " kpl"
+ " FROM prs_v_afdeling d"
+ ", prs_v_aanwezigkostenplaats k"
+ " WHERE d.prs_kostenplaats_key = k.prs_kostenplaats_key (+)"
+ " AND d.prs_afdeling_key = " + params.departmentKey
+ filtClause;
var oRs = Oracle.Execute(sql);
ldepartmentName = oRs("dep").value;
lextraInit = oRs("kpl").value;
oRs.Close(); // close the recordset
}
// Bouw de url voor de persoons query op
var afdQueryUrl = rooturl + "/appl/shared/suggest/SuggestAfdeling.asp"
+ ((typeof params.autlevel != "undefined")? "?autlevel=" + params.autlevel : "?autlevel=-1")
+ (params.filtercode? "&filtcode=" + params.filtercode : "");
if (params.label)
{ %><tr <%=params.trclass?"class='"+params.trclass+"'":""%>>
<td class="label">
<label for="<%=fieldName%>_show"><%=params.label%></label>
<%= params.moreinfo && !params.readonly ? "<span class='labelextra details' onclick='afdelingdetails_" + fieldName + "()'>"+I('fa-info-circle')+"</span>" : ""%>
</td>
<td>
<%
}
if (params.readonly) { %>
<span id="<%=fieldName%>_show" class="readonly flddep<%=params.moreinfo ? " details" : ""%>"
<%=params.moreinfo ? " onclick='afdelingdetails_" + fieldName + "()'" : "" %>>
<%=safe.html(ldepartmentName)%>
</span>
<input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.departmentKey%>">
<%} else { %>
<div<%=isMobile ? ' class="input-icon-wrapper"' : ''%>>
<input id="<%=fieldName%>_show"
class="fld<%=!params.readonly&&params.required? " required" : ""%><%=isMobile ? MOBILE_UI_CLASSES.input : ""%>"
value="<%=safe.htmlattr(ldepartmentName)%>" placeholder="<%=safe.htmlattr(lwhenEmpty)%>"
sgType="<%=sgType%>" <%=params.readonly? " readonly tabindex=-1" : ""%>
<%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'" : ""%>>
<input type="hidden" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.departmentKey%>">
<%
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)%>">
<%
} %>
</div>
<%}
if (params.label)
{ %>
</td></tr>
<%
} %>
<script type="text/javascript">
function afdelingdetails_<%=fieldName%> ()
{
<%
if (params.readonly)
{ %>
FcltMgr.openDetail("appl/prs/prs_afdeling.asp?key=<%=params.departmentKey%>");
<% }
else
{ %>
if ($('#<%=fieldName%>')[0].value != -1)
FcltMgr.openDetail("appl/prs/prs_afdeling.asp?key=" + $('#<%=fieldName%>')[0].value, $('#<%=fieldName%>')[0].value);
<% } %>
}
</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%>",
sgType: "<%=sgType%>",
queryField: $("#<%=fieldName%>_show")[0],
queryUrl: "<%=afdQueryUrl%>",
icon: "fa-users",
initKey: <%=params.departmentKey? params.departmentKey : -1%>,
keyField: $("#<%=fieldName%>")[0]
<%=params.multitoggle ? ", multitoggle: 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.suppressJustOne? ", suppressJustOne: true": ""%>
});
});
</script>
<%
}
}
%>