From ea15462e019027db4eb92bf722e0f2e25c396199 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 3 Oct 2019 22:57:31 +0200 Subject: [PATCH] handle wip branch from no -wip jenkins jobs (#36676) --- javascripts/theme.js | 59 +++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/javascripts/theme.js b/javascripts/theme.js index 1a04efb..a023380 100644 --- a/javascripts/theme.js +++ b/javascripts/theme.js @@ -177,38 +177,53 @@ $(function() { } }); + function handle_jobs(jobs) { + $(jobs).each(function(idx, job) { + if (job.name.indexOf('wip%2F' + issue_no) == 0) { + $.ajax({ + url: job.url + 'lastBuild/api/json', + async: true, + dataType: 'json', + crossDomain: true, + success: function(data) { + var date = new Date(data.timestamp); + var $jenkins_link = $('
Jenkins: ' + data.fullDisplayName + ': ' + data.result + '' + + ' (' + date.toLocaleString() + ') ' + + '+ Gitolite' + + '
'); + $jenkins_link.appendTo($('#history')); + } + }); + } + }); + } + if ($('.controller-issues.action-show a.overview').length) { var project_name = $('a.overview').attr('href').split('/')[2]; var issue_no = $('.icon-edit[accesskey=e]').attr('href').split('/')[2]; - $.ajax({ + var call1 = $.ajax({ url: 'https://jenkins.entrouvert.org/job/' + project_name + '-wip/api/json', async: true, dataType: 'json', crossDomain: true, - success: function(data) { - $(data.jobs).each(function(idx, job) { - if (job.name.indexOf('wip%2F' + issue_no) == 0) { - $.ajax({ - url: job.url + 'lastBuild/api/json', - async: true, - dataType: 'json', - crossDomain: true, - success: function(data) { - var date = new Date(data.timestamp); - var $jenkins_link = $('
Jenkins: ' + data.fullDisplayName + ': ' + data.result + '' + - ' (' + date.toLocaleString() + ') ' + - '+ Gitolite' + - '
'); - $jenkins_link.appendTo($('#history')); - } - }); - } - }); - } + }); + call1.then(function (data) { + handle_jobs(data.jobs); + }, function () { + var call2 = $.ajax({ + url: 'https://jenkins.entrouvert.org/job/' + project_name + '/api/json', + async: true, + dataType: 'json', + crossDomain: true, + }); + call2.then(function (data) { + handle_jobs(data.jobs); + }); }); } + var user_href = $('#loggedas a').attr('href'); if (user_href) { $('div.journal.has-notes').each(function(idx, entry) {