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 195, 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 195, 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                                            title="<#if TextInfo.Title.getData() != ''><@leonardo.escapeTitle title=TextInfo.Title.getData()/><#else>video youtube</#if>" 
150                                    ></iframe> 
151                                </div> 
152                            </div> 
153                            <script> 
154                                (function() { 
155                                    const button = document.getElementById("button-video-${videoId}"); 
156                                    const overlay = document.getElementById("video-${videoId}"); 
157                                    const iframe = document.getElementById("youtube-player-${videoId}"); 
158 
159                                    button.addEventListener("click", function() { 
160                                        const videoId = button.dataset.video; 
161 
162                                        iframe.src = "https://www.youtube.com/embed/" + videoId + "?autoplay=1&rel=0"; 
163                                        overlay.style.display = "block"; 
164                                        button.style.display = "none"; 
165                                    }); 
166                                })(); 
167                            </script> 
168                        <#else> 
169                            <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
170                        </#if> 
171                    </div> 
172                    <div class="right component-with-title"> 
173                        <!--Start Module: Highlights Pitch--> 
174                        <div> 
175                            <#if TextInfo.Title.getData() != "" > 
176                                <p class="title title-regular"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></p> 
177                            </#if> 
178                            <#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
179                                <p class="description body-small"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
180                            </#if> 
181                        </div> 
182                        <#if TextInfo.Title.Attach.getData() !=''> 
183                            <div class="card-interview centered download"> 
184                                <#list TextInfo.Title.Attach.getSiblings() as node> 
185                                    <#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != "" && TextInfo.Title.Attach.Label.getData() != ""> 
186                                        <div class="card"> 
187                                            <a href="${TextInfo.Title.Attach.getData()}" target="_blank" class="label-regular" title="${TextInfo.Title.Attach.Label.getData()}"> 
188                                                <span>${TextInfo.Title.Attach.Label.getData()}</span> 
189                                            </a> 
190                                        </div> 
191                                    </#if> 
192                                </#list> 
193                            </div> 
194                        </#if> 
195                        <#if Links.ExternalTargetURL.getData() !='' || Links.LinkTargetPage.getFriendlyUrl() !=''> 
196                            <div class="flex flex-col gap-4"> 
197                                <#list Links.getSiblings() as node> 
198                                    <#if node.ExternalTargetURL.getData() !='' && node.LinkText.getData() !=''> 
199                                        <#assign url = node.ExternalTargetURL.getData() /> 
200                                    </#if> 
201                                    <#if node.LinkTargetPage.getFriendlyUrl() !='' && node.LinkText.getData() !=''> 
202                                        <#assign url = node.LinkTargetPage.getFriendlyUrl() /> 
203                                    </#if> 
204                                    <a href="${url}" target ="${node.LinkTargetOpenIn.getData()}" title="${node.LinkText.getData()}" class="card-text-arrow"> 
205                                        <p class="body-medium">${node.LinkText.getData()}</p> 
206                                    </a> 
207                                </#list> 
208                            </div> 
209                        </#if> 
210                        <!--End Module: Highlights Pitch--> 
211                    </div> 
212                </div> 
213            </div> 
214        </div> 
215        <!--End Module: Plan Highlights--> 
216    <#else> 
217        <!-- No video selected --> 
218    </#if> 
219<#else> 
220   <@leonardo.articleInfo .vars "(I3) Video Launch"/> 
221   <#assign rndNamespace = randomNamespace> 
222   <#assign currentLayoutFriendlyURL = themeDisplay.getLayout().getFriendlyURL()?remove_beginning("/") /> 
223 
224   <#if currentLayoutFriendlyURL == "home"> 
225   	<#assign cssForTitle = "plan-highlights"> 
226   <#else> 
227   	<#assign cssForTitle = "plan-highlights--investors"> 
228   </#if> 
229 
230   <#macro downloadIcon> 
231   	<svg xmlns="http://www.w3.org/2000/svg" width="14" height="18" viewBox="0 0 14 18"> 
232   		<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"/> 
233   	</svg> 
234   </#macro> 
235   <#macro videoBox yt canto video poster> 
236   	<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
237   		<div class="plan-highlights--wrapper"> 
238   			<#if canto> 
239   				<div class="leo-video canto-video" 
240   					data-video-data='{ 
241   						&quot;showControls&quot;:true, 
242   						&quot;videoSources&quot;:[ 
243   							"${video}" 
244   						], 
245   						&quot;posters&quot;:{ 
246   							&quot;desktop&quot;:&quot;${poster.desktop!}&quot;, 
247   							&quot;tabletLandscape&quot;:&quot;${poster.tablet_landscape!}&quot;, 
248   							&quot;tabletPortrait&quot;:&quot;${poster.tablet_portrait!}&quot;, 
249   							&quot;mobile&quot;:&quot;${poster.mobile!}&quot; 
250   						}}' 
251   					data-img-url-d="${poster.desktop!}" 
252   					data-img-url-tl="${poster.tablet_landscape!}" 
253   					data-img-url-tp="${poster.tablet_portrait!}" 
254   					data-img-url-m="${poster.mobile!}"> 
255   				</div> 
256   			<#elseif yt> 
257   				<div class="youtube-player-container " 
258   					data-video-id="${video}" 
259   					data-div-id = "${randomNamespace}${video}" 
260   					data-img-url-d="${poster.desktop!}" 
261   					data-img-url-tl="${poster.tablet_landscape!}" 
262   					data-img-url-tp="${poster.tablet_portrait!}" 
263   					data-img-url-m="${poster.mobile!}" 
264   					data-use-no-cookie-domain="true" 
265   					data-play-fullscreen="true" 
266   					data-video-controls="true" 
267   					tabindex="1"> 
268   					<div class="youtube-player" id="${randomNamespace}${video}"></div> 
269   				</div> 
270   			<#else> 
271   				<div class="leo-video" 
272   					data-video-data="{ 
273   						&quot;showControls&quot;:true, 
274   						&quot;videoSources&quot;:[ 
275   							${video} 
276   						], 
277   						&quot;posters&quot;:{ 
278   							&quot;desktop&quot;:&quot;${poster.desktop!}&quot;, 
279   							&quot;tabletLandscape&quot;:&quot;${poster.tablet_landscape!}&quot;, 
280   							&quot;tabletPortrait&quot;:&quot;${poster.tablet_portrait!}&quot;, 
281   							&quot;mobile&quot;:&quot;${poster.mobile!}&quot; 
282   						}}" 
283   					data-img-url-d="${poster.desktop!}" 
284   					data-img-url-tl="${poster.tablet_landscape!}" 
285   					data-img-url-tp="${poster.tablet_portrait!}" 
286   					data-img-url-m="${poster.mobile!}"> 
287   				</div> 
288   			</#if> 
289   		</div> 
290   	</div> 
291   </#macro> 
292 
293   <#if VideoInfo.Video.getData() != "" ||  VideoInfo.YoutubeId.getData() != "" ||  VideoInfo.CantoUrl.getData() != "" > 
294 
295   	<#assign isLeft = (VideoInfo.ImagePosition?? && VideoInfo.ImagePosition.getData() != "" && !(VideoInfo.ImagePosition.getData())?contains("right")) > 
296 
297   	<#assign scalingDetails = { 
298   		 "desktop": {"alternateImage": {}, "key": "w_720"}, 
299   		 "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_695"}, 
300   		 "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_768"}, 
301   		 "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_375"} 
302   	}> 
303   	<#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
304 
305   	<noscript> 
306   		<img src="${posterImg.desktop!}" alt='${posterImg.alt_desktop!}'> 
307   		<img src="${posterImg.tablet_landscape!}" alt='${posterImg.alt_tablet_landscape!}'> 
308   		<img src="${posterImg.tablet_portrait!}" alt='${posterImg.alt_tablet_portrait!}'> 
309   		<img src="${posterImg.mobile!}" alt='${posterImg.alt_mobile!}'> 
310   	</noscript> 
311 
312   	<#assign isYt = (VideoInfo.YoutubeId.getData() != "") > 
313   	<#assign isCanto = (VideoInfo.CantoUrl.getData())?has_content && (VideoInfo.CantoUrl.getData() != "") > 
314 
315   	<#if (VideoInfo.CantoUrl.getData())?has_content && VideoInfo.CantoUrl.getData() != ""> 
316   		<#assign videoStr = VideoInfo.CantoUrl.getData()> 
317   	<#elseif VideoInfo.YoutubeId.getData() != ""> 
318   		<#assign videoStr = VideoInfo.YoutubeId.getData()> 
319   	<#elseif VideoInfo.Video.getSiblings()?has_content> 
320   		<#assign videoStr = ""> 
321   		<#list VideoInfo.Video.getSiblings() as cur_Video> 
322   			<#assign videoFile = cur_Video.getData()> 
323   			<#assign videoFileType = cur_Video.VideoType.getData()> 
324   			<#if videoStr?? && videoStr != ""> 
325   				<#assign videoStr = videoStr + ","> 
326   			</#if> 
327   			<#assign videoStr = videoStr + "{&quot;src&quot;:&quot;" + videoFile + "&quot;,&quot;type&quot;:&quot;" + videoFileType + "&quot;}"> 
328   		</#list> 
329   	</#if> 
330 
331   	<!--Start Module: Plan Highlights--> 
332   	<div class="section-container section-container--fixed"> 
333   		<#if TextInfo.Title.isAnchorEnabled?? && getterUtil.getBoolean(TextInfo.Title.isAnchorEnabled.getData())> 
334   			<#assign labelIsLeft = ((TextInfo.Title.isAnchorEnabled.AnchorText.LabelPosition.getData())!"left") == "left"> 
335   			<div class="section-grid layout--tp-col layout--m-col"> 
336   				<#if !labelIsLeft > 
337   					<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"></div> 
338   				</#if> 
339   				<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
340   					<!--Start Module: Goto--> 
341   					<#if TextInfo.Title.isAnchorEnabled.AnchorText.getData() != "" > 
342   						<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> 
343   					</#if> 
344   					<!--End Module: Goto--> 
345   				</div> 
346   				<#if labelIsLeft> 
347   					<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"></div> 
348   				</#if> 
349   			</div> 
350   		</#if> 
351   		<div class="${cssForTitle}"> 
352   			<div class="section-grid ${(!isLeft)?then('layout--tp-col-reverse layout--m-col-reverse','layout--tp-col layout--m-col')}"> 
353   				<#if isLeft > 
354   					<@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
355   				</#if> 
356   				<div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
357   					<!--Start Module: Highlights Pitch--> 
358   					<div class="highlights-pitch"> 
359   						<#if TextInfo.Title.getData() != "" > 
360   							<#if TextInfo.Title.isH1?? && getterUtil.getBoolean(TextInfo.Title.isH1.getData())> 
361   								<h1 class="highlights-pitch--title"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></h1> 
362   							<#else> 
363   								<h2 class="highlights-pitch--title"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></h2> 
364   							</#if> 
365   							<#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
366   								<p class="highlights-pitch--description"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
367   							</#if> 
368   						</#if> 
369   						<#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != ""> 
370   							<div class="highlights-pitch--file-downloads"> 
371   							<#list TextInfo.Title.Attach.getSiblings() as cur_file> 
372   								<#assign file_info = leonardo.findFileEntryInfo(cur_file.getData()) > 
373   								<div class="highlights-pitch--file"> 
374   									<a class="file" 
375   									   href="${file_info.downloadUrl}" 
376   									   target="_blank"> 
377   										<@downloadIcon /> 
378   										<span class="highlights-pitch--file--filename"> 
379   										${(cur_file.Label.getData())!(file_info.title)!} 
380   										</span> 
381   									</a> 
382   								</div> 
383   							</#list> 
384   							</div> 
385   						</#if> 
386   						<#assign opened = false> 
387   						<#if Links?has_content> 
388   							<#list Links.getSiblings() as cur_Link> 
389   								<#assign targetUrl=leonardo.getTargetUrl(cur_Link.ExternalTargetURL, cur_Link.LinkTargetPage)!> 
390   								<#if targetUrl?has_content> 
391   									<#assign target=leonardo.getTarget(cur_Link.LinkTargetOpenIn!)!> 
392   									<#if opened = false> 
393   								<div class="section-hero-card--targets" > 
394   										<#assign opened = true> 
395   									</#if> 
396   									<div class="section-hero-card--target"> 
397   										<a class="section-hero-card--target--link" 
398   										   href="${targetUrl}" 
399   										   target = "${target}" 
400   										   title="${cur_Link.LinkText.data!}" > 
401   										   ${cur_Link.LinkText.data!} 
402   										   <span class="icon--read-more"></span> 
403   										</a> 
404   									</div> 
405   								</#if> 
406   							</#list> 
407   							<#if opened> 
408   								</div> 
409   							</#if> 
410   						</#if> 
411   					</div> 
412   					<!--End Module: Highlights Pitch--> 
413   				</div> 
414   				<#if !isLeft > 
415   					<@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
416   				</#if> 
417   			</div> 
418   		</div> 
419   	</div> 
420   	<!--End Module: Plan Highlights--> 
421   <#else> 
422   	<!-- No video selected --> 
423   </#if> 
424</#if> 
Non ci sono risultati.
Non ci sono risultati.
Search overlay background

Mobile navigation menu