Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

167 řádky
7.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] capitalize">{arguments:db}s</span>
  5. </div>
  6. <div class="flex items-center gap-2">
  7. <label class="input input-primary w-[200px]">
  8. <span class="iconify lucide--search text-base-content/70 size-4.5 "></span>
  9. <input class="text-base placeholder:text-sm" type="search" x-model="search" @input="updateSearch"
  10. placeholder="Search" />
  11. </label>
  12. <div class="dropdown dropdown-bottom dropdown-end">
  13. <div aria-label="More actions" tabindex="0" role="button" class="btn btn-outline btn-primary">
  14. <span class="iconify lucide--ellipsis-vertical size-4"></span>
  15. </div>
  16. <div tabindex="0" class="dropdown-content bg-base-100 rounded-box w-44 shadow">
  17. <ul class="menu w-full">
  18. <li class="update{arguments:db}" @click="updateData()">
  19. <div>
  20. <span class="iconify lucide--refresh-cw size-4"></span>
  21. Refresh Data
  22. </div>
  23. </li>
  24. <li>
  25. <div>
  26. <span class="iconify lucide--download size-4"></span>
  27. Export
  28. </div>
  29. </li>
  30. </ul>
  31. </div>
  32. </div>
  33. <button type="submit" class="btn btn-outline btn-primary" style="cursor: pointer;"
  34. onclick="js.part({'do':'{arguments:new}',arguments:{db:'{arguments:db}'}})">Add</button>
  35. </div>
  36. </div>
  37. <div class="flex w-full px-[30px]">
  38. <div
  39. class=" max-h-[calc(100vh-260px)] overflow-y-scroll overflow-x-auto w-full border-solid border-1 border-[#008EED] rounded-none">
  40. <div
  41. class="min-w-[480px] px-[20px] py-[20px] border-base-200 flex flex-wrap items-center justify-between gap-2">
  42. <div class="join border-solid border-1 border-[#008EED] rounded-md">
  43. <button class="btn btn-square btn-sm btn-outline border-base-300 join-item"
  44. aria-label="Pagination controls" :disabled="!table.getCanPreviousPage()" @click="prevPage()">
  45. <span class="iconify lucide--arrow-left"></span>
  46. </button>
  47. <input aria-label="Page number" min="1" :max="table.getPageCount()" :value="pageIndex + 1"
  48. @input="setPageIndex($event.target.value - 1)"
  49. class="input input-sm join-item w-10 text-center border-0" />
  50. <button class="btn btn-square btn-sm btn-outline border-base-300 join-item"
  51. aria-label="Pagination controls" :disabled="!table.getCanNextPage()" @click="nextPage()">
  52. <span class="iconify lucide--arrow-right"></span>
  53. </button>
  54. </div>
  55. <p class="text-base-content/70 text-sm max-md:hidden">
  56. <span class="text-base-content font-medium" x-text="`${start}–${end}`"></span>
  57. out of
  58. <span class="text-base-content font-medium" x-text="rowCount"></span>
  59. </p>
  60. <div class="flex items-center gap-2">
  61. <p class="text-base-content/70 text-sm max-md:hidden">
  62. Per page
  63. </p>
  64. <select aria-label="Items per page" class="select select-sm w-16 border-solid border-1 border-[#008EED]"
  65. @change="changePageSize(Number($event.target.value))">
  66. <template x-for="size in pageSizes" :key="size">
  67. <option :value="size" :selected="size === pageSize" x-text="size"></option>
  68. </template>
  69. </select>
  70. </div>
  71. </div>
  72. <table class="table">
  73. <thead>
  74. <template x-for="headerGroup in table.getHeaderGroups()" :key="headerGroup.id">
  75. <tr>
  76. <template x-for="header in headerGroup.headers" :key="header.id">
  77. <th class="text-[#008EED]" , x-show="!header.isPlaceholder"
  78. x-text="flexRender(header.column.columnDef.header, header.getContext())"></th>
  79. </template>
  80. </tr>
  81. </template>
  82. </thead>
  83. <tbody>
  84. <template x-if="!visibleRows.length">
  85. <tr>
  86. <td :colspan="columns.length" class="h-24 text-center">
  87. <p>
  88. No results.
  89. <span @click="clearFilters" class="text-primary cursor-pointer hover:underline">
  90. Clear filters
  91. </span>
  92. </p>
  93. </td>
  94. </tr>
  95. </template>
  96. <template x-if="visibleRows.length">
  97. <template x-for="row in visibleRows" :key="row.id">
  98. <tr>
  99. <template x-for="cell in getVisibleCells(row)" :key="cell.id">
  100. <td>
  101. <template x-if="cell.column.id === 'id'">
  102. <span class="text-base-content/70 font-mono text-xs uppercase"
  103. x-text="cell.row.original.id"></span>
  104. </template>
  105. <template x-if="cell.column.id === 'text'">
  106. <div class="flex items-center gap-2">
  107. <div>
  108. <p class="leading-none font-medium" x-text="cell.row.original.text"></p>
  109. <!-- <p
  110. class="text-base-content/70 mt-0.5 text-xs/none"
  111. x-text="cell.row.original.mac"></p> -->
  112. </div>
  113. </div>
  114. </template>
  115. <template x-if="cell.column.id === 'actions'">
  116. <div class="gap-2 text-right">
  117. <button aria-label="Show" class="saveButton btn btn-outline btn-primary"
  118. @click="viewRow(cell.row)">Open</button>
  119. </div>
  120. </template>
  121. <template x-if="!
  122. ['id', 'name', 'status', 'model', 'ip', 'position', 'actions'].includes(cell.column.id)">
  123. <span x-html="cell.column.columnDef.cell
  124. ? cell.column.columnDef.cell(cell.getContext())
  125. : cell.getValue()"></span>
  126. </template>
  127. </td>
  128. </template>
  129. </tr>
  130. </template>
  131. </template>
  132. </tbody>
  133. </table>
  134. </div>
  135. <div
  136. 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">
  137. </div>
  138. </div>
  139. </div>