From 5e811d46e6d9fcff60a92ceaa9a6560878ec2a0d Mon Sep 17 00:00:00 2001 From: zenggang Date: Thu, 17 Aug 2023 02:15:39 +0000 Subject: [PATCH] * Finish task#100467 --- module/gitea/model.php | 4 +-- module/repo/config/dtable.php | 27 ++++++++++++++++++ module/repo/js/review.ui.js | 10 +++++++ module/repo/ui/review.html.php | 50 ++++++++++++++++++++++++++++++++++ 4 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 module/repo/js/review.ui.js create mode 100644 module/repo/ui/review.html.php diff --git a/module/gitea/model.php b/module/gitea/model.php index 21abb6ad20..b2603eedd3 100644 --- a/module/gitea/model.php +++ b/module/gitea/model.php @@ -402,8 +402,8 @@ class giteaModel extends model for($page = 1; true; $page++) { $results = json_decode(commonModel::http($url . "&page={$page}&limit=50")); - if(empty($results) || !is_array($results->data)) break; - if(!empty($results->data)) $allResults = array_merge($allResults, $results->data); + if(empty($results) || empty($results->data) || !is_array($results->data)) break; + $allResults = array_merge($allResults, $results->data); if(count($results->data) < 50) break; } diff --git a/module/repo/config/dtable.php b/module/repo/config/dtable.php index c22e1947c9..41355f5985 100644 --- a/module/repo/config/dtable.php +++ b/module/repo/config/dtable.php @@ -1,6 +1,7 @@ loadLang('sonarqube'); +$app->loadLang('bug'); $config->repo->dtable = new stdclass(); @@ -195,3 +196,29 @@ $config->repo->taskDtable->fieldList['name']['title'] = $lang->task->name $config->repo->taskDtable->fieldList['name']['link'] = array('module' => 'task', 'method' => 'view', 'params' => 'taskID={id}', 'target' => '_blank'); $config->repo->taskDtable->fieldList['assignedTo']['title'] = $lang->task->assignedTo; +$config->repo->reviewDtable = new stdclass(); + +$config->repo->reviewDtable->fieldList['id']['title'] = $lang->idAB; +$config->repo->reviewDtable->fieldList['id']['type'] = 'id'; + +$config->repo->reviewDtable->fieldList['title']['type'] = 'title'; +$config->repo->reviewDtable->fieldList['title']['link'] = array('module' => 'bug', 'method' => 'view', 'params' => 'bugID={id}&from=repo'); + +$config->repo->reviewDtable->fieldList['fileLocation']['title'] = $lang->repo->file . '/' . $lang->repo->location; +$config->repo->reviewDtable->fieldList['fileLocation']['name'] = 'entry'; +$config->repo->reviewDtable->fieldList['fileLocation']['width'] = '300'; + +$config->repo->reviewDtable->fieldList['revisionA']['name'] = 'revisionA'; +$config->repo->reviewDtable->fieldList['revisionA']['width'] = '100'; + +$config->repo->reviewDtable->fieldList['type']['title'] = $lang->repo->type; +$config->repo->reviewDtable->fieldList['type']['name'] = 'repoType'; +$config->repo->reviewDtable->fieldList['type']['map'] = $lang->repo->typeList; + +$config->repo->reviewDtable->fieldList['status']['map'] = $lang->bug->statusList; + +$config->repo->reviewDtable->fieldList['openedBy']['type'] = 'user'; + +$config->repo->reviewDtable->fieldList['assignedTo']['type'] = 'user'; + +$config->repo->reviewDtable->fieldList['openedDate']['type'] = 'datetime'; diff --git a/module/repo/js/review.ui.js b/module/repo/js/review.ui.js new file mode 100644 index 0000000000..32542074ae --- /dev/null +++ b/module/repo/js/review.ui.js @@ -0,0 +1,10 @@ +window.renderRepobugList = function (result, {col, row, value}) +{ + if(col.name == 'entry') + { + result[0] = {html: '' + row.data.lines + '' + row.data.entry + ''}; + return result; + } + + return result; +} diff --git a/module/repo/ui/review.html.php b/module/repo/ui/review.html.php new file mode 100644 index 0000000000..99f5fc180b --- /dev/null +++ b/module/repo/ui/review.html.php @@ -0,0 +1,50 @@ + + * @package mr + * @link https://www.zentao.net + */ +namespace zin; + +foreach($bugs as $bug) +{ + $bug->revisionA = $repo->SCM != 'Subversion' ? substr(strtr($bug->v2, '*', '-'), 0, 10) : $bug->v2; + + $lines = explode(',', trim($bug->lines, ',')); + $bug->entry = $repo->name . '/' . $this->repo->decodePath($bug->entry); + if(empty($bug->v1)) + { + $revision = $repo->SCM != 'Subversion' ? $this->repo->getGitRevisionName($bug->v2, zget($historys, $bug->v2)) : $bug->v2; + $bug->link = $this->repo->createLink('view', "repoID=$repoID&objectID=0&entry={$bug->entry}&revision={$bug->v2}") . "#L$lines[0]"; + } + else + { + $revision = $repo->SCM != 'Subversion' ? substr($bug->v1, 0, 10) : $bug->v1; + $revision .= ' : '; + $revision .= $repo->SCM != 'Subversion' ? substr($bug->v2, 0, 10) : $bug->v2; + if($repo->SCM != 'Subversion') $revision .= ' (' . zget($historys, $bug->v1) . ' : ' . zget($historys, $bug->v2) . ')'; + $bug->link = $this->repo->createLink('diff', "repoID=$repoID&objectID=0&entry={$bug->entry}&oldRevision={$bug->v1}&newRevision={$bug->v2}") . "#L$lines[0]"; + } +} +$bugs = initTableData($bugs, $config->repo->reviewDtable->fieldList); + +featureBar +( + set::linkParams("repoID=$repoID&browseType={key}"), +); + +dtable +( + set::userMap($users), + set::cols($config->repo->reviewDtable->fieldList), + set::data($bugs), + set::onRenderCell(jsRaw('window.renderRepobugList')), + set::footPager(usePager()), +); + +render(); +