From e52d6d50d586c36eae1ef80e264e13d5d304ef38 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Wed, 11 Jun 2025 14:17:05 +0000 Subject: [PATCH] Bug 40118: Prevent adding another empty value option This is already done for all select dropdowns by default. If a particular table provides an empty value it should be skipped or 2 empty options may show --- koha-tmpl/intranet-tmpl/prog/js/datatables.js | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/js/datatables.js b/koha-tmpl/intranet-tmpl/prog/js/datatables.js index 58dc8567ea1..8149806db99 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/datatables.js +++ b/koha-tmpl/intranet-tmpl/prog/js/datatables.js @@ -1057,27 +1057,31 @@ function _dt_add_filters(table_node, table_dt, filters_options = {}) { } else if (typeof filters_options[i] === "function") { filters_options[i] = filters_options[i](table_dt); } - $(filters_options[i]).each(function () { - let optionValue = - table_dt.settings()[0].ajax !== null - ? `^${this._id}$` - : this._id; - let o = $( - `` - ); + $(filters_options[i]) + .filter(function () { + return this._id && this._str; + }) + .each(function () { + let optionValue = + table_dt.settings()[0].ajax !== null + ? `^${this._id}$` + : this._id; + let o = $( + `` + ); - // Compare with lc, or selfreg won't match ^SELFREG$ for instance, see bug 32517 - // This is only for category, we might want to apply it only in this case. - existing_search = existing_search.toLowerCase(); - if ( - existing_search === this._id || - (existing_search && - this._id.toLowerCase().match(existing_search)) - ) { - o.prop("selected", "selected"); - } - o.appendTo(select); - }); + // Compare with lc, or selfreg won't match ^SELFREG$ for instance, see bug 32517 + // This is only for category, we might want to apply it only in this case. + existing_search = existing_search.toLowerCase(); + if ( + existing_search === this._id || + (existing_search && + this._id.toLowerCase().match(existing_search)) + ) { + o.prop("selected", "selected"); + } + o.appendTo(select); + }); $(th).html(select); } else { var title = $(th).text(); -- 2.39.5