Skip to content

Commit 35edb0b

Browse files
committed
[update] version 7.2.4
1 parent 14500ea commit 35edb0b

13 files changed

+902
-829
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# dhtmlxScheduler #
22

33
[![dhtmlx.com](https://img.shields.io/badge/made%20by-DHTMLX-blue)](https://dhtmlx.com/)
4-
[![npm: v.7.2.3](https://img.shields.io/badge/npm-v.7.2.3-blue.svg)](https://www.npmjs.com/package/dhtmlx-scheduler)
4+
[![npm: v.7.2.4](https://img.shields.io/badge/npm-v.7.2.4-blue.svg)](https://www.npmjs.com/package/dhtmlx-scheduler)
55
[![License: GPL v2](https://img.shields.io/badge/license-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
66

77
[DHTMLX Scheduler](https://dhtmlx.com/docs/products/dhtmlxScheduler) is a JavaScript library that allows you to add a Google-like scheduler to your web app or website.
@@ -87,7 +87,7 @@ scheduler.parse([
8787

8888
## License ##
8989

90-
dhtmlxScheduler v.7.2.3 Standard
90+
dhtmlxScheduler v.7.2.4 Standard
9191

9292
To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product), please obtain Commercial/Enterprise or Ultimate license on our site https://dhtmlx.com/docs/products/dhtmlxScheduler/#licensing or contact us at sales@dhtmlx.com
9393

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "scheduler",
3-
"version": "7.2.3",
3+
"version": "7.2.4",
44
"homepage": "https://dhtmlx.com/docs/products/dhtmlxScheduler/",
55
"description": "JavaScript event calendar. Allows to manage events and appointments in different views",
66
"main": [

codebase/dhtmlxscheduler.es.js

Lines changed: 782 additions & 764 deletions
Large diffs are not rendered by default.

codebase/dhtmlxscheduler.es.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

codebase/dhtmlxscheduler.js

Lines changed: 38 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

codebase/dhtmlxscheduler.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

codebase/sources/dhtmlxscheduler.es.js

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** @license
22

3-
dhtmlxScheduler v.7.2.3 Standard
3+
dhtmlxScheduler v.7.2.4 Standard
44

55
To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product), please obtain Commercial/Enterprise or Ultimate license on our site https://dhtmlx.com/docs/products/dhtmlxScheduler/#licensing or contact us at sales@dhtmlx.com
66

@@ -2683,6 +2683,13 @@ function extend$j(scheduler2) {
26832683
end = scheduler2.date.date_part(new Date(end));
26842684
end = new Date(end * 1 - obj._end_correction);
26852685
}
2686+
if (obj.round_position && scheduler2["ignore_" + scheduler2._mode] && obj.x_unit == "day") {
2687+
const ignore = this["ignore_" + this._mode];
2688+
let tempEnd = scheduler2.date.add(new Date(end), -obj.x_step, obj.x_unit);
2689+
if (ignore(tempEnd)) {
2690+
end = tempEnd;
2691+
}
2692+
}
26862693
}
26872694
} else {
26882695
if (pos.resize_from_start) {
@@ -2803,6 +2810,14 @@ function extend$j(scheduler2) {
28032810
new_end = new Date(end - 1);
28042811
}
28052812
}
2813+
if (this._table_view && scheduler2["ignore_" + this._mode] && (this._drag_mode == "resize" || this._drag_mode == "new-size") && +end > +scheduler2._max_date) {
2814+
end = new Date(scheduler2._max_date);
2815+
const ignore = this["ignore_" + this._mode];
2816+
while (ignore(end)) {
2817+
end = scheduler2.date.add(end, -obj.x_step, obj.x_unit);
2818+
}
2819+
end = scheduler2.date.add(end, obj.x_step, obj.x_unit);
2820+
}
28062821
if (this._table_view || new_end.getDate() == new_start.getDate() && new_end.getHours() < this.config.last_hour || scheduler2._allow_dnd) {
28072822
ev.start_date = new_start;
28082823
ev.end_date = new Date(end);
@@ -3581,7 +3596,11 @@ function extend$j(scheduler2) {
35813596
} else {
35823597
end_slot = Math.round(ev_length / 60 / 60 / 1e3 / 24);
35833598
}
3584-
while (start_slot * dir <= end_slot * dir) {
3599+
function condition() {
3600+
const isDayUnit = obj.x_unit === "day";
3601+
return isDayUnit ? start_slot * dir < end_slot * dir : start_slot * dir <= end_slot * dir;
3602+
}
3603+
while (condition()) {
35853604
var check = scheduler2.date.add(sd, obj.x_step * dir, obj.x_unit);
35863605
if (ignore && ignore(sd)) {
35873606
ev_length += (check - sd) * dir;
@@ -4743,7 +4762,7 @@ function extend$e(scheduler2) {
47434762
} };
47444763
}
47454764
function extend$d(scheduler2) {
4746-
scheduler2.config = { default_date: "%j %M %Y", month_date: "%F %Y", load_date: "%Y-%m-%d", week_date: "%l", day_date: "%D %j", hour_date: "%H:%i", month_day: "%d", date_format: "%Y-%m-%d %H:%i", api_date: "%d-%m-%Y %H:%i", parse_exact_format: false, preserve_length: true, time_step: 5, displayed_event_color: "#ff4a4a", displayed_event_text_color: "#ffef80", wide_form: 0, day_column_padding: 8, use_select_menu_space: true, fix_tab_position: true, start_on_monday: true, first_hour: 0, last_hour: 24, readonly: false, drag_resize: true, drag_move: true, drag_create: true, drag_event_body: true, dblclick_create: true, details_on_dblclick: true, edit_on_create: true, details_on_create: true, header: null, hour_size_px: 44, resize_month_events: false, resize_month_timed: false, responsive_lightbox: false, separate_short_events: true, rtl: false, cascade_event_display: false, cascade_event_count: 4, cascade_event_margin: 30, multi_day: true, multi_day_height_limit: 200, drag_lightbox: true, preserve_scroll: true, select: true, undo_deleted: true, server_utc: false, touch: true, touch_tip: true, touch_drag: 500, touch_swipe_dates: false, quick_info_detached: true, positive_closing: false, drag_highlight: true, limit_drag_out: false, icons_edit: ["icon_save", "icon_cancel"], icons_select: ["icon_details", "icon_edit", "icon_delete"], buttons_left: ["dhx_save_btn", "dhx_cancel_btn"], buttons_right: ["dhx_delete_btn"], lightbox: { sections: [{ name: "description", map_to: "text", type: "textarea", focus: true }, { name: "time", height: 72, type: "time", map_to: "auto" }] }, highlight_displayed_event: true, left_border: false, ajax_error: "alert", delay_render: 0, timeline_swap_resize: true, wai_aria_attributes: true, wai_aria_application_role: true, csp: "auto", event_attribute: "data-event-id", show_errors: true };
4765+
scheduler2.config = { default_date: "%j %M %Y", month_date: "%F %Y", load_date: "%Y-%m-%d", week_date: "%l", day_date: "%D %j", hour_date: "%H:%i", month_day: "%d", date_format: "%Y-%m-%d %H:%i", api_date: "%d-%m-%Y %H:%i", parse_exact_format: false, preserve_length: true, time_step: 5, displayed_event_color: "#ff4a4a", displayed_event_text_color: "#ffef80", wide_form: 0, day_column_padding: 8, use_select_menu_space: true, fix_tab_position: true, start_on_monday: true, first_hour: 0, last_hour: 24, readonly: false, drag_resize: true, drag_move: true, drag_create: true, drag_event_body: true, dblclick_create: true, details_on_dblclick: true, edit_on_create: true, details_on_create: true, header: null, hour_size_px: 44, resize_month_events: false, resize_month_timed: false, responsive_lightbox: false, separate_short_events: true, rtl: false, cascade_event_display: false, cascade_event_count: 4, cascade_event_margin: 30, multi_day: true, multi_day_height_limit: 200, drag_lightbox: true, preserve_scroll: true, select: true, undo_deleted: true, server_utc: false, touch: true, touch_tip: true, touch_drag: 500, touch_swipe_dates: false, quick_info_detached: true, positive_closing: false, drag_highlight: true, limit_drag_out: false, icons_edit: ["icon_save", "icon_cancel"], icons_select: ["icon_details", "icon_edit", "icon_delete"], buttons_right: ["dhx_save_btn", "dhx_cancel_btn"], buttons_left: ["dhx_delete_btn"], lightbox: { sections: [{ name: "description", map_to: "text", type: "textarea", focus: true }, { name: "time", height: 72, type: "time", map_to: "auto" }] }, highlight_displayed_event: true, left_border: false, ajax_error: "alert", delay_render: 0, timeline_swap_resize: true, wai_aria_attributes: true, wai_aria_application_role: true, csp: "auto", event_attribute: "data-event-id", show_errors: true };
47474766
scheduler2.config.buttons_left.$initial = scheduler2.config.buttons_left.join();
47484767
scheduler2.config.buttons_right.$initial = scheduler2.config.buttons_right.join();
47494768
scheduler2._helpers = { parseDate: function parseDate(date) {
@@ -6906,14 +6925,14 @@ function extend$6(scheduler2) {
69066925
d.className += " dhx_cal_light_responsive";
69076926
d.style.visibility = "hidden";
69086927
var html = this._lightbox_template;
6909-
var buttons = this.config.buttons_left;
6928+
var buttons = this.config.buttons_right;
69106929
html += "<div class='dhx_cal_lcontrols'>";
69116930
var ariaAttr = "";
69126931
for (var i = 0; i < buttons.length; i++) {
69136932
ariaAttr = this._waiAria.lightboxButtonAttrString(buttons[i]);
69146933
html += "<div " + ariaAttr + " data-action='" + buttons[i] + "' class='dhx_btn_set dhx_" + (scheduler2.config.rtl ? "right" : "left") + "_btn_set " + buttons[i] + "_set'><div class='dhx_btn_inner " + buttons[i] + "'></div><div>" + scheduler2.locale.labels[buttons[i]] + "</div></div>";
69156934
}
6916-
buttons = this.config.buttons_right;
6935+
buttons = this.config.buttons_left;
69176936
var rtl = scheduler2.config.rtl;
69186937
for (var i = 0; i < buttons.length; i++) {
69196938
ariaAttr = this._waiAria.lightboxButtonAttrString(buttons[i]);
@@ -9139,7 +9158,7 @@ class DatePicker {
91399158
}
91409159
}
91419160
function factoryMethod(extensionManager) {
9142-
const scheduler2 = { version: "7.2.3" };
9161+
const scheduler2 = { version: "7.2.4" };
91439162
scheduler2.$stateProvider = StateService();
91449163
scheduler2.getState = scheduler2.$stateProvider.getState;
91459164
extend$n(scheduler2);
@@ -10013,9 +10032,13 @@ function container_autoresize(scheduler2) {
1001310032
height = 190 * scheduler2.config.year_y;
1001410033
} else if (mode == "agenda") {
1001510034
height = 0;
10016-
if (checked_div.childNodes && checked_div.childNodes.length) {
10017-
for (var j = 0; j < checked_div.childNodes.length; j++) {
10018-
height += checked_div.childNodes[j].offsetHeight;
10035+
if (checked_div.children && checked_div.children.length) {
10036+
if (checked_div.children.length === 1 && checked_div.children[0].classList.contains("dhx_cal_agenda_no_events")) {
10037+
height = 300;
10038+
} else {
10039+
for (var j = 0; j < checked_div.children.length; j++) {
10040+
height += checked_div.children[j].offsetHeight;
10041+
}
1001910042
}
1002010043
}
1002110044
if (height + 2 < scheduler2.config.min_grid_size) {

codebase/sources/dhtmlxscheduler.es.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

codebase/sources/dhtmlxscheduler.js

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
})(this, function(exports2) {
44
"use strict";/** @license
55

6-
dhtmlxScheduler v.7.2.3 Standard
6+
dhtmlxScheduler v.7.2.4 Standard
77

88
To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product), please obtain Commercial/Enterprise or Ultimate license on our site https://dhtmlx.com/docs/products/dhtmlxScheduler/#licensing or contact us at sales@dhtmlx.com
99

@@ -2687,6 +2687,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
26872687
end = scheduler2.date.date_part(new Date(end));
26882688
end = new Date(end * 1 - obj._end_correction);
26892689
}
2690+
if (obj.round_position && scheduler2["ignore_" + scheduler2._mode] && obj.x_unit == "day") {
2691+
const ignore = this["ignore_" + this._mode];
2692+
let tempEnd = scheduler2.date.add(new Date(end), -obj.x_step, obj.x_unit);
2693+
if (ignore(tempEnd)) {
2694+
end = tempEnd;
2695+
}
2696+
}
26902697
}
26912698
} else {
26922699
if (pos.resize_from_start) {
@@ -2807,6 +2814,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
28072814
new_end = new Date(end - 1);
28082815
}
28092816
}
2817+
if (this._table_view && scheduler2["ignore_" + this._mode] && (this._drag_mode == "resize" || this._drag_mode == "new-size") && +end > +scheduler2._max_date) {
2818+
end = new Date(scheduler2._max_date);
2819+
const ignore = this["ignore_" + this._mode];
2820+
while (ignore(end)) {
2821+
end = scheduler2.date.add(end, -obj.x_step, obj.x_unit);
2822+
}
2823+
end = scheduler2.date.add(end, obj.x_step, obj.x_unit);
2824+
}
28102825
if (this._table_view || new_end.getDate() == new_start.getDate() && new_end.getHours() < this.config.last_hour || scheduler2._allow_dnd) {
28112826
ev.start_date = new_start;
28122827
ev.end_date = new Date(end);
@@ -3585,7 +3600,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
35853600
} else {
35863601
end_slot = Math.round(ev_length / 60 / 60 / 1e3 / 24);
35873602
}
3588-
while (start_slot * dir <= end_slot * dir) {
3603+
function condition() {
3604+
const isDayUnit = obj.x_unit === "day";
3605+
return isDayUnit ? start_slot * dir < end_slot * dir : start_slot * dir <= end_slot * dir;
3606+
}
3607+
while (condition()) {
35893608
var check = scheduler2.date.add(sd, obj.x_step * dir, obj.x_unit);
35903609
if (ignore && ignore(sd)) {
35913610
ev_length += (check - sd) * dir;
@@ -4747,7 +4766,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
47474766
} };
47484767
}
47494768
function extend$d(scheduler2) {
4750-
scheduler2.config = { default_date: "%j %M %Y", month_date: "%F %Y", load_date: "%Y-%m-%d", week_date: "%l", day_date: "%D %j", hour_date: "%H:%i", month_day: "%d", date_format: "%Y-%m-%d %H:%i", api_date: "%d-%m-%Y %H:%i", parse_exact_format: false, preserve_length: true, time_step: 5, displayed_event_color: "#ff4a4a", displayed_event_text_color: "#ffef80", wide_form: 0, day_column_padding: 8, use_select_menu_space: true, fix_tab_position: true, start_on_monday: true, first_hour: 0, last_hour: 24, readonly: false, drag_resize: true, drag_move: true, drag_create: true, drag_event_body: true, dblclick_create: true, details_on_dblclick: true, edit_on_create: true, details_on_create: true, header: null, hour_size_px: 44, resize_month_events: false, resize_month_timed: false, responsive_lightbox: false, separate_short_events: true, rtl: false, cascade_event_display: false, cascade_event_count: 4, cascade_event_margin: 30, multi_day: true, multi_day_height_limit: 200, drag_lightbox: true, preserve_scroll: true, select: true, undo_deleted: true, server_utc: false, touch: true, touch_tip: true, touch_drag: 500, touch_swipe_dates: false, quick_info_detached: true, positive_closing: false, drag_highlight: true, limit_drag_out: false, icons_edit: ["icon_save", "icon_cancel"], icons_select: ["icon_details", "icon_edit", "icon_delete"], buttons_left: ["dhx_save_btn", "dhx_cancel_btn"], buttons_right: ["dhx_delete_btn"], lightbox: { sections: [{ name: "description", map_to: "text", type: "textarea", focus: true }, { name: "time", height: 72, type: "time", map_to: "auto" }] }, highlight_displayed_event: true, left_border: false, ajax_error: "alert", delay_render: 0, timeline_swap_resize: true, wai_aria_attributes: true, wai_aria_application_role: true, csp: "auto", event_attribute: "data-event-id", show_errors: true };
4769+
scheduler2.config = { default_date: "%j %M %Y", month_date: "%F %Y", load_date: "%Y-%m-%d", week_date: "%l", day_date: "%D %j", hour_date: "%H:%i", month_day: "%d", date_format: "%Y-%m-%d %H:%i", api_date: "%d-%m-%Y %H:%i", parse_exact_format: false, preserve_length: true, time_step: 5, displayed_event_color: "#ff4a4a", displayed_event_text_color: "#ffef80", wide_form: 0, day_column_padding: 8, use_select_menu_space: true, fix_tab_position: true, start_on_monday: true, first_hour: 0, last_hour: 24, readonly: false, drag_resize: true, drag_move: true, drag_create: true, drag_event_body: true, dblclick_create: true, details_on_dblclick: true, edit_on_create: true, details_on_create: true, header: null, hour_size_px: 44, resize_month_events: false, resize_month_timed: false, responsive_lightbox: false, separate_short_events: true, rtl: false, cascade_event_display: false, cascade_event_count: 4, cascade_event_margin: 30, multi_day: true, multi_day_height_limit: 200, drag_lightbox: true, preserve_scroll: true, select: true, undo_deleted: true, server_utc: false, touch: true, touch_tip: true, touch_drag: 500, touch_swipe_dates: false, quick_info_detached: true, positive_closing: false, drag_highlight: true, limit_drag_out: false, icons_edit: ["icon_save", "icon_cancel"], icons_select: ["icon_details", "icon_edit", "icon_delete"], buttons_right: ["dhx_save_btn", "dhx_cancel_btn"], buttons_left: ["dhx_delete_btn"], lightbox: { sections: [{ name: "description", map_to: "text", type: "textarea", focus: true }, { name: "time", height: 72, type: "time", map_to: "auto" }] }, highlight_displayed_event: true, left_border: false, ajax_error: "alert", delay_render: 0, timeline_swap_resize: true, wai_aria_attributes: true, wai_aria_application_role: true, csp: "auto", event_attribute: "data-event-id", show_errors: true };
47514770
scheduler2.config.buttons_left.$initial = scheduler2.config.buttons_left.join();
47524771
scheduler2.config.buttons_right.$initial = scheduler2.config.buttons_right.join();
47534772
scheduler2._helpers = { parseDate: function parseDate(date) {
@@ -6910,14 +6929,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
69106929
d.className += " dhx_cal_light_responsive";
69116930
d.style.visibility = "hidden";
69126931
var html = this._lightbox_template;
6913-
var buttons = this.config.buttons_left;
6932+
var buttons = this.config.buttons_right;
69146933
html += "<div class='dhx_cal_lcontrols'>";
69156934
var ariaAttr = "";
69166935
for (var i = 0; i < buttons.length; i++) {
69176936
ariaAttr = this._waiAria.lightboxButtonAttrString(buttons[i]);
69186937
html += "<div " + ariaAttr + " data-action='" + buttons[i] + "' class='dhx_btn_set dhx_" + (scheduler2.config.rtl ? "right" : "left") + "_btn_set " + buttons[i] + "_set'><div class='dhx_btn_inner " + buttons[i] + "'></div><div>" + scheduler2.locale.labels[buttons[i]] + "</div></div>";
69196938
}
6920-
buttons = this.config.buttons_right;
6939+
buttons = this.config.buttons_left;
69216940
var rtl = scheduler2.config.rtl;
69226941
for (var i = 0; i < buttons.length; i++) {
69236942
ariaAttr = this._waiAria.lightboxButtonAttrString(buttons[i]);
@@ -9143,7 +9162,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
91439162
}
91449163
}
91459164
function factoryMethod(extensionManager) {
9146-
const scheduler2 = { version: "7.2.3" };
9165+
const scheduler2 = { version: "7.2.4" };
91479166
scheduler2.$stateProvider = StateService();
91489167
scheduler2.getState = scheduler2.$stateProvider.getState;
91499168
extend$n(scheduler2);
@@ -10017,9 +10036,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
1001710036
height = 190 * scheduler2.config.year_y;
1001810037
} else if (mode == "agenda") {
1001910038
height = 0;
10020-
if (checked_div.childNodes && checked_div.childNodes.length) {
10021-
for (var j = 0; j < checked_div.childNodes.length; j++) {
10022-
height += checked_div.childNodes[j].offsetHeight;
10039+
if (checked_div.children && checked_div.children.length) {
10040+
if (checked_div.children.length === 1 && checked_div.children[0].classList.contains("dhx_cal_agenda_no_events")) {
10041+
height = 300;
10042+
} else {
10043+
for (var j = 0; j < checked_div.children.length; j++) {
10044+
height += checked_div.children[j].offsetHeight;
10045+
}
1002310046
}
1002410047
}
1002510048
if (height + 2 < scheduler2.config.min_grid_size) {

codebase/sources/dhtmlxscheduler.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

codebase/sources/less/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dhtmlx-scheduler-skins",
3-
"version": "7.2.3",
3+
"version": "7.2.4",
44
"description": "Less sources and a build tool for DHTMLXScheduler skins",
55
"scripts": {
66
"build": "node scripts.js --file=theme",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dhtmlx-scheduler",
3-
"version": "7.2.3",
3+
"version": "7.2.4",
44
"description": "JavaScript event calendar. Allows to manage events and appointments in different views",
55
"main": "codebase/dhtmlxscheduler.es.js",
66
"types": "codebase/dhtmlxscheduler.es.d.ts",

0 commit comments

Comments
 (0)