diff options
author | Stanislau Wolski <stanislau.wolski@gmail.com> | 2013-10-18 14:02:16 +0300 |
---|---|---|
committer | Stanislau Wolski <stanislau.wolski@gmail.com> | 2013-10-18 14:02:16 +0300 |
commit | c2e1fd58b0c848118cf8554de50f788199d609e2 (patch) | |
tree | bd30b3b7de59b34120705465e8628a740cdb513d /codebase/ext/dhtmlxscheduler_collision.js | |
download | scheduler-c2e1fd58b0c848118cf8554de50f788199d609e2.zip scheduler-c2e1fd58b0c848118cf8554de50f788199d609e2.tar.gz scheduler-c2e1fd58b0c848118cf8554de50f788199d609e2.tar.bz2 |
[add] version 4.0v4.0.0
Diffstat (limited to 'codebase/ext/dhtmlxscheduler_collision.js')
-rw-r--r-- | codebase/ext/dhtmlxscheduler_collision.js | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/codebase/ext/dhtmlxscheduler_collision.js b/codebase/ext/dhtmlxscheduler_collision.js new file mode 100644 index 0000000..0cadfd0 --- /dev/null +++ b/codebase/ext/dhtmlxscheduler_collision.js @@ -0,0 +1,8 @@ +/* +This software is allowed to use under GPL or you need to obtain Commercial or Enterise License +to use it in non-GPL project. Please contact sales@dhtmlx.com for details +*/ +(function(){function h(b){var a=scheduler._props?scheduler._props[scheduler._mode]:null,c=scheduler.matrix?scheduler.matrix[scheduler._mode]:null,f=a||c;if(a)var g=f.map_to;if(c)g=f.y_property;f&&b&&(m=scheduler.getEvent(b)[g])}var m,d;scheduler.config.collision_limit=1;scheduler.attachEvent("onBeforeDrag",function(b){h(b);return!0});scheduler.attachEvent("onBeforeLightbox",function(b){var a=scheduler.getEvent(b);d=[a.start_date,a.end_date];h(b);return!0});scheduler.attachEvent("onEventChanged",function(b){if(!b)return!0; +var a=scheduler.getEvent(b);if(!scheduler.checkCollision(a)){if(!d)return!1;a.start_date=d[0];a.end_date=d[1];a._timed=this.isOneDayEvent(a)}return!0});scheduler.attachEvent("onBeforeEventChanged",function(b){return scheduler.checkCollision(b)});scheduler.attachEvent("onEventAdded",function(b,a){var c=scheduler.checkCollision(a);c||scheduler.deleteEvent(b)});scheduler.attachEvent("onEventSave",function(b,a){a=scheduler._lame_clone(a);a.id=b;if(!a.start_date||!a.end_date){var c=scheduler.getEvent(b); +a.start_date=new Date(c.start_date);a.end_date=new Date(c.end_date)}a.rec_type&&scheduler._roll_back_dates(a);return scheduler.checkCollision(a)});scheduler.checkCollision=function(b){var a=[],c=scheduler.config.collision_limit;if(b.rec_type)for(var f=scheduler.getRecDates(b),g=0;g<f.length;g++)for(var d=scheduler.getEvents(f[g].start_date,f[g].end_date),i=0;i<d.length;i++)(d[i].event_pid||d[i].id)!=b.id&&a.push(d[i]);else for(var a=scheduler.getEvents(b.start_date,b.end_date),e=0;e<a.length;e++)if(a[e].id== +b.id){a.splice(e,1);break}var h=scheduler._props?scheduler._props[scheduler._mode]:null,n=scheduler.matrix?scheduler.matrix[scheduler._mode]:null,l=h||n;if(h)var j=l.map_to;if(n)j=l.y_property;var k=!0;if(l){for(var o=0,e=0;e<a.length;e++)a[e][j]==b[j]&&a[e].id!=b.id&&o++;o>=c&&(k=!1)}else a.length>=c&&(k=!1);if(!k){var p=!scheduler.callEvent("onEventCollision",[b,a]);p||(b[j]=m||b[j]);return p}return k}})(); |