4467 Resultados disponibles

Filtrar:

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> esResponse.getAggregationResult(specificationKey + "_with_organismos")  [in template "34352066712900#33336#362186" at line 67, column 33]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #local aggregationResult = esResponse...  [in template "34352066712900#33336#362186" in function "getAggregationResult" at line 67, column 5]
----
1<#-- Variables --> 
2<#assign specificationName          = 'ctn' /> 
3<#assign paramNameSpecificationName = cpSpecificationOptionsSearchFacetDisplayContext.getParameterName() /> 
4<#assign isDebug                    = true /> 
5<#assign showAllSpecificationsName  = false /> 
6<#assign staticHost                 = getCXConfig("ecom-static-files") /> 
7 
8<#-- ========================= --> 
9<#-- Functions freemaker       --> 
10<#-- ========================= --> 
11<#function getCXConfig clientExtensionName field="webApiUrl"> 
12    <#if !clientExtensionName?has_content><#return "" /></#if> 
13    <#local encoded = urlCodec.encodeURL(clientExtensionName) /> 
14    <#local items   = restClient.get("/c/customconfigs/?fields=clientExtensionConfig&filter=clientExtensionName eq '" + encoded + "'").items![] /> 
15    <#return items?has_content?then(items[0].clientExtensionConfig?eval[field]!"", "") /> 
16</#function> 
17 
18<#function getTaxonomyVocabularyId vocabularyName> 
19    <#local response = restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=contains(name,'" + vocabularyName + "')&pageSize=1")!{} /> 
20    <#local items    = response.items![] /> 
21    <#return items?has_content?then(items[0].id, "") /> 
22</#function> 
23 
24<#function getTaxonomyCategoryMap vocabularyId pageSize=200> 
25    <#local response   = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/" + vocabularyId + "/taxonomy-categories?pageSize=" + pageSize)!{} /> 
26    <#local categoryMap = {} /> 
27    <#list response.items![] as cat> 
28        <#local categoryMap = categoryMap + {vocabularyId + "-" + cat.id: cat.name} /> 
29    </#list> 
30    <#return categoryMap /> 
31</#function> 
32 
33<#function getSpecOrganismosMap organismoMap aggResult> 
34    <#local specMap = {} /> 
35    <#if !aggResult?has_content || !organismoMap?has_content><#return specMap /></#if> 
36    <#list aggResult.getBuckets() as specBucket> 
37        <#local specKey      = specBucket.getKey() /> 
38        <#local organismoAgg = specBucket.getChildAggregationResult("organismos") /> 
39        <#local orgNames     = [] /> 
40        <#if organismoAgg?has_content> 
41            <#list organismoAgg.getBuckets() as orgBucket> 
42                <#local orgName  = organismoMap[orgBucket.getKey()]!"" /> 
43                <#if orgName?has_content> 
44                    <#local orgNames = orgNames + [orgName] /> 
45                </#if> 
46            </#list> 
47        </#if> 
48        <#if orgNames?has_content> 
49            <#local specMap = specMap + {specKey: orgNames} /> 
50        </#if> 
51    </#list> 
52    <#return specMap /> 
53</#function> 
54 
55<#function getAggregationResult specificationKey> 
56    <#if !specificationKey?has_content><#return "" /></#if> 
57 
58    <#local sharedSearchResponse = renderRequest.getAttribute("LIFERAY_SHARED_PortletSharedSearchResponse") /> 
59    <#if !sharedSearchResponse?has_content><#return "" /></#if> 
60 
61    <#local searchResponse = sharedSearchResponse.get() /> 
62    <#if !searchResponse?has_content><#return "" /></#if> 
63 
64    <#local esResponse = searchResponse.getSearchResponse() /> 
65    <#if !esResponse?has_content><#return "" /></#if> 
66 
67    <#local aggregationResult = esResponse.getAggregationResult(specificationKey + "_with_organismos") /> 
68    <#if !aggregationResult?has_content><#return "" /></#if> 
69 
70    <#return aggregationResult /> 
71</#function> 
72 
73 
74 
75<#if paramNameSpecificationName == specificationName || showAllSpecificationsName> 
76 
77    <#-- ========================= --> 
78    <#-- Datos                     --> 
79    <#-- ========================= --> 
80	<#assign organismoVocabId  = getTaxonomyVocabularyId("organismos") /> 
81	<#assign organismoMap      = getTaxonomyCategoryMap(organismoVocabId) /> 
82	<#assign aggResult         = getAggregationResult(paramNameSpecificationName)! /> 
83	<#assign specOrganismosMap = getSpecOrganismosMap(organismoMap, aggResult) /> 
84 
85    <#-- ========================= --> 
86    <#-- Debug                     --> 
87    <#-- ========================= --> 
88    <#if isDebug > 
89        <div style="background:#f0f0f0;padding:8px;margin-bottom:8px;font-size:11px;border:1px solid #ccc;"> 
90            <p><strong>paramName:</strong> ${paramNameSpecificationName}</p> 
91            <p><strong>organismoMap size:</strong> ${organismoMap?size}</p> 
92            <p><strong>specOrganismosMap size:</strong> ${specOrganismosMap?size}</p> 
93            <#list specOrganismosMap?keys as spec> 
94                <p>${spec}: ${specOrganismosMap[spec]?join(", ")}</p> 
95            </#list> 
96        </div> 
97    </#if> 
98 
99    <#-- Variables --> 
100    <#assign facetId    = "facet-" + paramNameSpecificationName + "-" + renderResponse.getNamespace() /> 
101    <#assign facetClass = "facet-" + paramNameSpecificationName + "-combo-search-wrapper" /> 
102 
103    <#-- ========================= --> 
104    <#-- TOM SELECT framework      --> 
105    <#-- ========================= --> 
106    <@liferay_util["html-top"] outputKey="tom-select"> 
107        <link href="${staticHost}/scripts/vendor/tom-select/tom-select.css" rel="stylesheet"> 
108        <script src="${staticHost}/scripts/vendor/tom-select/tom-select.complete.min.js"></script> 
109    </@> 
110 
111    <#-- ========================= --> 
112    <#-- CSS                       --> 
113    <#-- ========================= --> 
114    <style> 
115        #${facetId} { 
116            --facet-font-family: Inter; 
117            --facet-font-size: 14px; 
118            --facet-font-weight: 400; 
119            --facet-line-height: 18px; 
120            --facet-letter-spacing: 0.5px; 
121            --facet-color: #66757f; 
122
123        #${facetId}-select { 
124            appearance: none; 
125            -webkit-appearance: none; 
126            visibility: hidden; 
127            position: absolute; 
128
129        #${facetId} .ts-wrapper { 
130            width: 100%; 
131            margin-bottom: 16px; 
132            opacity: 0; 
133            transition: opacity 0.1s ease; 
134
135        #${facetId} .ts-wrapper .ts-control { 
136            padding: 15.5px 16px; 
137            font-family: var(--facet-font-family); 
138            font-size: var(--facet-font-size); 
139            font-weight: var(--facet-font-weight); 
140            line-height: var(--facet-line-height); 
141            letter-spacing: var(--facet-letter-spacing); 
142            color: var(--facet-color); 
143            text-align: left; 
144            height: 55px; 
145            width: 100%; 
146            border-radius: 4px; 
147            border: none; 
148            background-color: #F5F5F5; 
149            background-image: url(/documents/d/global/ico-chevron-down-2); 
150            background-repeat: no-repeat; 
151            background-position: right 1rem center; 
152            background-size: 18px 10px; 
153            box-shadow: none; 
154            cursor: pointer; 
155            box-sizing: border-box; 
156
157        #${facetId} .ts-wrapper .ts-control:focus, 
158        #${facetId} .ts-wrapper .ts-control:focus-visible { 
159            background-image: url(/documents/d/global/ico-chevron-down-2); 
160            background-position: right 1rem center; 
161            background-size: 18px 10px; 
162            outline: none; 
163            box-shadow: none; 
164
165        #${facetId} .ts-wrapper .ts-control .item { 
166            padding-right: 0.75rem; 
167            overflow: hidden; 
168            text-overflow: ellipsis; 
169            max-width: calc(100% - 0.75rem); 
170
171        #${facetId} .ts-wrapper.single .ts-control::after { 
172            display: none; 
173
174        #${facetId} .ts-dropdown .dropdown-input-wrap .dropdown-input { 
175            font-family: var(--facet-font-family); 
176            font-size: var(--facet-font-size); 
177            font-weight: var(--facet-font-weight); 
178            line-height: var(--facet-line-height); 
179            letter-spacing: var(--facet-letter-spacing); 
180            color: var(--facet-color); 
181            padding: 8px 16px; 
182            border: none; 
183            border-bottom: 1px solid #d9d9d9; 
184            background-color: #fff; 
185            width: 100%; 
186            box-sizing: border-box; 
187
188        #${facetId} .ts-dropdown .dropdown-input-wrap .dropdown-input:focus { 
189            outline: none; 
190            box-shadow: none; 
191
192        #${facetId} .ts-dropdown .ts-dropdown-content .option { 
193            font-family: var(--facet-font-family); 
194            font-size: var(--facet-font-size); 
195            font-weight: var(--facet-font-weight); 
196            line-height: var(--facet-line-height); 
197            letter-spacing: var(--facet-letter-spacing); 
198            color: var(--facet-color); 
199            padding: 8px 16px; 
200
201        #${facetId} .ts-dropdown .ts-dropdown-content .option:hover, 
202        #${facetId} .ts-dropdown .ts-dropdown-content .option.active { 
203            background-color: #6a9bd3; 
204            color: #fff; 
205
206        #${facetId} .ts-dropdown .ts-dropdown-content .option:hover .badge, 
207        #${facetId} .ts-dropdown .ts-dropdown-content .option.active .badge { 
208            background-color: #fff; 
209            color: #3a6a9b; 
210
211    </style> 
212 
213    <div class="checks-container ${facetClass}" id="${facetId}"> 
214        <div class="d-flex flex-column w-100"> 
215            <label class="panel-title mb-2" for="${facetId}-select"> 
216                ${languageUtil.get(locale, "norma." + paramNameSpecificationName)} 
217                <#if isDebug> 
218                    <p style="font-size:11px;color:#999;font-weight:normal;"> 
219                        (total options: ${entries?size}) 
220                    </p> 
221                    <p style="font-size:11px;color:#999;font-weight:normal;"> 
222                        (facetId: ${facetId}) 
223                    </p> 
224                </#if> 
225            </label> 
226 
227            <#-- ========================= --> 
228            <#-- SELECT UI                 --> 
229            <#-- ========================= --> 
230            <select id="${facetId}-select" data-parameter-name="${paramNameSpecificationName}"> 
231                <option value="">${languageUtil.get(locale, "search.cualquiera")}</option> 
232                <#list entries?sort_by("displayName") as entry> 
233                    <#assign specName = entry.getDisplayName() /> 
234                    <#assign orgNames = specOrganismosMap[specName]![] /> 
235                    <option value="${htmlUtil.escape(specName)}" 
236                        <#if entry.isSelected()>selected</#if> 
237                        data-organismos="${htmlUtil.escape(orgNames?join(","))}"> 
238                        ${htmlUtil.escape(specName)} (${entry.getFrequency()}) 
239                    </option> 
240                </#list> 
241            </select> 
242        </div> 
243    </div> 
244 
245    <#-- ========================= --> 
246    <#-- SCRIPT                    --> 
247    <#-- ========================= --> 
248    <script> 
249        (function () { 
250            var FACET_ID   = '${facetId}'; 
251            var PARAM_NAME = '${paramNameSpecificationName}'; 
252 
253            function applyUrlFilter(value) { 
254                var url = new URL(window.location.href); 
255                if (value) { 
256                    url.searchParams.set(PARAM_NAME, value); 
257                } else { 
258                    url.searchParams.delete(PARAM_NAME); 
259
260                window.location.href = url.toString(); 
261
262 
263            function initFacet() { 
264                var select = document.getElementById(FACET_ID + '-select'); 
265                if (!select) return; 
266                if (select.tomselect) select.tomselect.destroy(); 
267                if (select.dataset.bound === 'true') return; 
268                select.dataset.bound = 'true'; 
269 
270                new TomSelect(select, { 
271                    allowEmptyOption: true, 
272                    maxItems: 1, 
273                    create: false, 
274                    render: { 
275                        option: function(data, escape) { 
276                            var organismos = data.$option ? data.$option.getAttribute('data-organismos') : ''; 
277                            var badges = ''; 
278                            if (organismos) { 
279                                organismos.split(',').forEach(function(org) { 
280                                    badges += '<span class="badge badge-secondary mr-1">' + escape(org.trim()) + '</span>'; 
281                                }); 
282
283                            return '<div class="option py-1">' + escape(data.text) + '<div class="mt-1">' + badges + '</div></div>'; 
284                        }, 
285                        no_results: function(data, escape) { 
286                            return '<div class="no-results">${languageUtil.get(locale, "occurrence-not-found")}</div>'; 
287
288                    }, 
289                    plugins: { 
290                        dropdown_input: {} 
291                    }, 
292                    onDelete: function(value) { 
293                        this.isDelete = true; 
294                    }, 
295                    onChange: function(value) { 
296                        if (value) { 
297                            this.lastValidValue = value; 
298                            applyUrlFilter(value); 
299                            return; 
300
301                        this.lastValidValue = ''; 
302                        applyUrlFilter(''); 
303                    }, 
304                    onInitialize: function() { 
305                        this.lastValidValue = this.getValue() || ''; 
306                        this.isDelete = false; 
307                        var wrapper = document.querySelector('#' + FACET_ID + ' .ts-wrapper'); 
308                        if (wrapper) wrapper.style.opacity = '1'; 
309
310                }); 
311
312 
313            if (document.readyState === 'loading') { 
314                document.addEventListener('DOMContentLoaded', initFacet); 
315            } else { 
316                initFacet(); 
317
318        })(); 
319    </script> 
320 
321</#if> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> esResponse.getAggregationResult(specificationKey + "_with_organismos")  [in template "34352066712900#33336#362204" at line 67, column 33]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #local aggregationResult = esResponse...  [in template "34352066712900#33336#362204" in function "getAggregationResult" at line 67, column 5]
----
1<#-- Variables --> 
2<#assign specificationName          = 'ics' /> 
3<#assign paramNameSpecificationName = cpSpecificationOptionsSearchFacetDisplayContext.getParameterName() /> 
4<#assign isDebug                    = true /> 
5<#assign showAllSpecificationsName  = false /> 
6<#assign staticHost                 = getCXConfig("ecom-static-files") /> 
7 
8<#-- ========================= --> 
9<#-- Functions freemaker       --> 
10<#-- ========================= --> 
11<#function getCXConfig clientExtensionName field="webApiUrl"> 
12    <#if !clientExtensionName?has_content><#return "" /></#if> 
13    <#local encoded = urlCodec.encodeURL(clientExtensionName) /> 
14    <#local items   = restClient.get("/c/customconfigs/?fields=clientExtensionConfig&filter=clientExtensionName eq '" + encoded + "'").items![] /> 
15    <#return items?has_content?then(items[0].clientExtensionConfig?eval[field]!"", "") /> 
16</#function> 
17 
18<#function getTaxonomyVocabularyId vocabularyName> 
19    <#local response = restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=contains(name,'" + vocabularyName + "')&pageSize=1")!{} /> 
20    <#local items    = response.items![] /> 
21    <#return items?has_content?then(items[0].id, "") /> 
22</#function> 
23 
24<#function getTaxonomyCategoryMap vocabularyId pageSize=200> 
25    <#local response   = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/" + vocabularyId + "/taxonomy-categories?pageSize=" + pageSize)!{} /> 
26    <#local categoryMap = {} /> 
27    <#list response.items![] as cat> 
28        <#local categoryMap = categoryMap + {vocabularyId + "-" + cat.id: cat.name} /> 
29    </#list> 
30    <#return categoryMap /> 
31</#function> 
32 
33<#function getSpecOrganismosMap organismoMap aggResult> 
34    <#local specMap = {} /> 
35    <#if !aggResult?has_content || !organismoMap?has_content><#return specMap /></#if> 
36    <#list aggResult.getBuckets() as specBucket> 
37        <#local specKey      = specBucket.getKey() /> 
38        <#local organismoAgg = specBucket.getChildAggregationResult("organismos") /> 
39        <#local orgNames     = [] /> 
40        <#if organismoAgg?has_content> 
41            <#list organismoAgg.getBuckets() as orgBucket> 
42                <#local orgName  = organismoMap[orgBucket.getKey()]!"" /> 
43                <#if orgName?has_content> 
44                    <#local orgNames = orgNames + [orgName] /> 
45                </#if> 
46            </#list> 
47        </#if> 
48        <#if orgNames?has_content> 
49            <#local specMap = specMap + {specKey: orgNames} /> 
50        </#if> 
51    </#list> 
52    <#return specMap /> 
53</#function> 
54 
55<#function getAggregationResult specificationKey> 
56    <#if !specificationKey?has_content><#return "" /></#if> 
57 
58    <#local sharedSearchResponse = renderRequest.getAttribute("LIFERAY_SHARED_PortletSharedSearchResponse") /> 
59    <#if !sharedSearchResponse?has_content><#return "" /></#if> 
60 
61    <#local searchResponse = sharedSearchResponse.get() /> 
62    <#if !searchResponse?has_content><#return "" /></#if> 
63 
64    <#local esResponse = searchResponse.getSearchResponse() /> 
65    <#if !esResponse?has_content><#return "" /></#if> 
66 
67    <#local aggregationResult = esResponse.getAggregationResult(specificationKey + "_with_organismos") /> 
68    <#if !aggregationResult?has_content><#return "" /></#if> 
69 
70    <#return aggregationResult /> 
71</#function> 
72 
73 
74 
75 
76<#if paramNameSpecificationName == specificationName || showAllSpecificationsName> 
77 
78    <#-- ========================= --> 
79    <#-- Datos                     --> 
80    <#-- ========================= --> 
81	<#assign organismoVocabId  = getTaxonomyVocabularyId("organismos") /> 
82	<#assign organismoMap      = getTaxonomyCategoryMap(organismoVocabId) /> 
83	<#assign aggResult         = getAggregationResult(paramNameSpecificationName)! /> 
84	<#assign specOrganismosMap = getSpecOrganismosMap(organismoMap, aggResult) /> 
85 
86    <#-- ========================= --> 
87    <#-- Debug                     --> 
88    <#-- ========================= --> 
89    <#if isDebug && 1==0> 
90        <div style="background:#f0f0f0;padding:8px;margin-bottom:8px;font-size:11px;border:1px solid #ccc;"> 
91            <p><strong>paramName:</strong> ${paramNameSpecificationName}</p> 
92            <p><strong>organismoMap size:</strong> ${organismoMap?size}</p> 
93            <p><strong>specOrganismosMap size:</strong> ${specOrganismosMap?size}</p> 
94            <#list specOrganismosMap?keys as spec> 
95                <p>${spec}: ${specOrganismosMap[spec]?join(", ")}</p> 
96            </#list> 
97        </div> 
98    </#if> 
99 
100    <#-- Variables --> 
101    <#assign facetId    = "facet-" + paramNameSpecificationName + "-" + renderResponse.getNamespace() /> 
102    <#assign facetClass = "facet-" + paramNameSpecificationName + "-combo-search-wrapper" /> 
103 
104    <#-- ========================= --> 
105    <#-- TOM SELECT framework      --> 
106    <#-- ========================= --> 
107    <@liferay_util["html-top"] outputKey="tom-select"> 
108        <link href="${staticHost}/scripts/vendor/tom-select/tom-select.css" rel="stylesheet"> 
109        <script src="${staticHost}/scripts/vendor/tom-select/tom-select.complete.min.js"></script> 
110    </@> 
111 
112    <#-- ========================= --> 
113    <#-- CSS                       --> 
114    <#-- ========================= --> 
115    <style> 
116        #${facetId} { 
117            --facet-font-family: Inter; 
118            --facet-font-size: 14px; 
119            --facet-font-weight: 400; 
120            --facet-line-height: 18px; 
121            --facet-letter-spacing: 0.5px; 
122            --facet-color: #66757f; 
123
124        #${facetId}-select { 
125            appearance: none; 
126            -webkit-appearance: none; 
127            visibility: hidden; 
128            position: absolute; 
129
130        #${facetId} .ts-wrapper { 
131            width: 100%; 
132            margin-bottom: 16px; 
133            opacity: 0; 
134            transition: opacity 0.1s ease; 
135
136        #${facetId} .ts-wrapper .ts-control { 
137            padding: 15.5px 16px; 
138            font-family: var(--facet-font-family); 
139            font-size: var(--facet-font-size); 
140            font-weight: var(--facet-font-weight); 
141            line-height: var(--facet-line-height); 
142            letter-spacing: var(--facet-letter-spacing); 
143            color: var(--facet-color); 
144            text-align: left; 
145            height: 55px; 
146            width: 100%; 
147            border-radius: 4px; 
148            border: none; 
149            background-color: #F5F5F5; 
150            background-image: url(/documents/d/global/ico-chevron-down-2); 
151            background-repeat: no-repeat; 
152            background-position: right 1rem center; 
153            background-size: 18px 10px; 
154            box-shadow: none; 
155            cursor: pointer; 
156            box-sizing: border-box; 
157
158        #${facetId} .ts-wrapper .ts-control:focus, 
159        #${facetId} .ts-wrapper .ts-control:focus-visible { 
160            background-image: url(/documents/d/global/ico-chevron-down-2); 
161            background-position: right 1rem center; 
162            background-size: 18px 10px; 
163            outline: none; 
164            box-shadow: none; 
165
166        #${facetId} .ts-wrapper .ts-control .item { 
167            padding-right: 0.75rem; 
168            overflow: hidden; 
169            text-overflow: ellipsis; 
170            max-width: calc(100% - 0.75rem); 
171
172        #${facetId} .ts-wrapper.single .ts-control::after { 
173            display: none; 
174
175        #${facetId} .ts-dropdown .dropdown-input-wrap .dropdown-input { 
176            font-family: var(--facet-font-family); 
177            font-size: var(--facet-font-size); 
178            font-weight: var(--facet-font-weight); 
179            line-height: var(--facet-line-height); 
180            letter-spacing: var(--facet-letter-spacing); 
181            color: var(--facet-color); 
182            padding: 8px 16px; 
183            border: none; 
184            border-bottom: 1px solid #d9d9d9; 
185            background-color: #fff; 
186            width: 100%; 
187            box-sizing: border-box; 
188
189        #${facetId} .ts-dropdown .dropdown-input-wrap .dropdown-input:focus { 
190            outline: none; 
191            box-shadow: none; 
192
193        #${facetId} .ts-dropdown .ts-dropdown-content .option { 
194            font-family: var(--facet-font-family); 
195            font-size: var(--facet-font-size); 
196            font-weight: var(--facet-font-weight); 
197            line-height: var(--facet-line-height); 
198            letter-spacing: var(--facet-letter-spacing); 
199            color: var(--facet-color); 
200            padding: 8px 16px; 
201
202        #${facetId} .ts-dropdown .ts-dropdown-content .option:hover, 
203        #${facetId} .ts-dropdown .ts-dropdown-content .option.active { 
204            background-color: #6a9bd3; 
205            color: #fff; 
206
207        #${facetId} .ts-dropdown .ts-dropdown-content .option:hover .badge, 
208        #${facetId} .ts-dropdown .ts-dropdown-content .option.active .badge { 
209            background-color: #fff; 
210            color: #3a6a9b; 
211
212    </style> 
213 
214    <div class="checks-container ${facetClass}" id="${facetId}"> 
215        <div class="d-flex flex-column w-100"> 
216            <label class="panel-title mb-2" for="${facetId}-select"> 
217                ${languageUtil.get(locale, "norma." + paramNameSpecificationName)} 
218                <#if isDebug> 
219                    <p style="font-size:11px;color:#999;font-weight:normal;"> 
220                        (total options: ${entries?size}) 
221                    </p> 
222                    <p style="font-size:11px;color:#999;font-weight:normal;"> 
223                        (facetId: ${facetId}) 
224                    </p> 
225                </#if> 
226            </label> 
227 
228            <#-- ========================= --> 
229            <#-- SELECT UI                 --> 
230            <#-- ========================= --> 
231            <select id="${facetId}-select" data-parameter-name="${paramNameSpecificationName}"> 
232                <option value="">${languageUtil.get(locale, "search.cualquiera")}</option> 
233                <#list entries?sort_by("displayName") as entry> 
234                    <#assign specName = entry.getDisplayName() /> 
235                    <#assign orgNames = specOrganismosMap[specName]![] /> 
236                    <option value="${htmlUtil.escape(specName)}" 
237                        <#if entry.isSelected()>selected</#if> 
238                        data-organismos="${htmlUtil.escape(orgNames?join(","))}"> 
239                        ${htmlUtil.escape(specName)} (${entry.getFrequency()}) 
240                    </option> 
241                </#list> 
242            </select> 
243        </div> 
244    </div> 
245 
246    <#-- ========================= --> 
247    <#-- SCRIPT                    --> 
248    <#-- ========================= --> 
249    <script> 
250        (function () { 
251            var FACET_ID   = '${facetId}'; 
252            var PARAM_NAME = '${paramNameSpecificationName}'; 
253 
254            function applyUrlFilter(value) { 
255                var url = new URL(window.location.href); 
256                if (value) { 
257                    url.searchParams.set(PARAM_NAME, value); 
258                } else { 
259                    url.searchParams.delete(PARAM_NAME); 
260
261                window.location.href = url.toString(); 
262
263 
264            function initFacet() { 
265                var select = document.getElementById(FACET_ID + '-select'); 
266                if (!select) return; 
267                if (select.tomselect) select.tomselect.destroy(); 
268                if (select.dataset.bound === 'true') return; 
269                select.dataset.bound = 'true'; 
270 
271                new TomSelect(select, { 
272                    allowEmptyOption: true, 
273                    maxItems: 1, 
274                    create: false, 
275                    render: { 
276                        option: function(data, escape) { 
277                            var organismos = data.$option ? data.$option.getAttribute('data-organismos') : ''; 
278                            var badges = ''; 
279                            if (organismos) { 
280                                organismos.split(',').forEach(function(org) { 
281                                    badges += '<span class="badge badge-secondary mr-1">' + escape(org.trim()) + '</span>'; 
282                                }); 
283
284                            return '<div class="option py-1">' + escape(data.text) + '<div class="mt-1">' + badges + '</div></div>'; 
285                        }, 
286                        no_results: function(data, escape) { 
287                            return '<div class="no-results">${languageUtil.get(locale, "occurrence-not-found")}</div>'; 
288
289                    }, 
290                    plugins: { 
291                        dropdown_input: {} 
292                    }, 
293                    onDelete: function(value) { 
294                        this.isDelete = true; 
295                    }, 
296                    onChange: function(value) { 
297                        if (value) { 
298                            this.lastValidValue = value; 
299                            applyUrlFilter(value); 
300                            return; 
301
302                        this.lastValidValue = ''; 
303                        applyUrlFilter(''); 
304                    }, 
305                    onInitialize: function() { 
306                        this.lastValidValue = this.getValue() || ''; 
307                        this.isDelete = false; 
308                        var wrapper = document.querySelector('#' + FACET_ID + ' .ts-wrapper'); 
309                        if (wrapper) wrapper.style.opacity = '1'; 
310
311                }); 
312
313 
314            if (document.readyState === 'loading') { 
315                document.addEventListener('DOMContentLoaded', initFacet); 
316            } else { 
317                initFacet(); 
318
319        })(); 
320    </script> 
321 
322</#if> 
(2896)
(1571)
(0)
DIN

DIN EN 17240/A1:2026-01

En Vigor
2026-06-01
Intelligent transport systems - ESafety - ECall end to end conformance testing for IMS packet switched based systems - Amendment 1; German and English version EN 17240:2024/prA1:2025 / Note: Date of issue 2025-12-12
DIN

DIN EN 17760:2026-03

En Vigor
2026-03-01
Inorganic fertilizers - Determination of particle size of ammonium nitrate fertilizers of high nitrogen content; German and English version prEN 17760:2026 / Note: Date of issue 2026-02-13*Intended as replacement for DIN CEN/TS 17760 (2022-07).
DIN

DIN 4881:2026-03

En Vigor
2026-03-01
Requirements for corrosion protection experts / Note: Date of issue 2026-01-30
DIN

DIN EN 40000-1-2:2026-03

En Vigor
2026-03-01
Cybersecurity requirements for products with digital elements - Part 1-2: Principles for cyber resilience; German and English version prEN 40000-1-2:2025 / Note: Date of issue 2026-02-20
DIN

DIN EN ISO 25222-2:2026-03

En Vigor
2026-03-01
Non-destructive testing - Characterization and verification of ultrasonic air-coupled equipment - Part 2: Probes (ISO/DIS 25222-2:2026); German and English version prEN ISO 25222-2:2026 / Note: Date of issue 2026-02-06
DIN

DIN EN 3475-203:2026-01

En Vigor
2026-01-01
Aerospace series - Cables, electrical, aircraft use - Test methods - Part 203: Dimensions; German and English version prEN 3475-203:2025 / Note: Date of issue 2025-12-05*Intended as replacement for DIN EN 3475-203 (2006-08).
DIN

DIN/TS 46265-1:2026-03

En Vigor
2026-03-01
Feed-through terminals with ceramic insulator for high voltage - Part 1: Compilation
DIN

DIN 75013:2026-01

En Vigor
2026-01-01
Tank trucks - Grounding plate - Dimensions / Note: Date of issue 2025-11-28*Intended as replacement for DIN 75013 (2015-12).
DIN

DIN EN 4902:2026-03

En Vigor
2026-03-01
Aerospace series - Surface treatments - Terms, definitions and test methods; German and English version EN 4902:2026
DIN

DIN EN 17774:2026-01

En Vigor
2026-01-01
Organic and organo-mineral fertilizers - Determination of the content of specific elements by ICP-AES after extraction by water and weak solvents; German and English version prEN 17774:2026 / Note: Date of issue 2025-12-05*Intended as replacement for DIN CEN/TS 17774 (2022-07).
DIN

DIN EN ISO 20650:2026-03

En Vigor
2026-03-01
Inland navigation vessels - Small floating working machines - Requirements and test methods (ISO 20650:2025); German and English version prEN ISO 20650:2026 / Note: Date of issue 2026-01-30
DIN

DIN EN ISO 14097:2026-03

En Vigor
2026-03-01
Greenhouse gas management and related activities - Framework including principles and requirements for assessing and reporting investments and financing activities related to climate change (ISO 14097:2021); German and English version prEN ISO 14097:2026 / Note: Date of issue 2026-02-06
DIN

DIN EN 18318:2026-03

En Vigor
2026-03-01
Organo-mineral fertilizers - Determination of specific inhibiting compounds; German and English version prEN 18318:2026 / Note: Date of issue 2026-02-13
DIN

DIN EN 12080:2026-02

En Vigor
2026-02-01
Railway applications - Axleboxes - Rolling bearings; German version EN 12080:2025
DIN

DIN 83402-2:2026-01

En Vigor
2026-01-01
Manhole covers with a nominal size of 600 × 400 for pressures up to 1,1 bar or 3 bar - Part 2: Frames, covers / Note: Date of issue 2025-12-12*Intended as replacement for DIN 83402-2 (2008-08).
DIN

DIN EN ISO 10555-3:2026-03

En Vigor
2026-03-01
Intravascular catheters - Sterile and single-use catheters - Part 3: Central venous catheters (ISO/DIS 10555-3:2026); German and English version prEN ISO 10555-3:2026 / Note: Date of issue 2026-02-06*Intended as replacement for DIN EN ISO 10555-3 (2013-11).
DIN

DIN 19263:2026-01

En Vigor
2026-01-01
pH-measurement - pH sensors / Note: Date of issue 2025-12-12*Intended as replacement for DIN 19263 (2007-05).
DIN

DIN EN ISO 14246:2026-03

En Vigor
2026-03-01
Gas cylinders - Cylinder valves - Manufacturing tests and examinations (ISO 14246:2022 + Amd 1:2025); German version EN ISO 14246:2022 + A1:2025
DIN

DIN EN ISO 41012:2026-03

En Vigor
2026-03-01
Facility management - Guidance on strategic sourcing and the development of agreements (ISO/DIS 41012:2026); German and English version prEN ISO 41012:2026 / Note: Date of issue 2026-02-06*Intended as replacement for DIN EN ISO 41012 (2018-08).
DIN

DIN 44808-1:2026-03

En Vigor
2026-03-01
Chronometric dating methods in geosciences and archaeology by luminescence - Part 1: Reporting of equivalent doses and dating results; Text in German and English
DIN

DIN EN 16261:2026-03

En Vigor
2026-03-01
Pyrotechnic articles - Fireworks, Category F4; German and English version prEN 16261:2026 / Note: Date of issue 2026-02-06*Intended as replacement for DIN EN 16261-1 (2013-02), DIN EN 16261-2 (2013-03), DIN EN 16261-3 (2013-03), DIN EN 16261-4 (2013-02).
DIN

DIN ISO 9335:2026-01

En Vigor
2026-01-01
Optics and photonics - Optical transfer function - Principles and procedures of measurement (ISO 9335:2025); Text in German and English / Note: Date of issue 2025-12-05*Intended as replacement for DIN ISO 9335 (2015-12).
DIN

DIN/TS 46264:2026-03

En Vigor
2026-03-01
Feed-through terminals with cast resin insulator for high voltage
DIN

DIN EN 13084-6:2026-02

En Vigor
2026-02-01
Free-standing chimneys - Part 6: Steel liners - Design and execution; German version EN 13084-6:2025
DIN

DIN 3900:2026-03

En Vigor
2026-03-01
Non-soldering compression fittings with cutting ring - LL series studs with taper-threaded stud end
DIN

DIN ISO 31031:2026-01

En Vigor
2026-01-01
Managing risk for youth and school trips (ISO 31031:2024)
DIN

DIN ISO 17298:2026-01

En Vigor
2026-01-01
Biodiversity - Considering biodiversity in the strategy and operations of organizations - Requirements and guidelines (ISO 17298:2025); Text in German and English / Note: Date of issue 2025-12-12
DIN

DIN 18204-101:2026-03

En Vigor
2026-03-01
Components for enclosures made of textile fabrics and plastic films - Part 101: Conformity assessment for tents and halls according to DIN 18204-1 / Note: Date of issue 2026-02-13*Intended as replacement for DIN 18204-101 (2018-11).
DIN

DIN ISO 24479:2026-01

En Vigor
2026-01-01
Biotechnology - Cellular morphological analysis - General requirements and considerations for cell morphometry to quantify cell morphological features (ISO 24479:2024); Text in German and English / Note: Date of issue 2025-12-05
DIN

DIN 18197:2026-03

En Vigor
2026-03-01
Sealing of joints in concrete with waterstops / Note: Date of issue 2026-01-30*Intended as replacement for DIN 18197 (2018-01).
DIN

DIN EN ISO 463:2026-01

En Vigor
2026-01-01
Geometrical product specifications (GPS) - Dimensional measuring equipment - Design and metrological characteristics of indicators (ISO/DIS 463:2026); German and English version prEN ISO 463:2025 / Note: Date of issue 2025-12-12*Intended as replacement for DIN 878 (2018-07), DIN EN ISO 463 (2006-06), DIN EN ISO 463 Berichtigung 1 (2009-07), DIN EN ISO 13102 (2012-12).
DIN

DIN EN ISO 3953:2026-01

En Vigor
2026-01-01
Metallic powders - Determination of tap density (ISO 3953:2025); German version EN ISO 3953:2025
DIN

DIN EN ISO/IEC 27019:2026-03

En Vigor
2026-03-01
Information security, cybersecurity and privacy protection - Information security controls for the energy utility industry (ISO/IEC 27019:2024); German version EN ISO/IEC 27019:2025
DIN

DIN EN ISO 18969:2026-01

En Vigor
2026-01-01
Clinical evaluation of medical devices (ISO/DIS 18969:2025); German and English version prEN ISO 18969:2025 / Note: Date of issue 2025-11-28
DIN

DIN ISO 8536-6:2026-01

En Vigor
2026-01-01
Infusion equipment for medical use - Part 6: Freeze drying closures for infusion bottles (ISO 8536-6:2025); Text in German and English / Note: Date of issue 2025-12-12*Intended as replacement for DIN ISO 8536-6 (2017-09).
DIN

DIN EN IEC 61158-3-24:2026-03

En Vigor
2026-03-01
Industrial communication networks - Fieldbus specifications - Part 3-24: Data-link layer service definition - Type 24 elements (IEC 61158-3-24:2023); English version EN IEC 61158-3-24:2023 / Note: Date of issue 2026-02-27*Intended as replacement for DIN EN 61158-3-24 (2015-07).
DIN

DIN EN 683-2:2026-02

En Vigor
2026-02-01
Aluminium and aluminium alloys - Finstock - Part 2: Mechanical properties; German version EN 683-2:2024 + AC:2025
DIN

DIN EN ISO 9697:2026-01

En Vigor
2026-01-01
Water quality - Gross beta activity - Test method using thick source (ISO/DIS 9697:2025); German and English version prEN ISO 9697:2025 / Note: Date of issue 2025-12-05*Intended as replacement for DIN EN ISO 9697 (2020-12).
DIN

DIN EN 17766:2026-01

En Vigor
2026-01-01
Organic and organo-mineral fertilizers - Extraction by water for subsequent determination of elements; German and English version prEN 17766:2026 / Note: Date of issue 2025-11-28*Intended as replacement for DIN CEN/TS 17766 (2022-07).
DIN

DIN EN 17769:2026-01

En Vigor
2026-01-01
Organic and organo-mineral fertilizers - Determination of the mercury content; German and English version prEN 17769:2026 / Note: Date of issue 2025-12-05*Intended as replacement for DIN CEN/TS 17769 (2022-07).
DIN

DIN 27204-7:2026-01

En Vigor
2026-01-01
State of railway vehicles - Running gear - Part 7: Bogie and equipment / Note: Date of issue 2025-11-28*Intended as replacement for DIN 27204-7 (2015-06).
DIN

DIN/TS 8999-1:2026-01

En Vigor
2026-06-01
Acoustics - Rule specific supplements for quality assurance of software for the calculation of sound outdoors according to DIN 45687-1 - Part 1: RLS-19 / Note: Date of issue 2025-12-05
DIN

DIN EN IEC 63267-3-61:2026-01

En Vigor
2026-01-01
Fibre optic interconnecting devices and passive components - Fibre optic connector optical interfaces for enhanced macrobend multimode fibres - Part 3-61: Connector parameters of physically contacting 50 µm core diameter fibres - Non-angled 2,5 mm and 1,25 mm diameter cylindrical full zirconia ferrules for reference connection applications (IEC 63267-3-61:2025); German version EN IEC 63267-3-61:2025 / Note: DIN EN IEC 61755-6-2 (2019-06) remains valid alongside this standard until 2028-08-31.
DIN

DIN EN ISO 80601-2-56:2026-01

En Vigor
2026-01-01
Medical electrical equipment - Part 2-56: Particular requirements for basic safety and essential performance of clinical thermometers for body temperature measurement (ISO/DIS 80601-2-56:2025); German and English version prEN ISO 80601-2-56:2025 / Note: Date of issue 2025-12-05*Intended as replacement for DIN EN ISO 80601-2-56 (2020-08).
DIN

DIN EN 15051-2:2026-02

En Vigor
2026-02-01
Workplace exposure - Measurement of the dustiness of bulk materials - Part 2: Rotating drum method; German version EN 15051-2:2025
DIN

DIN 3966-1:2026-03

En Vigor
2026-03-01
Involute cylindrical gears - Part 1: Information on drawings to obtain the gear required
DIN

DIN EN 10380:2026-03

En Vigor
2026-03-01
Finished non-alloy and alloy steel products for structural use; German and English version prEN 10380:2026 / Note: Date of issue 2026-02-20*Intended as replacement for DIN EN 10025-1 (2005-02), DIN EN 10210-1 (2006-07), DIN EN 10219-1 (2006-07), DIN EN 10343 (2009-07).
DIN

DIN EN 17817:2024-02

En Vigor
2024-02-01
Fertilizers, liming materials and inhibitors - Determination of the quantity (declared by mass or volume); German version EN 17817:2023
DIN

DIN EN 13124-2:2026-03

En Vigor
2026-03-01
Windows, doors, shutters and curtain walling - Explosion resistance - Test method - Part 2: Arena test; German version EN 13124-2:2025
DIN

DIN EN 9241:2026-03

En Vigor
2026-03-01
Aerospace series - Programme management - Execution logic; English version EN 9241:2025
DIN

DIN 4925-1:2026-03

En Vigor
2026-03-01
Well screens and casings of unplasticized polyvinylchloride (PVC-U) for tube wells - Part 1: DN 35 to DN 100 with pipe thread / Note: This standard is part of the DVGW body of rules.
DIN

DIN 51502-3:2026-03

En Vigor
2026-03-01
Lubricants and related materials - Classification of lubricants - Part 3: Lubricating oils which are mainly used in the automotive sector
DIN

DIN EN 71-20:2026-02

En Vigor
2026-02-01
Safety of toys - Part 20: Microbiological safety of toys containing accessible aqueous media; German version EN 71-20:2025
DIN

DIN EN 805:2026-03

En Vigor
2026-03-01
Water supply - Requirements for systems and components outside buildings; German version EN 805:2025 / Note: This standard is part of the DVGW body of rules.
DIN

DIN ISO 1431-1:2026-01

En Vigor
2026-01-01
Rubber, vulcanized or thermoplastic - Resistance to ozone cracking - Part 1: Static and dynamic strain testing (ISO 1431-1:2024); Text in German and English / Note: Date of issue 2025-12-12*Intended as replacement for DIN ISO 1431-1 (2017-04).
DIN

DIN EN ISO 10249:2026-01

En Vigor
2026-01-01
Fluid fertilizers - Preliminary visual examination and preparation of samples for physical testing (ISO/FDIS 10249:2025); German and English version prEN ISO 10249:2025 / Note: Date of issue 2025-11-28*Intended as replacement for DIN EN ISO 10249 (1999-07).
DIN

DIN EN ISO 19204:2026-03

En Vigor
2026-03-01
Soil quality - Procedure for site-specific ecological risk assessment of soil contamination (soil quality TRIAD approach) (ISO/DIS 19204:2026); German and English version prEN ISO 19204:2026 / Note: Date of issue 2026-01-30*Intended as replacement for DIN EN ISO 19204 (2023-07).
DIN

DIN EN ISO 3630-1:2026-03

En Vigor
2026-03-01
Dentistry - Endodontic instruments - Part 1: General requirements (ISO/DIS 3630-1:2026); German and English version prEN ISO 3630-1:2026 / Note: Date of issue 2026-02-06*Intended as replacement for DIN EN ISO 3630-1 (2020-01).
DIN

DIN EN ISO 14644-15:2026-01

En Vigor
2026-01-01
Cleanrooms and associated controlled environments - Part 15: Assessment of suitability for use of equipment and materials by airborne chemical concentration (ISO/FDIS 14644-15:2025); German and English version prEN ISO 14644-15:2025 / Note: Date of issue 2025-12-05*Intended as replacement for DIN EN ISO 14644-15 (2018-03).
DIN

DIN 54115-4:2026-03

En Vigor
2026-03-01
Non-destructive testing - Radiation protection rules for the technical application of sealed radioactive sources for gamma-radiography - Part 4: Construction and testing of mobile apparatus / Note: DIN 54115-4 (2021-03) remains valid alongside this standard until 2026-08-31.