$(function() { var page = window.page || ''; var flow = window.flow; $('#subNavbar a[data-toggle=dropdown]').parent().addClass('dropdown dropdown-hover'); if(page == 'create' || page == 'edit' || page == 'assignedto' || page == 'confirmbug') { oldProductID = $('#product').val(); } if(window.flow != 'full') { $('.querybox-toggle').click(function() { $(this).parent().toggleClass('active'); }); } }); if($('#openedBuild').length || $('#resolvedBuild').length || $('[name^=openedBuilds]').length) { $.get(createLink('bug', 'ajaxGetReleasedBuilds', 'productID=' + productID), function(data){releasedBuilds = data;}, 'json'); $('#openedBuild, #resolvedBuild, form [name^=openedBuilds]').picker({optionRender: markReleasedBuilds}); } /** * Mark released builds. * * @param object $option * @access public * @return void */ function markReleasedBuilds($option) { var build = $option.attr('data-value'); if($.inArray(build, releasedBuilds) != -1) { if(!$option.find('.label-released').length) { var optionText = $option.find('.picker-option-text').html(); $option.find('.picker-option-text').replaceWith("

" + optionText + " " + released + "

"); } } } /** * Load all fields. * * @param int $productID * @access public * @return void */ function loadAll(productID) { if(typeof(changeProductConfirmed) != 'undefined' && !changeProductConfirmed) { firstChoice = confirm(confirmChangeProduct); changeProductConfirmed = true; // Only notice the user one time. if(!firstChoice) { $('#product').val(oldProductID);//Revert old product id if confirm is no. $('#product').trigger("chosen:updated"); $('#product').chosen(); return true; } loadAll(productID); } else { $('#taskIdBox').innerHTML = ''; // Reset the task. $('#task').chosen(); loadProductBranches(productID) } } /** * Load all users as assignedTo list. * * @access public * @return void */ function loadAllUsers() { isClosedBug = typeof isClosedBug == 'undefined' ? false : isClosedBug; var params = isClosedBug ? '¶ms=devfirst' : ''; var link = createLink('bug', 'ajaxLoadAllUsers', 'selectedUser=' + $('#assignedTo').val() + params); $.get(link, function(data) { if(data) { if(!isClosedBug) { var moduleID = $('#module').val(); var productID = $('#product').val(); setAssignedTo(moduleID, productID); } $('#assignedTo').replaceWith(data); $('#assignedTo_chosen').remove(); $('#assignedTo').chosen(); } }); } /** * Set the assignedTo field. * * @param int $moduleID * @param int $productID * @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) { owner = JSON.parse(owner); var account = owner[0]; var realName = owner[1]; var isExist = false; var count = $('#assignedTo').find('option').length; for(var i=0; i < count; i++) { if($('#assignedTo').get(0).options[i].value == account) { isExist = true; break; } } if(!isExist && account) { option = ""; $("#assignedTo").append(option); } $('#assignedTo').val(account); $("#assignedTo").trigger("chosen:updated"); }); } /** * Load by branch. * * @access public * @return void */ function loadBranch() { $('#taskIdBox').innerHTML = ''; // Reset the task. $('#task').chosen(); productID = $('#product').val(); loadProductModules(productID); loadProductProjects(productID); loadProductBuilds(productID); loadProductplans(productID); loadProductStories(productID); loadProductMembers(productID); } /** *Load all builds of one execution or product. * * @param object $object * @access public * @return void */ function loadAllBuilds(object) { if(page == 'resolve') { oldResolvedBuild = $('#resolvedBuild').val() ? $('#resolvedBuild').val() : 0; link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild + '&branch=0&index=0&type=all'); $('#resolvedBuildBox').load(link, function(){$(this).find('select').picker({optionRender: markReleasedBuilds, dropWidth: 'auto'})}); } else { productID = $('#product').val(); var buildBox = ''; if(page == 'edit') buildBox = $(object).closest('.input-group').attr('id'); loadAllProductBuilds(productID, buildBox); } } /** * Load all builds of the execution. * * @param int $executionID * @param int $productID * @param string $buildBox * @access public * @return void */ function loadAllExecutionBuilds(executionID, productID, buildBox) { branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; $.get(createLink('bug', 'ajaxGetReleasedBuilds', 'productID=' + productID), function(data){releasedBuilds = data;}, 'json'); if(page == 'create') { oldOpenedBuild = $('#openedBuild').val() ? $('#openedBuild').val() : 0; link = createLink('build', 'ajaxGetExecutionBuilds', 'executionID=' + executionID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch + '&index=0&needCreate=true&type=all'); $.get(link, function(data) { if(!data) data = ''; $('#openedBuild').replaceWith(data); $('#pickerDropMenu-pk_openedBuild').remove(); $('#openedBuild').next('.picker').remove(); notice(); $("#openedBuild").picker({optionRender: markReleasedBuilds}); }) } if(page == 'edit') { if(buildBox == 'openedBuildBox') { link = createLink('build', 'ajaxGetExecutionBuilds', 'executionID=' + executionID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch + '&index=0&needCreate=true&type=all'); $('#openedBuildBox').load(link, function(){$(this).find('select').picker({optionRender: markReleasedBuilds})}); } if(buildBox == 'resolvedBuildBox') { link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild + '&branch=' + branch + '&index=0&type=all'); $('#resolvedBuildBox').load(link, function(){$(this).find('select').picker({optionRender: markReleasedBuilds, dropWidth: 'auto'})}); } } } /** * Load all builds of the product. * * @param int $productID * @param string $buildBox * @access public * @return void */ function loadAllProductBuilds(productID, buildBox) { branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; $.get(createLink('bug', 'ajaxGetReleasedBuilds', 'productID=' + productID), function(data){releasedBuilds = data;}, 'json'); if(page == 'create') { link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch + '&index=0&type=all'); $.get(link, function(data) { if(!data) data = ''; $('#openedBuild').replaceWith(data); $('#pickerDropMenu-pk_openedBuild').remove(); $('#openedBuild').next('.picker').remove(); notice(); $("#openedBuild").picker({optionRender: markReleasedBuilds}); }) } if(page == 'edit') { if(buildBox == 'openedBuildBox') { link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch + '&index=0&type=all'); $('#openedBuildBox').load(link, function(){$(this).find('select').picker({optionRender: markReleasedBuilds})}); } if(buildBox == 'resolvedBuildBox') { link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild + '&branch=' + branch + '&index=0&type=all'); $('#resolvedBuildBox').load(link, function() { $(this).find('select').picker({optionRender: markReleasedBuilds, dropWidth: 'auto'}) var $pkResolvedBuild = $('#pk_resolvedBuild-search'); $pkResolvedBuild.closest('.picker').css('width', $pkResolvedBuild.closest('td').width()); }); } } } /** * Load product's modules. * * @param int $productID * @access public * @return void */ function loadProductModules(productID) { branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; if(typeof(moduleID) == 'undefined') moduleID = 0; if(config.currentMethod == 'edit') moduleID = $('#module').val(); link = createLink('tree', 'ajaxGetOptionMenu', 'productID=' + productID + '&viewtype=bug&branch=' + branch + '&rootModuleID=0&returnType=html&fieldID=&needManage=true&extra=nodeleted¤tModuleID=' + moduleID); $('#moduleIdBox').load(link, function() { $(this).find('select').chosen() if(typeof(bugModule) == 'string') $('#moduleIdBox').prepend("" + bugModule + ""); }); } /** * Load product stories * * @param int $productID * @access public * @return void */ function loadProductStories(productID) { branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; if(typeof(oldStoryID) == 'undefined') oldStoryID = 0; link = createLink('story', 'ajaxGetProductStories', 'productID=' + productID + '&branch=' + branch + '&moduleId=0&storyID=' + oldStoryID); $('#storyIdBox').load(link, function(){$('#story').chosen();}); } /** * Load projects of product. * * @param int $productID * @access public * @return void */ function loadProductProjects(productID) { required = $('#project_chosen').hasClass('required'); branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; link = createLink('product', 'ajaxGetProjects', 'productID=' + productID + '&branch=' + branch + '&projectID=' + oldProjectID); $('#projectBox').load(link, function() { $(this).find('select').chosen(); var projectID = $('#project').find("option:selected").val(); if(required) $(this).find('#project_chosen').addClass('required'); loadProductExecutions(productID, projectID); }); } /** * Load executions of product. * * @param int $productID * @param int $projectID * @access public * @return void */ function loadProductExecutions(productID, projectID = 0) { required = $('#execution_chosen').hasClass('required'); branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; if(projectID != 0 && projectExecutionPairs[projectID] !== undefined) { $('#executionIdBox').parents('.executionBox').hide(); var execution = projectExecutionPairs[projectID]; } else { $('#executionIdBox').parents('.executionBox').show(); var execution = $('#execution').val(); } link = createLink('product', 'ajaxGetExecutions', 'productID=' + productID + '&projectID=' + projectID + '&branch=' + branch + '&number=&executionID=' + execution + '&from=&mode=stagefilter'); $('#executionIdBox').load(link, function() { $(this).find('select').chosen(); if(typeof(bugExecution) == 'string') $('#executionIdBox').prepend("" + bugExecution + ""); if(required) $(this).find('#execution_chosen').addClass('required'); changeAssignedTo(projectID); }); projectID != 0 ? loadProjectBuilds(projectID) : loadProductBuilds(productID); } /** * Ajax change execution name. * * @param int $projectID * @access public * @return void */ function changeAssignedTo(projectID) { if(parseInt(projectID)) { loadProjectTeamMembers(projectID); if(page == 'create') { var link = createLink('bug', 'ajaxGetExecutionLang', 'projectID=' + projectID); $.post(link, function(executionLang) { $('#executionBox').html(executionLang); }) } } else if($('#execution').val() != 0) { loadAssignedTo($('#execution').val()); } else { var productID = $('#product').val(); loadProductMembers(productID); } } /** * Load executions of product and project. * * @param int $productID * @param int $projectID * @param int $num * @access public * @return void */ function loadProductExecutionsByProject(productID, projectID = 0, num = 0) { var branch = $('#branches' + num).val(); if(typeof(branch) == 'undefined') branch = 0; if(projectID == 'ditto') { for(var i = num - 1; i > 0, projectID == 'ditto'; i--) { projectID = $('#projects' + i).val(); } } var link = createLink('product', 'ajaxGetExecutionsByProject', 'productID=' + productID + '&projectID=' + projectID + '&branch=' + branch + '&number=' + num); $.get(link, function(executions) { if(!executions) executions = ''; $('#executions' + num).replaceWith(executions); $("#executions" + num + "_chosen").remove(); $("#executions" + num).next('.picker').remove(); $("#executions" + num).chosen(); }); } /** * Load product plans. * * @param productID $productID * @access public * @return void */ function loadProductplans(productID) { branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; link = createLink('productplan', 'ajaxGetProductplans', 'productID=' + productID + '&branch=' + branch); $('#planIdBox').load(link, function(){$(this).find('select').chosen()}); } /** * Load product builds. * * @param productID $productID * @access public * @return void */ function loadProductBuilds(productID) { branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; if(typeof(oldOpenedBuild) == 'undefined') oldOpenedBuild = 0; link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch); $.get(createLink('bug', 'ajaxGetReleasedBuilds', 'productID=' + productID), function(data){releasedBuilds = data;}, 'json'); if(page == 'create') { $.get(link, function(data) { if(!data) data = ''; $('#openedBuild').replaceWith(data); $('#pickerDropMenu-pk_openedBuild').remove(); $('#openedBuild').next('.picker').remove(); notice(); $("#openedBuild").picker({optionRender: markReleasedBuilds}); }) } else { $('#openedBuildBox').load(link, function(){$(this).find('select').picker({optionRender: markReleasedBuilds})}); link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild + '&branch=' + branch); $('#resolvedBuildBox').load(link, function(){$(this).find('select').picker({optionRender: markReleasedBuilds, dropWidth: 'auto'})}); } } /** * Load execution related bugs and tasks. * * @param int $executionID * @access public * @return void */ function loadExecutionRelated(executionID) { executionID = parseInt(executionID); currentProjectID = $('#project').val() == 'undefined' ? 0 : $('#project').val(); if(executionID) { if(currentProjectID == 0) loadProjectByExecutionID(executionID); loadExecutionTasks(executionID); loadExecutionStories(executionID); loadExecutionBuilds(executionID); loadAssignedTo(executionID, $('#assignedTo').val()); loadTestTasks($('#product').val(), executionID); } else { var currentProductID = $('#product').val(); $('#taskIdBox').innerHTML = ''; // Reset the task. loadProductStories(currentProductID); loadTestTasks(currentProductID); if(currentProjectID == 0) { loadProductMembers(currentProductID); } else { loadProjectTeamMembers(currentProjectID); } currentProjectID != 0 ? loadProjectBuilds(currentProjectID) : loadProductBuilds(currentProductID); } } /** * Load a project by execution id. * * @param executionID $executionID * @access public * @return void */ function loadProjectByExecutionID(executionID) { link = createLink('project', 'ajaxGetPairsByExecution', 'executionID=' + executionID, 'json'); required = $('#project_chosen').hasClass('required'); productID = $('#product').val(); $.post(link, function(data) { var originProject = $('#project').html(); if($('#project').find('option[value="' + data.id + '"]').length > 0) { $('#project').find('option[value="' + data.id + '"]').attr('selected', 'selected'); originProject = $('#project').html(); $('#project').replaceWith(''); } else { var newProject = ''; $('#project').replaceWith(''); } $('#project_chosen').remove(); $('#project').next('.picker').remove(); $('#project').chosen(); if(required) $('#project_chosen').addClass('required'); }, 'json') } /** * Load execution tasks. * * @param executionID $executionID * @access public * @return void */ function loadExecutionTasks(executionID) { link = createLink('task', 'ajaxGetExecutionTasks', 'executionID=' + executionID + '&taskID=' + oldTaskID); $.post(link, function(data) { if(!data) data = ''; $('#task').replaceWith(data); $('#task_chosen').remove(); $('#task').next('.picker').remove(); $("#task").chosen(); }) } /** * Load execution stories. * * @param int executionID * @param int num * @access public * @return void */ function loadExecutionStories(executionID, num) { if(typeof(num) == 'undefined') num = ''; var productID = $('#product' + num).val(); var branch = $('#branch' + num).val(); if(typeof(branch) == 'undefined') branch = 0; if(typeof(oldStoryID) == 'undefined') oldStoryID = 0; var link = createLink('story', 'ajaxGetExecutionStories', 'executionID=' + executionID + '&productID=' + productID + '&branch=' + branch + '&moduleID=0&storyID=' + oldStoryID + '&number=' + num + '&type=full&status=all&from=bug'); $('#storyIdBox' + num).load(link, function(){$('#story' + num).chosen();}); } /** * Load builds of a project. * * @param int projectID * @access public * @return void */ function loadProjectBuilds(projectID) { var branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; var productID = $('#product').val(); var oldOpenedBuild = $('#openedBuild').val() ? $('#openedBuild').val() : 0; $.get(createLink('bug', 'ajaxGetReleasedBuilds', 'productID=' + productID), function(data){releasedBuilds = data;}, 'json'); if(page == 'create') { var link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=&branch=' + branch); $.get(link, function(data) { if(!data) data = ''; $('#openedBuild').replaceWith(data); $('#openedBuild').val(oldOpenedBuild); $('#pickerDropMenu-pk_openedBuild').remove(); $('#openedBuild').next('.picker').remove(); notice(); $("#openedBuild").picker({optionRender: markReleasedBuilds}); }) } else { var link = createLink('build', 'ajaxGetProjectBuilds', 'projectID=' + projectID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch); $('#openedBuildBox').load(link, function(){$(this).find('select').val(oldOpenedBuild).picker({optionRender: markReleasedBuilds})}); var oldResolvedBuild = $('#resolvedBuild').val() ? $('#resolvedBuild').val() : 0; var link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild + '&branch=' + branch); $('#resolvedBuildBox').load(link, function(){$(this).find('select').val(oldResolvedBuild).picker({optionRender: markReleasedBuilds, dropWidth: 'auto'})}); } } /** * Load builds of a execution. * * @param int executionID * @param int num * @access public * @return void */ function loadExecutionBuilds(executionID, num) { if(typeof(num) == 'undefined') num = ''; var branch = $('#branch' + num).val(); var oldOpenedBuild = $('#openedBuild' + num).val() ? $('#openedBuild' + num).val() : 0; var productID = $('#product' + num).val(); if(typeof(branch) == 'undefined') var branch = 0; if(typeof(productID) == 'undefined') var productID = 0; $.get(createLink('bug', 'ajaxGetReleasedBuilds', 'productID=' + productID), function(data){releasedBuilds = data;}, 'json'); if(page == 'create') { link = createLink('build', 'ajaxGetExecutionBuilds', 'executionID=' + executionID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + "&branch=" + branch + "&index=0&needCreate=true"); $.get(link, function(data) { if(!data) data = ''; $('#openedBuild').replaceWith(data); $('#openedBuild').val(oldOpenedBuild); $('#pickerDropMenu-pk_openedBuild').remove(); $('#openedBuild').next('.picker').remove(); notice(); $("#openedBuild").picker({optionRender: markReleasedBuilds}); }) } else { link = createLink('build', 'ajaxGetExecutionBuilds', 'executionID=' + executionID + '&productID=' + productID + '&varName=openedBuild&build=' + oldOpenedBuild + '&branch=' + branch + '&index=0&needCreate=false&type=normal&number=' + num); $('#openedBuildBox' + num).load(link, function(){$(this).find('select').val(oldOpenedBuild).picker({optionRender: markReleasedBuilds})}); oldResolvedBuild = $('#resolvedBuild').val() ? $('#resolvedBuild').val() : 0; link = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + '&varName=resolvedBuild&build=' + oldResolvedBuild + '&branch=' + branch); $('#resolvedBuildBox').load(link, function(){$(this).find('select').val(oldResolvedBuild).picker({optionRender: markReleasedBuilds, dropWidth: 'auto'})}); } } /** * Load product members. * * @param productID * @access public * @return void */ function loadProductMembers(productID) { var branchID = $('#branch').val() == undefined ? '' : $('#branch').val(); var link = createLink('bug', 'ajaxGetProductMembers', 'productID=' + productID + '&selectedUser=' + $('#assignedTo').val() + '&branchID=' + branchID); $.get(link, function(data) { if(!data) data = ''; $('#assignedTo').replaceWith(data); $('#assignedTo_chosen').remove(); $("#assignedTo").chosen(); }); } /** * Load project members. * * @param projectID $projectID * @access public * @return void */ function loadProjectTeamMembers(projectID) { link = createLink('bug', 'ajaxGetProjectTeamMembers', 'projectID=' + projectID + '&selectedUser=' + $('#assignedTo').val()); $.get(link, function(data) { if(!data) data = ''; $('#assignedTo').replaceWith(data); $('#assignedTo_chosen').remove(); $("#assignedTo").chosen(); }); } /** * Set story field. * * @param moduleID $moduleID * @param productID $productID * @param storyID $storyID * @access public * @return void */ function setStories(moduleID, productID, storyID) { var branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; var executionID = $('#execution').val(); if(typeof(executionID) == 'undefined') executionID = 0; link = createLink('story', 'ajaxGetProductStories', 'productID=' + productID + '&branch=' + branch + '&moduleID=' + moduleID + '&storyID=' + storyID + '&onlyOption=false&status=&limit=0&type=full&hasParent=0&executionID=' + executionID); $.get(link, function(stories) { if(!stories) stories = ''; $('#story').replaceWith(stories); $('#story_chosen').remove(); $('#story').next('.picker').remove(); $("#story").chosen(); }); } /** * Load product branches. * * @param int $productID * @access public * @return void */ function loadProductBranches(productID, param) { $('#branch').remove(); $('#branch_chosen').remove(); $('#branch').next('.picker').remove(); var branchStatus = page == 'create' ? 'active' : 'all'; var oldBranch = page == 'edit' ? bugBranch : 0; var param = "productID=" + productID + "&oldBranch=" + oldBranch + "¶m=" + branchStatus; if(typeof(tab) != 'undefined' && (tab == 'execution' || tab == 'project')) param += "&projectID=" + objectID; $.get(createLink('branch', 'ajaxGetBranches', param), function(data) { if(data) { $('#product').closest('.input-group').append(data); $('#branch').css('width', page == 'create' ? '120px' : '65px'); $('#branch').chosen(); } loadProductModules(productID); loadProductProjects(productID); loadProductplans(productID); loadProductStories(productID); loadProductMembers(productID); }) } /** * Load team members of the execution as assignedTo list. * * @param int $executionID * @access public * @return void */ function loadAssignedTo(executionID, selectedUser) { selectedUser = (typeof(selectedUser) == 'undefined') ? '' : $('#assignedTo').val(); link = createLink('bug', 'ajaxLoadAssignedTo', 'executionID=' + executionID + '&selectedUser=' + selectedUser); $.get(link, function(data) { $('#assignedTo_chosen').remove(); $('#assignedTo').next('.picker').remove(); $('#assignedTo').replaceWith(data); $('#assignedTo').chosen(); }); } var oldTestTaskTitle = $("#testtask").find("option:selected").text(); var oldTestTask = $("#testtask").find("option:selected").val(); /** * Load test tasks. * * @param int $productID * @param int $executionID * @access public * @return void */ function loadTestTasks(productID, executionID) { if(!$('#testtaskBox').length) return; if(typeof(executionID) == 'undefined') executionID = 0; link = createLink('testtask', 'ajaxGetTestTasks', 'productID=' + productID + '&executionID=' + executionID); $.get(link, function(data) { var defaultOption = ''; $('#testtaskBox').html(data); $('#testtask').append(defaultOption); $('#testtask').chosen(); }); } /** * notice for create build. * * @access public * @return void */ function notice() { if(page == 'edit') return; $('#buildBoxActions').empty().hide(); var itemCount = $('#openedBuild').find('option').length; if($('#openedBuild').attr('data-items') != undefined) var itemCount = $('#openedBuild').attr('data-items'); if(itemCount <= 1) { var html = ''; if($('#execution').length == 0 || $('#execution').val() == 0) { var branch = $('#branch').val(); var projectID = $('#project').val(); if(typeof(branch) == 'undefined') branch = 0; if(typeof(projectID) == 'undefined') projectID = 0; var link = createLink('release', 'create', 'productID=' + $('#product').val() + '&branch=' + branch); if(projectID > 0) link = createLink('projectrelease', 'create', 'projectID=' + projectID); if(config.onlybody != 'yes') link += link.indexOf('?') >= 0 ? '&onlybody=yes' : '?onlybody=yes'; html += '' + createRelease + ' '; html += '' + refresh + ''; } else { executionID = $('#execution').val(); productID = $('#product').val(); projectID = $('#project').val(); link = createLink('build', 'create','executionID=' + executionID + '&productID=' + productID + '&projectID=' + projectID); link += link.indexOf('?') >= 0 ? '&onlybody=yes' : '?onlybody=yes'; html += '' + createBuild + ' '; html += '' + refresh + ''; } var $bba = $('#buildBoxActions'); if($bba.length) { $bba.html(html); $bba.show(); } else { if($('#buildBox').closest('tr').find('td').size() > 1) { $('#buildBox').closest('td').next().attr('id', 'buildBoxActions'); $('#buildBox').closest('td').next().html(html); } else { html = "" + html + ''; $('#buildBox').closest('td').after(html); } } } } /** * Set branch related. * * @param int $branchID * @param int $productID * @param int $num * @access public * @return void */ function setBranchRelated(branchID, productID, num) { var currentModuleID = config.currentMethod == 'batchedit' ? $('#modules' + num).val() : 0; var moduleLink = createLink('tree', 'ajaxGetModules', 'productID=' + productID + '&viewType=bug&branch=' + branchID + '&num=' + num + '¤tModuleID=' + currentModuleID); $.get(moduleLink, function(modules) { if(!modules) modules = ''; $('#modules' + num).replaceWith(modules); $("#modules" + num + "_chosen").remove(); $("#modules" + num).next('.picker').remove(); $("#modules" + num).chosen(); }); var projectLink = createLink('product', 'ajaxGetProjectsByBranch', 'productID=' + productID + '&branch=' + branchID + '&num=' + num); $.get(projectLink, function(projects) { if(!projects) projects = ''; $('#projects' + num).replaceWith(projects); $("#projects" + num + "_chosen").remove(); $("#projects" + num).next('.picker').remove(); $("#projects" + num).chosen(); }); var executionLink = createLink('product', 'ajaxGetExecutions', 'productID=' + productID + '&projectID=0&branch=' + branchID + '&num=' + num); $.get(executionLink, function(executions) { if(!executions) executions = ''; $('#executions' + num).replaceWith(executions); $("#executions" + num + "_chosen").remove(); $("#executions" + num).next('.picker').remove(); $("#executions" + num).chosen(); }); var buildLink = createLink('build', 'ajaxGetProductBuilds', 'productID=' + productID + "&varName=openedBuilds&build=&branch=" + branchID + "&index=" + num); /* If the branch of the current row is inconsistent with the one below, clear the module and execution of the nex row. */ if(config.currentMethod == 'batchcreate') { var nextBranchID = $('#branch' + (num + 1)).val(); if(nextBranchID != branchID) { $('#modules' + (num + 1)).find("option[value='ditto']").remove(); $('#modules' + (num + 1)).trigger("chosen:updated"); $('#executions' + (num + 1)).find("option[value='ditto']").remove(); $('#executions' + (num + 1)).trigger("chosen:updated"); } setOpenedBuilds(buildLink, num); } if(config.currentMethod == 'batchedit') { planID = $('#plans' + num).val(); planLink = createLink('product', 'ajaxGetPlans', 'productID=' + productID + '&branch=' + branchID + '&planID=' + planID + '&fieldID=' + num + '&needCreate=false&expired=¶m=skipParent'); $.ajaxSettings.async = false; $('#plans' + num).parent('td').load(planLink, function() { $('#plans' + num).chosen(); var firstBugID = $('.table-form tbody').first('tr').find('input[id^=bugIDList]').val(); if(num == firstBugID) { $('#plans' + firstBugID).find('option').each(function() { if($(this).val() == 'ditto') $(this).remove(); $('#plans' + firstBugID).trigger('chosen:updated'); }); } }); $.ajaxSettings.async = true; } } /** * Set title field width. * * @access public * @return void */ function setTitleWidth() { if(window.config.currentMethod != 'browse') return false; if($('#bugList thead th.c-title').width() < 150) $('#bugList thead th.c-title').width(150); setTimeout(function() { if($('#bugList thead th.c-title').width() < 150) $('#bugList thead th.c-title').width(150); }, 400) }