* Refactor kanban::create func.

This commit is contained in:
sunguangming
2023-12-05 11:02:17 +08:00
parent c2fdea3e6d
commit b28f97995c
+12 -40
View File
@@ -96,7 +96,7 @@ class kanbanModel extends model
* @param object $kanban
* @param object $region
* @param int $copyRegionID
* @param string $from kanban|execution
* @param string $from kanban|execution
* @param string $param
* @access public
* @return int
@@ -373,7 +373,7 @@ class kanbanModel extends model
/* Add kanban cell. */
$lanes = $this->dao->select('id,type')->from(TABLE_KANBANLANE)->where('`group`')->eq($column->group)->fetchPairs();
$kanbanID = $this->dao->select('kanban')->from(TABLE_KANBANREGION)->where('id')->eq($regionID)->fetch('kanban');
foreach($lanes as $laneID => $laneType) $this->addKanbanCell($kanbanID, $laneID, $columnID, $laneType);
foreach($lanes as $laneID => $laneType) $this->addKanbanCell((int)$kanbanID, $laneID, $columnID, $laneType);
return $columnID;
}
@@ -2432,32 +2432,17 @@ class kanbanModel extends model
/*
* Create a kanban.
*
* @param object $kanban
* @access public
* @return int
*/
public function create()
public function create($kanban)
{
$account = $this->app->user->account;
$kanban = fixer::input('post')
->setDefault('createdBy', $account)
->setDefault('createdDate', helper::now())
->setDefault('owner', '')
->setDefault('team', '')
->setDefault('whitelist', '')
->setDefault('displayCards', 0)
->setIF(!$this->post->fluidBoard, 'minColWidth', 0)
->setIF($this->post->import == 'off', 'object', '')
->cleanINT('space')
->join('whitelist', ',')
->join('team', ',')
->trim('name')
->stripTags($this->config->kanban->editor->create['id'], $this->config->allowedTags)
->remove('contactListMenu,type,import,importObjectList,uid,copyKanbanID,copyRegion')
->get();
if($this->post->import == 'on') $kanban->object = implode(',', $this->post->importObjectList);
if(strpos(",{$kanban->team},", ",$account,") === false) $kanban->team .= ",$account";
if(strpos(",{$kanban->team},", ",$account,") === false) $kanban->team .= ",$account";
if(strpos(",{$kanban->team},", ",$kanban->owner,") === false) $kanban->team .= ",$kanban->owner";
if(!empty($kanban->space))
@@ -2465,41 +2450,28 @@ class kanbanModel extends model
$maxOrder = $this->dao->select('MAX(`order`) AS maxOrder')->from(TABLE_KANBAN)
->where('space')->eq($kanban->space)
->fetch('maxOrder');
$kanban->order = $maxOrder ? $maxOrder+ 1 : 1;
$kanban->order = $maxOrder ? $maxOrder + 1 : 1;
$space = $this->getSpaceById($kanban->space);
if($space->type == 'private') $kanban->owner = $account;
}
$this->dao->insert(TABLE_KANBAN)->data($kanban)
->autoCheck()
->batchCheck($this->config->kanban->create->requiredFields, 'notempty')
->checkIF(!$kanban->fluidBoard, 'colWidth', 'ge', $this->config->minColWidth)
->batchCheckIF($kanban->fluidBoard, 'minColWidth', 'ge', $this->config->minColWidth)
->checkIF($kanban->fluidBoard && $kanban->minColWidth >= $this->config->minColWidth, 'maxColWidth', 'gt', $kanban->minColWidth)
->check('name', 'unique', "space = {$kanban->space}")
->exec();
$this->kanbanTao->createKanban($kanban);
if(!dao::isError())
{
$kanbanID = $this->dao->lastInsertID();
$kanban = $this->getByID($kanbanID);
if($this->post->copyRegion)
{
$this->copyRegions($kanban, $this->post->copyKanbanID);
}
else
{
$this->createDefaultRegion($kanban);
}
$this->loadModel('action')->create('kanban', $kanbanID, 'created');
$this->loadModel('file')->saveUpload('kanban', $kanbanID);
$this->file->updateObjectID($this->post->uid, $kanbanID, 'kanban');
if(isset($_POST['team']) or isset($_POST['whitelist']))
$this->post->copyRegion ? $this->copyRegions($kanban, $this->post->copyKanbanID): $this->createDefaultRegion($kanban);
if(!empty($kanban->team) or !empty($kanban->whitelist))
{
$type = isset($_POST['team']) ? 'team' : 'whitelist';
$type = !empty($kanban->team) ? 'team' : 'whitelist';
$kanbanMembers = empty($kanban->{$type}) ? array() : explode(',', $kanban->{$type});
$this->addSpaceMembers($kanban->space, $type, $kanbanMembers);
}