/**
* Load all users as assignedTo list.
*
* @access public
* @return void
*/
function loadAllUsers()
{
var link = createLink('bug', 'ajaxLoadAllUsers', 'selectedUser=' + $('#assignedTo').val());
$.get(link, function(data)
{
if(data)
{
var moduleID = $('#module').val();
var productID = $('#product').val();
setAssignedTo(moduleID, productID);
$('#assignedTo').empty().append($(data).find('option')).trigger('chosen:updated').trigger('chosen:activate');
}
});
}
/**
* Load team members of the latest project of a product as assignedTo list.
*
* @param $productID
* @access public
* @return void
*/
function loadProjectTeamMembers(productID)
{
var link = createLink('bug', 'ajaxLoadProjectTeamMembers', 'productID=' + productID + '&selectedUser=' + $('#assignedTo').val());
$('#assignedToBox').load(link, function(){$('#assignedTo').chosen();});
}
/**
* load assignedTo and stories of module.
*
* @access public
* @return void
*/
function loadModuleRelated()
{
var moduleID = $('#module').val();
var productID = $('#product').val();
setAssignedTo(moduleID, productID);
setStories(moduleID, productID);
}
/**
* Set the assignedTo field.
*
* @access public
* @return void
*/
function setAssignedTo(moduleID, productID)
{
if(typeof(productID) == 'undefined') productID = $('#product').val();
if(typeof(moduleID) == 'undefined') moduleID = $('#module').val();
var link = createLink('bug', 'ajaxGetModuleOwner', 'moduleID=' + moduleID + '&productID=' + productID);
$.get(link, function(owner)
{
$('#assignedTo').val(owner);
$("#assignedTo").trigger("chosen:updated");
});
}
$(function()
{
if($('#project').val()) loadProjectRelated($('#project').val());
$('[data-toggle=tooltip]').tooltip();
// adjust size of bug type input group
var adjustBugTypeGroup = function()
{
var $group = $('#bugTypeInputGroup');
var width = ($group.parent().width()), addonWidth = 0;
var $controls = $group.find('.chosen-single');
$group.children('.input-group-addon').each(function()
{
addonWidth += $(this).outerWidth();
});
var bestWidth = Math.floor((width - addonWidth)/$controls.length);
$controls.css('width', bestWidth);
var lastWidth = width - addonWidth - bestWidth * ($controls.length - 1);
$controls.last().css('width', lastWidth);
};
adjustBugTypeGroup();
$(window).on('resize', adjustBugTypeGroup);
// init pri and severity selector
$('#severity, #pri').on('change', function()
{
var $select = $(this);
var $selector = $select.closest('.pri-selector');
var value = $select.val();
$selector.find('.pri-text').html($selector.data('type') === 'severity' ? '' : '' + value + '');
});
});