diff --git a/module/kanban/config.php b/module/kanban/config.php index 92d0a3b95f..b5c1e39594 100644 --- a/module/kanban/config.php +++ b/module/kanban/config.php @@ -15,8 +15,8 @@ $config->kanban->edit = new stdclass(); $config->kanban->createspace = new stdclass(); $config->kanban->editspace = new stdclass(); $config->kanban->createcard = new stdclass(); - $config->kanban->editcard = new stdclass(); +$config->kanban->editregion = new stdclass(); $config->kanban->setwip->requiredFields = 'limit'; $config->kanban->setlane->requiredFields = 'name,type'; @@ -26,8 +26,8 @@ $config->kanban->edit->requiredFields = 'space,name'; $config->kanban->createspace->requiredFields = 'name,owner'; $config->kanban->editspace->requiredFields = 'name,owner'; $config->kanban->createcard->requiredFields = 'name'; - -$config->kanban->editcard->requiredFields = 'name'; +$config->kanban->editcard->requiredFields = 'name'; +$config->kanban->editregion->requiredFields = 'name'; $config->kanban->editor = new stdclass(); $config->kanban->editor->create = array('id' => 'desc', 'tools' => 'simpleTools'); diff --git a/module/kanban/control.php b/module/kanban/control.php index 3cd36729f2..5106597aba 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -287,6 +287,33 @@ class kanban extends control } } + /** + * Edit a region + * + * @param int $regionID + * @access public + * @return void + */ + public function editRegion($regionID = 0) + { + $this->loadModel('action'); + if(!empty($_POST)) + { + $changes = $this->kanban->updateRegion($regionID); + + if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + + $actionID = $this->action->create('kanbanregion', $regionID, 'edited'); + $this->action->logHistory($actionID, $changes); + + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'parent')); + } + + $this->view->region = $this->kanban->getRegionByID($regionID); + + $this->display(); + } + /** * Delete a region * diff --git a/module/kanban/lang/en.php b/module/kanban/lang/en.php index 588d8c482b..dbc3d84e56 100644 --- a/module/kanban/lang/en.php +++ b/module/kanban/lang/en.php @@ -223,7 +223,7 @@ $lang->kanbanlane->modeList['sameAsOther'] = 'Use the same Kanban column as othe $lang->kanbanlane->modeList['independent'] = 'Independent Kanban column is adopted'; $lang->kanbanregion = new stdclass(); -$lang->kanbanregion->name = 'Kanban Region'; +$lang->kanbanregion->name = 'Region Name'; $lang->kanbanregion->default = 'Default Region'; $lang->kanbancard = new stdclass(); diff --git a/module/kanban/lang/zh-cn.php b/module/kanban/lang/zh-cn.php index 41993cfdc0..627835e15f 100644 --- a/module/kanban/lang/zh-cn.php +++ b/module/kanban/lang/zh-cn.php @@ -223,7 +223,7 @@ $lang->kanbanlane->modeList['sameAsOther'] = '与其他泳道使用相同看板 $lang->kanbanlane->modeList['independent'] = '采用独立的看板列'; $lang->kanbanregion = new stdclass(); -$lang->kanbanregion->name = '看板区域'; +$lang->kanbanregion->name = '区域名称'; $lang->kanbanregion->default = '默认区域'; $lang->kanbancard = new stdclass(); diff --git a/module/kanban/model.php b/module/kanban/model.php index 4aca84d049..0ac54e66b1 100644 --- a/module/kanban/model.php +++ b/module/kanban/model.php @@ -437,6 +437,18 @@ class kanbanModel extends model return $kanbanData; } + /** + * Get region by id. + * + * @param int $regionID + * @access public + * @return array + */ + public function getRegionById($regionID) + { + return $this->dao->findById($regionID)->from(TABLE_KANBANREGION)->fetch(); + } + /** * Get ordered region pairs. * @@ -1286,6 +1298,34 @@ class kanbanModel extends model } } + /** + * Update a region. + * + * @param int $regionID + * @access public + * @return array + */ + public function updateRegion($regionID) + { + $region = fixer::input('post') + ->setDefault('lastEditedBy', $this->app->user->account) + ->setDefault('lastEditedDate', helper::now()) + ->trim('name') + ->get(); + $oldRegion = $this->getRegionById($regionID); + + $this->dao->update(TABLE_KANBANREGION)->data($region) + ->autoCheck() + ->batchcheck($this->config->kanban->editregion->requiredFields, 'notempty') + ->where('id')->eq($regionID) + ->exec(); + + if(dao::isError()) return; + + $changes = common::createChanges($oldRegion, $region); + return $changes; + } + /** * Update kanban lane. * diff --git a/module/kanban/view/editregion.html.php b/module/kanban/view/editregion.html.php new file mode 100644 index 0000000000..681e22ca34 --- /dev/null +++ b/module/kanban/view/editregion.html.php @@ -0,0 +1,38 @@ + + * @package kanban + * @version $Id: editregion.html.php 935 2021-10-26 16:24:24Z liumengyi@easycorp.ltd $ + * @link https://www.zentao.net + */ +?> + +