app->user->account; return $this->dao->select('t1.*,t2.model')->from(TABLE_NC)->alias('t1') ->leftjoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id') ->where('t1.deleted')->eq(0) ->andWhere('t2.deleted')->eq(0) ->beginIF(!$this->app->user->admin)->andWhere('t1.project')->in($this->app->user->view->projects . ',' . $this->app->user->view->sprints)->fi() ->beginIF($browseType == 'assignedToMe')->andWhere('t1.assignedTo')->eq($account)->fi() ->beginIF($browseType == 'createdByMe')->andWhere('t1.createdBy')->eq($account)->fi() ->beginIF($browseType == 'resolvedByMe')->andWhere('t1.resolvedBy')->eq($account)->fi() ->beginIF($browseType == 'closedByMe')->andWhere('t1.closedBy')->eq($account)->fi() ->beginIF($status)->andWhere('t1.status')->in($status)->fi() ->orderBy('t1.' . $orderBy) ->page($pager) ->fetchAll('id'); } /** * Get products pairs. * * @access public * @return array */ public function getProductPairs() { return $this->dao->select('id, name')->from(TABLE_PRODUCT) ->where('deleted')->eq(0) ->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->products)->fi() ->fetchPairs(); } /** * AJAX: get project. * * @param string $browseType * @access public * @return string */ public function ajaxGetProject($browseType) { $reviewProject = $this->loadModel('project')->getReviewProject(); $projectName = array(); foreach($reviewProject as $project) { $projectName[] = $project->name; } $projectPinYin = common::convert2Pinyin($projectName); $projectLink = helper::createLink('my', 'review', "program=%s&browseType=$browseType"); $listLink = ''; foreach($reviewProject as $item) { $listLink .= html::a(sprintf($projectLink, $item->id), '' . $item->name, '', 'title="' . $item->name . '" data-key="' . zget($projectPinYin, $item->name) . '"'); } $html = '
' . $listLink . '
'; $html .= '
'; $html .= '
'; return $html; } /** * Print cell data. * * @param object $col * @param object $review * @param array $users * @param array $products * @param array $pendingList * @access public * @return void */ public function reviewPrintCell($col, $review, $users, $products = array(), $pendingList = array()) { $canView = common::hasPriv('my', 'review'); $canBatchAction = false; $account = $this->app->user->account; $id = $col->id; if($col->show) { $class = "c-$id"; $title = ''; if($id == 'id') $class .= ' cell-id'; if($id == 'status') { $class .= ' status-' . $review->status; } if($id == 'result') { $class .= ' status-' . $review->result; } if($id == 'title') { $class .= ' text-left'; $title = "title='{$review->title}'"; } if($id == 'reviewedBy') { $reviewedByList = ''; $reviewedBy = explode(',', trim($review->reviewedBy, ',')); foreach($reviewedBy as $key => $account) { $account = trim($account); if(empty($account)) continue; $reviewedByList .= zget($users, $account) . " "; $reviewedBy[$key] = zget($users, $account); } $title = "title='{$reviewedByList}'"; $reviewedBy = count($reviewedBy) > 1 ? $reviewedBy[0] . ' ...' : $reviewedBy[0]; } echo ""; switch($id) { case 'id': if($canBatchAction) { echo html::checkbox('reviewIDList', array($review->id => '')) . html::a(helper::createLink('review', 'view', "reviewID=$review->id"), sprintf('%03d', $review->id)); } else { printf('%03d', $review->id); } break; case 'title': echo html::a(helper::createLink('review', 'view', "reviewID=$review->id", '', '', $review->project), $review->title); break; case 'category': echo zget($this->lang->baseline->objectList, $review->category); break; case 'product': echo zget($products, $review->product); break; case 'version': echo $review->version; break; case 'status': echo zget($this->lang->review->statusList, $review->status); break; case 'reviewedBy': echo $reviewedBy; break; case 'createdBy': echo zget($users, $review->createdBy); break; case 'createdDate': echo $review->createdDate; break; case 'deadline': echo $review->deadline; break; case 'lastReviewedDate': echo $review->lastReviewedDate; break; case 'lastAuditedDate': echo $review->lastAuditedDate; break; case 'result': if($review->status == 'reviewing') break; echo zget($this->lang->review->resultList, $review->result); break; case 'auditResult': echo zget($this->lang->review->auditResultList, $review->auditResult); break; case 'actions': $params = "reviewID=$review->id&from={$this->app->rawMethod}"; if(isset($pendingList[$review->id])) { common::printIcon('review', 'assess', $params, $review, 'list', 'glasses'); } else { common::printIcon('review', 'assess', $params, $review, 'list', 'glasses', '', 'disabled'); } $review->approval = isset($review->approval) ? $review->approval : 0; common::printIcon('approval', 'progress', "approvalID=$review->approval", $review, 'list', 'list-alt', '', 'iframe', 1); } echo ''; } }