1 | scheduler.config.limit_start = new Date(-3999,0,0);
|
---|
2 | scheduler.config.limit_end = new Date( 3999,0,0);
|
---|
3 | scheduler.config.limit_view = false;
|
---|
4 |
|
---|
5 | (function(){
|
---|
6 | var before = null;
|
---|
7 |
|
---|
8 | scheduler.attachEvent("onBeforeViewChange",function(om,od,nm,nd){
|
---|
9 | nd = nd||od; nm = nm||om;
|
---|
10 | if (scheduler.config.limit_view){
|
---|
11 | if (nd.valueOf()>scheduler.config.limit_end.valueOf() || this.date.add(nd,1,nm)<=scheduler.config.limit_start.valueOf()){
|
---|
12 | setTimeout(function(){
|
---|
13 | scheduler.setCurrentView(scheduler._date, nm);
|
---|
14 | },1);
|
---|
15 | return false;
|
---|
16 | }
|
---|
17 | }
|
---|
18 | return true;
|
---|
19 | });
|
---|
20 | var blocker = function(ev){
|
---|
21 | var c = scheduler.config;
|
---|
22 | var res = (ev.start_date.valueOf() >= c.limit_start.valueOf() && ev.end_date.valueOf() <= c.limit_end.valueOf());
|
---|
23 | if (!res) {
|
---|
24 | scheduler._drag_id = null;
|
---|
25 | scheduler._drag_mode = null;
|
---|
26 | scheduler.callEvent("onLimitViolation",[ev.id, ev]);
|
---|
27 | }
|
---|
28 | return res;
|
---|
29 | };
|
---|
30 |
|
---|
31 | scheduler.attachEvent("onBeforeDrag",function(id){
|
---|
32 | if (!id) return true;
|
---|
33 | return blocker(scheduler.getEvent(id));
|
---|
34 | });
|
---|
35 | scheduler.attachEvent("onClick", function (event_id, native_event_object){
|
---|
36 | return blocker(scheduler.getEvent(event_id));
|
---|
37 | });
|
---|
38 | scheduler.attachEvent("onBeforeLightbox",function(id){
|
---|
39 | var ev = scheduler.getEvent(id);
|
---|
40 | before = [ev.start_date, ev.end_date];
|
---|
41 | return blocker(ev);
|
---|
42 | });
|
---|
43 | scheduler.attachEvent("onEventAdded",function(id){
|
---|
44 | if (!id) return true;
|
---|
45 | var ev = scheduler.getEvent(id);
|
---|
46 | if (!blocker(ev)){
|
---|
47 | if (ev.start_date < scheduler.config.limit_start) {
|
---|
48 | ev.start_date = new Date(scheduler.config.limit_start);
|
---|
49 | }
|
---|
50 | if (ev.end_date > scheduler.config.limit_end) {
|
---|
51 | ev.end_date = new Date(scheduler.config.limit_end);
|
---|
52 | // as end date was changed need to recheck if event occuring during one day
|
---|
53 | ev._timed = this.is_one_day_event(ev);
|
---|
54 | }
|
---|
55 | // in case if both start and end date were specified < scheduler.config.limit_star
|
---|
56 | if (ev.start_date > ev.end_date) {
|
---|
57 | ev.end_date = this.date.add(ev.start_date, (this.config.event_duration||this.config.time_step), "minute");
|
---|
58 | }
|
---|
59 | }
|
---|
60 | return true;
|
---|
61 | });
|
---|
62 | scheduler.attachEvent("onEventChanged",function(id){
|
---|
63 | if (!id) return true;
|
---|
64 | var ev = scheduler.getEvent(id);
|
---|
65 | if (!blocker(ev)){
|
---|
66 | if (!before) return false;
|
---|
67 | ev.start_date = before[0];
|
---|
68 | ev.end_date = before[1];
|
---|
69 | ev._timed=this.is_one_day_event(ev);
|
---|
70 | };
|
---|
71 | return true;
|
---|
72 | });
|
---|
73 | scheduler.attachEvent("onBeforeEventChanged",function(ev, native_object, is_new){
|
---|
74 | return blocker(ev);
|
---|
75 | });
|
---|
76 |
|
---|
77 | })();
|
---|
78 |
|
---|