1 | #**
|
---|
2 | * Global macros used by other templates.
|
---|
3 | * This file must be named VM_global_library.vm
|
---|
4 | * in order for Velocity to find it.
|
---|
5 | *#
|
---|
6 |
|
---|
7 | #macro(param $key)$request.params.get($key)#end
|
---|
8 |
|
---|
9 | #macro(url_root)/solr#end
|
---|
10 |
|
---|
11 | ## TODO: s/url_for_solr/url_for_core/ and s/url_root/url_for_solr/
|
---|
12 | #macro(core_name)$request.core.name#end
|
---|
13 | #macro(url_for_solr)#{url_root}#if($request.core.name != "")/$request.core.name#end#end
|
---|
14 | #macro(url_for_home)#url_for_solr/browse#end
|
---|
15 |
|
---|
16 | #macro(q)&q=$!{esc.url($params.get('q'))}#end
|
---|
17 |
|
---|
18 | #macro(fqs $p)#foreach($fq in $p)#if($velocityCount>1)&#{end}fq=$esc.url($fq)#end#end
|
---|
19 |
|
---|
20 | #macro(debug)#if($request.params.get('debugQuery'))&debugQuery=true#end#end
|
---|
21 |
|
---|
22 | #macro(boostPrice)#if($request.params.get('bf') == 'price')&bf=price#end#end
|
---|
23 |
|
---|
24 | #macro(annotate)#if($request.params.get('annotateBrowse'))&annotateBrowse=true#end#end
|
---|
25 |
|
---|
26 | #macro(annTitle $msg)#if($annotate == true)title="$msg"#end#end
|
---|
27 |
|
---|
28 | #macro(spatial)#if($request.params.get('sfield'))&sfield=store#end#if($request.params.get('pt'))&pt=$request.params.get('pt')#end#if($request.params.get('d'))&d=$request.params.get('d')#end#end
|
---|
29 |
|
---|
30 | #macro(qOpts)#set($queryOpts = $request.params.get("queryOpts"))#if($queryOpts && $queryOpts != "")&queryOpts=$queryOpts#end#end
|
---|
31 |
|
---|
32 | #macro(group)#if($request.params.getBool("group") == true)&group=true#end#if($request.params.get("group.field"))#foreach($grp in $request.params.getParams('group.field'))&group.field=$grp#end#end#end
|
---|
33 |
|
---|
34 | #macro(sort $p)#if($p)#foreach($s in $p)&sort=$esc.url($s)#end#end#end
|
---|
35 |
|
---|
36 | #macro(lensNoQ)?#if($request.params.getParams('fq') and $list.size($request.params.getParams('fq')) > 0)&#fqs($request.params.getParams('fq'))#end#sort($request.params.getParams('sort'))#debug#boostPrice#annotate#spatial#qOpts#group#end
|
---|
37 | #macro(lens)#lensNoQ#q#end
|
---|
38 |
|
---|
39 |
|
---|
40 | #macro(url_for_lens)#{url_for_home}#lens#end
|
---|
41 |
|
---|
42 | #macro(url_for_start $start)#url_for_home#lens&start=$start#end
|
---|
43 |
|
---|
44 | #macro(url_for_filters $p)#url_for_home?#q#boostPrice#spatial#qOpts#if($list.size($p) > 0)&#fqs($p)#end#debug#end
|
---|
45 |
|
---|
46 | #macro(url_for_nested_facet_query $field)#url_for_home#lens&fq=$esc.url($field)#end
|
---|
47 |
|
---|
48 | ## TODO: convert to use {!raw f=$field}$value (with escaping of course)
|
---|
49 | #macro(url_for_facet_filter $field $value)#url_for_home#lens&fq=$esc.url($field):%22$esc.url($value)%22#end
|
---|
50 |
|
---|
51 | #macro(url_for_facet_date_filter $field $value)#url_for_home#lens&fq=$esc.url($field):$esc.url($value)#end
|
---|
52 |
|
---|
53 | #macro(url_for_facet_range_filter $field $value)#url_for_home#lens&fq=$esc.url($field):$esc.url($value)#end
|
---|
54 |
|
---|
55 |
|
---|
56 | #macro(link_to_previous_page $text)
|
---|
57 | #if($page.current_page_number > 1)
|
---|
58 | #set($prev_start = $page.start - $page.results_per_page)
|
---|
59 | <a class="prev-page" href="#url_for_start($prev_start)">$text</a>
|
---|
60 | #end
|
---|
61 | #end
|
---|
62 |
|
---|
63 | #macro(link_to_next_page $text)
|
---|
64 | #if($page.current_page_number < $page.page_count)
|
---|
65 | #set($next_start = $page.start + $page.results_per_page)
|
---|
66 | <a class="next-page" href="#url_for_start($next_start)">$text</a>
|
---|
67 | #end
|
---|
68 | #end
|
---|
69 |
|
---|
70 | #macro(link_to_page $page_number $text)
|
---|
71 | #if($page_number == $page.current_page_number)
|
---|
72 | $text
|
---|
73 | #else
|
---|
74 | #if($page_number <= $page.page_count)
|
---|
75 | #set($page_start = $page_number * $page.results_per_page - $page.results_per_page)
|
---|
76 | <a class="page" href="#url_for_start($page_start)">$text</a>
|
---|
77 | #end
|
---|
78 | #end
|
---|
79 | #end
|
---|
80 |
|
---|
81 | #macro(display_facet_query $field, $display, $fieldName)
|
---|
82 | #if($field.size() > 0)
|
---|
83 | <span class="facet-field">$display</span>
|
---|
84 | <ul>
|
---|
85 | #foreach ($facet in $field)
|
---|
86 | #if ($facet.value > 0)
|
---|
87 | #set($facetURL = "#url_for_nested_facet_query($facet.key)")
|
---|
88 | #if ($facetURL != '')
|
---|
89 | <li><a href="$facetURL">$facet.key</a> ($facet.value)</li>
|
---|
90 | #end
|
---|
91 | #end
|
---|
92 | #end
|
---|
93 | </ul>
|
---|
94 | #end
|
---|
95 | #end
|
---|
96 |
|
---|
97 |
|
---|
98 | #macro(display_facet_range $field, $display, $fieldName, $start, $end, $gap, $before, $after)
|
---|
99 | <span class="facet-field">$display</span>
|
---|
100 | <ul>
|
---|
101 | #if($before && $before != "")
|
---|
102 | #set($value = "[* TO " + "#format_value($start)" + "}")
|
---|
103 | #set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
|
---|
104 | <li><a href="$facetURL">Less than #format_value($start)</a> ($before)</li>
|
---|
105 | #end
|
---|
106 | #foreach ($facet in $field)
|
---|
107 | #set($rangeEnd = "#range_get_to_value($facet.key, $gap)")
|
---|
108 | #set($value = "[" + $facet.key + " TO " + $rangeEnd + "}")
|
---|
109 | #set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
|
---|
110 | #if ($facetURL != '')
|
---|
111 | <li><a href="$facetURL">$facet.key - #format_value($rangeEnd)</a> ($facet.value)</li>
|
---|
112 | #end
|
---|
113 | #end
|
---|
114 | #if($end && $end != "" && $after > 0)
|
---|
115 | #set($value = "[" + "#format_value($end)" + " TO *}")
|
---|
116 | #set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
|
---|
117 | <li><a href="$facetURL">More than #format_value($end)</a> ($after)</li>
|
---|
118 | #end
|
---|
119 | </ul>
|
---|
120 | #end
|
---|
121 |
|
---|
122 | ## $pivots is a list of facet_pivot
|
---|
123 | #macro(display_facet_pivot $pivots, $display)
|
---|
124 | #if($pivots.size() > 0)
|
---|
125 | <span class="facet-field">$display</span>
|
---|
126 | <ul>
|
---|
127 | #foreach ($pivot in $pivots)
|
---|
128 | #foreach ($entry in $pivot.value)
|
---|
129 | <a href="#url_for_facet_filter($entry.field, $entry.value)">$entry.field::$entry.value</a> ($entry.count)
|
---|
130 | <ul>
|
---|
131 | #foreach($nest in $entry.pivot)
|
---|
132 | <a href="#url_for_facet_filter($entry.field, $entry.value)&fq=$esc.url($nest.field):%22$esc.url($nest.value)%22">$nest.field::$nest.value</a> ($nest.count)
|
---|
133 | #end
|
---|
134 | </ul>
|
---|
135 | #end
|
---|
136 | #end
|
---|
137 | </ul>
|
---|
138 | #end
|
---|
139 | #end
|
---|
140 |
|
---|
141 | #macro(field $f)
|
---|
142 | #if($response.response.highlighting.get($docId).get($f).get(0))
|
---|
143 | #set($pad = "")
|
---|
144 | #foreach($v in $response.response.highlighting.get($docId).get($f))
|
---|
145 | $pad$v##
|
---|
146 | #set($pad = " ... ")
|
---|
147 | #end
|
---|
148 | #else
|
---|
149 | #foreach($v in $doc.getFieldValues($f))
|
---|
150 | $v##
|
---|
151 | #end
|
---|
152 | #end
|
---|
153 | #end
|
---|
154 |
|
---|
155 | #macro(utc_date $theDate)
|
---|
156 | $date.format("yyyy-MM-dd'T'HH:mm:ss'Z'",$theDate,$date.getLocale(),$date.getTimeZone().getTimeZone("UTC"))##
|
---|
157 | #end
|
---|
158 |
|
---|
159 | #macro(format_value $val)
|
---|
160 | #if(${val.class.name} == "java.util.Date")
|
---|
161 | #utc_date($val)##
|
---|
162 | #else
|
---|
163 | $val##
|
---|
164 | #end
|
---|
165 | #end
|
---|
166 |
|
---|
167 | #macro(range_get_to_value $inval, $gapval)
|
---|
168 | #if(${gapval.class.name} == "java.lang.String")
|
---|
169 | $inval$gapval##
|
---|
170 | #elseif(${gapval.class.name} == "java.lang.Float" || ${inval.class.name} == "java.lang.Float")
|
---|
171 | $math.toDouble($math.add($inval,$gapval))##
|
---|
172 | #else
|
---|
173 | $math.add($inval,$gapval)##
|
---|
174 | #end
|
---|
175 | #end
|
---|