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

Function event

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

Source from the content-addressed store, hash-verified

11346 scheduler2.$keyboardNavigation.HeaderCell.prototype.bindAll(scheduler2.$keyboardNavigation.HeaderCell.prototype.keys);
11347}
11348function event(scheduler2) {
11349 scheduler2.$keyboardNavigation.Event = function(id) {
11350 this.eventId = null;
11351 if (scheduler2.getEvent(id)) {
11352 var ev = scheduler2.getEvent(id);
11353 this.start = new Date(ev.start_date);
11354 this.end = new Date(ev.end_date);
11355 this.section = this._getSection(ev);
11356 this.eventId = id;
11357 }
11358 };
11359 scheduler2.$keyboardNavigation.Event.prototype = scheduler2._compose(scheduler2.$keyboardNavigation.KeyNavNode, { _getNodes: function() {
11360 return Array.prototype.slice.call(scheduler2.$container.querySelectorAll("[" + scheduler2.config.event_attribute + "]"));
11361 }, _modes: scheduler2.$keyboardNavigation.SchedulerNode.prototype._modes, getMode: scheduler2.$keyboardNavigation.SchedulerNode.prototype.getMode, _handlers: null, isValid: function() {
11362 return !!(scheduler2.getEvent(this.eventId) && this.getNode());
11363 }, fallback: function() {
11364 var eventNode = this._getNodes()[0];
11365 var defaultElement = null;
11366 if (!eventNode || !scheduler2._locate_event(eventNode)) {
11367 defaultElement = new scheduler2.$keyboardNavigation.TimeSlot();
11368 } else {
11369 var id = scheduler2._locate_event(eventNode);
11370 defaultElement = new scheduler2.$keyboardNavigation.Event(id);
11371 }
11372 return defaultElement;
11373 }, isScrolledIntoView: function(el) {
11374 var eventBox = el.getBoundingClientRect();
11375 var viewPort = scheduler2.$container.querySelector(".dhx_cal_data").getBoundingClientRect();
11376 if (eventBox.bottom < viewPort.top || eventBox.top > viewPort.bottom) {
11377 return false;
11378 }
11379 return true;
11380 }, getNode: function() {
11381 var idSelector = "[" + scheduler2.config.event_attribute + "='" + this.eventId + "']";
11382 var inlineEditor = scheduler2.$keyboardNavigation.dispatcher.getInlineEditor(this.eventId);
11383 if (inlineEditor) {
11384 return inlineEditor;
11385 } else {
11386 if (scheduler2.isMultisectionEvent && scheduler2.isMultisectionEvent(scheduler2.getEvent(this.eventId))) {
11387 var nodes = scheduler2.$container.querySelectorAll(idSelector);
11388 for (var i = 0; i < nodes.length; i++) {
11389 if (this.isScrolledIntoView(nodes[i])) {
11390 return nodes[i];
11391 }
11392 }
11393 return nodes[0];
11394 } else {
11395 return scheduler2.$container.querySelector(idSelector);
11396 }
11397 }
11398 }, focus: function() {
11399 var event2 = scheduler2.getEvent(this.eventId);
11400 var calendar = scheduler2.getState();
11401 if (event2.start_date.valueOf() > calendar.max_date.valueOf() || event2.end_date.valueOf() <= calendar.min_date.valueOf()) {
11402 scheduler2.setCurrentView(event2.start_date);
11403 }
11404 var node = this.getNode();
11405 if (this.isScrolledIntoView(node)) {

Callers 1

key_navFunction · 0.70

Calls 6

getEventMethod · 0.65
getStateMethod · 0.65
setCurrentViewMethod · 0.65
bindMethod · 0.65
showLightboxMethod · 0.65
getNodeMethod · 0.45

Tested by

no test coverage detected