From e2e794c27f5a783418794e276fbc6e3dad517e98 Mon Sep 17 00:00:00 2001 From: liumengyi Date: Thu, 20 Jan 2022 14:49:16 +0800 Subject: [PATCH] * Finish task #48011. --- module/execution/js/kanban.js | 4 ++-- module/kanban/control.php | 23 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/module/execution/js/kanban.js b/module/execution/js/kanban.js index 3be5ff584c..bd1921ef93 100644 --- a/module/execution/js/kanban.js +++ b/module/execution/js/kanban.js @@ -189,8 +189,8 @@ function createColumnMenu(options) if(!privs.length) return []; var items = []; - if(privs.includes('setColumn')) items.push({label: kanbanLang.editColumn, icon: 'edit', url: createLink('kanban', 'setColumn', 'columnID=' + column.id, '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal'}}); - if(privs.includes('setWIP')) items.push({label: kanbanLang.setWIP, icon: 'alert', url: createLink('kanban', 'setWIP', 'columnID=' + column.id), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width' : '500px'}}); + if(privs.includes('setColumn')) items.push({label: kanbanLang.editColumn, icon: 'edit', url: createLink('kanban', 'setColumn', 'columnID=' + column.id + '&executionID=' + executionID + '&from=RDKanban', '', 'true'), className: 'iframe', attrs: {'data-toggle': 'modal'}}); + if(privs.includes('setWIP')) items.push({label: kanbanLang.setWIP, icon: 'alert', url: createLink('kanban', 'setWIP', 'columnID=' + column.id + '&executionID=' + executionID + '&from=RDKanban','' ,'true'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width' : '500px'}}); var bounds = options.$trigger[0].getBoundingClientRect(); items.$options = {x: bounds.right, y: bounds.top}; diff --git a/module/kanban/control.php b/module/kanban/control.php index e6a891c3c0..0e2ce2cccd 100644 --- a/module/kanban/control.php +++ b/module/kanban/control.php @@ -923,18 +923,29 @@ class kanban extends control */ public function setWIP($columnID, $executionID = 0, $from = 'kanban') { + $column = $this->kanban->getColumnById($columnID); if($_POST) { $this->kanban->setWIP($columnID); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); $this->loadModel('action')->create('kanbancolumn', $columnID, 'Edited', '', $executionID); + + if($from == 'RDKanban') + { + if(dao::isError()) return $this->sendError(dao::getError()); + $regionID = $column->region; + $kanbanData = $this->loadModel('kanban')->getRDKanban($executionID, 'all', 'id_desc', $regionID); + $kanbanData = json_encode($kanbanData); + + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'callback' => "parent.updateKanban($kanbanData, $regionID)")); + } + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'parent')); } $this->app->loadLang('story'); - $column = $this->kanban->getColumnById($columnID); if(!$column) die(js::error($this->lang->notFound) . js::locate($this->createLink('execution', 'kanban', "executionID=$executionID"))); $title = isset($column->parentName) ? $column->parentName . '/' . $column->name : $column->name; @@ -1001,6 +1012,16 @@ class kanban extends control $this->action->logHistory($actionID, $changes); } + if($from == 'RDKanban') + { + if(dao::isError()) return $this->sendError(dao::getError()); + $regionID = $column->region; + $kanbanData = $this->loadModel('kanban')->getRDKanban($executionID, 'all', 'id_desc', $regionID); + $kanbanData = json_encode($kanbanData); + + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'callback' => "parent.updateKanban($kanbanData, $regionID)")); + } + return $this->sendSuccess(array('locate' => 'parent')); }