filter = $filter;
}
protected function renderFilter($filter, $level = 0)
{
$html = '';
$url = Url::fromRequest();
if ($filter instanceof FilterChain) {
if ($level === 0) {
$op = '
)' . $filter->getOperatorName() . ' (';
} else {
$op = ') ' . $filter->getOperatorName() . ' ( ';
}
$parts = array();
foreach ($filter->filters() as $f) {
$parts[] = $this->renderFilter($f, $level + 1);
}
if (empty($parts)) {
return $html;
}
if ($level === 0) {
$html .= '- ( ' . implode($op, $parts) . ' )
';
} else {
$html .= '- ( ' . implode($op, $parts) . ' )
';
}
return $html;
} elseif ($filter instanceof FilterExpression) {
$u = $url->without($filter->getColumn());
} else {
$u = $url . '--';
}
$html .= '' . $filter . ' ';
return $html;
}
public function render()
{
$url = Url::fromRequest();
$view = $this->view();
$html = ' ';
// $html .= $this->renderFilter($this->filter);
$editorUrl = clone $url;
$editorUrl->setParam('modifyFilter', true);
if ($this->filter->isEmpty()) {
$title = t('Filter this list');
$txt = $view->icon('plus');
$remove = '';
} else {
$txt = t('Filtered');
$title = t('Modify this filter');
$remove = ' '
. $view->icon('cancel')
. '';
}
$filter = $this->filter->isEmpty() ? '' : ': ' . $this->filter;
$html .= ($filter ? '' : ' ')
. ''
. $txt
. ''
. $this->shorten($filter, 72)
. $remove
. ($filter ? '
' : '');
return $html;
}
protected function shorten($string, $length)
{
if (strlen($string) > $length) {
return substr($string, 0, $length) . '...';
}
return $string;
}
}