Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Enlazar tareas a calendario al seleccionar un proyecto

Estas en el tema de Enlazar tareas a calendario al seleccionar un proyecto en el foro de Jquery en Foros del Web. Buenos días, Quería agregar un calendario a mi proyecto que hago uso del patrón MVC y opté por fullcalendar : El problema viene en el ...
  #1 (permalink)  
Antiguo 13/05/2013, 04:11
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 3 meses
Puntos: 14
Enlazar tareas a calendario al seleccionar un proyecto

Buenos días,

Quería agregar un calendario a mi proyecto que hago uso del patrón MVC y opté por fullcalendar:

El problema viene en el momento que intento codificar la respuesta json. El código que uso es el siguiente:

proyectosModel.php
Código:
public function obtenerTareasProyecto($idProyecto){
        $sql = "SELECT tareasProyectos.nombre as title, tareasProyectos.fechaInicio as start, tareasProyectos.fechaLimite as end, tareasProyectos.estado , proyectos.idProyecto, proyectos.nombre as NombreProyecto, usuarios.codUsuario, usuarios.nombre, usuarios.apellido1, usuarios.apellido2\n";
        $sql .= "FROM tareasProyectos\n";
        $sql .= "JOIN proyectos on tareasProyectos.FKidProyecto = proyectos.idProyecto\n";
        $sql .= "JOIN usuarios on tareasProyectos.FKusuarioAsignado = usuarios.codUsuario\n";
        $sql .= "WHERE tareasProyectos.FKidProyecto ='" . $idProyecto . "'";
        $tareasProyecto = $this->_db->query($sql);
        return $tareasProyecto->fetchall(PDO::FETCH_ASSOC);
    }
proyectosController.php
Código:
public function obtenerTareasProyecto() {
        echo json_encode($this->_proyectos->obtenerTareasProyecto($this->getTexto('idProyecto')));
    }

proyectos.js
Código:
$(document).ready(function(proyecto){
       var cargarTareas = $.post('/distribucion/proyectos/obtenerTareasProyecto',
       {
       idProyecto: proyecto
       }, function(datos){
         //Aquí debería enlazar el titulo, la fecha de inicio y la fecha final con los eventos pero no sé cómo.
        }, 'json'}

        //Cargamos el calendario principal
        $("#calendario").fullCalendar({
            weekMode:'variable',
            header:{ //Cabecera
                left:   'month,basicWeek,agendaDay',
                center: 'title',
                right:  'today prev,next'
            },
            firstDay:1, //Primer día de la semana
            selectable: true, //Fechas seleccionables
            titleFormat:{//Formato del título del calendario
                month: "MMMM yyyy",
                week: "d 'd&#101' MMMM",
                day: "dddd, d 'd&#101' MMMM, yyyy"
            },
            columnFormat:{
                month:"dddd",
                week:"dddd d/M",
                day:"dddd d/M"
            },
            monthNames:['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
            monthNamesShort:['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'],
            dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
            dayNamesShort:['Dom','Lun','Mar','Mie','Jue','Vie','Sab'],
            buttonText:{
                month:'mes',
                week:'semana',
                day: 'día',
                today:'Hoy'
            },
            eventSources: [
            {
                events: //¿Cómo puedo agregar los eventos desde el método $.post()?
           
            }
            ]
        });
}

En el fichero de javascript es donde cargo con ajax los eventos mediante $.post() pero no sé como agregarlos a events:[] que es el array en formato Json para enlazar los eventos en mi caso tareas de un proyecto. Supongo que tendría que crear un array en la función $.post para luego enlazar con la función fullCalendar().

Saludos cordiales.
Francisco J.
  #2 (permalink)  
Antiguo 13/05/2013, 07:51
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años, 7 meses
Puntos: 17
Respuesta: Enlazar tareas a calendario al seleccionar un proyecto

lo que yo hice utilizando Zend(no se q mvc utilizas vos), es, en el controlador declaro un variable donde cargo mi array de fechas $this->view->arrFechas, luego en la vista o en el layout , donde este el llamador del calendar le asignas esa variable a events: '<?php echo $this->arrFechas?>';
  #3 (permalink)  
Antiguo 13/05/2013, 09:24
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 3 meses
Puntos: 14
Respuesta: Enlazar tareas a calendario al seleccionar un proyecto

Hola diurno10, es un MVC creado por mi, y lo que tengo que hacer es al seleccionar un proyecto, que me cargue todas las tareas de dicho proyecto en el calendario.

Gracias de todos modos por tu respuesta.

Saludos cordiales.
Francisco J.
  #4 (permalink)  
Antiguo 13/05/2013, 10:52
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 3 meses
Puntos: 14
Respuesta: Enlazar tareas a calendario al seleccionar un proyecto

Bueno después de darme cabezazos con fullcalendar y jquery he conseguido hacerlo andar.

Por si a alguien el sirve dejo aquí el código usado:

Código:
$.post('/distribucion/proyectos/obtenerTareasProyecto',
        {
            idProyecto: proyecto
        },function(datos){
            $.each(datos,function(index,event){
                $("#calendario").fullCalendar('renderEvent',event, true);
            });
        },'json');
Donde el parámetro true hace que los datos persistan aunque cambie de vista de calendario.

Saludos cordiales.
Francisco J.

Etiquetas: calendario, enlazar, proyecto, tareas
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 12:12.