225 lines
11 KiB
C++
225 lines
11 KiB
C++
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: objectselector.inc
|
|
Description: Algemene interface functie om een object suggestbox te maken
|
|
Deze moet je kunnen includen en aanroepen.
|
|
Resulteert dan uiteindelijk in een zichtbaar textveld aangemaakt die de objectnaam bevat (objectnaam veld)
|
|
en een hidden keyveld die de key van het object bevat (objectkey veld).
|
|
Het objectnaam veld heeft geen naam en wordt niet meegesubmit.
|
|
Het objectkey veld heeft een naam en wordt meegesubmit.
|
|
Het resultaat heeft de vorm "[<td>label</td><td>]selectveld[</td>]"
|
|
parameters fieldName: veldnaam van het objectkey veld. Dit veld wordt gesubmit.
|
|
objectName: naam van het suggest object dat wordt aangemaakt.
|
|
params: object met meegegeven parameters.
|
|
objectKey: initiële key waarde van het object die ingevuld moet worden.
|
|
label: label dat voor het objectnaam veld wordt weergegeven.
|
|
module: "MLD" -> maakt gebruik van get_objecten_sql()
|
|
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.
|
|
extraParamValue: Voegt een extra value parameter toe aan de waarde (<input>)
|
|
Initiële waarden voor de extra value parameters worden via de initiële query bepaald.
|
|
De parameter extraParamValueInit hoeft dan niet meegegeven te worden.
|
|
isBad: boolean die aangeeft dat het objectnaam veld als ongeldig
|
|
en leeg weergegeven moet worden (true|false(default)).
|
|
readonly: geeft aan of het object 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/objectFilter.inc" -->
|
|
|
|
<%
|
|
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"], js: [] });
|
|
|
|
function FCLTobjectselector(fieldName, objectName, params)
|
|
{
|
|
if (typeof params=="undefined") params = {};
|
|
|
|
// Is er een initiele waarde meegegeven? Zoek dan de omschrijving erbij!
|
|
var lobjectName = (params.whenEmpty != null ? params.whenEmpty : (params.readonly ? L("lcl_select_readonly") : L("lcl_select_object")));
|
|
|
|
if (params.extraParamValue)
|
|
{
|
|
var extraPV = params.extraParamValue.split(",");
|
|
}
|
|
|
|
var lextraInit = "";
|
|
if (params.objectKey && params.objectKey > 0)
|
|
{
|
|
var filtClause = getFiltClauseObject(params);
|
|
var extraInf = getExtraInfObject(params.extracode);
|
|
|
|
if (params.module == "MLD")
|
|
{
|
|
var plaatsaanduiding;
|
|
var wpprefix;
|
|
if (S("ins_element_description") == "")
|
|
{
|
|
var parentdeel = "CASE WHEN d.ins_deel_parent_key IS NOT NULL"
|
|
+ " THEN (SELECT p.ins_deel_omschrijving"
|
|
+ " FROM ins_deel p"
|
|
+ " WHERE p.ins_deel_key = d.ins_deel_parent_key"
|
|
+ " ) ||' / '"
|
|
+ " ELSE ''"
|
|
+ "END ";
|
|
wpprefix = S("prs_wpprefix_objectid") == 1;
|
|
plaatsaanduiding = (wpprefix
|
|
? " CASE"
|
|
+ " WHEN d.ins_alg_ruimte_type = 'W' AND wp.prs_werkplek_omschrijving IS NOT NULL"
|
|
+ " THEN ' ' || wp.prs_werkplek_omschrijving"
|
|
+ " ELSE ''"
|
|
+ " END"
|
|
: "''");
|
|
plaatsaanduiding = ", " + parentdeel + "|| d.ins_deel_omschrijving || " + plaatsaanduiding
|
|
+ " || ' (' || " + lcl.xsql("s.ins_srtdeel_omschrijving", "s.ins_srtdeel_key")
|
|
+ " || ') ' || d.ins_deel_opmerking ";
|
|
}
|
|
else
|
|
{
|
|
plaatsaanduiding = ", " + S("ins_element_description");
|
|
}
|
|
sql = "SELECT 'dummy' extra"
|
|
+ plaatsaanduiding + " deel"
|
|
+ extraInf.selectstr
|
|
+ " FROM ins_deel d"
|
|
+ " , ins_srtdeel s"
|
|
+ " , ins_srtgroep g"
|
|
+ " , ins_tab_discipline dis"
|
|
+ (wpprefix ? " , prs_werkplek wp" : "")
|
|
+ extraInf.fromstr
|
|
+ " WHERE d.ins_deel_verwijder IS NULL"
|
|
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
|
|
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
|
|
+ " AND g.ins_discipline_key = dis.ins_discipline_key"
|
|
+ (wpprefix ? " AND d.ins_alg_ruimte_key = wp.prs_werkplek_key(+)" : "")
|
|
+ " AND d.ins_deel_key = " + params.objectKey
|
|
+ extraInf.wherestr;
|
|
}
|
|
else
|
|
{
|
|
sql = "SELECT 'dummy' extra,"
|
|
+ "d.ins_deel_omschrijving"
|
|
+ extraInf.selectstr
|
|
+ " FROM ins_deel d"
|
|
+ " , ins_srtdeel s"
|
|
+ extraInf.fromstr
|
|
+ " WHERE d.ins_deel_verwijder IS NULL"
|
|
+ " AND d.ins_srtdeel_key = s.ins_srtdeel_key"
|
|
+ " AND d.ins_deel_key = " + params.objectKey
|
|
+ filtClause
|
|
+ extraInf.wherestr;
|
|
}
|
|
var oRs = Oracle.Execute(sql);
|
|
lobjectName = oRs(1).value; // "deel" of "ins_deel_omschrijving"
|
|
lextraInit = oRs("extra").value;
|
|
if (params.extraParamValue)
|
|
{
|
|
var extraPVI = [];
|
|
for (var i = 0; i < extraPV.length; i++)
|
|
{
|
|
extraPVI[i] = oRs(extraPV[i].replace(/^\s+|\s+$/g,"")).Value; // Replace is for trim spaces.
|
|
}
|
|
}
|
|
oRs.Close(); // close the recordset
|
|
}
|
|
|
|
// Bouw de url voor de persoons query op
|
|
var objQueryUrl = rooturl + "/appl/shared/suggest/SuggestObject.asp"
|
|
+ ((typeof params.autlevel != "undefined")? "?autlevel=" + params.autlevel : "?autlevel=-1")
|
|
+ (params.module? "&module=" + params.module : "")
|
|
+ (params.filtercode? "&filtcode=" + params.filtercode : "")
|
|
+ (params.extracode? "&extracode=" + params.extracode : "")
|
|
+ (params.autfunction? "&autfunction=" + params.autfunction : "")
|
|
+ (params.extraParamValue? "&extraParamValue=" + params.extraParamValue : "");
|
|
if (params.label)
|
|
{ %><tr <%=params.trclass?"class='"+params.trclass+"'":""%>>
|
|
<td class="label">
|
|
<label for="<%=fieldName%>_show"><%=params.label%></label>
|
|
</td>
|
|
<td>
|
|
<%
|
|
} %>
|
|
<div class="<%=fieldName%> nowrap<%=params.hidden ? " hidden" : ""%><%=params.disabled ? " disabled" : ""%>">
|
|
<input id="<%=fieldName%>_show" class="fld<%=!params.readonly&¶ms.required? " required" : ""%>" value="<%=safe.htmlattr(lobjectName)%>"
|
|
<%=params.readonly ? " readonly tabindex=-1" : ""%>
|
|
<%=params.onChange && !params.readonly? " sgonChange='" + params.onChange + "'" : ""%>
|
|
<% if (params.extraParamValue)
|
|
{
|
|
for (var i = 0; i < extraPV.length; i++)
|
|
{ %>
|
|
<%=" " + extraPV[i].replace(/^\s+|\s+$/g,"")%>="<%=safe.htmlattr(extraPVI && extraPVI[i]? extraPVI[i].toString().replace(/^\s+|\s+$/g,"") : "")%>" <% /* replace is for trim spaces */ %>
|
|
<% }
|
|
} /* LET OP DAT HTML-HAAKJE HIERACHTER */ %>>
|
|
<input type="hidden" class="<%=fieldName%>" id="<%=fieldName%>" name="<%=fieldName%>" value="<%=params.objectKey%>">
|
|
<% = params.moreinfo ? "<img alt='" + safe.htmlattr(L("ins_srtdiscipline_ins")) + "' class='details' src='" + rooturl + "/appl/Pictures/listdetail.gif' onclick='objectdetails_" + fieldName + "()'>" : ""%>
|
|
<%
|
|
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 objectdetails_<%=fieldName%> ()
|
|
{
|
|
if ($('#<%=fieldName%>')[0].value != -1) {
|
|
FcltMgr.openDetail("<%=rooturl%>/appl/ins/ins_deel.asp?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 + "\",";
|
|
if ("field" in params.urlAdd[i])
|
|
urlAddTxt += " field: \"" + params.urlAdd[i].field + "\"}";
|
|
else if ("val" in params.urlAdd[i])
|
|
urlAddTxt += " val: \"" + params.urlAdd[i].val + "\"}";
|
|
else if ("jqfield" in params.urlAdd[i])
|
|
urlAddTxt += " jqfield: \"" + params.urlAdd[i].jqfield + "\"}";
|
|
}
|
|
urlAddTxt += "]"
|
|
}
|
|
%>
|
|
<script type="text/javascript">
|
|
$(function()
|
|
{
|
|
<%=objectName%> = new Suggest({ objectName: "<%=objectName%>",
|
|
queryField: $("#<%=fieldName%>_show")[0],
|
|
queryUrl: "<%=objQueryUrl%>",
|
|
initKey: <%=params.objectKey? params.objectKey : -1%>,
|
|
keyField: $(".<%=fieldName%>#<%=fieldName%>")[0]
|
|
<%=params.prerequisite? ", prerequisite: " + params.prerequisite : ""%>
|
|
<%=params.urlAdd? ", urlAdd: " + urlAddTxt : ""%>
|
|
<%=params.extraParamField? ", extraParamField: $(\"" + "#" + params.extraParamField + "\")[0]" : ""%>
|
|
<%=params.extraParamField? ", initExtraParam: \"" + safe.jsstring("" + lextraInit) + "\"": ""%>
|
|
<%=params.extraParamValue? ", extraParamValue: " + "\"" + params.extraParamValue + "\"": ""%>
|
|
<%=params.isBad? ", isBad: true": ""%>
|
|
<%=params.readonly? ", fieldReadonly: true": ""%>
|
|
});
|
|
});
|
|
</script>
|
|
<%
|
|
}
|
|
}
|
|
%> |