Add files via upload
This commit is contained in:
parent
214e5df673
commit
31cb6b3212
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
require_once('../assets/php/config.php');
|
require_once('../assets/php/config.php');
|
||||||
require_once('./Evento.php');
|
require_once('./Evento.php');
|
||||||
|
include_once($prefix.'assets/php/includes/session.php');
|
||||||
|
|
||||||
// Procesamos la cabecera Content-Type
|
// Procesamos la cabecera Content-Type
|
||||||
$contentType= $_SERVER['CONTENT_TYPE'] ?? 'application/json';
|
$contentType= $_SERVER['CONTENT_TYPE'] ?? 'application/json';
|
||||||
@ -67,31 +68,68 @@ switch($_SERVER['REQUEST_METHOD']) {
|
|||||||
break;
|
break;
|
||||||
// Añadir un nuevo evento
|
// Añadir un nuevo evento
|
||||||
case 'POST':
|
case 'POST':
|
||||||
// 1. Leemos el contenido que nos envían
|
$errors = [];
|
||||||
|
$data = [];
|
||||||
|
//Testing hacks
|
||||||
|
$correct_response = 'Operación completada';
|
||||||
|
$film = "1";
|
||||||
|
|
||||||
$entityBody = file_get_contents('php://input');
|
$entityBody = file_get_contents('php://input');
|
||||||
// 2. Verificamos que nos envían un objeto
|
|
||||||
$dictionary = json_decode($entityBody);
|
$dictionary = json_decode($entityBody);
|
||||||
if (!is_object($dictionary)) {
|
|
||||||
//throw new ParametroNoValidoException('El cuerpo de la petición no es valido');
|
if (!is_object($dictionary))
|
||||||
|
$errors['global'] = 'El cuerpo de la petición no es valido';
|
||||||
|
|
||||||
|
$price = $dictionary->{"price"} ?? "";
|
||||||
|
$format = $dictionary->{"format"} ?? "";
|
||||||
|
$hall = $dictionary->{"hall"} ?? "";
|
||||||
|
$startDate = $dictionary->{"startDate"} ?? "";
|
||||||
|
$endDate = $dictionary->{"endDate"} ?? "";
|
||||||
|
$startHour = $dictionary->{"startHour"} ?? "";
|
||||||
|
|
||||||
|
if (empty($price) || $price <= 0 )
|
||||||
|
$errors['price'] = 'El precio no puede ser 0.';
|
||||||
|
if (empty($format))
|
||||||
|
$errors['format'] = 'El formato no puede estar vacio. Ej: 3D, 2D, voz original';
|
||||||
|
if (empty($hall) || $hall<=0 )
|
||||||
|
$errors['hall'] = 'La sala no puede ser 0 o menor';
|
||||||
|
if (empty($startDate))
|
||||||
|
$errors['startDate'] = 'Las sesiones tienen que empezar algun dia.';
|
||||||
|
else if (empty($endDate))
|
||||||
|
$errors['endDate'] = 'Las sesiones tienen que teminar algun dia.';
|
||||||
|
else {
|
||||||
|
$start = strtotime($startDate);
|
||||||
|
$end = strtotime($endDate);
|
||||||
|
$start = date('Y-m-d', $start);
|
||||||
|
$end = date('Y-m-d', $end);
|
||||||
|
|
||||||
|
if($start >= $end)
|
||||||
|
$errors['date'] = 'La fecha inicial no puede ser antes o el mismo dia que la final.';
|
||||||
|
}
|
||||||
|
if (empty($startHour))
|
||||||
|
$errors['startHour'] = 'Es necesario escoger el horario de la sesion.';
|
||||||
|
|
||||||
|
while($startDate < $endDate && empty($errors)){
|
||||||
|
$msg = Session::create_session($_SESSION["cinema"], $hall, $startHour, $startDate, $film, $price, $format);
|
||||||
|
|
||||||
|
if(strcmp($msg,$correct_response)!== 0)
|
||||||
|
$errors['price'] = $msg;
|
||||||
|
else
|
||||||
|
$data['message'] = $msg;
|
||||||
|
|
||||||
|
$startDate = date('Y-m-d H:i:s', strtotime( $startDate . ' +1 day'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Reprocesamos el cuerpo de la petición como un array PHP
|
if (!empty($errors)) {
|
||||||
$dictionary = json_decode($entityBody, true);
|
error_log("no success");
|
||||||
$dictionary['userId'] = 1;// HACK: normalmente debería de ser App::getSingleton()->idUsuario();
|
$data['success'] = false;
|
||||||
|
$data['errors'] = $errors;
|
||||||
|
} else {
|
||||||
|
error_log("succes");
|
||||||
|
$data['success'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
$e = Evento::creaDesdeDicionario($dictionary);
|
echo json_encode($data);
|
||||||
|
|
||||||
// 4. Guardamos el evento en BD
|
|
||||||
$result = Evento::guardaOActualiza($e);
|
|
||||||
|
|
||||||
// 5. Generamos un objecto como salida.
|
|
||||||
$json = json_encode($result, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
|
|
||||||
|
|
||||||
http_response_code(201); // 201 Created
|
|
||||||
header('Content-Type: application/json; charset=utf-8');
|
|
||||||
header('Content-Length: ' . mb_strlen($json));
|
|
||||||
|
|
||||||
echo $json;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'PUT':
|
case 'PUT':
|
||||||
|
79
panel_manager/includes/NewSessionForm.php
Normal file
79
panel_manager/includes/NewSessionForm.php
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once($prefix.'assets/php/includes/film_dao.php');
|
||||||
|
|
||||||
|
class NewSessionForm {
|
||||||
|
|
||||||
|
public static function getForm(){
|
||||||
|
$films = new Film_DAO("complucine");
|
||||||
|
$filmslist = $films->allFilmData();
|
||||||
|
|
||||||
|
$form='
|
||||||
|
<form id="new_session_form" name="new_session_form" action="eventos.php.php" method="POST">
|
||||||
|
<div id="global_group" class="form_group"></div>
|
||||||
|
<fieldset>
|
||||||
|
<legend>Datos</legend>
|
||||||
|
<div id="price_group" class="form_group">
|
||||||
|
<input type="number" step="0.01" id="price" name="price" value="" min="0" placeholder="Precio de la entrada" /> <br>
|
||||||
|
</div>
|
||||||
|
<div id="format_group" class="form_group">
|
||||||
|
<input type="text" id="format" name="format" value="" placeholder="Formato de pelicula" /> <br>
|
||||||
|
</div>
|
||||||
|
<div id="hall_group" class="form_group">';
|
||||||
|
foreach(Hall::getListHalls($_SESSION["cinema"]) as $hll){
|
||||||
|
if($hll->getNumber() == $hall){
|
||||||
|
$panel.= '
|
||||||
|
<option data-feed="./eventos.php?hall='.$hll->getNumber().'" value="'. $hll->getNumber() .'"selected> Sala '. $hll->getNumber() .'</option> ';
|
||||||
|
}else{
|
||||||
|
$panel.= '
|
||||||
|
<option data-feed="./eventos.php?hall='.$hll->getNumber().'" value="'. $hll->getNumber() .'"> Sala '. $hll->getNumber() .'</option>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$form.='</select>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend>Horario</legend>
|
||||||
|
<div id="date_group" class="form_group">
|
||||||
|
<div class="two-inputs-line">
|
||||||
|
<label> Fecha inicio </label>
|
||||||
|
<label> Fecha final </label>
|
||||||
|
<input type="date" id="startDate" name="startDate" value=""/>
|
||||||
|
<input type="date" id="endDate" name="endDate" value=""/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="hour_group" class="form_group">
|
||||||
|
<div class="one-input-line">
|
||||||
|
<label> Hora sesion </label>
|
||||||
|
<input type="time" id="startHour" name="startHour" value=""/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<input type="reset" id="reset" value="Limpiar Campos" >
|
||||||
|
<input type="submit" id="submit" name="sumbit" class="primary" value="Crear" />
|
||||||
|
</form>
|
||||||
|
<div id="film_group" class="form_group">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="film_list">
|
||||||
|
<ul class="tablelist col3">';
|
||||||
|
$parity = "odd";
|
||||||
|
foreach($filmslist as $film){
|
||||||
|
$form .='<div class="'.$parity.'">
|
||||||
|
<li> '. str_replace('_', ' ',$film->getTittle()).'</li>
|
||||||
|
<li> '.$film->getDuration().' min</li>
|
||||||
|
<li> <button type="button" id="select_button"> Seleccionar </button> </li>
|
||||||
|
</div>
|
||||||
|
';
|
||||||
|
$parity = ($parity == "odd") ? "even" : "odd";
|
||||||
|
}
|
||||||
|
$form.='
|
||||||
|
</ul>
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
return $form;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
@ -23,7 +23,7 @@
|
|||||||
<div class='code info'>
|
<div class='code info'>
|
||||||
<h1> ¡ATENCIÓN! </h1><hr />
|
<h1> ¡ATENCIÓN! </h1><hr />
|
||||||
<p>Está viendo la web como un Usuario NO Registrado.</p>
|
<p>Está viendo la web como un Usuario NO Registrado.</p>
|
||||||
<a href=''><button>Cerrar Mensaje</button></a>
|
<a href='".$prefix."'><button>Cerrar Mensaje</button></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='column side'></div>
|
<div class='column side'></div>
|
||||||
@ -39,7 +39,7 @@
|
|||||||
<div class='code info'>
|
<div class='code info'>
|
||||||
<h1> ¡ATENCIÓN! </h1><hr />
|
<h1> ¡ATENCIÓN! </h1><hr />
|
||||||
<p>Está viendo la web como un Usuario Registrado.</p>
|
<p>Está viendo la web como un Usuario Registrado.</p>
|
||||||
<a href=''><button>Cerrar Mensaje</button></a>
|
<a href='".$prefix."'><button>Cerrar Mensaje</button></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='column side'></div>
|
<div class='column side'></div>
|
||||||
@ -121,7 +121,7 @@
|
|||||||
<div class='code info'>
|
<div class='code info'>
|
||||||
<h1> ¡ATENCIÓN! </h1><hr />
|
<h1> ¡ATENCIÓN! </h1><hr />
|
||||||
<p>Está viendo la web como un Usuario Registrado.</p>
|
<p>Está viendo la web como un Usuario Registrado.</p>
|
||||||
<a href='".$prefix."panel_user'><button>Cerrar Mensaje</button></a>
|
<a href='".$prefix."'><button>Cerrar Mensaje</button></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class='column side'></div>
|
<div class='column side'></div>
|
||||||
@ -195,3 +195,4 @@
|
|||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.js"></script>
|
||||||
<script src="./sessioncalendar.js"></script>
|
<script src="./sessioncalendar.js"></script>
|
||||||
|
<script src="./sessionforms.js"></script>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
require_once($prefix.'assets/php/includes/cinema_dao.php');
|
require_once($prefix.'assets/php/includes/cinema_dao.php');
|
||||||
include_once('./includes/formHall.php');
|
include_once('./includes/formHall.php');
|
||||||
include_once('./includes/formSession.php');
|
include_once('./includes/formSession.php');
|
||||||
|
include_once('./includes/NewSessionForm.php');
|
||||||
|
|
||||||
class Manager_panel {
|
class Manager_panel {
|
||||||
|
|
||||||
@ -89,7 +89,7 @@
|
|||||||
return $panel;
|
return $panel;
|
||||||
}
|
}
|
||||||
static function calendar(){
|
static function calendar(){
|
||||||
$formSession = new FormSession("new_session", $_SESSION["cinema"] );
|
|
||||||
$hall = $_POST['hall'] ?? $_GET['hall'] ?? "1";
|
$hall = $_POST['hall'] ?? $_GET['hall'] ?? "1";
|
||||||
$halls = Hall::getListHalls($_SESSION["cinema"]);
|
$halls = Hall::getListHalls($_SESSION["cinema"]);
|
||||||
|
|
||||||
@ -114,15 +114,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="column side"></div>
|
<div class="column side"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row fc-container">
|
||||||
|
<div id="calendar"></div>
|
||||||
<div id="myModal" class="modal">
|
<div id="myModal" class="modal">
|
||||||
|
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<span class="close">×</span>
|
<span class="close">×</span> <br> <br>
|
||||||
'.$formSession->gestiona().'
|
'.NewSessionForm::getForm().'
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="calendar"></div>
|
|
||||||
</div>';
|
</div>';
|
||||||
}else{
|
}else{
|
||||||
$panel ='<div class="row">
|
$panel ='<div class="row">
|
||||||
|
57
panel_manager/processSession.php
Normal file
57
panel_manager/processSession.php
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
$errors = [];
|
||||||
|
$data = [];
|
||||||
|
|
||||||
|
if (empty($_POST['price']) || $_POST['price'] <= 0 ) {
|
||||||
|
$errors['price'] = 'El precio no puede ser 0.';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($_POST['format'])) {
|
||||||
|
$errors['format'] = 'El formato no puede estar vacio. Ej: 3D, 2D, voz original';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($_POST['hall']) || $_POST['hall']<=0 ) {
|
||||||
|
$errors['hall'] = 'La sala no puede ser 0 o menor';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($_POST['startDate'])) {
|
||||||
|
$errors['startDate'] = 'Las sesiones tienen que empezar algun dia.';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($_POST['endDate'])) {
|
||||||
|
$errors['endDate'] = 'Las sesiones tienen que teminar algun dia.';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($_POST['startDate']) && !empty($_POST['endDate'])) {
|
||||||
|
$start = strtotime($_POST['startDate']);
|
||||||
|
$end = strtotime($_POST['endDate']);
|
||||||
|
|
||||||
|
$start = date('Y-m-d', $start);
|
||||||
|
$end = date('Y-m-d', $end);
|
||||||
|
|
||||||
|
if($start >= $end){
|
||||||
|
$errors['date'] = 'La fecha inicial no puede ser antes o el mismo dia que la final.';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($_POST['startHour'])) {
|
||||||
|
$errors['startHour'] = 'Es necesario escoger el horario de la sesion.';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!empty($errors)){
|
||||||
|
error_log("creamos una sesion, wahoo");
|
||||||
|
Session::create_session("1", $_POST['hall'], $_POST['startHour'], $_POST['startDate'],
|
||||||
|
"1",$_POST['price'], $_POST['format'],"0");
|
||||||
|
|
||||||
|
|
||||||
|
$data['success'] = false;
|
||||||
|
$data['errors'] = $errors;
|
||||||
|
} else {
|
||||||
|
$data['success'] = true;
|
||||||
|
$data['message'] = 'Success!';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo json_encode($data);
|
@ -17,20 +17,27 @@ $(document).ready(function(){
|
|||||||
center:'title',
|
center:'title',
|
||||||
right:'month,agendaWeek,agendaDay'
|
right:'month,agendaWeek,agendaDay'
|
||||||
},
|
},
|
||||||
|
firstDay: 1,
|
||||||
|
fixedWeekCount: false,
|
||||||
eventSources: [ selectedFeed ],
|
eventSources: [ selectedFeed ],
|
||||||
selectable:true,
|
selectable:true,
|
||||||
selectHelper:true,
|
selectHelper:true,
|
||||||
timeFormat: 'H:mm',
|
timeFormat: 'H:mm',
|
||||||
select: function(start, end, allDay)
|
select: function(start, end, allDay)
|
||||||
{
|
{
|
||||||
//modal.style.display = "block";
|
|
||||||
$(modal).fadeIn();
|
$(modal).fadeIn();
|
||||||
|
|
||||||
|
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" );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
var e = {
|
var e = {
|
||||||
"date" : $.fullCalendar.formatDate(allDay,"Y-MM-DD"),
|
"date" : $.fullCalendar.formatDate(allDay,"Y-MM-DD"),
|
||||||
"start" : $.fullCalendar.formatDate(start, "HH:mm"),
|
"start" : $.fullCalendar.formatDate(start, "HH:mm"),
|
||||||
"end" : $.fullCalendar.formatDate(end, "HH:mm")
|
"end" : $.fullCalendar.formatDate(end, "HH:mm")
|
||||||
};
|
};
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:"eventos.php",
|
url:"eventos.php",
|
||||||
type:"POST",
|
type:"POST",
|
||||||
@ -126,14 +133,12 @@ $(document).ready(function(){
|
|||||||
|
|
||||||
// When the user clicks on <span> (x), close the modal
|
// When the user clicks on <span> (x), close the modal
|
||||||
span.onclick = function() {
|
span.onclick = function() {
|
||||||
//modal.style.display = "none";
|
|
||||||
$(modal).fadeOut();
|
$(modal).fadeOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
// When the user clicks anywhere outside of the modal, close it
|
// When the user clicks anywhere outside of the modal, close it
|
||||||
window.onclick = function(event) {
|
window.onclick = function(event) {
|
||||||
if (event.target == modal) {
|
if (event.target == modal) {
|
||||||
//modal.style.display = "none";
|
|
||||||
$(modal).fadeOut();
|
$(modal).fadeOut();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
93
panel_manager/sessionforms.js
Normal file
93
panel_manager/sessionforms.js
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
$(document).ready(function () {
|
||||||
|
|
||||||
|
$("form#new_session_form").on('submit', 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(),
|
||||||
|
};
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url:"eventos.php",
|
||||||
|
contentType: 'application/json; charset=utf-8',
|
||||||
|
dataType: "json",
|
||||||
|
data:JSON.stringify(formData),
|
||||||
|
encode: true,
|
||||||
|
}).done(function (data) {
|
||||||
|
console.log(data);
|
||||||
|
|
||||||
|
if (!data.success) {
|
||||||
|
if (data.errors.price) {
|
||||||
|
$("#price_group").addClass("has_error");
|
||||||
|
$("#price_group").append(
|
||||||
|
'<div class="help_block">' + data.errors.price + "</div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (data.errors.format) {
|
||||||
|
$("#format_group").addClass("has_error");
|
||||||
|
$("#format_group").append(
|
||||||
|
'<div class="help_block">' + data.errors.format + "</div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (data.errors.hall) {
|
||||||
|
$("#hall_group").addClass("has_error");
|
||||||
|
$("#hall_group").append(
|
||||||
|
'<div class="help_block">' + data.errors.hall + "</div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (data.errors.startDate) {
|
||||||
|
$("#date_group").addClass("has_error");
|
||||||
|
$("#date_group").append(
|
||||||
|
'<div class="help_block">' + data.errors.startDate + "</div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (data.errors.startDate) {
|
||||||
|
$("#date_group").addClass("has_error");
|
||||||
|
$("#date_group").append(
|
||||||
|
'<div class="help_block">' + data.errors.endDate + "</div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (data.errors.date) {
|
||||||
|
$("#date_group").addClass("has_error");
|
||||||
|
$("#date_group").append(
|
||||||
|
'<div class="help_block">' + data.errors.date + "</div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (data.errors.startHour) {
|
||||||
|
$("#hour_group").addClass("has_error");
|
||||||
|
$("#hour_group").append(
|
||||||
|
'<div class="help_block">' + data.errors.startHour + "</div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (data.errors.global) {
|
||||||
|
$("#global_group").addClass("has_error");
|
||||||
|
$("#global_group").append(
|
||||||
|
'<div class="help_block">' + data.errors.global + "</div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$("form#new_session_form").html(
|
||||||
|
'<div class="alert alert-success">' + data.message + "</div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
.fail(function (jqXHR, textStatus) {
|
||||||
|
$("form#new_session_form").html(
|
||||||
|
'<div class="alert alert-danger">Could not reach server, please try again later. '+textStatus+'</div>'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
e.preventDefault();
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user