course_member.blade.php 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. <div class="col">
  2. <div class="row h-100">
  3. <div class="col-auto filterWrapper" id="filter--section" wire:ignore.self>
  4. <aside>
  5. <header>
  6. <h2>Filtra</h2>
  7. </header>
  8. <form action="" id="filter--form" class="dark-form row">
  9. <div class="filter--item">
  10. <span class="filter--item_title">Corso</span>
  11. <div class="filter--item_formElement">
  12. <select class="form-select" wire:model="filterCourse" onchange="destroyDataTable()">
  13. <option value="">--Seleziona--
  14. @foreach($courses as $c)
  15. <option value="{{$c->id}}">{{$c->name}}
  16. @endforeach
  17. </select>
  18. </div>
  19. </div>
  20. <div class="filter--item">
  21. <span class="filter--item_title">Livello</span>
  22. <div class="filter--item_formElement">
  23. <select class="form-select" wire:model="filterLevel" onchange="destroyDataTable()">
  24. <option value="">--Seleziona--
  25. @foreach($course_levels as $c)
  26. <option value="{{$c->id}}">{{$c->name}}
  27. @endforeach
  28. </select>
  29. </div>
  30. </div>
  31. <div class="filter--item">
  32. <span class="filter--item_title">Tipologia</span>
  33. <div class="filter--item_formElement">
  34. <select class="form-select" wire:model="filterType" onchange="destroyDataTable()">
  35. <option value="">--Seleziona--
  36. @foreach($course_types as $c)
  37. <option value="{{$c->id}}">{{$c->name}}
  38. @endforeach
  39. </select>
  40. </div>
  41. </div>
  42. <div class="filter--item">
  43. <span class="filter--item_title">Durata</span>
  44. <div class="filter--item_formElement">
  45. <select class="form-select" wire:model="filterDuration" onchange="destroyDataTable()">
  46. <option value="">--Seleziona--
  47. @foreach($course_durations as $c)
  48. <option value="{{$c->id}}">{{$c->name}}
  49. @endforeach
  50. </select>
  51. </div>
  52. </div>
  53. <div class="filter--item">
  54. <span class="filter--item_title">Giorni</span>
  55. <div class="filter--item_formElement">
  56. <select class="form-select" wire:model="filterDays" onchange="destroyDataTable()">
  57. <option value="">--Seleziona--
  58. <option value="lun">Lunedì
  59. <option value="mar">Martedì
  60. <option value="mer">Mercoledì
  61. <option value="gio">Giovedì
  62. <option value="ven">Venerdì
  63. <option value="sab">Sabato
  64. <option value="dom">Domenica
  65. </select>
  66. </div>
  67. </div>
  68. <div class="filter--item">
  69. <span class="filter--item_title">Orari</span>
  70. <div class="filter--item_formElement">
  71. <select class="form-select" wire:model="filterHours" onchange="destroyDataTable()">
  72. <option value="">--Seleziona--
  73. @for($c=6;$c<=23;$c++)
  74. <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00
  75. <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30
  76. @endfor
  77. </select>
  78. </div>
  79. </div>
  80. <div class="filter--item">
  81. <span class="filter--item_title">Pagamento iscrizione</span>
  82. <div class="filter--item_formElement">
  83. <select class="form-select" wire:model="filterSubscription" onchange="destroyDataTable()">
  84. <option value="">--Seleziona--
  85. <option value="1">Pagata
  86. <option value="0">Non Pagata
  87. </select>
  88. </div>
  89. </div>
  90. </form>
  91. <footer>
  92. <div class="filter--buttons d-flex align-items-center justify-content-between">
  93. <button class="btn--ui small dark disable" wire:click.prevent="disableSearch()" onclick="destroyDataTable()">cancella</button>
  94. <button class="btn--ui small white" wire:click.prevent="search()" onclick="destroyDataTable()">filtra</button>
  95. </div>
  96. </footer>
  97. </aside>
  98. </div>
  99. <div class="col card--ui" id="card--dashboard">
  100. <header id="title--section" class="d-flex align-items-center justify-content-between">
  101. <div class="title--section_name d-flex align-items-center justify-content-between">
  102. <i class="ico--ui title_section utenti me-2"></i>
  103. <h2 class="primary">Iscritti ai corsi</h2>
  104. </div>
  105. </header>
  106. <button id="open-filter" onclick="pcsh1()"></button>
  107. <button id="close-filter" onclick="pcsh2()"></button>
  108. <section id="resume-table">
  109. <div class="compare--chart_wrapper d-none"></div>
  110. <table class="table tablesaw tablesaw-stack" id="tablesaw-350">
  111. <thead>
  112. <tr>
  113. <th scope="col">#</th>
  114. <th scope="col">Corso</th>
  115. <th scope="col">Cognome</th>
  116. <th scope="col">Nome</th>
  117. <th scope="col">Età</th>
  118. <th scope="col">Telefono</th>
  119. <th scope="col">Email</th>
  120. </tr>
  121. </thead>
  122. <tbody id="checkall-target">
  123. @foreach($records as $idx => $record)
  124. <tr>
  125. <td>{{$idx +1}}</td>
  126. <td>{{$record->course->name}}</td>
  127. <td>{{$record->member->last_name}}</td>
  128. <td>{{$record->member->first_name}}</td>
  129. <td>{{$record->member->getAge() . " (" . date("Y", strtotime($record->member->birth_date)) . ")"}}</td>
  130. <td>{{$record->member->phone}}</td>
  131. <td>{{$record->member->email}}</td>
  132. </tr>
  133. @endforeach
  134. </tbody>
  135. </table>
  136. </section>
  137. </div>
  138. @push('scripts')
  139. <link href="/css/datatables.css" rel="stylesheet" />
  140. <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
  141. <script src="/assets/js/datatables.js"></script>
  142. <script src="https://cdn.datatables.net/buttons/3.0.2/js/buttons.dataTables.js"></script>
  143. <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
  144. <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
  145. <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
  146. @endpush
  147. @push('scripts')
  148. <script>
  149. $(document).ready(function() {
  150. loadDataTable();
  151. } );
  152. Livewire.on('load-data-table', () => {
  153. loadDataTable();
  154. });
  155. Livewire.on('destroy-data-table', () => {
  156. $('#tablesaw-350').DataTable().destroy();
  157. });
  158. function destroyDataTable()
  159. {
  160. $('#tablesaw-350').DataTable().destroy();
  161. }
  162. function loadDataTable(){
  163. $('#tablesaw-350').DataTable({
  164. thead: {
  165. 'th': {'background-color': 'blue'}
  166. },
  167. layout: {
  168. topStart: {
  169. buttons: [
  170. {
  171. extend: 'excelHtml5',
  172. title: 'Iscritti corsi'
  173. },
  174. {
  175. extend: 'pdfHtml5',
  176. title: 'Iscritti corsi'
  177. },
  178. {
  179. extend: 'print',
  180. text: 'Stampa',
  181. title: 'Iscritti corsi'
  182. }
  183. ]
  184. }
  185. },
  186. pagingType: 'numbers',
  187. "language": {
  188. "url": "/assets/js/Italian.json"
  189. }
  190. });
  191. $('#tablesaw-350 thead tr th').addClass('col');
  192. $('#tablesaw-350 thead tr th').css("background-color", "#EDF0F2");
  193. }
  194. </script>
  195. @endpush