Commit 4044fc300ab1d8991d7ca5dfbb476628863d738f
1 parent
512cc271
add details criteria form - create and delete
Showing
6 changed files
with
91 additions
and
35 deletions
Show diff stats
backend/controllers/DetailsDescriptionController.php
... | ... | @@ -85,6 +85,24 @@ class DetailsDescriptionController extends BaseController |
85 | 85 | |
86 | 86 | } |
87 | 87 | |
88 | + public function actionDeleteCriteria() | |
89 | + { | |
90 | + | |
91 | + $params = Yii::$app->request->get(); | |
92 | + $criteria_model = $this->findCriteriaModel( $params ); | |
93 | + | |
94 | + if ( $criteria_model->delete() ) { | |
95 | + | |
96 | + return $this->redirect(['view', 'name' => $params['name'], 'brand' => $params['brand']]); | |
97 | + | |
98 | + } else { | |
99 | + | |
100 | + throw new HttpException('Не удалось удалить характеристики из базы данных'); | |
101 | + | |
102 | + } | |
103 | + | |
104 | + } | |
105 | + | |
88 | 106 | |
89 | 107 | /** |
90 | 108 | * Finds the DetailsDescription model based on its primary key value. |
... | ... | @@ -103,5 +121,19 @@ class DetailsDescriptionController extends BaseController |
103 | 121 | } |
104 | 122 | } |
105 | 123 | |
124 | + protected function findCriteriaModel( $params ) | |
125 | + { | |
126 | + if ( isset($params['name']) | |
127 | + && isset($params['brand']) | |
128 | + && isset($params['key']) | |
129 | + && ($model = DetailsCriteria::findOne(['name' => $params['name'], 'brand' => $params['brand'], 'key' => $params['key']])) !== null ) { | |
130 | + | |
131 | + return $model; | |
132 | + | |
133 | + } else { | |
134 | + throw new NotFoundHttpException('Запрашиваемая характеристика не существует.'); | |
135 | + } | |
136 | + } | |
137 | + | |
106 | 138 | |
107 | 139 | } | ... | ... |
backend/views/check-price/index.php
... | ... | @@ -86,14 +86,6 @@ Pjax::begin(['id' => 'gridViewContent']); |
86 | 86 | }, |
87 | 87 | ], |
88 | 88 | ], |
89 | -// ['content' => function ($model) { | |
90 | -// $url = Url::to(['delete', 'id' => $model->id, 'update_date' => $model->price_date_update]); | |
91 | -// return Html::a('<span class="glyphicon glyphicon-trash"> </span>', $url, [ | |
92 | -// 'class' => 'deletePriceButton', | |
93 | -// 'value' => $url, | |
94 | -// ]); | |
95 | -// }, | |
96 | -// ], | |
97 | 89 | ] |
98 | 90 | ]); ?> |
99 | 91 | ... | ... |
backend/views/details-description/view.php
... | ... | @@ -2,8 +2,9 @@ |
2 | 2 | |
3 | 3 | use yii\helpers\Html; |
4 | 4 | use yii\widgets\DetailView; |
5 | -use yii\widgets\ActiveForm; | |
5 | +use yii\bootstrap\ActiveForm; | |
6 | 6 | use yii\grid\GridView; |
7 | +use yii\widgets\Pjax; | |
7 | 8 | |
8 | 9 | |
9 | 10 | /* @var $this yii\web\View */ |
... | ... | @@ -23,47 +24,75 @@ $this->params['breadcrumbs'][] = $this->title; |
23 | 24 | 'attributes' => [ |
24 | 25 | 'name', |
25 | 26 | 'brand', |
26 | - 'tecdoc_id', | |
27 | - 'tecdoc_article', | |
27 | +// 'tecdoc_id', | |
28 | +// 'tecdoc_article', | |
28 | 29 | 'description', |
29 | - 'tecdoc_description', | |
30 | - 'supplier_description', | |
31 | - 'article', | |
32 | - 'image', | |
30 | +// 'tecdoc_description', | |
31 | +// 'supplier_description', | |
32 | +// 'article', | |
33 | +// 'image', | |
33 | 34 | 'tecdoc_image', |
34 | - 'category_id', | |
35 | + // 'category_id', | |
35 | 36 | ], |
36 | 37 | ]) ?> |
37 | 38 | |
38 | 39 | <?php |
39 | - if($count) | |
40 | + echo Html::tag('hr'); | |
41 | + echo Html::tag('h4','Xарактеристики товара'); | |
42 | + if($count){ | |
43 | + Pjax::begin(); | |
40 | 44 | echo GridView::widget([ |
41 | - 'dataProvider' => $dataProvider, | |
42 | - 'columns' => [ | |
43 | - ['class' => 'yii\grid\SerialColumn'], | |
44 | - 'key', | |
45 | - 'value', | |
46 | - ['class' => 'yii\grid\ActionColumn', | |
47 | - 'template' => '{delete}'], | |
48 | - ], | |
49 | - ]); ?> | |
45 | + 'dataProvider' => $dataProvider, | |
46 | + 'showHeader' => false, | |
47 | + 'showOnEmpty' => false, | |
48 | + 'columns' => [ | |
49 | + 'key', | |
50 | + 'value', | |
51 | + ['class' => \yii\grid\ActionColumn::className(), | |
52 | + 'template'=>'{delete}', | |
53 | + 'buttons' => [ | |
54 | + 'delete' => function ($url, $model, $key) { | |
55 | + $url = \yii\helpers\Url::to(['details-description/delete-criteria', 'name' => $model->name, 'brand' => $model->brand, 'key' => $model->key]); | |
56 | + return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, [ | |
57 | + 'title' => Yii::t('yii', 'Удалить характеристики'), | |
58 | + 'data-confirm' => 'Вы уверены что хотите удалить эти характеристики?', | |
59 | + 'data-method' => 'post', | |
60 | + 'data-pjax' => '1', | |
61 | + ]); | |
62 | + }, | |
63 | + ], | |
64 | + ], | |
65 | + ], | |
66 | + ]); | |
67 | + Pjax::end(); | |
68 | + } | |
69 | + | |
70 | + ?> | |
50 | 71 | |
51 | 72 | <div class="details-criteria-form"> |
52 | 73 | |
53 | 74 | <?php $form = ActiveForm::begin(['action' =>['details-description/create-criteria'],]); ?> |
54 | 75 | |
55 | - <?= $form->field( $criteria_model, 'key' )->textInput(['maxlength' => true]) ?> | |
76 | + <?= $form->field( $criteria_model, 'key', [ | |
77 | + 'horizontalCssClasses' => [ | |
78 | + 'input' => 'col-sm-1', | |
79 | + ]] )->textInput() ?> | |
56 | 80 | |
57 | - <?= $form->field( $criteria_model, 'value' )->textInput(['maxlength' => true]) ?> | |
81 | + <?= $form->field( $criteria_model, 'value', [ | |
82 | + 'horizontalCssClasses' => [ | |
83 | + 'input' => 'col-sm-1', | |
84 | + ]] )->textInput() ?> | |
58 | 85 | |
59 | 86 | <?= $form->field( $criteria_model, 'name' )->hiddenInput(['value' => $model->name])->label(false)?> |
60 | 87 | <?= $form->field( $criteria_model, 'brand' )->hiddenInput(['value' => $model->brand])->label(false) ?> |
61 | 88 | |
62 | 89 | |
63 | 90 | <div class="form-group"> |
64 | - <?= Html::submitButton(Yii::t('app', 'Добавить'), ['class' => 'btn btn-success']) ?> | |
91 | + <?= Html::submitButton(Yii::t('app', 'Добавить характеристику'), ['class' => 'btn btn-success']) ?> | |
65 | 92 | </div> |
66 | 93 | |
67 | 94 | <?php ActiveForm::end(); ?> |
68 | 95 | </div> |
96 | + <hr> | |
97 | + | |
69 | 98 | </div> | ... | ... |
backend/views/layouts/column.php
... | ... | @@ -286,6 +286,7 @@ $this->beginContent('@app/views/layouts/main.php'); |
286 | 286 | ['label' => "Загрузка файлов", 'url' => ['#'], 'items' => [ |
287 | 287 | ['label' => 'Кросс файлы', 'url' => ['crossing-upload/index']], |
288 | 288 | ['label' => 'Группы RG', 'url' => ['rg-grup/index']], |
289 | + ['label' => "Прайс файлы", 'url' => ['#'], 'items' => [ | |
289 | 290 | ['label' => 'Файлы на сервере', 'url' => ['parser/server-files']], |
290 | 291 | ['label' => 'Загрузить файл на сервер', 'url' => ['parser/index', 'mode' => 1]], |
291 | 292 | ['label' => 'Ручная загрузка', 'url' => ['parser/index']], |
... | ... | @@ -293,6 +294,8 @@ $this->beginContent('@app/views/layouts/main.php'); |
293 | 294 | ['label' => 'Управление префиксами', 'url' => ['importers-prefix/index']], |
294 | 295 | ], |
295 | 296 | ], |
297 | + ], | |
298 | + ], | |
296 | 299 | ['label' => 'Управление ролями', 'url' => ['#'], 'items' => [ |
297 | 300 | ['label' => 'Покупатели', 'url' => ['accounts/index']], |
298 | 301 | ['label' => 'Поставщики', 'url' => ['importers/index']], | ... | ... |
common/models/DetailsCriteria.php
... | ... | @@ -48,8 +48,8 @@ class DetailsCriteria extends \backend\components\base\BaseActiveRecord |
48 | 48 | return [ |
49 | 49 | 'name' => Yii::t('app', 'Name'), |
50 | 50 | 'brand' => Yii::t('app', 'Brand'), |
51 | - 'key' => Yii::t('app', 'Key'), | |
52 | - 'value' => Yii::t('app', 'Value'), | |
51 | + 'key' => Yii::t('app', 'Ключ'), | |
52 | + 'value' => Yii::t('app', 'Характеристика'), | |
53 | 53 | 'if_tecdoc' => Yii::t('app', 'If Tecdoc'), |
54 | 54 | 'filter_id' => Yii::t('app', 'Filter ID'), |
55 | 55 | 'timestamp' => Yii::t('app', 'Timestamp'), | ... | ... |
common/models/DetailsDescription.php
... | ... | @@ -59,12 +59,12 @@ class DetailsDescription extends \backend\components\base\BaseActiveRecord |
59 | 59 | 'brand' => Yii::t('app', 'Бренд'), |
60 | 60 | 'tecdoc_id' => Yii::t('app', 'Tecdoc ID'), |
61 | 61 | 'tecdoc_article' => Yii::t('app', 'Артикул Текдока'), |
62 | - 'description' => Yii::t('app', 'Description'), | |
62 | + 'description' => Yii::t('app', 'Главное наименование'), | |
63 | 63 | 'tecdoc_description' => Yii::t('app', 'Tecdoc Description'), |
64 | - 'supplier_description' => Yii::t('app', 'Supplier Description'), | |
64 | + 'supplier_description' => Yii::t('app', 'Наименование поставщика'), | |
65 | 65 | 'article' => Yii::t('app', 'Article'), |
66 | - 'image' => Yii::t('app', 'Image'), | |
67 | - 'tecdoc_image' => Yii::t('app', 'Tecdoc Image'), | |
66 | + 'image' => Yii::t('app', 'Картинка сайта'), | |
67 | + 'tecdoc_image' => Yii::t('app', 'Картинка Текдока'), | |
68 | 68 | 'category_id' => Yii::t('app', 'Category ID'), |
69 | 69 | 'timestamp' => Yii::t('app', 'Timestamp'), |
70 | 70 | ]; | ... | ... |