* Modify sonarqube frame for job create.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user