Une erreur s'est produite lors du traitement du gabarit.
Java method "com.ch5finland.genelec.cms.service.impl.CMSContentFormatterServiceImpl.getMarkdown(String)" threw an exception when invoked on com.ch5finland.genelec.cms.service.impl.CMSContentFormatterServiceImpl object "com.ch5finland.genelec.cms.service.impl.CMSContentFormatterServiceImpl@61e9ea58"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign summary = cmsContentFormatter...  [in template "20116#20152#253374" at line 29, column 5]
----
1<#-- 
2    Discontinued Main Image     
3--> 
4 
5<#if cmsEntity?has_content> 
6<#include "${templatesPath}/227222" /> <@sectionHeader title="${title}" menuTitle="${menuTitle}" cssClasses="bg-white" id="discontinued-section-main"/> 
7<#assign ns = themeDisplay.portletDisplay.getId() > 
8<#assign siteDefaultLocale = portalUtil.getSiteDefaultLocale(groupId)?string?replace("_","-") > 
9 
10<#assign iconSetPath ="/o/genelec-site-theme/images/icons/symbol-defs.svg"> 
11<#if cmsEntity.getField(profile, "/entity/relationships/variants")?has_content> 
12    <#assign variants = cmsEntity.getField(profile, "/entity/relationships/variants") > 
13</#if> 
14<#if cmsEntity.getField(profile, "/entity/fields")?has_content> 
15    <#assign fields = cmsEntity.getField(profile, "/entity/fields") >  
16</#if> 
17<#if cmsEntity.getLocalizedField(profile, "/entity/fields/title")?has_content> 
18    <#assign productTitle = cmsEntity.getLocalizedField(profile, "/entity/fields/title")> 
19</#if> 
20<#if cmsEntity.getField(profile, "/entity/relationships/awards")?has_content> 
21    <#assign awards = cmsEntity.getField(profile, "/entity/relationships/awards") > 
22</#if> 
23 
24 
25<#if cmsEntity.getLocalizedField(profile, "/entity/fields/content")?has_content > 
26    <#assign content = cmsContentFormatterService.getMarkdown(cmsEntity.getLocalizedField(profile, "/entity/fields/content"))> 
27</#if> 
28<#if cmsEntity.getField(profile, "/entity/fields/summary")?has_content > 
29    <#assign summary = cmsContentFormatterService.getMarkdown(cmsEntity.getLocalizedField(profile, "/entity/fields/summary"))> 
30</#if> 
31 
32<#assign portalUrl = themeDisplay.getPortalURL() > 
33<#assign currentURL = portalUrl + themeDisplay.getURLCurrent()  > 
34<@appendHTMLMetas currentURL cmsEntity "product" /> 
35 
36        <div class="row"> 
37            <div class="col-lg-6"> 
38                <div class="product-page-heading"> 
39                    <h1>${productTitle}</h1> 
40                    <#if cmsEntity.getLocalizedField(profile, "/entity/fields/subtitle")?has_content> 
41                        <h1 class="subtitle">${cmsEntity.getLocalizedField(profile, "/entity/fields/subtitle")}</h1> 
42                    </#if> 
43                </div> 
44                <div class="row justify-content-between"> 
45                    <div class="col-lg-12 article-content"> 
46                    <div class="product-page-intro"> 
47                    <#if cmsEntity.getField(profile, "/entity/relationships/discontinuedProductReplacedBy")?has_content> 
48                    <#assign replacedBys = cmsEntity.getField(profile, "/entity/relationships/discontinuedProductReplacedBy")> 
49                        <#list replacedBys.iterator() as replacedBy> 
50                            <#assign replacedByName = localizeField(replacedBy.properties.title, profile.getCMSLangCode())> 
51                            <#if replacedBy?index == 0 && replacedBy?is_last> 
52                                <@liferay.language key="replaced-by"/> ${replacedByName}  
53                            <#elseif replacedBy?index == 0 && replacedBy?is_first> 
54                                <@liferay.language key="replaced-byMulti"/> ${replacedByName}<#sep>, 
55                            <#else> 
56                                ${replacedByName}<#sep>, 
57                            </#if> 
58                        </#list> 
59                        </#if> 
60                        </div> 
61                    </div> 
62                </div> 
63                <div class="row"> 
64                    <div class="col-lg-12">   
65                    <p> 
66                        <#if awards?has_content> 
67                            <#list awards.iterator() as award> 
68                                <#assign awardIndex = award?index> 
69                                <#if !award.assets.isNull("image")> 
70                                    <#assign awardImage = award.assets.image.url > 
71                                    <a href="#/" onClick="openPopup(9)"> 
72                                        <@imageThumbnail src="${awardImage}" id="" cssClasses="award-img" thumbnail="awardImg" alt="${localizeField(award.properties.title, profile.getCMSLangCode())}"/> 
73                                    </a> 
74                                </#if> 
75                            </#list> 
76                            <#if awardIndex gt -1> 
77                                <i class="award-icon default-icon icon-plus-sign" onClick="openPopup(9)" title="<@liferay.language key="more-info"/>"></i> 
78                            </#if> 
79                        </#if> 
80                    <p> 
81                    <hr> 
82                    </div> 
83                </div>  
84                <div class="row"> 
85                    <div class="col-lg-12"> 
86                        <#if summary?has_content> 
87                            <div class="product-page-intro">${summary}</div> 
88                        </#if> 
89                        <#if content?has_content> 
90                            <p>${content}</p>  
91                        </#if> 
92                    </div> 
93                </div>   
94            </div> 
95            <#if variants?has_content> 
96            <div class="col-lg-6"> 
97                <#list variants.iterator() as variant> 
98                <#assign vImages = variantImages(variant,siteDefaultLocale) > 
99                 
100                    <#if vImages?has_content>                 
101                        <#if variant?index = 0> 
102                            <@imageZoom  
103                                id=variant.id  
104                                cssClasses="zoom-gallery-slide active"  
105                                images=vImages  
106                                carouselCss="discontinued-carousel owl-carousel owl-theme image-carousel-container"  
107                                zoomCss="MagicZoom discontinued-page-product-image" 
108                                videoCss="discontinued-section-video" 
109                            /> 
110                        <#else> 
111                            <@imageZoom  
112                                id=variant.id  
113                                variantCss="variant-gallery"  
114                                cssClasses="zoom-gallery-slide active"  
115                                images=vImages  
116                                carouselCss="discontinued-carousel owl-carousel owl-theme image-carousel-container"  
117                                zoomCss="MagicZoom discontinued-page-product-image" 
118                                videoCss="discontinued-section-video" 
119                            /> 
120                        </#if> 
121                    </#if> 
122                </#list> 
123                 <#list variants.iterator() as variant> 
124                    <#if !variant.properties.isNull("colorCode")> 
125                        <#if variant?index == 0> 
126                            <div class="text-bold"><@liferay.language key="color-options"/></div> 
127                        </#if> 
128                        <#assign color = "${variant.properties.colorCode}"> 
129                        <#if !variant.properties.isNull("sku")> 
130                            <#assign sku = variant.properties.sku> 
131                        <#else> 
132                            <#assign sku = ""> 
133                        </#if> 
134                    <#if variant?index = 0> 
135                        <@variantChange id=variant.id checked="checked" color=color sku=sku/> 
136                    <#else> 
137                        <@variantChange id=variant.id color=color sku=sku/> 
138                    </#if> 
139                    </#if> 
140                </#list> 
141            </div> 
142            </#if> 
143        </div> 
144 <@sectionFooter/> 
145 
146<#--  Popup  --> 
147<div id="theme-popup9" class="popup product-page-media"> 
148    <div class="close-button-container"> 
149        <span class="close" onClick="closePopup(9)"></span> 
150    </div> 
151    <div class="panel popup-content" id="popupContentAwards"> 
152        <div class="panel-body"> 
153 
154            <h3 class="section-heading text-bolder"> 
155                ${productTitle}<br> 
156                Awards   
157            </h3> 
158 
159            <#if awards?has_content> 
160                <div class="row"> 
161                    <#list awards.iterator() as award> 
162                        <div class="col-12 col-md-6 col-xl-3 award-card"> 
163                            <#if !award.assets.isNull("image")> 
164                                <#assign awardImage = award.assets.image.url > 
165                                <div class="aspect-ratio aspect-ratio-4-to-3">  
166                                        <@imageThumbnail data="${awardImage}" id="" cssClasses="aspect-ratio-item-fluid aspect-ratio-item-center-middle lazy" thumbnail="awardImgPopup" alt="${localizeField(award.properties.title, profile.getCMSLangCode())}"/> 
167                                </div> 
168                            <#else> 
169                                <div class="aspect-ratio aspect-ratio-4-to-3">  
170                                </div> 
171                            </#if> 
172                                <p> 
173                                    <span class="text-medium text-bolder">${localizeField(award.properties.title, profile.getCMSLangCode())}</span><br> 
174                                </p> 
175                                <p> 
176                                    <span class="small"> 
177                                        <#if !award.properties.isNull("content")> 
178                                        <#assign awardContent = cmsContentFormatterService.getMarkdown(localizeField(award.properties.content, profile.getCMSLangCode()))> 
179                                        ${awardContent} 
180                                        </#if> 
181                                    </span> 
182                                </p> 
183                        </div> 
184                    </#list>    
185                </div> 
186            </#if>  
187        </div> 
188    </div> 
189</div> 
190 
191<style> 
192 
193    .product-page-product-title { 
194        font-weight: 600; 
195        margin-bottom: 0; 
196    } 
197 
198    .product-page-form { 
199        margin-bottom: 15px; 
200    } 
201 
202    .btn-product-page-buy { 
203        width: 40%; 
204        min-width: 250px;  
205    } 
206 
207    .btn-bold { 
208        border-width: 2px; 
209        text-transform: uppercase; 
210        font-weight: 800; 
211    } 
212 
213    .buy-product-dropdown { 
214        margin-left: -4px; 
215        border-left: none; 
216        padding: 0; 
217        width: 11%; 
218        height: 43px 
219    } 
220 
221    .buy-product-dropdown h3 { 
222        display: inline; 
223        vertical-align: middle; 
224    } 
225 
226    .buy-product-dropdown svg { 
227        width: 20px; 
228        line-height: .2; 
229        vertical-align: middle; 
230    } 
231    
232 
233    .product-page-form input { 
234        position: absolute; 
235        opacity: 0; 
236        cursor: pointer; 
237    } 
238 
239    .container-first-section { 
240        padding-bottom: 0px; 
241    } 
242 
243    .container-last-section { 
244        padding-top: 0px; 
245    } 
246 
247 
248i.award-icon { 
249    color: #CCC; 
250} 
251i.award-icon:hover { 
252    cursor: pointer; 
253    color: #6daa41; 
254} 
255.discontinued-carousel .owl-prev { 
256    width: 17px; 
257    height: 100px; 
258    position: absolute; 
259    left: -20px; 
260    top: 47%; 
261    transform: translateY(-50%); 
262    display: block !important; 
263    border:0px solid black; 
264    font-size: 2em !important; 
265} 
266 
267.discontinued-carousel .owl-next { 
268    width: 17px; 
269    height: 100px; 
270    position: absolute; 
271    right: -20px; 
272    top: 47%; 
273    transform: translateY(-50%); 
274    display: block !important; 
275    border:0px solid black; 
276    font-size: 2em !important; 
277} 
278.award-img{ 
279max-width: 180px; 
280} 
281 
282</style> 
283 
284<script> 
285    $('.discontinued-carousel').owlCarousel({ 
286    loop:false, 
287    nav:true, 
288    dots:false, 
289    margin:5, 
290    lazyLoad:true, 
291    navText : ['<i class="icon-angle-left">','<i class="icon-angle-right">'], 
292    responsive:{ 
293        0:{items:3, slideBy:3}, 
294        600:{items:5, slideBy:5}, 
295        1000:{items:7, slideBy:7} 
296     }, 
297}); 
298 
299$(document).mouseup(function (e) { 
300    if(!$('#popupContent'+"Awards").is(e.target) &&  
301        $('#popupContent'+"Awards").has(e.target).length == 0 &&  
302        $(e.target).attr('class') != 'close' && 
303        $('#theme-popup'+"9").css("display") == "block"){ 
304        closePopup(9); 
305    } 
306}) 
307 
308</script> 
309</#if> 
Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> cmsEntity.getField(profile, documentPath)  [in template "20116#20152#211671" at line 14, column 30]

----
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: #assign documents = cmsEntity.getFiel...  [in template "20116#20152#211671" at line 14, column 9]
----
1<#--  </div></div>  --> 
2 
3<#if cmsEntity?has_content> 
4<#include "${templatesPath}/227222" />  
5<#assign siteDefaultLocale = portalUtil.getSiteDefaultLocale(groupId)?string?replace("_","-") > 
6<#assign reviewsPath = "/entity/relationships/reviews/"+profile.getCMSLangCode()+"/references" > 
7 
8<#if cmsEntity.getField(profile, "/entity/relationships/documents")?has_content || cmsEntity.getField(profile, reviewsPath)?has_content || cmsEntity.getField(profile, "/entity/relationships/faqs")?has_content> 
9<#assign pageTemplate = "${getPageTemplateNameByUuid('${themeDisplay.layout.layoutPrototypeUuid}')}"> 
10 
11<#if cmsEntity.getField(profile, "/entity/relationships/documents")?has_content> 
12    <#assign documentPath = "/entity/relationships/documents/"+profile.getCMSLangCode()+"/references" > 
13    <#if documentPath?has_content> 
14        <#assign documents = cmsEntity.getField(profile, documentPath) > 
15    </#if> 
16</#if> 
17<#if cmsEntity.getField(profile, reviewsPath)?has_content> 
18    <#assign reviews = cmsEntity.getField(profile, reviewsPath) > 
19</#if> 
20 
21<#if cmsEntity.getField(profile, "/entity/relationships/faqs")?has_content> 
22        <#assign faqs = cmsEntity.getField(profile, "/entity/relationships/faqs") > 
23        <#if groupField(cmsEntity,"/entity/relationships/faqs", groupId)?has_content> 
24            <#assign faqs = groupField(cmsEntity,"/entity/relationships/faqs", groupId).references > 
25        </#if> 
26</#if> 
27 
28<@sectionHeader title="${title}" menuTitle="${menuTitle}" cssClasses="bg-blue-darker product-page-downloads" id="section-downloads"/> 
29 
30 
31<#assign documentsDocumentTypes = ["operating manual", "guide", "other manual", "brochure", "catalogue", "datasheet", "software release note"]> 
32<#assign downloadsDocumentTypes = ["line drawing","simulation file", "test signal", "software realese note", "certificate", "technical paper", "article or publication"]> 
33<#assign reviewsDocumentTypes = ["review"]> 
34 
35<#assign reviewColContent = "" /> 
36<#assign downloadColContent = "" /> 
37<#assign documentColContent = "" /> 
38 
39<#if documents?has_content> 
40    <#list documents.iterator() as document> 
41        <#assign documentType = ""> 
42        <#if !document.properties.isNull("documentTypeKey")> 
43            <#assign documentType = localizeField(document.properties.documentTypeKey)?lower_case> 
44        <#elseif !document.properties.isNull("documentType")> 
45            <#assign documentType = localizeField(document.properties.documentType)?lower_case> 
46        </#if> 
47        <#if !document.assets.isNull("file") && !document.assets.file.isNull("mediaType")> 
48            <#assign mediaType = document.assets.file.mediaType?replace(".","/")> 
49        </#if> 
50 
51        <#if downloadsDocumentTypes?seq_contains(documentType)> 
52            <#assign downloadColContent> 
53                ${downloadColContent} 
54                <#if !document.assets.isNull("file")> 
55                    <a href="${document.assets['file'].url}" target="_blank" rel="noopener noreferrer" class="type-${documentType?replace(" ", "-")}"> 
56                        <#if mediaType?keep_after_last("/") = "pdf"> 
57                            <span class="text-bolder">${localizeField(document.properties.title, profile.getCMSLangCode())}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="pdf" icon="pdf-green"/></span></span> 
58                        <#else> 
59                            <span class="text-bolder">${localizeField(document.properties.title, profile.getCMSLangCode())}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="" icon="download-green"/></span></span> 
60                        </#if> 
61                    </a> 
62                </#if> 
63            </#assign> 
64        <#elseif documentsDocumentTypes?seq_contains(documentType)> 
65            <#assign documentColContent> 
66                ${documentColContent} 
67                <#if !document.assets.isNull("file")> 
68                    <a href="${document.assets['file'].url}" target="_blank" rel="noopener noreferrer" class="type-${documentType?replace(" ", "-")}"> 
69                        <span class="text-bolder">${localizeField(document.properties.title, profile.getCMSLangCode())}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="pdf" icon="pdf-green"/></span></span> 
70                    </a> 
71                </#if> 
72            </#assign> 
73        </#if> 
74    </#list> 
75</#if> 
76 
77<#if reviews?has_content> 
78    <#list reviews.iterator() as review> 
79        <#assign id = review.id> 
80        <#assign reviewColContent> 
81            ${reviewColContent} 
82            <#if !review.properties.isNull("url")> 
83                <a href="${review.properties.url}" target="_blank" rel="noopener noreferrer" class="type-review"> 
84                    <span class="text-bolder">${review.properties.heading}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="" icon="external-green"/></span></span> 
85                </a>  
86            <#else> 
87                <a href="#/" onClick="openDocumentReviewPopup('${id}')"  class="type-review"> 
88                    <span class="text-bolder"> 
89                        ${review.properties.heading} 
90                    </span> 
91                </a> 
92            </#if> 
93        </#assign> 
94    </#list> 
95</#if> 
96 
97<div class="row bg-white table-row-padding"> 
98 
99    <div class="col-md-4"> 
100        <#if documentColContent?has_content> 
101            <h3><@liferay.language key="documents"/></h3> 
102                ${documentColContent} 
103        </#if> 
104         
105    </div> 
106     
107    <div class="col-md-4"> 
108        <#if downloadColContent?has_content> 
109            <h3><@liferay.language key="downloads"/></h3> 
110            ${downloadColContent} 
111        </#if> 
112    </div> 
113 
114 
115    <div class="col-md-4"> 
116        <#if reviewColContent?has_content> 
117            <h3><@liferay.language key="reviews"/></h3> 
118            ${reviewColContent} 
119        </#if> 
120    </div> 
121     
122    <#if faqs?has_content && !faqs.keys??> 
123        <#assign showFAQCount = 3 > 
124     
125        <div id="faqs" class="row bg-white table-row-padding"> 
126            <div class="col-md-7"> 
127                <h3><@liferay.language key="faq"/></h3> 
128                <#list faqs.iterator() as faq> 
129                    <#assign id = faq.id> 
130                 
131                    <div class="faq_element <#if faq?index gte showFAQCount>hidden</#if>"  > 
132                        <div class="faq_element_question col-lg-12" onclick="faqShowAnswer('${id}');"> 
133 
134                            <i class="icon-plus-sign" id="faq-plus-${id}"></i> 
135                            <i class="icon-minus-sign" id="faq-minus-${id}" style="display: none;"></i> 
136 
137                            <a href="#faq_element_answer" class="ml-4" > 
138                                <#assign question = faq.properties.question> 
139                                <h4 class="text-bolder">${question}</h4> 
140                            </a> 
141                        </div>  
142                        <div class="faq_element_answer ml-4" id="faq-element-answer-${id}"> 
143                            <#assign answer = cmsContentFormatterService.getMarkdown(faq.properties.answer)> 
144                            ${answer?replace('h1>|h2>', 'h5>', 'r')?replace('h3>', 'h6>')} 
145                        </div> 
146                    </div> 
147                </#list> 
148 
149                <#if faqs.length() gt showFAQCount> 
150                    <a href="#" onclick="$('#faqs .hidden').removeClass('hidden'); $(this).hide();return false;"><@liferay.language key="show-more"/></a> 
151                </#if> 
152            </div> 
153        </div> 
154    </#if> 
155</div> 
156<@sectionFooter/> 
157 
158 
159<#-- Popup --> 
160<#if reviews?has_content> 
161    <div id="theme-popupDocumentReview" class="popup"> 
162        <#list reviews.iterator() as review> 
163            <#assign id = review.id> 
164         
165                <#if review?index == 0> 
166                    <div class="close-button-container"> 
167                        <button class="close" onClick="closeDocumentReviewPopup('${id}')" id="closeButtonDocumentReview-${id}"></button> 
168                    </div> 
169 
170                    <div class="panel popup-content" id="popupContentDocumentReview"> 
171                        <div class="panel-body"> 
172                </#if> 
173 
174                            <div class="documentReviewContent" id="documentReviewContent-${id}"> 
175                                <div class="h1 section-heading text-bolder">${review.properties.heading}</div> 
176                                <#if !review.properties.isNull("summary")> 
177                                    <#assign summary = cmsContentFormatterService.getMarkdown(review.properties.summary)> 
178                                    ${summary} 
179                                </#if> 
180                             
181                                <#if !review.properties.isNull("content")>  
182                                    <#assign content = cmsContentFormatterService.getMarkdown(localizeField(review.properties.content, profile.getCMSLangCode()))> 
183                                    ${content} 
184                                </#if> 
185                            </div> 
186 
187                <#if review?index == (review?size - 1)> 
188                        </div> 
189                    </div> 
190                </#if> 
191                 
192        </#list> 
193    </div> 
194</#if> 
195 
196</#if> 
197 
198<script> 
199function faqShowAnswer(id){ 
200 
201    var wasHidden = $("#faq-element-answer-"+id).is(":hidden"); 
202 
203    // Close all  
204    $("#faqs .faq_element_answer").hide(); 
205    $("#faqs .icon-plus-sign").show(); 
206    $("#faqs .icon-minus-sign").hide(); 
207 
208    if (wasHidden) { 
209        var answer = $("#faq-element-answer-"+id); 
210        $("#faq-plus-"+id).hide(); 
211        $("#faq-minus-"+id).show(); 
212        answer.show(); 
213        console.log(answer.parent().find(".faq_element_question")); 
214        if(!inViewport(answer.parent().find(".faq_element_question").first())) { 
215             
216            var scrollFix = 10; // some margin 
217            var questionPos = answer.parent().find(".faq_element_question").first().offset().top; 
218             
219            // ControlBar 
220            if ($("#ControlMenu").is(":visible")) { 
221                scrollFix += $("#ControlMenu").height(); 
222            } 
223 
224            // subnavi  
225            if ($("#submenu-links").is(":visible")) { 
226                scrollFix += $("#submenu-links").height(); 
227            }  
228            console.log("Scrollfix " + scrollFix) 
229             
230            var scrollTo = questionPos - scrollFix; 
231             
232            $('html, body').animate({ 
233                scrollTop: (scrollTo-1) 
234            },500, function(){ 
235                setTimeout(function() { 
236                    $('html, body').scrollTop(scrollTo); 
237                }, 200); 
238            }); 
239        } 
240 
241    } 
242}; 
243 
244function inViewport(el) { 
245    var elementTop = el.offset().top; 
246    var elementBottom = elementTop + el.outerHeight(); 
247 
248    var viewportTop = $(window).scrollTop(); 
249    var viewportBottom = viewportTop + $(window).height(); 
250 
251    return elementBottom > viewportTop && elementTop < viewportBottom; 
252} 
253 
254function openDocumentReviewPopup(reviewId) { 
255    openPopup("DocumentReview"); 
256    $('#documentReviewContent-'+reviewId).show(); 
257 
258    //update: 
259    $('#theme-popupDocumentReview .close').attr('id','closeButtonDocumentReview-'+reviewId); 
260    $('#theme-popupDocumentReview .close').attr('onclick', 'closeDocumentReviewPopup("' + reviewId + '")'); 
261    $('#closeButtonDocumentReview-'+reviewId).show(); 
262} 
263 
264function closeDocumentReviewPopup(reviewId) { 
265    closePopup("DocumentReview"); 
266    $('#documentReviewContent-'+reviewId).hide(); 
267 
268    //update: 
269    $('#closeButtonDocumentReview-'+reviewId).hide(); 
270} 
271function closeDownloadsPopup(e) { 
272    if(!$('#popupContent'+"DocumentReview").is(e.target) &&  
273        $('#popupContent'+"DocumentReview").has(e.target).length == 0 &&  
274        $(e.target).attr('class') != 'close' && 
275        $('#theme-popup'+"DocumentReview").css("display") == "block"){ 
276        closePopup("DocumentReview"); 
277        $('div[id^=documentReviewContent-]').hide(); 
278         
279    } 
280}; 
281 
282$(document).on({ 
283    "mouseup": function (e) { closeDownloadsPopup(e); }, 
284    "touchstart": function (e) { closeDownloadsPopup(e); } 
285}); 
286 
287 
288</script> 
289 
290</#if>