protected function renderToggleAll()
{
// disable select all toggle feature for a single select, or when the showToggleALl is false, or
// when one is generating an ajax based search for rendering the select2 options
if (!$this->options['multiple'] || !$this->showToggleAll || !empty($this->pluginOptions['ajax'])) {
return;
}
$settings = array_replace_recursive(['selectLabel' => '<i class="glyphicon glyphicon-unchecked"></i>' . Yii::t('kvselect', 'Select all'), 'unselectLabel' => '<i class="glyphicon glyphicon-check"></i>' . Yii::t('kvselect', 'Unselect all'), 'selectOptions' => [], 'unselectOptions' => [], 'options' => ['class' => 's2-togall-button']], $this->toggleAllSettings);
$sOptions = $settings['selectOptions'];
$uOptions = $settings['unselectOptions'];
$options = $settings['options'];
$prefix = 's2-togall-';
Html::addCssClass($options, "{$prefix}select");
Html::addCssClass($sOptions, "s2-select-label");
Html::addCssClass($uOptions, "s2-unselect-label");
$options['id'] = $prefix . $this->options['id'];
$labels = Html::tag('span', $settings['selectLabel'], $sOptions) . Html::tag('span', $settings['unselectLabel'], $uOptions);
$out = Html::tag('span', $labels, $options);
if (!is_null($this->accesskey)) {
$accesskey = substr($this->accesskey, 0, 1);
echo Html::tag('button', '', ['accesskey' => $accesskey, 'style' => 'background: transparent;border: none !important;font-size:0;', 'onfocus' => '$("#' . $this->options['id'] . '").select2("open");']);
}
echo Html::tag('span', $out, ['id' => 'parent-' . $options['id'], 'style' => 'display:none']);
}