update api for manager

This commit is contained in:
iIronside
2022-01-05 17:11:31 +03:00
parent dccf3c012e
commit 18b7fb0765
19 changed files with 5168 additions and 50 deletions

View File

@ -6,10 +6,14 @@ use backend\modules\document\models\TemplateDocumentField;
use Yii;
use backend\modules\document\models\Template;
use backend\modules\document\models\TemplateSearch;
use yii\base\Exception;
use yii\data\ActiveDataProvider;
use yii\helpers\FileHelper;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\web\Response;
use yii\web\UploadedFile;
/**
* TemplateController implements the CRUD actions for Template model.
@ -72,14 +76,28 @@ class TemplateController extends Controller
/**
* Creates a new Template model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return mixed
* @return string|Response
* @throws Exception
*/
public function actionCreate()
{
$model = new Template();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
if ($model->load(Yii::$app->request->post())) {
$model->template = UploadedFile::getInstance($model, 'template');
if (!empty($model->template)) {
$pathToTemplates = Yii::getAlias('@templates');
$model->template_file_name = date('mdyHis') . '_' . $model->template->name;
if ($model->save()) {
if (FileHelper::createDirectory($pathToTemplates, $mode = 0775, $recursive = true)) {
$model->template->saveAs($pathToTemplates . '/' . $model->template_file_name);
}
return $this->redirect(['template-document-field/create', 'template_id' => $model->id]);
}
return $this->render('create', ['model' => $model]);
}
}
return $this->render('create', [
@ -97,11 +115,34 @@ class TemplateController extends Controller
public function actionUpdate($id)
{
$model = $this->findModel($id);
// $pathToFile = Yii::getAlias('@templates') . '/' . $model->template_file_name;
// if ($model->load(Yii::$app->request->post())) {
// $template = UploadedFile::getInstance($model, 'template');
//
// if (!empty($template)) {
// $path = Yii::getAlias('@frontend') . '/web/upload/documents/templates';
//
// $model->template = $template;
// $model->template_file_name = $model->template->name;
// $model->template_path = $path . '/' . $model->template->name;
//
// if (!$model->template->saveAs($path . '/' . $model->template->name)) {
// return $this->render('update', [
// 'model' => $model,
// ]);
// }
// }
// if ($model->save()) {
// return $this->redirect(['view', 'id' => $model->id]);
// }
// }
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
}
// $model->template = UploadedFile::getInstance($model, $pathToFile); // file($pathToFile);
return $this->render('update', [
'model' => $model,
]);

View File

@ -2,7 +2,6 @@
namespace backend\modules\document\models;
use Yii;
class Template extends \common\models\Template
{

View File

@ -18,7 +18,7 @@ class TemplateSearch extends Template
{
return [
[['id'], 'integer'],
[['title', 'created_at', 'updated_at'], 'safe'],
[['title', 'created_at', 'updated_at', 'template_file_name'], 'safe'],
];
}
@ -63,7 +63,8 @@ class TemplateSearch extends Template
'updated_at' => $this->updated_at,
]);
$query->andFilterWhere(['like', 'title', $this->title]);
$query->andFilterWhere(['like', 'title', $this->title])
->andFilterWhere(['like', 'template_file_name', $this->template_file_name]);
return $dataProvider;
}

View File

@ -1,5 +1,7 @@
<?php
use kartik\file\FileInput;
use mihaildev\elfinder\InputFile;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
@ -10,10 +12,18 @@ use yii\widgets\ActiveForm;
<div class="template-form">
<?php $form = ActiveForm::begin(); ?>
<?php $form = ActiveForm::begin([
'options' => ['enctype'=>'multipart/form-data']]); ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'template')->widget(FileInput::classname(), [
'options' => ['accept' => 'text/*'],
'pluginOptions' => [
'allowedFileExtensions'=>['doc','docx','txt'],'showUpload' => true
],
]); ?>
<div class="form-group">
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
</div>

View File

@ -0,0 +1,33 @@
<?php
use kartik\file\FileInput;
use mihaildev\elfinder\InputFile;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model backend\modules\document\models\Template */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="template-form">
<?php $form = ActiveForm::begin([
'options' => ['enctype'=>'multipart/form-data']]); ?>
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'template')->widget(FileInput::classname(), [
'options' => ['accept' => 'text/*'],
'pluginOptions' => [
'allowedFileExtensions'=>['doc','docx','txt'],'showUpload' => true
],
]); ?>
<div class="form-group">
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>

View File

@ -23,6 +23,7 @@ $this->params['breadcrumbs'][] = $this->title;
['class' => 'yii\grid\SerialColumn'],
'title',
// 'template_path',
'created_at',
'updated_at',

View File

@ -1,8 +1,9 @@
<?php
use backend\modules\document\models\DocumentField;
use backend\modules\document\models\Template;
use yii\helpers\Html;
use yii\helpers\Url;
use yii\web\YiiAsset;
use yii\widgets\DetailView;
use yii\grid\GridView;
@ -13,7 +14,7 @@ use yii\grid\GridView;
$this->title = $model->title;
$this->params['breadcrumbs'][] = ['label' => 'Templates', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
\yii\web\YiiAsset::register($this);
YiiAsset::register($this);
?>
<div class="template-view">
@ -31,14 +32,56 @@ $this->params['breadcrumbs'][] = $this->title;
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'title',
[
'attribute'=>'title',
'format'=>'raw',
'value' => function($model){
return $model->title . Html::a(
'<i class="glyphicon glyphicon-pencil"></i>', ['update', 'id' => $model->id],
[
'title' => 'Update',
'class' => 'pull-right detail-button',
]
);
}
],
'created_at',
'updated_at',
[
'label'=>'template_file_name',
'format'=>'raw',
'value' => function($model){
return $model->template_file_name . Html::a('<i class="glyphicon glyphicon-pencil"></i>', Url::to(['actualizar', 'id' => $model->id]), [
'title' => 'Actualizar',
// 'class' => 'pull-right detail-button',
]);
}
]
],
]) ?>
<?php
$button1 = Html::a('<i class="glyphicon glyphicon-trash"></i>', Url::to(['delete', 'id' => $model->id]), [
'title' => 'Eliminar',
'class' => 'pull-right detail-button',
'data' => [
'confirm' => '¿Realmente deseas eliminar este elemento?',
'method' => 'post',
]
]);
$button2 = Html::a('<i class="glyphicon glyphicon-pencil"></i>', Url::to(['actualizar', 'id' => $model->id]), [
'title' => 'Actualizar',
'class' => 'pull-right detail-button',
]);
?>
<div>
<h2>
<?= 'Поля шаблона:'?>