Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
61.90% |
13 / 21 |
TaskListRoot | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
9.71 | |
61.90% |
13 / 21 |
moveItemIndex | |
0.00% |
0 / 1 |
9.71 | |
61.90% |
13 / 21 |
<?php | |
namespace humhub\modules\tasks\models\lists; | |
use humhub\modules\content\components\ContentContainerActiveRecord; | |
use humhub\modules\tasks\models\Sortable; | |
use yii\base\Component; | |
/** | |
* Class TaskListRoot | |
* @todo change base class back to BaseObject after v1.3 stable | |
* @package humhub\modules\tasks\models\lists | |
*/ | |
class TaskListRoot extends Component implements Sortable | |
{ | |
/** | |
* @var ContentContainerActiveRecord | |
*/ | |
public $contentContainer; | |
public function moveItemIndex($tskListId, $newIndex) | |
{ | |
$testId = null; | |
$transaction = TaskList::getDb()->beginTransaction(); | |
try { | |
$taskList = TaskList::findOne(['id' => $tskListId]); | |
if($taskList->addition->sort_order === $newIndex) { | |
return; | |
} | |
$taskLists = TaskList::findOverviewLists($this->contentContainer)->andWhere(['!=', 'content_tag.id', $taskList->id])->all(); | |
// make sure no invalid index is given | |
if($newIndex < 0) { | |
$newIndex = 0; | |
} else if($newIndex >= count($taskLists)) { | |
$newIndex = count($taskLists) -1; | |
} | |
array_splice($taskLists, $newIndex, 0, [$taskList]); | |
foreach ($taskLists as $index => $item) { | |
$item->addition->updateAttributes(['sort_order' => $index]); | |
} | |
$transaction->commit(); | |
} catch (\Exception $e) { | |
$transaction->rollBack(); | |
throw $e; | |
} catch (\Throwable $e) { | |
$transaction->rollBack(); | |
throw $e; | |
} | |
} | |
} |