Release Notes
Esta sección contiene información sobre cambios rupturistas (breaking changes) en funcionalidades y capacidades de un DXP listo para usar. Para cambios rupturistas o código interno, verifica este enlace.
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing: ==> restArticle.taxonomyCategoryBriefs [in template "2010607#2010649#24589772" at line 202, column 72] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- 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: #list restArticle.taxonomyCategoryBri... [in template "2010607#2010649#24589772" at line 202, column 65] ----
1<style>
2 .container-breaking-change-search {
3 a.link-container:hover, a.link-container.hover {
4 background-color: var(--color-action-primary-hover-10, #EDF3FE);
5 border: 0.0625rem solid var(--link-hover-color, #0053F0);
6 color: var(--link-hover-color, #0053F0);
7 text-decoration: none;
8 }
9
10 .empty-container {
11 background-color: var(--color-neutral-0);
12 border-color: var(--color-neutral-3);
13 border-radius: var(--border-radius);
14 border-style: solid;
15 border-width: 0.0625rem;
16 margin-top: 0.8rem;
17 padding: 1.5rem 1.5rem 0.0625rem 1.5rem;
18 }
19
20 .empty-message-title {
21 color: var(--color-neutral-10, #282934);
22 font-size: 1.125rem;
23 font-weight: 600;
24 line-height: 1.25rem;
25 }
26
27 .empty-result-message {
28 align-items: center;
29 margin: 5rem auto;
30 }
31
32 .icon-container {
33 background-color: var(--color-brand-primary-lighten-5, #E7EFFF);
34 border-radius: 0.5rem;
35 margin-bottom: 2rem;
36 max-width: 9rem;
37 }
38
39 .link-container {
40 background-color: var(--color-brand-primary-lighten-6, #FBFCFE);
41 border: 0.0625rem solid var(--color-brand-primary-lighten-5, #E7EFFF);
42 border-radius: 0.625rem;
43 color: var(--color-action-neutral-default, #2B3A4B);
44 font-size: 0.875rem;
45 padding: 0.75rem;
46 word-break: break-word;
47 }
48
49 .link-container > svg {
50 fill: var(--link-color, #0B5FFF);
51 height: 0.75rem;
52 width: 0.75rem;
53 }
54
55 .link-container span {
56 padding-left: 0.5rem;
57 }
58
59 .pagination-bar {
60 align-items: flex-start;
61 display: flex;
62 gap: 1rem;
63 }
64
65 .pagination-bar .dropdown.pagination-items-per-page {
66 align-items: flex-start;
67 display: flex;
68 }
69
70 .pagination-bar .dropdown.pagination-items-per-page .dropdown-toggle.page-link {
71 align-items: center;
72 border-width: 0rem;
73 color: var(--color-action-neutral-default, #2B3A4B);
74 display: flex;
75 font-size: 0.875rem;
76 font-style: normal;
77 font-weight: 600;
78 gap: 0.25rem;
79 justify-content: center;
80 line-height: 1rem;
81 text-align: center;
82 }
83
84 .pagination-bar .dropdown.pagination-items-per-page .dropdown-toggle.page-link .c-inner {
85 align-items: center;
86 display: flex;
87 height: 1rem;
88 justify-content: center;
89 }
90
91 .pagination-bar .dropdown.pagination-items-per-page .dropdown-toggle.page-link .c-inner .lexicon-icon.lexicon-icon-caret-double-l {
92 align-items: center;
93 display: flex;
94 flex-shrink: 0;
95 height: 1rem;
96 justify-content: center;
97 width: 1rem;
98 }
99
100 .pagination-bar .pagination {
101 align-items: flex-start;
102 display: flex;
103 gap: 0.5rem;
104 justify-content: center;
105 }
106
107 .pagination-bar .pagination .page-item .page-link {
108 align-items: center;
109 border-radius: 0.375rem;
110 border-width: 0rem;
111 color: var(--color-action-neutral-default, #2B3A4B);
112 display: flex;
113 font-size: 0.875rem;
114 font-style: normal;
115 font-weight: 600;
116 gap: 0.25rem;
117 justify-content: center;
118 line-height: 1rem;
119 min-width: 2rem;
120 padding: 0.5rem;
121 text-align: center;
122 }
123
124 .pagination-bar .pagination .page-item.active .page-link {
125 background: var(--color-action-neutral-active-20, #D5D8DB);
126 }
127
128 .pagination-bar .pagination-results {
129 align-items: flex-start;
130 color: var(--color-neutral-10, #282934);
131 display: flex;
132 font-size: 0.8125rem;
133 font-style: normal;
134 font-weight: 400;
135 gap: 0.25rem;
136 line-height: 1rem;
137 margin-top: 0.5rem;
138 }
139
140 .search-icon>svg {
141 fill: var(--link-color, #0B5FFF);
142 height: 2rem;
143 margin: 1.5rem 3.5rem;
144 width: 2rem;
145 }
146
147 .search-results .search-results-entry {
148 align-items: flex-start;
149 display: flex;
150 flex-direction: column;
151 gap: 0.25rem;
152 }
153
154 .search-results .search-results-entry .search-results-entry-title {
155 color: var(--color-neutral-10, #282934);
156 border-radius: 0.625rem;
157 font-size: 1.125rem;
158 font-style: normal;
159 font-weight: 600 !important;
160 line-height: 1.25rem;
161 padding: 1rem 1rem 1rem 0.625rem;
162 }
163
164 .search-results .search-results-entry .search-results-entry-title .search-results-entry-content {
165 color: var(--color-neutral-10, #282934);
166 font-size: 1rem;
167 font-style: normal;
168 font-weight: 400;
169 line-height: 1.5rem;
170 margin-top: 1rem;
171 }
172
173 .search-results .search-results-entry .search-results-entry-title:hover {
174 background: var(--color-action-primary-hover-10, #EDF3FE);
175 }
176
177 .search-results .solid {
178 border-top: 0.0625rem solid var(--color-neutral-2, #E2E2E4);
179 }
180 }
181</style>
182
183<div class="container-breaking-change-search">
184 <div class="pt-3 search-results" id="searchResults">
185 <#if entries?has_content>
186 <#list entries as searchEntry>
187 <#assign restArticle = restClient.get("/headless-delivery/v1.0/structured-contents/${searchEntry.getClassPK()}?fields=contentFields,relatedContents,taxonomyCategoryBriefs,title&nestedFields=embeddedTaxonomyCategory") />
188
189 <#if restArticle?has_content>
190 <div class="align-items-stretch search-results-entry">
191 <div
192 aria-controls="collapsePanelId-${searchEntry.getClassPK()}"
193 aria-expanded="false"
194 class="align-items-center btn btn-unstyled collapse-icon collapse-icon-middle collapsed d-flex font-weight-bold p-3 panel-header panel-header-link search-results-entry-title text-decoration-none unstyled"
195 data-target="#collapsePanelId-${searchEntry.getClassPK()}"
196 data-toggle="liferay-collapse"
197 >
198 <span class="mr-5">
199 ${restArticle.title}
200 </span>
201 <span class="ml-auto mr-5">
202 <#list restArticle.taxonomyCategoryBriefs as taxonomyCategoryBrief>
203 <#assign taxonomyVocabularyName = taxonomyCategoryBrief.embeddedTaxonomyCategory.parentTaxonomyVocabulary.name />
204
205 <#if taxonomyVocabularyName == "Product Capabilities">
206 <span class="font-weight-normal label label-secondary label-tonal-info m-0 px-2 text-paragraph-sm">
207 ${taxonomyCategoryBrief.taxonomyCategoryName}
208 </span>
209 </#if>
210 </#list>
211 </span>
212 <span class="collapse-icon-closed">
213 <@clay.icon symbol="angle-right" />
214 </span>
215 <span class="collapse-icon-open">
216 <@clay.icon symbol="angle-down" />
217 </span>
218 </div>
219
220 <div class="collapse panel-collapse pl-3 pr-3" id="collapsePanelId-${searchEntry.getClassPK()}">
221 <div class="description search-results-entry-content">
222 <#assign
223 url = ""
224 urlTitle = ""
225 />
226
227 <#list restArticle.contentFields as fieldData>
228 <#if fieldData.contentFieldValue.data?has_content && validator.isNotNull(fieldData.contentFieldValue.data)>
229 <#assign webContentData = fieldData.contentFieldValue.data />
230
231 <div class="mb-3">
232 ${webContentData}
233 </div>
234 </#if>
235
236 <#list fieldData.nestedContentFields as nestedFieldData>
237 <#if nestedFieldData.contentFieldValue.data?has_content>
238 <#if nestedFieldData.label?contains("?")>
239 <#assign description = nestedFieldData.contentFieldValue.data />
240
241 <div>
242 ${description}
243 </div>
244 </#if>
245
246 <#if nestedFieldData.label?contains("Title")>
247 <#assign urlTitle = nestedFieldData.contentFieldValue.data />
248 <#else>
249 <#assign url = nestedFieldData.contentFieldValue.data />
250 </#if>
251 <#else>
252 <#assign urlTitle = "" />
253 </#if>
254 </#list>
255
256 <#if urlTitle?has_content && validator.isNotNull(urlTitle)>
257 <div class="d-flex mb-2">
258 <a class="link-container" href="${url}" target="_blank">
259 <@clay["icon"] symbol="link" />
260
261 <span>
262 ${urlTitle}
263 </span>
264 </a>
265 </div>
266 </#if>
267 </#list>
268 </div>
269 </div>
270 </div>
271
272 <hr class="solid">
273 </#if>
274 </#list>
275 <#else>
276 <div class="empty-container">
277 <div class="d-flex empty-result-message flex-column">
278 <div class="icon-container">
279 <div class="search-icon">
280 <@clay["icon"] symbol="search-experiences" />
281 </div>
282 </div>
283
284 <span class="empty-message-title text-center">
285 ${languageUtil.get(locale, "there-are-no-breaking-changes-in-out-of-the-box-features-and-capabilities-for-this-quarterly-release", "There are no breaking changes in out-of-the-box features and capabilities for this quarterly release.")}
286 </span>
287 </div>
288 </div>
289 </#if>
290 </div>
291</div>