25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 

235 satır
9.3 KiB

  1. <div class="h-full lg:min-w-full xl:min-w-0" x-data="UI.createTable({db:'{arguments:db}'})">
  2. <div class="border-base-200 flex items-center justify-between px-5 mb-[10px] space-x-3">
  3. <div>
  4. <span class="text-2xl text-[#008EED] leading-[80px]">{arguments:db}s</span>
  5. </div>
  6. <div role="alert" class="alert alert-info alert-soft hidden lg:flex">
  7. <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="stroke-info h-6 w-6 shrink-0 stroke-[#008EED]">
  8. <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
  9. </svg>
  10. <span class="text-[#008EED]">This is the log of the events related to trackers with their latest status</span>
  11. </div>
  12. <div class="flex items-center gap-2">
  13. <label class="input input-primary w-[200px]">
  14. <span
  15. class="iconify lucide--search text-base-content/70 size-4.5 "></span>
  16. <input
  17. class="text-base placeholder:text-sm"
  18. type="search"
  19. x-model="search"
  20. @input="updateSearch"
  21. placeholder="Search" />
  22. </label>
  23. <div class="dropdown dropdown-bottom dropdown-end">
  24. <div
  25. aria-label="More actions"
  26. tabindex="0"
  27. role="button"
  28. class="btn btn-outline btn-primary">
  29. <span
  30. class="iconify lucide--ellipsis-vertical size-4"></span>
  31. </div>
  32. <div
  33. tabindex="0"
  34. class="dropdown-content bg-base-100 rounded-box w-44 shadow">
  35. <ul class="menu w-full">
  36. <li class="update{arguments:db}" @click="updateData()">
  37. <div>
  38. <span
  39. class="iconify lucide--refresh-cw size-4"></span>
  40. Refresh Data
  41. </div>
  42. </li>
  43. <li>
  44. <div>
  45. <span
  46. class="iconify lucide--download size-4"></span>
  47. Export
  48. </div>
  49. </li>
  50. </ul>
  51. </div>
  52. </div>
  53. <button type="submit" class="btn btn-outline btn-primary" style="cursor: pointer;" onclick="js.part({'do':'{arguments:new}',arguments:{db:'{arguments:db}'}})">Add</button>
  54. </div>
  55. </div>
  56. <div class="flex w-full px-[30px]">
  57. <div class=" max-h-[calc(100vh-260px)] overflow-y-scroll overflow-x-auto w-full border-solid border-1 border-[#008EED] rounded-none">
  58. <div class="min-w-[480px] px-[20px] py-[20px] border-base-200 flex flex-wrap items-center justify-between gap-2">
  59. <div class="join border-solid border-1 border-[#008EED] rounded-md">
  60. <button
  61. class="btn btn-square btn-sm btn-outline border-base-300 join-item"
  62. aria-label="Pagination controls"
  63. :disabled="!table.getCanPreviousPage()"
  64. @click="prevPage()">
  65. <span class="iconify lucide--arrow-left"></span>
  66. </button>
  67. <input
  68. aria-label="Page number"
  69. min="1"
  70. :max="table.getPageCount()"
  71. :value="pageIndex + 1"
  72. @input="setPageIndex($event.target.value - 1)"
  73. class="input input-sm join-item w-10 text-center border-0" />
  74. <button
  75. class="btn btn-square btn-sm btn-outline border-base-300 join-item"
  76. aria-label="Pagination controls"
  77. :disabled="!table.getCanNextPage()"
  78. @click="nextPage()">
  79. <span class="iconify lucide--arrow-right"></span>
  80. </button>
  81. </div>
  82. <p class="text-base-content/70 text-sm max-md:hidden">
  83. <span
  84. class="text-base-content font-medium"
  85. x-text="`${start}–${end}`"></span>
  86. out of
  87. <span
  88. class="text-base-content font-medium"
  89. x-text="rowCount"></span>
  90. </p>
  91. <div class="flex items-center gap-2">
  92. <p class="text-base-content/70 text-sm max-md:hidden">
  93. Per page
  94. </p>
  95. <select
  96. aria-label="Items per page"
  97. class="select select-sm w-16 border-solid border-1 border-[#008EED]"
  98. @change="changePageSize(Number($event.target.value))">
  99. <template x-for="size in pageSizes" :key="size">
  100. <option
  101. :value="size"
  102. :selected="size === pageSize"
  103. x-text="size"></option>
  104. </template>
  105. </select>
  106. </div>
  107. </div>
  108. <table class="table">
  109. <thead>
  110. <template
  111. x-for="headerGroup in table.getHeaderGroups()"
  112. :key="headerGroup.id">
  113. <tr>
  114. <template
  115. x-for="header in headerGroup.headers"
  116. :key="header.id">
  117. <th
  118. class="text-[#008EED]",
  119. x-show="!header.isPlaceholder"
  120. x-text="flexRender(header.column.columnDef.header, header.getContext())"></th>
  121. </template>
  122. </tr>
  123. </template>
  124. </thead>
  125. <tbody>
  126. <template x-if="!visibleRows.length">
  127. <tr>
  128. <td
  129. :colspan="columns.length"
  130. class="h-24 text-center">
  131. <p>
  132. No results.
  133. <span
  134. @click="clearFilters"
  135. class="text-primary cursor-pointer hover:underline">
  136. Clear filters
  137. </span>
  138. </p>
  139. </td>
  140. </tr>
  141. </template>
  142. <template x-if="visibleRows.length">
  143. <template
  144. x-for="row in visibleRows"
  145. :key="row.id"
  146. >
  147. <tr>
  148. <template
  149. x-for="cell in getVisibleCells(row)"
  150. :key="cell.id"
  151. >
  152. <td>
  153. <template
  154. x-if="cell.column.id === 'id'">
  155. <span
  156. class="text-base-content/70 font-mono text-xs uppercase"
  157. x-text="cell.row.original.id"></span>
  158. </template>
  159. <template
  160. x-if="cell.column.id === 'text'">
  161. <div
  162. class="flex items-center gap-2">
  163. <div>
  164. <p
  165. class="leading-none font-medium"
  166. x-text="cell.row.original.text"></p>
  167. <!-- <p
  168. class="text-base-content/70 mt-0.5 text-xs/none"
  169. x-text="cell.row.original.mac"></p> -->
  170. </div>
  171. </div>
  172. </template>
  173. <template
  174. x-if="cell.column.id === 'actions'">
  175. <div
  176. class="gap-2 text-right">
  177. <button
  178. aria-label="Show"
  179. class="saveButton btn btn-outline btn-primary"
  180. @click="viewRow(cell.row)"
  181. >Open</button>
  182. </div>
  183. </template>
  184. <template
  185. x-if="!
  186. ['id', 'name', 'status', 'model', 'ip', 'position', 'actions'].includes(cell.column.id)">
  187. <span
  188. x-html="cell.column.columnDef.cell
  189. ? cell.column.columnDef.cell(cell.getContext())
  190. : cell.getValue()"></span>
  191. </template>
  192. </td>
  193. </template>
  194. </tr>
  195. </template>
  196. </template>
  197. </tbody>
  198. </table>
  199. </div>
  200. <div class="post min-w-[400px] max-w-[600px] max-h-[calc(100vh-260px)] overflow-y-scroll border-solid border-1 border-[#008EED] rounded-none post{arguments:id} ml-[30px] mb-[30px] hidden"></div>
  201. </div>
  202. </div>