diff --git a/APPL/Localscripts/modal_kenmerken.js b/APPL/Localscripts/modal_kenmerken.js index 89a02db05d..1075162c3c 100644 --- a/APPL/Localscripts/modal_kenmerken.js +++ b/APPL/Localscripts/modal_kenmerken.js @@ -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++) + { + $("").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 (
) 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 diff --git a/APPL/Shared/Suggest/suggest.js b/APPL/Shared/Suggest/suggest.js index 424c0dbc31..d07172e1cb 100644 --- a/APPL/Shared/Suggest/suggest.js +++ b/APPL/Shared/Suggest/suggest.js @@ -100,6 +100,15 @@ function Suggest(inParams) return params.keyField; } + function multiToggle($fld, adv) + { + $fld.addClass(adv ? "advMultiSuggest" : "multiSuggest"); + var $lbl = $("").on("click", function() { toggleSelect(this); }).html("»"); + var $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 = $("").on("click", function() { toggleSelect(this); }).html("»"); - var $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);