| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- namespace zin;
- require_once dirname(__DIR__) . DS . 'relatedlist' . DS . 'v1.php';
- class taskMiscInfo extends relatedList
- {
- /**
- * @var mixed[]
- */
- protected static $defineProps = array
- (
- 'task' => '?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' => "<span class='status-{$statusClass}'>" . zget($lang->mr->statusList, $mr->status) . '</span>');
- 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' => "<span class='status-{$statusClass}'>" . zget($lang->mr->statusList, $mr->status) . '</span>');
- 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);
- }
- }
|