diff --git a/trunk/module/bug/config.php b/trunk/module/bug/config.php index 190bf6f918..e812572d1e 100644 --- a/trunk/module/bug/config.php +++ b/trunk/module/bug/config.php @@ -59,3 +59,16 @@ $config->bug->search['params']['assignedDate'] = array('operator' => '>=', $config->bug->create->requiredFields = 'title,openedBuild'; $config->bug->edit->requiredFields = $config->bug->create->requiredFields; $config->bug->resolve->requiredFields = 'resolution'; + +$config->bug->list->allFields = 'id, module, project, story, task, + title, keywords, severity, pri, type, os, browser, hardware, + found, steps, status, mailto, + openedBy, openedDate, openedBuild, + assignedTo, assignedDate, + resolvedBy, resolution, resolvedBuild, resolvedDate, + closedBy, closedDate, + duplicateBug, linkBug, + case, + lastEditedBy, + lastEditedDate'; +$config->bug->list->defaultFields = 'id,severity,pri,title,openedBy,assignedTo,resolvedBy,resolution'; diff --git a/trunk/module/bug/control.php b/trunk/module/bug/control.php index ed02b55245..ff759a5b04 100644 --- a/trunk/module/bug/control.php +++ b/trunk/module/bug/control.php @@ -163,6 +163,10 @@ class bug extends control $this->view->searchForm = $this->fetch('search', 'buildForm', $this->config->bug->search); $users = $this->user->getPairs('noletter'); + + /* 设置自定义字段。*/ + $customFields = $this->cookie->bugFields != false ? $this->cookie->bugFields : $this->config->bug->list->defaultFields; + $customed = !($customFields == $this->config->bug->list->defaultFields); $header['title'] = $this->products[$productID] . $this->lang->colon . $this->lang->bug->common; $position[] = html::a($this->createLink('bug', 'browse', "productID=$productID"), $this->products[$productID]); @@ -180,6 +184,8 @@ class bug extends control $this->view->param = $param; $this->view->orderBy = $orderBy; $this->view->moduleID = $moduleID; + $this->view->customed = $customed; + $this->view->customFields= explode(',', str_replace(' ', '', trim($customFields))); $this->display(); } @@ -545,6 +551,25 @@ class bug extends control die(); } + /* 自定义显示字段。*/ + public function customFields() + { + if($_POST) + { + $customFields = $this->post->customFields; + $customFields = join(',', $customFields); + setcookie('bugFields', $customFields); + die(js::reload('parent')); + } + /* 设定自定义字段列表。*/ + $customFields = $this->cookie->bugFields ? $this->cookie->bugFields : $this->config->bug->list->defaultFields; + + $this->view->allFields = $this->bug->getFieldPairs($this->config->bug->list->allFields); + $this->view->customFields = $this->bug->getFieldPairs($customFields); + $this->view->defaultFields = $this->bug->getFieldPairs($this->config->bug->list->defaultFields); + die($this->display()); + } + /* 获得用户的bug列表。*/ public function ajaxGetUserBugs($account = '') { diff --git a/trunk/module/bug/lang/zh-cn.php b/trunk/module/bug/lang/zh-cn.php index d1974f0762..37e765db68 100644 --- a/trunk/module/bug/lang/zh-cn.php +++ b/trunk/module/bug/lang/zh-cn.php @@ -37,6 +37,7 @@ $lang->bug->severityAB = '级别'; $lang->bug->pri = '优先级'; $lang->bug->type = 'Bug类型'; $lang->bug->os = '操作系统'; +$lang->bug->hardware = '硬件平台'; $lang->bug->browser = '浏览器'; $lang->bug->machine = '机器硬件'; $lang->bug->found = '如何发现'; @@ -77,6 +78,8 @@ $lang->bug->close = '关闭Bug'; $lang->bug->activate = '激活Bug'; $lang->bug->reportChart = '报表统计'; $lang->bug->delete = '删除Bug'; +$lang->bug->customFields = '自定义字段'; +$lang->bug->restoreDefault = '恢复默认'; $lang->bug->ajaxGetUserBugs = '接口:我的Bug'; $lang->bug->confirmStoryChange = '确认需求变动'; @@ -105,6 +108,8 @@ $lang->bug->lblAssignedTo = '当前指派'; $lang->bug->lblMailto = '抄送给'; $lang->bug->lblLastEdited = '最后修改'; $lang->bug->lblResolved = '由谁解决'; +$lang->bug->lblAllFields = '所有字段'; +$lang->bug->lblCustomFields = '自定义字段'; /* legend列表。*/ $lang->bug->legendBasicInfo = '基本信息'; diff --git a/trunk/module/bug/model.php b/trunk/module/bug/model.php index 9710d282bf..b7c8ed7853 100644 --- a/trunk/module/bug/model.php +++ b/trunk/module/bug/model.php @@ -460,4 +460,17 @@ class bugModel extends model ->get(); $this->dao->insert(TABLE_USERTPL)->data($template)->autoCheck('title, content', 'notempty')->check('title', 'unique')->exec(); } + + /* 给一个字段的列表,返回字段和相应语言解释的键值对。*/ + public function getFieldPairs($fields) + { + $fields = explode(',', $fields); + foreach($fields as $key => $field) + { + $field = trim($field); + $fields[$field] = $this->lang->bug->$field; + unset($fields[$key]); + } + return $fields; + } } diff --git a/trunk/module/bug/view/browse.custom.html.php b/trunk/module/bug/view/browse.custom.html.php new file mode 100644 index 0000000000..19650e823f --- /dev/null +++ b/trunk/module/bug/view/browse.custom.html.php @@ -0,0 +1,82 @@ +
| ' id='treebox'>
+
+
+
+
+ createLink('tree', 'browse', "productID=$productID&view=bug"), $lang->tree->manage);?>
+
+ |
+
+ recTotal}&recPerPage={$pager->recPerPage}"; ?>
+ |
+