test - test
test
Có lỗi xảy ra trong quá trình xử lý biểu mẫu.
The following has evaluated to null or missing: ==> CoQuanTrucTiepThucHien [in template "20115#20151#44261" at line 142, column 70] ---- 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: ${CoQuanTrucTiepThucHien} [in template "20115#20151#44261" at line 142, column 68] ----
1<style scoped>
2.field-title{
3 font-weight: bold;
4 background: #efefef;
5 padding-left: 3px !important;
6 padding-top: 5px !important;
7 padding-bottom: 5px !important;
8 text-transform: uppercase !important;
9 margin-bottom: 10px;
10 border-bottom: thin dotted #c1c1c1;
11}
12.row{
13 border-bottom: thin dotted rgba(0, 0, 0, 0.08);
14 margin-bottom: 5px;
15}
16.container{
17 font-size: 14px;
18}
19.style-padding-bottom-attachFile{
20 display: flex;
21}
22.title_down{
23 width: 300px;
24 margin: 0 0 0 5px;
25}
26.doc-gen-row-bttom {
27 margin-bottom: 10px;
28 border-bottom: thin dotted #c1c1c1;
29 padding: 0px 0px 5px 0px;
30}
31</style>
32<#assign HttpUtil = staticUtil["com.liferay.portal.kernel.util.HttpUtil"] />
33<#assign journalLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
34 articleobj = journalLocalService.getArticle(groupId, .vars["reserved-article-id"].data)
35 articlePrimKey = articleobj.getResourcePrimKey()
36 catLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
37 articleCates = catLocalService.getCategories("com.liferay.journal.model.JournalArticle", getterUtil.getLong(articlePrimKey))
38 listCategoryId = ""
39 assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
40 listVocab = assetVocabularyLocalService.getGroupVocabularies(groupId)
41 linhVuc = ""
42/>
43<#list articleCates as aCate>
44 <#assign listCategoryId = listCategoryId + "," + aCate.getCategoryId()?string />
45</#list>
46
47<#list listVocab as vocab>
48 <#-- 92475: id vocabulary cua linh vuc -->
49 <#if vocab.getVocabularyId() == 92475>
50 <#list vocab.getCategories() as cate>
51 <#if listCategoryId?contains(cate.getCategoryId()?string)>
52 <#assign linhVuc = cate.getName()>
53 </#if>
54 </#list>
55 </#if>
56 <#-- 92164: id vocabulary cua CoQuanTrucTiepThucHien -->
57 <#if vocab.getVocabularyId() == 92164>
58 <#list vocab.getCategories() as cate>
59 <#if listCategoryId?contains(cate.getCategoryId()?string)>
60 <#assign CoQuanTrucTiepThucHien = cate.getName()>
61 </#if>
62 </#list>
63 </#if>
64 <#-- 92163: id vocabulary cua CoQuanCoThamQuyen -->
65 <#if vocab.getVocabularyId() == 92163>
66 <#list vocab.getCategories() as cate>
67 <#if listCategoryId?contains(cate.getCategoryId()?string)>
68 <#assign CoQuanCoThamQuyen = cate.getName()>
69 </#if>
70 </#list>
71 </#if>
72
73
74</#list>
75
76
77<div class="container">
78<div class="row">
79 <div class="col-md-12 field-title">
80 Lĩnh vực:
81 </div>
82 <div class="col-md-12">
83 ${linhVuc}
84 </div>
85</div>
86<div class="row">
87 <div class="col-md-12 field-title">
88 Trình tự thực hiện:
89 </div>
90 <div class="col-md-12">
91 <#if validator.isNotNull(executionOrder.getData())>
92 ${executionOrder.getData()}
93 </#if>
94 </div>
95</div>
96<div class="row">
97 <div class="col-md-12 field-title">
98 Cách thực hiện:
99 </div>
100 <div class="col-md-12">
101 <#if validator.isNotNull(executionMethod.getData())>
102 ${htmlUtil.escape(executionMethod.getData())}
103 </#if>
104 </div>
105</div>
106<div class="row">
107 <div class="col-md-12 field-title">
108 Hồ sơ:
109 </div>
110 <div class="col-md-12">
111 <#if validator.isNotNull(file.getData())>
112 ${file.getData()}
113 </#if>
114 </div>
115</div>
116<div class="row">
117 <div class="col-md-12 field-title">
118 Thời gian giải quyết:
119 </div>
120 <div class="col-md-12">
121 <#if validator.isNotNull(executionTime.getData())>
122 ${executionTime.getData()}
123 </#if>
124 </div>
125</div>
126<div class="row">
127 <div class="col-md-12 field-title">
128 Đối tượng:
129 </div>
130 <div class="col-md-12">
131 <#if validator.isNotNull(target.getData())>
132 ${htmlUtil.escape(target.getData())}
133 </#if>
134 </div>
135</div>
136<div class="row">
137 <div class="col-md-12 field-title">
138 Cơ quan ban hành:
139 </div>
140 <div class="col-md-12">
141 <p>Cơ quan có thẩm quyền quyết định: ${CoQuanCoThamQuyen}</p>
142 <p>Cơ quan trực tiếp thực hiện thủ tục hành chính: ${CoQuanTrucTiepThucHien}</p>
143 </div>
144</div>
145<div class="row">
146 <div class="col-md-12 field-title">
147 Kết quả:
148 </div>
149 <div class="col-md-12">
150 <#if validator.isNotNull(result.getData())>
151 ${htmlUtil.escape(result.getData())}
152 </#if>
153 </div>
154</div>
155<div class="row">
156 <div class="col-md-12 field-title">
157 Phí, lệ phí
158 </div>
159 <div class="col-md-12">
160 <#if validator.isNotNull(fees.getData())>
161 ${fees.getData()}
162 </#if>
163 </div>
164</div>
165<div class="row">
166 <div class="col-md-12 field-title">
167 Tên mẫu đơn:
168 </div>
169 <div class="col-md-12">
170 <#if validator.isNotNull(form.getData())>
171 ${form.getData()}
172 </#if>
173 </div>
174</div>
175<div class="row">
176 <div class="col-md-12 field-title">
177 Yêu cầu, điều kiện thực hiện:
178 </div>
179 <div class="col-md-12">
180 <#if validator.isNotNull(form.getData())>
181 ${request.getData()}
182 </#if>
183 </div>
184</div>
185<div class="row">
186 <div class="col-md-12 field-title">
187 Cơ sở pháp lý:
188 </div>
189 <div class="col-md-12">
190 <#if validator.isNotNull(legalBasis.getData())>
191 ${legalBasis.getData()}
192 </#if>
193 </div>
194</div>
195<div class="row">
196 <div class="col-md-12 field-title">
197 Tài liệu đính kèm:
198 </div>
199
200 <#assign extensionsImg =".jpg_.jpeg_.bmp_.gif_.png">
201 <#assign urlIconAttachment = "" >
202 <#assign pathToDownloadAll = "" />
203 <#assign iconDownloadall = "" />
204 <#if validator.isNotNull(attachment.getData())>
205 <#list attachment.getSiblings() as file>
206 <#assign isPDF = false >
207 <#assign arrString = file.getData()?string?split("/")/>
208 <#assign filename = arrString[4] />
209 <#assign pathToDownloadAll = pathToDownloadAll +"'" + file.getData() + "'" + "," />
210
211 <#if (filename?lower_case)?contains(".doc")>
212 <#assign urlIconAttachment = themeDisplay.getPathThemeRoot() + "/images/imageVanBan/WORD.png" >
213 <#elseif (filename?lower_case)?contains(".rtf")>
214 <#assign urlIconAttachment = themeDisplay.getPathThemeRoot() + "/images/imageVanBan/WORD.png" >
215 <#elseif (filename?lower_case)?contains(".pdf")>
216 <#assign isPDF = true >
217 <#assign urlIconAttachment = themeDisplay.getPathThemeRoot() + "/images/imageVanBan/PDF.png" >
218 <#elseif (filename?lower_case)?contains(".xls")>
219 <#assign urlIconAttachment = themeDisplay.getPathThemeRoot() + "/images/imageVanBan/EXCEL.png" >
220 <#else>
221 <#assign urlIconAttachment = themeDisplay.getPathThemeRoot() + "/images/imageVanBan/OTHER.png" >
222 <!--Kiem tra co phai la img khong-->
223 <#list extensionsImg?split("_") as x>
224 <#if (filename?lower_case)?contains(x)>
225 <#assign isPDF = true >
226 </#if>
227 </#list>
228 </#if>
229
230 <#assign iconDownloadall = themeDisplay.getPathThemeRoot() + "/images/imageVanBan/vb-download.png" >
231 <#assign iconVBDownload = themeDisplay.getPathThemeRoot() + "/images/imageVanBan/vb-download.png" >
232 <#assign iconVBReview = themeDisplay.getPathThemeRoot() + "/images/imageVanBan/vb-review.png" >
233 <div class="col-xs-12 col-sm-12 doc-gen-row-bttom doc-gen-padd-no">
234 <div class="col-xs-12 col-sm-8 doc-gen-padd-no doc-gen-row-bttom-mobile style-padding-bottom-attachFile">
235 <a href="${file.getData()}"><img src="${urlIconAttachment}"></a>
236 <span class="title_down" style="word-wrap: break-word;">${HttpUtil.decodeURL(filename,true)}</span>
237 </div>
238
239 <div class="col-xs-12 col-sm-4 doc-gen-file-dk">
240 <a class="col-xs-6 col-sm-6 doc-gen-padd-no" href="${file.getData()}" download>
241 <img src="${iconVBDownload}">
242 Tải về
243 </a>
244 <#if isPDF>
245 <a class="col-xs-6 col-sm-6 doc-gen-padd-no" href="${file.getData()}" target="_blank">
246 <img src="${iconVBReview}" />
247 Xem trước
248 </a>
249 </#if>
250 </div>
251 </div>
252 </#list>
253 <#assign pathToDownloadAll = "javascript:downloadAllFiles(" + .vars['reserved-article-author-id'].data + ", [" + pathToDownloadAll + "])" />
254 <#if (attachment.getSiblings()?size >1) >
255
256 <div class="hidden-xs col-sm-8 doc-gen-padd-no doc-gen-row-bttom-mobile style-padding-bottom-attachFile">
257 </div>
258 <div class="col-xs-12 col-sm-4 doc-gen-file-dk">
259 <a href="${pathToDownloadAll}"><img src="${iconDownloadall}"></a>
260 <span style="word-wrap: break-word;">Tải về tất cả tài liệu</span>
261 </div>
262
263 </#if>
264
265 <#else>
266 <div class="doc-gen-no-file-dk">
267 Không có tài liệu đính kèm
268 </div>
269 </#if>
270
271
272</div>
273</div>
274
275<a id="hiddenDownload" style="display: none;"></a>
276
277<script type="text/javascript">
278 /** Perform download all files of the selected record. */
279 function downloadAllFiles(id, urls) {
280 zipFiles(id, urls);
281 }
282
283 function zipFiles(id, urls) {
284 var jszip = new JSZip();
285 doZip(jszip, urls, 0);
286 }
287
288 function doZip(jszip, urls, index) {
289 var fileName = urls[index].split('/')[4];
290
291 JSZipUtils.getBinaryContent(urls[index], function(err, data) {
292 if (!err) {
293 jszip.file(fileName, data, {
294 binary : true
295 });
296
297 if (++index == urls.length) {
298 jszip.generateAsync({
299 type : "blob"
300 }).then(function(content) {
301 var a = $("#hiddenDownload");
302 a.attr("download", "tailieudinhkem");
303 a.attr("href", URL.createObjectURL(content));
304 document.getElementById("hiddenDownload").click();
305 });
306 } else {
307 doZip(jszip, urls, index);
308 }
309 }
310 });
311 }
312
313</script>
Số lượng lượt xem: 32
Bản in