zentaopms/module/bug/js/batchcreate.js
2023-05-16 10:47:08 +08:00

166 lines
4.7 KiB
JavaScript

$(function()
{
removeDitto();//Remove 'ditto' in first row.
var $titleCol = $('#batchCreateForm table thead tr th.c-title');
if($titleCol.width() < 150) $titleCol.width(150);
$('#customField').click(function()
{
hiddenRequireFields();
});
/* Implement a custom form without feeling refresh. */
$('#formSettingForm .btn-primary').click(function()
{
saveCustomFields('batchCreateFields', 10, $titleCol, 150);
return false;
});
$('#dropMenu').css('z-index', 9999);
})
/**
* Set opened builds.
*
* @param string $link
* @param int $index
* @access public
* @return void
*/
function setOpenedBuilds(link, index)
{
$.get(link, function(builds)
{
var row = $('#buildBox' + index).closest('tbody').find('tr').size()
do
{
var selected = $('#buildBox' + index).find('select').val();
$('#buildBox' + index).html(builds);
$('#buildBox' + index).find('select').val(selected);
$('#pickerDropMenu-pk_openedBuild' + index).remove();
$('#openedBuilds' + index).next('.picker').remove();
$('#buildBox' + index + ' select').removeClass('select-3');
$('#buildBox' + index + ' select').addClass('select-1');
$('#buildBox' + index + ' select').attr('name','openedBuilds[' + index + '][]');
$('#buildBox' + index + ' select').attr('id','openedBuilds' + index);
$('#buildBox' + index + ' select').picker({optionRender: markReleasedBuilds, dropWidth: 'auto'});
index++;
if($('#executions' + index).val() != 'ditto') break;
}while(index < row)
});
}
/**
* Set lane.
*
* @param int $regionID
* @param int $num
* @access public
* @return void
*/
function setLane(regionID, num)
{
laneLink = createLink('kanban', 'ajaxGetLanes', 'regionID=' + regionID + '&type=bug&field=lanes&i=' + num);
$.get(laneLink, function(lanes)
{
if(!lanes) lanes = '<select id="lanes' + num + '" name="lanes[' + num + ']" class="form-control"></select>';
$('#lanes' + num).replaceWith(lanes);
$("#lanes" + num + "_chosen").remove();
$("#lanes" + num).next('.picker').remove();
$("#lanes" + num).chosen();
});
}
/**
* Load execution builds.
*
* @param int $productID
* @param int $executionID
* @param int $index
* @access public
* @return void
*/
function loadExecutionBuilds(productID, executionID, index)
{
var branch = $('#branches' + index).val();
if(executionID == 'ditto')
{
for(var i = index - 1; i > 0, executionID == 'ditto'; i--)
{
executionID = $('#executions' + i).val();
}
}
if(executionID != 0)
{
link = createLink('build', 'ajaxGetExecutionBuilds', 'executionID=' + executionID + '&productID=' + productID + "&varName=openedBuilds&build=&branch=" + branch + "&index=" + index);
}
else
{
link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + "&varName=openedBuilds&build=&branch=" + branch + "&index=" + index);
}
setOpenedBuilds(link, index);
}
$(document).on('click', '.chosen-with-drop', function()
{
var select = $(this).prev('select');
if($(select).val() == 'ditto')
{
var index = $(select).closest('td').index();
var row = $(select).closest('tr').index();
var table = $(select).closest('tr').parent();
var value = '';
for(i = row - 1; i >= 0; i--)
{
value = $(table).find('tr').eq(i).find('td').eq(index).find('select').val();
if(value != 'ditto') break;
}
$(select).val(value);
$(select).trigger("chosen:updated");
}
})
$(document).on('mousedown', 'select', function()
{
if($(this).val() == 'ditto')
{
var index = $(this).closest('td').index();
var row = $(this).closest('tr').index();
var table = $(this).closest('tr').parent();
var value = '';
for(i = row - 1; i >= 0; i--)
{
value = $(table).find('tr').eq(i).find('td').eq(index).find('select').val();
if(value != 'ditto') break;
}
$(this).val(value);
}
})
$(document).keydown(function(event)
{
if((event.ctrlKey || event.altKey) && event.keyCode == 38)
{
event.stopPropagation();
event.preventDefault();
selectFocusJump('up');
}
else if((event.ctrlKey || event.altKey) && event.keyCode == 40)
{
event.stopPropagation();
event.preventDefault();
selectFocusJump('down');
}
else if(event.keyCode == 38)
{
inputFocusJump('up');
}
else if(event.keyCode == 40)
{
inputFocusJump('down');
}
});