The following has evaluated to null or missing: ==> item.background_color [in template "10113#11634844#45735967" at line 70, column 22] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be 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 item.background_color.getData() =... [in template "10113#11634844#45735967" at line 70, column 17] ----
1<#assign liferay_theme = PortletJspTagLibs["/META-INF/liferay-theme.tld"] />
2<#assign portlet = PortletJspTagLibs["/META-INF/liferay-portlet.tld"] />
3<@liferay_theme["defineObjects"] />
4<@portlet["defineObjects"] />
5
6<#assign today = .now?string('yyyy-MM-dd')?date('yyyy-MM-dd') />
7<#if TransitionSpeed.getData() != "" >
8 <#assign autoPlay = TransitionSpeed.getData()?number * 1000 />
9<#else>
10 <#assign autoPlay = 10000 * 1000 />
11</#if>
12
13<#assign css_folder = themeDisplay.getPathThemeCss() />
14<#assign javascript_folder = themeDisplay.getPathThemeJavaScript() />
15
16<link href="${css_folder}/theme-pablo/start-page-carousel.css" rel="stylesheet" type="text/css" media="all>
17
18<#--<script src="${javascript_folder}/theme-pablo/start_page_carousel.js"></script>-->
19
20
21<div class="MainCarousel-wrap relative">
22 <section class="MainCarousel-main js-spc-carousel hidden-loading" data-autoplay="${autoPlay}">
23 <#assign number_of_banners = 0 >
24
25 <#list Naslov.getSiblings() as item >
26 <#if number_of_banners lt 5>
27 <#assign doRender = ((item.SchedulingDateFrom.getData()?has_content)?then(today gte item.SchedulingDateFrom.getData()?date('yyyy-MM-dd'), true)) && ((item.SchedulingDateTo.getData()?has_content)?then(today lte item.SchedulingDateTo.getData()?date('yyyy-MM-dd') ,true))>
28 <#if doRender>
29 <#assign number_of_banners++>
30 <#assign gtmName="" />
31 <#if item.GTMLabel??>
32 <#assign gtmName= item.GTMLabel.getData() />
33 </#if>
34 <div class="MainCarousel-main-cell overflow-hidden" data-banner-index="${number_of_banners}" data-gtm-name="${gtmName}">
35 <#assign otvaranjeLinka="">
36 <#if item.OtvaranjeLinka.getData()=="new window">
37 <#assign otvaranjeLinka="_blank">
38 </#if>
39 <#assign link = "" />
40 <#assign modalId = "" />
41 <#assign modalTriggerClass = "" />
42 <#assign ffCustomTitle = "" />
43 <#if item.LinkButton.getData() != "">
44 <#assign link = item.LinkButton.getData() />
45 <#elseif item.ModalId?? && item.ModalId.getData() != "">
46 <#assign modalIdSufix = "'" />
47 <#assign modalId = "data-modal='#" />
48 <#assign modalId = modalId + item.ModalId.getData() />
49 <#assign modalId = modalId + modalIdSufix />
50 <#assign link = "#" />
51 <#assign modalTriggerClass = "js-modal-trigger" />
52 <#if item.FFCustomTitle??>
53 <#assign ffCustomTitle = item.FFCustomTitle.getData() />
54 </#if>
55
56 </#if>
57
58 <#if item.LinkButton.getData() != "">
59 <a href="${link}" target="${otvaranjeLinka}" class="block-link gtm-carousel-block-link">
60 </#if>
61
62 <img src="${fetchCDNLink(item.BannerMobile.getData())}" alt="${item.BannerName.getData()}" class="d-md-none MainCarousel-image" />
63 <img src="${fetchCDNLink(item.BannerDesktop.getData())}" alt="${item.BannerName.getData()}" class="d-none d-md-block MainCarousel-image" />
64
65 <div class="MainCarousel-contentBlock-wrap">
66 <div class="container">
67
68 <#assign content_block_color = "" />
69
70 <#if item.background_color.getData() == "primary">
71 <#assign content_block_color = "is-primary" />
72 <#elseif item.background_color.getData() == "secondary">
73 <#assign content_block_color = "is-secondary" />
74 <#elseif item.background_color.getData() == "tertiary">
75 <#assign content_block_color = "is-tertiary" />
76 <#elseif item.background_color.getData() == "quaternary">
77 <#assign content_block_color = "is-quaternary" />
78 <#elseif item.background_color.getData() == "quinary">
79 <#assign content_block_color = "is-quinary" />
80 </#if>
81
82 <#if item.ButtonVariant.getData() == "red">
83 <#assign button_color = "button--red" />
84 <#elseif item.ButtonVariant.getData() == "white">
85 <#assign button_color = "button--light" />
86 </#if>
87
88 <div class="MainCarousel-contentBlock ${content_block_color}">
89 <#if item.CounterContainer?? && item.CounterContainer.HasCounter.getData() == "yes" && item.CounterContainer.CounterToDate.getData() != "">
90 <#assign longToday = .now?long/>
91 <#assign toHours = "00" />
92 <#assign toMinutes = "00" />
93 <#if item.CounterContainer.CounterToHours.getData()?has_content >
94 <#assign toHours = (item.CounterContainer.CounterToHours.getData()?number>23)?then("23", item.CounterContainer.CounterToHours.getData()) />
95 <#if toHours?length lt 2>
96 <#assign toHours = "0" + toHours />
97 </#if>
98 </#if>
99 <#if item.CounterContainer.CounterToMinutes.getData()?has_content >
100 <#assign toMinutes = (item.CounterContainer.CounterToMinutes.getData()?number>59)?then("59", item.CounterContainer.CounterToMinutes.getData()) />
101 <#if toMinutes?length lt 2>
102 <#assign toMinutes = "0" + toMinutes />
103 </#if>
104 </#if>
105 <#assign toSeconds = "00" />
106
107 <#assign countdownDisplayBuilder = item.CounterContainer.CounterToDate.getData()?date("yyyy-MM-dd")?string.iso + "T"/>
108 <#assign countdownDisplayBuilder = countdownDisplayBuilder + toHours/>
109 <#assign countdownDisplayBuilder = countdownDisplayBuilder + ":"/>
110 <#assign countdownDisplayBuilder = countdownDisplayBuilder + toMinutes/>
111 <#assign countdownDisplayBuilder = countdownDisplayBuilder + ":"/>
112 <#assign countdownDisplayBuilder = countdownDisplayBuilder + toSeconds/>
113
114 <#assign countdownToBuilder = item.CounterContainer.CounterToDate.getData()?date("yyyy-MM-dd")?string + " "/>
115 <#assign countdownToBuilder = countdownToBuilder + toHours/>
116 <#assign countdownToBuilder = countdownToBuilder + ":"/>
117 <#assign countdownToBuilder = countdownToBuilder + toMinutes/>
118 <#assign countdownToBuilder = countdownToBuilder + ":"/>
119 <#assign countdownToBuilder = countdownToBuilder + toSeconds/>
120 <#assign countdownToLong = countdownToBuilder?datetime?long />
121 <#assign countdownDiff = ((countdownToLong - longToday)/1000)?floor />
122 <#if countdownDiff gte 0 >
123 <div class="mt-4 mb-4 md:mb-8">
124 <div class="Countdown-clock ${item.CounterContainer.CounterBackgroundColor.getData()}-fields js-countdown-clock" data-deadline="${countdownDisplayBuilder}">
125 <div class="Countdown-clock-wrap">
126 <div class="Countdown-clock-field days Countdown-clock-field-nt">
127 <span class="font-serif js-countdown-days number">00</span>
128 <span class="text">dana</span>
129 </div>
130 <div class="Countdown-clock-field hours Countdown-clock-field-nt">
131 <span class="font-serif js-countdown-hours number">00</span>
132 <span class="text">sati</span>
133 </div>
134 <div class="Countdown-clock-field minutes Countdown-clock-field-nt">
135 <span class="font-serif js-countdown-minutes number">00</span>
136 <span class="text">minuta</span>
137 </div>
138 <#if item.CounterContainer.ShowSeconds.getData() = "yes" >
139 <div class="Countdown-clock-field seconds Countdown-clock-field-nt">
140 <span class="font-serif js-countdown-seconds number">00</span>
141 <span class="text">sekundi</span>
142 </div>
143 </#if>
144 </div>
145 </div>
146 </div>
147 <#else>
148 <div>
149 ${item.CounterContainer.CounterExpiredText.getData()}
150 </div>
151 </#if>
152 </#if>
153
154 <div class="MainCarousel-description">
155 <#if item?has_content>
156 <h3 class="MainCarousel-title font-serif">${item.getData()}</h3>
157 </#if>
158 <#if item.Podnaslov?has_content>
159 <p class="MainCarousel-text text-base md:text-lg font-normal">${item.Podnaslov.getData()}</p>
160 </#if>
161
162 <#if link != "" && item.ButtonText.getData() != "">
163 <button class="button button--primary ${button_color} button--has-shadow serif ${modalTriggerClass}" href="${link}" target="${otvaranjeLinka}" ${modalId} data-ff-custom-title="${ffCustomTitle}">
164 <span class="button__label">${item.ButtonText.getData()}</span>
165 <span class="button__icon icon-right">
166 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
167<path d="M15.186 12.0016L9.9375 17.25L8.8125 16.125L12.9368 12.0007L8.8125 7.875L9.9375 6.75L15.186 12H15.1875L15.1868 12.0007L15.1875 12.0016H15.186Z" fill="currentColor"></path>
168</svg>
169 </span>
170 </button>
171 </#if>
172 </div>
173 </div>
174
175 <#if getterUtil.getBoolean(item.patch.show_patch.getData())>
176 <#assign patch_type = item.patch.patch_type.getData() />
177 <#assign patch_type_class = "" />
178
179 <#if patch_type != "primary">
180 <#assign patch_type_class = "Patch--secondary" />
181 </#if>
182
183 <div class="Patch-wrap font-serif ${patch_type_class}">
184 <#if item.patch.patch_small_text.getData() != "" && patch_type == "primary">
185 <p class="Patch Patch--black is-small">
186 <span class="Patch-txt">
187 ${item.patch.patch_small_text.getData()}
188 </span>
189 </p>
190 </#if>
191
192 <#assign patch_secondary_class = "" />
193
194 <#if patch_type == "secondary-red">
195 <#assign patch_secondary_class = "Patch--big-red" />
196 <#elseif patch_type == "secondary-black">
197 <#assign patch_secondary_class = "Patch--big-black" />
198 </#if>
199
200 <p class="Patch Patch--red ${patch_secondary_class}">
201 <span class="font-bold">
202 <#if item.patch.patch_subtitle.getData() != "">
203 <span class="font-normal Patch-subtitle">${item.patch.patch_subtitle.getData()}</span>
204 </#if>
205 <span class="Patch-title">${item.patch.patch_title.getData()}</span>
206 <#if item.patch.patch_currency_text.getData() != "">
207 <span class="font-normal Patch-currency big-kn">${item.patch.patch_currency_text.getData()}</span>
208 </#if>
209 <#if item.patch.patch_discount_text.getData() != "">
210 <span class="Patch-discount">${item.patch.patch_discount_text.getData()}</span>
211 </#if>
212 </span>
213 <#if item.patch.patch_text.getData() != "">
214 <span class="Patch-txt d-block">${item.patch.patch_text.getData()}</span>
215 </#if>
216 </p>
217 </div>
218 </#if>
219 </div>
220 </div>
221
222 <#if item.LinkButton.getData() != "">
223 </a>
224 </#if>
225
226 </div>
227 </#if>
228 </#if>
229 </#list>
230 </section>
231
232 <#if number_of_banners gt 1>
233 <div class="MainCarousel-navigation-wrap">
234 <section class="MainCarousel-navigation d-flex justify-center">
235 <#assign number_of_banners = 0 >
236 <#list Naslov.getSiblings() as item>
237 <#if number_of_banners < 5>
238 <#assign doRender = ((item.SchedulingDateFrom.getData()?has_content)?then(today gte item.SchedulingDateFrom.getData()?date('yyyy-MM-dd'), true)) && ((item.SchedulingDateTo.getData()?has_content)?then(today lte item.SchedulingDateTo.getData()?date('yyyy-MM-dd') ,true))>
239
240 <#if doRender>
241 <#list item.getChildren() as field>
242 <#if field.getName()=="banner_navigation">
243 <#assign selected_class = "" />
244 <#if number_of_banners == 0 >
245 <#assign selected_class = "is-selected" />
246 </#if>
247 <button class="MainCarousel-navigation-cell ${selected_class}">
248 <img src="${fetchCDNLink(field.getData())}" alt="" class="MainCarousel-navigation-image" />
249 <span class="LoadingLine"></span>
250 </button>
251 <#assign number_of_banners++>
252 </#if>
253 </#list>
254 </#if>
255 </#if>
256 </#list>
257 </section>
258 </div>
259 </#if>
260</div>
261
262<#function fetchCDNLink link>
263 <#if !link?starts_with(themeDisplay.getCDNHost())>
264 <#return (themeDisplay.getCDNHost() + link)>
265 </#if>
266 <#return link>
267</#function>
268
269<script>
270
271 $(document).ready(function(){
272
273 $('.gtm-carousel-block-link').on("click", "", function(){
274
275 var component = $(this).parent();
276 var index = component.data('banner-index');
277
278 var title = (component.data("gtm-name") != "") ? component.data("gtm-name") : component.find("h3.MainCarousel-title").text();
279 var imageName = component.find("img.MainCarousel-image").attr("alt");
280 window.dataLayer = window.dataLayer || [];
281 window.dataLayer.push({
282 'event': 'promotionClick',
283 'ecommerce': {
284 'promoClick': {
285 'promotions': [
286 {
287 'id': 'Home - Slider',
288 'name': title,
289 'creative': imageName,
290 'position': index
291 }]
292 }
293 }
294 });
295
296 }
297 );
298 window.dataLayer = window.dataLayer || [];
299 var promotionsObjectList = [];
300 $.each($(".MainCarousel-main-cell"), function(){
301 var promotionsObject = {
302 'id': 'Home - Slider',
303 'name': ($(this).data("gtm-name") != "") ? $(this).data("gtm-name") : $(this).find("h3.MainCarousel-title").text(),
304 'creative': $(this).find("img.MainCarousel-image").attr("title"),
305 'position': $(this).data('banner-index')
306 };
307 promotionsObjectList.push(promotionsObject);
308 });
309 window.dataLayer.push({
310 'ecommerce':{
311 'promoView': {
312 'promotions': promotionsObjectList
313 }
314 }
315 });
316 });
317
318</script>
Posao u A1
Provjeri koje su trenutno otvorene pozicije, kako poslati otvorenu molbu za posao i kako izgleda naš proces zapošljavanja.Studenti i pripravnici
Kod nas trenutno radi preko 400 studenata – započni i ti svoju karijeru s nama!Mi smo A1 Hrvatska
Već smo 19 godina ponosni član A1 Telekom Austria Grupe, vodećeg pružatelja digitalnih servisa i komunikacijskih rješenja u središnjoj i istočnoj Europi, koji trenutačno zapošljava 19.000 zaposlenika te posluje u sedam država pružajući usluge za približno 24 milijuna korisnika.
Na hrvatskom tržištu smo davne 1998. počeli kao start-up Vipnet d.o.o., i iako smo od tada značajno narasli, nikada nismo postali tipična korporacija. Uvijek smo bili dinamičniji od ostatka tržišta te brže odgovarali na potrebe naših korisnika. Odlukom A1 Telekom Austria Grupa, Vipnet d.o.o. je 2018. godine postao A1 Hrvatska d.o.o.
Transformacija iz tradicionalnog telekom operatora u digitalnu kompaniju dio je naše evolucije. U tom su procesu presudni upravo ljudi, oko 2000 naših zaposlenika u Hrvatskoj, koji mijenjaju ustaljene procese i zadane norme te stvaraju nešto novo – inovacije za svijet u digitalno doba.
Empowering digital life
Iako nitko ne zna kako će svijet izgledati 2050. godine, mi smo spremni na izazove budućnosti.
I zato je naša nova strategija i svrha: Empowering digital life.
Zašto A1 Hrvatska?
Odaberi karijeru koju ćeš voljeti
U A1 Hrvatska, brojne su mogućnosti za razvoj karijere. I to ne bilo kakve, nego one koju ćeš voljeti! Imat ćeš slobodu i autonomiju u poslu te priliku da se razvijaš kroz rad na izazovnim projektima i inovativnim tehnologijama!
Potičemo internacionalnu suradnju kroz grupne projekte, a ako to želiš, možeš nastaviti razvijati svoju karijeru i u jednoj od sedam zemalja unutar A1 Grupe. Radit ćeš sa izvanrednim ljudima, kolegama od kojih možeš puno naučiti i koji će ti uvijek rado pomoći. Trenutno otvorene pozicije možeš pronaći na linku, a ako nisi pronašao ono što tražiš, možeš nam se javiti na mail karijere@A1.hr
Učimo jedni od drugih i razvijamo se kontinuirano, a posebno cijenimo “can-do” stav i preuzimanje inicijative. Grešaka se ne bojimo, sve dok iz njih učimo, jer vjerujemo da je to jedini pravi put za poticanje inovacija. Atmosfera u našim uredima je jako ugodna, komunikacija otvorena, svi smo na “TI”, a dress-code je ležeran.
Kod nas su stalne samo dinamika i promjene, ali zabave nam nikad ne nedostaje (savjet: i zato nikada ne ostavljaj svoj ekran otključan kad te nema u blizini! ;)) Naši kompanijski partiji su već postali legendarni! Naši ljudi dolaze sa smiješkom na posao, jer ovdje stvarno možeš biti svoj!
Po svemu tome je naša kultura stvarno posebna (ili kako kaže jedan naš kolega: “Imamo svoj đir!” <3)

Povjerenje
Povjerenje stvara okolinu u kojoj su znatiželja, otvorenost i suradnja ključne stavke. Mi u A1 vjerujemo u znanje i sposobnost svakog od naših kolega i težimo odnosu punom povjerenja s našim korisnicima, partnerima i kolegama. To nam pomaže da iz dana u dan rastemo i napredujemo.

Timski rad
Radimo zajedno na način da koristimo zajedničku snagu i kreativnost kako bismo što uspješnije izašli u susret našim korisnicima i udovoljili njihovim potrebama. Timski rad je izuzetno važan u našoj kompaniji te se svačije mišljenje cijeni i uzima u obzir.

Agilnost
Digitalni svijet se mijenja iz dana u dan i ne čeka nikoga da mu se prilagodi. Upravo zato mi smo znatiželjni, odlučni i reagiramo brzo. Nikad ne prestajemo učiti i uvijek otkrivamo nove načine i pristupe kako bismo bili u korak s tehnologijom i trendovima.

Korisničko iskustvo
Povjerenje korisnika za nas je apsolutni prioritet. Zbog toga uvijek razmišljamo o korisničkom iskustvu te kako ga unaprijediti. Bez korisnika-nema posla! Jednostavno je.