dhtmlx-scheduler 5.3.11 → 5.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bower.json +1 -1
- package/codebase/dhtmlxscheduler.css +2 -2
- package/codebase/dhtmlxscheduler.d.ts +1 -1
- package/codebase/dhtmlxscheduler.js +259 -257
- package/codebase/dhtmlxscheduler_contrast_black.css +2 -2
- package/codebase/dhtmlxscheduler_contrast_white.css +2 -2
- package/codebase/dhtmlxscheduler_flat.css +2 -2
- package/codebase/dhtmlxscheduler_material.css +2 -2
- package/codebase/dhtmlxscheduler_terrace.css +2 -2
- package/codebase/ext/dhtmlxscheduler_active_links.js +3 -3
- package/codebase/ext/dhtmlxscheduler_agenda_view.js +1 -1
- package/codebase/ext/dhtmlxscheduler_all_timed.js +1 -1
- package/codebase/ext/dhtmlxscheduler_collision.js +1 -1
- package/codebase/ext/dhtmlxscheduler_container_autoresize.js +1 -1
- package/codebase/ext/dhtmlxscheduler_cookie.js +1 -1
- package/codebase/ext/dhtmlxscheduler_csp.js +1 -1
- package/codebase/ext/dhtmlxscheduler_editors.js +1 -1
- package/codebase/ext/dhtmlxscheduler_expand.js +2 -2
- package/codebase/ext/dhtmlxscheduler_html_templates.js +1 -1
- package/codebase/ext/dhtmlxscheduler_key_nav.js +68 -68
- package/codebase/ext/dhtmlxscheduler_layer.js +12 -12
- package/codebase/ext/dhtmlxscheduler_limit.js +1 -1
- package/codebase/ext/dhtmlxscheduler_map_view.js +1 -1
- package/codebase/ext/dhtmlxscheduler_minical.js +2 -2
- package/codebase/ext/dhtmlxscheduler_monthheight.js +1 -1
- package/codebase/ext/dhtmlxscheduler_multiselect.js +1 -1
- package/codebase/ext/dhtmlxscheduler_multisource.js +1 -1
- package/codebase/ext/dhtmlxscheduler_mvc.js +1 -1
- package/codebase/ext/dhtmlxscheduler_outerdrag.js +1 -1
- package/codebase/ext/dhtmlxscheduler_pdf.js +1 -1
- package/codebase/ext/dhtmlxscheduler_quick_info.js +1 -1
- package/codebase/ext/dhtmlxscheduler_readonly.js +1 -1
- package/codebase/ext/dhtmlxscheduler_recurring.js +28 -24
- package/codebase/ext/dhtmlxscheduler_serialize.js +3 -3
- package/codebase/ext/dhtmlxscheduler_tooltip.js +1 -1
- package/codebase/ext/dhtmlxscheduler_url.js +1 -1
- package/codebase/ext/dhtmlxscheduler_wp.js +1 -1
- package/codebase/ext/dhtmlxscheduler_year_view.js +1 -1
- package/codebase/locale/locale_ar.js +1 -1
- package/codebase/locale/locale_be.js +1 -1
- package/codebase/locale/locale_ca.js +1 -1
- package/codebase/locale/locale_cn.js +1 -1
- package/codebase/locale/locale_cs.js +1 -1
- package/codebase/locale/locale_da.js +1 -1
- package/codebase/locale/locale_de.js +1 -1
- package/codebase/locale/locale_el.js +1 -1
- package/codebase/locale/locale_en.js +1 -1
- package/codebase/locale/locale_es.js +1 -1
- package/codebase/locale/locale_fi.js +1 -1
- package/codebase/locale/locale_fr.js +1 -1
- package/codebase/locale/locale_he.js +1 -1
- package/codebase/locale/locale_hu.js +1 -1
- package/codebase/locale/locale_id.js +1 -1
- package/codebase/locale/locale_it.js +1 -1
- package/codebase/locale/locale_jp.js +1 -1
- package/codebase/locale/locale_nb.js +1 -1
- package/codebase/locale/locale_nl.js +1 -1
- package/codebase/locale/locale_no.js +1 -1
- package/codebase/locale/locale_pl.js +1 -1
- package/codebase/locale/locale_pt.js +1 -1
- package/codebase/locale/locale_ro.js +1 -1
- package/codebase/locale/locale_ru.js +1 -1
- package/codebase/locale/locale_si.js +1 -1
- package/codebase/locale/locale_sk.js +1 -1
- package/codebase/locale/locale_sv.js +1 -1
- package/codebase/locale/locale_tr.js +1 -1
- package/codebase/locale/locale_ua.js +1 -1
- package/codebase/sources/dhtmlxscheduler.js +83 -16
- package/codebase/sources/dhtmlxscheduler.js.map +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_active_links.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_agenda_view.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_all_timed.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_collision.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_container_autoresize.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_cookie.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_csp.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_editors.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_expand.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_html_templates.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_key_nav.js +52 -18
- package/codebase/sources/ext/dhtmlxscheduler_key_nav.js.map +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_layer.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_limit.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_map_view.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_minical.js +5 -1
- package/codebase/sources/ext/dhtmlxscheduler_minical.js.map +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_monthheight.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_multiselect.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_multisource.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_mvc.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_outerdrag.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_pdf.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_quick_info.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_readonly.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_recurring.js +103 -11
- package/codebase/sources/ext/dhtmlxscheduler_recurring.js.map +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_serialize.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_tooltip.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_url.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_wp.js +1 -1
- package/codebase/sources/ext/dhtmlxscheduler_year_view.js +1 -1
- package/codebase/sources/less/package.json +2 -2
- package/codebase/sources/less/skins/basic/ext.less +16 -7
- package/codebase/sources/less/skins/material/add_styles.less +2 -1
- package/codebase/sources/locale/locale_ar.js +1 -1
- package/codebase/sources/locale/locale_be.js +1 -1
- package/codebase/sources/locale/locale_ca.js +1 -1
- package/codebase/sources/locale/locale_cn.js +1 -1
- package/codebase/sources/locale/locale_cs.js +1 -1
- package/codebase/sources/locale/locale_da.js +1 -1
- package/codebase/sources/locale/locale_de.js +1 -1
- package/codebase/sources/locale/locale_el.js +1 -1
- package/codebase/sources/locale/locale_en.js +1 -1
- package/codebase/sources/locale/locale_es.js +1 -1
- package/codebase/sources/locale/locale_fi.js +1 -1
- package/codebase/sources/locale/locale_fr.js +1 -1
- package/codebase/sources/locale/locale_he.js +1 -1
- package/codebase/sources/locale/locale_hu.js +1 -1
- package/codebase/sources/locale/locale_id.js +1 -1
- package/codebase/sources/locale/locale_it.js +1 -1
- package/codebase/sources/locale/locale_jp.js +1 -1
- package/codebase/sources/locale/locale_nb.js +1 -1
- package/codebase/sources/locale/locale_nl.js +1 -1
- package/codebase/sources/locale/locale_no.js +1 -1
- package/codebase/sources/locale/locale_pl.js +1 -1
- package/codebase/sources/locale/locale_pt.js +1 -1
- package/codebase/sources/locale/locale_ro.js +1 -1
- package/codebase/sources/locale/locale_ru.js +1 -1
- package/codebase/sources/locale/locale_si.js +1 -1
- package/codebase/sources/locale/locale_sk.js +1 -1
- package/codebase/sources/locale/locale_sv.js +1 -1
- package/codebase/sources/locale/locale_tr.js +1 -1
- package/codebase/sources/locale/locale_ua.js +1 -1
- package/codebase/sources/skins/dhtmlxscheduler.css +13 -9
- package/codebase/sources/skins/dhtmlxscheduler_contrast_black.css +13 -9
- package/codebase/sources/skins/dhtmlxscheduler_contrast_white.css +13 -9
- package/codebase/sources/skins/dhtmlxscheduler_flat.css +13 -9
- package/codebase/sources/skins/dhtmlxscheduler_material.css +15 -10
- package/codebase/sources/skins/dhtmlxscheduler_terrace.css +13 -9
- package/package.json +1 -1
- package/whatsnew.md +26 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
|
|
3
3
|
@license
|
|
4
|
-
dhtmlxScheduler v.5.3.
|
|
4
|
+
dhtmlxScheduler v.5.3.14 Standard
|
|
5
5
|
|
|
6
6
|
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
|
|
7
7
|
|
|
@@ -1953,7 +1953,7 @@ Scheduler.plugin = function (code) {
|
|
|
1953
1953
|
};
|
|
1954
1954
|
Scheduler._schedulerPlugins = [];
|
|
1955
1955
|
Scheduler.getSchedulerInstance = function () {
|
|
1956
|
-
var scheduler = { version: "5.3.
|
|
1956
|
+
var scheduler = { version: "5.3.14" };
|
|
1957
1957
|
|
|
1958
1958
|
var commonViews = {
|
|
1959
1959
|
agenda: "https://docs.dhtmlx.com/scheduler/agenda_view.html",
|
|
@@ -2674,7 +2674,9 @@ scheduler.select=function(id){
|
|
|
2674
2674
|
if (this._select_id==id) return;
|
|
2675
2675
|
scheduler._close_not_saved();
|
|
2676
2676
|
this.editStop(false);
|
|
2677
|
-
this.
|
|
2677
|
+
if(this._select_id){
|
|
2678
|
+
this.unselect();
|
|
2679
|
+
}
|
|
2678
2680
|
this._select_id = id;
|
|
2679
2681
|
this.updateEvent(id);
|
|
2680
2682
|
this.callEvent("onEventSelected", [id]);
|
|
@@ -2731,7 +2733,7 @@ scheduler._click={
|
|
|
2731
2733
|
scheduler._click.buttons[mask.split(" ")[1].replace("icon_","")](id);
|
|
2732
2734
|
} else{
|
|
2733
2735
|
scheduler._close_not_saved();
|
|
2734
|
-
if (new Date().valueOf()-(scheduler._new_event||0) > 500){
|
|
2736
|
+
if (scheduler.getState().select_id && new Date().valueOf()-(scheduler._new_event||0) > 500){
|
|
2735
2737
|
scheduler.unselect();
|
|
2736
2738
|
}
|
|
2737
2739
|
}
|
|
@@ -3450,7 +3452,7 @@ scheduler.update_view=function(){
|
|
|
3450
3452
|
|
|
3451
3453
|
var view = this[this._mode + "_view"];
|
|
3452
3454
|
if(view){
|
|
3453
|
-
view(true);
|
|
3455
|
+
view.call(this, true);
|
|
3454
3456
|
}else{
|
|
3455
3457
|
this._reset_scale();
|
|
3456
3458
|
}
|
|
@@ -4264,6 +4266,32 @@ scheduler.eventRemove = function(el, event, handler){
|
|
|
4264
4266
|
].join(", "));
|
|
4265
4267
|
|
|
4266
4268
|
var nodesArray = Array.prototype.slice.call(nodes, 0);
|
|
4269
|
+
|
|
4270
|
+
for(var i = 0; i < nodesArray.length; i++){
|
|
4271
|
+
nodesArray[i].$position = i;
|
|
4272
|
+
// we remember original nodes order,
|
|
4273
|
+
// so when we sort them by tabindex we ensure order of nodes with same tabindex is preserved,
|
|
4274
|
+
// since some browsers do unstable sort
|
|
4275
|
+
}
|
|
4276
|
+
|
|
4277
|
+
nodesArray.sort(function(a, b) {
|
|
4278
|
+
if(a.tabIndex === 0 && b.tabIndex !== 0){
|
|
4279
|
+
return 1;
|
|
4280
|
+
}
|
|
4281
|
+
if(a.tabIndex !== 0 && b.tabIndex === 0){
|
|
4282
|
+
return -1;
|
|
4283
|
+
}
|
|
4284
|
+
|
|
4285
|
+
if (a.tabIndex === b.tabIndex){
|
|
4286
|
+
// ensure we do stable sort
|
|
4287
|
+
return a.$position - b.$position;
|
|
4288
|
+
}
|
|
4289
|
+
if (a.tabIndex < b.tabIndex) {
|
|
4290
|
+
return -1;
|
|
4291
|
+
}
|
|
4292
|
+
return 1;
|
|
4293
|
+
});
|
|
4294
|
+
|
|
4267
4295
|
for(var i = 0; i < nodesArray.length; i++){
|
|
4268
4296
|
var node = nodesArray[i];
|
|
4269
4297
|
var isValid = (hasNonNegativeTabIndex(node) || isEnabled(node) || hasHref(node)) && isVisible(node);
|
|
@@ -5577,6 +5605,9 @@ scheduler.addEvent = function(start_date, end_date, text, id, extra_data) {
|
|
|
5577
5605
|
if (ev.start_date.valueOf() == ev.end_date.valueOf())
|
|
5578
5606
|
ev.end_date.setTime(ev.end_date.valueOf() + d);
|
|
5579
5607
|
|
|
5608
|
+
ev.start_date.setMilliseconds(0);
|
|
5609
|
+
ev.end_date.setMilliseconds(0);
|
|
5610
|
+
|
|
5580
5611
|
ev._timed = this.isOneDayEvent(ev);
|
|
5581
5612
|
|
|
5582
5613
|
var is_new = !this._events[ev.id];
|
|
@@ -5591,7 +5622,9 @@ scheduler.deleteEvent = function(id, silent) {
|
|
|
5591
5622
|
if (!silent && (!this.callEvent("onBeforeEventDelete", [id, ev]) || !this.callEvent("onConfirmedBeforeEventDelete", [id, ev])))
|
|
5592
5623
|
return;
|
|
5593
5624
|
if (ev) {
|
|
5594
|
-
|
|
5625
|
+
if(scheduler.getState().select_id == id){
|
|
5626
|
+
scheduler.unselect();
|
|
5627
|
+
}
|
|
5595
5628
|
delete this._events[id];
|
|
5596
5629
|
this.event_updated(ev);
|
|
5597
5630
|
|
|
@@ -5677,7 +5710,7 @@ scheduler.is_visible_events = function(ev) {
|
|
|
5677
5710
|
lastHour = this.config.last_hour,
|
|
5678
5711
|
firstHour = this.config.first_hour;
|
|
5679
5712
|
|
|
5680
|
-
var end_dates_visible = (this._table_view || !((evLastHour > lastHour || evLastHour
|
|
5713
|
+
var end_dates_visible = (this._table_view || !((evLastHour > lastHour || evLastHour <= firstHour) && (evFirstHour >= lastHour || evFirstHour < firstHour)));
|
|
5681
5714
|
|
|
5682
5715
|
if(end_dates_visible){
|
|
5683
5716
|
return true;
|
|
@@ -5687,7 +5720,7 @@ scheduler.is_visible_events = function(ev) {
|
|
|
5687
5720
|
var event_duration = (ev.end_date.valueOf() - ev.start_date.valueOf()) / (1000*60*60),//hours
|
|
5688
5721
|
hidden_duration = 24 - (this.config.last_hour - this.config.first_hour);
|
|
5689
5722
|
|
|
5690
|
-
return !!((event_duration > hidden_duration) || (evFirstHour < lastHour && evLastHour
|
|
5723
|
+
return !!((event_duration > hidden_duration) || (evFirstHour < lastHour && evLastHour > firstHour));
|
|
5691
5724
|
|
|
5692
5725
|
}
|
|
5693
5726
|
}else{
|
|
@@ -6781,8 +6814,11 @@ scheduler.showEvent = function(id, mode) {
|
|
|
6781
6814
|
|
|
6782
6815
|
scheduler.setCurrentView(new Date(ev.start_date), mode);
|
|
6783
6816
|
|
|
6784
|
-
|
|
6785
|
-
|
|
6817
|
+
function restoreOriginalColors(){
|
|
6818
|
+
ev.color = original_color;
|
|
6819
|
+
ev.textColor = original_text_color;
|
|
6820
|
+
}
|
|
6821
|
+
|
|
6786
6822
|
scheduler.config.scroll_hour = scroll_hour;
|
|
6787
6823
|
scheduler.config.preserve_scroll = preserve_scroll;
|
|
6788
6824
|
|
|
@@ -6806,11 +6842,24 @@ scheduler.showEvent = function(id, mode) {
|
|
|
6806
6842
|
var container = scheduler.$container.querySelector(".dhx_timeline_data_wrapper");
|
|
6807
6843
|
left = left - (container.offsetWidth - timeline.dx) / 2;
|
|
6808
6844
|
top = top - container.offsetHeight / 2 + timeline.dy/2;
|
|
6845
|
+
|
|
6846
|
+
if (timeline._smartRenderingEnabled()) {
|
|
6847
|
+
var handlerId = timeline.attachEvent("onScroll", function(){
|
|
6848
|
+
restoreOriginalColors();
|
|
6849
|
+
timeline.detachEvent(handlerId);
|
|
6850
|
+
});
|
|
6851
|
+
}
|
|
6852
|
+
|
|
6809
6853
|
timeline.scrollTo({
|
|
6810
6854
|
left: left,
|
|
6811
6855
|
top: top
|
|
6812
6856
|
});
|
|
6857
|
+
if (!timeline._smartRenderingEnabled()) {
|
|
6858
|
+
restoreOriginalColors();
|
|
6859
|
+
}
|
|
6813
6860
|
}
|
|
6861
|
+
}else{
|
|
6862
|
+
restoreOriginalColors();
|
|
6814
6863
|
}
|
|
6815
6864
|
|
|
6816
6865
|
scheduler.callEvent("onAfterEventDisplay", [ev, mode]);
|
|
@@ -7342,13 +7391,22 @@ scheduler.attachEvent("onXLE", function() {
|
|
|
7342
7391
|
scheduler._lightbox_controls = {};
|
|
7343
7392
|
scheduler.formSection = function(name){
|
|
7344
7393
|
var config = this.config.lightbox.sections;
|
|
7345
|
-
var i =0;
|
|
7346
|
-
for (i; i < config.length; i++)
|
|
7347
|
-
if (config[i].name == name)
|
|
7394
|
+
var i = 0;
|
|
7395
|
+
for (i; i < config.length; i++) {
|
|
7396
|
+
if (config[i].name == name) {
|
|
7348
7397
|
break;
|
|
7398
|
+
}
|
|
7399
|
+
}
|
|
7400
|
+
|
|
7401
|
+
if (i === config.length) {
|
|
7402
|
+
// GS-1662 section not found, should exit here instead of throwing an error
|
|
7403
|
+
return null;
|
|
7404
|
+
}
|
|
7405
|
+
|
|
7349
7406
|
var section = config[i];
|
|
7350
|
-
if (!scheduler._lightbox)
|
|
7407
|
+
if (!scheduler._lightbox) {
|
|
7351
7408
|
scheduler.getLightbox();
|
|
7409
|
+
}
|
|
7352
7410
|
var header = document.getElementById(section.id);
|
|
7353
7411
|
var node = header.nextSibling;
|
|
7354
7412
|
|
|
@@ -7611,6 +7669,11 @@ scheduler.form_blocks={
|
|
|
7611
7669
|
|
|
7612
7670
|
if(cfg.auto_end_date && cfg.event_duration) {
|
|
7613
7671
|
var _update_lightbox_select = function () {
|
|
7672
|
+
|
|
7673
|
+
if (!(cfg.auto_end_date && cfg.event_duration)){
|
|
7674
|
+
// setting may be disabled after the handler is attached
|
|
7675
|
+
return;
|
|
7676
|
+
}
|
|
7614
7677
|
start_date = new Date(s[map[3]].value,s[map[2]].value,s[map[1]].value,0,s[map[0]].value);
|
|
7615
7678
|
end_date = new Date(start_date.getTime() + (scheduler.config.event_duration * 60 * 1000));
|
|
7616
7679
|
_fill_lightbox_select(s, 4, end_date);
|
|
@@ -7788,7 +7851,6 @@ scheduler._empty_lightbox=function(data){
|
|
|
7788
7851
|
scheduler.hide_lightbox=function(id){
|
|
7789
7852
|
scheduler.endLightbox(false, this.getLightbox());
|
|
7790
7853
|
};
|
|
7791
|
-
scheduler.hideLightbox = scheduler.hide_lightbox;
|
|
7792
7854
|
|
|
7793
7855
|
scheduler.hideCover=function(box){
|
|
7794
7856
|
if (box) box.style.display="none";
|
|
@@ -7852,9 +7914,14 @@ scheduler.resetLightbox = function(){
|
|
|
7852
7914
|
scheduler._lightbox = null;
|
|
7853
7915
|
};
|
|
7854
7916
|
scheduler.cancel_lightbox=function(){
|
|
7855
|
-
|
|
7917
|
+
if(this._lightbox_id){
|
|
7918
|
+
this.callEvent("onEventCancel",[this._lightbox_id, this._new_event]);
|
|
7919
|
+
}
|
|
7920
|
+
|
|
7856
7921
|
this.hide_lightbox();
|
|
7857
7922
|
};
|
|
7923
|
+
scheduler.hideLightbox = scheduler.cancel_lightbox;// GS-1650 need to use cancel in order to fire onEventCancel event, which is important to refresh the state of recurring series
|
|
7924
|
+
|
|
7858
7925
|
scheduler._init_lightbox_events=function(){
|
|
7859
7926
|
this.getLightbox().onclick=function(e){
|
|
7860
7927
|
var src=e?e.target:event.srcElement;
|