diff --git a/module/action/model.php b/module/action/model.php index 1af0bcd722..aac9566abb 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -209,7 +209,7 @@ class actionModel extends model { $record = (array)$record; $record['product'] = isset($record['product']) ? ',' . $record['product'] . ',' : ',0,'; - if(!isset($record['project'])) $record['project'] = 0; + if(!isset($record['project'])) $record['project'] = 0; if(!isset($record['execution'])) $record['execution'] = 0; return $record; } diff --git a/module/block/control.php b/module/block/control.php index ac087c5e62..b15959a9c6 100644 --- a/module/block/control.php +++ b/module/block/control.php @@ -679,6 +679,7 @@ class block extends control ->leftJoin(TABLE_PROJECTPRODUCT)->alias('t5')->on('t1.execution=t5.project') ->where('t1.deleted')->eq('0') ->beginIF(!$this->app->user->admin)->andWhere('t1.product')->in($this->app->user->view->products)->fi() + ->beginIF(!$this->app->user->admin)->andWhere('t1.execution')->in($this->app->user->view->sprints)->fi() ->andWhere('t1.product = t5.product') ->beginIF($this->params->type != 'all')->andWhere('t1.status')->eq($this->params->type)->fi() ->orderBy('t1.id desc') diff --git a/module/build/config.php b/module/build/config.php index 31d0a54b6f..c2522ab8cb 100644 --- a/module/build/config.php +++ b/module/build/config.php @@ -2,7 +2,7 @@ $config->build = new stdclass(); $config->build->create = new stdclass(); $config->build->edit = new stdclass(); -$config->build->create->requiredFields = 'product,name,builder,date'; +$config->build->create->requiredFields = 'product,execution,name,builder,date'; $config->build->edit->requiredFields = 'product,execution,name,builder,date'; $config->build->editor = new stdclass(); diff --git a/module/build/control.php b/module/build/control.php index 1b1b113b51..780a6f25a1 100644 --- a/module/build/control.php +++ b/module/build/control.php @@ -27,6 +27,10 @@ class build extends control if(!empty($_POST)) { + $executionID = empty($executionID) ? $this->post->execution : $executionID; + if(empty($executionID)) dao::$errors['execution'] = $this->lang->build->emptyExecution; + if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); + $buildID = $this->build->create($executionID); if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); $this->loadModel('action')->create('build', $buildID, 'opened'); @@ -42,7 +46,7 @@ class build extends control { $this->loadModel('project')->setMenu($projectID); $executions = $this->execution->getPairs($projectID); - $executionID = $executionID == 0 ? key($executions) : $executionID; + $executionID = empty($executionID) ? key($executions) : $executionID; $this->session->set('project', $projectID); } elseif($this->app->openApp == 'execution') @@ -113,7 +117,7 @@ class build extends control } elseif($this->app->openApp == 'exectuion') { - $this->execution->setMenu($this->execution->getPairs($build->project), $build->execution); + $this->execution->setMenu($build->execution); } /* Get stories and bugs. */ @@ -410,10 +414,12 @@ class build extends control die(js::locate(inlink('view', "buildID=$buildID&type=story"), 'parent')); } - $this->session->set('storyList', inlink('view', "buildID=$buildID&type=story&link=true¶m=" . helper::safe64Encode("&browseType=$browseType&queryID=$param"))); + $this->session->set('storyList', inlink('view', "buildID=$buildID&type=story&link=true¶m=" . helper::safe64Encode("&browseType=$browseType&queryID=$param")), 'product'); + $build = $this->build->getById($buildID); $product = $this->loadModel('product')->getById($build->product); - $this->loadModel('execution')->setMenu($this->execution->getPairs($build->project), $build->execution); + + $this->loadModel('execution')->setMenu($build->execution); $this->loadModel('story'); $this->loadModel('tree'); $this->loadModel('product'); @@ -429,9 +435,10 @@ class build extends control $this->config->product->search['actionURL'] = $this->createLink('build', 'view', "buildID=$buildID&type=story&link=true¶m=" . helper::safe64Encode("&browseType=bySearch&queryID=myQueryID")); $this->config->product->search['queryID'] = $queryID; $this->config->product->search['style'] = 'simple'; - $this->config->product->search['params']['plan']['values'] = $this->loadModel('productplan')->getForProducts(array($build->product => $build->product)); - $this->config->product->search['params']['module']['values'] = $this->tree->getOptionMenu($build->product, $viewType = 'story', $startModuleID = 0); + $this->config->product->search['params']['plan']['values'] = $this->loadModel('productplan')->getForProducts(array($build->product => $build->product)); + $this->config->product->search['params']['module']['values'] = $this->tree->getOptionMenu($build->product, 'story', 0); $this->config->product->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $this->lang->story->statusList); + if($product->type == 'normal') { unset($this->config->product->search['fields']['branch']); diff --git a/module/build/js/view.js b/module/build/js/view.js index 9112ee4883..234d532735 100644 --- a/module/build/js/view.js +++ b/module/build/js/view.js @@ -1,7 +1,7 @@ function showLink(buildID, type, param) { var method = type == 'story' ? 'linkStory' : 'linkBug'; - loadURL(createLink('build', method, 'buildID=' + buildID + param), type); + loadURL(createLink('build', method, 'buildID=' + buildID), type); $('.actions').find("a[href*='" + type + "']").addClass('hidden'); } diff --git a/module/build/lang/zh-cn.php b/module/build/lang/zh-cn.php index 82ae8b7752..193473d840 100644 --- a/module/build/lang/zh-cn.php +++ b/module/build/lang/zh-cn.php @@ -27,26 +27,27 @@ $lang->build->confirmUnlinkBug = "您确认移除该Bug吗?"; $lang->build->basicInfo = '基本信息'; -$lang->build->id = 'ID'; -$lang->build->product = $lang->productCommon; -$lang->build->branch = '平台/分支'; -$lang->build->execution = '所属' . $lang->executionCommon; -$lang->build->name = '名称编号'; -$lang->build->date = '打包日期'; -$lang->build->builder = '构建者'; -$lang->build->scmPath = '源代码地址'; -$lang->build->filePath = '下载地址'; -$lang->build->desc = '描述'; -$lang->build->files = '上传发行包'; -$lang->build->last = '上个版本'; -$lang->build->packageType = '包类型'; -$lang->build->unlinkStory = "移除{$lang->SRCommon}"; -$lang->build->unlinkBug = '移除Bug'; -$lang->build->stories = "完成的{$lang->SRCommon}"; -$lang->build->bugs = '解决的Bug'; -$lang->build->generatedBugs = '产生的Bug'; -$lang->build->noProduct = " 该{$lang->executionCommon}没有关联{$lang->productCommon},无法创建版本,请先关联{$lang->productCommon}"; -$lang->build->noBuild = '暂时没有版本。'; +$lang->build->id = 'ID'; +$lang->build->product = $lang->productCommon; +$lang->build->branch = '平台/分支'; +$lang->build->execution = '所属' . $lang->executionCommon; +$lang->build->name = '名称编号'; +$lang->build->date = '打包日期'; +$lang->build->builder = '构建者'; +$lang->build->scmPath = '源代码地址'; +$lang->build->filePath = '下载地址'; +$lang->build->desc = '描述'; +$lang->build->files = '上传发行包'; +$lang->build->last = '上个版本'; +$lang->build->packageType = '包类型'; +$lang->build->unlinkStory = "移除{$lang->SRCommon}"; +$lang->build->unlinkBug = '移除Bug'; +$lang->build->stories = "完成的{$lang->SRCommon}"; +$lang->build->bugs = '解决的Bug'; +$lang->build->generatedBugs = '产生的Bug'; +$lang->build->noProduct = " 该{$lang->executionCommon}没有关联{$lang->productCommon},无法创建版本,请先关联{$lang->productCommon}"; +$lang->build->noBuild = '暂时没有版本。'; +$lang->build->emptyExecution = $lang->executionCommon . '不能为空。'; $lang->build->notice = new stdclass(); $lang->build->notice->changeProduct = "已经关联{$lang->SRCommon}、Bug或提交测试单的版本,不能修改其所属{$lang->productCommon}"; diff --git a/module/build/model.php b/module/build/model.php index 9324f02051..6523b4c179 100644 --- a/module/build/model.php +++ b/module/build/model.php @@ -352,8 +352,10 @@ class buildModel extends model $build->stories = ''; $build->bugs = ''; + $execution = $this->loadModel('execution')->getByID($executionID); + $build = fixer::input('post') - ->setDefault('project', $this->session->project) + ->setDefault('project', $execution->project) ->setDefault('product', 0) ->setDefault('branch', 0) ->cleanInt('product,branch') @@ -361,6 +363,7 @@ class buildModel extends model ->stripTags($this->config->build->editor->create['id'], $this->config->allowedTags) ->remove('resolvedBy,allchecker,files,labels,uid') ->get(); +a($_POST);die(); $build = $this->loadModel('file')->processImgURL($build, $this->config->build->editor->create['id'], $this->post->uid); $this->dao->insert(TABLE_BUILD)->data($build) @@ -368,6 +371,7 @@ class buildModel extends model ->batchCheck($this->config->build->create->requiredFields, 'notempty') ->check('name', 'unique', "product = {$build->product} AND branch = {$build->branch} AND deleted = '0'") ->exec(); + if(!dao::isError()) { $buildID = $this->dao->lastInsertID(); diff --git a/module/build/view/linkstory.html.php b/module/build/view/linkstory.html.php index 24c338886c..faef7d03cf 100644 --- a/module/build/view/linkstory.html.php +++ b/module/build/view/linkstory.html.php @@ -38,6 +38,7 @@
+ app->openApp == 'execution' ? $build->execution : $build->project;?>