MCPcopy Create free account
hub / github.com/DHTMLX/scheduler / collision

Function collision

codebase/sources/dhtmlxscheduler.js:9912–10032  ·  view source on GitHub ↗
(scheduler2)

Source from the content-addressed store, hash-verified

9910 };
9911 }
9912 function collision(scheduler2) {
9913 let temp_section;
9914 let before;
9915 scheduler2.config.collision_limit = 1;
9916 function _setTempSection(event_id) {
9917 const checked_mode = scheduler2._get_section_view();
9918 if (checked_mode && event_id) {
9919 temp_section = scheduler2.getEvent(event_id)[scheduler2._get_section_property()];
9920 }
9921 }
9922 scheduler2.attachEvent("onBeforeDrag", function(id) {
9923 _setTempSection(id);
9924 return true;
9925 });
9926 scheduler2.attachEvent("onBeforeLightbox", function(id) {
9927 const ev = scheduler2.getEvent(id);
9928 before = [ev.start_date, ev.end_date];
9929 _setTempSection(id);
9930 return true;
9931 });
9932 scheduler2.attachEvent("onEventChanged", function(id) {
9933 if (!id || !scheduler2.getEvent(id))
9934 return true;
9935 const ev = scheduler2.getEvent(id);
9936 if (!scheduler2.checkCollision(ev)) {
9937 if (!before)
9938 return false;
9939 ev.start_date = before[0];
9940 ev.end_date = before[1];
9941 ev._timed = this.isOneDayEvent(ev);
9942 }
9943 return true;
9944 });
9945 scheduler2.attachEvent("onBeforeEventChanged", function(ev, e, is_new) {
9946 return scheduler2.checkCollision(ev);
9947 });
9948 scheduler2.attachEvent("onEventAdded", function(id, ev) {
9949 const result = scheduler2.checkCollision(ev);
9950 if (!result)
9951 scheduler2.deleteEvent(id);
9952 });
9953 scheduler2.attachEvent("onEventSave", function(id, edited_ev, is_new) {
9954 edited_ev = scheduler2._lame_clone(edited_ev);
9955 edited_ev.id = id;
9956 if (!(edited_ev.start_date && edited_ev.end_date)) {
9957 const ev = scheduler2.getEvent(id);
9958 edited_ev.start_date = new Date(ev.start_date);
9959 edited_ev.end_date = new Date(ev.end_date);
9960 }
9961 if (edited_ev.rrule && !edited_ev.recurring_event_id || edited_ev.rec_type) {
9962 scheduler2._roll_back_dates(edited_ev);
9963 }
9964 return scheduler2.checkCollision(edited_ev);
9965 });
9966 scheduler2._check_sections_collision = function(first, second) {
9967 const map_to = scheduler2._get_section_property();
9968 if (first[map_to] == second[map_to] && first.id != second.id)
9969 return true;

Callers

nothing calls this directly

Calls 9

_setTempSectionFunction · 0.70
attachEventMethod · 0.65
getEventMethod · 0.65
checkCollisionMethod · 0.65
isOneDayEventMethod · 0.65
deleteEventMethod · 0.65
getRecDatesMethod · 0.65
getEventsMethod · 0.65
callEventMethod · 0.65

Tested by

no test coverage detected