2840 Junction Silicon Valley BREEAM Good - BRE Group
An error occurred while processing the template.
The following has evaluated to null or missing: ==> asset.getAssetRenderer() [in template "20096#20121#207707" at line 90, column 52] ---- 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: assetRenderer = asset.getAssetRenderer() [in template "20096#20121#207707" at line 90, column 38] ----
1<#assign
2 journalArticleResourceLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")
3 assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")
4 journalArticleId=.vars['reserved-article-id'].data
5 articleResourcePrimaryKey=journalArticleResourceLocalService.getArticleResourcePrimKey(themeDisplay.getScopeGroupId(),
6 journalArticleId) assetEntry=assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle",
7 articleResourcePrimaryKey) assetCategories=assetEntry.getCategories() />
8
9<#assign rn=randomNamespace>
10
11<#list assetCategories as category>
12 <#assign categoryName=category.getName() />
13</#list>
14
15<!-- [Start] News Header -->
16<section class="c-news-header" style="background-image: url('${cardImage.getData()}')">
17 <div class="c-news-header__body">
18 <ul class="c-news-header__byline">
19 <#if categoryName?has_content>
20 <li class="c-news-header__category">${categoryName}</li>
21 </#if>
22 <#if getterUtil.getBoolean(autoPopulateDate.getData())>
23 <li class="c-news-header__date">
24 <#assign CardDate=.vars["reserved-article-create-date"].data />
25 <#if validator.isNotNull(CardDate)>
26 <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate, locale)>
27 ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)}
28 </#if>
29 </li>
30 </#if>
31
32 <#if getterUtil.getBoolean(autoPopulateAuthor.getData())>
33 <#if (cardAuthor.getData())?has_content>
34 <li class="c-news-header__author">${cardAuthor.getData()}</li>
35 <#else>
36 <li class="c-news-header__author">${.vars["reserved-article-author-name"].data}</li>
37 </#if>
38 </#if>
39 </ul>
40 <#if (cardTitle.getData())??>
41 <h1 class="c-section__title mb-0">
42 ${cardTitle.getData()}
43 </h1>
44 </#if>
45 </div>
46</section>
47<!-- [End] News Header -->
48
49
50<!-- [Start] Page Description -->
51<#if (cardDscription.getData())?has_content>
52 <section class="c-section">
53 <div class="container">
54 <div class="c-small-desc">
55 ${cardDscription.getData()}
56 </div>
57 </div>
58 </section>
59</#if>
60<!-- [End] Page Description -->
61
62
63<!-- [Start] Page Rich Description -->
64<#if (RichCardDscription.getData())?has_content>
65 <section class="c-section">
66 <div class="container">
67 <div class="c-small-desc">
68 ${RichCardDscription.getData()}
69 </div>
70 </div>
71 </section>
72</#if>
73<!-- [End] Page Rich Description -->
74
75
76<!-- [Start] News Details -->
77<section class="c-section c-section--gray-f5">
78 <div class="container">
79 <div class="row justify-content-center">
80 <div class="col-lg-12">
81 <div class="c-article-details">
82
83 <!-- [Start] Overview and About -->
84 <#assign webContentData=jsonFactoryUtil.createJSONObject(overviewAbout.getData()) />
85 <#if webContentData?? && webContentData.title??>
86 <div class="c-overview-about c-section pt-0">
87 <#assign journalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
88 <#assign assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
89 <#assign asset=assetEntryLocalService.getEntry(webContentData.className, getterUtil.getLong(webContentData.classPK)) />
90 <#assign assetRenderer=asset.getAssetRenderer() journalArticle=assetRenderer.getAssetObject() />
91 <@liferay_journal["journal-article"]
92 articleId=journalArticle.getArticleId()
93 ddmTemplateKey=journalArticle.getDDMTemplateKey()
94 groupId=journalArticle.getGroupId()
95 />
96 </div>
97 </#if>
98 <!-- [End] Overview and About -->
99
100
101 <#if caseStudyGroup.getSiblings()?has_content>
102 <#list caseStudyGroup.getSiblings() as cur_caseStudyGroup>
103
104 <!-- [Start] Title -->
105 <#if (cur_caseStudyGroup.title.getData())?has_content>
106 <h2 class="c-article-details__title">
107 ${cur_caseStudyGroup.title.getData()}
108 </h2>
109 </#if>
110 <!-- [End] Title -->
111
112
113 <!-- [Start] Summary -->
114 <#--<#if (cur_caseStudyGroup.summary.getData())?has_content>
115 <div class="c-summary">
116 ${cur_caseStudyGroup.summary.getData()}
117 </div>
118 </#if> -->
119 <!-- [End] Summary -->
120
121
122 <!-- [Start] Slice -->
123 <#if (cur_caseStudyGroup.slice.getData())?has_content>
124 <div class="c-section-text">
125 ${cur_caseStudyGroup.slice.getData()}
126 </div>
127 </#if>
128 <!-- [End] Slice -->
129
130
131 <!-- [Start] Captioned Image -->
132 <#if (cur_caseStudyGroup.captionedImage.getData())?? && cur_caseStudyGroup.captionedImage.getData() != "">
133 <div class="c-captioned-image">
134 <div class="c-captioned-image__image">
135 <img class="img-fluid" alt="${cur_caseStudyGroup.captionedImage.getAttribute("alt")}" data-fileentryid="${cur_caseStudyGroup.captionedImage.getAttribute("fileEntryId")}" src="${cur_caseStudyGroup.captionedImage.getData()}" />
136 </div>
137 <div class="c-captioned-image__body">
138 ${cur_caseStudyGroup.captionedImage.getAttribute("alt")}
139 </div>
140 </div>
141 </#if>
142 <!-- [End] Captioned Image -->
143
144<!-- [Start] Captioned Image Popup -->
145<#if cur_caseStudyGroup.captionedImage.getData()??>
146<div class="c-captioned-image-popup">
147 <div class="container">
148 <div class="c-captioned-image-popup__header">
149 <i class="c-icon c-icon--close c-captioned-image-popup__close"></i>
150 </div>
151 <img src="" alt="" class="c-captioned-image-popup__image" />
152 </div>
153</div>
154<div class="c-captioned-popup__backdrop"></div>
155</#if>
156<!-- [End] Captioned Image Popup -->
157
158
159 <!-- [Start] Image Slider -->
160 <#if cur_caseStudyGroup.carouselImage.getSiblings()?has_content>
161 <div class="c-article-image-slider c-section--carousel-half slick-carousel slick-carousel--one-half-card ${rn}_Carousel">
162 <#list cur_caseStudyGroup.carouselImage.getSiblings() as cur_caseStudyGroup_carouselImage>
163 <#if (cur_caseStudyGroup_carouselImage.getData())?has_content && cur_caseStudyGroup_carouselImage.getData()??>
164 <div>
165 <div class="c-image-placeholder">
166 <img class="img-fluid" alt="${cur_caseStudyGroup_carouselImage.getAttribute("alt")}" data-fileentryid="${cur_caseStudyGroup_carouselImage.getAttribute("fileEntryId")}" src="${cur_caseStudyGroup_carouselImage.getData()}" />
167 </div>
168 </div>
169 </#if>
170 </#list>
171 </div>
172 </#if>
173 <!-- [End] Image Slider -->
174
175
176 <!-- [Start] Video -->
177 <#if (cur_caseStudyGroup.video.getData())?has_content>
178 <div class="c-video">
179 <#if !cur_caseStudyGroup.video.getData()?contains("youtube") && !cur_caseStudyGroup.video.getData()?contains("vimeo")>
180 <div class="c-video__disabled">
181 ${cur_caseStudyGroup.video.getData()}
182 </div>
183 <#else>
184 ${cur_caseStudyGroup.video.getData()}
185 </#if>
186 </div>
187 </#if>
188 <!-- [End] Video -->
189
190
191 <!-- [Start] Slice -->
192 <#if (cur_caseStudyGroup.slice01.getData())?has_content>
193 <div class="c-section-text">
194 ${cur_caseStudyGroup.slice01.getData()}
195 </div>
196 </#if>
197 <!-- [End] Slice -->
198
199
200 <!-- [Start] Quotes -->
201
202 <#assign webContentData=jsonFactoryUtil.createJSONObject(cur_caseStudyGroup.quotes.getData()) />
203
204 <#if webContentData?? && webContentData.title??>
205 <div class="c-quotes">
206 <#assign journalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
207 <#assign assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
208 <#assign asset=assetEntryLocalService.getEntry(webContentData.className, getterUtil.getLong(webContentData.classPK)) />
209 <#assign assetRenderer=asset.getAssetRenderer() journalArticle=assetRenderer.getAssetObject() />
210
211 <@liferay_journal["journal-article"]
212 articleId=journalArticle.getArticleId()
213 ddmTemplateKey=journalArticle.getDDMTemplateKey()
214 groupId=journalArticle.getGroupId()
215 />
216 </div>
217 </#if>
218
219 <!-- [End] Quotes -->
220
221
222 <!-- [Start] Slice -->
223 <#if (cur_caseStudyGroup.slice02.getData())?has_content>
224 <div class="c-section-text">
225 ${cur_caseStudyGroup.slice02.getData()}
226 </div>
227 </#if>
228 <!-- [End] Slice -->
229
230
231 <!-- [Start] Button -->
232 <#if (cur_caseStudyGroup.buttonText.getData())?has_content>
233 <a class="c-button c-button--secondary" data-senna-off="true"
234 href="${cur_caseStudyGroup.buttonLink.getData()}">
235 ${cur_caseStudyGroup.buttonText.getData()}
236 </a>
237 </#if>
238 <!-- [End] Button -->
239
240 </#list>
241 </#if>
242
243 </div>
244 </div>
245 </div>
246 </div>
247</section>
248<!-- [End] News Details -->
249
250<style>
251.c-section .c-section { padding: 0; }
252
253.c-article-details a {
254 color: #1e1836;
255}
256
257.c-summary ul li,
258.c-section-text ul li,
259.c-rich-text ul li {
260 display: block;
261 position: relative;
262 padding-left: 25px;
263}
264.c-summary ul li::before,
265.c-section-text ul li::before,
266.c-rich-text ul li::before {
267 position: absolute;
268 left: 0;
269}
270
271.c-captioned-image { cursor: pointer; }
272.c-captioned-image-popup {
273 display: none;
274 overflow-y: auto;
275 position: fixed;
276 top: 0;
277 left: 0;
278 width: 100%;
279 height: 100%;
280 z-index: 1045;
281 padding: 32px 0;
282}
283.c-captioned-image-popup.open {
284 display: block;
285}
286.c-captioned-image-popup__header {
287 display: flex;
288 justify-content: flex-end;
289}
290.c-captioned-image-popup__header .c-icon--close {
291 cursor: pointer;
292}
293.c-captioned-image-popup__image {
294 width: 100%;
295}
296.c-captioned-popup__backdrop {
297 display: none;
298 position: fixed;
299 top: 0;
300 left: 0;
301 z-index: 1040;
302 width: 100vw;
303 height: 100vh;
304 background-color: rgba(0, 0, 0, 0.25);
305}
306
307@media (min-width: 1200px) {
308 .c-text-block-head__title {
309 font-size: 42px;
310 }
311}
312</style>
313
314<script>
315 $(document).ready(function () {
316 $('.${rn}_Carousel').slick({
317 slidesToShow: 1.5,
318 slidesToScroll: 1,
319 arrows: true,
320 dots: true,
321 infinite: false,
322 accessibility: false,
323 responsive: [
324 {
325 breakpoint: 600,
326 settings: {
327 arrows: false,
328 slidesToShow: 1
329 }
330 }
331 ]
332 });
333
334 // Remove unwanted html for white space
335 let childElement = $('.${rn}_Carousel .slick-track').children();
336 if(childElement.length < 1) {
337 $('.${rn}_Carousel').remove();
338 }
339
340 // Captioned Image Popup
341 $('.c-captioned-image-popup').not(':first').remove();
342 $('.c-captioned-popup__backdrop').not(':first').remove();
343
344 const winWidth = $(window).width();
345
346 if(winWidth > 992) {
347 $('body').on('click', '.c-captioned-image', function() {
348 let imgSource = $(this).children('.c-captioned-image__image').find('img').attr('src');
349 //console.log($(this).children('.c-captioned-image__image').find('img').attr('src'));
350 $('body').css('overflow', 'hidden');
351 $('.c-captioned-popup__backdrop').show();
352 $('.c-captioned-image-popup').addClass('open');
353 $('.c-captioned-image-popup__image').attr('src', imgSource);
354 });
355
356 $('.c-captioned-image-popup__close').click(function(){
357 $('body').attr('style', '');
358 $('.c-captioned-popup__backdrop').hide();
359 $('.c-captioned-image-popup').removeClass('open');
360 $('.c-captioned-image-popup__image').attr('src', '');
361 });
362 }
363
364 });
365</script>
Version:
BREEAM USA In-Use
Year:
2016
Client:
MetLife Investment Management
Assessor:
UL (formerly Healthy Buildings, Inc.)
Building manager:
Cushman & Wakefield
Tenant:
MediaTek USA, Inc
BREEAM rating:
Good (54.4%)