Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require_once("php/config.php");
- require_once("php/sesion.php");
- require_once("php/functions.php");
- require_once("php/bd.php");
- ?>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html><head><title><?php echo $GLOBALS['cfg']['app_name'].' - '.$GLOBALS['cfg']['department']; ?></title>
- <head>
- <?php output_html_header(); ?>
- <link rel='stylesheet' type='text/css' href='js/jquery.weekcalendar.css' />
- <script type='text/javascript' src='js/jquery.weekcalendar.js'></script>
- <link rel='stylesheet' type='text/css' href='js/calendar.css' />
- </head>
- <body>
- <?php
- output_cabecera();
- output_menu();
- ?>
- <div style="margin-left:20px; margin-right: 20px;">
- <div id='calendar'></div>
- </div>
- <div id="event_edit_container">
- <form>
- <input type="hidden" />
- <br><span><b>Día:</b> </span><span class="date_holder"></span> <br><br>
- <span class="usu_holder"></span>
- <b>Hora inicio:</b> <br><select name="start"><option value="">Selecciona hora de inicio</option></select><br><br>
- <b>Hora fin:</b> <br><select name="end"><option value="">Selecciona hora de fin</option></select><br><br>
- <b>Motivo:</b> <br><input type="text" name="title" /><br><br>
- <b>Observaciones:</b> <br><textarea name="body"></textarea>
- </form>
- </div>
- <script type="text/javascript">$(document).ready(function() {
- var $calendar = $('#calendar');
- //var id = 10;
- $calendar.weekCalendar({
- timeslotsPerHour : 2,/*1*/
- firstDayOfWeek : 1,
- businessHours :{start: 8, end: 18, limitDisplay: true },
- daysToShow : 5,
- timeFormat: 'H:i',
- dateFormat: 'd M, Y',
- shortMonths: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
- longMonths: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
- shortDays: ['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'],
- longDays: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
- buttonText: {today: ' Hoy ', lastWeek : ' < ', nextWeek : ' > '},
- newEventText: 'Nueva Reserva',
- use24Hour: true,
- timeslotHeight: 20,/*45*/
- allowCalEventOverlap : false,
- overlapEventsSeparate: false,
- defaultEventLength: 2,
- height : function($calendar) {
- //return $calendar[0].offsetHeight; //para height definido en style del div
- return 495;
- },
- eventRender : function(calEvent, $event) {
- if (calEvent.end.getTime() < new Date().getTime()) {
- $event.css("backgroundColor", "#aaa");
- $event.find(".wc-time").css({
- "backgroundColor" : "#999",
- "border" : "1px solid #888"
- });
- }
- },
- draggable : function(calEvent, $event) {
- //return calEvent.readOnly != true;
- return false;
- },
- resizable : function(calEvent, $event) {
- //return calEvent.readOnly != true;
- return false;
- },
- eventNew : function(calEvent, $event) {
- var $dialogContent = $("#event_edit_container");
- resetForm($dialogContent);
- var startField = $dialogContent.find("select[name='start']").val(calEvent.start);
- var endField = $dialogContent.find("select[name='end']").val(calEvent.end);
- var titleField = $dialogContent.find("input[name='title']");
- var bodyField = $dialogContent.find("textarea[name='body']");
- $('.usu_holder').html('');
- $dialogContent.dialog({
- modal: true,
- title: "Nueva reserva de sala",
- close: function() {
- $dialogContent.dialog("destroy");
- $dialogContent.hide();
- $('#calendar').weekCalendar("removeUnsavedEvents");
- },
- buttons: {
- Cancelar : function() {
- $dialogContent.dialog("close");
- },
- Guardar : function() {
- calEvent.start = new Date(startField.val());
- calEvent.end = new Date(endField.val());
- calEvent.title = titleField.val();
- calEvent.body = bodyField.val();
- ret = $.ajax({type: 'GET',
- url: 'calendar.php',
- data: 'op=add_event&start='+Math.round(calEvent.start.getTime()/1000)
- +'&end=' + Math.round(calEvent.end.getTime()/1000)
- + '&title=' + calEvent.title + '&body=' + calEvent.body,
- cache: false,
- async: false
- }).responseText;
- var atmp = ret.split('|');
- ret = atmp[0];
- calEvent.usermail = atmp.length > 1 ? atmp[1] : 'desconocido';
- if (ret == 'TAKEN') {//cojido x otro usuario
- $dialogContent.dialog("close");
- $calendar.weekCalendar('refresh');//refrescar calendario pa q se vea el que lo cojio
- var msg = 'El evento no se ha podido guardar ya que se solapa con otro ya existente, esto';
- msg += ' puede deberse a que un usuario haya insertado dicho evento desde la ultima vez'
- msg += ' que usted actualizo la vista.';
- jalert(msg,'Solapamiento de evento',true,true);
- return;
- } else if (ret == '0') {
- $dialogContent.dialog("close");
- jalert('Ha habido un error y el evento no se ha insertado','Error al insertar evento',true,true);
- return;
- }
- //Notificaciones de correo
- $.ajax({type: 'GET', url: 'calendar.php',
- data: 'opmail=1&op=add_event&start='+Math.round(calEvent.start.getTime()/1000)
- +'&end=' + Math.round(calEvent.end.getTime()/1000)
- + '&title=' + calEvent.title + '&body=' + calEvent.body,
- cache: false, async: true});
- //todo bien
- calEvent.id = ret; //id
- //id++;
- $calendar.weekCalendar("removeUnsavedEvents");
- $calendar.weekCalendar("updateEvent", calEvent);
- $dialogContent.dialog("close");
- }
- }
- }).show();
- $dialogContent.find(".date_holder").text($calendar.weekCalendar("formatDate", calEvent.start));
- setupStartAndEndTimeFields(startField, endField, calEvent, $calendar.weekCalendar("getTimeslotTimes", calEvent.start));
- },
- eventDrop : function(calEvent, $event) {
- },
- eventResize : function(calEvent, $event) {
- },
- eventClick : function(calEvent, $event) {
- if (calEvent.readOnly) {
- return;
- }
- var $dialogContent = $("#event_edit_container");
- resetForm($dialogContent);
- var startField = $dialogContent.find("select[name='start']").val(calEvent.start);
- var endField = $dialogContent.find("select[name='end']").val(calEvent.end);
- var titleField = $dialogContent.find("input[name='title']").val(calEvent.title);
- var bodyField = $dialogContent.find("textarea[name='body']");
- bodyField.val(calEvent.body);
- var telefldap = $.ajax({type: 'GET',
- url: 'calendar.php',
- data: 'op=get_ldaptelefono&user='+ calEvent.usermail.split('@')[0],
- cache: false,
- async: false
- }).responseText;
- $('.usu_holder').html('<b>Reservado por:</b><br><a href="mailto:' + calEvent.usermail + '">'+calEvent.usermail+'</a><br>' + telefldap + '<br><br>');
- $dialogContent.dialog({
- modal: true,
- title: "Editar - " + calEvent.title,
- close: function() {
- $dialogContent.dialog("destroy");
- $dialogContent.hide();
- $('#calendar').weekCalendar("removeUnsavedEvents");
- },
- buttons: {
- Cancelar : function() {
- $dialogContent.dialog("close");
- },
- "Eliminar" : function() {
- ret = $.ajax({type: 'GET',
- url: 'calendar.php',
- data: 'op=delete_event&evid='+ calEvent.id,
- cache: false,
- async: false
- }).responseText;
- var arr = ret.split('|');
- ret = arr[0];
- deluser = arr[1];
- if (ret != '1') {
- $dialogContent.dialog("close");
- jalert('Ha habido un error y no se ha podido borrar el evento ' + ret,'No se ha podido borrar el evento',true,true);
- return;
- }
- //Notificaciones de correo
- $.ajax({type: 'GET', url: 'calendar.php',
- data: 'opmail=1&op=delete_event&evid='+ calEvent.id
- +'&start=' + Math.round(calEvent.start.getTime()/1000) + '&body=' + calEvent.body
- + '&end=' + Math.round(calEvent.end.getTime()/1000) + '&title=' + calEvent.title
- + '&user=' + deluser, cache: false, async: true});
- $calendar.weekCalendar("removeEvent", calEvent.id);
- $dialogContent.dialog("close");
- },
- Guardar : function() {
- var tempEvent = {start: new Date(startField.val()), end: new Date(endField.val()), title: titleField.val(), body: bodyField.val()};
- ret = $.ajax({type: 'GET',
- url: 'calendar.php',
- data: 'op=update_event&start='+Math.round(tempEvent.start.getTime()/1000)
- +'&end=' + Math.round(tempEvent.end.getTime()/1000) + '&evid=' + calEvent.id
- + '&title=' + tempEvent.title + '&body=' + tempEvent.body,
- cache: false,
- async: false
- }).responseText;
- if (ret == 'TAKEN') {//cojido x otro usuario
- $dialogContent.dialog("close");
- $calendar.weekCalendar('refresh');//refrescar calendario pa q se vea el que lo cojio
- var msg = 'El evento no se ha podido actualizar ya que se solapa con otro ya existente, esto';
- msg += ' puede deberse a que un usuario haya insertado dicho evento desde la ultima vez'
- msg += ' que usted actualizo la vista.';
- jalert(msg,'Solapamiento de evento',true,true);
- return;
- } else if (ret != '1') {
- $dialogContent.dialog("close");
- jalert('Ha habido un error y es posible que los datos no se hayan guardado.Refresque la vista.','Error al actualizar evento',true,true);
- return;
- }
- //Notificaciones de correo
- $.ajax({type: 'GET', url: 'calendar.php',
- data: 'opmail=1&op=update_event&start='+Math.round(tempEvent.start.getTime()/1000)
- +'&end=' + Math.round(tempEvent.end.getTime()/1000) + '&evid=' + calEvent.id
- + '&title=' + tempEvent.title + '&body=' + tempEvent.body,
- cache: false, async: true});
- //todo bien
- calEvent.start = new Date(startField.val());
- calEvent.end = new Date(endField.val());
- calEvent.title = titleField.val();
- calEvent.body = bodyField.val();
- $calendar.weekCalendar("updateEvent", calEvent);
- $dialogContent.dialog("close");
- }
- }
- }).show();
- var startField = $dialogContent.find("select[name='start']").val(calEvent.start);
- var endField = $dialogContent.find("select[name='end']").val(calEvent.end);
- $dialogContent.find(".date_holder").text($calendar.weekCalendar("formatDate", calEvent.start));
- setupStartAndEndTimeFields(startField, endField, calEvent, $calendar.weekCalendar("getTimeslotTimes", calEvent.start));
- $(window).resize().resize(); //fixes a bug in modal overlay size ??
- },
- eventMouseover : function(calEvent, $event) {
- },
- eventMouseout : function(calEvent, $event) {
- },
- noEvents : function() {
- },
- data: 'calendar.php?op=get_events'
- /*data : function(start, end, callback) {
- callback(getEventData());
- }*/
- });
- function resetForm($dialogContent) {
- $dialogContent.find("input").val("");
- $dialogContent.find("textarea").val("");
- }
- /*function getEventData() {
- var year = new Date().getFullYear();
- var month = new Date().getMonth();
- var day = new Date().getDate();
- return {
- events : [
- {
- "id":1,
- "start": new Date(year, month, day, 12),
- "end": new Date(year, month, day, 13, 30),
- "title":"Lunch with Mike",
- "body":"Reunión de amigotes de mike"
- },
- {
- "id":2,
- "start": new Date(year, month, day, 14),
- "end": new Date(year, month, day, 14, 45),
- "title":"Dev Meeting"
- },
- {
- "id":3,
- "start": new Date(year, month, day + 1, 17),
- "end": new Date(year, month, day + 1, 17, 45),
- "title":"Hair cut"
- },
- {
- "id":4,
- "start": new Date(year, month, day - 1, 8),
- "end": new Date(year, month, day - 1, 9, 30),
- "title":"Team breakfast"
- },
- {
- "id":5,
- "start": new Date(year, month, day + 1, 14),
- "end": new Date(year, month, day + 1, 15),
- "title":"Product showcase"
- },
- {
- "id":6,
- "start": new Date(year, month, day, 10),
- "end": new Date(year, month, day, 11),
- "title":"I'm read-only",
- readOnly : true
- }
- ]
- };
- }*/
- /*
- * Sets up the start and end time fields in the calendar event
- * form for editing based on the calendar event being edited
- */
- function setupStartAndEndTimeFields($startTimeField, $endTimeField, calEvent, timeslotTimes) {
- for (var i = 0; i < timeslotTimes.length; i++) {
- var startTime = timeslotTimes[i].start;
- var endTime = timeslotTimes[i].end;
- var startSelected = "";
- if (Math.round(startTime.getTime()/1000) === Math.round(calEvent.start.getTime()/1000)) { //NELSON
- startSelected = "selected=\"selected\"";
- }
- var endSelected = "";
- if (Math.round(endTime.getTime()/1000) === Math.round(calEvent.end.getTime()/1000)) { //NELSON
- endSelected = "selected=\"selected\"";
- }
- $startTimeField.append("<option value=\"" + startTime + "\" " + startSelected + ">" + timeslotTimes[i].startFormatted + "</option>");
- $endTimeField.append("<option value=\"" + endTime + "\" " + endSelected + ">" + timeslotTimes[i].endFormatted + "</option>");
- }
- $endTimeOptions = $endTimeField.find("option");
- $startTimeField.trigger("change");
- }
- var $endTimeField = $("select[name='end']");
- var $endTimeOptions = $endTimeField.find("option");
- //reduces the end time options to be only after the start time options.
- $("select[name='start']").change(function() {
- var startTime = $(this).find(":selected").val();
- var currentEndTime = $endTimeField.find("option:selected").val();
- $endTimeField.html(
- $endTimeOptions.filter(function() {
- return startTime < $(this).val();
- })
- );
- var endTimeSelected = false;
- $endTimeField.find("option").each(function() {
- if ($(this).val() === currentEndTime) {
- $(this).attr("selected", "selected");
- endTimeSelected = true;
- return false;
- }
- });
- if (!endTimeSelected) {
- //automatically select an end date 2 slots away.
- $endTimeField.find("option:eq(1)").attr("selected", "selected");
- }
- });
- }); //end document.ready()
- </script>
- <br>
- <?php output_pie(); ?>
- </body>
- </html>
Add Comment
Please, Sign In to add comment