$programProjects)
{
$projectCounts[$programID]['myProject'] = 0;
$projectCounts[$programID]['others'] = 0;
$projectCounts[$programID]['closed'] = 0;
foreach($programProjects as $project)
{
if($project->status != 'done' and $project->status != 'closed' and $project->PM == $this->app->user->account) $projectCounts[$programID]['myProject'] ++;
if($project->status != 'done' and $project->status != 'closed' and !($project->PM == $this->app->user->account)) $projectCounts[$programID]['others'] ++;
if($project->status == 'done' or $project->status == 'closed') $projectCounts[$programID]['closed'] ++;
$projectNames[] = $project->name;
}
}
$projectsPinYin = common::convert2Pinyin($projectNames);
$myProjectsHtml = $config->systemMode == 'ALM' ? '
' : '';
$normalProjectsHtml = $config->systemMode == 'ALM' ? '' : '';
$closedProjectsHtml = $config->systemMode == 'ALM' ? '' : '';
$indexLink = helper::createLink('project', 'index', "projectID=%s");
foreach($projects as $programID => $programProjects)
{
/* Add the program name before project. */
if(isset($programs[$programID]) and $config->systemMode == 'ALM')
{
$programName = zget($programs, $programID);
if($projectCounts[$programID]['myProject']) $myProjectsHtml .= '';
if($projectCounts[$programID]['others']) $normalProjectsHtml .= '';
if($projectCounts[$programID]['closed']) $closedProjectsHtml .= '';
}
foreach($programProjects as $index => $project)
{
if($project->id == $projectID) $currentProject = $project;
$selected = $project->id == $projectID ? 'selected' : '';
$icon = ' ';
if($project->model != 'waterfall' and (in_array($module, $config->waterfallModules) or $method == 'track'))
{
$link = $indexLink;
}
elseif((in_array($project->model, array('scrum', 'agileplus'))) and
(
(in_array($module, array('issue', 'risk', 'meeting')) and !helper::hasFeature("{$project->model}_{$module}")) or
($module == 'report' and $method == 'projectsummary' and !helper::hasFeature("{$project->model}_measrecord"))
))
{
$link = $indexLink;
}
elseif(in_array($project->model, array('waterfall', 'waterfallplus')) and
(
(in_array($module, array('issue', 'risk', 'opportunity', 'measrecord', 'auditplan', 'meeting')) and !helper::hasFeature("{$project->model}_{$module}")) or
($module == 'pssp' and !helper::hasFeature("{$project->model}_process")) or
($module == 'report' and $method == 'projectsummary' and !helper::hasFeature("{$project->model}_measrecord"))
))
{
$link = $indexLink;
}
elseif($project->model == 'kanban' and (($module == 'project' and !in_array($method, array('build', 'view', 'manageproducts', 'team', 'whitelist', 'managemembers', 'addwhitelist'))) or $module != 'project'))
{
$link = $indexLink;
}
elseif(empty($project->hasProduct) and $module == 'project' and $method == 'manageproducts')
{
$link = $indexLink;
}
elseif(empty($project->multiple))
{
$link = $indexLink;
}
else
{
$link = $defaultLink;
}
/* Set link when project redefines permissions. */
if($project->auth == 'reset') $link = helper::createLink('project', 'index', "projectID=%s");
if($project->model != 'scrum') $icon = " ";
$projectName = $icon . $project->name;
if($project->status != 'done' and $project->status != 'closed' and $project->PM == $this->app->user->account)
{
$myProjectsHtml .= '- ' . html::a(sprintf($link, $project->id), $projectName, '', "class='$selected clickable' title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'") . '
';
if($selected == 'selected') $tabActive = 'myProject';
$myProjects ++;
}
else if($project->status != 'done' and $project->status != 'closed' and !($project->PM == $this->app->user->account))
{
$normalProjectsHtml .= '- ' . html::a(sprintf($link, $project->id), $projectName, '', "class='$selected clickable' title='{$project->name}' data-key='" . zget($projectsPinYin, $project->name, '') . "'") . '
';
if($selected == 'selected') $tabActive = 'other';
$others ++;
}
else if($project->status == 'done' or $project->status == 'closed')
{
$closedProjectsHtml .= '- ' . html::a(sprintf($link, $project->id), $projectName, '', "class='$selected clickable' title='$project->name' data-key='" . zget($projectsPinYin, $project->name, '') . "'") . '
';
if($selected == 'selected') $tabActive = 'closed';
}
/* If the project is the last one in the program, print the closed label. */
if($config->systemMode == 'ALM' and isset($programs[$programID]) and !isset($programProjects[$index + 1]))
{
if($projectCounts[$programID]['myProject']) $myProjectsHtml .= '
';
if($projectCounts[$programID]['others']) $normalProjectsHtml .= '
';
if($projectCounts[$programID]['closed']) $closedProjectsHtml .= '
';
}
}
}
$myProjectsHtml .= '
';
$normalProjectsHtml .= '
';
$closedProjectsHtml .= '
';
?>
- project->myProject, '', "data-toggle='tab' class='not-list-item not-clear-menu'");?>
-
- project->other, '', "data-toggle='tab' class='not-list-item not-clear-menu'")?>
-
project->closedProject?>