%PDF- %PDF-
Direktori : /home/waritko/jetty-distribution-9.4.21.v20190926/webapps/ROOT/templates/ |
Current File : //home/waritko/jetty-distribution-9.4.21.v20190926/webapps/ROOT/templates/suggest.vm |
## ## @Deprecated since 9.8RC1 use the ClassPropertyValues REST resource instead. ## $response.setContentType("text/xml") ## #set($classname = $request.get("classname")) #set($fieldname = $request.get("fieldname")) #set($firCol = "$!{request.get('firCol')}") #set($secCol = "$!{request.get('secCol')}") #set($templatename = $classname + 'Template') #set($p = $xwiki.getDocument($classname).getxWikiClass().get($fieldname).getPropertyClass()) #set($hibquery = "$!p.getSql()") ## ## Determine what was the input. If the property accepts multiple values and has separators, then ## use only the last token as the input. ## TODO: What if the user is actually typing in the middle of the input string? The actual word for ## which the autocompletion is triggered should be sent from JS. ## #set($input = "$!{request.get('input').toLowerCase()}") #set($sep = "$!{p.getSeparators()}") #if($p.isMultiSelect() && ($sep != "")) ### has separators #set($input_words = $stringtool.split($input, $sep)) #foreach($i in $input_words) #set($input = $i.trim()) #end #end #set($input = $input.replaceAll('[\[_%!]', '!$0')) ## ######################### User hibernate query #if("$!hibquery" != "") #if($secCol != "-") ### two columns, hidden input #set($likeCol = $secCol) #set($resultsType = 1) #else ### one column, no hidden input #set($likeCol = $firCol) #set($resultsType = 2) #end #set($whereidx = $hibquery.toLowerCase().indexOf("where")) #if($whereidx < 0) #set($like = " where lower("+ $likeCol.replaceAll("[^a-zA-Z0-9_.]", "") + ") like :input ESCAPE '!'") #set($hibquery = $hibquery.concat($like)) #else #set($whereidx = $whereidx + 5) #set($like = " lower("+ $likeCol.replaceAll("[^a-zA-Z0-9_.]", "") + ") like :input ESCAPE '!' and") #set($hibquery = "${hibquery.substring(0, $whereidx)}${like}${hibquery.substring($whereidx)}") #end #set($results = $services.query.hql($hibquery).setLimit(30).bindValue('input', "%${input}%").execute()) <?xml version="1.0" encoding="UTF-8"?> <results type="${resultsType}"> #foreach($res in $results) #set($info = '') #set($rs = $res) #foreach($r in $res) #if($velocityCount == 1) #set($info = $r) #elseif($velocityCount == 2) #set($rs = $r) #end #end #if(($info != '-') && ($rs != '-')) <rs id="" info="$!{escapetool.xml($info)}">$!{escapetool.xml($rs)}</rs> #end #end </results> #else ## hibquery == "" ######################### DBListProperty query #if($p.isRelationalStorage() && $p.isMultiSelect()) #set($query = "select distinct list from BaseObject as obj, DBStringListProperty as prop join prop.list list where obj.name <> :templatename and obj.className = :classname and prop.id.id = obj.id and prop.id.name = :fieldname and lower(list) like :input ESCAPE '!'") #set($queryResult = $services.query.hql($query).setLimit(30).bindValues({'templatename' : ${templatename}, 'classname' : ${classname}, 'fieldname' : ${fieldname}, 'input' : "%${input}%"}).execute()) #set($results = $queryResult.toArray()) <?xml version="1.0" encoding="UTF-8"?> <results type="3"> #foreach($res in $results) <rs id="$velocityCount" info="">$!{escapetool.xml($res)}</rs> #end </results> ######################### StringListProperty query #elseif($p.isMultiSelect()) #set($query = "select distinct prop.textValue from BaseObject as obj, StringListProperty as prop where obj.name <> :templatename and obj.className = :classname and prop.id.id = obj.id and prop.name = :fieldname and lower(prop.textValue) like :input ESCAPE '!'") #set($queryResult = $services.query.hql($query).setLimit(30).bindValues({'templatename' : ${templatename}, 'classname' : ${classname}, 'fieldname' : ${fieldname}, 'input' : "%${input}%"}).execute()) #set($results = $queryResult.toArray()) <?xml version="1.0" encoding="UTF-8"?> <results type="5"> #foreach($res in $results) #set($list = $p.getListFromString($res, $sep, false)) #set($list = $list.toArray()) #foreach($word in $list) <rs id="$velocityCount" info="">$!{escapetool.xml($word)}</rs> #end #end </results> ######################### StringProperty query #else #set($query = "select distinct prop.value from BaseObject as obj, StringProperty as prop where obj.className = :classname and obj.name <> :templatename and prop.id.id = obj.id and prop.id.name = :fieldname and lower(prop.value) like :input ESCAPE '!'") #set($queryResult = $services.query.hql($query).setLimit(30).bindValues({'templatename' : ${templatename}, 'classname' : ${classname}, 'fieldname' : ${fieldname}, 'input' : "%${input}%"}).execute()) #set($results = $queryResult.toArray()) <?xml version="1.0" encoding="UTF-8"?> <results type="8"> #foreach($res in $results) <rs id="$velocityCount" info="">$!{escapetool.xml($res)}</rs> #end </results> #end #end ## if hibquery