From d5103855eb170f8497f0230ce83ac76fb9cc460f Mon Sep 17 00:00:00 2001 From: Jared Hancock <jared@osticket.com> Date: Tue, 14 Jul 2015 08:48:43 -0500 Subject: [PATCH] Fix removal of team membership for agents --- include/staff/department.inc.php | 27 ++++++++++---------- include/staff/staff.inc.php | 44 +++++++++++++++++++++----------- include/staff/team.inc.php | 6 +++-- 3 files changed, 47 insertions(+), 30 deletions(-) diff --git a/include/staff/department.inc.php b/include/staff/department.inc.php index 63e0c8a22..3a0896228 100644 --- a/include/staff/department.inc.php +++ b/include/staff/department.inc.php @@ -391,26 +391,27 @@ var addAccess = function(staffid, name, role, alerts, primary, error) { copy.removeClass('hidden') if (error) $('<div class="error">').text(error).appendTo(copy.find('td:last')); + copy.find('.drop-membership').click(function() { + $('#add_access').append( + $('<option>') + .attr('value', copy.find('input[name^=members][type=hidden]').val()) + .text(copy.find('td:first').text()) + ); + copy.fadeOut(function() { $(this).remove(); }); + return false; + }); }; $('#add_extended_access').find('button').on('click', function() { - var selected = $('#add_access').find(':selected'); - addAccess(selected.val(), selected.text(), 0, true); + var selected = $('#add_access').find(':selected'), + id = parseInt(selected.val()); + if (!id) + return; + addAccess(id, selected.text(), 0, true); selected.remove(); return false; }); -$(document).on('click', 'a.drop-membership', function() { - var tr = $(this).closest('tr'); - $('#add_access').append( - $('<option>') - .attr('value', tr.find('input[name^=members][type=hidden]').val()) - .text(tr.find('td:first').text()) - ); - tr.fadeOut(function() { $(this).remove(); }); - return false; -}); - <?php if ($dept) { $members = $dept->members->all(); diff --git a/include/staff/staff.inc.php b/include/staff/staff.inc.php index 3feb60540..6b46bc48a 100644 --- a/include/staff/staff.inc.php +++ b/include/staff/staff.inc.php @@ -425,26 +425,27 @@ var addAccess = function(daid, name, role, alerts, error) { copy.removeClass('hidden') if (error) $('<div class="error">').text(error).appendTo(copy.find('td:last')); + copy.find('a.drop-access').click(function() { + $('#add_access').append( + $('<option>') + .attr('value', copy.find('input[name^=dept_access][type=hidden]').val()) + .text(copy.find('td:first').text()) + ); + copy.fadeOut(function() { $(this).remove(); }); + return false; + }); }; $('#add_extended_access').find('button').on('click', function() { - var selected = $('#add_access').find(':selected'); - addAccess(selected.val(), selected.text(), 0, true); + var selected = $('#add_access').find(':selected'), + id = parseInt(selected.val()); + if (!id) + return; + addAccess(id, selected.text(), 0, true); selected.remove(); return false; }); -$(document).on('click', 'a.drop-access', function() { - var tr = $(this).closest('tr'); - $('#add_access').append( - $('<option>') - .attr('value', tr.find('input[name^=dept_access][type=hidden]').val()) - .text(tr.find('td:first').text()) - ); - tr.fadeOut(function() { $(this).remove(); }); - return false; -}); - var joinTeam = function(teamid, name, alerts, error) { if (!teamid) return; var copy = $('#team_member_template').clone(); @@ -460,15 +461,28 @@ var joinTeam = function(teamid, name, alerts, error) { copy.removeClass('hidden'); if (error) $('<div class="error">').text(error).appendTo(copy.find('td:last')); + copy.find('a.drop-membership').click(function() { + $('#add_team').append( + $('<option>') + .attr('value', copy.find('input[name^=teams][type=hidden]').val()) + .text(copy.find('td:first').text()) + ); + copy.fadeOut(function() { $(this).remove(); }); + return false; + }); }; $('#join_team').find('button').on('click', function() { - var selected = $('#add_team').find(':selected'); - joinTeam(selected.val(), selected.text(), true); + var selected = $('#add_team').find(':selected'), + id = parseInt(selected.val()); + if (!id) + return; + joinTeam(id, selected.text(), true); selected.remove(); return false; }); + <?php foreach ($staff->dept_access as $dept_access) { echo sprintf('addAccess(%d, %s, %d, %d, %s);', $dept_access->dept_id, diff --git a/include/staff/team.inc.php b/include/staff/team.inc.php index 92ad9f13d..e7a9a95bd 100644 --- a/include/staff/team.inc.php +++ b/include/staff/team.inc.php @@ -195,8 +195,10 @@ var addMember = function(staffid, name, alerts, error) { $('#add_member').find('button').on('click', function() { var selected = $('#add_access').find(':selected'), - id = selected.val(); - addMember(selected.val(), selected.text(), true); + id = parseInt(selected.val()); + if (!id) + return; + addMember(id, selected.text(), true); if ($('#team-lead-select option[value='+id+']').length === 0) { $('#team-lead-select').find('option[data-quick-add]') .before( -- GitLab