Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Weekcalendar

Estas en el tema de Weekcalendar en el foro de Frameworks JS en Foros del Web. Hola Amigos, Estoy un poco perdido, no entiendo mucho de Javascript y quisiera incorporar datos a weekcalendar jquery, estoy usando https://github.com/themouette/jquery...dar/wiki/demos . Mi mayor probema ...
  #1 (permalink)  
Antiguo 09/05/2011, 15:25
Avatar de function  
Fecha de Ingreso: abril-2010
Mensajes: 278
Antigüedad: 14 años
Puntos: 13
Weekcalendar

Hola Amigos,
Estoy un poco perdido, no entiendo mucho de Javascript y quisiera incorporar datos a weekcalendar jquery, estoy usando https://github.com/themouette/jquery...dar/wiki/demos. Mi mayor probema es que no se como hacer que esto funcione con datos desde una bd (MySQL), alguien me podría ayudar?

pongo el código demo.js
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.  
  3.    var $calendar = $('#calendar');
  4.    var id = 10;
  5.  
  6.    $calendar.weekCalendar({
  7.       displayOddEven:true,
  8.       timeslotsPerHour : 4,
  9.       allowCalEventOverlap : true,
  10.       overlapEventsSeparate: true,
  11.       firstDayOfWeek : 1,
  12.       businessHours :{start: 8, end: 18, limitDisplay: true },
  13.       daysToShow : 7,
  14.       switchDisplay: {'1 day': 1, '3 next days': 3, 'work week': 5, 'full week': 7},
  15.       title: function(daysToShow) {
  16.             return daysToShow == 1 ? '%date%' : '%start% - %end%';
  17.       },
  18.       height : function($calendar) {
  19.          return $(window).height() - $("h1").outerHeight() - 1;
  20.       },
  21.       eventRender : function(calEvent, $event) {
  22.          if (calEvent.end.getTime() < new Date().getTime()) {
  23.             $event.css("backgroundColor", "#aaa");
  24.             $event.find(".wc-time").css({
  25.                "backgroundColor" : "#999",
  26.                "border" : "1px solid #888"
  27.             });
  28.          }
  29.       },
  30.       draggable : function(calEvent, $event) {
  31.          return calEvent.readOnly != true;
  32.       },
  33.       resizable : function(calEvent, $event) {
  34.          return calEvent.readOnly != true;
  35.       },
  36.       eventNew : function(calEvent, $event) {
  37.          
  38.          var $dialogContent = $("#event_edit_container");
  39.          resetForm($dialogContent);
  40.          var startField = $dialogContent.find("select[name='start']").val(calEvent.start);
  41.          var endField = $dialogContent.find("select[name='end']").val(calEvent.end);
  42.          var titleField = $dialogContent.find("input[name='title']");
  43.          var bodyField = $dialogContent.find("textarea[name='body']");
  44.    
  45.          $dialogContent.dialog({
  46.             modal: true,
  47.             title: "New Calendar Event",
  48.             close: function() {
  49.                $dialogContent.dialog("destroy");
  50.                $dialogContent.hide();
  51.                $('#calendar').weekCalendar("removeUnsavedEvents");
  52.             },
  53.             buttons: {
  54.                save : function() {
  55.                   calEvent.id = id;
  56.                   id++;
  57.                   calEvent.start = new Date(startField.val());
  58.                   calEvent.end = new Date(endField.val());
  59.                   calEvent.title = titleField.val();
  60.                   calEvent.body = bodyField.val();
  61.  
  62.                   $calendar.weekCalendar("removeUnsavedEvents");
  63.                   $calendar.weekCalendar("updateEvent", calEvent);
  64.                   $dialogContent.dialog("close");
  65.                },
  66.                cancel : function() {
  67.                   $dialogContent.dialog("close");
  68.                }
  69.             }
  70.          }).show();
  71.      $dialogContent.find(".date_holder").text($calendar.weekCalendar("formatDate", calEvent.start));
  72.          setupStartAndEndTimeFields(startField, endField, calEvent, $calendar.weekCalendar("getTimeslotTimes", calEvent.start));
  73.  
  74.       },
  75.       eventDrop : function(calEvent, $event) {
  76.        
  77.       },
  78.       eventResize : function(calEvent, $event) {
  79.       },
  80.       eventClick : function(calEvent, $event) {
  81.  
  82.          if (calEvent.readOnly) {
  83.             return;
  84.          }
  85.  
  86.          var $dialogContent = $("#event_edit_container");
  87.          resetForm($dialogContent);
  88.          var startField = $dialogContent.find("select[name='start']").val(calEvent.start);
  89.          var endField = $dialogContent.find("select[name='end']").val(calEvent.end);
  90.          var titleField = $dialogContent.find("input[name='title']").val(calEvent.title);
  91.          var bodyField = $dialogContent.find("textarea[name='body']");
  92.          bodyField.val(calEvent.body);
  93.  
  94.          $dialogContent.dialog({
  95.             modal: true,
  96.             title: "Edit - " + calEvent.title,
  97.             close: function() {
  98.                $dialogContent.dialog("destroy");
  99.                $dialogContent.hide();
  100.                $('#calendar').weekCalendar("removeUnsavedEvents");
  101.             },
  102.             buttons: {
  103.                save : function() {
  104.  
  105.                   calEvent.start = new Date(startField.val());
  106.                   calEvent.end = new Date(endField.val());
  107.                   calEvent.title = titleField.val();
  108.                   calEvent.body = bodyField.val();
  109.  
  110.                   $calendar.weekCalendar("updateEvent", calEvent);
  111.                   $dialogContent.dialog("close");
  112.                },
  113.                "delete" : function() {
  114.                   $calendar.weekCalendar("removeEvent", calEvent.id);
  115.                   $dialogContent.dialog("close");
  116.                },
  117.                cancel : function() {
  118.                   $dialogContent.dialog("close");
  119.                }
  120.             }
  121.          }).show();
  122.  
  123.          var startField = $dialogContent.find("select[name='start']").val(calEvent.start);
  124.          var endField = $dialogContent.find("select[name='end']").val(calEvent.end);
  125.          $dialogContent.find(".date_holder").text($calendar.weekCalendar("formatDate", calEvent.start));
  126.          setupStartAndEndTimeFields(startField, endField, calEvent, $calendar.weekCalendar("getTimeslotTimes", calEvent.start));
  127.          $(window).resize().resize(); //fixes a bug in modal overlay size ??
  128.  
  129.       },
  130.       eventMouseover : function(calEvent, $event) {
  131.       },
  132.       eventMouseout : function(calEvent, $event) {
  133.       },
  134.       noEvents : function() {
  135.  
  136.       },
  137.       data : function(start, end, callback) {
  138.          callback(getEventData());
  139.       }
  140.    });
  141.  
  142.    function resetForm($dialogContent) {
  143.       $dialogContent.find("input").val("");
  144.       $dialogContent.find("textarea").val("");
  145.    }
  146.  
  147.    function getEventData() {
  148.       var year = new Date().getFullYear();
  149.       var month = new Date().getMonth();
  150.       var day = new Date().getDate();
  151.  
  152.       return {
  153.          events : [
  154.             {
  155.                "id":1,
  156.                "start": new Date(year, month, day, 12),
  157.                "end": new Date(year, month, day, 13, 30),
  158.                "title":"Lunch with Mike"
  159.             },
  160.             {
  161.                "id":2,
  162.                "start": new Date(year, month, day, 14),
  163.                "end": new Date(year, month, day, 14, 45),
  164.                "title":"Dev Meeting"
  165.             }
  166.          ]
  167.       };
  168.    }
  169.  
  170.    /*
  171.     * Sets up the start and end time fields in the calendar event
  172.     * form for editing based on the calendar event being edited
  173.     */
  174.    function setupStartAndEndTimeFields($startTimeField, $endTimeField, calEvent, timeslotTimes) {
  175.  
  176.       $startTimeField.empty();
  177.       $endTimeField.empty();
  178.  
  179.       for (var i = 0; i < timeslotTimes.length; i++) {
  180.          var startTime = timeslotTimes[i].start;
  181.          var endTime = timeslotTimes[i].end;
  182.          var startSelected = "";
  183.          if (startTime.getTime() === calEvent.start.getTime()) {
  184.             startSelected = "selected=\"selected\"";
  185.          }
  186.          var endSelected = "";
  187.          if (endTime.getTime() === calEvent.end.getTime()) {
  188.             endSelected = "selected=\"selected\"";
  189.          }
  190.          $startTimeField.append("<option value=\"" + startTime + "\" " + startSelected + ">" + timeslotTimes[i].startFormatted + "</option>");
  191.          $endTimeField.append("<option value=\"" + endTime + "\" " + endSelected + ">" + timeslotTimes[i].endFormatted + "</option>");
  192.  
  193.          $timestampsOfOptions.start[timeslotTimes[i].startFormatted] = startTime.getTime();
  194.          $timestampsOfOptions.end[timeslotTimes[i].endFormatted] = endTime.getTime();
  195.  
  196.       }
  197.       $endTimeOptions = $endTimeField.find("option");
  198.       $startTimeField.trigger("change");
  199.    }
  200.  
  201.    var $endTimeField = $("select[name='end']");
  202.    var $endTimeOptions = $endTimeField.find("option");
  203.    var $timestampsOfOptions = {start:[],end:[]};
  204.  
  205.    //reduces the end time options to be only after the start time options.
  206.    $("select[name='start']").change(function() {
  207.       var startTime = $timestampsOfOptions.start[$(this).find(":selected").text()];
  208.       var currentEndTime = $endTimeField.find("option:selected").val();
  209.       $endTimeField.html(
  210.             $endTimeOptions.filter(function() {
  211.                return startTime < $timestampsOfOptions.end[$(this).text()];
  212.             })
  213.             );
  214.  
  215.       var endTimeSelected = false;
  216.       $endTimeField.find("option").each(function() {
  217.          if ($(this).val() === currentEndTime) {
  218.             $(this).attr("selected", "selected");
  219.             endTimeSelected = true;
  220.             return false;
  221.          }
  222.       });
  223.  
  224.       if (!endTimeSelected) {
  225.          //automatically select an end date 2 slots away.
  226.          $endTimeField.find("option:eq(1)").attr("selected", "selected");
  227.       }
  228.  
  229.    });
  230.  
  231.  
  232. });
__________________
~# echo Hemos logrado la independencia, pero no la libertad >> SimonBolivar

Etiquetas: ajax, weekcalendar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:46.