* Modify page error.

This commit is contained in:
caoyanyi
2022-01-20 05:37:33 +00:00
parent 7e96eb9f68
commit f87294adf7
4 changed files with 25 additions and 18 deletions
+1 -1
View File
@@ -820,7 +820,7 @@ class gitlab extends control
$this->app->loadClass('pager', $static = true);
$recTotal = count($branches);
$pager = new pager($recTotal, $recPerPage, $pageID);
$branchList = array_chunk($branches, $pager->recPerPage);
$branchList = is_array($branches) ? array_chunk($branches, $pager->recPerPage) : array();
$this->view->keyword = $keyword;
$this->view->pager = $pager;
+20 -15
View File
@@ -56,15 +56,23 @@ class gitlabModel extends model
/**
* Get gitlab api base url by gitlab id.
*
* @param int $id
* @param int $gitlabID
* @access public
* @return string
*/
public function getApiRoot($id)
public function getApiRoot($gitlabID)
{
$gitlab = $this->getByID($id);
$gitlab = $this->getByID($gitlabID);
if(!$gitlab) return '';
return rtrim($gitlab->url, '/') . '/api/v4%s' . "?private_token={$gitlab->token}";
$sudoParam = '';
if(!$this->app->user->admin)
{
$openID = $this->getUserIDByZentaoAccount($gitlabID, $this->app->user->account);
if($openID) $sudoParam = "&sudo={$openID}";
}
return rtrim($gitlab->url, '/') . '/api/v4%s' . "?private_token={$gitlab->token}" . $sudoParam;
}
/**
@@ -613,17 +621,15 @@ class gitlabModel extends model
*/
public function apiGetProjectsPager($gitlabID, $keyword = '', $orderBy = 'id_desc', $pager = null)
{
$gitlab = $this->getByID($gitlabID);
if(!$gitlab) return array();
$apiRoot = $this->getApiRoot($gitlabID);
if(!$apiRoot) return array();
$host = rtrim($gitlab->url, '/');
$host .= '/api/v4/projects';
$url = sprintf($apiRoot, "/projects");
/* Parse order string. */
$order = explode('_', $orderBy);
$keyword = urlencode($keyword);
$result = commonModel::httpWithHeader($host . "?private_token={$gitlab->token}&simple=true&&per_page={$pager->recPerPage}&order_by={$order[0]}&sort={$order[1]}&page={$pager->pageID}&search={$keyword}&search_namespaces=true");
$result = commonModel::httpWithHeader($url . "&simple=true&&per_page={$pager->recPerPage}&order_by={$order[0]}&sort={$order[1]}&page={$pager->pageID}&search={$keyword}&search_namespaces=true");
$header = $result['header'];
$recTotal = $header['X-Total'];
@@ -642,16 +648,15 @@ class gitlabModel extends model
*/
public function apiGetProjects($gitlabID)
{
$gitlab = $this->getByID($gitlabID);
if(!$gitlab) return array();
$apiRoot = $this->getApiRoot($gitlabID);
if(!$apiRoot) return array();
$host = rtrim($gitlab->url, '/');
$host .= '/api/v4/projects';
$url = sprintf($apiRoot, "/projects");
$allResults = array();
for($page = 1; true; $page++)
{
$results = json_decode(commonModel::http($host . "?private_token={$gitlab->token}&simple=true&page={$page}&per_page=100"));
$results = json_decode(commonModel::http($host . "&simple=true&page={$page}&per_page=100"));
if(!is_array($results)) break;
if(!empty($results)) $allResults = array_merge($allResults, $results);
if(count($results)<100 or $page > 10) break;
+2
View File
@@ -21,6 +21,8 @@ class jobModel extends model
public function getByID($id)
{
$job = $this->dao->select('*')->from(TABLE_JOB)->where('id')->eq($id)->fetch();
if(empty($job)) return new stdClass();
if(strtolower($job->engine) == 'gitlab')
{
$pipeline = json_decode($job->pipeline);
+2 -2
View File
@@ -139,9 +139,9 @@
</tr>
<tr>
<th><?php echo $lang->compile->atTime;?></th>
<td><?php echo $compileJob ? $compileJob->lastExec : $lang->mr->compileUnexecuted;?></td>
<td><?php echo zget($compileJob, 'lastExec', $lang->mr->compileUnexecuted);?></td>
</tr>
<?php if($compileJob):?>
<?php if($compileJob && !empty($compileJob->id)):?>
<tr>
<th><?php echo $lang->compile->result;?></th>
<td>