* @package mr * @link https://www.zentao.net */ namespace zin; jsVar('orderBy', $orderBy); jsVar('sortLink', $sortLink); dropmenu ( set::url(createLink('execution', 'ajaxGetDropMenuData', "objectID=$objectID&module={$app->rawModule}&method={$app->rawMethod}")) ); foreach($MRList as $index => $MR) { if(!isset($repoList[$MR->repoID])) { unset($MRList[$index]); continue; } $repo = $repoList[$MR->repoID]; $MR->canDelete = ($app->user->admin or (isset($openIDList[$MR->hostID]) and isset($projects[$MR->hostID][$MR->sourceProject]->owner->id) and $projects[$MR->hostID][$MR->sourceProject]->owner->id == $openIDList[$MR->hostID])) ? '' : 'disabled'; if($repo->SCM == 'Gitlab') { $MR->canEdit = (isset($projects[$MR->hostID][$MR->sourceProject]->isDeveloper) and $projects[$MR->hostID][$MR->sourceProject]->isDeveloper == true) ? '' : 'disabled'; } elseif($repo->SCM == 'Gitea') { $MR->canEdit = (isset($projects[$MR->hostID][$MR->sourceProject]->allow_merge_commits) and $projects[$MR->hostID][$MR->sourceProject]->allow_merge_commits == true) ? '' : 'disabled'; } elseif($repo->SCM == 'Gogs') { $MR->canEdit = (isset($projects[$MR->hostID][$MR->sourceProject]->permissions->push) and $projects[$MR->hostID][$MR->sourceProject]->permissions->push) ? '' : 'disabled'; } if($repo->SCM == 'Gitlab') { $MR->sourceProject = isset($projects[$MR->hostID][$MR->sourceProject]) ? $projects[$MR->hostID][$MR->sourceProject]->name_with_namespace . ':' . $MR->sourceBranch : $MR->sourceProject . ':' . $MR->sourceBranch; $MR->targetProject = isset($projects[$MR->hostID][$MR->targetProject]) ? $projects[$MR->hostID][$MR->targetProject]->name_with_namespace . ':' . $MR->targetBranch : $MR->targetProject . ':' . $MR->targetBranch; } else { $MR->sourceProject = isset($projects[$MR->hostID][$MR->sourceProject]) ? $projects[$MR->hostID][$MR->sourceProject]->full_name . ':' . $MR->sourceBranch : $MR->sourceProject . ':' . $MR->sourceBranch; $MR->targetProject = isset($projects[$MR->hostID][$MR->targetProject]) ? $projects[$MR->hostID][$MR->targetProject]->full_name . ':' . $MR->targetBranch : $MR->targetProject . ':' . $MR->targetBranch; } $MR->mergeStatus = ($MR->status == 'closed' || $MR->status == 'merged') ? zget($lang->mr->statusList, $MR->status) : zget($lang->mr->mergeStatusList, $MR->mergeStatus); if($MR->status == 'merged' or $MR->status == 'closed') { $MR->approvalStatus = '-'; } else { $MR->approvalStatus = empty($MR->approvalStatus) ? $lang->mr->approvalStatusList['notReviewed'] : $lang->mr->approvalStatusList[$MR->approvalStatus]; } } $MRs = initTableData($MRList, $config->mr->dtable->fieldList, $this->mr); $repoData = array(array( 'text' => $lang->mr->statusList['all'], 'data-app' => $app->tab, 'url' => createLink('mr', 'browse', "repoID=0&mode={$mode}¶m={$param}&objectID={$objectID}"), 'active' => !$repoID )); foreach($repoList as $repo) { if(!in_array($repo->SCM, $this->config->repo->gitServiceTypeList)) continue; $repoData[] = array( 'text' => $repo->name, 'data-app' => $app->tab, 'url' => createLink('mr', 'browse', "repoID={$repo->id}&mode={$mode}¶m={$param}&objectID={$objectID}"), 'active' => $repo->id == $repoID ); } featureBar ( set::current($mode != 'status' ? $mode : $param), set::linkParams("repoID={$repoID}&mode=status¶m={key}&objectID={$objectID}"), count($repoPairs) > 1 ? to::leading( dropdown ( btn(setClass('dropdown-toggle ghost btn square btn-default'), zget($repoPairs, $repoID, $lang->mr->statusList['all'])), set::items($repoData), set::placement('bottom-end'), ) ) : null ); toolBar ( hasPriv('mr', 'create') ? item( set::text($lang->mr->create), set::icon('plus'), set::className('btn primary'), set::url(createLink('mr', 'create', "repoID=" . ($repoID ? $repoID : key($repoList)) . "&objectID={$objectID}")), set('data-app', $app->tab) ) : null, ); dtable ( set::userMap($users), set::cols($config->mr->dtable->fieldList), set::data($MRs), set::sortLink(jsRaw('createSortLink')), set::footPager(usePager()), ); render();