文件收集功能(4/10)
实现基本创建文件收集功能 具体收集功能后续增加
This commit is contained in:
parent
c22b132070
commit
84886de324
@ -4,6 +4,7 @@ namespace app\controllers;
|
|||||||
|
|
||||||
use app\models\CollectionTasks;
|
use app\models\CollectionTasks;
|
||||||
use app\models\CollectionSearch;
|
use app\models\CollectionSearch;
|
||||||
|
use Yii;
|
||||||
use yii\web\Controller;
|
use yii\web\Controller;
|
||||||
use yii\web\NotFoundHttpException;
|
use yii\web\NotFoundHttpException;
|
||||||
use yii\filters\VerbFilter;
|
use yii\filters\VerbFilter;
|
||||||
@ -68,10 +69,14 @@ class CollectionController extends Controller
|
|||||||
public function actionCreate()
|
public function actionCreate()
|
||||||
{
|
{
|
||||||
$model = new CollectionTasks();
|
$model = new CollectionTasks();
|
||||||
|
$model->scenario = 'create'; // 设置场景
|
||||||
|
|
||||||
if ($this->request->isPost) {
|
if ($this->request->isPost) {
|
||||||
if ($model->load($this->request->post()) && $model->save()) {
|
if ($model->load($this->request->post())) {
|
||||||
return $this->redirect(['view', 'id' => $model->id]);
|
$model->user_id = Yii::$app->user->id; // 手动设置user_id字段的值
|
||||||
|
if ($model->save()) {
|
||||||
|
return $this->redirect(['view', 'id' => $model->id]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$model->loadDefaultValues();
|
$model->loadDefaultValues();
|
||||||
@ -82,26 +87,6 @@ class CollectionController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Updates an existing CollectionTasks model.
|
|
||||||
* If update is successful, the browser will be redirected to the 'view' page.
|
|
||||||
* @param int $id ID
|
|
||||||
* @return string|\yii\web\Response
|
|
||||||
* @throws NotFoundHttpException if the model cannot be found
|
|
||||||
*/
|
|
||||||
public function actionUpdate($id)
|
|
||||||
{
|
|
||||||
$model = $this->findModel($id);
|
|
||||||
|
|
||||||
if ($this->request->isPost && $model->load($this->request->post()) && $model->save()) {
|
|
||||||
return $this->redirect(['view', 'id' => $model->id]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->render('update', [
|
|
||||||
'model' => $model,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes an existing CollectionTasks model.
|
* Deletes an existing CollectionTasks model.
|
||||||
* If deletion is successful, the browser will be redirected to the 'index' page.
|
* If deletion is successful, the browser will be redirected to the 'index' page.
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace app\models;
|
namespace app\models;
|
||||||
|
|
||||||
use Yii;
|
use Yii;
|
||||||
|
use yii\db\ActiveRecord;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is the model class for table "collection_tasks".
|
* This is the model class for table "collection_tasks".
|
||||||
@ -16,8 +17,10 @@ use Yii;
|
|||||||
* @property CollectionUploaded[] $collectionUploadeds
|
* @property CollectionUploaded[] $collectionUploadeds
|
||||||
* @property User $user
|
* @property User $user
|
||||||
*/
|
*/
|
||||||
class CollectionTasks extends \yii\db\ActiveRecord
|
class CollectionTasks extends ActiveRecord
|
||||||
{
|
{
|
||||||
|
const SCENARIO_CREATE = 'create';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
@ -33,6 +36,7 @@ class CollectionTasks extends \yii\db\ActiveRecord
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
[['user_id', 'folder_path', 'secret'], 'required'],
|
[['user_id', 'folder_path', 'secret'], 'required'],
|
||||||
|
[['folder_path', 'secret'], 'required', 'on' => self::SCENARIO_CREATE],
|
||||||
[['user_id'], 'integer'],
|
[['user_id'], 'integer'],
|
||||||
[['created_at'], 'safe'],
|
[['created_at'], 'safe'],
|
||||||
[['folder_path', 'secret'], 'string', 'max' => 255],
|
[['folder_path', 'secret'], 'string', 'max' => 255],
|
||||||
@ -54,6 +58,16 @@ class CollectionTasks extends \yii\db\ActiveRecord
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function scenarios()
|
||||||
|
{
|
||||||
|
$scenarios = parent::scenarios();
|
||||||
|
$scenarios[self::SCENARIO_CREATE] = ['folder_path', 'secret']; // 在这里列出你想在创建收集任务时验证的属性
|
||||||
|
return $scenarios;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets query for [[CollectionUploadeds]].
|
* Gets query for [[CollectionUploadeds]].
|
||||||
*
|
*
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use yii\helpers\Html;
|
|
||||||
use yii\widgets\ActiveForm;
|
|
||||||
|
|
||||||
/** @var yii\web\View $this */
|
|
||||||
/** @var app\models\CollectionTasks $model */
|
|
||||||
/** @var yii\widgets\ActiveForm $form */
|
|
||||||
?>
|
|
||||||
|
|
||||||
<div class="collection-tasks-form">
|
|
||||||
|
|
||||||
<?php $form = ActiveForm::begin(); ?>
|
|
||||||
|
|
||||||
<?= $form->field($model, 'user_id')->textInput() ?>
|
|
||||||
|
|
||||||
<?= $form->field($model, 'folder_path')->textInput(['maxlength' => true]) ?>
|
|
||||||
|
|
||||||
<?= $form->field($model, 'created_at')->textInput() ?>
|
|
||||||
|
|
||||||
<?= $form->field($model, 'secret')->textInput(['maxlength' => true]) ?>
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<?php ActiveForm::end(); ?>
|
|
||||||
|
|
||||||
</div>
|
|
@ -1,20 +1,27 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use yii\helpers\Html;
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
/** @var yii\web\View $this */
|
/** @var yii\web\View $this */
|
||||||
/** @var app\models\CollectionTasks $model */
|
/** @var app\models\CollectionTasks $model */
|
||||||
|
/** @var yii\widgets\ActiveForm $form */
|
||||||
$this->title = 'new 文件收集';
|
|
||||||
$this->params['breadcrumbs'][] = ['label' => 'Collection Tasks', 'url' => ['index']];
|
|
||||||
$this->params['breadcrumbs'][] = $this->title;
|
|
||||||
?>
|
?>
|
||||||
<div class="collection-tasks-create">
|
|
||||||
|
|
||||||
<h1><?= Html::encode($this->title) ?></h1>
|
<div class="collection-tasks-form">
|
||||||
|
|
||||||
<?= $this->render('_form', [
|
<?php $form = ActiveForm::begin([
|
||||||
'model' => $model,
|
'action' => ['collection/create'], // 指定表单提交的URL
|
||||||
]) ?>
|
]); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'folder_path')->textInput(['maxlength' => true, 'readonly' => true]) ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'secret')->textInput(['maxlength' => true]) ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('创建', ['class' => 'btn btn-success']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -36,6 +36,7 @@ $this->params['breadcrumbs'][] = $this->title;
|
|||||||
'secret',
|
'secret',
|
||||||
[
|
[
|
||||||
'class' => ActionColumn::className(),
|
'class' => ActionColumn::className(),
|
||||||
|
'template' => '{view} {delete}',
|
||||||
'urlCreator' => function ($action, CollectionTasks $model, $key, $index, $column) {
|
'urlCreator' => function ($action, CollectionTasks $model, $key, $index, $column) {
|
||||||
return Url::toRoute([$action, 'id' => $model->id]);
|
return Url::toRoute([$action, 'id' => $model->id]);
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
use yii\grid\GridView;
|
use yii\grid\GridView;
|
||||||
use yii\helpers\Html;
|
use yii\helpers\Html;
|
||||||
|
use yii\web\JqueryAsset;
|
||||||
|
use yii\web\View;
|
||||||
use yii\web\YiiAsset;
|
use yii\web\YiiAsset;
|
||||||
use yii\widgets\DetailView;
|
use yii\widgets\DetailView;
|
||||||
use app\models\CollectionUploadedSearch;
|
use app\models\CollectionUploadedSearch;
|
||||||
@ -9,8 +11,8 @@ use app\models\CollectionUploadedSearch;
|
|||||||
/** @var yii\web\View $this */
|
/** @var yii\web\View $this */
|
||||||
/** @var app\models\CollectionTasks $model */
|
/** @var app\models\CollectionTasks $model */
|
||||||
|
|
||||||
$this->title = $model->id;
|
$this->title = '文件收集ID ' . $model->id;
|
||||||
$this->params['breadcrumbs'][] = ['label' => 'Collection Tasks', 'url' => ['index']];
|
$this->params['breadcrumbs'][] = ['label' => '文件收集', 'url' => ['index']];
|
||||||
$this->params['breadcrumbs'][] = $this->title;
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
YiiAsset::register($this);
|
YiiAsset::register($this);
|
||||||
|
|
||||||
@ -23,11 +25,12 @@ $dataProvider->query->andWhere(['task_id' => $model->id]);
|
|||||||
<h1><?= Html::encode($this->title) ?></h1>
|
<h1><?= Html::encode($this->title) ?></h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<?= Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
<?= Html::a('复制收集链接', null, ['class' => 'btn btn-primary', 'id' => 'copy-link-button']) ?>
|
||||||
<?= Html::a('Delete', ['delete', 'id' => $model->id], [
|
<?= Html::a('访问收集链接', ['collection/access', 'id' => $model->id, '$secret' => $model->secret], ['class' => 'btn btn-primary', 'target' => '_blank']) ?>
|
||||||
|
<?= Html::a('取消收集', ['delete', 'id' => $model->id], [
|
||||||
'class' => 'btn btn-danger',
|
'class' => 'btn btn-danger',
|
||||||
'data' => [
|
'data' => [
|
||||||
'confirm' => 'Are you sure you want to delete this item?',
|
'confirm' => '你确定要取消这个收集任务吗?已收集的文件不会被删除',
|
||||||
'method' => 'post',
|
'method' => 'post',
|
||||||
],
|
],
|
||||||
]) ?>
|
]) ?>
|
||||||
@ -37,14 +40,13 @@ $dataProvider->query->andWhere(['task_id' => $model->id]);
|
|||||||
'model' => $model,
|
'model' => $model,
|
||||||
'attributes' => [
|
'attributes' => [
|
||||||
'id',
|
'id',
|
||||||
'user_id',
|
|
||||||
'folder_path',
|
'folder_path',
|
||||||
'created_at',
|
'created_at',
|
||||||
'secret',
|
'secret',
|
||||||
],
|
],
|
||||||
]) ?>
|
]) ?>
|
||||||
|
|
||||||
<h2>收集情况:</h2>
|
<h2>文件收集情况:</h2>
|
||||||
<?= GridView::widget([
|
<?= GridView::widget([
|
||||||
'dataProvider' => $dataProvider,
|
'dataProvider' => $dataProvider,
|
||||||
'filterModel' => $searchModel,
|
'filterModel' => $searchModel,
|
||||||
@ -58,3 +60,6 @@ $dataProvider->query->andWhere(['task_id' => $model->id]);
|
|||||||
],
|
],
|
||||||
]); ?>
|
]); ?>
|
||||||
</div>
|
</div>
|
||||||
|
<?php
|
||||||
|
$this->registerJsFile('@web/js/collection_view.js', ['depends' => [JqueryAsset::class], 'position' => View::POS_END]);
|
||||||
|
?>
|
||||||
|
12
web/js/collection_view.js
Normal file
12
web/js/collection_view.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
$(document).ready(function() {
|
||||||
|
$('#copy-link-button').click(function() {
|
||||||
|
var id = $('table.detail-view tbody tr:first-child td').text();
|
||||||
|
var secret = $('table.detail-view tbody tr:nth-child(4) td').text(); // 获取访问密码
|
||||||
|
var shareLink = window.location.origin + '/index.php?r=collection%2Faccess&id=' + id + '&secret=' + secret; // 将访问密码添加到分享链接中
|
||||||
|
navigator.clipboard.writeText(shareLink).then(function() {
|
||||||
|
alert('分享链接已复制到剪贴板');
|
||||||
|
}).catch(function(error) {
|
||||||
|
console.error('复制失败: ', error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user