Oppaitime's version of Gazelle
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

staff_inbox.php 5.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <?php
  2. View::show_header('Staff Inbox');
  3. $View = (isset($_GET['view'])) ? display_str($_GET['view']) : '';
  4. $UserLevel = $LoggedUser['EffectiveClass'];
  5. $LevelCap = 1000;
  6. // Setup for current view mode
  7. $SortStr = 'IF(AssignedToUser = '.$LoggedUser['ID'].', 0, 1) ASC, ';
  8. switch ($View) {
  9. case 'unanswered':
  10. $ViewString = 'Unanswered';
  11. $Status = "Unanswered";
  12. break;
  13. case 'open':
  14. $ViewString = 'Unresolved';
  15. $Status = "Open', 'Unanswered";
  16. $SortStr = '';
  17. break;
  18. case 'resolved':
  19. $ViewString = 'Resolved';
  20. $Status = "Resolved";
  21. $SortStr = '';
  22. break;
  23. case 'my':
  24. $ViewString = 'Your Unanswered';
  25. $Status = "Unanswered";
  26. break;
  27. default:
  28. $Status = "Unanswered";
  29. if ($UserLevel >= $Classes[MOD]['Level'] || $UserLevel == $Classes[FORUM_MOD]['Level']) {
  30. $ViewString = 'Your Unanswered';
  31. } else {
  32. // FLS
  33. $ViewString = 'Unanswered';
  34. }
  35. break;
  36. }
  37. $WhereCondition = "
  38. WHERE (
  39. LEAST($LevelCap, spc.Level) <= $UserLevel
  40. OR spc.AssignedToUser = '".$LoggedUser['ID']."')
  41. AND spc.Status IN ('$Status')";
  42. if ($ViewString == 'Your Unanswered') {
  43. if ($UserLevel >= $Classes[MOD]['Level']) {
  44. $WhereCondition .= " AND spc.Level >= " . $Classes[MOD]['Level'];
  45. } else if ($UserLevel == $Classes[FORUM_MOD]['Level']) {
  46. $WhereCondition .= " AND spc.Level >= " . $Classes[FORUM_MOD]['Level'];
  47. }
  48. }
  49. list($Page, $Limit) = Format::page_limit(MESSAGES_PER_PAGE);
  50. // Get messages
  51. $StaffPMs = $DB->query("
  52. SELECT
  53. SQL_CALC_FOUND_ROWS
  54. spc.ID,
  55. spc.Subject,
  56. spc.UserID,
  57. spc.Status,
  58. spc.Level,
  59. spc.AssignedToUser,
  60. spc.Date,
  61. spc.Unread,
  62. COUNT(spm.ID) AS NumReplies,
  63. spc.ResolverID
  64. FROM staff_pm_conversations AS spc
  65. JOIN staff_pm_messages spm ON spm.ConvID = spc.ID
  66. $WhereCondition
  67. GROUP BY spc.ID
  68. ORDER BY $SortStr Level DESC, Date DESC
  69. LIMIT $Limit
  70. ");
  71. $DB->query('SELECT FOUND_ROWS()');
  72. list($NumResults) = $DB->next_record();
  73. $DB->set_query_id($StaffPMs);
  74. $CurURL = Format::get_url();
  75. if (empty($CurURL)) {
  76. $CurURL = 'staffpm.php?';
  77. } else {
  78. $CurURL = "staffpm.php?$CurURL&";
  79. }
  80. $Pages = Format::get_pages($Page, $NumResults, MESSAGES_PER_PAGE, 9);
  81. // Start page
  82. ?>
  83. <div class="thin">
  84. <div class="header">
  85. <h2><?=$ViewString?> Staff PMs</h2>
  86. <div class="linkbox">
  87. <? if ($IsStaff) { ?>
  88. <a href="staffpm.php" class="brackets">View your unanswered</a>
  89. <? } ?>
  90. <a href="staffpm.php?view=unanswered" class="brackets">View all unanswered</a>
  91. <a href="staffpm.php?view=open" class="brackets">View unresolved</a>
  92. <a href="staffpm.php?view=resolved" class="brackets">View resolved</a>
  93. <? if ($IsStaff) { ?>
  94. <a href="staffpm.php?action=scoreboard" class="brackets">View scoreboard</a>
  95. <? } ?>
  96. </div>
  97. </div>
  98. <br />
  99. <br />
  100. <div class="linkbox">
  101. <?=$Pages?>
  102. </div>
  103. <div class="box pad" id="inbox">
  104. <?
  105. if (!$DB->has_results()) {
  106. // No messages
  107. ?>
  108. <h2>No messages</h2>
  109. <?
  110. } else {
  111. // Messages, draw table
  112. if ($ViewString != 'Resolved' && $IsStaff) {
  113. // Open multiresolve form
  114. ?>
  115. <form class="manage_form" name="staff_messages" method="post" action="staffpm.php" id="messageform">
  116. <input type="hidden" name="action" value="multiresolve" />
  117. <input type="hidden" name="view" value="<?=strtolower($View)?>" />
  118. <?
  119. }
  120. // Table head
  121. ?>
  122. <table class="message_table<?=($ViewString != 'Resolved' && $IsStaff) ? ' checkboxes' : '' ?>">
  123. <tr class="colhead">
  124. <? if ($ViewString != 'Resolved' && $IsStaff) { ?>
  125. <td width="10"><input type="checkbox" onclick="toggleChecks('messageform', this);" /></td>
  126. <? } ?>
  127. <td>Subject</td>
  128. <td>Sender</td>
  129. <td>Date</td>
  130. <td>Assigned to</td>
  131. <td>Replies</td>
  132. <? if ($ViewString == 'Resolved') { ?>
  133. <td>Resolved by</td>
  134. <? } ?>
  135. </tr>
  136. <?
  137. // List messages
  138. while (list($ID, $Subject, $UserID, $Status, $Level, $AssignedToUser, $Date, $Unread, $NumReplies, $ResolverID) = $DB->next_record()) {
  139. //$UserInfo = Users::user_info($UserID);
  140. $UserStr = Users::format_username($UserID, true, true, true, true);
  141. // Get assigned
  142. if ($AssignedToUser == '') {
  143. // Assigned to class
  144. $Assigned = ($Level == 0) ? 'First Line Support' : $ClassLevels[$Level]['Name'];
  145. // No + on Sysops
  146. if ($Assigned != 'Sysop') {
  147. $Assigned .= '+';
  148. }
  149. } else {
  150. // Assigned to user
  151. // $UserInfo = Users::user_info($AssignedToUser);
  152. $Assigned = Users::format_username($AssignedToUser, true, true, true, true);
  153. }
  154. // Get resolver
  155. if ($ViewString == 'Resolved') {
  156. //$UserInfo = Users::user_info($ResolverID);
  157. $ResolverStr = Users::format_username($ResolverID, true, true, true, true);
  158. }
  159. // Table row
  160. ?>
  161. <tr class="row">
  162. <? if ($ViewString != 'Resolved' && $IsStaff) { ?>
  163. <td class="center"><input type="checkbox" name="id[]" value="<?=$ID?>" /></td>
  164. <? } ?>
  165. <td><a href="staffpm.php?action=viewconv&amp;id=<?=$ID?>"><?=display_str($Subject)?></a></td>
  166. <td><?=$UserStr?></td>
  167. <td><?=time_diff($Date, 2, true)?></td>
  168. <td><?=$Assigned?></td>
  169. <td><?=$NumReplies - 1?></td>
  170. <? if ($ViewString == 'Resolved') { ?>
  171. <td><?=$ResolverStr?></td>
  172. <? } ?>
  173. </tr>
  174. <?
  175. $DB->set_query_id($StaffPMs);
  176. } //while
  177. // Close table and multiresolve form
  178. ?>
  179. </table>
  180. <? if ($ViewString != 'Resolved' && $IsStaff) { ?>
  181. <div class="submit_div">
  182. <input type="submit" value="Resolve selected" />
  183. </div>
  184. </form>
  185. <?
  186. }
  187. } //if (!$DB->has_results())
  188. ?>
  189. </div>
  190. <div class="linkbox">
  191. <?=$Pages?>
  192. </div>
  193. </div>
  194. <?
  195. View::show_footer();
  196. ?>