+ add the feature of show or hide products and projects.

This commit is contained in:
wangchunsheng
2010-04-24 13:57:33 +00:00
parent 9354dc6758
commit 3e7eb66bf6
8 changed files with 44 additions and 14 deletions

2
db/update1.0.rc1.sql Normal file
View File

@@ -0,0 +1,2 @@
-- 2010-04-24 product status field.
UPDATE zt_product SET status='normal';

View File

@@ -56,4 +56,4 @@ $lang->product->searchStory = '搜索';
$lang->product->allStory = '全部需求';
$lang->product->statusList['normal'] = '正常';
$lang->product->statusList['died'] = '结束';
$lang->product->statusList['closed'] = '结束';

View File

@@ -59,7 +59,13 @@ class productModel extends model
/* <20><>ȡ<EFBFBD><C8A1>Ʒid=>name<6D>б<EFBFBD><D0B1><EFBFBD>*/
public function getPairs()
{
return $this->dao->select('id,name')->from(TABLE_PRODUCT)->where('deleted')->eq(0)->fetchPairs();
$mode = $this->cookie->productMode;
return $this->dao->select('id,name')
->from(TABLE_PRODUCT)
->where('deleted')->eq(0)
->onCaseOf($mode == 'noclosed')->andWhere('status')->ne('closed')->endCase()
->orderBy('id desc')
->fetchPairs();
}
/* <20><>ȡ<EFBFBD><C8A1>Ʒ<EFBFBD>ĵ<EFBFBD>״̬<D7B4><CCAC><EFBFBD>顣*/

View File

@@ -35,12 +35,10 @@
<th class='rowhead'><?php echo $lang->product->code;?></th>
<td><?php echo html::input('code', '', "class='text-2'");?></td>
</tr>
<!--
<tr>
<th class='rowhead'><?php echo $lang->product->status;?></th>
<td><?php echo html::select('status', $lang->product->statusList, '', "class='select-2'");?></td>
</tr>
-->
<tr>
<th class='rowhead'><?php echo $lang->product->desc;?></th>
<td><?php echo html::textarea('desc', '', "rows='5' class='area-1'");?></textarea></td>

View File

@@ -35,12 +35,10 @@
<th class='rowhead'><?php echo $lang->product->code;?></th>
<td><?php echo html::input('code', $product->code, "class='text-2'");?></td>
</tr>
<!--
<tr>
<th class='rowhead'><?php echo $lang->product->status;?></th>
<td><?php echo html::select('status', $lang->product->statusList, $product->status, "class='select-2'");?></td>
</tr>
-->
<tr>
<th class='rowhead'><?php echo $lang->product->desc;?></th>
<td><?php echo html::textarea('desc', $product->desc, "rows='5' class='area-1'");?></td>

View File

@@ -34,12 +34,10 @@
<th class='rowhead'><?php echo $lang->product->code;?></th>
<td><?php echo $product->code;?></td>
</tr>
<!--
<tr>
<th class='rowhead'><?php echo $lang->product->status;?></th>
<td><?php echo $lang->product->statusList[$product->status];?></td>
</tr>
-->
<tr>
<th class='rowhead'><?php echo $lang->product->desc;?></th>
<td><?php echo nl2br($product->desc);?></td>

View File

@@ -135,9 +135,11 @@ class projectModel extends model
/* 获得项目id=>name列表。*/
public function getPairs()
{
$mode = $this->cookie->projectMode;
$projects = $this->dao->select('*')->from(TABLE_PROJECT)
->where('iscat')->eq(0)
->andWhere('deleted')->eq(0)
->onCaseOf($mode == 'noclosed')->andWhere('status')->ne('done')->endCase()
->orderBy('status, end desc')->fetchAll();
$pairs = array();
foreach($projects as $project)

View File

@@ -87,14 +87,14 @@ function setNowrapObjTitle()
function setProductSwitcher()
{
productMode = $.cookie('productMode');
if(!productMode) productMode = 'showAll';
if(productMode == 'showAll')
if(!productMode) productMode = 'all';
if(productMode == 'all')
{
$("#productID").append($("<option value='hideClosed' id='switcher'>" + lblHideClosed + "</option>"));
$("#productID").append($("<option value='noclosed' id='switcher'>" + lblHideClosed + "</option>"));
}
else
{
$("#productID").append($("<option value='showAll' id='switcher'>" + lblShowAll + "</option>"));
$("#productID").append($("<option value='all' id='switcher'>" + lblShowAll + "</option>"));
}
}
@@ -102,8 +102,11 @@ function setProductSwitcher()
function switchProduct(productID, module, method, extra)
{
/* 如果传递过来的productID不是数字则将其设置为产品选择方式。*/
if(isNaN(productID)) $.cookie('productMode', productID);
productID = 0;
if(isNaN(productID))
{
$.cookie('productMode', productID);
productID = 0;
}
/* product, roadmap, bug, testcase, testtask直接传递参数。*/
if(module == 'product' || module == 'roadmap' || module == 'bug' || module == 'testcase' || module == 'testtask')
@@ -124,9 +127,31 @@ function switchProduct(productID, module, method, extra)
location.href=link;
}
/* 设置项目选择器。*/
function setProjectSwitcher()
{
projectMode = $.cookie('projectMode');
if(!projectMode) projectMode = 'all';
if(projectMode == 'all')
{
$("#projectID").append($("<option value='noclosed' id='switcher'>" + lblHideClosed + "</option>"));
}
else
{
$("#projectID").append($("<option value='all' id='switcher'>" + lblShowAll + "</option>"));
}
}
/* 选择项目。*/
function switchProject(projectID, module, method)
{
/* 如果传递过来的projectID不是数字则将其设置为产品选择方式。*/
if(isNaN(projectID))
{
$.cookie('projectMode', projectID);
projectID = 0;
}
/* 如果是build模块而且是edit方法跳转地址改为project-build-xx.html。*/
if(module == 'build' && method == 'edit')
{
@@ -186,6 +211,7 @@ $(document).ready(function()
setRequiredFields();
//setHelpLink();
setProductSwitcher();
setProjectSwitcher();
if(needPing) setTimeout('setPing()', 1000 * 60 * 5); // 5分钟之后开始ping。
});