Initial commit,修正

This commit is contained in:
2025-07-13 19:37:38 +08:00
parent 38ce288e27
commit 65bbd06981
12384 changed files with 3985464 additions and 8 deletions
+53
View File
@@ -0,0 +1,53 @@
$('i.glyphicon-refresh-animate').hide();
function updateItems(r) {
_opts.items.avaliable = r.avaliable;
_opts.items.assigned = r.assigned;
search('avaliable');
search('assigned');
}
$('.btn-assign').click(function () {
var $this = $(this);
var target = $this.data('target');
var items = $('select.list[data-target="' + target + '"]').val();
if (items && items.length) {
$this.children('i.glyphicon-refresh-animate').show();
$.post($this.attr('href'), {items: items}, function (r) {
updateItems(r);
}).always(function () {
$this.children('i.glyphicon-refresh-animate').hide();
});
}
return false;
});
$('.search[data-target]').keyup(function () {
search($(this).data('target'));
});
function search(target) {
var $list = $('select.list[data-target="' + target + '"]');
$list.html('');
var q = $('.search[data-target="' + target + '"]').val();
var groups = {
role: [$('<optgroup label="Roles">'), false],
permission: [$('<optgroup label="Permission">'), false],
};
$.each(_opts.items[target], function (name, group) {
if (name.indexOf(q) >= 0) {
$('<option>').text(name).val(name).appendTo(groups[group][0]);
groups[group][1] = true;
}
});
$.each(groups, function () {
if (this[1]) {
$list.append(this[0]);
}
});
}
// initial
search('avaliable');
search('assigned');
+72
View File
@@ -0,0 +1,72 @@
<?php
use yii\helpers\Html;
use yii\grid\GridView;
use yii\widgets\Pjax;
/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */
/* @var $searchModel mdm\admin\models\searchs\Assignment */
/* @var $usernameField string */
/* @var $extraColumns string[] */
$this->title = Yii::t('rbac-admin', 'Assignments');
$this->params['breadcrumbs'][] = $this->title;
$columns = [
['class' => 'yii\grid\SerialColumn'],
$usernameField,
];
if (!empty($extraColumns)) {
$columns = array_merge($columns, $extraColumns);
}
$columns[] = [
'class' => 'yii\grid\ActionColumn',
'template' => '{view}'
];
?>
<div class="wrapper wrapper-content">
<div class="ibox-content">
<div class="assignment-index">
<h1><?= Html::encode($this->title) ?></h1>
<?php Pjax::begin(); ?>
<?=
GridView::widget([
'dataProvider' => $dataProvider,
//'filterModel' => $searchModel,
'layout' => '{items}{summary}{pager}', //数据布局
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'label' => '用户名',
'attribute' => 'username',
],
[
'class' => 'yii\grid\ActionColumn',
'header' => '操作',
'options' => ['width' => '100px;'],
'template' => '{view}',
'buttons' => [
'view' => function ($url, $model) {
return Html::a('<i class="fa fa-edit">分配</i>', $url, [
'title' => Yii::t('app', 'view'),
'class' => 'del btn btn-primary btn-xs',
]);
}
],
],
],
]);
?>
<?php Pjax::end(); ?>
</div>
</div>
</div>
+70
View File
@@ -0,0 +1,70 @@
<?php
use yii\helpers\Html;
use yii\helpers\ArrayHelper;
use yii\helpers\Json;
use mdm\admin\AnimateAsset;
use yii\web\YiiAsset;
/* @var $this yii\web\View */
/* @var $model mdm\admin\models\Assignment */
/* @var $fullnameField string */
$userName = $model->{$usernameField};
if (!empty($fullnameField)) {
$userName .= ' (' . ArrayHelper::getValue($model, $fullnameField) . ')';
}
$userName = Html::encode($userName);
$this->title = Yii::t('rbac-admin', 'Assignment') . ' : ' . $userName;
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', 'Assignments'), 'url' => ['index']];
$this->params['breadcrumbs'][] = $userName;
AnimateAsset::register($this);
YiiAsset::register($this);
$opts = Json::htmlEncode([
'items' => $model->getItems()
]);
$this->registerJs("var _opts = {$opts};");
$this->registerJs($this->render('_script.js'));
$animateIcon = ' <i class="glyphicon glyphicon-refresh glyphicon-refresh-animate"></i>';
?>
<div class="wrapper wrapper-content">
<div class="ibox-content">
<div class="assignment-index">
<h1><?= $this->title ?></h1>
<div class="row">
<div class="col-sm-5">
<input class="form-control search" data-target="avaliable"
placeholder="<?= Yii::t('rbac-admin', 'Search for avaliable') ?>">
<select multiple size="20" class="form-control list" data-target="avaliable">
</select>
</div>
<div class="col-sm-1">
<br><br>
<?= Html::a('&gt;&gt;' . $animateIcon, ['assign', 'id' => (string)$model->id], [
'class' => 'btn btn-success btn-assign',
'data-target' => 'avaliable',
'title' => Yii::t('rbac-admin', 'Assign')
]) ?><br><br>
<?= Html::a('&lt;&lt;' . $animateIcon, ['revoke', 'id' => (string)$model->id], [
'class' => 'btn btn-danger btn-assign',
'data-target' => 'assigned',
'title' => Yii::t('rbac-admin', 'Remove')
]) ?>
</div>
<div class="col-sm-5">
<input class="form-control search" data-target="assigned"
placeholder="<?= Yii::t('rbac-admin', 'Search for assigned') ?>">
<select multiple size="20" class="form-control list" data-target="assigned">
</select>
</div>
</div>
</div>
</div>
</div>