2023-05-16 10:47:08 +08:00

133 lines
3.5 KiB
JavaScript

$(function()
{
scmChanged(repoSCM, true);
$('#submit').mousedown(function()
{
$form = $(this).closest('form');
$form.css('min-height', $form.height());
});
/**
* Handle product changed event.
*
* @access public
* @return void
*/
function productChanged()
{
var projects = $('#projects').val();
var products = $('#product').val();
$.post(createLink('repo', 'ajaxProjectsOfProducts'), {products, projects}, function(response)
{
$('#projectContainer').html('').append(response);
$('#projects').change(projectsChanged);
$('#projects').chosen().trigger("chosen:updated");
});
}
/**
* Handle projects changed event.
*
* @param object $event
* @param object $data
* @access public
* @return void
*/
function projectsChanged(event, data)
{
if(!data.deselected) return;
var products = $('#product').val();
var projects = $('#projects').val();
$.post(createLink('repo', 'ajaxFilterShadowProducts'), {products, projectID: data.deselected, objectID}, function(response)
{
$('#productContainer').html('').append(response);
$('#product').change(productChanged);
$('#product').chosen().trigger("chosen:updated");
});
}
$('#product').change(productChanged);
$('#projects').change(projectsChanged);
$('#serviceHost').change(function()
{
host = $('#serviceHost').val();
if(host == '') return false;
url = createLink('repo', 'ajaxGetProjects', "host=" + host);
$.get(url, function(response)
{
$('#serviceProject').html('').append(response);
$('#serviceProject').chosen().trigger("chosen:updated");;
});
});
$('#serviceProject').change(function()
{
$option = $(this).find('option:selected');
if(!$option.data('name')) return false;
$('#name').val($option.data('name'));
$(this).chosen().trigger("chosen:updated");
});
});
/**
* Changed SCM.
*
* @param string $scm
* @access public
* @return void
*/
function scmChanged(scm, isFirstRequest = false)
{
if(scm == 'Git' || scm == 'Gitea' || scm == 'Gogs')
{
$('.account-fields').addClass('hidden');
if(['Git', 'Gitea', 'Gogs'].indexOf(repoSCM) === -1) $('#client').val('');
$('.tips-git').removeClass('hidden');
$('.tips-svn').addClass('hidden');
}
else
{
$('.account-fields').removeClass('hidden');
$('.tips-git').addClass('hidden');
$('.tips-svn').removeClass('hidden');
}
if(scm == 'Git' || scm == 'Subversion')
{
$('tr.service').toggle(false);
$('tr.hide-service').toggle(true);
}
else
{
$('.tips').addClass('hidden');
$('tr.service').toggle(true);
if(scm == 'Gitea' || scm == 'Gogs')
{
$('tr.hide-service:not(".hide-git")').toggle(true);
$('tr.hide-git').toggle(false);
}
else
{
$('tr.hide-service').toggle(false);
}
if(!isFirstRequest)
{
var url = createLink('repo', 'ajaxGetHosts', "scm=" + scm);
$.get(url, function(response)
{
$('#serviceHost').html(response);
$('#serviceHost').chosen().trigger("chosen:updated");;
$('#serviceHost').change();
});
}
}
}