Kako uveljaviti zavarovanje odpovedi potovanja?
Če ste imeli sklenjeno zavarovanje odpovedi potovanja in ste morali zaradi nepričakovanega dogodka, ki ga krije vaše zavarovanje, odpovedati potovanje, sledite v nadaljevanju opisanim korakom.
Prišlo je do napake pri odpiranju teme.
Java method "com.sun.proxy.$Proxy1350.getJournalArticleByUuidAndGroupId(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy1350 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@7ad7bf5f"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign article = journalArticleLocal... [in template "20099#20125#510556" at line 162, column 15]
----
1<#assign theme_css_path = themeDisplay.getPathThemeCss() />
2<#assign theme_js_path = themeDisplay.getPathThemeJavaScript() />
3
4<link rel="stylesheet" href="${theme_css_path}/components-standalone/tabs.css" />
5
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
7
8<#assign last_tab_count = 0 />
9<#assign tab_width_class = "" />
10
11<#if last_tab.last_tab_title.getData() != "">
12 <#assign last_tab_count = 1 />
13</#if>
14
15<#assign total_tabs = tab.getSiblings()?size + last_tab_count />
16
17<#if total_tabs > 6>
18 <#assign tab_width_class = "g-tabs--non-fixed-width" />
19</#if>
20
21<#assign margin_class = "" />
22
23<#if getterUtil.getBoolean(margin.getData())>
24 <#assign margin_class = "my-5" />
25</#if>
26
27<#macro renderButton buttonText buttonURL buttonLink buttonOpenIn classes>
28 <#assign button_url = buttonURL.getData() />
29 <#assign button_link = buttonLink.getFriendlyUrl() />
30 <#assign button_text = buttonText.getData()!"" />
31 <#assign button_open_in = buttonOpenIn.getData()!"" />
32
33 <#assign button_final_url = "" />
34 <#assign button_target = "" />
35
36 <#if button_url != "">
37 <#assign button_final_url = button_url />
38 <#elseif button_link != "">
39 <#assign button_final_url = button_link />
40 </#if>
41
42 <#assign render = button_text != "" && button_final_url != "" />
43
44 <#if button_open_in == "new_tab">
45 <#assign button_target = 'target="_blank"' />
46 </#if>
47
48 <#if render>
49 <a href="${button_final_url}" class="${classes}" ${button_target} >${button_text}</a>
50 </#if>
51</#macro>
52
53<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
54<#assign group_id = themeDisplay.getScopeGroupId() />
55
56<#assign journal_article = journalArticleLocalService.getArticle(getterUtil.getLong(group_id), getterUtil.getString(.vars["reserved-article-id"].data)) />
57<#assign section_id = journal_article.getExpandoBridge().getAttribute("section-id", false) />
58
59<#assign section_id_attr = "" />
60
61<#if section_id != "">
62 <#assign section_id_attr = 'id="' + section_id + '"' />
63</#if>
64
65<#assign non_fixed_width_class = "" />
66
67<#if getterUtil.getBoolean(non_fixed_width.getData())>
68 <#assign non_fixed_width_class = "g-tabs--non-fixed-width" />
69</#if>
70
71
72<div class="${margin_class}">
73 <div class="container text-center mb-4" ${section_id_attr}>
74 <#if section_title.getData() != "">
75 <h2 class="g-headline-2 text-center mb-5">${section_title.getData()}</h2>
76 </#if>
77 <nav class="g-tabs g-tabs--icons swiper ${tab_width_class} ${non_fixed_width_class}" id="tab-${randomNamespace}">
78 <ul class="swiper-wrapper" role="tablist">
79 <#if tab.getSiblings()?has_content>
80 <#list tab.getSiblings() as cur_tab>
81 <#assign tab_active_class = "" />
82 <#assign tab_aria_active = "false" />
83 <#if cur_tab?index == 0>
84 <#assign tab_active_class = "active" />
85 <#assign tab_aria_active = "true" />
86 </#if>
87
88 <li class="swiper-slide" role="presentation" aria-selected="${tab_aria_active}">
89 <a
90 id="tab-${cur_tab?index}-${randomNamespace}"
91 href="#tab-panel-${cur_tab?index}-${randomNamespace}"
92 class="g-label g-tabs__item ${tab_active_class}"
93 data-g-toggle="tabs"
94 role="tab"
95 >
96 <#if cur_tab.tab_icon.getData() != "">
97 <img src="${cur_tab.tab_icon.getData()}" alt="" loading="lazy" width="48" height="48" />
98 </#if>
99 ${cur_tab.tab_title.getData()}
100 </a>
101 </li>
102 </#list>
103 </#if>
104 <#if last_tab.last_tab_title.getData() != "">
105 <#assign tab_url = last_tab.last_tab_external_url.getData() />
106 <#assign tab_link = last_tab.last_tab_link_to_page.getFriendlyUrl() />
107 <#assign tab_open_in = last_tab.last_tab_open_in.getData()!"" />
108
109 <#assign tab_final_url = "" />
110 <#assign tab_target = "" />
111
112 <#if tab_url != "">
113 <#assign tab_final_url = tab_url />
114 <#elseif tab_link != "">
115 <#assign tab_final_url = tab_link />
116 </#if>
117
118 <#if tab_open_in == "new_tab">
119 <#assign tab_target = 'target="_blank"' />
120 </#if>
121 <li class="swiper-slide" role="tab" aria-selected="false">
122 <a href="${tab_final_url}" class="g-label g-tabs__item" ${tab_target}>
123 <#if last_tab.last_tab_icon.getData() != "">
124 <img src="${last_tab.last_tab_icon.getData()}" alt="${last_tab.last_tab_icon_alt_text.getData()}" loading="lazy" width="48" height="48" />
125 </#if>
126 ${last_tab.last_tab_title.getData()}
127 </a>
128 </li>
129 </#if>
130 </ul>
131 <button type="button" class="swiper-button-prev g-prev-arrow" id="tab-prev-${randomNamespace}"></button>
132 <button type="button" class="swiper-button-next g-next-arrow" id="tab-next-${randomNamespace}"></button>
133 </nav>
134 </div>
135 <div>
136 <#if tab.getSiblings()?has_content>
137 <#list tab.getSiblings() as cur_tab>
138 <#assign tab_active_class = "" />
139 <#if cur_tab?index == 0>
140 <#assign tab_active_class = "show" />
141 </#if>
142
143 <div
144 aria-labelledby="tab-${cur_tab?index}-${randomNamespace}"
145 id="tab-panel-${cur_tab?index}-${randomNamespace}"
146 role="tabpanel"
147 class="g-tab-panel ${tab_active_class}"
148 >
149 <#if cur_tab.tab_content.getData() != "">
150 <div class="container">
151 ${cur_tab.tab_content.getData()}
152 </div>
153 <#elseif cur_tab.content_in_tab.getData() != "">
154 <#assign webContentData = jsonFactoryUtil.createJSONObject(cur_tab.content_in_tab.getData()) />
155
156 <#assign group_id = getterUtil.getLong(themeDisplay.getScopeGroupId()?number) />
157
158 <#assign article_uuid = webContentData.getString("uuid") />
159
160 <#-- if this fails article_uuid wrong or null, usually it means that the content once picked is moved to the recycle bin -->
161 <#if article_uuid != "">
162 <#assign article = journalArticleLocalService.getJournalArticleByUuidAndGroupId(article_uuid, group_id) />
163 <#assign article_template_ddm_key = article.getDDMTemplateKey() />
164
165 <#assign article_content = journalArticleLocalService.getArticleDisplay(group_id, article.getArticleId(), article_template_ddm_key, null, locale, themeDisplay).getContent() />
166
167 ${article_content}
168 <#else>
169 <#assign webContentData = jsonFactoryUtil.createJSONObject(cur_tab.content_in_tab.getData()) />
170 <#assign title = webContentData.getString("title") />
171
172 <div class="container">
173 <div class="alert alert-danger">Watch out! ${title} content is moved to the recycle bin.</div>
174 </div>
175 </#if>
176 </#if>
177
178 </div>
179 </#list>
180 </#if>
181 </div>
182</div>
183
184<script src="${theme_js_path}/vendors/swiper-bundle.min.js" type="text/javascript"></script>
185
186<script type="text/javascript">
187 Liferay.on("allPortletsReady", function () {
188 const numberOfTabs500 = ${total_tabs} > 3 ? 3 : ${total_tabs};
189 const numberOfTabs600 = ${total_tabs} > 4 ? 4 : ${total_tabs};
190 const numberOfTabs768 = ${total_tabs} > 5 ? 5 : ${total_tabs};
191 const numberOfTabs870 = ${total_tabs} > 6 ? 6 : ${total_tabs};
192 const lgNumberOfTabs = ${total_tabs} > 7 ? 7 : ${total_tabs};
193 const tabSWiper = new Swiper("#tab-${randomNamespace}", {
194 direction: "horizontal",
195 navigation: {
196 nextEl: "#tab-next-${randomNamespace}",
197 prevEl: "#tab-prev-${randomNamespace}",
198 },
199 loop: false,
200 breakpoints: {
201 320: {
202 slidesPerView: 1,
203 },
204 400: {
205 slidesPerView: 2,
206 },
207 500: {
208 slidesPerView: numberOfTabs500,
209 },
210 600: {
211 slidesPerView: numberOfTabs600,
212 },
213 768: {
214 slidesPerView: numberOfTabs768,
215 },
216 870: {
217 slidesPerView: numberOfTabs870,
218 },
219 992: {
220 slidesPerView: lgNumberOfTabs,
221 },
222 1178: {
223 slidesPerView: ${total_tabs},
224 },
225 },
226 a11y: {
227 slideRole: "",
228 },
229 });
230
231 const tabs = document.querySelector("#tab-${randomNamespace}");
232
233 tabSWiper.on("slideChange", function (e) {
234 if (window.innerWidth <= 400) {
235 const tabToSwitchTo = tabs.querySelectorAll('a[data-g-toggle="tabs"]')[e.activeIndex];
236 if(typeof tabToSwitchTo !== "undefined") {
237 gTabs.switchTab(tabToSwitchTo);
238 }
239 }
240 });
241 });
242</script>