the document module is finished
This commit is contained in:
parent
f3deab46cc
commit
3420a4a048
@ -71,11 +71,14 @@ return [
|
|||||||
'task' => [
|
'task' => [
|
||||||
'class' => 'backend\modules\task\Task',
|
'class' => 'backend\modules\task\Task',
|
||||||
],
|
],
|
||||||
|
'document' => [
|
||||||
|
'class' => 'backend\modules\document\Document',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
'components' => [
|
'components' => [
|
||||||
'request' => [
|
'request' => [
|
||||||
'csrfParam' => '_csrf-backend',
|
'csrfParam' => '_csrf-backend',
|
||||||
'baseUrl' => '', // /secure
|
'baseUrl' => '/secure',
|
||||||
'parsers' => [
|
'parsers' => [
|
||||||
'application/json' => 'yii\web\JsonParser',
|
'application/json' => 'yii\web\JsonParser',
|
||||||
'text/xml' => 'yii/web/XmlParser',
|
'text/xml' => 'yii/web/XmlParser',
|
||||||
|
24
backend/modules/document/Document.php
Normal file
24
backend/modules/document/Document.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* document module definition class
|
||||||
|
*/
|
||||||
|
class Document extends \yii\base\Module
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public $controllerNamespace = 'backend\modules\document\controllers';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
parent::init();
|
||||||
|
|
||||||
|
// custom initialization code goes here
|
||||||
|
}
|
||||||
|
}
|
141
backend/modules/document/controllers/DocumentController.php
Normal file
141
backend/modules/document/controllers/DocumentController.php
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\controllers;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
use backend\modules\document\models\Document;
|
||||||
|
use backend\modules\document\models\DocumentSearch;
|
||||||
|
use yii\data\ActiveDataProvider;
|
||||||
|
use yii\web\Controller;
|
||||||
|
use yii\web\NotFoundHttpException;
|
||||||
|
use yii\filters\VerbFilter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DocumentController implements the CRUD actions for Document model.
|
||||||
|
*/
|
||||||
|
class DocumentController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function behaviors()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'verbs' => [
|
||||||
|
'class' => VerbFilter::className(),
|
||||||
|
'actions' => [
|
||||||
|
'delete' => ['POST'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists all Document models.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionIndex()
|
||||||
|
{
|
||||||
|
$searchModel = new DocumentSearch();
|
||||||
|
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
|
||||||
|
|
||||||
|
return $this->render('index', [
|
||||||
|
'searchModel' => $searchModel,
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Displays a single Document model.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionView($id)
|
||||||
|
{
|
||||||
|
$model = $this->findModel($id);
|
||||||
|
$documentFieldValuesDataProvider = new ActiveDataProvider([
|
||||||
|
'query' => $model->getDocumentFieldValues(),//->with('questionType'),
|
||||||
|
'pagination' => [
|
||||||
|
'pageSize' => 20,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
|
return $this->render('view', [
|
||||||
|
'model' => $model,
|
||||||
|
'documentFieldValuesDataProvider' => $documentFieldValuesDataProvider
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new Document model.
|
||||||
|
* If creation is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionCreate()
|
||||||
|
{
|
||||||
|
$model = new Document();
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||||
|
return $this->redirect([
|
||||||
|
'document-field-value/create-multiple',
|
||||||
|
'document_id' => $model->id,
|
||||||
|
'template_id' => $model->template_id
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('create', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates an existing Document model.
|
||||||
|
* If update is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionUpdate($id)
|
||||||
|
{
|
||||||
|
$model = $this->findModel($id);
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||||
|
return $this->redirect(['view', 'id' => $model->id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('update', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes an existing Document model.
|
||||||
|
* If deletion is successful, the browser will be redirected to the 'index' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionDelete($id)
|
||||||
|
{
|
||||||
|
$this->findModel($id)->delete();
|
||||||
|
|
||||||
|
return $this->redirect(['index']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the Document model based on its primary key value.
|
||||||
|
* If the model is not found, a 404 HTTP exception will be thrown.
|
||||||
|
* @param integer $id
|
||||||
|
* @return Document the loaded model
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
protected function findModel($id)
|
||||||
|
{
|
||||||
|
if (($model = Document::findOne($id)) !== null) {
|
||||||
|
return $model;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new NotFoundHttpException('The requested page does not exist.');
|
||||||
|
}
|
||||||
|
}
|
127
backend/modules/document/controllers/DocumentFieldController.php
Normal file
127
backend/modules/document/controllers/DocumentFieldController.php
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\controllers;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
use backend\modules\document\models\DocumentField;
|
||||||
|
use backend\modules\document\models\DocumentFieldSearch;
|
||||||
|
use yii\web\Controller;
|
||||||
|
use yii\web\NotFoundHttpException;
|
||||||
|
use yii\filters\VerbFilter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DocumentFieldController implements the CRUD actions for DocumentField model.
|
||||||
|
*/
|
||||||
|
class DocumentFieldController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function behaviors()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'verbs' => [
|
||||||
|
'class' => VerbFilter::className(),
|
||||||
|
'actions' => [
|
||||||
|
'delete' => ['POST'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists all DocumentField models.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionIndex()
|
||||||
|
{
|
||||||
|
$searchModel = new DocumentFieldSearch();
|
||||||
|
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
|
||||||
|
|
||||||
|
return $this->render('index', [
|
||||||
|
'searchModel' => $searchModel,
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Displays a single DocumentField model.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionView($id)
|
||||||
|
{
|
||||||
|
return $this->render('view', [
|
||||||
|
'model' => $this->findModel($id),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new DocumentField model.
|
||||||
|
* If creation is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionCreate()
|
||||||
|
{
|
||||||
|
$model = new DocumentField();
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||||
|
return $this->redirect(['view', 'id' => $model->id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('create', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates an existing DocumentField model.
|
||||||
|
* If update is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionUpdate($id)
|
||||||
|
{
|
||||||
|
$model = $this->findModel($id);
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||||
|
return $this->redirect(['view', 'id' => $model->id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('update', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes an existing DocumentField model.
|
||||||
|
* If deletion is successful, the browser will be redirected to the 'index' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionDelete($id)
|
||||||
|
{
|
||||||
|
$this->findModel($id)->delete();
|
||||||
|
|
||||||
|
return $this->redirect(['index']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the DocumentField model based on its primary key value.
|
||||||
|
* If the model is not found, a 404 HTTP exception will be thrown.
|
||||||
|
* @param integer $id
|
||||||
|
* @return DocumentField the loaded model
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
protected function findModel($id)
|
||||||
|
{
|
||||||
|
if (($model = DocumentField::findOne($id)) !== null) {
|
||||||
|
return $model;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new NotFoundHttpException('The requested page does not exist.');
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,186 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\controllers;
|
||||||
|
|
||||||
|
use backend\modules\document\models\DocumentField;
|
||||||
|
use Yii;
|
||||||
|
use backend\modules\document\models\DocumentFieldValue;
|
||||||
|
use backend\modules\document\models\DocumentFieldValueSearch;
|
||||||
|
use yii\base\Model;
|
||||||
|
use yii\web\Controller;
|
||||||
|
use yii\web\NotFoundHttpException;
|
||||||
|
use yii\filters\VerbFilter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DocumentFieldValueController implements the CRUD actions for DocumentFieldValue model.
|
||||||
|
*/
|
||||||
|
class DocumentFieldValueController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function behaviors()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'verbs' => [
|
||||||
|
'class' => VerbFilter::className(),
|
||||||
|
'actions' => [
|
||||||
|
'delete' => ['POST'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists all DocumentFieldValue models.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionIndex()
|
||||||
|
{
|
||||||
|
$searchModel = new DocumentFieldValueSearch();
|
||||||
|
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
|
||||||
|
|
||||||
|
return $this->render('index', [
|
||||||
|
'searchModel' => $searchModel,
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Displays a single DocumentFieldValue model.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionView($id)
|
||||||
|
{
|
||||||
|
return $this->render('view', [
|
||||||
|
'model' => $this->findModel($id),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new DocumentFieldValue model.
|
||||||
|
* If creation is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionCreate($document_id)
|
||||||
|
{
|
||||||
|
$model = new DocumentFieldValue();
|
||||||
|
$model->document_id = $document_id;
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||||
|
if ($document_id !== null)
|
||||||
|
{
|
||||||
|
return $this->redirect(['document/view', 'id' => $document_id]);
|
||||||
|
}
|
||||||
|
return $this->redirect(['view', 'id' => $model->id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('create', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new DocumentFieldValue model.
|
||||||
|
* If creation is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionCreateMultiple()
|
||||||
|
{
|
||||||
|
$document_id = Yii::$app->request->get('document_id');
|
||||||
|
$template_id = Yii::$app->request->get('template_id');
|
||||||
|
|
||||||
|
$fieldsIdTitleList = DocumentField::getIdFieldsTitleList($template_id);
|
||||||
|
|
||||||
|
$documentFieldValues = [];
|
||||||
|
|
||||||
|
if (empty($fieldsIdTitleList)) {
|
||||||
|
$documentFieldValues = [new DocumentFieldValue()];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
foreach ($fieldsIdTitleList as $fieldsIdTitle){
|
||||||
|
$tmpDocField = new DocumentFieldValue();
|
||||||
|
$tmpDocField->document_id = $document_id;
|
||||||
|
$tmpDocField->field_id = $fieldsIdTitle['id'];
|
||||||
|
|
||||||
|
$documentFieldValues[] = $tmpDocField;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Model::loadMultiple($documentFieldValues, Yii::$app->request->post()) && Model::validateMultiple($documentFieldValues)) {
|
||||||
|
foreach ($documentFieldValues as $documentFieldValue) {
|
||||||
|
$documentFieldValue->save(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->redirect([
|
||||||
|
'document/view',
|
||||||
|
'id' => $document_id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('_form_multiple', [
|
||||||
|
'documentFieldValues' => $documentFieldValues,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates an existing DocumentFieldValue model.
|
||||||
|
* If update is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionUpdate($id, $document_id)
|
||||||
|
{
|
||||||
|
$model = $this->findModel($id);
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||||
|
if ($document_id !== null)
|
||||||
|
{
|
||||||
|
return $this->redirect(['document/view', 'id' => $document_id]);
|
||||||
|
}
|
||||||
|
return $this->redirect(['view', 'id' => $model->id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('update', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes an existing DocumentFieldValue model.
|
||||||
|
* If deletion is successful, the browser will be redirected to the 'index' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionDelete($id, $document_id)
|
||||||
|
{
|
||||||
|
$this->findModel($id)->delete();
|
||||||
|
|
||||||
|
if ($document_id !== null)
|
||||||
|
{
|
||||||
|
return $this->redirect(['document/view', 'id' => $document_id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->redirect(['index']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the DocumentFieldValue model based on its primary key value.
|
||||||
|
* If the model is not found, a 404 HTTP exception will be thrown.
|
||||||
|
* @param integer $id
|
||||||
|
* @return DocumentFieldValue the loaded model
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
protected function findModel($id)
|
||||||
|
{
|
||||||
|
if (($model = DocumentFieldValue::findOne($id)) !== null) {
|
||||||
|
return $model;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new NotFoundHttpException('The requested page does not exist.');
|
||||||
|
}
|
||||||
|
}
|
139
backend/modules/document/controllers/TemplateController.php
Normal file
139
backend/modules/document/controllers/TemplateController.php
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\controllers;
|
||||||
|
|
||||||
|
use backend\modules\document\models\TemplateDocumentField;
|
||||||
|
use Yii;
|
||||||
|
use backend\modules\document\models\Template;
|
||||||
|
use backend\modules\document\models\TemplateSearch;
|
||||||
|
use yii\data\ActiveDataProvider;
|
||||||
|
use yii\web\Controller;
|
||||||
|
use yii\web\NotFoundHttpException;
|
||||||
|
use yii\filters\VerbFilter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TemplateController implements the CRUD actions for Template model.
|
||||||
|
*/
|
||||||
|
class TemplateController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function behaviors()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'verbs' => [
|
||||||
|
'class' => VerbFilter::className(),
|
||||||
|
'actions' => [
|
||||||
|
'delete' => ['POST'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists all Template models.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionIndex()
|
||||||
|
{
|
||||||
|
$searchModel = new TemplateSearch();
|
||||||
|
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
|
||||||
|
|
||||||
|
return $this->render('index', [
|
||||||
|
'searchModel' => $searchModel,
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Displays a single Template model.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionView($id)
|
||||||
|
{
|
||||||
|
$model = $this->findModel($id);
|
||||||
|
$templateDocumentField = new TemplateDocumentField();
|
||||||
|
$templateFieldDataProvider = new ActiveDataProvider([
|
||||||
|
'query' => $model->getTemplateDocumentFields(),
|
||||||
|
'pagination' => [
|
||||||
|
'pageSize' => 20,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
||||||
|
return $this->render('view', [
|
||||||
|
'model' => $model,
|
||||||
|
'templateFieldDataProvider' => $templateFieldDataProvider,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new Template model.
|
||||||
|
* If creation is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionCreate()
|
||||||
|
{
|
||||||
|
$model = new Template();
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||||
|
return $this->redirect(['view', 'id' => $model->id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('create', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates an existing Template model.
|
||||||
|
* If update is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionUpdate($id)
|
||||||
|
{
|
||||||
|
$model = $this->findModel($id);
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||||
|
return $this->redirect(['view', 'id' => $model->id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('update', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes an existing Template model.
|
||||||
|
* If deletion is successful, the browser will be redirected to the 'index' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionDelete($id)
|
||||||
|
{
|
||||||
|
$this->findModel($id)->delete();
|
||||||
|
|
||||||
|
return $this->redirect(['index']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the Template model based on its primary key value.
|
||||||
|
* If the model is not found, a 404 HTTP exception will be thrown.
|
||||||
|
* @param integer $id
|
||||||
|
* @return Template the loaded model
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
protected function findModel($id)
|
||||||
|
{
|
||||||
|
if (($model = Template::findOne($id)) !== null) {
|
||||||
|
return $model;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new NotFoundHttpException('The requested page does not exist.');
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,153 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\controllers;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
use backend\modules\document\models\TemplateDocumentField;
|
||||||
|
use backend\modules\document\models\TemplateDocumentFieldSearch;
|
||||||
|
use yii\helpers\ArrayHelper;
|
||||||
|
use yii\web\Controller;
|
||||||
|
use yii\web\NotFoundHttpException;
|
||||||
|
use yii\filters\VerbFilter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TemplateDocumentFieldController implements the CRUD actions for TemplateDocumentField model.
|
||||||
|
*/
|
||||||
|
class TemplateDocumentFieldController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function behaviors()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'verbs' => [
|
||||||
|
'class' => VerbFilter::className(),
|
||||||
|
'actions' => [
|
||||||
|
'delete' => ['POST'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists all TemplateDocumentField models.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionIndex()
|
||||||
|
{
|
||||||
|
$searchModel = new TemplateDocumentFieldSearch();
|
||||||
|
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
|
||||||
|
|
||||||
|
return $this->render('index', [
|
||||||
|
'searchModel' => $searchModel,
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Displays a single TemplateDocumentField model.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionView($id)
|
||||||
|
{
|
||||||
|
return $this->render('view', [
|
||||||
|
'model' => $this->findModel($id),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new TemplateDocumentField model.
|
||||||
|
* If creation is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function actionCreate($template_id = null)
|
||||||
|
{
|
||||||
|
$post = \Yii::$app->request->post('TemplateDocumentField');
|
||||||
|
|
||||||
|
if (!empty($post)) {
|
||||||
|
$field_id_arr = ArrayHelper::getValue($post,'field_id');
|
||||||
|
|
||||||
|
foreach ($field_id_arr as $field_id) {
|
||||||
|
$emtModel = new TemplateDocumentField();
|
||||||
|
$emtModel->template_id = $post['template_id'];
|
||||||
|
$emtModel->field_id = $field_id;
|
||||||
|
|
||||||
|
if (!$emtModel->save()) {
|
||||||
|
return $this->render('create', [
|
||||||
|
'model' => $emtModel,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($template_id !== null)
|
||||||
|
{
|
||||||
|
return $this->redirect(['template/view', 'id' => $template_id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->redirect(['index']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$model = new TemplateDocumentField();
|
||||||
|
$model->template_id = $template_id;
|
||||||
|
return $this->render('create', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates an existing TemplateDocumentField model.
|
||||||
|
* If update is successful, the browser will be redirected to the 'view' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionUpdate($id)
|
||||||
|
{
|
||||||
|
$model = $this->findModel($id);
|
||||||
|
|
||||||
|
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||||
|
return $this->redirect(['view', 'id' => $model->id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('update', [
|
||||||
|
'model' => $model,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes an existing TemplateDocumentField model.
|
||||||
|
* If deletion is successful, the browser will be redirected to the 'index' page.
|
||||||
|
* @param integer $id
|
||||||
|
* @return mixed
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
public function actionDelete(int $id, $template_id = null)
|
||||||
|
{
|
||||||
|
$this->findModel($id)->delete();
|
||||||
|
|
||||||
|
if ($template_id !== null)
|
||||||
|
{
|
||||||
|
return $this->redirect(['template/view', 'id' => $template_id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->redirect(['index']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the TemplateDocumentField model based on its primary key value.
|
||||||
|
* If the model is not found, a 404 HTTP exception will be thrown.
|
||||||
|
* @param integer $id
|
||||||
|
* @return TemplateDocumentField the loaded model
|
||||||
|
* @throws NotFoundHttpException if the model cannot be found
|
||||||
|
*/
|
||||||
|
protected function findModel($id)
|
||||||
|
{
|
||||||
|
if (($model = TemplateDocumentField::findOne($id)) !== null) {
|
||||||
|
return $model;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new NotFoundHttpException('The requested page does not exist.');
|
||||||
|
}
|
||||||
|
}
|
11
backend/modules/document/models/Document.php
Normal file
11
backend/modules/document/models/Document.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
|
||||||
|
|
||||||
|
class Document extends \common\models\Document
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
11
backend/modules/document/models/DocumentField.php
Normal file
11
backend/modules/document/models/DocumentField.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
|
||||||
|
|
||||||
|
class DocumentField extends \common\models\DocumentField
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
68
backend/modules/document/models/DocumentFieldSearch.php
Normal file
68
backend/modules/document/models/DocumentFieldSearch.php
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use yii\base\Model;
|
||||||
|
use yii\data\ActiveDataProvider;
|
||||||
|
use backend\modules\document\models\DocumentField;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DocumentFieldSearch represents the model behind the search form of `backend\modules\document\models\DocumentField`.
|
||||||
|
*/
|
||||||
|
class DocumentFieldSearch extends DocumentField
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['id'], 'integer'],
|
||||||
|
[['title'], 'safe'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function scenarios()
|
||||||
|
{
|
||||||
|
// bypass scenarios() implementation in the parent class
|
||||||
|
return Model::scenarios();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates data provider instance with search query applied
|
||||||
|
*
|
||||||
|
* @param array $params
|
||||||
|
*
|
||||||
|
* @return ActiveDataProvider
|
||||||
|
*/
|
||||||
|
public function search($params)
|
||||||
|
{
|
||||||
|
$query = DocumentField::find();
|
||||||
|
|
||||||
|
// add conditions that should always apply here
|
||||||
|
|
||||||
|
$dataProvider = new ActiveDataProvider([
|
||||||
|
'query' => $query,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->load($params);
|
||||||
|
|
||||||
|
if (!$this->validate()) {
|
||||||
|
// uncomment the following line if you do not want to return any records when validation fails
|
||||||
|
// $query->where('0=1');
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
// grid filtering conditions
|
||||||
|
$query->andFilterWhere([
|
||||||
|
'id' => $this->id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$query->andFilterWhere(['like', 'title', $this->title]);
|
||||||
|
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
}
|
10
backend/modules/document/models/DocumentFieldValue.php
Normal file
10
backend/modules/document/models/DocumentFieldValue.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
|
||||||
|
class DocumentFieldValue extends \common\models\DocumentFieldValue
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
70
backend/modules/document/models/DocumentFieldValueSearch.php
Normal file
70
backend/modules/document/models/DocumentFieldValueSearch.php
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use yii\base\Model;
|
||||||
|
use yii\data\ActiveDataProvider;
|
||||||
|
use backend\modules\document\models\DocumentFieldValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DocumentFieldValueSearch represents the model behind the search form of `backend\modules\document\models\DocumentFieldValue`.
|
||||||
|
*/
|
||||||
|
class DocumentFieldValueSearch extends DocumentFieldValue
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['id', 'field_id', 'document_id'], 'integer'],
|
||||||
|
[['value'], 'safe'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function scenarios()
|
||||||
|
{
|
||||||
|
// bypass scenarios() implementation in the parent class
|
||||||
|
return Model::scenarios();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates data provider instance with search query applied
|
||||||
|
*
|
||||||
|
* @param array $params
|
||||||
|
*
|
||||||
|
* @return ActiveDataProvider
|
||||||
|
*/
|
||||||
|
public function search($params)
|
||||||
|
{
|
||||||
|
$query = DocumentFieldValue::find();
|
||||||
|
|
||||||
|
// add conditions that should always apply here
|
||||||
|
|
||||||
|
$dataProvider = new ActiveDataProvider([
|
||||||
|
'query' => $query,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->load($params);
|
||||||
|
|
||||||
|
if (!$this->validate()) {
|
||||||
|
// uncomment the following line if you do not want to return any records when validation fails
|
||||||
|
// $query->where('0=1');
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
// grid filtering conditions
|
||||||
|
$query->andFilterWhere([
|
||||||
|
'id' => $this->id,
|
||||||
|
'field_id' => $this->field_id,
|
||||||
|
'document_id' => $this->document_id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$query->andFilterWhere(['like', 'value', $this->value]);
|
||||||
|
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
}
|
72
backend/modules/document/models/DocumentSearch.php
Normal file
72
backend/modules/document/models/DocumentSearch.php
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use yii\base\Model;
|
||||||
|
use yii\data\ActiveDataProvider;
|
||||||
|
use backend\modules\document\models\Document;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DocumentSearch represents the model behind the search form of `backend\modules\document\models\Document`.
|
||||||
|
*/
|
||||||
|
class DocumentSearch extends Document
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['id', 'template_id', 'manager_id'], 'integer'],
|
||||||
|
[['title', 'created_at', 'updated_at'], 'safe'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function scenarios()
|
||||||
|
{
|
||||||
|
// bypass scenarios() implementation in the parent class
|
||||||
|
return Model::scenarios();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates data provider instance with search query applied
|
||||||
|
*
|
||||||
|
* @param array $params
|
||||||
|
*
|
||||||
|
* @return ActiveDataProvider
|
||||||
|
*/
|
||||||
|
public function search($params)
|
||||||
|
{
|
||||||
|
$query = Document::find();
|
||||||
|
|
||||||
|
// add conditions that should always apply here
|
||||||
|
|
||||||
|
$dataProvider = new ActiveDataProvider([
|
||||||
|
'query' => $query,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->load($params);
|
||||||
|
|
||||||
|
if (!$this->validate()) {
|
||||||
|
// uncomment the following line if you do not want to return any records when validation fails
|
||||||
|
// $query->where('0=1');
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
// grid filtering conditions
|
||||||
|
$query->andFilterWhere([
|
||||||
|
'id' => $this->id,
|
||||||
|
'created_at' => $this->created_at,
|
||||||
|
'updated_at' => $this->updated_at,
|
||||||
|
'template_id' => $this->template_id,
|
||||||
|
'manager_id' => $this->manager_id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$query->andFilterWhere(['like', 'title', $this->title]);
|
||||||
|
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
}
|
10
backend/modules/document/models/Template.php
Normal file
10
backend/modules/document/models/Template.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
|
||||||
|
class Template extends \common\models\Template
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
11
backend/modules/document/models/TemplateDocumentField.php
Normal file
11
backend/modules/document/models/TemplateDocumentField.php
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
|
||||||
|
|
||||||
|
class TemplateDocumentField extends \common\models\TemplateDocumentField
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use yii\base\Model;
|
||||||
|
use yii\data\ActiveDataProvider;
|
||||||
|
use backend\modules\document\models\TemplateDocumentField;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TemplateDocumentFieldSearch represents the model behind the search form of `backend\modules\document\models\TemplateDocumentField`.
|
||||||
|
*/
|
||||||
|
class TemplateDocumentFieldSearch extends TemplateDocumentField
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['id', 'template_id', 'field_id'], 'integer'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function scenarios()
|
||||||
|
{
|
||||||
|
// bypass scenarios() implementation in the parent class
|
||||||
|
return Model::scenarios();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates data provider instance with search query applied
|
||||||
|
*
|
||||||
|
* @param array $params
|
||||||
|
*
|
||||||
|
* @return ActiveDataProvider
|
||||||
|
*/
|
||||||
|
public function search($params)
|
||||||
|
{
|
||||||
|
$query = TemplateDocumentField::find();
|
||||||
|
|
||||||
|
// add conditions that should always apply here
|
||||||
|
|
||||||
|
$dataProvider = new ActiveDataProvider([
|
||||||
|
'query' => $query,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->load($params);
|
||||||
|
|
||||||
|
if (!$this->validate()) {
|
||||||
|
// uncomment the following line if you do not want to return any records when validation fails
|
||||||
|
// $query->where('0=1');
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
// grid filtering conditions
|
||||||
|
$query->andFilterWhere([
|
||||||
|
'id' => $this->id,
|
||||||
|
'template_id' => $this->template_id,
|
||||||
|
'field_id' => $this->field_id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
}
|
70
backend/modules/document/models/TemplateSearch.php
Normal file
70
backend/modules/document/models/TemplateSearch.php
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace backend\modules\document\models;
|
||||||
|
|
||||||
|
use yii\base\Model;
|
||||||
|
use yii\data\ActiveDataProvider;
|
||||||
|
use backend\modules\document\models\Template;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TemplateSearch represents the model behind the search form of `backend\modules\document\models\Template`.
|
||||||
|
*/
|
||||||
|
class TemplateSearch extends Template
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['id'], 'integer'],
|
||||||
|
[['title', 'created_at', 'updated_at'], 'safe'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function scenarios()
|
||||||
|
{
|
||||||
|
// bypass scenarios() implementation in the parent class
|
||||||
|
return Model::scenarios();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates data provider instance with search query applied
|
||||||
|
*
|
||||||
|
* @param array $params
|
||||||
|
*
|
||||||
|
* @return ActiveDataProvider
|
||||||
|
*/
|
||||||
|
public function search($params)
|
||||||
|
{
|
||||||
|
$query = Template::find();
|
||||||
|
|
||||||
|
// add conditions that should always apply here
|
||||||
|
|
||||||
|
$dataProvider = new ActiveDataProvider([
|
||||||
|
'query' => $query,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->load($params);
|
||||||
|
|
||||||
|
if (!$this->validate()) {
|
||||||
|
// uncomment the following line if you do not want to return any records when validation fails
|
||||||
|
// $query->where('0=1');
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
// grid filtering conditions
|
||||||
|
$query->andFilterWhere([
|
||||||
|
'id' => $this->id,
|
||||||
|
'created_at' => $this->created_at,
|
||||||
|
'updated_at' => $this->updated_at,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$query->andFilterWhere(['like', 'title', $this->title]);
|
||||||
|
|
||||||
|
return $dataProvider;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use backend\modules\document\models\Document;
|
||||||
|
use common\models\DocumentField;
|
||||||
|
use kartik\select2\Select2;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentFieldValue */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="document-field-value-form">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin(); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'document_id')->widget(Select2::className(),
|
||||||
|
[
|
||||||
|
'data' => Document::find()->select(['title', 'id'])
|
||||||
|
->indexBy('id')->column(),
|
||||||
|
'options' => ['placeholder' => 'Выберите документ','class' => 'form-control'],
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => true
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'field_id')->widget(Select2::className(),
|
||||||
|
[
|
||||||
|
'data' => DocumentField::find()->select(['title', 'id'])
|
||||||
|
->indexBy('id')->column(),
|
||||||
|
'options' => ['placeholder' => 'Выберите поле','class' => 'form-control'],
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => true
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'value')->textInput(['maxlength' => true]) ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use backend\modules\document\models\Document;
|
||||||
|
use common\models\DocumentField;
|
||||||
|
use kartik\select2\Select2;
|
||||||
|
use yii\helpers\ArrayHelper;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $documentFieldValues backend\modules\document\models\DocumentFieldValue[] */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="document-field-value-form">
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
Заполнение полей документа: <?php echo(ArrayHelper::getValue($documentFieldValues[0], 'document.title')); ?>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin(); ?>
|
||||||
|
|
||||||
|
<?php foreach ($documentFieldValues as $index => $documentFieldValue) { ?>
|
||||||
|
|
||||||
|
<?= $form->field($documentFieldValue, "[$index]value")
|
||||||
|
->textInput(['maxlength' => true])
|
||||||
|
->label(ArrayHelper::getValue($documentFieldValue,'field.title')
|
||||||
|
) ?>
|
||||||
|
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentFieldValueSearch */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="document-field-value-search">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin([
|
||||||
|
'action' => ['index'],
|
||||||
|
'method' => 'get',
|
||||||
|
]); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'id') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'field_id') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'document_id') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'value') ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentFieldValue */
|
||||||
|
|
||||||
|
$this->title = 'Заполнить значение поля документа';
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Document Field Values', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="document-field-value-create">
|
||||||
|
|
||||||
|
<?= $this->render('_form', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
use backend\modules\document\models\Document;
|
||||||
|
use common\models\DocumentField;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\grid\GridView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $searchModel backend\modules\document\models\DocumentFieldValueSearch */
|
||||||
|
/* @var $dataProvider yii\data\ActiveDataProvider */
|
||||||
|
|
||||||
|
$this->title = 'Значение полей документа';
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="document-field-value-index">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Установить значение значение ', ['create'], ['class' => 'btn btn-success']) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= GridView::widget([
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
'filterModel' => $searchModel,
|
||||||
|
'columns' => [
|
||||||
|
['class' => 'yii\grid\SerialColumn'],
|
||||||
|
|
||||||
|
[
|
||||||
|
'attribute' => 'field_id',
|
||||||
|
'filter' => DocumentField::find()->select(['title', 'id'])->indexBy('id')->column(),
|
||||||
|
'value' => 'field.title'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'attribute' => 'document_id',
|
||||||
|
'filter' => Document::find()->select(['title', 'id'])->indexBy('id')->column(),
|
||||||
|
'value' => 'document.title'
|
||||||
|
],
|
||||||
|
'attribute' => 'value',
|
||||||
|
|
||||||
|
['class' => 'yii\grid\ActionColumn'],
|
||||||
|
],
|
||||||
|
]); ?>
|
||||||
|
</div>
|
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentFieldValue */
|
||||||
|
|
||||||
|
$this->title = 'Изменение значения поля документа';
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Document Field Values', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => $model->id, 'url' => ['view', 'id' => $model->id]];
|
||||||
|
$this->params['breadcrumbs'][] = 'Update';
|
||||||
|
?>
|
||||||
|
<div class="document-field-value-update">
|
||||||
|
|
||||||
|
|
||||||
|
<?= $this->render('_form', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
47
backend/modules/document/views/document-field-value/view.php
Normal file
47
backend/modules/document/views/document-field-value/view.php
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\ArrayHelper;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\DetailView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentFieldValue */
|
||||||
|
|
||||||
|
$this->title = $model->value;
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Document Field Values', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
\yii\web\YiiAsset::register($this);
|
||||||
|
?>
|
||||||
|
<div class="document-field-value-view">
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Список', ['index', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Изменить', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Удалить', ['delete', 'id' => $model->id], [
|
||||||
|
'class' => 'btn btn-danger',
|
||||||
|
'data' => [
|
||||||
|
'confirm' => 'Are you sure you want to delete this item?',
|
||||||
|
'method' => 'post',
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= DetailView::widget([
|
||||||
|
'model' => $model,
|
||||||
|
'attributes' => [
|
||||||
|
'id',
|
||||||
|
[
|
||||||
|
'attribute' => 'field_id',
|
||||||
|
'value' => ArrayHelper::getValue($model, 'field.title') // AnswerHelper::answerFlagLabel($model->answer_flag),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'attribute' => 'document_id',
|
||||||
|
'value' => ArrayHelper::getValue($model, 'document.title') // AnswerHelper::answerFlagLabel($model->answer_flag),
|
||||||
|
],
|
||||||
|
'value',
|
||||||
|
],
|
||||||
|
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
23
backend/modules/document/views/document-field/_form.php
Normal file
23
backend/modules/document/views/document-field/_form.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentField */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="document-field-form">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin(); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
29
backend/modules/document/views/document-field/_search.php
Normal file
29
backend/modules/document/views/document-field/_search.php
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentFieldSearch */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="document-field-search">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin([
|
||||||
|
'action' => ['index'],
|
||||||
|
'method' => 'get',
|
||||||
|
]); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'id') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'title') ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
18
backend/modules/document/views/document-field/create.php
Normal file
18
backend/modules/document/views/document-field/create.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentField */
|
||||||
|
|
||||||
|
$this->title = 'Создание поля документа';
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Document Fields', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="document-field-create">
|
||||||
|
|
||||||
|
<?= $this->render('_form', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
30
backend/modules/document/views/document-field/index.php
Normal file
30
backend/modules/document/views/document-field/index.php
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\grid\GridView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $searchModel backend\modules\document\models\DocumentFieldSearch */
|
||||||
|
/* @var $dataProvider yii\data\ActiveDataProvider */
|
||||||
|
|
||||||
|
$this->title = 'Поля документов';
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="document-field-index">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Создать поле документа', ['create'], ['class' => 'btn btn-success']) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= GridView::widget([
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
'filterModel' => $searchModel,
|
||||||
|
'columns' => [
|
||||||
|
['class' => 'yii\grid\SerialColumn'],
|
||||||
|
|
||||||
|
'title',
|
||||||
|
|
||||||
|
['class' => 'yii\grid\ActionColumn'],
|
||||||
|
],
|
||||||
|
]); ?>
|
||||||
|
</div>
|
19
backend/modules/document/views/document-field/update.php
Normal file
19
backend/modules/document/views/document-field/update.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentField */
|
||||||
|
|
||||||
|
$this->title = 'Изменение поля документа. Поле: ' . $model->title;
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Document Fields', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]];
|
||||||
|
$this->params['breadcrumbs'][] = 'Update';
|
||||||
|
?>
|
||||||
|
<div class="document-field-update">
|
||||||
|
|
||||||
|
<?= $this->render('_form', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
36
backend/modules/document/views/document-field/view.php
Normal file
36
backend/modules/document/views/document-field/view.php
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\DetailView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentField */
|
||||||
|
|
||||||
|
$this->title = $model->title;
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Document Fields', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
\yii\web\YiiAsset::register($this);
|
||||||
|
?>
|
||||||
|
<div class="document-field-view">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Список', ['index', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Изменить', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Удалить', ['delete', 'id' => $model->id], [
|
||||||
|
'class' => 'btn btn-danger',
|
||||||
|
'data' => [
|
||||||
|
'confirm' => 'Are you sure you want to delete this item?',
|
||||||
|
'method' => 'post',
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= DetailView::widget([
|
||||||
|
'model' => $model,
|
||||||
|
'attributes' => [
|
||||||
|
'id',
|
||||||
|
'title',
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
47
backend/modules/document/views/document/_form.php
Normal file
47
backend/modules/document/views/document/_form.php
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use backend\modules\document\models\Template;
|
||||||
|
use backend\modules\employee\models\Manager;
|
||||||
|
use kartik\select2\Select2;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\Document */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="document-form">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin(); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'manager_id')->widget(Select2::className(),
|
||||||
|
[
|
||||||
|
'data' => Manager::find()->select(['user_card.fio', 'manager.id'])
|
||||||
|
->joinWith('userCard')
|
||||||
|
->indexBy('manager.id')->column(),
|
||||||
|
'options' => ['placeholder' => 'Выберите менеджера','class' => 'form-control'],
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => true
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'template_id')->widget(Select2::className(),
|
||||||
|
[
|
||||||
|
'data' => Template::find()->select(['title', 'id'])
|
||||||
|
->indexBy('id')->column(),
|
||||||
|
'options' => ['placeholder' => 'Выберите шаблон','class' => 'form-control'],
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => true
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
37
backend/modules/document/views/document/_search.php
Normal file
37
backend/modules/document/views/document/_search.php
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\DocumentSearch */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="document-search">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin([
|
||||||
|
'action' => ['index'],
|
||||||
|
'method' => 'get',
|
||||||
|
]); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'id') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'title') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'created_at') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'updated_at') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'template_id') ?>
|
||||||
|
|
||||||
|
<?php // echo $form->field($model, 'manager_id') ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
18
backend/modules/document/views/document/create.php
Normal file
18
backend/modules/document/views/document/create.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\Document */
|
||||||
|
|
||||||
|
$this->title = 'Создать документ';
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Documents', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="document-create">
|
||||||
|
|
||||||
|
<?= $this->render('_form', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
88
backend/modules/document/views/document/index.php
Normal file
88
backend/modules/document/views/document/index.php
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use backend\modules\document\models\Document;
|
||||||
|
use backend\modules\document\models\Template;
|
||||||
|
use kartik\select2\Select2;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\grid\GridView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $searchModel backend\modules\document\models\DocumentSearch */
|
||||||
|
/* @var $dataProvider yii\data\ActiveDataProvider */
|
||||||
|
|
||||||
|
$this->title = 'Документы';
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="document-index">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Создать документ', ['create'], ['class' => 'btn btn-success']) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= GridView::widget([
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
'filterModel' => $searchModel,
|
||||||
|
'columns' => [
|
||||||
|
['class' => 'yii\grid\SerialColumn'],
|
||||||
|
|
||||||
|
[
|
||||||
|
'attribute' => 'title',
|
||||||
|
'filter' => Select2::widget([
|
||||||
|
'model' => $searchModel,
|
||||||
|
'attribute' => 'title',
|
||||||
|
'data' => Document::find()
|
||||||
|
->select(['title', 'id'])->indexBy('id')->column(),
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => true,
|
||||||
|
'width' => '150px',
|
||||||
|
],
|
||||||
|
'options' => [
|
||||||
|
'class' => 'form-control',
|
||||||
|
'placeholder' => 'Выберите значение'
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
'value' => 'title',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'attribute' => 'template_id',
|
||||||
|
'filter' => Select2::widget([
|
||||||
|
'model' => $searchModel,
|
||||||
|
'attribute' => 'template_id',
|
||||||
|
'data' => Template::find()->select(['title', 'id'])->indexBy('id')->column(),
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => true,
|
||||||
|
'width' => '150px',
|
||||||
|
],
|
||||||
|
'options' => [
|
||||||
|
'class' => 'form-control',
|
||||||
|
'placeholder' => 'Выберите значение'
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
'value' => 'template.title'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'attribute' => 'manager_id',
|
||||||
|
'filter' => Select2::widget([
|
||||||
|
'model' => $searchModel,
|
||||||
|
'attribute' => 'manager_id',
|
||||||
|
'data' => Document::find()
|
||||||
|
->joinWith(['manager', 'manager.userCard'])
|
||||||
|
->select(['user_card.fio', 'manager.id'])->indexBy('id')->column(),
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => true,
|
||||||
|
'width' => '150px',
|
||||||
|
],
|
||||||
|
'options' => [
|
||||||
|
'class' => 'form-control',
|
||||||
|
'placeholder' => 'Выберите значение'
|
||||||
|
],
|
||||||
|
]),
|
||||||
|
'value' => 'manager.userCard.fio',
|
||||||
|
],
|
||||||
|
'created_at',
|
||||||
|
'updated_at',
|
||||||
|
|
||||||
|
['class' => 'yii\grid\ActionColumn'],
|
||||||
|
],
|
||||||
|
]); ?>
|
||||||
|
</div>
|
19
backend/modules/document/views/document/update.php
Normal file
19
backend/modules/document/views/document/update.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\Document */
|
||||||
|
|
||||||
|
$this->title = 'Изменить Документ: ' . $model->title;
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Documents', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]];
|
||||||
|
$this->params['breadcrumbs'][] = 'Update';
|
||||||
|
?>
|
||||||
|
<div class="document-update">
|
||||||
|
|
||||||
|
<?= $this->render('_form', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
94
backend/modules/document/views/document/view.php
Normal file
94
backend/modules/document/views/document/view.php
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\grid\GridView;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\DetailView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\Document */
|
||||||
|
/* @var $documentFieldValuesDataProvider yii\data\ActiveDataProvider */
|
||||||
|
|
||||||
|
$this->title = 'Документ: ' . $model->title;
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Documents', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
\yii\web\YiiAsset::register($this);
|
||||||
|
?>
|
||||||
|
<div class="document-view">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Список', ['index', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Изменить', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Удалить', ['delete', 'id' => $model->id], [
|
||||||
|
'class' => 'btn btn-danger',
|
||||||
|
'data' => [
|
||||||
|
'confirm' => 'Are you sure you want to delete this item?',
|
||||||
|
'method' => 'post',
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= DetailView::widget([
|
||||||
|
'model' => $model,
|
||||||
|
'attributes' => [
|
||||||
|
'id',
|
||||||
|
'title',
|
||||||
|
'created_at',
|
||||||
|
'updated_at',
|
||||||
|
'template_id',
|
||||||
|
'manager_id',
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2>
|
||||||
|
<?= 'Поля документа:'?>
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?= GridView::widget([
|
||||||
|
'dataProvider' => $documentFieldValuesDataProvider,
|
||||||
|
'columns' => [
|
||||||
|
['class' => 'yii\grid\SerialColumn'],
|
||||||
|
|
||||||
|
[
|
||||||
|
'attribute' => 'field_id',
|
||||||
|
'value' => 'field.title'
|
||||||
|
],
|
||||||
|
'attribute' => 'value',
|
||||||
|
|
||||||
|
[
|
||||||
|
'class' => 'yii\grid\ActionColumn',
|
||||||
|
'template' => '{view} {update} {delete}',
|
||||||
|
'controller' => 'document-field-value',
|
||||||
|
'buttons' => [
|
||||||
|
|
||||||
|
'update' => function ($url,$model) {
|
||||||
|
return Html::a(
|
||||||
|
'<span class="glyphicon glyphicon-pencil"></span>',
|
||||||
|
['document-field-value/update', 'id' => $model['id'], 'document_id' => $model['document_id']]);
|
||||||
|
},
|
||||||
|
'delete' => function ($url,$model) {
|
||||||
|
return Html::a(
|
||||||
|
'<span class="glyphicon glyphicon-trash"></span>',
|
||||||
|
[
|
||||||
|
'document-field-value/delete', 'id' => $model['id'], 'document_id' => $model['document_id']
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'data' => ['confirm' => 'Вы уверены, что хотите удалить этот вопрос?', 'method' => 'post']
|
||||||
|
]
|
||||||
|
);
|
||||||
|
},
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]); ?>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a(
|
||||||
|
'Добавить поле',
|
||||||
|
['document-field-value/create', 'document_id' => $model->id],
|
||||||
|
['class' => 'btn btn-primary']
|
||||||
|
) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use backend\modules\document\models\Template;
|
||||||
|
use common\models\DocumentField;
|
||||||
|
use kartik\select2\Select2;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\TemplateDocumentField */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="template-document-field-form">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin(); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'template_id')->widget(Select2::className(),
|
||||||
|
[
|
||||||
|
'data' => Template::find()->select(['title', 'id'])->indexBy('id')->column(),
|
||||||
|
'options' => ['placeholder' => 'Выберите шаблон','class' => 'form-control'],
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => false
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'field_id')->widget(Select2::className(),
|
||||||
|
[
|
||||||
|
'data' => DocumentField::find()->select(['title', 'document_field.id'])
|
||||||
|
->indexBy('id')->column(),
|
||||||
|
'options' => ['placeholder' => 'Выберите поле','class' => 'form-control'],
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => false,
|
||||||
|
'multiple' => true,
|
||||||
|
'closeOnSelect' => false
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use backend\modules\document\models\Template;
|
||||||
|
use common\models\DocumentField;
|
||||||
|
use kartik\select2\Select2;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\TemplateDocumentField */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="template-document-field-form">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin(); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'template_id')->widget(Select2::className(),
|
||||||
|
[
|
||||||
|
'data' => Template::find()->select(['title', 'id'])->indexBy('id')->column(),
|
||||||
|
'options' => ['placeholder' => 'Выберите шаблон','class' => 'form-control'],
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => false
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'field_id')->widget(Select2::className(),
|
||||||
|
[
|
||||||
|
'data' => DocumentField::find()->select(['title', 'document_field.id'])
|
||||||
|
->indexBy('id')->column(),
|
||||||
|
'options' => ['placeholder' => 'Выберите поле','class' => 'form-control'],
|
||||||
|
'pluginOptions' => [
|
||||||
|
'allowClear' => false,
|
||||||
|
'closeOnSelect' => false
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\TemplateDocumentFieldSearch */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="template-document-field-search">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin([
|
||||||
|
'action' => ['index'],
|
||||||
|
'method' => 'get',
|
||||||
|
]); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'id') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'template_id') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'field_id') ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\TemplateDocumentField */
|
||||||
|
|
||||||
|
$this->title = 'Добавить в шаблон поле';
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Template Document Fields', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="template-document-field-create">
|
||||||
|
|
||||||
|
<?= $this->render('_form', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use backend\modules\document\models\DocumentField;
|
||||||
|
use backend\modules\document\models\Template;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\grid\GridView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $searchModel backend\modules\document\models\TemplateDocumentFieldSearch */
|
||||||
|
/* @var $dataProvider yii\data\ActiveDataProvider */
|
||||||
|
|
||||||
|
$this->title = 'Поля шаблона документа';
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="template-document-field-index">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Добавить поле в шаблон', ['create'], ['class' => 'btn btn-success']) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= GridView::widget([
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
'filterModel' => $searchModel,
|
||||||
|
'columns' => [
|
||||||
|
['class' => 'yii\grid\SerialColumn'],
|
||||||
|
|
||||||
|
[
|
||||||
|
'attribute' => 'template_id',
|
||||||
|
'filter' => Template::find()->select(['title', 'id'])->indexBy('id')->column(),
|
||||||
|
'value' => 'template.title',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'attribute' => 'field_id',
|
||||||
|
'filter' => DocumentField::find()->select(['title', 'id'])->indexBy('id')->column(),
|
||||||
|
'value' => 'field.title',
|
||||||
|
],
|
||||||
|
|
||||||
|
['class' => 'yii\grid\ActionColumn'],
|
||||||
|
],
|
||||||
|
]); ?>
|
||||||
|
</div>
|
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\TemplateDocumentField */
|
||||||
|
|
||||||
|
$this->title = 'Изменить поле документа';
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Template Document Fields', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => $model->id, 'url' => ['view', 'id' => $model->id]];
|
||||||
|
$this->params['breadcrumbs'][] = 'Update';
|
||||||
|
?>
|
||||||
|
<div class="template-document-field-update">
|
||||||
|
|
||||||
|
<?= $this->render('_form_update', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\ArrayHelper;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\DetailView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\TemplateDocumentField */
|
||||||
|
|
||||||
|
$this->title = 'Поле шаблона';
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Template Document Fields', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
\yii\web\YiiAsset::register($this);
|
||||||
|
?>
|
||||||
|
<div class="template-document-field-view">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Список', ['index', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Изменить', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Удалить', ['delete', 'id' => $model->id], [
|
||||||
|
'class' => 'btn btn-danger',
|
||||||
|
'data' => [
|
||||||
|
'confirm' => 'Are you sure you want to delete this item?',
|
||||||
|
'method' => 'post',
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= DetailView::widget([
|
||||||
|
'model' => $model,
|
||||||
|
'attributes' => [
|
||||||
|
'id',
|
||||||
|
[
|
||||||
|
'attribute' => 'template_id',
|
||||||
|
'value' => ArrayHelper::getValue($model, 'template.title'),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'attribute' => 'field_id',
|
||||||
|
'value' => ArrayHelper::getValue($model, 'field.title'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
23
backend/modules/document/views/template/_form.php
Normal file
23
backend/modules/document/views/template/_form.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
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(); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'title')->textInput(['maxlength' => true]) ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
33
backend/modules/document/views/template/_search.php
Normal file
33
backend/modules/document/views/template/_search.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\ActiveForm;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\TemplateSearch */
|
||||||
|
/* @var $form yii\widgets\ActiveForm */
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="template-search">
|
||||||
|
|
||||||
|
<?php $form = ActiveForm::begin([
|
||||||
|
'action' => ['index'],
|
||||||
|
'method' => 'get',
|
||||||
|
]); ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'id') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'title') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'created_at') ?>
|
||||||
|
|
||||||
|
<?= $form->field($model, 'updated_at') ?>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php ActiveForm::end(); ?>
|
||||||
|
|
||||||
|
</div>
|
18
backend/modules/document/views/template/create.php
Normal file
18
backend/modules/document/views/template/create.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\Template */
|
||||||
|
|
||||||
|
$this->title = 'Создать шаблон';
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Templates', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="template-create">
|
||||||
|
|
||||||
|
<?= $this->render('_form', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
32
backend/modules/document/views/template/index.php
Normal file
32
backend/modules/document/views/template/index.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\grid\GridView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $searchModel backend\modules\document\models\TemplateSearch */
|
||||||
|
/* @var $dataProvider yii\data\ActiveDataProvider */
|
||||||
|
|
||||||
|
$this->title = 'Шаблоны';
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
?>
|
||||||
|
<div class="template-index">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Создать шаблон', ['create'], ['class' => 'btn btn-success']) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= GridView::widget([
|
||||||
|
'dataProvider' => $dataProvider,
|
||||||
|
'filterModel' => $searchModel,
|
||||||
|
'columns' => [
|
||||||
|
['class' => 'yii\grid\SerialColumn'],
|
||||||
|
|
||||||
|
'title',
|
||||||
|
'created_at',
|
||||||
|
'updated_at',
|
||||||
|
|
||||||
|
['class' => 'yii\grid\ActionColumn'],
|
||||||
|
],
|
||||||
|
]); ?>
|
||||||
|
</div>
|
19
backend/modules/document/views/template/update.php
Normal file
19
backend/modules/document/views/template/update.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use yii\helpers\Html;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $model backend\modules\document\models\Template */
|
||||||
|
|
||||||
|
$this->title = 'Изменить шаблон: ' . $model->title;
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Templates', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]];
|
||||||
|
$this->params['breadcrumbs'][] = 'Update';
|
||||||
|
?>
|
||||||
|
<div class="template-update">
|
||||||
|
|
||||||
|
<?= $this->render('_form', [
|
||||||
|
'model' => $model,
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
</div>
|
87
backend/modules/document/views/template/view.php
Normal file
87
backend/modules/document/views/template/view.php
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use backend\modules\document\models\DocumentField;
|
||||||
|
use backend\modules\document\models\Template;
|
||||||
|
use yii\helpers\Html;
|
||||||
|
use yii\widgets\DetailView;
|
||||||
|
use yii\grid\GridView;
|
||||||
|
|
||||||
|
/* @var $this yii\web\View */
|
||||||
|
/* @var $templateFieldDataProvider yii\data\ActiveDataProvider */
|
||||||
|
/* @var $model backend\modules\document\models\Template */
|
||||||
|
|
||||||
|
$this->title = $model->title;
|
||||||
|
$this->params['breadcrumbs'][] = ['label' => 'Templates', 'url' => ['index']];
|
||||||
|
$this->params['breadcrumbs'][] = $this->title;
|
||||||
|
\yii\web\YiiAsset::register($this);
|
||||||
|
?>
|
||||||
|
<div class="template-view">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a('Список', ['index', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Изменить', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
|
||||||
|
<?= Html::a('Удалить', ['delete', 'id' => $model->id], [
|
||||||
|
'class' => 'btn btn-danger',
|
||||||
|
'data' => [
|
||||||
|
'confirm' => 'Are you sure you want to delete this item?',
|
||||||
|
'method' => 'post',
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?= DetailView::widget([
|
||||||
|
'model' => $model,
|
||||||
|
'attributes' => [
|
||||||
|
'id',
|
||||||
|
'title',
|
||||||
|
'created_at',
|
||||||
|
'updated_at',
|
||||||
|
],
|
||||||
|
]) ?>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2>
|
||||||
|
<?= 'Поля шаблона:'?>
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?= GridView::widget([
|
||||||
|
'dataProvider' => $templateFieldDataProvider,
|
||||||
|
'columns' => [
|
||||||
|
['class' => 'yii\grid\SerialColumn'],
|
||||||
|
|
||||||
|
[
|
||||||
|
'attribute' => 'field_id',
|
||||||
|
'filter' => DocumentField::find()->select(['title', 'id'])->indexBy('id')->column(),
|
||||||
|
'value' => 'field.title',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => 'yii\grid\ActionColumn',
|
||||||
|
'template' => '{view}{delete}',
|
||||||
|
'controller' => 'template-document-field',
|
||||||
|
'buttons' => [
|
||||||
|
'delete' => function ($url,$model) {
|
||||||
|
return Html::a(
|
||||||
|
'<span class="glyphicon glyphicon-trash"></span>',
|
||||||
|
[
|
||||||
|
'template-document-field/delete', 'id' => $model['id'], 'template_id' => $model['template_id']
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'data' => ['confirm' => 'Вы уверены, что хотите удалить этот вопрос?', 'method' => 'post']
|
||||||
|
]
|
||||||
|
);
|
||||||
|
},
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]); ?>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<?= Html::a(
|
||||||
|
'Добавить поле',
|
||||||
|
['template-document-field/create', 'template_id' => $model->id],
|
||||||
|
['class' => 'btn btn-primary']
|
||||||
|
) ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
@ -65,10 +65,6 @@ class ManagerEmployeeController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function actionCreate()
|
public function actionCreate()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$post = $post = \Yii::$app->request->post('ManagerEmployee');
|
$post = $post = \Yii::$app->request->post('ManagerEmployee');
|
||||||
|
|
||||||
if (!empty($post)) {
|
if (!empty($post)) {
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
<div class="employee-default-index">
|
|
||||||
<h1><?= $this->context->action->uniqueId ?></h1>
|
|
||||||
<p>
|
|
||||||
This is the view content for action "<?= $this->context->action->id ?>".
|
|
||||||
The action belongs to the controller "<?= get_class($this->context) ?>"
|
|
||||||
in the "<?= $this->context->module->id ?>" module.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
You may customize this page by editing the following file:<br>
|
|
||||||
<code><?= __FILE__ ?></code>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
@ -27,7 +27,6 @@ $this->params['breadcrumbs'][] = $this->title;
|
|||||||
'attribute' => 'user_card_id',
|
'attribute' => 'user_card_id',
|
||||||
'filter' => UserCard::find()->select(['fio', 'id'])->indexBy('id')->column(),
|
'filter' => UserCard::find()->select(['fio', 'id'])->indexBy('id')->column(),
|
||||||
'value' => 'userCard.fio',
|
'value' => 'userCard.fio',
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
['class' => 'yii\grid\ActionColumn'],
|
['class' => 'yii\grid\ActionColumn'],
|
||||||
|
@ -47,13 +47,11 @@ function cut_title($str)
|
|||||||
[
|
[
|
||||||
'attribute' => 'answer_flag',
|
'attribute' => 'answer_flag',
|
||||||
'format' => 'raw',
|
'format' => 'raw',
|
||||||
'filter' => AnswerHelper::answerFlagsList(),
|
|
||||||
'value' => AnswerHelper::answerFlagLabel($model->answer_flag),
|
'value' => AnswerHelper::answerFlagLabel($model->answer_flag),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'attribute' => 'status',
|
'attribute' => 'status',
|
||||||
'format' => 'raw',
|
'format' => 'raw',
|
||||||
'filter' => StatusHelper::statusList(),
|
|
||||||
'value' => StatusHelper::statusLabel($model->status),
|
'value' => StatusHelper::statusLabel($model->status),
|
||||||
],
|
],
|
||||||
'created_at',
|
'created_at',
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
['label' => 'Должность', 'icon' => 'spotify', 'url' => ['/settings/position'], 'active' => \Yii::$app->controller->id == 'position'],
|
['label' => 'Должность', 'icon' => 'spotify', 'url' => ['/settings/position'], 'active' => \Yii::$app->controller->id == 'position'],
|
||||||
['label' => 'Навыки', 'icon' => 'flask', 'url' => ['/settings/skill'], 'active' => \Yii::$app->controller->id == 'skill'],
|
['label' => 'Навыки', 'icon' => 'flask', 'url' => ['/settings/skill'], 'active' => \Yii::$app->controller->id == 'skill'],
|
||||||
],
|
],
|
||||||
//TODO 'visible' => Yii::$app->user->can('confidential_information')
|
'visible' => Yii::$app->user->can('confidential_information')
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'label' => 'Профили', 'icon' => 'address-book-o', 'url' => '#', 'active' => \Yii::$app->controller->id == 'user-card',
|
'label' => 'Профили', 'icon' => 'address-book-o', 'url' => '#', 'active' => \Yii::$app->controller->id == 'user-card',
|
||||||
@ -39,12 +39,24 @@
|
|||||||
['label' => 'Менеджеры', 'icon' => 'user-circle-o', 'url' => ['/employee/manager'], 'active' => \Yii::$app->controller->id == 'manager'],
|
['label' => 'Менеджеры', 'icon' => 'user-circle-o', 'url' => ['/employee/manager'], 'active' => \Yii::$app->controller->id == 'manager'],
|
||||||
['label' => 'Работники', 'icon' => 'user', 'url' => ['/employee/manager-employee'], 'active' => \Yii::$app->controller->id == 'manager-employee'],
|
['label' => 'Работники', 'icon' => 'user', 'url' => ['/employee/manager-employee'], 'active' => \Yii::$app->controller->id == 'manager-employee'],
|
||||||
],
|
],
|
||||||
//TODO 'visible' => Yii::$app->user->can('confidential_information')
|
'visible' => Yii::$app->user->can('confidential_information')
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => 'Документы', 'icon' => 'archive', 'url' => '#',
|
||||||
|
'items' => [
|
||||||
|
['label' => 'Документы', 'icon' => 'file', 'url' => ['/document/document'], 'active' => \Yii::$app->controller->id == 'document'],
|
||||||
|
['label' => 'Шаблоны', 'icon' => 'file-o', 'url' => ['/document/template'], 'active' => \Yii::$app->controller->id == 'template'],
|
||||||
|
['label' => 'Поля в шаблоне', 'icon' => 'file-text-o', 'url' => ['/document/template-document-field'], 'active' => \Yii::$app->controller->id == 'template-document-field'],
|
||||||
|
['label' => 'Поля документов', 'icon' => 'file-text', 'url' => ['/document/document-field'], 'active' => \Yii::$app->controller->id == 'document-field'],
|
||||||
|
['label' => 'Значения полей', 'icon' => 'bars', 'url' => ['/document/document-field-value'], 'active' => \Yii::$app->controller->id == 'document-field-value'],
|
||||||
|
|
||||||
|
],
|
||||||
|
'visible' => Yii::$app->user->can('confidential_information')
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'label' => 'Проекты', 'icon' => 'cubes', 'url' => ['#'], //'active' => \Yii::$app->controller->id == 'project',
|
'label' => 'Проекты', 'icon' => 'cubes', 'url' => ['#'], //'active' => \Yii::$app->controller->id == 'project',
|
||||||
'items' => $projectItems,
|
'items' => $projectItems,
|
||||||
//TODO 'visible' => Yii::$app->user->can('confidential_information')
|
'visible' => Yii::$app->user->can('confidential_information')
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'label' => 'Задачи', 'icon' => 'tasks', 'url' => '#',
|
'label' => 'Задачи', 'icon' => 'tasks', 'url' => '#',
|
||||||
@ -53,7 +65,7 @@
|
|||||||
['label' => 'Исполнители задачи', 'icon' => 'users', 'url' => ['/task/task-user'], 'active' => \Yii::$app->controller->id == 'task-user'],
|
['label' => 'Исполнители задачи', 'icon' => 'users', 'url' => ['/task/task-user'], 'active' => \Yii::$app->controller->id == 'task-user'],
|
||||||
],
|
],
|
||||||
|
|
||||||
//TODO 'visible' => Yii::$app->user->can('confidential_information')
|
'visible' => Yii::$app->user->can('confidential_information')
|
||||||
],
|
],
|
||||||
['label' => 'Компании', 'icon' => 'building', 'url' => ['/company/company'], 'active' => \Yii::$app->controller->id == 'company', 'visible' => Yii::$app->user->can('confidential_information')],
|
['label' => 'Компании', 'icon' => 'building', 'url' => ['/company/company'], 'active' => \Yii::$app->controller->id == 'company', 'visible' => Yii::$app->user->can('confidential_information')],
|
||||||
[
|
[
|
||||||
@ -62,7 +74,7 @@
|
|||||||
['label' => 'Компании', 'icon' => 'building', 'url' => ['/hh/hh'], 'active' => \Yii::$app->controller->id == 'hh'],
|
['label' => 'Компании', 'icon' => 'building', 'url' => ['/hh/hh'], 'active' => \Yii::$app->controller->id == 'hh'],
|
||||||
['label' => 'Вакансии', 'icon' => 'user-md', 'url' => ['/hh/hh-job'], 'active' => \Yii::$app->controller->id == 'hh-job'],
|
['label' => 'Вакансии', 'icon' => 'user-md', 'url' => ['/hh/hh-job'], 'active' => \Yii::$app->controller->id == 'hh-job'],
|
||||||
],
|
],
|
||||||
//TODO 'visible' => Yii::$app->user->can('confidential_information')
|
'visible' => Yii::$app->user->can('confidential_information')
|
||||||
],
|
],
|
||||||
['label' => 'Баланс', 'icon' => 'dollar', 'url' => ['/balance/balance'], 'active' => \Yii::$app->controller->id == 'balance', 'visible' => Yii::$app->user->can('confidential_information')],
|
['label' => 'Баланс', 'icon' => 'dollar', 'url' => ['/balance/balance'], 'active' => \Yii::$app->controller->id == 'balance', 'visible' => Yii::$app->user->can('confidential_information')],
|
||||||
['label' => 'Отпуска', 'icon' => 'plane', 'url' => ['/holiday/holiday'], 'active' => \Yii::$app->controller->id == 'holiday', 'visible' => Yii::$app->user->can('confidential_information')],
|
['label' => 'Отпуска', 'icon' => 'plane', 'url' => ['/holiday/holiday'], 'active' => \Yii::$app->controller->id == 'holiday', 'visible' => Yii::$app->user->can('confidential_information')],
|
||||||
@ -77,7 +89,7 @@
|
|||||||
'icon' => 'list-alt',
|
'icon' => 'list-alt',
|
||||||
'url' => ['/interview/interview'],
|
'url' => ['/interview/interview'],
|
||||||
'active' => \Yii::$app->controller->id == 'interview',
|
'active' => \Yii::$app->controller->id == 'interview',
|
||||||
//TODO 'visible' => Yii::$app->user->can('confidential_information'),
|
'visible' => Yii::$app->user->can('confidential_information'),
|
||||||
'badge' => '<span class="badge badge-info right">4</span>'
|
'badge' => '<span class="badge badge-info right">4</span>'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -91,7 +103,7 @@
|
|||||||
['label' => 'Анкеты пользователей', 'icon' => 'drivers-license', 'url' => ['/questionnaire/user-questionnaire'], 'active' => \Yii::$app->controller->id == 'user-questionnaire'],
|
['label' => 'Анкеты пользователей', 'icon' => 'drivers-license', 'url' => ['/questionnaire/user-questionnaire'], 'active' => \Yii::$app->controller->id == 'user-questionnaire'],
|
||||||
['label' => 'Ответы пользователей', 'icon' => 'comments', 'url' => ['/questionnaire/user-response'], 'active' => \Yii::$app->controller->id == 'user-response'],
|
['label' => 'Ответы пользователей', 'icon' => 'comments', 'url' => ['/questionnaire/user-response'], 'active' => \Yii::$app->controller->id == 'user-response'],
|
||||||
],
|
],
|
||||||
//TODO 'visible' => Yii::$app->user->can('confidential_information')
|
'visible' => Yii::$app->user->can('confidential_information')
|
||||||
],
|
],
|
||||||
|
|
||||||
/*['label' => 'Gii', 'icon' => 'file-code-o', 'url' => ['/gii']],
|
/*['label' => 'Gii', 'icon' => 'file-code-o', 'url' => ['/gii']],
|
||||||
|
112
common/models/Document.php
Normal file
112
common/models/Document.php
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace common\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
use yii\behaviors\TimestampBehavior;
|
||||||
|
use yii\db\Expression;
|
||||||
|
use yii\db\StaleObjectException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the model class for table "document".
|
||||||
|
*
|
||||||
|
* @property int $id
|
||||||
|
* @property string $title
|
||||||
|
* @property string $created_at
|
||||||
|
* @property string $updated_at
|
||||||
|
* @property int $template_id
|
||||||
|
* @property int $manager_id
|
||||||
|
*
|
||||||
|
* @property Manager $manager
|
||||||
|
* @property Template $template
|
||||||
|
* @property DocumentFieldValue[] $documentFieldValues
|
||||||
|
*/
|
||||||
|
class Document extends \yii\db\ActiveRecord
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static function tableName()
|
||||||
|
{
|
||||||
|
return 'document';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function behaviors()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[
|
||||||
|
'class' => TimestampBehavior::class,
|
||||||
|
'createdAtAttribute' => 'created_at',
|
||||||
|
'updatedAtAttribute' => 'updated_at',
|
||||||
|
'value' => new Expression('NOW()'),
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @throws \Throwable
|
||||||
|
* @throws StaleObjectException
|
||||||
|
*/
|
||||||
|
public function beforeDelete()
|
||||||
|
{
|
||||||
|
foreach ($this->documentFieldValues as $documentFieldValue){
|
||||||
|
$documentFieldValue->delete();
|
||||||
|
}
|
||||||
|
return parent::beforeDelete();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['created_at', 'updated_at'], 'safe'],
|
||||||
|
[['template_id', 'manager_id'], 'required'],
|
||||||
|
[['template_id', 'manager_id'], 'integer'],
|
||||||
|
['title', 'unique', 'targetAttribute' => ['title', 'template_id'], 'message'=>'Документ уже создан'],
|
||||||
|
[['title'], 'string', 'max' => 255],
|
||||||
|
[['manager_id'], 'exist', 'skipOnError' => true, 'targetClass' => Manager::className(), 'targetAttribute' => ['manager_id' => 'id']],
|
||||||
|
[['template_id'], 'exist', 'skipOnError' => true, 'targetClass' => Template::className(), 'targetAttribute' => ['template_id' => 'id']],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function attributeLabels()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => 'ID',
|
||||||
|
'title' => 'Название',
|
||||||
|
'created_at' => 'Дата создания',
|
||||||
|
'updated_at' => 'Дата обновления',
|
||||||
|
'template_id' => 'Шаблон',
|
||||||
|
'manager_id' => 'Менеджер',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getManager()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Manager::className(), ['id' => 'manager_id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getTemplate()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Template::className(), ['id' => 'template_id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getDocumentFieldValues()
|
||||||
|
{
|
||||||
|
return $this->hasMany(DocumentFieldValue::className(), ['document_id' => 'id']);
|
||||||
|
}
|
||||||
|
}
|
71
common/models/DocumentField.php
Normal file
71
common/models/DocumentField.php
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace common\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
use yii\helpers\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the model class for table "document_field".
|
||||||
|
*
|
||||||
|
* @property int $id
|
||||||
|
* @property string $title
|
||||||
|
*
|
||||||
|
* @property DocumentFieldValue[] $documentFieldValues
|
||||||
|
* @property TemplateDocumentField[] $templateDocumentFields
|
||||||
|
*/
|
||||||
|
class DocumentField extends \yii\db\ActiveRecord
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static function tableName()
|
||||||
|
{
|
||||||
|
return 'document_field';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['title'], 'string', 'max' => 255],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function attributeLabels()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => 'ID',
|
||||||
|
'title' => 'Название',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getDocumentFieldValues()
|
||||||
|
{
|
||||||
|
return $this->hasMany(DocumentFieldValue::className(), ['field_id' => 'id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getTemplateDocumentFields()
|
||||||
|
{
|
||||||
|
return $this->hasMany(TemplateDocumentField::className(), ['field_id' => 'id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getIdFieldsTitleList($template_id): array
|
||||||
|
{
|
||||||
|
return
|
||||||
|
self::find()->joinWith('templateDocumentFields')
|
||||||
|
->where(['template_document_field.template_id' => $template_id])
|
||||||
|
->asArray()->all();
|
||||||
|
}
|
||||||
|
}
|
71
common/models/DocumentFieldValue.php
Normal file
71
common/models/DocumentFieldValue.php
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace common\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the model class for table "document_field_value".
|
||||||
|
*
|
||||||
|
* @property int $id
|
||||||
|
* @property int $field_id
|
||||||
|
* @property int $document_id
|
||||||
|
* @property string $value
|
||||||
|
*
|
||||||
|
* @property Document $document
|
||||||
|
* @property DocumentField $field
|
||||||
|
*/
|
||||||
|
class DocumentFieldValue extends \yii\db\ActiveRecord
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static function tableName()
|
||||||
|
{
|
||||||
|
return 'document_field_value';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['field_id', 'document_id', 'value'], 'required'],
|
||||||
|
[['field_id', 'document_id'], 'integer'],
|
||||||
|
[['value'], 'string', 'max' => 255],
|
||||||
|
['field_id', 'unique', 'targetAttribute' => ['field_id', 'document_id'], 'message'=>'Поле уже используется'],
|
||||||
|
[['document_id'], 'exist', 'skipOnError' => true, 'targetClass' => Document::className(), 'targetAttribute' => ['document_id' => 'id']],
|
||||||
|
[['field_id'], 'exist', 'skipOnError' => true, 'targetClass' => DocumentField::className(), 'targetAttribute' => ['field_id' => 'id']],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function attributeLabels()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => 'ID',
|
||||||
|
'field_id' => 'Поле',
|
||||||
|
'document_id' => 'Документ',
|
||||||
|
'value' => 'Значение',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getDocument()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Document::className(), ['id' => 'document_id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getField()
|
||||||
|
{
|
||||||
|
return $this->hasOne(DocumentField::className(), ['id' => 'field_id']);
|
||||||
|
}
|
||||||
|
}
|
90
common/models/Template.php
Normal file
90
common/models/Template.php
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace common\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
use yii\behaviors\TimestampBehavior;
|
||||||
|
use yii\db\Expression;
|
||||||
|
use yii\helpers\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the model class for table "template".
|
||||||
|
*
|
||||||
|
* @property int $id
|
||||||
|
* @property string $title
|
||||||
|
* @property string $created_at
|
||||||
|
* @property string $updated_at
|
||||||
|
*
|
||||||
|
* @property Document[] $documents
|
||||||
|
* @property TemplateDocumentField[] $templateDocumentFields
|
||||||
|
*/
|
||||||
|
class Template extends \yii\db\ActiveRecord
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static function tableName()
|
||||||
|
{
|
||||||
|
return 'template';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function behaviors()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[
|
||||||
|
'class' => TimestampBehavior::class,
|
||||||
|
'createdAtAttribute' => 'created_at',
|
||||||
|
'updatedAtAttribute' => 'updated_at',
|
||||||
|
'value' => new Expression('NOW()'),
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['created_at', 'updated_at'], 'safe'],
|
||||||
|
[['title'], 'string', 'max' => 255],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function attributeLabels()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => 'ID',
|
||||||
|
'title' => 'Название',
|
||||||
|
'created_at' => 'Дата создания',
|
||||||
|
'updated_at' => 'Дата изменения',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function beforeDelete()
|
||||||
|
{
|
||||||
|
foreach ($this->templateDocumentFields as $templateDocumentField){
|
||||||
|
$templateDocumentField->delete();
|
||||||
|
}
|
||||||
|
return parent::beforeDelete();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getDocuments()
|
||||||
|
{
|
||||||
|
return $this->hasMany(Document::className(), ['template_id' => 'id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getTemplateDocumentFields()
|
||||||
|
{
|
||||||
|
return $this->hasMany(TemplateDocumentField::className(), ['template_id' => 'id']);
|
||||||
|
}
|
||||||
|
}
|
69
common/models/TemplateDocumentField.php
Normal file
69
common/models/TemplateDocumentField.php
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace common\models;
|
||||||
|
|
||||||
|
use Yii;
|
||||||
|
use yii\helpers\ArrayHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the model class for table "template_document_field".
|
||||||
|
*
|
||||||
|
* @property int $id
|
||||||
|
* @property int $template_id
|
||||||
|
* @property int $field_id
|
||||||
|
*
|
||||||
|
* @property DocumentField $field
|
||||||
|
* @property Template $template
|
||||||
|
*/
|
||||||
|
class TemplateDocumentField extends \yii\db\ActiveRecord
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public static function tableName()
|
||||||
|
{
|
||||||
|
return 'template_document_field';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
[['template_id', 'field_id'], 'required'],
|
||||||
|
[['template_id', 'field_id'], 'integer'],
|
||||||
|
['field_id', 'unique', 'targetAttribute' => ['template_id', 'field_id'], 'message'=>'Поле уже назначено'],
|
||||||
|
[['field_id'], 'exist', 'skipOnError' => true, 'targetClass' => DocumentField::className(), 'targetAttribute' => ['field_id' => 'id']],
|
||||||
|
[['template_id'], 'exist', 'skipOnError' => true, 'targetClass' => Template::className(), 'targetAttribute' => ['template_id' => 'id']],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function attributeLabels()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => 'ID',
|
||||||
|
'template_id' => 'Шаблон',
|
||||||
|
'field_id' => 'Поле',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getField()
|
||||||
|
{
|
||||||
|
return $this->hasOne(DocumentField::className(), ['id' => 'field_id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \yii\db\ActiveQuery
|
||||||
|
*/
|
||||||
|
public function getTemplate()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Template::className(), ['id' => 'template_id']);
|
||||||
|
}
|
||||||
|
}
|
5332
frontend-access.log
5332
frontend-access.log
File diff suppressed because it is too large
Load Diff
1957
frontend-error.log
1957
frontend-error.log
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user