Orchard FullCalendar Module - Добавить / изменить событие

0

Я пытаюсь создать систему бронирования для Orchard, используя jQuery FullCalendar (ссылка на jQuery FullCalendar). Я нашел этот учебник по youtube о том, как установить FullCalendar в качестве виджета в Orchard и настроить его в 1.7.2 через некоторое время. Теперь я хотел бы иметь возможность добавлять и редактировать события с сайта (в настоящее время он настроен так, что вам нужно добавлять новые события через панель администратора, то же самое с редактированием).

Я думаю, что место, где я должен начинать, может быть в этом pastebin.

Когда я использую следующий код:

//dayClick: function(date, allDay, jsEvent, view) {

            //    if (allDay) {
            //        alert('Clicked on the entire day: ' + date);
            //    }else{
            //        alert('Clicked on the slot: ' + date);
            //    }

            //    alert('Coordinates: ' + jsEvent.pageX + ',' + jsEvent.pageY);

            //    alert('Current view: ' + view.name);
            //},

И затем нажмите на время в моем календаре, оно сообщит мне дату и т.д. (Так работает событие onclick), я просто не уверен, как я должен перейти от этого. Я хотел бы иметь возможность просто добавлять событие из вида календаря atm. До сих пор я мог добавить его, но не для того, чтобы сохранить его в базе данных, я полагаю, он имеет какое-то отношение к:

var fullCalEvents = [];
var iterator = function (event) {
     var newEvent;
     newEvent = new Booking.Event(event.title, event.start, event.end, event.url, false);
     fullCalEvents.push(newEvent);
                                };

Но я не уверен, с чего начать.

Текущий выбранный мной текст - это тот, где я могу добавить событие, но не сохранять его в базе данных.

Я могу предоставить дополнительную информацию, если потребуется!

Надеюсь, кто-то может просветить меня о том, как это сделать.

спасибо

Casper

  • 0
    Здравствуйте, LeCattez. Можете ли вы показать свой обратный вызов "select:" из fullcalendar, пожалуйста? В массиве fullCalEvents, если бы вы были, я бы добавил в него простые объекты JSON, затем вы можете использовать этот массив и добавить его в источники событий Fullcalendar ...
  • 0
    Привет. У меня нет ничего, кроме этого "выберите" в пастбине. Я просто использовал это, чтобы попробовать это. Все, что он делает, это добавляет событие до обновления, поэтому мне нужно сохранить его в базе данных. Я просто немного запутался, как это сделать.
Показать ещё 3 комментария
Теги:
fullcalendar
orchardcms

1 ответ

0

Давайте попробуем LeCattez,

Я не общаюсь с С# некоторое время, но вы можете знать, о чем я буду говорить. В вашем классе обработчика вам нужно будет что-то вроде этого, это из другого вопроса здесь, в SO.

<%@ WebHandler Language="C#" Class="MyHandler" %>

using System;
using System.Web;
public class MyHandler : IHttpHandler 
{
   public void ProcessRequest (HttpContext ctx) 
   {
       var json = new JSONResonse()
       {
           Success = ctx.Request.QueryString["name"] != null,
           Name = ctx.Request.QueryString["name"]
       };

       ctx.Response.ContentType = "application/json";
       ctx.Response.Write(JsonConvert.SerialzeObject(json));
}

   public bool IsReusable {
       get { return false; }
   }
}

В вашем обработчике вы должны получить данные, отправленные из вызова AJAX. Это пример того, как вы можете отправлять данные с помощью Jquery.Ajax.

select: function(start, end, allDay, jsEvent, view){


 $.ajax({
    type: 'POST',                       
    url: ajaxcallURL(_url,"2001"),                  
    data: {"start":start,"end":end,"allDay":allDay },       //Here you can send data to server
    beforeSend:function(){
      //TODO do somethin before sendind data
    },
    complete:function(){
        calendar.fullCalendar( 'refetchEvents' ); //This line will force hte calendar to re-get all eventSources
        //wich means everytime you select a time period in calendar this will happen
    },                          
    success: function(data) 
    {   
        //TODO Do stuff with eventual data you need to send back to client
    },
    error: function(jqXHR, textStatus, errorThrown){
            //Handle errors here                    
    }
}); 

},//SELECT

Offcourse вы можете отправить серверу объект, например объект JSON и получить этот объект там, как пример, который вы видите выше.

Нет в обработчике http, вам нужно будет сохранить данные БД.

Вы поняли? Или вам нужны дополнительные объяснения? Дай мне знать...

  • 0
    Нужно ли мне так много кода, чтобы сохранить его в базе данных? Я не могу сохранить его так же, как он был сохранен в панели администратора? (не то, чтобы я имел что-то против вышеизложенного, просто кажется, что это большой кусок кода для чего-то, что я думал, может быть более простым). Я до сих пор не уверен, каким был бы мой URL AJAX, на самом деле не работал с этим в этом проекте (просто использовал базу данных в visual studio и nhibernation через. Orchard). Ну и конечно спасибо за помощь!
  • 0
    Ну, вам просто нужна часть вызова AJAX, которую вы можете каким-то образом с помощью вашей платформы получить запрос от вызова AJAX ... URL-адрес - это путь к вашему обработчику Http-запроса projet, но вам нужно это выяснить ... .И давай, это самое простое, что получает человек: P Если тебе нужно больше объяснений, дай мне знать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню