Commit 9075f46455f7dd21bf195a011350180000ae0be7
1 parent
01746976
add action and view for server-files
Showing
6 changed files
with
103 additions
and
4 deletions
Show diff stats
backend/controllers/CheckPriceController.php
backend/controllers/ParserController.php
... | ... | @@ -36,7 +36,6 @@ class ParserController extends BaseController |
36 | 36 | 'class' => AccessControl::className(), |
37 | 37 | 'rules' => [ |
38 | 38 | [ |
39 | - 'actions' => ['index', 'results', 'write', 'check_price'], | |
40 | 39 | 'allow' => true, |
41 | 40 | 'roles' => ['@'], |
42 | 41 | ], |
... | ... | @@ -255,7 +254,6 @@ class ParserController extends BaseController |
255 | 254 | |
256 | 255 | public function actionAutoUpload() |
257 | 256 | { |
258 | - //$query = (new Query())->select('*')->from('{{%importer_files}}')->where(['not', ['time_end' => null]])->orderBy(['upload_time' => SORT_DESC]); | |
259 | 257 | $query = Importer::find()->where(['active' => true])->orderBy(['price_date_update' => SORT_DESC]); |
260 | 258 | |
261 | 259 | $provider = new ActiveDataProvider([ |
... | ... | @@ -268,4 +266,47 @@ class ParserController extends BaseController |
268 | 266 | [ |
269 | 267 | 'dataProvider' => $provider]); |
270 | 268 | } |
269 | + | |
270 | + public function actionServerFiles () | |
271 | + { | |
272 | + $arr_id = []; | |
273 | + // получим список файлов которые ожидают к загрузке | |
274 | + foreach (glob(Yii::getAlias('@auto_upload') . '/*') as $server_file) { | |
275 | + $file_id = basename($server_file,".csv"); | |
276 | + $arr_id[] = (int) $file_id; | |
277 | + } | |
278 | + | |
279 | + $query = ImporterFiles::find()->where(['in', 'id', $arr_id])->orderBy(['upload_time' => SORT_DESC]); | |
280 | + | |
281 | + $provider = new ActiveDataProvider([ | |
282 | + 'query' => $query, | |
283 | + 'pagination' => [ | |
284 | + 'pageSize' => 10, | |
285 | + ], | |
286 | + ]); | |
287 | + return $this->render('server-files', | |
288 | + [ | |
289 | + 'dataProvider' => $provider]); | |
290 | + } | |
291 | + | |
292 | + public function actionDelete ($id) | |
293 | + { | |
294 | + if(Yii::$app->request->isAjax){ | |
295 | + CustomVarDamp::dumpAndDie(1); | |
296 | + } | |
297 | + | |
298 | + $files_model = new ImporterFiles(); | |
299 | + try { | |
300 | + | |
301 | + $files_model->delete($id); | |
302 | + unlink(Yii::getAlias('@auto_upload') . '/' . $id . '.csv' ); | |
303 | + | |
304 | + } catch (ErrorException $e) { | |
305 | + | |
306 | + CustomVarDamp::dump($e->getMessage()); | |
307 | + | |
308 | + } | |
309 | + | |
310 | + $this->redirect('server-files'); | |
311 | + } | |
271 | 312 | } | ... | ... |
backend/models/ImporterFiles.php
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | |
3 | 3 | namespace backend\models; |
4 | 4 | |
5 | +use common\components\CustomVarDamp; | |
5 | 6 | use Yii; |
6 | 7 | |
7 | 8 | /** |
... | ... | @@ -37,8 +38,9 @@ class ImporterFiles extends \yii\db\ActiveRecord |
37 | 38 | |
38 | 39 | public function getImporter () |
39 | 40 | { |
40 | - return $this->hasOne(Importer::className(), ['id' => 'importer_id'])->name; | |
41 | + return $this->hasOne(Importer::className(), ['id' => 'importer_id'])->one()->name; | |
41 | 42 | } |
43 | + | |
42 | 44 | /** |
43 | 45 | * @inheritdoc |
44 | 46 | */ | ... | ... |
backend/views/layouts/column.php
... | ... | @@ -283,6 +283,7 @@ $this->beginContent('@app/views/layouts/main.php'); |
283 | 283 | 'options' => ['class' => 'sidebar-menu'], |
284 | 284 | 'items' => [ |
285 | 285 | ['label' => "Загрузка файлов", 'url' => ['#'], 'items' => [ |
286 | + ['label' => 'Файлы на сервере', 'url' => ['parser/server-files']], | |
286 | 287 | ['label' => 'Загрузить файл на сервер', 'url' => ['parser/index', 'mode' => 1]], |
287 | 288 | ['label' => 'Ручная загрузка', 'url' => ['parser/index']], |
288 | 289 | ['label' => 'Проверка прайс файлов', 'url' => ['check-price/index']], | ... | ... |
1 | +<?php | |
2 | +use yii\helpers\Html; | |
3 | +use yii\grid\GridView; | |
4 | +use yii\grid\SerialColumn; | |
5 | +use yii\grid\ActionColumn; | |
6 | +use yii\widgets\Pjax; | |
7 | + | |
8 | + | |
9 | +/* @var $this yii\web\View */ | |
10 | +/* @var $searchModel backend\models\CatalogSearch */ | |
11 | +/* @var $dataProvider yii\data\ActiveDataProvider */ | |
12 | + | |
13 | +$this->title = 'Проверка прайсов'; | |
14 | +$this->params['breadcrumbs'][] = $this->title; | |
15 | +Pjax::begin(); | |
16 | + | |
17 | +?> | |
18 | + <div class="catalog-index"> | |
19 | + | |
20 | + <h1><?= Html::encode($this->title) ?></h1> | |
21 | + | |
22 | + <?= GridView::widget( ['dataProvider' => $dataProvider, | |
23 | + 'columns' => [['class' => SerialColumn::className()], | |
24 | + [ | |
25 | + 'label' =>'Поставщик', | |
26 | + 'value' => function ($data) { | |
27 | + return $data->importer; | |
28 | + }, | |
29 | + ], | |
30 | + ['label' =>'Дата загрузки', | |
31 | + 'attribute' => 'upload_time' ], | |
32 | + | |
33 | + ['class' => ActionColumn::className(), | |
34 | + 'template'=>'{delete}', | |
35 | + 'buttons' => [ | |
36 | + 'delete' => function ($url, $model, $key) { | |
37 | + return Html::a('<span class="glyphicon glyphicon-remove"></span>', $url, [ | |
38 | + 'title' => Yii::t('yii', 'Удалить файл'), | |
39 | + 'data-confirm' => 'Вы уверены что хотите удалить этот файл?', | |
40 | + 'data-method' => 'post', | |
41 | + 'data-pjax' => '1', | |
42 | + ]); | |
43 | + }, | |
44 | + ], | |
45 | + ] | |
46 | + | |
47 | + ]] );?> | |
48 | + | |
49 | + | |
50 | + | |
51 | + </div> | |
52 | +<?php | |
53 | +Pjax::end(); | |
54 | +?> | |
0 | 55 | \ No newline at end of file | ... | ... |