From f38aa4d8237ea0df63e4aece6cc9db898c702d18 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Wed, 15 Jan 2025 13:26:01 +0800 Subject: [PATCH] * [misc] adjust job sync logic for visit browse page. --- module/compile/tao.php | 2 +- module/job/js/browse.ui.js | 4 ++-- module/job/model.php | 19 +++++++++++++++++-- module/job/ui/browse.html.php | 1 - 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/module/compile/tao.php b/module/compile/tao.php index ef11ca078d..3efbcb5e12 100644 --- a/module/compile/tao.php +++ b/module/compile/tao.php @@ -90,7 +90,7 @@ class compileTao extends compileModel $updatedDate = isset($build->updated_at) ? strtotime($build->updated_at) : $createdDate; if(isset($build->updated)) { - if(strlen($build->updated) > 10) $updatedDate = intval($build->updated / 1000); + if(strlen((string)$build->updated) > 10) $updatedDate = intval($build->updated / 1000); $updatedDate = $build->updated; } $data->updateDate = date('Y-m-d H:i:s', $updatedDate); diff --git a/module/job/js/browse.ui.js b/module/job/js/browse.ui.js index 2b33c52147..017e5cfa11 100644 --- a/module/job/js/browse.ui.js +++ b/module/job/js/browse.ui.js @@ -15,7 +15,7 @@ window.renderCell = function(result, {col, row}) window.importJob = function() { - if(repoID === undefined || repoID === null || typeof repoID != "number" || !canImportJob) return; + if(repoID === undefined || repoID === null || typeof repoID != "number") return; var url = $.createLink('job', 'ajaxImportJobs', "repoID=" + repoID); $.getJSON(url, function(data) @@ -34,4 +34,4 @@ window.importJob = function() $(function() { importJob(); -}); \ No newline at end of file +}); diff --git a/module/job/model.php b/module/job/model.php index 43ea5bea9e..dba84f1f75 100644 --- a/module/job/model.php +++ b/module/job/model.php @@ -573,17 +573,32 @@ class jobModel extends model $job->server = $repo->serviceHost; $job->createdBy = 'system'; - $addedPipelines = array(); + $jobs = $this->dao->select('id, pipeline')->from(TABLE_JOB)->where('repo')->eq($repoID)->fetchPairs(); + $existsPipelines = array(); + foreach($jobs as $pipeline) + { + if(empty($pipeline)) continue; + + $pipeline = json_decode($pipeline); + if(empty($pipeline)) continue; + + $existsPipelines[] = $pipeline->reference; + } + + $addedPipelines = array(); foreach($pipelines as $pipeline) { if(!empty($pipeline->disabled)) continue; + $ref = isset($pipeline->ref) ? $pipeline->ref : $pipeline->default_branch; + if(in_array($ref, $existsPipelines)) continue; + $createdDate = helper::now(); if(isset($pipeline->created_at)) $createdDate = date('Y-m-d H:i:s', strtotime($pipeline->created_at)); $job->createdDate = $createdDate; if(isset($pipeline->updated_at)) $job->editedDate = date('Y-m-d H:i:s', strtotime($pipeline->updated_at)); - $pipelineMeta = array('project' => $repo->serviceProject, 'reference' => isset($pipeline->ref) ? $pipeline->ref : $pipeline->default_branch); + $pipelineMeta = array('project' => $repo->serviceProject, 'reference' => $ref); $job->pipeline = json_encode($pipelineMeta); $hash = md5($job->pipeline); diff --git a/module/job/ui/browse.html.php b/module/job/ui/browse.html.php index 0d0ce7d342..42dbb24316 100644 --- a/module/job/ui/browse.html.php +++ b/module/job/ui/browse.html.php @@ -13,7 +13,6 @@ declare(strict_types=1); namespace zin; jsVar('repoID', $repoID); -jsVar('canImportJob', empty($jobList)); if($repoID) {