BioTorrents.de’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.9KB

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