$programProducts)
{
$productCounts[$programID]['myProduct'] = 0;
$productCounts[$programID]['others'] = 0;
$productCounts[$programID]['closed'] = 0;
foreach($programProducts as $product)
{
if($product->status == 'normal' and $product->PO == $this->app->user->account) $productCounts[$programID]['myProduct'] ++;
if($product->status == 'normal' and !($product->PO == $this->app->user->account)) $productCounts[$programID]['others'] ++;
if($product->status == 'closed') $productCounts[$programID]['closed'] ++;
$productNames[] = $product->name;
}
}
$productsPinYin = common::convert2Pinyin($productNames);
$myProductsHtml = $config->systemMode == 'ALM' ? '
' : '';
$normalProductsHtml = $config->systemMode == 'ALM' ? '' : '';
$closedProductsHtml = $config->systemMode == 'ALM' ? '' : '';
foreach($products as $programID => $programProducts)
{
/* Add the program name before project. */
if($programID and $config->systemMode == 'ALM')
{
$programName = zget($programs, $programID);
if($productCounts[$programID]['myProduct']) $myProductsHtml .= '';
if($productCounts[$programID]['others']) $normalProductsHtml .= '';
if($productCounts[$programID]['closed']) $closedProductsHtml .= '';
}
foreach($programProducts as $index => $product)
{
if($product->id == $productID) $currentProduct = $product;
$selected = $product->id == $productID ? 'selected' : '';
$productName = ($config->systemMode == 'ALM' and $product->line) ? zget($lines, $product->line, '') . ' / ' . $product->name : $product->name;
$linkHtml = $this->product->setParamsForLink($module, $link, $projectID, $product->id);
$locateTab = ($module == 'testtask' and $method == 'browseUnits' and $app->tab == 'project') ? '' : "data-app='$app->tab'";
if($product->status == 'normal' and $product->PO == $this->app->user->account)
{
$myProductsHtml .= '- ' . html::a($linkHtml, $productName, '', "class='$selected clickable' title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$app->tab'") . '
';
if($selected == 'selected') $tabActive = 'myProduct';
$myProducts ++;
}
else if($product->status == 'normal' and !($product->PO == $this->app->user->account))
{
$normalProductsHtml .= '- ' . html::a($linkHtml, $productName, '', "class='$selected clickable' title='{$productName}' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$app->tab'") . '
';
if($selected == 'selected') $tabActive = 'other';
$others ++;
}
else if($product->status == 'closed')
{
$closedProductsHtml .= '- ' . html::a($linkHtml, $productName, '', "class='$selected clickable' title='$productName' class='closed' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$app->tab'") . '
';
if($selected == 'selected') $tabActive = 'closed';
}
/* If the programID is greater than 0, the product is the last one in the program, print the closed label. */
if($programID and !isset($programProducts[$index + 1]))
{
if($productCounts[$programID]['myProduct']) $myProductsHtml .= '
';
if($productCounts[$programID]['others']) $normalProductsHtml .= '
';
if($productCounts[$programID]['closed']) $closedProductsHtml .= '
';
}
}
}
$myProductsHtml .= '
';
$normalProductsHtml .= '
';
$closedProductsHtml .= '
';
?>
- product->mine, '', "data-toggle='tab' class='not-list-item not-clear-menu'");?>
-
- product->other, '', "data-toggle='tab' class='not-list-item not-clear-menu'")?>
-
product->closedProduct?>