HUMS SERVICE - Elicotteri

REAL-TIME ANOMALY DETECTION

Health & Usage Monitoring System (HUMS) provides Customers with data storage and infrastructure to deal with specific fleet HUMS and maintenance management, driving down operating costs and increasing aircraft availability.

Login

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> Links  [in template "20115#20151#10383429" at line 194, column 30]

----
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 Links.ExternalTargetURL.getData()...  [in template "20115#20151#10383429" at line 194, column 25]
----
1<#assign siteExpandoBridge = themeDisplay.getScopeGroup().getExpandoBridge() /> 
2<#assign new_restyle = (siteExpandoBridge.hasAttribute("new-restyle")?then(getterUtil.getBoolean(siteExpandoBridge.getAttribute("new-restyle", false)),false)) /> 
3<#if new_restyle?? && new_restyle> 
4    <@leonardo.articleInfo .vars "(I3) Video Launch"/> 
5 
6    <#macro videoBox yt canto video poster> 
7 
8        <div class="video-full-width-container-rounded"> 
9                <button 
10                        class="video-full-width" 
11                        title="play report video" 
12                        onclick="playSingleVideo(this)" 
13                        data-video="${video}" 
14
15                <div class="cover rounded-20"> 
16                    <#if VideoInfo.Image.getData()?? && VideoInfo.Image.getData() != ""> 
17                        <#assign scalingDetails = { 
18                        "desktop": {"alternateImage": {}, "key": "h_560"}, 
19                        "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
20                        "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "h_400"}, 
21                        "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "h_300"} }> 
22                        <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
23                        <picture> 
24                            <source 
25                                    srcset="${posterImg.mobile?replace(" ", "%20")!}" 
26                                    media="(max-width: 576px)" 
27                            /> 
28                            <source 
29                                    srcset="${posterImg.tablet_portrait?replace(" ", "%20")!}" 
30                                    media="(max-width: 768px)" 
31
32                            <source 
33                                    srcset="${posterImg.tablet_landscape?replace(" ", "%20")!}" 
34                                    media="(max-width: 1024px)" 
35
36                            <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop?replace(" ", "%20")!}" /> 
37                        </picture> 
38                    </#if> 
39 
40                    <div class="btn-play"> 
41                        <img 
42                                class="icon" 
43                                src="${themeDisplay.getPathThemeImages()}/img/generic/button-play.svg" 
44                                alt="play" 
45                        /> 
46                        <img 
47                                class="icon-hover" 
48                                src="${themeDisplay.getPathThemeImages()}/img/generic/button-play-hover.svg" 
49                                alt="play" 
50                        /> 
51                    </div> 
52                </div> 
53                </button> 
54        </div> 
55    </#macro> 
56 
57    <#if VideoInfo.Video.getData() != "" ||  VideoInfo.YoutubeId.getData() != "" ||  VideoInfo.CantoUrl.getData() != "" > 
58 
59        <#assign scalingDetails = { 
60        "desktop": {"alternateImage": {}, "key": "w_720"}, 
61        "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_695"}, 
62        "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_768"}, 
63        "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_375"} 
64        }> 
65        <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
66 
67        <#assign isYt = (VideoInfo.YoutubeId.getData() != "") > 
68        <#assign isCanto = (VideoInfo.CantoUrl.getData())?has_content && (VideoInfo.CantoUrl.getData() != "") > 
69 
70        <#if (VideoInfo.CantoUrl.getData())?has_content && VideoInfo.CantoUrl.getData() != ""> 
71            <#assign videoStr = VideoInfo.CantoUrl.getData()> 
72        <#elseif VideoInfo.YoutubeId.getData() != ""> 
73            <#assign videoStr = VideoInfo.YoutubeId.getData()> 
74        <#elseif VideoInfo.Video.getSiblings()?has_content> 
75            <#assign videoStr = ""> 
76            <#list VideoInfo.Video.getSiblings() as cur_Video> 
77                <#assign videoFile = cur_Video.getData()> 
78                <#assign videoFileType = cur_Video.VideoType.getData()> 
79                <#if videoStr?? && videoStr != ""> 
80                    <#assign videoStr = videoStr + ","> 
81                </#if> 
82                <#assign videoStr = videoStr + "${themeDisplay.getPortalURL()}" + videoFile> 
83            </#list> 
84        </#if> 
85 
86        <!--Start Module: Plan Highlights--> 
87        <div class="container-full-width padding-bottom padding-top"> 
88            <div class="container"> 
89                <div class="flex-grid-plus-cards video"> 
90                    <div class="left <#if VideoInfo.ImagePosition.getData() == "right">order-lg-2</#if>"> 
91                        <#if VideoInfo.YoutubeId.getData() != ""> 
92                            <div class="video-full-width-container-rounded"> 
93                                <#assign videoId = VideoInfo.YoutubeId.getData()> 
94                                <button 
95                                        type="button" 
96                                        class="video-full-width video-yt" 
97                                        title="play report video" 
98                                        data-video="${videoId}" 
99                                        id="button-video-${videoId}" 
100
101                                    <div class="cover rounded-20"> 
102                                        <#if VideoInfo.Image.getData()?? && VideoInfo.Image.getData() != ""> 
103                                            <#assign scalingDetails = { 
104                                            "desktop": {"alternateImage": {}, "key": "h_560"}, 
105                                            "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
106                                            "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "h_400"}, 
107                                            "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "h_300"} }> 
108                                            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
109                                            <picture> 
110                                                <source 
111                                                        srcset="${posterImg.mobile?replace(" ", "%20")!}" 
112                                                        media="(max-width: 576px)" 
113                                                /> 
114                                                <source 
115                                                        srcset="${posterImg.tablet_portrait?replace(" ", "%20")!}" 
116                                                        media="(max-width: 768px)" 
117
118                                                <source 
119                                                        srcset="${posterImg.tablet_landscape?replace(" ", "%20")!}" 
120                                                        media="(max-width: 1024px)" 
121
122                                                <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop?replace(" ", "%20")!}" /> 
123                                            </picture> 
124                                        </#if> 
125 
126                                        <div class="btn-play"> 
127                                            <img 
128                                                    class="icon" 
129                                                    src="${themeDisplay.getPathThemeImages()}/img/generic/button-play.svg" 
130                                                    alt="play" 
131                                            /> 
132                                            <img 
133                                                    class="icon-hover" 
134                                                    src="${themeDisplay.getPathThemeImages()}/img/generic/button-play-hover.svg" 
135                                                    alt="play" 
136                                            /> 
137                                        </div> 
138                                    </div> 
139                                </button> 
140                                <div id="video-${videoId}" class="embed-responsive embed-responsive-16by9" style="display:none;"> 
141                                    <iframe 
142                                            id="youtube-player-${videoId}" 
143                                            width="100%" 
144                                            height="100%" 
145                                            frameborder="0" 
146                                            allow="autoplay; fullscreen; encrypted-media" 
147                                            allowfullscreen 
148                                            playsinline 
149                                    ></iframe> 
150                                </div> 
151                            </div> 
152                            <script> 
153                                (function() { 
154                                    const button = document.getElementById("button-video-${videoId}"); 
155                                    const overlay = document.getElementById("video-${videoId}"); 
156                                    const iframe = document.getElementById("youtube-player-${videoId}"); 
157 
158                                    button.addEventListener("click", function() { 
159                                        const videoId = button.dataset.video; 
160 
161                                        iframe.src = "https://www.youtube.com/embed/" + videoId + "?autoplay=1&rel=0"; 
162                                        overlay.style.display = "block"; 
163                                        button.style.display = "none"; 
164                                    }); 
165                                })(); 
166                            </script> 
167                        <#else> 
168                            <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
169                        </#if> 
170                    </div> 
171                    <div class="right component-with-title"> 
172                        <!--Start Module: Highlights Pitch--> 
173                        <div> 
174                            <#if TextInfo.Title.getData() != "" > 
175                                <p class="title title-regular"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></p> 
176                            </#if> 
177                            <#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
178                                <p class="description body-small"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
179                            </#if> 
180                        </div> 
181                        <#if TextInfo.Title.Attach.getData() !=''> 
182                            <div class="card-interview centered download"> 
183                                <#list TextInfo.Title.Attach.getSiblings() as node> 
184                                    <#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != "" && TextInfo.Title.Attach.Label.getData() != ""> 
185                                        <div class="card"> 
186                                            <a href="${TextInfo.Title.Attach.getData()}" target="_blank" class="label-regular" title="${TextInfo.Title.Attach.Label.getData()}" download> 
187                                                <span>${TextInfo.Title.Attach.Label.getData()}</span> 
188                                            </a> 
189                                        </div> 
190                                    </#if> 
191                                </#list> 
192                            </div> 
193                        </#if> 
194                        <#if Links.ExternalTargetURL.getData() !='' || Links.LinkTargetPage.getFriendlyUrl() !=''> 
195                            <div class="flex flex-col gap-4"> 
196                                <#list Links.getSiblings() as node> 
197                                    <#if node.ExternalTargetURL.getData() !='' && node.LinkText.getData() !=''> 
198                                        <#assign url = node.ExternalTargetURL.getData() /> 
199                                    </#if> 
200                                    <#if node.LinkTargetPage.getFriendlyUrl() !='' && node.LinkText.getData() !=''> 
201                                        <#assign url = node.LinkTargetPage.getFriendlyUrl() /> 
202                                    </#if> 
203                                    <a href="${url}" target ="${node.LinkTargetOpenIn.getData()}" title="${node.LinkText.getData()}" class="card-text-arrow"> 
204                                        <p class="body-medium">${node.LinkText.getData()}</p> 
205                                    </a> 
206                                </#list> 
207                            </div> 
208                        </#if> 
209                        <!--End Module: Highlights Pitch--> 
210                    </div> 
211                </div> 
212            </div> 
213        </div> 
214        <!--End Module: Plan Highlights--> 
215    <#else> 
216        <!-- No video selected --> 
217    </#if> 
218<#else> 
219   <@leonardo.articleInfo .vars "(I3) Video Launch"/> 
220   <#assign rndNamespace = randomNamespace> 
221   <#assign currentLayoutFriendlyURL = themeDisplay.getLayout().getFriendlyURL()?remove_beginning("/") /> 
222    
223   <#if currentLayoutFriendlyURL == "home"> 
224   	<#assign cssForTitle = "plan-highlights"> 
225   <#else> 
226   	<#assign cssForTitle = "plan-highlights--investors"> 
227   </#if> 
228    
229   <#macro downloadIcon> 
230   	<svg xmlns="http://www.w3.org/2000/svg" width="14" height="18" viewBox="0 0 14 18"> 
231   		<path fill="#000" fill-rule="nonzero" d="M6.61 12.763l-2.145-2.24a.58.58 0 0 1 0-.796c.211-.22.551-.22.762 0l1.235 1.29V6.75c0-.31.24-.563.538-.563.297 0 .538.252.538.563v4.267l1.235-1.29c.21-.22.551-.22.762 0a.58.58 0 0 1 0 .796l-2.145 2.24a.526.526 0 0 1-.78 0zM12.62 18H1.383C.62 18 0 17.368 0 16.592V5.037c0-.49.19-.968.52-1.314L3.565.544A1.728 1.728 0 0 1 4.82 0h7.797C13.38 0 14 .631 14 1.407v15.186C14 17.37 13.38 18 12.619 18zM4.82 1.125a.682.682 0 0 0-.496.214L1.282 4.52a.755.755 0 0 0-.205.518v11.555c0 .156.137.283.306.283h11.235c.168 0 .305-.127.305-.282V1.407c0-.155-.137-.282-.305-.282H4.821zm-.783 4.5H2.154a.551.551 0 0 1-.539-.563c0-.31.242-.562.539-.562h1.884c.15 0 .27-.126.27-.281V2.25c0-.31.24-.563.538-.563.297 0 .539.252.539.563v1.969c0 .775-.605 1.406-1.347 1.406zm6.193 9.563H3.769a.55.55 0 0 1-.538-.563.55.55 0 0 1 .538-.563h6.462a.55.55 0 0 1 .538.563.55.55 0 0 1-.538.563z"/> 
232   	</svg> 
233   </#macro> 
234   <#macro videoBox yt canto video poster> 
235   	<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
236   		<div class="plan-highlights--wrapper"> 
237   			<#if canto> 
238   				<div class="leo-video canto-video"  
239   					data-video-data='{ 
240   						&quot;showControls&quot;:true, 
241   						&quot;videoSources&quot;:[ 
242   							"${video}" 
243   						], 
244   						&quot;posters&quot;:{ 
245   							&quot;desktop&quot;:&quot;${poster.desktop!}&quot;, 
246   							&quot;tabletLandscape&quot;:&quot;${poster.tablet_landscape!}&quot;, 
247   							&quot;tabletPortrait&quot;:&quot;${poster.tablet_portrait!}&quot;, 
248   							&quot;mobile&quot;:&quot;${poster.mobile!}&quot; 
249   						}}'  
250   					data-img-url-d="${poster.desktop!}"  
251   					data-img-url-tl="${poster.tablet_landscape!}"  
252   					data-img-url-tp="${poster.tablet_portrait!}"  
253   					data-img-url-m="${poster.mobile!}"> 
254   				</div> 
255   			<#elseif yt> 
256   				<div class="youtube-player-container "  
257   					data-video-id="${video}"  
258   					data-div-id = "${randomNamespace}${video}" 
259   					data-img-url-d="${poster.desktop!}"  
260   					data-img-url-tl="${poster.tablet_landscape!}"  
261   					data-img-url-tp="${poster.tablet_portrait!}"  
262   					data-img-url-m="${poster.mobile!}" 
263   					data-use-no-cookie-domain="true"  
264   					data-play-fullscreen="true"  
265   					data-video-controls="true" 
266   					tabindex="1"> 
267   					<div class="youtube-player" id="${randomNamespace}${video}"></div> 
268   				</div> 
269   			<#else> 
270   				<div class="leo-video"  
271   					data-video-data="{ 
272   						&quot;showControls&quot;:true, 
273   						&quot;videoSources&quot;:[ 
274   							${video} 
275   						], 
276   						&quot;posters&quot;:{ 
277   							&quot;desktop&quot;:&quot;${poster.desktop!}&quot;, 
278   							&quot;tabletLandscape&quot;:&quot;${poster.tablet_landscape!}&quot;, 
279   							&quot;tabletPortrait&quot;:&quot;${poster.tablet_portrait!}&quot;, 
280   							&quot;mobile&quot;:&quot;${poster.mobile!}&quot; 
281   						}}"  
282   					data-img-url-d="${poster.desktop!}"  
283   					data-img-url-tl="${poster.tablet_landscape!}"  
284   					data-img-url-tp="${poster.tablet_portrait!}"  
285   					data-img-url-m="${poster.mobile!}"> 
286   				</div> 
287   			</#if> 
288   		</div> 
289   	</div> 
290   </#macro> 
291    
292   <#if VideoInfo.Video.getData() != "" ||  VideoInfo.YoutubeId.getData() != "" ||  VideoInfo.CantoUrl.getData() != "" > 
293    
294   	<#assign isLeft = (VideoInfo.ImagePosition?? && VideoInfo.ImagePosition.getData() != "" && !(VideoInfo.ImagePosition.getData())?contains("right")) > 
295   	 
296   	<#assign scalingDetails = { 
297   		 "desktop": {"alternateImage": {}, "key": "w_720"}, 
298   		 "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_695"}, 
299   		 "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_768"}, 
300   		 "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_375"} 
301   	}> 
302   	<#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
303   	 
304   	<noscript> 
305   		<img src="${posterImg.desktop!}" alt='${posterImg.alt_desktop!}'> 
306   		<img src="${posterImg.tablet_landscape!}" alt='${posterImg.alt_tablet_landscape!}'> 
307   		<img src="${posterImg.tablet_portrait!}" alt='${posterImg.alt_tablet_portrait!}'> 
308   		<img src="${posterImg.mobile!}" alt='${posterImg.alt_mobile!}'> 
309   	</noscript> 
310   	 
311   	<#assign isYt = (VideoInfo.YoutubeId.getData() != "") > 
312   	<#assign isCanto = (VideoInfo.CantoUrl.getData())?has_content && (VideoInfo.CantoUrl.getData() != "") > 
313    
314   	<#if (VideoInfo.CantoUrl.getData())?has_content && VideoInfo.CantoUrl.getData() != ""> 
315   		<#assign videoStr = VideoInfo.CantoUrl.getData()> 
316   	<#elseif VideoInfo.YoutubeId.getData() != ""> 
317   		<#assign videoStr = VideoInfo.YoutubeId.getData()> 
318   	<#elseif VideoInfo.Video.getSiblings()?has_content> 
319   		<#assign videoStr = ""> 
320   		<#list VideoInfo.Video.getSiblings() as cur_Video> 
321   			<#assign videoFile = cur_Video.getData()> 
322   			<#assign videoFileType = cur_Video.VideoType.getData()> 
323   			<#if videoStr?? && videoStr != ""> 
324   				<#assign videoStr = videoStr + ","> 
325   			</#if> 
326   			<#assign videoStr = videoStr + "{&quot;src&quot;:&quot;" + videoFile + "&quot;,&quot;type&quot;:&quot;" + videoFileType + "&quot;}"> 
327   		</#list> 
328   	</#if> 
329    
330   	<!--Start Module: Plan Highlights--> 
331   	<div class="section-container section-container--fixed"> 
332   		<#if TextInfo.Title.isAnchorEnabled?? && getterUtil.getBoolean(TextInfo.Title.isAnchorEnabled.getData())> 
333   			<#assign labelIsLeft = ((TextInfo.Title.isAnchorEnabled.AnchorText.LabelPosition.getData())!"left") == "left"> 
334   			<div class="section-grid layout--tp-col layout--m-col"> 
335   				<#if !labelIsLeft > 
336   					<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"></div> 
337   				</#if> 
338   				<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
339   					<!--Start Module: Goto--> 
340   					<#if TextInfo.Title.isAnchorEnabled.AnchorText.getData() != "" > 
341   						<a class='goto ${(!labelIsLeft)?then("goto--icon-left","")}' href="javascript:void(0)" title="Scroll to next section">${TextInfo.Title.isAnchorEnabled.AnchorText.getData()}<span class="icon--goto"></span></a> 
342   					</#if> 
343   					<!--End Module: Goto--> 
344   				</div> 
345   				<#if labelIsLeft> 
346   					<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"></div> 
347   				</#if> 
348   			</div> 
349   		</#if> 
350   		<div class="${cssForTitle}"> 
351   			<div class="section-grid ${(!isLeft)?then('layout--tp-col-reverse layout--m-col-reverse','layout--tp-col layout--m-col')}"> 
352   				<#if isLeft > 
353   					<@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
354   				</#if> 
355   				<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
356   					<!--Start Module: Highlights Pitch--> 
357   					<div class="highlights-pitch"> 
358   						<#if TextInfo.Title.getData() != "" > 
359   							<#if TextInfo.Title.isH1?? && getterUtil.getBoolean(TextInfo.Title.isH1.getData())> 
360   								<h1 class="highlights-pitch--title"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></h1> 
361   							<#else> 
362   								<h2 class="highlights-pitch--title"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></h2> 
363   							</#if> 
364   							<#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
365   								<p class="highlights-pitch--description"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
366   							</#if> 
367   						</#if> 
368   						<#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != ""> 
369   							<div class="highlights-pitch--file-downloads"> 
370   							<#list TextInfo.Title.Attach.getSiblings() as cur_file> 
371   								<#assign file_info = leonardo.findFileEntryInfo(cur_file.getData()) > 
372   								<div class="highlights-pitch--file"> 
373   									<a class="file"  
374   									   href="${file_info.downloadUrl}"  
375   									   target="_blank"> 
376   										<@downloadIcon /> 
377   										<span class="highlights-pitch--file--filename"> 
378   										${(cur_file.Label.getData())!(file_info.title)!} 
379   										</span> 
380   									</a> 
381   								</div> 
382   							</#list> 
383   							</div> 
384   						</#if> 
385   						<#assign opened = false> 
386   						<#if Links?has_content> 
387   							<#list Links.getSiblings() as cur_Link> 
388   								<#assign targetUrl=leonardo.getTargetUrl(cur_Link.ExternalTargetURL, cur_Link.LinkTargetPage)!> 
389   								<#if targetUrl?has_content> 
390   									<#assign target=leonardo.getTarget(cur_Link.LinkTargetOpenIn!)!> 
391   									<#if opened = false> 
392   								<div class="section-hero-card--targets" > 
393   										<#assign opened = true> 
394   									</#if> 
395   									<div class="section-hero-card--target"> 
396   										<a class="section-hero-card--target--link"  
397   										   href="${targetUrl}"  
398   										   target = "${target}"  
399   										   title="${cur_Link.LinkText.data!}" > 
400   										   ${cur_Link.LinkText.data!} 
401   										   <span class="icon--read-more"></span> 
402   										</a> 
403   									</div> 
404   								</#if> 
405   							</#list> 
406   							<#if opened> 
407   								</div> 
408   							</#if> 
409   						</#if> 
410   					</div> 
411   					<!--End Module: Highlights Pitch--> 
412   				</div> 
413   				<#if !isLeft > 
414   					<@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
415   				</#if> 
416   			</div> 
417   		</div> 
418   	</div> 
419   	<!--End Module: Plan Highlights--> 
420   <#else> 
421   	<!-- No video selected --> 
422   </#if> 
423</#if> 
Non ci sono risultati.
Non ci sono risultati.
Search overlay background

Mobile navigation menu