/** * @inheritdoc */ public function getDetail() { $searchModel = new AuditTrailSearch(); $params = \Yii::$app->request->getQueryParams(); $params['AuditTrailSearch']['entry_id'] = $params['id']; $dataProvider = $searchModel->search($params); return \Yii::$app->view->render('panels/trail/detail', ['panel' => $this, 'dataProvider' => $dataProvider, 'searchModel' => $searchModel]); }
<?php use bedezign\yii2\audit\models\AuditTrailSearch; use yii\db\BaseActiveRecord; use yii\grid\GridView; use yii\web\View; use yii\widgets\Pjax; /** * @var View $this * @var BaseActiveRecord $model * @var yii\bootstrap\ActiveForm $form * @var array $params */ $params = !empty($params) ? $params : Yii::$app->request->get(); $auditTrailSearch = new AuditTrailSearch(); $auditTrailDataProvider = $auditTrailSearch->search($params, $model->getAuditTrails()); $auditTrailDataProvider->pagination = ['pageSize' => 20, 'pageParam' => 'page-auditTrails']; $auditTrailDataProvider->sort = ['defaultOrder' => ['id' => SORT_DESC]]; Pjax::begin(['id' => 'pjax-AuditTrails', 'enableReplaceState' => false, 'linkSelector' => '#pjax-AuditTrails ul.pagination a, th a']); echo '<div class="table-responsive">' . GridView::widget(['layout' => '{summary}{pager}<br/>{items}{pager}', 'dataProvider' => $auditTrailDataProvider, 'filterModel' => $auditTrailSearch, 'columns' => [['attribute' => 'user_id'], ['attribute' => 'audit_id'], 'action', ['attribute' => 'model'], 'model_id', 'field', 'old_value:ntext', 'new_value:ntext', 'stamp']]) . '</div>'; ?> <?php // row grouping ob_start(); ?> <script> var gridview_id = "#pjax-AuditTrails .grid-view"; // specific gridview var columns = [1, 2]; // index column that will grouping, (user_id, audit_id) var column_data = [];
/** * Lists all AuditTrail models. * @return mixed */ public function actionIndex() { $searchModel = new AuditTrailSearch(); $dataProvider = $searchModel->search(Yii::$app->request->get()); return $this->render('index', ['dataProvider' => $dataProvider, 'searchModel' => $searchModel]); }
/** * History lists all Preferences models. * @return mixed */ public function actionHistory() { $searchModel = new AuditTrailSearch(); $searchFilter = ['AuditTrailSearch' => ['action' => 'DELETE', 'model' => 'common\\populac\\models\\Preferences']]; $dataProvider = $searchModel->search(\yii\helpers\ArrayHelper::merge(Yii::$app->request->get(), $searchFilter)); //$message = "<ol>恢复操作指引<li><删除内容>中输入内容筛选</li><li>点击复选框选中需要恢复的记录</li><li>点击<恢复记录>按钮</li></ol>"; //Yii::$app->session->setFlash('info', $message); return $this->render('history', ['dataProvider' => $dataProvider, 'searchModel' => $searchModel]); }
/** * History lists all Event models. * @return mixed */ public function actionHistory() { /*$auditdata = AuditTrailSearch::find() ->select(['entry_id', 'model_id', 'user_id', 'created', 'old_value']) ->where([ 'action' => 'DELETE', 'model' => 'backend\models\Event', ]) ->andFilterWhere(['>', 'old_value', "''"]) ->orderBy(['model_id' => SORT_DESC]) ->all();*/ // $historyData = \yii\helpers\ArrayHelper::map($auditdata, 'model_id', 'old_value'); // \yii\helpers\VarDumper::dump($historyData); $searchModel = new AuditTrailSearch(); $searchFilter = ['AuditTrailSearch' => ['action' => 'DELETE', 'model' => 'backend\\models\\Event']]; $dataProvider = $searchModel->search(\yii\helpers\ArrayHelper::merge(Yii::$app->request->get(), $searchFilter)); //var_dump(Yii::$app->request->get()); //\yii\helpers\VarDumper::dump($searchModel); $message = "<ol>恢复操作指引<li><删除内容>中输入内容筛选</li><li>点击复选框选中需要恢复的记录</li><li>点击<恢复记录>按钮</li></ol>"; Yii::$app->session->setFlash('info', $message); return $this->render('history', ['dataProvider' => $dataProvider, 'searchModel' => $searchModel]); }
use yii\web\View; use yii\widgets\Pjax; /** * @var View $this * @var bool $filter * @var array $params * @var ActiveQuery $query * @var array $columns */ $params = isset($params) ? $params : Yii::$app->request->get(); $query = isset($query) ? $query : null; $columns = isset($columns) ? $columns : []; $filter = isset($filter) ? $filter : true; $this->registerAssetBundle(AuditAsset::className()); $auditTrailSearch = new AuditTrailSearch(); $auditTrailDataProvider = $auditTrailSearch->search($params, $query); $auditTrailDataProvider->pagination = ['pageSize' => 20, 'pageParam' => 'page-auditTrails']; $auditTrailDataProvider->sort = ['defaultOrder' => ['id' => SORT_DESC]]; $_columns = []; if (empty($columns) || in_array('user_id', $columns)) { $_columns[] = ['attribute' => 'user_id', 'value' => function ($data) { return Audit::getInstance()->getUserIdentifier($data->user_id); }, 'format' => 'raw']; } if (empty($columns) || in_array('entry_id', $columns)) { $_columns[] = ['attribute' => 'entry_id', 'value' => function ($model) { /** @var AuditTrail $model */ if (Access::checkAccess()) { return Html::a($model->entry_id, ['/audit/entry/view', 'id' => $model->entry_id]); } return $model->entry_id;