From 4a418ef9c7f1ebdf838e2409b9c006d2bd0ac17e Mon Sep 17 00:00:00 2001 From: tanghucheng Date: Mon, 1 Aug 2022 17:03:23 +0800 Subject: [PATCH] * Code for story. --- module/port/control.php | 4 ++-- module/port/model.php | 4 ++-- module/port/view/showimport.html.php | 5 +++-- module/story/config.php | 33 ++++++++++++++-------------- 4 files changed, 24 insertions(+), 22 deletions(-) diff --git a/module/port/control.php b/module/port/control.php index a470ef45b2..32db0b71ff 100644 --- a/module/port/control.php +++ b/module/port/control.php @@ -138,7 +138,7 @@ class port extends control * @access public * @return void */ - public function ajaxGetOptions($model = '', $field = '', $value = '', $id = '') + public function ajaxGetOptions($model = '', $field = '', $value = '', $index = '') { $this->loadModel($model); $fields = $this->config->$model->templateFields; @@ -156,6 +156,6 @@ class port extends control if(!isset($fieldList[$field]['values'][''])) $fieldList[$field]['values'][''] = ''; $multiple = $fieldList[$field]['control'] == 'multiple' ? 'multiple' : ''; - return print(html::select($id, $fieldList[$field]['values'], $value, "class='form-control picker-select' $multiple")); + return print(html::select($field . "[$index]", $fieldList[$field]['values'], $value, "class='form-control picker-select' $multiple")); } } diff --git a/module/port/model.php b/module/port/model.php index 46bc901c68..d995c37367 100644 --- a/module/port/model.php +++ b/module/port/model.php @@ -197,7 +197,7 @@ class portModel extends model if(empty($fields)) return false; - $fields = explode(',', $fields); + if(!is_array($fields)) $fields = explode(',', $fields); $fieldList = array(); /* build module fieldList. */ foreach ($fields as $key => $field) @@ -309,7 +309,7 @@ class portModel extends model /* If empty values put system datas .*/ if(empty($values)) { - if(strpos($this->modelConfig->sysLangFields, $field)) return $this->modelLang->{$field.'List'}; + if(strpos($this->modelConfig->sysLangFields, $field) and !empty($this->modelLang->{$field.'List'})) return $this->modelLang->{$field.'List'}; if(strpos($this->modelConfig->sysDataFields, $field) and !empty($this->portConfig->sysDataList[$values])) return $this->portConfig->sysDataList[$values]; } diff --git a/module/port/view/showimport.html.php b/module/port/view/showimport.html.php index 94f5944579..c7e770f3bb 100644 --- a/module/port/view/showimport.html.php +++ b/module/port/view/showimport.html.php @@ -184,11 +184,12 @@ $('#showData').on('mouseenter', '.picker', function(e){ var myPicker = $(this); var field = myPicker.prev().attr('data-field'); var id = myPicker.prev().attr('id'); - var index = myPicker.prev().attr('data-key'); + var name = myPicker.prev().attr('name'); + var index = Number(name.replace(/[^\d]/g, " ")); var value = myPicker.prev().val(); if($('#' + id).attr('isInit')) return; - $.get(createLink('port', 'ajaxGetOptions', 'model=&field=' + field + '&value=' + value + '&id=' + id), function(data) + $.get(createLink('port', 'ajaxGetOptions', 'model=&field=' + field + '&value=' + value + '&index=' + index), function(data) { $('#' + id).parent().html(data); $('#' + id).picker({chosenMode: true}); diff --git a/module/story/config.php b/module/story/config.php index 1b90abc3e0..acd315ca26 100644 --- a/module/story/config.php +++ b/module/story/config.php @@ -39,14 +39,6 @@ $config->story->exportFields = ' lastEditedBy, lastEditedDate, childStories, linkStories, duplicateStory, files'; -$config->story->fieldList['product']['dataSource'] = array('module' => 'port', 'method' => 'getRelatedObjects', 'params' => 'story&product&id,name'); - -$config->story->fieldList['branch']['dataSource'] = array('module' => 'story', 'method' => 'getRelatedObjects', 'params' => 'branch&id,name'); - -$config->story->fieldList['module']['dataSource'] = array('module' => 'tree', 'method' => 'getAllModulePairs', 'params' => 'story'); - -$config->story->fieldList['plan']['dataSource'] = array('module' => 'story', 'method' => 'getRelatedObjects', 'params' => 'plan&id,title'); - $config->story->list->customCreateFields = 'source,verify,pri,estimate,mailto,keywords'; $config->story->list->customBatchCreateFields = 'plan,spec,source,verify,pri,estimate,review,keywords'; $config->story->list->customBatchEditFields = 'branch,plan,estimate,pri,assignedTo,source,stage,closedBy,closedReason,keywords'; @@ -95,20 +87,29 @@ $config->story->datatable->fieldList['title']['fixed'] = 'left'; $config->story->datatable->fieldList['title']['width'] = 'auto'; $config->story->datatable->fieldList['title']['required'] = 'yes'; -$config->story->datatable->fieldList['branch']['title'] = 'branch'; -$config->story->datatable->fieldList['branch']['fixed'] = 'no'; -$config->story->datatable->fieldList['branch']['width'] = '100'; -$config->story->datatable->fieldList['branch']['required'] = 'no'; +$config->story->datatable->fieldList['product']['title'] = 'product'; +$config->story->datatable->fieldList['product']['dataSource'] = array('module' => 'port', 'method' => 'getRelatedObjects', 'params' => 'story&product&id,name'); + +$config->story->datatable->fieldList['branch']['title'] = 'branch'; +$config->story->datatable->fieldList['branch']['fixed'] = 'no'; +$config->story->datatable->fieldList['branch']['width'] = '100'; +$config->story->datatable->fieldList['branch']['required'] = 'no'; +$config->story->datatable->fieldList['branch']['dataSource'] = array('module' => 'story', 'method' => 'getRelatedObjects', 'params' => 'branch&id,name'); + +$config->story->datatable->fieldList['module']['title'] = 'module'; +$config->story->datatable->fieldList['module']['control'] = 'select'; +$config->story->datatable->fieldList['module']['dataSource'] = array('module' => 'tree', 'method' => 'getAllModulePairs', 'params' => 'story'); $config->story->datatable->fieldList['keywords']['title'] = 'keywords'; $config->story->datatable->fieldList['keywords']['fixed'] = 'no'; $config->story->datatable->fieldList['keywords']['width'] = '100'; $config->story->datatable->fieldList['keywords']['required'] = 'no'; -$config->story->datatable->fieldList['plan']['title'] = 'planAB'; -$config->story->datatable->fieldList['plan']['fixed'] = 'no'; -$config->story->datatable->fieldList['plan']['width'] = '90'; -$config->story->datatable->fieldList['plan']['required'] = 'no'; +$config->story->datatable->fieldList['plan']['title'] = 'planAB'; +$config->story->datatable->fieldList['plan']['fixed'] = 'no'; +$config->story->datatable->fieldList['plan']['width'] = '90'; +$config->story->datatable->fieldList['plan']['required'] = 'no'; +$config->story->datatable->fieldList['plan']['dataSource'] = array('module' => 'story', 'method' => 'getRelatedObjects', 'params' => 'plan&id,title'); $config->story->datatable->fieldList['source']['title'] = 'source'; $config->story->datatable->fieldList['source']['fixed'] = 'no';