170 lines
5.5 KiB
JavaScript
170 lines
5.5 KiB
JavaScript
$(function()
|
|
{
|
|
$('.linkage-fields.hidden').remove();
|
|
$('.custom-fields.hidden').parent().remove();
|
|
|
|
window.customCount = $('#paramDiv .input-group').length;
|
|
window.triggerCount = $('#triggerForm .trigger-box').length;
|
|
});
|
|
|
|
window.addItem = function(event)
|
|
{
|
|
const obj = $(event.target);
|
|
const inputGroup = obj.closest('.input-group').clone();
|
|
const newName = window.customCount + 'custom';
|
|
window.customCount ++;
|
|
|
|
$(inputGroup).find('input.custom').attr('id', newName);
|
|
$(inputGroup).find('input.paramName').val('');
|
|
$(inputGroup).find('input[id="' + newName + '"]').next().attr('for', newName);
|
|
obj.closest('.form-group').append($(inputGroup));
|
|
}
|
|
|
|
window.deleteItem = function(event)
|
|
{
|
|
const $obj = $(event.target);
|
|
if($('.delete-param').length > 1) $obj.closest('.input-group').remove();
|
|
}
|
|
|
|
/**
|
|
* Show input, hidden select.
|
|
*
|
|
* @param obj $obj
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
window.setValueInput = function(event)
|
|
{
|
|
const obj = event.target;
|
|
if($(obj).prop('checked'))
|
|
{
|
|
$(obj).closest('.input-group').find('select').attr('disabled', true);
|
|
$(obj).closest('.input-group').find('select').addClass('hidden');
|
|
$(obj).closest('.input-group').find("input[name^='paramValue']").removeClass('hidden');
|
|
$(obj).closest('.input-group').find("input[name^='paramValue']").removeAttr('disabled');
|
|
}
|
|
else
|
|
{
|
|
$(obj).closest('.input-group').find("input[name^='paramValue']").attr('disabled', true);
|
|
$(obj).closest('.input-group').find("input[name^='paramValue']").addClass('hidden');
|
|
$(obj).closest('.input-group').find('select').removeClass('hidden');
|
|
$(obj).closest('.input-group').find('select').removeAttr('disabled');
|
|
}
|
|
}
|
|
|
|
window.changeCustomField = function(event)
|
|
{
|
|
let paramValue = $(event.target).val();
|
|
paramValue = paramValue.substr(1).toUpperCase();
|
|
$(event.target).prevAll('input').val(paramValue);
|
|
}
|
|
|
|
window.changeTriggerType = function(event)
|
|
{
|
|
const $parentDom = $(event.target).closest('.trigger-box');
|
|
if($parentDom.find('.linkage-fields').length) $parentDom.find('.linkage-fields').remove();
|
|
|
|
const triggers = [];
|
|
$('input[name^=triggerType]').each(function()
|
|
{
|
|
if($(this).attr('id') != $(event.target).attr('id')) triggers.push($(this).val());
|
|
});
|
|
|
|
const type = $(event.target).val();
|
|
if(triggers.includes(type))
|
|
{
|
|
zui.Modal.alert(triggerRepeat).then(() =>
|
|
{
|
|
let triggerList = {};
|
|
$.extend(true, triggerList, triggerTypeList);
|
|
triggers.forEach((trigger) => {
|
|
if(triggerList[trigger]) delete triggerList[trigger];
|
|
});
|
|
$(event.target).zui('picker').$.setValue(triggerList ? Object.keys(triggerList)[0] : '');
|
|
});
|
|
return;
|
|
}
|
|
|
|
if(type != 'tag' || repo.SCM == 'Subversion') $parentDom.append(eval(`${type}Field`).replace(/%s/g, window.triggerCount));
|
|
if(window[`${type}BlockInit`]) eval(`window.${type}BlockInit()`);
|
|
|
|
$parentDom.find('.hidden:not(.delete-trigger)').removeClass('hidden');
|
|
}
|
|
|
|
window.toggleAutoRun = function(event)
|
|
{
|
|
if($(event.target).prop('checked'))
|
|
{
|
|
$('input[name=autoRun]').val('0');
|
|
}
|
|
else
|
|
{
|
|
$('input[name=autoRun]').val('1');
|
|
}
|
|
}
|
|
|
|
window.addTrigger = function()
|
|
{
|
|
if($('#triggerForm .trigger-box').length >= Object.keys(triggerTypeList).length) return;
|
|
|
|
$('#triggerForm .trigger-box').last().after(triggerField.replace(/%s/g, window.triggerCount));
|
|
$('#triggerForm .trigger-box').removeClass('hidden');
|
|
|
|
$('#triggerPicker' + window.triggerCount).addClass('form-group-wrapper picker-box');
|
|
|
|
const triggers = [];
|
|
$('input[name^=triggerType]').each(function(){triggers.push($(this).val());});
|
|
|
|
let trigger = '';
|
|
const options = Object.keys(triggerTypeList).map((type) => {
|
|
if(!trigger && !triggers.includes(type)) trigger = type;
|
|
return {value: type, text: triggerTypeList[type]}
|
|
});
|
|
new zui.Picker('#triggerPicker' + window.triggerCount, {
|
|
items: options,
|
|
name: `triggerType[${window.triggerCount}]`
|
|
});
|
|
|
|
setTimeout(() =>
|
|
{
|
|
$('#triggerPicker' + (window.triggerCount - 1)).zui('picker').$.setValue(trigger);
|
|
}, 50)
|
|
|
|
window.triggerCount ++;
|
|
if($('#triggerForm .trigger-box').length > 1) $('.delete-trigger').removeClass('hidden');
|
|
if($('#triggerForm .trigger-box').length >= Object.keys(triggerTypeList).length) $('.add-trigger-btn').addClass('hidden');
|
|
}
|
|
|
|
window.deleteTrigger = function(event)
|
|
{
|
|
$(event.target).closest('.trigger-box').remove();
|
|
if($('#triggerForm .trigger-box').length <= 1) $('.delete-trigger').addClass('hidden');
|
|
if($('#triggerForm .trigger-box').length < Object.keys(triggerTypeList).length)$('.add-trigger-btn').removeClass('hidden');
|
|
}
|
|
|
|
window.tagBlockInit = function()
|
|
{
|
|
if(repo.SCM != 'Subversion') return;
|
|
|
|
$('#dirPicker' + window.triggerCount).addClass('form-group-wrapper picker-box');
|
|
|
|
const options = Object.keys(dirs).map((dir) => {
|
|
return {value: dir, text: dirs[dir]};
|
|
});
|
|
new zui.Picker('#dirPicker' + window.triggerCount, {
|
|
items: options,
|
|
name: `svnDir[]`,
|
|
required: true,
|
|
defaultValue: job.svnDir
|
|
});
|
|
}
|
|
|
|
window.scheduleBlockInit = function()
|
|
{
|
|
$('#scheduleTime' + window.triggerCount).addClass('form-group-wrapper picker-box');
|
|
new zui.TimePicker('#scheduleTime' + window.triggerCount, {
|
|
name: 'atTime',
|
|
defaultValue: job.atTime
|
|
})
|
|
}
|