%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/admin/views/approval/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/admin/views/approval/index.php |
<?php
use humhub\modules\admin\controllers\ApprovalController;
use humhub\modules\user\models\ProfileField;
use humhub\widgets\Button;
use yii\grid\ActionColumn;
use humhub\modules\admin\models\UserApprovalSearch;
use yii\data\ActiveDataProvider;
use humhub\libs\Html;
use humhub\widgets\GridView;
use humhub\modules\user\grid\ImageColumn;
use humhub\modules\user\grid\DisplayNameColumn;
use humhub\modules\user\models\User;
/** @var $searchModel UserApprovalSearch */
/** @var $dataProvider ActiveDataProvider */
/** @var $availableProfileFields ProfileField[] */
/** @var $profileFieldsColumns ProfileField[] */
$columns = [
[
'header' => Html::checkbox('select-all'),
'format' => 'raw',
'value' => static function (User $model) {
return Html::checkbox('ids[]', false, ['id' => 'user-select-' . $model->id, 'value' => $model->id]);
}
],
['class' => ImageColumn::class],
['class' => DisplayNameColumn::class],
'email',
'originator.username',
];
foreach ($profileFieldsColumns as $profileField) {
$columns[] = [
'attribute' => 'profile.' . $profileField->internal_name,
'value' => static function (User $model) use ($profileField) {
return $profileField->getUserValue($model);
}
];
}
$columns[] = 'created_at';
$columns[] = [
'class' => ActionColumn::class,
'options' => ['style' => 'width:105px;'],
'buttons' => [
'view' => function ($url, $model) {
return Button::defaultType()->link(['/admin/user/edit', 'id' => $model->id])->icon('edit')->sm()->tooltip(Yii::t('AdminModule.user', 'Edit'));
},
'update' => function ($url, $model) {
return Button::success()->link(['approve', 'id' => $model->id])->icon('check')->sm()->tooltip(Yii::t('AdminModule.user', 'Approve'));
},
'delete' => function ($url, $model) {
return Button::danger()->link(['decline', 'id' => $model->id])->icon('times')->sm()->tooltip(Yii::t('AdminModule.user', 'Decline'));
},
],
];
?>
<div class="panel-body">
<div class="dropdown pull-right">
<?php if (!empty($availableProfileFields)): ?>
<?= Button::defaultType()
->icon('cog')
->loader(false)
->options(['data-toggle' => 'dropdown']) ?>
<?php endif; ?>
<?= Html::beginForm('#', 'post', [
'id' => 'screen-options',
'class' => 'dropdown-menu p-4'
]) ?>
<h6 class="dropdown-header">
<strong><?= Yii::t('AdminModule.user', 'Select the profile fields you want to add as columns') ?></strong>
</h6>
<li class="divider"></li>
<div style="padding: 0 15px;">
<?php foreach ($availableProfileFields as $field): ?>
<?= Html::checkbox('screenProfileFieldsId[]', array_key_exists($field->id, $profileFieldsColumns), ['id' => 'profile-select-' . $field->id, 'value' => $field->id, 'label' => Yii::t($field->getTranslationCategory(), $field->title)]) ?>
<?php endforeach; ?>
<br>
<?= Html::saveButton(Yii::t('AdminModule.user', 'Apply')) ?>
</div>
<?= Html::endForm() ?>
</div>
<h4><?= Yii::t('AdminModule.user', 'Pending user approvals') ?></h4>
<div class="help-block">
<?= Yii::t('AdminModule.user', 'The following list contains all registered users awaiting an approval.') ?>
</div>
<?= Html::beginForm(['bulk-actions'], 'post', ['id' => 'admin-approval-form']) ?>
<?=
GridView::widget([
'dataProvider' => $dataProvider,
'columns' => $columns,
]);
?>
<br>
<?= Html::button(Yii::t('AdminModule.user', 'Approve all selected'), [
'class' => 'btn btn-success btn-sm bulk-actions-button bulk-actions-button-approve',
'data-confirm' => Yii::t('AdminModule.user', 'Are you really sure? The selected users will be approved and notified by e-mail.'),
]) ?>
<?= Html::button(Yii::t('AdminModule.user', 'Decline all selected'), [
'class' => 'btn btn-danger btn-sm bulk-actions-button bulk-actions-button-decline',
'data-confirm' => Yii::t('AdminModule.user', 'Are you really sure? The selected users will be deleted and notified by e-mail.'),
]) ?>
<?= Html::endForm() ?>
</div>
<script <?= Html::nonce() ?>>
$(function () {
$('.bulk-actions-button-approve').on('click', function () {
$('#admin-approval-form').find("input[name='action']").remove();
$('#admin-approval-form').append('<input type="hidden" name="action" value="<?= ApprovalController::ACTION_APPROVE ?>" />');
//$('#admin-approval-form').submit();
});
$('.bulk-actions-button-decline').on('click', function () {
$('#admin-approval-form').find("input[name='action']").remove();
$('#admin-approval-form').append('<input type="hidden" name="action" value="<?= ApprovalController::ACTION_DECLINE ?>" />');
//$('#admin-approval-form').submit();
});
const selectAllCheckbox = $('#admin-approval-form input[name="select-all"]');
const usersCheckbox = $('#admin-approval-form input[name="ids[]"]');
const bulkActionsButtons = $('.bulk-actions-button');
// Enable bulk buttons only when at least one user is selected
const updateButtonState = function () {
bulkActionsButtons.attr('disabled', 'disabled');
usersCheckbox.each(function () {
if ($(this).is(":checked")) {
bulkActionsButtons.removeAttr('disabled');
}
});
}
updateButtonState();
usersCheckbox.on('change', function () {
updateButtonState();
})
// Check or uncheck all users with the header checkbox
selectAllCheckbox.on('change', function () {
usersCheckbox.prop('checked', $(this).is(":checked"));
updateButtonState();
})
});
</script>