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

Function marker

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

Source from the content-addressed store, hash-verified

10818 })();
10819 }
10820 function marker(scheduler2) {
10821 scheduler2.$keyboardNavigation.marker = { clear: function() {
10822 var divs = scheduler2.$container.querySelectorAll(".dhx_focus_slot");
10823 for (var i = 0; i < divs.length; i++) {
10824 divs[i].parentNode.removeChild(divs[i]);
10825 }
10826 }, createElement: function() {
10827 var element = document.createElement("div");
10828 element.setAttribute("tabindex", -1);
10829 element.className = "dhx_focus_slot";
10830 return element;
10831 }, renderMultiple: function(start, end, method) {
10832 var divs = [];
10833 var currentStart = new Date(start);
10834 var currentEnd = new Date(Math.min(end.valueOf(), scheduler2.date.add(scheduler2.date.day_start(new Date(start)), 1, "day").valueOf()));
10835 while (currentStart.valueOf() < end.valueOf()) {
10836 divs = divs.concat(method.call(this, currentStart, new Date(Math.min(currentEnd.valueOf(), end.valueOf()))));
10837 currentStart = scheduler2.date.day_start(scheduler2.date.add(currentStart, 1, "day"));
10838 currentEnd = scheduler2.date.day_start(scheduler2.date.add(currentStart, 1, "day"));
10839 currentEnd = new Date(Math.min(currentEnd.valueOf(), end.valueOf()));
10840 }
10841 return divs;
10842 }, render: function(start, end, section) {
10843 this.clear();
10844 var divs = [];
10845 var modes = scheduler2.$keyboardNavigation.TimeSlot.prototype._modes;
10846 var view = scheduler2.$keyboardNavigation.TimeSlot.prototype._getMode();
10847 switch (view) {
10848 case modes.units:
10849 divs = this.renderVerticalMarker(start, end, section);
10850 break;
10851 case modes.timeline:
10852 divs = this.renderTimelineMarker(start, end, section);
10853 break;
10854 case modes.year:
10855 divs = divs.concat(this.renderMultiple(start, end, this.renderYearMarker));
10856 break;
10857 case modes.month:
10858 divs = this.renderMonthMarker(start, end);
10859 break;
10860 case modes.weekAgenda:
10861 divs = divs.concat(this.renderMultiple(start, end, this.renderWeekAgendaMarker));
10862 break;
10863 case modes.list:
10864 divs = this.renderAgendaMarker(start, end);
10865 break;
10866 case modes.dayColumns:
10867 divs = divs.concat(this.renderMultiple(start, end, this.renderVerticalMarker));
10868 break;
10869 }
10870 this.addWaiAriaLabel(divs, start, end, section);
10871 this.addDataAttributes(divs, start, end, section);
10872 for (var i = divs.length - 1; i >= 0; i--) {
10873 if (divs[i].offsetWidth) {
10874 return divs[i];
10875 }
10876 }
10877 return null;

Callers 1

key_navFunction · 0.70

Calls 9

set_date_partFunction · 0.70
addMethod · 0.65
day_startMethod · 0.65
date_to_strMethod · 0.65
getStateMethod · 0.65
day_dateMethod · 0.65
hour_scaleMethod · 0.65
week_startMethod · 0.65
getViewMethod · 0.65

Tested by

no test coverage detected