FSN#36126 Eenvoudiger meerdere personen in groep kunnen zetten

svn path=/Website/trunk/; revision=32911
This commit is contained in:
Jos Groot Lipman
2017-02-22 16:22:20 +00:00
parent 22df20650f
commit 4d8b976f95
4 changed files with 32 additions and 5 deletions

View File

@@ -56,7 +56,8 @@ function model_fac_groep(groep_key, params)
this.includes = {
"users": {
"model": new model_fac_gebruikersgroep(),
"joinfield": "fac_groep"
"joinfield": "fac_groep",
"multiadd": "user"
}
};

View File

@@ -328,11 +328,13 @@ function scf_RWFIELDTR(model, fld, val, key, params)
}
else if (predefined == "PRS_PERSLID")
{
var canmultiadd = fld == params.multiadd && !(key > 0);
FCLTpersoonselector(fld,
"sg" + fld,
{ label: field.label,
perslidKey: val?val.id:null,
required: params.required
required: params.required,
multi: canmultiadd
});
}
else if (predefined == "PRS_AFDELING")

View File

@@ -57,9 +57,12 @@ function scaffolding_save(model, scf_params)
var arr = jsondata[params.multiadd]; // Dit zal dan een Array zijn
for (var i = 0; i < arr.length; i++)
{
jsondata[params.multiadd] = arr[i];
var restresult = model.REST_POST(params, jsondata);
key.push(restresult.key);
if (arr[i] > 0)
{
jsondata[params.multiadd] = arr[i];
var restresult = model.REST_POST(params, jsondata);
key.push(restresult.key);
}
}
}
else

View File

@@ -130,6 +130,12 @@ function FCLTpersoonselector(fieldName, objectName, params)
<td>
<%
}
if (params.multi)
{
params.onChange = "onChangeMultiPerson"; // Je mag geen eigen onChange hebben
params.required = false; // Multi mag altijd ook 0 zijn
}
if (params.readonly) { %>
<span id="<%=fieldName%>_show" class="readonly fldpers<%=params.moreinfo ? " details" : ""%>"
<%=params.moreinfo ? " onclick='iface.persoonDetails(\"" + fieldName + "\", \"" + (params.info||"") + "\")'" : "" %>>
@@ -190,6 +196,21 @@ function FCLTpersoonselector(fieldName, objectName, params)
<%=objectName%>.isBad();
<% } %>
});
<% if (params.multi) { %>
function onChangeMultiPerson(key, naam)
{
if (key < 0)
return;
<%=objectName%>.setValue(-1, ""); // Wissen en zorgen dat hij in de volgende telling niet meekomt
if ($("input[name=<%=fieldName%>][value=" + key + "]").length) // Hij is er al
return;
var inp = $("<input>").attr("type", "hidden").attr("name", "<%=fieldName%>").val(key);
var td = $("<td>").text(naam).append(inp).prepend("<i class='fa fa-trash'></i> ");
var tr = $("<tr><td></td></tr>").append(td);
$("input#<%=fieldName%>_show").closest("tr").after(tr);
FcltMgr.resized();
}
<% } %>
</script>
<%
}