Trailer Rear Drive Assist
An error occurred while processing the template.
The following has evaluated to null or missing:
==> assetEntryQuery  [in template "20116#20152#50391" at line 250, column 31]

----
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: #assign search = assetEntryQuery.setC...  [in template "20116#20152#50391" at line 250, column 13]
----
1<!-- START: Project Template --> 
2 
3<style> 
4    /*START: Related Projects*/ 
5    .b-related-projects-container{ 
6        background: #f4f4f4; 
7        padding: 0px 20px 30px 20px; 
8        margin-bottom: 20px; 
9
10    .b-related-project { 
11        margin-bottom: 10px; 
12
13    .b-related-project a{ 
14        color: #444; 
15        font-weight: 700; 
16
17    /*END: Related Projects*/ 
18    .researchAreaHeader{ 
19        font-family: Georgia, serif; 
20        font-size: 24px!important; 
21        color: #cd1129!important; 
22        font-weight: 400; 
23        line-height: 1.4; 
24
25    .researchAreaTitle{ 
26        font-family: 'Open Sans', arial, sans-serif; 
27        font-weight: 700; 
28        font-size: 16px; 
29        line-height: 1.1em; 
30        color: #444; 
31
32    .b-related-researchAreas{ 
33        margin-bottom: 10px; 
34
35    #titleContainer .title h1{ 
36        font-family: 'Open Sans', Arial, sans-serif; 
37        font-weight: 700; 
38        font-size: 38px; 
39        line-height: 1em; 
40
41    #contentType{ 
42        color: #999; 
43        margin-bottom: 30px; 
44        font-size: 18px; 
45        font-weight: 700; 
46        margin-top: -8px; 
47        font-family: 'open sans', arial, sans-serif; 
48        line-height: 1.4; 
49
50    .item h3, .b-publications--title{ 
51        font-family: Georgia, serif; 
52        font-size: 24px; 
53        color: #cd1129; 
54        font-weight: 400; 
55        margin-bottom: 5px; 
56        line-height: 1.4; 
57
58    .media-item{ 
59        margin-right: 20px; 
60        margin-bottom: 10px; 
61        height: 100%; 
62
63    .pull-left{ 
64        float: left; 
65        display: block; 
66
67    .media{ 
68        zoom: 1; 
69        overflow: hidden; 
70        margin-top: 15px; 
71        width: 145px; 
72        height: 100px; 
73        background: #0a7cbc; 
74        position: relative; 
75
76    .media:first-child { 
77        margin-top: 0; 
78
79    .media-item .glyphicon{ 
80        font-size: 45px; 
81        color: #fff; 
82        margin: 25px 48px; 
83
84    .itemLink{ 
85        position: absolute; 
86        top: 0; 
87        bottom: 0; 
88        left: 0; 
89        right: 0; 
90
91    .hidden{ 
92        display: none; 
93
94    button.media-item.pull-left{ 
95        padding:0; 
96        border:0; 
97
98    .yui3-resize-handle.yui3-resize-handle-br{ 
99        display: none; 
100
101    .modal-content{ 
102        width: 100%; 
103        height: 100%; 
104
105    .modal-dialog:focus{ 
106        outline: none; 
107
108</style> 
109 
110<div class="row"> 
111    <div id="titleContainer" class="col-md-12"> 
112       <div class="title" id="contentTitle"> 
113          <h1>${DisplayTitle.getData()}</h1> 
114       </div> 
115       <div class="type" id="contentType">Research Project</div> 
116    </div> 
117 
118    <div class="col-md-9"> 
119        <div class="item"> 
120            <div class="imagefull"> 
121              <img src="${Image.getData()}" data-themekey="#"> 
122            </div> 
123            <div class="bodycontainer"> 
124              <div class="b-widget__title">Project Goals</div> 
125              ${Description.getData()} 
126            </div> 
127            <div class="b-widget__title"> Research Area </div> 
128 
129             
130 
131            <#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()> 
132            <#assign themeDisplay = serviceContext.getThemeDisplay() /> 
133            <#assign viewInContext = (themeDisplay.getURLCurrent()?index_of("control_panel") gte 0)?then(false, true) /> 
134 
135            <#if viewInContext == true> 
136                <!-- START: Related Projects --> 
137                <#import "liferay-hri-theme_SERVLET_CONTEXT_/templates/base22/freemarker-utils.ftl" as utils> 
138                <#assign OrderByComparatorFactoryUtil = staticUtil["com.liferay.portal.kernel.util.OrderByComparatorFactoryUtil"] /> 
139 
140                <#assign categoriesOrderBy = OrderByComparatorFactoryUtil.create("AssetCategory", ["modifiedDate", false]) />  
141 
142                <#--Obtain domain of Liferay instance --> 
143 
144                <#assign splittedURL = themeDisplay.getURLCurrent()?split("/") /> 
145                 
146                <#--Obtain the categories of the current content --> 
147                <#assign journalArticleId = .vars['reserved-article-id'].data> 
148 
149                <#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]> 
150 
151                <#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]> 
152 
153                <#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/> 
154 
155                <#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle", articleResourcePK) /> 
156 
157                <#--Obtain the VocabularyID of 'All Projects'--> 
158                <#assign allProjectsVocabularyId = getVocabularyId('All Projects') /> 
159                <#assign projectCategoryOfCurrentContent = getCategoriesByVocabularyId(allProjectsVocabularyId) /> 
160 
161                <#--Obtain the VocabularyID of 'All Research Areas'--> 
162                <#assign allResearchAreasVocabularyId = getVocabularyId('All Research Areas') /> 
163                <#assign allResearchAreasCategoriesOfCurrentContent = getCategoriesByVocabularyId(allResearchAreasVocabularyId) /> 
164 
165                <#if allResearchAreasCategoriesOfCurrentContent?has_content> 
166 
167                    <#-- Search Projects by Research Areas --> 
168                    <#assign assetEntryQueryService = objectUtil('com.liferay.asset.kernel.service.AssetEntryLocalServiceUtil')> 
169 
170                    <#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')> 
171 
172                    <#assign search = assetEntryQuery.setAnyCategoryIds(allResearchAreasCategoriesOfCurrentContent)> 
173 
174                    <#assign researchAreasStructureId = utils.getStructureIdByName("Research Area") /> 
175                    <#assign search = assetEntryQuery.setClassTypeIds([researchAreasStructureId])> 
176 
177                    <#assign entries = assetEntryQueryService.getEntries(assetEntryQuery)> 
178                    <#if entries?has_content> 
179                        <#list entries as entry> 
180                            <#assign renderer = entry.getAssetRenderer()> 
181                            <#assign className = renderer.getClassName() > 
182 
183                            <#assign classPK = renderer.getClassPK() /> 
184 
185                            <#if className == "com.liferay.journal.model.JournalArticle" > 
186                                <#assign journalArticle = renderer.getArticle() > 
187                                <#assign document = saxReaderUtil.read(journalArticle.getContent()) > 
188 
189                                <#assign entryDisplayTitle = document.valueOf("//dynamic-element[@name='DisplayTitle']") /> 
190                                 
191                                <!-- start item html --> 
192                                <div class="b-related-researchAreas"> 
193                                    <div class="researchAreaTitle"> ${entryDisplayTitle} </div> 
194                                    <a class="researchAreaURL" href="${buildURLResearchAreas()}"> 
195                                        View details 
196                                    </a> 
197                                </div> 
198                                <!-- end item html --> 
199                            </#if> 
200                        </#list> 
201                    </#if> 
202                </#if> 
203            </#if> 
204 
205            <#if Media?has_content> 
206 
207                <div class="b-widget__title"> Media </div> 
208                <#if Media.getSiblings()?has_content> 
209                    <#list Media.getSiblings() as MediaBox> 
210                        <#if MediaBox.getData()?? && MediaBox.getData() != ""> 
211                            <#assign mediaBoxInfo = generateAttachmentElement(MediaBox.getData()) > 
212                            <#assign mimeType = mediaBoxInfo[0]> 
213                            <#assign fileName = mediaBoxInfo[1]> 
214                            <#if mimeType != ""> 
215                                <#if mimeType?contains("video/mp4")>  
216                                    <button class="video-modal media-item pull-left" data-videoLink="${MediaBox.getData()}" data-toggle="tooltip" data-target="top" title="${fileName}" > 
217 
218                                        <div class="media mp4"> 
219                                          <span class="glyphicon glyphicon-file" aria-hidden="true"></span> 
220                                        </div> 
221 
222                                    </button> 
223                                <#else> 
224                                    <div class="media-item pull-left" alt = "..." data-videoLink="${MediaBox.getData()}" data-toggle="tooltip" data-target="top"> 
225                                        <div class="media mp4"> 
226                                            <span class="glyphicon glyphicon-file" aria-hidden="true"></span> 
227                                            <a class="itemLink" href="${MediaBox.getData()}" title= "..."></a> 
228                                        </div> 
229 
230                                    </div> 
231 
232                                </#if> 
233                            </#if> 
234                        </#if> 
235 
236                    </#list> 
237                </#if> 
238            </#if> 
239 
240 
241                        <div class="yui3-skin-sam"> 
242                            <div id="modal"></div> 
243                        </div> 
244                         
245        </div> 
246    </div> 
247    <div class="col-md-3"> 
248        <#if projectCategoryOfCurrentContent?has_content> 
249            <#assign projectsStructureId = utils.getStructureIdByName("Project") /> 
250            <#assign search = assetEntryQuery.setClassTypeIds([projectsStructureId])> 
251            <#assign search = assetEntryQuery.setNotAnyCategoryIds(projectCategoryOfCurrentContent)> 
252            <#assign entries = assetEntryQueryService.getEntries(assetEntryQuery)> 
253             
254            <#if entries?has_content> 
255                <!-- start header html --> 
256                <div class="b-related-projects-container clearfix"> 
257                    <div class="b-widget__title">Related Projects</div> 
258 
259                <!-- end header html --> 
260 
261                    <!-- start item loop --> 
262                    <#list entries as entry> 
263                        <#assign renderer = entry.getAssetRenderer()> 
264                        <#assign className = renderer.getClassName() > 
265 
266                        <#assign classPK = renderer.getClassPK() /> 
267 
268                        <#if className == "com.liferay.journal.model.JournalArticle" > 
269                            <#assign journalArticle = renderer.getArticle() > 
270                            <#assign document = saxReaderUtil.read(journalArticle.getContent()) > 
271 
272                            <#assign entryDisplayTitle = document.valueOf("//dynamic-element[@name='DisplayTitle']") /> 
273 
274                            <!-- start item html --> 
275                            <div class="b-related-project"> 
276                                <a href="${buildURLProjects()}"> 
277                                    ${entryDisplayTitle} 
278                                </a> 
279                            </div> 
280 
281                            <!-- end item html --> 
282 
283                        </#if> 
284                    </#list> 
285                    <!-- end item loop --> 
286                <!-- start footer -->         
287                </div> 
288                <!-- end footer --> 
289            </#if> 
290        </#if> 
291 
292 
293    </div> 
294 
295    <!-- start functions --> 
296    <#function getVocabularyId categoryName> 
297 
298        <#assign categoriesTest = assetCategoryLocalServiceUtil.getCategories() /> 
299         
300        <#list categoriesTest as categoryEntry> 
301            <#if categoryEntry.getName() == categoryName> 
302                <#return categoryEntry.getVocabularyId()> 
303            </#if> 
304        </#list> 
305    </#function> 
306 
307    <#function getCategoriesByVocabularyId vocabularyId> 
308       <#assign vocabularyCategoryList=assetCategoryLocalServiceUtil.getVocabularyCategories(getterUtil.getLong(vocabularyId), 0, 999, categoriesOrderBy)/> 
309       <#local vocabularyCategories = [] /> 
310       <#list vocabularyCategoryList as vocabularyCategoryEntry> 
311           <#list categoryList as categoryEntry>                                 
312               <#if categoryEntry.getName() == vocabularyCategoryEntry.getName() > 
313 
314                    <#local vocabularyCategories = vocabularyCategories + [ getterUtil.getLong(categoryEntry.getCategoryId()) ] /> 
315 
316               </#if> 
317           </#list> 
318       </#list> 
319       <#return vocabularyCategories> 
320    </#function> 
321 
322    <#function buildURLProjects> 
323         
324        <#assign projectCategoryId = getCategoryIdByVocabularyId(allProjectsVocabularyId) /> 
325        <#assign projectCategoryIdParam = "" /> 
326        <#if projectCategoryId+"" != ""> 
327            <#assign projectCategoryIdParam = "?p_r_p_categoryId=" + projectCategoryId /> 
328        </#if> 
329       <#local url = "/" + splittedURL[1] + "/" + renderer.getUrlTitle() + projectCategoryIdParam /> 
330       <#return url /> 
331    </#function> 
332 
333    <#function buildURLResearchAreas> 
334         
335        <#assign researchAreaCategoryId = getCategoryIdByVocabularyId(allResearchAreasVocabularyId) /> 
336        <#assign researchAreaIdParam = "" /> 
337        <#if researchAreaCategoryId+"" != ""> 
338            <#assign researchAreaIdParam = "?p_r_p_categoryId=" + researchAreaCategoryId /> 
339        </#if> 
340       <#local url = "/" + splittedURL[1] + "/" + renderer.getUrlTitle() + researchAreaIdParam /> 
341       <#return url /> 
342    </#function> 
343 
344    <#function getCategoryIdByVocabularyId vocabularyId> 
345        <#assign vocabularyCategoryList=assetCategoryLocalServiceUtil.getVocabularyCategories(getterUtil.getLong(vocabularyId), 0, 999, categoriesOrderBy)/> 
346        <#assign categoryList=assetCategoryLocalServiceUtil.getCategories(className, classPK)/> 
347        <#list vocabularyCategoryList as vocabularyCategoryEntry> 
348            <#list categoryList as categoryEntry>                                 
349                <#if categoryEntry.getName() == vocabularyCategoryEntry.getName() > 
350                    <#return categoryEntry.getCategoryId()> 
351                </#if> 
352            </#list> 
353        </#list> 
354        <#return ""> 
355    </#function> 
356 
357 
358 
359 
360 
361<#function generateAttachmentElement attachmentURL> 
362    <#assign counter = 0 > 
363    <#list attachmentURL?split("/") as chunkURL> 
364        <#if counter == 2> 
365            <#assign groupId = chunkURL?number > 
366        </#if> 
367        <#if counter == 5> 
368            <#if chunkURL?index_of("?") != -1> 
369                <#assign uuId = chunkURL?substring(0, chunkURL?index_of("?")) > 
370            <#else> 
371                <#assign uuId = chunkURL > 
372            </#if> 
373        </#if> 
374        <#assign counter = counter+1 > 
375    </#list> 
376 
377    <#assign fileEntry = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService') />  
378    <#attempt> 
379        <#assign file=fileEntry.getFileEntryByUuidAndGroupId(uuId, getterUtil.getLong(groupId)) /> 
380        <#assign fileMimeType = file.getMimeType()> 
381        <#assign fileName = file.getFileName()> 
382    <#recover> 
383        <#assign fileMimeType = ""> 
384        <#assign fileName = ""> 
385    </#attempt> 
386 
387    <#assign fileInfo = [fileMimeType, fileName]> 
388    <#return fileInfo /> 
389</#function> 
390 
391 
392 
393 
394 
395 
396 
397</div> 
398 
399 
400 
401 
402 
403<script type="text/javascript"> 
404   (function($){ 
405       AUI().ready("aui-module", function() { 
406           $(".researchAreaURL").on('touchend', function(e) { 
407               debugger; 
408               window.location.href = $(this).attr("href"); 
409           }); 
410        var $source = $('<source>'); 
411        $(".video-modal").on("click", function(){ 
412            var videoUrl = $(this).data( "videolink" ); 
413            var videoName = $(this).attr("title") 
414            var $video = $('.yui3-widget-bd.modal-body video'); 
415            var video = $video[0]; 
416            console.log(videoUrl, videoName); 
417            $(".modalVideoTitle").html(videoName); 
418            if($video.html() == ""){ 
419                $source.attr('src', videoUrl); 
420                $source.appendTo($video); 
421                video.play(); 
422            }else{ 
423                video.pause(); 
424                $source.attr("src", videoUrl); 
425                video.load(); 
426                video.play(); 
427
428            /*$('.yui3-widget-bd.modal-body video source').attr('src', videoUrl);*/ 
429        }); 
430       }); 
431   })(jQuery); 
432</script> 
433 
434 
435<script> 
436    YUI().use( 
437  'aui-modal', 
438  function(Y) { 
439    var modal = new Y.Modal( 
440
441        bodyContent: '<video width="720" height="480" controls>' + 
442                                 
443                           '</video>', 
444        centered: true, 
445        destroyOnHide: false, 
446        headerContent: '<h3 class="modalVideoTitle"></h3>', 
447        modal: true, 
448        render: '#modal', 
449        zIndex: 1100, 
450        visible: false, 
451        width: 760 
452
453    ).render();  
454    Y.all('.video-modal').on( 
455      'click', 
456      function() { 
457        modal.show(); 
458
459    ); 
460
461); 
462</script> 
463<!-- END: Related Projects --> 
464<!-- END: Project Template --> 

Publications

The 11th International Symposium on Advanced Vehicle Control (AVEC) 2012
J. Chiu, A. Goswami