78735 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> 
(37753)
(36846)
(4136)
UNE

UNE-ETS 300392-11-13 Ed1

En Vigor
2022-07-01
Radio Troncal Terrestre (TETRA). Voz y datos (V+D). Parte 11. Fase 2 de los servicios suplementarios. Subparte 13: Terminación de llamadas de abonado ocupado (CCBS) (Ratificada por la Asociación Española de Normalización en julio de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300359-3 Ed1

En Vigor
2022-07-01
Red Digital de Servicios Integrados (RDSI). Servicio suplementario de terminación de llamadas de abonado ocupado (CCBS). Protocolo del sistema número uno de transmisión de señal de abonado digital (DSS1). Parte 3: Especificación para el usuario de la estructura de pruebas abstractas y propósitos de pruebas (TSS&TP). (Ratificada por la Asociación Española de Normalización en julio de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 301926 V1.2.1

En Vigor
2020-07-01
Estaciones Terrenas y Sistemas de Satélite (SES); Norma de radiofrecuencia y modulación para telemetría, comando y rango (TCR) de satélites de comunicaciones geoestacionarios (Ratificada por la Asociación Española de Normalización en julio de 2020.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300517 Ed2

En Vigor
2022-09-01
Sistema de telecomunicaciones celulares digitales (Fase 2) (GSM). Servicios suplementarios de multiparte (MPTY). Etapa 1 (GSM 02.84) (Ratificada por la Asociación Española de Normalización en septiembre de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 319411-1 V1.4.1

En Vigor
2023-11-01
Firmas electrónicas e infraestructuras (ESI); Política y requisitos de seguridad para los proveedores de servicios de confianza que emiten certificados; Parte 1: Requisitos generales. (Ratificada por la Asociación Española de Normalización en noviembre de 2023.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300253 Ed1

En Vigor
2022-05-01
Ingeniería Ambiental (EE). Puesta a tierra y toma de masa de los equipos de telecomunicación en los centros de telecomunicaciones. (Ratificada por la Asociación Española de Normalización en mayo de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300578 Ed4

En Vigor
2022-11-01
Sistema de telecomunicaciones digitales celulares (Fase 2) (GSM). Subsistema de control del enlace radio (GSM 05.08) (Ratificada por la Asociación Española de Normalización en noviembre de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300607-3 Ed4

En Vigor
2022-12-01
Sistema de telecomunicaciones digitales celulares (Fase 2) (GSM). Especificación de la conformidad para estaciones móviles (MS). Parte 3: Conjunto de pruebas abstractas (ATS) para la capa 3 (L3) (GSM 11.10-3 versión 4.18.1) (Ratificada por la Asociación Española de Normalización en diciembre de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300607-3 Ed9

En Vigor
2022-12-01
Sistema de telecomunicaciones digitales celulares (Fase 2) (GSM). Especificación de la conformidad para estaciones móviles (MS). Parte 3: Conjunto de pruebas abstractas (ATS) para la capa 3 (L3) (GSM 11.10-3 versión 4.23.1) (Ratificada por la Asociación Española de Normalización en diciembre de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300585 Ed2

En Vigor
2022-11-01
Sistema de telecomunicaciones celulares digitales europeo (Fase 2). Uso de la interfaz Equipo Terminal de Datos - Equipo terminal de Circuitos de Datos (DTE-DCE) para el Servicio de Mensajes Cortos (SMS) y el Servicio de Difusión por Celdas (CBS) (GSM 07.05) (Ratificada por la Asociación Española de Normalización en noviembre de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300393-2 Ed2

En Vigor
2022-08-01
Radio Troncal Terrestre (TETRA); Paquetes de datos optimizados (PDO); Parte 2: Interfaz aire (AI) (Ratificada por la Asociación Española de Normalización en agosto de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 300962 V6.0.1

En Vigor
2021-08-01
Sistema de telecomunicaciones celulares digitales (Fase 2+) (GSM); Voz de tasa completa. Sustitución y suspensión automática de cuadros perdidos para canales de voz de tasa completa (GSM 06.11 versión 6.0.1 Edición 1997) (Ratificada por la Asociación Española de Normalización en agosto de 2021.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300548 Ed1

En Vigor
2022-10-01
Sistema de comunicaciones digitales celulares europeo (Fase 2). Servicios suplementarios de barrido de llamada (CB). Estado 2 (GSM 03.88) (Ratificada por la Asociación Española de Normalización en octubre de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300054 Ed1

En Vigor
2022-02-01
Red Digital de Servicios Integrados (RDSI). Servicio suplementario de adaptabilidad del terminal (TP). Capacidades funcionales y flujos de información. (Ratificada por la Asociación Española de Normalización en febrero de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300580-2 Ed2

En Vigor
2022-11-01
Sistema de telecomunicaciones celulares digitales (Fase 2) (GSM). Velocidad total mejorada. Parte 2: Conversión (GSM 06.10 versión 4.1.1) (Ratificada por la Asociación Española de Normalización en noviembre de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300403-3 Ed1

En Vigor
2022-08-01
Red Digital de Servicios Integrados (RDSI). Protocolo del sistema de Señalización Digital de Abonado Nº Uno (DSS1). Capa de señalización de red para control de llamada básica en modo circuito. Parte 3: Formulario de especificación del Enunciado de Conformidad de Realización de Protocolo (PICS) (Ratificada por la Asociación Española de Normalización en agosto de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE 16149-1/1C:1986

En Vigor
1986-05-15
Geometría de la parte activa de las herramientas de corte. Generalidades, sistemas de referencia, ángulos de la herramienta y ángulos en trabajo. Primer complemento.
UNE

UNE-ETS 300642 Ed2

En Vigor
2022-12-01
Sistema de telecomunicaciones celulares digitales (Fase 2) (GSM). Conjunto de comandos AT para Equipos Móviles GSM (ME) (GSM 07.07 versión 4.2.1) (Ratificada por la Asociación Española de Normalización en diciembre de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300181 Ed1

En Vigor
2022-04-01
Red Digital de Servicios Integrados (RDSI). Servicio suplementario de Información de Tarificación (AOC). Capacidades funcionales y flujos de información. (Ratificada por la Asociación Española de Normalización en abril de 2022.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300960 Ed2

En Vigor
2023-03-01
Sistema de telecomunicaciones digitales celulares. Velocidad total mejorada, Funciones de procesado (GSM 06.01 versión 5.1.1) (Ratificada por la Asociación Española de Normalización en marzo de 2023.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com