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

Function collision

codebase/sources/dhtmlxscheduler.es.js:9908–10028  ·  view source on GitHub ↗
(scheduler2)

Source from the content-addressed store, hash-verified

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