diff --git a/module/job/control.php b/module/job/control.php index 477133b475..f433b00804 100644 --- a/module/job/control.php +++ b/module/job/control.php @@ -64,7 +64,30 @@ class job extends control if($_POST) { $jobID = $this->job->create(); - if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + if(dao::isError()) + { + $errors = dao::getError(); + if($this->post->engine == 'gitlab' and isset($errors['server'])) + { + $errors['gitlabRepo'][] = sprintf($this->lang->error->notempty, $this->lang->job->repo); + unset($errors['server']); + unset($errors['pipeline']); + } + elseif($this->post->engine == 'jenkins') + { + if(isset($errors['server'])) + { + $errors['jkServer'] = $errors['server']; + unset($errors['server']); + } + if(isset($errors['pipeline'])) + { + $errors['jkTask'] = $errors['pipeline']; + unset($errors['pipeline']); + } + } + return $this->send(array('result' => 'fail', 'message' => $errors)); + } if($this->viewType == 'json') return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'id' => $jobID)); return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browse'))); } @@ -108,7 +131,30 @@ class job extends control if($_POST) { $this->job->update($id); - if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + if(dao::isError()) + { + $errors = dao::getError(); + if($this->post->engine == 'gitlab' and isset($errors['server'])) + { + $errors['gitlabRepo'][] = sprintf($this->lang->error->notempty, $this->lang->job->repo); + unset($errors['server']); + unset($errors['pipeline']); + } + elseif($this->post->engine == 'jenkins') + { + if(isset($errors['server'])) + { + $errors['jkServer'] = $errors['server']; + unset($errors['server']); + } + if(isset($errors['pipeline'])) + { + $errors['jkTask'] = $errors['pipeline']; + unset($errors['pipeline']); + } + } + return $this->send(array('result' => 'fail', 'message' => $errors)); + } return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browse'))); } diff --git a/module/repo/model.php b/module/repo/model.php index f693c6dec3..56eadabe71 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -606,6 +606,7 @@ class repoModel extends model public function getProductsByRepo($repoID) { $repo = $this->getRepoByID($repoID); + if(empty($repo)) return array(); return $this->dao->select('id,name')->from(TABLE_PRODUCT) ->where('id')->in($repo->product) ->andWhere('deleted')->eq(0)