Skip to content
Snippets Groups Projects
Commit 43971ca3 authored by Vincent Massol's avatar Vincent Massol Committed by GitHub
Browse files

Merge pull request #598 from pbondoer/XWIKI-12990

XWIKI-12990: Displaying a livetable list filter for a non-static list field is not scalable
parents 435a28c4 d2e82ad9
No related branches found
No related tags found
No related merge requests found
......@@ -277,25 +277,33 @@
#set($class = $xwiki.getDocument($propClassName).getxWikiClass())
#set($list = '')
#set($list = $class.get($colname).getListValues())
<select id="xwiki-livetable-${htmlLiveTableId}-filter-${velocityCount}" name='${colname}'
#if("$!colprop.type" == 'multilist')
#set($ok = $xwiki.jsfx.use('js/xwiki/table/livetablemulti.js', true))
#set($ok = $xwiki.linkx.use($services.webjars.url('bootstrap-select', 'css/bootstrap-select.css'), {'type': 'text/css', 'rel': 'stylesheet'}))
class='xwiki-livetable-multilist' multiple='multiple'>
#if ($list.size() > 1000)
## default to a text filter if the list is too large
<input id="xwiki-livetable-${htmlLiveTableId}-filter-${velocityCount}" name="${colname}" type="text"
#if("$!colprop.size" != '') size="${colprop.size}"
title="$escapetool.xml($services.localization.render('platform.livetable.filtersTitle',
[$services.localization.render("${transprefix}${colname}")]))"#end />
#else
><option value=''>$services.localization.render('platform.livetable.selectAll')</option>
<option disabled='disabled'>────</option>
#end
#set($map = $class.get($colname).getMapValues())
#foreach($listitem in $list)
#set ($l10n_key = "${propClassName}_${colname}_${listitem}")
#set ($l10n_value = $services.localization.render($l10n_key))
#if ($l10n_value == $l10n_key)
#set ($l10n_value = $map.get($listitem).getValue())
<select id="xwiki-livetable-${htmlLiveTableId}-filter-${velocityCount}" name='${colname}'
#if("$!colprop.type" == 'multilist')
#set($ok = $xwiki.jsfx.use('js/xwiki/table/livetablemulti.js', true))
#set($ok = $xwiki.linkx.use($services.webjars.url('bootstrap-select', 'css/bootstrap-select.css'), {'type': 'text/css', 'rel': 'stylesheet'}))
class='xwiki-livetable-multilist' multiple='multiple'>
#else
><option value=''>$services.localization.render('platform.livetable.selectAll')</option>
<option disabled='disabled'>────</option>
#end
<option value="$listitem">$l10n_value</option>
#set($map = $class.get($colname).getMapValues())
#foreach($listitem in $list)
#set ($l10n_key = "${propClassName}_${colname}_${listitem}")
#set ($l10n_value = $services.localization.render($l10n_key))
#if ($l10n_value == $l10n_key)
#set ($l10n_value = $map.get($listitem).getValue())
#end
<option value="$listitem">$l10n_value</option>
#end
</select>
#end
</select>
</td>
#elseif("$!colprop.type" == 'boolean' && $isFilterable)
<td class="xwiki-livetable-display-header-filter">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment