Commit 9075f46455f7dd21bf195a011350180000ae0be7

Authored by Mihail
1 parent 01746976

add action and view for server-files

backend/controllers/CheckPriceController.php
@@ -95,4 +95,5 @@ class CheckPriceController extends BaseController @@ -95,4 +95,5 @@ class CheckPriceController extends BaseController
95 return $this->render('view', 95 return $this->render('view',
96 ['dataProvider' => $provider]); 96 ['dataProvider' => $provider]);
97 } 97 }
  98 +
98 } 99 }
backend/controllers/ParserController.php
@@ -36,7 +36,6 @@ class ParserController extends BaseController @@ -36,7 +36,6 @@ class ParserController extends BaseController
36 'class' => AccessControl::className(), 36 'class' => AccessControl::className(),
37 'rules' => [ 37 'rules' => [
38 [ 38 [
39 - 'actions' => ['index', 'results', 'write', 'check_price'],  
40 'allow' => true, 39 'allow' => true,
41 'roles' => ['@'], 40 'roles' => ['@'],
42 ], 41 ],
@@ -255,7 +254,6 @@ class ParserController extends BaseController @@ -255,7 +254,6 @@ class ParserController extends BaseController
255 254
256 public function actionAutoUpload() 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 $query = Importer::find()->where(['active' => true])->orderBy(['price_date_update' => SORT_DESC]); 257 $query = Importer::find()->where(['active' => true])->orderBy(['price_date_update' => SORT_DESC]);
260 258
261 $provider = new ActiveDataProvider([ 259 $provider = new ActiveDataProvider([
@@ -268,4 +266,47 @@ class ParserController extends BaseController @@ -268,4 +266,47 @@ class ParserController extends BaseController
268 [ 266 [
269 'dataProvider' => $provider]); 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,6 +2,7 @@
2 2
3 namespace backend\models; 3 namespace backend\models;
4 4
  5 +use common\components\CustomVarDamp;
5 use Yii; 6 use Yii;
6 7
7 /** 8 /**
@@ -37,8 +38,9 @@ class ImporterFiles extends \yii\db\ActiveRecord @@ -37,8 +38,9 @@ class ImporterFiles extends \yii\db\ActiveRecord
37 38
38 public function getImporter () 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 * @inheritdoc 45 * @inheritdoc
44 */ 46 */
backend/views/layouts/column.php
@@ -283,6 +283,7 @@ $this->beginContent('@app/views/layouts/main.php'); @@ -283,6 +283,7 @@ $this->beginContent('@app/views/layouts/main.php');
283 'options' => ['class' => 'sidebar-menu'], 283 'options' => ['class' => 'sidebar-menu'],
284 'items' => [ 284 'items' => [
285 ['label' => "Загрузка файлов", 'url' => ['#'], 'items' => [ 285 ['label' => "Загрузка файлов", 'url' => ['#'], 'items' => [
  286 + ['label' => 'Файлы на сервере', 'url' => ['parser/server-files']],
286 ['label' => 'Загрузить файл на сервер', 'url' => ['parser/index', 'mode' => 1]], 287 ['label' => 'Загрузить файл на сервер', 'url' => ['parser/index', 'mode' => 1]],
287 ['label' => 'Ручная загрузка', 'url' => ['parser/index']], 288 ['label' => 'Ручная загрузка', 'url' => ['parser/index']],
288 ['label' => 'Проверка прайс файлов', 'url' => ['check-price/index']], 289 ['label' => 'Проверка прайс файлов', 'url' => ['check-price/index']],
backend/views/parser/server-files.php 0 → 100644
  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 \ No newline at end of file 55 \ No newline at end of file
vendor/yiisoft/multiparser/YiiMultiparser.php
@@ -37,5 +37,5 @@ public $configuration; @@ -37,5 +37,5 @@ public $configuration;
37 return $parser->run(); 37 return $parser->run();
38 38
39 } 39 }
40 - 40 +
41 } 41 }
42 \ No newline at end of file 42 \ No newline at end of file