calendar.blade.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <div class="col card--ui" id="card--dashboard">
  2. <section id="resume-table">
  3. <div class="compare--chart_wrapper d-none"></div>
  4. <div class="row">
  5. <div class="col-6 mt-2">
  6. <div class="form--item">
  7. <label for="inputName" class="form-label">Tipologia</label>
  8. <select class="form-select form-select-lg me-1" wire:model="course_type_id">
  9. <option value="">
  10. @foreach($course_types as $c)
  11. <option value="{{$c["id"]}}">{{$c["name"]}}</option>
  12. @endforeach
  13. </select>
  14. </div>
  15. </div>
  16. <div class="col-6 text-end">
  17. <a style="cursor:pointer" href="#" data-bs-toggle="modal" data-bs-target="#calendarNewModal" class="openNewModal addData btn--ui"><i class="fa-solid fa-plus"></i></a>
  18. </div>
  19. </div>
  20. <div id='calendar'></div>
  21. </section>
  22. <a href="#" data-bs-toggle="modal" data-bs-target="#calendarModal" class="openModal"></a>
  23. <div wire:ignore.self class="modal" id="calendarModal" tabindex="-1" aria-labelledby="calendarModalLabel" aria-hidden="true">
  24. <div class="modal-dialog">
  25. <div class="modal-content">
  26. <div class="modal-header">
  27. <h5 class="modal-title" id="calendarModalLabel">Dettaglio</h5>
  28. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  29. </div>
  30. <div class="modal-body">
  31. <div class="row">
  32. <div class="col-md-6">
  33. <label for="course_subscription_id" class="form-label">Ora inizio</label>
  34. <h3 class="time">ORA</h3>
  35. </div>
  36. <div class="col-md-6">
  37. <label class="form-label date">Martedì aaa</label>
  38. <h3 class="title">Padel</h3>
  39. </div>
  40. </div>
  41. </div>
  42. <div class="modal-footer mt-2">
  43. <button class="btn--ui lightGrey" >Annulla Lezione</a>
  44. <button type="button" class="btn--ui btn-primary" onclick="goPresence()">Presenze</button>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. <!--
  50. Giorno e data della lezione
  51. Corso, livello, tipologia, frequenza, insegnante, campo, note
  52. -->
  53. <div wire:ignore.self class="modal" id="calendarNewModal" tabindex="-1" aria-labelledby="calendarNewModalLabel" aria-hidden="true">
  54. <div class="modal-dialog">
  55. <div class="modal-content">
  56. <div class="modal-header">
  57. <h5 class="modal-title" id="calendarNewModalLabel">Dettaglio</h5>
  58. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  59. </div>
  60. <div class="modal-body">
  61. <div class="row">
  62. <div class="col-md-6">
  63. <label for="date" class="form-label">Data</label>
  64. <input class="form-control" type="date" id="date" placeholder="Data">
  65. </div>
  66. <div class="col-md-6">
  67. <label for="date" class="form-label">Nome</label>
  68. <input class="form-control js-keyupTitle" type="name" id="name" placeholder="Nome">
  69. </div>
  70. </div>
  71. <div class="row">
  72. <div class="col-md-6">
  73. <label for="course_subscription_id" class="form-label">Ora inizio</label>
  74. <select class="form-select" id="from">
  75. <option value="">--Seleziona--
  76. @for($c=6;$c<=23;$c++)
  77. <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00
  78. <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30
  79. @endfor
  80. </select>
  81. </div>
  82. <div class="col-md-6">
  83. <label for="course_subscription_id" class="form-label">Ora fine</label>
  84. <select class="form-select" id="to">
  85. <option value="">--Seleziona--
  86. @for($c=6;$c<=23;$c++)
  87. <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00
  88. <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30
  89. @endfor
  90. </select>
  91. </div>
  92. </div>
  93. <div class="row">
  94. <div class="col-md-6">
  95. <label for="course_type_id" class="form-label">Corso</label>
  96. <select class="form-select form-select-lg me-1" id="course_type_id">
  97. <option value="">
  98. @foreach($course_types as $c)
  99. <option value="{{$c["id"]}}">{{$c["name"]}}</option>
  100. @endforeach
  101. </select>
  102. </div>
  103. <div class="col-md-6">
  104. <label for="course_duration_id" class="form-label">Darata</label>
  105. <select class="form-select form-select-lg me-1" id="course_duration_id">
  106. <option value="">
  107. @foreach($course_durations as $c)
  108. <option value="{{$c["id"]}}">{{$c["name"]}}</option>
  109. @endforeach
  110. </select>
  111. </div>
  112. </div>
  113. <div class="row">
  114. <div class="col-md-6">
  115. <label for="course_frequency_id" class="form-label">Frequenza</label>
  116. <select class="form-select form-select-lg me-1" id="course_frequency_id">
  117. <option value="">
  118. @foreach($course_frequencies as $c)
  119. <option value="{{$c["id"]}}">{{$c["name"]}}</option>
  120. @endforeach
  121. </select>
  122. </div>
  123. <div class="col-md-6">
  124. <label for="course_level_id" class="form-label">Livello</label>
  125. <select class="form-select form-select-lg me-1" id="course_level_id">
  126. <option value="">
  127. @foreach($course_levels as $c)
  128. <option value="{{$c["id"]}}">{{$c["name"]}}</option>
  129. @endforeach
  130. </select>
  131. </div>
  132. </div>
  133. </div>
  134. <div class="modal-footer mt-2">
  135. <button class="btn--ui lightGrey" >Annulla</a>
  136. <button type="button" class="btn--ui btn-primary" onclick="createCalendar()">Salva</button>
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. @push('scripts')
  143. <script src="/assets/js/fullcalendar.js"></script>
  144. <script src="/assets/js/fullcalendar_locales.js"></script>
  145. @endpush
  146. @push('scripts')
  147. <script>
  148. var currentCalendar = 0;
  149. var params = '';
  150. function goPresence()
  151. {
  152. document.location.href = '/presences' + params;
  153. }
  154. function createCalendar()
  155. {
  156. console.log($("#course_type_id").val());
  157. @this.set('course_type_id',$("#course_type_id").val());
  158. console.log($("#course_duration_id").val());
  159. @this.set('course_duration_id', $("#course_duration_id").val());
  160. console.log($("#course_frequency_id").val());
  161. @this.set('course_frequency_id', $("#course_frequency_id").val());
  162. console.log($("#course_level_id").val());
  163. @this.set('course_level_id', $("#course_level_id").val());
  164. console.log($("#date").val() + " " + $("#from").val() + ":00");
  165. @this.set('from', $("#date").val() + " " + $("#from").val() + ":00");
  166. console.log($("#date").val() + " " + $("#to").val() + ":00");
  167. @this.set('to', $("#date").val() + " " + $("#to").val() + ":00");
  168. console.log($("#name").val());
  169. @this.set('name', $("#name").val());
  170. @this.createCalendar();
  171. }
  172. document.addEventListener('DOMContentLoaded', function() {
  173. var calendarEl = document.getElementById('calendar');
  174. var calendar = new FullCalendar.Calendar(calendarEl, {
  175. initialView: 'timeGridWeek',
  176. headerToolbar: {
  177. left: 'prevYear,prev,next,nextYear today',
  178. center: 'title',
  179. right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
  180. },
  181. dateClick: function(info) {
  182. var x = info.dateStr.split("T");
  183. $("#date").val(x[0]);
  184. $('.openNewModal').trigger('click');
  185. },
  186. eventClick: function(info) {
  187. var eventDate = new Date(info.event.start);
  188. var datestring = eventDate.getFullYear() + "-" + pad(eventDate.getMonth()+1, 2) + "-" + pad(eventDate.getDate(), 2) + " " + pad(eventDate.getHours(), 2) + ":" + pad(eventDate.getMinutes(), 2) + ":00";
  189. var title = info.event.title;
  190. $(".title").html(title);
  191. $(".time").html(pad(eventDate.getHours(), 2) + ":" + pad(eventDate.getMinutes(), 2));
  192. $(".date").html(eventDate.toLocaleDateString('it-IT', { weekday: 'long' }) + " " + pad(eventDate.getDate(), 2) + " " + eventDate.toLocaleDateString('it-IT', { month: 'long' }));
  193. currentCalendar = info.event.id;
  194. params = '?calendarId=' + info.event.id;// + "&date=" + datestring;
  195. $('.openModal').trigger('click');
  196. },
  197. locale: 'it',
  198. events: @json($records),
  199. });
  200. calendar.render();
  201. });
  202. $(document).ready(function() {
  203. } );
  204. Livewire.on('load-data-table', () => {
  205. });
  206. function pad(num, size) {
  207. num = num.toString();
  208. while (num.length < size) num = "0" + num;
  209. return num;
  210. }
  211. </script>
  212. @endpush