FCLT#55623 Bij impliciet opslaan van rapport filters worden nu wat velden buiten beschouwing gelaten die andere rapporten ongewenst beinvloeden (columns, scf_pivot etc..). Adhoc-, en normale rapport filters worden niet meer door elkaar gebruikt.
De Setting 'fac_usrrap_keepfilter' werkt nu ook in de .asp code svn path=/Website/branches/v2018.2/; revision=40204
This commit is contained in:
@@ -22,7 +22,8 @@ function toggleInputSelect()
|
||||
else // het is een DIV die er door de multiSelectToggle omheen is gezet
|
||||
{
|
||||
var inp = $(this).prev().find("select")[0];
|
||||
$(this).prev().replaceWith('<input class="fld" id="' + inp.name +'" name="' + inp.name +'">');
|
||||
var inpClass = "fld" + ($(inp).hasClass("adhoc") ? " adhoc" : "");
|
||||
$(this).prev().replaceWith('<input class="' + inpClass + '" id="' + inp.name +'" name="' + inp.name +'">');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +31,8 @@ function process_worker_info(data)
|
||||
{
|
||||
var isReeks = data.distinct === "start_" + data.colname || data.distinct === "end_" + data.colname;
|
||||
var inp = $("#" + data.distinct); // we krijgen de naam terug in data.distinct
|
||||
inp.replaceWith('<select id="{0}" class="reportmulti" name="{0}"></select>'.format(data.distinct));
|
||||
var selClass = "reportmulti" + ($(inp).hasClass("adhoc") ? " adhoc" : "");
|
||||
inp.replaceWith('<select id="{0}" class="{1}" name="{0}"></select>'.format(data.distinct, selClass));
|
||||
var sel = $("#" + data.distinct);
|
||||
var l = data.values.length;
|
||||
if (l > 0 && data.values[l-1][data.colname] === null)
|
||||
|
||||
@@ -48,8 +48,10 @@ var fac_usrrap = usrrap.fac_usrrap_info(usrrap_key);
|
||||
<head>
|
||||
<% FCLTHeader.Generate() %>
|
||||
<script>
|
||||
if (!window.fcltfilters)
|
||||
window.fcltfilters = FcltMgr.getData("filters_report");
|
||||
<% if (S("fac_usrrap_keepfilter") == 1) { %>
|
||||
if (!window.fcltfilters)
|
||||
window.fcltfilters = FcltMgr.getData("filters_report");
|
||||
<% } %>
|
||||
|
||||
// Button 'Uitvoeren' has been pressed
|
||||
function startSearch()
|
||||
@@ -57,8 +59,10 @@ var fac_usrrap = usrrap.fac_usrrap_info(usrrap_key);
|
||||
if (!validateForm("u2"))
|
||||
return false;
|
||||
|
||||
var filters = iface.formToString($("form[name=u2]"));
|
||||
FcltMgr.setData("filters_report", filters);
|
||||
<% if (S("fac_usrrap_keepfilter") == 1) { %>
|
||||
var filters = iface.formToString($("form[name=u2]"), false);
|
||||
FcltMgr.setData("filters_report", filters);
|
||||
<% } %>
|
||||
|
||||
document.forms.u2.submit();
|
||||
}
|
||||
|
||||
@@ -498,11 +498,16 @@ function do_fcltfilters()
|
||||
{
|
||||
$.each(formObject, function(key, val) {
|
||||
|
||||
$("div#search>div>select>option[value="+key+"]").eq(0).each(function () {
|
||||
// key kan iets zijn als "veldnaam" of "veldnaam.adhoc" (indien adhoc filter)
|
||||
var key_split = key.split(".");
|
||||
if (key_split.length > 1 && key_split[1] == "adhoc")
|
||||
{
|
||||
$("div#search>div>select>option[value="+key_split[0]+"]").eq(0).each(function () {
|
||||
|
||||
$(this).prop("selected", true);
|
||||
addFilter($(this).parent("select"));
|
||||
});
|
||||
$(this).prop("selected", true);
|
||||
addFilter($(this).parent("select"));
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -200,7 +200,7 @@ var FcltMgr =
|
||||
url = frm.location.href; // bij een *net* aangemaakte melding is deze anders
|
||||
if (frm.iface && frm.$("form[name=u2]").length)
|
||||
{
|
||||
filters = frm.iface.formToString(frm.$("form[name=u2]"));
|
||||
filters = frm.iface.formToString(frm.$("form[name=u2]"), true);
|
||||
}
|
||||
if (typeof frm.getAdvFlexValues === "function")
|
||||
{
|
||||
@@ -1177,10 +1177,14 @@ var FcltMgr =
|
||||
},
|
||||
setData: function (code, data)
|
||||
{
|
||||
console.log("setData:");
|
||||
console.log(data);
|
||||
this.topmanager().globalData[code] = data;
|
||||
},
|
||||
getData: function (code)
|
||||
{
|
||||
console.log("getData:");
|
||||
console.log(this.topmanager().globalData[code]);
|
||||
return this.topmanager().globalData[code];
|
||||
},
|
||||
|
||||
|
||||
@@ -104,18 +104,30 @@ var iface =
|
||||
FcltMgr.openModalDetail(url, L("lcl_lcl_vertaling"), {xheight: 200, width: 600 } );
|
||||
|
||||
},
|
||||
formToString: function (stringForm)
|
||||
formToString: function (stringForm, explicit)
|
||||
{
|
||||
// explicit: expliciet = bewust opgeslagen pagina's (tot nu toe alleen pinnen van tabs)
|
||||
// !explicit: impliciet = onbewust opgeslagen pagina's (tot nu toe alleen het impliciet onthouden van rapport filters bij S(fac_usrrap_keepfilter) == 1)
|
||||
var notFilter = "";
|
||||
if (explicit)
|
||||
notFilter = "[name^='fclt_f_colname']";
|
||||
else // Bij impliciet opslaan, deze filters negeren;
|
||||
notFilter = "[name='mode'], [name='columns'], [name='groupby'], "
|
||||
+ "[name='scf_pivot'], [name='usrrap_key'], [name^='fclt_f_colname']";
|
||||
|
||||
var formObject = {};
|
||||
stringForm.find("input, select").not("[name='usrrap_key'], [name^='fclt_f_colname']").each(function()
|
||||
stringForm.find("input, select").not(notFilter).each(function()
|
||||
{
|
||||
var nm = $(this).attr("colname") || this.id || this.name || null;
|
||||
if (!nm)
|
||||
return;
|
||||
|
||||
// Sla adhoc filters op als "veldnaam.adhoc"
|
||||
var objName = $(this).hasClass("adhoc") ? nm + ".adhoc" : nm;
|
||||
|
||||
if ($(this).attr("type") == "checkbox" || $(this).attr("type") == "radio")
|
||||
{
|
||||
formObject[nm] = $(this).prop("checked");
|
||||
formObject[objName] = $(this).prop("checked");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -131,12 +143,12 @@ var iface =
|
||||
return;
|
||||
//if (val === $(this).prop( 'defaultValue' ))
|
||||
// return;
|
||||
formObject[nm] = val;
|
||||
formObject[objName] = val;
|
||||
if ($(this).hasClass("suggest"))
|
||||
{
|
||||
if (!("suggestattr" in formObject))
|
||||
formObject.suggestattr = {};
|
||||
formObject.suggestattr[nm] =
|
||||
formObject.suggestattr[objName] =
|
||||
{ // Ook deze 'hidden' suggest attributen meenemen
|
||||
sgKey: $(this).attr("sgKey"),
|
||||
sgCurrentValue: $(this).attr("sgCurrentValue"),
|
||||
@@ -155,7 +167,11 @@ var iface =
|
||||
{
|
||||
var nm = $(this).attr("colname") || this.id || this.name || null;
|
||||
|
||||
if (!nm || !(nm in formObject))
|
||||
// Adhoc filters zijn in het formObject opgeslagen als "veldnaam.adhoc"
|
||||
var isAdhoc = $(this).hasClass("adhoc");
|
||||
var objName = isAdhoc ? nm + ".adhoc" : nm;
|
||||
|
||||
if (!nm || !(objName in formObject))
|
||||
return;
|
||||
|
||||
if ($(this).attr("colname"))
|
||||
@@ -167,24 +183,23 @@ var iface =
|
||||
if (!input.length)
|
||||
return;
|
||||
|
||||
var multiple = formObject[nm] instanceof Array && formObject[nm].length > 1;
|
||||
var multiple = formObject[objName] instanceof Array && formObject[objName].length > 1;
|
||||
|
||||
if (input.attr("type") == "checkbox" || input.attr("type") == "radio")
|
||||
{
|
||||
input.prop("checked", !!formObject[nm])
|
||||
input.prop("checked", !!formObject[objName])
|
||||
}
|
||||
else if (input.prop("tagName") == "SELECT")
|
||||
{
|
||||
|
||||
// This fills out the filters as saved from a (multi)select into the input field (so we dont have to perform any FillListbox()'s)
|
||||
if (input.is(":hidden") && nm.length > 2 && stringForm.find("input#" + nm.slice(0, -2)).length > 0)
|
||||
{
|
||||
// Not supported; Could take too long to open the list, so just take the first value
|
||||
if (multiple)
|
||||
formObject[nm] = formObject[nm][0];
|
||||
formObject[objName] = formObject[objName][0];
|
||||
|
||||
stringForm.find("input#" + nm.slice(0, -2)).val(formObject[nm])
|
||||
.prop('defaultValue', formObject[nm]);
|
||||
stringForm.find("input#" + nm.slice(0, -2)).val(formObject[objName])
|
||||
.prop('defaultValue', formObject[objName]);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -192,21 +207,23 @@ var iface =
|
||||
{
|
||||
input.attr('multiple', 1);
|
||||
input.attr('size', Math.min(input.find("option").length, 8));
|
||||
input.val(formObject[nm]); // gewoon
|
||||
input.val(formObject[objName]); // gewoon
|
||||
input.prev().html('«')
|
||||
}
|
||||
else
|
||||
input.val(formObject[nm]); // gewoon
|
||||
input.val(formObject[objName]); // gewoon
|
||||
}
|
||||
}
|
||||
else if (!input.hasClass("final")) // Final's niet opslaan als filter
|
||||
else if (!input.hasClass("final") && // Final's niet opslaan als filter
|
||||
((isAdhoc && input.hasClass("adhoc")) || // Adhoc filters alleen invullen bij adhoc filters
|
||||
(!isAdhoc && !input.hasClass("adhoc")))) // Normale filters alleen invullen bij normale filters
|
||||
{
|
||||
// Meerdere waarden alleen supported bij multiSuggest's
|
||||
if (multiple && !$(input).hasClass("multiSuggest"))
|
||||
formObject[nm] = formObject[nm][0];
|
||||
formObject[objName] = formObject[objName][0];
|
||||
|
||||
input.val(formObject[nm]);
|
||||
input.prop('defaultValue', formObject[nm]);
|
||||
input.val(formObject[objName]);
|
||||
input.prop('defaultValue', formObject[objName]);
|
||||
|
||||
// multiSuggests met meerdere waarden vast openklappen
|
||||
if (input.hasClass("multiSuggest") && multiple)
|
||||
|
||||
@@ -146,7 +146,7 @@ function scaffolding_search(model, scf_params)
|
||||
FcltMgr.setTitle("<%=safe.jsstring(scf_params.search.title)%>");
|
||||
<% } %>
|
||||
|
||||
<% if ("keepfilter" in scf_params.search) { %>
|
||||
<% if (S("fac_usrrap_keepfilter") == 1 && "keepfilter" in scf_params.search) { %>
|
||||
if (!window.fcltfilters)
|
||||
window.fcltfilters = FcltMgr.getData("filters_<%=safe.jsstring(scf_params.search.keepfilter)%>");
|
||||
<% } %>
|
||||
@@ -239,8 +239,8 @@ function scaffolding_search(model, scf_params)
|
||||
|
||||
$("#workFrame").width($(window).width()); // grafieken 'krimpen' slecht
|
||||
|
||||
<% if ("keepfilter" in scf_params.search) { %>
|
||||
var filters = iface.formToString($("form[name=u2]"));
|
||||
<% if (S("fac_usrrap_keepfilter") == 1 && "keepfilter" in scf_params.search) { %>
|
||||
var filters = iface.formToString($("form[name=u2]"), false);
|
||||
FcltMgr.setData("filters_<%=safe.jsstring(scf_params.search.keepfilter)%>", filters);
|
||||
<% } %>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user