diff --git a/assets/js/sessionCalendar.js b/assets/js/sessionCalendar.js new file mode 100644 index 0000000..b301768 --- /dev/null +++ b/assets/js/sessionCalendar.js @@ -0,0 +1,139 @@ +$(document).ready(function(){ + //Get the data that is going to be used as a filter for events + var selectedFeed = $('#hall_selector').find(':selected').data('feed'); + + var modal = document.getElementById("myModal"); + var btn = document.getElementById("myBtn"); + var span = document.getElementsByClassName("close")[0]; + + var calendar = $('#calendar').fullCalendar({ + editable:true, + header:{ + left:'prev,next today', + center:'title', + right:'month,agendaWeek,agendaDay' + }, + firstDay: 1, + fixedWeekCount: false, + eventSources: [ selectedFeed ], + selectable:true, + selectHelper:true, + timeFormat: 'H:mm', + eventOverlap: function(stillEvent, movingEvent) { + return (stillEvent.start_time > stillEvent.end && stillEvent.end < movingEvent.start_time) + }, + //Add event/session function when u click in any non-event date. Prepares the form to be seen as such + select: function(start, end, allDay) + { + + $(modal).fadeIn(); + + var x = document.getElementById("film_group"); + x.style.display = "none"; + x = document.getElementById("film_list"); + x.style.display = "block"; + + document.getElementById("hall").value = document.getElementById("hall_selector").value; + document.getElementById("startDate").value = $.fullCalendar.formatDate( start, "Y-MM-DD" ); + document.getElementById("endDate").value = $.fullCalendar.formatDate( end, "Y-MM-DD" ); + + document.getElementById("sumbit_new").style.display = "block"; + document.getElementById("edit_inputs").style.display = "none"; + }, + editable:true, + //Edit only the date/hour start of an event/session when u click,drag and drop an event. + eventDrop:function(event) + { + var e = { + "newDate" : $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss"), + "idhall": document.getElementById("hall").value, + "startHour":event.start_time, + "startDate":event.date, + "price": event.seat_price, + "idfilm": event.film.idfilm, + "format": event.format, + }; + console.log(e); + console.log(event); + $.ajax({ + url:"eventsProcess.php?drop=true", + contentType: 'application/json; charset=utf-8', + dataType: "json", + type:"PUT", + data:JSON.stringify(e), + success: function(data) { + alert("El evento se ha desplazado correctamente"); + calendar.fullCalendar('refetchEvents'); + }, + error: function(data) { + alert("Ha habido un error al desplazar el evento"); + }, + }); + }, + //Edit event/session function when u click an event. Prepares the form to be seen as such + eventClick:function(event) + { + $(modal).fadeIn(); + + var x = document.getElementById("film_group"); + x.style.display = "block"; + + x = document.getElementById("film_list"); + x.style.display = "none"; + + document.getElementById("hall").value = document.getElementById("hall_selector").value; + document.getElementById("startDate").value = $.fullCalendar.formatDate( event.start, "Y-MM-DD" ); + document.getElementById("endDate").value = $.fullCalendar.formatDate( event.end, "Y-MM-DD" ); + document.getElementById("price").value = event.seat_price; + document.getElementById("format").value = event.format; + document.getElementById("startHour").value = event.start_time; + + document.getElementById("original_hall").value = document.getElementById("hall_selector").value; + document.getElementById("original_start_time").value = event.start_time; + document.getElementById("original_date").value = $.fullCalendar.formatDate( event.start, "Y-MM-DD" ); + + document.getElementById("film_title").innerHTML = event.film.tittle; + document.getElementById("film_lan").innerHTML = event.film.language; + document.getElementById("film_dur").innerHTML = event.film.duration+" min"; + document.getElementById("film_img").src = "../img/films/"+event.film.img; + document.getElementById("film_desc").innerHTML = event.film.description; + document.getElementById("film_id").value = event.film.idfilm; + document.getElementById("sumbit_new").style.display = "none"; + document.getElementById("edit_inputs").style.display = "grid"; + + }, + + }); + //Once the filter changes, do the changes needed so full calendar research the events with the new hall + $('#hall_selector').change(onSelectChangeFeed); + + function onSelectChangeFeed() { + var feed = $(this).find(':selected').data('feed'); + $('#calendar').fullCalendar('removeEventSource', selectedFeed); + $('#calendar').fullCalendar('addEventSource', feed); + selectedFeed = feed; + }; + + //When u click on the X the form closes. If the user close it because the operation has been complete. Restart the form correctly + span.onclick = function() { + formout(); + } + + function formout(){ + $(modal).fadeOut(100,function(){ + var success = document.getElementById("success"); + if(success){ + calendar.fullCalendar('refetchEvents'); + $(".alert").remove(); + document.getElementById("session_form").style.display = "block"; + document.getElementById("price").value = ""; + document.getElementById("format").value = ""; + document.getElementById("film_id").value = ""; + document.getElementById("startHour").value =""; + } + $(".form_group").removeClass("has_error"); + $(".help_block").remove(); + }); + } +}); + diff --git a/assets/js/sessionFormProcess.js b/assets/js/sessionFormProcess.js new file mode 100644 index 0000000..803febf --- /dev/null +++ b/assets/js/sessionFormProcess.js @@ -0,0 +1,212 @@ +$(document).ready(function () { + + //New session + $('#sumbit_new').click( function(e) { + $(".form_group").removeClass("has_error"); + $(".help_block").remove(); + + var formData = { + price: $("#price").val(), + format: $("#format").val(), + hall: $("#hall").val(), + startDate: $("#startDate").val(), + endDate: $("#endDate").val(), + startHour: $("#startHour").val(), + idFilm: $("#film_id").val(), + }; + + $.ajax({ + type: "POST", + url:"eventsProcess.php", + contentType: 'application/json; charset=utf-8', + dataType: "json", + data:JSON.stringify(formData), + encode: true, + }).done(function (data) { + console.log(data); + checkErrors(data,"session_form"); + }) + .fail(function (jqXHR, textStatus) { + $("form#session_form").html( + '