%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/tasks/models/checklist/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/tasks/models/checklist/TaskCheckList.php |
<?php namespace humhub\modules\tasks\models\checklist; use Yii; use yii\base\Component; use humhub\modules\tasks\models\Sortable; use humhub\modules\tasks\models\Task; /** * Class TaskCheckList * * @todo change base class back to BaseObject after v1.3 stable * @package humhub\modules\tasks\models\checklist */ class TaskCheckList extends Component implements Sortable { /** * @var Task */ public $task; /** * Resets items * * @throws \yii\db\Exception */ public function resetItems() { TaskItem::updateAll(['completed' => 0], ['task_id' => $this->task->id]); } public function checkAll() { TaskItem::updateAll(['completed' => 1], ['task_id' => $this->task->id]); } public function moveItemIndex($itemId, $newIndex) { $moveItem = TaskItem::findOne(['id' => $itemId]); $items = $this->task->items; // make sure no invalid index is given if($moveItem->sort_order === $newIndex) { return; } else if($newIndex < 0) { $newIndex = 0; } else if($newIndex >= count($items)) { $newIndex = count($items) -1; } array_splice($items, $moveItem->sort_order, 1); array_splice($items, $newIndex, 0, [$moveItem]); foreach ($items as $index => $item) { $item->updateAttributes(['sort_order' => $index]); } $this->task->refresh(); } public function afterSave($insert) { if(!$insert) { $this->updateItems(); } } public function updateItems() { if (!isset($this->task->editItems)) { return; } foreach ($this->task->items as $item) { /** @var $item TaskItem */ if (!array_key_exists($item->id, $this->task->editItems)) { $item->delete(); } else if ($item->title !== $this->task->editItems[$item->id]) { $item->title = $this->task->editItems[$item->id]; $item->update(); } } } public function canCheckItem($user = null) { return $this->task->isTaskResponsible($user) || $this->task->isTaskAssigned($user) || $this->task->canProcess($user); } }