* Modify sonarqube frame for job create.

This commit is contained in:
caoyanyi
2022-01-13 01:58:15 +00:00
parent 3a156ec3a5
commit d0b3979347
4 changed files with 38 additions and 13 deletions

View File

@@ -213,7 +213,7 @@ $(document).ready(function()
$('#sonarProject #projectKey').remove();
$('#sonarProject #projectKey_chosen').remove();
$('#sonarProject .input-group').append("<div class='load-indicator loading'></div>");
$.getJSON(createLink('sonarqube', 'ajaxGetProjectList', 'sonarqubeID=' + sonarqubeID), function(html)
$.get(createLink('sonarqube', 'ajaxGetProjectList', 'sonarqubeID=' + sonarqubeID), function(html)
{
$('#sonarProject .loading').remove();
$('#sonarProject .input-group').append(html);

View File

@@ -198,10 +198,11 @@ $(document).ready(function()
$(document).on('change', '#sonarqubeServer', function()
{
var sonarqubeID = $(this).val();
var projectKey = sonarqubeID == job.sonarqubeServer ? btoa(job.projectKey) : '';
$('#sonarProject #projectKey').remove();
$('#sonarProject #projectKey_chosen').remove();
$('#sonarProject .input-group').append("<div class='load-indicator loading'></div>");
$.getJSON(createLink('sonarqube', 'ajaxGetProjectList', 'sonarqubeID=' + sonarqubeID), function(html)
$.get(createLink('sonarqube', 'ajaxGetProjectList', 'sonarqubeID=' + sonarqubeID + '&projectKey=' + projectKey), function(html)
{
$('#sonarProject .loading').remove();
$('#sonarProject .input-group').append(html);
@@ -253,6 +254,6 @@ $(document).ready(function()
$('#engine').change();
$('#jkServer').change();
$('#frame').change();
$('#sonarqubeServer').change();
$('#triggerType').change();
});

View File

@@ -37,21 +37,21 @@ class sonarqube extends control
}
/**
* Ajax get project list.
* Ajax get project select.
*
* @param int $engine
* @param int $sonarqubeID
* @param string $projectKey
* @access public
* @return void
*/
public function ajaxGetProjectList($sonarqubeID)
public function ajaxGetProjectList($sonarqubeID, $projectKey = '')
{
$projectList = $this->loadModel('sonarqube')->getList($sonarqubeID);
$projectPairs = array(0 => '');
foreach($projectList as $project)
{
$projectPairs[$project->id] = $project->name;
}
echo html::select('projectKey', $projectPairs, '', "class='form-control chosen' required");
$projectList = $this->loadModel('sonarqube')->getAllProjectList($sonarqubeID);
$projectPairs = array('' => '');
foreach($projectList as $project) $projectPairs[$project->key] = $project->name;
echo html::select('projectKey', $projectPairs, base64_decode($projectKey), "class='form-control chosen' required");
}
/**

View File

@@ -71,4 +71,28 @@ class sonarqubeModel extends model
$header = 'Authorization: Basic ' . $token;
return json_decode(commonModel::http($url, null, array(), $header));
}
/**
* Get all project list.
*
* @param int $sonarqubeID
* @access public
* @return array
*/
public function getAllProjectList($sonarqubeID)
{
list($url, $header) = $this->getApiBase($sonarqubeID);
$url = sprintf($url, 'projects/search?ps=500&p=1');
$result = json_decode(commonModel::http($url, null, array(), $header[0]));
$projectList = zget($result, 'components', array());
$total = isset($result->paging->total) ? $result->paging->total : 0;
for($i = 2; $i <= $total; $i++)
{
$url = sprintf($url, 'projects/search?ps=500&p=' . $i);
$pageData = json_decode(commonModel::http($url, null, array(), $header[0]));
$projectList += zget($pageData, 'components', array());
}
return (array)$projectList;
}
}