Si è verificato un errore nell'elaborarazione del modello.
Expression newsletters.getJSONObject("data").getJSONArray("items") is undefined on line 107, column 47 in 1882933#1882971#2457218. 1<#-- 2 3 ATL BIELLA NEWSLETTER 4 email di conferma: http://localhost:8080/web/guest/newsletter?token=1222 5 6 ©Suggesto 2020 7 8--> 9<#assign SuggestoMarketspaceAPI = serviceLocator.findService("suggesto-mksp-portlet","eu.suggesto.marketspace.service.MkspDomainLocalService")> 10<#assign domainName = "domainLiferay"> 11<#assign defLng = "it_IT"> 12<style> 13 .custom-checkbox .custom-control-input:checked ~ .custom-control-label.newsletter-check:before{ 14 background-color: #d21a4c; 15 } 16 .purple{ 17 color: #d21a4c !important; 18 } 19</style> 20 21<#assign 22 suggestoAPI = serviceLocator.findService("suggesto-gui-portlet", "eu.suggesto.suggestogui.service.suggestoGuiLocalService") 23 newsletterAPI = serviceLocator.findService("newsletter20-portlet", "eu.suggesto.d40.openemm.service.OpenemmLocalService") 24 token = result.getRequestStringParameter("token") 25 portletId = result.getPortletId() 26 plid = result.getPlid() 27 defLng = "it_IT" 28/> 29 30<section id="newsletter_reg" class="pt-5"> 31 <div class="container-fluid-big pb-5"> 32 <div class="row justify-content-center"> 33 <div class="col-12 col-xl-8"> 34 <#if token?has_content> 35 <#assign confirm = newsletterAPI.confirmSubscriber(groupId, token)> 36 37 <#if confirm.getBoolean("success")> 38 <h2 class="text-dark">${i18n("registrazione-confermata")}! <i class="fa fa-paper-plane purple fa-2x ml-3"></i></h2> 39 <a href="/" class="btn btn-link purple px-0 mt-4"> 40 <i class="fa fa-chevron-left mr-2"></i> 41 <span>${i18n("torna-alla-home")}</span> 42 </a> 43 <#else> 44 <h2 class="text-dark">${i18n("errore-di-registrazione")} <i class="fa fa-exclamation-triangle purple fa-2x ml-3"></i></h2> 45 <p class="mt-3">${i18n("errore-registrazione-testo")}</p> 46 <a href="javascript:history.go(-1)" class="btn btn-link purple px-0 mt-4"> 47 <i class="fa fa-chevron-left mr-2"></i> 48 <span>${i18n("torna-indietro")}</span> 49 </a> 50 </#if> 51 <#else> 52 <#if result.view == "requestSent"> 53 <h2 class="text-dark">${i18n("richiesta-inviata")} <i class="fa fa-check purple fa-2x ml-2"></i></h2> 54 55 <p>${i18n("richiesta-inviata-riga1")}</p> 56 <p>${i18n("richiesta-inviata-riga2")}</p> 57 <#else> 58 <#assign 59 newsletters = result.getMailingLists() 60 subscribeActionURL = portletURLFactory.create(request, portletId, plid, "ACTION_PHASE") 61 /> 62 63 <form action="${subscribeActionURL}&&p_p_state=normal" method="post" id="needs-validation" novalidate> 64 <div class="form_description"> 65 <h2 class="text-uppercase font-weight-bold mt-0 mt-md-5 mb-3">${i18n("iscrizione-alla-newsletter")}</h2> 66 67 <#if result.errorType?has_content> 68 <p>errorType: ${result.errorType}</p> 69 </#if> 70 <#if result.errorCode?has_content> 71 <p>errorCode: ${result.errorCode}</p> 72 </#if> 73 74 <p class="h5 mb-4"> 75 <br> 76 ${i18n("i-campi-selezionati-da")} (<span class="required">*</span>) ${i18n("sono-obbligatori")} 77 </p> 78 <div class="dropdown-divider"></div> 79 </div> 80 <div class="row text-body p-4 mt-4"> 81 <div class="col-12 col-md-4 mb-3"> 82 <label for="newsletter-email" class="description">Email <span class="required">*</span></label> 83 <div> 84 <input type="email" name="_${portletId}_email" id="newsletter-email" class="form-control border rounded-0" required> 85 <div class="invalid-feedback alert alert-danger"> 86 ${i18n("inserisci-un-email-valida")} 87 </div> 88 </div> 89 </div> 90 <div class="col-12 col-md-4 mb-3"> 91 <label for="newletter-name" class="description">${i18n("nome")}</label> 92 <div> 93 <input type="text" name="newsletter-name" id="newsletter-name" class="form-control border rounded-0"> 94 </div> 95 </div> 96 97 <div class="col-12 col-md-4 mb-3"> 98 <label for="newletter-surname" class="description">${i18n("cognome")}</label> 99 <div> 100 <input type="text" name="newsletter-surname" id="newsletter-surname" class="form-control border rounded-0"> 101 </div> 102 </div> 103 104 <div class="col-12 col-md-4 mb-3"> 105 <label class="description">${i18n("newsletter-disponibili")}:</label> 106 107 <#list 0..newsletters.getJSONObject("data").getJSONArray("items").length()-1 as i> 108 <#assign item = newsletters.getJSONObject("data").getJSONArray("items").getJSONObject(i)> 109 <#if (!item.getString("name")?starts_with("priv") && !item.getString("name")?starts_with("test")) || (item.getString("name") == "priv_mese_week") > 110 <div class="custom-control custom-checkbox"> 111 <input type="checkbox" class="custom-control-input" name="_${portletId}_id" value="${item.getInt('id')}" id="${item.getString('name')}"> 112 <label class="newsletter-check custom-control-label pointer small text-body" for="${item.getString('name')}">${getLabel(item.getString("name"))}</label> 113 </div> 114 </#if> 115 </#list> 116 117 <#-- 118 <select id="newsletters" class="custom-select" required> 119 <option selected disabled hidden value="">${i18n("scegli")}</option> 120 <#list 0..newsletters.getJSONObject("data").getJSONArray("items").length()-1 as i> 121 <#assign item = newsletters.getJSONObject("data").getJSONArray("items").getJSONObject(i)> 122 123 <#if (!item.getString("name")?starts_with("priv") && !item.getString("name")?starts_with("test")) || (item.getString("name") == "priv_mese_week") > 124 <option name="_${portletId}_id" value="${item.getInt('id')}">${item.getString("name")}</option> 125 </#if> 126 </#list> 127 </select> 128 <div class="invalid-feedback alert alert-danger"> 129 ${i18n("Seleziona una newsletter")} 130 </div> 131 --> 132 </div> 133 134 <!-- div class="col-12 col-md-4 mb-3"> 135 <div class="d-flex align-items-center justify-content-center h-100 w-100"> 136 <button type="button" class="btn btn-link text-dark description px-0" data-toggle="collapse" data-target="#condizioni"> 137 <span>${i18n("condizioni-di-adesione")}</span> 138 <i class="fa fa-chevron-down ml-3"></i> 139 </button> 140 </div> 141 </div --> 142 143 <div class="col-12 col-md-8 mb-3"> 144 <div class="d-flex align-items-center justify-content-center h-100 w-100"> 145 <div class="custom-control custom-checkbox"> 146 <input type="checkbox" class="custom-control-input" id="conditions" required> 147 <label class="custom-control-label pointer small text-body" for="conditions">${i18n("ho-letto-la")} <a href="/privacy-policy" title="Privacy Policy">${i18n("informativa")}</a> ${i18n("consenso-newsletter")}<span class="required">*</span></label> 148 <div class="invalid-feedback alert alert-danger"> 149 ${i18n("accetta-le-condizioni-per-continuare")} 150 </div> 151 152 </div> 153 </div> 154 </div> 155 156 <div class="col-12 text-center text-lg-right mb-3"> 157 <input type="hidden" name="_${portletId}_cmd" value="subscribe"> 158 <input type="hidden" id="_${portletId}_recaptcha" name="_${portletId}_token" value="token"> 159 160 <button type="submit" class="btn btn-lg btn-dark text-uppercase small rounded-0 px-5">${i18n("invia")}</button> 161 </div> 162 163 <div class="col-12"> 164 <div class="collapse" id="condizioni"> 165 <div class="dropdown-divider"></div> 166 <p>${i18n("condizioni-uso-newsletter")}</p> 167 </div> 168 </div> 169 </div> 170 </form> 171 </#if> 172 </#if> 173 </div> 174 </div> 175 </div> 176</section> 177 178<#function getLabel text> 179 <#return suggestoAPI.msg(companyId, groupId, text, locale, "it", localeUtil.fromLanguageId(defLng))> 180</#function> 181 182<script> 183 window.addEventListener('load', function(){ 184 var form = document.getElementById("needs-validation"); 185 186 if(form){ 187 form.addEventListener('submit', function(event){ 188 if(!form.checkValidity()){ 189 event.preventDefault(); 190 event.stopPropagation(); 191 } 192 193 form.classList.add('was-validated'); 194 }, false); 195 } 196 }); 197</script> 198 199<#-- siteKey extended: 6LeQIs0UAAAAAIFdq2Yh0Wp2-InKsDlLDMsMF1qF --> 200 201<#if result.isGoogleCheck()> 202 <script src="https://www.google.com/recaptcha/api.js?render=${result.googleSiteKey}"></script> 203 <script> 204 AUI().ready(function(){ 205 grecaptcha.ready(function() { 206 grecaptcha.execute('${result.googleSiteKey}', { 207 action: 'homepage' 208 }).then(function(token){ 209 document.getElementById("_${portletId}_recaptcha").value = token; 210 console.log("Google token set"); 211 }); 212 }); 213 }); 214 </script> 215</#if> 216 217 218<#function i18n labelId> 219 <#assign ret = labelId> 220 <#assign ret = SuggestoMarketspaceAPI.msgAll(groupId?string,domainName,labelId,locale.toString(),defLng)> 221 <#return ret> 222</#function>