'?object', // 当前任务。 'linkMRTitles' => '?array', // 当前任务关联的提交。 'linkCommits' => '?array' // 当前任务关联的提交。 ); protected function created() { global $lang; $task = $this->prop('task', data('task')); if(!$task) return array(); /* Linked MR. */ if(helper::hasFeature('devops')) { $canViewMR = common::hasPriv('mr', 'view'); $linkMRList = $this->prop('linkMRTitles', data('linkMRTitles')); $linkedPRs = $this->prop('linkedPRs', data('linkedPRs')); $data['mr'] = array ( 'title' => $lang->task->linkMR, 'items' => $linkMRList, 'url' => $canViewMR ? createLink('mr', 'view', 'MRID={id}') : false, 'props' => array('data-app' => 'devops'), 'onRender' => function($item, $mr) use($lang) { $item['titleClass'] = 'w-0 flex-1'; $statusClass = $mr->status; if($mr->status == 'opened') $statusClass = 'draft'; if($mr->status == 'merged') $statusClass = 'done'; $item['content'] = array('html' => "" . zget($lang->mr->statusList, $mr->status) . ''); return $item; } ); if($linkedPRs) { $data['pr'] = array ( 'title' => $lang->task->linkPR, 'items' => $linkedPRs, 'url' => hasPriv('pullreq', 'view') ? createLink('pullreq', 'view', 'MRID={id}') : false, 'props' => array('data-app' => 'devops'), 'onRender' => function($item, $mr) use($lang) { $item['titleClass'] = 'w-0 flex-1'; $statusClass = $mr->status; if($mr->status == 'opened') $statusClass = 'draft'; if($mr->status == 'merged') $statusClass = 'done'; $item['content'] = array('html' => "" . zget($lang->mr->statusList, $mr->status) . ''); return $item; } ); } $linkedCommits = $this->prop('linkCommits', data('linkCommits')); $data['linkCommit'] = array ( 'title' => $lang->task->linkCommit, 'items' => $linkedCommits, 'onRender' => function($item, $commit) { $item['text'] = isset($commit->comment) ? $commit->comment : ''; if(hasPriv('repo', 'revision')) { $item['url'] = createLink('repo', 'revision', "repoID={$commit->repo}&objectID=0&revision={$commit->revision}"); $item['data-app'] = 'devops'; } return $item; } ); } $linkedBugs = $this->prop('linkedBugs', data('linkedBugs')); $data['bug'] = array ( 'title' => $lang->bug->relatedBug, 'items' => $linkedBugs, 'url' => hasPriv('bug', 'view') ? createLink('bug', 'view', 'bugID={id}') : false ); $this->setProp('data', $data); } }