* Finish task #40004.
This commit is contained in:
@@ -2,11 +2,13 @@
|
||||
$config->product = new stdclass();
|
||||
$config->product->orderBy = 'isClosed,order_desc';
|
||||
|
||||
$config->product->customBatchEditFields = 'PO,QD,RD,status,type,desc,acl';
|
||||
$config->product->customBatchEditFields = 'line,PO,QD,RD,status,type,acl';
|
||||
if($config->systemMode == 'new') $config->product->customBatchEditFields = 'program,' . $config->product->customBatchEditFields;
|
||||
|
||||
$config->product->browse = new stdclass();
|
||||
$config->product->custom = new stdclass();
|
||||
$config->product->custom->batchEditFields = 'program,PO,QD,RD,status,type,acl';
|
||||
$config->product->custom->batchEditFields = 'line,PO,QD,RD';
|
||||
if($config->systemMode == 'new') $config->product->custom->batchEditFields .= ',program';
|
||||
|
||||
$config->product->list = new stdclass();
|
||||
$config->product->list->exportFields = 'id,name,line,activeStories,changedStories,draftStories,closedStories,plans,releases,bugs,unResolvedBugs,assignToNullBugs';
|
||||
|
||||
@@ -586,15 +586,23 @@ class product extends control
|
||||
$rdUsers = $this->user->getPairs('nodeleted|devfirst', $appendRdUsers);
|
||||
if(!empty($this->config->user->moreLink)) $this->config->moreLinks["RD"] = $this->config->user->moreLink;
|
||||
|
||||
/* Get product lines by programs.*/
|
||||
$programs = $this->program->getPairs();
|
||||
$lines = array();
|
||||
foreach($programs as $programID => $program)
|
||||
{
|
||||
$lines[$programID] = array('') + $this->product->getLinePairs($programID);
|
||||
}
|
||||
|
||||
$this->view->title = $this->lang->product->batchEdit;
|
||||
$this->view->position[] = $this->lang->product->batchEdit;
|
||||
$this->view->lines = array('') + $this->product->getLinePairs();
|
||||
$this->view->lines = $lines;
|
||||
$this->view->productIDList = $productIDList;
|
||||
$this->view->products = $products;
|
||||
$this->view->poUsers = $poUsers;
|
||||
$this->view->qdUsers = $qdUsers;
|
||||
$this->view->rdUsers = $rdUsers;
|
||||
$this->view->programs = array('') + $this->program->getTopPairs();
|
||||
$this->view->programs = array('') + $programs;
|
||||
|
||||
unset($this->lang->product->typeList['']);
|
||||
$this->display();
|
||||
@@ -929,13 +937,17 @@ class product extends control
|
||||
* Ajax get product lines.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param int $productID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function ajaxGetLine($programID)
|
||||
public function ajaxGetLine($programID, $productID = 0)
|
||||
{
|
||||
$lines = $this->product->getLinePairs($programID);
|
||||
die(html::select('line', array('' => '') + $lines, '', "class='form-control chosen'"));
|
||||
$lines = array();
|
||||
if(empty($productID) or $programID) $lines = $this->product->getLinePairs($programID);
|
||||
|
||||
if($productID) die(html::select("lines[$productID]", array('' => '') + $lines, '', "class='form-control chosen'"));
|
||||
if(!$productID) die(html::select('line', array('' => '') + $lines, '', "class='form-control chosen'"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -35,7 +35,7 @@ $(function()
|
||||
}
|
||||
});
|
||||
|
||||
$(".check-all, [id^='productIDList']").click(function()
|
||||
$('#productListForm').on('click', '.check-all, [id^="productIDList"]', function()
|
||||
{
|
||||
setTimeout(function()
|
||||
{
|
||||
@@ -48,5 +48,5 @@ $(function()
|
||||
if(checkedProduct) $('.check-all').addClass('checked');
|
||||
if(!checkedProduct) $('.check-all').removeClass('checked');
|
||||
}, 100)
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
@@ -10,3 +10,20 @@ $(function()
|
||||
this.title = privateTip;
|
||||
});
|
||||
})
|
||||
|
||||
/**
|
||||
* Load product lines by program.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param int $productID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function loadProductLines(programID, productID)
|
||||
{
|
||||
var link = createLink('product', 'ajaxGetLine', 'programID=' + programID + '&productID=' + productID);
|
||||
$('#line_' + productID).load(link, function()
|
||||
{
|
||||
$('#lines' + productID).chosen();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -659,6 +659,7 @@ class productModel extends model
|
||||
$products[$productID] = new stdClass();
|
||||
$products[$productID]->program = $data->programs[$productID];
|
||||
$products[$productID]->name = $productName;
|
||||
$products[$productID]->line = (int)$data->lines[$productID];
|
||||
$products[$productID]->PO = $data->POs[$productID];
|
||||
$products[$productID]->QD = $data->QDs[$productID];
|
||||
$products[$productID]->RD = $data->RDs[$productID];
|
||||
@@ -666,7 +667,6 @@ class productModel extends model
|
||||
$products[$productID]->status = $data->statuses[$productID];
|
||||
$products[$productID]->desc = strip_tags($this->post->descs[$productID], $this->config->allowedTags);
|
||||
$products[$productID]->acl = $data->acls[$productID];
|
||||
$products[$productID]->order = $data->orders[$productID];
|
||||
|
||||
/* Check unique name for edited products. */
|
||||
if(isset($nameList[$productName])) dao::$errors['name'][] = 'product#' . $productID . sprintf($this->lang->error->unique, $this->lang->product->name, $productName);
|
||||
@@ -677,7 +677,6 @@ class productModel extends model
|
||||
foreach($products as $productID => $product)
|
||||
{
|
||||
$oldProduct = $oldProducts[$productID];
|
||||
if($oldProduct->program != $product->program) $product->line = 0;
|
||||
|
||||
$this->dao->update(TABLE_PRODUCT)
|
||||
->data($product)
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('openTip', $lang->product->aclTips['open']);?>
|
||||
<?php js::set('privateTip', $lang->product->aclTips['private']);?>
|
||||
<?php js::set('productLines', $lines);?>
|
||||
<div id="mainContent" class="main-content">
|
||||
<div class="main-header">
|
||||
<h2><?php echo $lang->product->batchEdit;?></h2>
|
||||
@@ -53,6 +54,7 @@
|
||||
?>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'program', ' hidden') . zget($requiredFields, 'program', '', ' required');?>'><?php echo $lang->product->program;?></th>
|
||||
<th class='required <?php echo $width;?>' style="<?php echo $full;?>"><?php echo $lang->product->name;?></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'line', ' hidden') . zget($requiredFields, 'line', '', ' required');?>'><?php echo $lang->product->line;?></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'PO', ' hidden') . zget($requiredFields, 'PO', '', ' required');?>'><?php echo $lang->product->PO;?></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'QD', ' hidden') . zget($requiredFields, 'QD', '', ' required');?>'><?php echo $lang->product->QD;?></th>
|
||||
<th class='w-150px<?php echo zget($visibleFields, 'RD', ' hidden') . zget($requiredFields, 'RD', '', ' required');?>'><?php echo $lang->product->RD;?></th>
|
||||
@@ -60,7 +62,6 @@
|
||||
<th class='w-100px<?php echo zget($visibleFields, 'status', ' hidden') . zget($requiredFields, 'status', '', ' required');?>'><?php echo $lang->product->status;?></th>
|
||||
<th class='w-200px<?php echo zget($visibleFields, 'desc', ' hidden') . zget($requiredFields, 'desc', '', ' required');?>'><?php echo $lang->product->desc;?></th>
|
||||
<th class='w-120px<?php echo zget($visibleFields, 'acl', ' hidden');?>'><?php echo $lang->product->acl;?></th>
|
||||
<th class='w-80px'><?php echo $lang->product->order;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -72,8 +73,9 @@
|
||||
?>
|
||||
<tr>
|
||||
<td><?php echo sprintf('%03d', $productID) . html::hidden("productIDList[$productID]", $productID);?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'program', ' hidden')?>' style='overflow:visible'><?php echo html::select("programs[$productID]", $programs, $products[$productID]->program, "class='form-control chosen'");?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'program', ' hidden')?>' style='overflow:visible'><?php echo html::select("programs[$productID]", $programs, $products[$productID]->program, "class='form-control chosen' onchange='loadProductLines(this.value, $productID)'");?></td>
|
||||
<td title='<?php echo $products[$productID]->name?>'><?php echo html::input("names[$productID]", $products[$productID]->name, "class='form-control'");?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'line', ' hidden')?>' style='overflow:visible' id="line_<?php echo $productID;?>"><?php echo html::select("lines[$productID]", isset($lines[$products[$productID]->program]) ? $lines[$products[$productID]->program] : '', $products[$productID]->line, "class='form-control chosen'");?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'PO', ' hidden')?>' style='overflow:visible'><?php echo html::select("POs[$productID]", $poUsers, $products[$productID]->PO, "class='form-control chosen'");?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'QD', ' hidden')?>' style='overflow:visible'><?php echo html::select("QDs[$productID]", $qdUsers, $products[$productID]->QD, "class='form-control chosen'");?></td>
|
||||
<td class='text-left<?php echo zget($visibleFields, 'RD', ' hidden')?>' style='overflow:visible'><?php echo html::select("RDs[$productID]", $rdUsers, $products[$productID]->RD, "class='form-control chosen'");?></td>
|
||||
@@ -81,7 +83,6 @@
|
||||
<td class='<?php echo zget($visibleFields, 'status', 'hidden')?>'><?php echo html::select("statuses[$productID]", $lang->product->statusList, $products[$productID]->status, "class='form-control'");?></td>
|
||||
<td class='<?php echo zget($visibleFields, 'desc', 'hidden')?>'><?php echo html::textarea("descs[$productID]", htmlspecialchars($products[$productID]->desc), "rows='1' class='form-control autosize'");?></td>
|
||||
<td class='<?php echo zget($visibleFields, 'acl', 'hidden')?>'> <?php echo nl2br(html::radio("acls[$productID]", $lang->product->acls, $products[$productID]->acl));?></td>
|
||||
<td><?php echo html::input("orders[$productID]", $products[$productID]->order, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<?php
|
||||
if(isset($this->config->moreLinks["POs[$productID]"])) unset($this->config->moreLinks["POs[$productID]"]);
|
||||
|
||||
Reference in New Issue
Block a user