The following has evaluated to null or missing:
==> cur_cardGroup.cardIcon.getAttribute('alt') [in template "776318#776366#PP_NEW_MODAL_HEADER" at line 39, column 77]
----
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: ${cur_cardGroup.cardIcon.getAttribute... [in template "776318#776366#PP_NEW_MODAL_HEADER" at line 39, column 75]
----
1<div class="c-calc-modal">
2 <div class="container-fluid c-calc-header__container">
3 <div class="container">
4 <header class="c-calc-header">
5 <a href="/" class="c-calc-header__logo">
6 <#if headerLogo?? && headerLogo.getData()?? && headerLogo.getData() != "">
7 <img alt="${headerLogo.getAttribute('alt')}" data-fileentryid="${headerLogo.getAttribute('fileEntryId')}" src="${headerLogo.getData()}" />
8 </#if>
9 </a>
10 <#if closeButtonText?? && closeButtonText.getData()?? && closeButtonText.getData() != "">
11 <a href="#" class="c-calc-header__close js-close-header"> <span class="icon-arrow-right"></span> ${closeButtonText.getData()}</a>
12 </#if>
13 </header>
14 </div>
15 </div>
16
17
18 <div class="section-wrapper">
19 <div class="c-buttons-text c-buttons-text--seg section-wrapper">
20 <#if title?? && title.getData()?? && title.getData() != "">
21
22 <p class="c-buttons-text__title c-buttons-text__title--insuranceCard">
23 ${title.getData()}
24 </p>
25 </#if>
26 <p class="c-buttons-text__subtitle c-buttons-text__subtitle--insuranceCard">
27 <#if subtitle?? && subtitle.getData()?? && subtitle.getData() != "">
28 ${subtitle.getData()}
29 </#if>
30 </p>
31 </div>
32
33 <div id="insuranceCard--slider">
34 <div class="owl-slider js-modal-carousel owl-carousel owl-theme owl-loaded owl-drag" id="carouselTipoSeguros">
35 <#if cardGroup.getSiblings()?has_content>
36 <#list cardGroup.getSiblings() as cur_cardGroup>
37 <div class="c-insuranceCard">
38 <div class="c-insuranceCard__image">
39 <img alt="${cur_cardGroup.cardIcon.getAttribute('alt')}" data-fileentryid="${cur_cardGroup.cardIcon.getAttribute('fileEntryId')}" src="${cur_cardGroup.cardIcon.getData()}" />
40 </div>
41 <p>
42 <#if cur_cardGroup.cardTitle?? && cur_cardGroup.cardTitle.getData()?? && cur_cardGroup.cardTitle.getData() != "">
43 ${cur_cardGroup.cardTitle.getData()}
44 </#if>
45 </p>
46 <#assign linkTarget = "_self">
47 <#assign link = "#">
48 <#if cur_cardGroup.buttonLink?? && cur_cardGroup.buttonLink.getData()?? && cur_cardGroup.buttonLink.getData() != "">
49 <#assign link = cur_cardGroup.buttonLink.getData()>
50 </#if>
51 <#if cur_cardGroup.buttonTarget?? && cur_cardGroup.buttonTarget.getData()?? && cur_cardGroup.buttonTarget.getData() != "">
52 <#assign linkTarget = cur_cardGroup.buttonTarget.getData()>
53 </#if>
54 <a target="${linkTarget}" class="button variant-contained color-blue" href="${link}">
55 <span class="button__text">
56 <#if cur_cardGroup.cardButtonText?? && cur_cardGroup.cardButtonText.getData()?? && cur_cardGroup.cardButtonText.getData() != "">
57 ${cur_cardGroup.cardButtonText.getData()}
58 </#if>
59 </span>
60 </a>
61 </div>
62 </#list>
63 </#if>
64 </div>
65 </div>
66 <div class="c-insuranceContent">
67 <p class="c-insuranceContent__text--small">
68 <#if middleText?? && middleText.getData()?? && middleText.getData() != "">
69 ${middleText.getData()}
70 </#if>
71 </p>
72 <#if secondMiddleText?? && secondMiddleText.getData()?? && secondMiddleText.getData() != "" && middleLink?? && middleLink.getData()?? && middleLink.getData() != "" >
73 <#assign linkTarget = "_self">
74 <#if middleLinkTarget?? && middleLinkTarget.getData()?? && middleLinkTarget.getData() != "">
75 <#assign linkTarget = middleLinkTarget.getData()>
76 </#if>
77 <a class="button-transparent blue" href="${middleLink.getData()}" target="${linkTarget}">
78 ${secondMiddleText.getData()}
79 <span class="icon-arrow-right icon-chevron-right c-insurance-card__srrow-icon"></span>
80 </a>
81 </#if>
82 </div>
83 <div class="container-fluid">
84 <div class="c-insuranceContentCard">
85 <div class="c-insuranceContentCard__content">
86 <#if phoneCallGroup.callTitle?? && phoneCallGroup.callTitle.getData()?? && phoneCallGroup.callTitle.getData() != "">
87 <p class="c-insuranceContentCard__title">
88 ${phoneCallGroup.callTitle.getData()}
89 </p>
90 </#if>
91
92 <#if phoneCallGroup.callSubtitle?? && phoneCallGroup.callSubtitle.getData()?? && phoneCallGroup.callSubtitle.getData() != "">
93 <p class="c-insuranceContentCard__text">
94 ${phoneCallGroup.callSubtitle.getData()}
95 </p>
96 </#if>
97 </div>
98 <#assign CallLinkTarget = "_self">
99 <#assign callLink = "#">
100 <#if phoneCallGroup.callButtonLink?? && phoneCallGroup.callButtonLink.getData()?? && phoneCallGroup.callButtonLink.getData() != "">
101 <#assign callLink = phoneCallGroup.callButtonLink.getData()>
102 </#if>
103 <#if phoneCallGroup.callButtonTarget?? && phoneCallGroup.callButtonTarget.getData()?? && phoneCallGroup.callButtonTarget.getData() != "">
104 <#assign CallLinkTarget = phoneCallGroup.callButtonTarget.getData()>
105 </#if>
106 <#if phoneCallGroup.callButtonText?? && phoneCallGroup.callButtonText.getData()?? && phoneCallGroup.callButtonText.getData() != "">
107 <a class="button variant-outlined color-blue" href="${callLink}" target="${CallLinkTarget}">
108 <span class="button__text">
109 <svg fill="none" height="12" viewbox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"> <path d="M2.41 5.19C3.37614 7.07795 4.91206 8.61386 6.8 9.58L8.27 8.11C8.46816 7.92795 8.757 7.88442 9 8C9.76807 8.25245 10.5715 8.38073 11.38 8.38C11.712 8.40397 11.976 8.66802 12 9V11.33C12 11.7 11.7 12 11.33 12C5.07261 12 0 6.92739 0 0.67C0 0.299969 0.299969 0 0.67 0H3C3.37003 0 3.67 0.299969 3.67 0.67C3.65787 1.45912 3.76921 2.24528 4 3C4.07587 3.2406 4.01017 3.50341 3.83 3.68L2.41 5.19Z" fill="#00008F"></path> </svg>
110 ${phoneCallGroup.callButtonText.getData()}
111 </span>
112 </a>
113 </#if>
114 </div>
115
116 <div class="c-insuranceContentCard">
117 <div class="c-insuranceContentCard__content">
118 <#if officeGroup.officeTitle?? && officeGroup.officeTitle.getData()?? && officeGroup.officeTitle.getData() != "">
119 <p class="c-insuranceContentCard__title">
120 ${officeGroup.officeTitle.getData()}
121 </p>
122 </#if>
123 <#if officeGroup.officeSubtitle?? && officeGroup.officeSubtitle.getData()?? && officeGroup.officeSubtitle.getData() != "">
124 <p class="c-insuranceContentCard__text">
125 ${officeGroup.officeSubtitle.getData()}
126 </p>
127 </#if>
128 </div>
129 <#assign officeLinkTarget = "_self">
130 <#assign officeLink = "#">
131 <#if officeGroup.officeButtonLink?? && officeGroup.officeButtonLink.getData()?? && officeGroup.officeButtonLink.getData() != "">
132 <#assign officeLink = officeGroup.officeButtonLink.getData()>
133 </#if>
134 <#if officeGroup.officeButtonTarget?? && officeGroup.officeButtonTarget.getData()?? && officeGroup.officeButtonTarget.getData() != "">
135 <#assign officeLinkTarget = officeGroup.officeButtonTarget.getData()>
136 </#if>
137 <#if officeGroup.officeButtonText?? && officeGroup.officeButtonText.getData()?? && officeGroup.officeButtonText.getData() != "">
138 <a target="${officeLinkTarget}" class="button variant-outlined color-blue" href="#">
139 <span class="button__text">
140 ${officeGroup.officeButtonText.getData()}
141 </span>
142 </a>
143 </#if>
144 </div>
145 </div>
146</div>
147 </div>
148
149
150
151
152<script>
153
154 $( document ).ready(function() {
155 //let abNavPrev = '<svg class="ab-nav-prev" width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(-883.000000, -605.000000)"> <g transform="translate(883.000000, 605.000000)"> <g transform="translate(16.000000, 16.000000) scale(-1, 1) translate(-16.000000, -16.000000) "> <polygon points="0 0 32 0 32 32 0 32"></polygon> <polygon fill="#00008F" fill-rule="nonzero" points="13.2733333 2 10.4533333 4.82 19.6133333 14 10.4533333 23.18 13.2733333 26 25.2733333 14"></polygon> </g> </g> </g> </g></svg>';
156 //let abNavNext ='<svg class="ab-nav-next" width="32px" height="32px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g transform="translate(-883.000000, -605.000000)"><g transform="translate(883.000000, 605.000000)"> <g transform="translate(16.000000, 16.000000) scale(-1, 1) translate(-16.000000, -16.000000) "> <polygon points="0 0 32 0 32 32 0 32"></polygon><polygon fill="#00008F" fill-rule="nonzero" points="13.2733333 2 10.4533333 4.82 19.6133333 14 10.4533333 23.18 13.2733333 26 25.2733333 14"></polygon> </g> </g> </g> </g></svg>';
157
158 let abNavPrev = '<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9 15L2 8L9 1" stroke="#00008F" stroke-width="1.5" stroke-linecap="round"/></svg>';
159 let abNavNext = '<svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L8 8L1 15" stroke="#00008F" stroke-width="1.5" stroke-linecap="round"/></svg>';
160
161 let chevron_l = '<svg xmlns="http://www.w3.org/2000/svg" width="35px" height="35px" viewBox="0 0 24 24"><path fill="#00008F" d="M14.41 18.16L8.75 12.5l5.66-5.66l.7.71l-4.95 4.95l4.95 4.95z"/></svg>';
162 let chevron_r = '<svg xmlns="http://www.w3.org/2000/svg" width="35px" height="35px" viewBox="0 0 24 24"><path fill="#00008F" d="M14.41 18.16L8.75 12.5l5.66-5.66l.7.71l-4.95 4.95l4.95 4.95z"/></svg>';
163
164
165 let detener;
166 let ind = 0;
167 let tiempo = 3000;
168 let activarAuto = false;
169
170 let modd = document.getElementsByClassName("c-calc-modal");
171 let carr = document.getElementsByClassName('js-modal-carousel');
172
173 let evnts = ["scroll", "touchmove", "touchstart", "touchend", "mousedown", "mouseup", "dragstart", "drag", "dragend", "dragenter", "dragover", "dragleave", "drop"];
174
175
176 window.addEventListener('resize', carouselResponsive);
177
178 evnts.forEach(e => {
179 modd[0].addEventListener(e, stopcarrousel);
180 carr[0].addEventListener(e, stopcarrousel);
181 })
182
183
184 let observer = new MutationObserver(function(mutations){
185 mutations.forEach(function(mutation){
186 if(mutation.type == 'attributes' && mutation.attributeName == 'class'){
187 $('.js-modal-carousel').trigger('stop.owl.autoplay');
188 changeIco();
189 waiting();
190 }
191 })
192 })
193
194 let config = {
195 attributes: true,
196 }
197
198 observer.observe(modd[0], config);
199
200
201 carouselResponsive();
202
203 function stopcarrousel(){
204 $('.js-modal-carousel').trigger('stop.owl.autoplay');
205 waiting();
206 }
207
208 function waiting(){
209 setTimeout(function(){
210 $('.js-modal-carousel').trigger('stop.owl.autoplay');
211 },tiempo)
212 }
213
214
215 /*
216 function activeAuto(){
217
218 if(!activarAuto){
219 $('.js-modal-carousel').trigger('play.owl.autoplay', [tiempo]);
220 $('.js-modal-carousel').addClass('autoplay-enabled');
221 activarAuto = true;
222 }
223
224 } */
225
226
227 function carouselResponsive () {
228
229 let wi = window.innerWidth;
230
231 $('.js-modal-carousel').owlCarousel({
232
233 autoplay:false,
234 autoplayTimeout:tiempo,
235 autoplayHoverPause:true,
236 navText: [abNavPrev, abNavNext],
237 margin:10,
238 loop:true,
239 responsive:{
240 0:{
241 items:1,
242 center:true,
243 stagePadding: 74,
244 slideBy: 1,
245 nav:false,
246 margin: 8
247 },
248 600:{
249 items:3,
250 slideBy:1,
251 nav:false,
252 margin: 16
253 },
254 1000:{nav:true,
255 items:4,
256 slideBy:1,
257 margin: 21,
258 stagePadding: 1 //5 muestra la card completa
259 }
260 }
261 })
262
263 $('.js-modal-carousel').trigger('stop.owl.autoplay');
264 waiting();
265
266
267 }
268
269 function tinyCarouselPaging() {
270 }
271
272 function changeIco(){
273
274 $(".owl-prev").empty();
275 $(".owl-next").empty();
276
277 $(".owl-next").append(chevron_r);
278 $(".owl-prev").append(chevron_l);
279 }
280
281 });
282</script>

¿Cuáles son las gestiones de la DGT que puedes hacer sin moverte de casa?
En la actualidad, si dispones del certificado digital, puedes realizar múltiples gestiones sin tener que moverte de casa. Esto permite ahorrar mucho tiempo, al no tener que solicitar una cita o hacer colas para recibir una atención presencial. La DGT no ha querido quedarse atrás en estos avances y, por eso, ha aumentado el número de trámites que se pueden llevar a cabo de forma no presencial a través de su sede electrónica o la app miDGT.
Tipos de trámites de la DGT 100% online
No todos los trámites de la DGT se pueden llevar a cabo 100% desde casa, sin embargo, desde la Dirección General de Tráfico especifican cuáles es posible realizar tanto a través de la sede electrónica como de la aplicación que cualquier persona puede descargarse.
Gestión de multas y sanciones
El pago de multas, presentación de alegaciones, consulta de multas pendientes o la identificación del conductor que estaba al volante de un vehículo en el momento de emitir la sanción es posible realizarlo a través de la web de la DGT. Para ello, se requiere certificado electrónico o, en su defecto, la cl@ve. Solo el pago de multas y la identificación de la persona que conducía un coche, moto u otro medio de transporte pueden hacerse, también, a través de la app miDGT. Una buena manera de agilizar todos estos trámites.
Administración de los permisos de conducir
En el caso de las gestiones relacionadas con los permisos de conducir, tan solo hay siete trámites que se pueden hacer de forma totalmente online. Estos son la consulta y cursos recuperación de puntos, el informe de datos de conductor, duplicado de permisos, cambio de la dirección para las notificaciones y consulta de las notas del examen de conducir. Asimismo, las comprobaciones de la tramitación del permiso se pueden llevar a cabo 100% desde casa para evitar desplazamientos innecesarios.
Trámites de vehículos
Los trámites relacionados con la renovación del permiso de circulación por el cambio de datos, duplicado de la ficha técnica electrónica o del permiso de circulación, petición de informe de un vehículo, consulta del distintivo ambiental, comunicación del conductor habitual o el informe telemático de vehículos para profesionales se pueden hacer desde la sede electrónica. Algunos de ellos, también se realizan desde la app miDGT.
Otras gestiones de la DGT
Existen otras gestiones de la DGT que es posible hacer tanto desde la sede electrónica como desde la aplicación móvil: compra y actualización de tasas, solicitud de cita previa y verificación de documentos. Sin embargo, el registro en el sistema cl@ve, presentación de quejas o sugerencias y la verificación de equipos o firmas debe hacerse solo a través de la sede electrónica. Así, en pocos minutos, los trámites se podrán completar.
Trámites que aún deben realizarse presencialmente
Todos los trámites anteriores permiten que el 94% de las gestiones que puedan realizar los ciudadanos sean online. Sin embargo, existen algunas que todavía se tienen que hacer presencialmente. Es el caso de los permisos para mercancías peligrosas ADR o el canje de permisos extranjeros y expedidos por FFCCSE. No obstante, se espera que en el futuro este tipo de gestiones también se puedan efectuar a través de internet.
La tecnología ha traído consigo varios cambios y beneficios, entre los que está poder ahorrar tiempo o evitar pedir permisos en el trabajo para realizar un trámite. Tanto la sede electrónica de la DGT como la aplicación móvil están operativas las 24 horas los 365 días del año con el objetivo de facilitar las solicitudes, presentaciones y consultas que puedas tener como ciudadano de una manera mucho más rápida y eficaz, sin moverte de casa.
Continguts relacionats


