2015-06-01 17 views
2

我必须为我公司的员工构建一个程序,以宣布工作日,假期,疾病日等。我的想法是使用fullcalendar拖放功能好东西。只有在月视图中,您拖动事件“工作”并将其放到您工作的日子,就这么简单。如何仅从一个源提取事件Fullcalendar

什么我试着做,是提取事件显示把它们放在数据库中,我尝试使用:

$('#calendar').fullCalendar('clientEvents'); 

但我也从我的Google日历用于显示背景节假日事件事件。

换句话说,我有两种类型的事件,一种是我拖放的,另一种是由backgroundEvents上的googlecalendar放置的。

简而言之,如何过滤我提取的事件以忽略来自googlecalendar的事件?所以我在日历中放入了所有事件的数组,但我不想从Google获得这些事件。

如果可能的话,我会很感激下一步的任何提示,将这些事件放入数据库中。

什么解决方案只提取手动添加的事件?

+0

你提的问题是过于宽泛。请一次询问一个具体问题。 –

+0

让我们来看看它的不同: 我有两种类型的事件,我拖放的那些事件,以及由backgroundEvents上的googlecalendar放置的事件。 $('#calendar')。fullCalendar('clientEvents'); 从日历中放入所有事件的数组,但我不想从谷歌的thoses。 什么解决方案只提取我手动添加的事件。这足够清楚了吗? – Robin

+0

@RohitGupta问题不是太宽泛,因为他在特定的图书馆中要求具体的功能。 – A1rPun

回答

0

好吧,我终于得到了这个感谢在办公室的伴侣。在这里留下答案以防万一:

googlecalendars事件和手动添加的事件不具有相同的属性,googlecalendars具有其他属性没有的“源”和“url”属性。

你想要做的是获得所有的事件,循环你的数组,并选择只有谁没有源attribut。 :

function send(){ 
     var cal_events = '' 
     data= $('#calendar').fullCalendar('clientEvents'); 

     for (var key in data) { 
      var event = data[key]; 

      if (typeof(event.source) == 'undefined'){ 
       //Your stuff 
        } 

       }); 
      } 
     } 
    } 

这样,您只能对没有'source'attribut的事件采取行动。

无论如何。罗宾

0

你可以通过一个函数来像这样的clientEvents功能:

var data = $('#calendar').fullCalendar('clientEvents',function(event){ 
    return !(event.source && event.source.googleCalendarId); 
}); 
+0

不错!如果(真的){ajax} else {nothing},它应该是完美的。谢谢 ! 编辑:好的我可能说得太快了,“!event.source”仍然返回所有的事件,说如果条件是真的,所以我不确定它是否正常工作。 – Robin

+0

我写这个是因为我在你的答案中看到了typeof(event.source)=='undefined''。我认为所有手动添加的事件都没有'source'属性。 – A1rPun

+0

您认为正确,问题在于,如果它们拥有源属性,它将返回每个事件和状态,而不是仅仅返回没有源的事件。 – Robin