FSN#35606 Suggest code beetje herzien

svn path=/Website/trunk/; revision=28307
This commit is contained in:
Jos Groot Lipman
2016-02-25 16:12:20 +00:00
parent d966250482
commit 39e972756b
3 changed files with 38 additions and 40 deletions

View File

@@ -52,20 +52,20 @@ function WriteResult2(sql, params)
{
cnt++;
// JSON Syntax
var result = [ oRs(params.fldName).Value,
oRs(params.fldKey).Value,
(oRs(params.fldDesc).Value != null? oRs(params.fldDesc).Value : ""), // Indien null dan lege string weergeven
(params.fldExtraParam? oRs(params.fldExtraParam).Value : null)
];
if (params.fldTitle) result.push(oRs(params.fldTitle).Value||"");
var result = { txt: oRs(params.fldName).Value,
key: oRs(params.fldKey).Value,
desc: oRs(params.fldDesc).Value || "" // Indien null dan lege string weergeven
};
if (params.fldExtraParam && oRs(params.fldExtraParam).Value)
result.extra = oRs(params.fldExtraParam).Value;
if (params.fldTitle && oRs(params.fldTitle).Value)
result.title = oRs(params.fldTitle).Value;
if (params.fnFoto)
{
if (!params.fldTitle)
result.push("");
var foto = params.fnFoto(oRs);
if (foto)
{
result.push(foto);
result.foto = foto;
jsonResult.anyfoto = true;
}
}

View File

@@ -302,7 +302,7 @@ function getFiltClausePersoon(pfiltcode, params)
// veel praktischer is, zie bijv. mld_edit_melding.js
function getExtraInfPersoon(pextracode)
{
var lExtraInf = { selectstr: ", 'Extra' extra", fromstr: "", wherestr: "" };
var lExtraInf = { selectstr: ", '' extra", fromstr: "", wherestr: "" };
if (pextracode && pextracode != "")
{
switch(pextracode)

View File

@@ -366,9 +366,9 @@ function Suggest(inParams)
// setValue(key, txt, doonChange, checkExist, extraParam, lastTry)
if (data && data.result.length == 1)
{
var txt = data.result[0][0];
var key = data.result[0][1];
var extraParam = data.result[0][3];
var txt = data.result[0].txt;
var key = data.result[0].key;
var extraParam = data.result[0].extra;
setValue(key, txt, true, false, extraParam);
}
// initiele waarden worden met initkey gezet
@@ -661,7 +661,7 @@ function Suggest(inParams)
}
// Maak suggestbox leeg indien checkExist is true en gevonden key en ingevoerde key komen niet overeen:
if (checkExist && resultsObj.result.length == 1 && resultsObj.result[0][1] != params.queryField.getAttribute("sgKey"))
if (checkExist && resultsObj.result.length == 1 && resultsObj.result[0].key != params.queryField.getAttribute("sgKey"))
{ // Maak suggestbox leeg
if (params.queryField.value.length > 0)
{
@@ -679,7 +679,7 @@ function Suggest(inParams)
var nr_of_hits = 0;
for (var i = 0; i < resultsObj.result.length; i++)
{
if (resultsObj.result[i][1] == params.queryField.getAttribute("sgKey"))
if (resultsObj.result[i].key == params.queryField.getAttribute("sgKey"))
{
nr_of_hits++;
var hit_i = i;
@@ -705,7 +705,7 @@ function Suggest(inParams)
}
}
if (checkExist && resultsObj.result.length == 1 && resultsObj.result[0][1] == params.queryField.getAttribute("sgKey"))
if (checkExist && resultsObj.result.length == 1 && resultsObj.result[0].key == params.queryField.getAttribute("sgKey"))
{
// geselecteerde text selecteren (enige resultaat)
setValues(doonChange);
@@ -719,9 +719,9 @@ function Suggest(inParams)
if (params.queryField.getAttribute("sgCurrentValue") && params.queryField.getAttribute("sgKey") > 0)
{
// Plak de current er voor als eerste keuze
resultsObj.result = [[params.queryField.getAttribute("sgCurrentValue"),
params.queryField.getAttribute("sgKey"),
L("lcl_shared_suggest_huidig")]].concat(resultsObj.result);
resultsObj.result = [ { txt: params.queryField.getAttribute("sgCurrentValue"),
key: params.queryField.getAttribute("sgKey"),
desc: L("lcl_shared_suggest_huidig")}].concat(resultsObj.result);
}
if (resultsObj.similar)
@@ -731,9 +731,9 @@ function Suggest(inParams)
for (var i = 0; i < resultsObj.result.length; i++)
{
if (resultsObj.result[i][0])
if (resultsObj.result[i].txt)
{
suggestionValues.push(resultsObj.result[i][0]);
suggestionValues.push(resultsObj.result[i].txt);
var xDiv = thisdoc.createElement("div");
xDiv.sgIndex = i;
@@ -749,11 +749,11 @@ function Suggest(inParams)
xDiv.onmouseover = function() { highlight(this.sgIndex, this); return false; };
xDiv.onmousedown = function() { setValues(true);hideAutocompleteDiv(); return true; };
if (resultsObj.result[i].length > 4)
xDiv.title = resultsObj.result[i][4];
if ("title" in resultsObj.result[i])
xDiv.title = resultsObj.result[i].title;
if (resultsObj.anyfoto)
{
var fotourl = resultsObj.result[i][5]
var fotourl = resultsObj.result[i].foto;
if (fotourl && fotourl.match(/\.(png|jpg|jpeg)$/)) // het is een image
{
var xFoto = thisdoc.createElement("img");
@@ -784,36 +784,37 @@ function Suggest(inParams)
// first matching part bold
var lsq = latestServerQuery;
if (lsq && lsq.charAt(0) == "*") lsq = lsq.substring(1);
ll = resultsObj.result[i][0].toLowerCase().indexOf(lsq);
ll = resultsObj.result[i].txt.toLowerCase().indexOf(lsq);
if (ll >= 0 && lsq.length)
{
if (ll > 0)
xSpan.appendChild(thisdoc.createTextNode(resultsObj.result[i][0].substring(0, ll)));
xSpan.appendChild(thisdoc.createTextNode(resultsObj.result[i].txt.substring(0, ll)));
var xb = thisdoc.createElement("b");
xb.appendChild(thisdoc.createTextNode(resultsObj.result[i][0].substring(ll, ll + lsq.length)));
xb.appendChild(thisdoc.createTextNode(resultsObj.result[i].txt.substring(ll, ll + lsq.length)));
xSpan.appendChild(xb);
xSpan.appendChild(thisdoc.createTextNode(resultsObj.result[i][0].substring(ll + lsq.length)));
xSpan.appendChild(thisdoc.createTextNode(resultsObj.result[i].txt.substring(ll + lsq.length)));
}
else
xSpan.appendChild(thisdoc.createTextNode(resultsObj.result[i][0]));
xSpan.appendChild(thisdoc.createTextNode(resultsObj.result[i].txt));
xDiv.appendChild(xSpan);
if (resultsObj.result[i].length > 2) // Extra description present
if ("desc" in resultsObj.result[i]) // Extra description present
{
var x3 = thisdoc.createElement("span");
x3.className = "suggestsrc";
ll = resultsObj.result[i][2]&&resultsObj.result[i][2].toLowerCase().indexOf(lsq);
var desc = resultsObj.result[i].desc || "";
ll = desc && desc.toLowerCase().indexOf(lsq);
if (params.highlightDescript && ll >= 0)
{
x3.appendChild(thisdoc.createTextNode(resultsObj.result[i][2].substring(0, ll)));
x3.appendChild(thisdoc.createTextNode(desc.substring(0, ll)));
var xb = thisdoc.createElement("b");
xb.appendChild(thisdoc.createTextNode(resultsObj.result[i][2].substring(ll, ll + lsq.length)));
xb.appendChild(thisdoc.createTextNode(desc.substring(ll, ll + lsq.length)));
x3.appendChild(xb);
x3.appendChild(thisdoc.createTextNode(resultsObj.result[i][2].substring(ll + lsq.length)));
x3.appendChild(thisdoc.createTextNode(desc.substring(ll + lsq.length)));
}
else
x3.appendChild(thisdoc.createTextNode(resultsObj.result[i][2]));
x3.appendChild(thisdoc.createTextNode(desc));
xDiv.appendChild(x3);
}
@@ -992,11 +993,8 @@ function Suggest(inParams)
{
if (resultsObj)
{
var result = resultsObj.result[selected][resultsObj.storeDesc? 2 : 0];
setValue(resultsObj.result[selected][1], result, doonChange, false, resultsObj.result[selected][3]) // doonChange
// Leuke feature om eens over te denken
//if (resultsObj.result[i].length > 2) // Extra info present
// params.queryField.title = resultsObj.result[selected][2]
var result = resultsObj.result[selected][resultsObj.storeDesc? "desc" : "txt"];
setValue(resultsObj.result[selected].key, result, doonChange, false, resultsObj.result[selected].extra) // doonChange
}
}