+ add the feature of show or hide products and projects.
This commit is contained in:
2
db/update1.0.rc1.sql
Normal file
2
db/update1.0.rc1.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- 2010-04-24 product status field.
|
||||
UPDATE zt_product SET status='normal';
|
||||
@@ -56,4 +56,4 @@ $lang->product->searchStory = '搜索';
|
||||
$lang->product->allStory = '全部需求';
|
||||
|
||||
$lang->product->statusList['normal'] = '正常';
|
||||
$lang->product->statusList['died'] = '结束';
|
||||
$lang->product->statusList['closed'] = '结束';
|
||||
|
||||
@@ -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>顣*/
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
38
www/js/my.js
38
www/js/my.js
@@ -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。
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user