Our Leadership
Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing: ==> homeLeaders [in template "20099#20135#108037" at line 480, column 24] ---- Tip: If the failing expression is known to be 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 homeLeaders as leader [in template "20099#20135#108037" at line 480, column 17] ----
1<#assign
2 DLFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
3 <#assign watermarkMap="/documents/20126/45625/worldMap.png/">
4
5 <#if entries?has_content>
6 <#assign homeLeaders=[] />
7 <#list entries as curEntry>
8 <#assign journalArticle=curEntry.getAssetRenderer().getArticle() />
9 <#assign document=saxReaderUtil.read(journalArticle.getContent()) />
10 <#assign root=document.getRootElement() />
11 <#assign elements=initializeVariables(root, ["Name","Job","Office","Description","Photo"]) />
12 <#assign viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) />
13
14 <#assign leaderName="" />
15 <#if elements.Name?first?? && extractStringValue(elements.Name?first, locale) !="null">
16 <#assign leaderName=extractStringValue(elements.Name?first, locale) />
17 </#if>
18
19 <#assign leaderJob="" />
20 <#if elements.Job?first?? && extractStringValue(elements.Job?first, locale) !="null">
21 <#assign leaderJob=extractStringValue(elements.Job?first, locale) />
22 </#if>
23
24 <#assign leaderOffice="" />
25 <#if elements.Office?first?? && extractStringValue(elements.Office?first, locale) !="null">
26 <#assign leaderOffice=extractStringValue(elements.Office?first, locale) />
27 </#if>
28
29 <#assign leaderDescription="" />
30 <#if elements.Description?first?? && extractStringValue(elements.Description?first, locale) !="null">
31 <#assign leaderDescription=extractStringValue(elements.Description?first, locale) />
32 </#if>
33
34 <#assign leaderPhoto="" />
35 <#if extractStringValue(elements.Photo?first, locale) !="null">
36 <#assign leaderPhoto=extractStringValue(elements.Photo?first, locale) />
37 </#if>
38
39 <#assign homeLeaders=homeLeaders + [{"Name":leaderName, "Job" :leaderJob
40 ,"Office":leaderOffice, "Description" :leaderDescription , "Photo" : leaderPhoto}] />
41 </#list>
42 </#if>
43
44 <style>
45 .containerMeetOurGlobalLeadershipLeaderHome {
46 padding-bottom: 60px;
47 }
48
49 .titleMeetOurGlobalLeadership {
50 font-size: 32px;
51 font-weight: bold;
52 font-style: normal;
53 font-stretch: normal;
54 line-height: 1.25;
55 letter-spacing: normal;
56 text-align: center;
57 color: #000000;
58 }
59
60 .descriptionMeetOurGlobalLeadership {
61 font-size: 14px;
62 font-weight: normal;
63 font-style: normal;
64 font-stretch: normal;
65 line-height: 1.43;
66 letter-spacing: normal;
67 text-align: center;
68 color: #000000;
69 }
70
71 .meetTeamLeaders {
72 padding: 12px 24px;
73 font-size: 18px;
74 font-weight: bold;
75 font-style: normal;
76 font-stretch: normal;
77 line-height: 1.33;
78 letter-spacing: normal;
79 color: #000000;
80 border: 2px solid black;
81 }
82
83 .ceoImgLeader {
84 height: 100%;
85 background-repeat: no-repeat !important;
86 background-position: center top !important;
87 }
88
89 .containerImgLeaderAbout {
90 text-align: center;
91 height: 340px;
92 background-repeat: no-repeat;
93 background-position: center top;
94 transition: background-size .4s ease-in;
95 }
96
97 .containerInfoLeaderAbout {
98 padding-left: 30px;
99 padding-top: 15px;
100 }
101
102 .containerInfoLeaderAbout p {
103 margin: 0px;
104 font-size: 14px;
105 font-weight: 300;
106 font-style: normal;
107 font-stretch: normal;
108 line-height: normal;
109 letter-spacing: normal;
110 color: #000000;
111 }
112
113 .containerInfoLeaderAbout p:first-child {
114 font-weight: bold;
115 }
116
117 .descriptionCeo {
118 position: absolute;
119 bottom: 85px;
120 left: -195%;
121 width: 200%;
122 font-size: 14px;
123 font-weight: normal;
124 font-style: normal;
125 font-stretch: normal;
126 line-height: 1.43;
127 letter-spacing: normal;
128 color: #000000;
129 }
130
131 .infoCeo {
132 position: absolute;
133 top: 25px;
134 left: -12%;
135 width: 50%;
136 text-align: right;
137 }
138
139 .infoCeo p {
140 margin: 0px;
141 font-size: 14px;
142 font-weight: 300;
143 font-style: normal;
144 font-stretch: normal;
145 line-height: normal;
146 letter-spacing: normal;
147 color: #000000;
148 }
149
150 .infoCeo p:first-child {
151 font-weight: bold;
152 }
153
154 .containerButtonLeaderHome {
155 text-align: center;
156 padding-top: 20px;
157 }
158
159 .meetTeamLeaders:hover {
160 text-shadow: currentcolor 0.8px 0px 0px;
161 font-size: 18px;
162 padding: 12px 24px;
163 border: 2px solid black;
164 cursor: pointer;
165 }
166
167 .rowContainerLeadersAbout {
168 margin-bottom: 32px;
169 }
170
171 .rowContainerLeadersAbout.first-row {
172 border-bottom: 1px solid #d1d3d4;
173 padding-bottom: 32px;
174 }
175
176 .containerLeadersAbout {
177 flex: 0 0 17%;
178 }
179
180 .containerLeadersAbout:hover {
181 cursor: pointer;
182 }
183
184 .containerLeaderAboutPopup {
185 background-color: #fff;
186 color: black;
187 text-align: center;
188 position: fixed;
189 top: 19%;
190 bottom: 40%;
191 left: 25%;
192 right: 25%;
193 content: "";
194 padding: 1% 5% 1% 5%;
195 }
196
197 .popuptext {
198 visibility: hidden;
199 background-color: #000000ad;
200 width: 100%;
201 position: fixed;
202 height: 100%;
203 top: 0;
204 left: 0;
205 z-index: 55;
206 cursor: auto;
207 }
208
209 .show {
210 visibility: visible;
211 -webkit-animation: fadeIn 1s;
212 animation: fadeIn 1s;
213 z-index: 60;
214 }
215
216 .showWithoutTime {
217 visibility: visible;
218 animation: 0s;
219 z-index: 60;
220 }
221
222 .popup .show {
223 visibility: visible;
224 -webkit-animation: fadeIn 1s;
225 animation: fadeIn 1s;
226 }
227
228 @-webkit-keyframes fadeIn {
229 from {
230 opacity: 0;
231 }
232
233 to {
234 opacity: 1;
235 }
236 }
237
238 @keyframes fadeIn {
239 from {
240 opacity: 0;
241 }
242
243 to {
244 opacity: 1;
245 }
246 }
247
248 .rowFlexLeaderCenterAboutPopup {
249 height: 100%;
250 background-repeat: no-repeat !important;
251 background-size: contain !important;
252 }
253
254 .rowFlexLeaderCenterAboutPopup div {
255 height: 100%;
256 }
257
258 .flexLeaderCenterAboutPopup {
259 display: flex;
260 justify-content: center;
261 align-items: center;
262 height: 100%;
263 display: flex;
264 flex-wrap: nowrap;
265 flex-flow: column;
266 align-items: flex-start;
267 }
268
269 .flexLeaderCenterAbout {
270 text-align: left;
271 }
272
273 .addrsLeaderAboutPopup {
274 font-size: 14px;
275 font-weight: normal;
276 font-style: normal;
277 font-stretch: normal;
278 line-height: 1.14;
279 letter-spacing: normal;
280 color: #5f6569;
281 }
282
283 .jobLeaderAboutPopup {
284 font-size: 14px;
285 font-weight: normal;
286 font-style: normal;
287 font-stretch: normal;
288 line-height: 1.14;
289 letter-spacing: normal;
290 color: #5f6569;
291 padding-bottom: 25px;
292 }
293
294 .nameLeaderAboutPopup {
295 font-size: 32px;
296 font-weight: bold;
297 font-style: normal;
298 font-stretch: normal;
299 line-height: 1.25;
300 letter-spacing: normal;
301 color: #000000;
302 }
303
304 .descriptionLeaderAboutPopup {
305 font-size: 16px;
306 font-weight: normal;
307 font-style: normal;
308 font-stretch: normal;
309 line-height: 1.5;
310 letter-spacing: normal;
311 color: #000000;
312 }
313
314 .spanCloseDetailLeaderPopup {
315 float: right;
316 position: absolute;
317 right: 3%;
318 top: 5%;
319 font-size: 23px;
320 color: #989da1;
321 z-index: 66;
322 }
323
324 .spanCloseDetailLeaderPopup:hover {
325 cursor: pointer;
326 }
327
328 .imgLeaderAboutPopup {
329 background-repeat: no-repeat !important;
330 background-position: left !important;
331 background-size: contain !important;
332 }
333
334 .containerBeforeLeaderAbout {
335 float: left;
336 position: absolute;
337 left: 0;
338 top: 0%;
339 font-size: 23px;
340 color: #989da1;
341 z-index: 67;
342 height: 100%;
343 display: flex;
344 align-items: center;
345 }
346
347 .containerBeforeLeaderAbout:hover {
348 cursor: pointer;
349 }
350
351 .containerAfterLeaderAbout {
352 float: right;
353 position: absolute;
354 right: 0;
355 top: 0%;
356 font-size: 23px;
357 color: #989da1;
358 z-index: 67;
359 height: 100%;
360 display: flex;
361 align-items: center;
362 }
363
364 .containerAfterLeaderAbout:hover {
365 cursor: pointer;
366 }
367
368 .beforeLeaderAbout {
369 left: 0px;
370 position: absolute;
371 width: 40px;
372 height: 80px;
373 background: #f2f3f3;
374 -moz-border-radius: 0 100px 100px 0;
375 -webkit-border-radius: 0 100px 100px 0;
376 border-radius: 0 100px 100px 0;
377 display: flex;
378 align-items: center;
379 justify-content: center;
380 cursor: point;
381 }
382
383 .afterLeaderAbout {
384 right: 0px;
385 position: absolute;
386 width: 40px;
387 height: 80px;
388 background: #f2f3f3;
389 -moz-border-radius: 0 100px 100px 0;
390 -webkit-border-radius: 0 100px 100px 0;
391 border-radius: 100px 0 0 100px;
392 display: flex;
393 align-items: center;
394 justify-content: center;
395 cursor: point;
396 }
397
398 .iconCloseDetailLeaderPopup {
399 cursor: point;
400 }
401
402 @media only screen and (max-width: 994px) {
403 .containerLeadersAbout {
404 flex: 0 0 33%;
405 }
406 }
407
408 @media only screen and (max-width: 600px) {
409 .containerLeadersAbout {
410 flex: 0 0 100%;
411 }
412
413 .containerInfoLeaderAbout p {
414 font-size: 18px;
415 text-align: center;
416 }
417
418 .containerInfoLeaderAbout {
419 padding-left: 0px;
420 }
421
422 .containerMeetOurGlobalLeadershipLeaderHome {
423 padding: 0px 15px 20px;
424
425 }
426
427 .containerLeaderAboutPopup {
428 top: 45px !important;
429 bottom: 0% !important;
430 left: 0% !important;
431 right: 0% !important;
432 }
433
434 .rowFlexLeaderCenterAboutPopup {
435 background: none !important;
436 }
437
438 .col-md-3.flexLeaderCenterAboutPopup.addrsLeaderAboutPopup {
439 display: none;
440 }
441
442 .nameLeaderAboutPopup {
443 //margin-top: 1.8em;
444 }
445
446 .spanCloseDetailLeaderPopup.neo-hover {
447 //margin-top: 1em;
448 }
449
450 .descriptionLeaderAboutPopup {
451 padding: 10px;
452 font-size: 12px;
453 }
454
455 .jobLeaderAboutPopup {
456 padding-left: 10px;
457 padding-bottom: 5px;
458 }
459
460 .nameLeaderAboutPopup {
461 padding-left: 10px;
462 }
463 }
464
465 .beforeLeaderAbout {
466 display: none;
467 }
468
469 .afterLeaderAbout {
470 display: none;
471 }
472 .containerInfoLeaderAbout img
473 {
474 width: 100px !important;
475 }
476 </style>
477
478 <script>
479 if (typeof leaders !== 'undefined') {
480 <#list homeLeaders as leader>
481 <#assign nameLeader= leader.Name?replace(' ', '_') />
482 <#assign nameLeader= nameLeader?replace('\"', '_') />
483 leaders.push('${nameLeader}');
484 </#list>
485 } else {
486 var leaders = [];
487 <#list homeLeaders as leader>
488 <#assign nameLeader= leader.Name?replace(' ', '_') />
489 <#assign nameLeader= nameLeader?replace('\"', '_') />
490 leaders.push('${nameLeader}');
491 </#list>
492 }
493
494 var sizeLeaders = leaders.length;
495 var currentLeader;
496 var indexLeader;
497
498 function showPopup(nameLeader) {
499 currentLeader = nameLeader;
500 var popup = document.getElementById(nameLeader);
501 popup.classList.toggle("show");
502
503 if (currentLeader == leaders[0]) {
504 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none";
505 } else {
506 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex";
507 }
508
509 if (currentLeader == leaders[leaders.length - 1]) {
510 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none";
511 } else {
512 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex";
513 }
514 }
515
516 function closePopup(nameLeader) {
517 var popup = document.getElementById(nameLeader);
518 popup.classList.remove("show");
519 popup.classList.remove("showWithoutTime");
520 }
521
522 function beforeLeaderPopup() {
523 leaders.forEach(function (leader, index) {
524 if (leader == currentLeader) {
525 indexLeader = index - 1;
526 }
527 });
528 closePopup(currentLeader);
529 currentLeader = leaders[indexLeader];
530 var popupNext = document.getElementById(leaders[indexLeader]);
531 popupNext.classList.toggle("showWithoutTime");
532 if (currentLeader == leaders[0]) {
533 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none";
534 } else {
535 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex";
536 }
537
538 if (currentLeader == leaders[leaders.length - 1]) {
539 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none";
540 } else {
541 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex";
542 }
543 }
544
545 function afterLeaderPopup() {
546 leaders.forEach(function (leader, index) {
547 if (leader == currentLeader) {
548 indexLeader = index + 1;
549 }
550 });
551 closePopup(currentLeader);
552 currentLeader = leaders[indexLeader];
553 var popupNext = document.getElementById(leaders[indexLeader]);
554 popupNext.classList.toggle("showWithoutTime");
555 if (currentLeader == leaders[0]) {
556 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none";
557 } else {
558 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex";
559 }
560
561 if (currentLeader == leaders[leaders.length - 1]) {
562 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none";
563 } else {
564 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex";
565 }
566 }
567 </script>
568
569 <div class="neo-main-width" style="padding: 10px 0 10px 0;
570 border-bottom: 1px solid #d1d3d4;
571 margin-bottom: 20px!important;">
572 <div class="row rowContainerLeadersAbout">
573 <#list homeLeaders as leader>
574 <div class="col-md-2 col-xs-12"
575 style="padding-left:15px!important; cursor:pointer; margin-bottom:20px;">
576 <@printLeader leader=leader />
577 </div>
578 </#list>
579 </div>
580 </div>
581
582 <#macro printLeader leader>
583 <#assign nameLeader=leader.Name?replace(' ', ' _') />
584 <#assign nameLeader=nameLeader?replace('\"', '_' ) />
585 <div onclick="showPopup('${nameLeader}')">
586 <div class="containerInfoLeaderAbout">
587
588 <#assign leaderImage = "" />
589 <#assign defImage = jsonFactoryUtil.createJSONObject(leader.Photo) />
590 <#assign imageUUID = defImage.getString("uuid") />
591 <#assign imageGroupID = defImage.getInt("groupId") />
592 <#assign imageDescription = defImage.getString("alt") />
593 <#assign imageFolderID =0 />
594 <#if imageUUID!="">
595 <#assign imageFolderID = DLFileEntryLocalService.fetchFileEntry(imageUUID,imageGroupID).getFolderId() />
596 <#assign leaderImage = "/documents/" + imageGroupID + "/" + imageFolderID + "/" +defImage.getString("title") + "/" + imageUUID />
597 </#if>
598 <img class="" title="${imageDescription}" alt="${imageDescription}" src='${leaderImage}'>
599 <p>${leader.Name}</p>
600 <p>${leader.Job}</p>
601 <p>${leader.Office}</p>
602 </div>
603 </div>
604
605 <div id="${nameLeader}" class="popuptext">
606 <div class="containerLeaderAboutPopup spacingMarginEvent speakerEvent backgroundOpacitySpeakerDetail">
607 <span class="spanCloseDetailLeaderPopup neo-hover"><i onclick="closePopup('${nameLeader}')"
608 id="iconCloseDetailLeaderPopup" class="iconCloseDetailLeaderPopup icon-remove"></i></span>
609
610 <#assign beforeLeaderAbout="beforeLeaderAbout_" + nameLeader />
611 <#assign afterLeaderAbout="afterLeaderAbout_" + nameLeader />
612
613 <div class="containerBeforeLeaderAbout neo-hover">
614 <div onclick="beforeLeaderPopup()" id="${beforeLeaderAbout}" class="beforeLeaderAbout"><i
615 class="icon-chevron-left"></i></div>
616 </div>
617 <div class="containerAfterLeaderAbout neo-hover">
618 <div onclick="afterLeaderPopup()" id="${afterLeaderAbout}" class="afterLeaderAbout"><i
619 class="icon-chevron-right"></i></div>
620 </div>
621
622 <div class="row rowFlexLeaderCenterAboutPopup" style="background: url('${watermarkMap}')">
623 <div class="col-md-12 flexLeaderCenterAbout">
624 <p class="nameLeaderAboutPopup">${leader.Name}</p>
625 <p class="jobLeaderAboutPopup">${leader.Job}</p>
626 <p class="descriptionLeaderAboutPopup">${leader.Description}</p>
627 </div>
628 </div>
629 </div>
630 </div>
631 </#macro>
632
633 <#function initializeVariables rootElement variables>
634 <#assign values={} />
635 <#list variables as key>
636 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-element[@name='${key}' ]") />
637 <#assign value=[] />
638 <#if xPathSelector.selectSingleNode(rootElement)??>
639 <#assign nodes=xPathSelector.selectNodes(rootElement) />
640 <#if nodes?size > 1>
641 <#list nodes as node>
642 <#assign value=value + [node]>
643 </#list>
644 <#else>
645 <#assign value=[xPathSelector.selectSingleNode(rootElement)] />
646 </#if>
647 <#else>
648 <#assign value=[] />
649 </#if>
650 <#assign values=values + {"${key}" : value} />
651 </#list>
652 <#return values />
653 </#function>
654
655 <#function extractStringValue node language>
656 <#if node?? && node?is_hash>
657 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content[@language-id='${language}'
658 ]/text()") />
659 <#assign string=xPathSelector.selectSingleNode(node)!"null" />
660 <#if !string?? || string=="null">
661 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content/text()']/text()") />
662 <#assign string=xPathSelector.selectSingleNode(node)!"null" />
663 </#if>
664 <#return string.getStringValue() />
665 <#else>
666 <#return "null" />
667 </#if>
668 </#function>
Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing: ==> homeLeaders [in template "20099#20135#108037" at line 480, column 24] ---- Tip: If the failing expression is known to be 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 homeLeaders as leader [in template "20099#20135#108037" at line 480, column 17] ----
1<#assign
2 DLFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
3 <#assign watermarkMap="/documents/20126/45625/worldMap.png/">
4
5 <#if entries?has_content>
6 <#assign homeLeaders=[] />
7 <#list entries as curEntry>
8 <#assign journalArticle=curEntry.getAssetRenderer().getArticle() />
9 <#assign document=saxReaderUtil.read(journalArticle.getContent()) />
10 <#assign root=document.getRootElement() />
11 <#assign elements=initializeVariables(root, ["Name","Job","Office","Description","Photo"]) />
12 <#assign viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) />
13
14 <#assign leaderName="" />
15 <#if elements.Name?first?? && extractStringValue(elements.Name?first, locale) !="null">
16 <#assign leaderName=extractStringValue(elements.Name?first, locale) />
17 </#if>
18
19 <#assign leaderJob="" />
20 <#if elements.Job?first?? && extractStringValue(elements.Job?first, locale) !="null">
21 <#assign leaderJob=extractStringValue(elements.Job?first, locale) />
22 </#if>
23
24 <#assign leaderOffice="" />
25 <#if elements.Office?first?? && extractStringValue(elements.Office?first, locale) !="null">
26 <#assign leaderOffice=extractStringValue(elements.Office?first, locale) />
27 </#if>
28
29 <#assign leaderDescription="" />
30 <#if elements.Description?first?? && extractStringValue(elements.Description?first, locale) !="null">
31 <#assign leaderDescription=extractStringValue(elements.Description?first, locale) />
32 </#if>
33
34 <#assign leaderPhoto="" />
35 <#if extractStringValue(elements.Photo?first, locale) !="null">
36 <#assign leaderPhoto=extractStringValue(elements.Photo?first, locale) />
37 </#if>
38
39 <#assign homeLeaders=homeLeaders + [{"Name":leaderName, "Job" :leaderJob
40 ,"Office":leaderOffice, "Description" :leaderDescription , "Photo" : leaderPhoto}] />
41 </#list>
42 </#if>
43
44 <style>
45 .containerMeetOurGlobalLeadershipLeaderHome {
46 padding-bottom: 60px;
47 }
48
49 .titleMeetOurGlobalLeadership {
50 font-size: 32px;
51 font-weight: bold;
52 font-style: normal;
53 font-stretch: normal;
54 line-height: 1.25;
55 letter-spacing: normal;
56 text-align: center;
57 color: #000000;
58 }
59
60 .descriptionMeetOurGlobalLeadership {
61 font-size: 14px;
62 font-weight: normal;
63 font-style: normal;
64 font-stretch: normal;
65 line-height: 1.43;
66 letter-spacing: normal;
67 text-align: center;
68 color: #000000;
69 }
70
71 .meetTeamLeaders {
72 padding: 12px 24px;
73 font-size: 18px;
74 font-weight: bold;
75 font-style: normal;
76 font-stretch: normal;
77 line-height: 1.33;
78 letter-spacing: normal;
79 color: #000000;
80 border: 2px solid black;
81 }
82
83 .ceoImgLeader {
84 height: 100%;
85 background-repeat: no-repeat !important;
86 background-position: center top !important;
87 }
88
89 .containerImgLeaderAbout {
90 text-align: center;
91 height: 340px;
92 background-repeat: no-repeat;
93 background-position: center top;
94 transition: background-size .4s ease-in;
95 }
96
97 .containerInfoLeaderAbout {
98 padding-left: 30px;
99 padding-top: 15px;
100 }
101
102 .containerInfoLeaderAbout p {
103 margin: 0px;
104 font-size: 14px;
105 font-weight: 300;
106 font-style: normal;
107 font-stretch: normal;
108 line-height: normal;
109 letter-spacing: normal;
110 color: #000000;
111 }
112
113 .containerInfoLeaderAbout p:first-child {
114 font-weight: bold;
115 }
116
117 .descriptionCeo {
118 position: absolute;
119 bottom: 85px;
120 left: -195%;
121 width: 200%;
122 font-size: 14px;
123 font-weight: normal;
124 font-style: normal;
125 font-stretch: normal;
126 line-height: 1.43;
127 letter-spacing: normal;
128 color: #000000;
129 }
130
131 .infoCeo {
132 position: absolute;
133 top: 25px;
134 left: -12%;
135 width: 50%;
136 text-align: right;
137 }
138
139 .infoCeo p {
140 margin: 0px;
141 font-size: 14px;
142 font-weight: 300;
143 font-style: normal;
144 font-stretch: normal;
145 line-height: normal;
146 letter-spacing: normal;
147 color: #000000;
148 }
149
150 .infoCeo p:first-child {
151 font-weight: bold;
152 }
153
154 .containerButtonLeaderHome {
155 text-align: center;
156 padding-top: 20px;
157 }
158
159 .meetTeamLeaders:hover {
160 text-shadow: currentcolor 0.8px 0px 0px;
161 font-size: 18px;
162 padding: 12px 24px;
163 border: 2px solid black;
164 cursor: pointer;
165 }
166
167 .rowContainerLeadersAbout {
168 margin-bottom: 32px;
169 }
170
171 .rowContainerLeadersAbout.first-row {
172 border-bottom: 1px solid #d1d3d4;
173 padding-bottom: 32px;
174 }
175
176 .containerLeadersAbout {
177 flex: 0 0 17%;
178 }
179
180 .containerLeadersAbout:hover {
181 cursor: pointer;
182 }
183
184 .containerLeaderAboutPopup {
185 background-color: #fff;
186 color: black;
187 text-align: center;
188 position: fixed;
189 top: 19%;
190 bottom: 40%;
191 left: 25%;
192 right: 25%;
193 content: "";
194 padding: 1% 5% 1% 5%;
195 }
196
197 .popuptext {
198 visibility: hidden;
199 background-color: #000000ad;
200 width: 100%;
201 position: fixed;
202 height: 100%;
203 top: 0;
204 left: 0;
205 z-index: 55;
206 cursor: auto;
207 }
208
209 .show {
210 visibility: visible;
211 -webkit-animation: fadeIn 1s;
212 animation: fadeIn 1s;
213 z-index: 60;
214 }
215
216 .showWithoutTime {
217 visibility: visible;
218 animation: 0s;
219 z-index: 60;
220 }
221
222 .popup .show {
223 visibility: visible;
224 -webkit-animation: fadeIn 1s;
225 animation: fadeIn 1s;
226 }
227
228 @-webkit-keyframes fadeIn {
229 from {
230 opacity: 0;
231 }
232
233 to {
234 opacity: 1;
235 }
236 }
237
238 @keyframes fadeIn {
239 from {
240 opacity: 0;
241 }
242
243 to {
244 opacity: 1;
245 }
246 }
247
248 .rowFlexLeaderCenterAboutPopup {
249 height: 100%;
250 background-repeat: no-repeat !important;
251 background-size: contain !important;
252 }
253
254 .rowFlexLeaderCenterAboutPopup div {
255 height: 100%;
256 }
257
258 .flexLeaderCenterAboutPopup {
259 display: flex;
260 justify-content: center;
261 align-items: center;
262 height: 100%;
263 display: flex;
264 flex-wrap: nowrap;
265 flex-flow: column;
266 align-items: flex-start;
267 }
268
269 .flexLeaderCenterAbout {
270 text-align: left;
271 }
272
273 .addrsLeaderAboutPopup {
274 font-size: 14px;
275 font-weight: normal;
276 font-style: normal;
277 font-stretch: normal;
278 line-height: 1.14;
279 letter-spacing: normal;
280 color: #5f6569;
281 }
282
283 .jobLeaderAboutPopup {
284 font-size: 14px;
285 font-weight: normal;
286 font-style: normal;
287 font-stretch: normal;
288 line-height: 1.14;
289 letter-spacing: normal;
290 color: #5f6569;
291 padding-bottom: 25px;
292 }
293
294 .nameLeaderAboutPopup {
295 font-size: 32px;
296 font-weight: bold;
297 font-style: normal;
298 font-stretch: normal;
299 line-height: 1.25;
300 letter-spacing: normal;
301 color: #000000;
302 }
303
304 .descriptionLeaderAboutPopup {
305 font-size: 16px;
306 font-weight: normal;
307 font-style: normal;
308 font-stretch: normal;
309 line-height: 1.5;
310 letter-spacing: normal;
311 color: #000000;
312 }
313
314 .spanCloseDetailLeaderPopup {
315 float: right;
316 position: absolute;
317 right: 3%;
318 top: 5%;
319 font-size: 23px;
320 color: #989da1;
321 z-index: 66;
322 }
323
324 .spanCloseDetailLeaderPopup:hover {
325 cursor: pointer;
326 }
327
328 .imgLeaderAboutPopup {
329 background-repeat: no-repeat !important;
330 background-position: left !important;
331 background-size: contain !important;
332 }
333
334 .containerBeforeLeaderAbout {
335 float: left;
336 position: absolute;
337 left: 0;
338 top: 0%;
339 font-size: 23px;
340 color: #989da1;
341 z-index: 67;
342 height: 100%;
343 display: flex;
344 align-items: center;
345 }
346
347 .containerBeforeLeaderAbout:hover {
348 cursor: pointer;
349 }
350
351 .containerAfterLeaderAbout {
352 float: right;
353 position: absolute;
354 right: 0;
355 top: 0%;
356 font-size: 23px;
357 color: #989da1;
358 z-index: 67;
359 height: 100%;
360 display: flex;
361 align-items: center;
362 }
363
364 .containerAfterLeaderAbout:hover {
365 cursor: pointer;
366 }
367
368 .beforeLeaderAbout {
369 left: 0px;
370 position: absolute;
371 width: 40px;
372 height: 80px;
373 background: #f2f3f3;
374 -moz-border-radius: 0 100px 100px 0;
375 -webkit-border-radius: 0 100px 100px 0;
376 border-radius: 0 100px 100px 0;
377 display: flex;
378 align-items: center;
379 justify-content: center;
380 cursor: point;
381 }
382
383 .afterLeaderAbout {
384 right: 0px;
385 position: absolute;
386 width: 40px;
387 height: 80px;
388 background: #f2f3f3;
389 -moz-border-radius: 0 100px 100px 0;
390 -webkit-border-radius: 0 100px 100px 0;
391 border-radius: 100px 0 0 100px;
392 display: flex;
393 align-items: center;
394 justify-content: center;
395 cursor: point;
396 }
397
398 .iconCloseDetailLeaderPopup {
399 cursor: point;
400 }
401
402 @media only screen and (max-width: 994px) {
403 .containerLeadersAbout {
404 flex: 0 0 33%;
405 }
406 }
407
408 @media only screen and (max-width: 600px) {
409 .containerLeadersAbout {
410 flex: 0 0 100%;
411 }
412
413 .containerInfoLeaderAbout p {
414 font-size: 18px;
415 text-align: center;
416 }
417
418 .containerInfoLeaderAbout {
419 padding-left: 0px;
420 }
421
422 .containerMeetOurGlobalLeadershipLeaderHome {
423 padding: 0px 15px 20px;
424
425 }
426
427 .containerLeaderAboutPopup {
428 top: 45px !important;
429 bottom: 0% !important;
430 left: 0% !important;
431 right: 0% !important;
432 }
433
434 .rowFlexLeaderCenterAboutPopup {
435 background: none !important;
436 }
437
438 .col-md-3.flexLeaderCenterAboutPopup.addrsLeaderAboutPopup {
439 display: none;
440 }
441
442 .nameLeaderAboutPopup {
443 //margin-top: 1.8em;
444 }
445
446 .spanCloseDetailLeaderPopup.neo-hover {
447 //margin-top: 1em;
448 }
449
450 .descriptionLeaderAboutPopup {
451 padding: 10px;
452 font-size: 12px;
453 }
454
455 .jobLeaderAboutPopup {
456 padding-left: 10px;
457 padding-bottom: 5px;
458 }
459
460 .nameLeaderAboutPopup {
461 padding-left: 10px;
462 }
463 }
464
465 .beforeLeaderAbout {
466 display: none;
467 }
468
469 .afterLeaderAbout {
470 display: none;
471 }
472 .containerInfoLeaderAbout img
473 {
474 width: 100px !important;
475 }
476 </style>
477
478 <script>
479 if (typeof leaders !== 'undefined') {
480 <#list homeLeaders as leader>
481 <#assign nameLeader= leader.Name?replace(' ', '_') />
482 <#assign nameLeader= nameLeader?replace('\"', '_') />
483 leaders.push('${nameLeader}');
484 </#list>
485 } else {
486 var leaders = [];
487 <#list homeLeaders as leader>
488 <#assign nameLeader= leader.Name?replace(' ', '_') />
489 <#assign nameLeader= nameLeader?replace('\"', '_') />
490 leaders.push('${nameLeader}');
491 </#list>
492 }
493
494 var sizeLeaders = leaders.length;
495 var currentLeader;
496 var indexLeader;
497
498 function showPopup(nameLeader) {
499 currentLeader = nameLeader;
500 var popup = document.getElementById(nameLeader);
501 popup.classList.toggle("show");
502
503 if (currentLeader == leaders[0]) {
504 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none";
505 } else {
506 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex";
507 }
508
509 if (currentLeader == leaders[leaders.length - 1]) {
510 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none";
511 } else {
512 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex";
513 }
514 }
515
516 function closePopup(nameLeader) {
517 var popup = document.getElementById(nameLeader);
518 popup.classList.remove("show");
519 popup.classList.remove("showWithoutTime");
520 }
521
522 function beforeLeaderPopup() {
523 leaders.forEach(function (leader, index) {
524 if (leader == currentLeader) {
525 indexLeader = index - 1;
526 }
527 });
528 closePopup(currentLeader);
529 currentLeader = leaders[indexLeader];
530 var popupNext = document.getElementById(leaders[indexLeader]);
531 popupNext.classList.toggle("showWithoutTime");
532 if (currentLeader == leaders[0]) {
533 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none";
534 } else {
535 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex";
536 }
537
538 if (currentLeader == leaders[leaders.length - 1]) {
539 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none";
540 } else {
541 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex";
542 }
543 }
544
545 function afterLeaderPopup() {
546 leaders.forEach(function (leader, index) {
547 if (leader == currentLeader) {
548 indexLeader = index + 1;
549 }
550 });
551 closePopup(currentLeader);
552 currentLeader = leaders[indexLeader];
553 var popupNext = document.getElementById(leaders[indexLeader]);
554 popupNext.classList.toggle("showWithoutTime");
555 if (currentLeader == leaders[0]) {
556 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none";
557 } else {
558 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex";
559 }
560
561 if (currentLeader == leaders[leaders.length - 1]) {
562 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none";
563 } else {
564 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex";
565 }
566 }
567 </script>
568
569 <div class="neo-main-width" style="padding: 10px 0 10px 0;
570 border-bottom: 1px solid #d1d3d4;
571 margin-bottom: 20px!important;">
572 <div class="row rowContainerLeadersAbout">
573 <#list homeLeaders as leader>
574 <div class="col-md-2 col-xs-12"
575 style="padding-left:15px!important; cursor:pointer; margin-bottom:20px;">
576 <@printLeader leader=leader />
577 </div>
578 </#list>
579 </div>
580 </div>
581
582 <#macro printLeader leader>
583 <#assign nameLeader=leader.Name?replace(' ', ' _') />
584 <#assign nameLeader=nameLeader?replace('\"', '_' ) />
585 <div onclick="showPopup('${nameLeader}')">
586 <div class="containerInfoLeaderAbout">
587
588 <#assign leaderImage = "" />
589 <#assign defImage = jsonFactoryUtil.createJSONObject(leader.Photo) />
590 <#assign imageUUID = defImage.getString("uuid") />
591 <#assign imageGroupID = defImage.getInt("groupId") />
592 <#assign imageDescription = defImage.getString("alt") />
593 <#assign imageFolderID =0 />
594 <#if imageUUID!="">
595 <#assign imageFolderID = DLFileEntryLocalService.fetchFileEntry(imageUUID,imageGroupID).getFolderId() />
596 <#assign leaderImage = "/documents/" + imageGroupID + "/" + imageFolderID + "/" +defImage.getString("title") + "/" + imageUUID />
597 </#if>
598 <img class="" title="${imageDescription}" alt="${imageDescription}" src='${leaderImage}'>
599 <p>${leader.Name}</p>
600 <p>${leader.Job}</p>
601 <p>${leader.Office}</p>
602 </div>
603 </div>
604
605 <div id="${nameLeader}" class="popuptext">
606 <div class="containerLeaderAboutPopup spacingMarginEvent speakerEvent backgroundOpacitySpeakerDetail">
607 <span class="spanCloseDetailLeaderPopup neo-hover"><i onclick="closePopup('${nameLeader}')"
608 id="iconCloseDetailLeaderPopup" class="iconCloseDetailLeaderPopup icon-remove"></i></span>
609
610 <#assign beforeLeaderAbout="beforeLeaderAbout_" + nameLeader />
611 <#assign afterLeaderAbout="afterLeaderAbout_" + nameLeader />
612
613 <div class="containerBeforeLeaderAbout neo-hover">
614 <div onclick="beforeLeaderPopup()" id="${beforeLeaderAbout}" class="beforeLeaderAbout"><i
615 class="icon-chevron-left"></i></div>
616 </div>
617 <div class="containerAfterLeaderAbout neo-hover">
618 <div onclick="afterLeaderPopup()" id="${afterLeaderAbout}" class="afterLeaderAbout"><i
619 class="icon-chevron-right"></i></div>
620 </div>
621
622 <div class="row rowFlexLeaderCenterAboutPopup" style="background: url('${watermarkMap}')">
623 <div class="col-md-12 flexLeaderCenterAbout">
624 <p class="nameLeaderAboutPopup">${leader.Name}</p>
625 <p class="jobLeaderAboutPopup">${leader.Job}</p>
626 <p class="descriptionLeaderAboutPopup">${leader.Description}</p>
627 </div>
628 </div>
629 </div>
630 </div>
631 </#macro>
632
633 <#function initializeVariables rootElement variables>
634 <#assign values={} />
635 <#list variables as key>
636 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-element[@name='${key}' ]") />
637 <#assign value=[] />
638 <#if xPathSelector.selectSingleNode(rootElement)??>
639 <#assign nodes=xPathSelector.selectNodes(rootElement) />
640 <#if nodes?size > 1>
641 <#list nodes as node>
642 <#assign value=value + [node]>
643 </#list>
644 <#else>
645 <#assign value=[xPathSelector.selectSingleNode(rootElement)] />
646 </#if>
647 <#else>
648 <#assign value=[] />
649 </#if>
650 <#assign values=values + {"${key}" : value} />
651 </#list>
652 <#return values />
653 </#function>
654
655 <#function extractStringValue node language>
656 <#if node?? && node?is_hash>
657 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content[@language-id='${language}'
658 ]/text()") />
659 <#assign string=xPathSelector.selectSingleNode(node)!"null" />
660 <#if !string?? || string=="null">
661 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content/text()']/text()") />
662 <#assign string=xPathSelector.selectSingleNode(node)!"null" />
663 </#if>
664 <#return string.getStringValue() />
665 <#else>
666 <#return "null" />
667 </#if>
668 </#function>
Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing: ==> homeLeaders [in template "20099#20135#108037" at line 480, column 24] ---- Tip: If the failing expression is known to be 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 homeLeaders as leader [in template "20099#20135#108037" at line 480, column 17] ----
1<#assign
2 DLFileEntryLocalService=serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
3 <#assign watermarkMap="/documents/20126/45625/worldMap.png/">
4
5 <#if entries?has_content>
6 <#assign homeLeaders=[] />
7 <#list entries as curEntry>
8 <#assign journalArticle=curEntry.getAssetRenderer().getArticle() />
9 <#assign document=saxReaderUtil.read(journalArticle.getContent()) />
10 <#assign root=document.getRootElement() />
11 <#assign elements=initializeVariables(root, ["Name","Job","Office","Description","Photo"]) />
12 <#assign viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry) />
13
14 <#assign leaderName="" />
15 <#if elements.Name?first?? && extractStringValue(elements.Name?first, locale) !="null">
16 <#assign leaderName=extractStringValue(elements.Name?first, locale) />
17 </#if>
18
19 <#assign leaderJob="" />
20 <#if elements.Job?first?? && extractStringValue(elements.Job?first, locale) !="null">
21 <#assign leaderJob=extractStringValue(elements.Job?first, locale) />
22 </#if>
23
24 <#assign leaderOffice="" />
25 <#if elements.Office?first?? && extractStringValue(elements.Office?first, locale) !="null">
26 <#assign leaderOffice=extractStringValue(elements.Office?first, locale) />
27 </#if>
28
29 <#assign leaderDescription="" />
30 <#if elements.Description?first?? && extractStringValue(elements.Description?first, locale) !="null">
31 <#assign leaderDescription=extractStringValue(elements.Description?first, locale) />
32 </#if>
33
34 <#assign leaderPhoto="" />
35 <#if extractStringValue(elements.Photo?first, locale) !="null">
36 <#assign leaderPhoto=extractStringValue(elements.Photo?first, locale) />
37 </#if>
38
39 <#assign homeLeaders=homeLeaders + [{"Name":leaderName, "Job" :leaderJob
40 ,"Office":leaderOffice, "Description" :leaderDescription , "Photo" : leaderPhoto}] />
41 </#list>
42 </#if>
43
44 <style>
45 .containerMeetOurGlobalLeadershipLeaderHome {
46 padding-bottom: 60px;
47 }
48
49 .titleMeetOurGlobalLeadership {
50 font-size: 32px;
51 font-weight: bold;
52 font-style: normal;
53 font-stretch: normal;
54 line-height: 1.25;
55 letter-spacing: normal;
56 text-align: center;
57 color: #000000;
58 }
59
60 .descriptionMeetOurGlobalLeadership {
61 font-size: 14px;
62 font-weight: normal;
63 font-style: normal;
64 font-stretch: normal;
65 line-height: 1.43;
66 letter-spacing: normal;
67 text-align: center;
68 color: #000000;
69 }
70
71 .meetTeamLeaders {
72 padding: 12px 24px;
73 font-size: 18px;
74 font-weight: bold;
75 font-style: normal;
76 font-stretch: normal;
77 line-height: 1.33;
78 letter-spacing: normal;
79 color: #000000;
80 border: 2px solid black;
81 }
82
83 .ceoImgLeader {
84 height: 100%;
85 background-repeat: no-repeat !important;
86 background-position: center top !important;
87 }
88
89 .containerImgLeaderAbout {
90 text-align: center;
91 height: 340px;
92 background-repeat: no-repeat;
93 background-position: center top;
94 transition: background-size .4s ease-in;
95 }
96
97 .containerInfoLeaderAbout {
98 padding-left: 30px;
99 padding-top: 15px;
100 }
101
102 .containerInfoLeaderAbout p {
103 margin: 0px;
104 font-size: 14px;
105 font-weight: 300;
106 font-style: normal;
107 font-stretch: normal;
108 line-height: normal;
109 letter-spacing: normal;
110 color: #000000;
111 }
112
113 .containerInfoLeaderAbout p:first-child {
114 font-weight: bold;
115 }
116
117 .descriptionCeo {
118 position: absolute;
119 bottom: 85px;
120 left: -195%;
121 width: 200%;
122 font-size: 14px;
123 font-weight: normal;
124 font-style: normal;
125 font-stretch: normal;
126 line-height: 1.43;
127 letter-spacing: normal;
128 color: #000000;
129 }
130
131 .infoCeo {
132 position: absolute;
133 top: 25px;
134 left: -12%;
135 width: 50%;
136 text-align: right;
137 }
138
139 .infoCeo p {
140 margin: 0px;
141 font-size: 14px;
142 font-weight: 300;
143 font-style: normal;
144 font-stretch: normal;
145 line-height: normal;
146 letter-spacing: normal;
147 color: #000000;
148 }
149
150 .infoCeo p:first-child {
151 font-weight: bold;
152 }
153
154 .containerButtonLeaderHome {
155 text-align: center;
156 padding-top: 20px;
157 }
158
159 .meetTeamLeaders:hover {
160 text-shadow: currentcolor 0.8px 0px 0px;
161 font-size: 18px;
162 padding: 12px 24px;
163 border: 2px solid black;
164 cursor: pointer;
165 }
166
167 .rowContainerLeadersAbout {
168 margin-bottom: 32px;
169 }
170
171 .rowContainerLeadersAbout.first-row {
172 border-bottom: 1px solid #d1d3d4;
173 padding-bottom: 32px;
174 }
175
176 .containerLeadersAbout {
177 flex: 0 0 17%;
178 }
179
180 .containerLeadersAbout:hover {
181 cursor: pointer;
182 }
183
184 .containerLeaderAboutPopup {
185 background-color: #fff;
186 color: black;
187 text-align: center;
188 position: fixed;
189 top: 19%;
190 bottom: 40%;
191 left: 25%;
192 right: 25%;
193 content: "";
194 padding: 1% 5% 1% 5%;
195 }
196
197 .popuptext {
198 visibility: hidden;
199 background-color: #000000ad;
200 width: 100%;
201 position: fixed;
202 height: 100%;
203 top: 0;
204 left: 0;
205 z-index: 55;
206 cursor: auto;
207 }
208
209 .show {
210 visibility: visible;
211 -webkit-animation: fadeIn 1s;
212 animation: fadeIn 1s;
213 z-index: 60;
214 }
215
216 .showWithoutTime {
217 visibility: visible;
218 animation: 0s;
219 z-index: 60;
220 }
221
222 .popup .show {
223 visibility: visible;
224 -webkit-animation: fadeIn 1s;
225 animation: fadeIn 1s;
226 }
227
228 @-webkit-keyframes fadeIn {
229 from {
230 opacity: 0;
231 }
232
233 to {
234 opacity: 1;
235 }
236 }
237
238 @keyframes fadeIn {
239 from {
240 opacity: 0;
241 }
242
243 to {
244 opacity: 1;
245 }
246 }
247
248 .rowFlexLeaderCenterAboutPopup {
249 height: 100%;
250 background-repeat: no-repeat !important;
251 background-size: contain !important;
252 }
253
254 .rowFlexLeaderCenterAboutPopup div {
255 height: 100%;
256 }
257
258 .flexLeaderCenterAboutPopup {
259 display: flex;
260 justify-content: center;
261 align-items: center;
262 height: 100%;
263 display: flex;
264 flex-wrap: nowrap;
265 flex-flow: column;
266 align-items: flex-start;
267 }
268
269 .flexLeaderCenterAbout {
270 text-align: left;
271 }
272
273 .addrsLeaderAboutPopup {
274 font-size: 14px;
275 font-weight: normal;
276 font-style: normal;
277 font-stretch: normal;
278 line-height: 1.14;
279 letter-spacing: normal;
280 color: #5f6569;
281 }
282
283 .jobLeaderAboutPopup {
284 font-size: 14px;
285 font-weight: normal;
286 font-style: normal;
287 font-stretch: normal;
288 line-height: 1.14;
289 letter-spacing: normal;
290 color: #5f6569;
291 padding-bottom: 25px;
292 }
293
294 .nameLeaderAboutPopup {
295 font-size: 32px;
296 font-weight: bold;
297 font-style: normal;
298 font-stretch: normal;
299 line-height: 1.25;
300 letter-spacing: normal;
301 color: #000000;
302 }
303
304 .descriptionLeaderAboutPopup {
305 font-size: 16px;
306 font-weight: normal;
307 font-style: normal;
308 font-stretch: normal;
309 line-height: 1.5;
310 letter-spacing: normal;
311 color: #000000;
312 }
313
314 .spanCloseDetailLeaderPopup {
315 float: right;
316 position: absolute;
317 right: 3%;
318 top: 5%;
319 font-size: 23px;
320 color: #989da1;
321 z-index: 66;
322 }
323
324 .spanCloseDetailLeaderPopup:hover {
325 cursor: pointer;
326 }
327
328 .imgLeaderAboutPopup {
329 background-repeat: no-repeat !important;
330 background-position: left !important;
331 background-size: contain !important;
332 }
333
334 .containerBeforeLeaderAbout {
335 float: left;
336 position: absolute;
337 left: 0;
338 top: 0%;
339 font-size: 23px;
340 color: #989da1;
341 z-index: 67;
342 height: 100%;
343 display: flex;
344 align-items: center;
345 }
346
347 .containerBeforeLeaderAbout:hover {
348 cursor: pointer;
349 }
350
351 .containerAfterLeaderAbout {
352 float: right;
353 position: absolute;
354 right: 0;
355 top: 0%;
356 font-size: 23px;
357 color: #989da1;
358 z-index: 67;
359 height: 100%;
360 display: flex;
361 align-items: center;
362 }
363
364 .containerAfterLeaderAbout:hover {
365 cursor: pointer;
366 }
367
368 .beforeLeaderAbout {
369 left: 0px;
370 position: absolute;
371 width: 40px;
372 height: 80px;
373 background: #f2f3f3;
374 -moz-border-radius: 0 100px 100px 0;
375 -webkit-border-radius: 0 100px 100px 0;
376 border-radius: 0 100px 100px 0;
377 display: flex;
378 align-items: center;
379 justify-content: center;
380 cursor: point;
381 }
382
383 .afterLeaderAbout {
384 right: 0px;
385 position: absolute;
386 width: 40px;
387 height: 80px;
388 background: #f2f3f3;
389 -moz-border-radius: 0 100px 100px 0;
390 -webkit-border-radius: 0 100px 100px 0;
391 border-radius: 100px 0 0 100px;
392 display: flex;
393 align-items: center;
394 justify-content: center;
395 cursor: point;
396 }
397
398 .iconCloseDetailLeaderPopup {
399 cursor: point;
400 }
401
402 @media only screen and (max-width: 994px) {
403 .containerLeadersAbout {
404 flex: 0 0 33%;
405 }
406 }
407
408 @media only screen and (max-width: 600px) {
409 .containerLeadersAbout {
410 flex: 0 0 100%;
411 }
412
413 .containerInfoLeaderAbout p {
414 font-size: 18px;
415 text-align: center;
416 }
417
418 .containerInfoLeaderAbout {
419 padding-left: 0px;
420 }
421
422 .containerMeetOurGlobalLeadershipLeaderHome {
423 padding: 0px 15px 20px;
424
425 }
426
427 .containerLeaderAboutPopup {
428 top: 45px !important;
429 bottom: 0% !important;
430 left: 0% !important;
431 right: 0% !important;
432 }
433
434 .rowFlexLeaderCenterAboutPopup {
435 background: none !important;
436 }
437
438 .col-md-3.flexLeaderCenterAboutPopup.addrsLeaderAboutPopup {
439 display: none;
440 }
441
442 .nameLeaderAboutPopup {
443 //margin-top: 1.8em;
444 }
445
446 .spanCloseDetailLeaderPopup.neo-hover {
447 //margin-top: 1em;
448 }
449
450 .descriptionLeaderAboutPopup {
451 padding: 10px;
452 font-size: 12px;
453 }
454
455 .jobLeaderAboutPopup {
456 padding-left: 10px;
457 padding-bottom: 5px;
458 }
459
460 .nameLeaderAboutPopup {
461 padding-left: 10px;
462 }
463 }
464
465 .beforeLeaderAbout {
466 display: none;
467 }
468
469 .afterLeaderAbout {
470 display: none;
471 }
472 .containerInfoLeaderAbout img
473 {
474 width: 100px !important;
475 }
476 </style>
477
478 <script>
479 if (typeof leaders !== 'undefined') {
480 <#list homeLeaders as leader>
481 <#assign nameLeader= leader.Name?replace(' ', '_') />
482 <#assign nameLeader= nameLeader?replace('\"', '_') />
483 leaders.push('${nameLeader}');
484 </#list>
485 } else {
486 var leaders = [];
487 <#list homeLeaders as leader>
488 <#assign nameLeader= leader.Name?replace(' ', '_') />
489 <#assign nameLeader= nameLeader?replace('\"', '_') />
490 leaders.push('${nameLeader}');
491 </#list>
492 }
493
494 var sizeLeaders = leaders.length;
495 var currentLeader;
496 var indexLeader;
497
498 function showPopup(nameLeader) {
499 currentLeader = nameLeader;
500 var popup = document.getElementById(nameLeader);
501 popup.classList.toggle("show");
502
503 if (currentLeader == leaders[0]) {
504 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none";
505 } else {
506 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex";
507 }
508
509 if (currentLeader == leaders[leaders.length - 1]) {
510 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none";
511 } else {
512 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex";
513 }
514 }
515
516 function closePopup(nameLeader) {
517 var popup = document.getElementById(nameLeader);
518 popup.classList.remove("show");
519 popup.classList.remove("showWithoutTime");
520 }
521
522 function beforeLeaderPopup() {
523 leaders.forEach(function (leader, index) {
524 if (leader == currentLeader) {
525 indexLeader = index - 1;
526 }
527 });
528 closePopup(currentLeader);
529 currentLeader = leaders[indexLeader];
530 var popupNext = document.getElementById(leaders[indexLeader]);
531 popupNext.classList.toggle("showWithoutTime");
532 if (currentLeader == leaders[0]) {
533 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none";
534 } else {
535 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex";
536 }
537
538 if (currentLeader == leaders[leaders.length - 1]) {
539 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none";
540 } else {
541 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex";
542 }
543 }
544
545 function afterLeaderPopup() {
546 leaders.forEach(function (leader, index) {
547 if (leader == currentLeader) {
548 indexLeader = index + 1;
549 }
550 });
551 closePopup(currentLeader);
552 currentLeader = leaders[indexLeader];
553 var popupNext = document.getElementById(leaders[indexLeader]);
554 popupNext.classList.toggle("showWithoutTime");
555 if (currentLeader == leaders[0]) {
556 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "none";
557 } else {
558 document.getElementById("beforeLeaderAbout_" + currentLeader).style.display = "flex";
559 }
560
561 if (currentLeader == leaders[leaders.length - 1]) {
562 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "none";
563 } else {
564 document.getElementById("afterLeaderAbout_" + currentLeader).style.display = "flex";
565 }
566 }
567 </script>
568
569 <div class="neo-main-width" style="padding: 10px 0 10px 0;
570 border-bottom: 1px solid #d1d3d4;
571 margin-bottom: 20px!important;">
572 <div class="row rowContainerLeadersAbout">
573 <#list homeLeaders as leader>
574 <div class="col-md-2 col-xs-12"
575 style="padding-left:15px!important; cursor:pointer; margin-bottom:20px;">
576 <@printLeader leader=leader />
577 </div>
578 </#list>
579 </div>
580 </div>
581
582 <#macro printLeader leader>
583 <#assign nameLeader=leader.Name?replace(' ', ' _') />
584 <#assign nameLeader=nameLeader?replace('\"', '_' ) />
585 <div onclick="showPopup('${nameLeader}')">
586 <div class="containerInfoLeaderAbout">
587
588 <#assign leaderImage = "" />
589 <#assign defImage = jsonFactoryUtil.createJSONObject(leader.Photo) />
590 <#assign imageUUID = defImage.getString("uuid") />
591 <#assign imageGroupID = defImage.getInt("groupId") />
592 <#assign imageDescription = defImage.getString("alt") />
593 <#assign imageFolderID =0 />
594 <#if imageUUID!="">
595 <#assign imageFolderID = DLFileEntryLocalService.fetchFileEntry(imageUUID,imageGroupID).getFolderId() />
596 <#assign leaderImage = "/documents/" + imageGroupID + "/" + imageFolderID + "/" +defImage.getString("title") + "/" + imageUUID />
597 </#if>
598 <img class="" title="${imageDescription}" alt="${imageDescription}" src='${leaderImage}'>
599 <p>${leader.Name}</p>
600 <p>${leader.Job}</p>
601 <p>${leader.Office}</p>
602 </div>
603 </div>
604
605 <div id="${nameLeader}" class="popuptext">
606 <div class="containerLeaderAboutPopup spacingMarginEvent speakerEvent backgroundOpacitySpeakerDetail">
607 <span class="spanCloseDetailLeaderPopup neo-hover"><i onclick="closePopup('${nameLeader}')"
608 id="iconCloseDetailLeaderPopup" class="iconCloseDetailLeaderPopup icon-remove"></i></span>
609
610 <#assign beforeLeaderAbout="beforeLeaderAbout_" + nameLeader />
611 <#assign afterLeaderAbout="afterLeaderAbout_" + nameLeader />
612
613 <div class="containerBeforeLeaderAbout neo-hover">
614 <div onclick="beforeLeaderPopup()" id="${beforeLeaderAbout}" class="beforeLeaderAbout"><i
615 class="icon-chevron-left"></i></div>
616 </div>
617 <div class="containerAfterLeaderAbout neo-hover">
618 <div onclick="afterLeaderPopup()" id="${afterLeaderAbout}" class="afterLeaderAbout"><i
619 class="icon-chevron-right"></i></div>
620 </div>
621
622 <div class="row rowFlexLeaderCenterAboutPopup" style="background: url('${watermarkMap}')">
623 <div class="col-md-12 flexLeaderCenterAbout">
624 <p class="nameLeaderAboutPopup">${leader.Name}</p>
625 <p class="jobLeaderAboutPopup">${leader.Job}</p>
626 <p class="descriptionLeaderAboutPopup">${leader.Description}</p>
627 </div>
628 </div>
629 </div>
630 </div>
631 </#macro>
632
633 <#function initializeVariables rootElement variables>
634 <#assign values={} />
635 <#list variables as key>
636 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-element[@name='${key}' ]") />
637 <#assign value=[] />
638 <#if xPathSelector.selectSingleNode(rootElement)??>
639 <#assign nodes=xPathSelector.selectNodes(rootElement) />
640 <#if nodes?size > 1>
641 <#list nodes as node>
642 <#assign value=value + [node]>
643 </#list>
644 <#else>
645 <#assign value=[xPathSelector.selectSingleNode(rootElement)] />
646 </#if>
647 <#else>
648 <#assign value=[] />
649 </#if>
650 <#assign values=values + {"${key}" : value} />
651 </#list>
652 <#return values />
653 </#function>
654
655 <#function extractStringValue node language>
656 <#if node?? && node?is_hash>
657 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content[@language-id='${language}'
658 ]/text()") />
659 <#assign string=xPathSelector.selectSingleNode(node)!"null" />
660 <#if !string?? || string=="null">
661 <#assign xPathSelector=saxReaderUtil.createXPath("dynamic-content/text()']/text()") />
662 <#assign string=xPathSelector.selectSingleNode(node)!"null" />
663 </#if>
664 <#return string.getStringValue() />
665 <#else>
666 <#return "null" />
667 </#if>
668 </#function>