பெருக்கி மையம்

Template ப்ராஸஸிங் செய்யும்போது பிழை ஏற்பட்டது.
The following has evaluated to null or missing:
==> entry  [in template "48914885574227#20121#283541" at line 30, column 95]

----
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: ${entry.getAssetRendererURLDownload()...  [in template "48914885574227#20121#283541" at line 30, column 93]
----
1<!-- Search Results -->  
2<#assign DownloadSelectedForms = (languageUtil.get(locale, "sbil-corp-download-selected-forms"))?js_string /> 
3<#assign SelectAll = (languageUtil.get(locale, "sbil-corp-select-all"))?js_string /> 
4 
5<div class="Download-Centre-Page-MainContent-DocumentList-CTA-Pair"> 
6    <div class="Download-Centre-Page-MainContent-DocumentList"> 
7        <div class="Download-Centre-Page-MainContent-DocumentList-Container"> 
8            <#if entries?has_content>		 
9                <#list entries as entry>		 
10                    <div class="Download-Centre-Page-MainContent-Document-Seperator-Pair">			 
11                        <div class="Download-Centre-Page-MainContent-Document"> 
12                            <div class="Download-Centre-Page-MainContent-Document-input-label-pair"> 
13                                <input aria-label="Select file" class="Download-Centre-Page-MainContent-Document-input-download-checkbox" type="checkbox" name="selectedFiles" value="${entry.getClassPK()}" data-file-url="${entry.getAssetRendererURLDownload()!''}"/> 
14                                <a aria-label="View File" class="Download-Centre-Page-MainContent-Document-label">${entry.getHighlightedTitle()}</a> 
15                            </div> 
16													 
17                            <a role="button" aria-label="Download file" class="" href="${entry.getAssetRendererURLDownload()!''}"> 
18                                <svg class="Download-Centre-Page-Download-Icon" xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none"> 
19                                    <path d="M21.5 13.5V19.5C21.5 19.6989 21.421 19.8897 21.2803 20.0303C21.1397 20.171 20.9489 20.25 20.75 20.25H4.25C4.05109 20.25 3.86032 20.171 3.71967 20.0303C3.57902 19.8897 3.5 19.6989 3.5 19.5V13.5C3.5 13.3011 3.57902 13.1103 3.71967 12.9697C3.86032 12.829 4.05109 12.75 4.25 12.75C4.44891 12.75 4.63968 12.829 4.78033 12.9697C4.92098 13.1103 5 13.3011 5 13.5V18.75H20V13.5C20 13.3011 20.079 13.1103 20.2197 12.9697C20.3603 12.829 20.5511 12.75 20.75 12.75C20.9489 12.75 21.1397 12.829 21.2803 12.9697C21.421 13.1103 21.5 13.3011 21.5 13.5ZM11.9694 14.0306C12.039 14.1004 12.1217 14.1557 12.2128 14.1934C12.3038 14.2312 12.4014 14.2506 12.5 14.2506C12.5986 14.2506 12.6962 14.2312 12.7872 14.1934C12.8783 14.1557 12.961 14.1004 13.0306 14.0306L16.7806 10.2806C16.8503 10.2109 16.9056 10.1282 16.9433 10.0372C16.981 9.94613 17.0004 9.84855 17.0004 9.75C17.0004 9.65145 16.981 9.55387 16.9433 9.46283C16.9056 9.37178 16.8503 9.28906 16.7806 9.21937C16.7109 9.14969 16.6282 9.09442 16.5372 9.0567C16.4461 9.01899 16.3485 8.99958 16.25 8.99958C16.1515 8.99958 16.0539 9.01899 15.9628 9.0567C15.8718 9.09442 15.7891 9.14969 15.7194 9.21937L13.25 11.6897V3C13.25 2.80109 13.171 2.61032 13.0303 2.46967C12.8897 2.32902 12.6989 2.25 12.5 2.25C12.3011 2.25 12.1103 2.32902 11.9697 2.46967C11.829 2.61032 11.75 2.80109 11.75 3V11.6897L9.28063 9.21937C9.13989 9.07864 8.94902 8.99958 8.75 8.99958C8.55098 8.99958 8.36011 9.07864 8.21937 9.21937C8.07864 9.36011 7.99958 9.55098 7.99958 9.75C7.99958 9.94902 8.07864 10.1399 8.21937 10.2806L11.9694 14.0306Z" fill="#2A2076"/> 
20                                </svg> 
21                            </a> 
22                        </div> 
23                        <div class="Horizontal-Seperator"></div> 
24                    </div> 
25                </#list> 
26            </#if> 
27        </div> 
28    </div> 
29    <div class="Download-Centre-Page-MainContent-CTA-Section"> 
30        <button class="Download-Centre-Page-MainContent-CTA-Download-Selected-Button" href="${entry.getAssetRendererURLDownload()!''}" 
31            name="Download Selected" onclick="downloadAllFiles()" 
32
33            <svg class="Download-Centre-Page-Download-Icon" xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none"> 
34                <path 
35                    d="M21.5 13.5V19.5C21.5 19.6989 21.421 19.8897 21.2803 20.0303C21.1397 20.171 20.9489 20.25 20.75 20.25H4.25C4.05109 20.25 3.86032 20.171 3.71967 20.0303C3.57902 19.8897 3.5 19.6989 3.5 19.5V13.5C3.5 13.3011 3.57902 13.1103 3.71967 12.9697C3.86032 12.829 4.05109 12.75 4.25 12.75C4.44891 12.75 4.63968 12.829 4.78033 12.9697C4.92098 13.1103 5 13.3011 5 13.5V18.75H20V13.5C20 13.3011 20.079 13.1103 20.2197 12.9697C20.3603 12.829 20.5511 12.75 20.75 12.75C20.9489 12.75 21.1397 12.829 21.2803 12.9697C21.421 13.1103 21.5 13.3011 21.5 13.5ZM11.9694 14.0306C12.039 14.1004 12.1217 14.1557 12.2128 14.1934C12.3038 14.2312 12.4014 14.2506 12.5 14.2506C12.5986 14.2506 12.6962 14.2312 12.7872 14.1934C12.8783 14.1557 12.961 14.1004 13.0306 14.0306L16.7806 10.2806C16.8503 10.2109 16.9056 10.1282 16.9433 10.0372C16.981 9.94613 17.0004 9.84855 17.0004 9.75C17.0004 9.65145 16.981 9.55387 16.9433 9.46283C16.9056 9.37178 16.8503 9.28906 16.7806 9.21937C16.7109 9.14969 16.6282 9.09442 16.5372 9.0567C16.4461 9.01899 16.3485 8.99958 16.25 8.99958C16.1515 8.99958 16.0539 9.01899 15.9628 9.0567C15.8718 9.09442 15.7891 9.14969 15.7194 9.21937L13.25 11.6897V3C13.25 2.80109 13.171 2.61032 13.0303 2.46967C12.8897 2.32902 12.6989 2.25 12.5 2.25C12.3011 2.25 12.1103 2.32902 11.9697 2.46967C11.829 2.61032 11.75 2.80109 11.75 3V11.6897L9.28063 9.21937C9.13989 9.07864 8.94902 8.99958 8.75 8.99958C8.55098 8.99958 8.36011 9.07864 8.21937 9.21937C8.07864 9.36011 7.99958 9.55098 7.99958 9.75C7.99958 9.94902 8.07864 10.1399 8.21937 10.2806L11.9694 14.0306Z" 
36                    fill="#2A2076" /> 
37            </svg> 
38            <span class="Download-Centre-Page-MainContent-CTA-Download-Selected-Button-Text">${DownloadSelectedForms}</span> 
39        </button> 
40        <div class="Download-Centre-Page-MainContent-CTA-Select-All"> 
41            <input aria-label="Select All Files" onclick="toggle(this);" type="checkbox" href="${entry.getAssetRendererURLDownload()!''}" /> 
42            <span class="Download-Centre-Page-MainContent-CTA-Select-All-Text">${SelectAll}</span> 
43        </div> 
44    </div> 
45</div> 
46 
47 
48 
49<script> 
50    function toggle(source) { 
51        var checkboxes = document.querySelectorAll('input[type="checkbox"]'); 
52        for (var i = 0; i < checkboxes.length; i++) { 
53            if (checkboxes[i] != source) 
54                checkboxes[i].checked = source.checked; 
55
56
57 
58    // Download All selected files 
59    async function downloadAllFiles() { 
60        const checkboxes = document.querySelectorAll('.Download-Centre-Page-MainContent-Document-input-download-checkbox'); 
61        const selectedFiles = []; 
62        checkboxes.forEach(checkbox => { 
63            if (checkbox.checked) { 
64                const fileUrl = checkbox.getAttribute('data-file-url'); 
65                selectedFiles.push(fileUrl); 
66
67        }); 
68  
69        if (selectedFiles.length === 0) { 
70            alert("Please select at least one file to download."); 
71            return; 
72
73  
74        const zip = new JSZip(); 
75        const promises = selectedFiles.map(async (url) => { 
76            try { 
77                const response = await fetch(url); 
78                const blob = await response.blob(); 
79                const urlSplit = url.split('?')[0];					 
80							  const urlSegments = urlSplit.split('/'); 
81							  //alert("urlSegments"+urlSegments); 
82                const filenameWithExtension = urlSegments[urlSegments.length - 2]; 
83							// alert("filenameWithExtension"+filenameWithExtension); 
84                zip.file(filenameWithExtension, blob, { binary: true }); 
85            } catch (error) { 
86                console.error('Failed to download file:', url, error); 
87
88        }); 
89  
90        await Promise.all(promises); 
91        zip.generateAsync({ type: "blob", mimeType: "application/zip" }) 
92            .then(function (content) { 
93                saveAs(content, "downloadcenter.zip"); 
94            }); 
95
96</script> 
entryClassName