121 lines
3.3 KiB
JavaScript
121 lines
3.3 KiB
JavaScript
/**
|
|
* Urlencode param.
|
|
*
|
|
* @param param $param
|
|
* @access public
|
|
* @return string
|
|
*/
|
|
function urlencode(param)
|
|
{
|
|
if(hostType != 'gitlab') return Base64.encode(encodeURIComponent(param));
|
|
|
|
return param;
|
|
}
|
|
|
|
/**
|
|
* Get branch priv.
|
|
*
|
|
* @param int|string $project
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function getBranchPriv(project)
|
|
{
|
|
var sourceProject = projectNamespace ? urlencode(projectNamespace) : project;
|
|
var branchUrl = $.createLink('mr', 'ajaxGetBranchPrivs', "hostID=" + hostID + "&project=" + sourceProject);
|
|
$.get(branchUrl, function(response)
|
|
{
|
|
branchPrivs = eval('(' + response + ')');
|
|
});
|
|
}
|
|
|
|
window.onProjectChange = function()
|
|
{
|
|
var sourceProject = projectNamespace ? urlencode(projectNamespace) : projectID;
|
|
var branchUrl = $.createLink(hostType, 'ajaxGetProjectBranches', "id=" + hostID + "&projectID=" + sourceProject);
|
|
$.ajaxSubmit(
|
|
{
|
|
url: branchUrl,
|
|
method: 'get',
|
|
onComplete: function(result)
|
|
{
|
|
zui.Picker.query("[name='sourceBranch']").render({items: result});
|
|
|
|
const picker = zui.Picker.query("[name='targetBranch']");
|
|
picker.render({items: result});
|
|
picker.$.setValue('');
|
|
},
|
|
});
|
|
|
|
getBranchPriv(projectID);
|
|
}
|
|
|
|
function onSourceProjectChange()
|
|
{
|
|
var sourceProject = urlencode($('#sourceProject').val());
|
|
if(!sourceProject) return false;
|
|
|
|
if(sourceProject) getBranchPriv(sourceProject);
|
|
}
|
|
|
|
function onBranchChange()
|
|
{
|
|
$('#removeSourceBranch').removeAttr('disabled');
|
|
|
|
var sourceProject = $('#sourceProject').val();
|
|
var sourceBranch = $('#sourceBranch').val();
|
|
var targetProject = $('#targetProject').val();
|
|
var targetBranch = $('#targetBranch').val();
|
|
if(branchPrivs[sourceBranch])
|
|
{
|
|
$('#removeSourceBranch').attr('disabled', 'true');
|
|
$('#removeSourceBranch').attr("checked",false);
|
|
}
|
|
if(!sourceProject || !sourceBranch || !targetProject || !targetBranch) return false;
|
|
|
|
var $this = $(this);
|
|
var repoUrl = $.createLink('mr', 'ajaxCheckSameOpened', "hostID=" + hostID);
|
|
$.post(repoUrl, {"sourceProject": sourceProject, "sourceBranch": sourceBranch, "targetProject": targetProject, "targetBranch": targetBranch}, function(response)
|
|
{
|
|
response = $.parseJSON(response);
|
|
if(response.result == 'fail')
|
|
{
|
|
alert(response.message);
|
|
if($this.attr('id') == 'sourceBranch') $('#removeSourceBranch').removeAttr('disabled');
|
|
return false;
|
|
}
|
|
});
|
|
}
|
|
|
|
function onNeedCiChange(event)
|
|
{
|
|
const $needCi = $(event.target) ;
|
|
const picker = zui.Picker.query("[name='jobID']");
|
|
if($needCi.prop('checked') == false)
|
|
{
|
|
picker.render({"disabled": true, "items": []});
|
|
$("#jobID").addClass('hidden');
|
|
}
|
|
else
|
|
{
|
|
const items = [];
|
|
for(const jobID in jobPairs) items.push({"value": jobID, "text": jobPairs[jobID]});
|
|
picker.render({"disabled": false, "items": items});
|
|
$("#jobID").removeClass('hidden');
|
|
}
|
|
}
|
|
|
|
function changeRepo()
|
|
{
|
|
const repoID = $('input[name=repoID]').val();
|
|
loadPage($.createLink('mr', 'create', `repoID=${repoID}&objectID=${objectID}`));
|
|
}
|
|
|
|
$(function()
|
|
{
|
|
if(repo.gitService)
|
|
{
|
|
onProjectChange();
|
|
}
|
|
});
|