diff --git a/module/bug/control.php b/module/bug/control.php index 554f12496e..94d274d01d 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -1398,4 +1398,19 @@ class bug extends control $this->display(); } + + /** + * Ajax get bug by ID. + * + * @param int $bugID + * @access public + * @return void + */ + public function ajaxGetByID($bugID) + { + $bug = $this->dao->select('*')->from(TABLE_BUG)->where('id')->eq($bugID)->fetch(); + $realname = $this->dao->select('*')->from(TABLE_USER)->where('account')->eq($bug->assignedTo)->fetch('realname'); + $bug->assignedTo = $realname ? $realname : ($bug->assignedTo == 'closed' ? 'Closed' : $bug->assignedTo); + die(json_encode($bug)); + } } diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 60bf9f4314..70412217c6 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -197,7 +197,7 @@ $lang->project = new stdclass(); $lang->project->menu = new stdclass(); $lang->project->menu->list = '%s'; -$lang->project->menu->task = array('link' => '任务|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug'); +$lang->project->menu->task = array('link' => '任务|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug,kanban,printkanban'); $lang->project->menu->story = array('link' => '需求|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory'); $lang->project->menu->bug = 'Bug|project|bug|projectID=%s'; $lang->project->menu->dynamic = '动态|project|dynamic|projectID=%s'; diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 8344aa28eb..7fad9f5af4 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -294,6 +294,8 @@ $lang->resource->project->linkStory = 'linkStory'; $lang->resource->project->unlinkStory = 'unlinkStory'; $lang->resource->project->batchUnlinkStory = 'batchUnlinkStory'; $lang->resource->project->updateOrder = 'updateOrder'; +$lang->resource->project->kanban = 'kanban'; +$lang->resource->project->printKanban = 'printKanban'; $lang->project->methodOrder[0] = 'index'; $lang->project->methodOrder[5] = 'view'; @@ -329,6 +331,8 @@ $lang->project->methodOrder[155] = 'linkStory'; $lang->project->methodOrder[160] = 'unlinkStory'; $lang->project->methodOrder[165] = 'batchUnlinkStory'; $lang->project->methodOrder[170] = 'updateOrder'; +$lang->project->methodOrder[175] = 'kanban'; +$lang->project->methodOrder[180] = 'printKanban'; /* Task. */ $lang->resource->task = new stdclass(); diff --git a/module/story/model.php b/module/story/model.php index 5515ff09a1..327d544a96 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -81,6 +81,21 @@ class storyModel extends model ->fetchAll('id'); } + /** + * Get story specs. + * + * @param array $storyIdList + * @access public + * @return array + */ + public function getStorySpecs($storyIdList) + { + return $this->dao->select('story,spec,verify')->from(TABLE_STORYSPEC) + ->where('story')->in($storyIdList) + ->orderBy('version') + ->fetchAll('story'); + } + /** * Get affected things. * diff --git a/module/task/control.php b/module/task/control.php index ab2b8b258b..1d99778dd5 100644 --- a/module/task/control.php +++ b/module/task/control.php @@ -1165,4 +1165,25 @@ class task extends control $this->display(); } + + /** + * Ajax get task by ID. + * + * @param int $taskID + * @access public + * @return void + */ + public function ajaxGetByID($taskID) + { + $task = $this->dao->select('*')->from(TABLE_TASK)->where('id')->eq($taskID)->fetch(); + $realname = $this->dao->select('*')->from(TABLE_USER)->where('account')->eq($task->assignedTo)->fetch('realname'); + $task->assignedTo = $realname ? $realname : ($task->assignedTo == 'closed' ? 'Closed' : $task->assignedTo); + if($task->story) + { + $this->app->loadLang('story'); + $stage = $this->dao->select('*')->from(TABLE_STORY)->where('id')->eq($task->story)->andWhere('version')->eq($task->storyVersion)->fetch('stage'); + $task->storyStage = zget($this->lang->story->stageList, $stage); + } + die(json_encode($task)); + } } diff --git a/module/task/js/create.js b/module/task/js/create.js index 11c1445832..e065ff0e55 100644 --- a/module/task/js/create.js +++ b/module/task/js/create.js @@ -146,4 +146,27 @@ $(document).ready(function() }; ajustFilebox(); $(window).resize(ajustFilebox); + + /* First unbind ajaxForm for form.*/ + $("form[data-type='ajax']").unbind('submit'); + setForm(); + + /* Bind ajaxForm for form again. */ + $.ajaxForm("form[data-type='ajax']", function(response) + { + if(response.message) alert(response.message); + if(response.locate) + { + if(response.locate == 'reload' && response.target == 'parent') + { + parent.$.cookie('selfClose', 1); + parent.$.closeModal(null, 'this'); + } + else + { + location.href = response.locate; + } + } + return false; + }); }); diff --git a/module/task/view/activate.html.php b/module/task/view/activate.html.php index 4805cdaa00..5ae988dbf0 100644 --- a/module/task/view/activate.html.php +++ b/module/task/view/activate.html.php @@ -42,7 +42,7 @@