list_search.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <!-- Begin toolbar -->
  2. <div class="toolbar">
  3. <div class="toolbar-inner">
  4. <div class="toolbar-buttons">
  5. <a href="javascript:window.history.back();" class="button button-secondary button-back js-button-back">
  6. <i class="fas fa-arrow-left icon-blue"></i><?= _("Back") ?>
  7. </a>
  8. <a href="javascript:location.reload();" class="button button-secondary">
  9. <i class="fas fa-arrows-rotate icon-green"></i><?= _("Refresh") ?>
  10. </a>
  11. </div>
  12. <div class="toolbar-right">
  13. <div class="toolbar-sorting">
  14. <button class="toolbar-sorting-toggle js-toggle-sorting-menu" type="button" title="<?= _("Sort items") ?>">
  15. <?= _("Sort by") ?>:
  16. <span class="u-text-bold">
  17. <?= _("Date") ?> <i class="fas fa-arrow-down-a-z"></i>
  18. </span>
  19. </button>
  20. <ul class="toolbar-sorting-menu animate__animated animate__fadeIn js-sorting-menu u-hidden">
  21. <li data-entity="sort-date" data-sort-as-int="1">
  22. <span class="name <?php if ($_SESSION['userSortOrder'] === 'date') { echo 'active'; } ?>"><?= _("Date") ?> <i class="fas fa-arrow-down-a-z"></i></span><span class="up"><i class="fas fa-arrow-up-a-z"></i></span>
  23. </li>
  24. <li data-entity="sort-name">
  25. <span class="name <?php if ($_SESSION['userSortOrder'] === 'name') { echo 'active'; } ?>"><?= _("Name") ?> <i class="fas fa-arrow-down-a-z"></i></span><span class="up"><i class="fas fa-arrow-up-a-z"></i></span>
  26. </li>
  27. </ul>
  28. <div class="toolbar-search">
  29. <form action="/search/" method="get">
  30. <input type="hidden" name="token" value="<?= $_SESSION["token"] ?>">
  31. <input type="search" class="form-control js-search-input" name="q" value="<? echo isset($_GET['q']) ? htmlspecialchars($_GET['q']) : '' ?>" title="<?= _("Search") ?>">
  32. <button type="submit" class="toolbar-input-submit" title="<?= _("Search") ?>">
  33. <i class="fas fa-magnifying-glass"></i>
  34. </button>
  35. </form>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  41. <!-- End toolbar -->
  42. <div class="container">
  43. <h1 class="u-text-center u-hide-desktop u-mt20 u-pr30 u-mb20 u-pl30"><?= _("Search Results") ?></h1>
  44. <div class="units-table js-units-container">
  45. <div class="units-table-header">
  46. <div class="units-table-cell"></div>
  47. <div class="units-table-cell u-text-center"><?= _("Status") ?></div>
  48. <div class="units-table-cell"><?= _("Search Results") ?></div>
  49. <div class="units-table-cell u-text-center"><?= _("Date") ?></div>
  50. <div class="units-table-cell u-text-center"><?= _("Owner") ?></div>
  51. <div class="units-table-cell u-text-center"><?= _("Type") ?></div>
  52. </div>
  53. <!-- Begin search result item loop -->
  54. <?php
  55. foreach ($data as $key => $value) {
  56. ++$i;
  57. if ($value['SUSPENDED'] == 'yes') {
  58. $status = 'suspended';
  59. $spnd_action = 'unsuspend';
  60. } else {
  61. $status = 'active';
  62. $spnd_action = 'suspend';
  63. }
  64. if ($value['TYPE'] == 'db') {
  65. $object = 'database';
  66. } else {
  67. $object = strtolower($value['TYPE'] . ' ' . $value['KEY']);
  68. }
  69. $uniq_id = $value['TYPE'] . '-';
  70. if ($value['KEY'] == 'ACCOUNT'){
  71. $uniq_id .= 'acc-';
  72. }
  73. $uniq_id .= sha1($value['RESULT']);
  74. ?>
  75. <div class="units-table-row <?php if ($status == 'suspended') echo 'disabled'; ?> animate__animated animate__fadeIn js-unit"
  76. data-uniq-id="<?= $uniq_id?>"
  77. data-sort-date="<?= strtotime($value['DATE'].' '.$value['TIME']) ?>"
  78. data-sort-name="<?= $value['RESULT'] ?>"
  79. data-sort-type="<?= _($object) ?>"
  80. data-sort-owner="<?= $value["USER"] ?>"
  81. data-sort-status="<?= $status ?>"
  82. style="<?php if (($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] === 'yes') && ($value['USER']) === 'admin') { echo 'display: none;'; } ?>">
  83. <div class="units-table-cell u-text-center-desktop">
  84. <?php
  85. if ($object === 'web domain') {
  86. $icon = 'fa-earth-americas';
  87. }
  88. if ($object === 'mail domain') {
  89. $icon = 'fa-envelopes-bulk';
  90. }
  91. if ($object === 'dns domain') {
  92. $icon = 'fa-book-atlas';
  93. }
  94. if ($object === 'dns record') {
  95. $icon = 'fa-book-atlas';
  96. }
  97. if ($object === 'database') {
  98. $icon = 'fa-database';
  99. }
  100. if ($object === 'cron job') {
  101. $icon = 'fa-clock';
  102. }
  103. ?>
  104. <i class="fa <?= $icon ?> icon-dim"></i>
  105. </div>
  106. <div class="units-table-cell u-text-center-desktop">
  107. <span class="u-hide-desktop u-text-bold"><?= _("Status") ?>:</span>
  108. <?php if ($status === "active") { ?>
  109. <i class="fas fa-circle-check icon-green"></i>
  110. <?php } ?>
  111. <?php if ($status === "suspended") { ?>
  112. <i class="fas fa-triangle-exclamation icon-orange"></i>
  113. <?php } ?>
  114. </div>
  115. <div class="units-table-cell units-table-heading-cell u-text-bold">
  116. <span class="u-hide-desktop"><?= _("Search Results") ?>:</span>
  117. <?php
  118. if ($value['KEY'] == 'RECORD') {
  119. $edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'];
  120. }
  121. if ($value['KEY'] == 'ACCOUNT') {
  122. $edit_lnk = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'];
  123. }
  124. if ($value['KEY'] == 'JOB') {
  125. $edit_lnk = '/edit/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'];
  126. }
  127. if ($value['KEY'] == 'DATABASE') {
  128. $edit_lnk = '/edit/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'];
  129. }
  130. if (($value['KEY'] != 'RECORD') && ($value['KEY'] != 'ACCOUNT') && ($value['KEY'] != 'JOB') && ($value['KEY'] != 'DATABASE') ) {
  131. $edit_lnk = '/edit/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'];
  132. }
  133. ?>
  134. <?php
  135. if (($_SESSION['userContext'] === 'admin') && ($_SESSION['user'] !== 'admin') && ($value['USER'] === 'admin') && ($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] === 'yes')) {
  136. echo $value['RESULT'];
  137. } else {
  138. if ($value['USER'] == $_SESSION['user']) {
  139. $href = $edit_lnk.'&token='.$_SESSION['token'];
  140. } else {
  141. $href = '/login/?loginas='.$value['USER'].'&token='.$_SESSION['token'].'&edit_link='.urlencode($edit_lnk);
  142. }
  143. echo '<a href="' . $href . '">' . $value['RESULT'] . '</a>';
  144. }
  145. ?>
  146. </div>
  147. <div class="units-table-cell u-text-center-desktop">
  148. <span class="u-hide-desktop u-text-bold"><?= _("Date") ?>:</span>
  149. <time datetime="<?= htmlspecialchars($value["DATE"]) ?>">
  150. <?= translate_date($value["DATE"]) ?>
  151. </time>
  152. </div>
  153. <div class="units-table-cell u-text-bold u-text-center-desktop">
  154. <span class="u-hide-desktop"><?= _("Owner") ?>:</span>
  155. <a href="/search/?q=<?= htmlentities($_GET["q"]) ?>&u=<?= $value["USER"] ?>&token=<?= $_SESSION["token"] ?>">
  156. <?= $value["USER"] ?>
  157. </a>
  158. <?php if (!($_SESSION["POLICY_SYSTEM_HIDE_ADMIN"] === "yes" && $value["USER"] !== "admin") && $_SESSION["userContext"] === "admin") { ?>
  159. <a href="/login/?loginas=<?= $value["USER"] ?>&token=<?= $_SESSION["token"] ?>" title="<?= _("Log in as") ?> <?= $value["USER"] ?>">
  160. <i class="fas fa-right-to-bracket icon-green icon-dim"></i>
  161. <span class="u-hidden-visually"><?= _("Log in as") ?> <?= $value["USER"] ?></span>
  162. </a>
  163. <?php } ?>
  164. </div>
  165. <div class="units-table-cell u-text-center-desktop">
  166. <span class="u-hide-desktop u-text-bold"><?= _("Type") ?>:</span>
  167. <?= _($object) ?>
  168. </div>
  169. </div>
  170. <?php } ?>
  171. </div>
  172. </div>
  173. <footer class="app-footer">
  174. <div class="container app-footer-inner">
  175. <p>
  176. <?php printf(ngettext("%d object", "%d objects", $i), $i); ?>
  177. </p>
  178. </div>
  179. </footer>