Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> dev [in template "20101#20128#6582593" at line 28, column 10]
----
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: #if dev == "true" [in template "20101#20128#6582593" at line 28, column 5]
---- 1<#-- 2*************************************************************************** 3ACT_BannerAB.ftl 4Clave: 6582593 5*************************************************************************** 6--> 7 8<#-- 9onclick="_gaq.push(['_trackEvent', 'Actinvercom-Acceso-btnCasaBolsaIngresar', 'clicked'])" 10onclick="dataLayer.push({'event' : 'ev_login','category' : 'login','action' :'succesful'});" 11--> 12 13 14 15<#assign serverName = themeDisplay.getURLHome()?replace("http://", "")?replace("https://", "")?split("/")[0]> 16 17<#attempt> 18 <#if serverName == "webserver-actinver-prd.lfr.cloud" || serverName == "webserver-actinver-uat.lfr.cloud"> 19 <#assign dev = "true"> 20 <#assign ambiente = "Desarrollo"> 21 </#if> 22<#recover> 23 <#assign dev = "false"> 24 <#assign ambiente = "Productivo"> 25</#attempt> 26 27<script> 28 <#if dev == "true" > 29 function imprime(cadena1, cadena2){ 30 if(cadena2 != "" && cadena2 != undefined){ 31 console.info(cadena1, cadena2); 32 }else{ 33 console.info(cadena1); 34 } 35 } 36 <#else> 37 function imprime(cadenas){} 38 </#if> 39</script> 40 41 42<#assign article_id = "${randomNamespace}"> 43<#assign currentURL = themeDisplay.getURLCurrent()> 44<#assign miPaginaCompleta = currentURL?split("/")[1] > 45<#assign miPagActual = miPaginaCompleta?split('?')[0] /> 46 47<script> 48 imprime('Ambiente', '${ambiente}'); 49 imprime('ID Random', '${article_id}'); 50 imprime('Página actual', '${miPagActual}'); 51</script> 52 53<#list banner.getSiblings() as banner> 54 <#if banner.campaignURL.getData()?has_content> 55 <#assign idBanner = "bannerAB_" + banner?index > 56 <#assign campaignURL = banner.campaignURL.getData() > 57 <#assign temaColor = banner.temaColor.getData() > 58 <#assign imgBanner = banner.imgBanner.getData() > 59 <#assign titulo = banner.titulo.getData() > 60 <#assign subtitulo = banner.subtitulo.getData() > 61 <#assign textoBanner = banner.textoBanner.getData() > 62 <#assign textoBoton = banner.boton.textoBoton.getData() > 63 <#assign tipoBoton = banner.boton.tipoBoton.getData() > 64 <#assign paramGA = banner.boton.paramGA.getData() > 65 <#assign URLInterna = banner.boton.URLInterna.getFriendlyUrl() > 66 <#assign URLExterna = banner.boton.URLExterna.getData() > 67 <#assign target = banner.boton.target.getData() > 68 </#if> 69 70 <#if campaignURL == miPagActual > 71 <script> 72 imprime('ID Banner', '${idBanner}'); 73 imprime('temaColor', '${temaColor}'); 74 </script> 75 76 <style> 77 78 :root{ 79 80 <#if banner.imgBanner.getData()?has_content> 81 --tipografia-color${banner?index}: #FFF; 82 83 --fondo-banner-color-rgb${banner?index}: #FFF; 84 --fondo-banner-color-moz${banner?index}: #FFF; 85 --fondo-banner-color-webkit${banner?index}: #FFF; 86 87 --fondo-banner-imagen${banner?index}: url('${imgBanner}'); 88 --fondo-banner-position${banner?index}: center center; 89 --fondo-banner-size${banner?index}: cover; 90 <#else> 91 --fondo-banner-imagen${banner?index}: none; 92 --fondo-banner-position${banner?index}: unset; 93 --fondo-banner-size${banner?index}: unset; 94 </#if> 95 96 <#if temaColor == "azul1"> 97 --tipografia-color${banner?index}: #FFF; 98 99 --fondo-banner-color-rgb${banner?index}: rgb(4,30,66); 100 --fondo-banner-color-moz${banner?index}: -moz-linear-gradient(90deg, rgba(48,49,63,1) 0%, rgba(4,30,66,1) 25%); 101 --fondo-banner-color-webkit${banner?index}: -webkit-linear-gradient(90deg, rgba(48,49,63,1) 0%, rgba(4,30,66,1) 25%); 102 --fondo-banner-color-linear${banner?index}: linear-gradient(90deg, rgba(48,49,63,1) 0%, rgba(4,30,66,1) 25%); 103 <#-- #30313f -> #041E42 --> 104 105 <#elseif temaColor == "azul2"> 106 --tipografia-color${banner?index}: #FFF; 107 108 --fondo-banner-color-rgb${banner?index}: rgb(5,39,86); 109 --fondo-banner-color-moz${banner?index}: -moz-linear-gradient(90deg, rgba(48,49,63,1) 0%, rgba(5,39,86,1) 25%); 110 --fondo-banner-color-webkit${banner?index}: -webkit-linear-gradient(90deg, rgba(48,49,63,1) 0%, rgba(5,39,86,1) 25%); 111 --fondo-banner-color-linear${banner?index}: linear-gradient(90deg, rgba(48,49,63,1) 0%, rgba(5,39,86,1) 25%); 112 <#-- #30313f -> #052756 --> 113 114 <#elseif temaColor == "negro"> 115 --tipografia-color${banner?index}: #222; 116 <#-- 117 --fondo-banner-color-rgb${banner?index}: rgb(244,242,234); 118 --fondo-banner-color-moz${banner?index}: -moz-linear-gradient(90deg, rgba(255,242,248,1) 0%, rgba(244,242,234,1) 25%); 119 --fondo-banner-color-webkit${banner?index}: -webkit-linear-gradient(90deg, rgba(255,242,248,1) 0%, rgba(244,242,234,1) 25%); 120 --fondo-banner-color-linear${banner?index}: linear-gradient(90deg, rgba(255,242,248,1) 0%, rgba(244,242,234,1) 25%); 121 --> 122 <#-- #fff2f8 -> #fff2f8 --> 123 124 <#elseif temaColor == "blanco"> 125 --tipografia-color${banner?index}: #FFF; 126 127 <#-- 128 --fondo-banner-color-rgb${banner?index}: rgb(226,220,198); 129 --fondo-banner-color-moz${banner?index}: -moz-linear-gradient(90deg, rgba(89,78,44,1) 0%, rgba(226,220,198,1) 25%); 130 --fondo-banner-color-webkit${banner?index}: -webkit-linear-gradient(90deg, rgba(89,78,44,1) 0%, rgba(226,220,198,1) 25%); 131 --fondo-banner-color-linear${banner?index}: linear-gradient(90deg, rgba(89,78,44,1) 0%, rgba(226,220,198,1) 25%); 132 --> 133 <#-- #594e2c -> #e2dcc6; --> 134 <#else> 135 --tipografia-color${banner?index}: #FFF; 136 --fondo-banner-color-linear${banner?index}: #041E42; 137 </#if> 138 139 } 140 141 #${idBanner}{ 142 background: var(--fondo-banner-color-rgb${banner?index}); 143 background: var(--fondo-banner-color-moz${banner?index}); 144 background: var(--fondo-banner-color-webkit${banner?index}); 145 background: var(--fondo-banner-color-linear${banner?index}); 146 147 background-image: var(--fondo-banner-imagen${banner?index}); 148 background-position: var(--fondo-banner-position${banner?index}); 149 background-size: var(--fondo-banner-size${banner?index}); 150 padding: 100px 0; 151 /*margin-top: 120px;*/ 152 } 153 154 #${idBanner} h1 { 155 font-family: 'Noto Sans', sans-serif; 156 font-weight: 700; 157 font-size: 48px; 158 color: var(--tipografia-color${banner?index}); 159 font-style: inherit; 160 text-shadow: none; 161 margin: 0 0 26px; 162 padding: 0; 163 border: 0; 164 } 165 166 #${idBanner} h2{ 167 font-family: 'Noto Sans', sans-serif; 168 color: var(--tipografia-color${banner?index}); 169 font-weight: 600; 170 font-size: 24px; 171 } 172 173 #${idBanner} p{ 174 color: var(--tipografia-color${banner?index}); 175 font-weight: 400; 176 font-size: 18px; 177 font-family: 'Noto Sans', sans-serif; 178 } 179 180 #${idBanner} .btn { 181 font-family: 'Noto Sans', sans-serif; 182 font-size: 16px; 183 padding: 18px 26px; 184 border-radius: 32px; 185 box-shadow: 0px 2px 5px 0px rgba(103, 110, 118, 0.08), 0px 0px 0px 1px rgba(103, 110, 118, 0.16), 0px 1px 1px 0px rgba(0, 0, 0, 0.12); 186 border: none; 187 margin-top: 15px; 188 transition: all .4s ease; 189 -ms-transition: all .4s ease; 190 -webkit-transition: all .4s ease; 191 -o-transition: all .4s ease; 192 -moz-transition: all .4s ease 193 } 194 195 #${idBanner} .btn.btn-white { 196 color: #2178F1; 197 background: #FFFFFF; 198 background: -moz-linear-gradient(to right, #2178F1 50%, #fff 50%); 199 background: -webkit-gradient(linear, to right, color-stop(0%, #2178F1), color-stop(50%, #fff)); 200 background: -webkit-linear-gradient(to right, #2178F1 50%, #fff 50%); 201 background: -o-linear-gradient(to right, #2178F1 50%, #fff 50%); 202 background: -ms-linear-gradient(to right, #2178F1 50%, #fff 50%); 203 background: linear-gradient(to right, #2178F1 50%, #fff 50%); 204 background-size: 200% 100%; 205 background-position: right bottom 206 } 207 208 #${idBanner} .btn.btn-white:hover { 209 color: #FFF; 210 background-position: left bottom 211 } 212 213 214 #${idBanner} .btn.btn-blue { 215 color: #fff; 216 background: #0F6FF5; 217 background: -moz-linear-gradient(to right,#fff 50%,#0F6FF5 50%); 218 background: -webkit-gradient(linear,to right,color-stop(0,#fff),color-stop(50%,#0f6ff5)); 219 background: -webkit-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 220 background: -o-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 221 background: -ms-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 222 background: linear-gradient(to right,#fff 50%,#0f6ff5 50%); 223 background-size: 200% 100%; 224 background-position: right bottom 225 } 226 227 #${idBanner} .btn.btn-blue:hover { 228 color: #0f6ff5; 229 background-position: left bottom 230 } 231 232 233 234 @media screen and (max-width: 991px) { 235 #${idBanner}{ 236 /*margin-top: 105px;*/ 237 } 238 #${idBanner} h1 { 239 margin: 0 0 20px; 240 } 241 } 242 243 </style> 244 245 <#assign URLFinal = "#" > 246 247 <#if URLInterna?has_content && URLExterna?has_content > 248 <#assign URLFinal = URLInterna > 249 <#elseif URLInterna?has_content> 250 <#assign URLFinal = URLInterna > 251 <#elseif URLExterna?has_content> 252 <#assign URLFinal = URLExterna > 253 </#if> 254 255 <div id="${idBanner}" class="section"> 256 <div class="container"> 257 <div class="row"> 258 <div class="col-md-6"> 259 <#if titulo?has_content> <h1>${titulo}</h1> </#if> 260 261 <#if subtitulo?has_content> <h2>${subtitulo}</h1> </#if> 262 <#if textoBanner?has_content> <p>${textoBanner}</p> </#if> 263 <#if textoBoton?has_content> <a class="btn ${tipoBoton}" onclick="${paramGA}" href="${URLFinal}" target="${target}"> ${textoBoton} </a> </#if> 264 265 </div> 266 </div> 267 </div> 268 </div> 269 270 </#if> 271</#list> 272<#include "${templatesPath}/6679309" /> <#-- ACT_snow.ftl --> 273<div id="snow" data-count="200"></div> Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> dev [in template "20101#20128#6583137" at line 23, column 10]
----
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: #if dev == "true" [in template "20101#20128#6583137" at line 23, column 5]
---- 1<#-- 2*************************************************************************** 3ACT_FormularioAB.ftl 4Clave: 6583137 5*************************************************************************** 6--> 7 8 9<#assign serverName = themeDisplay.getURLHome()?replace("http://", "")?replace("https://", "")?split("/")[0]> 10 11<#attempt> 12 <#if serverName == "webserver-actinver-prd.lfr.cloud" || serverName == "webserver-actinver-uat.lfr.cloud"> 13 <#assign dev = "true"> 14 <#assign ambiente = "Desarrollo"> 15 </#if> 16<#recover> 17 <#assign dev = "false"> 18 <#assign ambiente = "Productivo"> 19</#attempt> 20 21<script> 22 23 <#if dev == "true" > 24 function imprime(cadena1, cadena2){ 25 if(cadena2 != "" && cadena2 != undefined){ 26 console.info(cadena1, cadena2); 27 }else{ 28 console.info(cadena1); 29 } 30 } 31 <#else> 32 function imprime(cadenas){} 33 </#if> 34</script> 35 36<#assign article_id = "${randomNamespace}"> 37<#assign currentURL = themeDisplay.getURLCurrent()> 38<#assign miPaginaCompleta = currentURL?split("/")[1] > 39<#assign miPagActual = miPaginaCompleta?split('?')[0] /> 40 41 <script> 42 //imprime('Ambiente', '${ambiente}'); 43 //imprime('ID Random', '${article_id}'); 44 //imprime('Página actual', '${miPagActual}'); 45 </script> 46 47 48 <#list formulario.getSiblings() as formulario> 49 <#assign formABTestSectionID = "formularioSectionAB_" + formulario?index > 50 <#assign formABTestID = "formularioAB_" + formulario?index > 51 <#assign campaignURL = formulario.campaignURL.getData() > 52 <#assign titulo = formulario.titulo.getData() > 53 <#assign legales = formulario.legales.getData() > 54 <#assign tipoForm = formulario.tipoForm.getData() > 55 56 <#if formulario.campaignURL.getData()?has_content && campaignURL == miPagActual > 57 58 <#assign nombre = formulario.nombre.getData() > 59 <#if formulario.nombre.reqNombre.getData() == "true" > 60 <#assign reqNombre = "requerido" > 61 <#else> 62 <#assign reqNombre = "" > 63 </#if> 64 65 <#assign apPat = formulario.apPat.getData()> 66 <#if formulario.apPat.reqApPat.getData() == "true" > 67 <#assign reqApPat = "requerido" > 68 <#else > 69 <#assign reqApPat = "" > 70 </#if> 71 72 <#assign apMat = formulario.apMat.getData()> 73 <#if formulario.apMat.reqApMat.getData() == "true" > 74 <#assign reqApMat = "requerido" > 75 <#else> 76 <#assign reqApMat = "" > 77 </#if> 78 79 <#assign email = formulario.email.getData()> 80 <#if formulario.email.reqMail.getData() = "true" > 81 <#assign reqMail = "requerido" > 82 <#else> 83 <#assign reqMail = "" > 84 </#if> 85 86 <#assign celular = formulario.celular.getData()> 87 <#if formulario.celular.reqCelular.getData() == "true" > 88 <#assign reqCelular = "requerido" > 89 <#else> 90 <#assign reqCelular = "" > 91 </#if> 92 93 <#assign contacto = formulario.contacto.getData()> 94 <#if formulario.contacto.reqContacto.getData() == "true" > 95 <#assign reqContacto = "requerido" > 96 <#else> 97 <#assign reqContacto = "" > 98 </#if> 99 100 101 <#if tipoForm == "horizontal" > 102 <style> 103 104 #${formABTestSectionID} .container{ 105 margin:80px auto; 106 border-radius: 24px; 107 background: #FFF; 108 box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08), 0px 8px 8px -4px rgba(16, 24, 40, 0.03); 109 } 110 111 .formABTest{ 112 display: flex; 113 max-width: 650px; 114 width: 100%; 115 flex-direction: column; 116 align-items: flex-start; 117 gap: 24px; 118 margin: 50px auto; 119 width: 90%; 120 flex-flow: row wrap; 121 justify-content: space-between; 122 font-family: 'Noto Sans', sans-serif; 123 } 124 125 .formABTest .md { 126 flex: 45%; 127 } 128 129 .formABTest .lg { 130 flex: 100%; 131 } 132 133 form h2{ 134 margin-bottom:15px; 135 color: #222; 136 text-align: center; 137 font-family: 'Noto Sans', sans-serif; 138 font-size: 30px; 139 font-style: normal; 140 font-weight: 700; 141 line-height: 38px; /* 126.667% */ 142 } 143 .comp_input_txt, 144 .comp_select_txt { 145 position: relative; 146 font-family: 'Noto Sans', sans-serif; 147 /*margin: 15px 0px;*/ 148 } 149 150 .comp_input_txt label{ 151 color: var(--Gray-700, #344054); 152 font-family: 'Noto Sans', sans-serif; 153 font-size: 14px; 154 font-style: normal; 155 font-weight: 500; 156 line-height: 20px; /* 142.857% */ 157 /* 158 position: absolute; 159 font-size: 16px; 160 color: #1a1a1a; 161 top: -10px; 162 left: 10px; 163 background: #fff; 164 padding: 0px 10px; 165 */ 166 } 167 168 .comp_input_txt input[type="text"], .comp_input_txt input[type="email"], 169 .comp_input_txt input, 170 .comp_select_txt { 171 width: 100%; 172 max-width: 320px; 173 height: 45px; 174 box-sizing: border-box; 175 padding: 15px 10px; 176 border: 1px solid #D0D5DD; 177 border-radius: 4px; 178 background: #ffffff; 179 font-size: 14px; 180 color: #121212; 181 box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05); 182 } 183 184 .comp_select_txt label { 185 font-size: 16px; 186 color: #1a1a1a; 187 display: block; 188 } 189 190 .btn_prin { 191 width: fit-content; 192 padding: 15px 50px; 193 border-radius: 15px; 194 background: #de2f1b; 195 font-family: Arial; 196 font-size: 16px; 197 color: #ffffff; 198 text-align: center; 199 font-weight: bold; 200 margin: 5px auto; 201 cursor: pointer; 202 } 203 204 .btn_prin:hover { 205 background-color: #b73b2e; 206 } 207 208 .aui .select_sim { 209 padding: 10px 2%; 210 border-radius: 4px; 211 font-family: Arial; 212 font-size: 14px; 213 color: #121212; 214 height: 45px; 215 width: 100%; 216 max-width: 320px; 217 } 218 219 .link, 220 a { 221 font-family: 'Noto Sans', sans-serif; 222 font-size: 16px; 223 color: #0276BA; 224 } 225 226 .sepBloq { 227 background: #dadada; 228 height: 1px; 229 margin: 40px auto; 230 } 231 232 .error_input { 233 display: none; 234 width: 90%; 235 padding: 5px 15px; 236 font-family: 'Noto Sans', sans-serif; 237 font-size: 12px; 238 color: #b73b2e; 239 } 240 241 .centrado{ 242 text-align: center; 243 margin: auto; 244 } 245 246 .mt15 { 247 margin-top: 15px !important; 248 } 249 250 251 252 #${formABTestID} .btn { 253 font-family: 'Noto Sans', sans-serif; 254 font-size: 16px; 255 padding: 8px 41px; 256 border: none; 257 margin-top: 15px; 258 transition: all .4s ease; 259 -ms-transition: all .4s ease; 260 -webkit-transition: all .4s ease; 261 -o-transition: all .4s ease; 262 -moz-transition: all .4s ease 263 } 264 265 #${formABTestID} .btn.btn-white { 266 color: #2178F1; 267 border: 1px solid #2178F1; 268 background: #FFFFFF; 269 background: -moz-linear-gradient(to right, #2178F1 50%, #fff 50%); 270 background: -webkit-gradient(linear, to right, color-stop(0%, #2178F1), color-stop(50%, #fff)); 271 background: -webkit-linear-gradient(to right, #2178F1 50%, #fff 50%); 272 background: -o-linear-gradient(to right, #2178F1 50%, #fff 50%); 273 background: -ms-linear-gradient(to right, #2178F1 50%, #fff 50%); 274 background: linear-gradient(to right, #2178F1 50%, #fff 50%); 275 background-size: 200% 100%; 276 background-position: right bottom 277 } 278 279 #${formABTestID} .btn.btn-white:hover { 280 color: #FFF; 281 background-position: left bottom 282 } 283 284 285 #${formABTestID} .btn.btn-blue { 286 color: #fff; 287 border: 1px solid #2178F1; 288 background: #0f6ff5; 289 background: -moz-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 290 background: -webkit-gradient(linear,to right,color-stop(0,#fff),color-stop(50%,#0f6ff5)); 291 background: -webkit-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 292 background: -o-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 293 background: -ms-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 294 background: linear-gradient(to right,#fff 50%,#0f6ff5 50%); 295 background-size: 200% 100%; 296 background-position: right bottom 297 } 298 299 #${formABTestID} .btn.btn-blue:hover { 300 color: #0f6ff5; 301 background-position: left bottom 302 } 303 304 305 #${formABTestID}_exito{ 306 display:none; 307 } 308 #${formABTestID}_error{ 309 display:none; 310 } 311 312 .leglesForm{ 313 margin-top:10px; 314 } 315 316 .leglesForm p, .leglesForm p a{ 317 color: #000; 318 text-align: center; 319 font-family: 'Noto Sans', sans-serif; 320 font-size: 12px; 321 font-style: normal; 322 font-weight: 400; 323 line-height: 18px; /* 150% */ 324 } 325 .leglesForm p a, .leglesForm p a:hover, .leglesForm p a, .leglesForm p a:visited { 326 cursor:pointer; 327 text-decoration:underline; 328 } 329 330 @media only screen and (max-width: 768px) { 331 .formABTest .md { 332 flex: 100%; 333 } 334 335 .comp_input_txt { 336 max-width: 100%; 337 } 338 339 .comp_input_txt input[type="text"], .comp_input_txt input[type="email"], 340 .comp_input_txt input, 341 .select_sim { 342 max-width: 100%; 343 } 344 } 345 </style> 346 </#if> 347 <#if tipoForm == "banner" > 348 <style> 349 350 #${formABTestSectionID} .container{ 351 position: absolute; 352 /*margin:80px auto;*/ 353 border-radius: 24px; 354 background: #FFF; 355 box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08), 0px 8px 8px -4px rgba(16, 24, 40, 0.03); 356 } 357 358 .formABTest{ 359 display: flex; 360 z-index: 15; 361 position: relative; 362 max-width: 650px; 363 width: 100%; 364 flex-direction: column; 365 align-items: flex-start; 366 gap: 12px; 367 margin: 50px auto; 368 width: 90%; 369 flex-flow: row wrap; 370 justify-content: space-between; 371 font-family: 'Noto Sans', sans-serif; 372 /*background:red; */ 373 } 374 375 .formABTest .md { 376 flex: 100%; 377 } 378 379 .formABTest .lg { 380 flex: 100%; 381 } 382 383 form h2{ 384 margin-bottom:15px; 385 color: #222!important; 386 text-align: center; 387 font-family: 'Noto Sans', sans-serif; 388 font-size: 20px; 389 font-style: normal; 390 font-weight: 700; 391 line-height: 25px; /* 126.667% */ 392 } 393 .comp_input_txt, 394 .comp_select_txt { 395 position: relative; 396 font-family: 'Noto Sans', sans-serif; 397 /*margin: 15px 0px;*/ 398 } 399 400 .comp_input_txt label{ 401 color: var(--Gray-700, #344054); 402 font-family: 'Noto Sans', sans-serif; 403 font-size: 14px; 404 font-style: normal; 405 font-weight: 500; 406 line-height: 20px; /* 142.857% */ 407 /* 408 position: absolute; 409 font-size: 16px; 410 color: #1a1a1a; 411 top: -10px; 412 left: 10px; 413 background: #fff; 414 padding: 0px 10px; 415 */ 416 } 417 418 .comp_input_txt input[type="text"], .comp_input_txt input[type="email"], 419 .comp_input_txt input, 420 .comp_select_txt { 421 width: 100%; 422 max-width: 320px; 423 height: 45px; 424 box-sizing: border-box; 425 padding: 15px 10px; 426 border: 1px solid #D0D5DD; 427 border-radius: 4px; 428 background: #ffffff; 429 font-size: 14px; 430 color: #121212; 431 box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05); 432 } 433 434 .comp_select_txt label { 435 font-size: 16px; 436 color: #1a1a1a; 437 display: block; 438 } 439 440 .btn_prin { 441 width: fit-content; 442 padding: 15px 50px; 443 border-radius: 15px; 444 background: #de2f1b; 445 font-family: Arial; 446 font-size: 16px; 447 color: #ffffff; 448 text-align: center; 449 font-weight: bold; 450 margin: 5px auto; 451 cursor: pointer; 452 } 453 454 .btn_prin:hover { 455 background-color: #b73b2e; 456 } 457 458 .aui .select_sim { 459 padding: 10px 2%; 460 border-radius: 4px; 461 font-family: Arial; 462 font-size: 14px; 463 color: #121212; 464 height: 45px; 465 width: 100%; 466 max-width: 320px; 467 } 468 469 .link, 470 a { 471 font-family: 'Noto Sans', sans-serif; 472 font-size: 16px; 473 color: #0276BA; 474 } 475 476 .sepBloq { 477 background: #dadada; 478 height: 1px; 479 margin: 40px auto; 480 } 481 482 .error_input { 483 display: none; 484 width: 90%; 485 padding: 5px 15px; 486 font-family: 'Noto Sans', sans-serif; 487 font-size: 12px; 488 color: #b73b2e; 489 } 490 491 .centrado{ 492 text-align: center; 493 margin: auto; 494 } 495 496 .mt15 { 497 margin-top: 15px !important; 498 } 499 500 501 502 #${formABTestID} .btn { 503 font-family: 'Noto Sans', sans-serif; 504 font-size: 16px; 505 padding: 8px 41px; 506 border: none; 507 margin-top: 15px; 508 transition: all .4s ease; 509 -ms-transition: all .4s ease; 510 -webkit-transition: all .4s ease; 511 -o-transition: all .4s ease; 512 -moz-transition: all .4s ease 513 } 514 515 #${formABTestID} .btn.btn-white { 516 color: #2178F1; 517 border: 1px solid #2178F1; 518 background: #FFFFFF; 519 background: -moz-linear-gradient(to right, #2178F1 50%, #fff 50%); 520 background: -webkit-gradient(linear, to right, color-stop(0%, #2178F1), color-stop(50%, #fff)); 521 background: -webkit-linear-gradient(to right, #2178F1 50%, #fff 50%); 522 background: -o-linear-gradient(to right, #2178F1 50%, #fff 50%); 523 background: -ms-linear-gradient(to right, #2178F1 50%, #fff 50%); 524 background: linear-gradient(to right, #2178F1 50%, #fff 50%); 525 background-size: 200% 100%; 526 background-position: right bottom 527 } 528 529 #${formABTestID} .btn.btn-white:hover { 530 color: #FFF; 531 background-position: left bottom 532 } 533 534 535 #${formABTestID} .btn.btn-blue { 536 color: #fff; 537 border: 1px solid #2178F1; 538 background: #0f6ff5; 539 background: -moz-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 540 background: -webkit-gradient(linear,to right,color-stop(0,#fff),color-stop(50%,#0f6ff5)); 541 background: -webkit-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 542 background: -o-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 543 background: -ms-linear-gradient(to right,#fff 50%,#0f6ff5 50%); 544 background: linear-gradient(to right,#fff 50%,#0f6ff5 50%); 545 background-size: 200% 100%; 546 background-position: right bottom 547 } 548 549 #${formABTestID} .btn.btn-blue:hover { 550 color: #0f6ff5; 551 background-position: left bottom 552 } 553 554 555 #${formABTestID}_exito{ 556 display:none; 557 } 558 #${formABTestID}_error{ 559 display:none; 560 } 561 562 .leglesForm{ 563 margin-top:10px; 564 } 565 566 .leglesForm p, .leglesForm p a{ 567 color: #000!important; 568 text-align: center!important; 569 font-family: 'Noto Sans', sans-serif!important; 570 font-size: 12px!important; 571 font-style: normal; 572 font-weight: 400!important; 573 line-height: 18px!important; /* 150% */ 574 } 575 .leglesForm p a, .leglesForm p a:hover, .leglesForm p a, .leglesForm p a:visited { 576 cursor:pointer; 577 text-decoration:underline!important; 578 } 579 580 @media only screen and (max-width: 768px) { 581 .formABTest .md { 582 flex: 100%; 583 } 584 585 .comp_input_txt { 586 max-width: 100%; 587 } 588 589 .comp_input_txt input[type="text"], .comp_input_txt input[type="email"], 590 .comp_input_txt input, 591 .select_sim { 592 max-width: 100%; 593 } 594 } 595 </style> 596 </#if> 597 598 599 <script> 600 /* 601 imprime('nombre:', '${nombre}'); 602 imprime('requerido:', '${reqNombre}'); 603 imprime('apPat:', '${apPat}'); 604 imprime('requerido:', '${reqApPat}'); 605 imprime('apMat:', '${apMat}'); 606 imprime('requerido:', '${reqApMat}'); 607 imprime('email:', '${email}'); 608 imprime('requerido:', '${reqMail}'); 609 imprime('celular:', '${celular}'); 610 imprime('requerido:', '${reqCelular}'); 611 imprime('contacto:', '${contacto}'); 612 imprime('requerido:', '${reqContacto}'); 613 */ 614 </script> 615 616 <div id="${formABTestSectionID}" class="section"> 617 <div class="container"> 618 <div class="row"> 619 <div class="col-md-12"> 620 621 <form id="${formABTestID}" class="formABTest " > 622 <h2>${titulo}</h2> 623 624 <#if nombre == 'true'> 625 <div class="comp_input_txt md"> 626 <label for="Nombre">Nombre completo</label> <input type="text" id="Nombre" class="${reqNombre}" maxlength="25" onkeyup="value = reempv2(this.value);" autocomplete="new-password"/> 627 <div class="error_input">Error</div> 628 </div> 629 </#if> 630 <#if apPat == 'true'> 631 <div class="comp_input_txt md"> 632 <label for="apPat"> Apellido paterno</label> <input type="text" id="apPat" class="${reqApPat}" maxlength="25" onkeyup="value = reempv2(this.value);" autocomplete="new-password" /> 633 <div class="error_input">Error</div> 634 </div> 635 </#if> 636 <#if apMat == 'true'> 637 <div class="comp_input_txt md"> 638 <label for="apMat">Apellido materno</label> <input type="text" id="apMat" class="${reqApMat}" maxlength="25" onkeyup="value = reempv2(this.value);" autocomplete="new-password" /> 639 <div class="error_input">Error</div> 640 </div> 641 </#if> 642 <#if contacto == 'true'> 643 <div class="comp_input_txt md"> 644 <label for="contacto">Teléfono de contacto</label> <input type="text" id="contacto" class="${reqContacto}" maxlength="10" onkeypress="return check(event);" onpaste="return false" autocomplete="new-password"/> 645 <div class="error_input">Error</div> 646 </div> 647 </#if> 648 <#if celular == 'true'> 649 <div class="comp_input_txt md"> 650 <label for="celular">Celular de contacto</label> <input type="text" id="celular" class="${reqCelular}" maxlength="10" onkeypress="return check(event);" onpaste="return false" autocomplete="new-password"/> 651 <div class="error_input">Error</div> 652 </div> 653 </#if> 654 <#if email == 'true'> 655 <div class="comp_input_txt md"> 656 <label for="email">Correo electrónico</label> <input type="email" id="email" class="${reqMail}" maxlength="45" autocomplete="new-password" /> 657 <div class="error_input">Error</div> 658 </div> 659 <!-- 660 <div class="comp_input_txt md"> 661 <label for="confEmail">Confirmación de Correo electrónico</label> <input type="email" id="confEmail" class="${reqMail}" maxlength="45" autocomplete="new-password"/> 662 <div class="error_input">Error</div> 663 </div> 664 --> 665 </#if> 666 667 668 669 <#-- <div class="sepBloq lg"></div> --> 670 <#-- <div class="lg centrado mt15"> <input type="checkbox"> <a href="#" class="link">Aceptar aviso de privacidad</a> </div> --> 671 <div class="lg centrado"> <button type="submit" class="btn btn-blue">Enviar</button> 672 673 <div class="leglesForm">${legales}</div> 674 675 </div> 676 </div> 677 </form> 678 679 <div id="${formABTestID}_exito"> 680 <p class="centrado">Datos enviados correctamente</p> 681 </div> 682 683 <div id="${formABTestID}_error"> 684 <p class="centrado">Favor de intentar nuevamente</p> 685 </div> 686 687 </div> 688 </div> 689 </div> 690 </div> 691 692 <script> 693 <#if tipoForm == "banner" > 694 $('#bannerAB_1 .container .row').append( '<div class="formBanner col-md-4">' ); 695 $('#bannerAB_1 .container .row .formBanner').append( $('#formularioSectionAB_1') ); 696 </#if> 697 698 var nombreVal="", apPatVal="", apMatVal="", emailVal="", celularVal="", contactoVal=""; 699 700 isValidEmailAddress = function(emailAddress) { 701 var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 702 if ( emailPattern.test(emailAddress) == true ) { 703 return true; 704 } else { 705 return false; 706 } 707 } 708 709 check = function(e) { 710 tecla = (document.all) ? e.keyCode : e.which; 711 712 //Tecla de retroceso para borrar, siempre la permite 713 if (tecla == 8) { 714 return true; 715 } 716 } 717 718 reempv2 = function( txt ) { 719 txt = txt.toUpperCase(); 720 var chars = {'Á':'A', 'É':'E', 'Í':'I', 'Ó':'O', 'Ú':'U'}; 721 txt = txt.replace(/[ÁÉÍÓÚ]/g, m => chars[m]); 722 txt = txt.replace(/[^A-ZÑ\s]/gi, ''); 723 return txt; 724 } 725 726 if ( $('#email').length){ 727 $('#email').change( function() { 728 if ( $('#email').val() !="" ) 729 if ( ! isValidEmailAddress( $('#email').val().toLowerCase() ) ) { 730 $('#email').parent('.comp_input_txt').find('.error_input').html( 'Ingresa un correo válido.' ).show().focus(); 731 } 732 }); 733 734 $('#confEmail').change( function() { 735 if( $('#email').val().toLowerCase() != $('#confEmail').val().toLowerCase() ) { 736 $('#confEmail').parent('.comp_input_txt').find('.error_input').html( 'El correo no coincide.' ).show().focus(); 737 } 738 }); 739 } 740 741 742 $('#${formABTestID}').on('submit', function (event) { 743 event.preventDefault(); 744 $('.error_input').html('').hide(); 745 746 var bndCont = true; 747 748 $(".requerido").each(function() { 749 if ($(this).val() == ""){ 750 bndCont = false; 751 $(this).parent('.comp_input_txt').find('.error_input').html('Campo obligatorio.').show().focus(); 752 } 753 }); 754 755 756 757 if( $('#email').length && $('#email').hasClass('requerido') && $("#email").val().toLowerCase() == "" ){ 758 $('#email').parent('.comp_input_txt').find('.error_input').html( 'Ingresa un correo válido.' ).show().focus(); 759 bndCont = false; 760 } 761 762 if( $('#email').length && $("#email").val().toLowerCase() != "" && !isValidEmailAddress( $("#email").val().toLowerCase() ) ){ 763 $('#email').parent('.comp_input_txt').find('.error_input').html( 'Ingresa un correo válido.' ).show().focus(); 764 bndCont = false; 765 } 766 767 /* 768 if( $('#confEmail').length && $('#confEmail').hasClass('requerido') && $("#confEmail").val().toLowerCase() == "" ){ 769 $('#confEmail').parent('.comp_input_txt').find('.error_input').html( 'Ingresa un correo válido.' ).show().focus(); 770 bndCont = false; 771 } 772 773 if ( ($('#email').length && $("#email").val().toLowerCase() != "") && ($('#confEmail').length && $("#confEmail").val().toLowerCase() != "") && ($("#email").val().toLowerCase() != $("#confEmail").val().toLowerCase() ) ) { 774 $('#confEmail').parent('.comp_input_txt').find('.error_input').html( 'El correo no coincide.' ).show().focus(); 775 bndCont = false; 776 } 777 */ 778 779 780 if( $("#celular").length ){ 781 cel = $("#celular").val();; 782 if( cel.length !=10 ) { 783 $('#celular').parent('.comp_input_txt').find('.error_input').html( 'Ingresa un teléfono a 10 dígitos.' ).show().focus(); 784 bndCont = false; 785 } 786 } 787 788 if( $("#contacto").length ){ 789 790 contacto = $("#contacto").val(); 791 if( contacto.length !=10 ) { 792 $('#contacto').parent('.comp_input_txt').find('.error_input').html( 'Ingresa un teléfono a 10 dígitos.' ).show().focus(); 793 bndCont = false; 794 } else if( contacto==cel ) { 795 $('#contacto').parent('.comp_input_txt').find('.error_input').html( 'Ingresa un teléfono diferente a celular.' ).show().focus(); 796 bndCont = false; 797 } else if( contacto[0]=='0' ) { 798 $('#contacto').parent('.comp_input_txt').find('.error_input').html( 'Ingresa un teléfono válido.' ).show().focus(); 799 bndCont = false; 800 } 801 } 802 803 if( bndCont ) { 804 <#-- Continuar --> 805 imprime('Pasa...'); 806 if( $('#Nombre').length ){ nombreVal = $('#Nombre').val(); } 807 if( $('#apPat').length ){ apPatVal = $('#apPat').val(); } 808 if( $('#apMat').length ){ apMatVal = $('#apMat').val(); } 809 if( $('#email').length ){ emailVal = $('#email').val(); } 810 if( $('#celular').length ){ celularVal = $('#celular').val(); } 811 if( $('#contacto').length ){ contactoVal = $('#contacto').val(); } 812 enviaForm(); 813 814 } 815 }); 816 817 818 function enviaForm(){ 819 jQuery.ajax({ 820 data: JSON.stringify({"draft":false,"formFieldValues":[{"name":"campourl","value":'${miPagActual}'},{"name":"nombre","value":nombreVal},{"name":"apPat","value":apPatVal},{"name":"apMat","value":apMatVal},{"name":"email","value":emailVal},{"name":"celular","value":celularVal},{"name":"contacto","value":contactoVal}]}), 821 url: 'https://webserver-actinver-prd.lfr.cloud/o/headless-form/v1.0/forms/6587963/form-records', 822 type: 'POST', 823 dataType: "json", 824 contentType: "application/json", 825 beforeSend: function () { 826 imprime('Aqui poner loading') 827 }, 828 success: function (response) { 829 console.log ('respuesta Form: ', JSON.stringify(response ) ); 830 $('#${formABTestID}_exito').show(); 831 $('#${formABTestID}').hide(); 832 833 }, error: function(jqXHR, textStatus) { 834 $('#${formABTestID}_error').show(); 835 $('#${formABTestID}').hide(); 836 837 } 838 }); 839 } 840 841 </script> 842 843 844 </#if> 845 </#list>