diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php
index 20d016014f..66e64fb929 100644
--- a/module/admin/lang/menu.php
+++ b/module/admin/lang/menu.php
@@ -84,7 +84,7 @@ $lang->admin->menuList->model['menuOrder']['10'] = 'scrum';
$lang->admin->menuList->model['menuOrder']['15'] = 'waterfall';
$lang->admin->menuList->feature['subMenu']['my'] = array('link' => "{$lang->my->common}|custom|set|module=todo", 'exclude' => 'set,required');
-$lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product|", 'exclude' => 'set,required');
+$lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product|", 'exclude' => 'set,required', 'alias' => 'browsestoryconcept,product');
$lang->admin->menuList->feature['subMenu']['execution'] = array('link' => "{$lang->execution->common}|custom|execution|");
$lang->admin->menuList->feature['subMenu']['qa'] = array('link' => "{$lang->qa->common}|custom|required|module=bug", 'exclude' => 'set,required');
$lang->admin->menuList->feature['subMenu']['kanban'] = array('link' => "{$lang->kanban->common}|custom|kanban|");
@@ -95,7 +95,7 @@ $lang->admin->menuList->feature['tabMenu']['my']['todo'] = array('link' => "{$l
$lang->admin->menuList->feature['tabMenu']['my']['block'] = array('link' => "{$lang->block->common}|custom|set|module=block&field=closed");
if($config->vision == 'lite') $lang->admin->menuList->feature['tabMenu']['my']['task'] = array('link' => "{$lang->task->common}|custom|required|module=task", 'links' => array('custom|set|module=task&field=priList'));
-$lang->admin->menuList->feature['tabMenu']['product']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product", 'links' => array("custom|browsestoryconcept|", 'custom|product|'));
+$lang->admin->menuList->feature['tabMenu']['product']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product", 'links' => array("custom|browsestoryconcept|", 'custom|product|'), 'alias' => 'browsestoryconcept');
$lang->admin->menuList->feature['menuOrder']['5'] = 'my';
$lang->admin->menuList->feature['menuOrder']['10'] = 'product';
diff --git a/module/admin/model.php b/module/admin/model.php
index 88463b0d7b..6a60d0b185 100755
--- a/module/admin/model.php
+++ b/module/admin/model.php
@@ -277,6 +277,7 @@ class adminModel extends model
if($moduleName == 'custom' and strpos(',required,set,', $methodName) !== false)
{
if(strpos(',todo,block,', $paramName) !== false) $subMenuKey = 'my';
+ if(strpos(',product,', $paramName) !== false) $subMenuKey = 'product';
if($this->config->vision == 'lite' and $paramName == 'task') $subMenuKey = 'my';
if(isset($subMenuKey)) $this->lang->admin->menuList->$menuKey['subMenu'][$subMenuKey]['subModule'] = $moduleName;
}
diff --git a/module/admin/view/tabmenu.html.php b/module/admin/view/tabmenu.html.php
index cc3ed238af..646627e52b 100755
--- a/module/admin/view/tabmenu.html.php
+++ b/module/admin/view/tabmenu.html.php
@@ -9,10 +9,20 @@
list($tabModule, $tabMethod, $tabParams) = $link;
- $name = $lang->custom->object[$tabMenuKey];
- $paramName = $this->app->rawParams ? reset($this->app->rawParams) : '';
- $active = ($tabMethod == $tabMenuKey and strpos(',required,set,', ",$tabMethod,",) === false) ? 'btn-active-text' : '';
- $active = ($paramName == $tabMenuKey and strpos(',required,set,', ",$tabMethod,",) !== false) ? 'btn-active-text' : $active;
+ $name = $lang->custom->object[$tabMenuKey];
+ $paramName = $this->app->rawParams ? reset($this->app->rawParams) : '';
+ $currentMethod = $app->rawMethod;
+ $active = '';
+ if(strpos(',required,set,', ",$currentMethod,",) === false)
+ {
+ if($currentMethod == $tabMenuKey) $active = 'btn-active-text';
+ if(isset($tabMenu['alias']) and strpos(",{$tabMenu['alias']},", ",$currentMethod",) !== false) $active = 'btn-active-text';
+ }
+ elseif($paramName == $tabMenuKey)
+ {
+ $active = 'btn-active-text';
+ }
+
common::printLink($tabModule, $tabMethod, $tabParams, "{$name}", '', "class='btn btn-link {$active}' id='{$tabMenuKey}Tab'");
}
?>
diff --git a/module/custom/config.php b/module/custom/config.php
index 6da0127235..768eed8bdf 100644
--- a/module/custom/config.php
+++ b/module/custom/config.php
@@ -70,3 +70,5 @@ $config->custom->fieldList['testtask'] = 'owner,pri,desc';
$config->custom->fieldList['doc'] = 'keywords,content';
$config->custom->fieldList['user']['create'] = 'dept,role,email,commiter';
$config->custom->fieldList['user']['edit'] = 'dept,role,email,commiter,skype,qq,mobile,phone,address,zipcode,dingding,slack,whatsapp,weixin';
+
+$config->custom->notSetMethods = array('required', 'browsestoryconcept', 'product');
diff --git a/module/custom/control.php b/module/custom/control.php
index 7f7aa54bcd..1dda366ead 100644
--- a/module/custom/control.php
+++ b/module/custom/control.php
@@ -382,7 +382,7 @@ class custom extends control
$this->view->position[] = $this->lang->custom->required;
$this->view->requiredFields = $requiredFields;
- $this->view->moduleName = $moduleName;
+ $this->view->module = $moduleName;
$this->display();
}
@@ -439,6 +439,7 @@ class custom extends control
$this->view->title = $this->lang->custom->browseStoryConcept;
$this->view->position[] = $this->lang->custom->browseStoryConcept;
$this->view->URSRList = $this->custom->getURSRList();
+ $this->view->module = 'product';
$this->display();
}
@@ -576,9 +577,10 @@ class custom extends control
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'reload'));
}
- $this->view->title = $this->lang->custom->product;
+ $this->view->title = $this->lang->custom->productName;
$this->view->position[] = $this->lang->custom->common;
$this->view->position[] = $this->view->title;
+ $this->view->module = 'product';
$this->display();
}
diff --git a/module/custom/css/browsestoryconcept.css b/module/custom/css/browsestoryconcept.css
index 2f8e5c3424..ef2d52cd3f 100644
--- a/module/custom/css/browsestoryconcept.css
+++ b/module/custom/css/browsestoryconcept.css
@@ -1 +1,3 @@
+.table-form>tbody>tr>th{text-align: center}
.c-default {width: 70px;}
+.setBtn {margin-top: -5px;}
diff --git a/module/custom/lang/de.php b/module/custom/lang/de.php
index 48e5451d64..632ae18f7e 100644
--- a/module/custom/lang/de.php
+++ b/module/custom/lang/de.php
@@ -22,7 +22,7 @@ $lang->custom->score = 'Score';
$lang->custom->timezone = 'Timezone';
$lang->custom->scoreReset = 'Reset Score';
$lang->custom->scoreTitle = 'Point Feature';
-$lang->custom->product = $lang->productCommon;
+$lang->custom->productName = $lang->productCommon;
$lang->custom->convertFactor = 'Convert factor';
$lang->custom->region = 'Interval';
$lang->custom->tips = 'Tips';
@@ -131,6 +131,11 @@ $lang->custom->project->currencySetting = 'Currency Setting';
$lang->custom->project->defaultCurrency = 'Default Currency';
$lang->custom->project->fields['unitList'] = 'Unit List';
+$lang->custom->product = new stdClass();
+$lang->custom->product->fields['required'] = $lang->custom->required;
+$lang->custom->product->fields['browsestoryconcept'] = 'Story Concpet';
+$lang->custom->product->fields['product'] = 'Close Setting';
+
$lang->custom->story = new stdClass();
$lang->custom->story->fields['categoryList'] = 'Category';
$lang->custom->story->fields['priList'] = 'Priority';
diff --git a/module/custom/lang/en.php b/module/custom/lang/en.php
index b572c5e132..21033e27a7 100644
--- a/module/custom/lang/en.php
+++ b/module/custom/lang/en.php
@@ -22,7 +22,7 @@ $lang->custom->score = 'Point';
$lang->custom->timezone = 'Timezone';
$lang->custom->scoreReset = 'Reset Points';
$lang->custom->scoreTitle = 'Point Feature';
-$lang->custom->product = $lang->productCommon;
+$lang->custom->productName = $lang->productCommon;
$lang->custom->convertFactor = 'Convert factor';
$lang->custom->region = 'Interval';
$lang->custom->tips = 'Tips';
@@ -131,6 +131,11 @@ $lang->custom->project->currencySetting = 'Currency Setting';
$lang->custom->project->defaultCurrency = 'Default Currency';
$lang->custom->project->fields['unitList'] = 'Unit List';
+$lang->custom->product = new stdClass();
+$lang->custom->product->fields['required'] = $lang->custom->required;
+$lang->custom->product->fields['browsestoryconcept'] = 'Story Concpet';
+$lang->custom->product->fields['product'] = 'Close Setting';
+
$lang->custom->story = new stdClass();
$lang->custom->story->fields['categoryList'] = 'Category';
$lang->custom->story->fields['priList'] = 'Priority';
diff --git a/module/custom/lang/fr.php b/module/custom/lang/fr.php
index a84f90bd4e..001c6a7964 100644
--- a/module/custom/lang/fr.php
+++ b/module/custom/lang/fr.php
@@ -22,7 +22,7 @@ $lang->custom->score = 'Point';
$lang->custom->timezone = 'Timezone';
$lang->custom->scoreReset = 'Réinit Points';
$lang->custom->scoreTitle = 'Fonctionnalité des Points';
-$lang->custom->product = $lang->productCommon;
+$lang->custom->productName = $lang->productCommon;
$lang->custom->convertFactor = 'Convert factor';
$lang->custom->region = 'Interval';
$lang->custom->tips = 'Tips';
@@ -131,6 +131,11 @@ $lang->custom->project->currencySetting = 'Currency Setting';
$lang->custom->project->defaultCurrency = 'Default Currency';
$lang->custom->project->fields['unitList'] = 'Unit List';
+$lang->custom->product = new stdClass();
+$lang->custom->product->fields['required'] = $lang->custom->required;
+$lang->custom->product->fields['browsestoryconcept'] = 'Story Concpet';
+$lang->custom->product->fields['product'] = 'Close Setting';
+
$lang->custom->story = new stdClass();
$lang->custom->story->fields['categoryList'] = 'Category';
$lang->custom->story->fields['priList'] = 'Priorité';
diff --git a/module/custom/lang/zh-cn.php b/module/custom/lang/zh-cn.php
index 689e8daeaf..5fc9cf8c5e 100644
--- a/module/custom/lang/zh-cn.php
+++ b/module/custom/lang/zh-cn.php
@@ -22,7 +22,7 @@ $lang->custom->score = '积分';
$lang->custom->timezone = '时区';
$lang->custom->scoreReset = '重置积分';
$lang->custom->scoreTitle = '积分功能';
-$lang->custom->product = $lang->productCommon;
+$lang->custom->productName = $lang->productCommon;
$lang->custom->convertFactor = '换算系数';
$lang->custom->region = '区间';
$lang->custom->tips = '提示语';
@@ -131,6 +131,11 @@ $lang->custom->project->currencySetting = '货币设置';
$lang->custom->project->defaultCurrency = '默认货币';
$lang->custom->project->fields['unitList'] = '预算单位';
+$lang->custom->product = new stdClass();
+$lang->custom->product->fields['required'] = $lang->custom->required;
+$lang->custom->product->fields['browsestoryconcept'] = '需求概念';
+$lang->custom->product->fields['product'] = '关闭设置';
+
$lang->custom->story = new stdClass();
$lang->custom->story->fields['categoryList'] = '类型';
$lang->custom->story->fields['priList'] = '优先级';
diff --git a/module/custom/view/browsestoryconcept.html.php b/module/custom/view/browsestoryconcept.html.php
index 5327fdae85..2871d1053e 100644
--- a/module/custom/view/browsestoryconcept.html.php
+++ b/module/custom/view/browsestoryconcept.html.php
@@ -9,49 +9,50 @@
* @version $Id: browsestoryconcept.html.php 4129 2020-09-01 01:58:14Z sgm $
*/
?>
-
-
-
-
- createLink('custom', 'setstoryconcept', '', '', true), $lang->custom->setStoryConcept, '', "class='btn btn-primary iframe' data-width=" . ($this->config->URAndSR ? "590px" : "405px"));?>
-
-
+
+
-
+
+
+ custom->product->fields['browsestoryconcept']?>
+
+
+ createLink('custom', 'setstoryconcept', '', '', true), $lang->custom->setStoryConcept, '', "class='btn btn-primary iframe' data-width=" . ($this->config->URAndSR ? "590px" : "405px"));?>
+
+
+