Custom
An error occurred while processing the template.
The following has evaluated to null or missing:
==> structuredContentFields?filter(f -> f.getName() == "customDisplayPage")?first  [in template "44549#44620#98653" at line 39, column 30]

----
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: customDisplayPageField = structuredCo...  [in template "44549#44620#98653" in function "getCustomDisplayPageUrl" at line 39, column 5]
----
1<#assign 
2  structuredContentResource = resourceLocator.locate("/headless-delivery/v1.0", "StructuredContent") 
3/> 
4 
5<#attempt> 
6<#assign 
7	categories = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/" + 64873 + "/taxonomy-categories?fields=id&restricFields=actions,availableLanguages,taxonomyCategoryUsageCount&page=1&pageSize=30").items 
8/> 
9<#recover> 
10  <#assign categories = [5] /> 
11</#attempt> 
12 
13<#function getVocabularyCategoriesIds> 
14	<#attempt> 
15  <#return categories?map(category -> category.id?number)/> 
16	<#recover> 
17		<#return 5 /> 
18	</#attempt> 
19</#function> 
20 
21<#function getPressTopicsFilterEndpoint structuredContent> 
22<#attempt> 
23<#local 
24            structuredContentCategoriesIds = structuredContent.getTaxonomyCategoryBriefs()![]  
25                ?map(taxonomyCategoryBrief -> taxonomyCategoryBrief.getTaxonomyCategoryId()!"")  
26                ?filter(id -> id?has_content) 
27            pressTopicsCategoriesId = getVocabularyCategoriesIds()![] 
28            categoryId = (structuredContentCategoriesIds?filter(c -> pressTopicsCategoriesId?seq_contains(c))?first)!5 
29        /> 
30<#recover> 
31<#local categoryId = 5 /> 
32</#attempt> 
33<#return "/-/categories/" + categoryId/> 
34</#function> 
35 
36<#function getCustomDisplayPageUrl structuredContent> 
37  <#local 
38    structuredContentFields = structuredContent.getContentFields() 
39    customDisplayPageField = structuredContentFields?filter(f -> f.getName() == "customDisplayPage")?first 
40  /> 
41  <#return customDisplayPageField.getContentFieldValue().getLink()/> 
42</#function> 
43 
44<#function getPressViewUrl structuredContent> 
45  <#local 
46    friendlyUrl = "/w/" + structuredContent.getFriendlyUrlPath() 
47 
48    categoryFilterEndpoint = getPressTopicsFilterEndpoint(structuredContent) 
49    customDisplayPageUrl = getCustomDisplayPageUrl(structuredContent)!"" 
50  /> 
51  <#return customDisplayPageUrl?has_content?then(customDisplayPageUrl, friendlyUrl) + categoryFilterEndpoint/> 
52</#function> 
53 
54<#assign images_path = "/documents/d/guest/" /> 
55<#assign total = searchContainer.getTotal() /> 
56<#assign start = searchContainer.getStart() /> 
57<#assign delta = searchContainer.getDelta() />     
58<#assign totalPages = (total/delta)?ceiling /> 
59<#assign currentPage = ((start+1)/delta)?ceiling />     
60<#assign isFirstPage = currentPage == 1 /> 
61<#assign isLastPage = currentPage == totalPages /> 
62<#assign iteratorURL = searchContainer.getIteratorURL().toString() /> 
63<#assign iteratorURL += iteratorURL?contains("?")?then("", "?") /> 
64<#assign firstPageURL = iteratorURL + '&start=1'/> 
65<#assign lastPageURL = iteratorURL + '&start=' + totalPages?string/> 
66<#assign previousURL = iteratorURL + '&start=' + (currentPage - 1)?string /> 
67<#assign nextURL = iteratorURL + '&start=' + (currentPage + 1)?string /> 
68 
69<#assign startPage = (currentPage < 3)?then(1, currentPage - 1) /> 
70<#assign endPage = 2 + startPage /> 
71<#assign endPage = (totalPages < endPage)?then(totalPages, endPage) /> 
72<#assign diff = startPage - endPage + 2 /> 
73<#assign startPage -= (startPage - diff > 0)?then(diff, 0) /> 
74 
75<#assign  
76  categoriesIds = getVocabularyCategoriesIds() 
77/> 
78 
79<div class="vale-widget-resultados-busca-imprensa"> 
80  <div class="d-sm-flex justify-content-between flex-wrap"> 
81    <#if entries?has_content >  
82      <#list entries as entry > 
83        <#if entry.getTitle()?has_content > 
84          <#assign 
85            structuredContent = structuredContentResource.getStructuredContent(entry.getClassPK()) 
86            url = getPressViewUrl(structuredContent) 
87            structuredContentDataField = structuredContent.getContentFields()?filter( 
88              field -> field.name == "data" 
89            )?first 
90            data = structuredContentDataField.getContentFieldValue().getData()?datetime.iso 
91            date_localized = dateUtil.formatDate("yyyyMMdd", data?string("yyyyMMdd"), locale) 
92          /> 
93					<#attempt> 
94					  <#assign              
95										 taxonomyCategory = structuredContent.getTaxonomyCategoryBriefs()?filter(category -> categoriesIds?seq_contains(category.getTaxonomyCategoryId()))?first  
96                     categoryName = taxonomyCategory.getTaxonomyCategoryName() 
97						/> 
98					<#recover> 
99						<#assign categoryName = "" /> 
100					</#attempt> 
101          <a class="text-decoration-none" href="${url}"> 
102            <div 
103              class="box d-flex mb-6" 
104
105              <div class="yellow-bar h-100"></div> 
106              <div  
107                class=" d-flex flex-column justify-content-between h-100 p-3 overflow-hidden" 
108
109                <div> 
110                  <p class="font-weight-medium text-verde-aqua mb-2">${categoryName}</p> 
111                  <p class="title text-verde-vale">${entry.getHighlightedTitle()}</p> 
112                </div> 
113                <p class="texto-sm text-cinza-escuro"> 
114                  ${date_localized} 
115                </p> 
116              </div> 
117            </div> 
118          </a> 
119        </#if> 
120      </#list> 
121    </#if> 
122  </div> 
123  <div class="line-divider"></div> 
124  <div class="pagination d-flex justify-content-center my-5"> 
125    <a  
126      class="pagination-option text-decoration-none mr-sm-5 ${isFirstPage?then('disabled', '')}"  
127      href="${previousURL}"  
128      disabled="${isFirstPage?string}" 
129
130      <img 
131        class="btn btn-primary border-amarelo-vale bg-amarelo-vale mr-2 p-1 rounded-circle" 
132        src="${images_path}seta-2-esq_bra" 
133        alt="button-prev" 
134      /> 
135      <span class="btn btn-link text-amarelo-vale p-0 d-none d-sm-inline"> 
136        <@liferay.language key="previous" /> 
137      </span> 
138    </a> 
139     
140    <#if (startPage > 1)> 
141      <a 
142        class="mr-2" 
143        href="${firstPageURL}" 
144
145        <span 
146          class="pagination-item btn btn-primary p-1 rounded-circle" 
147          alt="first-page-button" 
148        >1 
149        </span> 
150      </a> 
151      <#if currentPage != 3>  
152        <span class="elipsis h-100 mt-auto mr-2">...</span> 
153      </#if> 
154    </#if> 
155 
156    <#list startPage..endPage as i> 
157      <a 
158        class="mr-2 ${(i == currentPage)?then('disabled', '')}" 
159        href="${iteratorURL + '&start=' + i?string}" 
160
161        <span 
162          class="pagination-item ${(currentPage == i)?then('is-active', '')} btn btn-primary p-1 rounded-circle" 
163          alt="first-page-button" 
164        >${i} 
165        </span> 
166      </a> 
167    </#list> 
168 
169    <#if (endPage < totalPages)> 
170      <#if currentPage != totalPages - 2>  
171        <span class="elipsis h-100 mt-auto mr-2">...</span> 
172      </#if> 
173      <a 
174        class="mr-2" 
175        href="${lastPageURL}" 
176
177        <span 
178          class="pagination-item btn btn-primary p-1 rounded-circle" 
179          alt="last-page-button" 
180        >${totalPages} 
181        </span> 
182      </a> 
183    </#if> 
184 
185    <a  
186      class="pagination-option text-decoration-none ml-sm-5 ${isLastPage?then('disabled', '')}"  
187      href="${nextURL}"  
188      disabled="${isLastPage?string}" 
189    >       
190      <span class="btn btn-link text-amarelo-vale mr-2 p-0 d-none d-sm-inline"> 
191        <@liferay.language key="next" /> 
192      </span> 
193      <img 
194        class="btn btn-primary border-amarelo-vale bg-amarelo-vale p-1 rounded-circle" 
195        src="${images_path}seta-2-dir_bra" 
196        alt="button-next" 
197      /> 
198    </a> 
199  </div> 
200</div> 
201 
202<style> 
203  .vale-widget-resultados-busca-imprensa .box { 
204  background-image: url("/documents/d/guest/box-flutuante_com-borda"); 
205  background-size: cover; 
206  aspect-ratio: 65/37; 
207  width: 21.5625rem; 
208
209 
210.vale-widget-resultados-busca-imprensa .yellow-bar { 
211  background-color: var(--amarelo-vale); 
212  flex-basis: 20px; 
213  flex-grow: 0; 
214  flex-shrink: 0; 
215
216 
217.vale-widget-resultados-busca-imprensa .pagination img { 
218  width: 2.03125rem; 
219
220 
221.vale-widget-resultados-busca-imprensa .pagination-item { 
222  color: var(--cinza-escuro); 
223  background-color: var(--branco); 
224  border: 2px solid var(--cinza-escuro); 
225  line-height: 1.30625rem; 
226  opacity: 0.6; 
227  width: 2.03125rem; 
228  height: 2.03125rem; 
229
230 
231.vale-widget-resultados-busca-imprensa .pagination-item:hover { 
232  box-shadow: 0px 0px 6px #55555594; 
233
234 
235.vale-widget-resultados-busca-imprensa .pagination-item.is-active { 
236  color: var(--branco); 
237  background-color: var(--amarelo-vale); 
238  border-color: var(--amarelo-vale); 
239  opacity: 1; 
240
241 
242.vale-widget-resultados-busca-imprensa .pagination-item.is-active:hover { 
243  box-shadow: 0px 0px 6px #ecb11f94; 
244
245 
246.vale-widget-resultados-busca-imprensa .title { 
247  display: -webkit-box; 
248  line-clamp: 3; 
249  overflow: hidden; 
250  -webkit-line-clamp: 3; 
251  -webkit-box-orient: vertical; 
252
253 
254.vale-widget-resultados-busca-imprensa .elipsis { 
255  opacity: 0.6; 
256
257 
258.vale-widget-resultados-busca-imprensa ~ form .pagination-bar { 
259  display: none; 
260
261 
262.vale-widget-resultados-busca-imprensa .pagination .disabled { 
263  pointer-events: none; 
264
265 
266.vale-widget-resultados-busca-imprensa .pagination .pagination-option.disabled { 
267  opacity: 0.5; 
268
269 
270.line-divider { 
271  background-color: var(--cinza-escuro); 
272  color: var(--cinza-escuro); 
273  height: 1px; 
274  width: 100%; 
275  opacity: 0.2; 
276
277 
278@media screen and (max-width: 992px) { 
279  .vale-widget-resultados-busca-imprensa .box { 
280    width: 20.625rem; 
281
282
283 
284@media screen and (max-width: 768px) { 
285  .vale-widget-resultados-busca-imprensa .box { 
286    width: 15.625rem; 
287
288 
289  .vale-widget-resultados-busca-imprensa .title { 
290    line-clamp: 2; 
291    -webkit-line-clamp: 2; 
292
293 
294  .vale-widget-resultados-busca-imprensa .yellow-bar { 
295    flex-basis: 10px; 
296
297
298 
299@media screen and (max-width: 576px) { 
300  .vale-widget-resultados-busca-imprensa .box { 
301    width: 100%; 
302
303 
304  .vale-widget-resultados-busca-imprensa .title { 
305    line-clamp: 3; 
306    -webkit-line-clamp: 3; 
307
308
309 
310</style> 

Showing 121 to 132 of 466 entries.

Documents and Publications

Obtain access to all documents, announcements, and presentations released by PT Vale Indonesia Tbk

Press Releases & Announcements

0

Name Category Sub-category Date File size

Quarterly Reports

0

Name Category Sub-category Date File size

Financial Statements

0

Name Category Sub-category Date File size

Annual Reports

0

Name Category Sub-category Date File size

Sustainability Reports

0

Name Category Sub-category Date File size

Presentations

0

Name Category Sub-category Date File size

Tap and follow us on social media to learn more and stay updated!
 
Play
Botão de play

Click here to watch our operations

Grupo de pessoas