%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/report/lib/visualconstructor/controller/ |
Current File : /home/bitrix/www/bitrix/modules/report/lib/visualconstructor/controller/row.php |
<?php namespace Bitrix\Report\VisualConstructor\Controller; use Bitrix\Report\VisualConstructor\Entity\DashboardRow; use Bitrix\Report\VisualConstructor\Helper\Util; use Bitrix\Report\VisualConstructor\Helper\Dashboard as DashboardHelper; use Bitrix\Report\VisualConstructor\Internal\Error\Error; /** * Class Row * @package Bitrix\Report\VisualConstructor\Controller */ class Row extends Base { /** * Add row to board. * * @param array $params Parameters for adding row to board. * @return array|bool */ public function addAction($params) { $dashboardForUser = DashboardHelper::getDashboardByKeyForCurrentUser($params['boardKey']); if ($dashboardForUser) { $row = new DashboardRow(); $row->setLayoutMap($params['layoutMap']); $row->setGId(Util::generateUserUniqueId()); $row->setBoardId($params['boardId']); $row->setWeight(0); $dashboardForUser->addRows($row); $dashboardForUser->save(); return array('id' => $row->getGId()); } else { $this->adderror(new Error('No dashboard for current user')); return false; } } /** * Adjust rows weights. for saving rows sorting. * * @param string $boardKey Board key. * @param array $rows Row parameters like [gid => [weight => 1]]. * @return array|bool */ public function adjustWeightsAction($boardKey, $rows) { $dashboardForUser = DashboardHelper::getDashboardByKeyForCurrentUser($boardKey); if ($dashboardForUser) { $dashboardForUser->loadAttribute('rows'); $savedRows = $dashboardForUser->getRows(); if ($savedRows) { foreach ($savedRows as $row) { if (isset($rows[$row->getGId()])) { $row->setWeight($rows[$row->getGId()]['weight']); } } } $dashboardForUser->save(); return true; } else { $this->adderror(new Error('No dashboard for current user')); return false; } } /** * Delete row action. * * @param array $params Parameters like [boardId => 'some_board_id', rowId => 'some_sow_gid']. * @return int|bool */ public function deleteAction($params) { $boardKey = $params['boardId']; $rowId = $params['rowId']; $dashboardForUser = DashboardHelper::getDashboardByKeyForCurrentUser($boardKey); if ($dashboardForUser) { $row = DashboardRow::getCurrentUserRowByGId($rowId); if ($row) { return $row->delete(); } else { $this->adderror(new Error('No Row with this id')); return false; } } else { $this->adderror(new Error('No dashboard for current user')); return false; } } }