From 6f5f7866afb39670e281166f07e0c8fc1486c807 Mon Sep 17 00:00:00 2001 From: tanghucheng Date: Sun, 14 Apr 2024 15:05:34 +0800 Subject: [PATCH] * Customize the list field according to the project model custom setup phase view. --- lib/zin/wg/formpanel/v1.php | 3 ++- module/custom/config.php | 2 +- module/custom/control.php | 1 + module/programplan/config.php | 11 ++++++----- module/programplan/ui/create.html.php | 5 +++++ module/programplan/zen.php | 5 ++++- 6 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lib/zin/wg/formpanel/v1.php b/lib/zin/wg/formpanel/v1.php index f0bf273389..8745de10c6 100644 --- a/lib/zin/wg/formpanel/v1.php +++ b/lib/zin/wg/formpanel/v1.php @@ -158,7 +158,8 @@ class formPanel extends panel if($listFields && $key) { - $urlParams = "module={$app->rawModule}§ion=custom&key={$key}"; + /* Custom button submit params. */ + $urlParams = $this->prop('customUrlParams') ? $this->prop('customUrlParams') : "module={$app->rawModule}§ion=custom&key={$key}"; $headingActions[] = formSettingBtn ( set::customFields(array('list' => $listFields, 'show' => $showFields)), diff --git a/module/custom/config.php b/module/custom/config.php index cfbf879413..22d574031c 100644 --- a/module/custom/config.php +++ b/module/custom/config.php @@ -90,7 +90,7 @@ $config->custom->customFields['bug'] = array('custom' => array('createFi $config->custom->customFields['caselib'] = array('custom' => array('createFields')); $config->custom->customFields['execution'] = array('custom' => array('batchEditFields')); $config->custom->customFields['product'] = array('custom' => array('createFields', 'batchEditFields')); -$config->custom->customFields['programplan'] = array('custom' => array('createFields'), 'customAgilePlus' => array('createFields')); +$config->custom->customFields['programplan'] = array('custom' => array('createWaterfallFields', 'createIpdFields', 'createWaterfallplusFields'), 'customAgilePlus' => array('createFields')); $config->custom->customFields['story'] = array('custom' => array('createFields', 'batchCreateFields', 'batchEditFields')); $config->custom->customFields['task'] = array('custom' => array('createFields', 'batchCreateFields', 'batchEditFields')); $config->custom->customFields['testcase'] = array('custom' => array('createFields', 'batchCreateFields', 'batchEditFields')); diff --git a/module/custom/control.php b/module/custom/control.php index ba6421f8ea..d883569d93 100644 --- a/module/custom/control.php +++ b/module/custom/control.php @@ -415,6 +415,7 @@ class custom extends control $this->app->loadLang($module); $this->app->loadConfig($module); + if($module == 'programplan' && $section == 'custom') $key = 'createFields'; $customFields = $this->config->$module->list->{'custom' . ucfirst($key)}; $showFields = $this->config->$module->custom->$key; return $this->send(array('result' => 'success', 'key' => $key, 'callback' => 'loadCurrentPage', 'customFields' => $customFields, 'showFields' => $showFields)); diff --git a/module/programplan/config.php b/module/programplan/config.php index bc02dc1b48..da9127179b 100644 --- a/module/programplan/config.php +++ b/module/programplan/config.php @@ -67,19 +67,20 @@ $config->programplan->datatable->fieldList['actions']['required'] = 'yes'; $config->programplan->datatable->fieldList['actions']['sort'] = 'no'; $config->programplan->list = new stdclass(); -$config->programplan->list->customCreateFields = 'PM,attribute,acl,milestone,realBegan,realEnd'; +$config->programplan->list->customCreateFields = 'PM,attribute,acl,milestone,realBegan,realEnd'; +$config->programplan->list->customAgilePlusCreateFields = 'PM,milestone,acl,desc,attribute'; $config->programplan->custom = new stdclass(); -$config->programplan->custom->createFields = 'code,PM,attribute,milestone'; +$config->programplan->custom->createIpdFields = 'code,PM,attribute,milestone'; +$config->programplan->custom->createWaterfallFields = 'code,PM,attribute,milestone'; +$config->programplan->custom->createWaterfallplusFields = 'code,PM,attribute,milestone'; if(!empty($config->setPercent)) $config->programplan->list->customCreateFields .= ',percent'; if(!empty($config->setCode)) { $config->programplan->custom->createFields .= ',code'; $config->programplan->list->customCreateFields .= ',code'; } -$config->programplan->custom->defaultFields = $config->programplan->custom->createFields; - -$config->programplan->list->customAgilePlusCreateFields = 'PM,milestone,acl,desc,attribute'; +$config->programplan->custom->defaultFields = 'code,PM,attribute,milestone'; $config->programplan->customAgilePlus = new stdclass(); $config->programplan->customAgilePlus->createFields = 'code,PM,milestone,acl,desc,attribute'; diff --git a/module/programplan/ui/create.html.php b/module/programplan/ui/create.html.php index ec70879ebb..ba61c24481 100644 --- a/module/programplan/ui/create.html.php +++ b/module/programplan/ui/create.html.php @@ -17,6 +17,10 @@ include($this->app->getModuleRoot() . 'ai/ui/inputinject.html.php'); $fields = $this->config->programplan->form->create; $enabledPoints = isset($enabledPoints) ? $enabledPoints : new stdclass(); $reviewedPoints = isset($reviewedPoints) ? $reviewedPoints : array(); +$customKey = 'createFields'; + +/* Generate custom config key by project model. */ +if(in_array($project->model, array('waterfallplus', 'ipd'))) $customKey = 'create' . ucfirst($project->model) . 'Fields'; /* Generate title that is tailored to specific situation. */ $title = $lang->programplan->create; @@ -271,6 +275,7 @@ formBatchPanel set::onRenderRow(jsRaw('window.onRenderRow')), to::headingActions(array($fnGenerateSubPlanManageFields())), set::customFields(array('list' => $customFields, 'show' => explode(',', $showFields), 'key' => 'createFields')), + set::customUrlParams("module=programplan§ion=custom&key=$customKey"), set::items($fnGenerateFields()), set::data($fnGenerateDefaultData()), $app->session->projectPlanList ? set::actions(array('submit', array('text' => $lang->cancel, 'url' => $app->session->projectPlanList))) : null, diff --git a/module/programplan/zen.php b/module/programplan/zen.php index ca4e882590..92972071b9 100644 --- a/module/programplan/zen.php +++ b/module/programplan/zen.php @@ -270,13 +270,16 @@ class programplanZen extends programplan $visibleFields = array(); $requiredFields = array(); $customFields = array(); + $customModel = !empty($viewData->project->model) ? $viewData->project->model : ''; + $createFields = 'create' . ucfirst($customModel) . 'Fields'; $custom = $viewData->executionType == 'stage' ? 'custom' : 'customAgilePlus'; $customCreateFields = $viewData->executionType == 'stage' ? 'customCreateFields' : 'customAgilePlusCreateFields'; + $defaultFields = $this->config->programplan->$custom->defaultFields; foreach(explode(',', $this->config->programplan->list->$customCreateFields) as $field) $customFields[$field] = $this->lang->programplan->{$field}; - $showFields = $this->config->programplan->$custom->createFields; + $showFields = $this->config->programplan->$custom->$createFields; foreach(explode(',', $showFields) as $field) { if($field) $visibleFields[$field] = '';