Initial commit,修正
This commit is contained in:
+53
@@ -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
@@ -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
@@ -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('>>' . $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('<<' . $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>
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
use yii\web\View;
|
||||
use yii\helpers\Markdown;
|
||||
use yii\helpers\Url;
|
||||
|
||||
/* @var $this View */
|
||||
|
||||
if (($pos = strrpos($page, '/')) === false) {
|
||||
$baseDir = '';
|
||||
$this->title = substr($page, 0, strrpos($page, '.'));
|
||||
} else {
|
||||
$baseDir = substr($page, 0, $pos) . '/';
|
||||
$this->title = substr($page, $pos + 1, strrpos($page, '.') - $pos - 1);
|
||||
}
|
||||
|
||||
if ($page == 'README.md') {
|
||||
$this->params['breadcrumbs'][] = 'Readme';
|
||||
$menus = $this->context->module->getMenus();
|
||||
$links = [];
|
||||
foreach ($menus as $menu) {
|
||||
$url = Url::to($menu['url'], true);
|
||||
$links[] = "[**{$menu['label']}**]({$url})";
|
||||
}
|
||||
$body = str_replace(':smile:.', ".\n\n" . implode(' ', $links) . "\n", $this->render("@mdm/admin/README.md"));
|
||||
} else {
|
||||
$body = $this->render("@mdm/admin/{$page}");
|
||||
}
|
||||
|
||||
$body = preg_replace_callback('/\]\((.*?)\)/', function($matches) use($baseDir) {
|
||||
$link = $matches[1];
|
||||
if (strpos($link, '://') === false) {
|
||||
if ($link[0] == '/') {
|
||||
$link = Url::current(['page' => ltrim($link, '/')], true);
|
||||
} else {
|
||||
$link = Url::current(['page' => $baseDir . $link], true);
|
||||
}
|
||||
}
|
||||
return "]($link)";
|
||||
}, $body);
|
||||
|
||||
echo Markdown::process($body, 'gfm');
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
use mdm\admin\components\RouteRule;
|
||||
use mdm\admin\AutocompleteAsset;
|
||||
use yii\helpers\Json;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\AuthItem */
|
||||
/* @var $form yii\widgets\ActiveForm */
|
||||
/* @var $context mdm\admin\components\ItemController */
|
||||
|
||||
$context = $this->context;
|
||||
$labels = $context->labels();
|
||||
$rules = Yii::$app->getAuthManager()->getRules();
|
||||
unset($rules[RouteRule::RULE_NAME]);
|
||||
$source = Json::htmlEncode(array_keys($rules));
|
||||
|
||||
$js = <<<JS
|
||||
$('#rule_name').autocomplete({
|
||||
source: $source,
|
||||
});
|
||||
JS;
|
||||
AutocompleteAsset::register($this);
|
||||
$this->registerJs($js);
|
||||
?>
|
||||
|
||||
<div class="auth-item-form">
|
||||
<?php $form = ActiveForm::begin(['id' => 'item-form']); ?>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<?= $form->field($model, 'name')->textInput(['maxlength' => 64]) ?>
|
||||
|
||||
<?= $form->field($model, 'description')->textarea(['rows' => 2]) ?>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<?= $form->field($model, 'ruleName')->textInput(['id' => 'rule_name']) ?>
|
||||
|
||||
<?= $form->field($model, 'data')->textarea(['rows' => 6]) ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo Html::submitButton($model->isNewRecord ? Yii::t('rbac-admin', 'Create') : Yii::t('rbac-admin', 'Update'), [
|
||||
'class' => $model->isNewRecord ? 'btn btn-sm btn-success' : 'btn btn-sm btn-primary',
|
||||
'name' => 'submit-button'])
|
||||
?>
|
||||
</div>
|
||||
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
$('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],
|
||||
route: [$('<optgroup label="Routes">'), 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');
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\AuthItem */
|
||||
/* @var $context mdm\admin\components\ItemController */
|
||||
|
||||
$context = $this->context;
|
||||
$labels = $context->labels();
|
||||
$this->title = Yii::t('rbac-admin', 'Create ' . $labels['Item']);
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', $labels['Items']), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
<div class="auth-item-create">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
<?=
|
||||
$this->render('_form', [
|
||||
'model' => $model,
|
||||
]);
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\grid\GridView;
|
||||
use mdm\admin\components\RouteRule;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $dataProvider yii\data\ActiveDataProvider */
|
||||
/* @var $searchModel mdm\admin\models\searchs\AuthItem */
|
||||
/* @var $context mdm\admin\components\ItemController */
|
||||
|
||||
$context = $this->context;
|
||||
$labels = $context->labels();
|
||||
$this->title = Yii::t('rbac-admin', $labels['Items']);
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
|
||||
$rules = array_keys(Yii::$app->getAuthManager()->getRules());
|
||||
$rules = array_combine($rules, $rules);
|
||||
unset($rules[RouteRule::RULE_NAME]);
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
|
||||
<div class="role-index">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
<p>
|
||||
<?= Html::a(Yii::t('rbac-admin', 'Create ' . $labels['Item']), ['create'], ['class' => 'btn btn-sm btn-info']) ?>
|
||||
</p>
|
||||
<?=
|
||||
GridView::widget([
|
||||
'dataProvider' => $dataProvider,
|
||||
'filterModel' => $searchModel,
|
||||
'layout' => '{items}{summary}{pager}',
|
||||
|
||||
'columns' => [
|
||||
['class' => 'yii\grid\SerialColumn'],
|
||||
[
|
||||
'attribute' => 'name',
|
||||
'label' => Yii::t('rbac-admin', 'Name'),
|
||||
],
|
||||
[
|
||||
'attribute' => 'ruleName',
|
||||
'label' => Yii::t('rbac-admin', 'Rule Name'),
|
||||
'filter' => $rules
|
||||
],
|
||||
[
|
||||
'attribute' => 'description',
|
||||
'label' => Yii::t('rbac-admin', 'Description'),
|
||||
],
|
||||
[
|
||||
'class' => 'yii\grid\ActionColumn',
|
||||
'header' => '操作',
|
||||
'options' => ['width' => '100px;'],
|
||||
'template' => '{view} {update} {delete}',
|
||||
'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',
|
||||
]);
|
||||
},
|
||||
'update' => function ($url, $model) {
|
||||
return Html::a('<i class="fa fa-unlock-alt">更新</i>', $url, [
|
||||
'title' => Yii::t('app', 'update'),
|
||||
'class' => 'del btn btn-success btn-xs',
|
||||
]);
|
||||
},
|
||||
'delete' => function ($url, $model) {
|
||||
return Html::a('<i class="fa fa-close">删除</i>', $url, [
|
||||
'title' => Yii::t('app', 'delete'),
|
||||
'class' => 'del btn btn-default btn-xs',
|
||||
]);
|
||||
}
|
||||
],
|
||||
],
|
||||
],
|
||||
])
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\AuthItem */
|
||||
/* @var $context mdm\admin\components\ItemController */
|
||||
|
||||
$context = $this->context;
|
||||
$labels = $context->labels();
|
||||
$this->title = Yii::t('rbac-admin', 'Update ' . $labels['Item']) . ': ' . $model->name;
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', $labels['Items']), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->name]];
|
||||
$this->params['breadcrumbs'][] = Yii::t('rbac-admin', 'Update');
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
|
||||
<div class="auth-item-update">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
<?=
|
||||
$this->render('_form', [
|
||||
'model' => $model,
|
||||
]);
|
||||
?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\DetailView;
|
||||
use yii\helpers\Json;
|
||||
use mdm\admin\AnimateAsset;
|
||||
use yii\web\YiiAsset;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\AuthItem */
|
||||
/* @var $context mdm\admin\components\ItemController */
|
||||
|
||||
$context = $this->context;
|
||||
$labels = $context->labels();
|
||||
$this->title = $model->name;
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', $labels['Items']), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
|
||||
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="auth-item-view">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
<p>
|
||||
<?= Html::a(Yii::t('rbac-admin', 'Update'), ['update', 'id' => $model->name], ['class' => 'btn btn-sm btn-primary']) ?>
|
||||
<?= Html::a(Yii::t('rbac-admin', 'Delete'), ['delete', 'id' => $model->name], [
|
||||
'class' => 'btn btn-sm btn-danger',
|
||||
'data-confirm' => Yii::t('rbac-admin', 'Are you sure to delete this item?'),
|
||||
'data-method' => 'post',
|
||||
]); ?>
|
||||
<?= Html::a(Yii::t('rbac-admin', 'Create'), ['create'], ['class' => 'btn btn-sm btn-success']) ?>
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-sm-11">
|
||||
<?=
|
||||
DetailView::widget([
|
||||
'model' => $model,
|
||||
'attributes' => [
|
||||
'name',
|
||||
'description:ntext',
|
||||
'ruleName',
|
||||
'data:ntext',
|
||||
],
|
||||
'template' => '<tr><th style="width:25%">{label}</th><td>{value}</td></tr>'
|
||||
]);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<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('>>' . $animateIcon, ['assign', 'id' => $model->name], [
|
||||
'class' => 'btn btn-success btn-assign',
|
||||
'data-target' => 'avaliable',
|
||||
'title' => Yii::t('rbac-admin', 'Assign')
|
||||
]) ?><br><br>
|
||||
<?= Html::a('<<' . $animateIcon, ['remove', 'id' => $model->name], [
|
||||
'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>
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
|
||||
/* @var $this \yii\web\View */
|
||||
/* @var $content string */
|
||||
|
||||
$controller = $this->context;
|
||||
$menus = $controller->module->menus;
|
||||
$route = $controller->route;
|
||||
foreach ($menus as $i => $menu) {
|
||||
$menus[$i]['active'] = strpos($route, trim($menu['url'][0], '/')) === 0;
|
||||
}
|
||||
$this->params['nav-items'] = $menus;
|
||||
?>
|
||||
<?php $this->beginContent($controller->module->mainLayout) ?>
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<div id="manager-menu" class="list-group">
|
||||
<?php
|
||||
foreach ($menus as $menu) {
|
||||
$label = Html::tag('i', '', ['class' => 'glyphicon glyphicon-chevron-right pull-right']) .
|
||||
Html::tag('span', Html::encode($menu['label']), []);
|
||||
$active = $menu['active'] ? ' active' : '';
|
||||
echo Html::a($label, $menu['url'], [
|
||||
'class' => 'list-group-item' . $active,
|
||||
]);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
<?= $content ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
list(, $url) = Yii::$app->assetManager->publish('@mdm/admin/assets');
|
||||
$this->registerCssFile($url . '/list-item.css');
|
||||
?>
|
||||
|
||||
<?php $this->endContent(); ?>
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
use yii\bootstrap\NavBar;
|
||||
use yii\bootstrap\Nav;
|
||||
use yii\helpers\Html;
|
||||
|
||||
/* @var $this \yii\web\View */
|
||||
/* @var $content string */
|
||||
|
||||
list(,$url) = Yii::$app->assetManager->publish('@mdm/admin/assets');
|
||||
$this->registerCssFile($url.'/main.css');
|
||||
?>
|
||||
<?php $this->beginPage() ?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<?= Html::csrfMetaTags() ?>
|
||||
<title><?= Html::encode($this->title) ?></title>
|
||||
<?php $this->head() ?>
|
||||
</head>
|
||||
<body>
|
||||
<?php $this->beginBody() ?>
|
||||
<?php
|
||||
NavBar::begin([
|
||||
'brandLabel' => false,
|
||||
'options' => ['class' => 'navbar-inverse navbar-fixed-top'],
|
||||
]);
|
||||
|
||||
if (!empty($this->params['top-menu']) && isset($this->params['nav-items'])) {
|
||||
echo Nav::widget([
|
||||
'options' => ['class' => 'nav navbar-nav'],
|
||||
'items' => $this->params['nav-items'],
|
||||
]);
|
||||
}
|
||||
|
||||
echo Nav::widget([
|
||||
'options' => ['class' => 'nav navbar-nav navbar-right'],
|
||||
'items' => $this->context->module->navbar,
|
||||
]);
|
||||
NavBar::end();
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<?= $content ?>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<p class="pull-right"><?= Yii::powered() ?></p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<?php $this->endBody() ?>
|
||||
</body>
|
||||
</html>
|
||||
<?php $this->endPage() ?>
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
|
||||
/* @var $this \yii\web\View */
|
||||
/* @var $content string */
|
||||
|
||||
$controller = $this->context;
|
||||
$menus = $controller->module->menus;
|
||||
$route = $controller->route;
|
||||
foreach ($menus as $i => $menu) {
|
||||
$menus[$i]['active'] = strpos($route, trim($menu['url'][0], '/')) === 0;
|
||||
}
|
||||
$this->params['nav-items'] = $menus;
|
||||
?>
|
||||
<?php $this->beginContent($controller->module->mainLayout) ?>
|
||||
<div class="row">
|
||||
<div class="col-sm-9">
|
||||
<?= $content ?>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div id="manager-menu" class="list-group">
|
||||
<?php
|
||||
foreach ($menus as $menu) {
|
||||
$label = Html::tag('span', Html::encode($menu['label']), []);
|
||||
$active = $menu['active'] ? ' active' : '';
|
||||
echo Html::a($label, $menu['url'], [
|
||||
'class' => 'list-group-item' . $active,
|
||||
]);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->endContent(); ?>
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
/* @var $this \yii\web\View */
|
||||
/* @var $content string */
|
||||
|
||||
$controller = $this->context;
|
||||
$menus = $controller->module->menus;
|
||||
$route = $controller->route;
|
||||
foreach ($menus as $i => $menu) {
|
||||
$menus[$i]['active'] = strpos($route, trim($menu['url'][0], '/')) === 0;
|
||||
}
|
||||
$this->params['nav-items'] = $menus;
|
||||
$this->params['top-menu'] = true;
|
||||
?>
|
||||
<?php $this->beginContent($controller->module->mainLayout) ?>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<?= $content ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->endContent(); ?>
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
use mdm\admin\models\Menu;
|
||||
use yii\helpers\Json;
|
||||
use mdm\admin\AutocompleteAsset;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\Menu */
|
||||
/* @var $form yii\widgets\ActiveForm */
|
||||
AutocompleteAsset::register($this);
|
||||
$opts = Json::htmlEncode([
|
||||
'menus' => Menu::getMenuSource(),
|
||||
'routes' => Menu::getSavedRoutes(),
|
||||
]);
|
||||
$this->registerJs("var _opts = $opts;");
|
||||
$this->registerJs($this->render('_script.js'));
|
||||
?>
|
||||
|
||||
<div class="menu-form">
|
||||
<?php $form = ActiveForm::begin(); ?>
|
||||
<?= Html::activeHiddenInput($model, 'parent', ['id' => 'parent_id']); ?>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<?= $form->field($model, 'name')->textInput(['maxlength' => 128]) ?>
|
||||
|
||||
<?= $form->field($model, 'parent_name')->textInput(['id' => 'parent_name']) ?>
|
||||
|
||||
<?= $form->field($model, 'route')->textInput(['id' => 'route']) ?>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<?= $form->field($model, 'order')->input('number') ?>
|
||||
|
||||
<?= $form->field($model, 'data')->textarea(['rows' => 4]) ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<?=
|
||||
Html::submitButton($model->isNewRecord ? Yii::t('rbac-admin', 'Create') : Yii::t('rbac-admin', 'Update'), ['class' => $model->isNewRecord
|
||||
? 'btn btn-sm btn-primary' : 'btn btn-sm btn-primary'])
|
||||
?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
$('#parent_name').autocomplete({
|
||||
source: function (request, response) {
|
||||
var result = [];
|
||||
var limit = 10;
|
||||
var term = request.term.toLowerCase();
|
||||
$.each(_opts.menus, function () {
|
||||
var menu = this;
|
||||
if (term == '' || menu.name.toLowerCase().indexOf(term) >= 0 ||
|
||||
(menu.parent_name && menu.parent_name.toLowerCase().indexOf(term) >= 0) ||
|
||||
(menu.route && menu.route.toLowerCase().indexOf(term) >= 0)) {
|
||||
result.push(menu);
|
||||
limit--;
|
||||
if (limit <= 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
response(result);
|
||||
},
|
||||
focus: function (event, ui) {
|
||||
$('#parent_name').val(ui.item.name);
|
||||
return false;
|
||||
},
|
||||
select: function (event, ui) {
|
||||
$('#parent_name').val(ui.item.name);
|
||||
$('#parent_id').val(ui.item.id);
|
||||
return false;
|
||||
},
|
||||
search: function () {
|
||||
$('#parent_id').val('');
|
||||
}
|
||||
}).autocomplete("instance")._renderItem = function (ul, item) {
|
||||
return $("<li>")
|
||||
.append($('<a>').append($('<b>').text(item.name)).append('<br>')
|
||||
.append($('<i>').text(item.parent_name + ' | ' + item.route)))
|
||||
.appendTo(ul);
|
||||
};
|
||||
|
||||
$('#route').autocomplete({
|
||||
source: _opts.routes,
|
||||
});
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
|
||||
/**
|
||||
* @var yii\web\View $this
|
||||
* @var mdm\admin\models\searchs\Menu $model
|
||||
* @var yii\widgets\ActiveForm $form
|
||||
*/
|
||||
?>
|
||||
|
||||
<div class="menu-search">
|
||||
|
||||
<?php $form = ActiveForm::begin([
|
||||
'action' => ['index'],
|
||||
'method' => 'get',
|
||||
]); ?>
|
||||
|
||||
<?= $form->field($model, 'id') ?>
|
||||
|
||||
<?= $form->field($model, 'name') ?>
|
||||
|
||||
<?= $form->field($model, 'parent') ?>
|
||||
|
||||
<?= $form->field($model, 'route') ?>
|
||||
|
||||
<?= $form->field($model, 'data') ?>
|
||||
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton(Yii::t('rbac-admin', 'Search'), ['class' => 'btn btn-primary']) ?>
|
||||
<?= Html::resetButton(Yii::t('rbac-admin', 'Reset'), ['class' => 'btn btn-default']) ?>
|
||||
</div>
|
||||
|
||||
<?php ActiveForm::end(); ?>
|
||||
|
||||
</div>
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\Menu */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Create Menu');
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', 'Menus'), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<?=
|
||||
$this->render('_form', [
|
||||
'model' => $model,
|
||||
])
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
<?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\Menu */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Menus');
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
<div class="ibox-content">
|
||||
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
<?php // echo $this->render('_search', ['model' => $searchModel]); ?>
|
||||
|
||||
<p>
|
||||
<?= Html::a(Yii::t('rbac-admin', '创建菜单'), ['create'], ['class' => 'btn btn-info btn-sm']) ?>
|
||||
</p>
|
||||
|
||||
<?php Pjax::begin(); ?>
|
||||
<?=
|
||||
GridView::widget([
|
||||
'dataProvider' => $dataProvider,
|
||||
'filterModel' => $searchModel,
|
||||
/*'options' => ['class' => 'table-responsive'],
|
||||
'tableOptions' => ['class' => 'table table-striped table_base'],*/
|
||||
|
||||
'layout' => '{items}{summary}{pager}',
|
||||
'columns' => [
|
||||
['class' => 'yii\grid\SerialColumn'],
|
||||
'name',
|
||||
[
|
||||
'attribute' => 'menuParent.name',
|
||||
'filter' => Html::activeTextInput($searchModel, 'parent_name', [
|
||||
'class' => 'form-control', 'id' => null
|
||||
]),
|
||||
'label' => Yii::t('rbac-admin', 'Parent'),
|
||||
],
|
||||
'route',
|
||||
'order',
|
||||
[
|
||||
'class' => 'yii\grid\ActionColumn',
|
||||
'header' => '操作',
|
||||
'options' => ['width' => '100px;'],
|
||||
'template' => '{view} {update} {delete}',
|
||||
'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',
|
||||
]);
|
||||
},
|
||||
'update' => function ($url, $model) {
|
||||
return Html::a('<i class="fa fa-unlock-alt">更新</i>', $url, [
|
||||
'title' => Yii::t('app', 'update'),
|
||||
'class' => 'del btn btn-success btn-xs',
|
||||
]);
|
||||
},
|
||||
'delete' => function ($url, $model) {
|
||||
return Html::a('<i class="fa fa-close">删除</i>', $url, [
|
||||
'title' => Yii::t('app', 'delete'),
|
||||
'class' => 'del btn btn-default btn-xs',
|
||||
]);
|
||||
}
|
||||
],
|
||||
/*'urlCreator' => function ($action, $model, $key, $index) {
|
||||
if ($action === 'view') {
|
||||
return ['view', 'id' => $model->id];
|
||||
} else if ($action === 'update') {
|
||||
return ['update', 'id' => $model->id];
|
||||
} else if ($action === 'delete') {
|
||||
return ['delete', 'id' => $model->id];
|
||||
}
|
||||
}*/
|
||||
],
|
||||
],
|
||||
|
||||
]);
|
||||
?>
|
||||
<?php Pjax::end(); ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\Menu */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Update Menu') . ': ' . ' ' . $model->name;
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', 'Menus'), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->id]];
|
||||
$this->params['breadcrumbs'][] = Yii::t('rbac-admin', 'Update');
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<?=
|
||||
$this->render('_form', [
|
||||
'model' => $model,
|
||||
])
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\DetailView;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\Menu */
|
||||
|
||||
$this->title = $model->name;
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', 'Menus'), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<p>
|
||||
<?= Html::a(Yii::t('rbac-admin', 'Update'), ['update', 'id' => $model->id], ['class' => 'btn btn-sm btn-primary']) ?>
|
||||
<?=
|
||||
Html::a(Yii::t('rbac-admin', 'Delete'), ['delete', 'id' => $model->id], [
|
||||
'class' => 'btn btn-sm btn-danger',
|
||||
'data' => [
|
||||
'confirm' => 'Are you sure you want to delete this item?',
|
||||
'method' => 'post',
|
||||
],
|
||||
])
|
||||
?>
|
||||
</p>
|
||||
|
||||
<?=
|
||||
DetailView::widget([
|
||||
'model' => $model,
|
||||
'attributes' => [
|
||||
'menuParent.name:text:Parent',
|
||||
'name',
|
||||
'route',
|
||||
'order',
|
||||
],
|
||||
])
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
$('i.glyphicon-refresh-animate').hide();
|
||||
function updateRoutes(r) {
|
||||
_opts.routes.avaliable = r.avaliable;
|
||||
_opts.routes.assigned = r.assigned;
|
||||
search('avaliable');
|
||||
search('assigned');
|
||||
}
|
||||
|
||||
$('#btn-new').click(function () {
|
||||
var $this = $(this);
|
||||
var route = $('#inp-route').val().trim();
|
||||
if (route != '') {
|
||||
$this.children('i.glyphicon-refresh-animate').show();
|
||||
$.post($this.attr('href'), {route: route}, function (r) {
|
||||
$('#inp-route').val('').focus();
|
||||
updateRoutes(r);
|
||||
}).always(function () {
|
||||
$this.children('i.glyphicon-refresh-animate').hide();
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.btn-assign').click(function () {
|
||||
var $this = $(this);
|
||||
var target = $this.data('target');
|
||||
var routes = $('select.list[data-target="' + target + '"]').val();
|
||||
|
||||
if (routes && routes.length) {
|
||||
$this.children('i.glyphicon-refresh-animate').show();
|
||||
$.post($this.attr('href'), {routes: routes}, function (r) {
|
||||
updateRoutes(r);
|
||||
}).always(function () {
|
||||
$this.children('i.glyphicon-refresh-animate').hide();
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#btn-refresh').click(function () {
|
||||
var $icon = $(this).children('span.glyphicon');
|
||||
$icon.addClass('glyphicon-refresh-animate');
|
||||
$.post($(this).attr('href'), function (r) {
|
||||
updateRoutes(r);
|
||||
}).always(function () {
|
||||
$icon.removeClass('glyphicon-refresh-animate');
|
||||
});
|
||||
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();
|
||||
$.each(_opts.routes[target], function () {
|
||||
var r = this;
|
||||
if (r.indexOf(q) >= 0) {
|
||||
$('<option>').text(r).val(r).appendTo($list);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// initial
|
||||
search('avaliable');
|
||||
search('assigned');
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\helpers\Json;
|
||||
use mdm\admin\AnimateAsset;
|
||||
use yii\web\YiiAsset;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $routes [] */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Routes');
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
|
||||
AnimateAsset::register($this);
|
||||
YiiAsset::register($this);
|
||||
$opts = Json::htmlEncode([
|
||||
'routes' => $routes
|
||||
]);
|
||||
$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">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
<div class="row">
|
||||
<div class="col-sm-11">
|
||||
<div class="input-group">
|
||||
<input id="inp-route" type="text" class="form-control"
|
||||
placeholder="<?= Yii::t('rbac-admin', 'New route(s)') ?>">
|
||||
<span class="input-group-btn">
|
||||
<?= Html::a(Yii::t('rbac-admin', 'Add') . $animateIcon, ['create'], [
|
||||
'class' => 'btn btn-success',
|
||||
'id' => 'btn-new'
|
||||
]) ?>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p> </p>
|
||||
<div class="row">
|
||||
<div class="col-sm-5">
|
||||
<div class="input-group">
|
||||
<input class="form-control search" data-target="avaliable"
|
||||
placeholder="<?= Yii::t('rbac-admin', 'Search for avaliable') ?>">
|
||||
<span class="input-group-btn">
|
||||
<?= Html::a('<span class="glyphicon glyphicon-refresh"></span>', ['refresh'], [
|
||||
'class' => 'btn btn-default',
|
||||
'id' => 'btn-refresh'
|
||||
]) ?>
|
||||
</span>
|
||||
</div>
|
||||
<select multiple size="20" class="form-control list" data-target="avaliable"></select>
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
<br><br>
|
||||
<?= Html::a('>>' . $animateIcon, ['assign'], [
|
||||
'class' => 'btn btn-success btn-assign',
|
||||
'data-target' => 'avaliable',
|
||||
'title' => Yii::t('rbac-admin', 'Assign')
|
||||
]) ?><br><br>
|
||||
<?= Html::a('<<' . $animateIcon, ['remove'], [
|
||||
'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>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\BizRule */
|
||||
/* @var $form ActiveForm */
|
||||
?>
|
||||
|
||||
<div class="auth-item-form">
|
||||
|
||||
<?php $form = ActiveForm::begin(); ?>
|
||||
|
||||
<?= $form->field($model, 'name')->textInput(['maxlength' => 64]) ?>
|
||||
|
||||
<?= $form->field($model, 'className')->textInput() ?>
|
||||
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo Html::submitButton($model->isNewRecord ? Yii::t('rbac-admin', 'Create') : Yii::t('rbac-admin', 'Update'), [
|
||||
'class' => $model->isNewRecord ? 'btn btn-sm btn-primary' : 'btn btn-sm btn-primary'])
|
||||
?>
|
||||
</div>
|
||||
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\BizRule */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Create Rule');
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', 'Rules'), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
<div class="auth-item-create">
|
||||
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<?=
|
||||
$this->render('_form', [
|
||||
'model' => $model,
|
||||
]);
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\grid\GridView;
|
||||
use yii\widgets\Pjax;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\BizRule */
|
||||
/* @var $dataProvider yii\data\ActiveDataProvider */
|
||||
/* @var $searchModel mdm\admin\models\searchs\BizRule */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Rules');
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
<div class="role-index">
|
||||
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<p>
|
||||
<?= Html::a(Yii::t('rbac-admin', 'Create Rule'), ['create'], ['class' => 'btn btn-sm btn-info']) ?>
|
||||
</p>
|
||||
|
||||
<?=
|
||||
GridView::widget([
|
||||
'dataProvider' => $dataProvider,
|
||||
'filterModel' => $searchModel,
|
||||
'columns' => [
|
||||
['class' => 'yii\grid\SerialColumn'],
|
||||
[
|
||||
'attribute' => 'name',
|
||||
'label' => Yii::t('rbac-admin', 'Name'),
|
||||
],
|
||||
[
|
||||
'class' => 'yii\grid\ActionColumn',
|
||||
'header' => '操作',
|
||||
'options' => ['width' => '100px;'],
|
||||
'template' => '{view} {update} {delete}',
|
||||
'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',
|
||||
]);
|
||||
},
|
||||
'update' => function ($url, $model) {
|
||||
return Html::a('<i class="fa fa-unlock-alt">更新</i>', $url, [
|
||||
'title' => Yii::t('app', 'update'),
|
||||
'class' => 'del btn btn-success btn-xs',
|
||||
]);
|
||||
},
|
||||
'delete' => function ($url, $model) {
|
||||
return Html::a('<i class="fa fa-close">删除</i>', $url, [
|
||||
'title' => Yii::t('app', 'delete'),
|
||||
'class' => 'del btn btn-default btn-xs',
|
||||
]);
|
||||
}
|
||||
],
|
||||
],
|
||||
],
|
||||
]);
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\BizRule */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Update Rule') . ': ' . $model->name;
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', 'Rules'), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->name]];
|
||||
$this->params['breadcrumbs'][] = Yii::t('rbac-admin', 'Update');
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
<div class="auth-item-update">
|
||||
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
<?=
|
||||
$this->render('_form', [
|
||||
'model' => $model,
|
||||
]);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\DetailView;
|
||||
|
||||
/**
|
||||
* @var yii\web\View $this
|
||||
* @var mdm\admin\models\AuthItem $model
|
||||
*/
|
||||
$this->title = $model->name;
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', 'Rules'), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="wrapper wrapper-content">
|
||||
|
||||
<div class="ibox-content">
|
||||
<div class="auth-item-view">
|
||||
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<p>
|
||||
<?= Html::a(Yii::t('rbac-admin', 'Update'), ['update', 'id' => $model->name], ['class' => 'btn btn-primary']) ?>
|
||||
<?php
|
||||
echo Html::a(Yii::t('rbac-admin', 'Delete'), ['delete', 'id' => $model->name], [
|
||||
'class' => 'btn btn-danger',
|
||||
'data-confirm' => Yii::t('rbac-admin', 'Are you sure to delete this item?'),
|
||||
'data-method' => 'post',
|
||||
]);
|
||||
?>
|
||||
</p>
|
||||
|
||||
<?php
|
||||
echo DetailView::widget([
|
||||
'model' => $model,
|
||||
'attributes' => [
|
||||
'name',
|
||||
'className',
|
||||
],
|
||||
]);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\User */
|
||||
/* @var $form yii\widgets\ActiveForm */
|
||||
?>
|
||||
|
||||
<div class="user-form">
|
||||
|
||||
<?php $form = ActiveForm::begin(); ?>
|
||||
|
||||
<?= $form->field($model, 'status')->textInput() ?>
|
||||
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton($model->isNewRecord ? Yii::t('rbac-admin', 'Create') : Yii::t('rbac-admin', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
|
||||
</div>
|
||||
|
||||
<?php ActiveForm::end(); ?>
|
||||
|
||||
</div>
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\bootstrap\ActiveForm;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $form yii\bootstrap\ActiveForm */
|
||||
/* @var $model \mdm\admin\models\form\ChangePassword */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Change Password');
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="site-signup">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<p>Please fill out the following fields to change password:</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<?php $form = ActiveForm::begin(['id' => 'form-change']); ?>
|
||||
<?= $form->field($model, 'oldPassword')->passwordInput() ?>
|
||||
<?= $form->field($model, 'newPassword')->passwordInput() ?>
|
||||
<?= $form->field($model, 'retypePassword')->passwordInput() ?>
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton(Yii::t('rbac-admin', 'Change'), ['class' => 'btn btn-primary', 'name' => 'change-button']) ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\grid\GridView;
|
||||
use mdm\admin\components\Helper;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $searchModel mdm\admin\models\searchs\User */
|
||||
/* @var $dataProvider yii\data\ActiveDataProvider */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Users');
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="user-index">
|
||||
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<?=
|
||||
GridView::widget([
|
||||
'dataProvider' => $dataProvider,
|
||||
'filterModel' => $searchModel,
|
||||
'columns' => [
|
||||
['class' => 'yii\grid\SerialColumn'],
|
||||
'username',
|
||||
'email:email',
|
||||
'created_at:date',
|
||||
[
|
||||
'attribute' => 'status',
|
||||
'value' => function($model) {
|
||||
return $model->status == 0 ? 'Inactive' : 'Active';
|
||||
},
|
||||
'filter' => [
|
||||
0 => 'Inactive',
|
||||
10 => 'Active'
|
||||
]
|
||||
],
|
||||
[
|
||||
'class' => 'yii\grid\ActionColumn',
|
||||
'template' => Helper::filterActionColumn(['view', 'activate', 'delete']),
|
||||
'buttons' => [
|
||||
'activate' => function($url, $model) {
|
||||
if ($model->status == 10) {
|
||||
return '';
|
||||
}
|
||||
$options = [
|
||||
'title' => Yii::t('rbac-admin', 'Activate'),
|
||||
'aria-label' => Yii::t('rbac-admin', 'Activate'),
|
||||
'data-confirm' => Yii::t('rbac-admin', 'Are you sure you want to activate this user?'),
|
||||
'data-method' => 'post',
|
||||
'data-pjax' => '0',
|
||||
];
|
||||
return Html::a('<span class="glyphicon glyphicon-ok"></span>', $url, $options);
|
||||
}
|
||||
]
|
||||
],
|
||||
],
|
||||
]);
|
||||
?>
|
||||
</div>
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\bootstrap\ActiveForm;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $form yii\bootstrap\ActiveForm */
|
||||
/* @var $model \mdm\admin\models\form\Login */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Login');
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="site-login">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<p>Please fill out the following fields to login:</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
|
||||
<?= $form->field($model, 'username') ?>
|
||||
<?= $form->field($model, 'password')->passwordInput() ?>
|
||||
<?= $form->field($model, 'rememberMe')->checkbox() ?>
|
||||
<div style="color:#999;margin:1em 0">
|
||||
If you forgot your password you can <?= Html::a('reset it', ['user/request-password-reset']) ?>.
|
||||
For new user you can <?= Html::a('signup', ['user/signup']) ?>.
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton(Yii::t('rbac-admin', 'Login'), ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\bootstrap\ActiveForm;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $form yii\bootstrap\ActiveForm */
|
||||
/* @var $model \mdm\admin\models\form\PasswordResetRequest */
|
||||
|
||||
$this->title = 'Request password reset';
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="site-request-password-reset">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<p>Please fill out your email. A link to reset password will be sent there.</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<?php $form = ActiveForm::begin(['id' => 'request-password-reset-form']); ?>
|
||||
<?= $form->field($model, 'email') ?>
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton(Yii::t('rbac-admin', 'Send'), ['class' => 'btn btn-primary']) ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\bootstrap\ActiveForm;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $form yii\bootstrap\ActiveForm */
|
||||
/* @var $model \mdm\admin\models\form\ResetPassword */
|
||||
|
||||
$this->title = 'Reset password';
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="site-reset-password">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<p>Please choose your new password:</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<?php $form = ActiveForm::begin(['id' => 'reset-password-form']); ?>
|
||||
<?= $form->field($model, 'password')->passwordInput() ?>
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton(Yii::t('rbac-admin', 'Save'), ['class' => 'btn btn-primary']) ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\bootstrap\ActiveForm;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $form yii\bootstrap\ActiveForm */
|
||||
/* @var $model \mdm\admin\models\form\Signup */
|
||||
|
||||
$this->title = Yii::t('rbac-admin', 'Signup');
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
?>
|
||||
<div class="site-signup">
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<p>Please fill out the following fields to signup:</p>
|
||||
<?= Html::errorSummary($model)?>
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<?php $form = ActiveForm::begin(['id' => 'form-signup']); ?>
|
||||
<?= $form->field($model, 'username') ?>
|
||||
<?= $form->field($model, 'email') ?>
|
||||
<?= $form->field($model, 'password')->passwordInput() ?>
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton(Yii::t('rbac-admin', 'Signup'), ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
|
||||
</div>
|
||||
<?php ActiveForm::end(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\DetailView;
|
||||
use mdm\admin\components\Helper;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
/* @var $model mdm\admin\models\User */
|
||||
|
||||
$this->title = $model->username;
|
||||
$this->params['breadcrumbs'][] = ['label' => Yii::t('rbac-admin', 'Users'), 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
|
||||
$controllerId = $this->context->uniqueId . '/';
|
||||
?>
|
||||
<div class="user-view">
|
||||
|
||||
<h1><?= Html::encode($this->title) ?></h1>
|
||||
|
||||
<p>
|
||||
<?php
|
||||
if ($model->status == 0 && Helper::checkRoute($controllerId . 'activate')) {
|
||||
echo Html::a(Yii::t('rbac-admin', 'Activate'), ['activate', 'id' => $model->id], [
|
||||
'class' => 'btn btn-primary',
|
||||
'data' => [
|
||||
'confirm' => Yii::t('rbac-admin', 'Are you sure you want to activate this user?'),
|
||||
'method' => 'post',
|
||||
],
|
||||
]);
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
if (Helper::checkRoute($controllerId . 'delete')) {
|
||||
echo Html::a(Yii::t('rbac-admin', 'Delete'), ['delete', 'id' => $model->id], [
|
||||
'class' => 'btn btn-danger',
|
||||
'data' => [
|
||||
'confirm' => Yii::t('yii', 'Are you sure you want to delete this item?'),
|
||||
'method' => 'post',
|
||||
],
|
||||
]);
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
|
||||
<?=
|
||||
DetailView::widget([
|
||||
'model' => $model,
|
||||
'attributes' => [
|
||||
'username',
|
||||
'email:email',
|
||||
'created_at:date',
|
||||
'status',
|
||||
],
|
||||
])
|
||||
?>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user