* @package ZenTaoPMS * @version $Id */ ?>

product->noProduct;?>

' data-preserve-nested='true' data-expand-nest-child='true'> product->getFlowExtendFields(); foreach($extendFields as $extendField) echo ""; ?> $program):?> $lineName) { if(!isset($program[$lineID])) { $program[$lineID] = array(); $program[$lineID]['product'] = ''; $program[$lineID]['lineName'] = $lineName; } } } ?> systemMode == 'ALM'):?> > ";?> $line):?> systemMode == 'ALM'):?> config->systemMode == 'ALM' and $programID) { $trAttrs = "data-id='line.$lineID' data-parent='program.$programID'"; $trAttrs .= " data-nest-parent='program.$programID' data-nest-path='program.$programID,line.$lineID'" . "class='text-center'"; } else { $trAttrs = "data-id='line.$lineID' data-parent='0' data-nested='true'"; $trClass = 'is-top-level table-nest-child text-center'; $trAttrs .= " class='$trClass'"; } ?> > ";?> $product):?> stories['finishClosed'] + $product->stories['unclosed']; $trClass = ''; if($product->line and $this->config->systemMode == 'ALM') { $path = "line.$product->line,$product->id"; if($this->config->systemMode == 'ALM' and $product->program) $path = "program.$product->program,$path"; $trAttrs = "data-id='$product->id' data-parent='line.$product->line'"; $trClass .= ' is-nest-child table-nest'; $trAttrs .= " data-nest-parent='line.$product->line' data-nest-path='$path'"; } elseif($product->program and $this->config->systemMode == 'ALM') { $trAttrs = "data-id='$product->id' data-parent='program.$product->program'"; $trClass .= ' is-nest-child table-nest'; $trAttrs .= " data-nest-parent='program.$product->program' data-nest-path='program.$product->program,$product->id'"; } else { $trAttrs = "data-id='$product->id' data-parent='0'"; $trClass .= ' no-nest'; } $trAttrs .= " class='$trClass'"; ?> > " . $this->loadModel('flow')->getFieldValue($extendField, $product) . "";?>
lang->selectAll}'>";?> systemMode == 'ALM'):?> product->name);?> product->manager);?> story->story;?> bug->common;?> product->plan;?> product->release;?> {$extendField->name}actions;?>
story->draft;?> story->activate;?> story->change;?> story->statusList['reviewing'];?>
story->completeRate;?>
bug->activate;?> bug->fixedRate;?>
$usersAvatar[$programPM], 'account' => $programPM, 'name' => $userName), 'avatar-circle avatar-top avatar-' . zget($userIdPairs, $programPM)); $userID = isset($userIdPairs[$programPM]) ? $userIdPairs[$programPM] : ''; echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), $userName, '', "title='{$userName}' class='iframe' data-width='600'"); } ?> % %
% %
id => ''));?> createLink('product', 'browse', 'productID=' . $product->id), $product->name); ?> PO)) { $userName = zget($users, $product->PO); echo html::smallAvatar(array('avatar' => $usersAvatar[$product->PO], 'account' => $product->PO, 'name' => $userName), 'avatar-circle avatar-' . zget($userIdPairs, $product->PO)); $userID = isset($userIdPairs[$product->PO]) ? $userIdPairs[$product->PO] : ''; echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), $userName, '', "title='{$userName}' class='iframe' data-width='600'"); } ?> stories['draft'];?> stories['active'];?> stories['changing'];?> stories['reviewing'];?> stories['finishClosed'] / $totalStories, 3) * 100;?>% unResolved;?> unResolved + $product->fixedBugs) == 0 ? 0 : round($product->fixedBugs / ($product->unResolved + $product->fixedBugs), 3) * 100;?>% plans;?> releases;?> product->buildOperateMenu($product, 'browse');?>
product->checkedProducts);?> app->getClientLang());?>