<?php

use Icinga\Data\Extensible;
use Icinga\Data\Reducible;

if (! $this->compact): ?>
<div class="controls separated">
    <?= $this->tabs ?>
    <?= $this->paginator ?>
    <div class="sort-controls-container">
        <?= $this->limiter ?>
        <?= $this->sortBox ?>
    </div>
    <?= $this->backendSelection ?>
    <?= $this->filterEditor ?>
</div>
<?php endif ?>
<div class="content">
<?php

if (! isset($backend)) {
    echo $this->translate('No backend found which is able to list user groups') . '</div>';
    return;
} else {
    $extensible = $this->hasPermission('config/authentication/groups/add') && $backend instanceof Extensible;
    $reducible = $this->hasPermission('config/authentication/groups/remove') && $backend instanceof Reducible;
}
?>

<?php if ($extensible): ?>
    <?= $this->qlink(
        $this->translate('Add a New User Group'),
        'group/add',
        array('backend' => $backend->getName()),
        array(
            'class'             => 'button-link',
            'data-base-target'  => '_next',
            'icon'              => 'plus'
        )
    ) ?>
<?php endif ?>

<?php if (! $groups->hasResult()): ?>
    <p><?= $this->translate('No user groups found matching the filter'); ?></p>
</div>
<?php return; endif ?>
    <table data-base-target="_next" class="table-row-selectable common-table">
        <thead>
            <tr>
                <th><?= $this->translate('User Group'); ?></th>
            <?php if ($reducible): ?>
                <th><?= $this->translate('Remove'); ?></th>
            <?php endif ?>
            </tr>
        </thead>
        <tbody>
        <?php foreach ($groups as $group): ?>
            <tr>
                <td>
                    <?= $this->qlink(
                        $group->group_name,
                        'group/show',
                        array(
                            'backend'   => $backend->getName(),
                            'group'     => $group->group_name
                        ),
                        array(
                            'title'     => sprintf(
                                $this->translate('Show detailed information for user group %s'),
                                $group->group_name
                            )
                        )
                    ); ?>
                </td>
            <?php if ($reducible): ?>
                <td class="icon-col">
                    <?= $this->qlink(
                        null,
                        'group/remove',
                        array(
                            'backend'   => $backend->getName(),
                            'group'     => $group->group_name
                        ),
                        array(
                            'class'     => 'action-link',
                            'title'     => sprintf($this->translate('Remove user group %s'), $group->group_name),
                            'icon'      => 'cancel'
                        )
                    ); ?>
                </td>
            <?php endif ?>
            </tr>
        <?php endforeach ?>
        </tbody>
    </table>
</div>
