diff --git a/module/bug/config.php b/module/bug/config.php index 0ba621fbc7..46ec175e1f 100644 --- a/module/bug/config.php +++ b/module/bug/config.php @@ -56,6 +56,8 @@ $config->bug->custom->createFields = $config->bug->list->customCreateFields $config->bug->custom->batchCreateFields = 'project,execution,deadline,steps,type,severity,os,browser,%s'; $config->bug->custom->batchEditFields = 'type,severity,pri,assignedTo,deadline,status,resolvedBy,resolution'; +$config->bug->excludeCheckFileds = 'severity,title,keywords'; + $config->bug->editor = new stdclass(); $config->bug->editor->create = array('id' => 'steps', 'tools' => 'bugTools'); $config->bug->editor->edit = array('id' => 'steps,comment', 'tools' => 'bugTools'); diff --git a/module/bug/model.php b/module/bug/model.php index a58d381143..03c496bbab 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -194,17 +194,9 @@ class bugModel extends model $title = trim($title); if(empty($title)) { - foreach(explode(',', $this->config->bug->create->requiredFields . ',' . $this->config->bug->custom->batchCreateFields) as $field) - { - if(empty($field) or strpos('severity,title,keywords', $field) !== false) continue; + $this->common->checkFieldEmpty('bug', 'title', $data, $i); + if(dao::isError()) return false; - $field = strpos('steps,os', $field) !== false ? $field . 'es' : $field . 's'; - if(isset($data->$field) and !empty($data->$field[$i])) - { - dao::$errors['message'][] = sprintf($this->lang->error->notempty, $this->lang->bug->title); - return false; - } - } continue; } diff --git a/module/common/model.php b/module/common/model.php index 9b29e6d4ba..05ccb543b6 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -3481,6 +3481,35 @@ EOD; return true; } + + /** + * Check the field should be empty. + * + * @param string $objectType + * @param string $checkField + * @param array $postData + * @param int $index + * @access public + * @return bool + */ + public function checkFieldEmpty($objectType, $checkField, $postData = array(), $index = 0) + { + if(empty($postData)) return true; + + foreach(explode(',', $this->config->$objectType->custom->batchCreateFields . ',' . $this->config->$objectType->create->requiredFields) as $field) + { + if(empty($field) or strpos($this->config->$objectType->excludeCheckFileds, $field) !== false) continue; + + if($objectType == 'bug') $field = strpos('steps,os', $field) !== false ? $field . 'es' : $field . 's'; + if(isset($postData->$field) and !empty($postData->$field[$index]) and $postData->$field[$index] != 'ditto') + { + dao::$errors['message'][] = sprintf($this->lang->error->notempty, $this->lang->$objectType->$checkField); + return false; + } + } + + return true; + } } class common extends commonModel diff --git a/module/story/model.php b/module/story/model.php index 63d3cb2010..2ff612a4f5 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -499,17 +499,9 @@ class storyModel extends model { if(empty($title)) { - $checkFields = $this->config->story->create->requiredFields . ',' . $this->config->story->custom->batchCreateFields . ',sourceNote,'; - foreach(explode(',', $checkFields) as $field) - { - if(empty($field)) continue; + $this->common->checkFieldEmpty('story', 'title', $stories, $i); + if(dao::isError()) return false; - if(isset($stories->$field) and !empty($stories->$field[$i]) and $stories->$field[$i] != 'ditto') - { - dao::$errors['message'][] = sprintf($this->lang->error->notempty, $this->lang->story->title); - return false; - } - } continue; } diff --git a/module/task/config.php b/module/task/config.php index 96ca1d4d79..70e5eab71b 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -48,6 +48,8 @@ $config->task->custom->createFields = $config->task->customCreateFields; $config->task->custom->batchCreateFields = 'module,story,assignedTo,estimate,desc,pri'; $config->task->custom->batchEditFields = 'module,assignedTo,status,pri,estimate,record,left'; +$config->task->excludeCheckFileds = 'pri'; + $config->task->datatable = new stdclass(); $config->task->datatable->defaultField = array('id', 'pri', 'name', 'status', 'assignedTo', 'finishedBy', 'estimate', 'consumed', 'left', 'progress', 'deadline', 'actions'); diff --git a/module/task/model.php b/module/task/model.php index 71620395ac..1312fc4a42 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -355,16 +355,9 @@ class taskModel extends model if(empty($tasks->name[$i])) { - foreach(explode(',', $this->config->task->custom->batchCreateFields . ',' . $this->config->task->create->requiredFields) as $field) - { - if(empty($field) or $field == 'pri') continue; + $this->common->checkFieldEmpty('task', 'name', $tasks, $i); + if(dao::isError()) return false; - if(isset($tasks->$field) and !empty($tasks->$field[$i]) and $tasks->$field[$i] != 'ditto') - { - dao::$errors['message'][] = sprintf($this->lang->error->notempty, $this->lang->task->name); - return false; - } - } continue; } diff --git a/module/testcase/config.php b/module/testcase/config.php index fb2bd8aa6d..8d94b8b988 100644 --- a/module/testcase/config.php +++ b/module/testcase/config.php @@ -32,6 +32,8 @@ $config->testcase->custom->createFields = $config->testcase->customCreateFi $config->testcase->custom->batchCreateFields = 'module,story,%s'; $config->testcase->custom->batchEditFields = 'branch,module,stage,status,pri,story'; +$config->testcase->excludeCheckFileds = 'pri,type,stage'; + global $lang; $config->testcase->search['module'] = 'testcase'; $config->testcase->search['fields']['title'] = $lang->testcase->title; diff --git a/module/testcase/model.php b/module/testcase/model.php index 3aa90919e3..835c8238a5 100644 --- a/module/testcase/model.php +++ b/module/testcase/model.php @@ -157,16 +157,9 @@ class testcaseModel extends model { if(empty($title)) { - foreach(explode(',', $this->config->testcase->custom->batchCreateFields . ',' . $this->config->testcase->create->requiredFields) as $field) - { - if(empty($field) or strpos('pri,type,stage', $field) !== false) continue; + $result = $this->common->checkFieldEmpty('testcase', 'title', $cases, $i); + if(dao::isError()) return false; - if(isset($cases->$field) and !empty($cases->$field[$i])) - { - dao::$errors['message'][] = sprintf($this->lang->error->notempty, $this->lang->testcase->title); - return false; - } - } continue; }