init
This commit is contained in:
		
							
								
								
									
										75
									
								
								Module.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								Module.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace dominion\cron;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use yii\base\BootstrapInterface;
 | 
				
			||||||
 | 
					use yii\i18n\PhpMessageSource;
 | 
				
			||||||
 | 
					use dominion\cron\models\MoleTask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * cron module definition class
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class Module extends \yii\base\Module implements BootstrapInterface
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public $admins = [];
 | 
				
			||||||
 | 
					    public $project = 'yii';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * {@inheritdoc}
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public $controllerNamespace = 'dominion\cron\controllers';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function bootstrap($app)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if ($app instanceof \yii\web\Application)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            $app->getUrlManager()->addRules([
 | 
				
			||||||
 | 
					                ['class' => 'yii\web\UrlRule', 'pattern' => $this->id, 'route' => $this->id . '/default/index'],
 | 
				
			||||||
 | 
					                ['class' => 'yii\web\UrlRule', 'pattern' => $this->id . '/<id:\w+>', 'route' => $this->id . '/default/view'],
 | 
				
			||||||
 | 
					                ['class' => 'yii\web\UrlRule', 'pattern' => $this->id . '/<controller:[\w\-]+>/<action:[\w\-]+>', 'route' => $this->id . '/<controller>/<action>'],
 | 
				
			||||||
 | 
					                ], false);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        elseif ($app instanceof \yii\console\Application)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            $app->controllerMap[$this->id] = [
 | 
				
			||||||
 | 
					                'class' => 'dominion\cron\console\MoleController',
 | 
				
			||||||
 | 
					              //  'module' => $this,
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!isset($app->get('i18n')->translations['mole*']))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            $app->get('i18n')->translations['mole*'] = [
 | 
				
			||||||
 | 
					                'class' => PhpMessageSource::className(),
 | 
				
			||||||
 | 
					                'basePath' => __DIR__ . '/messages',
 | 
				
			||||||
 | 
					                'sourceLanguage' => 'en-US'
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Добавление агента (обертка)
 | 
				
			||||||
 | 
					     * @param string $controller
 | 
				
			||||||
 | 
					     * @param string $name
 | 
				
			||||||
 | 
					     * @param array $params
 | 
				
			||||||
 | 
					     * @param int $priority
 | 
				
			||||||
 | 
					     * @param int $period
 | 
				
			||||||
 | 
					     * @param date $dateAdd
 | 
				
			||||||
 | 
					     * @param string $project
 | 
				
			||||||
 | 
					     * @return boolean
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function add($controller, $name, $params = array(), $priority = 0, $period = 0, $dateAdd = false, $project = false)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return MoleTask::add($controller, $name, $params, $priority, $period, $dateAdd, $project);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Выбираем все строки с project
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function getAllTask($project = false)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $model = new MoleTask();
 | 
				
			||||||
 | 
					        return $model->getAllTask($project);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										31
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					Агент для работы с кроном
 | 
				
			||||||
 | 
					=========================
 | 
				
			||||||
 | 
					Функционал для работы с кроном
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Installation
 | 
				
			||||||
 | 
					------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Either run
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					php composer.phar require --prefer-dist dominion/yii2-cron "*"
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					or add
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					"dominion/yii2-cron": "*"
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					to the require section of your `composer.json` file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Usage
 | 
				
			||||||
 | 
					-----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Once the extension is installed, simply use it in your code by  :
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					<?= \dominion\cron\AutoloadExample::widget(); ?>```
 | 
				
			||||||
							
								
								
									
										21
									
								
								composer.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								composer.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "name": "dominion/yii2-cron",
 | 
				
			||||||
 | 
					    "description": "Функционал для работы с кроном",
 | 
				
			||||||
 | 
					    "type": "yii2-extension",
 | 
				
			||||||
 | 
					    "keywords": ["yii2","extension"],
 | 
				
			||||||
 | 
					    "license": "MIT",
 | 
				
			||||||
 | 
					    "authors": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "name": "Rybkin Sasha",
 | 
				
			||||||
 | 
					            "email": "ribkin@dominion.ru"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "require": {
 | 
				
			||||||
 | 
					        "yiisoft/yii2": "~2.0.0"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "autoload": {
 | 
				
			||||||
 | 
					        "psr-4": {
 | 
				
			||||||
 | 
					            "dominion\\cron\\": ""
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										99
									
								
								console/MoleController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								console/MoleController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @link https://www.kuvalda.ru/
 | 
				
			||||||
 | 
					 * @copyright
 | 
				
			||||||
 | 
					 * @license
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace dominion\cron\console;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Yii;
 | 
				
			||||||
 | 
					use yii\console\Controller;
 | 
				
			||||||
 | 
					use yii\console\ExitCode;
 | 
				
			||||||
 | 
					use dominion\cron\models\MoleTask;
 | 
				
			||||||
 | 
					use yii\base\InlineAction;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Запуск агента по расписанию
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @author Rybkin Sasha <ribkin@dominion.ru>
 | 
				
			||||||
 | 
					 * @since 0.1
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class MoleController extends Controller
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Запуск всех агентов для проекта yii из mole_task
 | 
				
			||||||
 | 
					     * @return int Exit code
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function actionIndex()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $filePatch = Yii::getAlias('@app/runtime/lock.lock');
 | 
				
			||||||
 | 
					        if (!file_exists($filePatch))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            $fp = fopen($filePatch, "w");
 | 
				
			||||||
 | 
					            fwrite($fp, "");
 | 
				
			||||||
 | 
					            fclose($fp);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        $file = fopen($filePatch, 'r+');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (flock($file, LOCK_EX | LOCK_NB))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            $model = new MoleTask;
 | 
				
			||||||
 | 
					            $tasks = $model->getAllTask();
 | 
				
			||||||
 | 
					            foreach ($tasks as $task)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                try
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    $task->dateStart = date('Y-m-d H:i:s');
 | 
				
			||||||
 | 
					                   $task->save();
 | 
				
			||||||
 | 
					                    $params = explode('/', $task->controller);
 | 
				
			||||||
 | 
					                    $controller = $this->format($params[0]);
 | 
				
			||||||
 | 
					                    $action = 'actionIndex';
 | 
				
			||||||
 | 
					                    if (isset($params[1]))
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        $action = 'action' . $this->format($params[1]);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    if(stripos($controller, 'Controller') === false)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        $controller .= 'Controller';
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    $class = 'app\\commands\\' . $controller;
 | 
				
			||||||
 | 
					                    if (class_exists($class))
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        $control = new $class($task->controller, 'product');
 | 
				
			||||||
 | 
					                        if (method_exists($control, $action))
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            $params = $control->{$action}(unserialize($task->params));
 | 
				
			||||||
 | 
					                            if(!empty($params))
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                $task->params = serialize($params);
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                            $task->isReady = 1;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    $task->setCompleted();
 | 
				
			||||||
 | 
					                } catch (\Exception $ex)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    $task->dateStart = null;
 | 
				
			||||||
 | 
					                    $task->save();
 | 
				
			||||||
 | 
					                    print_r($ex->getMessage());
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return ExitCode::OK;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected function format($controller)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $params = explode('-', $controller);
 | 
				
			||||||
 | 
					        foreach ($params as $key => $value)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            $params[$key] = ucfirst($value);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return implode('', $params);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										135
									
								
								controllers/DefaultController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								controllers/DefaultController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,135 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace dominion\cron\controllers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Yii;
 | 
				
			||||||
 | 
					use yii\web\Controller;
 | 
				
			||||||
 | 
					use dominion\cron\models\search\MoleTaskSearch;
 | 
				
			||||||
 | 
					use dominion\cron\models\MoleTask;
 | 
				
			||||||
 | 
					use yii\filters\VerbFilter;
 | 
				
			||||||
 | 
					use yii\web\NotFoundHttpException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Default controller for the `cron` module
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class DefaultController extends Controller
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public function behaviors()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (!Yii::$app->user->getIsGuest() && in_array(Yii::$app->user->id, $this->module->admins))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return [
 | 
				
			||||||
 | 
					                'verbs' => [
 | 
				
			||||||
 | 
					                    'class' => VerbFilter::className(),
 | 
				
			||||||
 | 
					                    'actions' => [
 | 
				
			||||||
 | 
					                        'delete' => ['POST'],
 | 
				
			||||||
 | 
					                    ],
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            throw new NotFoundHttpException(Yii::t('mole', 'access denied'));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Renders the index view for the module
 | 
				
			||||||
 | 
					     * @return string
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function actionIndex()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $searchModel = new MoleTaskSearch();
 | 
				
			||||||
 | 
					        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $this->render('index', [
 | 
				
			||||||
 | 
					                'searchModel' => $searchModel,
 | 
				
			||||||
 | 
					                'dataProvider' => $dataProvider,
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Displays a single MoleTask model.
 | 
				
			||||||
 | 
					     * @param integer $id
 | 
				
			||||||
 | 
					     * @return mixed
 | 
				
			||||||
 | 
					     * @throws NotFoundHttpException if the model cannot be found
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function actionView($id)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $model = $this->findModel($id);
 | 
				
			||||||
 | 
					        return $this->render('view', [
 | 
				
			||||||
 | 
					                'model' => $model,
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Creates a new MoleTask model.
 | 
				
			||||||
 | 
					     * If creation is successful, the browser will be redirected to the 'view' page.
 | 
				
			||||||
 | 
					     * @return mixed
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function actionCreate()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $model = new MoleTask();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        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 MoleTask 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 MoleTask 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 MoleTask model based on its primary key value.
 | 
				
			||||||
 | 
					     * If the model is not found, a 404 HTTP exception will be thrown.
 | 
				
			||||||
 | 
					     * @param integer $id
 | 
				
			||||||
 | 
					     * @return MoleTask the loaded model
 | 
				
			||||||
 | 
					     * @throws NotFoundHttpException if the model cannot be found
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    protected function findModel($id)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (($model = MoleTask::findOne($id)) !== null)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return $model;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        throw new NotFoundHttpException(Yii::t('mole', 'The requested page does not exist.'));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										29
									
								
								messages/ru-RU/mole.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								messages/ru-RU/mole.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return [
 | 
				
			||||||
 | 
					    'Task List' => 'Список задач',
 | 
				
			||||||
 | 
					    'Project' => 'Проект',
 | 
				
			||||||
 | 
					    'Parent ID' => 'Родительский процесс',
 | 
				
			||||||
 | 
					    'Date Add' => 'Дата создания',
 | 
				
			||||||
 | 
					    'Date Start' => 'Дата запуска',
 | 
				
			||||||
 | 
					    'Date End' => 'Дата завершения',
 | 
				
			||||||
 | 
					    'Module' => 'Модуль',
 | 
				
			||||||
 | 
					    'Controller' => 'Контроллер',
 | 
				
			||||||
 | 
					    'Type' => 'Тип',
 | 
				
			||||||
 | 
					    'Name' => 'Название',
 | 
				
			||||||
 | 
					    'Params' => 'Параметры',
 | 
				
			||||||
 | 
					    'Is Ready' => 'Готов',
 | 
				
			||||||
 | 
					    'Completed' => 'Завершен',
 | 
				
			||||||
 | 
					    'Priority' => 'Приоритет',
 | 
				
			||||||
 | 
					    'Period' => 'Периодичность',
 | 
				
			||||||
 | 
					   // 'Childs Total Count' => '',
 | 
				
			||||||
 | 
					   // 'Childs Completed' => '',
 | 
				
			||||||
 | 
					    'Status' => 'Статус',
 | 
				
			||||||
 | 
					    'Yes' => 'Да',
 | 
				
			||||||
 | 
					    'No' => 'Нет',
 | 
				
			||||||
 | 
					    'Create Task' => 'Создать задачу',
 | 
				
			||||||
 | 
					    'Save' => 'Сохранить',
 | 
				
			||||||
 | 
					    'Update'=> 'Изменить',
 | 
				
			||||||
 | 
					    'Update Task: {nameAttribute}' => 'Изменить задачу: {nameAttribute}',
 | 
				
			||||||
 | 
					    'Delete' => 'Удалить',
 | 
				
			||||||
 | 
					 ];
 | 
				
			||||||
							
								
								
									
										151
									
								
								models/MoleTask.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								models/MoleTask.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,151 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace dominion\cron\models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Yii;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * This is the model class for table "mole_task".
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @property int $id
 | 
				
			||||||
 | 
					 * @property int $parentId
 | 
				
			||||||
 | 
					 * @property string $dateAdd
 | 
				
			||||||
 | 
					 * @property string $dateStart
 | 
				
			||||||
 | 
					 * @property string $dateEnd
 | 
				
			||||||
 | 
					 * @property string $module
 | 
				
			||||||
 | 
					 * @property string $controller
 | 
				
			||||||
 | 
					 * @property string $type
 | 
				
			||||||
 | 
					 * @property string $name
 | 
				
			||||||
 | 
					 * @property string $params
 | 
				
			||||||
 | 
					 * @property int $isReady
 | 
				
			||||||
 | 
					 * @property int $completed
 | 
				
			||||||
 | 
					 * @property int $priority
 | 
				
			||||||
 | 
					 * @property int $childsTotalCount
 | 
				
			||||||
 | 
					 * @property int $childsCompleted
 | 
				
			||||||
 | 
					 * @property string $status
 | 
				
			||||||
 | 
					 * @property string $project
 | 
				
			||||||
 | 
					 * @property int $period
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class MoleTask extends \yii\db\ActiveRecord
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * {@inheritdoc}
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static function tableName()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return 'mole_task';
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * {@inheritdoc}
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function rules()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return [
 | 
				
			||||||
 | 
					            //[['parentId', 'isReady', 'childsTotalCount', 'childsCompleted', 'status'], 'required'],
 | 
				
			||||||
 | 
					            [['parentId', 'isReady', 'completed', 'priority', 'childsTotalCount', 'childsCompleted', 'period'], 'integer'],
 | 
				
			||||||
 | 
					            [['dateAdd', 'dateStart', 'dateEnd'], 'safe'],
 | 
				
			||||||
 | 
					            [['params'], 'string'],
 | 
				
			||||||
 | 
					            [['module', 'controller', 'type', 'name', 'status'], 'string', 'max' => 255],
 | 
				
			||||||
 | 
					            [['project'], 'string', 'max' => 50],
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * {@inheritdoc}
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function attributeLabels()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return [
 | 
				
			||||||
 | 
					            'id' => Yii::t('mole', 'ID'),
 | 
				
			||||||
 | 
					            'parentId' => Yii::t('mole', 'Parent ID'),
 | 
				
			||||||
 | 
					            'dateAdd' => Yii::t('mole', 'Date Add'),
 | 
				
			||||||
 | 
					            'dateStart' => Yii::t('mole', 'Date Start'),
 | 
				
			||||||
 | 
					            'dateEnd' => Yii::t('mole', 'Date End'),
 | 
				
			||||||
 | 
					            'module' => Yii::t('mole', 'Module'),
 | 
				
			||||||
 | 
					            'controller' => Yii::t('mole', 'Controller'),
 | 
				
			||||||
 | 
					            'type' => Yii::t('mole', 'Type'),
 | 
				
			||||||
 | 
					            'name' => Yii::t('mole', 'Name'),
 | 
				
			||||||
 | 
					            'params' => Yii::t('mole', 'Params'),
 | 
				
			||||||
 | 
					            'isReady' => Yii::t('mole', 'Is Ready'),
 | 
				
			||||||
 | 
					            'completed' => Yii::t('mole', 'Completed'),
 | 
				
			||||||
 | 
					            'priority' => Yii::t('mole', 'Priority'),
 | 
				
			||||||
 | 
					            'childsTotalCount' => Yii::t('mole', 'Childs Total Count'),
 | 
				
			||||||
 | 
					            'childsCompleted' => Yii::t('mole', 'Childs Completed'),
 | 
				
			||||||
 | 
					            'status' => Yii::t('mole', 'Status'),
 | 
				
			||||||
 | 
					            'project' => Yii::t('mole', 'Project'),
 | 
				
			||||||
 | 
					            'period' => Yii::t('mole', 'Period'),
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Выбираем все строки с project
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function getAllTask($project = false)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return self::find()
 | 
				
			||||||
 | 
					                ->andWhere([
 | 
				
			||||||
 | 
					                    'project' => $project ?: Yii::$app->getModule('cron')->project,
 | 
				
			||||||
 | 
					                    'completed' => 0,
 | 
				
			||||||
 | 
					                ])
 | 
				
			||||||
 | 
					                ->andWhere(['IS', 'dateStart', NULL])
 | 
				
			||||||
 | 
					                ->andWhere(['IS', 'dateEnd', NULL])
 | 
				
			||||||
 | 
					                ->andWhere(['<=', 'dateAdd', date('Y-m-d H:i:s')])
 | 
				
			||||||
 | 
					                ->orderBy('priority DESC')
 | 
				
			||||||
 | 
					                ->all();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function setCompleted()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->dateEnd = date('Y-m-d H:i:s');
 | 
				
			||||||
 | 
					        $this->completed = 1;
 | 
				
			||||||
 | 
					        if ($this->save() && $this->period > 0)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            $model = new MoleTask;
 | 
				
			||||||
 | 
					            $model->attributes = $this->attributes;
 | 
				
			||||||
 | 
					            $model->isReady = 0;
 | 
				
			||||||
 | 
					            $model->completed = 0;
 | 
				
			||||||
 | 
					            $model->dateStart = null;
 | 
				
			||||||
 | 
					            $model->dateEnd = null;
 | 
				
			||||||
 | 
					            $model->dateAdd = date('Y-m-d H:i:s', (strtotime($this->dateAdd . " +$this->period seconds")));
 | 
				
			||||||
 | 
					            $model->save();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Добавление агента (обертка)
 | 
				
			||||||
 | 
					     * @param string $controller
 | 
				
			||||||
 | 
					     * @param string $name
 | 
				
			||||||
 | 
					     * @param array $params
 | 
				
			||||||
 | 
					     * @param int $priority
 | 
				
			||||||
 | 
					     * @param int $period
 | 
				
			||||||
 | 
					     * @param date $dateAdd
 | 
				
			||||||
 | 
					     * @param string $project
 | 
				
			||||||
 | 
					     * @return boolean
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static function add($controller, $name, $params = array(), $priority = 0, $period = 0, $dateAdd = false, $project = false)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $module = '';
 | 
				
			||||||
 | 
					        if(stripos($controller, '.') !== false)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            $arController = explode('.', $controller);
 | 
				
			||||||
 | 
					            $module = $arController[0];
 | 
				
			||||||
 | 
					            $controller = $arController[1];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $model = new MoleTask();
 | 
				
			||||||
 | 
					        $model->controller = $controller;
 | 
				
			||||||
 | 
					        $model->name = $name;
 | 
				
			||||||
 | 
					        $model->params = serialize($params);
 | 
				
			||||||
 | 
					        $model->priority = $priority;
 | 
				
			||||||
 | 
					        $model->period = $period;
 | 
				
			||||||
 | 
					        $model->dateAdd = $dateAdd ?: date('Y-m-d H:i:s');
 | 
				
			||||||
 | 
					        $model->project = $project ?: Yii::$app->getModule('cron')->project;
 | 
				
			||||||
 | 
					        $model->module = $module;
 | 
				
			||||||
 | 
					        $model->type = ((empty($model->module) ? $model->project : $model->module) . '.' . $model->controller); // для совместимости
 | 
				
			||||||
 | 
					        $model->isReady = 1;
 | 
				
			||||||
 | 
					        return $model->save();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										91
									
								
								models/search/MoleTaskSearch.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								models/search/MoleTaskSearch.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace dominion\cron\models\search;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use \Yii;
 | 
				
			||||||
 | 
					use yii\base\Model;
 | 
				
			||||||
 | 
					use yii\data\ActiveDataProvider;
 | 
				
			||||||
 | 
					use dominion\cron\models\MoleTask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * MoleTaskSearch represents the model behind the search form of `app\models\Articles`.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class MoleTaskSearch extends MoleTask
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @inheritdoc
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function rules()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return [
 | 
				
			||||||
 | 
					            [['id', 'parentId', 'isReady', 'completed', 'priority', 'childsTotalCount', 'childsCompleted', 'period'], 'integer'],
 | 
				
			||||||
 | 
					            [['dateAdd', 'dateStart', 'dateEnd'], 'safe'],
 | 
				
			||||||
 | 
					            [['params'], 'string'],
 | 
				
			||||||
 | 
					            [['module', 'controller', 'type', 'name', 'status'], 'string', 'max' => 255],
 | 
				
			||||||
 | 
					            [['project'], 'string', 'max' => 50],
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @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 = MoleTask::find();
 | 
				
			||||||
 | 
					        // add conditions that should always apply here
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->load($params);
 | 
				
			||||||
 | 
					        $dataProvider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'query' => $query,
 | 
				
			||||||
 | 
					            'sort' => [
 | 
				
			||||||
 | 
					                'defaultOrder' => [
 | 
				
			||||||
 | 
					                    'id' => SORT_DESC
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        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;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $query->andFilterWhere([
 | 
				
			||||||
 | 
					            'id' => $this->id,
 | 
				
			||||||
 | 
					            'parentId' => $this->parentId,
 | 
				
			||||||
 | 
					            'isReady' => $this->isReady,
 | 
				
			||||||
 | 
					            'completed' => $this->completed,
 | 
				
			||||||
 | 
					            'priority' => $this->priority,
 | 
				
			||||||
 | 
					            'childsTotalCount' => $this->childsTotalCount,
 | 
				
			||||||
 | 
					            'childsCompleted' => $this->childsCompleted,
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $query->andFilterWhere(['like', 'params', $this->params])
 | 
				
			||||||
 | 
					            ->andFilterWhere(['like', 'controller', $this->controller])
 | 
				
			||||||
 | 
					            ->andFilterWhere(['like', 'module', $this->module])
 | 
				
			||||||
 | 
					            ->andFilterWhere(['like', 'type', $this->type])
 | 
				
			||||||
 | 
					            ->andFilterWhere(['like', 'name', $this->name])
 | 
				
			||||||
 | 
					            ->andFilterWhere(['like', 'status', $this->status])
 | 
				
			||||||
 | 
					            ->andFilterWhere(['like', 'project', $this->project]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $dataProvider;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										36
									
								
								views/default/_form.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								views/default/_form.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use yii\helpers\Html;
 | 
				
			||||||
 | 
					use yii\widgets\ActiveForm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* @var $this yii\web\View */
 | 
				
			||||||
 | 
					/* @var $model app\models\MailType */
 | 
				
			||||||
 | 
					/* @var $form yii\widgets\ActiveForm */
 | 
				
			||||||
 | 
					?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="mole-form">
 | 
				
			||||||
 | 
					    <?php $form = ActiveForm::begin(); ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <?= $form->field($model, 'project'); ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <?= $form->field($model, 'name'); ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <?= $form->field($model, 'dateAdd'); ?>
 | 
				
			||||||
 | 
					    <?= $form->field($model, 'dateStart'); ?>
 | 
				
			||||||
 | 
					    <?= $form->field($model, 'dateEnd'); ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <?= $form->field($model, 'module'); ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <?= $form->field($model, 'controller'); ?>
 | 
				
			||||||
 | 
					    <?= $form->field($model, 'params'); ?>
 | 
				
			||||||
 | 
					    <?= $form->field($model, 'period'); ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div class="form-group">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <?= Html::submitButton(Yii::t('mole', 'Save'), ['class' => 'btn btn-success']) ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <?php ActiveForm::end(); ?>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										30
									
								
								views/default/create.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								views/default/create.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use yii\helpers\Html;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* @var $this yii\web\View */
 | 
				
			||||||
 | 
					/* @var $model app\models\MailType */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$this->title = Yii::t('mole', 'Create Task');
 | 
				
			||||||
 | 
					$this->params['breadcrumbs'][] = ['label' => Yii::t('mole', 'Task List'), 'url' => ['index']];
 | 
				
			||||||
 | 
					$this->params['breadcrumbs'][] = $this->title;
 | 
				
			||||||
 | 
					?>
 | 
				
			||||||
 | 
					<div class="wrapper wrapper-content">
 | 
				
			||||||
 | 
						<div class="row">
 | 
				
			||||||
 | 
							<div class="col-lg-12">
 | 
				
			||||||
 | 
								<div class="tabs-container">
 | 
				
			||||||
 | 
									<div class="tab-content">
 | 
				
			||||||
 | 
										<div class="tab-pane active">
 | 
				
			||||||
 | 
											<div class="panel-body">
 | 
				
			||||||
 | 
												<?=
 | 
				
			||||||
 | 
												$this->render('_form', [
 | 
				
			||||||
 | 
													'model' => $model,
 | 
				
			||||||
 | 
												])
 | 
				
			||||||
 | 
												?>
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
									</div>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
							
								
								
									
										93
									
								
								views/default/index.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								views/default/index.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,93 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This file is part of the Dektrium project.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * (c) Dektrium project <http://github.com/dektrium>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * For the full copyright and license information, please view the LICENSE.md
 | 
				
			||||||
 | 
					 * file that was distributed with this source code.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use yii\grid\GridView;
 | 
				
			||||||
 | 
					use yii\helpers\Html;
 | 
				
			||||||
 | 
					use yii\helpers\Url;
 | 
				
			||||||
 | 
					use yii\web\View;
 | 
				
			||||||
 | 
					use yii\widgets\Pjax;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @var \yii\web\View $this
 | 
				
			||||||
 | 
					 * @var \yii\data\ActiveDataProvider $dataProvider
 | 
				
			||||||
 | 
					 * @var \dektrium\user\models\UserSearch $searchModel
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					$this->title = Yii::t('mole', 'Task List');
 | 
				
			||||||
 | 
					$this->params['breadcrumbs'][] = $this->title;
 | 
				
			||||||
 | 
					?>
 | 
				
			||||||
 | 
					<div class="wrapper wrapper-content">
 | 
				
			||||||
 | 
					    <div class="row">
 | 
				
			||||||
 | 
					        <div class="col-lg-12">
 | 
				
			||||||
 | 
					            <div class="tabs-container">
 | 
				
			||||||
 | 
					                <div class="tab-content">
 | 
				
			||||||
 | 
					                    <div class="tab-pane active">
 | 
				
			||||||
 | 
					                        <div class="panel-body">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <p>
 | 
				
			||||||
 | 
					                                <?= Html::a(Yii::t('mole', 'Create Task'), ['create'], ['class' => 'btn btn-success']) ?>
 | 
				
			||||||
 | 
					                            </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <?=
 | 
				
			||||||
 | 
					                            GridView::widget([
 | 
				
			||||||
 | 
					                                'dataProvider' => $dataProvider,
 | 
				
			||||||
 | 
					                                'filterModel' => $searchModel,
 | 
				
			||||||
 | 
					                                'layout' => "{items}\n{pager}",
 | 
				
			||||||
 | 
					                                'columns' => [
 | 
				
			||||||
 | 
					                                    'id',
 | 
				
			||||||
 | 
					                                    'project',
 | 
				
			||||||
 | 
					                                    'name',
 | 
				
			||||||
 | 
					                                    // 'parentId',
 | 
				
			||||||
 | 
					                                    'dateAdd:datetime',
 | 
				
			||||||
 | 
					                                    'dateStart:datetime',
 | 
				
			||||||
 | 
					                                    'dateEnd:datetime',
 | 
				
			||||||
 | 
					                                    //'module',
 | 
				
			||||||
 | 
					                                    'controller',
 | 
				
			||||||
 | 
					                                    // 'type',
 | 
				
			||||||
 | 
					                                    //'params',
 | 
				
			||||||
 | 
					                                    [
 | 
				
			||||||
 | 
					                                        'attribute' => 'isReady',
 | 
				
			||||||
 | 
					                                        'value' => function($model)
 | 
				
			||||||
 | 
					                                        {
 | 
				
			||||||
 | 
					                                            return $model->isReady ? Yii::t('mole', 'Yes') : Yii::t('mole', 'No');
 | 
				
			||||||
 | 
					                                        },
 | 
				
			||||||
 | 
					                                    //   'filter' => [0 => Yii::t('mole', 'No'), 1 => Yii::t('mole', 'Yes')]
 | 
				
			||||||
 | 
					                                    ],
 | 
				
			||||||
 | 
					                                    [
 | 
				
			||||||
 | 
					                                        'attribute' => 'completed',
 | 
				
			||||||
 | 
					                                        'value' => function($model)
 | 
				
			||||||
 | 
					                                        {
 | 
				
			||||||
 | 
					                                            return $model->completed ? Yii::t('mole', 'Yes') : Yii::t('mole', 'No');
 | 
				
			||||||
 | 
					                                        },
 | 
				
			||||||
 | 
					                                    //    'filter' => [0 => Yii::t('mole', 'No'), 1 => Yii::t('mole', 'Yes')]
 | 
				
			||||||
 | 
					                                    ],
 | 
				
			||||||
 | 
					                                    'priority',
 | 
				
			||||||
 | 
					                                    [
 | 
				
			||||||
 | 
					                                        'attribute' => 'period',
 | 
				
			||||||
 | 
					                                        'value' => function($model)
 | 
				
			||||||
 | 
					                                        {
 | 
				
			||||||
 | 
					                                            return $model->period > 0 ? $model->period   : Yii::t('mole', 'No');
 | 
				
			||||||
 | 
					                                        },
 | 
				
			||||||
 | 
					                                    ],
 | 
				
			||||||
 | 
					                                    //'childsTotalCount',
 | 
				
			||||||
 | 
					                                    //'childsCompleted',
 | 
				
			||||||
 | 
					                                    // 'status',
 | 
				
			||||||
 | 
					                                    [
 | 
				
			||||||
 | 
					                                        'class' => 'yii\grid\ActionColumn',
 | 
				
			||||||
 | 
					                                    ],
 | 
				
			||||||
 | 
					                                ],
 | 
				
			||||||
 | 
					                            ]);
 | 
				
			||||||
 | 
					                            ?>
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
							
								
								
									
										35
									
								
								views/default/update.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								views/default/update.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use yii\helpers\Html;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* @var $this yii\web\View */
 | 
				
			||||||
 | 
					/* @var $model app\models\MailType */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$this->title = Yii::t('mole', 'Update Task: {nameAttribute}', [
 | 
				
			||||||
 | 
							'nameAttribute' => $model->name,
 | 
				
			||||||
 | 
						]);
 | 
				
			||||||
 | 
					$this->params['breadcrumbs'][] = ['label' => Yii::t('mole', 'Task List'), 'url' => ['index']];
 | 
				
			||||||
 | 
					$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->id]];
 | 
				
			||||||
 | 
					$this->params['breadcrumbs'][] = Yii::t('mole', 'Update');
 | 
				
			||||||
 | 
					?>
 | 
				
			||||||
 | 
					<div class="wrapper wrapper-content">
 | 
				
			||||||
 | 
						<div class="row">
 | 
				
			||||||
 | 
							<div class="col-lg-12">
 | 
				
			||||||
 | 
								<div class="tabs-container">
 | 
				
			||||||
 | 
									<div class="tab-content">
 | 
				
			||||||
 | 
										<div class="tab-pane active">
 | 
				
			||||||
 | 
											<div class="panel-body">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
												<?=
 | 
				
			||||||
 | 
												$this->render('_form', [
 | 
				
			||||||
 | 
													'model' => $model,
 | 
				
			||||||
 | 
												])
 | 
				
			||||||
 | 
												?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
									</div>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
							
								
								
									
										92
									
								
								views/default/view.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								views/default/view.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,92 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use yii\helpers\Html;
 | 
				
			||||||
 | 
					use yii\widgets\DetailView;
 | 
				
			||||||
 | 
					use yii\grid\GridView;
 | 
				
			||||||
 | 
					use app\components\Helper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* @var $this yii\web\View */
 | 
				
			||||||
 | 
					/* @var $model app\models\MailType */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$this->title = $model->name;
 | 
				
			||||||
 | 
					$this->params['breadcrumbs'][] = ['label' => Yii::t('mole', 'Task List'), 'url' => ['index']];
 | 
				
			||||||
 | 
					$this->params['breadcrumbs'][] = $this->title;
 | 
				
			||||||
 | 
					?>
 | 
				
			||||||
 | 
					<div class="wrapper wrapper-content">
 | 
				
			||||||
 | 
					    <div class="row">
 | 
				
			||||||
 | 
					        <div class="col-lg-12">
 | 
				
			||||||
 | 
					            <div class="tabs-container">
 | 
				
			||||||
 | 
					                <div class="tab-content">
 | 
				
			||||||
 | 
					                    <div class="tab-pane active">
 | 
				
			||||||
 | 
					                        <div class="panel-body">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <p>
 | 
				
			||||||
 | 
					                                <?= Html::a(Yii::t('mole', 'Update'), ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
 | 
				
			||||||
 | 
					                                <?=
 | 
				
			||||||
 | 
					                                Html::a(Yii::t('mole', 'Delete'), ['delete', 'id' => $model->id], [
 | 
				
			||||||
 | 
					                                    'class' => 'btn btn-danger',
 | 
				
			||||||
 | 
					                                    'data' => [
 | 
				
			||||||
 | 
					                                        'confirm' => Yii::t('mole', 'Are you sure you want to delete this item?'),
 | 
				
			||||||
 | 
					                                        'method' => 'post',
 | 
				
			||||||
 | 
					                                    ],
 | 
				
			||||||
 | 
					                                ])
 | 
				
			||||||
 | 
					                                ?>
 | 
				
			||||||
 | 
					                            </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            <?=
 | 
				
			||||||
 | 
					                            DetailView::widget([
 | 
				
			||||||
 | 
					                                'model' => $model,
 | 
				
			||||||
 | 
					                                'attributes' => [
 | 
				
			||||||
 | 
					                                    'id',
 | 
				
			||||||
 | 
					                                    'project',
 | 
				
			||||||
 | 
					                                    'name',
 | 
				
			||||||
 | 
					                                    'parentId',
 | 
				
			||||||
 | 
					                                    'dateAdd:datetime',
 | 
				
			||||||
 | 
					                                    'dateStart:datetime',
 | 
				
			||||||
 | 
					                                    'dateEnd:datetime',
 | 
				
			||||||
 | 
					                                    'module',
 | 
				
			||||||
 | 
					                                    'controller',
 | 
				
			||||||
 | 
					                                    'type',
 | 
				
			||||||
 | 
					                                    [
 | 
				
			||||||
 | 
					                                        'attribute' => 'params',
 | 
				
			||||||
 | 
					                                        'value' => function($model)
 | 
				
			||||||
 | 
					                                        {
 | 
				
			||||||
 | 
					                                            return print_r(json_decode($model->params, true), true);
 | 
				
			||||||
 | 
					                                        },
 | 
				
			||||||
 | 
					                                    ],
 | 
				
			||||||
 | 
					                                    [
 | 
				
			||||||
 | 
					                                        'attribute' => 'isReady',
 | 
				
			||||||
 | 
					                                        'value' => function($model)
 | 
				
			||||||
 | 
					                                        {
 | 
				
			||||||
 | 
					                                            return $model->isReady ? Yii::t('mole', 'Yes') : Yii::t('mole', 'No');
 | 
				
			||||||
 | 
					                                        },
 | 
				
			||||||
 | 
					                                    ],
 | 
				
			||||||
 | 
					                                    [
 | 
				
			||||||
 | 
					                                        'attribute' => 'completed',
 | 
				
			||||||
 | 
					                                        'value' => function($model)
 | 
				
			||||||
 | 
					                                        {
 | 
				
			||||||
 | 
					                                            return $model->completed ? Yii::t('mole', 'Yes') : Yii::t('mole', 'No');
 | 
				
			||||||
 | 
					                                        },
 | 
				
			||||||
 | 
					                                    ],
 | 
				
			||||||
 | 
					                                    'priority',
 | 
				
			||||||
 | 
					                                    'status',
 | 
				
			||||||
 | 
					                                    [
 | 
				
			||||||
 | 
					                                        'attribute' => 'period',
 | 
				
			||||||
 | 
					                                        'value' => function($model)
 | 
				
			||||||
 | 
					                                        {
 | 
				
			||||||
 | 
					                                            return $model->period > 0 ? $model->period   : Yii::t('mole', 'No');
 | 
				
			||||||
 | 
					                                        },
 | 
				
			||||||
 | 
					                                    ],
 | 
				
			||||||
 | 
					                                ],
 | 
				
			||||||
 | 
					                            ])
 | 
				
			||||||
 | 
					                            ?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user