summaryrefslogtreecommitdiffstats
path: root/sources/ext/dhtmlxscheduler_collision.js
diff options
context:
space:
mode:
Diffstat (limited to 'sources/ext/dhtmlxscheduler_collision.js')
-rw-r--r--sources/ext/dhtmlxscheduler_collision.js131
1 files changed, 0 insertions, 131 deletions
diff --git a/sources/ext/dhtmlxscheduler_collision.js b/sources/ext/dhtmlxscheduler_collision.js
deleted file mode 100644
index 13bd178..0000000
--- a/sources/ext/dhtmlxscheduler_collision.js
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-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(){
-
-var temp_section;
-var before;
-
-scheduler.config.collision_limit = 1;
-
-function _setTempSection(event_id) { // for custom views (matrix, timeline, units)
- var pr = scheduler._props?scheduler._props[scheduler._mode]:null;
- var matrix = scheduler.matrix?scheduler.matrix[scheduler._mode]:null;
- var checked_mode = pr||matrix; // units or matrix mode
- if(pr)
- var map_to = checked_mode.map_to;
- if(matrix)
- var map_to = checked_mode.y_property;
- if ((checked_mode) && event_id){
- temp_section = scheduler.getEvent(event_id)[map_to];
- }
-}
-
-scheduler.attachEvent("onBeforeDrag",function(id){
- _setTempSection(id);
- return true;
-});
-scheduler.attachEvent("onBeforeLightbox",function(id){
- var ev = scheduler.getEvent(id);
- before = [ev.start_date, ev.end_date];
- _setTempSection(id);
- return true;
-});
-scheduler.attachEvent("onEventChanged",function(id){
- if (!id) return true;
- var ev = scheduler.getEvent(id);
- if (!scheduler.checkCollision(ev)){
- if (!before) return false;
- ev.start_date = before[0];
- ev.end_date = before[1];
- ev._timed=this.isOneDayEvent(ev);
- }
- return true;
-});
-scheduler.attachEvent("onBeforeEventChanged",function(ev,e,is_new){
- return scheduler.checkCollision(ev);
-});
-scheduler.attachEvent("onEventAdded",function(id,ev) {
- var result = scheduler.checkCollision(ev);
- if (!result)
- scheduler.deleteEvent(id);
-});
-scheduler.attachEvent("onEventSave",function(id, edited_ev, is_new){
- edited_ev = scheduler._lame_clone(edited_ev);
- edited_ev.id = id;
-
- //lightbox may not have 'time' section
- if(!(edited_ev.start_date && edited_ev.end_date)){
- var ev = scheduler.getEvent(id);
- edited_ev.start_date = new Date(ev.start_date);
- edited_ev.end_date = new Date(ev.end_date);
- }
-
- if(edited_ev.rec_type){
- scheduler._roll_back_dates(edited_ev);
- }
- return scheduler.checkCollision(edited_ev); // in case user creates event on one date but then edited it another
-});
-
-scheduler.checkCollision = function(ev) {
- var evs = [];
- var collision_limit = scheduler.config.collision_limit;
- if (ev.rec_type) {
- var evs_dates = scheduler.getRecDates(ev);
- for(var k=0; k<evs_dates.length; k++) {
- var tevs = scheduler.getEvents(evs_dates[k].start_date, evs_dates[k].end_date);
- for(var j=0; j<tevs.length; j++) {
- if ((tevs[j].event_pid || tevs[j].id) != ev.id )
- evs.push(tevs[j]);
- }
- }
- } else {
- evs = scheduler.getEvents(ev.start_date, ev.end_date);
- for (var i=0; i<evs.length; i++) {
- if (evs[i].id == ev.id) {
- evs.splice(i,1);
- break;
- }
- }
- }
-
- var pr = scheduler._props?scheduler._props[scheduler._mode]:null;
- var matrix = scheduler.matrix?scheduler.matrix[scheduler._mode]:null;
-
- var checked_mode = pr||matrix;
- if(pr)
- var map_to = checked_mode.map_to;
- if(matrix)
- var map_to = checked_mode.y_property;
-
- var single = true;
- if (checked_mode) { // custom view
- var count = 0;
-
- for (var i = 0; i < evs.length; i++)
-
- if (evs[i][map_to] == ev[map_to] && evs[i].id != ev.id)
- count++;
-
- if (count >= collision_limit) {
-
- single = false;
- }
- }
- else {
- if ( evs.length >= collision_limit )
- single = false;
- }
- if (!single) {
- var res = !scheduler.callEvent("onEventCollision",[ev,evs]);
- if (!res) {
- ev[map_to] = temp_section||ev[map_to]; // from _setTempSection for custom views
- }
- return res;
- }
- return single;
-
-}
-
-})();