diff --git a/module/task/control.php b/module/task/control.php index cc7f11ce6c..7fa0878d28 100644 --- a/module/task/control.php +++ b/module/task/control.php @@ -309,11 +309,6 @@ class task extends control } $execution = $this->execution->getById($executionID); - if($this->config->systemMode == 'new') - { - $project = $this->project->getByID($execution->project); - if($project->model == 'waterfall') $this->config->task->create->requiredFields .= ',estStarted,deadline'; - } if($this->app->tab == 'my') { @@ -364,16 +359,6 @@ class task extends control return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $taskLink)); } - /* Set Custom*/ - foreach(explode(',', $this->config->task->customBatchCreateFields) as $field) - { - if($execution->type == 'stage' and strpos('estStarted,deadline', $field) !== false) continue; - $customFields[$field] = $this->lang->task->$field; - } - - $this->view->customFields = $customFields; - $this->view->showFields = $this->config->task->custom->batchCreateFields; - $story = $this->story->getByID($storyID); if($story) { @@ -389,6 +374,22 @@ class task extends control $showAllModule = isset($this->config->execution->task->allModule) ? $this->config->execution->task->allModule : ''; $modules = $this->loadModel('tree')->getTaskOptionMenu($executionID, 0, 0, $showAllModule ? 'allModule' : ''); + /* Set Custom*/ + if($this->config->systemMode == 'new') + { + $project = $this->project->getByID($execution->project); + if($project->model == 'waterfall') $this->config->task->create->requiredFields .= ',estStarted,deadline'; + } + + foreach(explode(',', $this->config->task->customBatchCreateFields) as $field) + { + if($execution->type == 'stage' and strpos('estStarted,deadline', $field) !== false) continue; + $customFields[$field] = $this->lang->task->$field; + } + $this->view->customFields = $customFields; + $this->view->showFields = $this->config->task->custom->batchCreateFields; + + if($execution->type == 'kanban') { $extra = str_replace(array(',', ' '), array('&', ''), $extra); @@ -663,7 +664,25 @@ class task extends control if($showSuhosinInfo) $this->view->suhosinInfo = extension_loaded('suhosin') ? sprintf($this->lang->suhosinInfo, $countInputVars) : sprintf($this->lang->maxVarsInfo, $countInputVars); /* Set Custom*/ - foreach(explode(',', $this->config->task->customBatchEditFields) as $field) $customFields[$field] = $this->lang->task->$field; + if(isset($execution)) + { + if($this->config->systemMode == 'new') + { + $project = $this->project->getByID($execution->project); + if($project->model == 'waterfall') $this->config->task->edit->requiredFields .= ',estStarted,deadline'; + } + + foreach(explode(',', $this->config->task->customBatchEditFields) as $field) + { + if($execution->type == 'stage' and strpos('estStarted,deadline', $field) !== false) continue; + $customFields[$field] = $this->lang->task->$field; + } + } + else + { + foreach(explode(',', $this->config->task->customBatchEditFields) as $field) $customFields[$field] = $this->lang->task->$field; + } + $this->view->customFields = $customFields; $this->view->showFields = $this->config->task->custom->batchEditFields; diff --git a/module/task/model.php b/module/task/model.php index 6c3bec7982..c2873c7521 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -1311,6 +1311,11 @@ class taskModel extends model return false; } + if($this->config->systemMode == 'new') + { + $project = $this->loadModel('project')->getByID($oldTask->project); + if($project->model == 'waterfall') $this->config->task->edit->requiredFields .= ',estStarted,deadline'; + } foreach(explode(',', $this->config->task->edit->requiredFields) as $field) { $field = trim($field);