129 lines
3.3 KiB
JavaScript
129 lines
3.3 KiB
JavaScript
/**
|
|
* Add item.
|
|
*
|
|
* @param object $obj
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
window.addItem = function(obj)
|
|
{
|
|
let item = $('#addItem > tbody').html().replace(/_i/g, itemIndex);
|
|
const $currentTr = $(obj).closest('tr');
|
|
|
|
$currentTr.after(item);
|
|
const $newRow = $currentTr.next();
|
|
itemIndex ++;
|
|
|
|
setTimeout(function()
|
|
{
|
|
let selectedAccounts = [];
|
|
$('#teamForm [name^=account]').each(function()
|
|
{
|
|
if(!$(this).val()) return true;
|
|
selectedAccounts.push($(this).val());
|
|
});
|
|
|
|
let $accountPicker = $newRow.find('input[name^=account]').zui('picker');
|
|
if(typeof $accountPicker == 'undefined') return true;
|
|
|
|
let userItems = $accountPicker.options.items;
|
|
for(let key in userItems)
|
|
{
|
|
let disabled = selectedAccounts.includes(userItems[key].value) ? true : false;
|
|
userItems[key].disabled = disabled;
|
|
}
|
|
$accountPicker.render({items: userItems});
|
|
}, 100);
|
|
}
|
|
|
|
/**
|
|
* Delete item.
|
|
*
|
|
* @param object $obj
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
window.deleteItem = function(obj)
|
|
{
|
|
let currentAccount = $(obj).closest('tr').find('input[name^=account]').val();
|
|
|
|
if($('#teamForm .table tbody').children().length < 2) return false;
|
|
$(obj).closest('tr').remove();
|
|
|
|
if(!currentAccount) return true;
|
|
resetAccountItems();
|
|
|
|
}
|
|
|
|
/**
|
|
* Set dept users.
|
|
*
|
|
* @param object $obj
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
window.setDeptUsers = function()
|
|
{
|
|
const dept = $('#featureBar input[name=dept]').val(); // Get dept ID.
|
|
const link = $.createLink('execution', 'manageMembers', 'executionID=' + executionID + '&team2Import=' + team2Import + '&dept=' + dept); // Create manageMembers link.
|
|
isInModal ? loadModal(link) : loadPage(link);
|
|
}
|
|
|
|
/**
|
|
* Chose team to copy.
|
|
*
|
|
* @param object $obj
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function choseTeam2Copy()
|
|
{
|
|
const team = $('#featureBar input[name=execution]').val();
|
|
const dept = $('#featureBar input[name=dept]').val();
|
|
const link = $.createLink('execution', 'manageMembers', 'executionID=' + executionID + '&team2Import=' + team + '&dept=' + dept);
|
|
isInModal ? loadModal(link) : loadPage(link);
|
|
}
|
|
|
|
/**
|
|
* Set role when select an account.
|
|
*
|
|
* @param string $account
|
|
* @param int $roleID
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
window.setRole = function(roleID)
|
|
{
|
|
const account = $(`input[name='account\[${roleID}\]']`).val();
|
|
const role = roles[account];
|
|
const $role = $('#role' + roleID);
|
|
$role.val(role);
|
|
|
|
resetAccountItems();
|
|
}
|
|
|
|
function resetAccountItems()
|
|
{
|
|
let selectedAccounts = [];
|
|
$('#teamForm [name^=account]').each(function()
|
|
{
|
|
if(!$(this).val()) return true;
|
|
selectedAccounts.push($(this).val());
|
|
});
|
|
|
|
$('#teamForm [name^=account]').each(function()
|
|
{
|
|
let $accountPicker = $(this).closest('input[name^=account]').zui('picker');
|
|
if(typeof $accountPicker == 'undefined') return true;
|
|
|
|
let userItems = $accountPicker.options.items;
|
|
let currentAccount = $(this).val();
|
|
for(let key in userItems)
|
|
{
|
|
let disabled = selectedAccounts.includes(userItems[key].value) && userItems[key].value != currentAccount ? true : false;
|
|
userItems[key].disabled = disabled;
|
|
}
|
|
$accountPicker.render({items: userItems});
|
|
});
|
|
}
|