HSLE#53460 Correcte afhandeling gepinde advanced (multi)suggest velden

svn path=/Website/trunk/; revision=38630
This commit is contained in:
2018-07-24 14:02:10 +00:00
parent 3024979cdb
commit dce214f456
2 changed files with 57 additions and 15 deletions

View File

@@ -73,10 +73,41 @@ var sameurl = false;
// Deze functie uitvoeren als op de zoek button wordt geklikt
function doSubmitWithKenmerken()
{
$('div#dkenmmodal2').formhtml(kenmerk_html);
// Ingevulde waarden van de kenmerken bewaren.
$("div#dkenmmodal2").formhtml(kenmerk_html);
var $dk2 = $("div#dkenmmodal2"); // shortcut
var aantal_kenm = $("div#dkenmmodal2 #k_all").val();
// Voeg handmatig de nog niet geinitialiseerde multiSuggests toe
for (var n = 1; n <= aantal_kenm; n++)
{
if ($("#k" + n + "t").val() == "S") // if (isSuggest)
{
if ($("#k" + n + "val").val() && $("#k" + n + "val").val().split(",").length > 1) // if (holds multiple values)
{
if ($("#execDonek"+n).val() == 0) // if (has not been initialized)
{
var storedVal = $("#k" + n + "val").val().split(",");
$("#k" + n + "val").remove();
for (var i = 0; i < storedVal.length; i++)
{
$("<input>").attr({
type: "hidden",
id: "k"+n+"val",
name: "k"+n+"val",
value: storedVal[i]
}).appendTo($dk2);
}
}
else if ($("#execDonek"+n).val() == 1) // Remove the input.val field because we have a select#knval.field
$("input#k" + n + "val").remove();
}
}
}
// Strip alle velden er uit die niets doen. Voorkomt extreem lange querystring
var $dk2 = $('div#dkenmmodal2'); // shortcut
var $dk2 = $("div#dkenmmodal2"); // shortcut
/* Global kenmerk_waarden */
for (var m = 0; m < kenmerk_waarden.length; m++)
{
@@ -177,6 +208,7 @@ function setAdvFlexValues(flexKenmerken)
setAdvFlexValue(this_k);
}
advfilters = null; // used -> truncate
}
function setAdvFlexValue(k)
@@ -216,6 +248,7 @@ function showKenmerkModal(purl, ptitle, init)
kenmerkArray[kenmerkArray.length] = new kenmerkValues(n);
}
kenmerk_waarden = kenmerkArray;
$('div#dkenmmodal').dialog("close");
// Als dialog scherm gesloten is kunnen we nog bij de kenmerken.
// Alleen de waarden worden niet meegenomen met de submit, omdat dialog buiten het formulier (<form>) wordt gehouden.
@@ -293,11 +326,12 @@ function showKenmerkModal(purl, ptitle, init)
$("#dkenmmodal").load(purl,
function()
{
$('div#dkenmmodal').dialog(params).dialog('open');
$("div#dkenmmodal").dialog(params).dialog("open");
if (init)
{
setAdvFlexValues(init);
_doOk();
setAdvFlexValues(init);
_doOk();
}
else if (sameurl)
{ // Zet de geselecteerde waarden

View File

@@ -100,6 +100,15 @@ function Suggest(inParams)
return params.keyField;
}
function multiToggle($fld, adv)
{
$fld.addClass(adv ? "advMultiSuggest" : "multiSuggest");
var $lbl = $("<span fcltfor='" + $fld.attr("id") + "' class='multi_suggest_toggle' />").on("click", function() { toggleSelect(this); }).html("&raquo;");
var $div = $("<div />").addClass(adv ? "advmultitoggle" : "multitoggle");
$fld.add($fld.next(".suggestklikker")).wrapAll($div);
$fld.before($lbl);
}
// TODO: Controleren of parent wel in hetzelfde domein zit?
if (!params.embedded && self != top && window.name != "fclttop" && document.body.id!="searchbody")
{
@@ -145,15 +154,11 @@ function Suggest(inParams)
$(params.queryField).after($klikker)
.addClass("hasIcon");
if (params.multitoggle)
{
$(params.queryField).addClass(params.multitoggle == "advanced" ? "advMultiSuggest" : "multiSuggest");
var $lbl = $("<span fcltfor='" + $(params.queryField).attr("id") + "' class='multi_suggest_toggle' />").on("click", function() { toggleSelect(this); }).html("&raquo;");
var $div = $("<div />").addClass(params.multitoggle == "advanced" ? "advmultitoggle" : "multitoggle"); // deze div schuiven we 15px naar links
$(params.queryField).add($(params.queryField).next(".suggestklikker")).wrapAll($div);
$(params.queryField).before($lbl);
}
params.queryField.setAttribute("sgKey", params.initKey);
if (params.multitoggle)
multiToggle($(params.queryField), params.multitoggle == "advanced");
// IE6 en IE7 hebben functie hasAttribute niet
if (!params.queryField.hasAttribute)
params.queryField.hasAttribute = function (attr) { return !!params.queryField.getAttribute(attr) };
@@ -412,9 +417,12 @@ function Suggest(inParams)
.attr("title", data.result[i].desc)
.text(data.result[i].txt);
if (sgKey == data.result[i].key || $.inArray(String(data.result[i].key), storedVars) > -1)
if (sgKey == data.result[i].key ||
(storedVars.length && storedVars.length > 1 ? $.inArray(String(data.result[i].key), storedVars) > -1 // ["123", "1234", "321"]
: data.result[i].txt == storedVars[0])) // ["123 - entry eenendertig"]
{
$option.attr("selected", true);
}
$sel.append($option);
}
$suggestField.replaceWith($sel);