gruffen commited on 2011-05-16 02:29:40
Showing 3 changed files, with 17 additions and 11 deletions.
... | ... |
@@ -380,7 +380,7 @@ function shd_ajax_assign() |
380 | 380 |
if (!empty($context['ticket_id'])) |
381 | 381 |
{ |
382 | 382 |
$query = shd_db_query('', ' |
383 |
- SELECT hdt.private, hdt.id_member_started, id_member_assigned, id_dept, 1 AS valid |
|
383 |
+ SELECT hdt.private, hdt.id_member_started, id_member_assigned, id_dept, hdt.status, 1 AS valid |
|
384 | 384 |
FROM {db_prefix}helpdesk_tickets AS hdt |
385 | 385 |
WHERE {query_see_ticket} |
386 | 386 |
AND hdt.id_ticket = {int:ticket}', |
... | ... |
@@ -389,7 +389,7 @@ function shd_ajax_assign() |
389 | 389 |
) |
390 | 390 |
); |
391 | 391 |
if ($smcFunc['db_num_rows']($query) != 0) |
392 |
- list($private, $ticket_starter, $ticket_assigned, $dept, $valid) = $smcFunc['db_fetch_row']($query); |
|
392 |
+ list($private, $ticket_starter, $ticket_assigned, $dept, $status, $valid) = $smcFunc['db_fetch_row']($query); |
|
393 | 393 |
$smcFunc['db_free_result']($query); |
394 | 394 |
} |
395 | 395 |
if (empty($valid)) |
... | ... |
@@ -402,7 +402,7 @@ function shd_ajax_assign() |
402 | 402 |
if (empty($assignees)) |
403 | 403 |
return $context['ajax_return'] = array('error' => $txt['shd_no_staff_assign']); |
404 | 404 |
|
405 |
- if (!shd_allowed_to('shd_assign_ticket_any', $dept)) |
|
405 |
+ if (!shd_allowed_to('shd_assign_ticket_any', $dept) || $status == TICKET_STATUS_CLOSED || $status == TICKET_STATUS_DELETED) |
|
406 | 406 |
return $context['ajax_return'] = array('error' => $txt['shd_cannot_assign']); |
407 | 407 |
|
408 | 408 |
// OK, so we have the general values we need. Let's get user names, and get ready to kick this back to the user. We'll build the XML here though. |
... | ... |
@@ -440,7 +440,7 @@ function shd_ajax_assign2() |
440 | 440 |
if (!empty($context['ticket_id'])) |
441 | 441 |
{ |
442 | 442 |
$query = shd_db_query('', ' |
443 |
- SELECT hdt.private, hdt.id_member_started, id_member_assigned, subject, id_dept, 1 AS valid |
|
443 |
+ SELECT hdt.private, hdt.id_member_started, id_member_assigned, subject, id_dept, hdt.status, 1 AS valid |
|
444 | 444 |
FROM {db_prefix}helpdesk_tickets AS hdt |
445 | 445 |
WHERE {query_see_ticket} |
446 | 446 |
AND hdt.id_ticket = {int:ticket}', |
... | ... |
@@ -449,7 +449,7 @@ function shd_ajax_assign2() |
449 | 449 |
) |
450 | 450 |
); |
451 | 451 |
if ($smcFunc['db_num_rows']($query) != 0) |
452 |
- list($private, $ticket_starter, $ticket_assigned, $subject, $dept, $valid) = $smcFunc['db_fetch_row']($query); |
|
452 |
+ list($private, $ticket_starter, $ticket_assigned, $subject, $dept, $status, $valid) = $smcFunc['db_fetch_row']($query); |
|
453 | 453 |
$smcFunc['db_free_result']($query); |
454 | 454 |
} |
455 | 455 |
if (empty($valid)) |
... | ... |
@@ -458,7 +458,7 @@ function shd_ajax_assign2() |
458 | 458 |
if (!isset($_GET['to_user']) || !is_numeric($_GET['to_user'])) |
459 | 459 |
return $context['ajax_return'] = array('error' => $txt['shd_assigned_not_permitted'] . 'line459'); |
460 | 460 |
|
461 |
- if (!shd_allowed_to('shd_assign_ticket_any', $dept)) |
|
461 |
+ if (!shd_allowed_to('shd_assign_ticket_any', $dept) || $status == TICKET_STATUS_CLOSED || $status == TICKET_STATUS_DELETED) |
|
462 | 462 |
return $context['ajax_return'] = array('error' => $txt['shd_cannot_assign']); |
463 | 463 |
|
464 | 464 |
$_GET['to_user'] = isset($_GET['to_user']) ? (int) $_GET['to_user'] : 0; |
... | ... |
@@ -61,7 +61,7 @@ function shd_assign() |
61 | 61 |
|
62 | 62 |
// Get ticket details - and kick it out if they shouldn't be able to see it. |
63 | 63 |
$query = shd_db_query('', ' |
64 |
- SELECT id_member_started, id_member_assigned, private, subject, hdt.id_dept, hdd.dept_name |
|
64 |
+ SELECT id_member_started, id_member_assigned, private, subject, hdt.id_dept, hdt.status, hdd.dept_name |
|
65 | 65 |
FROM {db_prefix}helpdesk_tickets AS hdt |
66 | 66 |
INNER JOIN {db_prefix}helpdesk_depts AS hdd ON (hdt.id_dept = hdd.id_dept) |
67 | 67 |
WHERE {query_see_ticket} AND id_ticket = {int:ticket}', |
... | ... |
@@ -73,7 +73,7 @@ function shd_assign() |
73 | 73 |
$log_params = array(); |
74 | 74 |
if ($row = $smcFunc['db_fetch_row']($query)) |
75 | 75 |
{ |
76 |
- list($ticket_starter, $ticket_owner, $private, $subject, $dept, $dept_name) = $row; |
|
76 |
+ list($ticket_starter, $ticket_owner, $private, $subject, $dept, $status, $dept_name) = $row; |
|
77 | 77 |
$log_params = array( |
78 | 78 |
'subject' => $subject, |
79 | 79 |
'ticket' => $context['ticket_id'], |
... | ... |
@@ -85,6 +85,9 @@ function shd_assign() |
85 | 85 |
fatal_lang_error('shd_no_ticket'); |
86 | 86 |
} |
87 | 87 |
|
88 |
+ if ($status == TICKET_STATUS_CLOSED || $status == TICKET_STATUS_DELETED) |
|
89 |
+ fatal_lang_error('shd_cannot_assign', false); |
|
90 |
+ |
|
88 | 91 |
if (shd_allowed_to('shd_assign_ticket_any', $dept)) // can regularly assign? If so, load up potential candidates and throw it at the template. |
89 | 92 |
{ |
90 | 93 |
$members = shd_get_possible_assignees($private, $ticket_starter, $dept); |
... | ... |
@@ -184,7 +187,7 @@ function shd_assign2() |
184 | 187 |
|
185 | 188 |
// Get ticket details - and kick it out if they shouldn't be able to see it. |
186 | 189 |
$query = shd_db_query('', ' |
187 |
- SELECT id_member_started, id_member_assigned, private, subject, id_dept |
|
190 |
+ SELECT id_member_started, id_member_assigned, private, subject, status, id_dept |
|
188 | 191 |
FROM {db_prefix}helpdesk_tickets AS hdt |
189 | 192 |
WHERE {query_see_ticket} AND id_ticket = {int:ticket}', |
190 | 193 |
array( |
... | ... |
@@ -196,7 +199,7 @@ function shd_assign2() |
196 | 199 |
|
197 | 200 |
if ($row = $smcFunc['db_fetch_row']($query)) |
198 | 201 |
{ |
199 |
- list($ticket_starter, $ticket_owner, $private, $subject, $dept) = $row; |
|
202 |
+ list($ticket_starter, $ticket_owner, $private, $subject, $status, $dept) = $row; |
|
200 | 203 |
|
201 | 204 |
// The core details that we'll be logging |
202 | 205 |
$log_params = array( |
... | ... |
@@ -214,6 +217,9 @@ function shd_assign2() |
214 | 217 |
if (isset($_REQUEST['cancel'])) |
215 | 218 |
redirectexit('action=helpdesk;sa=ticket;ticket=' . $context['ticket_id']); |
216 | 219 |
|
220 |
+ if ($status == TICKET_STATUS_CLOSED || $status == TICKET_STATUS_DELETED) |
|
221 |
+ fatal_lang_error('shd_cannot_assign', false); |
|
222 |
+ |
|
217 | 223 |
if (shd_allowed_to('shd_assign_ticket_any', $dept)) // can regularly assign? If so, see if our requested member is staff and can see the ticket |
218 | 224 |
{ |
219 | 225 |
if ($assignee == 0) // can always unassign a ticket |
... | ... |
@@ -585,7 +585,7 @@ function shd_view_ticket() |
585 | 585 |
{ |
586 | 586 |
$assign_nav['display'] = shd_allowed_to('shd_staff', $context['ticket']['dept']) && !$context['ticket']['closed'] && !$context['ticket']['deleted']; |
587 | 587 |
$assign_nav['text'] = empty($context['ticket']['id_member_assigned']) ? 'shd_ticket_assign' : 'shd_ticket_reassign'; |
588 |
- $context['ajax_assign'] = true; |
|
588 |
+ $context['ajax_assign'] = $assign_nav['display']; |
|
589 | 589 |
} |
590 | 590 |
elseif (shd_allowed_to('shd_assign_ticket_own', $context['ticket']['dept'])) |
591 | 591 |
{ |
592 | 592 |