웹 내용 전시
웹 내용 전시
템플렛을 가공하고 있는 동안 과실은 일어났다.
Expression qstringmap["bankercode"] is undefined on line 8, column 17 in 10154#10192#153411750.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign oadURL = propsUtil.get('elan.oad.url') >
3<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
4<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
5<#assign url404 = '/error/404.html'>
6<#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
7
8<#assign bCode= qstringmap["bankercode"]?first>
9<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetail','0&'+bCode)>
10<#list bData as b>
11 <#assign lc = b.locationcode >
12 <#assign rLC = b.reallocationcode >
13 <#assign mappedLC = b.mappedLocationCode >
14</#list>
15<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
16 <#assign ameriprise = true>
17<#else>
18 <#assign ameriprise = false>
19</#if>
20<#if oadURL?contains("uat-")>
21 <#assign oadURL_TC = 'https://uat-online1.elancard.com/oad/terms.controller' >
22<#else>
23 <#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
24</#if>
25<#if mappedLC?has_content && !ameriprise>
26 <#assign lc = mappedLC >
27</#if>
28
29<#assign fiData= utilServ.makeCall('crcDDCBankerAssistedApp','0&'+bCode)>
30<#if fiData?first?has_content>
31 <#assign fi = fiData?first>
32 <#if ((fi.projectId == "12") || (fi.projectId == "13") || (fi.projectId == "14"))>
33 <#assign subbu_special = fi.offerId>
34 </#if>
35</#if>
36
37
38<#if lc?has_content>
39 <#assign prefix = "00000" >
40 <#assign lcWithPrefix = prefix + lc>
41 <#assign withPrefixLength = lcWithPrefix?length >
42 <#assign startHere = withPrefixLength - 5>
43 <#assign lc = lcWithPrefix?substring(startHere)>
44 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
45 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
46
47 <#assign clientProfile = clientProfileList?first>
48 <#assign partnerName = clientProfile.getMarketingNameLong()>
49 <#assign pbu = clientProfile.getPbu()>
50 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
51 <#assign clientDataService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcPbuLocalService") >
52 <#assign clientProfileDataList = clientDataService.getByPbuAndSubBu(pbu,subbu)>
53 <#assign partnerUrl = clientProfileDataList.getPartnerMainUrl()>
54 <#if partnerUrl?has_content && !partnerUrl?matches(r"(?i)^https?\:\/\/.*") && !partnerUrl?matches(r"(?i)^https?\://.*")>
55 <#assign partnerUrl = 'https://' + partnerUrl>
56 </#if>
57
58 <#assign clientdata = utilServ.makeCall('crcDDCTier1Customizations','0&'+pbu+'&'+subbu+'&11')>
59 <#assign logoFileName = clientProfile.getLogoBFormat1()?replace(".", "-")?replace("-([^-]*)$", ".$1", "r")?lower_case>
60 <#assign cdnLogoUrl = propsUtil.get('rackspace.cdn.web.url')>
61 <script>
62 console.log('logo url', '${cdnLogoUrl}${logoFileName}');
63 </script>
64 <#if pbu == "0864054">
65 <#assign override = "berkshire">
66 <#else>
67 <#assign override = " ">
68 </#if>
69 <#-- this one should be delete for prod -->
70
71
72 <#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')>
73 <#if (subbu_special?has_content)>
74 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu_special)>
75 <script>
76 console.log('new subbu', '${subbu_special!''}');
77 </script>
78 <#else>
79 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu)>
80 </#if>
81 <#assign temp = []>
82 <#assign consumerCards = []>
83 <#assign businessCards = []>
84 <#assign offerTypeList = []>
85 <#assign index = 0>
86 <#assign ameriprise_cards= []>
87 <#assign consumerOfferTypes =['104', '101', '103', '108', '109', '115']>
88 <#assign businessOfferTypes =['144', '128', '143', '121', '123']>
89 <#list fiCardsData as fib>
90 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
91 <#assign offerTypeList = offerTypeList + [fib.offerType]>
92 <#assign temp = temp + fiCardsData[index..index]>
93 <#if ameriprise>
94 <#if (fib.offerType == "101" || fib.offerType == "103")>
95 <#assign ameriprise_cards= ameriprise_cards + fiCardsData[index..index]>
96 </#if>
97 <#else>
98 <#if consumerOfferTypes?seq_contains(fib.offerType)>
99 <#assign consumerCards = consumerCards + fiCardsData[index..index]>
100 <#elseif (businessOfferTypes?seq_contains(fib.offerType))>
101 <#assign businessCards = businessCards + fiCardsData[index..index]>
102 </#if>
103 </#if>
104 </#if>
105 <#assign index = index + 1>
106
107 </#list>
108 <#assign fiCardsData = temp>
109 <#if ameriprise>
110 <#assign consumerCards = ameriprise_cards?sort_by("offerType")>
111 </#if>
112
113 <#if (fiCardsData?size > 0)>
114 <#if (subbu_special?has_content)>
115 <#assign lc_used = fiCardsData?first.WebLocationCode>
116 <#else>
117 <#if ameriprise>
118 <#assign lc_used = mappedLC>
119 <#else>
120 <#assign lc_used = lc>
121 </#if>
122 </#if>
123 <#assign offerId = "">
124 <#assign sourceCode = "">
125 <#assign cardArtImage = "">
126 <#assign productUrl = "">
127 <#assign product = "">
128 <#assign preparerType = "customer">
129 <#assign apr = "">
130 <#assign cardIndex = 0>
131 <#if (class.getData() == "landing-consumer" && consumerCards?size > 0)>
132 <#if (offerTypeList?seq_contains("108")) || (offerTypeList?seq_contains("109")) >
133 <#list consumerCards as card>
134 <#if (card.offerType=="108") || (card.offerType=="109") >
135 <#assign offerId = card.offerId>
136 <#assign sourceCode = card.sourceCode>
137 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
138 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
139 <#assign productUrl="consumer-platinum2103">
140 <#assign product="Platinum">
141 <#assign cardIndex = 2>
142 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
143 <#if (scrapedData?size > 0)>
144 <#list scrapedData as sItem>
145 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
146 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
147 <#break>
148 </#if>
149 </#list>
150 <script>
151 $(document).ready(function () {
152 var aprText = "${apr}";
153 if (aprText) {
154 try {
155 var matches= aprText.match(/\d+(\.\d+)?%?/g);
156 var billing_cycle = matches[1];
157 var apr_min = apr_min = matches[2];
158 var apr_max = apr_max = matches[3];
159 if (billing_cycle) {
160 $(".scraped-billing-cycle").html(billing_cycle);
161 }
162 if (apr_min) {
163 $(".scraped-apr-min").html(apr_min);
164 }
165 if (apr_max) {
166 $('.scraped-apr-max').html(apr_max);
167 }
168
169 } catch (e) {
170 console.log(e);
171 }
172 }
173 });
174 </script>
175 </#if>
176 </#if>
177 </#list>
178 <#else>
179 <#assign displayedCard = consumerCards[0]>
180 <script>
181 console.log('dispalyed card:','${displayedCard.offerType}');
182 </script>
183 <#assign offerId = displayedCard.offerId>
184 <#assign sourceCode = displayedCard.sourceCode>
185 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
186 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
187 <#if ameriprise>
188 <#if (displayedCard.offerType == "101")>
189 <#assign productUrl="ameriprise-premier-visa-signature">
190 <#assign product="Premier Visa Signature">
191 <#assign cardIndex = 0>
192 <#elseif (displayedCard.offerType == "103")>
193 <#assign productUrl = "ameriprise-visa-signature">
194 <#assign product="Visa Signature">
195 <#assign cardIndex = 1>
196 </#if>
197 <#else>
198 <#if (displayedCard.offerType == "101" || displayedCard.offerType == "103")>
199 <#assign productUrl="real-rewards">
200 <#assign product="Real Rewards">
201 <#assign cardIndex = 1>
202 <#elseif (displayedCard.offerType == "108" || displayedCard.offerType == "109")>
203 <#assign productUrl = "consumer-platinum2103">
204 <#assign product="Platinum">
205 <#assign cardIndex = 2>
206 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
207 <#if (scrapedData?size > 0)>
208 <#list scrapedData as sItem>
209 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
210 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
211 <#break>
212 </#if>
213 </#list>
214 <script>
215 $(document).ready(function () {
216 var aprText = "${apr}";
217 if (aprText) {
218 try {
219 var matches= aprText.match(/\d+(\.\d+)?%?/g);
220 var billing_cycle = matches[1];
221 var apr_min = apr_min = matches[2];
222 var apr_max = apr_max = matches[3];
223 if (billing_cycle) {
224 $(".scraped-billing-cycle").html(billing_cycle);
225 }
226 if (apr_min) {
227 $(".scraped-apr-min").html(apr_min);
228 }
229 if (apr_max) {
230 $('.scraped-apr-max').html(apr_max);
231 }
232
233 } catch (e) {
234 console.log(e);
235 }
236 }
237 });
238 </script>
239 </#if>
240 <#elseif (displayedCard.offerType == "115")>
241 <#assign productUrl = "secured">
242 <#assign product="Secured">
243 <#assign cardIndex = 3>
244 </#if>
245 </#if>
246 </#if>
247 </#if>
248 <#if (class.getData() == "landing-business" && businessCards?size > 0)>
249
250
251 <#assign displayedCard = businessCards[0]>
252 <#assign offerId = displayedCard.offerId>
253 <#assign sourceCode = displayedCard.sourceCode>
254 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
255 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
256 <#if displayedCard.offerType=="144">
257 <#assign productUrl="smart-business-rewards">
258 <#assign product="Smart Business Rewards">
259 <#assign cardIndex = 0>
260 <#elseif (displayedCard.offerType=="143")>
261 <#assign productUrl="business-real-rewards">
262 <#assign product="Business Real Rewards">
263 <#assign cardIndex = 0>
264 <#elseif (displayedCard.offerType=="128")>
265 <#assign productUrl = "business-cashback">
266 <#assign product="Business Cash">
267 <#assign cardIndex = 1>
268 <#elseif (displayedCard.offerType=="121")>
269 <#assign productUrl = "business-platinum2103">
270 <#assign product="Business">
271 <#assign cardIndex = 3>
272 </#if>
273 </#if>
274 <#if product != "">
275 <#if ameriprise>
276 <#assign card_art_alt = partnerName + " " + product + " Card">
277 <#assign rollover_text = partnerName + " " + product + " Card">
278 <#else>
279 <#assign card_art_alt = partnerName>
280 <#assign rollover_text = partnerName + " " + product + " Credit Card">
281 <#assign card_text = product + " Card">
282 </#if>
283 </#if>
284 <div class="jn-hero-container product-${productUrl} tier1-hero-${class.getData()}" title="${rollover_text!''}">
285 <div class="hero-main">
286 <div class="hero-main-logo">
287 <#if partnerUrl?has_content>
288 <a href="${partnerUrl!''}" title="${partnerName!''}"><img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''}"></a>
289 <#else>
290 <a title="${partnerName!''}"><img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''}"></a>
291 </#if>
292 </div>
293 <div class="hero-main-container">
294 <div class="hero-main-offer bg-color-white">
295 <div class="offer-header">
296 <div class="offer-text-top">
297 <h3 class="offer-title">${productTitle.getSiblings()[cardIndex].primaryHeadlineText.getData()}</h3>
298 <h1 class="offer-subtitle">${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}</h1>
299 </div>
300 <div class="offer-text-bottom hide-mobile">
301 <div class="offer-detail-text text-color-default">
302 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureTop.getData()}
303 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureBottom.getData()}
304 <a href="${oadURL_TC}?locationCode=${lc}&offerId=${offerId}&preparerType=customer#termsAndCond-details" target="_blank" class="t_c_link">See terms & conditions.</a>
305 </div>
306
307 <#if ameriprise>
308 <a data-button-name="cta-button-top" title="Learn More about ${partnerName!''} credit cards" class="jn-button apply-button text-bold button-bg-color-custom text-color-white" href="javascript:void(0);" onclick="goToByScroll('product-display')">${productTitle.getSiblings()[cardIndex].ctaText.getData()}</a>
309 <#else>
310 <form action="${oadURL}?locationCode=${lc_used}&offerId=${offerId}&preparerType=${preparerType}&sourceCode=${sourceCode}" method="post" class="BAAForm">
311 <label for="appDataBAA-${sourceCode}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
312 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${sourceCode}" class="appDataBAA" style="display:none;" title="application data"></textarea>
313 <input type="submit" data-button-name="cta-button-top" data-product-name="${productUrl!''}" title="Apply Now for ${partnerName!''} ${product!''} Credit Card"
314 class="jn-button apply-button apply-now-button text-bold button-bg-color-custom text-color-white" value="${productTitle.getSiblings()[cardIndex].ctaText.getData()}" disabled />
315 </form>
316 </#if>
317 </div>
318 </div>
319
320 <div class="offer-detail">
321
322 <div class="offer-detail-cardArt cardArtImg">
323 <img src="${cardArtImage!''}" alt="${card_art_alt!''}" srcset="" title="${card_art_alt!''}" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
324 <p>${card_text!''}</p>
325 </div>
326 <div class="offer-detail-text text-color-default hide-desktop">
327 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureTop.getData()}
328 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureBottom.getData()}
329 <a href="${oadURL_TC}?locationCode=${lc}&offerId=${offerId}&preparerType=customer#termsAndCond-details" target="_blank" class="t_c_link">See terms & conditions.</a>
330 </div>
331
332 <#if ameriprise>
333 <a data-button-name="cta-button-top" title="Learn More about ${partnerName!''} credit cards" class="jn-button apply-button text-bold button-bg-color-custom text-color-white hide-desktop" href="javascript:void(0);" onclick="goToByScroll('product-display')">${productTitle.getSiblings()[cardIndex].ctaText.getData()}</a>
334 <#else>
335 <form action="${oadURL}?locationCode=${lc_used}&offerId=${offerId}&preparerType=${preparerType}&sourceCode=${sourceCode}" method="post" class="BAAForm hide-desktop">
336 <label for="appDataBAA-${sourceCode}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
337 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${sourceCode}" class="appDataBAA" style="display:none;" title="application data"></textarea>
338 <input type="submit" data-button-name="cta-button-top" data-product-name="${productUrl!''}" title="Apply Now for ${partnerName!''} ${product!''} Credit Card"
339 class="jn-button apply-button apply-now-button text-bold button-bg-color-custom text-color-white" value="${productTitle.getSiblings()[cardIndex].ctaText.getData()}" disabled />
340 </form>
341 </#if>
342 </div>
343 </div>
344 </div>
345 </div>
346 </div>
347
348 </#if>
349</#if>
웹 내용 전시
템플렛을 가공하고 있는 동안 과실은 일어났다.
Expression qstringmap["bankercode"] is undefined on line 8, column 17 in 10154#10192#153411750.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign oadURL = propsUtil.get('elan.oad.url') >
3<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
4<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
5<#assign url404 = '/error/404.html'>
6<#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
7
8<#assign bCode= qstringmap["bankercode"]?first>
9<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetail','0&'+bCode)>
10<#list bData as b>
11 <#assign lc = b.locationcode >
12 <#assign rLC = b.reallocationcode >
13 <#assign mappedLC = b.mappedLocationCode >
14</#list>
15<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
16 <#assign ameriprise = true>
17<#else>
18 <#assign ameriprise = false>
19</#if>
20<#if oadURL?contains("uat-")>
21 <#assign oadURL_TC = 'https://uat-online1.elancard.com/oad/terms.controller' >
22<#else>
23 <#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
24</#if>
25<#if mappedLC?has_content && !ameriprise>
26 <#assign lc = mappedLC >
27</#if>
28
29<#assign fiData= utilServ.makeCall('crcDDCBankerAssistedApp','0&'+bCode)>
30<#if fiData?first?has_content>
31 <#assign fi = fiData?first>
32 <#if ((fi.projectId == "12") || (fi.projectId == "13") || (fi.projectId == "14"))>
33 <#assign subbu_special = fi.offerId>
34 </#if>
35</#if>
36
37
38<#if lc?has_content>
39 <#assign prefix = "00000" >
40 <#assign lcWithPrefix = prefix + lc>
41 <#assign withPrefixLength = lcWithPrefix?length >
42 <#assign startHere = withPrefixLength - 5>
43 <#assign lc = lcWithPrefix?substring(startHere)>
44 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
45 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
46
47 <#assign clientProfile = clientProfileList?first>
48 <#assign partnerName = clientProfile.getMarketingNameLong()>
49 <#assign pbu = clientProfile.getPbu()>
50 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
51 <#assign clientDataService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcPbuLocalService") >
52 <#assign clientProfileDataList = clientDataService.getByPbuAndSubBu(pbu,subbu)>
53 <#assign partnerUrl = clientProfileDataList.getPartnerMainUrl()>
54 <#if partnerUrl?has_content && !partnerUrl?matches(r"(?i)^https?\:\/\/.*") && !partnerUrl?matches(r"(?i)^https?\://.*")>
55 <#assign partnerUrl = 'https://' + partnerUrl>
56 </#if>
57
58 <#assign clientdata = utilServ.makeCall('crcDDCTier1Customizations','0&'+pbu+'&'+subbu+'&11')>
59 <#assign logoFileName = clientProfile.getLogoBFormat1()?replace(".", "-")?replace("-([^-]*)$", ".$1", "r")?lower_case>
60 <#assign cdnLogoUrl = propsUtil.get('rackspace.cdn.web.url')>
61 <script>
62 console.log('logo url', '${cdnLogoUrl}${logoFileName}');
63 </script>
64 <#if pbu == "0864054">
65 <#assign override = "berkshire">
66 <#else>
67 <#assign override = " ">
68 </#if>
69 <#-- this one should be delete for prod -->
70
71
72 <#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')>
73 <#if (subbu_special?has_content)>
74 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu_special)>
75 <script>
76 console.log('new subbu', '${subbu_special!''}');
77 </script>
78 <#else>
79 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu)>
80 </#if>
81 <#assign temp = []>
82 <#assign consumerCards = []>
83 <#assign businessCards = []>
84 <#assign offerTypeList = []>
85 <#assign index = 0>
86 <#assign ameriprise_cards= []>
87 <#assign consumerOfferTypes =['104', '101', '103', '108', '109', '115']>
88 <#assign businessOfferTypes =['144', '128', '143', '121', '123']>
89 <#list fiCardsData as fib>
90 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
91 <#assign offerTypeList = offerTypeList + [fib.offerType]>
92 <#assign temp = temp + fiCardsData[index..index]>
93 <#if ameriprise>
94 <#if (fib.offerType == "101" || fib.offerType == "103")>
95 <#assign ameriprise_cards= ameriprise_cards + fiCardsData[index..index]>
96 </#if>
97 <#else>
98 <#if consumerOfferTypes?seq_contains(fib.offerType)>
99 <#assign consumerCards = consumerCards + fiCardsData[index..index]>
100 <#elseif (businessOfferTypes?seq_contains(fib.offerType))>
101 <#assign businessCards = businessCards + fiCardsData[index..index]>
102 </#if>
103 </#if>
104 </#if>
105 <#assign index = index + 1>
106
107 </#list>
108 <#assign fiCardsData = temp>
109 <#if ameriprise>
110 <#assign consumerCards = ameriprise_cards?sort_by("offerType")>
111 </#if>
112
113 <#if (fiCardsData?size > 0)>
114 <#if (subbu_special?has_content)>
115 <#assign lc_used = fiCardsData?first.WebLocationCode>
116 <#else>
117 <#if ameriprise>
118 <#assign lc_used = mappedLC>
119 <#else>
120 <#assign lc_used = lc>
121 </#if>
122 </#if>
123 <#assign offerId = "">
124 <#assign sourceCode = "">
125 <#assign cardArtImage = "">
126 <#assign productUrl = "">
127 <#assign product = "">
128 <#assign preparerType = "customer">
129 <#assign apr = "">
130 <#assign cardIndex = 0>
131 <#if (class.getData() == "landing-consumer" && consumerCards?size > 0)>
132 <#if (offerTypeList?seq_contains("108")) || (offerTypeList?seq_contains("109")) >
133 <#list consumerCards as card>
134 <#if (card.offerType=="108") || (card.offerType=="109") >
135 <#assign offerId = card.offerId>
136 <#assign sourceCode = card.sourceCode>
137 <#assign cardArtImage = cdnCardArtUrl + "/"+card.filename+".png">
138 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+card.filename+".jpg">
139 <#assign productUrl="consumer-platinum2103">
140 <#assign product="Platinum">
141 <#assign cardIndex = 2>
142 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
143 <#if (scrapedData?size > 0)>
144 <#list scrapedData as sItem>
145 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
146 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
147 <#break>
148 </#if>
149 </#list>
150 <script>
151 $(document).ready(function () {
152 var aprText = "${apr}";
153 if (aprText) {
154 try {
155 var matches= aprText.match(/\d+(\.\d+)?%?/g);
156 var billing_cycle = matches[1];
157 var apr_min = apr_min = matches[2];
158 var apr_max = apr_max = matches[3];
159 if (billing_cycle) {
160 $(".scraped-billing-cycle").html(billing_cycle);
161 }
162 if (apr_min) {
163 $(".scraped-apr-min").html(apr_min);
164 }
165 if (apr_max) {
166 $('.scraped-apr-max').html(apr_max);
167 }
168
169 } catch (e) {
170 console.log(e);
171 }
172 }
173 });
174 </script>
175 </#if>
176 </#if>
177 </#list>
178 <#else>
179 <#assign displayedCard = consumerCards[0]>
180 <script>
181 console.log('dispalyed card:','${displayedCard.offerType}');
182 </script>
183 <#assign offerId = displayedCard.offerId>
184 <#assign sourceCode = displayedCard.sourceCode>
185 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
186 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
187 <#if ameriprise>
188 <#if (displayedCard.offerType == "101")>
189 <#assign productUrl="ameriprise-premier-visa-signature">
190 <#assign product="Premier Visa Signature">
191 <#assign cardIndex = 0>
192 <#elseif (displayedCard.offerType == "103")>
193 <#assign productUrl = "ameriprise-visa-signature">
194 <#assign product="Visa Signature">
195 <#assign cardIndex = 1>
196 </#if>
197 <#else>
198 <#if (displayedCard.offerType == "101" || displayedCard.offerType == "103")>
199 <#assign productUrl="real-rewards">
200 <#assign product="Real Rewards">
201 <#assign cardIndex = 1>
202 <#elseif (displayedCard.offerType == "108" || displayedCard.offerType == "109")>
203 <#assign productUrl = "consumer-platinum2103">
204 <#assign product="Platinum">
205 <#assign cardIndex = 2>
206 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', offerId + '&'+ sourceCode)>
207 <#if (scrapedData?size > 0)>
208 <#list scrapedData as sItem>
209 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
210 <#assign apr = sItem.scrapedValue?replace("(\n|\r\n|\r)+", " ","r")>
211 <#break>
212 </#if>
213 </#list>
214 <script>
215 $(document).ready(function () {
216 var aprText = "${apr}";
217 if (aprText) {
218 try {
219 var matches= aprText.match(/\d+(\.\d+)?%?/g);
220 var billing_cycle = matches[1];
221 var apr_min = apr_min = matches[2];
222 var apr_max = apr_max = matches[3];
223 if (billing_cycle) {
224 $(".scraped-billing-cycle").html(billing_cycle);
225 }
226 if (apr_min) {
227 $(".scraped-apr-min").html(apr_min);
228 }
229 if (apr_max) {
230 $('.scraped-apr-max').html(apr_max);
231 }
232
233 } catch (e) {
234 console.log(e);
235 }
236 }
237 });
238 </script>
239 </#if>
240 <#elseif (displayedCard.offerType == "115")>
241 <#assign productUrl = "secured">
242 <#assign product="Secured">
243 <#assign cardIndex = 3>
244 </#if>
245 </#if>
246 </#if>
247 </#if>
248 <#if (class.getData() == "landing-business" && businessCards?size > 0)>
249
250
251 <#assign displayedCard = businessCards[0]>
252 <#assign offerId = displayedCard.offerId>
253 <#assign sourceCode = displayedCard.sourceCode>
254 <#assign cardArtImage = cdnCardArtUrl + "/"+ displayedCard.filename + ".png">
255 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+ displayedCard.filename + ".jpg">
256 <#if displayedCard.offerType=="144">
257 <#assign productUrl="smart-business-rewards">
258 <#assign product="Smart Business Rewards">
259 <#assign cardIndex = 0>
260 <#elseif (displayedCard.offerType=="143")>
261 <#assign productUrl="business-real-rewards">
262 <#assign product="Business Real Rewards">
263 <#assign cardIndex = 0>
264 <#elseif (displayedCard.offerType=="128")>
265 <#assign productUrl = "business-cashback">
266 <#assign product="Business Cash">
267 <#assign cardIndex = 1>
268 <#elseif (displayedCard.offerType=="121")>
269 <#assign productUrl = "business-platinum2103">
270 <#assign product="Business">
271 <#assign cardIndex = 3>
272 </#if>
273 </#if>
274 <#if product != "">
275 <#if ameriprise>
276 <#assign card_art_alt = partnerName + " " + product + " Card">
277 <#assign rollover_text = partnerName + " " + product + " Card">
278 <#else>
279 <#assign card_art_alt = partnerName>
280 <#assign rollover_text = partnerName + " " + product + " Credit Card">
281 <#assign card_text = product + " Card">
282 </#if>
283 </#if>
284 <div class="jn-hero-container product-${productUrl} tier1-hero-${class.getData()}" title="${rollover_text!''}">
285 <div class="hero-main">
286 <div class="hero-main-logo">
287 <#if partnerUrl?has_content>
288 <a href="${partnerUrl!''}" title="${partnerName!''}"><img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''}"></a>
289 <#else>
290 <a title="${partnerName!''}"><img src="${cdnLogoUrl!''}/${logoFileName!''}" alt="${partnerName!''}"></a>
291 </#if>
292 </div>
293 <div class="hero-main-container">
294 <div class="hero-main-offer bg-color-white">
295 <div class="offer-header">
296 <div class="offer-text-top">
297 <h3 class="offer-title">${productTitle.getSiblings()[cardIndex].primaryHeadlineText.getData()}</h3>
298 <h1 class="offer-subtitle">${productTitle.getSiblings()[cardIndex].primaryHeadlineFeature.getData()}</h1>
299 </div>
300 <div class="offer-text-bottom hide-mobile">
301 <div class="offer-detail-text text-color-default">
302 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureTop.getData()}
303 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureBottom.getData()}
304 <a href="${oadURL_TC}?locationCode=${lc}&offerId=${offerId}&preparerType=customer#termsAndCond-details" target="_blank" class="t_c_link">See terms & conditions.</a>
305 </div>
306
307 <#if ameriprise>
308 <a data-button-name="cta-button-top" title="Learn More about ${partnerName!''} credit cards" class="jn-button apply-button text-bold button-bg-color-custom text-color-white" href="javascript:void(0);" onclick="goToByScroll('product-display')">${productTitle.getSiblings()[cardIndex].ctaText.getData()}</a>
309 <#else>
310 <form action="${oadURL}?locationCode=${lc_used}&offerId=${offerId}&preparerType=${preparerType}&sourceCode=${sourceCode}" method="post" class="BAAForm">
311 <label for="appDataBAA-${sourceCode}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
312 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${sourceCode}" class="appDataBAA" style="display:none;" title="application data"></textarea>
313 <input type="submit" data-button-name="cta-button-top" data-product-name="${productUrl!''}" title="Apply Now for ${partnerName!''} ${product!''} Credit Card"
314 class="jn-button apply-button apply-now-button text-bold button-bg-color-custom text-color-white" value="${productTitle.getSiblings()[cardIndex].ctaText.getData()}" disabled />
315 </form>
316 </#if>
317 </div>
318 </div>
319
320 <div class="offer-detail">
321
322 <div class="offer-detail-cardArt cardArtImg">
323 <img src="${cardArtImage!''}" alt="${card_art_alt!''}" srcset="" title="${card_art_alt!''}" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
324 <p>${card_text!''}</p>
325 </div>
326 <div class="offer-detail-text text-color-default hide-desktop">
327 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureTop.getData()}
328 ${productTitle.getSiblings()[cardIndex].primaryHeadlineFeatureBottom.getData()}
329 <a href="${oadURL_TC}?locationCode=${lc}&offerId=${offerId}&preparerType=customer#termsAndCond-details" target="_blank" class="t_c_link">See terms & conditions.</a>
330 </div>
331
332 <#if ameriprise>
333 <a data-button-name="cta-button-top" title="Learn More about ${partnerName!''} credit cards" class="jn-button apply-button text-bold button-bg-color-custom text-color-white hide-desktop" href="javascript:void(0);" onclick="goToByScroll('product-display')">${productTitle.getSiblings()[cardIndex].ctaText.getData()}</a>
334 <#else>
335 <form action="${oadURL}?locationCode=${lc_used}&offerId=${offerId}&preparerType=${preparerType}&sourceCode=${sourceCode}" method="post" class="BAAForm hide-desktop">
336 <label for="appDataBAA-${sourceCode}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
337 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${sourceCode}" class="appDataBAA" style="display:none;" title="application data"></textarea>
338 <input type="submit" data-button-name="cta-button-top" data-product-name="${productUrl!''}" title="Apply Now for ${partnerName!''} ${product!''} Credit Card"
339 class="jn-button apply-button apply-now-button text-bold button-bg-color-custom text-color-white" value="${productTitle.getSiblings()[cardIndex].ctaText.getData()}" disabled />
340 </form>
341 </#if>
342 </div>
343 </div>
344 </div>
345 </div>
346 </div>
347
348 </#if>
349</#if>
웹 내용 전시
템플렛을 가공하고 있는 동안 과실은 일어났다.
Expression qstringmap["bankercode"] is undefined on line 33, column 17 in 10154#10192#153411738.
1<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService") >
2<#assign oadURL = propsUtil.get('elan.oad.url') >
3<#assign url = request.attributes.CURRENT_URL >
4<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
5<#assign url404 = '/error/404.html'>
6<#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
7<#assign environment = url?replace('/index.*','','r')>
8
9
10
11<#assign text_to_apply_source = "vanity url" >
12<#if qstringmap["sms"]?has_content>
13 <#assign sms = 1 >
14 <#assign text_to_apply_source = "sms" >
15</#if>
16<#if qstringmap["qrCode"]?has_content>
17 <#assign text_to_apply_source = "qr code" >
18</#if>
19
20<#if qstringmap["ecid"]?has_content>
21 <#assign ecidExt="&ecid="+qstringmap["ecid"]?first>
22 <#assign campaignId = qstringmap["ecid"]?first >
23<#else>
24 <#assign ecidExt="">
25 <#assign campaignId = "" >
26</#if>
27<#-- check bankercode validity -->
28<#if oadURL?contains("uat-")>
29 <#assign oadURL_TC = 'https://uat-online1.elancard.com/oad/terms.controller' >
30<#else>
31 <#assign oadURL_TC = 'https://online1.elancard.com/oad/terms.controller' >
32</#if>
33<#assign bCode= qstringmap["bankercode"]?first>
34
35<#assign fiData= utilServ.makeCall('crcDDCBankerAssistedApp','0&'+bCode)>
36<#if fiData?first?has_content>
37 <#assign fi = fiData?first>
38 <#if ((fi.projectId == "12") || (fi.projectId == "13") || (fi.projectId == "14"))>
39 <#assign subbu_special = fi.offerId>
40 </#if>
41</#if>
42
43<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetail','0&'+bCode)>
44<#list bData as b>
45 <#assign lc = b.locationcode >
46 <#assign bName = b.branch >
47 <#assign bPhone = b.businessphone >
48 <#assign boeid = b.oeid >
49 <#assign fName = b.firstname?trim >
50 <#assign lName = b.lastname?trim >
51 <#assign rLC = b.reallocationcode >
52 <#assign mappedLC = b.mappedLocationCode >
53</#list>
54
55<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
56 <#assign ameriprise = true>
57<#else>
58 <#assign ameriprise = false>
59</#if>
60<#if mappedLC?has_content && !ameriprise>
61 <#assign lc = mappedLC >
62</#if>
63
64
65<#if lc?has_content>
66 <#assign firstNameLength = fName?length >
67 <#assign lastNameLength = lName?length >
68 <#if firstNameLength + lastNameLength > 19 >
69 <#if lastNameLength > 18 >
70 <#assign bLName = lName?substring(0,18)>
71 <#else>
72 <#assign bLName = lName>
73 </#if>
74 <#assign maxFirstName = 19 - bLName?length >
75 <#if firstNameLength > maxFirstName >
76 <#assign bFName = fName?substring(0,maxFirstName)>
77 <#else>
78 <#assign bFName = fName>
79 </#if>
80 <#else>
81 <#assign bFName = fName>
82 <#assign bLName = lName>
83 </#if>
84
85 <#assign prefix = "00000" >
86 <#assign lcWithPrefix = prefix + lc >
87 <#assign withPrefixLength = lcWithPrefix?length >
88 <#assign startHere = withPrefixLength - 5>
89 <#assign lc = lcWithPrefix?substring(startHere)>
90 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
91 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
92 <#if (clientProfileList?first?has_content)>
93 <#assign clientProfile = clientProfileList?first>
94 <#assign partnerName = clientProfile.getMarketingNameLong()>
95 <#assign pbu = clientProfile.getPbu()>
96 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
97 <#assign cdnCardArtUrl = propsUtil.get('rackspace.cdn.cardart.url')>
98 <#if (subbu_special?has_content)>
99 <script>
100 console.log("special subbu:", '${subbu_special}');
101 </script>
102 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu_special)>
103 <#else>
104 <#assign fiCardsData = utilServ.makeCall('crcTier3GetPbuData','0&' + pbu + '&' + subbu)>
105 <script>
106 console.log("subbu:", '${subbu}');
107 </script>
108 </#if>
109
110 <#-- Begin: filter cards by sourceCode and offerId and remove duplicated cards-->
111 <#assign temp = []>
112 <#assign consumerCards = []>
113 <#assign businessCards = []>
114 <#assign offerTypeList = []>
115 <#assign consumerOfferTypes =['104', '101', '103', '108', '109', '115']>
116 <#assign businessOfferTypes =['144', '128', '143', '121', '123']>
117 <#assign index = 0>
118 <#list fiCardsData as fib>
119 <#if (fib.offerType?has_content && !(offerTypeList?seq_contains(fib.offerType)))>
120 <#assign offerTypeList = offerTypeList + [fib.offerType]>
121 <#assign temp = temp + fiCardsData[index..index]>
122 <#if consumerOfferTypes?seq_contains(fib.offerType)>
123 <#assign consumerCards = consumerCards + fiCardsData[index..index]>
124 <#elseif (businessOfferTypes?seq_contains(fib.offerType))>
125 <#assign businessCards = businessCards + fiCardsData[index..index]>
126 </#if>
127 </#if>
128 <#assign index = index + 1>
129 </#list>
130
131
132 <#assign fiCardsData = temp>
133
134 <#if (fiCardsData?size > 0)>
135 <#if (subbu_special?has_content)>
136 <#assign lc_used = fiCardsData?first.WebLocationCode>
137 <#else>
138 <#if ameriprise>
139 <#assign lc_used = mappedLC>
140 <#else>
141 <#assign lc_used = lc>
142 </#if>
143 </#if>
144 </#if>
145
146 <#if (consumerCards?size > 0 || businessCards?size > 0)>
147
148 <div class="content-container content-container-main jn-consumer-content" id="product-display">
149 <#if ((consumerCards?size > 0) && (businessCards?size > 0))>
150 <nav class="jn-primary-nav two-tabs">
151 <ul>
152 <li title="${partnerName!''} - Personal products">
153 <a href="#" class="tab-nav active" id="consumerTab"><span>Personal</span></a>
154 </li>
155 <li title="${partnerName!''} - Business products">
156 <a href="#" class="tab-nav" id="businessTab"><span>Business</span></a>
157 </li>
158 </ul>
159 </nav>
160 <#else>
161 <#if (consumerCards?size > 0)>
162 <nav class="jn-primary-nav" title="${partnerName!''} - Personal products">
163 <ul>
164 <li>
165 <p class="tab-nav" id="consumerTab"><span>Personal</span></p>
166 </li>
167 </ul>
168 </nav>
169 </#if>
170 <#if (businessCards?size > 0)>
171 <nav class="jn-primary-nav" title="${partnerName!''} - Business products">
172 <ul>
173 <li>
174 <p class="tab-nav" id="businessTab"><span>Business</span></p>
175 </li>
176 </ul>
177 </nav>
178 </#if>
179 </#if>
180 <#if (consumerCards?size > 0)>
181 <div class="tab-more-wrapper">
182 <div class="jn-consumer-content-wrapper jn-tab-content active transition-start" data-id="consumerTab" title="${partnerName!''} - Personal products">
183 <#list consumerCards as fib>
184 <#assign cardArtImage = cdnCardArtUrl + "/" + fib.filename + ".png" >
185 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+fib.filename+".jpg">
186 <#if ameriprise>
187 <#if (fib.offerType == "101")>
188 <#assign productName = "premier-visa-signature">
189 <#assign product="Premier Visa Signature">
190 <#assign cardIndex = 0>
191 <#elseif (fib.offerType == "103")>
192 <#assign productName = "visa-signature">
193 <#assign product="Visa Signature">
194 <#assign cardIndex = 1>
195 </#if>
196 <#assign titleText = consumerTitle.getSiblings()[cardIndex].Title.getData()>
197 <#assign titleText = titleText?replace('<[^>]+>','','r')>
198 <#else>
199 <#switch fib.offerType>
200 <#case "101">
201 <#assign productName = "real-rewards">
202 <#assign product="Real Rewards">
203 <#assign cardIndex = 1>
204 <#break>
205 <#case "108">
206 <#assign productName = "consumer-platinum2103">
207 <#assign product="Platinum">
208 <#assign cardIndex = 2>
209
210 <#break>
211 <#case "109">
212 <#assign productName = "consumer-platinum2103">
213 <#assign product="Platinum">
214 <#assign cardIndex = 2>
215 <#break>
216 <#case "115">
217 <#assign productName = "secured">
218 <#assign product="Secured">
219 <#assign cardIndex = 3>
220 <#break>
221 <#case "104">
222 <#assign productName = "max-cash">
223 <#assign product="Max Cash">
224 <#assign cardIndex = 0>
225 <#break>
226 <#default>
227 </#switch>
228
229 <#assign titleText = consumerTitle.getSiblings()[cardIndex].Title.getData()>
230 <#assign titleText = titleText?replace('<[^>]+>','','r')>
231
232
233 <#assign APR="">
234 <#assign AMF="">
235 <#assign BAL="">
236 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', fib.offerId + '&'+ fib.sourceCode)>
237 <#if (scrapedData?size > 0)>
238 <#list scrapedData as sItem>
239 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
240 <#assign APR = sItem.scrapedValue>
241 <#elseif ((sItem.scrapedLabel?contains("Annual Membership Fee")) && (sItem.scrapedValue?has_content)) >
242 <#assign AMF = sItem.scrapedValue>
243 <#elseif ((sItem.scrapedLabel?contains("APR for Balance Transfers")) && (sItem.scrapedValue?has_content)) >
244 <#assign BAL = sItem.scrapedValue>
245 </#if>
246 <#if (APR?has_content && AMF?has_content && BAL?has_content)>
247 <#break>
248 </#if>
249 </#list>
250 </#if>
251 </#if>
252 <#if ameriprise>
253 <#assign rollover_text = partnerName + " " + product + " " + " Card">
254 <#else>
255 <#assign rollover_text = partnerName + " " + product + " " + " Credit Card">
256 </#if>
257 <div class="jn-consumer-item item-${fib.offerType}" title="${rollover_text!''}">
258 <div class="consumer-card-heading hide-desktop">
259 <h4>${consumerTitle.getSiblings()[cardIndex].Title.getData()}</h4>
260 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
261 </div>
262 <div class="jn-consumer-card-image">
263 <img src="${cardArtImage!''}" alt="${rollover_text!''}" class="jn-img-responsive" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
264 </div>
265
266 <div class="jn-consumer-card-info">
267 <div class="consumer-card-heading hide-mobile">
268 <h4>${consumerTitle.getSiblings()[cardIndex].Title.getData()}</h4>
269 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
270 </div>
271 <div class="jn-additional">
272 <ul class="${fib.offerType}">
273 <#if !ameriprise>
274 <#if (fib.offerType == "104")>
275 <li class="${fib.offerType}">
276 <p>
277 <strong>APR for Purchases: </strong>
278 ${APR!''}
279 </p>
280
281 </li>
282 <li class="${fib.offerType}">
283 <p>
284 <strong>Intro APR<sup>*</sup> for Balance Transfers: </strong>
285 ${BAL!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">See terms & conditions.</a>
286 </p>
287 </li>
288 <#elseif (fib.offerType== "115")>
289 <li class="${fib.offerType}">
290 <p>
291 <strong>APR for Purchases and Balance Transfers: </strong>
292 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">See terms & conditions.</a>
293 </p>
294 </li>
295 <#elseif (fib.offerType== "101")>
296 <li class="${fib.offerType}">
297 <p>
298 <strong>Intro APR<sup class="tag-1">1</sup> for Purchases and Balance Transfers: </strong>
299 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">See terms & conditions.</a>
300 </p>
301 </li>
302 <#else>
303 <li class="${fib.offerType}">
304 <p>
305 <strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers: </strong>
306 ${APR!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">See terms & conditions.</a>
307 </p>
308 </li>
309 </#if>
310 </#if>
311 <#if consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings()?has_content>
312 <#list consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings() as marketingInfo>
313 <li>${marketingInfo.getData()}</li>
314 </#list>
315 </#if>
316 <#if !ameriprise>
317 <li>
318 <p>Annual Fee: ${AMF!''} <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">See terms & conditions.</a></p>
319 </li>
320 </#if>
321 </ul>
322 </div>
323 <ul class="actions">
324 <li>
325 <form action="${oadURL}?locationCode=${lc_used}&offerId=${fib.offerId}&preparerType=customer&sourceCode=${fib.sourceCode}" method="post" class="BAAForm">
326 <label for="appDataBAA-${fib.offerId}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
327 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${fib.offerId}" class="appDataBAA" style="display:none;" title="application data"></textarea>
328 <a class="applyNowLink apply-now-button" href="${oadURL}?locationCode=${lc_used}&offerId=${fib.offerId}&preparerType=customer&sourceCode=${fib.sourceCode}"
329 data-button-name="apply-now-link" data-product-name="${productName}"
330 title="Apply Now for ${rollover_text!''}">${consumerTitle.getSiblings()[cardIndex].applyNow.getData()}</a>
331 </form>
332 </li>
333 <li>
334 <#if ameriprise>
335 <a href="${environment}/${productName}?bankercode=${bCode}&ecdma-lc=${lc_used}${ecidExt}">${consumerTitle.getSiblings()[cardIndex].LearnMore.getData()}</a>
336 <#else>
337 <a href="${environment}/${productName}?bankercode=${bCode}&ecdma-lc=${lc}${ecidExt}">${consumerTitle.getSiblings()[cardIndex].LearnMore.getData()}</a>
338 </#if>
339 </li>
340 </ul>
341 </div>
342
343
344
345
346 </div>
347 </#list>
348 </div>
349 </div>
350
351 </#if>
352 <#if (businessCards?size > 0)>
353 <div class="tab-more-wrapper">
354 <div class="jn-consumer-content-wrapper jn-tab-content transition-start" data-id="businessTab" title="${partnerName!''} - Business products">
355
356 <#list businessCards as fib>
357 <#assign cardArtImage = cdnCardArtUrl + "/" + fib.filename + ".png">
358 <#assign cardArtImageAlt = cdnCardArtUrl + "/"+fib.filename+".jpg">
359 <#switch fib.offerType>
360 <#case "144">
361 <#assign productName = "smart-business-rewards">
362 <#assign product="Smart Business Rewards">
363 <#assign cardIndex = 4>
364 <#break>
365 <#case "128">
366 <#assign productName = "business-cashback">
367 <#assign product="Business Cash">
368 <#assign cardIndex = 5>
369 <#break>
370 <#case "143">
371 <#assign productName = "business-real-rewards">
372 <#assign product="Business Real Rewards">
373 <#assign cardIndex = 6>
374 <#break>
375 <#case "121">
376 <#assign productName = "business-platinum2103">
377 <#assign product="Business Card">
378 <#assign cardIndex = 7>
379 <#break>
380 <#default>
381 </#switch>
382 <#assign APR="">
383 <#assign AMF="">
384 <#assign scrapedData = utilServ.makeCall('crcDDCGetSchumerBox', fib.offerId + '&'+ fib.sourceCode)>
385 <#if (scrapedData?size > 0)>
386 <#list scrapedData as sItem>
387 <#if ((sItem.scrapedLabel?contains("Annual Percentage Rate (APR) for Purchases")) && (sItem.scrapedValue?has_content)) >
388 <#assign APR = sItem.scrapedValue>
389 <#elseif ((sItem.scrapedLabel?contains("Annual Membership Fee")) && (sItem.scrapedValue?has_content)) >
390 <#assign AMF = sItem.scrapedValue>
391 </#if>
392 <#if (APR?has_content && AMF?has_content)>
393 <#break>
394 </#if>
395 </#list>
396 </#if>
397
398 <div class="jn-consumer-item item-${fib.offerType}" title="${partnerName!''} ${product!''} Credit Card">
399 <div class="consumer-card-heading hide-desktop">
400 <h4>${consumerTitle.getSiblings()[cardIndex].Title.getData()}</h4>
401 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
402 </div>
403 <div class="jn-consumer-card-image">
404 <img src="${cardArtImage!''}" alt="${rollover_text!''}" class="jn-img-responsive" onerror="this.onerror=null;this.src='${cardArtImageAlt!''}'">
405 </div>
406
407 <div class="jn-consumer-card-info">
408 <div class="consumer-card-heading hide-mobile">
409 <h4>${consumerTitle.getSiblings()[cardIndex].Title.getData()}</h4>
410 ${consumerTitle.getSiblings()[cardIndex].headlineText.getData()}
411 </div>
412 <div class="jn-additional">
413 <ul>
414 <#if (fib.offerType == "144")>
415 <li>
416 <p>
417 <strong>APR for Purchases and Balance Transfers: </strong>
418 ${APR!''}
419 <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">See terms & conditions.</a>
420 </p>
421 </li>
422 <#else>
423 <li>
424 <p>
425 <strong>Intro APR<sup>*</sup> for Purchases and Balance Transfers: </strong>
426 ${APR!''}
427 <a href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">See terms & conditions.</a>
428 </p>
429 </li>
430 </#if>
431 <#if consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings()?has_content>
432 <#list consumerTitle.getSiblings()[cardIndex].additionalInfo.getSiblings() as marketingInfo>
433 <li>${marketingInfo.getData()}</li>
434 </#list>
435 </#if>
436 <li><p>Annual Fee: ${AMF!''} <a
437 href="${oadURL_TC}?step=display&offerId=${fib.offerId}&locationCode=${lc_used}" target="_blank">See terms & conditions.</a></p>
438 </li>
439 </ul>
440 </div>
441 <ul class="actions">
442 <li>
443 <form action="${oadURL}?locationCode=${lc_used}&offerId=${fib.offerId}&preparerType=customer&sourceCode=${fib.sourceCode}" method="post" class="BAAForm">
444 <label for="appDataBAA-${fib.offerId}" style="position:absolute; clip:rect(0 0 0 0);">Application Data</label>
445 <textarea rows="20" cols="100" name="applicationData" id="appDataBAA-${fib.offerId}" class="appDataBAA" style="display:none;" title="application data"></textarea>
446 <a class="applyNowLink apply-now-button"
447 href="${oadURL}?locationCode=${lc_used}&offerId=${fib.offerId}&preparerType=customer&sourceCode=${fib.sourceCode}"
448 data-button-name="apply-now-link" data-product-name="${productName}"
449 title="Apply Now for ${partnerName!''} ${product!''} Credit Card">${consumerTitle.getSiblings()[cardIndex].applyNow.getData()}</a>
450 </form>
451 </li>
452 <li><a href="${environment}/${productName}?bankercode=${bCode}&ecdma-lc=${lc}${ecidExt}">${consumerTitle.getSiblings()[cardIndex].LearnMore.getData()}</a></li>
453 </ul>
454 </div>
455 </div>
456
457 </#list>
458
459 </div>
460 </div>
461 </#if>
462 </div>
463 <script>
464 var consumerSelector = '.jn-consumer-content-wrapper.jn-tab-content[data-id="consumerTab"]';
465 var businessSelector = '.jn-consumer-content-wrapper.jn-tab-content[data-id="businessTab"]';
466 $(document).ready(function () {
467 var banker_code = "${bCode!''}";
468 var tabs=$('.tab-nav');
469 var slideDiv = $('.jn-tab-content.active');
470 var screenWidthMobile = 768;
471 var screenWidth = window.innerWidth;
472
473 if (tabs.length == 1) {
474 if ($(consumerSelector).length > 0) {
475 if(banker_code && (banker_code.indexOf("amp") == 0) && (banker_code.length > 6)) {
476 $("nav.jn-primary-nav").hide();
477 changeCardLayout(consumerSelector);
478 createMetaTag("consumer");
479 } else {
480 hideHeroAndDisclaimer('business');
481 showHeroAndDisclaimer('consumer');
482 changeCardLayout(consumerSelector);
483 renumberFootnote("consumer");
484 createMetaTag("consumer");
485 }
486 }
487 if ($(businessSelector).length > 0) {
488 $(businessSelector).addClass('active');
489 hideHeroAndDisclaimer('consumer');
490 showHeroAndDisclaimer('business');
491 changeCardLayout(businessSelector);
492 renumberFootnote("business");
493 createMetaTag("business");
494 }
495 }
496 if (tabs.length == 2) {
497 renumberFootnote("consumer");
498 renumberFootnote("business");
499 createMetaTag("consumer");
500 if ($(consumerSelector + ' .jn-consumer-item').length < 3) {
501 changeCardLayout(consumerSelector);
502 }
503 if ($(businessSelector + ' .jn-consumer-item').length < 3) {
504 changeCardLayout(businessSelector);
505 }
506
507 var tabsNav = document.querySelectorAll('.tab-nav');
508 togglePrimaryNav(tabsNav);
509
510 if(window.location.href.indexOf('#business') > -1 ) {
511 $(consumerSelector).removeClass('active');
512 $(businessSelector).addClass('active');
513 $('#consumerTab').removeClass('active');
514 $('#businessTab').addClass('active');
515 hideHeroAndDisclaimer('consumer');
516 showHeroAndDisclaimer('business');
517 changeCardLayout(businessSelector);
518 renumberFootnote("business");
519 createMetaTag("business");
520
521 $(tabs).click(function(){
522 if ($(this).attr('id') === "consumerTab") {
523 var newUrl = window.location.toString();
524 window.location = newUrl.replace(/#business/, '#consumer');
525 }
526 if ($(this).attr('id') === "businessTab") {
527 var url = window.location.toString();
528 window.location = url.replace(/#consumer/, '#business');
529 }
530 });
531 }
532 }
533
534 });
535 // Primary Nav function
536
537 function togglePrimaryNav(elem) {
538 for (var i = 0; i < elem.length; i++) {
539 elem[i].addEventListener("click", function(e) {
540
541 var current = this,
542 allSections = document.querySelectorAll('[data-id]'),
543 section = document.querySelector("[data-id='"+ current.id +"']");
544
545 for (var a = 0; a < allSections.length; a++) {
546 allSections[a].classList.remove('active');
547 }
548 for (var c = 0; c < elem.length; c++) {
549 if (current != elem[c]) {
550 elem[c].classList.remove('active');
551 } else {
552 current.classList.add('active');
553 section.classList.add('active');
554 hideHeroAndDisclaimer('consumer');
555 hideHeroAndDisclaimer('business');
556 if(current.getAttribute('id') === "consumerTab"){
557 showHeroAndDisclaimer('consumer');
558 } else if(current.getAttribute('id') === "businessTab"){
559 showHeroAndDisclaimer('business');
560 }
561 }
562 }
563 e.preventDefault();
564 });
565 }
566 }
567
568 function renumberFootnote(type) {
569 var discriptionSelector = '.jn-consumer-content-wrapper.jn-tab-content' + '[data-id="' + type + 'Tab"]';
570 var disclaimerSelector = '.tier1-disclaimer-landing-' + type;
571 var heroSelector = '.tier1-hero-landing-' + type;
572 var numOfFootnote = $(disclaimerSelector + ' sup').length;
573 var showList = [];
574 var hideList=[];
575 for (var i = 1; i <= numOfFootnote; i++) {
576 var cssClass="tag-" + i;
577 if ($(discriptionSelector + ' sup').hasClass(cssClass) || $(heroSelector + ' sup').hasClass(cssClass)) {
578 showList.push(i);
579 } else {
580 hideList.push(i);
581 }
582 }
583 for (var i = 1; i < showList.length + 1; i++) {
584 if(showList[i-1] != i) {
585 var className="tag-" + showList[i-1];
586 $(heroSelector).find("." + className).html(i);
587 // $(discriptionSelector).find("." + className).html(i);
588 $(disclaimerSelector).find("." + className).html(i);
589 }
590 }
591 for (var i = 0; i <hideList.length; i++) {
592 var cname="tag-" + hideList[i];
593 $(disclaimerSelector).find("." + cname).parent().hide();
594 }
595 }
596
597 function changeCardLayout(cssSelector) {
598 var numOfCards = $(cssSelector + ' .jn-consumer-item').length;
599 if(numOfCards == 1) {
600 $(cssSelector).addClass('one-card');
601 } else if (numOfCards == 2) {
602 $(cssSelector).addClass('two-card');
603 }
604 }
605 function hideHeroAndDisclaimer(type) {
606 try {
607 document.querySelector('.tier1-hero-landing-'+ type).classList.remove('show');
608 document.querySelector('.tier1-hero-landing-'+ type).classList.add('hide');
609 } catch (e) {
610 console.log(e);
611 }
612
613 try {
614 document.querySelector('.tier1-disclaimer-landing-'+ type).classList.remove('show');
615 document.querySelector('.tier1-disclaimer-landing-'+ type).classList.add('hide');
616 } catch (e) {
617 console.log(e);
618 }
619
620 }
621 function showHeroAndDisclaimer(type) {
622 try {
623 document.querySelector('.tier1-hero-landing-'+ type).classList.add('show');
624 document.querySelector('.tier1-hero-landing-'+ type).classList.remove('hide');
625 } catch (e) {
626 console.log(e);
627 }
628
629 try {
630 document.querySelector('.tier1-disclaimer-landing-'+ type).classList.add('show');
631 document.querySelector('.tier1-disclaimer-landing-'+ type).classList.remove('hide');
632 } catch (e) {
633 console.log(e);
634 }
635
636 }
637 function createMetaTag(type) {
638 var partnerName = "${partnerName!0}";
639 var product_name = $('.jn-hero-container .jn-button').data('product-name');
640 var metaDesc = "";
641 if (type == "consumer") {
642 if(location.pathname.indexOf("11t1m") != -1) {
643 metaDesc = "Apply Today for an Ameriprise Financial Credit Card. Earn Rewards Points worth $375 cash value when deposited into an eligible account after spending $3,000 in eligible net purchases within the first 90 days of account opening."
644 } else {
645 if(product_name == "consumer-platinum2103") {
646 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Limited Time Offer. 0% Intro APR on Purchases and Balance Transfers for 20 Billing Cycles Consolidate your Balances with the "+partnerName+" Intro APR Card.";
647 } else if(product_name == "real-rewards") {
648 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Take home 2,500 bonus points after your first purchase.";
649 } else if(product_name == "secured") {
650 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Use this card as a solid foundation to build your credit.";
651 } else if(product_name == "max-cash") {
652 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Earn a $150 Bonus and 5% cash back on the two categories you select.";
653 }
654 }
655
656 } else if (type == "business") {
657 if(product_name == "business-cashback") {
658 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Earn Cash back on common business expenses.";
659 } else if(product_name == "business-real-rewards") {
660 metaDesc = "Apply Today for a "+partnerName+" Credit Card. Get more rewards in the categories you spend the most on.";
661 } else if(product_name == "business-visa") {
662 metaDesc = "Apply Today for a "+partnerName+" Business Card. 0% Intro APR on Purchases and Balance Transfers for 15 Billing Cycles";
663 } else if(product_name == "smart-business-rewards") {
664 metaDesc = "Apply Today for a "+partnerName+" Credit Card. More choices. More value for your business. Earn a $200 Bonus and 2x Rewards on your top 2 spend categories each month with the "+partnerName+" Credit Card.";
665 }
666 }
667 var m = document.createElement('meta');
668 m.name = 'description';
669 m.content = metaDesc;
670 document.head.appendChild(m);
671 }
672 function goToByScroll(id) {
673 var element = document.getElementById(id);
674 element.scrollIntoView(true);
675 }
676
677 </script>
678 <script>
679 document.addEventListener('DOMContentLoaded', function() {
680 console.log('inside ready');
681 var page = location.pathname.split('/')[location.pathname.split('/').length-1];
682 var hostName = location.hostname;
683 function getDomainFromHostname(hostname) {
684 var parts = hostname.split('.');
685 return parts.length === 3 ? parts[1] : parts[0];
686 }
687 var domain = getDomainFromHostname(hostName);
688 var partnerName = "${partnerName!0}";
689 var ameriprise = '${ameriprise?string("yes", "no")}';
690 var locationCode = "${rLC!lc}";
691 var eidAmp = "";
692 var heroCardImgs = document.querySelectorAll('.jn-consumer-card-image img, .cardArtImg img');
693 for (var index = 0; index < heroCardImgs.length; index++) {
694 var heroCardImg = heroCardImgs[index];
695 var heroCardSrc = heroCardImg.getAttribute("src");
696 if(heroCardSrc != "") {
697 resizeImg(heroCardImg);
698 }
699 }
700 if (ameriprise == "yes") {
701 var bankercode_amp = '${bCode}';
702 eidAmp = bankercode_amp.substring(3);
703 locationCode ="";
704 document.title = "Ameriprise Financial Credit Card Overview Page";
705 } else {
706 document.title = partnerName + " Credit Card Index Page";
707 }
708
709 var utag_data = window.utag_data || {};
710 var lc = '${lc!0}';
711
712 var regex = /\d+/g;
713 var bdNumber = "${bPhone!''}";
714 var phoneNum = bdNumber.match(regex);
715 var areaCode = "";
716 var exchangeCode = "";
717 var num = "";
718 if(phoneNum != null) {
719 phoneNum = phoneNum.join("");
720 areaCode = phoneNum.substring(0,3);
721 exchangeCode = phoneNum.substring(3,6);
722 num = phoneNum.substring(6,10);
723 }
724
725 /* update SiteCatalyst data object */
726 utag_data.current_page = "microsite:${partnerName}:" + domain + ':' + page.replace('-',' ');
727 utag_data.page_type = 'product';
728 utag_data.site_section = 'credit cards';
729 utag_data.platform = 'microsite';
730 utag_data.campaign_id = '${campaignId}';
731 utag_data.location_code = '${rLC!0}';
732 utag_data.partner_name = "${partnerName}";
733 utag_data.product = 'All Cards';
734 utag_data.text_to_apply_source = '${text_to_apply_source}';
735 utag_data.visitor_type = 'prospect';
736 utag_data.Banker_id = '${boeid}';
737 utag_data.Banker_code = '${bCode}';
738
739
740 /* SiteCatalyst pageView tracking */
741 AUI().ready(function() {
742 if (window.publisherFW) {
743 //console.log('utag_data', utag_data);
744 window.publisherFW.publishEvent("pageView", utag_data);
745 }
746 });
747
748
749 $('.jn-button').removeAttr('disabled');
750 $('.jn-button').removeClass('jn-disabled');
751
752 jQuery('.applyNowLink').on('click', function(e){
753 $(this).closest('.BAAForm').submit();
754 ga("send", {
755 hitType: "event",
756 eventAction: "ApplyNow",
757 eventCategory: "click",
758 eventLabel: "BottomButton"
759 });
760 return false;
761 });
762 jQuery(".BAAForm").on("submit", function(e){
763 e.preventDefault();
764 console.log("in custom submit");
765 var xmlData;
766 if(ameriprise == "yes") {
767 xmlData = '<?xml version="1.0"?>'+
768 "<prefillData>"+
769 "<versionNumber>1.0</versionNumber>"+
770 "<applicationData>"+
771 "<referral>" +
772 "<employeeId>" + eidAmp + "</employeeId>" +
773 "<storeNumber>"+"${bName!'0'}"+"</storeNumber>"+
774 "<divisionNumber></divisionNumber>"+
775 "</referral>" +
776 "<bankerInformation>"+
777 "<locationCode>" + locationCode + "</locationCode>"+
778 "<originatingBranchNumber>"+"${bName!'0'}"+"</originatingBranchNumber>"+
779 "<employeeID>${boeid!0}</employeeID>"+
780 "<name>" +
781 "<first>${bFName!'0'}</first>" +
782 "<last>${bLName!'0'}</last>" +
783 "</name>"+
784 "<phone>"+
785 "<areaCode>"+areaCode+"</areaCode>"+
786 "<exchange>"+exchangeCode+"</exchange>"+
787 "<number>"+num+"</number>"+
788 "</phone>"+
789 "</bankerInformation>"+
790 "</applicationData>"+
791 "</prefillData>"
792 } else {
793 xmlData = '<?xml version="1.0"?>'+
794 "<prefillData>"+
795 "<versionNumber>1.0</versionNumber>"+
796 "<applicationData>"+
797 "<bankerInformation>"+
798 "<locationCode>" + locationCode + "</locationCode>"+
799 "<originatingBranchNumber>"+"${bName!'0'}"+"</originatingBranchNumber>"+
800 "<employeeID>${boeid!0}</employeeID>"+
801 "<name>" +
802 "<first>${bFName!'0'}</first>" +
803 "<last>${bLName!'0'}</last>" +
804 "</name>"+
805 "<phone>"+
806 "<areaCode>"+areaCode+"</areaCode>"+
807 "<exchange>"+exchangeCode+"</exchange>"+
808 "<number>"+num+"</number>"+
809 "</phone>"+
810 "</bankerInformation>"+
811 "</applicationData>"+
812 "</prefillData>"
813 }
814 $(this).children(".appDataBAA").val(xmlData);
815 var buttonName = $(this).find(".apply-now-button").data("button-name");
816 var productName = $(this).find(".apply-now-button").data("product-name");
817 /* SiteCatalyst onClick tracking */
818 utag_data.apply_button = buttonName;
819 utag_data.product = productName;
820
821 if (window.publisherFW) {
822 console.log('clicked', utag_data);
823 window.publisherFW.publishEvent("onClick", utag_data);
824 }
825
826 this.submit();
827 });
828
829
830 });
831 function resizeImg(img) {
832 img.addEventListener("load", function() {
833 var cardImgWidth = img.width;
834 var cardImgHeight = img.height;
835 console.log('width', cardImgWidth);
836 console.log('height', cardImgHeight);
837 if(cardImgWidth > cardImgHeight) {
838 img.style.width = "285px";
839 } else {
840 img.style.width = "150px";
841 }
842 });
843 }
844 </script>
845
846 </#if>
847 </#if>
848</#if>
웹 내용 전시
템플렛을 가공하고 있는 동안 과실은 일어났다.
Expression qstringmap["bankercode"] is undefined on line 5, column 17 in 10154#10192#153411744.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
3<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
4
5<#assign bCode= qstringmap["bankercode"]?first>
6<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetail','0&'+bCode)>
7<#list bData as b>
8 <#assign lc = b.locationcode >
9 <#assign rLC = b.reallocationcode >
10 <#assign mappedLC = b.mappedLocationCode >
11</#list>
12<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
13 <#assign ameriprise = true>
14<#else>
15 <#assign ameriprise = false>
16</#if>
17<#if mappedLC?has_content && !ameriprise>
18 <#assign lc = mappedLC >
19</#if>
20
21<#if lc?has_content>
22 <#assign prefix = "00000" >
23 <#assign lcWithPrefix = prefix + lc >
24 <#assign withPrefixLength = lcWithPrefix?length >
25 <#assign startHere = withPrefixLength - 5>
26 <#assign lc = lcWithPrefix?substring(startHere)>
27 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
28 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
29
30 <#assign clientProfile = clientProfileList?first>
31 <#assign partnerName=clientProfile.getMarketingNameLong()>
32
33
34 <div class="jn-disclaimer tier1-disclaimer-${class.getData()}" title="${partnerName} - Disclaimer">
35 <div class="disclaimer" >
36 ${content.getData()}
37 </div>
38 </div>
39</#if>
웹 내용 전시
템플렛을 가공하고 있는 동안 과실은 일어났다.
Expression qstringmap["bankercode"] is undefined on line 5, column 17 in 10154#10192#153411744.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
3<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
4
5<#assign bCode= qstringmap["bankercode"]?first>
6<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetail','0&'+bCode)>
7<#list bData as b>
8 <#assign lc = b.locationcode >
9 <#assign rLC = b.reallocationcode >
10 <#assign mappedLC = b.mappedLocationCode >
11</#list>
12<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
13 <#assign ameriprise = true>
14<#else>
15 <#assign ameriprise = false>
16</#if>
17<#if mappedLC?has_content && !ameriprise>
18 <#assign lc = mappedLC >
19</#if>
20
21<#if lc?has_content>
22 <#assign prefix = "00000" >
23 <#assign lcWithPrefix = prefix + lc >
24 <#assign withPrefixLength = lcWithPrefix?length >
25 <#assign startHere = withPrefixLength - 5>
26 <#assign lc = lcWithPrefix?substring(startHere)>
27 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
28 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
29
30 <#assign clientProfile = clientProfileList?first>
31 <#assign partnerName=clientProfile.getMarketingNameLong()>
32
33
34 <div class="jn-disclaimer tier1-disclaimer-${class.getData()}" title="${partnerName} - Disclaimer">
35 <div class="disclaimer" >
36 ${content.getData()}
37 </div>
38 </div>
39</#if>
웹 내용 전시
템플렛을 가공하고 있는 동안 과실은 일어났다.
Expression qstringmap["bankercode"] is undefined on line 6, column 17 in 10154#10192#153411747.
1<#assign url = request.attributes.CURRENT_URL >
2<#assign qstringmap = httpUtil.getParameterMap(httpUtil.getQueryString(url))>
3<#assign utilServ = serviceLocator.findService("crc-utilities-portlet", "com.elan.crc.utilities.service.CRCRemoteServiceService")>
4<#assign url404 = '/error/404.html'>
5
6<#assign bCode= qstringmap["bankercode"]?first>
7<#assign bData = utilServ.makeCall('crcDDCBankerAssistedAppDetail','0&'+bCode)>
8<#list bData as b>
9 <#assign lc = b.locationcode >
10 <#assign rLC = b.reallocationcode >
11 <#assign mappedLC = b.mappedLocationCode >
12</#list>
13
14<#if bCode?starts_with("amp") && (url?contains("11t1m"))>
15 <#assign ameriprise = true>
16<#else>
17 <#assign ameriprise = false>
18</#if>
19<#if mappedLC?has_content && !ameriprise>
20 <#assign lc = mappedLC >
21</#if>
22
23<#if lc?has_content>
24
25 <#assign prefix = "00000" >
26 <#assign lcWithPrefix = prefix + lc >
27 <#assign withPrefixLength = lcWithPrefix?length >
28 <#assign startHere = withPrefixLength - 5>
29 <#assign lc = lcWithPrefix?substring(startHere)>
30 <#assign clientProfileService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcClientProfileLocalService") >
31 <#assign clientProfileList = clientProfileService.findByLocationCode(lc)>
32
33 <#assign clientProfile = clientProfileList?first>
34 <#assign pbu = clientProfile.getPbu()>
35 <#assign subbu = clientProfile.getSUBBRANDBUNBR()>
36 <#assign partnerName=clientProfile.getMarketingNameLong()>
37 <#assign clientDataService = serviceLocator.findService("crc-clientprofile-portlet", "com.elan.crc.servicebuilder.crcclientprofile.service.CrcPbuLocalService") >
38 <#assign clientProfileDataList = clientDataService.getByPbuAndSubBu(pbu,subbu)>
39 <#assign partnerUrl = clientProfileDataList.getPartnerMainUrl()>
40 <#if partnerUrl?has_content && !partnerUrl?matches(r"(?i)^https?\:\/\/.*") && !partnerUrl?matches(r"(?i)^https?\://.*")>
41 <#-- add protocal if missing -->
42 <#assign partnerUrl = 'https://' + partnerUrl>
43 </#if>
44 <footer class="footer bg-color-black text-color-white">
45 ${footerContent.getData()}
46 </footer>
47 <#if url?contains("11t1m")>
48 <script>
49 document.querySelector('.footer .copyright').classList.add("ecdma-footer-client-name-copyright");
50 document.querySelector('.footer .fdic').innerHTML='<a class="text-color-white" href="https://login.elancreditcard.com/onlineCard/publicPrivacyPolicy.do?loc=18598" target="_blank">Privacy and Security</a>';
51 </script>
52 <#else>
53 <script>
54 document.querySelector('.footer .copyright').classList.add("ecdma-footer-client-name-copyright");
55 document.querySelector('.footer .fdic').innerHTML='<a class="text-color-white" href="https://www.myaccountaccess.com/onlineCard/publicPrivacyPolicy.do?loc=${lc!0}" target="_blank">Privacy and Security</a>';
56 var newNode = document.createElement("div");
57 newNode.classList.add("member-agreement");
58 newNode.innerHTML='<a class="text-color-white" href="https://online1.elancard.com/oad/cmas.controller?locationCode=${lc!0}&preparerType=customer&isNewRequest=false" target="_blank">Cardmember Agreements</a>';
59 var fdicNode = document.querySelector('.footer .fdic');
60 var parent = fdicNode.parentNode;
61 parent.insertBefore(newNode, fdicNode);
62 </script>
63 </#if>
64
65 <#if partnerUrl?has_content>
66 <script>
67 document.querySelector('.copyright .homelink').innerHTML="<a class='text-color-white' href='${partnerUrl!''}' title='${partnerName!''}' target='_blank'>Home</a>";
68 </script>
69 </#if>
70</#if>