1
1
/*
2
2
@license
3
3
4
- dhtmlxGantt v.8.0.3 Standard
4
+ dhtmlxGantt v.8.0.4 Standard
5
5
6
6
This version of dhtmlxGantt is distributed under GPL 2.0 license and can be legally used in GPL projects.
7
7
@@ -10558,6 +10558,7 @@ var DataProcessorEvents = /** @class */ (function () {
10558
10558
methods.delete.call(gantt, id);
10559
10559
}
10560
10560
});
10561
+ this.handleResourceCRUD(dp, gantt);
10561
10562
this.handleResourceAssignmentCRUD(dp, gantt);
10562
10563
};
10563
10564
DataProcessorEvents.prototype.clientSideDelete = function (id, dp, gantt) {
@@ -21062,6 +21063,7 @@ var Layout = function (_super) {
21062
21063
var scrollChanged = false;
21063
21064
var visibleScrollbars = [],
21064
21065
hiddenScrollbars = [];
21066
+ var scrollbarsToHide = [];
21065
21067
21066
21068
function showScrollbar(scrollbar) {
21067
21069
scrollbar.$parent.show();
@@ -21083,7 +21085,8 @@ var Layout = function (_super) {
21083
21085
if (autosize[scrollbar.$config.scroll]) {
21084
21086
hideScrollbar(scrollbar);
21085
21087
} else if (scrollbar.shouldHide()) {
21086
- hideScrollbar(scrollbar);
21088
+ //hideScrollbar(scrollbar);
21089
+ scrollbarsToHide.push(scrollbar);
21087
21090
} else if (scrollbar.shouldShow()) {
21088
21091
showScrollbar(scrollbar);
21089
21092
} else {
@@ -21101,7 +21104,14 @@ var Layout = function (_super) {
21101
21104
if (visibleScrollbars[i].$config.group) {
21102
21105
visibleGroups[visibleScrollbars[i].$config.group] = true;
21103
21106
}
21104
- }
21107
+ } // GS-2220
21108
+
21109
+
21110
+ scrollbarsToHide.forEach(function (scrollbar) {
21111
+ if (!(scrollbar.$config.group && visibleGroups[scrollbar.$config.group])) {
21112
+ hideScrollbar(scrollbar);
21113
+ }
21114
+ });
21105
21115
21106
21116
for (var i = 0; i < hiddenScrollbars.length; i++) {
21107
21117
scrollbar = hiddenScrollbars[i];
@@ -35694,48 +35704,56 @@ CalendarWorkTimeStrategy.prototype = {
35694
35704
35695
35705
var isWorkHour = false;
35696
35706
var workInterval = null;
35707
+ var prevInterval = null;
35697
35708
35698
35709
for (var i = daySchedule.length - 1; i >= 0; i--) {
35699
35710
if (daySchedule[i].start < timestamp - 1 && daySchedule[i].end >= timestamp - 1) {
35700
35711
isWorkHour = true;
35701
35712
workInterval = daySchedule[i];
35713
+ prevInterval = daySchedule[i - 1];
35702
35714
break;
35703
35715
}
35704
35716
}
35705
35717
35706
35718
if (isWorkHour) {
35719
+ // we're at the end of worktime interval and subtracting more than the duration of the interval
35720
+ // -> subtract the duration of the interval and move to the start of the interval (we're moving from end)
35707
35721
if (timestamp === workInterval.end && left >= workInterval.durationMinutes) {
35708
35722
added += workInterval.durationMinutes;
35709
35723
start = this.$gantt.date.add(start, -workInterval.durationMinutes, "minute");
35710
- } else if (!minutePrecision && left <= timestamp / 60 - workInterval.startMinute) {
35711
- added += left;
35712
- start = this.$gantt.date.add(start, -left, "minute");
35713
- } else if (minutePrecision) {
35714
- // GS-2129. If the working time is set in minutes, we accumulate the working time in minutes from right to left
35715
- var previousHour = this._getClosestWorkTime(this._nextDate(start, "hour", step), "hour");
35716
-
35717
- var _minutesInHour = this._getMinutesPerHour(previousHour);
35724
+ } // worktime is set in whole hours (no intervals like 9:15-10:00)
35725
+ // the amount we need to subtract lies inside the interval
35726
+ else if (!minutePrecision && left <= timestamp / 60 - workInterval.startMinute) {
35727
+ added += left;
35728
+ start = this.$gantt.date.add(start, -left, "minute");
35729
+ } else if (minutePrecision) {
35730
+ // GS-2129. If the working time is set in minutes, we accumulate the working time in minutes from right to left
35731
+ // duration we need to subtract lies completely inside the work interval
35732
+ if (left <= timestamp / 60 - workInterval.startMinute) {
35733
+ added += left;
35734
+ start = this.$gantt.date.add(start, -left, "minute");
35735
+ } else {
35736
+ // we need to go trough multiple work intervals to subtract needed time
35737
+ added += timestamp / 60 - workInterval.startMinute;
35718
35738
35719
- if (left < _minutesInHour && _minutesInHour <= 60) {
35720
- _minutesInHour = left;
35721
- start = this.$gantt.date.add(start, -_minutesInHour, "minute");
35739
+ if (prevInterval) {
35740
+ start = new Date(start.getFullYear(), start.getMonth(), start.getDate(), 0, 0, prevInterval.end);
35741
+ } else {
35742
+ start = this.$gantt.date.day_start(start);
35743
+ }
35744
+ }
35722
35745
} else {
35723
- start = previousHour;
35724
- }
35746
+ var minutesInHour = this._getMinutesPerHour(start);
35725
35747
35726
- added += _minutesInHour;
35727
- } else {
35728
- var minutesInHour = this._getMinutesPerHour(start);
35729
-
35730
- if (minutesInHour <= left) {
35731
- added += minutesInHour;
35732
- start = this._nextDate(start, "hour", step);
35733
- } else {
35734
- addedInterval = this._subtractMinutesUntilHourStart(start, left);
35735
- added += addedInterval.added;
35736
- start = addedInterval.end;
35748
+ if (minutesInHour <= left) {
35749
+ added += minutesInHour;
35750
+ start = this._nextDate(start, "hour", step);
35751
+ } else {
35752
+ addedInterval = this._subtractMinutesUntilHourStart(start, left);
35753
+ added += addedInterval.added;
35754
+ start = addedInterval.end;
35755
+ }
35737
35756
}
35738
- }
35739
35757
} else {
35740
35758
if (start.getHours() === 0 && start.getMinutes() === 0 && start.getSeconds() === 0) {
35741
35759
var prev = this._getClosestWorkTimePast(start, "hour");
@@ -40955,10 +40973,20 @@ function default_1(gantt) {
40955
40973
undo: function () { return _undo.undo(); },
40956
40974
redo: function () { return _undo.redo(); },
40957
40975
getUndoStack: function () { return _undo.getUndoStack(); },
40976
+ setUndoStack: function (stack) { return _undo.setUndoStack(stack); },
40958
40977
getRedoStack: function () { return _undo.getRedoStack(); },
40978
+ setRedoStack: function (stack) { return _undo.setRedoStack(stack); },
40959
40979
clearUndoStack: function () { return _undo.clearUndoStack(); },
40960
40980
clearRedoStack: function () { return _undo.clearRedoStack(); },
40961
- saveState: function (id, type) { return monitor.store(id, type, true); }
40981
+ saveState: function (id, type) { return monitor.store(id, type, true); },
40982
+ getInitialState: function (id, type) {
40983
+ if (type === gantt.config.undo_types.link) {
40984
+ return monitor.getInitialLink(id);
40985
+ }
40986
+ else {
40987
+ return monitor.getInitialTask(id);
40988
+ }
40989
+ }
40962
40990
};
40963
40991
gantt.undo = gantt.ext.undo.undo;
40964
40992
gantt.redo = gantt.ext.undo.redo;
@@ -41475,9 +41503,15 @@ var Undo = /** @class */ (function () {
41475
41503
Undo.prototype.getUndoStack = function () {
41476
41504
return this._undoStack;
41477
41505
};
41506
+ Undo.prototype.setUndoStack = function (stack) {
41507
+ this._undoStack = stack;
41508
+ };
41478
41509
Undo.prototype.getRedoStack = function () {
41479
41510
return this._redoStack;
41480
41511
};
41512
+ Undo.prototype.setRedoStack = function (stack) {
41513
+ this._redoStack = stack;
41514
+ };
41481
41515
Undo.prototype.clearUndoStack = function () {
41482
41516
this._undoStack = [];
41483
41517
};
@@ -41654,7 +41688,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
41654
41688
41655
41689
function DHXGantt() {
41656
41690
this.constants = __webpack_require__(/*! ../constants */ "./sources/constants/index.js");
41657
- this.version = "8.0.3 ";
41691
+ this.version = "8.0.4 ";
41658
41692
this.license = "gpl";
41659
41693
this.templates = {};
41660
41694
this.ext = {};
0 commit comments